qapi patches for 2018-03-01

- Markus Armbruster: Modularize generated QAPI code
 -----BEGIN PGP SIGNATURE-----
 Comment: Public key at http://people.redhat.com/eblake/eblake.gpg
 
 iQEcBAABCAAGBQJamar4AAoJEKeha0olJ0NqaOcH/js0SXjzfny/qNziZ69I4diF
 +hYXpO3MB6XkTME32nFgWpvosG11YaWHkfYbhEgGRIBR8OfmdbnLI5k/1jo9xl/5
 OWA/PxVvZ50kK7oVFg1MfX+wDrYOL3XRrwv52LVp9l/QqSSMbcHmt8xYhF1Yb7Ij
 JAmcGBVZIeY4k4rXvq1r6TR5f4ItyzkJBPUBtaj2PruSmQPOy+LlOCAjMaO3a+pk
 aiRcjbIRWodcC5p5eT7GEdbfEpzxB2iVkyI1SUvDuJKAJfDkBvCE3B/vY7SOdw7I
 5rZ4wRSxNHeTX/cjtJSftTrrG/DC4nPTMFGgxlv6ElcP70HhWQFAxoJjdjf6HGw=
 =oaW2
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/ericb/tags/pull-qapi-2018-03-01-v4' into staging

qapi patches for 2018-03-01

- Markus Armbruster: Modularize generated QAPI code

# gpg: Signature made Fri 02 Mar 2018 19:50:16 GMT
# gpg:                using RSA key A7A16B4A2527436A
# gpg: Good signature from "Eric Blake <eblake@redhat.com>"
# gpg:                 aka "Eric Blake (Free Software Programmer) <ebb9@byu.net>"
# gpg:                 aka "[jpeg image of size 6874]"
# Primary key fingerprint: 71C2 CC22 B1C4 6029 27D2  F3AA A7A1 6B4A 2527 436A

* remotes/ericb/tags/pull-qapi-2018-03-01-v4: (30 commits)
  qapi: Don't create useless directory qapi-generated
  Fix up dangling references to qmp-commands.* in comment and doc
  qapi: Move qapi-schema.json to qapi/, rename generated files
  docs: Correct outdated information on QAPI
  docs/devel/writing-qmp-commands: Update for modular QAPI
  qapi: Empty out qapi-schema.json
  Include less of the generated modular QAPI headers
  qapi: Generate separate .h, .c for each module
  watchdog: Consolidate QAPI into single file
  qapi/common: Fix guardname() for funny filenames
  qapi/types qapi/visit: Generate built-in stuff into separate files
  qapi: Make code-generating visitors use QAPIGen more
  qapi: Rename generated qmp-marshal.c to qmp-commands.c
  qapi: Record 'include' directives in intermediate representation
  qapi: Generate in source order
  qapi: Record 'include' directives in parse tree
  qapi: Concentrate QAPISchemaParser.exprs updates in .__init__()
  qapi: Lift error reporting from QAPISchema.__init__() to callers
  qapi/common: Eliminate QAPISchema.exprs
  qapi: Improve include file name reporting in error messages
  ...

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Peter Maydell 2018-03-05 09:47:37 +00:00
commit 7fceeb190a
189 changed files with 1578 additions and 1364 deletions

80
.gitignore vendored
View File

@ -27,13 +27,79 @@
/libuser /libuser
/linux-headers/asm /linux-headers/asm
/qga/qapi-generated /qga/qapi-generated
/qapi-generated /qapi-gen-timestamp
/qapi-types.[ch] /qapi/qapi-builtin-types.[ch]
/qapi-visit.[ch] /qapi/qapi-builtin-visit.[ch]
/qapi-event.[ch] /qapi/qapi-commands-block-core.[ch]
/qmp-commands.h /qapi/qapi-commands-block.[ch]
/qmp-introspect.[ch] /qapi/qapi-commands-char.[ch]
/qmp-marshal.c /qapi/qapi-commands-common.[ch]
/qapi/qapi-commands-crypto.[ch]
/qapi/qapi-commands-introspect.[ch]
/qapi/qapi-commands-migration.[ch]
/qapi/qapi-commands-misc.[ch]
/qapi/qapi-commands-net.[ch]
/qapi/qapi-commands-rocker.[ch]
/qapi/qapi-commands-run-state.[ch]
/qapi/qapi-commands-sockets.[ch]
/qapi/qapi-commands-tpm.[ch]
/qapi/qapi-commands-trace.[ch]
/qapi/qapi-commands-transaction.[ch]
/qapi/qapi-commands-ui.[ch]
/qapi/qapi-commands.[ch]
/qapi/qapi-events-block-core.[ch]
/qapi/qapi-events-block.[ch]
/qapi/qapi-events-char.[ch]
/qapi/qapi-events-common.[ch]
/qapi/qapi-events-crypto.[ch]
/qapi/qapi-events-introspect.[ch]
/qapi/qapi-events-migration.[ch]
/qapi/qapi-events-misc.[ch]
/qapi/qapi-events-net.[ch]
/qapi/qapi-events-rocker.[ch]
/qapi/qapi-events-run-state.[ch]
/qapi/qapi-events-sockets.[ch]
/qapi/qapi-events-tpm.[ch]
/qapi/qapi-events-trace.[ch]
/qapi/qapi-events-transaction.[ch]
/qapi/qapi-events-ui.[ch]
/qapi/qapi-events.[ch]
/qapi/qapi-introspect.[ch]
/qapi/qapi-types-block-core.[ch]
/qapi/qapi-types-block.[ch]
/qapi/qapi-types-char.[ch]
/qapi/qapi-types-common.[ch]
/qapi/qapi-types-crypto.[ch]
/qapi/qapi-types-introspect.[ch]
/qapi/qapi-types-migration.[ch]
/qapi/qapi-types-misc.[ch]
/qapi/qapi-types-net.[ch]
/qapi/qapi-types-rocker.[ch]
/qapi/qapi-types-run-state.[ch]
/qapi/qapi-types-sockets.[ch]
/qapi/qapi-types-tpm.[ch]
/qapi/qapi-types-trace.[ch]
/qapi/qapi-types-transaction.[ch]
/qapi/qapi-types-ui.[ch]
/qapi/qapi-types.[ch]
/qapi/qapi-visit-block-core.[ch]
/qapi/qapi-visit-block.[ch]
/qapi/qapi-visit-char.[ch]
/qapi/qapi-visit-common.[ch]
/qapi/qapi-visit-crypto.[ch]
/qapi/qapi-visit-introspect.[ch]
/qapi/qapi-visit-migration.[ch]
/qapi/qapi-visit-misc.[ch]
/qapi/qapi-visit-net.[ch]
/qapi/qapi-visit-rocker.[ch]
/qapi/qapi-visit-run-state.[ch]
/qapi/qapi-visit-sockets.[ch]
/qapi/qapi-visit-tpm.[ch]
/qapi/qapi-visit-trace.[ch]
/qapi/qapi-visit-transaction.[ch]
/qapi/qapi-visit-ui.[ch]
/qapi/qapi-visit.[ch]
/qapi/qapi-doc.texi
/qemu-doc.html /qemu-doc.html
/qemu-doc.info /qemu-doc.info
/qemu-doc.txt /qemu-doc.txt

233
Makefile
View File

