[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 21/26] build-sys: make qemu qapi objects per-target
From: |
Marc-André Lureau |
Subject: |
[Qemu-devel] [PATCH 21/26] build-sys: make qemu qapi objects per-target |
Date: |
Thu, 27 Jul 2017 17:41:21 +0200 |
The qapi schema has per-target definitions. Move qapi objects in the
per-target build, so they can be configured at compile time.
Keep qapi-types.o qapi-visit.o in util-obj as they are necessary for
common code, but they will be overwritten during the target link. Add
some stubs for block events, in code shared by tools & qemu.
The following patch will configure the schema to conditionally remove
per-target disabled features.
Signed-off-by: Marc-André Lureau <address@hidden>
---
stubs/qapi-event.c | 74 ++++++++++++++++++++++++++++++++++++++
tests/test-qobject-input-visitor.c | 1 -
Makefile.objs | 9 +----
Makefile.target | 4 +++
stubs/Makefile.objs | 1 +
trace/Makefile.objs | 2 +-
6 files changed, 81 insertions(+), 10 deletions(-)
create mode 100644 stubs/qapi-event.c
diff --git a/stubs/qapi-event.c b/stubs/qapi-event.c
new file mode 100644
index 0000000000..9415299f3a
--- /dev/null
+++ b/stubs/qapi-event.c
@@ -0,0 +1,74 @@
+#include "qemu/osdep.h"
+#include "qapi-event.h"
+
+void qapi_event_send_device_tray_moved(const char *device, const char *id,
+ bool tray_open, Error **errp)
+{
+}
+
+void qapi_event_send_quorum_report_bad(QuorumOpType type, bool has_error,
+ const char *error, const char
*node_name,
+ int64_t sector_num,
+ int64_t sectors_count, Error **errp)
+{
+}
+
+void qapi_event_send_quorum_failure(const char *reference, int64_t sector_num,
+ int64_t sectors_count, Error **errp)
+{
+}
+
+void qapi_event_send_block_job_cancelled(BlockJobType type, const char *device,
+ int64_t len, int64_t offset,
+ int64_t speed, Error **errp)
+{
+}
+
+void qapi_event_send_block_job_completed(BlockJobType type, const char *device,
+ int64_t len, int64_t offset,
+ int64_t speed, bool has_error,
+ const char *error, Error **errp)
+{
+}
+
+void qapi_event_send_block_job_error(const char *device,
+ IoOperationType operation,
+ BlockErrorAction action, Error **errp)
+{
+}
+
+void qapi_event_send_block_job_ready(BlockJobType type, const char *device,
+ int64_t len, int64_t offset, int64_t
speed,
+ Error **errp)
+{
+}
+
+void qapi_event_send_block_io_error(const char *device, const char *node_name,
+ IoOperationType operation,
+ BlockErrorAction action, bool has_nospace,
+ bool nospace, const char *reason,
+ Error **errp)
+{
+}
+
+void qapi_event_send_block_image_corrupted(const char *device,
+ bool has_node_name,
+ const char *node_name,
+ const char *msg, bool has_offset,
+ int64_t offset, bool has_size,
+ int64_t size, bool fatal,
+ Error **errp)
+{
+}
+
+void qapi_event_send_block_write_threshold(const char *node_name,
+ uint64_t amount_exceeded,
+ uint64_t write_threshold,
+ Error **errp)
+{
+}
+
+void qapi_event_send_device_deleted(bool has_device, const char *device,
+ const char *path, Error **errp)
+{
+}
diff --git a/tests/test-qobject-input-visitor.c
b/tests/test-qobject-input-visitor.c
index 4da5d02c35..0a9352c5c1 100644
--- a/tests/test-qobject-input-visitor.c
+++ b/tests/test-qobject-input-visitor.c
@@ -1266,7 +1266,6 @@ static void
test_visitor_in_qmp_introspect(TestInputVisitorData *data,
const void *unused)
{
do_test_visitor_in_qmp_introspect(data, &test_qmp_schema_qlit);
- do_test_visitor_in_qmp_introspect(data, &qmp_schema_qlit);
}
int main(int argc, char **argv)
diff --git a/Makefile.objs b/Makefile.objs
index 24a4ea08b8..2664720f9b 100644
--- a/Makefile.objs
+++ b/Makefile.objs
@@ -2,7 +2,7 @@
# Common libraries for tools and emulators
stub-obj-y = stubs/ crypto/
util-obj-y = util/ qobject/ qapi/
-util-obj-y += qmp-introspect.o qapi-types.o qapi-visit.o qapi-event.o
+util-obj-y += qapi-types.o qapi-visit.o
chardev-obj-y = chardev/
@@ -72,13 +72,6 @@ common-obj-y += chardev/
common-obj-$(CONFIG_SECCOMP) += qemu-seccomp.o
common-obj-$(CONFIG_FDT) += device_tree.o
-
-######################################################################
-# qapi
-
-common-obj-y += qmp-marshal.o
-common-obj-y += qmp-introspect.o
-common-obj-y += qmp.o hmp.o
endif
#######################################################################
diff --git a/Makefile.target b/Makefile.target
index 2baec9252f..a97dd056ad 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -154,6 +154,10 @@ endif
GENERATED_FILES += hmp-commands.h hmp-commands-info.h
+obj-y += qmp-introspect.o qapi-types.o qapi-visit.o qapi-event.o
+obj-y += qmp-marshal.o qmp-introspect.o
+obj-y += qmp.o hmp.o
+
endif # CONFIG_SOFTMMU
# Workaround for http://gcc.gnu.org/PR55489, see configure.
diff --git a/stubs/Makefile.objs b/stubs/Makefile.objs
index f5b47bfd74..1b2bef99c9 100644
--- a/stubs/Makefile.objs
+++ b/stubs/Makefile.objs
@@ -21,6 +21,7 @@ stub-obj-y += machine-init-done.o
stub-obj-y += migr-blocker.o
stub-obj-y += monitor.o
stub-obj-y += notify-event.o
+stub-obj-y += qapi-event.o
stub-obj-y += qtest.o
stub-obj-y += replay.o
stub-obj-y += runstate-check.o
diff --git a/trace/Makefile.objs b/trace/Makefile.objs
index afd571c3ec..6447729d60 100644
--- a/trace/Makefile.objs
+++ b/trace/Makefile.objs
@@ -56,4 +56,4 @@ util-obj-$(CONFIG_TRACE_SIMPLE) += simple.o
util-obj-$(CONFIG_TRACE_FTRACE) += ftrace.o
util-obj-y += control.o
target-obj-y += control-target.o
-util-obj-y += qmp.o
+target-obj-y += qmp.o
--
2.14.0.rc0.1.g40ca67566
- [Qemu-devel] [PATCH 20/26] tests/qmp-test: add query-qmp-schema test, (continued)
- [Qemu-devel] [PATCH 20/26] tests/qmp-test: add query-qmp-schema test, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 22/26] qapi: make rtc-reset-reinjection depend on TARGET_I386, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 19/26] build-sys: move qapi variables in qapi.mak, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 13/26] qapi2texi: add 'If:' condition to enum values, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 23/26] qapi: make s390 commands depend on TARGET_S390X, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 16/26] qapi: add conditions to VNC type/commands/events on the schema, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 08/26] qapi: add 'if' condition on enum member values, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 24/26] qapi: make query-gic-capabilities depend on TARGET_ARM, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 15/26] qapi2texi: add condition to variants, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 12/26] qapi2texi: add 'If:' section to generated documentation, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 21/26] build-sys: make qemu qapi objects per-target,
Marc-André Lureau <=
- [Qemu-devel] [PATCH 14/26] qapi2texi: add 'If:' condition to struct members, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 09/26] qapi: add 'if' condition on struct member, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 18/26] qapi: add conditions to REPLICATION type/commands on the schema, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 06/26] qapi2texi: minor python code simplification, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 01/26] qapi: fix type_seen key error, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 17/26] qapi: add conditions to SPICE type/commands/events on the schema, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 10/26] qapi: add 'if' condition on union variant, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 11/26] qapi: add 'if' condition on alternate variant, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 25/26] qapi: make query-cpu-model-expansion depend on s390 or x86, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 26/26] qapi: make query-cpu-definitions depend on specific targets, Marc-André Lureau, 2017/07/27