From 043b5a49516f5037430e7864e23fc2fdd39f2b10 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Wed, 23 Nov 2016 11:36:54 -0600 Subject: [PATCH 1/9] qmp-event: Avoid qobject_from_jsonf("%"PRId64) The qobject_from_jsonf() function implements a pseudo-printf language for creating a QObject; however, it is hard-coded to only parse a subset of formats understood by -Wformat, and is not a straight synonym to bare printf(). In particular, any use of an int64_t integer works only if the system's definition of PRId64 matches what the parser expects; which works on glibc (%lld or %ld depending on 32- vs. 64-bit) and mingw (%I64d), but not on Mac OS (%qd). Rather than enhance the parser, it is just as easy to use 'long long', which we know always works. There are few enough callers of qobject_from_json[fv]() that it is easy to audit that this is the only non-testsuite caller that was actually relying on this particular conversion. Reported by: G 3 Signed-off-by: Eric Blake Message-Id: <1479922617-4400-2-git-send-email-eblake@redhat.com> Reviewed-by: Markus Armbruster [Cast tv.tv_sec, tv.tv_usec to long long for type correctness] Signed-off-by: Markus Armbruster --- qapi/qmp-event.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/qapi/qmp-event.c b/qapi/qmp-event.c index 8bba165bfb..802ede48e3 100644 --- a/qapi/qmp-event.c +++ b/qapi/qmp-event.c @@ -35,21 +35,12 @@ static void timestamp_put(QDict *qdict) int err; QObject *obj; qemu_timeval tv; - int64_t sec, usec; err = qemu_gettimeofday(&tv); - if (err < 0) { - /* Put -1 to indicate failure of getting host time */ - sec = -1; - usec = -1; - } else { - sec = tv.tv_sec; - usec = tv.tv_usec; - } - - obj = qobject_from_jsonf("{ 'seconds': %" PRId64 ", " - "'microseconds': %" PRId64 " }", - sec, usec); + /* Put -1 to indicate failure of getting host time */ + obj = qobject_from_jsonf("{ 'seconds': %lld, 'microseconds': %lld }", + err < 0 ? -1LL : (long long)tv.tv_sec, + err < 0 ? -1LL : (long long)tv.tv_usec); qdict_put_obj(qdict, "timestamp", obj); } From 1792d7d0a2dc18496e8fc52906163f9f73f3d931 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Wed, 23 Nov 2016 11:36:55 -0600 Subject: [PATCH 2/9] test-qga: Avoid qobject_from_jsonv("%"PRId64) The qobject_from_jsonv() function implements a pseudo-printf language for creating a QObject; however, it is hard-coded to only parse a subset of formats understood by -Wformat, and is not a straight synonym to bare printf(). In particular, any use of an int64_t integer works only if the system's definition of PRId64 matches what the parser expects; which works on glibc (%lld or %ld depending on 32- vs. 64-bit) and mingw (%I64d), but not on Mac OS (%qd). Rather than enhance the parser, it is just as easy to use normal printf() for this particular conversion, matching what is done elsewhere in this file [1], which is safe in this instance because the format does not contain any of the problematic differences (bare '%' or the '%s' format). The use of PRId64 for a variable named 'pid' is gross, but it is a sad reality of the 64-bit mingw environment, which mistakenly defines pid_t as a 64-bit type even though getpid() returns 'int' on that platform [2]. Our definition of the QGA GuestExec type defines 'pid' as a 64-bit entity, and we can't tighten it to 'int32' unless the mingw header is fixed. Using 'long long' instead of 'int64_t' just so that we can stick with qobject_from_jsonv("%lld") instead of printf() is not any prettier, since we may have later type churn anyways. [1] see 'git grep -A2 strdup_printf tests/test-qga.c' [2] https://bugzilla.redhat.com/show_bug.cgi?id=1397787 Reported by: G 3 Signed-off-by: Eric Blake Message-Id: <1479922617-4400-3-git-send-email-eblake@redhat.com> Reviewed-by: Markus Armbruster Signed-off-by: Markus Armbruster --- tests/test-qga.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tests/test-qga.c b/tests/test-qga.c index 40af64987a..868b02a40f 100644 --- a/tests/test-qga.c +++ b/tests/test-qga.c @@ -837,6 +837,7 @@ static void test_qga_guest_exec(gconstpointer fix) int64_t pid, now, exitcode; gsize len; bool exited; + char *cmd; /* exec 'echo foo bar' */ ret = qmp_fd(fixture->fd, "{'execute': 'guest-exec', 'arguments': {" @@ -851,9 +852,10 @@ static void test_qga_guest_exec(gconstpointer fix) /* wait for completion */ now = g_get_monotonic_time(); + cmd = g_strdup_printf("{'execute': 'guest-exec-status'," + " 'arguments': { 'pid': %" PRId64 " } }", pid); do { - ret = qmp_fd(fixture->fd, "{'execute': 'guest-exec-status'," - " 'arguments': { 'pid': %" PRId64 " } }", pid); + ret = qmp_fd(fixture->fd, cmd); g_assert_nonnull(ret); val = qdict_get_qdict(ret, "return"); exited = qdict_get_bool(val, "exited"); @@ -863,6 +865,7 @@ static void test_qga_guest_exec(gconstpointer fix) } while (!exited && g_get_monotonic_time() < now + 5 * G_TIME_SPAN_SECOND); g_assert(exited); + g_free(cmd); /* check stdout */ exitcode = qdict_get_int(val, "exitcode"); From 29a6731afb20707ab0c1f9be997bef74cef34665 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Wed, 23 Nov 2016 11:36:56 -0600 Subject: [PATCH 3/9] tests: Avoid qobject_from_jsonf("%"PRId64) The qobject_from_jsonf() function implements a pseudo-printf language for creating a QObject; however, it is hard-coded to only parse a subset of formats understood by -Wformat, and is not a straight synonym to bare printf(). In particular, any use of an int64_t integer works only if the system's definition of PRId64 matches what the parser expects; which works on glibc (%lld or %ld depending on 32- vs. 64-bit) and mingw (%I64d), but not on Mac OS (%qd). Rather than enhance the parser, it is just as easy to force the use of int (where the value is small enough) or long long instead of int64_t, which we know always works. This should cover all remaining testsuite uses of qobject_from_json[fv]() that were trying to rely on PRId64, although my proof for that was done by adding in asserts and checking that 'make check' still passed, where such asserts are inappropriate during hard freeze. A later series in 2.9 may remove all dynamic JSON parsing, but that's a bigger task. Reported by: G 3 Signed-off-by: Eric Blake Message-Id: <1479922617-4400-4-git-send-email-eblake@redhat.com> Reviewed-by: Markus Armbruster [Rename value64 to value_ll] Signed-off-by: Markus Armbruster --- tests/check-qjson.c | 6 +++--- tests/test-qobject-input-visitor.c | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/tests/check-qjson.c b/tests/check-qjson.c index 85955744eb..0b21a22e10 100644 --- a/tests/check-qjson.c +++ b/tests/check-qjson.c @@ -964,7 +964,7 @@ static void vararg_number(void) QInt *qint; QFloat *qfloat; int value = 0x2342; - int64_t value64 = 0x2342342343LL; + long long value_ll = 0x2342342343LL; double valuef = 2.323423423; obj = qobject_from_jsonf("%d", value); @@ -976,12 +976,12 @@ static void vararg_number(void) QDECREF(qint); - obj = qobject_from_jsonf("%" PRId64, value64); + obj = qobject_from_jsonf("%lld", value_ll); g_assert(obj != NULL); g_assert(qobject_type(obj) == QTYPE_QINT); qint = qobject_to_qint(obj); - g_assert(qint_get_int(qint) == value64); + g_assert(qint_get_int(qint) == value_ll); QDECREF(qint); diff --git a/tests/test-qobject-input-visitor.c b/tests/test-qobject-input-visitor.c index 26c5012df3..945404a9e0 100644 --- a/tests/test-qobject-input-visitor.c +++ b/tests/test-qobject-input-visitor.c @@ -83,10 +83,11 @@ static Visitor *visitor_input_test_init_raw(TestInputVisitorData *data, static void test_visitor_in_int(TestInputVisitorData *data, const void *unused) { - int64_t res = 0, value = -42; + int64_t res = 0; + int value = -42; Visitor *v; - v = visitor_input_test_init(data, "%" PRId64, value); + v = visitor_input_test_init(data, "%d", value); visit_type_int(v, NULL, &res, &error_abort); g_assert_cmpint(res, ==, value); From 95cd8fd9098cd5918f98fa5b4c1e6e6721313d59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Thu, 17 Nov 2016 19:54:49 +0400 Subject: [PATCH 4/9] qga/schema: fix double-return in doc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit guest-get-memory-block-info documentation should have only one "Returns:". Signed-off-by: Marc-André Lureau Reviewed-by: Eric Blake Message-Id: <20161117155504.21843-3-marcandre.lureau@redhat.com> Reviewed-by: Markus Armbruster Signed-off-by: Markus Armbruster --- qga/qapi-schema.json | 1 - 1 file changed, 1 deletion(-) diff --git a/qga/qapi-schema.json b/qga/qapi-schema.json index c21f3084dc..758803a870 100644 --- a/qga/qapi-schema.json +++ b/qga/qapi-schema.json @@ -952,7 +952,6 @@ # # Get information relating to guest memory blocks. # -# Returns: memory block size in bytes. # Returns: @GuestMemoryBlockInfo # # Since 2.3 From 49687ace0237a6af1e93d27e74c4f72983e1be2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Thu, 17 Nov 2016 19:54:51 +0400 Subject: [PATCH 5/9] qapi: fix schema symbol sections MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit According to docs/qapi-code-gen.txt, there needs to be '##' to start a and end a symbol section, that's also what the documentation parser expects. Signed-off-by: Marc-André Lureau Reviewed-by: Eric Blake Message-Id: <20161117155504.21843-5-marcandre.lureau@redhat.com> Reviewed-by: Markus Armbruster Signed-off-by: Markus Armbruster --- qapi-schema.json | 18 +++++++++++++----- qapi/block-core.json | 1 + qga/qapi-schema.json | 3 +++ 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/qapi-schema.json b/qapi-schema.json index f3e9bfc510..af488a86bc 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -65,6 +65,7 @@ { 'enum': 'LostTickPolicy', 'data': ['discard', 'delay', 'merge', 'slew' ] } +## # @add_client # # Allow client connections for VNC, Spice and socket based @@ -443,6 +444,7 @@ 'cache-miss': 'int', 'cache-miss-rate': 'number', 'overflow': 'int' } } +## # @MigrationStatus: # # An enumeration of migration status. @@ -629,6 +631,7 @@ ## { 'command': 'query-migrate-capabilities', 'returns': ['MigrationCapabilityStatus']} +## # @MigrationParameter # # Migration parameters enumeration @@ -687,7 +690,7 @@ 'tls-creds', 'tls-hostname', 'max-bandwidth', 'downtime-limit', 'x-checkpoint-delay' ] } -# +## # @migrate-set-parameters # # Set various migration parameters. See MigrationParameters for details. @@ -699,7 +702,7 @@ { 'command': 'migrate-set-parameters', 'boxed': true, 'data': 'MigrationParameters' } -# +## # @MigrationParameters # # Optional members can be omitted on input ('migrate-set-parameters') @@ -797,6 +800,7 @@ # command. # # Since: 2.5 +## { 'command': 'migrate-start-postcopy' } ## @@ -2254,6 +2258,7 @@ ## { 'command': 'migrate-incoming', 'data': {'uri': 'str' } } +## # @xen-save-devices-state: # # Save the state of all devices to file. The RAM and the block devices @@ -3484,6 +3489,7 @@ 'modelb': 'CpuModelInfo' }, 'returns': 'CpuModelBaselineInfo' } +## # @AddfdInfo: # # Information about a file descriptor that was added to an fd set. @@ -4532,14 +4538,16 @@ ## { 'command': 'query-memory-devices', 'returns': ['MemoryDeviceInfo'] } -## @ACPISlotType +## +# @ACPISlotType # # @DIMM: memory slot # @CPU: logical CPU slot (since 2.7) -# +## { 'enum': 'ACPISlotType', 'data': [ 'DIMM', 'CPU' ] } -## @ACPIOSTInfo +## +# @ACPIOSTInfo # # OSPM Status Indication for a device # For description of possible values of @source and @status fields diff --git a/qapi/block-core.json b/qapi/block-core.json index c29bef7ee1..39cdabad94 100644 --- a/qapi/block-core.json +++ b/qapi/block-core.json @@ -2809,6 +2809,7 @@ 'offset': 'int', 'speed' : 'int' } } +## # @PreallocMode # # Preallocation mode of QEMU image file diff --git a/qga/qapi-schema.json b/qga/qapi-schema.json index 758803a870..7a352672fa 100644 --- a/qga/qapi-schema.json +++ b/qga/qapi-schema.json @@ -837,6 +837,7 @@ { 'command': 'guest-set-user-password', 'data': { 'username': 'str', 'password': 'str', 'crypted': 'bool' } } +## # @GuestMemoryBlock: # # @phys-index: Arbitrary guest-specific unique identifier of the MEMORY BLOCK. @@ -936,6 +937,7 @@ 'data': {'mem-blks': ['GuestMemoryBlock'] }, 'returns': ['GuestMemoryBlockResponse'] } +## # @GuestMemoryBlockInfo: # # @size: the size (in bytes) of the guest memory blocks, @@ -959,6 +961,7 @@ { 'command': 'guest-get-memory-block-info', 'returns': 'GuestMemoryBlockInfo' } +## # @GuestExecStatus: # # @exited: true if process has already terminated. From c5927e7abf4fec928db815f1175b116b927eb97b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Thu, 17 Nov 2016 19:54:52 +0400 Subject: [PATCH 6/9] qapi: fix missing symbol @prefix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc-André Lureau Reviewed-by: Eric Blake Message-Id: <20161117155504.21843-6-marcandre.lureau@redhat.com> Reviewed-by: Markus Armbruster Signed-off-by: Markus Armbruster --- qapi-schema.json | 4 ++-- qapi/block-core.json | 4 ++-- qapi/crypto.json | 36 ++++++++++++++++++------------------ 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/qapi-schema.json b/qapi-schema.json index af488a86bc..824d205a98 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -4652,7 +4652,7 @@ { 'include': 'qapi/rocker.json' } ## -# ReplayMode: +# @ReplayMode: # # Mode of the replay subsystem. # @@ -4720,7 +4720,7 @@ { 'command': 'query-gic-capabilities', 'returns': ['GICCapability'] } ## -# CpuInstanceProperties +# @CpuInstanceProperties # # List of properties to be used for hotplugging a CPU instance, # it should be passed by management with device_add command when diff --git a/qapi/block-core.json b/qapi/block-core.json index 39cdabad94..d98fe73ff1 100644 --- a/qapi/block-core.json +++ b/qapi/block-core.json @@ -1144,7 +1144,7 @@ 'data': 'DriveMirror' } ## -# DriveMirror +# @DriveMirror # # A set of parameters describing drive mirror setup. # @@ -1368,7 +1368,7 @@ 'data': 'BlockIOThrottle' } ## -# BlockIOThrottle +# @BlockIOThrottle # # A set of parameters describing block throttling. # diff --git a/qapi/crypto.json b/qapi/crypto.json index 5c9d7d4a36..15d296e3c1 100644 --- a/qapi/crypto.json +++ b/qapi/crypto.json @@ -3,7 +3,7 @@ # QAPI crypto definitions ## -# QCryptoTLSCredsEndpoint: +# @QCryptoTLSCredsEndpoint: # # The type of network endpoint that will be using the credentials. # Most types of credential require different setup / structures @@ -22,7 +22,7 @@ ## -# QCryptoSecretFormat: +# @QCryptoSecretFormat: # # The data format that the secret is provided in # @@ -36,7 +36,7 @@ ## -# QCryptoHashAlgorithm: +# @QCryptoHashAlgorithm: # # The supported algorithms for computing content digests # @@ -55,7 +55,7 @@ ## -# QCryptoCipherAlgorithm: +# @QCryptoCipherAlgorithm: # # The supported algorithms for content encryption ciphers # @@ -82,7 +82,7 @@ ## -# QCryptoCipherMode: +# @QCryptoCipherMode: # # The supported modes for content encryption ciphers # @@ -98,7 +98,7 @@ ## -# QCryptoIVGenAlgorithm: +# @QCryptoIVGenAlgorithm: # # The supported algorithms for generating initialization # vectors for full disk encryption. The 'plain' generator @@ -116,7 +116,7 @@ 'data': ['plain', 'plain64', 'essiv']} ## -# QCryptoBlockFormat: +# @QCryptoBlockFormat: # # The supported full disk encryption formats # @@ -131,7 +131,7 @@ 'data': ['qcow', 'luks']} ## -# QCryptoBlockOptionsBase: +# @QCryptoBlockOptionsBase: # # The common options that apply to all full disk # encryption formats @@ -144,7 +144,7 @@ 'data': { 'format': 'QCryptoBlockFormat' }} ## -# QCryptoBlockOptionsQCow: +# @QCryptoBlockOptionsQCow: # # The options that apply to QCow/QCow2 AES-CBC encryption format # @@ -158,7 +158,7 @@ 'data': { '*key-secret': 'str' }} ## -# QCryptoBlockOptionsLUKS: +# @QCryptoBlockOptionsLUKS: # # The options that apply to LUKS encryption format # @@ -172,7 +172,7 @@ ## -# QCryptoBlockCreateOptionsLUKS: +# @QCryptoBlockCreateOptionsLUKS: # # The options that apply to LUKS encryption format initialization # @@ -202,7 +202,7 @@ ## -# QCryptoBlockOpenOptions: +# @QCryptoBlockOpenOptions: # # The options that are available for all encryption formats # when opening an existing volume @@ -217,7 +217,7 @@ ## -# QCryptoBlockCreateOptions: +# @QCryptoBlockCreateOptions: # # The options that are available for all encryption formats # when initializing a new volume @@ -232,7 +232,7 @@ ## -# QCryptoBlockInfoBase: +# @QCryptoBlockInfoBase: # # The common information that applies to all full disk # encryption formats @@ -246,7 +246,7 @@ ## -# QCryptoBlockInfoLUKSSlot: +# @QCryptoBlockInfoLUKSSlot: # # Information about the LUKS block encryption key # slot options @@ -266,7 +266,7 @@ ## -# QCryptoBlockInfoLUKS: +# @QCryptoBlockInfoLUKS: # # Information about the LUKS block encryption options # @@ -294,7 +294,7 @@ 'slots': [ 'QCryptoBlockInfoLUKSSlot' ] }} ## -# QCryptoBlockInfoQCow: +# @QCryptoBlockInfoQCow: # # Information about the QCow block encryption options # @@ -305,7 +305,7 @@ ## -# QCryptoBlockInfo: +# @QCryptoBlockInfo: # # Information about the block encryption options # From 4d5c8bc42f0c935f002639d8f340e8b9fa980ec4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Thu, 17 Nov 2016 19:54:53 +0400 Subject: [PATCH 7/9] qapi: fix various symbols mismatch in documentation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit There are various mismatch: - invalid symbols - section and member symbols mismatch - enum or union values vs 'type' The documentation parser catches all these cases. Signed-off-by: Marc-André Lureau Message-Id: <20161117155504.21843-7-marcandre.lureau@redhat.com> Reviewed-by: Markus Armbruster Signed-off-by: Markus Armbruster --- qapi-schema.json | 20 +++++++++----------- qapi/block-core.json | 4 ---- qapi/common.json | 6 +++--- qapi/rocker.json | 2 +- qga/qapi-schema.json | 6 +++--- 5 files changed, 16 insertions(+), 22 deletions(-) diff --git a/qapi-schema.json b/qapi-schema.json index 824d205a98..9c0b46aa36 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -695,8 +695,6 @@ # # Set various migration parameters. See MigrationParameters for details. # -# @x-checkpoint-delay: the delay time between two checkpoints. (Since 2.8) -# # Since: 2.4 ## { 'command': 'migrate-set-parameters', 'boxed': true, @@ -1173,7 +1171,7 @@ '*service': 'str', '*auth': 'str', '*clients': ['VncClientInfo']} } ## -# @VncPriAuth: +# @VncPrimaryAuth: # # vnc primary authentication method. # @@ -3176,7 +3174,7 @@ # # @alias: #optional an alias for the machine name # -# @default: #optional whether the machine is default +# @is-default: #optional whether the machine is default # # @cpu-max: maximum number of CPUs supported by the machine type # (since 1.5.0) @@ -3729,7 +3727,6 @@ # # @device: The name of the special file for the device, # i.e. /dev/ttyS0 on Unix or COM1: on Windows -# @type: What kind of device this is. # # Since: 1.4 ## @@ -3994,7 +3991,7 @@ # # A union referencing different TPM backend types' configuration options # -# @passthrough: The configuration options for the TPM passthrough type +# @type: 'passthrough' The configuration options for the TPM passthrough type # # Since: 1.5 ## @@ -4002,7 +3999,7 @@ 'data': { 'passthrough' : 'TPMPassthroughOptions' } } ## -# @TpmInfo: +# @TPMInfo: # # Information about the TPM # @@ -4346,10 +4343,11 @@ # # Input event union. # -# @key: Input event of Keyboard -# @btn: Input event of pointer buttons -# @rel: Input event of relative pointer motion -# @abs: Input event of absolute pointer motion +# @type: the input type, one of: +# - 'key': Input event of Keyboard +# - 'btn': Input event of pointer buttons +# - 'rel': Input event of relative pointer motion +# - 'abs': Input event of absolute pointer motion # # Since: 2.0 ## diff --git a/qapi/block-core.json b/qapi/block-core.json index d98fe73ff1..33bc93aca1 100644 --- a/qapi/block-core.json +++ b/qapi/block-core.json @@ -2160,10 +2160,6 @@ # # @type: Transport type used for gluster connection # -# @unix: socket file -# -# @tcp: host address and port number -# # This is similar to SocketAddress, only distinction: # # 1. GlusterServer is a flat union, SocketAddress is a simple union. diff --git a/qapi/common.json b/qapi/common.json index 9353a7b377..6987100343 100644 --- a/qapi/common.json +++ b/qapi/common.json @@ -34,11 +34,11 @@ # # A three-part version number. # -# @qemu.major: The major version number. +# @major: The major version number. # -# @qemu.minor: The minor version number. +# @minor: The minor version number. # -# @qemu.micro: The micro version number. +# @micro: The micro version number. # # Since: 2.4 ## diff --git a/qapi/rocker.json b/qapi/rocker.json index 2fe7fdfa66..ace27760f1 100644 --- a/qapi/rocker.json +++ b/qapi/rocker.json @@ -1,5 +1,5 @@ ## -# @Rocker: +# @RockerSwitch: # # Rocker switch information. # diff --git a/qga/qapi-schema.json b/qga/qapi-schema.json index 7a352672fa..ad0a31d011 100644 --- a/qga/qapi-schema.json +++ b/qga/qapi-schema.json @@ -203,7 +203,7 @@ # # Open a file in the guest and retrieve a file handle for it # -# @filepath: Full path to the file in the guest to open. +# @path: Full path to the file in the guest to open. # # @mode: #optional open mode, as per fopen(), "r" is the default. # @@ -378,7 +378,7 @@ 'data': { 'handle': 'int' } } ## -# @GuestFsFreezeStatus +# @GuestFsfreezeStatus # # An enumeration of filesystem freeze states # @@ -770,7 +770,7 @@ # @GuestDiskAddress: # # @pci-controller: controller's PCI address -# @type: bus type +# @bus-type: bus type # @bus: bus id # @target: target id # @unit: unit id From 9f2a70e465453193c756abc2a8f38e10a9774b3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Thu, 17 Nov 2016 19:54:54 +0400 Subject: [PATCH 8/9] qapi: use one symbol per line MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The documentation parser we are going to add only handles a single symbol per line. Signed-off-by: Marc-André Lureau Message-Id: <20161117155504.21843-8-marcandre.lureau@redhat.com> Reviewed-by: Markus Armbruster Signed-off-by: Markus Armbruster --- qapi-schema.json | 10 +++++++--- qapi/block-core.json | 8 ++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/qapi-schema.json b/qapi-schema.json index 9c0b46aa36..918a79f8ae 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -3612,15 +3612,19 @@ ## # @QKeyCode: # +# @unmapped: since 2.0 +# @pause: since 2.0 +# @ro: since 2.4 +# @kp_comma: since 2.4 +# @kp_equals: since 2.6 +# @power: since 2.6 +# # An enumeration of key name. # # This is used by the send-key command. # # Since: 1.3.0 # -# 'unmapped' and 'pause' since 2.0 -# 'ro' and 'kp_comma' since 2.4 -# 'kp_equals' and 'power' since 2.6 ## { 'enum': 'QKeyCode', 'data': [ 'unmapped', diff --git a/qapi/block-core.json b/qapi/block-core.json index 33bc93aca1..96d0859efb 100644 --- a/qapi/block-core.json +++ b/qapi/block-core.json @@ -1712,9 +1712,13 @@ # # Drivers that are supported in block device operations. # -# @host_device, @host_cdrom: Since 2.1 +# @host_device: Since 2.1 +# @host_cdrom: Since 2.1 # @gluster: Since 2.7 -# @nbd, @nfs, @replication, @ssh: Since 2.8 +# @nbd: Since 2.8 +# @nfs: Since 2.8 +# @replication: Since 2.8 +# @ssh: Since 2.8 # # Since: 2.0 ## From 5072f7b38b1b9b26b8fbe1a89086386a420aded8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Thu, 17 Nov 2016 19:54:55 +0400 Subject: [PATCH 9/9] qapi: add missing colon-ending for section name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The documentation parser we are going to add expects a section name to end with ':', otherwise the comment is treated as free-form text body. Signed-off-by: Marc-André Lureau Message-Id: <20161117155504.21843-9-marcandre.lureau@redhat.com> Reviewed-by: Markus Armbruster Signed-off-by: Markus Armbruster --- qapi-schema.json | 300 +++++++++++++++++++++---------------------- qapi/block-core.json | 196 ++++++++++++++-------------- qapi/block.json | 16 +-- qapi/common.json | 8 +- qapi/event.json | 58 ++++----- qapi/introspect.json | 28 ++-- qapi/trace.json | 8 +- qga/qapi-schema.json | 44 +++---- 8 files changed, 329 insertions(+), 329 deletions(-) diff --git a/qapi-schema.json b/qapi-schema.json index 918a79f8ae..a0d3b5d7c5 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -66,7 +66,7 @@ 'data': ['discard', 'delay', 'merge', 'slew' ] } ## -# @add_client +# @add_client: # # Allow client connections for VNC, Spice and socket based # character devices to be passed in to QEMU via SCM_RIGHTS. @@ -97,7 +97,7 @@ # # @name: #optional The name of the guest # -# Since 0.14.0 +# Since: 0.14.0 ## { 'struct': 'NameInfo', 'data': {'*name': 'str'} } @@ -108,7 +108,7 @@ # # Returns: @NameInfo of the guest # -# Since 0.14.0 +# Since: 0.14.0 ## { 'command': 'query-name', 'returns': 'NameInfo' } @@ -137,7 +137,7 @@ { 'command': 'query-kvm', 'returns': 'KvmInfo' } ## -# @RunState +# @RunState: # # An enumeration of VM run states. # @@ -236,7 +236,7 @@ # # Returns: The @UuidInfo for the guest # -# Since 0.14.0 +# Since: 0.14.0 ## { 'command': 'query-uuid', 'returns': 'UuidInfo' } @@ -383,7 +383,7 @@ { 'command': 'query-events', 'returns': ['EventInfo'] } ## -# @MigrationStats +# @MigrationStats: # # Detailed migration status. # @@ -397,7 +397,7 @@ # # @skipped: number of skipped zero pages (since 1.5) # -# @normal : number of normal pages (since 1.2) +# @normal: number of normal pages (since 1.2) # # @normal-bytes: number of normal bytes sent (since 1.2) # @@ -421,7 +421,7 @@ 'postcopy-requests' : 'int' } } ## -# @XBZRLECacheStats +# @XBZRLECacheStats: # # Detailed XBZRLE migration cache statistics # @@ -476,7 +476,7 @@ 'active', 'postcopy-active', 'completed', 'failed', 'colo' ] } ## -# @MigrationInfo +# @MigrationInfo: # # Information about current migration process. # @@ -536,7 +536,7 @@ '*error-desc': 'str'} } ## -# @query-migrate +# @query-migrate: # # Returns information about current migration process. # @@ -547,7 +547,7 @@ { 'command': 'query-migrate', 'returns': 'MigrationInfo' } ## -# @MigrationCapability +# @MigrationCapability: # # Migration capabilities enumeration # @@ -595,7 +595,7 @@ 'compress', 'events', 'postcopy-ram', 'x-colo'] } ## -# @MigrationCapabilityStatus +# @MigrationCapabilityStatus: # # Migration capability information # @@ -609,7 +609,7 @@ 'data': { 'capability' : 'MigrationCapability', 'state' : 'bool' } } ## -# @migrate-set-capabilities +# @migrate-set-capabilities: # # Enable/Disable the following migration capabilities (like xbzrle) # @@ -621,7 +621,7 @@ 'data': { 'capabilities': ['MigrationCapabilityStatus'] } } ## -# @query-migrate-capabilities +# @query-migrate-capabilities: # # Returns information about the current migration capabilities status # @@ -632,7 +632,7 @@ { 'command': 'query-migrate-capabilities', 'returns': ['MigrationCapabilityStatus']} ## -# @MigrationParameter +# @MigrationParameter: # # Migration parameters enumeration # @@ -691,7 +691,7 @@ 'downtime-limit', 'x-checkpoint-delay' ] } ## -# @migrate-set-parameters +# @migrate-set-parameters: # # Set various migration parameters. See MigrationParameters for details. # @@ -701,7 +701,7 @@ 'data': 'MigrationParameters' } ## -# @MigrationParameters +# @MigrationParameters: # # Optional members can be omitted on input ('migrate-set-parameters') # but most members will always be present on output @@ -760,7 +760,7 @@ '*x-checkpoint-delay': 'int'} } ## -# @query-migrate-parameters +# @query-migrate-parameters: # # Returns information about the current migration parameters # @@ -772,7 +772,7 @@ 'returns': 'MigrationParameters' } ## -# @client_migrate_info +# @client_migrate_info: # # Set migration information for remote display. This makes the server # ask the client to automatically reconnect using the new parameters @@ -791,7 +791,7 @@ '*tls-port': 'int', '*cert-subject': 'str' } } ## -# @migrate-start-postcopy +# @migrate-start-postcopy: # # Followup to a migration command to switch the migration to postcopy mode. # The postcopy-ram capability must be set before the original migration @@ -802,7 +802,7 @@ { 'command': 'migrate-start-postcopy' } ## -# @COLOMessage +# @COLOMessage: # # The message transmission between Primary side and Secondary side. # @@ -828,7 +828,7 @@ 'vmstate-loaded' ] } ## -# @COLOMode +# @COLOMode: # # The colo mode # @@ -844,7 +844,7 @@ 'data': [ 'unknown', 'primary', 'secondary'] } ## -# @FailoverStatus +# @FailoverStatus: # # An enumeration of COLO failover status # @@ -862,7 +862,7 @@ 'data': [ 'none', 'require', 'active', 'completed'] } ## -# @x-colo-lost-heartbeat +# @x-colo-lost-heartbeat: # # Tell qemu that heartbeat is lost, request it to do takeover procedures. # If this command is sent to the PVM, the Primary side will exit COLO mode. @@ -956,7 +956,7 @@ # # @pc: the 64-bit instruction pointer # -# Since 2.6 +# Since: 2.6 ## { 'struct': 'CpuInfoX86', 'data': { 'pc': 'int' } } @@ -969,7 +969,7 @@ # # @npc: the NPC component of the instruction pointer # -# Since 2.6 +# Since: 2.6 ## { 'struct': 'CpuInfoSPARC', 'data': { 'pc': 'int', 'npc': 'int' } } @@ -980,7 +980,7 @@ # # @nip: the instruction pointer # -# Since 2.6 +# Since: 2.6 ## { 'struct': 'CpuInfoPPC', 'data': { 'nip': 'int' } } @@ -991,7 +991,7 @@ # # @PC: the instruction pointer # -# Since 2.6 +# Since: 2.6 ## { 'struct': 'CpuInfoMIPS', 'data': { 'PC': 'int' } } @@ -1002,7 +1002,7 @@ # # @PC: the instruction pointer # -# Since 2.6 +# Since: 2.6 ## { 'struct': 'CpuInfoTricore', 'data': { 'PC': 'int' } } @@ -1011,7 +1011,7 @@ # # No additional information is available about the virtual CPU # -# Since 2.6 +# Since: 2.6 # ## { 'struct': 'CpuInfoOther', 'data': { } } @@ -1046,7 +1046,7 @@ # # Returns a list of information about each iothread. # -# Note this list excludes the QEMU main loop thread, which is not declared +# Note: this list excludes the QEMU main loop thread, which is not declared # using the -object iothread command-line option. It is always the main thread # of the process. # @@ -1057,7 +1057,7 @@ { 'command': 'query-iothreads', 'returns': ['IOThreadInfo'] } ## -# @NetworkAddressFamily +# @NetworkAddressFamily: # # The network address family # @@ -1077,7 +1077,7 @@ 'data': [ 'ipv4', 'ipv6', 'unix', 'vsock', 'unknown' ] } ## -# @VncBasicInfo +# @VncBasicInfo: # # The basic information for vnc network connection # @@ -1100,7 +1100,7 @@ 'websocket': 'bool' } } ## -# @VncServerInfo +# @VncServerInfo: # # The network connection information for server # @@ -1250,7 +1250,7 @@ { 'command': 'query-vnc-servers', 'returns': ['VncInfo2'] } ## -# @SpiceBasicInfo +# @SpiceBasicInfo: # # The basic information for SPICE network connection # @@ -1268,7 +1268,7 @@ 'family': 'NetworkAddressFamily' } } ## -# @SpiceServerInfo +# @SpiceServerInfo: # # Information about a SPICE server # @@ -1281,7 +1281,7 @@ 'data': { '*auth': 'str' } } ## -# @SpiceChannel +# @SpiceChannel: # # Information about a SPICE client channel. # @@ -1306,7 +1306,7 @@ 'tls': 'bool'} } ## -# @SpiceQueryMouseMode +# @SpiceQueryMouseMode: # # An enumeration of Spice mouse states. # @@ -1325,7 +1325,7 @@ 'data': [ 'client', 'server', 'unknown' ] } ## -# @SpiceInfo +# @SpiceInfo: # # Information about the SPICE session. # @@ -1364,7 +1364,7 @@ 'mouse-mode': 'SpiceQueryMouseMode', '*channels': ['SpiceChannel']} } ## -# @query-spice +# @query-spice: # # Returns information about the current SPICE server # @@ -1414,7 +1414,7 @@ { 'struct': 'PciMemoryRange', 'data': {'base': 'int', 'limit': 'int'} } ## -# @PciMemoryRegion +# @PciMemoryRegion: # # Information about a PCI device I/O region. # @@ -1623,7 +1623,7 @@ { 'command': 'cpu', 'data': {'index': 'int'} } ## -# @cpu-add +# @cpu-add: # # Adds CPU with specified ID # @@ -1631,7 +1631,7 @@ # # Returns: Nothing on success # -# Since 1.5 +# Since: 1.5 ## { 'command': 'cpu-add', 'data': {'id': 'int'} } @@ -1762,17 +1762,17 @@ { 'command': 'balloon', 'data': {'value': 'int'} } ## -# @Abort +# @Abort: # # This action can be used to test transaction failure. # # Since: 1.6 -### +## { 'struct': 'Abort', 'data': { } } ## -# @ActionCompletionMode +# @ActionCompletionMode: # # An enumeration of Transactional completion modes. # @@ -1792,12 +1792,12 @@ 'data': [ 'individual', 'grouped' ] } ## -# @TransactionAction +# @TransactionAction: # # A discriminated record of operations that can be performed with # @transaction. # -# Since 1.1 +# Since: 1.1 # # drive-backup since 1.6 # abort since 1.6 @@ -1820,7 +1820,7 @@ } } ## -# @TransactionProperties +# @TransactionProperties: # # Optional arguments to modify the behavior of a Transaction. # @@ -1837,7 +1837,7 @@ } ## -# @transaction +# @transaction: # # Executes a number of transactionable QMP commands atomically. If any # operation fails, then the entire set of actions will be abandoned and the @@ -1857,7 +1857,7 @@ # information on only one failed operation returned in an error condition, and # subsequent actions will not have been attempted. # -# Since 1.1 +# Since: 1.1 ## { 'command': 'transaction', 'data': { 'actions': [ 'TransactionAction' ], @@ -1894,7 +1894,7 @@ 'returns': 'str' } ## -# @migrate_cancel +# @migrate_cancel: # # Cancel the current executing migration process. # @@ -1907,7 +1907,7 @@ { 'command': 'migrate_cancel' } ## -# @migrate_set_downtime +# @migrate_set_downtime: # # Set maximum tolerated downtime for migration. # @@ -1922,7 +1922,7 @@ { 'command': 'migrate_set_downtime', 'data': {'value': 'number'} } ## -# @migrate_set_speed +# @migrate_set_speed: # # Set maximum speed for migration. # @@ -1937,7 +1937,7 @@ { 'command': 'migrate_set_speed', 'data': {'value': 'int'} } ## -# @migrate-set-cache-size +# @migrate-set-cache-size: # # Set XBZRLE cache size # @@ -1953,7 +1953,7 @@ { 'command': 'migrate-set-cache-size', 'data': {'value': 'int'} } ## -# @query-migrate-cache-size +# @query-migrate-cache-size: # # query XBZRLE cache size # @@ -2218,7 +2218,7 @@ 'returns': [ 'DevicePropertyInfo' ] } ## -# @migrate +# @migrate: # # Migrates the current running guest to another Virtual Machine. # @@ -2239,7 +2239,7 @@ 'data': {'uri': 'str', '*blk': 'bool', '*inc': 'bool', '*detach': 'bool' } } ## -# @migrate-incoming +# @migrate-incoming: # # Start an incoming migration, the qemu must have been started # with -incoming defer @@ -2273,7 +2273,7 @@ { 'command': 'xen-save-devices-state', 'data': {'filename': 'str'} } ## -# @xen-set-global-dirty-log +# @xen-set-global-dirty-log: # # Enable or disable the global dirty log mode. # @@ -2365,7 +2365,7 @@ 'data': [ 'elf', 'kdump-zlib', 'kdump-lzo', 'kdump-snappy' ] } ## -# @dump-guest-memory +# @dump-guest-memory: # # Dump guest's memory to vmcore. It is a synchronous operation that can take # very long depending on the amount of guest memory. @@ -2419,7 +2419,7 @@ '*format': 'DumpGuestMemoryFormat'} } ## -# @DumpStatus +# @DumpStatus: # # Describe the status of a long-running background guest memory dump. # @@ -2431,13 +2431,13 @@ # # @failed: the last dump has failed. # -# Since 2.6 +# Since: 2.6 ## { 'enum': 'DumpStatus', 'data': [ 'none', 'active', 'completed', 'failed' ] } ## -# @DumpQueryResult +# @DumpQueryResult: # # The result format for 'query-dump'. # @@ -2447,7 +2447,7 @@ # # @total: total bytes to be written in latest dump (uncompressed) # -# Since 2.6 +# Since: 2.6 ## { 'struct': 'DumpQueryResult', 'data': { 'status': 'DumpStatus', @@ -2455,7 +2455,7 @@ 'total': 'int' } } ## -# @query-dump +# @query-dump: # # Query latest dump status. # @@ -2490,7 +2490,7 @@ 'returns': 'DumpGuestMemoryCapability' } ## -# @dump-skeys +# @dump-skeys: # # Dump guest's storage keys # @@ -2577,17 +2577,17 @@ { 'command': 'object-del', 'data': {'id': 'str'} } ## -# @NetdevNoneOptions +# @NetdevNoneOptions: # # Use it alone to have zero network devices. # -# Since 1.2 +# Since: 1.2 ## { 'struct': 'NetdevNoneOptions', 'data': { } } ## -# @NetLegacyNicOptions +# @NetLegacyNicOptions: # # Create a new Network Interface Card. # @@ -2601,7 +2601,7 @@ # # @vectors: #optional number of MSI-x vectors, 0 to disable MSI-X # -# Since 1.2 +# Since: 1.2 ## { 'struct': 'NetLegacyNicOptions', 'data': { @@ -2612,18 +2612,18 @@ '*vectors': 'uint32' } } ## -# @String +# @String: # # A fat type wrapping 'str', to be embedded in lists. # -# Since 1.2 +# Since: 1.2 ## { 'struct': 'String', 'data': { 'str': 'str' } } ## -# @NetdevUserOptions +# @NetdevUserOptions: # # Use the user mode network stack which requires no administrator privilege to # run. @@ -2680,7 +2680,7 @@ # # @guestfwd: #optional forward guest TCP connections # -# Since 1.2 +# Since: 1.2 ## { 'struct': 'NetdevUserOptions', 'data': { @@ -2706,7 +2706,7 @@ '*guestfwd': ['String'] } } ## -# @NetdevTapOptions +# @NetdevTapOptions: # # Connect the host TAP network interface name to the VLAN. # @@ -2743,7 +2743,7 @@ # @poll-us: #optional maximum number of microseconds that could # be spent on busy polling for tap (since 2.7) # -# Since 1.2 +# Since: 1.2 ## { 'struct': 'NetdevTapOptions', 'data': { @@ -2764,7 +2764,7 @@ '*poll-us': 'uint32'} } ## -# @NetdevSocketOptions +# @NetdevSocketOptions: # # Connect the VLAN to a remote VLAN in another QEMU virtual machine using a TCP # socket connection. @@ -2781,7 +2781,7 @@ # # @udp: #optional UDP unicast address and port number # -# Since 1.2 +# Since: 1.2 ## { 'struct': 'NetdevSocketOptions', 'data': { @@ -2793,7 +2793,7 @@ '*udp': 'str' } } ## -# @NetdevL2TPv3Options +# @NetdevL2TPv3Options: # # Connect the VLAN to Ethernet over L2TPv3 Static tunnel # @@ -2829,7 +2829,7 @@ # @offset: #optional additional offset - allows the insertion of # additional application-specific data before the packet payload # -# Since 2.1 +# Since: 2.1 ## { 'struct': 'NetdevL2TPv3Options', 'data': { @@ -2849,7 +2849,7 @@ '*offset': 'uint32' } } ## -# @NetdevVdeOptions +# @NetdevVdeOptions: # # Connect the VLAN to a vde switch running on the host. # @@ -2861,7 +2861,7 @@ # # @mode: #optional permissions for socket # -# Since 1.2 +# Since: 1.2 ## { 'struct': 'NetdevVdeOptions', 'data': { @@ -2871,7 +2871,7 @@ '*mode': 'uint16' } } ## -# @NetdevDumpOptions +# @NetdevDumpOptions: # # Dump VLAN network traffic to a file. # @@ -2880,7 +2880,7 @@ # # @file: #optional dump file path (default is qemu-vlan0.pcap) # -# Since 1.2 +# Since: 1.2 ## { 'struct': 'NetdevDumpOptions', 'data': { @@ -2888,7 +2888,7 @@ '*file': 'str' } } ## -# @NetdevBridgeOptions +# @NetdevBridgeOptions: # # Connect a host TAP network interface to a host bridge device. # @@ -2896,7 +2896,7 @@ # # @helper: #optional command to execute to configure bridge # -# Since 1.2 +# Since: 1.2 ## { 'struct': 'NetdevBridgeOptions', 'data': { @@ -2904,20 +2904,20 @@ '*helper': 'str' } } ## -# @NetdevHubPortOptions +# @NetdevHubPortOptions: # # Connect two or more net clients through a software hub. # # @hubid: hub identifier number # -# Since 1.2 +# Since: 1.2 ## { 'struct': 'NetdevHubPortOptions', 'data': { 'hubid': 'int32' } } ## -# @NetdevNetmapOptions +# @NetdevNetmapOptions: # # Connect a client to a netmap-enabled NIC or to a VALE switch port # @@ -2930,7 +2930,7 @@ # # @devname: #optional path of the netmap device (default: '/dev/netmap'). # -# Since 2.0 +# Since: 2.0 ## { 'struct': 'NetdevNetmapOptions', 'data': { @@ -2938,7 +2938,7 @@ '*devname': 'str' } } ## -# @NetdevVhostUserOptions +# @NetdevVhostUserOptions: # # Vhost-user network backend # @@ -2949,7 +2949,7 @@ # @queues: #optional number of queues to be created for multiqueue vhost-user # (default: 1) (Since 2.5) # -# Since 2.1 +# Since: 2.1 ## { 'struct': 'NetdevVhostUserOptions', 'data': { @@ -2958,18 +2958,18 @@ '*queues': 'int' } } ## -# @NetClientDriver +# @NetClientDriver: # # Available netdev drivers. # -# Since 2.7 +# Since: 2.7 ## { 'enum': 'NetClientDriver', 'data': [ 'none', 'nic', 'user', 'tap', 'l2tpv3', 'socket', 'vde', 'dump', 'bridge', 'hubport', 'netmap', 'vhost-user' ] } ## -# @Netdev +# @Netdev: # # Captures the configuration of a network device. # @@ -2977,7 +2977,7 @@ # # @type: Specify the driver used for interpreting remaining arguments. # -# Since 1.2 +# Since: 1.2 # # 'l2tpv3' - since 2.1 ## @@ -2999,7 +2999,7 @@ 'vhost-user': 'NetdevVhostUserOptions' } } ## -# @NetLegacy +# @NetLegacy: # # Captures the configuration of a network device; legacy. # @@ -3011,7 +3011,7 @@ # # @opts: device type specific properties (legacy) # -# Since 1.2 +# Since: 1.2 ## { 'struct': 'NetLegacy', 'data': { @@ -3021,11 +3021,11 @@ 'opts': 'NetLegacyOptions' } } ## -# @NetLegacyOptions +# @NetLegacyOptions: # # Like Netdev, but for use only by the legacy command line options # -# Since 1.2 +# Since: 1.2 ## { 'union': 'NetLegacyOptions', 'data': { @@ -3042,7 +3042,7 @@ 'vhost-user': 'NetdevVhostUserOptions' } } ## -# @NetFilterDirection +# @NetFilterDirection: # # Indicates whether a netfilter is attached to a netdev's transmit queue or # receive queue or both. @@ -3056,13 +3056,13 @@ # @tx: the filter is attached to the transmit queue of the netdev, # where it will receive packets sent by the netdev. # -# Since 2.5 +# Since: 2.5 ## { 'enum': 'NetFilterDirection', 'data': [ 'all', 'rx', 'tx' ] } ## -# @InetSocketAddress +# @InetSocketAddress: # # Captures a socket address or address range in the Internet namespace. # @@ -3078,7 +3078,7 @@ # @ipv6: whether to accept IPv6 addresses, default try both IPv4 and IPv6 # #optional # -# Since 1.3 +# Since: 1.3 ## { 'struct': 'InetSocketAddress', 'data': { @@ -3089,30 +3089,30 @@ '*ipv6': 'bool' } } ## -# @UnixSocketAddress +# @UnixSocketAddress: # # Captures a socket address in the local ("Unix socket") namespace. # # @path: filesystem path to use # -# Since 1.3 +# Since: 1.3 ## { 'struct': 'UnixSocketAddress', 'data': { 'path': 'str' } } ## -# @VsockSocketAddress +# @VsockSocketAddress: # # Captures a socket address in the vsock namespace. # # @cid: unique host identifier # @port: port # -# Note that string types are used to allow for possible future hostname or +# Note: string types are used to allow for possible future hostname or # service resolution support. # -# Since 2.8 +# Since: 2.8 ## { 'struct': 'VsockSocketAddress', 'data': { @@ -3120,11 +3120,11 @@ 'port': 'str' } } ## -# @SocketAddress +# @SocketAddress: # # Captures the address of a socket, which could also be a named file descriptor # -# Since 1.3 +# Since: 1.3 ## { 'union': 'SocketAddress', 'data': { @@ -3275,7 +3275,7 @@ '*props': 'any' } } ## -# @CpuModelExpansionType +# @CpuModelExpansionType: # # An enumeration of CPU model expansion types. # @@ -3298,7 +3298,7 @@ ## -# @CpuModelExpansionInfo +# @CpuModelExpansionInfo: # # The result of a cpu model expansion. # @@ -3372,7 +3372,7 @@ 'data': [ 'incompatible', 'identical', 'superset', 'subset' ] } ## -# @CpuModelCompareInfo +# @CpuModelCompareInfo: # # The result of a CPU model comparison. # @@ -3436,7 +3436,7 @@ 'returns': 'CpuModelCompareInfo' } ## -# @CpuModelBaselineInfo +# @CpuModelBaselineInfo: # # The result of a CPU model baseline. # @@ -3646,7 +3646,7 @@ 'kp_comma', 'kp_equals', 'power' ] } ## -# @KeyValue +# @KeyValue: # # Represents a keyboard key. # @@ -4032,7 +4032,7 @@ { 'command': 'query-tpm', 'returns': ['TPMInfo'] } ## -# @AcpiTableOptions +# @AcpiTableOptions: # # Specify an ACPI table on the command line to load. # @@ -4075,7 +4075,7 @@ # ACPI table header. At least one file is required. This field excludes # @file. # -# Since 1.5 +# Since: 1.5 ## { 'struct': 'AcpiTableOptions', 'data': { @@ -4103,7 +4103,7 @@ # @size: accepts a number followed by an optional suffix (K)ilo, # (M)ega, (G)iga, (T)era # -# Since 1.5 +# Since: 1.5 ## { 'enum': 'CommandLineParameterType', 'data': ['string', 'boolean', 'number', 'size'] } @@ -4121,7 +4121,7 @@ # # @default: #optional default value string (since 2.1) # -# Since 1.5 +# Since: 1.5 ## { 'struct': 'CommandLineParameterInfo', 'data': { 'name': 'str', @@ -4138,7 +4138,7 @@ # # @parameters: an array of @CommandLineParameterInfo # -# Since 1.5 +# Since: 1.5 ## { 'struct': 'CommandLineOptionInfo', 'data': { 'option': 'str', 'parameters': ['CommandLineParameterInfo'] } } @@ -4153,13 +4153,13 @@ # Returns: list of @CommandLineOptionInfo for all options (or for the given # @option). Returns an error if the given @option doesn't exist. # -# Since 1.5 +# Since: 1.5 ## {'command': 'query-command-line-options', 'data': { '*option': 'str' }, 'returns': ['CommandLineOptionInfo'] } ## -# @X86CPURegister32 +# @X86CPURegister32: # # A X86 32-bit register # @@ -4169,7 +4169,7 @@ 'data': [ 'EAX', 'EBX', 'ECX', 'EDX', 'ESP', 'EBP', 'ESI', 'EDI' ] } ## -# @X86CPUFeatureWordInfo +# @X86CPUFeatureWordInfo: # # Information about a X86 CPU feature word # @@ -4191,11 +4191,11 @@ 'features': 'int' } } ## -# @DummyForceArrays +# @DummyForceArrays: # # Not used by QMP; hack to let us use X86CPUFeatureWordInfoList internally # -# Since 2.5 +# Since: 2.5 ## { 'struct': 'DummyForceArrays', 'data': { 'unused': ['X86CPUFeatureWordInfo'] } } @@ -4245,7 +4245,7 @@ # # @multicast-table: a list of multicast macaddr string # -# Since 1.6 +# Since: 1.6 ## { 'struct': 'RxFilterInfo', 'data': { @@ -4280,7 +4280,7 @@ 'returns': ['RxFilterInfo'] } ## -# @InputButton +# @InputButton: # # Button of a pointer input device (mouse, tablet). # @@ -4290,7 +4290,7 @@ 'data' : [ 'left', 'middle', 'right', 'wheel-up', 'wheel-down' ] } ## -# @InputAxis +# @InputAxis: # # Position axis of a pointer input device (mouse, tablet). # @@ -4300,7 +4300,7 @@ 'data' : [ 'x', 'y' ] } ## -# @InputKeyEvent +# @InputKeyEvent: # # Keyboard input event. # @@ -4314,7 +4314,7 @@ 'down' : 'bool' } } ## -# @InputBtnEvent +# @InputBtnEvent: # # Pointer button input event. # @@ -4328,7 +4328,7 @@ 'down' : 'bool' } } ## -# @InputMoveEvent +# @InputMoveEvent: # # Pointer motion input event. # @@ -4343,7 +4343,7 @@ 'value' : 'int' } } ## -# @InputEvent +# @InputEvent: # # Input event union. # @@ -4362,7 +4362,7 @@ 'abs' : 'InputMoveEvent' } } ## -# @input-send-event +# @input-send-event: # # Send input event(s) to guest. # @@ -4392,18 +4392,18 @@ 'events' : [ 'InputEvent' ] } } ## -# @NumaOptions +# @NumaOptions: # # A discriminated record of NUMA options. (for OptsVisitor) # -# Since 2.1 +# Since: 2.1 ## { 'union': 'NumaOptions', 'data': { 'node': 'NumaNodeOptions' }} ## -# @NumaNodeOptions +# @NumaNodeOptions: # # Create a guest NUMA node. (for OptsVisitor) # @@ -4429,7 +4429,7 @@ '*memdev': 'str' }} ## -# @HostMemPolicy +# @HostMemPolicy: # # Host memory policy types # @@ -4443,7 +4443,7 @@ # @interleave: memory allocations are interleaved across the set # of host nodes specified # -# Since 2.1 +# Since: 2.1 ## { 'enum': 'HostMemPolicy', 'data': [ 'default', 'preferred', 'bind', 'interleave' ] } @@ -4532,7 +4532,7 @@ { 'union': 'MemoryDeviceInfo', 'data': {'dimm': 'PCDIMMDeviceInfo'} } ## -# @query-memory-devices +# @query-memory-devices: # # Lists available memory devices and their state # @@ -4541,7 +4541,7 @@ { 'command': 'query-memory-devices', 'returns': ['MemoryDeviceInfo'] } ## -# @ACPISlotType +# @ACPISlotType: # # @DIMM: memory slot # @CPU: logical CPU slot (since 2.7) @@ -4549,7 +4549,7 @@ { 'enum': 'ACPISlotType', 'data': [ 'DIMM', 'CPU' ] } ## -# @ACPIOSTInfo +# @ACPIOSTInfo: # # OSPM Status Indication for a device # For description of possible values of @source and @status fields @@ -4575,7 +4575,7 @@ 'status': 'int' } } ## -# @query-acpi-ospm-status +# @query-acpi-ospm-status: # # Lists ACPI OSPM status of ACPI device objects, # which might be reported via _OST method @@ -4585,7 +4585,7 @@ { 'command': 'query-acpi-ospm-status', 'returns': ['ACPIOSTInfo'] } ## -# @WatchdogExpirationAction +# @WatchdogExpirationAction: # # An enumeration of the actions taken when the watchdog device's timer is # expired @@ -4613,7 +4613,7 @@ 'inject-nmi' ] } ## -# @IoOperationType +# @IoOperationType: # # An enumeration of the I/O operation types # @@ -4627,7 +4627,7 @@ 'data': [ 'read', 'write' ] } ## -# @GuestPanicAction +# @GuestPanicAction: # # An enumeration of the actions taken when guest OS panic is detected # @@ -4639,7 +4639,7 @@ 'data': [ 'pause', 'poweroff' ] } ## -# @rtc-reset-reinjection +# @rtc-reset-reinjection: # # This command will reset the RTC interrupt reinjection backlog. # Can be used if another mechanism to synchronize guest time @@ -4722,7 +4722,7 @@ { 'command': 'query-gic-capabilities', 'returns': ['GICCapability'] } ## -# @CpuInstanceProperties +# @CpuInstanceProperties: # # List of properties to be used for hotplugging a CPU instance, # it should be passed by management with device_add command when @@ -4750,7 +4750,7 @@ } ## -# @HotpluggableCPU +# @HotpluggableCPU: # # @type: CPU object type for usage with device_add command # @props: list of properties to be used for hotplugging CPU @@ -4769,7 +4769,7 @@ } ## -# @query-hotpluggable-cpus +# @query-hotpluggable-cpus: # # Returns: a list of HotpluggableCPU objects. # diff --git a/qapi/block-core.json b/qapi/block-core.json index 96d0859efb..ec1da2a29a 100644 --- a/qapi/block-core.json +++ b/qapi/block-core.json @@ -6,7 +6,7 @@ { 'include': 'common.json' } ## -# @SnapshotInfo +# @SnapshotInfo: # # @id: unique snapshot id # @@ -213,7 +213,7 @@ '*filename': 'str' } } ## -# @BlockdevCacheInfo +# @BlockdevCacheInfo: # # Cache mode information for a block device # @@ -378,7 +378,7 @@ # @offset: if present, the image file stores the data for this range in # raw format at the given offset. # -# Since 1.7 +# Since: 1.7 ## { 'struct': 'BlockDeviceMapEntry', 'data': { 'start': 'int', 'length': 'int', 'depth': 'int', 'zero': 'bool', @@ -790,7 +790,7 @@ '*node-name': 'str', 'password': 'str'} } ## -# @block_resize +# @block_resize: # # Resize a block image while a guest is running. # @@ -812,7 +812,7 @@ 'size': 'int' }} ## -# @NewImageMode +# @NewImageMode: # # An enumeration that tells QEMU how to set the backing file path in # a new image file. @@ -829,7 +829,7 @@ 'data': [ 'existing', 'absolute-paths' ] } ## -# @BlockdevSnapshotSync +# @BlockdevSnapshotSync: # # Either @device or @node-name must be set but not both. # @@ -852,7 +852,7 @@ '*format': 'str', '*mode': 'NewImageMode' } } ## -# @BlockdevSnapshot +# @BlockdevSnapshot: # # @node: device or node name that will have a snapshot created. # @@ -861,13 +861,13 @@ # It must not have a current backing file (this can be # achieved by passing "backing": "" to blockdev-add). # -# Since 2.5 +# Since: 2.5 ## { 'struct': 'BlockdevSnapshot', 'data': { 'node': 'str', 'overlay': 'str' } } ## -# @DriveBackup +# @DriveBackup: # # @job-id: #optional identifier for the newly-created block job. If # omitted, the device name will be used. (Since 2.7) @@ -905,9 +905,9 @@ # default 'report' (no limitations, since this applies to # a different block device than @device). # -# Note that @on-source-error and @on-target-error only affect background I/O. -# If an error occurs during a guest write request, the device's rerror/werror -# actions will be used. +# Note: @on-source-error and @on-target-error only affect background +# I/O. If an error occurs during a guest write request, the device's +# rerror/werror actions will be used. # # Since: 1.6 ## @@ -919,7 +919,7 @@ '*on-target-error': 'BlockdevOnError' } } ## -# @BlockdevBackup +# @BlockdevBackup: # # @job-id: #optional identifier for the newly-created block job. If # omitted, the device name will be used. (Since 2.7) @@ -946,9 +946,9 @@ # default 'report' (no limitations, since this applies to # a different block device than @device). # -# Note that @on-source-error and @on-target-error only affect background I/O. -# If an error occurs during a guest write request, the device's rerror/werror -# actions will be used. +# Note: @on-source-error and @on-target-error only affect background +# I/O. If an error occurs during a guest write request, the device's +# rerror/werror actions will be used. # # Since: 2.3 ## @@ -961,7 +961,7 @@ '*on-target-error': 'BlockdevOnError' } } ## -# @blockdev-snapshot-sync +# @blockdev-snapshot-sync: # # Generates a synchronous snapshot of a block device. # @@ -970,26 +970,26 @@ # Returns: nothing on success # If @device is not a valid block device, DeviceNotFound # -# Since 0.14.0 +# Since: 0.14.0 ## { 'command': 'blockdev-snapshot-sync', 'data': 'BlockdevSnapshotSync' } ## -# @blockdev-snapshot +# @blockdev-snapshot: # # Generates a snapshot of a block device. # # For the arguments, see the documentation of BlockdevSnapshot. # -# Since 2.5 +# Since: 2.5 ## { 'command': 'blockdev-snapshot', 'data': 'BlockdevSnapshot' } ## -# @change-backing-file +# @change-backing-file: # # Change the backing file in the image file metadata. This does not # cause QEMU to reopen the image file to reparse the backing filename @@ -1016,7 +1016,7 @@ 'backing-file': 'str' } } ## -# @block-commit +# @block-commit: # # Live commit of data from overlay image nodes into backing nodes - i.e., # writes data between 'top' and 'base' into 'base'. @@ -1079,7 +1079,7 @@ '*backing-file': 'str', '*speed': 'int' } } ## -# @drive-backup +# @drive-backup: # # Start a point-in-time copy of a block device to a new destination. The # status of ongoing drive-backup operations can be checked with @@ -1092,13 +1092,13 @@ # Returns: nothing on success # If @device is not a valid block device, GenericError # -# Since 1.6 +# Since: 1.6 ## { 'command': 'drive-backup', 'boxed': true, 'data': 'DriveBackup' } ## -# @blockdev-backup +# @blockdev-backup: # # Start a point-in-time copy of a block device to a new destination. The # status of ongoing blockdev-backup operations can be checked with @@ -1111,25 +1111,25 @@ # Returns: nothing on success # If @device is not a valid block device, DeviceNotFound # -# Since 2.3 +# Since: 2.3 ## { 'command': 'blockdev-backup', 'boxed': true, 'data': 'BlockdevBackup' } ## -# @query-named-block-nodes +# @query-named-block-nodes: # # Get the named block driver list # # Returns: the list of BlockDeviceInfo # -# Since 2.0 +# Since: 2.0 ## { 'command': 'query-named-block-nodes', 'returns': [ 'BlockDeviceInfo' ] } ## -# @drive-mirror +# @drive-mirror: # # Start mirroring a block device's writes to a new destination. # @@ -1138,13 +1138,13 @@ # Returns: nothing on success # If @device is not a valid block device, GenericError # -# Since 1.3 +# Since: 1.3 ## { 'command': 'drive-mirror', 'boxed': true, 'data': 'DriveMirror' } ## -# @DriveMirror +# @DriveMirror: # # A set of parameters describing drive mirror setup. # @@ -1198,7 +1198,7 @@ # written. Both will result in identical contents. # Default is true. (Since 2.4) # -# Since 1.3 +# Since: 1.3 ## { 'struct': 'DriveMirror', 'data': { '*job-id': 'str', 'device': 'str', 'target': 'str', @@ -1210,19 +1210,19 @@ '*unmap': 'bool' } } ## -# @BlockDirtyBitmap +# @BlockDirtyBitmap: # # @node: name of device/node which the bitmap is tracking # # @name: name of the dirty bitmap # -# Since 2.4 +# Since: 2.4 ## { 'struct': 'BlockDirtyBitmap', 'data': { 'node': 'str', 'name': 'str' } } ## -# @BlockDirtyBitmapAdd +# @BlockDirtyBitmapAdd: # # @node: name of device/node which the bitmap is tracking # @@ -1231,13 +1231,13 @@ # @granularity: #optional the bitmap granularity, default is 64k for # block-dirty-bitmap-add # -# Since 2.4 +# Since: 2.4 ## { 'struct': 'BlockDirtyBitmapAdd', 'data': { 'node': 'str', 'name': 'str', '*granularity': 'uint32' } } ## -# @block-dirty-bitmap-add +# @block-dirty-bitmap-add: # # Create a dirty bitmap with a name on the node # @@ -1245,13 +1245,13 @@ # If @node is not a valid block device or node, DeviceNotFound # If @name is already taken, GenericError with an explanation # -# Since 2.4 +# Since: 2.4 ## { 'command': 'block-dirty-bitmap-add', 'data': 'BlockDirtyBitmapAdd' } ## -# @block-dirty-bitmap-remove +# @block-dirty-bitmap-remove: # # Remove a dirty bitmap on the node # @@ -1260,13 +1260,13 @@ # If @name is not found, GenericError with an explanation # if @name is frozen by an operation, GenericError # -# Since 2.4 +# Since: 2.4 ## { 'command': 'block-dirty-bitmap-remove', 'data': 'BlockDirtyBitmap' } ## -# @block-dirty-bitmap-clear +# @block-dirty-bitmap-clear: # # Clear (reset) a dirty bitmap on the device # @@ -1274,13 +1274,13 @@ # If @node is not a valid block device, DeviceNotFound # If @name is not found, GenericError with an explanation # -# Since 2.4 +# Since: 2.4 ## { 'command': 'block-dirty-bitmap-clear', 'data': 'BlockDirtyBitmap' } ## -# @blockdev-mirror +# @blockdev-mirror: # # Start mirroring a block device's writes to a new destination. # @@ -1321,7 +1321,7 @@ # # Returns: nothing on success. # -# Since 2.6 +# Since: 2.6 ## { 'command': 'blockdev-mirror', 'data': { '*job-id': 'str', 'device': 'str', 'target': 'str', @@ -1368,7 +1368,7 @@ 'data': 'BlockIOThrottle' } ## -# @BlockIOThrottle +# @BlockIOThrottle: # # A set of parameters describing block throttling. # @@ -1650,7 +1650,7 @@ { 'command': 'block-job-complete', 'data': { 'device': 'str' } } ## -# @BlockdevDiscardOptions +# @BlockdevDiscardOptions: # # Determines how to handle discard requests. # @@ -1663,7 +1663,7 @@ 'data': [ 'ignore', 'unmap' ] } ## -# @BlockdevDetectZeroesOptions +# @BlockdevDetectZeroesOptions: # # Describes the operation mode for the automatic conversion of plain # zero writes by the OS to driver specific optimized zero write commands. @@ -1679,7 +1679,7 @@ 'data': [ 'off', 'on', 'unmap' ] } ## -# @BlockdevAioOptions +# @BlockdevAioOptions: # # Selects the AIO backend to handle I/O requests # @@ -1692,7 +1692,7 @@ 'data': [ 'threads', 'native' ] } ## -# @BlockdevCacheOptions +# @BlockdevCacheOptions: # # Includes cache-related options for block devices # @@ -1708,7 +1708,7 @@ '*no-flush': 'bool' } } ## -# @BlockdevDriver +# @BlockdevDriver: # # Drivers that are supported in block device operations. # @@ -1731,7 +1731,7 @@ 'vvfat' ] } ## -# @BlockdevOptionsFile +# @BlockdevOptionsFile: # # Driver specific block device options for the file backend. # @@ -1745,7 +1745,7 @@ '*aio': 'BlockdevAioOptions' } } ## -# @BlockdevOptionsNull +# @BlockdevOptionsNull: # # Driver specific block device options for the null backend. # @@ -1760,7 +1760,7 @@ 'data': { '*size': 'int', '*latency-ns': 'uint64' } } ## -# @BlockdevOptionsVVFAT +# @BlockdevOptionsVVFAT: # # Driver specific block device options for the vvfat protocol. # @@ -1781,7 +1781,7 @@ '*label': 'str', '*rw': 'bool' } } ## -# @BlockdevOptionsGenericFormat +# @BlockdevOptionsGenericFormat: # # Driver specific block device options for image format that have no option # besides their data source. @@ -1794,7 +1794,7 @@ 'data': { 'file': 'BlockdevRef' } } ## -# @BlockdevOptionsLUKS +# @BlockdevOptionsLUKS: # # Driver specific block device options for LUKS. # @@ -1810,7 +1810,7 @@ ## -# @BlockdevOptionsGenericCOWFormat +# @BlockdevOptionsGenericCOWFormat: # # Driver specific block device options for image format that have no option # besides their data source and an optional backing file. @@ -1827,7 +1827,7 @@ 'data': { '*backing': 'BlockdevRef' } } ## -# @Qcow2OverlapCheckMode +# @Qcow2OverlapCheckMode: # # General overlap check modes. # @@ -1847,7 +1847,7 @@ 'data': [ 'none', 'constant', 'cached', 'all' ] } ## -# @Qcow2OverlapCheckFlags +# @Qcow2OverlapCheckFlags: # # Structure of flags for each metadata structure. Setting a field to 'true' # makes qemu guard that structure against unintended overwriting. The default @@ -1870,7 +1870,7 @@ '*inactive-l2': 'bool' } } ## -# @Qcow2OverlapChecks +# @Qcow2OverlapChecks: # # Specifies which metadata structures should be guarded against unintended # overwriting. @@ -1887,7 +1887,7 @@ 'mode': 'Qcow2OverlapCheckMode' } } ## -# @BlockdevOptionsQcow2 +# @BlockdevOptionsQcow2: # # Driver specific block device options for qcow2. # @@ -1937,7 +1937,7 @@ ## -# @BlockdevOptionsArchipelago +# @BlockdevOptionsArchipelago: # # Driver specific block device options for Archipelago. # @@ -1966,7 +1966,7 @@ '*segment': 'str' } } ## -# @BlockdevOptionsSsh +# @BlockdevOptionsSsh: # # @server: host address # @@ -1977,7 +1977,7 @@ # # TODO: Expose the host_key_check option in QMP # -# Since 2.8 +# Since: 2.8 ## { 'struct': 'BlockdevOptionsSsh', 'data': { 'server': 'InetSocketAddress', @@ -1986,7 +1986,7 @@ ## -# @BlkdebugEvent +# @BlkdebugEvent: # # Trigger events supported by blkdebug. # @@ -2009,7 +2009,7 @@ 'pwritev_zero', 'pwritev_done', 'empty_image_prepare' ] } ## -# @BlkdebugInjectErrorOptions +# @BlkdebugInjectErrorOptions: # # Describes a single error injection for blkdebug. # @@ -2041,7 +2041,7 @@ '*immediately': 'bool' } } ## -# @BlkdebugSetStateOptions +# @BlkdebugSetStateOptions: # # Describes a single state-change event for blkdebug. # @@ -2061,7 +2061,7 @@ 'new_state': 'int' } } ## -# @BlockdevOptionsBlkdebug +# @BlockdevOptionsBlkdebug: # # Driver specific block device options for blkdebug. # @@ -2086,7 +2086,7 @@ '*set-state': ['BlkdebugSetStateOptions'] } } ## -# @BlockdevOptionsBlkverify +# @BlockdevOptionsBlkverify: # # Driver specific block device options for blkverify. # @@ -2101,7 +2101,7 @@ 'raw': 'BlockdevRef' } } ## -# @QuorumReadPattern +# @QuorumReadPattern: # # An enumeration of quorum read patterns. # @@ -2114,7 +2114,7 @@ { 'enum': 'QuorumReadPattern', 'data': [ 'quorum', 'fifo' ] } ## -# @BlockdevOptionsQuorum +# @BlockdevOptionsQuorum: # # Driver specific block device options for Quorum # @@ -2141,7 +2141,7 @@ '*read-pattern': 'QuorumReadPattern' } } ## -# @GlusterTransport +# @GlusterTransport: # # An enumeration of Gluster transport types # @@ -2156,7 +2156,7 @@ ## -# @GlusterServer +# @GlusterServer: # # Captures the address of a socket # @@ -2185,7 +2185,7 @@ 'tcp': 'InetSocketAddress' } } ## -# @BlockdevOptionsGluster +# @BlockdevOptionsGluster: # # Driver specific block device options for Gluster # @@ -2209,7 +2209,7 @@ '*logfile': 'str' } } ## -# @ReplicationMode +# @ReplicationMode: # # An enumeration of replication modes. # @@ -2222,7 +2222,7 @@ { 'enum' : 'ReplicationMode', 'data' : [ 'primary', 'secondary' ] } ## -# @BlockdevOptionsReplication +# @BlockdevOptionsReplication: # # Driver specific block device options for replication # @@ -2240,19 +2240,19 @@ '*top-id': 'str' } } ## -# @NFSTransport +# @NFSTransport: # # An enumeration of NFS transport types # # @inet: TCP transport # -# Since 2.8 +# Since: 2.8 ## { 'enum': 'NFSTransport', 'data': [ 'inet' ] } ## -# @NFSServer +# @NFSServer: # # Captures the address of the socket # @@ -2260,14 +2260,14 @@ # # @host: host address for NFS server # -# Since 2.8 +# Since: 2.8 ## { 'struct': 'NFSServer', 'data': { 'type': 'NFSTransport', 'host': 'str' } } ## -# @BlockdevOptionsNfs +# @BlockdevOptionsNfs: # # Driver specific block device option for NFS # @@ -2295,7 +2295,7 @@ # @debug-level: #optional set the NFS debug level (max 2) (defaults # to libnfs default) # -# Since 2.8 +# Since: 2.8 ## { 'struct': 'BlockdevOptionsNfs', 'data': { 'server': 'NFSServer', @@ -2308,7 +2308,7 @@ '*debug-level': 'int' } } ## -# @BlockdevOptionsCurl +# @BlockdevOptionsCurl: # # Driver specific block device options for the curl backend. # @@ -2320,7 +2320,7 @@ 'data': { 'filename': 'str' } } ## -# @BlockdevOptionsNbd +# @BlockdevOptionsNbd: # # Driver specific block device options for NBD. # @@ -2338,7 +2338,7 @@ '*tls-creds': 'str' } } ## -# @BlockdevOptionsRaw +# @BlockdevOptionsRaw: # # Driver specific block device options for the raw driver. # @@ -2352,7 +2352,7 @@ 'data': { '*offset': 'int', '*size': 'int' } } ## -# @BlockdevOptions +# @BlockdevOptions: # # Options for creating a block device. Many options are available for all # block devices, independent of the block driver: @@ -2418,7 +2418,7 @@ } } ## -# @BlockdevRef +# @BlockdevRef: # # Reference to a block device. # @@ -2616,7 +2616,7 @@ ## -# @BlockErrorAction +# @BlockErrorAction: # # An enumeration of action that has been taken when a DISK I/O occurs # @@ -2633,7 +2633,7 @@ ## -# @BLOCK_IMAGE_CORRUPTED +# @BLOCK_IMAGE_CORRUPTED: # # Emitted when a corruption has been detected in a disk image # @@ -2668,7 +2668,7 @@ 'fatal' : 'bool' } } ## -# @BLOCK_IO_ERROR +# @BLOCK_IO_ERROR: # # Emitted when a disk I/O error occurs # @@ -2704,7 +2704,7 @@ 'reason': 'str' } } ## -# @BLOCK_JOB_COMPLETED +# @BLOCK_JOB_COMPLETED: # # Emitted when a block job has completed # @@ -2736,7 +2736,7 @@ '*error': 'str' } } ## -# @BLOCK_JOB_CANCELLED +# @BLOCK_JOB_CANCELLED: # # Emitted when a block job has been cancelled # @@ -2762,7 +2762,7 @@ 'speed' : 'int' } } ## -# @BLOCK_JOB_ERROR +# @BLOCK_JOB_ERROR: # # Emitted when a block job encounters an error # @@ -2781,7 +2781,7 @@ 'action' : 'BlockErrorAction' } } ## -# @BLOCK_JOB_READY +# @BLOCK_JOB_READY: # # Emitted when a block job is ready to complete # @@ -2810,7 +2810,7 @@ 'speed' : 'int' } } ## -# @PreallocMode +# @PreallocMode: # # Preallocation mode of QEMU image file # @@ -2822,13 +2822,13 @@ # space is really available. @full preallocation also sets up # metadata correctly. # -# Since 2.2 +# Since: 2.2 ## { 'enum': 'PreallocMode', 'data': [ 'off', 'metadata', 'falloc', 'full' ] } ## -# @BLOCK_WRITE_THRESHOLD +# @BLOCK_WRITE_THRESHOLD: # # Emitted when writes on block device reaches or exceeds the # configured write threshold. For thin-provisioned devices, this @@ -2851,7 +2851,7 @@ 'write-threshold': 'uint64' } } ## -# @block-set-write-threshold +# @block-set-write-threshold: # # Change the write threshold for a block drive. An event will be delivered # if a write to this block drive crosses the configured threshold. @@ -2869,7 +2869,7 @@ 'data': { 'node-name': 'str', 'write-threshold': 'uint64' } } ## -# @x-blockdev-change +# @x-blockdev-change: # # Dynamically reconfigure the block driver state graph. It can be used # to add, remove, insert or replace a graph node. Currently only the diff --git a/qapi/block.json b/qapi/block.json index 4661fc93c8..937df05830 100644 --- a/qapi/block.json +++ b/qapi/block.json @@ -40,7 +40,7 @@ 'data': ['auto', 'none', 'lba', 'large', 'rechs']} ## -# @FloppyDriveType +# @FloppyDriveType: # # Type of Floppy drive to be emulated by the Floppy Disk Controller. # @@ -56,7 +56,7 @@ 'data': ['144', '288', '120', 'none', 'auto']} ## -# @BlockdevSnapshotInternal +# @BlockdevSnapshotInternal: # # @device: the device name or node-name of a root node to generate the snapshot # from @@ -73,7 +73,7 @@ 'data': { 'device': 'str', 'name': 'str' } } ## -# @blockdev-snapshot-internal-sync +# @blockdev-snapshot-internal-sync: # # Synchronously take an internal snapshot of a block device, when the format # of the image used supports it. @@ -87,13 +87,13 @@ # If the format of the image used does not support it, # BlockFormatFeatureNotSupported # -# Since 1.7 +# Since: 1.7 ## { 'command': 'blockdev-snapshot-internal-sync', 'data': 'BlockdevSnapshotInternal' } ## -# @blockdev-snapshot-delete-internal-sync +# @blockdev-snapshot-delete-internal-sync: # # Synchronously delete an internal snapshot of a block device, when the format # of the image used support it. The snapshot is identified by name or id or @@ -114,7 +114,7 @@ # BlockFormatFeatureNotSupported # If @id and @name are both not specified, GenericError # -# Since 1.7 +# Since: 1.7 ## { 'command': 'blockdev-snapshot-delete-internal-sync', 'data': { 'device': 'str', '*id': 'str', '*name': 'str'}, @@ -190,7 +190,7 @@ { 'command': 'nbd-server-stop' } ## -# @DEVICE_TRAY_MOVED +# @DEVICE_TRAY_MOVED: # # Emitted whenever the tray of a removable device is moved by the guest or by # HMP/QMP commands @@ -209,7 +209,7 @@ 'data': { 'device': 'str', 'id': 'str', 'tray-open': 'bool' } } ## -# @QuorumOpType +# @QuorumOpType: # # An enumeration of the quorum operation types # diff --git a/qapi/common.json b/qapi/common.json index 6987100343..624a8619c8 100644 --- a/qapi/common.json +++ b/qapi/common.json @@ -3,7 +3,7 @@ # QAPI common definitions ## -# @QapiErrorClass +# @QapiErrorClass: # # QEMU error classes # @@ -30,7 +30,7 @@ 'DeviceNotActive', 'DeviceNotFound', 'KVMMissingCap' ] } ## -# @VersionTriple +# @VersionTriple: # # A three-part version number. # @@ -101,7 +101,7 @@ { 'command': 'query-commands', 'returns': ['CommandInfo'] } ## -# @OnOffAuto +# @OnOffAuto: # # An enumeration of three options: on, off, and auto # @@ -117,7 +117,7 @@ 'data': [ 'auto', 'on', 'off' ] } ## -# @OnOffSplit +# @OnOffSplit: # # An enumeration of three values: on, off, and split # diff --git a/qapi/event.json b/qapi/event.json index 8642052ebc..37bf34ed6d 100644 --- a/qapi/event.json +++ b/qapi/event.json @@ -1,5 +1,5 @@ ## -# @SHUTDOWN +# @SHUTDOWN: # # Emitted when the virtual machine has shut down, indicating that qemu is # about to exit. @@ -12,7 +12,7 @@ { 'event': 'SHUTDOWN' } ## -# @POWERDOWN +# @POWERDOWN: # # Emitted when the virtual machine is powered down through the power control # system, such as via ACPI. @@ -22,7 +22,7 @@ { 'event': 'POWERDOWN' } ## -# @RESET +# @RESET: # # Emitted when the virtual machine is reset # @@ -31,7 +31,7 @@ { 'event': 'RESET' } ## -# @STOP +# @STOP: # # Emitted when the virtual machine is stopped # @@ -40,7 +40,7 @@ { 'event': 'STOP' } ## -# @RESUME +# @RESUME: # # Emitted when the virtual machine resumes execution # @@ -49,7 +49,7 @@ { 'event': 'RESUME' } ## -# @SUSPEND +# @SUSPEND: # # Emitted when guest enters a hardware suspension state, for example, S3 state, # which is sometimes called standby state @@ -59,7 +59,7 @@ { 'event': 'SUSPEND' } ## -# @SUSPEND_DISK +# @SUSPEND_DISK: # # Emitted when guest enters a hardware suspension state with data saved on # disk, for example, S4 state, which is sometimes called hibernate state @@ -71,7 +71,7 @@ { 'event': 'SUSPEND_DISK' } ## -# @WAKEUP +# @WAKEUP: # # Emitted when the guest has woken up from suspend state and is running # @@ -80,7 +80,7 @@ { 'event': 'WAKEUP' } ## -# @RTC_CHANGE +# @RTC_CHANGE: # # Emitted when the guest changes the RTC time. # @@ -93,7 +93,7 @@ 'data': { 'offset': 'int' } } ## -# @WATCHDOG +# @WATCHDOG: # # Emitted when the watchdog device's timer is expired # @@ -108,7 +108,7 @@ 'data': { 'action': 'WatchdogExpirationAction' } } ## -# @DEVICE_DELETED +# @DEVICE_DELETED: # # Emitted whenever the device removal completion is acknowledged by the guest. # At this point, it's safe to reuse the specified device ID. Device removal can @@ -124,7 +124,7 @@ 'data': { '*device': 'str', 'path': 'str' } } ## -# @NIC_RX_FILTER_CHANGED +# @NIC_RX_FILTER_CHANGED: # # Emitted once until the 'query-rx-filter' command is executed, the first event # will always be emitted @@ -139,7 +139,7 @@ 'data': { '*name': 'str', 'path': 'str' } } ## -# @VNC_CONNECTED +# @VNC_CONNECTED: # # Emitted when a VNC client establishes a connection # @@ -157,7 +157,7 @@ 'client': 'VncBasicInfo' } } ## -# @VNC_INITIALIZED +# @VNC_INITIALIZED: # # Emitted after authentication takes place (if any) and the VNC session is # made active @@ -173,7 +173,7 @@ 'client': 'VncClientInfo' } } ## -# @VNC_DISCONNECTED +# @VNC_DISCONNECTED: # # Emitted when the connection is closed # @@ -188,7 +188,7 @@ 'client': 'VncClientInfo' } } ## -# @SPICE_CONNECTED +# @SPICE_CONNECTED: # # Emitted when a SPICE client establishes a connection # @@ -203,7 +203,7 @@ 'client': 'SpiceBasicInfo' } } ## -# @SPICE_INITIALIZED +# @SPICE_INITIALIZED: # # Emitted after initial handshake and authentication takes place (if any) # and the SPICE channel is up and running @@ -219,7 +219,7 @@ 'client': 'SpiceChannel' } } ## -# @SPICE_DISCONNECTED +# @SPICE_DISCONNECTED: # # Emitted when the SPICE connection is closed # @@ -234,7 +234,7 @@ 'client': 'SpiceBasicInfo' } } ## -# @SPICE_MIGRATE_COMPLETED +# @SPICE_MIGRATE_COMPLETED: # # Emitted when SPICE migration has completed # @@ -243,7 +243,7 @@ { 'event': 'SPICE_MIGRATE_COMPLETED' } ## -# @MIGRATION +# @MIGRATION: # # Emitted when a migration event happens # @@ -255,7 +255,7 @@ 'data': {'status': 'MigrationStatus'}} ## -# @MIGRATION_PASS +# @MIGRATION_PASS: # # Emitted from the source side of a migration at the start of each pass # (when it syncs the dirty bitmap) @@ -268,7 +268,7 @@ 'data': { 'pass': 'int' } } ## -# @ACPI_DEVICE_OST +# @ACPI_DEVICE_OST: # # Emitted when guest executes ACPI _OST method. # @@ -280,7 +280,7 @@ 'data': { 'info': 'ACPIOSTInfo' } } ## -# @BALLOON_CHANGE +# @BALLOON_CHANGE: # # Emitted when the guest changes the actual BALLOON level. This value is # equivalent to the @actual field return by the 'query-balloon' command @@ -293,7 +293,7 @@ 'data': { 'actual': 'int' } } ## -# @GUEST_PANICKED +# @GUEST_PANICKED: # # Emitted when guest OS panic is detected # @@ -305,7 +305,7 @@ 'data': { 'action': 'GuestPanicAction' } } ## -# @QUORUM_FAILURE +# @QUORUM_FAILURE: # # Emitted by the Quorum block driver if it fails to establish a quorum # @@ -321,7 +321,7 @@ 'data': { 'reference': 'str', 'sector-num': 'int', 'sectors-count': 'int' } } ## -# @QUORUM_REPORT_BAD +# @QUORUM_REPORT_BAD: # # Emitted to report a corruption of a Quorum file # @@ -345,7 +345,7 @@ 'sector-num': 'int', 'sectors-count': 'int' } } ## -# @VSERPORT_CHANGE +# @VSERPORT_CHANGE: # # Emitted when the guest opens or closes a virtio-serial port. # @@ -359,7 +359,7 @@ 'data': { 'id': 'str', 'open': 'bool' } } ## -# @MEM_UNPLUG_ERROR +# @MEM_UNPLUG_ERROR: # # Emitted when memory hot unplug error occurs. # @@ -373,7 +373,7 @@ 'data': { 'device': 'str', 'msg': 'str' } } ## -# @DUMP_COMPLETED +# @DUMP_COMPLETED: # # Emitted when background dump has completed # diff --git a/qapi/introspect.json b/qapi/introspect.json index 3fd81fb540..fd4dc84196 100644 --- a/qapi/introspect.json +++ b/qapi/introspect.json @@ -11,7 +11,7 @@ # See the COPYING file in the top-level directory. ## -# @query-qmp-schema +# @query-qmp-schema: # # Command query-qmp-schema exposes the QMP wire ABI as an array of # SchemaInfo. This lets QMP clients figure out what commands and @@ -49,7 +49,7 @@ 'gen': false } # just to simplify qmp_query_json() ## -# @SchemaMetaType +# @SchemaMetaType: # # This is a @SchemaInfo's meta type, i.e. the kind of entity it # describes. @@ -75,7 +75,7 @@ 'command', 'event' ] } ## -# @SchemaInfo +# @SchemaInfo: # # @name: the entity's name, inherited from @base. # Commands and events have the name defined in the QAPI schema. @@ -105,7 +105,7 @@ 'event': 'SchemaInfoEvent' } } ## -# @SchemaInfoBuiltin +# @SchemaInfoBuiltin: # # Additional SchemaInfo members for meta-type 'builtin'. # @@ -117,7 +117,7 @@ 'data': { 'json-type': 'JSONType' } } ## -# @JSONType +# @JSONType: # # The four primitive and two structured types according to RFC 7159 # section 1, plus 'int' (split off 'number'), plus the obvious top @@ -130,7 +130,7 @@ 'object', 'array', 'value' ] } ## -# @SchemaInfoEnum +# @SchemaInfoEnum: # # Additional SchemaInfo members for meta-type 'enum'. # @@ -144,7 +144,7 @@ 'data': { 'values': ['str'] } } ## -# @SchemaInfoArray +# @SchemaInfoArray: # # Additional SchemaInfo members for meta-type 'array'. # @@ -158,7 +158,7 @@ 'data': { 'element-type': 'str' } } ## -# @SchemaInfoObject +# @SchemaInfoObject: # # Additional SchemaInfo members for meta-type 'object'. # @@ -183,7 +183,7 @@ '*variants': [ 'SchemaInfoObjectVariant' ] } } ## -# @SchemaInfoObjectMember +# @SchemaInfoObjectMember: # # An object member. # @@ -206,7 +206,7 @@ # @default's type must be null or match @type ## -# @SchemaInfoObjectVariant +# @SchemaInfoObjectVariant: # # The variant members for a value of the type tag. # @@ -221,7 +221,7 @@ 'data': { 'case': 'str', 'type': 'str' } } ## -# @SchemaInfoAlternate +# @SchemaInfoAlternate: # # Additional SchemaInfo members for meta-type 'alternate'. # @@ -237,7 +237,7 @@ 'data': { 'members': [ 'SchemaInfoAlternateMember' ] } } ## -# @SchemaInfoAlternateMember +# @SchemaInfoAlternateMember: # # An alternate member. # @@ -249,7 +249,7 @@ 'data': { 'type': 'str' } } ## -# @SchemaInfoCommand +# @SchemaInfoCommand: # # Additional SchemaInfo members for meta-type 'command'. # @@ -266,7 +266,7 @@ 'data': { 'arg-type': 'str', 'ret-type': 'str' } } ## -# @SchemaInfoEvent +# @SchemaInfoEvent: # # Additional SchemaInfo members for meta-type 'event'. # diff --git a/qapi/trace.json b/qapi/trace.json index e87214677c..4fd39b7792 100644 --- a/qapi/trace.json +++ b/qapi/trace.json @@ -17,7 +17,7 @@ # # @enabled: The event is dynamically enabled. # -# Since 2.2 +# Since: 2.2 ## { 'enum': 'TraceEventState', 'data': ['unavailable', 'disabled', 'enabled'] } @@ -34,7 +34,7 @@ # An event is per-vCPU if it has the "vcpu" property in the "trace-events" # files. # -# Since 2.2 +# Since: 2.2 ## { 'struct': 'TraceEventInfo', 'data': {'name': 'str', 'state': 'TraceEventState', 'vcpu': 'bool'} } @@ -58,7 +58,7 @@ # exact match, @vcpu is given and the event does not have the "vcpu" property, # an error is returned. # -# Since 2.2 +# Since: 2.2 ## { 'command': 'trace-event-get-state', 'data': {'name': 'str', '*vcpu': 'int'}, @@ -83,7 +83,7 @@ # match, @vcpu is given and the event does not have the "vcpu" property, an # error is returned. # -# Since 2.2 +# Since: 2.2 ## { 'command': 'trace-event-set-state', 'data': {'name': 'str', 'enable': 'bool', '*ignore-unavailable': 'bool', diff --git a/qga/qapi-schema.json b/qga/qapi-schema.json index ad0a31d011..94c03128fd 100644 --- a/qga/qapi-schema.json +++ b/qga/qapi-schema.json @@ -102,7 +102,7 @@ # # Returns: Time in nanoseconds. # -# Since 1.5 +# Since: 1.5 ## { 'command': 'guest-get-time', 'returns': 'int' } @@ -149,13 +149,13 @@ # @success-response: whether command returns a response on success # (since 1.7) # -# Since 1.1.0 +# Since: 1.1.0 ## { 'struct': 'GuestAgentCommandInfo', 'data': { 'name': 'str', 'enabled': 'bool', 'success-response': 'bool' } } ## -# @GuestAgentInfo +# @GuestAgentInfo: # # Information about guest agent. # @@ -163,7 +163,7 @@ # # @supported_commands: Information about guest agent commands # -# Since 0.15.0 +# Since: 0.15.0 ## { 'struct': 'GuestAgentInfo', 'data': { 'version': 'str', @@ -230,7 +230,7 @@ 'data': { 'handle': 'int' } } ## -# @GuestFileRead +# @GuestFileRead: # # Result of guest agent file-read operation # @@ -264,7 +264,7 @@ 'returns': 'GuestFileRead' } ## -# @GuestFileWrite +# @GuestFileWrite: # # Result of guest agent file-write operation # @@ -300,7 +300,7 @@ ## -# @GuestFileSeek +# @GuestFileSeek: # # Result of guest agent file-seek operation # @@ -378,7 +378,7 @@ 'data': { 'handle': 'int' } } ## -# @GuestFsfreezeStatus +# @GuestFsfreezeStatus: # # An enumeration of filesystem freeze states # @@ -455,7 +455,7 @@ 'returns': 'int' } ## -# @GuestFilesystemTrimResult +# @GuestFilesystemTrimResult: # # @path: path that was trimmed # @error: an error message when trim failed @@ -469,7 +469,7 @@ '*trimmed': 'int', '*minimum': 'int', '*error': 'str'} } ## -# @GuestFilesystemTrimResponse +# @GuestFilesystemTrimResponse: # # @paths: list of @GuestFilesystemTrimResult per path that was trimmed # @@ -501,7 +501,7 @@ 'returns': 'GuestFilesystemTrimResponse' } ## -# @guest-suspend-disk +# @guest-suspend-disk: # # Suspend guest to disk. # @@ -529,7 +529,7 @@ { 'command': 'guest-suspend-disk', 'success-response': false } ## -# @guest-suspend-ram +# @guest-suspend-ram: # # Suspend guest to ram. # @@ -561,7 +561,7 @@ { 'command': 'guest-suspend-ram', 'success-response': false } ## -# @guest-suspend-hybrid +# @guest-suspend-hybrid: # # Save guest state to disk and suspend to ram. # @@ -720,7 +720,7 @@ 'returns': 'int' } ## -# @GuestDiskBusType +# @GuestDiskBusType: # # An enumeration of bus type of disks # @@ -783,7 +783,7 @@ 'bus': 'int', 'target': 'int', 'unit': 'int'} } ## -# @GuestFilesystemInfo +# @GuestFilesystemInfo: # # @name: disk name # @mountpoint: mount point path @@ -811,7 +811,7 @@ 'returns': ['GuestFilesystemInfo'] } ## -# @guest-set-user-password +# @guest-set-user-password: # # @username: the user account whose password to change # @password: the new password entry string, base64 encoded @@ -832,7 +832,7 @@ # # Returns: Nothing on success. # -# Since 2.3 +# Since: 2.3 ## { 'command': 'guest-set-user-password', 'data': { 'username': 'str', 'password': 'str', 'crypted': 'bool' } } @@ -873,7 +873,7 @@ 'returns': ['GuestMemoryBlock'] } ## -# @GuestMemoryBlockResponseType +# @GuestMemoryBlockResponseType: # # An enumeration of memory block operation result. # @@ -956,7 +956,7 @@ # # Returns: @GuestMemoryBlockInfo # -# Since 2.3 +# Since: 2.3 ## { 'command': 'guest-get-memory-block-info', 'returns': 'GuestMemoryBlockInfo' } @@ -984,7 +984,7 @@ '*out-data': 'str', '*err-data': 'str', '*out-truncated': 'bool', '*err-truncated': 'bool' }} ## -# @guest-exec-status +# @guest-exec-status: # # Check status of process associated with PID retrieved via guest-exec. # Reap the process and associated metadata if it has exited. @@ -993,7 +993,7 @@ # # Returns: GuestExecStatus on success. # -# Since 2.5 +# Since: 2.5 ## { 'command': 'guest-exec-status', 'data': { 'pid': 'int' }, @@ -1003,7 +1003,7 @@ # @GuestExec: # @pid: pid of child process in guest OS # -#Since: 2.5 +# Since: 2.5 ## { 'struct': 'GuestExec', 'data': { 'pid': 'int'} }