@ -90,10 +90,78 @@ endif
include $(SRC_PATH)/rules.mak include $(SRC_PATH)/rules.mak
GENERATED_FILES = qemu-version.h config-host.h qemu-options.def GENERATED_FILES = qemu-version.h config-host.h qemu-options.def
GENERATED_FILES += qmp-commands.h qapi-types.h qapi-visit.h qapi-event.h GENERATED_FILES += qapi/qapi-builtin-types.h qapi/qapi-builtin-types.c
GENERATED_FILES += qmp-marshal.c qapi-types.c qapi-visit.c qapi-event.c GENERATED_FILES += qapi/qapi-types.h qapi/qapi-types.c
GENERATED_FILES += qmp-introspect.h GENERATED_FILES += qapi/qapi-types-block-core.h qapi/qapi-types-block-core.c
GENERATED_FILES += qmp-introspect.c GENERATED_FILES += qapi/qapi-types-block.h qapi/qapi-types-block.c
GENERATED_FILES += qapi/qapi-types-char.h qapi/qapi-types-char.c
GENERATED_FILES += qapi/qapi-types-common.h qapi/qapi-types-common.c
GENERATED_FILES += qapi/qapi-types-crypto.h qapi/qapi-types-crypto.c
GENERATED_FILES += qapi/qapi-types-introspect.h qapi/qapi-types-introspect.c
GENERATED_FILES += qapi/qapi-types-migration.h qapi/qapi-types-migration.c
GENERATED_FILES += qapi/qapi-types-misc.h qapi/qapi-types-misc.c
GENERATED_FILES += qapi/qapi-types-net.h qapi/qapi-types-net.c
GENERATED_FILES += qapi/qapi-types-rocker.h qapi/qapi-types-rocker.c
GENERATED_FILES += qapi/qapi-types-run-state.h qapi/qapi-types-run-state.c
GENERATED_FILES += qapi/qapi-types-sockets.h qapi/qapi-types-sockets.c
GENERATED_FILES += qapi/qapi-types-tpm.h qapi/qapi-types-tpm.c
GENERATED_FILES += qapi/qapi-types-trace.h qapi/qapi-types-trace.c
GENERATED_FILES += qapi/qapi-types-transaction.h qapi/qapi-types-transaction.c
GENERATED_FILES += qapi/qapi-types-ui.h qapi/qapi-types-ui.c
GENERATED_FILES += qapi/qapi-builtin-visit.h qapi/qapi-builtin-visit.c
GENERATED_FILES += qapi/qapi-visit.h qapi/qapi-visit.c
GENERATED_FILES += qapi/qapi-visit-block-core.h qapi/qapi-visit-block-core.c
GENERATED_FILES += qapi/qapi-visit-block.h qapi/qapi-visit-block.c
GENERATED_FILES += qapi/qapi-visit-char.h qapi/qapi-visit-char.c
GENERATED_FILES += qapi/qapi-visit-common.h qapi/qapi-visit-common.c
GENERATED_FILES += qapi/qapi-visit-crypto.h qapi/qapi-visit-crypto.c
GENERATED_FILES += qapi/qapi-visit-introspect.h qapi/qapi-visit-introspect.c
GENERATED_FILES += qapi/qapi-visit-migration.h qapi/qapi-visit-migration.c
GENERATED_FILES += qapi/qapi-visit-misc.h qapi/qapi-visit-misc.c
GENERATED_FILES += qapi/qapi-visit-net.h qapi/qapi-visit-net.c
GENERATED_FILES += qapi/qapi-visit-rocker.h qapi/qapi-visit-rocker.c
GENERATED_FILES += qapi/qapi-visit-run-state.h qapi/qapi-visit-run-state.c
GENERATED_FILES += qapi/qapi-visit-sockets.h qapi/qapi-visit-sockets.c
GENERATED_FILES += qapi/qapi-visit-tpm.h qapi/qapi-visit-tpm.c
GENERATED_FILES += qapi/qapi-visit-trace.h qapi/qapi-visit-trace.c
GENERATED_FILES += qapi/qapi-visit-transaction.h qapi/qapi-visit-transaction.c
GENERATED_FILES += qapi/qapi-visit-ui.h qapi/qapi-visit-ui.c
GENERATED_FILES += qapi/qapi-commands.h qapi/qapi-commands.c
GENERATED_FILES += qapi/qapi-commands-block-core.h qapi/qapi-commands-block-core.c
GENERATED_FILES += qapi/qapi-commands-block.h qapi/qapi-commands-block.c
GENERATED_FILES += qapi/qapi-commands-char.h qapi/qapi-commands-char.c
GENERATED_FILES += qapi/qapi-commands-common.h qapi/qapi-commands-common.c
GENERATED_FILES += qapi/qapi-commands-crypto.h qapi/qapi-commands-crypto.c
GENERATED_FILES += qapi/qapi-commands-introspect.h qapi/qapi-commands-introspect.c
GENERATED_FILES += qapi/qapi-commands-migration.h qapi/qapi-commands-migration.c
GENERATED_FILES += qapi/qapi-commands-misc.h qapi/qapi-commands-misc.c
GENERATED_FILES += qapi/qapi-commands-net.h qapi/qapi-commands-net.c
GENERATED_FILES += qapi/qapi-commands-rocker.h qapi/qapi-commands-rocker.c
GENERATED_FILES += qapi/qapi-commands-run-state.h qapi/qapi-commands-run-state.c
GENERATED_FILES += qapi/qapi-commands-sockets.h qapi/qapi-commands-sockets.c
GENERATED_FILES += qapi/qapi-commands-tpm.h qapi/qapi-commands-tpm.c
GENERATED_FILES += qapi/qapi-commands-trace.h qapi/qapi-commands-trace.c
GENERATED_FILES += qapi/qapi-commands-transaction.h qapi/qapi-commands-transaction.c
GENERATED_FILES += qapi/qapi-commands-ui.h qapi/qapi-commands-ui.c
GENERATED_FILES += qapi/qapi-events.h qapi/qapi-events.c
GENERATED_FILES += qapi/qapi-events-block-core.h qapi/qapi-events-block-core.c
GENERATED_FILES += qapi/qapi-events-block.h qapi/qapi-events-block.c
GENERATED_FILES += qapi/qapi-events-char.h qapi/qapi-events-char.c
GENERATED_FILES += qapi/qapi-events-common.h qapi/qapi-events-common.c
GENERATED_FILES += qapi/qapi-events-crypto.h qapi/qapi-events-crypto.c
GENERATED_FILES += qapi/qapi-events-introspect.h qapi/qapi-events-introspect.c
GENERATED_FILES += qapi/qapi-events-migration.h qapi/qapi-events-migration.c
GENERATED_FILES += qapi/qapi-events-misc.h qapi/qapi-events-misc.c
GENERATED_FILES += qapi/qapi-events-net.h qapi/qapi-events-net.c
GENERATED_FILES += qapi/qapi-events-rocker.h qapi/qapi-events-rocker.c
GENERATED_FILES += qapi/qapi-events-run-state.h qapi/qapi-events-run-state.c
GENERATED_FILES += qapi/qapi-events-sockets.h qapi/qapi-events-sockets.c
GENERATED_FILES += qapi/qapi-events-tpm.h qapi/qapi-events-tpm.c
GENERATED_FILES += qapi/qapi-events-trace.h qapi/qapi-events-trace.c
GENERATED_FILES += qapi/qapi-events-transaction.h qapi/qapi-events-transaction.c
GENERATED_FILES += qapi/qapi-events-ui.h qapi/qapi-events-ui.c
GENERATED_FILES += qapi/qapi-introspect.c qapi/qapi-introspect.h
GENERATED_FILES += qapi/qapi-doc.texi
GENERATED_FILES += trace/generated-tcg-tracers.h GENERATED_FILES += trace/generated-tcg-tracers.h
@ -482,32 +550,34 @@ qemu-ga$(EXESUF): QEMU_CFLAGS += -I qga/qapi-generated
qemu-keymap$(EXESUF): LIBS += $(XKBCOMMON_LIBS) qemu-keymap$(EXESUF): LIBS += $(XKBCOMMON_LIBS)
qemu-keymap$(EXESUF): QEMU_CFLAGS += $(XKBCOMMON_CFLAGS) qemu-keymap$(EXESUF): QEMU_CFLAGS += $(XKBCOMMON_CFLAGS)
gen-out-type = $(subst .,-,$(suffix $@)) qapi-py = $(SRC_PATH)/scripts/qapi/commands.py \
$(SRC_PATH)/scripts/qapi/events.py \
$(SRC_PATH)/scripts/qapi/introspect.py \
$(SRC_PATH)/scripts/qapi/types.py \
$(SRC_PATH)/scripts/qapi/visit.py \
$(SRC_PATH)/scripts/qapi/common.py \
$(SRC_PATH)/scripts/qapi/doc.py \
$(SRC_PATH)/scripts/ordereddict.py \
$(SRC_PATH)/scripts/qapi-gen.py
qapi-py = $(SRC_PATH)/scripts/qapi.py $(SRC_PATH)/scripts/ordereddict.py qga/qapi-generated/qga-qapi-types.c qga/qapi-generated/qga-qapi-types.h \
qga/qapi-generated/qga-qapi-visit.c qga/qapi-generated/qga-qapi-visit.h \
qga/qapi-generated/qga-qapi-commands.h qga/qapi-generated/qga-qapi-commands.c \
qga/qapi-generated/qga-qapi-doc.texi: \
qga/qapi-generated/qapi-gen-timestamp ;
qga/qapi-generated/qapi-gen-timestamp: $(SRC_PATH)/qga/qapi-schema.json $(qapi-py)
$(call quiet-command,$(PYTHON_UTF8) $(SRC_PATH)/scripts/qapi-gen.py \
-o qga/qapi-generated -p "qga-" $<, \
"GEN","$(@:%-timestamp=%)")
@>$@
qga/qapi-generated/qga-qapi-types.c qga/qapi-generated/qga-qapi-types.h :\ qapi-modules = $(SRC_PATH)/qapi/qapi-schema.json $(SRC_PATH)/qapi/common.json \
$(SRC_PATH)/qga/qapi-schema.json $(SRC_PATH)/scripts/qapi-types.py $(qapi-py)
$(call quiet-command,$(PYTHON_UTF8) $(SRC_PATH)/scripts/qapi-types.py \
$(gen-out-type) -o qga/qapi-generated -p "qga-" $<, \
"GEN","$@")
qga/qapi-generated/qga-qapi-visit.c qga/qapi-generated/qga-qapi-visit.h :\
$(SRC_PATH)/qga/qapi-schema.json $(SRC_PATH)/scripts/qapi-visit.py $(qapi-py)
$(call quiet-command,$(PYTHON_UTF8) $(SRC_PATH)/scripts/qapi-visit.py \
$(gen-out-type) -o qga/qapi-generated -p "qga-" $<, \
"GEN","$@")
qga/qapi-generated/qga-qmp-commands.h qga/qapi-generated/qga-qmp-marshal.c :\
$(SRC_PATH)/qga/qapi-schema.json $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py)
$(call quiet-command,$(PYTHON_UTF8) $(SRC_PATH)/scripts/qapi-commands.py \
$(gen-out-type) -o qga/qapi-generated -p "qga-" $<, \
"GEN","$@")
qapi-modules = $(SRC_PATH)/qapi-schema.json $(SRC_PATH)/qapi/common.json \
$(SRC_PATH)/qapi/block.json $(SRC_PATH)/qapi/block-core.json \ $(SRC_PATH)/qapi/block.json $(SRC_PATH)/qapi/block-core.json \
$(SRC_PATH)/qapi/char.json \ $(SRC_PATH)/qapi/char.json \
$(SRC_PATH)/qapi/crypto.json \ $(SRC_PATH)/qapi/crypto.json \
$(SRC_PATH)/qapi/introspect.json \ $(SRC_PATH)/qapi/introspect.json \
$(SRC_PATH)/qapi/migration.json \ $(SRC_PATH)/qapi/migration.json \
$(SRC_PATH)/qapi/misc.json \
$(SRC_PATH)/qapi/net.json \ $(SRC_PATH)/qapi/net.json \
$(SRC_PATH)/qapi/rocker.json \ $(SRC_PATH)/qapi/rocker.json \
$(SRC_PATH)/qapi/run-state.json \ $(SRC_PATH)/qapi/run-state.json \
@ -517,33 +587,86 @@ qapi-modules = $(SRC_PATH)/qapi-schema.json $(SRC_PATH)/qapi/common.json \
$(SRC_PATH)/qapi/transaction.json \ $(SRC_PATH)/qapi/transaction.json \
$(SRC_PATH)/qapi/ui.json $(SRC_PATH)/qapi/ui.json
qapi-types.c qapi-types.h :\ qapi/qapi-builtin-types.c qapi/qapi-builtin-types.h \
$(qapi-modules) $(SRC_PATH)/scripts/qapi-types.py $(qapi-py) qapi/qapi-types.c qapi/qapi-types.h \
$(call quiet-command,$(PYTHON_UTF8) $(SRC_PATH)/scripts/qapi-types.py \ qapi/qapi-types-block-core.c qapi/qapi-types-block-core.h \
$(gen-out-type) -o "." -b $<, \ qapi/qapi-types-block.c qapi/qapi-types-block.h \
"GEN","$@") qapi/qapi-types-char.c qapi/qapi-types-char.h \
qapi-visit.c qapi-visit.h :\ qapi/qapi-types-common.c qapi/qapi-types-common.h \
$(qapi-modules) $(SRC_PATH)/scripts/qapi-visit.py $(qapi-py) qapi/qapi-types-crypto.c qapi/qapi-types-crypto.h \
$(call quiet-command,$(PYTHON_UTF8) $(SRC_PATH)/scripts/qapi-visit.py \ qapi/qapi-types-introspect.c qapi/qapi-types-introspect.h \
$(gen-out-type) -o "." -b $<, \ qapi/qapi-types-migration.c qapi/qapi-types-migration.h \
"GEN","$@") qapi/qapi-types-misc.c qapi/qapi-types-misc.h \
qapi-event.c qapi-event.h :\ qapi/qapi-types-net.c qapi/qapi-types-net.h \
$(qapi-modules) $(SRC_PATH)/scripts/qapi-event.py $(qapi-py) qapi/qapi-types-rocker.c qapi/qapi-types-rocker.h \
$(call quiet-command,$(PYTHON_UTF8) $(SRC_PATH)/scripts/qapi-event.py \ qapi/qapi-types-run-state.c qapi/qapi-types-run-state.h \
$(gen-out-type) -o "." $<, \ qapi/qapi-types-sockets.c qapi/qapi-types-sockets.h \
"GEN","$@") qapi/qapi-types-tpm.c qapi/qapi-types-tpm.h \
qmp-commands.h qmp-marshal.c :\ qapi/qapi-types-trace.c qapi/qapi-types-trace.h \
$(qapi-modules) $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py) qapi/qapi-types-transaction.c qapi/qapi-types-transaction.h \
$(call quiet-command,$(PYTHON_UTF8) $(SRC_PATH)/scripts/qapi-commands.py \ qapi/qapi-types-ui.c qapi/qapi-types-ui.h \
$(gen-out-type) -o "." $<, \ qapi/qapi-builtin-visit.c qapi/qapi-builtin-visit.h \
"GEN","$@") qapi/qapi-visit.c qapi/qapi-visit.h \
qmp-introspect.h qmp-introspect.c :\ qapi/qapi-visit-block-core.c qapi/qapi-visit-block-core.h \
$(qapi-modules) $(SRC_PATH)/scripts/qapi-introspect.py $(qapi-py) qapi/qapi-visit-block.c qapi/qapi-visit-block.h \
$(call quiet-command,$(PYTHON_UTF8) $(SRC_PATH)/scripts/qapi-introspect.py \ qapi/qapi-visit-char.c qapi/qapi-visit-char.h \
$(gen-out-type) -o "." $<, \ qapi/qapi-visit-common.c qapi/qapi-visit-common.h \
"GEN","$@") qapi/qapi-visit-crypto.c qapi/qapi-visit-crypto.h \
qapi/qapi-visit-introspect.c qapi/qapi-visit-introspect.h \
qapi/qapi-visit-migration.c qapi/qapi-visit-migration.h \
qapi/qapi-visit-misc.c qapi/qapi-visit-misc.h \
qapi/qapi-visit-net.c qapi/qapi-visit-net.h \
qapi/qapi-visit-rocker.c qapi/qapi-visit-rocker.h \
qapi/qapi-visit-run-state.c qapi/qapi-visit-run-state.h \
qapi/qapi-visit-sockets.c qapi/qapi-visit-sockets.h \
qapi/qapi-visit-tpm.c qapi/qapi-visit-tpm.h \
qapi/qapi-visit-trace.c qapi/qapi-visit-trace.h \
qapi/qapi-visit-transaction.c qapi/qapi-visit-transaction.h \
qapi/qapi-visit-ui.c qapi/qapi-visit-ui.h \
qapi/qapi-commands.h qapi/qapi-commands.c \
qapi/qapi-commands-block-core.c qapi/qapi-commands-block-core.h \
qapi/qapi-commands-block.c qapi/qapi-commands-block.h \
qapi/qapi-commands-char.c qapi/qapi-commands-char.h \
qapi/qapi-commands-common.c qapi/qapi-commands-common.h \
qapi/qapi-commands-crypto.c qapi/qapi-commands-crypto.h \
qapi/qapi-commands-introspect.c qapi/qapi-commands-introspect.h \
qapi/qapi-commands-migration.c qapi/qapi-commands-migration.h \
qapi/qapi-commands-misc.c qapi/qapi-commands-misc.h \
qapi/qapi-commands-net.c qapi/qapi-commands-net.h \
qapi/qapi-commands-rocker.c qapi/qapi-commands-rocker.h \
qapi/qapi-commands-run-state.c qapi/qapi-commands-run-state.h \
qapi/qapi-commands-sockets.c qapi/qapi-commands-sockets.h \
qapi/qapi-commands-tpm.c qapi/qapi-commands-tpm.h \
qapi/qapi-commands-trace.c qapi/qapi-commands-trace.h \
qapi/qapi-commands-transaction.c qapi/qapi-commands-transaction.h \
qapi/qapi-commands-ui.c qapi/qapi-commands-ui.h \
qapi/qapi-events.c qapi/qapi-events.h \
qapi/qapi-events-block-core.c qapi/qapi-events-block-core.h \
qapi/qapi-events-block.c qapi/qapi-events-block.h \
qapi/qapi-events-char.c qapi/qapi-events-char.h \
qapi/qapi-events-common.c qapi/qapi-events-common.h \
qapi/qapi-events-crypto.c qapi/qapi-events-crypto.h \
qapi/qapi-events-introspect.c qapi/qapi-events-introspect.h \
qapi/qapi-events-migration.c qapi/qapi-events-migration.h \
qapi/qapi-events-misc.c qapi/qapi-events-misc.h \
qapi/qapi-events-net.c qapi/qapi-events-net.h \
qapi/qapi-events-rocker.c qapi/qapi-events-rocker.h \
qapi/qapi-events-run-state.c qapi/qapi-events-run-state.h \
qapi/qapi-events-sockets.c qapi/qapi-events-sockets.h \
qapi/qapi-events-tpm.c qapi/qapi-events-tpm.h \
qapi/qapi-events-trace.c qapi/qapi-events-trace.h \
qapi/qapi-events-transaction.c qapi/qapi-events-transaction.h \
qapi/qapi-events-ui.c qapi/qapi-events-ui.h \
qapi/qapi-introspect.h qapi/qapi-introspect.c \
qapi/qapi-doc.texi: \
qapi-gen-timestamp ;
qapi-gen-timestamp: $(qapi-modules) $(qapi-py)
$(call quiet-command,$(PYTHON_UTF8) $(SRC_PATH)/scripts/qapi-gen.py \
-o "qapi" -b $<, \
"GEN","$(@:%-timestamp=%)")
@>$@
QGALIB_GEN=$(addprefix qga/qapi-generated/, qga-qapi-types.h qga-qapi-visit.h qga-qmp-commands.h) QGALIB_GEN=$(addprefix qga/qapi-generated/, qga-qapi-types.h qga-qapi-visit.h qga-qapi-commands.h)
$(qga-obj-y): $(QGALIB_GEN) $(qga-obj-y): $(QGALIB_GEN)
qemu-ga$(EXESUF): $(qga-obj-y) $(COMMON_LDADDS) qemu-ga$(EXESUF): $(qga-obj-y) $(COMMON_LDADDS)
@ -601,7 +724,7 @@ clean:
rm -f trace/generated-tracers-dtrace.dtrace* rm -f trace/generated-tracers-dtrace.dtrace*
rm -f trace/generated-tracers-dtrace.h* rm -f trace/generated-tracers-dtrace.h*
rm -f $(foreach f,$(GENERATED_FILES),$(f) $(f)-timestamp) rm -f $(foreach f,$(GENERATED_FILES),$(f) $(f)-timestamp)
rm -rf qapi-generated rm -f qapi-gen-timestamp
rm -rf qga/qapi-generated rm -rf qga/qapi-generated
for d in $(ALL_SUBDIRS); do \ for d in $(ALL_SUBDIRS); do \
if test -d $$d; then $(MAKE) -C $$d $@ || exit 1; fi; \ if test -d $$d; then $(MAKE) -C $$d $@ || exit 1; fi; \
@ -809,13 +932,11 @@ qemu-monitor-info.texi: $(SRC_PATH)/hmp-commands-info.hx $(SRC_PATH)/scripts/hxt
qemu-img-cmds.texi: $(SRC_PATH)/qemu-img-cmds.hx $(SRC_PATH)/scripts/hxtool qemu-img-cmds.texi: $(SRC_PATH)/qemu-img-cmds.hx $(SRC_PATH)/scripts/hxtool
$(call quiet-command,sh $(SRC_PATH)/scripts/hxtool -t < $< > $@,"GEN","$@") $(call quiet-command,sh $(SRC_PATH)/scripts/hxtool -t < $< > $@,"GEN","$@")
docs/interop/qemu-qmp-qapi.texi docs/interop/qemu-ga-qapi.texi: $(SRC_PATH)/scripts/qapi2texi.py $(qapi-py) docs/interop/qemu-qmp-qapi.texi: qapi/qapi-doc.texi
@cp -p $< $@
docs/interop/qemu-qmp-qapi.texi: $(qapi-modules) docs/interop/qemu-ga-qapi.texi: qga/qapi-generated/qga-qapi-doc.texi
$(call quiet-command,$(PYTHON_UTF8) $(SRC_PATH)/scripts/qapi2texi.py $< > $@,"GEN","$@") @cp -p $< $@
docs/interop/qemu-ga-qapi.texi: $(SRC_PATH)/qga/qapi-schema.json
$(call quiet-command,$(PYTHON_UTF8) $(SRC_PATH)/scripts/qapi2texi.py $< > $@,"GEN","$@")
qemu.1: qemu-doc.texi qemu-options.texi qemu-monitor.texi qemu-monitor-info.texi qemu.1: qemu-doc.texi qemu-options.texi qemu-monitor.texi qemu-monitor-info.texi
qemu.1: qemu-option-trace.texi qemu.1: qemu-option-trace.texi

