[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC v3 22/32] qga: build qapi-cabi binary (ABI from C)
From: |
marcandre . lureau |
Subject: |
[RFC v3 22/32] qga: build qapi-cabi binary (ABI from C) |
Date: |
Tue, 7 Sep 2021 16:19:33 +0400 |
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Build a binary to dump the QAPI ABI (from C code). Ex:
$ qga/qapi-cabi
GuestAgentCommandInfo struct: sizeof=16
name member: sizeof=8 offset=0
enabled member: sizeof=1 offset=8
success_response member: sizeof=1 offset=9
...
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
qga/qapi-cabi.c | 9 +++++++++
qga/meson.build | 12 ++++++++++++
2 files changed, 21 insertions(+)
create mode 100644 qga/qapi-cabi.c
diff --git a/qga/qapi-cabi.c b/qga/qapi-cabi.c
new file mode 100644
index 0000000000..0704e70869
--- /dev/null
+++ b/qga/qapi-cabi.c
@@ -0,0 +1,9 @@
+#include "qemu/osdep.h"
+
+#include "qga-qapi-types.h"
+
+int main(int argc, const char *argv[])
+{
+ qapi_cabi();
+ return 0;
+}
diff --git a/qga/meson.build b/qga/meson.build
index cfb1fbc085..1b050d8c53 100644
--- a/qga/meson.build
+++ b/qga/meson.build
@@ -21,6 +21,18 @@ qga_qapi_files = custom_target('QGA QAPI files',
command: [ qapi_gen, '-o', 'qga', '-p', 'qga-',
'@INPUT0@' ],
depend_files: qapi_gen_depends)
+i = 0
+srcs = [files('qapi-cabi.c')]
+foreach output: qga_qapi_outputs
+ if output.startswith('qga-qapi-types') or output.startswith('qga-qapi-visit')
+ srcs += qga_qapi_files[i]
+ endif
+ i += 1
+endforeach
+qga_qapi_cabi = executable('qapi-cabi', srcs,
+ dependencies: [qemuutil],
+ c_args: ['-DQAPI_CABI'])
+
qga_ss = ss.source_set()
qga_ss.add(qga_qapi_files.to_list())
qga_ss.add(files(
--
2.33.0.113.g6c40894d24
- Re: [RFC v3 13/32] rust: use vendored-sources, (continued)
- [RFC v3 14/32] scripts/qapi: add QAPISchemaIfCond.rsgen(), marcandre . lureau, 2021/09/07
- [RFC v3 15/32] scripts/qapi: strip trailing whitespaces, marcandre . lureau, 2021/09/07
- [RFC v3 16/32] scripts/qapi: add Rust FFI bindings generation, marcandre . lureau, 2021/09/07
- [RFC v3 17/32] scripts/qapi: learn to generate ABI dump for Rust FFI, marcandre . lureau, 2021/09/07
- [RFC v3 18/32] tests: generate Rust bindings, marcandre . lureau, 2021/09/07
- [RFC v3 19/32] tests: check Rust and C CABI diffs, marcandre . lureau, 2021/09/07
- [RFC v3 20/32] scripts/qapi: generate high-level Rust bindings, marcandre . lureau, 2021/09/07
- [RFC v3 22/32] qga: build qapi-cabi binary (ABI from C),
marcandre . lureau <=
- [RFC v3 21/32] tests/rust: build a common library, checking bindings compile, marcandre . lureau, 2021/09/07
- [RFC v3 23/32] qga/rust: build and link an empty static library, marcandre . lureau, 2021/09/07
- [RFC v3 24/32] qga/rust: generate QGA QAPI types FFI bindings, marcandre . lureau, 2021/09/07
- [RFC v3 25/32] qga/rust: build a qga-cabi-rs executable (ABI from Rust), marcandre . lureau, 2021/09/07
- [RFC v3 26/32] qga/rust: check the Rust C binding, marcandre . lureau, 2021/09/07
- [RFC v3 27/32] qga/rust: build high-level Rust QAPI types, marcandre . lureau, 2021/09/07
- [RFC v3 28/32] qga/rust: implement get-host-name in Rust (example), marcandre . lureau, 2021/09/07
- [RFC v3 29/32] qga/rust: implement {get,set}-vcpus in Rust (example), marcandre . lureau, 2021/09/07
- [RFC v3 30/32] tests/vm: add Rust to FreeBSD VM, marcandre . lureau, 2021/09/07
- [RFC v3 31/32] tests/vm: bump fedora VM to f32, marcandre . lureau, 2021/09/07