View File

@ -2,7 +2,60 @@
# Common libraries for tools and emulators # Common libraries for tools and emulators
stub-obj-y = stubs/ crypto/ stub-obj-y = stubs/ crypto/
util-obj-y = util/ qobject/ qapi/ 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/qapi-builtin-types.o
util-obj-y += qapi/qapi-types.o
util-obj-y += qapi/qapi-types-block-core.o
util-obj-y += qapi/qapi-types-block.o
util-obj-y += qapi/qapi-types-char.o
util-obj-y += qapi/qapi-types-common.o
util-obj-y += qapi/qapi-types-crypto.o
util-obj-y += qapi/qapi-types-introspect.o
util-obj-y += qapi/qapi-types-migration.o
util-obj-y += qapi/qapi-types-misc.o
util-obj-y += qapi/qapi-types-net.o
util-obj-y += qapi/qapi-types-rocker.o
util-obj-y += qapi/qapi-types-run-state.o
util-obj-y += qapi/qapi-types-sockets.o
util-obj-y += qapi/qapi-types-tpm.o
util-obj-y += qapi/qapi-types-trace.o
util-obj-y += qapi/qapi-types-transaction.o
util-obj-y += qapi/qapi-types-ui.o
util-obj-y += qapi/qapi-builtin-visit.o
util-obj-y += qapi/qapi-visit.o
util-obj-y += qapi/qapi-visit-block-core.o
util-obj-y += qapi/qapi-visit-block.o
util-obj-y += qapi/qapi-visit-char.o
util-obj-y += qapi/qapi-visit-common.o
util-obj-y += qapi/qapi-visit-crypto.o
util-obj-y += qapi/qapi-visit-introspect.o
util-obj-y += qapi/qapi-visit-migration.o
util-obj-y += qapi/qapi-visit-misc.o
util-obj-y += qapi/qapi-visit-net.o
util-obj-y += qapi/qapi-visit-rocker.o
util-obj-y += qapi/qapi-visit-run-state.o
util-obj-y += qapi/qapi-visit-sockets.o
util-obj-y += qapi/qapi-visit-tpm.o
util-obj-y += qapi/qapi-visit-trace.o
util-obj-y += qapi/qapi-visit-transaction.o
util-obj-y += qapi/qapi-visit-ui.o
util-obj-y += qapi/qapi-events.o
util-obj-y += qapi/qapi-events-block-core.o
util-obj-y += qapi/qapi-events-block.o
util-obj-y += qapi/qapi-events-char.o
util-obj-y += qapi/qapi-events-common.o
util-obj-y += qapi/qapi-events-crypto.o
util-obj-y += qapi/qapi-events-introspect.o
util-obj-y += qapi/qapi-events-migration.o
util-obj-y += qapi/qapi-events-misc.o
util-obj-y += qapi/qapi-events-net.o
util-obj-y += qapi/qapi-events-rocker.o
util-obj-y += qapi/qapi-events-run-state.o
util-obj-y += qapi/qapi-events-sockets.o
util-obj-y += qapi/qapi-events-tpm.o
util-obj-y += qapi/qapi-events-trace.o
util-obj-y += qapi/qapi-events-transaction.o
util-obj-y += qapi/qapi-events-ui.o
util-obj-y += qapi/qapi-introspect.o
chardev-obj-y = chardev/ chardev-obj-y = chardev/
@ -78,8 +131,24 @@ common-obj-$(CONFIG_FDT) += device_tree.o
###################################################################### ######################################################################
# qapi # qapi
common-obj-y += qmp-marshal.o common-obj-y += qapi/qapi-commands.o
common-obj-y += qmp-introspect.o common-obj-y += qapi/qapi-commands-block-core.o
common-obj-y += qapi/qapi-commands-block.o
common-obj-y += qapi/qapi-commands-char.o
common-obj-y += qapi/qapi-commands-common.o
common-obj-y += qapi/qapi-commands-crypto.o
common-obj-y += qapi/qapi-commands-introspect.o
common-obj-y += qapi/qapi-commands-migration.o
common-obj-y += qapi/qapi-commands-misc.o
common-obj-y += qapi/qapi-commands-net.o
common-obj-y += qapi/qapi-commands-rocker.o
common-obj-y += qapi/qapi-commands-run-state.o
common-obj-y += qapi/qapi-commands-sockets.o
common-obj-y += qapi/qapi-commands-tpm.o
common-obj-y += qapi/qapi-commands-trace.o
common-obj-y += qapi/qapi-commands-transaction.o
common-obj-y += qapi/qapi-commands-ui.o
common-obj-y += qapi/qapi-introspect.o
common-obj-y += qmp.o hmp.o common-obj-y += qmp.o hmp.o
endif endif
@ -102,8 +171,9 @@ target-obj-y += trace/
###################################################################### ######################################################################
# guest agent # guest agent
# FIXME: a few definitions from qapi-types.o/qapi-visit.o are needed # FIXME: a few definitions from qapi/qapi-types.o and
# by libqemuutil.a. These should be moved to a separate .json schema. # qapi/qapi-visit.o are needed by libqemuutil.a. These should be
# extracted into a QAPI schema module, or perhaps a separate schema.
qga-obj-y = qga/ qga-obj-y = qga/
qga-vss-dll-obj-y = qga/ qga-vss-dll-obj-y = qga/

View File

@ -28,9 +28,9 @@
#include "sysemu/arch_init.h" #include "sysemu/arch_init.h"
#include "hw/pci/pci.h" #include "hw/pci/pci.h"
#include "hw/audio/soundhw.h" #include "hw/audio/soundhw.h"
#include "qapi/qapi-commands-misc.h"
#include "qemu/config-file.h" #include "qemu/config-file.h"
#include "qemu/error-report.h" #include "qemu/error-report.h"
#include "qmp-commands.h"
#include "hw/acpi/acpi.h" #include "hw/acpi/acpi.h"
#include "qemu/help_option.h" #include "qemu/help_option.h"

View File

@ -26,7 +26,6 @@
#include "hw/boards.h" #include "hw/boards.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/visitor.h" #include "qapi/visitor.h"
#include "qapi-visit.h"
#include "qemu/config-file.h" #include "qemu/config-file.h"
#include "qom/object_interfaces.h" #include "qom/object_interfaces.h"
#include "hw/virtio/virtio-crypto.h" #include "hw/virtio/virtio-crypto.h"

View File

@ -9,12 +9,13 @@
* This work is licensed under the terms of the GNU GPL, version 2 or later. * This work is licensed under the terms of the GNU GPL, version 2 or later.
* See the COPYING file in the top-level directory. * See the COPYING file in the top-level directory.
*/ */
#include "qemu/osdep.h" #include "qemu/osdep.h"
#include "sysemu/hostmem.h" #include "sysemu/hostmem.h"
#include "hw/boards.h" #include "hw/boards.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qapi-builtin-visit.h"
#include "qapi/visitor.h" #include "qapi/visitor.h"
#include "qapi-visit.h"
#include "qemu/config-file.h" #include "qemu/config-file.h"
#include "qom/object_interfaces.h" #include "qom/object_interfaces.h"

View File

@ -30,8 +30,8 @@
#include "sysemu/kvm.h" #include "sysemu/kvm.h"
#include "sysemu/balloon.h" #include "sysemu/balloon.h"
#include "trace-root.h" #include "trace-root.h"
#include "qmp-commands.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qapi-commands-misc.h"
#include "qapi/qmp/qerror.h" #include "qapi/qmp/qerror.h"
static QEMUBalloonEvent *balloon_event_fn; static QEMUBalloonEvent *balloon_event_fn;

View File

@ -32,7 +32,6 @@
#include "qemu/module.h" #include "qemu/module.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qmp/qdict.h" #include "qapi/qmp/qdict.h"
#include "qapi/qmp/qerror.h"
#include "qapi/qmp/qjson.h" #include "qapi/qmp/qjson.h"
#include "qapi/qmp/qstring.h" #include "qapi/qmp/qstring.h"
#include "sysemu/block-backend.h" #include "sysemu/block-backend.h"
@ -42,7 +41,6 @@
#include "qemu/coroutine.h" #include "qemu/coroutine.h"
#include "block/qapi.h" #include "block/qapi.h"
#include "qemu/timer.h" #include "qemu/timer.h"
#include "qapi-event.h"
#include "qemu/cutils.h" #include "qemu/cutils.h"
#include "qemu/id.h" #include "qemu/id.h"

View File

@ -17,8 +17,8 @@
#include "block/throttle-groups.h" #include "block/throttle-groups.h"
#include "sysemu/blockdev.h" #include "sysemu/blockdev.h"
#include "sysemu/sysemu.h" #include "sysemu/sysemu.h"
#include "qapi-event.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qapi-events-block.h"
#include "qemu/id.h" #include "qemu/id.h"
#include "qemu/option.h" #include "qemu/option.h"
#include "trace.h" #include "trace.h"

View File

@ -24,9 +24,9 @@
#include "sysemu/block-backend.h" #include "sysemu/block-backend.h"
#include "crypto/block.h" #include "crypto/block.h"
#include "qapi/opts-visitor.h" #include "qapi/opts-visitor.h"
#include "qapi/qapi-visit-crypto.h"
#include "qapi/qmp/qdict.h" #include "qapi/qmp/qdict.h"
#include "qapi/qobject-input-visitor.h" #include "qapi/qobject-input-visitor.h"
#include "qapi-visit.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qemu/option.h" #include "qemu/option.h"
#include "block/crypto.h" #include "block/crypto.h"

View File

@ -37,8 +37,8 @@
#include "qemu/iov.h" #include "qemu/iov.h"
#include "qemu/option.h" #include "qemu/option.h"
#include "qemu/uuid.h" #include "qemu/uuid.h"
#include "qmp-commands.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qapi-commands-misc.h"
#include "qapi/qmp/qdict.h" #include "qapi/qmp/qdict.h"
#include "qapi/qmp/qstring.h" #include "qapi/qmp/qstring.h"
#include "crypto/secret.h" #include "crypto/secret.h"

View File

@ -33,7 +33,7 @@
#include "block/block_int.h" #include "block/block_int.h"
#include "qemu/module.h" #include "qemu/module.h"
#include "qemu/option.h" #include "qemu/option.h"
#include "qapi-visit.h" #include "qapi/qapi-visit-sockets.h"
#include "qapi/qobject-input-visitor.h" #include "qapi/qobject-input-visitor.h"
#include "qapi/qobject-output-visitor.h" #include "qapi/qobject-output-visitor.h"
#include "qapi/qmp/qdict.h" #include "qapi/qmp/qdict.h"

View File

@ -35,9 +35,9 @@
#include "qemu/uri.h" #include "qemu/uri.h"
#include "qemu/cutils.h" #include "qemu/cutils.h"
#include "sysemu/sysemu.h" #include "sysemu/sysemu.h"
#include "qapi/qapi-visit-block-core.h"
#include "qapi/qmp/qdict.h" #include "qapi/qmp/qdict.h"
#include "qapi/qmp/qstring.h" #include "qapi/qmp/qstring.h"
#include "qapi-visit.h"
#include "qapi/qobject-input-visitor.h" #include "qapi/qobject-input-visitor.h"
#include "qapi/qobject-output-visitor.h" #include "qapi/qobject-output-visitor.h"
#include <nfsc/libnfs.h> #include <nfsc/libnfs.h>

View File

@ -27,10 +27,10 @@
#include "block/block_int.h" #include "block/block_int.h"
#include "block/throttle-groups.h" #include "block/throttle-groups.h"
#include "block/write-threshold.h" #include "block/write-threshold.h"
#include "qmp-commands.h"
#include "qapi-visit.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qapi-commands-block-core.h"
#include "qapi/qobject-output-visitor.h" #include "qapi/qobject-output-visitor.h"
#include "qapi/qapi-visit-block-core.h"
#include "qapi/qmp/qbool.h" #include "qapi/qmp/qbool.h"
#include "qapi/qmp/qdict.h" #include "qapi/qmp/qdict.h"
#include "qapi/qmp/qlist.h" #include "qapi/qmp/qlist.h"

View File

@ -30,16 +30,14 @@
#include "block/qcow2.h" #include "block/qcow2.h"
#include "qemu/error-report.h" #include "qemu/error-report.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qmp/qerror.h" #include "qapi/qapi-events-block-core.h"
#include "qapi/qmp/qdict.h" #include "qapi/qmp/qdict.h"
#include "qapi/qmp/qstring.h" #include "qapi/qmp/qstring.h"
#include "qapi-event.h"
#include "trace.h" #include "trace.h"
#include "qemu/option_int.h" #include "qemu/option_int.h"
#include "qemu/cutils.h" #include "qemu/cutils.h"
#include "qemu/bswap.h" #include "qemu/bswap.h"
#include "qapi/opts-visitor.h" #include "qapi/opts-visitor.h"
#include "qapi-visit.h"
#include "block/crypto.h" #include "block/crypto.h"
/* /*

View File

@ -18,11 +18,11 @@
#include "qemu/option.h" #include "qemu/option.h"
#include "block/block_int.h" #include "block/block_int.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qapi-events-block.h"
#include "qapi/qmp/qdict.h" #include "qapi/qmp/qdict.h"
#include "qapi/qmp/qerror.h" #include "qapi/qmp/qerror.h"
#include "qapi/qmp/qlist.h" #include "qapi/qmp/qlist.h"
#include "qapi/qmp/qstring.h" #include "qapi/qmp/qstring.h"
#include "qapi-event.h"
#include "crypto/hash.h" #include "crypto/hash.h"
#define HASH_LENGTH 32 #define HASH_LENGTH 32

View File

@ -13,8 +13,8 @@
*/ */
#include "qemu/osdep.h" #include "qemu/osdep.h"
#include "qapi-visit.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qapi-visit-sockets.h"
#include "qapi/qmp/qdict.h" #include "qapi/qmp/qdict.h"
#include "qapi/qobject-input-visitor.h" #include "qapi/qobject-input-visitor.h"
#include "qemu/uri.h" #include "qemu/uri.h"

View File

@ -34,7 +34,7 @@
#include "qemu/cutils.h" #include "qemu/cutils.h"
#include "qemu/sockets.h" #include "qemu/sockets.h"
#include "qemu/uri.h" #include "qemu/uri.h"
#include "qapi-visit.h" #include "qapi/qapi-visit-sockets.h"
#include "qapi/qmp/qdict.h" #include "qapi/qmp/qdict.h"
#include "qapi/qmp/qstring.h" #include "qapi/qmp/qstring.h"
#include "qapi/qobject-input-visitor.h" #include "qapi/qobject-input-visitor.h"

View File

@ -30,7 +30,7 @@
#include "qemu/thread.h" #include "qemu/thread.h"
#include "sysemu/qtest.h" #include "sysemu/qtest.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi-visit.h" #include "qapi/qapi-visit-block-core.h"
#include "qom/object.h" #include "qom/object.h"
#include "qom/object_interfaces.h" #include "qom/object_interfaces.h"

View File

@ -15,9 +15,9 @@
#include "qemu/coroutine.h" #include "qemu/coroutine.h"
#include "block/write-threshold.h" #include "block/write-threshold.h"
#include "qemu/notify.h" #include "qemu/notify.h"
#include "qapi-event.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qmp-commands.h" #include "qapi/qapi-commands-block-core.h"
#include "qapi/qapi-events-block-core.h"
uint64_t bdrv_write_threshold_get(const BlockDriverState *bs) uint64_t bdrv_write_threshold_get(const BlockDriverState *bs)
{ {

View File

@ -14,8 +14,8 @@
#include "sysemu/block-backend.h" #include "sysemu/block-backend.h"
#include "hw/block/block.h" #include "hw/block/block.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qapi-commands-block.h"
#include "sysemu/sysemu.h" #include "sysemu/sysemu.h"
#include "qmp-commands.h"
#include "block/nbd.h" #include "block/nbd.h"
#include "io/channel-socket.h" #include "io/channel-socket.h"
#include "io/net-listener.h" #include "io/net-listener.h"

View File

@ -40,10 +40,12 @@
#include "qemu/error-report.h" #include "qemu/error-report.h"
#include "qemu/option.h" #include "qemu/option.h"
#include "qemu/config-file.h" #include "qemu/config-file.h"
#include "qapi/qapi-commands-block.h"
#include "qapi/qapi-commands-transaction.h"
#include "qapi/qapi-visit-block-core.h"
#include "qapi/qmp/qdict.h" #include "qapi/qmp/qdict.h"
#include "qapi/qmp/qnum.h" #include "qapi/qmp/qnum.h"
#include "qapi/qmp/qstring.h" #include "qapi/qmp/qstring.h"
#include "qapi-visit.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qmp/qerror.h" #include "qapi/qmp/qerror.h"
#include "qapi/qmp/qlist.h" #include "qapi/qmp/qlist.h"
@ -51,7 +53,6 @@
#include "sysemu/sysemu.h" #include "sysemu/sysemu.h"
#include "sysemu/iothread.h" #include "sysemu/iothread.h"
#include "block/block_int.h" #include "block/block_int.h"
#include "qmp-commands.h"
#include "block/trace.h" #include "block/trace.h"
#include "sysemu/arch_init.h" #include "sysemu/arch_init.h"
#include "sysemu/qtest.h" #include "sysemu/qtest.h"

View File

@ -30,11 +30,11 @@
#include "block/block_int.h" #include "block/block_int.h"
#include "sysemu/block-backend.h" #include "sysemu/block-backend.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qapi-events-block-core.h"
#include "qapi/qmp/qerror.h" #include "qapi/qmp/qerror.h"
#include "qemu/coroutine.h" #include "qemu/coroutine.h"
#include "qemu/id.h" #include "qemu/id.h"
#include "qemu/timer.h" #include "qemu/timer.h"
#include "qapi-event.h"
/* Right now, this mutex is only needed to synchronize accesses to job->busy /* Right now, this mutex is only needed to synchronize accesses to job->busy
* and job->sleep_timer, such as concurrent calls to block_job_do_yield and * and job->sleep_timer, such as concurrent calls to block_job_do_yield and

View File

@ -24,7 +24,7 @@
#include "qemu/osdep.h" #include "qemu/osdep.h"
#include "qemu/error-report.h" #include "qemu/error-report.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi-visit.h" #include "qapi/qmp/qerror.h"
#include "sysemu/replay.h" #include "sysemu/replay.h"
#include "chardev/char-fe.h" #include "chardev/char-fe.h"

View File

@ -24,8 +24,8 @@
#include "qemu/osdep.h" #include "qemu/osdep.h"
#include "chardev/char.h" #include "chardev/char.h"
#include "qmp-commands.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qapi-commands-char.h"
#include "qemu/base64.h" #include "qemu/base64.h"
#include "qemu/option.h" #include "qemu/option.h"

View File

@ -31,6 +31,7 @@
#include "qemu/option.h" #include "qemu/option.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/clone-visitor.h" #include "qapi/clone-visitor.h"
#include "qapi/qapi-visit-sockets.h"
#include "chardev/char-io.h" #include "chardev/char-io.h"

View File

@ -29,9 +29,9 @@
#include "qemu/config-file.h" #include "qemu/config-file.h"
#include "qemu/error-report.h" #include "qemu/error-report.h"
#include "chardev/char.h" #include "chardev/char.h"
#include "qmp-commands.h"
#include "qapi-visit.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qapi-commands-char.h"
#include "qapi/qmp/qerror.h"
#include "sysemu/replay.h" #include "sysemu/replay.h"
#include "qemu/help_option.h" #include "qemu/help_option.h"
#include "qemu/option.h" #include "qemu/option.h"

1
configure vendored
View File

@ -7053,7 +7053,6 @@ DIRS="tests tests/tcg tests/tcg/cris tests/tcg/lm32 tests/libqos tests/qapi-sche
DIRS="$DIRS docs docs/interop fsdev scsi" DIRS="$DIRS docs docs/interop fsdev scsi"
DIRS="$DIRS pc-bios/optionrom pc-bios/spapr-rtas pc-bios/s390-ccw" DIRS="$DIRS pc-bios/optionrom pc-bios/spapr-rtas pc-bios/s390-ccw"
DIRS="$DIRS roms/seabios roms/vgabios" DIRS="$DIRS roms/seabios roms/vgabios"
DIRS="$DIRS qapi-generated"
FILES="Makefile tests/tcg/Makefile qdict-test-data.txt" FILES="Makefile tests/tcg/Makefile qdict-test-data.txt"
FILES="$FILES tests/tcg/cris/Makefile tests/tcg/cris/.gdbinit" FILES="$FILES tests/tcg/cris/Makefile tests/tcg/cris/.gdbinit"
FILES="$FILES tests/tcg/lm32/Makefile tests/tcg/xtensa/Makefile po/Makefile" FILES="$FILES tests/tcg/lm32/Makefile tests/tcg/xtensa/Makefile po/Makefile"

4
cpus.c
View File

@ -27,6 +27,8 @@
#include "cpu.h" #include "cpu.h"
#include "monitor/monitor.h" #include "monitor/monitor.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qapi-commands-misc.h"
#include "qapi/qapi-events-run-state.h"
#include "qapi/qmp/qerror.h" #include "qapi/qmp/qerror.h"
#include "qemu/error-report.h" #include "qemu/error-report.h"
#include "sysemu/sysemu.h" #include "sysemu/sysemu.h"
@ -38,7 +40,6 @@
#include "sysemu/hax.h" #include "sysemu/hax.h"
#include "sysemu/hvf.h" #include "sysemu/hvf.h"
#include "sysemu/whpx.h" #include "sysemu/whpx.h"
#include "qmp-commands.h"
#include "exec/exec-all.h" #include "exec/exec-all.h"
#include "qemu/thread.h" #include "qemu/thread.h"
@ -49,7 +50,6 @@
#include "qemu/bitmap.h" #include "qemu/bitmap.h"
#include "qemu/seqlock.h" #include "qemu/seqlock.h"
#include "tcg.h" #include "tcg.h"
#include "qapi-event.h"
#include "hw/nmi.h" #include "hw/nmi.h"
#include "sysemu/replay.h" #include "sysemu/replay.h"
#include "hw/boards.h" #include "hw/boards.h"

View File

@ -15,7 +15,7 @@
#ifndef QCRYPTO_CIPHERPRIV_H #ifndef QCRYPTO_CIPHERPRIV_H
#define QCRYPTO_CIPHERPRIV_H #define QCRYPTO_CIPHERPRIV_H
#include "qapi-types.h" #include "qapi/qapi-types-crypto.h"
typedef struct QCryptoCipherDriver QCryptoCipherDriver; typedef struct QCryptoCipherDriver QCryptoCipherDriver;

View File

@ -647,7 +647,7 @@ name an event 'MAX', since the generator also produces a C enumeration
of all event names with a generated _MAX value at the end. When of all event names with a generated _MAX value at the end. When
'data' is also specified, additional info will be included in the 'data' is also specified, additional info will be included in the
event, with similar semantics to a 'struct' expression. Finally there event, with similar semantics to a 'struct' expression. Finally there
will be C API generated in qapi-event.h; when called by QEMU code, a will be C API generated in qapi-events.h; when called by QEMU code, a
message with timestamp will be emitted on the wire. message with timestamp will be emitted on the wire.
An example event is: An example event is:
@ -899,12 +899,13 @@ the names of built-in types. Clients should examine member
== Code generation == == Code generation ==
Schemas are fed into five scripts to generate all the code/files that, The QAPI code generator qapi-gen.py generates code and documentation
paired with the core QAPI libraries, comprise everything required to from the schema. Together with the core QAPI libraries, this code
take JSON commands read in by a Client JSON Protocol server, unmarshal provides everything required to take JSON commands read in by a Client
the arguments into the underlying C types, call into the corresponding JSON Protocol server, unmarshal the arguments into the underlying C
C function, map the response back to a Client JSON Protocol response types, call into the corresponding C function, map the response back
to be returned to the user, and introspect the commands. to a Client JSON Protocol response to be returned to the user, and
introspect the commands.
As an example, we'll use the following schema, which describes a As an example, we'll use the following schema, which describes a
single complex user-defined type, along with command which takes a single complex user-defined type, along with command which takes a
@ -922,18 +923,23 @@ qmp_my_command(); everything else is produced by the generator.
{ 'event': 'MY_EVENT' } { 'event': 'MY_EVENT' }
We run qapi-gen.py like this:
$ python scripts/qapi-gen.py --output-dir="qapi-generated" \
--prefix="example-" example-schema.json
For a more thorough look at generated code, the testsuite includes For a more thorough look at generated code, the testsuite includes
tests/qapi-schema/qapi-schema-tests.json that covers more examples of tests/qapi-schema/qapi-schema-tests.json that covers more examples of
what the generator will accept, and compiles the resulting C code as what the generator will accept, and compiles the resulting C code as
part of 'make check-unit'. part of 'make check-unit'.
=== scripts/qapi-types.py === === Code generated for QAPI types ===
Used to generate the C types defined by a schema, along with The following files are created:
supporting code. The following files are created:
$(prefix)qapi-types.h - C types corresponding to types defined in $(prefix)qapi-types.h - C types corresponding to types defined in
the schema you pass in the schema
$(prefix)qapi-types.c - Cleanup functions for the above C types $(prefix)qapi-types.c - Cleanup functions for the above C types
The $(prefix) is an optional parameter used as a namespace to keep the The $(prefix) is an optional parameter used as a namespace to keep the
@ -943,8 +949,6 @@ created code.
Example: Example:
$ python scripts/qapi-types.py --output-dir="qapi-generated" \
--prefix="example-" example-schema.json
$ cat qapi-generated/example-qapi-types.h $ cat qapi-generated/example-qapi-types.h
[Uninteresting stuff omitted...] [Uninteresting stuff omitted...]
@ -1008,28 +1012,26 @@ Example:
visit_free(v); visit_free(v);
} }
=== scripts/qapi-visit.py === === Code generated for visiting QAPI types ===
Used to generate the visitor functions used to walk through and These are the visitor functions used to walk through and convert
convert between a native QAPI C data structure and some other format between a native QAPI C data structure and some other format (such as
(such as QObject); the generated functions are named visit_type_FOO() QObject); the generated functions are named visit_type_FOO() and
and visit_type_FOO_members(). visit_type_FOO_members().
The following files are generated: The following files are generated:
$(prefix)qapi-visit.c: visitor function for a particular C type, used $(prefix)qapi-visit.c: Visitor function for a particular C type, used
to automagically convert QObjects into the to automagically convert QObjects into the
corresponding C type and vice-versa, as well corresponding C type and vice-versa, as well
as for deallocating memory for an existing C as for deallocating memory for an existing C
type type
$(prefix)qapi-visit.h: declarations for previously mentioned visitor $(prefix)qapi-visit.h: Declarations for previously mentioned visitor
functions functions
Example: Example:
$ python scripts/qapi-visit.py --output-dir="qapi-generated"
--prefix="example-" example-schema.json
$ cat qapi-generated/example-qapi-visit.h $ cat qapi-generated/example-qapi-visit.h
[Uninteresting stuff omitted...] [Uninteresting stuff omitted...]
@ -1137,31 +1139,23 @@ Example:
error_propagate(errp, err); error_propagate(errp, err);
} }
=== scripts/qapi-commands.py === === Code generated for commands ===
Used to generate the marshaling/dispatch functions for the commands These are the marshaling/dispatch functions for the commands defined
defined in the schema. The generated code implements in the schema. The generated code provides qmp_marshal_COMMAND(), and
qmp_marshal_COMMAND() (registered automatically), and declares declares qmp_COMMAND() that the user must implement.
qmp_COMMAND() that the user must implement. The following files are
generated:
$(prefix)qmp-marshal.c: command marshal/dispatch functions for each The following files are generated:
QMP command defined in the schema. Functions
generated by qapi-visit.py are used to
convert QObjects received from the wire into
function parameters, and uses the same
visitor functions to convert native C return
values to QObjects from transmission back
over the wire.
$(prefix)qmp-commands.h: Function prototypes for the QMP commands $(prefix)qapi-commands.c: Command marshal/dispatch functions for each
specified in the schema. QMP command defined in the schema
$(prefix)qapi-commands.h: Function prototypes for the QMP commands
specified in the schema
Example: Example:
$ python scripts/qapi-commands.py --output-dir="qapi-generated" $ cat qapi-generated/example-qapi-commands.h
--prefix="example-" example-schema.json
$ cat qapi-generated/example-qmp-commands.h
[Uninteresting stuff omitted...] [Uninteresting stuff omitted...]
#ifndef EXAMPLE_QMP_COMMANDS_H #ifndef EXAMPLE_QMP_COMMANDS_H
@ -1176,7 +1170,7 @@ Example:
void qmp_marshal_my_command(QDict *args, QObject **ret, Error **errp); void qmp_marshal_my_command(QDict *args, QObject **ret, Error **errp);
#endif #endif
$ cat qapi-generated/example-qmp-marshal.c $ cat qapi-generated/example-qapi-commands.c
[Uninteresting stuff omitted...] [Uninteresting stuff omitted...]
static void qmp_marshal_output_UserDefOne(UserDefOne *ret_in, QObject **ret_out, Error **errp) static void qmp_marshal_output_UserDefOne(UserDefOne *ret_in, QObject **ret_out, Error **errp)
@ -1242,21 +1236,21 @@ Example:
qmp_marshal_my_command, QCO_NO_OPTIONS); qmp_marshal_my_command, QCO_NO_OPTIONS);
} }
=== scripts/qapi-event.py === === Code generated for events ===
Used to generate the event-related C code defined by a schema, with This is the code related to events defined in the schema, providing
implementations for qapi_event_send_FOO(). The following files are qapi_event_send_EVENT().
created:
$(prefix)qapi-event.h - Function prototypes for each event type, plus an The following files are created:
$(prefix)qapi-events.h - Function prototypes for each event type, plus an
enumeration of all event names enumeration of all event names
$(prefix)qapi-event.c - Implementation of functions to send an event
$(prefix)qapi-events.c - Implementation of functions to send an event
Example: Example:
$ python scripts/qapi-event.py --output-dir="qapi-generated" $ cat qapi-generated/example-qapi-events.h
--prefix="example-" example-schema.json
$ cat qapi-generated/example-qapi-event.h
[Uninteresting stuff omitted...] [Uninteresting stuff omitted...]
#ifndef EXAMPLE_QAPI_EVENT_H #ifndef EXAMPLE_QAPI_EVENT_H
@ -1279,7 +1273,7 @@ Example:
extern const char *const example_QAPIEvent_lookup[]; extern const char *const example_QAPIEvent_lookup[];
#endif #endif
$ cat qapi-generated/example-qapi-event.c $ cat qapi-generated/example-qapi-events.c
[Uninteresting stuff omitted...] [Uninteresting stuff omitted...]
void qapi_event_send_my_event(Error **errp) void qapi_event_send_my_event(Error **errp)
@ -1301,25 +1295,25 @@ Example:
QDECREF(qmp); QDECREF(qmp);
} }
const char *const example_QAPIEvent_lookup[] = { const QEnumLookup example_QAPIEvent_lookup = {
[EXAMPLE_QAPI_EVENT_MY_EVENT] = "MY_EVENT", .array = (const char *const[]) {
[EXAMPLE_QAPI_EVENT__MAX] = NULL, [EXAMPLE_QAPI_EVENT_MY_EVENT] = "MY_EVENT",
},
.size = EXAMPLE_QAPI_EVENT__MAX
}; };
=== scripts/qapi-introspect.py === === Code generated for introspection ===
Used to generate the introspection C code for a schema. The following The following files are created:
files are created:
$(prefix)qmp-introspect.c - Defines a string holding a JSON $(prefix)qapi-introspect.c - Defines a string holding a JSON
description of the schema. description of the schema
$(prefix)qmp-introspect.h - Declares the above string.
$(prefix)qapi-introspect.h - Declares the above string
Example: Example:
$ python scripts/qapi-introspect.py --output-dir="qapi-generated" $ cat qapi-generated/example-qapi-introspect.h
--prefix="example-" example-schema.json
$ cat qapi-generated/example-qmp-introspect.h
[Uninteresting stuff omitted...] [Uninteresting stuff omitted...]
#ifndef EXAMPLE_QMP_INTROSPECT_H #ifndef EXAMPLE_QMP_INTROSPECT_H
@ -1328,7 +1322,7 @@ Example:
extern const char example_qmp_schema_json[]; extern const char example_qmp_schema_json[];
#endif #endif
$ cat qapi-generated/example-qmp-introspect.c $ cat qapi-generated/example-qapi-introspect.c
[Uninteresting stuff omitted...] [Uninteresting stuff omitted...]
const char example_qmp_schema_json[] = "[" const char example_qmp_schema_json[] = "["

View File

@ -15,8 +15,8 @@ start with docs/interop/qmp-intro.txt.
Generally speaking, the following steps should be taken in order to write a Generally speaking, the following steps should be taken in order to write a
new QMP command. new QMP command.
1. Write the command's and type(s) specification in the QAPI schema file 1. Define the command and any types it needs in the appropriate QAPI
(qapi-schema.json in the root source directory) schema module.
2. Write the QMP command itself, which is a regular C function. Preferably, 2. Write the QMP command itself, which is a regular C function. Preferably,
the command should be exported by some QEMU subsystem. But it can also be the command should be exported by some QEMU subsystem. But it can also be
@ -36,9 +36,9 @@ very simple and get more complex as we progress.
For all the examples in the next sections, the test setup is the same and is For all the examples in the next sections, the test setup is the same and is
shown here. shown here.
First, QEMU should be started as: First, QEMU should be started like this:
# /path/to/your/source/qemu [...] \ # qemu-system-TARGET [...] \
-chardev socket,id=qmp,port=4444,host=localhost,server \ -chardev socket,id=qmp,port=4444,host=localhost,server \
-mon chardev=qmp,mode=control,pretty=on -mon chardev=qmp,mode=control,pretty=on
@ -88,8 +88,9 @@ command carries some meaningful action in QEMU but here it will just print
Our command will be called "hello-world". It takes no arguments, nor does it Our command will be called "hello-world". It takes no arguments, nor does it
return any data. return any data.
The first step is to add the following line to the bottom of the The first step is defining the command in the appropriate QAPI schema
qapi-schema.json file: module. We pick module qapi/misc.json, and add the following line at
the bottom:
{ 'command': 'hello-world' } { 'command': 'hello-world' }
@ -178,7 +179,7 @@ described in the "Testing" section and then send two commands:
} }
} }
You should see "Hello, world" and "we love qemu" in the terminal running qemu, You should see "Hello, world" and "We love qemu" in the terminal running qemu,
if you don't see these strings, then something went wrong. if you don't see these strings, then something went wrong.
=== Errors === === Errors ===
@ -220,32 +221,25 @@ The QMP server's response should be:
} }
} }
As a general rule, all QMP errors should use ERROR_CLASS_GENERIC_ERROR Note that error_setg() produces a "GenericError" class. In general,
(done by default when using error_setg()). There are two exceptions to all QMP errors should have that error class. There are two exceptions
this rule: to this rule:
1. A non-generic ErrorClass value exists* for the failure you want to report 1. To support a management application's need to recognize a specific
(eg. DeviceNotFound) error for special handling
2. Management applications have to take special action on the failure you 2. Backward compatibility
want to report, hence you have to add a new ErrorClass value so that they
can check for it
If the failure you want to report falls into one of the two cases above, If the failure you want to report falls into one of the two cases above,
use error_set() with a second argument of an ErrorClass value. use error_set() with a second argument of an ErrorClass value.
* All existing ErrorClass values are defined in the qapi-schema.json file
=== Command Documentation === === Command Documentation ===
There's only one step missing to make "hello-world"'s implementation complete, There's only one step missing to make "hello-world"'s implementation complete,
and that's its documentation in the schema file. and that's its documentation in the schema file.
This is very important. No QMP command will be accepted in QEMU without proper
documentation.
There are many examples of such documentation in the schema file already, but There are many examples of such documentation in the schema file already, but
here goes "hello-world"'s new entry for the qapi-schema.json file: here goes "hello-world"'s new entry for qapi/misc.json:
## ##
# @hello-world # @hello-world
@ -425,8 +419,7 @@ There are a number of things to be noticed:
allocated by the implementation. This is so because the QAPI also generates allocated by the implementation. This is so because the QAPI also generates
a function to free its types and it cannot distinguish between dynamically a function to free its types and it cannot distinguish between dynamically
or statically allocated strings or statically allocated strings
6. You have to include the "qmp-commands.h" header file in qemu-timer.c, 6. You have to include "qapi/qapi-commands-misc.h" in qemu-timer.c
otherwise qemu won't build
Time to test the new command. Build qemu, run it as described in the "Testing" Time to test the new command. Build qemu, run it as described in the "Testing"
section and try this: section and try this:

View File

@ -78,7 +78,8 @@ Escape character is '^]'.
} }
} }
Please, refer to the qapi-schema.json file for a complete command reference. Please refer to docs/interop/qemu-qmp-ref.* for a complete command
reference, generated from qapi/qapi-schema.json.
QMP wiki page QMP wiki page
------------- -------------

View File

@ -8,8 +8,7 @@ These operations are normally used with migration (see migration.txt),
however it is also possible to save the state of all devices to file, however it is also possible to save the state of all devices to file,
without saving the RAM or the block devices of the VM. without saving the RAM or the block devices of the VM.
This operation is called "xen-save-devices-state" (see The save operation is available as QMP command xen-save-devices-state.
qmp-commands.txt)
The binary format used in the file is the following: The binary format used in the file is the following:

4
dump.c
View File

@ -23,9 +23,9 @@
#include "sysemu/memory_mapping.h" #include "sysemu/memory_mapping.h"
#include "sysemu/cpus.h" #include "sysemu/cpus.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qapi-commands-misc.h"
#include "qapi/qapi-events-misc.h"
#include "qapi/qmp/qerror.h" #include "qapi/qmp/qerror.h"
#include "qmp-commands.h"
#include "qapi-event.h"
#include "qemu/error-report.h" #include "qemu/error-report.h"
#include "hw/misc/vmcoreinfo.h" #include "hw/misc/vmcoreinfo.h"

12
hmp.c
View File

@ -23,17 +23,25 @@
#include "qemu/config-file.h" #include "qemu/config-file.h"
#include "qemu/option.h" #include "qemu/option.h"
#include "qemu/timer.h" #include "qemu/timer.h"
#include "qmp-commands.h"
#include "qemu/sockets.h" #include "qemu/sockets.h"
#include "monitor/monitor.h" #include "monitor/monitor.h"
#include "monitor/qdev.h" #include "monitor/qdev.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/opts-visitor.h" #include "qapi/opts-visitor.h"
#include "qapi/qapi-builtin-visit.h"
#include "qapi/qapi-commands-block.h"
#include "qapi/qapi-commands-char.h"
#include "qapi/qapi-commands-migration.h"
#include "qapi/qapi-commands-misc.h"
#include "qapi/qapi-commands-net.h"
#include "qapi/qapi-commands-rocker.h"
#include "qapi/qapi-commands-run-state.h"
#include "qapi/qapi-commands-tpm.h"
#include "qapi/qapi-commands-ui.h"
#include "qapi/qmp/qdict.h" #include "qapi/qmp/qdict.h"
#include "qapi/qmp/qerror.h" #include "qapi/qmp/qerror.h"
#include "qapi/string-input-visitor.h" #include "qapi/string-input-visitor.h"
#include "qapi/string-output-visitor.h" #include "qapi/string-output-visitor.h"
#include "qapi-visit.h"
#include "qom/object_interfaces.h" #include "qom/object_interfaces.h"
#include "ui/console.h" #include "ui/console.h"
#include "block/nbd.h" #include "block/nbd.h"

View File

@ -27,8 +27,8 @@
#include "qemu/config-file.h" #include "qemu/config-file.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/opts-visitor.h" #include "qapi/opts-visitor.h"
#include "qapi-visit.h" #include "qapi/qapi-events-run-state.h"
#include "qapi-event.h" #include "qapi/qapi-visit-misc.h"
#include "qemu/error-report.h" #include "qemu/error-report.h"
#include "qemu/option.h" #include "qemu/option.h"

View File

@ -2,7 +2,7 @@
#include "hw/boards.h" #include "hw/boards.h"
#include "hw/acpi/cpu.h" #include "hw/acpi/cpu.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi-event.h" #include "qapi/qapi-events-misc.h"
#include "trace.h" #include "trace.h"
#include "sysemu/numa.h" #include "sysemu/numa.h"

View File

@ -5,8 +5,8 @@
#include "hw/boards.h" #include "hw/boards.h"
#include "hw/qdev-core.h" #include "hw/qdev-core.h"
#include "trace.h" #include "trace.h"
#include "qapi-event.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qapi-events-misc.h"
#define MEMORY_SLOTS_NUMBER "MDNR" #define MEMORY_SLOTS_NUMBER "MDNR"
#define MEMORY_HOTPLUG_IO_REGION "HPMR" #define MEMORY_HOTPLUG_IO_REGION "HPMR"

View File

@ -12,7 +12,7 @@
#include "qemu/osdep.h" #include "qemu/osdep.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qmp-commands.h" #include "qapi/qapi-commands-misc.h"
#include "hw/acpi/acpi.h" #include "hw/acpi/acpi.h"
#include "hw/acpi/aml-build.h" #include "hw/acpi/aml-build.h"
#include "hw/acpi/vmgenid.h" #include "hw/acpi/vmgenid.h"

View File

@ -12,6 +12,7 @@
#include "sysemu/block-backend.h" #include "sysemu/block-backend.h"
#include "hw/block/block.h" #include "hw/block/block.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qapi-types-block.h"
#include "qemu/error-report.h" #include "qemu/error-report.h"
void blkconf_serial(BlockConf *conf, char **serial) void blkconf_serial(BlockConf *conf, char **serial)

View File

@ -32,6 +32,7 @@
#include "qemu/osdep.h" #include "qemu/osdep.h"
#include "sysemu/block-backend.h" #include "sysemu/block-backend.h"
#include "qapi/qapi-types-block.h"
#include "qemu/bswap.h" #include "qemu/bswap.h"
#include "hw/block/block.h" #include "hw/block/block.h"
#include "trace.h" #include "trace.h"

View File

@ -15,8 +15,8 @@
#include "qemu/error-report.h" #include "qemu/error-report.h"
#include "trace.h" #include "trace.h"
#include "hw/virtio/virtio-serial.h" #include "hw/virtio/virtio-serial.h"
#include "qapi-event.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qapi-events-char.h"
#define TYPE_VIRTIO_CONSOLE_SERIAL_PORT "virtserialport" #define TYPE_VIRTIO_CONSOLE_SERIAL_PORT "virtserialport"
#define VIRTIO_CONSOLE(obj) \ #define VIRTIO_CONSOLE(obj) \

View File

@ -13,7 +13,7 @@
#include "qemu/osdep.h" #include "qemu/osdep.h"
#include "hw/boards.h" #include "hw/boards.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi-visit.h" #include "qapi/qapi-visit-common.h"
#include "qapi/visitor.h" #include "qapi/visitor.h"
#include "hw/sysbus.h" #include "hw/sysbus.h"
#include "sysemu/sysemu.h" #include "sysemu/sysemu.h"

View File

@ -29,6 +29,7 @@
#include "hw/qdev.h" #include "hw/qdev.h"
#include "sysemu/sysemu.h" #include "sysemu/sysemu.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qapi-events-misc.h"
#include "qapi/qmp/qerror.h" #include "qapi/qmp/qerror.h"
#include "qapi/visitor.h" #include "qapi/visitor.h"
#include "qemu/error-report.h" #include "qemu/error-report.h"
@ -36,7 +37,6 @@
#include "hw/hotplug.h" #include "hw/hotplug.h"
#include "hw/boards.h" #include "hw/boards.h"
#include "hw/sysbus.h" #include "hw/sysbus.h"
#include "qapi-event.h"
bool qdev_hotplug = false; bool qdev_hotplug = false;
static bool qdev_hot_added = false; static bool qdev_hot_added = false;

View File

@ -67,8 +67,8 @@
#include "acpi-build.h" #include "acpi-build.h"
#include "hw/mem/pc-dimm.h" #include "hw/mem/pc-dimm.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qapi-visit-common.h"
#include "qapi/visitor.h" #include "qapi/visitor.h"
#include "qapi-visit.h"
#include "qom/cpu.h" #include "qom/cpu.h"
#include "hw/nmi.h" #include "hw/nmi.h"
#include "hw/i386/intel_iommu.h" #include "hw/i386/intel_iommu.h"

View File

@ -16,8 +16,8 @@
#include "hw/i386/apic-msidef.h" #include "hw/i386/apic-msidef.h"
#include "hw/xen/xen_common.h" #include "hw/xen/xen_common.h"
#include "hw/xen/xen_backend.h" #include "hw/xen/xen_backend.h"
#include "qmp-commands.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qapi-commands-misc.h"
#include "qemu/error-report.h" #include "qemu/error-report.h"
#include "qemu/range.h" #include "qemu/range.h"
#include "sysemu/xen-mapcache.h" #include "sysemu/xen-mapcache.h"

View File

@ -26,9 +26,9 @@
#include "hw/hw.h" #include "hw/hw.h"
#include "hw/ipmi/ipmi.h" #include "hw/ipmi/ipmi.h"
#include "sysemu/sysemu.h" #include "sysemu/sysemu.h"
#include "qmp-commands.h"
#include "qom/object_interfaces.h" #include "qom/object_interfaces.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qapi-commands-misc.h"
#include "qapi/visitor.h" #include "qapi/visitor.h"
static uint32_t ipmi_current_uuid = 1; static uint32_t ipmi_current_uuid = 1;

View File

@ -25,7 +25,6 @@
#include "qemu/osdep.h" #include "qemu/osdep.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/visitor.h" #include "qapi/visitor.h"
#include "qapi-visit.h"
#include "hw/mem/nvdimm.h" #include "hw/mem/nvdimm.h"
static void nvdimm_get_label_size(Object *obj, Visitor *v, const char *name, static void nvdimm_get_label_size(Object *obj, Visitor *v, const char *name,

View File

@ -17,8 +17,8 @@
#include "qemu/osdep.h" #include "qemu/osdep.h"
#include "qemu-common.h" #include "qemu-common.h"
#include "qmp-commands.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qapi-commands-rocker.h"
#include "qapi/qmp/qerror.h" #include "qapi/qmp/qerror.h"
RockerSwitch *qmp_query_rocker(const char *name, Error **errp) RockerSwitch *qmp_query_rocker(const char *name, Error **errp)

View File

@ -22,9 +22,9 @@
#include "net/net.h" #include "net/net.h"
#include "net/eth.h" #include "net/eth.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qapi-commands-rocker.h"
#include "qemu/iov.h" #include "qemu/iov.h"
#include "qemu/bitops.h" #include "qemu/bitops.h"
#include "qmp-commands.h"
#include "rocker.h" #include "rocker.h"
#include "rocker_hw.h" #include "rocker_hw.h"

View File

@ -16,7 +16,7 @@
#include "qemu/osdep.h" #include "qemu/osdep.h"
#include "net/clients.h" #include "net/clients.h"
#include "qapi/qapi-types-rocker.h"
#include "rocker.h" #include "rocker.h"
#include "rocker_hw.h" #include "rocker_hw.h"
#include "rocker_fp.h" #include "rocker_fp.h"

View File

@ -17,9 +17,9 @@
#include "qemu/osdep.h" #include "qemu/osdep.h"
#include "net/eth.h" #include "net/eth.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qapi-commands-rocker.h"
#include "qemu/iov.h" #include "qemu/iov.h"
#include "qemu/timer.h" #include "qemu/timer.h"
#include "qmp-commands.h"
#include "rocker.h" #include "rocker.h"
#include "rocker_hw.h" #include "rocker_hw.h"

View File

@ -23,7 +23,7 @@
#include "net/vhost_net.h" #include "net/vhost_net.h"
#include "hw/virtio/virtio-bus.h" #include "hw/virtio/virtio-bus.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi-event.h" #include "qapi/qapi-events-net.h"
#include "hw/virtio/virtio-access.h" #include "hw/virtio/virtio-access.h"
#include "migration/misc.h" #include "migration/misc.h"

View File

@ -22,9 +22,9 @@
#include "sysemu/sysemu.h" #include "sysemu/sysemu.h"
#include "monitor/monitor.h" #include "monitor/monitor.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qapi-commands-misc.h"
#include "qapi/qmp/qerror.h" #include "qapi/qmp/qerror.h"
#include "hw/pci/pci.h" #include "hw/pci/pci.h"
#include "qmp-commands.h"
#include "hw/pci/msi.h" #include "hw/pci/msi.h"
bool msi_nonbroken; bool msi_nonbroken;

View File

@ -34,7 +34,6 @@
#include "hw/loader.h" #include "hw/loader.h"
#include "qemu/error-report.h" #include "qemu/error-report.h"
#include "qemu/range.h" #include "qemu/range.h"
#include "qmp-commands.h"
#include "trace.h" #include "trace.h"
#include "hw/pci/msi.h" #include "hw/pci/msi.h"
#include "hw/pci/msix.h" #include "hw/pci/msix.h"
@ -42,6 +41,7 @@
#include "hw/hotplug.h" #include "hw/hotplug.h"
#include "hw/boards.h" #include "hw/boards.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qapi-commands-misc.h"
#include "qemu/cutils.h" #include "qemu/cutils.h"
//#define DEBUG_PCI //#define DEBUG_PCI

View File

@ -38,7 +38,6 @@
#include "hw/ppc/spapr_vio.h" #include "hw/ppc/spapr_vio.h"
#include "hw/ppc/spapr_rtas.h" #include "hw/ppc/spapr_rtas.h"
#include "hw/ppc/ppc.h" #include "hw/ppc/ppc.h"
#include "qapi-event.h"
#include "hw/boards.h" #include "hw/boards.h"
#include <libfdt.h> #include <libfdt.h>

View File

@ -30,8 +30,8 @@
#include "qemu/timer.h" #include "qemu/timer.h"
#include "sysemu/sysemu.h" #include "sysemu/sysemu.h"
#include "hw/ppc/spapr.h" #include "hw/ppc/spapr.h"
#include "qapi-event.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qapi-events-misc.h"
#include "qemu/cutils.h" #include "qemu/cutils.h"
void spapr_rtc_read(sPAPRRTCState *rtc, struct tm *tm, uint32_t *ns) void spapr_rtc_read(sPAPRRTCState *rtc, struct tm *tm, uint32_t *ns)

View File

@ -11,9 +11,9 @@
#include "qemu/osdep.h" #include "qemu/osdep.h"
#include "hw/boards.h" #include "hw/boards.h"
#include "qmp-commands.h"
#include "hw/s390x/storage-keys.h" #include "hw/s390x/storage-keys.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qapi-commands-misc.h"
#include "qapi/qmp/qdict.h" #include "qapi/qmp/qdict.h"
#include "qemu/error-report.h" #include "qemu/error-report.h"
#include "sysemu/kvm.h" #include "sysemu/kvm.h"

View File

@ -31,9 +31,9 @@
#include "sysemu/replay.h" #include "sysemu/replay.h"
#include "hw/timer/mc146818rtc.h" #include "hw/timer/mc146818rtc.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qapi-commands-misc.h"
#include "qapi/qapi-events-misc.h"
#include "qapi/visitor.h" #include "qapi/visitor.h"
#include "qapi-event.h"
#include "qmp-commands.h"
#ifdef TARGET_I386 #ifdef TARGET_I386
#include "hw/i386/apic.h" #include "hw/i386/apic.h"

View File

@ -38,6 +38,7 @@
#include "migration/blocker.h" #include "migration/blocker.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/clone-visitor.h" #include "qapi/clone-visitor.h"
#include "qapi/qapi-visit-tpm.h"
#include "chardev/char-fe.h" #include "chardev/char-fe.h"
#define DEBUG_TPM 0 #define DEBUG_TPM 0

View File

@ -30,6 +30,7 @@
#include "tpm_int.h" #include "tpm_int.h"
#include "hw/hw.h" #include "hw/hw.h"
#include "qapi/clone-visitor.h" #include "qapi/clone-visitor.h"
#include "qapi/qapi-visit-tpm.h"
#include "tpm_util.h" #include "tpm_util.h"
#define DEBUG_TPM 0 #define DEBUG_TPM 0

View File

@ -24,8 +24,8 @@
#include "sysemu/kvm.h" #include "sysemu/kvm.h"
#include "exec/address-spaces.h" #include "exec/address-spaces.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qapi-events-misc.h"
#include "qapi/visitor.h" #include "qapi/visitor.h"
#include "qapi-event.h"
#include "trace.h" #include "trace.h"
#include "qemu/error-report.h" #include "qemu/error-report.h"

View File

@ -24,12 +24,12 @@
#include "qemu/config-file.h" #include "qemu/config-file.h"
#include "qemu/queue.h" #include "qemu/queue.h"
#include "qapi/error.h" #include "qapi/error.h"
#include "qapi/qapi-commands-run-state.h"
#include "qapi/qapi-events-run-state.h"
#include "sysemu/sysemu.h" #include "sysemu/sysemu.h"
#include "sysemu/watchdog.h" #include "sysemu/watchdog.h"
#include "qapi-event.h"
#include "hw/nmi.h" #include "hw/nmi.h"
#include "qemu/help_option.h" #include "qemu/help_option.h"
#include "qmp-commands.h"
static WatchdogAction watchdog_action = WATCHDOG_ACTION_RESET; static WatchdogAction watchdog_action = WATCHDOG_ACTION_RESET;
static QLIST_HEAD(watchdog_list, WatchdogTimerModel) watchdog_list; static QLIST_HEAD(watchdog_list, WatchdogTimerModel) watchdog_list;

View File

@ -2,7 +2,7 @@
#define BLOCK_H #define BLOCK_H
#include "block/aio.h" #include "block/aio.h"
#include "qapi-types.h" #include "qapi/qapi-types-block-core.h"
#include "qemu/iov.h" #include "qemu/iov.h"
#include "qemu/coroutine.h" #include "qemu/coroutine.h"
#include "block/accounting.h" #include "block/accounting.h"

View File

@ -2,7 +2,7 @@
#define BLOCK_DIRTY_BITMAP_H #define BLOCK_DIRTY_BITMAP_H
#include "qemu-common.h" #include "qemu-common.h"
#include "qapi-types.h" #include "qapi/qapi-types-block-core.h"
#include "qemu/hbitmap.h" #include "qemu/hbitmap.h"
BdrvDirtyBitmap *bdrv_create_dirty_bitmap(BlockDriverState *bs, BdrvDirtyBitmap *bdrv_create_dirty_bitmap(BlockDriverState *bs,

View File

@ -20,7 +20,7 @@
#ifndef NBD_H #ifndef NBD_H
#define NBD_H #define NBD_H
#include "qapi/qapi-types-block.h"
#include "io/channel-socket.h" #include "io/channel-socket.h"
#include "crypto/tlscreds.h" #include "crypto/tlscreds.h"

View File

@ -1,6 +1,7 @@
#ifndef QEMU_CHAR_H #ifndef QEMU_CHAR_H
#define QEMU_CHAR_H #define QEMU_CHAR_H
#include "qapi/qapi-types-char.h"
#include "qemu/main-loop.h" #include "qemu/main-loop.h"
#include "qemu/bitmap.h" #include "qemu/bitmap.h"
#include "qom/object.h" #include "qom/object.h"

View File

@ -21,7 +21,7 @@
#ifndef QCRYPTO_CIPHER_H #ifndef QCRYPTO_CIPHER_H
#define QCRYPTO_CIPHER_H #define QCRYPTO_CIPHER_H
#include "qapi-types.h" #include "qapi/qapi-types-crypto.h"
typedef struct QCryptoCipher QCryptoCipher; typedef struct QCryptoCipher QCryptoCipher;

View File

@ -21,7 +21,7 @@
#ifndef QCRYPTO_HASH_H #ifndef QCRYPTO_HASH_H
#define QCRYPTO_HASH_H #define QCRYPTO_HASH_H
#include "qapi-types.h" #include "qapi/qapi-types-crypto.h"
/* See also "QCryptoHashAlgorithm" defined in qapi/crypto.json */ /* See also "QCryptoHashAlgorithm" defined in qapi/crypto.json */

View File

@ -12,7 +12,7 @@
#ifndef QCRYPTO_HMAC_H #ifndef QCRYPTO_HMAC_H
#define QCRYPTO_HMAC_H #define QCRYPTO_HMAC_H
#include "qapi-types.h" #include "qapi/qapi-types-crypto.h"
typedef struct QCryptoHmac QCryptoHmac; typedef struct QCryptoHmac QCryptoHmac;
struct QCryptoHmac { struct QCryptoHmac {

View File

@ -21,6 +21,7 @@
#ifndef QCRYPTO_SECRET_H #ifndef QCRYPTO_SECRET_H
#define QCRYPTO_SECRET_H #define QCRYPTO_SECRET_H
#include "qapi/qapi-types-crypto.h"
#include "qom/object.h" #include "qom/object.h"
#define TYPE_QCRYPTO_SECRET "secret" #define TYPE_QCRYPTO_SECRET "secret"

View File

@ -21,6 +21,7 @@
#ifndef QCRYPTO_TLSCREDS_H #ifndef QCRYPTO_TLSCREDS_H
#define QCRYPTO_TLSCREDS_H #define QCRYPTO_TLSCREDS_H
#include "qapi/qapi-types-crypto.h"
#include "qom/object.h" #include "qom/object.h"
#ifdef CONFIG_GNUTLS #ifdef CONFIG_GNUTLS

View File

@ -12,7 +12,7 @@
#define HW_BLOCK_H #define HW_BLOCK_H
#include "qemu-common.h" #include "qemu-common.h"
#include "qapi-types.h" #include "qapi/qapi-types-block-core.h"
/* Configuration */ /* Configuration */

View File

@ -2,7 +2,7 @@
#define HW_FDC_H #define HW_FDC_H
#include "qemu-common.h" #include "qemu-common.h"
#include "qapi-types.h" #include "qapi/qapi-types-block.h"
/* fdc.c */ /* fdc.c */
#define MAX_FD 2 #define MAX_FD 2

View File

@ -14,6 +14,7 @@
#define HW_SPAPR_DRC_H #define HW_SPAPR_DRC_H
#include <libfdt.h> #include <libfdt.h>
#include "qapi/qapi-types-run-state.h"
#include "qom/object.h" #include "qom/object.h"
#include "sysemu/sysemu.h" #include "sysemu/sysemu.h"
#include "hw/qdev.h" #include "hw/qdev.h"

View File

@ -1,6 +1,8 @@
#ifndef QEMU_QDEV_PROPERTIES_H #ifndef QEMU_QDEV_PROPERTIES_H
#define QEMU_QDEV_PROPERTIES_H #define QEMU_QDEV_PROPERTIES_H
#include "qapi/qapi-types-block.h"
#include "qapi/qapi-types-misc.h"
#include "hw/qdev-core.h" #include "hw/qdev-core.h"
/*** qdev-properties.c ***/ /*** qdev-properties.c ***/

View File

@ -22,6 +22,7 @@
#define QIO_DNS_RESOLVER_H #define QIO_DNS_RESOLVER_H
#include "qemu-common.h" #include "qemu-common.h"
#include "qapi/qapi-types-sockets.h"
#include "qom/object.h" #include "qom/object.h"
#include "io/task.h" #include "io/task.h"

View File

@ -14,7 +14,7 @@
#define QEMU_COLO_H #define QEMU_COLO_H
#include "qemu-common.h" #include "qemu-common.h"
#include "qapi-types.h" #include "qapi/qapi-types-migration.h"
void colo_info_init(void); void colo_info_init(void);

View File

@ -14,7 +14,7 @@
#define QEMU_FAILOVER_H #define QEMU_FAILOVER_H
#include "qemu-common.h" #include "qemu-common.h"
#include "qapi-types.h" #include "qapi/qapi-types-migration.h"
void failover_init_state(void); void failover_init_state(void);
FailoverStatus failover_set_state(FailoverStatus old_state, FailoverStatus failover_set_state(FailoverStatus old_state,

View File

@ -13,6 +13,7 @@
#ifndef QEMU_MIGRATION_GLOBAL_STATE_H #ifndef QEMU_MIGRATION_GLOBAL_STATE_H
#define QEMU_MIGRATION_GLOBAL_STATE_H #define QEMU_MIGRATION_GLOBAL_STATE_H
#include "qapi/qapi-types-run-state.h"
#include "sysemu/sysemu.h" #include "sysemu/sysemu.h"
void register_global_state(void); void register_global_state(void);

View File

@ -3,6 +3,7 @@
#include "qemu-common.h" #include "qemu-common.h"
#include "block/block.h" #include "block/block.h"
#include "qapi/qapi-types-misc.h"
#include "qemu/readline.h" #include "qemu/readline.h"
extern Monitor *cur_mon; extern Monitor *cur_mon;

View File

@ -9,6 +9,7 @@
#ifndef QEMU_NET_FILTER_H #ifndef QEMU_NET_FILTER_H
#define QEMU_NET_FILTER_H #define QEMU_NET_FILTER_H
#include "qapi/qapi-types-net.h"
#include "qom/object.h" #include "qom/object.h"
#include "qemu-common.h" #include "qemu-common.h"
#include "net/queue.h" #include "net/queue.h"

View File

@ -2,7 +2,7 @@
#define QEMU_NET_H #define QEMU_NET_H
#include "qemu/queue.h" #include "qemu/queue.h"
#include "qapi-types.h" #include "qapi/qapi-types-net.h"
#include "net/queue.h" #include "net/queue.h"
#include "migration/vmstate.h" #include "migration/vmstate.h"

View File

@ -12,7 +12,6 @@
#define QAPI_CLONE_VISITOR_H #define QAPI_CLONE_VISITOR_H
#include "qapi/visitor.h" #include "qapi/visitor.h"
#include "qapi-visit.h"
/* /*
* The clone visitor is for direct use only by the QAPI_CLONE() macro; * The clone visitor is for direct use only by the QAPI_CLONE() macro;

View File

@ -115,7 +115,7 @@
#ifndef ERROR_H #ifndef ERROR_H
#define ERROR_H #define ERROR_H
#include "qapi-types.h" #include "qapi/qapi-types-common.h"
/* /*
* Overall category of an error. * Overall category of an error.

View File

@ -32,7 +32,7 @@
#ifndef QOBJECT_H #ifndef QOBJECT_H
#define QOBJECT_H #define QOBJECT_H
#include "qapi-types.h" #include "qapi/qapi-builtin-types.h"
struct QObject { struct QObject {
QType type; QType type;

View File

@ -15,7 +15,7 @@
#ifndef QAPI_VISITOR_H #ifndef QAPI_VISITOR_H
#define QAPI_VISITOR_H #define QAPI_VISITOR_H
#include "qapi-types.h" #include "qapi/qapi-builtin-types.h"
/* /*
* The QAPI schema defines both a set of C data types, and a QMP wire * The QAPI schema defines both a set of C data types, and a QMP wire

View File

@ -9,7 +9,7 @@ int inet_aton(const char *cp, struct in_addr *ia);
#endif /* !_WIN32 */ #endif /* !_WIN32 */
#include "qapi-types.h" #include "qapi/qapi-types-sockets.h"
/* misc helpers */ /* misc helpers */
int qemu_socket(int domain, int type, int protocol); int qemu_socket(int domain, int type, int protocol);

View File

@ -26,7 +26,7 @@
#define THROTTLE_H #define THROTTLE_H
#include "qemu-common.h" #include "qemu-common.h"
#include "qapi-types.h" #include "qapi/qapi-types-block-core.h"
#include "qemu/timer.h" #include "qemu/timer.h"
#define THROTTLE_VALUE_MAX 1000000000000000LL #define THROTTLE_VALUE_MAX 1000000000000000LL

View File

@ -24,6 +24,7 @@
#include "disas/bfd.h" #include "disas/bfd.h"
#include "exec/hwaddr.h" #include "exec/hwaddr.h"
#include "exec/memattrs.h" #include "exec/memattrs.h"
#include "qapi/qapi-types-run-state.h"
#include "qemu/bitmap.h" #include "qemu/bitmap.h"
#include "qemu/queue.h" #include "qemu/queue.h"
#include "qemu/thread.h" #include "qemu/thread.h"

View File

@ -14,7 +14,7 @@
#ifndef QEMU_OBJECT_H #ifndef QEMU_OBJECT_H
#define QEMU_OBJECT_H #define QEMU_OBJECT_H
#include "qapi-types.h" #include "qapi/qapi-builtin-types.h"
#include "qemu/queue.h" #include "qemu/queue.h"
struct TypeImpl; struct TypeImpl;

View File

@ -1,7 +1,7 @@
#ifndef QEMU_ARCH_INIT_H #ifndef QEMU_ARCH_INIT_H
#define QEMU_ARCH_INIT_H #define QEMU_ARCH_INIT_H
#include "qapi-types.h" #include "qapi/qapi-types-misc.h"
enum { enum {
QEMU_ARCH_ALL = -1, QEMU_ARCH_ALL = -1,

View File

@ -14,7 +14,7 @@
#ifndef QEMU_BALLOON_H #ifndef QEMU_BALLOON_H
#define QEMU_BALLOON_H #define QEMU_BALLOON_H
#include "qapi-types.h" #include "qapi/qapi-types-misc.h"
typedef void (QEMUBalloonEvent)(void *opaque, ram_addr_t target); typedef void (QEMUBalloonEvent)(void *opaque, ram_addr_t target);
typedef void (QEMUBalloonStatus)(void *opaque, BalloonInfo *info); typedef void (QEMUBalloonStatus)(void *opaque, BalloonInfo *info);

View File

@ -14,6 +14,8 @@
#ifndef DUMP_H #ifndef DUMP_H
#define DUMP_H #define DUMP_H
#include "qapi/qapi-types-misc.h"
#define MAKEDUMPFILE_SIGNATURE "makedumpfile" #define MAKEDUMPFILE_SIGNATURE "makedumpfile"
#define MAX_SIZE_MDF_HEADER (4096) /* max size of makedumpfile_header */ #define MAX_SIZE_MDF_HEADER (4096) /* max size of makedumpfile_header */
#define TYPE_FLAT_HEADER (1) /* type of flattened format */ #define TYPE_FLAT_HEADER (1) /* type of flattened format */

View File

@ -14,6 +14,7 @@
#define SYSEMU_HOSTMEM_H #define SYSEMU_HOSTMEM_H
#include "sysemu/sysemu.h" /* for MAX_NODES */ #include "sysemu/sysemu.h" /* for MAX_NODES */
#include "qapi/qapi-types-misc.h"
#include "qom/object.h" #include "qom/object.h"
#include "exec/memory.h" #include "exec/memory.h"
#include "qemu/bitmap.h" #include "qemu/bitmap.h"

View File

@ -13,6 +13,8 @@
*/ */
#include "sysemu.h" #include "sysemu.h"
#include "qapi/qapi-types-misc.h"
#include "qapi/qapi-types-ui.h"
/* replay clock kinds */ /* replay clock kinds */
enum ReplayClockKind { enum ReplayClockKind {

View File

@ -2,6 +2,7 @@
#define SYSEMU_H #define SYSEMU_H
/* Misc. things related to the system emulator. */ /* Misc. things related to the system emulator. */
#include "qapi/qapi-types-run-state.h"
#include "qemu/queue.h" #include "qemu/queue.h"
#include "qemu/timer.h" #include "qemu/timer.h"
#include "qemu/notify.h" #include "qemu/notify.h"

View File

@ -12,6 +12,7 @@
#ifndef QEMU_TPM_H #ifndef QEMU_TPM_H
#define QEMU_TPM_H #define QEMU_TPM_H
#include "qapi/qapi-types-tpm.h"
#include "qom/object.h" #include "qom/object.h"
int tpm_config_parse(QemuOptsList *opts_list, const char *optarg); int tpm_config_parse(QemuOptsList *opts_list, const char *optarg);

View File

@ -23,7 +23,7 @@
#define QEMU_WATCHDOG_H #define QEMU_WATCHDOG_H
#include "qemu/queue.h" #include "qemu/queue.h"
#include "qapi-types.h" #include "qapi/qapi-types-run-state.h"
struct WatchdogTimerModel { struct WatchdogTimerModel {
QLIST_ENTRY(WatchdogTimerModel) entry; QLIST_ENTRY(WatchdogTimerModel) entry;

Some files were not shown because too many files have changed in this diff Show More