1QEMU-QMP-REF.7(7)                                            QEMU-QMP-REF.7(7)
2
3
4

NAME

6       qemu-qmp-ref - QEMU QMP Reference Manual
7

DESCRIPTION

9   Introduction
10       This document describes all commands currently supported by QMP.
11
12       Most of the time their usage is exactly the same as in the user
13       Monitor, this means that any other document which also describe
14       commands (the manpage, QEMU's manual, etc) can and should be consulted.
15
16       QMP has two types of commands: regular and query commands. Regular
17       commands usually change the Virtual Machine's state someway, while
18       query commands just return information. The sections below are divided
19       accordingly.
20
21       It's important to observe that all communication examples are formatted
22       in a reader-friendly way, so that they're easier to understand.
23       However, in real protocol usage, they're emitted as a single line.
24
25       Also, the following notation is used to denote data flow:
26
27       Example:
28
29               -> data issued by the Client
30
31
32
33               <- Server data response
34
35       Please, refer to the QMP specification (docs/interop/qmp-spec.txt) for
36       detailed information on the Server command and response formats.
37
38   Stability Considerations
39       The current QMP command set (described in this file) may be useful for
40       a number of use cases, however it's limited and several commands have
41       bad defined semantics, specially with regard to command completion.
42
43       These problems are going to be solved incrementally in the next QEMU
44       releases and we're going to establish a deprecation policy for badly
45       defined commands.
46
47       If you're planning to adopt QMP, please observe the following:
48
49       1.  The deprecation policy will take effect and be documented soon,
50           please check the documentation of each used command as soon as a
51           new release of QEMU is available
52
53       2.  DO NOT rely on anything which is not explicit documented
54
55       3.  Errors, in special, are not documented. Applications should NOT
56           check for specific errors classes or data (it's strongly
57           recommended to only check for the "error" key)
58
59   Common data types
60       QapiErrorClass (Enum)
61
62       QEMU error classes
63
64       Values:
65
66       "GenericError"
67           this is used for errors that don't require a specific error class.
68           This should be the default case for most errors
69
70       "CommandNotFound"
71           the requested command has not been found
72
73       "DeviceNotActive"
74           a device has failed to be become active
75
76       "DeviceNotFound"
77           the requested device has not been found
78
79       "KVMMissingCap"
80           the requested operation can't be fulfilled because a required KVM
81           capability is missing
82
83       Since: 1.2
84
85       IoOperationType (Enum)
86
87       An enumeration of the I/O operation types
88
89       Values:
90
91       "read"
92           read operation
93
94       "write"
95           write operation
96
97       Since: 2.1
98
99       OnOffAuto (Enum)
100
101       An enumeration of three options: on, off, and auto
102
103       Values:
104
105       "auto"
106           QEMU selects the value between on and off
107
108       "on"
109           Enabled
110
111       "off"
112           Disabled
113
114       Since: 2.2
115
116       OnOffSplit (Enum)
117
118       An enumeration of three values: on, off, and split
119
120       Values:
121
122       "on"
123           Enabled
124
125       "off"
126           Disabled
127
128       "split"
129           Mixed
130
131       Since: 2.6
132
133       String (Object)
134
135       A fat type wrapping 'str', to be embedded in lists.
136
137       Members:
138
139       "str: string"
140           Not documented
141
142       Since: 1.2
143
144       StrOrNull (Alternate)
145
146       This is a string value or the explicit lack of a string (null pointer
147       in C).  Intended for cases when 'optional absent' already has a
148       different meaning.
149
150       Members:
151
152       "s: string"
153           the string value
154
155       "n: null"
156           no string value
157
158       Since: 2.10
159
160       OffAutoPCIBAR (Enum)
161
162       An enumeration of options for specifying a PCI BAR
163
164       Values:
165
166       "off"
167           The specified feature is disabled
168
169       "auto"
170           The PCI BAR for the feature is automatically selected
171
172       "bar0"
173           PCI BAR0 is used for the feature
174
175       "bar1"
176           PCI BAR1 is used for the feature
177
178       "bar2"
179           PCI BAR2 is used for the feature
180
181       "bar3"
182           PCI BAR3 is used for the feature
183
184       "bar4"
185           PCI BAR4 is used for the feature
186
187       "bar5"
188           PCI BAR5 is used for the feature
189
190       Since: 2.12
191
192       SysEmuTarget (Enum)
193
194       The comprehensive enumeration of QEMU system emulation ("softmmu")
195       targets. Run "./configure --help" in the project root directory, and
196       look for the *-softmmu targets near the "--target-list" option. The
197       individual target constants are not documented here, for the time
198       being.
199
200       Values:
201
202       "aarch64"
203           Not documented
204
205       "alpha"
206           Not documented
207
208       "arm"
209           Not documented
210
211       "cris"
212           Not documented
213
214       "hppa"
215           Not documented
216
217       "i386"
218           Not documented
219
220       "lm32"
221           Not documented
222
223       "m68k"
224           Not documented
225
226       "microblaze"
227           Not documented
228
229       "microblazeel"
230           Not documented
231
232       "mips"
233           Not documented
234
235       "mips64"
236           Not documented
237
238       "mips64el"
239           Not documented
240
241       "mipsel"
242           Not documented
243
244       "moxie"
245           Not documented
246
247       "nios2"
248           Not documented
249
250       "or1k"
251           Not documented
252
253       "ppc"
254           Not documented
255
256       "ppc64"
257           Not documented
258
259       "ppcemb"
260           Not documented
261
262       "riscv32"
263           Not documented
264
265       "riscv64"
266           Not documented
267
268       "s390x"
269           Not documented
270
271       "sh4"
272           Not documented
273
274       "sh4eb"
275           Not documented
276
277       "sparc"
278           Not documented
279
280       "sparc64"
281           Not documented
282
283       "tricore"
284           Not documented
285
286       "unicore32"
287           Not documented
288
289       "x86_64"
290           Not documented
291
292       "xtensa"
293           Not documented
294
295       "xtensaeb"
296           Not documented
297
298       Notes: The resulting QMP strings can be appended to the "qemu-system-"
299       prefix to produce the corresponding QEMU executable name. This is true
300       even for "qemu-system-x86_64".
301
302       Since: 3.0
303
304   Socket data types
305       NetworkAddressFamily (Enum)
306
307       The network address family
308
309       Values:
310
311       "ipv4"
312           IPV4 family
313
314       "ipv6"
315           IPV6 family
316
317       "unix"
318           unix socket
319
320       "vsock"
321           vsock family (since 2.8)
322
323       "unknown"
324           otherwise
325
326       Since: 2.1
327
328       InetSocketAddressBase (Object)
329
330       Members:
331
332       "host: string"
333           host part of the address
334
335       "port: string"
336           port part of the address
337
338       InetSocketAddress (Object)
339
340       Captures a socket address or address range in the Internet namespace.
341
342       Members:
343
344       "numeric: boolean" (optional)
345           true if the host/port are guaranteed to be numeric, false if name
346           resolution should be attempted. Defaults to false.  (Since 2.9)
347
348       "to: int" (optional)
349           If present, this is range of possible addresses, with port between
350           "port" and "to".
351
352       "ipv4: boolean" (optional)
353           whether to accept IPv4 addresses, default try both IPv4 and IPv6
354
355       "ipv6: boolean" (optional)
356           whether to accept IPv6 addresses, default try both IPv4 and IPv6
357
358       The members of "InetSocketAddressBase"
359
360       Since: 1.3
361
362       UnixSocketAddress (Object)
363
364       Captures a socket address in the local ("Unix socket") namespace.
365
366       Members:
367
368       "path: string"
369           filesystem path to use
370
371       Since: 1.3
372
373       VsockSocketAddress (Object)
374
375       Captures a socket address in the vsock namespace.
376
377       Members:
378
379       "cid: string"
380           unique host identifier
381
382       "port: string"
383           port
384
385       Note: string types are used to allow for possible future hostname or
386       service resolution support.
387
388       Since: 2.8
389
390       SocketAddressLegacy (Object)
391
392       Captures the address of a socket, which could also be a named file
393       descriptor
394
395       Members:
396
397       "type"
398           One of "inet", "unix", "vsock", "fd"
399
400       "data: InetSocketAddress" when "type" is "inet"
401       "data: UnixSocketAddress" when "type" is "unix"
402       "data: VsockSocketAddress" when "type" is "vsock"
403       "data: String" when "type" is "fd"
404
405       Note: This type is deprecated in favor of SocketAddress.  The
406       difference between SocketAddressLegacy and SocketAddress is that the
407       latter is a flat union rather than a simple union. Flat is nicer
408       because it avoids nesting on the wire, i.e. that form has fewer {}.
409
410       Since: 1.3
411
412       SocketAddressType (Enum)
413
414       Available SocketAddress types
415
416       Values:
417
418       "inet"
419           Internet address
420
421       "unix"
422           Unix domain socket
423
424       "vsock"
425           VMCI address
426
427       "fd"
428           decimal is for file descriptor number, otherwise a file descriptor
429           name.  Named file descriptors are permitted in monitor commands, in
430           combination with the 'getfd' command. Decimal file descriptors are
431           permitted at startup or other contexts where no monitor context is
432           active.
433
434       Since: 2.9
435
436       SocketAddress (Object)
437
438       Captures the address of a socket, which could also be a named file
439       descriptor
440
441       Members:
442
443       "type: SocketAddressType"
444           Transport type
445
446       The members of "InetSocketAddress" when "type" is "inet"
447       The members of "UnixSocketAddress" when "type" is "unix"
448       The members of "VsockSocketAddress" when "type" is "vsock"
449       The members of "String" when "type" is "fd"
450
451       Since: 2.9
452
453   VM run state
454       RunState (Enum)
455
456       An enumeration of VM run states.
457
458       Values:
459
460       "debug"
461           QEMU is running on a debugger
462
463       "finish-migrate"
464           guest is paused to finish the migration process
465
466       "inmigrate"
467           guest is paused waiting for an incoming migration.  Note that this
468           state does not tell whether the machine will start at the end of
469           the migration.  This depends on the command-line -S option and any
470           invocation of 'stop' or 'cont' that has happened since QEMU was
471           started.
472
473       "internal-error"
474           An internal error that prevents further guest execution has
475           occurred
476
477       "io-error"
478           the last IOP has failed and the device is configured to pause on
479           I/O errors
480
481       "paused"
482           guest has been paused via the 'stop' command
483
484       "postmigrate"
485           guest is paused following a successful 'migrate'
486
487       "prelaunch"
488           QEMU was started with -S and guest has not started
489
490       "restore-vm"
491           guest is paused to restore VM state
492
493       "running"
494           guest is actively running
495
496       "save-vm"
497           guest is paused to save the VM state
498
499       "shutdown"
500           guest is shut down (and -no-shutdown is in use)
501
502       "suspended"
503           guest is suspended (ACPI S3)
504
505       "watchdog"
506           the watchdog action is configured to pause and has been triggered
507
508       "guest-panicked"
509           guest has been panicked as a result of guest OS panic
510
511       "colo"
512           guest is paused to save/restore VM state under colo checkpoint, VM
513           can not get into this state unless colo capability is enabled for
514           migration. (since 2.8)
515
516       "preconfig"
517           QEMU is paused before board specific init callback is executed.
518           The state is reachable only if the --preconfig CLI option is used.
519           (Since 3.0)
520
521       StatusInfo (Object)
522
523       Information about VCPU run state
524
525       Members:
526
527       "running: boolean"
528           true if all VCPUs are runnable, false if not runnable
529
530       "singlestep: boolean"
531           true if VCPUs are in single-step mode
532
533       "status: RunState"
534           the virtual machine "RunState"
535
536       Since: 0.14.0
537
538       Notes: "singlestep" is enabled through the GDB stub
539
540       query-status  (Command) Query the run status of all VCPUs
541
542       Returns: "StatusInfo" reflecting all VCPUs
543
544       Since: 0.14.0
545
546       Example:
547
548               -> { "execute": "query-status" }
549               <- { "return": { "running": true,
550                                "singlestep": false,
551                                "status": "running" } }
552
553       SHUTDOWN  (Event) Emitted when the virtual machine has shut down,
554       indicating that qemu is about to exit.
555
556       Arguments:
557
558       "guest: boolean"
559           If true, the shutdown was triggered by a guest request (such as a
560           guest-initiated ACPI shutdown request or other hardware-specific
561           action) rather than a host request (such as sending qemu a SIGINT).
562           (since 2.10)
563
564       Note: If the command-line option "-no-shutdown" has been specified,
565       qemu will not exit, and a STOP event will eventually follow the
566       SHUTDOWN event
567
568       Since: 0.12.0
569
570       Example:
571
572               <- { "event": "SHUTDOWN", "data": { "guest": true },
573                    "timestamp": { "seconds": 1267040730, "microseconds": 682951 } }
574
575       POWERDOWN  (Event) Emitted when the virtual machine is powered down
576       through the power control system, such as via ACPI.
577
578       Since: 0.12.0
579
580       Example:
581
582               <- { "event": "POWERDOWN",
583                    "timestamp": { "seconds": 1267040730, "microseconds": 682951 } }
584
585       RESET  (Event) Emitted when the virtual machine is reset
586
587       Arguments:
588
589       "guest: boolean"
590           If true, the reset was triggered by a guest request (such as a
591           guest-initiated ACPI reboot request or other hardware-specific
592           action) rather than a host request (such as the QMP command
593           system_reset).  (since 2.10)
594
595       Since: 0.12.0
596
597       Example:
598
599               <- { "event": "RESET", "data": { "guest": false },
600                    "timestamp": { "seconds": 1267041653, "microseconds": 9518 } }
601
602       STOP  (Event) Emitted when the virtual machine is stopped
603
604       Since: 0.12.0
605
606       Example:
607
608               <- { "event": "STOP",
609                    "timestamp": { "seconds": 1267041730, "microseconds": 281295 } }
610
611       RESUME  (Event) Emitted when the virtual machine resumes execution
612
613       Since: 0.12.0
614
615       Example:
616
617               <- { "event": "RESUME",
618                    "timestamp": { "seconds": 1271770767, "microseconds": 582542 } }
619
620       SUSPEND  (Event) Emitted when guest enters a hardware suspension state,
621       for example, S3 state, which is sometimes called standby state
622
623       Since: 1.1
624
625       Example:
626
627               <- { "event": "SUSPEND",
628                    "timestamp": { "seconds": 1344456160, "microseconds": 309119 } }
629
630       SUSPEND_DISK  (Event) Emitted when guest enters a hardware suspension
631       state with data saved on disk, for example, S4 state, which is
632       sometimes called hibernate state
633
634       Note: QEMU shuts down (similar to event "SHUTDOWN") when entering this
635       state
636
637       Since: 1.2
638
639       Example:
640
641               <-   { "event": "SUSPEND_DISK",
642                      "timestamp": { "seconds": 1344456160, "microseconds": 309119 } }
643
644       WAKEUP  (Event) Emitted when the guest has woken up from suspend state
645       and is running
646
647       Since: 1.1
648
649       Example:
650
651               <- { "event": "WAKEUP",
652                    "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
653
654       WATCHDOG  (Event) Emitted when the watchdog device's timer is expired
655
656       Arguments:
657
658       "action: WatchdogAction"
659           action that has been taken
660
661       Note: If action is "reset", "shutdown", or "pause" the WATCHDOG event
662       is followed respectively by the RESET, SHUTDOWN, or STOP events
663
664       Note: This event is rate-limited.
665
666       Since: 0.13.0
667
668       Example:
669
670               <- { "event": "WATCHDOG",
671                    "data": { "action": "reset" },
672                    "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
673
674       WatchdogAction (Enum)
675
676       An enumeration of the actions taken when the watchdog device's timer is
677       expired
678
679       Values:
680
681       "reset"
682           system resets
683
684       "shutdown"
685           system shutdown, note that it is similar to "powerdown", which
686           tries to set to system status and notify guest
687
688       "poweroff"
689           system poweroff, the emulator program exits
690
691       "pause"
692           system pauses, similar to "stop"
693
694       "debug"
695           system enters debug state
696
697       "none"
698           nothing is done
699
700       "inject-nmi"
701           a non-maskable interrupt is injected into the first VCPU (all VCPUS
702           on x86) (since 2.4)
703
704       Since: 2.1
705
706       watchdog-set-action  (Command) Set watchdog action
707
708       Arguments:
709
710       "action: WatchdogAction"
711           Not documented
712
713       Since: 2.11
714
715       GUEST_PANICKED  (Event) Emitted when guest OS panic is detected
716
717       Arguments:
718
719       "action: GuestPanicAction"
720           action that has been taken, currently always "pause"
721
722       "info: GuestPanicInformation" (optional)
723           information about a panic (since 2.9)
724
725       Since: 1.5
726
727       Example:
728
729               <- { "event": "GUEST_PANICKED",
730                    "data": { "action": "pause" } }
731
732       GuestPanicAction (Enum)
733
734       An enumeration of the actions taken when guest OS panic is detected
735
736       Values:
737
738       "pause"
739           system pauses
740
741       "poweroff"
742           Not documented
743
744       Since: 2.1 (poweroff since 2.8)
745
746       GuestPanicInformationType (Enum)
747
748       An enumeration of the guest panic information types
749
750       Values:
751
752       "hyper-v"
753           hyper-v guest panic information type
754
755       "s390"
756           s390 guest panic information type (Since: 2.12)
757
758       Since: 2.9
759
760       GuestPanicInformation (Object)
761
762       Information about a guest panic
763
764       Members:
765
766       "type: GuestPanicInformationType"
767           Crash type that defines the hypervisor specific information
768
769       The members of "GuestPanicInformationHyperV" when "type" is "hyper-v"
770       The members of "GuestPanicInformationS390" when "type" is "s390"
771
772       Since: 2.9
773
774       GuestPanicInformationHyperV (Object)
775
776       Hyper-V specific guest panic information (HV crash MSRs)
777
778       Members:
779
780       "arg1: int"
781           Not documented
782
783       "arg2: int"
784           Not documented
785
786       "arg3: int"
787           Not documented
788
789       "arg4: int"
790           Not documented
791
792       "arg5: int"
793           Not documented
794
795       Since: 2.9
796
797       S390CrashReason (Enum)
798
799       Reason why the CPU is in a crashed state.
800
801       Values:
802
803       "unknown"
804           no crash reason was set
805
806       "disabled-wait"
807           the CPU has entered a disabled wait state
808
809       "extint-loop"
810           clock comparator or cpu timer interrupt with new PSW enabled for
811           external interrupts
812
813       "pgmint-loop"
814           program interrupt with BAD new PSW
815
816       "opint-loop"
817           operation exception interrupt with invalid code at the program
818           interrupt new PSW
819
820       Since: 2.12
821
822       GuestPanicInformationS390 (Object)
823
824       S390 specific guest panic information (PSW)
825
826       Members:
827
828       "core: int"
829           core id of the CPU that crashed
830
831       "psw-mask: int"
832           control fields of guest PSW
833
834       "psw-addr: int"
835           guest instruction address
836
837       "reason: S390CrashReason"
838           guest crash reason
839
840       Since: 2.12
841
842   Cryptography
843       QCryptoTLSCredsEndpoint (Enum)
844
845       The type of network endpoint that will be using the credentials.  Most
846       types of credential require different setup / structures depending on
847       whether they will be used in a server versus a client.
848
849       Values:
850
851       "client"
852           the network endpoint is acting as the client
853
854       "server"
855           the network endpoint is acting as the server
856
857       Since: 2.5
858
859       QCryptoSecretFormat (Enum)
860
861       The data format that the secret is provided in
862
863       Values:
864
865       "raw"
866           raw bytes. When encoded in JSON only valid UTF-8 sequences can be
867           used
868
869       "base64"
870           arbitrary base64 encoded binary data
871
872       Since: 2.6
873
874       QCryptoHashAlgorithm (Enum)
875
876       The supported algorithms for computing content digests
877
878       Values:
879
880       "md5"
881           MD5. Should not be used in any new code, legacy compat only
882
883       "sha1"
884           SHA-1. Should not be used in any new code, legacy compat only
885
886       "sha224"
887           SHA-224. (since 2.7)
888
889       "sha256"
890           SHA-256. Current recommended strong hash.
891
892       "sha384"
893           SHA-384. (since 2.7)
894
895       "sha512"
896           SHA-512. (since 2.7)
897
898       "ripemd160"
899           RIPEMD-160. (since 2.7)
900
901       Since: 2.6
902
903       QCryptoCipherAlgorithm (Enum)
904
905       The supported algorithms for content encryption ciphers
906
907       Values:
908
909       "aes-128"
910           AES with 128 bit / 16 byte keys
911
912       "aes-192"
913           AES with 192 bit / 24 byte keys
914
915       "aes-256"
916           AES with 256 bit / 32 byte keys
917
918       "des-rfb"
919           RFB specific variant of single DES. Do not use except in VNC.
920
921       "3des"
922           3DES(EDE) with 192 bit / 24 byte keys (since 2.9)
923
924       "cast5-128"
925           Cast5 with 128 bit / 16 byte keys
926
927       "serpent-128"
928           Serpent with 128 bit / 16 byte keys
929
930       "serpent-192"
931           Serpent with 192 bit / 24 byte keys
932
933       "serpent-256"
934           Serpent with 256 bit / 32 byte keys
935
936       "twofish-128"
937           Twofish with 128 bit / 16 byte keys
938
939       "twofish-192"
940           Twofish with 192 bit / 24 byte keys
941
942       "twofish-256"
943           Twofish with 256 bit / 32 byte keys
944
945       Since: 2.6
946
947       QCryptoCipherMode (Enum)
948
949       The supported modes for content encryption ciphers
950
951       Values:
952
953       "ecb"
954           Electronic Code Book
955
956       "cbc"
957           Cipher Block Chaining
958
959       "xts"
960           XEX with tweaked code book and ciphertext stealing
961
962       "ctr"
963           Counter (Since 2.8)
964
965       Since: 2.6
966
967       QCryptoIVGenAlgorithm (Enum)
968
969       The supported algorithms for generating initialization vectors for full
970       disk encryption. The 'plain' generator should not be used for disks
971       with sector numbers larger than 2^32, except where compatibility with
972       pre-existing Linux dm-crypt volumes is required.
973
974       Values:
975
976       "plain"
977           64-bit sector number truncated to 32-bits
978
979       "plain64"
980           64-bit sector number
981
982       "essiv"
983           64-bit sector number encrypted with a hash of the encryption key
984
985       Since: 2.6
986
987       QCryptoBlockFormat (Enum)
988
989       The supported full disk encryption formats
990
991       Values:
992
993       "qcow"
994           QCow/QCow2 built-in AES-CBC encryption. Use only for liberating
995           data from old images.
996
997       "luks"
998           LUKS encryption format. Recommended for new images
999
1000       Since: 2.6
1001
1002       QCryptoBlockOptionsBase (Object)
1003
1004       The common options that apply to all full disk encryption formats
1005
1006       Members:
1007
1008       "format: QCryptoBlockFormat"
1009           the encryption format
1010
1011       Since: 2.6
1012
1013       QCryptoBlockOptionsQCow (Object)
1014
1015       The options that apply to QCow/QCow2 AES-CBC encryption format
1016
1017       Members:
1018
1019       "key-secret: string" (optional)
1020           the ID of a QCryptoSecret object providing the decryption key.
1021           Mandatory except when probing image for metadata only.
1022
1023       Since: 2.6
1024
1025       QCryptoBlockOptionsLUKS (Object)
1026
1027       The options that apply to LUKS encryption format
1028
1029       Members:
1030
1031       "key-secret: string" (optional)
1032           the ID of a QCryptoSecret object providing the decryption key.
1033           Mandatory except when probing image for metadata only.
1034
1035       Since: 2.6
1036
1037       QCryptoBlockCreateOptionsLUKS (Object)
1038
1039       The options that apply to LUKS encryption format initialization
1040
1041       Members:
1042
1043       "cipher-alg: QCryptoCipherAlgorithm" (optional)
1044           the cipher algorithm for data encryption Currently defaults to
1045           'aes'.
1046
1047       "cipher-mode: QCryptoCipherMode" (optional)
1048           the cipher mode for data encryption Currently defaults to 'cbc'
1049
1050       "ivgen-alg: QCryptoIVGenAlgorithm" (optional)
1051           the initialization vector generator Currently defaults to 'essiv'
1052
1053       "ivgen-hash-alg: QCryptoHashAlgorithm" (optional)
1054           the initialization vector generator hash Currently defaults to
1055           'sha256'
1056
1057       "hash-alg: QCryptoHashAlgorithm" (optional)
1058           the master key hash algorithm Currently defaults to 'sha256'
1059
1060       "iter-time: int" (optional)
1061           number of milliseconds to spend in PBKDF passphrase processing.
1062           Currently defaults to 2000. (since 2.8)
1063
1064       The members of "QCryptoBlockOptionsLUKS"
1065
1066       Since: 2.6
1067
1068       QCryptoBlockOpenOptions (Object)
1069
1070       The options that are available for all encryption formats when opening
1071       an existing volume
1072
1073       Members:
1074
1075       The members of "QCryptoBlockOptionsBase"
1076       The members of "QCryptoBlockOptionsQCow" when "format" is "qcow"
1077       The members of "QCryptoBlockOptionsLUKS" when "format" is "luks"
1078
1079       Since: 2.6
1080
1081       QCryptoBlockCreateOptions (Object)
1082
1083       The options that are available for all encryption formats when
1084       initializing a new volume
1085
1086       Members:
1087
1088       The members of "QCryptoBlockOptionsBase"
1089       The members of "QCryptoBlockOptionsQCow" when "format" is "qcow"
1090       The members of "QCryptoBlockCreateOptionsLUKS" when "format" is "luks"
1091
1092       Since: 2.6
1093
1094       QCryptoBlockInfoBase (Object)
1095
1096       The common information that applies to all full disk encryption formats
1097
1098       Members:
1099
1100       "format: QCryptoBlockFormat"
1101           the encryption format
1102
1103       Since: 2.7
1104
1105       QCryptoBlockInfoLUKSSlot (Object)
1106
1107       Information about the LUKS block encryption key slot options
1108
1109       Members:
1110
1111       "active: boolean"
1112           whether the key slot is currently in use
1113
1114       "key-offset: int"
1115           offset to the key material in bytes
1116
1117       "iters: int" (optional)
1118           number of PBKDF2 iterations for key material
1119
1120       "stripes: int" (optional)
1121           number of stripes for splitting key material
1122
1123       Since: 2.7
1124
1125       QCryptoBlockInfoLUKS (Object)
1126
1127       Information about the LUKS block encryption options
1128
1129       Members:
1130
1131       "cipher-alg: QCryptoCipherAlgorithm"
1132           the cipher algorithm for data encryption
1133
1134       "cipher-mode: QCryptoCipherMode"
1135           the cipher mode for data encryption
1136
1137       "ivgen-alg: QCryptoIVGenAlgorithm"
1138           the initialization vector generator
1139
1140       "ivgen-hash-alg: QCryptoHashAlgorithm" (optional)
1141           the initialization vector generator hash
1142
1143       "hash-alg: QCryptoHashAlgorithm"
1144           the master key hash algorithm
1145
1146       "payload-offset: int"
1147           offset to the payload data in bytes
1148
1149       "master-key-iters: int"
1150           number of PBKDF2 iterations for key material
1151
1152       "uuid: string"
1153           unique identifier for the volume
1154
1155       "slots: array of QCryptoBlockInfoLUKSSlot"
1156           information about each key slot
1157
1158       Since: 2.7
1159
1160       QCryptoBlockInfo (Object)
1161
1162       Information about the block encryption options
1163
1164       Members:
1165
1166       The members of "QCryptoBlockInfoBase"
1167       The members of "QCryptoBlockInfoLUKS" when "format" is "luks"
1168
1169       Since: 2.7
1170
1171   Block devices
1172       Block core (VM unrelated)
1173
1174       Background jobs
1175
1176       JobType (Enum)
1177
1178       Type of a background job.
1179
1180       Values:
1181
1182       "commit"
1183           block commit job type, see "block-commit"
1184
1185       "stream"
1186           block stream job type, see "block-stream"
1187
1188       "mirror"
1189           drive mirror job type, see "drive-mirror"
1190
1191       "backup"
1192           drive backup job type, see "drive-backup"
1193
1194       "create"
1195           image creation job type, see "blockdev-create" (since 3.0)
1196
1197       Since: 1.7
1198
1199       JobStatus (Enum)
1200
1201       Indicates the present state of a given job in its lifetime.
1202
1203       Values:
1204
1205       "undefined"
1206           Erroneous, default state. Should not ever be visible.
1207
1208       "created"
1209           The job has been created, but not yet started.
1210
1211       "running"
1212           The job is currently running.
1213
1214       "paused"
1215           The job is running, but paused. The pause may be requested by
1216           either the QMP user or by internal processes.
1217
1218       "ready"
1219           The job is running, but is ready for the user to signal completion.
1220           This is used for long-running jobs like mirror that are designed to
1221           run indefinitely.
1222
1223       "standby"
1224           The job is ready, but paused. This is nearly identical to "paused".
1225           The job may return to "ready" or otherwise be canceled.
1226
1227       "waiting"
1228           The job is waiting for other jobs in the transaction to converge to
1229           the waiting state. This status will likely not be visible for the
1230           last job in a transaction.
1231
1232       "pending"
1233           The job has finished its work, but has finalization steps that it
1234           needs to make prior to completing. These changes will require
1235           manual intervention via "job-finalize" if auto-finalize was set to
1236           false. These pending changes may still fail.
1237
1238       "aborting"
1239           The job is in the process of being aborted, and will finish with an
1240           error. The job will afterwards report that it is "concluded".  This
1241           status may not be visible to the management process.
1242
1243       "concluded"
1244           The job has finished all work. If auto-dismiss was set to false,
1245           the job will remain in the query list until it is dismissed via
1246           "job-dismiss".
1247
1248       "null"
1249           The job is in the process of being dismantled. This state should
1250           not ever be visible externally.
1251
1252       Since: 2.12
1253
1254       JobVerb (Enum)
1255
1256       Represents command verbs that can be applied to a job.
1257
1258       Values:
1259
1260       "cancel"
1261           see "job-cancel"
1262
1263       "pause"
1264           see "job-pause"
1265
1266       "resume"
1267           see "job-resume"
1268
1269       "set-speed"
1270           see "block-job-set-speed"
1271
1272       "complete"
1273           see "job-complete"
1274
1275       "dismiss"
1276           see "job-dismiss"
1277
1278       "finalize"
1279           see "job-finalize"
1280
1281       Since: 2.12
1282
1283       JOB_STATUS_CHANGE  (Event) Emitted when a job transitions to a
1284       different status.
1285
1286       Arguments:
1287
1288       "id: string"
1289           The job identifier
1290
1291       "status: JobStatus"
1292           The new job status
1293
1294       Since: 3.0
1295
1296       job-pause  (Command) Pause an active job.
1297
1298       This command returns immediately after marking the active job for
1299       pausing.  Pausing an already paused job is an error.
1300
1301       The job will pause as soon as possible, which means transitioning into
1302       the PAUSED state if it was RUNNING, or into STANDBY if it was READY.
1303       The corresponding JOB_STATUS_CHANGE event will be emitted.
1304
1305       Cancelling a paused job automatically resumes it.
1306
1307       Arguments:
1308
1309       "id: string"
1310           The job identifier.
1311
1312       Since: 3.0
1313
1314       job-resume  (Command) Resume a paused job.
1315
1316       This command returns immediately after resuming a paused job. Resuming
1317       an already running job is an error.
1318
1319       "id" : The job identifier.
1320
1321       Arguments:
1322
1323       "id: string"
1324           Not documented
1325
1326       Since: 3.0
1327
1328       job-cancel  (Command) Instruct an active background job to cancel at
1329       the next opportunity.  This command returns immediately after marking
1330       the active job for cancellation.
1331
1332       The job will cancel as soon as possible and then emit a
1333       JOB_STATUS_CHANGE event. Usually, the status will change to ABORTING,
1334       but it is possible that a job successfully completes (e.g. because it
1335       was almost done and there was no opportunity to cancel earlier than
1336       completing the job) and transitions to PENDING instead.
1337
1338       Arguments:
1339
1340       "id: string"
1341           The job identifier.
1342
1343       Since: 3.0
1344
1345       job-complete  (Command) Manually trigger completion of an active job in
1346       the READY state.
1347
1348       Arguments:
1349
1350       "id: string"
1351           The job identifier.
1352
1353       Since: 3.0
1354
1355       job-dismiss  (Command) Deletes a job that is in the CONCLUDED state.
1356       This command only needs to be run explicitly for jobs that don't have
1357       automatic dismiss enabled.
1358
1359       This command will refuse to operate on any job that has not yet reached
1360       its terminal state, JOB_STATUS_CONCLUDED. For jobs that make use of
1361       JOB_READY event, job-cancel or job-complete will still need to be used
1362       as appropriate.
1363
1364       Arguments:
1365
1366       "id: string"
1367           The job identifier.
1368
1369       Since: 3.0
1370
1371       job-finalize  (Command) Instructs all jobs in a transaction (or a
1372       single job if it is not part of any transaction) to finalize any graph
1373       changes and do any necessary cleanup. This command requires that all
1374       involved jobs are in the PENDING state.
1375
1376       For jobs in a transaction, instructing one job to finalize will force
1377       ALL jobs in the transaction to finalize, so it is only necessary to
1378       instruct a single member job to finalize.
1379
1380       Arguments:
1381
1382       "id: string"
1383           The identifier of any job in the transaction, or of a job that is
1384           not part of any transaction.
1385
1386       Since: 3.0
1387
1388       JobInfo (Object)
1389
1390       Information about a job.
1391
1392       Members:
1393
1394       "id: string"
1395           The job identifier
1396
1397       "type: JobType"
1398           The kind of job that is being performed
1399
1400       "status: JobStatus"
1401           Current job state/status
1402
1403       "current-progress: int"
1404           Progress made until now. The unit is arbitrary and the value can
1405           only meaningfully be used for the ratio of "current-progress" to
1406           "total-progress". The value is monotonically increasing.
1407
1408       "total-progress: int"
1409           Estimated "current-progress" value at the completion of the job.
1410           This value can arbitrarily change while the job is running, in both
1411           directions.
1412
1413       "error: string" (optional)
1414           If this field is present, the job failed; if it is still missing in
1415           the CONCLUDED state, this indicates successful completion.
1416
1417           The value is a human-readable error message to describe the reason
1418           for the job failure. It should not be parsed by applications.
1419
1420       Since: 3.0
1421
1422       query-jobs  (Command) Return information about jobs.
1423
1424       Returns: a list with a "JobInfo" for each active job
1425
1426       Since: 3.0
1427
1428       SnapshotInfo (Object)
1429
1430       Members:
1431
1432       "id: string"
1433           unique snapshot id
1434
1435       "name: string"
1436           user chosen name
1437
1438       "vm-state-size: int"
1439           size of the VM state
1440
1441       "date-sec: int"
1442           UTC date of the snapshot in seconds
1443
1444       "date-nsec: int"
1445           fractional part in nano seconds to be used with date-sec
1446
1447       "vm-clock-sec: int"
1448           VM clock relative to boot in seconds
1449
1450       "vm-clock-nsec: int"
1451           fractional part in nano seconds to be used with vm-clock-sec
1452
1453       Since: 1.3
1454
1455       ImageInfoSpecificQCow2EncryptionBase (Object)
1456
1457       Members:
1458
1459       "format: BlockdevQcow2EncryptionFormat"
1460           The encryption format
1461
1462       Since: 2.10
1463
1464       ImageInfoSpecificQCow2Encryption (Object)
1465
1466       Members:
1467
1468       The members of "ImageInfoSpecificQCow2EncryptionBase"
1469       The members of "QCryptoBlockInfoLUKS" when "format" is "luks"
1470
1471       Since: 2.10
1472
1473       ImageInfoSpecificQCow2 (Object)
1474
1475       Members:
1476
1477       "compat: string"
1478           compatibility level
1479
1480       "lazy-refcounts: boolean" (optional)
1481           on or off; only valid for compat >= 1.1
1482
1483       "corrupt: boolean" (optional)
1484           true if the image has been marked corrupt; only valid for compat >=
1485           1.1 (since 2.2)
1486
1487       "refcount-bits: int"
1488           width of a refcount entry in bits (since 2.3)
1489
1490       "encrypt: ImageInfoSpecificQCow2Encryption" (optional)
1491           details about encryption parameters; only set if image is encrypted
1492           (since 2.10)
1493
1494       Since: 1.7
1495
1496       ImageInfoSpecificVmdk (Object)
1497
1498       Members:
1499
1500       "create-type: string"
1501           The create type of VMDK image
1502
1503       "cid: int"
1504           Content id of image
1505
1506       "parent-cid: int"
1507           Parent VMDK image's cid
1508
1509       "extents: array of ImageInfo"
1510           List of extent files
1511
1512       Since: 1.7
1513
1514       ImageInfoSpecific (Object)
1515
1516       A discriminated record of image format specific information structures.
1517
1518       Members:
1519
1520       "type"
1521           One of "qcow2", "vmdk", "luks"
1522
1523       "data: ImageInfoSpecificQCow2" when "type" is "qcow2"
1524       "data: ImageInfoSpecificVmdk" when "type" is "vmdk"
1525       "data: QCryptoBlockInfoLUKS" when "type" is "luks"
1526
1527       Since: 1.7
1528
1529       ImageInfo (Object)
1530
1531       Information about a QEMU image file
1532
1533       Members:
1534
1535       "filename: string"
1536           name of the image file
1537
1538       "format: string"
1539           format of the image file
1540
1541       "virtual-size: int"
1542           maximum capacity in bytes of the image
1543
1544       "actual-size: int" (optional)
1545           actual size on disk in bytes of the image
1546
1547       "dirty-flag: boolean" (optional)
1548           true if image is not cleanly closed
1549
1550       "cluster-size: int" (optional)
1551           size of a cluster in bytes
1552
1553       "encrypted: boolean" (optional)
1554           true if the image is encrypted
1555
1556       "compressed: boolean" (optional)
1557           true if the image is compressed (Since 1.7)
1558
1559       "backing-filename: string" (optional)
1560           name of the backing file
1561
1562       "full-backing-filename: string" (optional)
1563           full path of the backing file
1564
1565       "backing-filename-format: string" (optional)
1566           the format of the backing file
1567
1568       "snapshots: array of SnapshotInfo" (optional)
1569           list of VM snapshots
1570
1571       "backing-image: ImageInfo" (optional)
1572           info of the backing image (since 1.6)
1573
1574       "format-specific: ImageInfoSpecific" (optional)
1575           structure supplying additional format-specific information (since
1576           1.7)
1577
1578       Since: 1.3
1579
1580       ImageCheck (Object)
1581
1582       Information about a QEMU image file check
1583
1584       Members:
1585
1586       "filename: string"
1587           name of the image file checked
1588
1589       "format: string"
1590           format of the image file checked
1591
1592       "check-errors: int"
1593           number of unexpected errors occurred during check
1594
1595       "image-end-offset: int" (optional)
1596           offset (in bytes) where the image ends, this field is present if
1597           the driver for the image format supports it
1598
1599       "corruptions: int" (optional)
1600           number of corruptions found during the check if any
1601
1602       "leaks: int" (optional)
1603           number of leaks found during the check if any
1604
1605       "corruptions-fixed: int" (optional)
1606           number of corruptions fixed during the check if any
1607
1608       "leaks-fixed: int" (optional)
1609           number of leaks fixed during the check if any
1610
1611       "total-clusters: int" (optional)
1612           total number of clusters, this field is present if the driver for
1613           the image format supports it
1614
1615       "allocated-clusters: int" (optional)
1616           total number of allocated clusters, this field is present if the
1617           driver for the image format supports it
1618
1619       "fragmented-clusters: int" (optional)
1620           total number of fragmented clusters, this field is present if the
1621           driver for the image format supports it
1622
1623       "compressed-clusters: int" (optional)
1624           total number of compressed clusters, this field is present if the
1625           driver for the image format supports it
1626
1627       Since: 1.4
1628
1629       MapEntry (Object)
1630
1631       Mapping information from a virtual block range to a host file range
1632
1633       Members:
1634
1635       "start: int"
1636           the start byte of the mapped virtual range
1637
1638       "length: int"
1639           the number of bytes of the mapped virtual range
1640
1641       "data: boolean"
1642           whether the mapped range has data
1643
1644       "zero: boolean"
1645           whether the virtual blocks are zeroed
1646
1647       "depth: int"
1648           the depth of the mapping
1649
1650       "offset: int" (optional)
1651           the offset in file that the virtual sectors are mapped to
1652
1653       "filename: string" (optional)
1654           filename that is referred to by "offset"
1655
1656       Since: 2.6
1657
1658       BlockdevCacheInfo (Object)
1659
1660       Cache mode information for a block device
1661
1662       Members:
1663
1664       "writeback: boolean"
1665           true if writeback mode is enabled
1666
1667       "direct: boolean"
1668           true if the host page cache is bypassed (O_DIRECT)
1669
1670       "no-flush: boolean"
1671           true if flush requests are ignored for the device
1672
1673       Since: 2.3
1674
1675       BlockDeviceInfo (Object)
1676
1677       Information about the backing device for a block device.
1678
1679       Members:
1680
1681       "file: string"
1682           the filename of the backing device
1683
1684       "node-name: string" (optional)
1685           the name of the block driver node (Since 2.0)
1686
1687       "ro: boolean"
1688           true if the backing device was open read-only
1689
1690       "drv: string"
1691           the name of the block format used to open the backing device. As of
1692           0.14.0 this can be: 'blkdebug', 'bochs', 'cloop', 'cow', 'dmg',
1693           'file', 'file', 'ftp', 'ftps', 'host_cdrom', 'host_device', 'http',
1694           'https', 'luks', 'nbd', 'parallels', 'qcow', 'qcow2', 'raw', 'vdi',
1695           'vmdk', 'vpc', 'vvfat' 2.2: 'archipelago' added, 'cow' dropped 2.3:
1696           'host_floppy' deprecated 2.5: 'host_floppy' dropped 2.6: 'luks'
1697           added 2.8: 'replication' added, 'tftp' dropped 2.9: 'archipelago'
1698           dropped
1699
1700       "backing_file: string" (optional)
1701           the name of the backing file (for copy-on-write)
1702
1703       "backing_file_depth: int"
1704           number of files in the backing file chain (since: 1.2)
1705
1706       "encrypted: boolean"
1707           true if the backing device is encrypted
1708
1709       "encryption_key_missing: boolean"
1710           Deprecated; always false
1711
1712       "detect_zeroes: BlockdevDetectZeroesOptions"
1713           detect and optimize zero writes (Since 2.1)
1714
1715       "bps: int"
1716           total throughput limit in bytes per second is specified
1717
1718       "bps_rd: int"
1719           read throughput limit in bytes per second is specified
1720
1721       "bps_wr: int"
1722           write throughput limit in bytes per second is specified
1723
1724       "iops: int"
1725           total I/O operations per second is specified
1726
1727       "iops_rd: int"
1728           read I/O operations per second is specified
1729
1730       "iops_wr: int"
1731           write I/O operations per second is specified
1732
1733       "image: ImageInfo"
1734           the info of image used (since: 1.6)
1735
1736       "bps_max: int" (optional)
1737           total throughput limit during bursts, in bytes (Since 1.7)
1738
1739       "bps_rd_max: int" (optional)
1740           read throughput limit during bursts, in bytes (Since 1.7)
1741
1742       "bps_wr_max: int" (optional)
1743           write throughput limit during bursts, in bytes (Since 1.7)
1744
1745       "iops_max: int" (optional)
1746           total I/O operations per second during bursts, in bytes (Since 1.7)
1747
1748       "iops_rd_max: int" (optional)
1749           read I/O operations per second during bursts, in bytes (Since 1.7)
1750
1751       "iops_wr_max: int" (optional)
1752           write I/O operations per second during bursts, in bytes (Since 1.7)
1753
1754       "bps_max_length: int" (optional)
1755           maximum length of the "bps_max" burst period, in seconds. (Since
1756           2.6)
1757
1758       "bps_rd_max_length: int" (optional)
1759           maximum length of the "bps_rd_max" burst period, in seconds. (Since
1760           2.6)
1761
1762       "bps_wr_max_length: int" (optional)
1763           maximum length of the "bps_wr_max" burst period, in seconds. (Since
1764           2.6)
1765
1766       "iops_max_length: int" (optional)
1767           maximum length of the "iops" burst period, in seconds. (Since 2.6)
1768
1769       "iops_rd_max_length: int" (optional)
1770           maximum length of the "iops_rd_max" burst period, in seconds.
1771           (Since 2.6)
1772
1773       "iops_wr_max_length: int" (optional)
1774           maximum length of the "iops_wr_max" burst period, in seconds.
1775           (Since 2.6)
1776
1777       "iops_size: int" (optional)
1778           an I/O size in bytes (Since 1.7)
1779
1780       "group: string" (optional)
1781           throttle group name (Since 2.4)
1782
1783       "cache: BlockdevCacheInfo"
1784           the cache mode used for the block device (since: 2.3)
1785
1786       "write_threshold: int"
1787           configured write threshold for the device.  0 if disabled. (Since
1788           2.3)
1789
1790       Since: 0.14.0
1791
1792       BlockDeviceIoStatus (Enum)
1793
1794       An enumeration of block device I/O status.
1795
1796       Values:
1797
1798       "ok"
1799           The last I/O operation has succeeded
1800
1801       "failed"
1802           The last I/O operation has failed
1803
1804       "nospace"
1805           The last I/O operation has failed due to a no-space condition
1806
1807       Since: 1.0
1808
1809       BlockDeviceMapEntry (Object)
1810
1811       Entry in the metadata map of the device (returned by "qemu-img map")
1812
1813       Members:
1814
1815       "start: int"
1816           Offset in the image of the first byte described by this entry (in
1817           bytes)
1818
1819       "length: int"
1820           Length of the range described by this entry (in bytes)
1821
1822       "depth: int"
1823           Number of layers (0 = top image, 1 = top image's backing file,
1824           etc.)  before reaching one for which the range is allocated.  The
1825           value is in the range 0 to the depth of the image chain - 1.
1826
1827       "zero: boolean"
1828           the sectors in this range read as zeros
1829
1830       "data: boolean"
1831           reading the image will actually read data from a file (in
1832           particular, if "offset" is present this means that the sectors are
1833           not simply preallocated, but contain actual data in raw format)
1834
1835       "offset: int" (optional)
1836           if present, the image file stores the data for this range in raw
1837           format at the given offset.
1838
1839       Since: 1.7
1840
1841       DirtyBitmapStatus (Enum)
1842
1843       An enumeration of possible states that a dirty bitmap can report to the
1844       user.
1845
1846       Values:
1847
1848       "frozen"
1849           The bitmap is currently in-use by a backup operation or block job,
1850           and is immutable.
1851
1852       "disabled"
1853           The bitmap is currently in-use by an internal operation and is
1854           read-only. It can still be deleted.
1855
1856       "active"
1857           The bitmap is actively monitoring for new writes, and can be
1858           cleared, deleted, or used for backup operations.
1859
1860       "locked"
1861           The bitmap is currently in-use by some operation and can not be
1862           cleared, deleted, or used for backup operations. (Since 2.12)
1863
1864       Since: 2.4
1865
1866       BlockDirtyInfo (Object)
1867
1868       Block dirty bitmap information.
1869
1870       Members:
1871
1872       "name: string" (optional)
1873           the name of the dirty bitmap (Since 2.4)
1874
1875       "count: int"
1876           number of dirty bytes according to the dirty bitmap
1877
1878       "granularity: int"
1879           granularity of the dirty bitmap in bytes (since 1.4)
1880
1881       "status: DirtyBitmapStatus"
1882           current status of the dirty bitmap (since 2.4)
1883
1884       Since: 1.3
1885
1886       BlockLatencyHistogramInfo (Object)
1887
1888       Block latency histogram.
1889
1890       Members:
1891
1892       "boundaries: array of int"
1893           list of interval boundary values in nanoseconds, all greater than
1894           zero and in ascending order.  For example, the list [10, 50, 100]
1895           produces the following histogram intervals: [0, 10), [10, 50), [50,
1896           100), [100, +inf).
1897
1898       "bins: array of int"
1899           list of io request counts corresponding to histogram intervals.
1900           len("bins") = len("boundaries") + 1 For the example above, "bins"
1901           may be something like [3, 1, 5, 2], and corresponding histogram
1902           looks like:
1903
1904           5|           * 4|           * 3| 2|              * 1|
1905           +------------------ 10   50   100
1906
1907       Since: 2.12
1908
1909       x-block-latency-histogram-set  (Command) Manage read, write and flush
1910       latency histograms for the device.
1911
1912       If only "device" parameter is specified, remove all present latency
1913       histograms for the device. Otherwise, add/reset some of (or all)
1914       latency histograms.
1915
1916       Arguments:
1917
1918       "device: string"
1919           device name to set latency histogram for.
1920
1921       "boundaries: array of int" (optional)
1922           list of interval boundary values (see description in
1923           BlockLatencyHistogramInfo definition). If specified, all latency
1924           histograms are removed, and empty ones created for all io types
1925           with intervals corresponding to "boundaries" (except for io types,
1926           for which specific boundaries are set through the following
1927           parameters).
1928
1929       "boundaries-read: array of int" (optional)
1930           list of interval boundary values for read latency histogram. If
1931           specified, old read latency histogram is removed, and empty one
1932           created with intervals corresponding to "boundaries-read". The
1933           parameter has higher priority then "boundaries".
1934
1935       "boundaries-write: array of int" (optional)
1936           list of interval boundary values for write latency histogram.
1937
1938       "boundaries-flush: array of int" (optional)
1939           list of interval boundary values for flush latency histogram.
1940
1941       Returns: error if device is not found or any boundary arrays are
1942       invalid.
1943
1944       Since: 2.12
1945
1946       Example:
1947
1948               set new histograms for all io types with intervals
1949               [0, 10), [10, 50), [50, 100), [100, +inf):
1950
1951               -> { "execute": "block-latency-histogram-set",
1952                    "arguments": { "device": "drive0",
1953                                   "boundaries": [10, 50, 100] } }
1954               <- { "return": {} }
1955
1956       Example:
1957
1958               set new histogram only for write, other histograms will remain
1959               not changed (or not created):
1960
1961               -> { "execute": "block-latency-histogram-set",
1962                    "arguments": { "device": "drive0",
1963                                   "boundaries-write": [10, 50, 100] } }
1964               <- { "return": {} }
1965
1966       Example:
1967
1968               set new histograms with the following intervals:
1969                 read, flush: [0, 10), [10, 50), [50, 100), [100, +inf)
1970                 write: [0, 1000), [1000, 5000), [5000, +inf)
1971
1972               -> { "execute": "block-latency-histogram-set",
1973                    "arguments": { "device": "drive0",
1974                                   "boundaries": [10, 50, 100],
1975                                   "boundaries-write": [1000, 5000] } }
1976               <- { "return": {} }
1977
1978       Example:
1979
1980               remove all latency histograms:
1981
1982               -> { "execute": "block-latency-histogram-set",
1983                    "arguments": { "device": "drive0" } }
1984               <- { "return": {} }
1985
1986       BlockInfo (Object)
1987
1988       Block device information.  This structure describes a virtual device
1989       and the backing device associated with it.
1990
1991       Members:
1992
1993       "device: string"
1994           The device name associated with the virtual device.
1995
1996       "qdev: string" (optional)
1997           The qdev ID, or if no ID is assigned, the QOM path of the block
1998           device. (since 2.10)
1999
2000       "type: string"
2001           This field is returned only for compatibility reasons, it should
2002           not be used (always returns 'unknown')
2003
2004       "removable: boolean"
2005           True if the device supports removable media.
2006
2007       "locked: boolean"
2008           True if the guest has locked this device from having its media
2009           removed
2010
2011       "tray_open: boolean" (optional)
2012           True if the device's tray is open (only present if it has a tray)
2013
2014       "dirty-bitmaps: array of BlockDirtyInfo" (optional)
2015           dirty bitmaps information (only present if the driver has one or
2016           more dirty bitmaps) (Since 2.0)
2017
2018       "io-status: BlockDeviceIoStatus" (optional)
2019           "BlockDeviceIoStatus". Only present if the device supports it and
2020           the VM is configured to stop on errors (supported device models:
2021           virtio-blk, IDE, SCSI except scsi-generic)
2022
2023       "inserted: BlockDeviceInfo" (optional)
2024           "BlockDeviceInfo" describing the device if media is present
2025
2026       Since: 0.14.0
2027
2028       BlockMeasureInfo (Object)
2029
2030       Image file size calculation information.  This structure describes the
2031       size requirements for creating a new image file.
2032
2033       The size requirements depend on the new image file format.  File size
2034       always equals virtual disk size for the 'raw' format, even for sparse
2035       POSIX files.  Compact formats such as 'qcow2' represent unallocated and
2036       zero regions efficiently so file size may be smaller than virtual disk
2037       size.
2038
2039       The values are upper bounds that are guaranteed to fit the new image
2040       file.  Subsequent modification, such as internal snapshot or bitmap
2041       creation, may require additional space and is not covered here.
2042
2043       Members:
2044
2045       "required: int"
2046           Size required for a new image file, in bytes.
2047
2048       "fully-allocated: int"
2049           Image file size, in bytes, once data has been written to all
2050           sectors.
2051
2052       Since: 2.10
2053
2054       query-block  (Command) Get a list of BlockInfo for all virtual block
2055       devices.
2056
2057       Returns: a list of "BlockInfo" describing each virtual block device.
2058       Filter nodes that were created implicitly are skipped over.
2059
2060       Since: 0.14.0
2061
2062       Example:
2063
2064               -> { "execute": "query-block" }
2065               <- {
2066                     "return":[
2067                        {
2068                           "io-status": "ok",
2069                           "device":"ide0-hd0",
2070                           "locked":false,
2071                           "removable":false,
2072                           "inserted":{
2073                              "ro":false,
2074                              "drv":"qcow2",
2075                              "encrypted":false,
2076                              "file":"disks/test.qcow2",
2077                              "backing_file_depth":1,
2078                              "bps":1000000,
2079                              "bps_rd":0,
2080                              "bps_wr":0,
2081                              "iops":1000000,
2082                              "iops_rd":0,
2083                              "iops_wr":0,
2084                              "bps_max": 8000000,
2085                              "bps_rd_max": 0,
2086                              "bps_wr_max": 0,
2087                              "iops_max": 0,
2088                              "iops_rd_max": 0,
2089                              "iops_wr_max": 0,
2090                              "iops_size": 0,
2091                              "detect_zeroes": "on",
2092                              "write_threshold": 0,
2093                              "image":{
2094                                 "filename":"disks/test.qcow2",
2095                                 "format":"qcow2",
2096                                 "virtual-size":2048000,
2097                                 "backing_file":"base.qcow2",
2098                                 "full-backing-filename":"disks/base.qcow2",
2099                                 "backing-filename-format":"qcow2",
2100                                 "snapshots":[
2101                                    {
2102                                       "id": "1",
2103                                       "name": "snapshot1",
2104                                       "vm-state-size": 0,
2105                                       "date-sec": 10000200,
2106                                       "date-nsec": 12,
2107                                       "vm-clock-sec": 206,
2108                                       "vm-clock-nsec": 30
2109                                    }
2110                                 ],
2111                                 "backing-image":{
2112                                     "filename":"disks/base.qcow2",
2113                                     "format":"qcow2",
2114                                     "virtual-size":2048000
2115                                 }
2116                              }
2117                           },
2118                           "qdev": "ide_disk",
2119                           "type":"unknown"
2120                        },
2121                        {
2122                           "io-status": "ok",
2123                           "device":"ide1-cd0",
2124                           "locked":false,
2125                           "removable":true,
2126                           "qdev": "/machine/unattached/device[23]",
2127                           "tray_open": false,
2128                           "type":"unknown"
2129                        },
2130                        {
2131                           "device":"floppy0",
2132                           "locked":false,
2133                           "removable":true,
2134                           "qdev": "/machine/unattached/device[20]",
2135                           "type":"unknown"
2136                        },
2137                        {
2138                           "device":"sd0",
2139                           "locked":false,
2140                           "removable":true,
2141                           "type":"unknown"
2142                        }
2143                     ]
2144                  }
2145
2146       BlockDeviceTimedStats (Object)
2147
2148       Statistics of a block device during a given interval of time.
2149
2150       Members:
2151
2152       "interval_length: int"
2153           Interval used for calculating the statistics, in seconds.
2154
2155       "min_rd_latency_ns: int"
2156           Minimum latency of read operations in the defined interval, in
2157           nanoseconds.
2158
2159       "min_wr_latency_ns: int"
2160           Minimum latency of write operations in the defined interval, in
2161           nanoseconds.
2162
2163       "min_flush_latency_ns: int"
2164           Minimum latency of flush operations in the defined interval, in
2165           nanoseconds.
2166
2167       "max_rd_latency_ns: int"
2168           Maximum latency of read operations in the defined interval, in
2169           nanoseconds.
2170
2171       "max_wr_latency_ns: int"
2172           Maximum latency of write operations in the defined interval, in
2173           nanoseconds.
2174
2175       "max_flush_latency_ns: int"
2176           Maximum latency of flush operations in the defined interval, in
2177           nanoseconds.
2178
2179       "avg_rd_latency_ns: int"
2180           Average latency of read operations in the defined interval, in
2181           nanoseconds.
2182
2183       "avg_wr_latency_ns: int"
2184           Average latency of write operations in the defined interval, in
2185           nanoseconds.
2186
2187       "avg_flush_latency_ns: int"
2188           Average latency of flush operations in the defined interval, in
2189           nanoseconds.
2190
2191       "avg_rd_queue_depth: number"
2192           Average number of pending read operations in the defined interval.
2193
2194       "avg_wr_queue_depth: number"
2195           Average number of pending write operations in the defined interval.
2196
2197       Since: 2.5
2198
2199       BlockDeviceStats (Object)
2200
2201       Statistics of a virtual block device or a block backing device.
2202
2203       Members:
2204
2205       "rd_bytes: int"
2206           The number of bytes read by the device.
2207
2208       "wr_bytes: int"
2209           The number of bytes written by the device.
2210
2211       "rd_operations: int"
2212           The number of read operations performed by the device.
2213
2214       "wr_operations: int"
2215           The number of write operations performed by the device.
2216
2217       "flush_operations: int"
2218           The number of cache flush operations performed by the device (since
2219           0.15.0)
2220
2221       "flush_total_time_ns: int"
2222           Total time spend on cache flushes in nano-seconds (since 0.15.0).
2223
2224       "wr_total_time_ns: int"
2225           Total time spend on writes in nano-seconds (since 0.15.0).
2226
2227       "rd_total_time_ns: int"
2228           Total_time_spend on reads in nano-seconds (since 0.15.0).
2229
2230       "wr_highest_offset: int"
2231           The offset after the greatest byte written to the device.  The
2232           intended use of this information is for growable sparse files (like
2233           qcow2) that are used on top of a physical device.
2234
2235       "rd_merged: int"
2236           Number of read requests that have been merged into another request
2237           (Since 2.3).
2238
2239       "wr_merged: int"
2240           Number of write requests that have been merged into another request
2241           (Since 2.3).
2242
2243       "idle_time_ns: int" (optional)
2244           Time since the last I/O operation, in nanoseconds. If the field is
2245           absent it means that there haven't been any operations yet (Since
2246           2.5).
2247
2248       "failed_rd_operations: int"
2249           The number of failed read operations performed by the device (Since
2250           2.5)
2251
2252       "failed_wr_operations: int"
2253           The number of failed write operations performed by the device
2254           (Since 2.5)
2255
2256       "failed_flush_operations: int"
2257           The number of failed flush operations performed by the device
2258           (Since 2.5)
2259
2260       "invalid_rd_operations: int"
2261           The number of invalid read operations performed by the device
2262           (Since 2.5)
2263
2264       "invalid_wr_operations: int"
2265           The number of invalid write operations performed by the device
2266           (Since 2.5)
2267
2268       "invalid_flush_operations: int"
2269           The number of invalid flush operations performed by the device
2270           (Since 2.5)
2271
2272       "account_invalid: boolean"
2273           Whether invalid operations are included in the last access
2274           statistics (Since 2.5)
2275
2276       "account_failed: boolean"
2277           Whether failed operations are included in the latency and last
2278           access statistics (Since 2.5)
2279
2280       "timed_stats: array of BlockDeviceTimedStats"
2281           Statistics specific to the set of previously defined intervals of
2282           time (Since 2.5)
2283
2284       "x_rd_latency_histogram: BlockLatencyHistogramInfo" (optional)
2285           "BlockLatencyHistogramInfo". (Since 2.12)
2286
2287       "x_wr_latency_histogram: BlockLatencyHistogramInfo" (optional)
2288           "BlockLatencyHistogramInfo". (Since 2.12)
2289
2290       "x_flush_latency_histogram: BlockLatencyHistogramInfo" (optional)
2291           "BlockLatencyHistogramInfo". (Since 2.12)
2292
2293       Since: 0.14.0
2294
2295       BlockStats (Object)
2296
2297       Statistics of a virtual block device or a block backing device.
2298
2299       Members:
2300
2301       "device: string" (optional)
2302           If the stats are for a virtual block device, the name corresponding
2303           to the virtual block device.
2304
2305       "node-name: string" (optional)
2306           The node name of the device. (Since 2.3)
2307
2308       "qdev: string" (optional)
2309           The qdev ID, or if no ID is assigned, the QOM path of the block
2310           device. (since 3.0)
2311
2312       "stats: BlockDeviceStats"
2313           A "BlockDeviceStats" for the device.
2314
2315       "parent: BlockStats" (optional)
2316           This describes the file block device if it has one.  Contains
2317           recursively the statistics of the underlying protocol (e.g. the
2318           host file for a qcow2 image). If there is no underlying protocol,
2319           this field is omitted
2320
2321       "backing: BlockStats" (optional)
2322           This describes the backing block device if it has one.  (Since 2.0)
2323
2324       Since: 0.14.0
2325
2326       query-blockstats  (Command) Query the "BlockStats" for all virtual
2327       block devices.
2328
2329       Arguments:
2330
2331       "query-nodes: boolean" (optional)
2332           If true, the command will query all the block nodes that have a
2333           node name, in a list which will include "parent" information, but
2334           not "backing".  If false or omitted, the behavior is as before -
2335           query all the device backends, recursively including their "parent"
2336           and "backing". Filter nodes that were created implicitly are
2337           skipped over in this mode. (Since 2.3)
2338
2339       Returns: A list of "BlockStats" for each virtual block devices.
2340
2341       Since: 0.14.0
2342
2343       Example:
2344
2345               -> { "execute": "query-blockstats" }
2346               <- {
2347                     "return":[
2348                        {
2349                           "device":"ide0-hd0",
2350                           "parent":{
2351                              "stats":{
2352                                 "wr_highest_offset":3686448128,
2353                                 "wr_bytes":9786368,
2354                                 "wr_operations":751,
2355                                 "rd_bytes":122567168,
2356                                 "rd_operations":36772
2357                                 "wr_total_times_ns":313253456
2358                                 "rd_total_times_ns":3465673657
2359                                 "flush_total_times_ns":49653
2360                                 "flush_operations":61,
2361                                 "rd_merged":0,
2362                                 "wr_merged":0,
2363                                 "idle_time_ns":2953431879,
2364                                 "account_invalid":true,
2365                                 "account_failed":false
2366                              }
2367                           },
2368                           "stats":{
2369                              "wr_highest_offset":2821110784,
2370                              "wr_bytes":9786368,
2371                              "wr_operations":692,
2372                              "rd_bytes":122739200,
2373                              "rd_operations":36604
2374                              "flush_operations":51,
2375                              "wr_total_times_ns":313253456
2376                              "rd_total_times_ns":3465673657
2377                              "flush_total_times_ns":49653,
2378                              "rd_merged":0,
2379                              "wr_merged":0,
2380                              "idle_time_ns":2953431879,
2381                              "account_invalid":true,
2382                              "account_failed":false
2383                           },
2384                           "qdev": "/machine/unattached/device[23]"
2385                        },
2386                        {
2387                           "device":"ide1-cd0",
2388                           "stats":{
2389                              "wr_highest_offset":0,
2390                              "wr_bytes":0,
2391                              "wr_operations":0,
2392                              "rd_bytes":0,
2393                              "rd_operations":0
2394                              "flush_operations":0,
2395                              "wr_total_times_ns":0
2396                              "rd_total_times_ns":0
2397                              "flush_total_times_ns":0,
2398                              "rd_merged":0,
2399                              "wr_merged":0,
2400                              "account_invalid":false,
2401                              "account_failed":false
2402                           },
2403                           "qdev": "/machine/unattached/device[24]"
2404                        },
2405                        {
2406                           "device":"floppy0",
2407                           "stats":{
2408                              "wr_highest_offset":0,
2409                              "wr_bytes":0,
2410                              "wr_operations":0,
2411                              "rd_bytes":0,
2412                              "rd_operations":0
2413                              "flush_operations":0,
2414                              "wr_total_times_ns":0
2415                              "rd_total_times_ns":0
2416                              "flush_total_times_ns":0,
2417                              "rd_merged":0,
2418                              "wr_merged":0,
2419                              "account_invalid":false,
2420                              "account_failed":false
2421                           },
2422                           "qdev": "/machine/unattached/device[16]"
2423                        },
2424                        {
2425                           "device":"sd0",
2426                           "stats":{
2427                              "wr_highest_offset":0,
2428                              "wr_bytes":0,
2429                              "wr_operations":0,
2430                              "rd_bytes":0,
2431                              "rd_operations":0
2432                              "flush_operations":0,
2433                              "wr_total_times_ns":0
2434                              "rd_total_times_ns":0
2435                              "flush_total_times_ns":0,
2436                              "rd_merged":0,
2437                              "wr_merged":0,
2438                              "account_invalid":false,
2439                              "account_failed":false
2440                           }
2441                        }
2442                     ]
2443                  }
2444
2445       BlockdevOnError (Enum)
2446
2447       An enumeration of possible behaviors for errors on I/O operations.  The
2448       exact meaning depends on whether the I/O was initiated by a guest or by
2449       a block job
2450
2451       Values:
2452
2453       "report"
2454           for guest operations, report the error to the guest; for jobs,
2455           cancel the job
2456
2457       "ignore"
2458           ignore the error, only report a QMP event (BLOCK_IO_ERROR or
2459           BLOCK_JOB_ERROR)
2460
2461       "enospc"
2462           same as "stop" on ENOSPC, same as "report" otherwise.
2463
2464       "stop"
2465           for guest operations, stop the virtual machine; for jobs, pause the
2466           job
2467
2468       "auto"
2469           inherit the error handling policy of the backend (since: 2.7)
2470
2471       Since: 1.3
2472
2473       MirrorSyncMode (Enum)
2474
2475       An enumeration of possible behaviors for the initial synchronization
2476       phase of storage mirroring.
2477
2478       Values:
2479
2480       "top"
2481           copies data in the topmost image to the destination
2482
2483       "full"
2484           copies data from all images to the destination
2485
2486       "none"
2487           only copy data written from now on
2488
2489       "incremental"
2490           only copy data described by the dirty bitmap. Since: 2.4
2491
2492       Since: 1.3
2493
2494       MirrorCopyMode (Enum)
2495
2496       An enumeration whose values tell the mirror block job when to trigger
2497       writes to the target.
2498
2499       Values:
2500
2501       "background"
2502           copy data in background only.
2503
2504       "write-blocking"
2505           when data is written to the source, write it (synchronously) to the
2506           target as well.  In addition, data is copied in background just
2507           like in "background" mode.
2508
2509       Since: 3.0
2510
2511       BlockJobInfo (Object)
2512
2513       Information about a long-running block device operation.
2514
2515       Members:
2516
2517       "type: string"
2518           the job type ('stream' for image streaming)
2519
2520       "device: string"
2521           The job identifier. Originally the device name but other values are
2522           allowed since QEMU 2.7
2523
2524       "len: int"
2525           Estimated "offset" value at the completion of the job. This value
2526           can arbitrarily change while the job is running, in both
2527           directions.
2528
2529       "offset: int"
2530           Progress made until now. The unit is arbitrary and the value can
2531           only meaningfully be used for the ratio of "offset" to "len". The
2532           value is monotonically increasing.
2533
2534       "busy: boolean"
2535           false if the job is known to be in a quiescent state, with no
2536           pending I/O.  Since 1.3.
2537
2538       "paused: boolean"
2539           whether the job is paused or, if "busy" is true, will pause itself
2540           as soon as possible.  Since 1.3.
2541
2542       "speed: int"
2543           the rate limit, bytes per second
2544
2545       "io-status: BlockDeviceIoStatus"
2546           the status of the job (since 1.3)
2547
2548       "ready: boolean"
2549           true if the job may be completed (since 2.2)
2550
2551       "status: JobStatus"
2552           Current job state/status (since 2.12)
2553
2554       "auto-finalize: boolean"
2555           Job will finalize itself when PENDING, moving to the CONCLUDED
2556           state. (since 2.12)
2557
2558       "auto-dismiss: boolean"
2559           Job will dismiss itself when CONCLUDED, moving to the NULL state
2560           and disappearing from the query list. (since 2.12)
2561
2562       "error: string" (optional)
2563           Error information if the job did not complete successfully.  Not
2564           set if the job completed successfully. (since 2.12.1)
2565
2566       Since: 1.1
2567
2568       query-block-jobs  (Command) Return information about long-running block
2569       device operations.
2570
2571       Returns: a list of "BlockJobInfo" for each active block job
2572
2573       Since: 1.1
2574
2575       block_passwd  (Command) This command sets the password of a block
2576       device that has not been open with a password and requires one.
2577
2578       This command is now obsolete and will always return an error since 2.10
2579
2580       Arguments:
2581
2582       "device: string" (optional)
2583           Not documented
2584
2585       "node-name: string" (optional)
2586           Not documented
2587
2588       "password: string"
2589           Not documented
2590
2591       block_resize  (Command) Resize a block image while a guest is running.
2592
2593       Either "device" or "node-name" must be set but not both.
2594
2595       Arguments:
2596
2597       "device: string" (optional)
2598           the name of the device to get the image resized
2599
2600       "node-name: string" (optional)
2601           graph node name to get the image resized (Since 2.0)
2602
2603       "size: int"
2604           new image size in bytes
2605
2606       Returns: nothing on success If "device" is not a valid block device,
2607       DeviceNotFound
2608
2609       Since: 0.14.0
2610
2611       Example:
2612
2613               -> { "execute": "block_resize",
2614                    "arguments": { "device": "scratch", "size": 1073741824 } }
2615               <- { "return": {} }
2616
2617       NewImageMode (Enum)
2618
2619       An enumeration that tells QEMU how to set the backing file path in a
2620       new image file.
2621
2622       Values:
2623
2624       "existing"
2625           QEMU should look for an existing image file.
2626
2627       "absolute-paths"
2628           QEMU should create a new image with absolute paths for the backing
2629           file. If there is no backing file available, the new image will not
2630           be backed either.
2631
2632       Since: 1.1
2633
2634       BlockdevSnapshotSync (Object)
2635
2636       Either "device" or "node-name" must be set but not both.
2637
2638       Members:
2639
2640       "device: string" (optional)
2641           the name of the device to generate the snapshot from.
2642
2643       "node-name: string" (optional)
2644           graph node name to generate the snapshot from (Since 2.0)
2645
2646       "snapshot-file: string"
2647           the target of the new image. If the file exists, or if it is a
2648           device, the snapshot will be created in the existing file/device.
2649           Otherwise, a new file will be created.
2650
2651       "snapshot-node-name: string" (optional)
2652           the graph node name of the new image (Since 2.0)
2653
2654       "format: string" (optional)
2655           the format of the snapshot image, default is 'qcow2'.
2656
2657       "mode: NewImageMode" (optional)
2658           whether and how QEMU should create a new image, default is
2659           'absolute-paths'.
2660
2661       BlockdevSnapshot (Object)
2662
2663       Members:
2664
2665       "node: string"
2666           device or node name that will have a snapshot created.
2667
2668       "overlay: string"
2669           reference to the existing block device that will become the overlay
2670           of "node", as part of creating the snapshot.  It must not have a
2671           current backing file (this can be achieved by passing "backing":
2672           null to blockdev-add).
2673
2674       Since: 2.5
2675
2676       DriveBackup (Object)
2677
2678       Members:
2679
2680       "job-id: string" (optional)
2681           identifier for the newly-created block job. If omitted, the device
2682           name will be used. (Since 2.7)
2683
2684       "device: string"
2685           the device name or node-name of a root node which should be copied.
2686
2687       "target: string"
2688           the target of the new image. If the file exists, or if it is a
2689           device, the existing file/device will be used as the new
2690           destination.  If it does not exist, a new file will be created.
2691
2692       "format: string" (optional)
2693           the format of the new destination, default is to probe if "mode" is
2694           'existing', else the format of the source
2695
2696       "sync: MirrorSyncMode"
2697           what parts of the disk image should be copied to the destination
2698           (all the disk, only the sectors allocated in the topmost image,
2699           from a dirty bitmap, or only new I/O).
2700
2701       "mode: NewImageMode" (optional)
2702           whether and how QEMU should create a new image, default is
2703           'absolute-paths'.
2704
2705       "speed: int" (optional)
2706           the maximum speed, in bytes per second
2707
2708       "bitmap: string" (optional)
2709           the name of dirty bitmap if sync is "incremental".  Must be present
2710           if sync is "incremental", must NOT be present otherwise. (Since
2711           2.4)
2712
2713       "compress: boolean" (optional)
2714           true to compress data, if the target format supports it.  (default:
2715           false) (since 2.8)
2716
2717       "on-source-error: BlockdevOnError" (optional)
2718           the action to take on an error on the source, default 'report'.
2719           'stop' and 'enospc' can only be used if the block device supports
2720           io-status (see BlockInfo).
2721
2722       "on-target-error: BlockdevOnError" (optional)
2723           the action to take on an error on the target, default 'report' (no
2724           limitations, since this applies to a different block device than
2725           "device").
2726
2727       "auto-finalize: boolean" (optional)
2728           When false, this job will wait in a PENDING state after it has
2729           finished its work, waiting for "block-job-finalize".  When true,
2730           this job will automatically perform its abort or commit actions.
2731           Defaults to true. (Since 2.12)
2732
2733       "auto-dismiss: boolean" (optional)
2734           When false, this job will wait in a CONCLUDED state after it has
2735           completed ceased all work, and wait for "block-job-dismiss".  When
2736           true, this job will automatically disappear from the query list
2737           without user intervention.  Defaults to true. (Since 2.12)
2738
2739       Note: "on-source-error" and "on-target-error" only affect background
2740       I/O.  If an error occurs during a guest write request, the device's
2741       rerror/werror actions will be used.
2742
2743       Since: 1.6
2744
2745       BlockdevBackup (Object)
2746
2747       Members:
2748
2749       "job-id: string" (optional)
2750           identifier for the newly-created block job. If omitted, the device
2751           name will be used. (Since 2.7)
2752
2753       "device: string"
2754           the device name or node-name of a root node which should be copied.
2755
2756       "target: string"
2757           the device name or node-name of the backup target node.
2758
2759       "sync: MirrorSyncMode"
2760           what parts of the disk image should be copied to the destination
2761           (all the disk, only the sectors allocated in the topmost image, or
2762           only new I/O).
2763
2764       "speed: int" (optional)
2765           the maximum speed, in bytes per second. The default is 0, for
2766           unlimited.
2767
2768       "compress: boolean" (optional)
2769           true to compress data, if the target format supports it.  (default:
2770           false) (since 2.8)
2771
2772       "on-source-error: BlockdevOnError" (optional)
2773           the action to take on an error on the source, default 'report'.
2774           'stop' and 'enospc' can only be used if the block device supports
2775           io-status (see BlockInfo).
2776
2777       "on-target-error: BlockdevOnError" (optional)
2778           the action to take on an error on the target, default 'report' (no
2779           limitations, since this applies to a different block device than
2780           "device").
2781
2782       "auto-finalize: boolean" (optional)
2783           When false, this job will wait in a PENDING state after it has
2784           finished its work, waiting for "block-job-finalize".  When true,
2785           this job will automatically perform its abort or commit actions.
2786           Defaults to true. (Since 2.12)
2787
2788       "auto-dismiss: boolean" (optional)
2789           When false, this job will wait in a CONCLUDED state after it has
2790           completed ceased all work, and wait for "block-job-dismiss".  When
2791           true, this job will automatically disappear from the query list
2792           without user intervention.  Defaults to true. (Since 2.12)
2793
2794       Note: "on-source-error" and "on-target-error" only affect background
2795       I/O.  If an error occurs during a guest write request, the device's
2796       rerror/werror actions will be used.
2797
2798       Since: 2.3
2799
2800       blockdev-snapshot-sync  (Command) Generates a synchronous snapshot of a
2801       block device.
2802
2803       For the arguments, see the documentation of BlockdevSnapshotSync.
2804
2805       Returns: nothing on success If "device" is not a valid block device,
2806       DeviceNotFound
2807
2808       Since: 0.14.0
2809
2810       Example:
2811
2812               -> { "execute": "blockdev-snapshot-sync",
2813                    "arguments": { "device": "ide-hd0",
2814                                   "snapshot-file":
2815                                   "/some/place/my-image",
2816                                   "format": "qcow2" } }
2817               <- { "return": {} }
2818
2819       blockdev-snapshot  (Command) Generates a snapshot of a block device.
2820
2821       Create a snapshot, by installing 'node' as the backing image of
2822       'overlay'. Additionally, if 'node' is associated with a block device,
2823       the block device changes to using 'overlay' as its new active image.
2824
2825       For the arguments, see the documentation of BlockdevSnapshot.
2826
2827       Since: 2.5
2828
2829       Example:
2830
2831               -> { "execute": "blockdev-add",
2832                    "arguments": { "driver": "qcow2",
2833                                   "node-name": "node1534",
2834                                   "file": { "driver": "file",
2835                                             "filename": "hd1.qcow2" },
2836                                   "backing": null } }
2837
2838               <- { "return": {} }
2839
2840               -> { "execute": "blockdev-snapshot",
2841                    "arguments": { "node": "ide-hd0",
2842                                   "overlay": "node1534" } }
2843               <- { "return": {} }
2844
2845       change-backing-file  (Command) Change the backing file in the image
2846       file metadata.  This does not cause QEMU to reopen the image file to
2847       reparse the backing filename (it may, however, perform a reopen to
2848       change permissions from r/o -> r/w -> r/o, if needed). The new backing
2849       file string is written into the image file metadata, and the QEMU
2850       internal strings are updated.
2851
2852       Arguments:
2853
2854       "image-node-name: string"
2855           The name of the block driver state node of the image to modify. The
2856           "device" argument is used to verify "image-node-name" is in the
2857           chain described by "device".
2858
2859       "device: string"
2860           The device name or node-name of the root node that owns image-node-
2861           name.
2862
2863       "backing-file: string"
2864           The string to write as the backing file.  This string is not
2865           validated, so care should be taken when specifying the string or
2866           the image chain may not be able to be reopened again.
2867
2868       Returns: Nothing on success
2869
2870       If "device" does not exist or cannot be determined, DeviceNotFound
2871
2872       Since: 2.1
2873
2874       block-commit  (Command) Live commit of data from overlay image nodes
2875       into backing nodes - i.e., writes data between 'top' and 'base' into
2876       'base'.
2877
2878       Arguments:
2879
2880       "job-id: string" (optional)
2881           identifier for the newly-created block job. If omitted, the device
2882           name will be used. (Since 2.7)
2883
2884       "device: string"
2885           the device name or node-name of a root node
2886
2887       "base: string" (optional)
2888           The file name of the backing image to write data into.  If not
2889           specified, this is the deepest backing image.
2890
2891       "top: string" (optional)
2892           The file name of the backing image within the image chain, which
2893           contains the topmost data to be committed down. If not specified,
2894           this is the active layer.
2895
2896       "backing-file: string" (optional)
2897           The backing file string to write into the overlay image of 'top'.
2898           If 'top' is the active layer, specifying a backing file string is
2899           an error. This filename is not validated.
2900
2901           If a pathname string is such that it cannot be resolved by QEMU,
2902           that means that subsequent QMP or HMP commands must use node-names
2903           for the image in question, as filename lookup methods will fail.
2904
2905           If not specified, QEMU will automatically determine the backing
2906           file string to use, or error out if there is no obvious choice.
2907           Care should be taken when specifying the string, to specify a valid
2908           filename or protocol.  (Since 2.1)
2909
2910           If top == base, that is an error.  If top == active, the job will
2911           not be completed by itself, user needs to complete the job with the
2912           block-job-complete command after getting the ready event. (Since
2913           2.0)
2914
2915           If the base image is smaller than top, then the base image will be
2916           resized to be the same size as top.  If top is smaller than the
2917           base image, the base will not be truncated.  If you want the base
2918           image size to match the size of the smaller top, you can safely
2919           truncate it yourself once the commit operation successfully
2920           completes.
2921
2922       "speed: int" (optional)
2923           the maximum speed, in bytes per second
2924
2925       "filter-node-name: string" (optional)
2926           the node name that should be assigned to the filter driver that the
2927           commit job inserts into the graph above "top". If this option is
2928           not given, a node name is autogenerated. (Since: 2.9)
2929
2930       Returns: Nothing on success If commit or stream is already active on
2931       this device, DeviceInUse If "device" does not exist, DeviceNotFound If
2932       image commit is not supported by this device, NotSupported If "base" or
2933       "top" is invalid, a generic error is returned If "speed" is invalid,
2934       InvalidParameter
2935
2936       Since: 1.3
2937
2938       Example:
2939
2940               -> { "execute": "block-commit",
2941                    "arguments": { "device": "virtio0",
2942                                   "top": "/tmp/snap1.qcow2" } }
2943               <- { "return": {} }
2944
2945       drive-backup  (Command) Start a point-in-time copy of a block device to
2946       a new destination.  The status of ongoing drive-backup operations can
2947       be checked with query-block-jobs where the BlockJobInfo.type field has
2948       the value 'backup'.  The operation can be stopped before it has
2949       completed using the block-job-cancel command.
2950
2951       Arguments: the members of "DriveBackup"
2952
2953       Returns: nothing on success If "device" is not a valid block device,
2954       GenericError
2955
2956       Since: 1.6
2957
2958       Example:
2959
2960               -> { "execute": "drive-backup",
2961                    "arguments": { "device": "drive0",
2962                                   "sync": "full",
2963                                   "target": "backup.img" } }
2964               <- { "return": {} }
2965
2966       blockdev-backup  (Command) Start a point-in-time copy of a block device
2967       to a new destination.  The status of ongoing blockdev-backup operations
2968       can be checked with query-block-jobs where the BlockJobInfo.type field
2969       has the value 'backup'.  The operation can be stopped before it has
2970       completed using the block-job-cancel command.
2971
2972       Arguments: the members of "BlockdevBackup"
2973
2974       Returns: nothing on success If "device" is not a valid block device,
2975       DeviceNotFound
2976
2977       Since: 2.3
2978
2979       Example:
2980
2981               -> { "execute": "blockdev-backup",
2982                    "arguments": { "device": "src-id",
2983                                   "sync": "full",
2984                                   "target": "tgt-id" } }
2985               <- { "return": {} }
2986
2987       query-named-block-nodes  (Command) Get the named block driver list
2988
2989       Returns: the list of BlockDeviceInfo
2990
2991       Since: 2.0
2992
2993       Example:
2994
2995               -> { "execute": "query-named-block-nodes" }
2996               <- { "return": [ { "ro":false,
2997                                  "drv":"qcow2",
2998                                  "encrypted":false,
2999                                  "file":"disks/test.qcow2",
3000                                  "node-name": "my-node",
3001                                  "backing_file_depth":1,
3002                                  "bps":1000000,
3003                                  "bps_rd":0,
3004                                  "bps_wr":0,
3005                                  "iops":1000000,
3006                                  "iops_rd":0,
3007                                  "iops_wr":0,
3008                                  "bps_max": 8000000,
3009                                  "bps_rd_max": 0,
3010                                  "bps_wr_max": 0,
3011                                  "iops_max": 0,
3012                                  "iops_rd_max": 0,
3013                                  "iops_wr_max": 0,
3014                                  "iops_size": 0,
3015                                  "write_threshold": 0,
3016                                  "image":{
3017                                     "filename":"disks/test.qcow2",
3018                                     "format":"qcow2",
3019                                     "virtual-size":2048000,
3020                                     "backing_file":"base.qcow2",
3021                                     "full-backing-filename":"disks/base.qcow2",
3022                                     "backing-filename-format":"qcow2",
3023                                     "snapshots":[
3024                                        {
3025                                           "id": "1",
3026                                           "name": "snapshot1",
3027                                           "vm-state-size": 0,
3028                                           "date-sec": 10000200,
3029                                           "date-nsec": 12,
3030                                           "vm-clock-sec": 206,
3031                                           "vm-clock-nsec": 30
3032                                        }
3033                                     ],
3034                                     "backing-image":{
3035                                         "filename":"disks/base.qcow2",
3036                                         "format":"qcow2",
3037                                         "virtual-size":2048000
3038                                     }
3039                                  } } ] }
3040
3041       drive-mirror  (Command) Start mirroring a block device's writes to a
3042       new destination. target specifies the target of the new image. If the
3043       file exists, or if it is a device, it will be used as the new
3044       destination for writes. If it does not exist, a new file will be
3045       created. format specifies the format of the mirror image, default is to
3046       probe if mode='existing', else the format of the source.
3047
3048       Arguments: the members of "DriveMirror"
3049
3050       Returns: nothing on success If "device" is not a valid block device,
3051       GenericError
3052
3053       Since: 1.3
3054
3055       Example:
3056
3057               -> { "execute": "drive-mirror",
3058                    "arguments": { "device": "ide-hd0",
3059                                   "target": "/some/place/my-image",
3060                                   "sync": "full",
3061                                   "format": "qcow2" } }
3062               <- { "return": {} }
3063
3064       DriveMirror (Object)
3065
3066       A set of parameters describing drive mirror setup.
3067
3068       Members:
3069
3070       "job-id: string" (optional)
3071           identifier for the newly-created block job. If omitted, the device
3072           name will be used. (Since 2.7)
3073
3074       "device: string"
3075           the device name or node-name of a root node whose writes should be
3076           mirrored.
3077
3078       "target: string"
3079           the target of the new image. If the file exists, or if it is a
3080           device, the existing file/device will be used as the new
3081           destination.  If it does not exist, a new file will be created.
3082
3083       "format: string" (optional)
3084           the format of the new destination, default is to probe if "mode" is
3085           'existing', else the format of the source
3086
3087       "node-name: string" (optional)
3088           the new block driver state node name in the graph (Since 2.1)
3089
3090       "replaces: string" (optional)
3091           with sync=full graph node name to be replaced by the new image when
3092           a whole image copy is done. This can be used to repair broken
3093           Quorum files. (Since 2.1)
3094
3095       "mode: NewImageMode" (optional)
3096           whether and how QEMU should create a new image, default is
3097           'absolute-paths'.
3098
3099       "speed: int" (optional)
3100           the maximum speed, in bytes per second
3101
3102       "sync: MirrorSyncMode"
3103           what parts of the disk image should be copied to the destination
3104           (all the disk, only the sectors allocated in the topmost image, or
3105           only new I/O).
3106
3107       "granularity: int" (optional)
3108           granularity of the dirty bitmap, default is 64K if the image format
3109           doesn't have clusters, 4K if the clusters are smaller than that,
3110           else the cluster size.  Must be a power of 2 between 512 and 64M
3111           (since 1.4).
3112
3113       "buf-size: int" (optional)
3114           maximum amount of data in flight from source to target (since 1.4).
3115
3116       "on-source-error: BlockdevOnError" (optional)
3117           the action to take on an error on the source, default 'report'.
3118           'stop' and 'enospc' can only be used if the block device supports
3119           io-status (see BlockInfo).
3120
3121       "on-target-error: BlockdevOnError" (optional)
3122           the action to take on an error on the target, default 'report' (no
3123           limitations, since this applies to a different block device than
3124           "device").
3125
3126       "unmap: boolean" (optional)
3127           Whether to try to unmap target sectors where source has only zero.
3128           If true, and target unallocated sectors will read as zero, target
3129           image sectors will be unmapped; otherwise, zeroes will be written.
3130           Both will result in identical contents.  Default is true. (Since
3131           2.4)
3132
3133       "copy-mode: MirrorCopyMode" (optional)
3134           when to copy data to the destination; defaults to 'background'
3135           (Since: 3.0)
3136
3137       Since: 1.3
3138
3139       BlockDirtyBitmap (Object)
3140
3141       Members:
3142
3143       "node: string"
3144           name of device/node which the bitmap is tracking
3145
3146       "name: string"
3147           name of the dirty bitmap
3148
3149       Since: 2.4
3150
3151       BlockDirtyBitmapAdd (Object)
3152
3153       Members:
3154
3155       "node: string"
3156           name of device/node which the bitmap is tracking
3157
3158       "name: string"
3159           name of the dirty bitmap
3160
3161       "granularity: int" (optional)
3162           the bitmap granularity, default is 64k for block-dirty-bitmap-add
3163
3164       "persistent: boolean" (optional)
3165           the bitmap is persistent, i.e. it will be saved to the
3166           corresponding block device image file on its close. For now only
3167           Qcow2 disks support persistent bitmaps. Default is false for block-
3168           dirty-bitmap-add. (Since: 2.10)
3169
3170       "autoload: boolean" (optional)
3171           ignored and deprecated since 2.12.  Currently, all dirty tracking
3172           bitmaps are loaded from Qcow2 on open.
3173
3174       "x-disabled: boolean" (optional)
3175           the bitmap is created in the disabled state, which means that it
3176           will not track drive changes. The bitmap may be enabled with
3177           x-block-dirty-bitmap-enable. Default is false. (Since: 3.0)
3178
3179       Since: 2.4
3180
3181       BlockDirtyBitmapMerge (Object)
3182
3183       Members:
3184
3185       "node: string"
3186           name of device/node which the bitmap is tracking
3187
3188       "dst_name: string"
3189           name of the destination dirty bitmap
3190
3191       "src_name: string"
3192           name of the source dirty bitmap
3193
3194       Since: 3.0
3195
3196       block-dirty-bitmap-add  (Command) Create a dirty bitmap with a name on
3197       the node, and start tracking the writes.
3198
3199       Returns: nothing on success If "node" is not a valid block device or
3200       node, DeviceNotFound If "name" is already taken, GenericError with an
3201       explanation
3202
3203       Since: 2.4
3204
3205       Example:
3206
3207               -> { "execute": "block-dirty-bitmap-add",
3208                    "arguments": { "node": "drive0", "name": "bitmap0" } }
3209               <- { "return": {} }
3210
3211       block-dirty-bitmap-remove  (Command) Stop write tracking and remove the
3212       dirty bitmap that was created with block-dirty-bitmap-add. If the
3213       bitmap is persistent, remove it from its storage too.
3214
3215       Returns: nothing on success If "node" is not a valid block device or
3216       node, DeviceNotFound If "name" is not found, GenericError with an
3217       explanation if "name" is frozen by an operation, GenericError
3218
3219       Since: 2.4
3220
3221       Example:
3222
3223               -> { "execute": "block-dirty-bitmap-remove",
3224                    "arguments": { "node": "drive0", "name": "bitmap0" } }
3225               <- { "return": {} }
3226
3227       block-dirty-bitmap-clear  (Command) Clear (reset) a dirty bitmap on the
3228       device, so that an incremental backup from this point in time forward
3229       will only backup clusters modified after this clear operation.
3230
3231       Returns: nothing on success If "node" is not a valid block device,
3232       DeviceNotFound If "name" is not found, GenericError with an explanation
3233
3234       Since: 2.4
3235
3236       Example:
3237
3238               -> { "execute": "block-dirty-bitmap-clear",
3239                    "arguments": { "node": "drive0", "name": "bitmap0" } }
3240               <- { "return": {} }
3241
3242       x-block-dirty-bitmap-enable  (Command) Enables a dirty bitmap so that
3243       it will begin tracking disk changes.
3244
3245       Returns: nothing on success If "node" is not a valid block device,
3246       DeviceNotFound If "name" is not found, GenericError with an explanation
3247
3248       Since: 3.0
3249
3250       Example:
3251
3252               -> { "execute": "x-block-dirty-bitmap-enable",
3253                    "arguments": { "node": "drive0", "name": "bitmap0" } }
3254               <- { "return": {} }
3255
3256       x-block-dirty-bitmap-disable  (Command) Disables a dirty bitmap so that
3257       it will stop tracking disk changes.
3258
3259       Returns: nothing on success If "node" is not a valid block device,
3260       DeviceNotFound If "name" is not found, GenericError with an explanation
3261
3262       Since: 3.0
3263
3264       Example:
3265
3266               -> { "execute": "x-block-dirty-bitmap-disable",
3267                    "arguments": { "node": "drive0", "name": "bitmap0" } }
3268               <- { "return": {} }
3269
3270       x-block-dirty-bitmap-merge  (Command) Merge "src_name" dirty bitmap to
3271       "dst_name" dirty bitmap. "src_name" dirty bitmap is unchanged. On
3272       error, "dst_name" is unchanged.
3273
3274       Returns: nothing on success If "node" is not a valid block device,
3275       DeviceNotFound If "dst_name" or "src_name" is not found, GenericError
3276       If bitmaps has different sizes or granularities, GenericError
3277
3278       Since: 3.0
3279
3280       Example:
3281
3282               -> { "execute": "x-block-dirty-bitmap-merge",
3283                    "arguments": { "node": "drive0", "dst_name": "bitmap0",
3284                                   "src_name": "bitmap1" } }
3285               <- { "return": {} }
3286
3287       BlockDirtyBitmapSha256 (Object)
3288
3289       SHA256 hash of dirty bitmap data
3290
3291       Members:
3292
3293       "sha256: string"
3294           ASCII representation of SHA256 bitmap hash
3295
3296       Since: 2.10
3297
3298       x-debug-block-dirty-bitmap-sha256  (Command) Get bitmap SHA256
3299
3300       Returns: BlockDirtyBitmapSha256 on success If "node" is not a valid
3301       block device, DeviceNotFound If "name" is not found or if hashing has
3302       failed, GenericError with an explanation
3303
3304       Since: 2.10
3305
3306       blockdev-mirror  (Command) Start mirroring a block device's writes to a
3307       new destination.
3308
3309       Arguments:
3310
3311       "job-id: string" (optional)
3312           identifier for the newly-created block job. If omitted, the device
3313           name will be used. (Since 2.7)
3314
3315       "device: string"
3316           The device name or node-name of a root node whose writes should be
3317           mirrored.
3318
3319       "target: string"
3320           the id or node-name of the block device to mirror to. This mustn't
3321           be attached to guest.
3322
3323       "replaces: string" (optional)
3324           with sync=full graph node name to be replaced by the new image when
3325           a whole image copy is done. This can be used to repair broken
3326           Quorum files.
3327
3328       "speed: int" (optional)
3329           the maximum speed, in bytes per second
3330
3331       "sync: MirrorSyncMode"
3332           what parts of the disk image should be copied to the destination
3333           (all the disk, only the sectors allocated in the topmost image, or
3334           only new I/O).
3335
3336       "granularity: int" (optional)
3337           granularity of the dirty bitmap, default is 64K if the image format
3338           doesn't have clusters, 4K if the clusters are smaller than that,
3339           else the cluster size.  Must be a power of 2 between 512 and 64M
3340
3341       "buf-size: int" (optional)
3342           maximum amount of data in flight from source to target
3343
3344       "on-source-error: BlockdevOnError" (optional)
3345           the action to take on an error on the source, default 'report'.
3346           'stop' and 'enospc' can only be used if the block device supports
3347           io-status (see BlockInfo).
3348
3349       "on-target-error: BlockdevOnError" (optional)
3350           the action to take on an error on the target, default 'report' (no
3351           limitations, since this applies to a different block device than
3352           "device").
3353
3354       "filter-node-name: string" (optional)
3355           the node name that should be assigned to the filter driver that the
3356           mirror job inserts into the graph above "device". If this option is
3357           not given, a node name is autogenerated. (Since: 2.9)
3358
3359       "copy-mode: MirrorCopyMode" (optional)
3360           when to copy data to the destination; defaults to 'background'
3361           (Since: 3.0)
3362
3363       Returns: nothing on success.
3364
3365       Since: 2.6
3366
3367       Example:
3368
3369               -> { "execute": "blockdev-mirror",
3370                    "arguments": { "device": "ide-hd0",
3371                                   "target": "target0",
3372                                   "sync": "full" } }
3373               <- { "return": {} }
3374
3375       block_set_io_throttle  (Command) Change I/O throttle limits for a block
3376       drive.
3377
3378       Since QEMU 2.4, each device with I/O limits is member of a throttle
3379       group.
3380
3381       If two or more devices are members of the same group, the limits will
3382       apply to the combined I/O of the whole group in a round-robin fashion.
3383       Therefore, setting new I/O limits to a device will affect the whole
3384       group.
3385
3386       The name of the group can be specified using the 'group' parameter.  If
3387       the parameter is unset, it is assumed to be the current group of that
3388       device. If it's not in any group yet, the name of the device will be
3389       used as the name for its group.
3390
3391       The 'group' parameter can also be used to move a device to a different
3392       group. In this case the limits specified in the parameters will be
3393       applied to the new group only.
3394
3395       I/O limits can be disabled by setting all of them to 0. In this case
3396       the device will be removed from its group and the rest of its members
3397       will not be affected. The 'group' parameter is ignored.
3398
3399       Arguments: the members of "BlockIOThrottle"
3400
3401       Returns: Nothing on success If "device" is not a valid block device,
3402       DeviceNotFound
3403
3404       Since: 1.1
3405
3406       Example:
3407
3408               -> { "execute": "block_set_io_throttle",
3409                    "arguments": { "id": "virtio-blk-pci0/virtio-backend",
3410                                   "bps": 0,
3411                                   "bps_rd": 0,
3412                                   "bps_wr": 0,
3413                                   "iops": 512,
3414                                   "iops_rd": 0,
3415                                   "iops_wr": 0,
3416                                   "bps_max": 0,
3417                                   "bps_rd_max": 0,
3418                                   "bps_wr_max": 0,
3419                                   "iops_max": 0,
3420                                   "iops_rd_max": 0,
3421                                   "iops_wr_max": 0,
3422                                   "bps_max_length": 0,
3423                                   "iops_size": 0 } }
3424               <- { "return": {} }
3425
3426               -> { "execute": "block_set_io_throttle",
3427                    "arguments": { "id": "ide0-1-0",
3428                                   "bps": 1000000,
3429                                   "bps_rd": 0,
3430                                   "bps_wr": 0,
3431                                   "iops": 0,
3432                                   "iops_rd": 0,
3433                                   "iops_wr": 0,
3434                                   "bps_max": 8000000,
3435                                   "bps_rd_max": 0,
3436                                   "bps_wr_max": 0,
3437                                   "iops_max": 0,
3438                                   "iops_rd_max": 0,
3439                                   "iops_wr_max": 0,
3440                                   "bps_max_length": 60,
3441                                   "iops_size": 0 } }
3442               <- { "return": {} }
3443
3444       BlockIOThrottle (Object)
3445
3446       A set of parameters describing block throttling.
3447
3448       Members:
3449
3450       "device: string" (optional)
3451           Block device name (deprecated, use "id" instead)
3452
3453       "id: string" (optional)
3454           The name or QOM path of the guest device (since: 2.8)
3455
3456       "bps: int"
3457           total throughput limit in bytes per second
3458
3459       "bps_rd: int"
3460           read throughput limit in bytes per second
3461
3462       "bps_wr: int"
3463           write throughput limit in bytes per second
3464
3465       "iops: int"
3466           total I/O operations per second
3467
3468       "iops_rd: int"
3469           read I/O operations per second
3470
3471       "iops_wr: int"
3472           write I/O operations per second
3473
3474       "bps_max: int" (optional)
3475           total throughput limit during bursts, in bytes (Since 1.7)
3476
3477       "bps_rd_max: int" (optional)
3478           read throughput limit during bursts, in bytes (Since 1.7)
3479
3480       "bps_wr_max: int" (optional)
3481           write throughput limit during bursts, in bytes (Since 1.7)
3482
3483       "iops_max: int" (optional)
3484           total I/O operations per second during bursts, in bytes (Since 1.7)
3485
3486       "iops_rd_max: int" (optional)
3487           read I/O operations per second during bursts, in bytes (Since 1.7)
3488
3489       "iops_wr_max: int" (optional)
3490           write I/O operations per second during bursts, in bytes (Since 1.7)
3491
3492       "bps_max_length: int" (optional)
3493           maximum length of the "bps_max" burst period, in seconds. It must
3494           only be set if "bps_max" is set as well.  Defaults to 1. (Since
3495           2.6)
3496
3497       "bps_rd_max_length: int" (optional)
3498           maximum length of the "bps_rd_max" burst period, in seconds. It
3499           must only be set if "bps_rd_max" is set as well.  Defaults to 1.
3500           (Since 2.6)
3501
3502       "bps_wr_max_length: int" (optional)
3503           maximum length of the "bps_wr_max" burst period, in seconds. It
3504           must only be set if "bps_wr_max" is set as well.  Defaults to 1.
3505           (Since 2.6)
3506
3507       "iops_max_length: int" (optional)
3508           maximum length of the "iops" burst period, in seconds. It must only
3509           be set if "iops_max" is set as well.  Defaults to 1. (Since 2.6)
3510
3511       "iops_rd_max_length: int" (optional)
3512           maximum length of the "iops_rd_max" burst period, in seconds. It
3513           must only be set if "iops_rd_max" is set as well.  Defaults to 1.
3514           (Since 2.6)
3515
3516       "iops_wr_max_length: int" (optional)
3517           maximum length of the "iops_wr_max" burst period, in seconds. It
3518           must only be set if "iops_wr_max" is set as well.  Defaults to 1.
3519           (Since 2.6)
3520
3521       "iops_size: int" (optional)
3522           an I/O size in bytes (Since 1.7)
3523
3524       "group: string" (optional)
3525           throttle group name (Since 2.4)
3526
3527       Since: 1.1
3528
3529       ThrottleLimits (Object)
3530
3531       Limit parameters for throttling.  Since some limit combinations are
3532       illegal, limits should always be set in one transaction. All fields are
3533       optional. When setting limits, if a field is missing the current value
3534       is not changed.
3535
3536       Members:
3537
3538       "iops-total: int" (optional)
3539           limit total I/O operations per second
3540
3541       "iops-total-max: int" (optional)
3542           I/O operations burst
3543
3544       "iops-total-max-length: int" (optional)
3545           length of the iops-total-max burst period, in seconds It must only
3546           be set if "iops-total-max" is set as well.
3547
3548       "iops-read: int" (optional)
3549           limit read operations per second
3550
3551       "iops-read-max: int" (optional)
3552           I/O operations read burst
3553
3554       "iops-read-max-length: int" (optional)
3555           length of the iops-read-max burst period, in seconds It must only
3556           be set if "iops-read-max" is set as well.
3557
3558       "iops-write: int" (optional)
3559           limit write operations per second
3560
3561       "iops-write-max: int" (optional)
3562           I/O operations write burst
3563
3564       "iops-write-max-length: int" (optional)
3565           length of the iops-write-max burst period, in seconds It must only
3566           be set if "iops-write-max" is set as well.
3567
3568       "bps-total: int" (optional)
3569           limit total bytes per second
3570
3571       "bps-total-max: int" (optional)
3572           total bytes burst
3573
3574       "bps-total-max-length: int" (optional)
3575           length of the bps-total-max burst period, in seconds.  It must only
3576           be set if "bps-total-max" is set as well.
3577
3578       "bps-read: int" (optional)
3579           limit read bytes per second
3580
3581       "bps-read-max: int" (optional)
3582           total bytes read burst
3583
3584       "bps-read-max-length: int" (optional)
3585           length of the bps-read-max burst period, in seconds It must only be
3586           set if "bps-read-max" is set as well.
3587
3588       "bps-write: int" (optional)
3589           limit write bytes per second
3590
3591       "bps-write-max: int" (optional)
3592           total bytes write burst
3593
3594       "bps-write-max-length: int" (optional)
3595           length of the bps-write-max burst period, in seconds It must only
3596           be set if "bps-write-max" is set as well.
3597
3598       "iops-size: int" (optional)
3599           when limiting by iops max size of an I/O in bytes
3600
3601       Since: 2.11
3602
3603       block-stream  (Command) Copy data from a backing file into a block
3604       device.
3605
3606       The block streaming operation is performed in the background until the
3607       entire backing file has been copied.  This command returns immediately
3608       once streaming has started.  The status of ongoing block streaming
3609       operations can be checked with query-block-jobs.  The operation can be
3610       stopped before it has completed using the block-job-cancel command.
3611
3612       The node that receives the data is called the top image, can be located
3613       in any part of the chain (but always above the base image; see below)
3614       and can be specified using its device or node name. Earlier qemu
3615       versions only allowed 'device' to name the top level node; presence of
3616       the 'base-node' parameter during introspection can be used as a witness
3617       of the enhanced semantics of 'device'.
3618
3619       If a base file is specified then sectors are not copied from that base
3620       file and its backing chain.  When streaming completes the image file
3621       will have the base file as its backing file.  This can be used to
3622       stream a subset of the backing file chain instead of flattening the
3623       entire image.
3624
3625       On successful completion the image file is updated to drop the backing
3626       file and the BLOCK_JOB_COMPLETED event is emitted.
3627
3628       Arguments:
3629
3630       "job-id: string" (optional)
3631           identifier for the newly-created block job. If omitted, the device
3632           name will be used. (Since 2.7)
3633
3634       "device: string"
3635           the device or node name of the top image
3636
3637       "base: string" (optional)
3638           the common backing file name.  It cannot be set if "base-node" is
3639           also set.
3640
3641       "base-node: string" (optional)
3642           the node name of the backing file.  It cannot be set if "base" is
3643           also set. (Since 2.8)
3644
3645       "backing-file: string" (optional)
3646           The backing file string to write into the top image. This filename
3647           is not validated.
3648
3649           If a pathname string is such that it cannot be resolved by QEMU,
3650           that means that subsequent QMP or HMP commands must use node-names
3651           for the image in question, as filename lookup methods will fail.
3652
3653           If not specified, QEMU will automatically determine the backing
3654           file string to use, or error out if there is no obvious choice.
3655           Care should be taken when specifying the string, to specify a valid
3656           filename or protocol.  (Since 2.1)
3657
3658       "speed: int" (optional)
3659           the maximum speed, in bytes per second
3660
3661       "on-error: BlockdevOnError" (optional)
3662           the action to take on an error (default report).  'stop' and
3663           'enospc' can only be used if the block device supports io-status
3664           (see BlockInfo).  Since 1.3.
3665
3666       Returns: Nothing on success. If "device" does not exist,
3667       DeviceNotFound.
3668
3669       Since: 1.1
3670
3671       Example:
3672
3673               -> { "execute": "block-stream",
3674                    "arguments": { "device": "virtio0",
3675                                   "base": "/tmp/master.qcow2" } }
3676               <- { "return": {} }
3677
3678       block-job-set-speed  (Command) Set maximum speed for a background block
3679       operation.
3680
3681       This command can only be issued when there is an active block job.
3682
3683       Throttling can be disabled by setting the speed to 0.
3684
3685       Arguments:
3686
3687       "device: string"
3688           The job identifier. This used to be a device name (hence the name
3689           of the parameter), but since QEMU 2.7 it can have other values.
3690
3691       "speed: int"
3692           the maximum speed, in bytes per second, or 0 for unlimited.
3693           Defaults to 0.
3694
3695       Returns: Nothing on success If no background operation is active on
3696       this device, DeviceNotActive
3697
3698       Since: 1.1
3699
3700       block-job-cancel  (Command) Stop an active background block operation.
3701
3702       This command returns immediately after marking the active background
3703       block operation for cancellation.  It is an error to call this command
3704       if no operation is in progress.
3705
3706       The operation will cancel as soon as possible and then emit the
3707       BLOCK_JOB_CANCELLED event.  Before that happens the job is still
3708       visible when enumerated using query-block-jobs.
3709
3710       Note that if you issue 'block-job-cancel' after 'drive-mirror' has
3711       indicated (via the event BLOCK_JOB_READY) that the source and
3712       destination are synchronized, then the event triggered by this command
3713       changes to BLOCK_JOB_COMPLETED, to indicate that the mirroring has
3714       ended and the destination now has a point-in-time copy tied to the time
3715       of the cancellation.
3716
3717       For streaming, the image file retains its backing file unless the
3718       streaming operation happens to complete just as it is being cancelled.
3719       A new streaming operation can be started at a later time to finish
3720       copying all data from the backing file.
3721
3722       Arguments:
3723
3724       "device: string"
3725           The job identifier. This used to be a device name (hence the name
3726           of the parameter), but since QEMU 2.7 it can have other values.
3727
3728       "force: boolean" (optional)
3729           If true, and the job has already emitted the event BLOCK_JOB_READY,
3730           abandon the job immediately (even if it is paused) instead of
3731           waiting for the destination to complete its final synchronization
3732           (since 1.3)
3733
3734       Returns: Nothing on success If no background operation is active on
3735       this device, DeviceNotActive
3736
3737       Since: 1.1
3738
3739       block-job-pause  (Command) Pause an active background block operation.
3740
3741       This command returns immediately after marking the active background
3742       block operation for pausing.  It is an error to call this command if no
3743       operation is in progress or if the job is already paused.
3744
3745       The operation will pause as soon as possible.  No event is emitted when
3746       the operation is actually paused.  Cancelling a paused job
3747       automatically resumes it.
3748
3749       Arguments:
3750
3751       "device: string"
3752           The job identifier. This used to be a device name (hence the name
3753           of the parameter), but since QEMU 2.7 it can have other values.
3754
3755       Returns: Nothing on success If no background operation is active on
3756       this device, DeviceNotActive
3757
3758       Since: 1.3
3759
3760       block-job-resume  (Command) Resume an active background block
3761       operation.
3762
3763       This command returns immediately after resuming a paused background
3764       block operation.  It is an error to call this command if no operation
3765       is in progress or if the job is not paused.
3766
3767       This command also clears the error status of the job.
3768
3769       Arguments:
3770
3771       "device: string"
3772           The job identifier. This used to be a device name (hence the name
3773           of the parameter), but since QEMU 2.7 it can have other values.
3774
3775       Returns: Nothing on success If no background operation is active on
3776       this device, DeviceNotActive
3777
3778       Since: 1.3
3779
3780       block-job-complete  (Command) Manually trigger completion of an active
3781       background block operation.  This is supported for drive mirroring,
3782       where it also switches the device to write to the target path only.
3783       The ability to complete is signaled with a BLOCK_JOB_READY event.
3784
3785       This command completes an active background block operation
3786       synchronously.  The ordering of this command's return with the
3787       BLOCK_JOB_COMPLETED event is not defined.  Note that if an I/O error
3788       occurs during the processing of this command: 1) the command itself
3789       will fail; 2) the error will be processed according to the
3790       rerror/werror arguments that were specified when starting the
3791       operation.
3792
3793       A cancelled or paused job cannot be completed.
3794
3795       Arguments:
3796
3797       "device: string"
3798           The job identifier. This used to be a device name (hence the name
3799           of the parameter), but since QEMU 2.7 it can have other values.
3800
3801       Returns: Nothing on success If no background operation is active on
3802       this device, DeviceNotActive
3803
3804       Since: 1.3
3805
3806       block-job-dismiss  (Command) For jobs that have already concluded,
3807       remove them from the block-job-query list. This command only needs to
3808       be run for jobs which were started with QEMU 2.12+ job lifetime
3809       management semantics.
3810
3811       This command will refuse to operate on any job that has not yet reached
3812       its terminal state, JOB_STATUS_CONCLUDED. For jobs that make use of the
3813       BLOCK_JOB_READY event, block-job-cancel or block-job-complete will
3814       still need to be used as appropriate.
3815
3816       Arguments:
3817
3818       "id: string"
3819           The job identifier.
3820
3821       Returns: Nothing on success
3822
3823       Since: 2.12
3824
3825       block-job-finalize  (Command) Once a job that has manual=true reaches
3826       the pending state, it can be instructed to finalize any graph changes
3827       and do any necessary cleanup via this command.  For jobs in a
3828       transaction, instructing one job to finalize will force ALL jobs in the
3829       transaction to finalize, so it is only necessary to instruct a single
3830       member job to finalize.
3831
3832       Arguments:
3833
3834       "id: string"
3835           The job identifier.
3836
3837       Returns: Nothing on success
3838
3839       Since: 2.12
3840
3841       BlockdevDiscardOptions (Enum)
3842
3843       Determines how to handle discard requests.
3844
3845       Values:
3846
3847       "ignore"
3848           Ignore the request
3849
3850       "unmap"
3851           Forward as an unmap request
3852
3853       Since: 2.9
3854
3855       BlockdevDetectZeroesOptions (Enum)
3856
3857       Describes the operation mode for the automatic conversion of plain zero
3858       writes by the OS to driver specific optimized zero write commands.
3859
3860       Values:
3861
3862       "off"
3863           Disabled (default)
3864
3865       "on"
3866           Enabled
3867
3868       "unmap"
3869           Enabled and even try to unmap blocks if possible. This requires
3870           also that "BlockdevDiscardOptions" is set to unmap for this device.
3871
3872       Since: 2.1
3873
3874       BlockdevAioOptions (Enum)
3875
3876       Selects the AIO backend to handle I/O requests
3877
3878       Values:
3879
3880       "threads"
3881           Use qemu's thread pool
3882
3883       "native"
3884           Use native AIO backend (only Linux and Windows)
3885
3886       Since: 2.9
3887
3888       BlockdevCacheOptions (Object)
3889
3890       Includes cache-related options for block devices
3891
3892       Members:
3893
3894       "direct: boolean" (optional)
3895           enables use of O_DIRECT (bypass the host page cache; default:
3896           false)
3897
3898       "no-flush: boolean" (optional)
3899           ignore any flush requests for the device (default: false)
3900
3901       Since: 2.9
3902
3903       BlockdevDriver (Enum)
3904
3905       Drivers that are supported in block device operations.
3906
3907       Values:
3908
3909       "vxhs"
3910           Since 2.10
3911
3912       "throttle"
3913           Since 2.11
3914
3915       "nvme"
3916           Since 2.12
3917
3918       "copy-on-read"
3919           Since 3.0
3920
3921       "blklogwrites"
3922           Since 3.0
3923
3924       "blkdebug"
3925           Not documented
3926
3927       "blkverify"
3928           Not documented
3929
3930       "bochs"
3931           Not documented
3932
3933       "cloop"
3934           Not documented
3935
3936       "dmg"
3937           Not documented
3938
3939       "file"
3940           Not documented
3941
3942       "ftp"
3943           Not documented
3944
3945       "ftps"
3946           Not documented
3947
3948       "gluster"
3949           Not documented
3950
3951       "host_cdrom"
3952           Not documented
3953
3954       "host_device"
3955           Not documented
3956
3957       "http"
3958           Not documented
3959
3960       "https"
3961           Not documented
3962
3963       "iscsi"
3964           Not documented
3965
3966       "luks"
3967           Not documented
3968
3969       "nbd"
3970           Not documented
3971
3972       "nfs"
3973           Not documented
3974
3975       "null-aio"
3976           Not documented
3977
3978       "null-co"
3979           Not documented
3980
3981       "parallels"
3982           Not documented
3983
3984       "qcow"
3985           Not documented
3986
3987       "qcow2"
3988           Not documented
3989
3990       "qed"
3991           Not documented
3992
3993       "quorum"
3994           Not documented
3995
3996       "raw"
3997           Not documented
3998
3999       "rbd"
4000           Not documented
4001
4002       "replication"
4003           Not documented
4004
4005       "sheepdog"
4006           Not documented
4007
4008       "ssh"
4009           Not documented
4010
4011       "vdi"
4012           Not documented
4013
4014       "vhdx"
4015           Not documented
4016
4017       "vmdk"
4018           Not documented
4019
4020       "vpc"
4021           Not documented
4022
4023       "vvfat"
4024           Not documented
4025
4026       Since: 2.9
4027
4028       BlockdevOptionsFile (Object)
4029
4030       Driver specific block device options for the file backend.
4031
4032       Members:
4033
4034       "filename: string"
4035           path to the image file
4036
4037       "pr-manager: string" (optional)
4038           the id for the object that will handle persistent reservations for
4039           this device (default: none, forward the commands via SG_IO; since
4040           2.11)
4041
4042       "aio: BlockdevAioOptions" (optional)
4043           AIO backend (default: threads) (since: 2.8)
4044
4045       "locking: OnOffAuto" (optional)
4046           whether to enable file locking. If set to 'auto', only enable when
4047           Open File Descriptor (OFD) locking API is available (default: auto,
4048           since 2.10)
4049
4050       "x-check-cache-dropped: boolean" (optional)
4051           whether to check that page cache was dropped on live migration.
4052           May cause noticeable delays if the image file is large, do not use
4053           in production.  (default: off) (since: 3.0)
4054
4055       Since: 2.9
4056
4057       BlockdevOptionsNull (Object)
4058
4059       Driver specific block device options for the null backend.
4060
4061       Members:
4062
4063       "size: int" (optional)
4064           size of the device in bytes.
4065
4066       "latency-ns: int" (optional)
4067           emulated latency (in nanoseconds) in processing requests. Default
4068           to zero which completes requests immediately.  (Since 2.4)
4069
4070       Since: 2.9
4071
4072       BlockdevOptionsNVMe (Object)
4073
4074       Driver specific block device options for the NVMe backend.
4075
4076       Members:
4077
4078       "device: string"
4079           controller address of the NVMe device.
4080
4081       "namespace: int"
4082           namespace number of the device, starting from 1.
4083
4084       Since: 2.12
4085
4086       BlockdevOptionsVVFAT (Object)
4087
4088       Driver specific block device options for the vvfat protocol.
4089
4090       Members:
4091
4092       "dir: string"
4093           directory to be exported as FAT image
4094
4095       "fat-type: int" (optional)
4096           FAT type: 12, 16 or 32
4097
4098       "floppy: boolean" (optional)
4099           whether to export a floppy image (true) or partitioned hard disk
4100           (false; default)
4101
4102       "label: string" (optional)
4103           set the volume label, limited to 11 bytes. FAT16 and FAT32
4104           traditionally have some restrictions on labels, which are ignored
4105           by most operating systems. Defaults to "QEMU VVFAT".  (since 2.4)
4106
4107       "rw: boolean" (optional)
4108           whether to allow write operations (default: false)
4109
4110       Since: 2.9
4111
4112       BlockdevOptionsGenericFormat (Object)
4113
4114       Driver specific block device options for image format that have no
4115       option besides their data source.
4116
4117       Members:
4118
4119       "file: BlockdevRef"
4120           reference to or definition of the data source block device
4121
4122       Since: 2.9
4123
4124       BlockdevOptionsLUKS (Object)
4125
4126       Driver specific block device options for LUKS.
4127
4128       Members:
4129
4130       "key-secret: string" (optional)
4131           the ID of a QCryptoSecret object providing the decryption key
4132           (since 2.6). Mandatory except when doing a metadata-only probe of
4133           the image.
4134
4135       The members of "BlockdevOptionsGenericFormat"
4136
4137       Since: 2.9
4138
4139       BlockdevOptionsGenericCOWFormat (Object)
4140
4141       Driver specific block device options for image format that have no
4142       option besides their data source and an optional backing file.
4143
4144       Members:
4145
4146       "backing: BlockdevRefOrNull" (optional)
4147           reference to or definition of the backing file block device, null
4148           disables the backing file entirely.  Defaults to the backing file
4149           stored the image file.
4150
4151       The members of "BlockdevOptionsGenericFormat"
4152
4153       Since: 2.9
4154
4155       Qcow2OverlapCheckMode (Enum)
4156
4157       General overlap check modes.
4158
4159       Values:
4160
4161       "none"
4162           Do not perform any checks
4163
4164       "constant"
4165           Perform only checks which can be done in constant time and without
4166           reading anything from disk
4167
4168       "cached"
4169           Perform only checks which can be done without reading anything from
4170           disk
4171
4172       "all"
4173           Perform all available overlap checks
4174
4175       Since: 2.9
4176
4177       Qcow2OverlapCheckFlags (Object)
4178
4179       Structure of flags for each metadata structure. Setting a field to
4180       'true' makes qemu guard that structure against unintended overwriting.
4181       The default value is chosen according to the template given.
4182
4183       Members:
4184
4185       "template: Qcow2OverlapCheckMode" (optional)
4186           Specifies a template mode which can be adjusted using the other
4187           flags, defaults to 'cached'
4188
4189       "bitmap-directory: boolean" (optional)
4190           since 3.0
4191
4192       "main-header: boolean" (optional)
4193           Not documented
4194
4195       "active-l1: boolean" (optional)
4196           Not documented
4197
4198       "active-l2: boolean" (optional)
4199           Not documented
4200
4201       "refcount-table: boolean" (optional)
4202           Not documented
4203
4204       "refcount-block: boolean" (optional)
4205           Not documented
4206
4207       "snapshot-table: boolean" (optional)
4208           Not documented
4209
4210       "inactive-l1: boolean" (optional)
4211           Not documented
4212
4213       "inactive-l2: boolean" (optional)
4214           Not documented
4215
4216       Since: 2.9
4217
4218       Qcow2OverlapChecks (Alternate)
4219
4220       Specifies which metadata structures should be guarded against
4221       unintended overwriting.
4222
4223       Members:
4224
4225       "flags: Qcow2OverlapCheckFlags"
4226           set of flags for separate specification of each metadata structure
4227           type
4228
4229       "mode: Qcow2OverlapCheckMode"
4230           named mode which chooses a specific set of flags
4231
4232       Since: 2.9
4233
4234       BlockdevQcowEncryptionFormat (Enum)
4235
4236       Values:
4237
4238       "aes"
4239           AES-CBC with plain64 initialization vectors
4240
4241       Since: 2.10
4242
4243       BlockdevQcowEncryption (Object)
4244
4245       Members:
4246
4247       "format: BlockdevQcowEncryptionFormat"
4248           Not documented
4249
4250       The members of "QCryptoBlockOptionsQCow" when "format" is "aes"
4251
4252       Since: 2.10
4253
4254       BlockdevOptionsQcow (Object)
4255
4256       Driver specific block device options for qcow.
4257
4258       Members:
4259
4260       "encrypt: BlockdevQcowEncryption" (optional)
4261           Image decryption options. Mandatory for encrypted images, except
4262           when doing a metadata-only probe of the image.
4263
4264       The members of "BlockdevOptionsGenericCOWFormat"
4265
4266       Since: 2.10
4267
4268       BlockdevQcow2EncryptionFormat (Enum)
4269
4270       Values:
4271
4272       "aes"
4273           AES-CBC with plain64 initialization venctors
4274
4275       "luks"
4276           Not documented
4277
4278       Since: 2.10
4279
4280       BlockdevQcow2Encryption (Object)
4281
4282       Members:
4283
4284       "format: BlockdevQcow2EncryptionFormat"
4285           Not documented
4286
4287       The members of "QCryptoBlockOptionsQCow" when "format" is "aes"
4288       The members of "QCryptoBlockOptionsLUKS" when "format" is "luks"
4289
4290       Since: 2.10
4291
4292       BlockdevOptionsQcow2 (Object)
4293
4294       Driver specific block device options for qcow2.
4295
4296       Members:
4297
4298       "lazy-refcounts: boolean" (optional)
4299           whether to enable the lazy refcounts feature (default is taken from
4300           the image file)
4301
4302       "pass-discard-request: boolean" (optional)
4303           whether discard requests to the qcow2 device should be forwarded to
4304           the data source
4305
4306       "pass-discard-snapshot: boolean" (optional)
4307           whether discard requests for the data source should be issued when
4308           a snapshot operation (e.g.  deleting a snapshot) frees clusters in
4309           the qcow2 file
4310
4311       "pass-discard-other: boolean" (optional)
4312           whether discard requests for the data source should be issued on
4313           other occasions where a cluster gets freed
4314
4315       "overlap-check: Qcow2OverlapChecks" (optional)
4316           which overlap checks to perform for writes to the image, defaults
4317           to 'cached' (since 2.2)
4318
4319       "cache-size: int" (optional)
4320           the maximum total size of the L2 table and refcount block caches in
4321           bytes (since 2.2)
4322
4323       "l2-cache-size: int" (optional)
4324           the maximum size of the L2 table cache in bytes (since 2.2)
4325
4326       "l2-cache-entry-size: int" (optional)
4327           the size of each entry in the L2 cache in bytes. It must be a power
4328           of two between 512 and the cluster size. The default value is the
4329           cluster size (since 2.12)
4330
4331       "refcount-cache-size: int" (optional)
4332           the maximum size of the refcount block cache in bytes (since 2.2)
4333
4334       "cache-clean-interval: int" (optional)
4335           clean unused entries in the L2 and refcount caches. The interval is
4336           in seconds. The default value is 0 and it disables this feature
4337           (since 2.5)
4338
4339       "encrypt: BlockdevQcow2Encryption" (optional)
4340           Image decryption options. Mandatory for encrypted images, except
4341           when doing a metadata-only probe of the image. (since 2.10)
4342
4343       The members of "BlockdevOptionsGenericCOWFormat"
4344
4345       Since: 2.9
4346
4347       SshHostKeyCheckMode (Enum)
4348
4349       "none"             Don't check the host key at all "hash"
4350       Compare the host key with a given hash "known_hosts"      Check the
4351       host key against the known_hosts file
4352
4353       Values:
4354
4355       "none"
4356           Not documented
4357
4358       "hash"
4359           Not documented
4360
4361       "known_hosts"
4362           Not documented
4363
4364       Since: 2.12
4365
4366       SshHostKeyCheckHashType (Enum)
4367
4368       "md5"              The given hash is an md5 hash "sha1"             The
4369       given hash is an sha1 hash
4370
4371       Values:
4372
4373       "md5"
4374           Not documented
4375
4376       "sha1"
4377           Not documented
4378
4379       Since: 2.12
4380
4381       SshHostKeyHash (Object)
4382
4383       "type"             The hash algorithm used for the hash "hash"
4384       The expected hash value
4385
4386       Members:
4387
4388       "type: SshHostKeyCheckHashType"
4389           Not documented
4390
4391       "hash: string"
4392           Not documented
4393
4394       Since: 2.12
4395
4396       SshHostKeyCheck (Object)
4397
4398       Members:
4399
4400       "mode: SshHostKeyCheckMode"
4401           Not documented
4402
4403       The members of "SshHostKeyHash" when "mode" is "hash"
4404
4405       Since: 2.12
4406
4407       BlockdevOptionsSsh (Object)
4408
4409       Members:
4410
4411       "server: InetSocketAddress"
4412           host address
4413
4414       "path: string"
4415           path to the image on the host
4416
4417       "user: string" (optional)
4418           user as which to connect, defaults to current local user name
4419
4420       "host-key-check: SshHostKeyCheck" (optional)
4421           Defines how and what to check the host key against (default:
4422           known_hosts)
4423
4424       Since: 2.9
4425
4426       BlkdebugEvent (Enum)
4427
4428       Trigger events supported by blkdebug.
4429
4430       Values:
4431
4432       "l1_shrink_write_table"
4433           write zeros to the l1 table to shrink image.  (since 2.11)
4434
4435       "l1_shrink_free_l2_clusters"
4436           discard the l2 tables. (since 2.11)
4437
4438       "cor_write"
4439           a write due to copy-on-read (since 2.11)
4440
4441       "l1_update"
4442           Not documented
4443
4444       "l1_grow_alloc_table"
4445           Not documented
4446
4447       "l1_grow_write_table"
4448           Not documented
4449
4450       "l1_grow_activate_table"
4451           Not documented
4452
4453       "l2_load"
4454           Not documented
4455
4456       "l2_update"
4457           Not documented
4458
4459       "l2_update_compressed"
4460           Not documented
4461
4462       "l2_alloc_cow_read"
4463           Not documented
4464
4465       "l2_alloc_write"
4466           Not documented
4467
4468       "read_aio"
4469           Not documented
4470
4471       "read_backing_aio"
4472           Not documented
4473
4474       "read_compressed"
4475           Not documented
4476
4477       "write_aio"
4478           Not documented
4479
4480       "write_compressed"
4481           Not documented
4482
4483       "vmstate_load"
4484           Not documented
4485
4486       "vmstate_save"
4487           Not documented
4488
4489       "cow_read"
4490           Not documented
4491
4492       "cow_write"
4493           Not documented
4494
4495       "reftable_load"
4496           Not documented
4497
4498       "reftable_grow"
4499           Not documented
4500
4501       "reftable_update"
4502           Not documented
4503
4504       "refblock_load"
4505           Not documented
4506
4507       "refblock_update"
4508           Not documented
4509
4510       "refblock_update_part"
4511           Not documented
4512
4513       "refblock_alloc"
4514           Not documented
4515
4516       "refblock_alloc_hookup"
4517           Not documented
4518
4519       "refblock_alloc_write"
4520           Not documented
4521
4522       "refblock_alloc_write_blocks"
4523           Not documented
4524
4525       "refblock_alloc_write_table"
4526           Not documented
4527
4528       "refblock_alloc_switch_table"
4529           Not documented
4530
4531       "cluster_alloc"
4532           Not documented
4533
4534       "cluster_alloc_bytes"
4535           Not documented
4536
4537       "cluster_free"
4538           Not documented
4539
4540       "flush_to_os"
4541           Not documented
4542
4543       "flush_to_disk"
4544           Not documented
4545
4546       "pwritev_rmw_head"
4547           Not documented
4548
4549       "pwritev_rmw_after_head"
4550           Not documented
4551
4552       "pwritev_rmw_tail"
4553           Not documented
4554
4555       "pwritev_rmw_after_tail"
4556           Not documented
4557
4558       "pwritev"
4559           Not documented
4560
4561       "pwritev_zero"
4562           Not documented
4563
4564       "pwritev_done"
4565           Not documented
4566
4567       "empty_image_prepare"
4568           Not documented
4569
4570       Since: 2.9
4571
4572       BlkdebugInjectErrorOptions (Object)
4573
4574       Describes a single error injection for blkdebug.
4575
4576       Members:
4577
4578       "event: BlkdebugEvent"
4579           trigger event
4580
4581       "state: int" (optional)
4582           the state identifier blkdebug needs to be in to actually trigger
4583           the event; defaults to "any"
4584
4585       "errno: int" (optional)
4586           error identifier (errno) to be returned; defaults to EIO
4587
4588       "sector: int" (optional)
4589           specifies the sector index which has to be affected in order to
4590           actually trigger the event; defaults to "any sector"
4591
4592       "once: boolean" (optional)
4593           disables further events after this one has been triggered; defaults
4594           to false
4595
4596       "immediately: boolean" (optional)
4597           fail immediately; defaults to false
4598
4599       Since: 2.9
4600
4601       BlkdebugSetStateOptions (Object)
4602
4603       Describes a single state-change event for blkdebug.
4604
4605       Members:
4606
4607       "event: BlkdebugEvent"
4608           trigger event
4609
4610       "state: int" (optional)
4611           the current state identifier blkdebug needs to be in; defaults to
4612           "any"
4613
4614       "new_state: int"
4615           the state identifier blkdebug is supposed to assume if this event
4616           is triggered
4617
4618       Since: 2.9
4619
4620       BlockdevOptionsBlkdebug (Object)
4621
4622       Driver specific block device options for blkdebug.
4623
4624       Members:
4625
4626       "image: BlockdevRef"
4627           underlying raw block device (or image file)
4628
4629       "config: string" (optional)
4630           filename of the configuration file
4631
4632       "align: int" (optional)
4633           required alignment for requests in bytes, must be positive power of
4634           2, or 0 for default
4635
4636       "max-transfer: int" (optional)
4637           maximum size for I/O transfers in bytes, must be positive multiple
4638           of "align" and of the underlying file's request alignment (but need
4639           not be a power of 2), or 0 for default (since 2.10)
4640
4641       "opt-write-zero: int" (optional)
4642           preferred alignment for write zero requests in bytes, must be
4643           positive multiple of "align" and of the underlying file's request
4644           alignment (but need not be a power of 2), or 0 for default (since
4645           2.10)
4646
4647       "max-write-zero: int" (optional)
4648           maximum size for write zero requests in bytes, must be positive
4649           multiple of "align", of "opt-write-zero", and of the underlying
4650           file's request alignment (but need not be a power of 2), or 0 for
4651           default (since 2.10)
4652
4653       "opt-discard: int" (optional)
4654           preferred alignment for discard requests in bytes, must be positive
4655           multiple of "align" and of the underlying file's request alignment
4656           (but need not be a power of 2), or 0 for default (since 2.10)
4657
4658       "max-discard: int" (optional)
4659           maximum size for discard requests in bytes, must be positive
4660           multiple of "align", of "opt-discard", and of the underlying file's
4661           request alignment (but need not be a power of 2), or 0 for default
4662           (since 2.10)
4663
4664       "inject-error: array of BlkdebugInjectErrorOptions" (optional)
4665           array of error injection descriptions
4666
4667       "set-state: array of BlkdebugSetStateOptions" (optional)
4668           array of state-change descriptions
4669
4670       Since: 2.9
4671
4672       BlockdevOptionsBlklogwrites (Object)
4673
4674       Driver specific block device options for blklogwrites.
4675
4676       Members:
4677
4678       "file: BlockdevRef"
4679           block device
4680
4681       "log: BlockdevRef"
4682           block device used to log writes to "file"
4683
4684       "log-sector-size: int" (optional)
4685           sector size used in logging writes to "file", determines
4686           granularity of offsets and sizes of writes (default: 512)
4687
4688       "log-append: boolean" (optional)
4689           append to an existing log (default: false)
4690
4691       "log-super-update-interval: int" (optional)
4692           interval of write requests after which the log super block is
4693           updated to disk (default: 4096)
4694
4695       Since: 3.0
4696
4697       BlockdevOptionsBlkverify (Object)
4698
4699       Driver specific block device options for blkverify.
4700
4701       Members:
4702
4703       "test: BlockdevRef"
4704           block device to be tested
4705
4706       "raw: BlockdevRef"
4707           raw image used for verification
4708
4709       Since: 2.9
4710
4711       QuorumReadPattern (Enum)
4712
4713       An enumeration of quorum read patterns.
4714
4715       Values:
4716
4717       "quorum"
4718           read all the children and do a quorum vote on reads
4719
4720       "fifo"
4721           read only from the first child that has not failed
4722
4723       Since: 2.9
4724
4725       BlockdevOptionsQuorum (Object)
4726
4727       Driver specific block device options for Quorum
4728
4729       Members:
4730
4731       "blkverify: boolean" (optional)
4732           true if the driver must print content mismatch set to false by
4733           default
4734
4735       "children: array of BlockdevRef"
4736           the children block devices to use
4737
4738       "vote-threshold: int"
4739           the vote limit under which a read will fail
4740
4741       "rewrite-corrupted: boolean" (optional)
4742           rewrite corrupted data when quorum is reached (Since 2.1)
4743
4744       "read-pattern: QuorumReadPattern" (optional)
4745           choose read pattern and set to quorum by default (Since 2.2)
4746
4747       Since: 2.9
4748
4749       BlockdevOptionsGluster (Object)
4750
4751       Driver specific block device options for Gluster
4752
4753       Members:
4754
4755       "volume: string"
4756           name of gluster volume where VM image resides
4757
4758       "path: string"
4759           absolute path to image file in gluster volume
4760
4761       "server: array of SocketAddress"
4762           gluster servers description
4763
4764       "debug: int" (optional)
4765           libgfapi log level (default '4' which is Error) (Since 2.8)
4766
4767       "logfile: string" (optional)
4768           libgfapi log file (default /dev/stderr) (Since 2.8)
4769
4770       Since: 2.9
4771
4772       IscsiTransport (Enum)
4773
4774       An enumeration of libiscsi transport types
4775
4776       Values:
4777
4778       "tcp"
4779           Not documented
4780
4781       "iser"
4782           Not documented
4783
4784       Since: 2.9
4785
4786       IscsiHeaderDigest (Enum)
4787
4788       An enumeration of header digests supported by libiscsi
4789
4790       Values:
4791
4792       "crc32c"
4793           Not documented
4794
4795       "none"
4796           Not documented
4797
4798       "crc32c-none"
4799           Not documented
4800
4801       "none-crc32c"
4802           Not documented
4803
4804       Since: 2.9
4805
4806       BlockdevOptionsIscsi (Object)
4807
4808       Members:
4809
4810       "transport: IscsiTransport"
4811           The iscsi transport type
4812
4813       "portal: string"
4814           The address of the iscsi portal
4815
4816       "target: string"
4817           The target iqn name
4818
4819       "lun: int" (optional)
4820           LUN to connect to. Defaults to 0.
4821
4822       "user: string" (optional)
4823           User name to log in with. If omitted, no CHAP authentication is
4824           performed.
4825
4826       "password-secret: string" (optional)
4827           The ID of a QCryptoSecret object providing the password for the
4828           login. This option is required if "user" is specified.
4829
4830       "initiator-name: string" (optional)
4831           The iqn name we want to identify to the target as. If this option
4832           is not specified, an initiator name is generated automatically.
4833
4834       "header-digest: IscsiHeaderDigest" (optional)
4835           The desired header digest. Defaults to none-crc32c.
4836
4837       "timeout: int" (optional)
4838           Timeout in seconds after which a request will timeout. 0 means no
4839           timeout and is the default.
4840
4841       Driver specific block device options for iscsi
4842
4843       Since: 2.9
4844
4845       RbdAuthMode (Enum)
4846
4847       Values:
4848
4849       "cephx"
4850           Not documented
4851
4852       "none"
4853           Not documented
4854
4855       Since: 3.0
4856
4857       BlockdevOptionsRbd (Object)
4858
4859       Members:
4860
4861       "pool: string"
4862           Ceph pool name.
4863
4864       "image: string"
4865           Image name in the Ceph pool.
4866
4867       "conf: string" (optional)
4868           path to Ceph configuration file.  Values in the configuration file
4869           will be overridden by options specified via QAPI.
4870
4871       "snapshot: string" (optional)
4872           Ceph snapshot name.
4873
4874       "user: string" (optional)
4875           Ceph id name.
4876
4877       "auth-client-required: array of RbdAuthMode" (optional)
4878           Acceptable authentication modes.  This maps to Ceph configuration
4879           option "auth_client_required".  (Since 3.0)
4880
4881       "key-secret: string" (optional)
4882           ID of a QCryptoSecret object providing a key for cephx
4883           authentication.  This maps to Ceph configuration option "key".
4884           (Since 3.0)
4885
4886       "server: array of InetSocketAddressBase" (optional)
4887           Monitor host address and port.  This maps to the "mon_host" Ceph
4888           option.
4889
4890       Since: 2.9
4891
4892       BlockdevOptionsSheepdog (Object)
4893
4894       Driver specific block device options for sheepdog
4895
4896       Members:
4897
4898       "vdi: string"
4899           Virtual disk image name
4900
4901       "server: SocketAddress"
4902           The Sheepdog server to connect to
4903
4904       "snap-id: int" (optional)
4905           Snapshot ID
4906
4907       "tag: string" (optional)
4908           Snapshot tag name
4909
4910       Only one of "snap-id" and "tag" may be present.
4911
4912       Since: 2.9
4913
4914       ReplicationMode (Enum)
4915
4916       An enumeration of replication modes.
4917
4918       Values:
4919
4920       "primary"
4921           Primary mode, the vm's state will be sent to secondary QEMU.
4922
4923       "secondary"
4924           Secondary mode, receive the vm's state from primary QEMU.
4925
4926       Since: 2.9
4927
4928       BlockdevOptionsReplication (Object)
4929
4930       Driver specific block device options for replication
4931
4932       Members:
4933
4934       "mode: ReplicationMode"
4935           the replication mode
4936
4937       "top-id: string" (optional)
4938           In secondary mode, node name or device ID of the root node who owns
4939           the replication node chain. Must not be given in primary mode.
4940
4941       The members of "BlockdevOptionsGenericFormat"
4942
4943       Since: 2.9
4944
4945       NFSTransport (Enum)
4946
4947       An enumeration of NFS transport types
4948
4949       Values:
4950
4951       "inet"
4952           TCP transport
4953
4954       Since: 2.9
4955
4956       NFSServer (Object)
4957
4958       Captures the address of the socket
4959
4960       Members:
4961
4962       "type: NFSTransport"
4963           transport type used for NFS (only TCP supported)
4964
4965       "host: string"
4966           host address for NFS server
4967
4968       Since: 2.9
4969
4970       BlockdevOptionsNfs (Object)
4971
4972       Driver specific block device option for NFS
4973
4974       Members:
4975
4976       "server: NFSServer"
4977           host address
4978
4979       "path: string"
4980           path of the image on the host
4981
4982       "user: int" (optional)
4983           UID value to use when talking to the server (defaults to 65534 on
4984           Windows and getuid() on unix)
4985
4986       "group: int" (optional)
4987           GID value to use when talking to the server (defaults to 65534 on
4988           Windows and getgid() in unix)
4989
4990       "tcp-syn-count: int" (optional)
4991           number of SYNs during the session establishment (defaults to libnfs
4992           default)
4993
4994       "readahead-size: int" (optional)
4995           set the readahead size in bytes (defaults to libnfs default)
4996
4997       "page-cache-size: int" (optional)
4998           set the pagecache size in bytes (defaults to libnfs default)
4999
5000       "debug: int" (optional)
5001           set the NFS debug level (max 2) (defaults to libnfs default)
5002
5003       Since: 2.9
5004
5005       BlockdevOptionsCurlBase (Object)
5006
5007       Driver specific block device options shared by all protocols supported
5008       by the curl backend.
5009
5010       Members:
5011
5012       "url: string"
5013           URL of the image file
5014
5015       "readahead: int" (optional)
5016           Size of the read-ahead cache; must be a multiple of 512 (defaults
5017           to 256 kB)
5018
5019       "timeout: int" (optional)
5020           Timeout for connections, in seconds (defaults to 5)
5021
5022       "username: string" (optional)
5023           Username for authentication (defaults to none)
5024
5025       "password-secret: string" (optional)
5026           ID of a QCryptoSecret object providing a password for
5027           authentication (defaults to no password)
5028
5029       "proxy-username: string" (optional)
5030           Username for proxy authentication (defaults to none)
5031
5032       "proxy-password-secret: string" (optional)
5033           ID of a QCryptoSecret object providing a password for proxy
5034           authentication (defaults to no password)
5035
5036       Since: 2.9
5037
5038       BlockdevOptionsCurlHttp (Object)
5039
5040       Driver specific block device options for HTTP connections over the curl
5041       backend.  URLs must start with "http://".
5042
5043       Members:
5044
5045       "cookie: string" (optional)
5046           List of cookies to set; format is "name1=content1; name2=content2;"
5047           as explained by CURLOPT_COOKIE(3). Defaults to no cookies.
5048
5049       "cookie-secret: string" (optional)
5050           ID of a QCryptoSecret object providing the cookie data in a secure
5051           way. See "cookie" for the format. (since 2.10)
5052
5053       The members of "BlockdevOptionsCurlBase"
5054
5055       Since: 2.9
5056
5057       BlockdevOptionsCurlHttps (Object)
5058
5059       Driver specific block device options for HTTPS connections over the
5060       curl backend.  URLs must start with "https://".
5061
5062       Members:
5063
5064       "cookie: string" (optional)
5065           List of cookies to set; format is "name1=content1; name2=content2;"
5066           as explained by CURLOPT_COOKIE(3). Defaults to no cookies.
5067
5068       "sslverify: boolean" (optional)
5069           Whether to verify the SSL certificate's validity (defaults to true)
5070
5071       "cookie-secret: string" (optional)
5072           ID of a QCryptoSecret object providing the cookie data in a secure
5073           way. See "cookie" for the format. (since 2.10)
5074
5075       The members of "BlockdevOptionsCurlBase"
5076
5077       Since: 2.9
5078
5079       BlockdevOptionsCurlFtp (Object)
5080
5081       Driver specific block device options for FTP connections over the curl
5082       backend.  URLs must start with "ftp://".
5083
5084       Members:
5085
5086       The members of "BlockdevOptionsCurlBase"
5087
5088       Since: 2.9
5089
5090       BlockdevOptionsCurlFtps (Object)
5091
5092       Driver specific block device options for FTPS connections over the curl
5093       backend.  URLs must start with "ftps://".
5094
5095       Members:
5096
5097       "sslverify: boolean" (optional)
5098           Whether to verify the SSL certificate's validity (defaults to true)
5099
5100       The members of "BlockdevOptionsCurlBase"
5101
5102       Since: 2.9
5103
5104       BlockdevOptionsNbd (Object)
5105
5106       Driver specific block device options for NBD.
5107
5108       Members:
5109
5110       "server: SocketAddress"
5111           NBD server address
5112
5113       "export: string" (optional)
5114           export name
5115
5116       "tls-creds: string" (optional)
5117           TLS credentials ID
5118
5119       "x-dirty-bitmap: string" (optional)
5120           A "qemu:dirty-bitmap:NAME" string to query in place of traditional
5121           "base:allocation" block status (see NBD_OPT_LIST_META_CONTEXT in
5122           the NBD protocol) (since 3.0)
5123
5124       Since: 2.9
5125
5126       BlockdevOptionsRaw (Object)
5127
5128       Driver specific block device options for the raw driver.
5129
5130       Members:
5131
5132       "offset: int" (optional)
5133           position where the block device starts
5134
5135       "size: int" (optional)
5136           the assumed size of the device
5137
5138       The members of "BlockdevOptionsGenericFormat"
5139
5140       Since: 2.9
5141
5142       BlockdevOptionsVxHS (Object)
5143
5144       Driver specific block device options for VxHS
5145
5146       Members:
5147
5148       "vdisk-id: string"
5149           UUID of VxHS volume
5150
5151       "server: InetSocketAddressBase"
5152           vxhs server IP, port
5153
5154       "tls-creds: string" (optional)
5155           TLS credentials ID
5156
5157       Since: 2.10
5158
5159       BlockdevOptionsThrottle (Object)
5160
5161       Driver specific block device options for the throttle driver
5162
5163       Members:
5164
5165       "throttle-group: string"
5166           the name of the throttle-group object to use. It must already
5167           exist.
5168
5169       "file: BlockdevRef"
5170           reference to or definition of the data source block device
5171
5172       Since: 2.11
5173
5174       BlockdevOptions (Object)
5175
5176       Options for creating a block device.  Many options are available for
5177       all block devices, independent of the block driver:
5178
5179       Members:
5180
5181       "driver: BlockdevDriver"
5182           block driver name
5183
5184       "node-name: string" (optional)
5185           the node name of the new node (Since 2.0).  This option is required
5186           on the top level of blockdev-add.
5187
5188       "discard: BlockdevDiscardOptions" (optional)
5189           discard-related options (default: ignore)
5190
5191       "cache: BlockdevCacheOptions" (optional)
5192           cache-related options
5193
5194       "read-only: boolean" (optional)
5195           whether the block device should be read-only (default: false).
5196           Note that some block drivers support only read-only access, either
5197           generally or in certain configurations. In this case, the default
5198           value does not work and the option must be specified explicitly.
5199
5200       "detect-zeroes: BlockdevDetectZeroesOptions" (optional)
5201           detect and optimize zero writes (Since 2.1) (default: off)
5202
5203       "force-share: boolean" (optional)
5204           force share all permission on added nodes.  Requires
5205           read-only=true. (Since 2.10)
5206
5207       The members of "BlockdevOptionsBlkdebug" when "driver" is "blkdebug"
5208       The members of "BlockdevOptionsBlklogwrites" when "driver" is
5209       "blklogwrites"
5210       The members of "BlockdevOptionsBlkverify" when "driver" is "blkverify"
5211       The members of "BlockdevOptionsGenericFormat" when "driver" is "bochs"
5212       The members of "BlockdevOptionsGenericFormat" when "driver" is "cloop"
5213       The members of "BlockdevOptionsGenericFormat" when "driver" is "copy-
5214       on-read"
5215       The members of "BlockdevOptionsGenericFormat" when "driver" is "dmg"
5216       The members of "BlockdevOptionsFile" when "driver" is "file"
5217       The members of "BlockdevOptionsCurlFtp" when "driver" is "ftp"
5218       The members of "BlockdevOptionsCurlFtps" when "driver" is "ftps"
5219       The members of "BlockdevOptionsGluster" when "driver" is "gluster"
5220       The members of "BlockdevOptionsFile" when "driver" is "host_cdrom"
5221       The members of "BlockdevOptionsFile" when "driver" is "host_device"
5222       The members of "BlockdevOptionsCurlHttp" when "driver" is "http"
5223       The members of "BlockdevOptionsCurlHttps" when "driver" is "https"
5224       The members of "BlockdevOptionsIscsi" when "driver" is "iscsi"
5225       The members of "BlockdevOptionsLUKS" when "driver" is "luks"
5226       The members of "BlockdevOptionsNbd" when "driver" is "nbd"
5227       The members of "BlockdevOptionsNfs" when "driver" is "nfs"
5228       The members of "BlockdevOptionsNull" when "driver" is "null-aio"
5229       The members of "BlockdevOptionsNull" when "driver" is "null-co"
5230       The members of "BlockdevOptionsNVMe" when "driver" is "nvme"
5231       The members of "BlockdevOptionsGenericFormat" when "driver" is
5232       "parallels"
5233       The members of "BlockdevOptionsQcow2" when "driver" is "qcow2"
5234       The members of "BlockdevOptionsQcow" when "driver" is "qcow"
5235       The members of "BlockdevOptionsGenericCOWFormat" when "driver" is "qed"
5236       The members of "BlockdevOptionsQuorum" when "driver" is "quorum"
5237       The members of "BlockdevOptionsRaw" when "driver" is "raw"
5238       The members of "BlockdevOptionsRbd" when "driver" is "rbd"
5239       The members of "BlockdevOptionsReplication" when "driver" is
5240       "replication"
5241       The members of "BlockdevOptionsSheepdog" when "driver" is "sheepdog"
5242       The members of "BlockdevOptionsSsh" when "driver" is "ssh"
5243       The members of "BlockdevOptionsThrottle" when "driver" is "throttle"
5244       The members of "BlockdevOptionsGenericFormat" when "driver" is "vdi"
5245       The members of "BlockdevOptionsGenericFormat" when "driver" is "vhdx"
5246       The members of "BlockdevOptionsGenericCOWFormat" when "driver" is
5247       "vmdk"
5248       The members of "BlockdevOptionsGenericFormat" when "driver" is "vpc"
5249       The members of "BlockdevOptionsVVFAT" when "driver" is "vvfat"
5250       The members of "BlockdevOptionsVxHS" when "driver" is "vxhs"
5251
5252       Remaining options are determined by the block driver.
5253
5254       Since: 2.9
5255
5256       BlockdevRef (Alternate)
5257
5258       Reference to a block device.
5259
5260       Members:
5261
5262       "definition: BlockdevOptions"
5263           defines a new block device inline
5264
5265       "reference: string"
5266           references the ID of an existing block device
5267
5268       Since: 2.9
5269
5270       BlockdevRefOrNull (Alternate)
5271
5272       Reference to a block device.
5273
5274       Members:
5275
5276       "definition: BlockdevOptions"
5277           defines a new block device inline
5278
5279       "reference: string"
5280           references the ID of an existing block device.  An empty string
5281           means that no block device should be referenced.  Deprecated; use
5282           null instead.
5283
5284       "null: null"
5285           No block device should be referenced (since 2.10)
5286
5287       Since: 2.9
5288
5289       blockdev-add  (Command) Creates a new block device. If the "id" option
5290       is given at the top level, a BlockBackend will be created; otherwise,
5291       "node-name" is mandatory at the top level and no BlockBackend will be
5292       created.
5293
5294       Arguments: the members of "BlockdevOptions"
5295
5296       Since: 2.9
5297
5298       Example:
5299
5300               1.
5301               -> { "execute": "blockdev-add",
5302                    "arguments": {
5303                         "driver": "qcow2",
5304                         "node-name": "test1",
5305                         "file": {
5306                             "driver": "file",
5307                             "filename": "test.qcow2"
5308                          }
5309                     }
5310                   }
5311               <- { "return": {} }
5312
5313               2.
5314               -> { "execute": "blockdev-add",
5315                    "arguments": {
5316                         "driver": "qcow2",
5317                         "node-name": "node0",
5318                         "discard": "unmap",
5319                         "cache": {
5320                            "direct": true
5321                          },
5322                          "file": {
5323                            "driver": "file",
5324                            "filename": "/tmp/test.qcow2"
5325                          },
5326                          "backing": {
5327                             "driver": "raw",
5328                             "file": {
5329                                "driver": "file",
5330                                "filename": "/dev/fdset/4"
5331                              }
5332                          }
5333                      }
5334                    }
5335
5336               <- { "return": {} }
5337
5338       blockdev-del  (Command) Deletes a block device that has been added
5339       using blockdev-add.  The command will fail if the node is attached to a
5340       device or is otherwise being used.
5341
5342       Arguments:
5343
5344       "node-name: string"
5345           Name of the graph node to delete.
5346
5347       Since: 2.9
5348
5349       Example:
5350
5351               -> { "execute": "blockdev-add",
5352                    "arguments": {
5353                         "driver": "qcow2",
5354                         "node-name": "node0",
5355                         "file": {
5356                             "driver": "file",
5357                             "filename": "test.qcow2"
5358                         }
5359                    }
5360                  }
5361               <- { "return": {} }
5362
5363               -> { "execute": "blockdev-del",
5364                    "arguments": { "node-name": "node0" }
5365                  }
5366               <- { "return": {} }
5367
5368       BlockdevCreateOptionsFile (Object)
5369
5370       Driver specific image creation options for file.
5371
5372       "filename"         Filename for the new image file "size"
5373       Size of the virtual disk in bytes "preallocation"    Preallocation mode
5374       for the new image (default: off) "nocow"            Turn off copy-on-
5375       write (valid only on btrfs; default: off)
5376
5377       Members:
5378
5379       "filename: string"
5380           Not documented
5381
5382       "size: int"
5383           Not documented
5384
5385       "preallocation: PreallocMode" (optional)
5386           Not documented
5387
5388       "nocow: boolean" (optional)
5389           Not documented
5390
5391       Since: 2.12
5392
5393       BlockdevCreateOptionsGluster (Object)
5394
5395       Driver specific image creation options for gluster.
5396
5397       "location"         Where to store the new image file "size"
5398       Size of the virtual disk in bytes "preallocation"    Preallocation mode
5399       for the new image (default: off)
5400
5401       Members:
5402
5403       "location: BlockdevOptionsGluster"
5404           Not documented
5405
5406       "size: int"
5407           Not documented
5408
5409       "preallocation: PreallocMode" (optional)
5410           Not documented
5411
5412       Since: 2.12
5413
5414       BlockdevCreateOptionsLUKS (Object)
5415
5416       Driver specific image creation options for LUKS.
5417
5418       "file"             Node to create the image format on "size"
5419       Size of the virtual disk in bytes
5420
5421       Members:
5422
5423       "file: BlockdevRef"
5424           Not documented
5425
5426       "size: int"
5427           Not documented
5428
5429       The members of "QCryptoBlockCreateOptionsLUKS"
5430
5431       Since: 2.12
5432
5433       BlockdevCreateOptionsNfs (Object)
5434
5435       Driver specific image creation options for NFS.
5436
5437       "location"         Where to store the new image file "size"
5438       Size of the virtual disk in bytes
5439
5440       Members:
5441
5442       "location: BlockdevOptionsNfs"
5443           Not documented
5444
5445       "size: int"
5446           Not documented
5447
5448       Since: 2.12
5449
5450       BlockdevCreateOptionsParallels (Object)
5451
5452       Driver specific image creation options for parallels.
5453
5454       "file"             Node to create the image format on "size"
5455       Size of the virtual disk in bytes "cluster-size"     Cluster size in
5456       bytes (default: 1 MB)
5457
5458       Members:
5459
5460       "file: BlockdevRef"
5461           Not documented
5462
5463       "size: int"
5464           Not documented
5465
5466       "cluster-size: int" (optional)
5467           Not documented
5468
5469       Since: 2.12
5470
5471       BlockdevCreateOptionsQcow (Object)
5472
5473       Driver specific image creation options for qcow.
5474
5475       "file"             Node to create the image format on "size"
5476       Size of the virtual disk in bytes "backing-file"     File name of the
5477       backing file if a backing file should be used "encrypt"
5478       Encryption options if the image should be encrypted
5479
5480       Members:
5481
5482       "file: BlockdevRef"
5483           Not documented
5484
5485       "size: int"
5486           Not documented
5487
5488       "backing-file: string" (optional)
5489           Not documented
5490
5491       "encrypt: QCryptoBlockCreateOptions" (optional)
5492           Not documented
5493
5494       Since: 2.12
5495
5496       BlockdevQcow2Version (Enum)
5497
5498       Values:
5499
5500       "v2"
5501           The original QCOW2 format as introduced in qemu 0.10 (version 2)
5502
5503       "v3"
5504           The extended QCOW2 format as introduced in qemu 1.1 (version 3)
5505
5506       Since: 2.12
5507
5508       BlockdevCreateOptionsQcow2 (Object)
5509
5510       Driver specific image creation options for qcow2.
5511
5512       "file"             Node to create the image format on "size"
5513       Size of the virtual disk in bytes "version"          Compatibility
5514       level (default: v3) "backing-file"     File name of the backing file if
5515       a backing file should be used "backing-fmt"      Name of the block
5516       driver to use for the backing file "encrypt"          Encryption
5517       options if the image should be encrypted "cluster-size"     qcow2
5518       cluster size in bytes (default: 65536) "preallocation"    Preallocation
5519       mode for the new image (default: off) "lazy-refcounts"   True if
5520       refcounts may be updated lazily (default: off) "refcount-bits"    Width
5521       of reference counts in bits (default: 16)
5522
5523       Members:
5524
5525       "file: BlockdevRef"
5526           Not documented
5527
5528       "size: int"
5529           Not documented
5530
5531       "version: BlockdevQcow2Version" (optional)
5532           Not documented
5533
5534       "backing-file: string" (optional)
5535           Not documented
5536
5537       "backing-fmt: BlockdevDriver" (optional)
5538           Not documented
5539
5540       "encrypt: QCryptoBlockCreateOptions" (optional)
5541           Not documented
5542
5543       "cluster-size: int" (optional)
5544           Not documented
5545
5546       "preallocation: PreallocMode" (optional)
5547           Not documented
5548
5549       "lazy-refcounts: boolean" (optional)
5550           Not documented
5551
5552       "refcount-bits: int" (optional)
5553           Not documented
5554
5555       Since: 2.12
5556
5557       BlockdevCreateOptionsQed (Object)
5558
5559       Driver specific image creation options for qed.
5560
5561       "file"             Node to create the image format on "size"
5562       Size of the virtual disk in bytes "backing-file"     File name of the
5563       backing file if a backing file should be used "backing-fmt"      Name
5564       of the block driver to use for the backing file "cluster-size"
5565       Cluster size in bytes (default: 65536) "table-size"       L1/L2 table
5566       size (in clusters)
5567
5568       Members:
5569
5570       "file: BlockdevRef"
5571           Not documented
5572
5573       "size: int"
5574           Not documented
5575
5576       "backing-file: string" (optional)
5577           Not documented
5578
5579       "backing-fmt: BlockdevDriver" (optional)
5580           Not documented
5581
5582       "cluster-size: int" (optional)
5583           Not documented
5584
5585       "table-size: int" (optional)
5586           Not documented
5587
5588       Since: 2.12
5589
5590       BlockdevCreateOptionsRbd (Object)
5591
5592       Driver specific image creation options for rbd/Ceph.
5593
5594       "location"         Where to store the new image file. This location
5595       cannot point to a snapshot.  "size"             Size of the virtual
5596       disk in bytes "cluster-size"     RBD object size
5597
5598       Members:
5599
5600       "location: BlockdevOptionsRbd"
5601           Not documented
5602
5603       "size: int"
5604           Not documented
5605
5606       "cluster-size: int" (optional)
5607           Not documented
5608
5609       Since: 2.12
5610
5611       SheepdogRedundancyType (Enum)
5612
5613       "full"             Create a fully replicated vdi with x copies
5614       "erasure-coded"    Create an erasure coded vdi with x data strips and y
5615       parity strips
5616
5617       Values:
5618
5619       "full"
5620           Not documented
5621
5622       "erasure-coded"
5623           Not documented
5624
5625       Since: 2.12
5626
5627       SheepdogRedundancyFull (Object)
5628
5629       "copies"           Number of copies to use (between 1 and 31)
5630
5631       Members:
5632
5633       "copies: int"
5634           Not documented
5635
5636       Since: 2.12
5637
5638       SheepdogRedundancyErasureCoded (Object)
5639
5640       "data-strips"      Number of data strips to use (one of {2,4,8,16})
5641       "parity-strips"    Number of parity strips to use (between 1 and 15)
5642
5643       Members:
5644
5645       "data-strips: int"
5646           Not documented
5647
5648       "parity-strips: int"
5649           Not documented
5650
5651       Since: 2.12
5652
5653       SheepdogRedundancy (Object)
5654
5655       Members:
5656
5657       "type: SheepdogRedundancyType"
5658           Not documented
5659
5660       The members of "SheepdogRedundancyFull" when "type" is "full"
5661       The members of "SheepdogRedundancyErasureCoded" when "type" is
5662       "erasure-coded"
5663
5664       Since: 2.12
5665
5666       BlockdevCreateOptionsSheepdog (Object)
5667
5668       Driver specific image creation options for Sheepdog.
5669
5670       "location"         Where to store the new image file "size"
5671       Size of the virtual disk in bytes "backing-file"     File name of a
5672       base image "preallocation"    Preallocation mode (allowed values: off,
5673       full) "redundancy"       Redundancy of the image "object-size"
5674       Object size of the image
5675
5676       Members:
5677
5678       "location: BlockdevOptionsSheepdog"
5679           Not documented
5680
5681       "size: int"
5682           Not documented
5683
5684       "backing-file: string" (optional)
5685           Not documented
5686
5687       "preallocation: PreallocMode" (optional)
5688           Not documented
5689
5690       "redundancy: SheepdogRedundancy" (optional)
5691           Not documented
5692
5693       "object-size: int" (optional)
5694           Not documented
5695
5696       Since: 2.12
5697
5698       BlockdevCreateOptionsSsh (Object)
5699
5700       Driver specific image creation options for SSH.
5701
5702       "location"         Where to store the new image file "size"
5703       Size of the virtual disk in bytes
5704
5705       Members:
5706
5707       "location: BlockdevOptionsSsh"
5708           Not documented
5709
5710       "size: int"
5711           Not documented
5712
5713       Since: 2.12
5714
5715       BlockdevCreateOptionsVdi (Object)
5716
5717       Driver specific image creation options for VDI.
5718
5719       "file"             Node to create the image format on "size"
5720       Size of the virtual disk in bytes "preallocation"    Preallocation mode
5721       for the new image (allowed values: off, metadata; default: off)
5722
5723       Members:
5724
5725       "file: BlockdevRef"
5726           Not documented
5727
5728       "size: int"
5729           Not documented
5730
5731       "preallocation: PreallocMode" (optional)
5732           Not documented
5733
5734       Since: 2.12
5735
5736       BlockdevVhdxSubformat (Enum)
5737
5738       Values:
5739
5740       "dynamic"
5741           Growing image file
5742
5743       "fixed"
5744           Preallocated fixed-size image file
5745
5746       Since: 2.12
5747
5748       BlockdevCreateOptionsVhdx (Object)
5749
5750       Driver specific image creation options for vhdx.
5751
5752       "file"             Node to create the image format on "size"
5753       Size of the virtual disk in bytes "log-size"         Log size in bytes,
5754       must be a multiple of 1 MB (default: 1 MB) "block-size"       Block
5755       size in bytes, must be a multiple of 1 MB and not larger than 256 MB
5756       (default: automatically choose a block size depending on the image
5757       size) "subformat"        vhdx subformat (default: dynamic)
5758       "block-state-zero" Force use of payload blocks of type 'ZERO'. Non-
5759       standard, but default.  Do not set to 'off' when using 'qemu-img
5760       convert' with subformat=dynamic.
5761
5762       Members:
5763
5764       "file: BlockdevRef"
5765           Not documented
5766
5767       "size: int"
5768           Not documented
5769
5770       "log-size: int" (optional)
5771           Not documented
5772
5773       "block-size: int" (optional)
5774           Not documented
5775
5776       "subformat: BlockdevVhdxSubformat" (optional)
5777           Not documented
5778
5779       "block-state-zero: boolean" (optional)
5780           Not documented
5781
5782       Since: 2.12
5783
5784       BlockdevVpcSubformat (Enum)
5785
5786       Values:
5787
5788       "dynamic"
5789           Growing image file
5790
5791       "fixed"
5792           Preallocated fixed-size image file
5793
5794       Since: 2.12
5795
5796       BlockdevCreateOptionsVpc (Object)
5797
5798       Driver specific image creation options for vpc (VHD).
5799
5800       "file"             Node to create the image format on "size"
5801       Size of the virtual disk in bytes "subformat"        vhdx subformat
5802       (default: dynamic) "force-size"       Force use of the exact byte size
5803       instead of rounding to the next size that can be represented in CHS
5804       geometry (default: false)
5805
5806       Members:
5807
5808       "file: BlockdevRef"
5809           Not documented
5810
5811       "size: int"
5812           Not documented
5813
5814       "subformat: BlockdevVpcSubformat" (optional)
5815           Not documented
5816
5817       "force-size: boolean" (optional)
5818           Not documented
5819
5820       Since: 2.12
5821
5822       BlockdevCreateOptions (Object)
5823
5824       Options for creating an image format on a given node.
5825
5826       "driver"           block driver to create the image format
5827
5828       Members:
5829
5830       "driver: BlockdevDriver"
5831           Not documented
5832
5833       The members of "BlockdevCreateOptionsFile" when "driver" is "file"
5834       The members of "BlockdevCreateOptionsGluster" when "driver" is
5835       "gluster"
5836       The members of "BlockdevCreateOptionsLUKS" when "driver" is "luks"
5837       The members of "BlockdevCreateOptionsNfs" when "driver" is "nfs"
5838       The members of "BlockdevCreateOptionsParallels" when "driver" is
5839       "parallels"
5840       The members of "BlockdevCreateOptionsQcow" when "driver" is "qcow"
5841       The members of "BlockdevCreateOptionsQcow2" when "driver" is "qcow2"
5842       The members of "BlockdevCreateOptionsQed" when "driver" is "qed"
5843       The members of "BlockdevCreateOptionsRbd" when "driver" is "rbd"
5844       The members of "BlockdevCreateOptionsSheepdog" when "driver" is
5845       "sheepdog"
5846       The members of "BlockdevCreateOptionsSsh" when "driver" is "ssh"
5847       The members of "BlockdevCreateOptionsVdi" when "driver" is "vdi"
5848       The members of "BlockdevCreateOptionsVhdx" when "driver" is "vhdx"
5849       The members of "BlockdevCreateOptionsVpc" when "driver" is "vpc"
5850
5851       Since: 2.12
5852
5853       blockdev-create  (Command) Starts a job to create an image format on a
5854       given node. The job is automatically finalized, but a manual job-
5855       dismiss is required.
5856
5857       Arguments:
5858
5859       "job-id: string"
5860           Identifier for the newly created job.
5861
5862       "options: BlockdevCreateOptions"
5863           Options for the image creation.
5864
5865       Since: 3.0
5866
5867       blockdev-open-tray  (Command) Opens a block device's tray. If there is
5868       a block driver state tree inserted as a medium, it will become
5869       inaccessible to the guest (but it will remain associated to the block
5870       device, so closing the tray will make it accessible again).
5871
5872       If the tray was already open before, this will be a no-op.
5873
5874       Once the tray opens, a DEVICE_TRAY_MOVED event is emitted. There are
5875       cases in which no such event will be generated, these include:
5876
5877       -   if the guest has locked the tray, "force" is false and the guest
5878           does not respond to the eject request
5879
5880       -   if the BlockBackend denoted by "device" does not have a guest
5881           device attached to it
5882
5883       -   if the guest device does not have an actual tray
5884
5885       Arguments:
5886
5887       "device: string" (optional)
5888           Block device name (deprecated, use "id" instead)
5889
5890       "id: string" (optional)
5891           The name or QOM path of the guest device (since: 2.8)
5892
5893       "force: boolean" (optional)
5894           if false (the default), an eject request will be sent to the guest
5895           if it has locked the tray (and the tray will not be opened
5896           immediately); if true, the tray will be opened regardless of
5897           whether it is locked
5898
5899       Since: 2.5
5900
5901       Example:
5902
5903               -> { "execute": "blockdev-open-tray",
5904                    "arguments": { "id": "ide0-1-0" } }
5905
5906               <- { "timestamp": { "seconds": 1418751016,
5907                                   "microseconds": 716996 },
5908                    "event": "DEVICE_TRAY_MOVED",
5909                    "data": { "device": "ide1-cd0",
5910                              "id": "ide0-1-0",
5911                              "tray-open": true } }
5912
5913               <- { "return": {} }
5914
5915       blockdev-close-tray  (Command) Closes a block device's tray. If there
5916       is a block driver state tree associated with the block device (which is
5917       currently ejected), that tree will be loaded as the medium.
5918
5919       If the tray was already closed before, this will be a no-op.
5920
5921       Arguments:
5922
5923       "device: string" (optional)
5924           Block device name (deprecated, use "id" instead)
5925
5926       "id: string" (optional)
5927           The name or QOM path of the guest device (since: 2.8)
5928
5929       Since: 2.5
5930
5931       Example:
5932
5933               -> { "execute": "blockdev-close-tray",
5934                    "arguments": { "id": "ide0-1-0" } }
5935
5936               <- { "timestamp": { "seconds": 1418751345,
5937                                   "microseconds": 272147 },
5938                    "event": "DEVICE_TRAY_MOVED",
5939                    "data": { "device": "ide1-cd0",
5940                              "id": "ide0-1-0",
5941                              "tray-open": false } }
5942
5943               <- { "return": {} }
5944
5945       blockdev-remove-medium  (Command) Removes a medium (a block driver
5946       state tree) from a block device. That block device's tray must
5947       currently be open (unless there is no attached guest device).
5948
5949       If the tray is open and there is no medium inserted, this will be a no-
5950       op.
5951
5952       Arguments:
5953
5954       "id: string"
5955           The name or QOM path of the guest device
5956
5957       Since: 2.12
5958
5959       Example:
5960
5961               -> { "execute": "blockdev-remove-medium",
5962                    "arguments": { "id": "ide0-1-0" } }
5963
5964               <- { "error": { "class": "GenericError",
5965                               "desc": "Tray of device 'ide0-1-0' is not open" } }
5966
5967               -> { "execute": "blockdev-open-tray",
5968                    "arguments": { "id": "ide0-1-0" } }
5969
5970               <- { "timestamp": { "seconds": 1418751627,
5971                                   "microseconds": 549958 },
5972                    "event": "DEVICE_TRAY_MOVED",
5973                    "data": { "device": "ide1-cd0",
5974                              "id": "ide0-1-0",
5975                              "tray-open": true } }
5976
5977               <- { "return": {} }
5978
5979               -> { "execute": "blockdev-remove-medium",
5980                    "arguments": { "id": "ide0-1-0" } }
5981
5982               <- { "return": {} }
5983
5984       blockdev-insert-medium  (Command) Inserts a medium (a block driver
5985       state tree) into a block device. That block device's tray must
5986       currently be open (unless there is no attached guest device) and there
5987       must be no medium inserted already.
5988
5989       Arguments:
5990
5991       "id: string"
5992           The name or QOM path of the guest device
5993
5994       "node-name: string"
5995           name of a node in the block driver state graph
5996
5997       Since: 2.12
5998
5999       Example:
6000
6001               -> { "execute": "blockdev-add",
6002                    "arguments": {
6003                        "node-name": "node0",
6004                        "driver": "raw",
6005                        "file": { "driver": "file",
6006                                  "filename": "fedora.iso" } } }
6007               <- { "return": {} }
6008
6009               -> { "execute": "blockdev-insert-medium",
6010                    "arguments": { "id": "ide0-1-0",
6011                                   "node-name": "node0" } }
6012
6013               <- { "return": {} }
6014
6015       BlockdevChangeReadOnlyMode (Enum)
6016
6017       Specifies the new read-only mode of a block device subject to the
6018       "blockdev-change-medium" command.
6019
6020       Values:
6021
6022       "retain"
6023           Retains the current read-only mode
6024
6025       "read-only"
6026           Makes the device read-only
6027
6028       "read-write"
6029           Makes the device writable
6030
6031       Since: 2.3
6032
6033       blockdev-change-medium  (Command) Changes the medium inserted into a
6034       block device by ejecting the current medium and loading a new image
6035       file which is inserted as the new medium (this command combines
6036       blockdev-open-tray, blockdev-remove-medium, blockdev-insert-medium and
6037       blockdev-close-tray).
6038
6039       Arguments:
6040
6041       "device: string" (optional)
6042           Block device name (deprecated, use "id" instead)
6043
6044       "id: string" (optional)
6045           The name or QOM path of the guest device (since: 2.8)
6046
6047       "filename: string"
6048           filename of the new image to be loaded
6049
6050       "format: string" (optional)
6051           format to open the new image with (defaults to the probed format)
6052
6053       "read-only-mode: BlockdevChangeReadOnlyMode" (optional)
6054           change the read-only mode of the device; defaults to 'retain'
6055
6056       Since: 2.5
6057
6058       Examples:
6059
6060               1. Change a removable medium
6061
6062               -> { "execute": "blockdev-change-medium",
6063                    "arguments": { "id": "ide0-1-0",
6064                                   "filename": "/srv/images/Fedora-12-x86_64-DVD.iso",
6065                                   "format": "raw" } }
6066               <- { "return": {} }
6067
6068               2. Load a read-only medium into a writable drive
6069
6070               -> { "execute": "blockdev-change-medium",
6071                    "arguments": { "id": "floppyA",
6072                                   "filename": "/srv/images/ro.img",
6073                                   "format": "raw",
6074                                   "read-only-mode": "retain" } }
6075
6076               <- { "error":
6077                    { "class": "GenericError",
6078                      "desc": "Could not open '/srv/images/ro.img': Permission denied" } }
6079
6080               -> { "execute": "blockdev-change-medium",
6081                    "arguments": { "id": "floppyA",
6082                                   "filename": "/srv/images/ro.img",
6083                                   "format": "raw",
6084                                   "read-only-mode": "read-only" } }
6085
6086               <- { "return": {} }
6087
6088       BlockErrorAction (Enum)
6089
6090       An enumeration of action that has been taken when a DISK I/O occurs
6091
6092       Values:
6093
6094       "ignore"
6095           error has been ignored
6096
6097       "report"
6098           error has been reported to the device
6099
6100       "stop"
6101           error caused VM to be stopped
6102
6103       Since: 2.1
6104
6105       BLOCK_IMAGE_CORRUPTED  (Event) Emitted when a disk image is being
6106       marked corrupt. The image can be identified by its device or node name.
6107       The 'device' field is always present for compatibility reasons, but it
6108       can be empty ("") if the image does not have a device name associated.
6109
6110       Arguments:
6111
6112       "device: string"
6113           device name. This is always present for compatibility reasons, but
6114           it can be empty ("") if the image does not have a device name
6115           associated.
6116
6117       "node-name: string" (optional)
6118           node name (Since: 2.4)
6119
6120       "msg: string"
6121           informative message for human consumption, such as the kind of
6122           corruption being detected. It should not be parsed by machine as it
6123           is not guaranteed to be stable
6124
6125       "offset: int" (optional)
6126           if the corruption resulted from an image access, this is the host's
6127           access offset into the image
6128
6129       "size: int" (optional)
6130           if the corruption resulted from an image access, this is the access
6131           size
6132
6133       "fatal: boolean"
6134           if set, the image is marked corrupt and therefore unusable after
6135           this event and must be repaired (Since 2.2; before, every
6136           BLOCK_IMAGE_CORRUPTED event was fatal)
6137
6138       Note: If action is "stop", a STOP event will eventually follow the
6139       BLOCK_IO_ERROR event.
6140
6141       Example:
6142
6143               <- { "event": "BLOCK_IMAGE_CORRUPTED",
6144                    "data": { "device": "ide0-hd0", "node-name": "node0",
6145                              "msg": "Prevented active L1 table overwrite", "offset": 196608,
6146                              "size": 65536 },
6147                    "timestamp": { "seconds": 1378126126, "microseconds": 966463 } }
6148
6149       Since: 1.7
6150
6151       BLOCK_IO_ERROR  (Event) Emitted when a disk I/O error occurs
6152
6153       Arguments:
6154
6155       "device: string"
6156           device name. This is always present for compatibility reasons, but
6157           it can be empty ("") if the image does not have a device name
6158           associated.
6159
6160       "node-name: string" (optional)
6161           node name. Note that errors may be reported for the root node that
6162           is directly attached to a guest device rather than for the node
6163           where the error occurred. The node name is not present if the drive
6164           is empty. (Since: 2.8)
6165
6166       "operation: IoOperationType"
6167           I/O operation
6168
6169       "action: BlockErrorAction"
6170           action that has been taken
6171
6172       "nospace: boolean" (optional)
6173           true if I/O error was caused due to a no-space condition. This key
6174           is only present if query-block's io-status is present, please see
6175           query-block documentation for more information (since: 2.2)
6176
6177       "reason: string"
6178           human readable string describing the error cause.  (This field is a
6179           debugging aid for humans, it should not be parsed by applications)
6180           (since: 2.2)
6181
6182       Note: If action is "stop", a STOP event will eventually follow the
6183       BLOCK_IO_ERROR event
6184
6185       Since: 0.13.0
6186
6187       Example:
6188
6189               <- { "event": "BLOCK_IO_ERROR",
6190                    "data": { "device": "ide0-hd1",
6191                              "node-name": "#block212",
6192                              "operation": "write",
6193                              "action": "stop" },
6194                    "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
6195
6196       BLOCK_JOB_COMPLETED  (Event) Emitted when a block job has completed
6197
6198       Arguments:
6199
6200       "type: JobType"
6201           job type
6202
6203       "device: string"
6204           The job identifier. Originally the device name but other values are
6205           allowed since QEMU 2.7
6206
6207       "len: int"
6208           maximum progress value
6209
6210       "offset: int"
6211           current progress value. On success this is equal to len.  On
6212           failure this is less than len
6213
6214       "speed: int"
6215           rate limit, bytes per second
6216
6217       "error: string" (optional)
6218           error message. Only present on failure. This field contains a
6219           human-readable error message. There are no semantics other than
6220           that streaming has failed and clients should not try to interpret
6221           the error string
6222
6223       Since: 1.1
6224
6225       Example:
6226
6227               <- { "event": "BLOCK_JOB_COMPLETED",
6228                    "data": { "type": "stream", "device": "virtio-disk0",
6229                              "len": 10737418240, "offset": 10737418240,
6230                              "speed": 0 },
6231                    "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
6232
6233       BLOCK_JOB_CANCELLED  (Event) Emitted when a block job has been
6234       cancelled
6235
6236       Arguments:
6237
6238       "type: JobType"
6239           job type
6240
6241       "device: string"
6242           The job identifier. Originally the device name but other values are
6243           allowed since QEMU 2.7
6244
6245       "len: int"
6246           maximum progress value
6247
6248       "offset: int"
6249           current progress value. On success this is equal to len.  On
6250           failure this is less than len
6251
6252       "speed: int"
6253           rate limit, bytes per second
6254
6255       Since: 1.1
6256
6257       Example:
6258
6259               <- { "event": "BLOCK_JOB_CANCELLED",
6260                    "data": { "type": "stream", "device": "virtio-disk0",
6261                              "len": 10737418240, "offset": 134217728,
6262                              "speed": 0 },
6263                    "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
6264
6265       BLOCK_JOB_ERROR  (Event) Emitted when a block job encounters an error
6266
6267       Arguments:
6268
6269       "device: string"
6270           The job identifier. Originally the device name but other values are
6271           allowed since QEMU 2.7
6272
6273       "operation: IoOperationType"
6274           I/O operation
6275
6276       "action: BlockErrorAction"
6277           action that has been taken
6278
6279       Since: 1.3
6280
6281       Example:
6282
6283               <- { "event": "BLOCK_JOB_ERROR",
6284                    "data": { "device": "ide0-hd1",
6285                              "operation": "write",
6286                              "action": "stop" },
6287                    "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
6288
6289       BLOCK_JOB_READY  (Event) Emitted when a block job is ready to complete
6290
6291       Arguments:
6292
6293       "type: JobType"
6294           job type
6295
6296       "device: string"
6297           The job identifier. Originally the device name but other values are
6298           allowed since QEMU 2.7
6299
6300       "len: int"
6301           maximum progress value
6302
6303       "offset: int"
6304           current progress value. On success this is equal to len.  On
6305           failure this is less than len
6306
6307       "speed: int"
6308           rate limit, bytes per second
6309
6310       Note: The "ready to complete" status is always reset by a
6311       "BLOCK_JOB_ERROR" event
6312
6313       Since: 1.3
6314
6315       Example:
6316
6317               <- { "event": "BLOCK_JOB_READY",
6318                    "data": { "device": "drive0", "type": "mirror", "speed": 0,
6319                              "len": 2097152, "offset": 2097152 }
6320                    "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
6321
6322       BLOCK_JOB_PENDING  (Event) Emitted when a block job is awaiting
6323       explicit authorization to finalize graph changes via
6324       "block-job-finalize". If this job is part of a transaction, it will not
6325       emit this event until the transaction has converged first.
6326
6327       Arguments:
6328
6329       "type: JobType"
6330           job type
6331
6332       "id: string"
6333           The job identifier.
6334
6335       Since: 2.12
6336
6337       Example:
6338
6339               <- { "event": "BLOCK_JOB_WAITING",
6340                    "data": { "device": "drive0", "type": "mirror" },
6341                    "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
6342
6343       PreallocMode (Enum)
6344
6345       Preallocation mode of QEMU image file
6346
6347       Values:
6348
6349       "off"
6350           no preallocation
6351
6352       "metadata"
6353           preallocate only for metadata
6354
6355       "falloc"
6356           like "full" preallocation but allocate disk space by
6357           posix_fallocate() rather than writing zeros.
6358
6359       "full"
6360           preallocate all data by writing zeros to device to ensure disk
6361           space is really available. "full" preallocation also sets up
6362           metadata correctly.
6363
6364       Since: 2.2
6365
6366       BLOCK_WRITE_THRESHOLD  (Event) Emitted when writes on block device
6367       reaches or exceeds the configured write threshold. For thin-provisioned
6368       devices, this means the device should be extended to avoid pausing for
6369       disk exhaustion.  The event is one shot. Once triggered, it needs to be
6370       re-registered with another block-set-write-threshold command.
6371
6372       Arguments:
6373
6374       "node-name: string"
6375           graph node name on which the threshold was exceeded.
6376
6377       "amount-exceeded: int"
6378           amount of data which exceeded the threshold, in bytes.
6379
6380       "write-threshold: int"
6381           last configured threshold, in bytes.
6382
6383       Since: 2.3
6384
6385       block-set-write-threshold  (Command) Change the write threshold for a
6386       block drive. An event will be delivered if a write to this block drive
6387       crosses the configured threshold.  The threshold is an offset, thus
6388       must be non-negative. Default is no write threshold. Setting the
6389       threshold to zero disables it.
6390
6391       This is useful to transparently resize thin-provisioned drives without
6392       the guest OS noticing.
6393
6394       Arguments:
6395
6396       "node-name: string"
6397           graph node name on which the threshold must be set.
6398
6399       "write-threshold: int"
6400           configured threshold for the block device, bytes.  Use 0 to disable
6401           the threshold.
6402
6403       Since: 2.3
6404
6405       Example:
6406
6407               -> { "execute": "block-set-write-threshold",
6408                    "arguments": { "node-name": "mydev",
6409                                   "write-threshold": 17179869184 } }
6410               <- { "return": {} }
6411
6412       x-blockdev-change  (Command) Dynamically reconfigure the block driver
6413       state graph. It can be used to add, remove, insert or replace a graph
6414       node. Currently only the Quorum driver implements this feature to add
6415       or remove its child. This is useful to fix a broken quorum child.
6416
6417       If "node" is specified, it will be inserted under "parent". "child" may
6418       not be specified in this case. If both "parent" and "child" are
6419       specified but "node" is not, "child" will be detached from "parent".
6420
6421       Arguments:
6422
6423       "parent: string"
6424           the id or name of the parent node.
6425
6426       "child: string" (optional)
6427           the name of a child under the given parent node.
6428
6429       "node: string" (optional)
6430           the name of the node that will be added.
6431
6432       Note: this command is experimental, and its API is not stable. It does
6433       not support all kinds of operations, all kinds of children, nor all
6434       block drivers.
6435
6436       FIXME Removing children from a quorum node means introducing gaps in
6437       the child indices. This cannot be represented in the 'children' list of
6438       BlockdevOptionsQuorum, as returned by .bdrv_refresh_filename().
6439
6440       Warning: The data in a new quorum child MUST be consistent with that of
6441       the rest of the array.
6442
6443       Since: 2.7
6444
6445       Example:
6446
6447               1. Add a new node to a quorum
6448               -> { "execute": "blockdev-add",
6449                    "arguments": {
6450                        "driver": "raw",
6451                        "node-name": "new_node",
6452                        "file": { "driver": "file",
6453                                  "filename": "test.raw" } } }
6454               <- { "return": {} }
6455               -> { "execute": "x-blockdev-change",
6456                    "arguments": { "parent": "disk1",
6457                                   "node": "new_node" } }
6458               <- { "return": {} }
6459
6460               2. Delete a quorum's node
6461               -> { "execute": "x-blockdev-change",
6462                    "arguments": { "parent": "disk1",
6463                                   "child": "children.1" } }
6464               <- { "return": {} }
6465
6466       x-blockdev-set-iothread  (Command) Move "node" and its children into
6467       the "iothread".  If "iothread" is null then move "node" and its
6468       children into the main loop.
6469
6470       The node must not be attached to a BlockBackend.
6471
6472       Arguments:
6473
6474       "node-name: string"
6475           the name of the block driver node
6476
6477       "iothread: StrOrNull"
6478           the name of the IOThread object or null for the main loop
6479
6480       "force: boolean" (optional)
6481           true if the node and its children should be moved when a
6482           BlockBackend is already attached
6483
6484       Note: this command is experimental and intended for test cases that
6485       need control over IOThreads only.
6486
6487       Since: 2.12
6488
6489       Example:
6490
6491               1. Move a node into an IOThread
6492               -> { "execute": "x-blockdev-set-iothread",
6493                    "arguments": { "node-name": "disk1",
6494                                   "iothread": "iothread0" } }
6495               <- { "return": {} }
6496
6497               2. Move a node into the main loop
6498               -> { "execute": "x-blockdev-set-iothread",
6499                    "arguments": { "node-name": "disk1",
6500                                   "iothread": null } }
6501               <- { "return": {} }
6502
6503       Additional block stuff (VM related)
6504
6505       BiosAtaTranslation (Enum)
6506
6507       Policy that BIOS should use to interpret cylinder/head/sector
6508       addresses.  Note that Bochs BIOS and SeaBIOS will not actually
6509       translate logical CHS to physical; instead, they will use logical block
6510       addressing.
6511
6512       Values:
6513
6514       "auto"
6515           If cylinder/heads/sizes are passed, choose between none and LBA
6516           depending on the size of the disk.  If they are not passed, choose
6517           none if QEMU can guess that the disk had 16 or fewer heads, large
6518           if QEMU can guess that the disk had 131072 or fewer tracks across
6519           all heads (i.e. cylinders*heads<131072), otherwise LBA.
6520
6521       "none"
6522           The physical disk geometry is equal to the logical geometry.
6523
6524       "lba"
6525           Assume 63 sectors per track and one of 16, 32, 64, 128 or 255 heads
6526           (if fewer than 255 are enough to cover the whole disk with 1024
6527           cylinders/head).  The number of cylinders/head is then computed
6528           based on the number of sectors and heads.
6529
6530       "large"
6531           The number of cylinders per head is scaled down to 1024 by
6532           correspondingly scaling up the number of heads.
6533
6534       "rechs"
6535           Same as "large", but first convert a 16-head geometry to 15-head,
6536           by proportionally scaling up the number of cylinders/head.
6537
6538       Since: 2.0
6539
6540       FloppyDriveType (Enum)
6541
6542       Type of Floppy drive to be emulated by the Floppy Disk Controller.
6543
6544       Values:
6545
6546       144 1.44MB 3.5" drive
6547
6548       288 2.88MB 3.5" drive
6549
6550       120 1.2MB 5.25" drive
6551
6552       "none"
6553           No drive connected
6554
6555       "auto"
6556           Automatically determined by inserted media at boot
6557
6558       Since: 2.6
6559
6560       BlockdevSnapshotInternal (Object)
6561
6562       Members:
6563
6564       "device: string"
6565           the device name or node-name of a root node to generate the
6566           snapshot from
6567
6568       "name: string"
6569           the name of the internal snapshot to be created
6570
6571       Notes: In transaction, if "name" is empty, or any snapshot matching
6572       "name" exists, the operation will fail. Only some image formats support
6573       it, for example, qcow2, rbd, and sheepdog.
6574
6575       Since: 1.7
6576
6577       PRManagerInfo (Object)
6578
6579       Information about a persistent reservation manager
6580
6581       Members:
6582
6583       "id: string"
6584           the identifier of the persistent reservation manager
6585
6586       "connected: boolean"
6587           true if the persistent reservation manager is connected to the
6588           underlying storage or helper
6589
6590       Since: 3.0
6591
6592       query-pr-managers  (Command) Returns a list of information about each
6593       persistent reservation manager.
6594
6595       Returns: a list of "PRManagerInfo" for each persistent reservation
6596       manager
6597
6598       Since: 3.0
6599
6600       blockdev-snapshot-internal-sync  (Command) Synchronously take an
6601       internal snapshot of a block device, when the format of the image used
6602       supports it. If the name is an empty string, or a snapshot with name
6603       already exists, the operation will fail.
6604
6605       For the arguments, see the documentation of BlockdevSnapshotInternal.
6606
6607       Returns: nothing on success
6608
6609       If "device" is not a valid block device, GenericError
6610
6611       If any snapshot matching "name" exists, or "name" is empty,
6612       GenericError
6613
6614       If the format of the image used does not support it,
6615       BlockFormatFeatureNotSupported
6616
6617       Since: 1.7
6618
6619       Example:
6620
6621               -> { "execute": "blockdev-snapshot-internal-sync",
6622                    "arguments": { "device": "ide-hd0",
6623                                   "name": "snapshot0" }
6624                  }
6625               <- { "return": {} }
6626
6627       blockdev-snapshot-delete-internal-sync  (Command) Synchronously delete
6628       an internal snapshot of a block device, when the format of the image
6629       used support it. The snapshot is identified by name or id or both. One
6630       of the name or id is required. Return SnapshotInfo for the successfully
6631       deleted snapshot.
6632
6633       Arguments:
6634
6635       "device: string"
6636           the device name or node-name of a root node to delete the snapshot
6637           from
6638
6639       "id: string" (optional)
6640           optional the snapshot's ID to be deleted
6641
6642       "name: string" (optional)
6643           optional the snapshot's name to be deleted
6644
6645       Returns: SnapshotInfo on success If "device" is not a valid block
6646       device, GenericError If snapshot not found, GenericError If the format
6647       of the image used does not support it, BlockFormatFeatureNotSupported
6648       If "id" and "name" are both not specified, GenericError
6649
6650       Since: 1.7
6651
6652       Example:
6653
6654               -> { "execute": "blockdev-snapshot-delete-internal-sync",
6655                    "arguments": { "device": "ide-hd0",
6656                                   "name": "snapshot0" }
6657                  }
6658               <- { "return": {
6659                                  "id": "1",
6660                                  "name": "snapshot0",
6661                                  "vm-state-size": 0,
6662                                  "date-sec": 1000012,
6663                                  "date-nsec": 10,
6664                                  "vm-clock-sec": 100,
6665                                  "vm-clock-nsec": 20
6666                    }
6667                  }
6668
6669       eject  (Command) Ejects a device from a removable drive.
6670
6671       Arguments:
6672
6673       "device: string" (optional)
6674           Block device name (deprecated, use "id" instead)
6675
6676       "id: string" (optional)
6677           The name or QOM path of the guest device (since: 2.8)
6678
6679       "force: boolean" (optional)
6680           If true, eject regardless of whether the drive is locked.  If not
6681           specified, the default value is false.
6682
6683       Returns: Nothing on success
6684
6685       If "device" is not a valid block device, DeviceNotFound
6686
6687       Notes: Ejecting a device with no media results in success
6688
6689       Since: 0.14.0
6690
6691       Example:
6692
6693               -> { "execute": "eject", "arguments": { "id": "ide1-0-1" } }
6694               <- { "return": {} }
6695
6696       nbd-server-start  (Command) Start an NBD server listening on the given
6697       host and port.  Block devices can then be exported using
6698       "nbd-server-add".  The NBD server will present them as named exports;
6699       for example, another QEMU instance could refer to them as
6700       "nbd:HOST:PORT:exportname=NAME".
6701
6702       Arguments:
6703
6704       "addr: SocketAddressLegacy"
6705           Address on which to listen.
6706
6707       "tls-creds: string" (optional)
6708           (optional) ID of the TLS credentials object. Since 2.6
6709
6710       Returns: error if the server is already running.
6711
6712       Since: 1.3.0
6713
6714       nbd-server-add  (Command) Export a block node to QEMU's embedded NBD
6715       server.
6716
6717       Arguments:
6718
6719       "device: string"
6720           The device name or node name of the node to be exported
6721
6722       "name: string" (optional)
6723           Export name. If unspecified, the "device" parameter is used as the
6724           export name. (Since 2.12)
6725
6726       "writable: boolean" (optional)
6727           Whether clients should be able to write to the device via the NBD
6728           connection (default false).
6729
6730       Returns: error if the server is not running, or export with the same
6731       name already exists.
6732
6733       Since: 1.3.0
6734
6735       NbdServerRemoveMode (Enum)
6736
6737       Mode for removing an NBD export.
6738
6739       Values:
6740
6741       "safe"
6742           Remove export if there are no existing connections, fail otherwise.
6743
6744       "hard"
6745           Drop all connections immediately and remove export.
6746
6747       Potential additional modes to be added in the future:
6748
6749       hide: Just hide export from new clients, leave existing connections as
6750       is.  Remove export after all clients are disconnected.
6751
6752       soft: Hide export from new clients, answer with ESHUTDOWN for all
6753       further requests from existing clients.
6754
6755       Since: 2.12
6756
6757       nbd-server-remove  (Command) Remove NBD export by name.
6758
6759       Arguments:
6760
6761       "name: string"
6762           Export name.
6763
6764       "mode: NbdServerRemoveMode" (optional)
6765           Mode of command operation. See "NbdServerRemoveMode" description.
6766           Default is 'safe'.
6767
6768       Returns: error if
6769
6770       -   the server is not running
6771
6772       -   export is not found
6773
6774       -   mode is 'safe' and there are existing connections
6775
6776       Since: 2.12
6777
6778       x-nbd-server-add-bitmap  (Command) Expose a dirty bitmap associated
6779       with the selected export. The bitmap search starts at the device
6780       attached to the export, and includes all backing files.  The exported
6781       bitmap is then locked until the NBD export is removed.
6782
6783       Arguments:
6784
6785       "name: string"
6786           Export name.
6787
6788       "bitmap: string"
6789           Bitmap name to search for.
6790
6791       "bitmap-export-name: string" (optional)
6792           How the bitmap will be seen by nbd clients (default "bitmap")
6793
6794       Note: the client must use NBD_OPT_SET_META_CONTEXT with a query of
6795       "qemu:dirty-bitmap:NAME" (where NAME matches "bitmap-export-name") to
6796       access the exposed bitmap.
6797
6798       Since: 3.0
6799
6800       nbd-server-stop  (Command) Stop QEMU's embedded NBD server, and
6801       unregister all devices previously added via "nbd-server-add".
6802
6803       Since: 1.3.0
6804
6805       DEVICE_TRAY_MOVED  (Event) Emitted whenever the tray of a removable
6806       device is moved by the guest or by HMP/QMP commands
6807
6808       Arguments:
6809
6810       "device: string"
6811           Block device name. This is always present for compatibility
6812           reasons, but it can be empty ("") if the image does not have a
6813           device name associated.
6814
6815       "id: string"
6816           The name or QOM path of the guest device (since 2.8)
6817
6818       "tray-open: boolean"
6819           true if the tray has been opened or false if it has been closed
6820
6821       Since: 1.1
6822
6823       Example:
6824
6825               <- { "event": "DEVICE_TRAY_MOVED",
6826                    "data": { "device": "ide1-cd0",
6827                              "id": "/machine/unattached/device[22]",
6828                              "tray-open": true
6829                    },
6830                    "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
6831
6832       PR_MANAGER_STATUS_CHANGED  (Event) Emitted whenever the connected
6833       status of a persistent reservation manager changes.
6834
6835       Arguments:
6836
6837       "id: string"
6838           The id of the PR manager object
6839
6840       "connected: boolean"
6841           true if the PR manager is connected to a backend
6842
6843       Since: 3.0
6844
6845       Example:
6846
6847               <- { "event": "PR_MANAGER_STATUS_CHANGED",
6848                    "data": { "id": "pr-helper0",
6849                              "connected": true
6850                    },
6851                    "timestamp": { "seconds": 1519840375, "microseconds": 450486 } }
6852
6853       QuorumOpType (Enum)
6854
6855       An enumeration of the quorum operation types
6856
6857       Values:
6858
6859       "read"
6860           read operation
6861
6862       "write"
6863           write operation
6864
6865       "flush"
6866           flush operation
6867
6868       Since: 2.6
6869
6870       QUORUM_FAILURE  (Event) Emitted by the Quorum block driver if it fails
6871       to establish a quorum
6872
6873       Arguments:
6874
6875       "reference: string"
6876           device name if defined else node name
6877
6878       "sector-num: int"
6879           number of the first sector of the failed read operation
6880
6881       "sectors-count: int"
6882           failed read operation sector count
6883
6884       Note: This event is rate-limited.
6885
6886       Since: 2.0
6887
6888       Example:
6889
6890               <- { "event": "QUORUM_FAILURE",
6891                    "data": { "reference": "usr1", "sector-num": 345435, "sectors-count": 5 },
6892                    "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
6893
6894       QUORUM_REPORT_BAD  (Event) Emitted to report a corruption of a Quorum
6895       file
6896
6897       Arguments:
6898
6899       "type: QuorumOpType"
6900           quorum operation type (Since 2.6)
6901
6902       "error: string" (optional)
6903           error message. Only present on failure. This field contains a
6904           human-readable error message. There are no semantics other than
6905           that the block layer reported an error and clients should not try
6906           to interpret the error string.
6907
6908       "node-name: string"
6909           the graph node name of the block driver state
6910
6911       "sector-num: int"
6912           number of the first sector of the failed read operation
6913
6914       "sectors-count: int"
6915           failed read operation sector count
6916
6917       Note: This event is rate-limited.
6918
6919       Since: 2.0
6920
6921       Example:
6922
6923               1. Read operation
6924
6925               { "event": "QUORUM_REPORT_BAD",
6926                    "data": { "node-name": "node0", "sector-num": 345435, "sectors-count": 5,
6927                              "type": "read" },
6928                    "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
6929
6930               2. Flush operation
6931
6932               { "event": "QUORUM_REPORT_BAD",
6933                    "data": { "node-name": "node0", "sector-num": 0, "sectors-count": 2097120,
6934                              "type": "flush", "error": "Broken pipe" },
6935                    "timestamp": { "seconds": 1456406829, "microseconds": 291763 } }
6936
6937   Character devices
6938       ChardevInfo (Object)
6939
6940       Information about a character device.
6941
6942       Members:
6943
6944       "label: string"
6945           the label of the character device
6946
6947       "filename: string"
6948           the filename of the character device
6949
6950       "frontend-open: boolean"
6951           shows whether the frontend device attached to this backend (eg.
6952           with the chardev=... option) is in open or closed state (since 2.1)
6953
6954       Notes: "filename" is encoded using the QEMU command line character
6955       device encoding.  See the QEMU man page for details.
6956
6957       Since: 0.14.0
6958
6959       query-chardev  (Command) Returns information about current character
6960       devices.
6961
6962       Returns: a list of "ChardevInfo"
6963
6964       Since: 0.14.0
6965
6966       Example:
6967
6968               -> { "execute": "query-chardev" }
6969               <- {
6970                     "return": [
6971                        {
6972                           "label": "charchannel0",
6973                           "filename": "unix:/var/lib/libvirt/qemu/seabios.rhel6.agent,server",
6974                           "frontend-open": false
6975                        },
6976                        {
6977                           "label": "charmonitor",
6978                           "filename": "unix:/var/lib/libvirt/qemu/seabios.rhel6.monitor,server",
6979                           "frontend-open": true
6980                        },
6981                        {
6982                           "label": "charserial0",
6983                           "filename": "pty:/dev/pts/2",
6984                           "frontend-open": true
6985                        }
6986                     ]
6987                  }
6988
6989       ChardevBackendInfo (Object)
6990
6991       Information about a character device backend
6992
6993       Members:
6994
6995       "name: string"
6996           The backend name
6997
6998       Since: 2.0
6999
7000       query-chardev-backends  (Command) Returns information about character
7001       device backends.
7002
7003       Returns: a list of "ChardevBackendInfo"
7004
7005       Since: 2.0
7006
7007       Example:
7008
7009               -> { "execute": "query-chardev-backends" }
7010               <- {
7011                     "return":[
7012                        {
7013                           "name":"udp"
7014                        },
7015                        {
7016                           "name":"tcp"
7017                        },
7018                        {
7019                           "name":"unix"
7020                        },
7021                        {
7022                           "name":"spiceport"
7023                        }
7024                     ]
7025                  }
7026
7027       DataFormat (Enum)
7028
7029       An enumeration of data format.
7030
7031       Values:
7032
7033       "utf8"
7034           Data is a UTF-8 string (RFC 3629)
7035
7036       "base64"
7037           Data is Base64 encoded binary (RFC 3548)
7038
7039       Since: 1.4
7040
7041       ringbuf-write  (Command) Write to a ring buffer character device.
7042
7043       Arguments:
7044
7045       "device: string"
7046           the ring buffer character device name
7047
7048       "data: string"
7049           data to write
7050
7051       "format: DataFormat" (optional)
7052           data encoding (default 'utf8').
7053
7054           -   base64: data must be base64 encoded text.  Its binary decoding
7055               gets written.
7056
7057           -   utf8: data's UTF-8 encoding is written
7058
7059           -   data itself is always Unicode regardless of format, like any
7060               other string.
7061
7062       Returns: Nothing on success
7063
7064       Since: 1.4
7065
7066       Example:
7067
7068               -> { "execute": "ringbuf-write",
7069                    "arguments": { "device": "foo",
7070                                   "data": "abcdefgh",
7071                                   "format": "utf8" } }
7072               <- { "return": {} }
7073
7074       ringbuf-read  (Command) Read from a ring buffer character device.
7075
7076       Arguments:
7077
7078       "device: string"
7079           the ring buffer character device name
7080
7081       "size: int"
7082           how many bytes to read at most
7083
7084       "format: DataFormat" (optional)
7085           data encoding (default 'utf8').
7086
7087           -   base64: the data read is returned in base64 encoding.
7088
7089           -   utf8: the data read is interpreted as UTF-8.  Bug: can screw up
7090               when the buffer contains invalid UTF-8 sequences, NUL
7091               characters, after the ring buffer lost data, and when reading
7092               stops because the size limit is reached.
7093
7094           -   The return value is always Unicode regardless of format, like
7095               any other string.
7096
7097       Returns: data read from the device
7098
7099       Since: 1.4
7100
7101       Example:
7102
7103               -> { "execute": "ringbuf-read",
7104                    "arguments": { "device": "foo",
7105                                   "size": 1000,
7106                                   "format": "utf8" } }
7107               <- { "return": "abcdefgh" }
7108
7109       ChardevCommon (Object)
7110
7111       Configuration shared across all chardev backends
7112
7113       Members:
7114
7115       "logfile: string" (optional)
7116           The name of a logfile to save output
7117
7118       "logappend: boolean" (optional)
7119           true to append instead of truncate (default to false to truncate)
7120
7121       Since: 2.6
7122
7123       ChardevFile (Object)
7124
7125       Configuration info for file chardevs.
7126
7127       Members:
7128
7129       "in: string" (optional)
7130           The name of the input file
7131
7132       "out: string"
7133           The name of the output file
7134
7135       "append: boolean" (optional)
7136           Open the file in append mode (default false to truncate) (Since
7137           2.6)
7138
7139       The members of "ChardevCommon"
7140
7141       Since: 1.4
7142
7143       ChardevHostdev (Object)
7144
7145       Configuration info for device and pipe chardevs.
7146
7147       Members:
7148
7149       "device: string"
7150           The name of the special file for the device, i.e. /dev/ttyS0 on
7151           Unix or COM1: on Windows
7152
7153       The members of "ChardevCommon"
7154
7155       Since: 1.4
7156
7157       ChardevSocket (Object)
7158
7159       Configuration info for (stream) socket chardevs.
7160
7161       Members:
7162
7163       "addr: SocketAddressLegacy"
7164           socket address to listen on (server=true) or connect to
7165           (server=false)
7166
7167       "tls-creds: string" (optional)
7168           the ID of the TLS credentials object (since 2.6)
7169
7170       "server: boolean" (optional)
7171           create server socket (default: true)
7172
7173       "wait: boolean" (optional)
7174           wait for incoming connection on server sockets (default: false).
7175
7176       "nodelay: boolean" (optional)
7177           set TCP_NODELAY socket option (default: false)
7178
7179       "telnet: boolean" (optional)
7180           enable telnet protocol on server sockets (default: false)
7181
7182       "tn3270: boolean" (optional)
7183           enable tn3270 protocol on server sockets (default: false) (Since:
7184           2.10)
7185
7186       "reconnect: int" (optional)
7187           For a client socket, if a socket is disconnected, then attempt a
7188           reconnect after the given number of seconds.  Setting this to zero
7189           disables this function. (default: 0) (Since: 2.2)
7190
7191       The members of "ChardevCommon"
7192
7193       Since: 1.4
7194
7195       ChardevUdp (Object)
7196
7197       Configuration info for datagram socket chardevs.
7198
7199       Members:
7200
7201       "remote: SocketAddressLegacy"
7202           remote address
7203
7204       "local: SocketAddressLegacy" (optional)
7205           local address
7206
7207       The members of "ChardevCommon"
7208
7209       Since: 1.5
7210
7211       ChardevMux (Object)
7212
7213       Configuration info for mux chardevs.
7214
7215       Members:
7216
7217       "chardev: string"
7218           name of the base chardev.
7219
7220       The members of "ChardevCommon"
7221
7222       Since: 1.5
7223
7224       ChardevStdio (Object)
7225
7226       Configuration info for stdio chardevs.
7227
7228       Members:
7229
7230       "signal: boolean" (optional)
7231           Allow signals (such as SIGINT triggered by ^C) be delivered to
7232           qemu.  Default: true in -nographic mode, false otherwise.
7233
7234       The members of "ChardevCommon"
7235
7236       Since: 1.5
7237
7238       ChardevSpiceChannel (Object)
7239
7240       Configuration info for spice vm channel chardevs.
7241
7242       Members:
7243
7244       "type: string"
7245           kind of channel (for example vdagent).
7246
7247       The members of "ChardevCommon"
7248
7249       Since: 1.5
7250
7251       ChardevSpicePort (Object)
7252
7253       Configuration info for spice port chardevs.
7254
7255       Members:
7256
7257       "fqdn: string"
7258           name of the channel (see docs/spice-port-fqdn.txt)
7259
7260       The members of "ChardevCommon"
7261
7262       Since: 1.5
7263
7264       ChardevVC (Object)
7265
7266       Configuration info for virtual console chardevs.
7267
7268       Members:
7269
7270       "width: int" (optional)
7271           console width,  in pixels
7272
7273       "height: int" (optional)
7274           console height, in pixels
7275
7276       "cols: int" (optional)
7277           console width,  in chars
7278
7279       "rows: int" (optional)
7280           console height, in chars
7281
7282       The members of "ChardevCommon"
7283
7284       Since: 1.5
7285
7286       ChardevRingbuf (Object)
7287
7288       Configuration info for ring buffer chardevs.
7289
7290       Members:
7291
7292       "size: int" (optional)
7293           ring buffer size, must be power of two, default is 65536
7294
7295       The members of "ChardevCommon"
7296
7297       Since: 1.5
7298
7299       ChardevBackend (Object)
7300
7301       Configuration info for the new chardev backend.
7302
7303       Members:
7304
7305       "type"
7306           One of "file", "serial", "parallel", "pipe", "socket", "udp",
7307           "pty", "null", "mux", "msmouse", "wctablet", "braille", "testdev",
7308           "stdio", "console", "spicevmc", "spiceport", "vc", "ringbuf",
7309           "memory"
7310
7311       "data: ChardevFile" when "type" is "file"
7312       "data: ChardevHostdev" when "type" is "serial"
7313       "data: ChardevHostdev" when "type" is "parallel"
7314       "data: ChardevHostdev" when "type" is "pipe"
7315       "data: ChardevSocket" when "type" is "socket"
7316       "data: ChardevUdp" when "type" is "udp"
7317       "data: ChardevCommon" when "type" is "pty"
7318       "data: ChardevCommon" when "type" is "null"
7319       "data: ChardevMux" when "type" is "mux"
7320       "data: ChardevCommon" when "type" is "msmouse"
7321       "data: ChardevCommon" when "type" is "wctablet"
7322       "data: ChardevCommon" when "type" is "braille"
7323       "data: ChardevCommon" when "type" is "testdev"
7324       "data: ChardevStdio" when "type" is "stdio"
7325       "data: ChardevCommon" when "type" is "console"
7326       "data: ChardevSpiceChannel" when "type" is "spicevmc"
7327       "data: ChardevSpicePort" when "type" is "spiceport"
7328       "data: ChardevVC" when "type" is "vc"
7329       "data: ChardevRingbuf" when "type" is "ringbuf"
7330       "data: ChardevRingbuf" when "type" is "memory"
7331
7332       Since: 1.4 (testdev since 2.2, wctablet since 2.9)
7333
7334       ChardevReturn (Object)
7335
7336       Return info about the chardev backend just created.
7337
7338       Members:
7339
7340       "pty: string" (optional)
7341           name of the slave pseudoterminal device, present if and only if a
7342           chardev of type 'pty' was created
7343
7344       Since: 1.4
7345
7346       chardev-add  (Command) Add a character device backend
7347
7348       Arguments:
7349
7350       "id: string"
7351           the chardev's ID, must be unique
7352
7353       "backend: ChardevBackend"
7354           backend type and parameters
7355
7356       Returns: ChardevReturn.
7357
7358       Since: 1.4
7359
7360       Example:
7361
7362               -> { "execute" : "chardev-add",
7363                    "arguments" : { "id" : "foo",
7364                                    "backend" : { "type" : "null", "data" : {} } } }
7365               <- { "return": {} }
7366
7367               -> { "execute" : "chardev-add",
7368                    "arguments" : { "id" : "bar",
7369                                    "backend" : { "type" : "file",
7370                                                  "data" : { "out" : "/tmp/bar.log" } } } }
7371               <- { "return": {} }
7372
7373               -> { "execute" : "chardev-add",
7374                    "arguments" : { "id" : "baz",
7375                                    "backend" : { "type" : "pty", "data" : {} } } }
7376               <- { "return": { "pty" : "/dev/pty/42" } }
7377
7378       chardev-change  (Command) Change a character device backend
7379
7380       Arguments:
7381
7382       "id: string"
7383           the chardev's ID, must exist
7384
7385       "backend: ChardevBackend"
7386           new backend type and parameters
7387
7388       Returns: ChardevReturn.
7389
7390       Since: 2.10
7391
7392       Example:
7393
7394               -> { "execute" : "chardev-change",
7395                    "arguments" : { "id" : "baz",
7396                                    "backend" : { "type" : "pty", "data" : {} } } }
7397               <- { "return": { "pty" : "/dev/pty/42" } }
7398
7399               -> {"execute" : "chardev-change",
7400                   "arguments" : {
7401                       "id" : "charchannel2",
7402                       "backend" : {
7403                           "type" : "socket",
7404                           "data" : {
7405                               "addr" : {
7406                                   "type" : "unix" ,
7407                                   "data" : {
7408                                       "path" : "/tmp/charchannel2.socket"
7409                                   }
7410                                },
7411                                "server" : true,
7412                                "wait" : false }}}}
7413               <- {"return": {}}
7414
7415       chardev-remove  (Command) Remove a character device backend
7416
7417       Arguments:
7418
7419       "id: string"
7420           the chardev's ID, must exist and not be in use
7421
7422       Returns: Nothing on success
7423
7424       Since: 1.4
7425
7426       Example:
7427
7428               -> { "execute": "chardev-remove", "arguments": { "id" : "foo" } }
7429               <- { "return": {} }
7430
7431       chardev-send-break  (Command) Send a break to a character device
7432
7433       Arguments:
7434
7435       "id: string"
7436           the chardev's ID, must exist
7437
7438       Returns: Nothing on success
7439
7440       Since: 2.10
7441
7442       Example:
7443
7444               -> { "execute": "chardev-send-break", "arguments": { "id" : "foo" } }
7445               <- { "return": {} }
7446
7447       VSERPORT_CHANGE  (Event) Emitted when the guest opens or closes a
7448       virtio-serial port.
7449
7450       Arguments:
7451
7452       "id: string"
7453           device identifier of the virtio-serial port
7454
7455       "open: boolean"
7456           true if the guest has opened the virtio-serial port
7457
7458       Since: 2.1
7459
7460       Example:
7461
7462               <- { "event": "VSERPORT_CHANGE",
7463                    "data": { "id": "channel0", "open": true },
7464                    "timestamp": { "seconds": 1401385907, "microseconds": 422329 } }
7465
7466   Net devices
7467       set_link  (Command) Sets the link status of a virtual network adapter.
7468
7469       Arguments:
7470
7471       "name: string"
7472           the device name of the virtual network adapter
7473
7474       "up: boolean"
7475           true to set the link status to be up
7476
7477       Returns: Nothing on success If "name" is not a valid network device,
7478       DeviceNotFound
7479
7480       Since: 0.14.0
7481
7482       Notes: Not all network adapters support setting link status.  This
7483       command will succeed even if the network adapter does not support link
7484       status notification.
7485
7486       Example:
7487
7488               -> { "execute": "set_link",
7489                    "arguments": { "name": "e1000.0", "up": false } }
7490               <- { "return": {} }
7491
7492       netdev_add  (Command) Add a network backend.
7493
7494       Arguments:
7495
7496       "type: string"
7497           the type of network backend. Possible values are listed in
7498           NetClientDriver (excluding 'none' and 'nic')
7499
7500       "id: string"
7501           the name of the new network backend
7502
7503       Additional arguments depend on the type.
7504
7505       TODO: This command effectively bypasses QAPI completely due to its
7506       "additional arguments" business.  It shouldn't have been added to the
7507       schema in this form.  It should be qapified properly, or replaced by a
7508       properly qapified command.
7509
7510       Since: 0.14.0
7511
7512       Returns: Nothing on success If "type" is not a valid network backend,
7513       DeviceNotFound
7514
7515       Example:
7516
7517               -> { "execute": "netdev_add",
7518                    "arguments": { "type": "user", "id": "netdev1",
7519                                   "dnssearch": "example.org" } }
7520               <- { "return": {} }
7521
7522       netdev_del  (Command) Remove a network backend.
7523
7524       Arguments:
7525
7526       "id: string"
7527           the name of the network backend to remove
7528
7529       Returns: Nothing on success If "id" is not a valid network backend,
7530       DeviceNotFound
7531
7532       Since: 0.14.0
7533
7534       Example:
7535
7536               -> { "execute": "netdev_del", "arguments": { "id": "netdev1" } }
7537               <- { "return": {} }
7538
7539       NetLegacyNicOptions (Object)
7540
7541       Create a new Network Interface Card.
7542
7543       Members:
7544
7545       "netdev: string" (optional)
7546           id of -netdev to connect to
7547
7548       "macaddr: string" (optional)
7549           MAC address
7550
7551       "model: string" (optional)
7552           device model (e1000, rtl8139, virtio etc.)
7553
7554       "addr: string" (optional)
7555           PCI device address
7556
7557       "vectors: int" (optional)
7558           number of MSI-x vectors, 0 to disable MSI-X
7559
7560       Since: 1.2
7561
7562       NetdevUserOptions (Object)
7563
7564       Use the user mode network stack which requires no administrator
7565       privilege to run.
7566
7567       Members:
7568
7569       "hostname: string" (optional)
7570           client hostname reported by the builtin DHCP server
7571
7572       "restrict: boolean" (optional)
7573           isolate the guest from the host
7574
7575       "ipv4: boolean" (optional)
7576           whether to support IPv4, default true for enabled (since 2.6)
7577
7578       "ipv6: boolean" (optional)
7579           whether to support IPv6, default true for enabled (since 2.6)
7580
7581       "ip: string" (optional)
7582           legacy parameter, use net= instead
7583
7584       "net: string" (optional)
7585           IP network address that the guest will see, in the form
7586           addr[/netmask] The netmask is optional, and can be either in the
7587           form a.b.c.d or as a number of valid top-most bits. Default is
7588           10.0.2.0/24.
7589
7590       "host: string" (optional)
7591           guest-visible address of the host
7592
7593       "tftp: string" (optional)
7594           root directory of the built-in TFTP server
7595
7596       "bootfile: string" (optional)
7597           BOOTP filename, for use with tftp=
7598
7599       "dhcpstart: string" (optional)
7600           the first of the 16 IPs the built-in DHCP server can assign
7601
7602       "dns: string" (optional)
7603           guest-visible address of the virtual nameserver
7604
7605       "dnssearch: array of String" (optional)
7606           list of DNS suffixes to search, passed as DHCP option to the guest
7607
7608       "domainname: string" (optional)
7609           guest-visible domain name of the virtual nameserver (since 3.0)
7610
7611       "ipv6-prefix: string" (optional)
7612           IPv6 network prefix (default is fec0::) (since 2.6). The network
7613           prefix is given in the usual hexadecimal IPv6 address notation.
7614
7615       "ipv6-prefixlen: int" (optional)
7616           IPv6 network prefix length (default is 64) (since 2.6)
7617
7618       "ipv6-host: string" (optional)
7619           guest-visible IPv6 address of the host (since 2.6)
7620
7621       "ipv6-dns: string" (optional)
7622           guest-visible IPv6 address of the virtual nameserver (since 2.6)
7623
7624       "smb: string" (optional)
7625           root directory of the built-in SMB server
7626
7627       "smbserver: string" (optional)
7628           IP address of the built-in SMB server
7629
7630       "hostfwd: array of String" (optional)
7631           redirect incoming TCP or UDP host connections to guest endpoints
7632
7633       "guestfwd: array of String" (optional)
7634           forward guest TCP connections
7635
7636       Since: 1.2
7637
7638       NetdevTapOptions (Object)
7639
7640       Used to configure a host TAP network interface backend.
7641
7642       Members:
7643
7644       "ifname: string" (optional)
7645           interface name
7646
7647       "fd: string" (optional)
7648           file descriptor of an already opened tap
7649
7650       "fds: string" (optional)
7651           multiple file descriptors of already opened multiqueue capable tap
7652
7653       "script: string" (optional)
7654           script to initialize the interface
7655
7656       "downscript: string" (optional)
7657           script to shut down the interface
7658
7659       "br: string" (optional)
7660           bridge name (since 2.8)
7661
7662       "helper: string" (optional)
7663           command to execute to configure bridge
7664
7665       "sndbuf: int" (optional)
7666           send buffer limit. Understands [TGMKkb] suffixes.
7667
7668       "vnet_hdr: boolean" (optional)
7669           enable the IFF_VNET_HDR flag on the tap interface
7670
7671       "vhost: boolean" (optional)
7672           enable vhost-net network accelerator
7673
7674       "vhostfd: string" (optional)
7675           file descriptor of an already opened vhost net device
7676
7677       "vhostfds: string" (optional)
7678           file descriptors of multiple already opened vhost net devices
7679
7680       "vhostforce: boolean" (optional)
7681           vhost on for non-MSIX virtio guests
7682
7683       "queues: int" (optional)
7684           number of queues to be created for multiqueue capable tap
7685
7686       "poll-us: int" (optional)
7687           maximum number of microseconds that could be spent on busy polling
7688           for tap (since 2.7)
7689
7690       Since: 1.2
7691
7692       NetdevSocketOptions (Object)
7693
7694       Socket netdevs are used to establish a network connection to another
7695       QEMU virtual machine via a TCP socket.
7696
7697       Members:
7698
7699       "fd: string" (optional)
7700           file descriptor of an already opened socket
7701
7702       "listen: string" (optional)
7703           port number, and optional hostname, to listen on
7704
7705       "connect: string" (optional)
7706           port number, and optional hostname, to connect to
7707
7708       "mcast: string" (optional)
7709           UDP multicast address and port number
7710
7711       "localaddr: string" (optional)
7712           source address and port for multicast and udp packets
7713
7714       "udp: string" (optional)
7715           UDP unicast address and port number
7716
7717       Since: 1.2
7718
7719       NetdevL2TPv3Options (Object)
7720
7721       Configure an Ethernet over L2TPv3 tunnel.
7722
7723       Members:
7724
7725       "src: string"
7726           source address
7727
7728       "dst: string"
7729           destination address
7730
7731       "srcport: string" (optional)
7732           source port - mandatory for udp, optional for ip
7733
7734       "dstport: string" (optional)
7735           destination port - mandatory for udp, optional for ip
7736
7737       "ipv6: boolean" (optional)
7738           force the use of ipv6
7739
7740       "udp: boolean" (optional)
7741           use the udp version of l2tpv3 encapsulation
7742
7743       "cookie64: boolean" (optional)
7744           use 64 bit coookies
7745
7746       "counter: boolean" (optional)
7747           have sequence counter
7748
7749       "pincounter: boolean" (optional)
7750           pin sequence counter to zero - workaround for buggy implementations
7751           or networks with packet reorder
7752
7753       "txcookie: int" (optional)
7754           32 or 64 bit transmit cookie
7755
7756       "rxcookie: int" (optional)
7757           32 or 64 bit receive cookie
7758
7759       "txsession: int"
7760           32 bit transmit session
7761
7762       "rxsession: int" (optional)
7763           32 bit receive session - if not specified set to the same value as
7764           transmit
7765
7766       "offset: int" (optional)
7767           additional offset - allows the insertion of additional application-
7768           specific data before the packet payload
7769
7770       Since: 2.1
7771
7772       NetdevVdeOptions (Object)
7773
7774       Connect to a vde switch running on the host.
7775
7776       Members:
7777
7778       "sock: string" (optional)
7779           socket path
7780
7781       "port: int" (optional)
7782           port number
7783
7784       "group: string" (optional)
7785           group owner of socket
7786
7787       "mode: int" (optional)
7788           permissions for socket
7789
7790       Since: 1.2
7791
7792       NetdevBridgeOptions (Object)
7793
7794       Connect a host TAP network interface to a host bridge device.
7795
7796       Members:
7797
7798       "br: string" (optional)
7799           bridge name
7800
7801       "helper: string" (optional)
7802           command to execute to configure bridge
7803
7804       Since: 1.2
7805
7806       NetdevHubPortOptions (Object)
7807
7808       Connect two or more net clients through a software hub.
7809
7810       Members:
7811
7812       "hubid: int"
7813           hub identifier number
7814
7815       "netdev: string" (optional)
7816           used to connect hub to a netdev instead of a device (since 2.12)
7817
7818       Since: 1.2
7819
7820       NetdevNetmapOptions (Object)
7821
7822       Connect a client to a netmap-enabled NIC or to a VALE switch port
7823
7824       Members:
7825
7826       "ifname: string"
7827           Either the name of an existing network interface supported by
7828           netmap, or the name of a VALE port (created on the fly).  A VALE
7829           port name is in the form 'valeXXX:YYY', where XXX and YYY are non-
7830           negative integers. XXX identifies a switch and YYY identifies a
7831           port of the switch. VALE ports having the same XXX are therefore
7832           connected to the same switch.
7833
7834       "devname: string" (optional)
7835           path of the netmap device (default: '/dev/netmap').
7836
7837       Since: 2.0
7838
7839       NetdevVhostUserOptions (Object)
7840
7841       Vhost-user network backend
7842
7843       Members:
7844
7845       "chardev: string"
7846           name of a unix socket chardev
7847
7848       "vhostforce: boolean" (optional)
7849           vhost on for non-MSIX virtio guests (default: false).
7850
7851       "queues: int" (optional)
7852           number of queues to be created for multiqueue vhost-user (default:
7853           1) (Since 2.5)
7854
7855       Since: 2.1
7856
7857       NetClientDriver (Enum)
7858
7859       Available netdev drivers.
7860
7861       Values:
7862
7863       "none"
7864           Not documented
7865
7866       "nic"
7867           Not documented
7868
7869       "user"
7870           Not documented
7871
7872       "tap"
7873           Not documented
7874
7875       "l2tpv3"
7876           Not documented
7877
7878       "socket"
7879           Not documented
7880
7881       "vde"
7882           Not documented
7883
7884       "bridge"
7885           Not documented
7886
7887       "hubport"
7888           Not documented
7889
7890       "netmap"
7891           Not documented
7892
7893       "vhost-user"
7894           Not documented
7895
7896       Since: 2.7
7897
7898       'dump': dropped in 2.12
7899
7900       Netdev (Object)
7901
7902       Captures the configuration of a network device.
7903
7904       Members:
7905
7906       "id: string"
7907           identifier for monitor commands.
7908
7909       "type: NetClientDriver"
7910           Specify the driver used for interpreting remaining arguments.
7911
7912       The members of "NetLegacyNicOptions" when "type" is "nic"
7913       The members of "NetdevUserOptions" when "type" is "user"
7914       The members of "NetdevTapOptions" when "type" is "tap"
7915       The members of "NetdevL2TPv3Options" when "type" is "l2tpv3"
7916       The members of "NetdevSocketOptions" when "type" is "socket"
7917       The members of "NetdevVdeOptions" when "type" is "vde"
7918       The members of "NetdevBridgeOptions" when "type" is "bridge"
7919       The members of "NetdevHubPortOptions" when "type" is "hubport"
7920       The members of "NetdevNetmapOptions" when "type" is "netmap"
7921       The members of "NetdevVhostUserOptions" when "type" is "vhost-user"
7922
7923       Since: 1.2
7924
7925       'l2tpv3' - since 2.1
7926
7927       NetLegacy (Object)
7928
7929       Captures the configuration of a network device; legacy.
7930
7931       Members:
7932
7933       "id: string" (optional)
7934           identifier for monitor commands
7935
7936       "name: string" (optional)
7937           identifier for monitor commands, ignored if "id" is present
7938
7939       "opts: NetLegacyOptions"
7940           device type specific properties (legacy)
7941
7942       Since: 1.2
7943
7944       'vlan': dropped in 3.0
7945
7946       NetLegacyOptionsType (Enum)
7947
7948       Values:
7949
7950       "none"
7951           Not documented
7952
7953       "nic"
7954           Not documented
7955
7956       "user"
7957           Not documented
7958
7959       "tap"
7960           Not documented
7961
7962       "l2tpv3"
7963           Not documented
7964
7965       "socket"
7966           Not documented
7967
7968       "vde"
7969           Not documented
7970
7971       "bridge"
7972           Not documented
7973
7974       "netmap"
7975           Not documented
7976
7977       "vhost-user"
7978           Not documented
7979
7980       Since: 1.2
7981
7982       NetLegacyOptions (Object)
7983
7984       Like Netdev, but for use only by the legacy command line options
7985
7986       Members:
7987
7988       "type: NetLegacyOptionsType"
7989           Not documented
7990
7991       The members of "NetLegacyNicOptions" when "type" is "nic"
7992       The members of "NetdevUserOptions" when "type" is "user"
7993       The members of "NetdevTapOptions" when "type" is "tap"
7994       The members of "NetdevL2TPv3Options" when "type" is "l2tpv3"
7995       The members of "NetdevSocketOptions" when "type" is "socket"
7996       The members of "NetdevVdeOptions" when "type" is "vde"
7997       The members of "NetdevBridgeOptions" when "type" is "bridge"
7998       The members of "NetdevNetmapOptions" when "type" is "netmap"
7999       The members of "NetdevVhostUserOptions" when "type" is "vhost-user"
8000
8001       Since: 1.2
8002
8003       NetFilterDirection (Enum)
8004
8005       Indicates whether a netfilter is attached to a netdev's transmit queue
8006       or receive queue or both.
8007
8008       Values:
8009
8010       "all"
8011           the filter is attached both to the receive and the transmit queue
8012           of the netdev (default).
8013
8014       "rx"
8015           the filter is attached to the receive queue of the netdev, where it
8016           will receive packets sent to the netdev.
8017
8018       "tx"
8019           the filter is attached to the transmit queue of the netdev, where
8020           it will receive packets sent by the netdev.
8021
8022       Since: 2.5
8023
8024       RxState (Enum)
8025
8026       Packets receiving state
8027
8028       Values:
8029
8030       "normal"
8031           filter assigned packets according to the mac-table
8032
8033       "none"
8034           don't receive any assigned packet
8035
8036       "all"
8037           receive all assigned packets
8038
8039       Since: 1.6
8040
8041       RxFilterInfo (Object)
8042
8043       Rx-filter information for a NIC.
8044
8045       Members:
8046
8047       "name: string"
8048           net client name
8049
8050       "promiscuous: boolean"
8051           whether promiscuous mode is enabled
8052
8053       "multicast: RxState"
8054           multicast receive state
8055
8056       "unicast: RxState"
8057           unicast receive state
8058
8059       "vlan: RxState"
8060           vlan receive state (Since 2.0)
8061
8062       "broadcast-allowed: boolean"
8063           whether to receive broadcast
8064
8065       "multicast-overflow: boolean"
8066           multicast table is overflowed or not
8067
8068       "unicast-overflow: boolean"
8069           unicast table is overflowed or not
8070
8071       "main-mac: string"
8072           the main macaddr string
8073
8074       "vlan-table: array of int"
8075           a list of active vlan id
8076
8077       "unicast-table: array of string"
8078           a list of unicast macaddr string
8079
8080       "multicast-table: array of string"
8081           a list of multicast macaddr string
8082
8083       Since: 1.6
8084
8085       query-rx-filter  (Command) Return rx-filter information for all NICs
8086       (or for the given NIC).
8087
8088       Arguments:
8089
8090       "name: string" (optional)
8091           net client name
8092
8093       Returns: list of "RxFilterInfo" for all NICs (or for the given NIC).
8094       Returns an error if the given "name" doesn't exist, or given NIC
8095       doesn't support rx-filter querying, or given net client isn't a NIC.
8096
8097       Since: 1.6
8098
8099       Example:
8100
8101               -> { "execute": "query-rx-filter", "arguments": { "name": "vnet0" } }
8102               <- { "return": [
8103                       {
8104                           "promiscuous": true,
8105                           "name": "vnet0",
8106                           "main-mac": "52:54:00:12:34:56",
8107                           "unicast": "normal",
8108                           "vlan": "normal",
8109                           "vlan-table": [
8110                               4,
8111                               0
8112                           ],
8113                           "unicast-table": [
8114                           ],
8115                           "multicast": "normal",
8116                           "multicast-overflow": false,
8117                           "unicast-overflow": false,
8118                           "multicast-table": [
8119                               "01:00:5e:00:00:01",
8120                               "33:33:00:00:00:01",
8121                               "33:33:ff:12:34:56"
8122                           ],
8123                           "broadcast-allowed": false
8124                       }
8125                     ]
8126                  }
8127
8128       NIC_RX_FILTER_CHANGED  (Event) Emitted once until the 'query-rx-filter'
8129       command is executed, the first event will always be emitted
8130
8131       Arguments:
8132
8133       "name: string" (optional)
8134           net client name
8135
8136       "path: string"
8137           device path
8138
8139       Since: 1.6
8140
8141       Example:
8142
8143               <- { "event": "NIC_RX_FILTER_CHANGED",
8144                    "data": { "name": "vnet0",
8145                              "path": "/machine/peripheral/vnet0/virtio-backend" },
8146                    "timestamp": { "seconds": 1368697518, "microseconds": 326866 } }
8147                  }
8148
8149   Rocker switch device
8150       RockerSwitch (Object)
8151
8152       Rocker switch information.
8153
8154       Members:
8155
8156       "name: string"
8157           switch name
8158
8159       "id: int"
8160           switch ID
8161
8162       "ports: int"
8163           number of front-panel ports
8164
8165       Since: 2.4
8166
8167       query-rocker  (Command) Return rocker switch information.
8168
8169       Arguments:
8170
8171       "name: string"
8172           Not documented
8173
8174       Returns: "Rocker" information
8175
8176       Since: 2.4
8177
8178       Example:
8179
8180               -> { "execute": "query-rocker", "arguments": { "name": "sw1" } }
8181               <- { "return": {"name": "sw1", "ports": 2, "id": 1327446905938}}
8182
8183       RockerPortDuplex (Enum)
8184
8185       An eumeration of port duplex states.
8186
8187       Values:
8188
8189       "half"
8190           half duplex
8191
8192       "full"
8193           full duplex
8194
8195       Since: 2.4
8196
8197       RockerPortAutoneg (Enum)
8198
8199       An eumeration of port autoneg states.
8200
8201       Values:
8202
8203       "off"
8204           autoneg is off
8205
8206       "on"
8207           autoneg is on
8208
8209       Since: 2.4
8210
8211       RockerPort (Object)
8212
8213       Rocker switch port information.
8214
8215       Members:
8216
8217       "name: string"
8218           port name
8219
8220       "enabled: boolean"
8221           port is enabled for I/O
8222
8223       "link-up: boolean"
8224           physical link is UP on port
8225
8226       "speed: int"
8227           port link speed in Mbps
8228
8229       "duplex: RockerPortDuplex"
8230           port link duplex
8231
8232       "autoneg: RockerPortAutoneg"
8233           port link autoneg
8234
8235       Since: 2.4
8236
8237       query-rocker-ports  (Command) Return rocker switch port information.
8238
8239       Arguments:
8240
8241       "name: string"
8242           Not documented
8243
8244       Returns: a list of "RockerPort" information
8245
8246       Since: 2.4
8247
8248       Example:
8249
8250               -> { "execute": "query-rocker-ports", "arguments": { "name": "sw1" } }
8251               <- { "return": [ {"duplex": "full", "enabled": true, "name": "sw1.1",
8252                                 "autoneg": "off", "link-up": true, "speed": 10000},
8253                                {"duplex": "full", "enabled": true, "name": "sw1.2",
8254                                 "autoneg": "off", "link-up": true, "speed": 10000}
8255                  ]}
8256
8257       RockerOfDpaFlowKey (Object)
8258
8259       Rocker switch OF-DPA flow key
8260
8261       Members:
8262
8263       "priority: int"
8264           key priority, 0 being lowest priority
8265
8266       "tbl-id: int"
8267           flow table ID
8268
8269       "in-pport: int" (optional)
8270           physical input port
8271
8272       "tunnel-id: int" (optional)
8273           tunnel ID
8274
8275       "vlan-id: int" (optional)
8276           VLAN ID
8277
8278       "eth-type: int" (optional)
8279           Ethernet header type
8280
8281       "eth-src: string" (optional)
8282           Ethernet header source MAC address
8283
8284       "eth-dst: string" (optional)
8285           Ethernet header destination MAC address
8286
8287       "ip-proto: int" (optional)
8288           IP Header protocol field
8289
8290       "ip-tos: int" (optional)
8291           IP header TOS field
8292
8293       "ip-dst: string" (optional)
8294           IP header destination address
8295
8296       Note: optional members may or may not appear in the flow key depending
8297       if they're relevant to the flow key.
8298
8299       Since: 2.4
8300
8301       RockerOfDpaFlowMask (Object)
8302
8303       Rocker switch OF-DPA flow mask
8304
8305       Members:
8306
8307       "in-pport: int" (optional)
8308           physical input port
8309
8310       "tunnel-id: int" (optional)
8311           tunnel ID
8312
8313       "vlan-id: int" (optional)
8314           VLAN ID
8315
8316       "eth-src: string" (optional)
8317           Ethernet header source MAC address
8318
8319       "eth-dst: string" (optional)
8320           Ethernet header destination MAC address
8321
8322       "ip-proto: int" (optional)
8323           IP Header protocol field
8324
8325       "ip-tos: int" (optional)
8326           IP header TOS field
8327
8328       Note: optional members may or may not appear in the flow mask depending
8329       if they're relevant to the flow mask.
8330
8331       Since: 2.4
8332
8333       RockerOfDpaFlowAction (Object)
8334
8335       Rocker switch OF-DPA flow action
8336
8337       Members:
8338
8339       "goto-tbl: int" (optional)
8340           next table ID
8341
8342       "group-id: int" (optional)
8343           group ID
8344
8345       "tunnel-lport: int" (optional)
8346           tunnel logical port ID
8347
8348       "vlan-id: int" (optional)
8349           VLAN ID
8350
8351       "new-vlan-id: int" (optional)
8352           new VLAN ID
8353
8354       "out-pport: int" (optional)
8355           physical output port
8356
8357       Note: optional members may or may not appear in the flow action
8358       depending if they're relevant to the flow action.
8359
8360       Since: 2.4
8361
8362       RockerOfDpaFlow (Object)
8363
8364       Rocker switch OF-DPA flow
8365
8366       Members:
8367
8368       "cookie: int"
8369           flow unique cookie ID
8370
8371       "hits: int"
8372           count of matches (hits) on flow
8373
8374       "key: RockerOfDpaFlowKey"
8375           flow key
8376
8377       "mask: RockerOfDpaFlowMask"
8378           flow mask
8379
8380       "action: RockerOfDpaFlowAction"
8381           flow action
8382
8383       Since: 2.4
8384
8385       query-rocker-of-dpa-flows  (Command) Return rocker OF-DPA flow
8386       information.
8387
8388       Arguments:
8389
8390       "name: string"
8391           switch name
8392
8393       "tbl-id: int" (optional)
8394           flow table ID.  If tbl-id is not specified, returns flow
8395           information for all tables.
8396
8397       Returns: rocker OF-DPA flow information
8398
8399       Since: 2.4
8400
8401       Example:
8402
8403               -> { "execute": "query-rocker-of-dpa-flows",
8404                    "arguments": { "name": "sw1" } }
8405               <- { "return": [ {"key": {"in-pport": 0, "priority": 1, "tbl-id": 0},
8406                                 "hits": 138,
8407                                 "cookie": 0,
8408                                 "action": {"goto-tbl": 10},
8409                                 "mask": {"in-pport": 4294901760}
8410                                },
8411                                {...more...},
8412                  ]}
8413
8414       RockerOfDpaGroup (Object)
8415
8416       Rocker switch OF-DPA group
8417
8418       Members:
8419
8420       "id: int"
8421           group unique ID
8422
8423       "type: int"
8424           group type
8425
8426       "vlan-id: int" (optional)
8427           VLAN ID
8428
8429       "pport: int" (optional)
8430           physical port number
8431
8432       "index: int" (optional)
8433           group index, unique with group type
8434
8435       "out-pport: int" (optional)
8436           output physical port number
8437
8438       "group-id: int" (optional)
8439           next group ID
8440
8441       "set-vlan-id: int" (optional)
8442           VLAN ID to set
8443
8444       "pop-vlan: int" (optional)
8445           pop VLAN headr from packet
8446
8447       "group-ids: array of int" (optional)
8448           list of next group IDs
8449
8450       "set-eth-src: string" (optional)
8451           set source MAC address in Ethernet header
8452
8453       "set-eth-dst: string" (optional)
8454           set destination MAC address in Ethernet header
8455
8456       "ttl-check: int" (optional)
8457           perform TTL check
8458
8459       Note: optional members may or may not appear in the group depending if
8460       they're relevant to the group type.
8461
8462       Since: 2.4
8463
8464       query-rocker-of-dpa-groups  (Command) Return rocker OF-DPA group
8465       information.
8466
8467       Arguments:
8468
8469       "name: string"
8470           switch name
8471
8472       "type: int" (optional)
8473           group type.  If type is not specified, returns group information
8474           for all group types.
8475
8476       Returns: rocker OF-DPA group information
8477
8478       Since: 2.4
8479
8480       Example:
8481
8482               -> { "execute": "query-rocker-of-dpa-groups",
8483                    "arguments": { "name": "sw1" } }
8484               <- { "return": [ {"type": 0, "out-pport": 2,
8485                                 "pport": 2, "vlan-id": 3841,
8486                                 "pop-vlan": 1, "id": 251723778},
8487                                {"type": 0, "out-pport": 0,
8488                                 "pport": 0, "vlan-id": 3841,
8489                                 "pop-vlan": 1, "id": 251723776},
8490                                {"type": 0, "out-pport": 1,
8491                                 "pport": 1, "vlan-id": 3840,
8492                                 "pop-vlan": 1, "id": 251658241},
8493                                {"type": 0, "out-pport": 0,
8494                                 "pport": 0, "vlan-id": 3840,
8495                                 "pop-vlan": 1, "id": 251658240}
8496                  ]}
8497
8498   TPM (trusted platform module) devices
8499       TpmModel (Enum)
8500
8501       An enumeration of TPM models
8502
8503       Values:
8504
8505       "tpm-tis"
8506           TPM TIS model
8507
8508       "tpm-crb"
8509           TPM CRB model (since 2.12)
8510
8511       Since: 1.5
8512
8513       query-tpm-models  (Command) Return a list of supported TPM models
8514
8515       Returns: a list of TpmModel
8516
8517       Since: 1.5
8518
8519       Example:
8520
8521               -> { "execute": "query-tpm-models" }
8522               <- { "return": [ "tpm-tis", "tpm-crb" ] }
8523
8524       TpmType (Enum)
8525
8526       An enumeration of TPM types
8527
8528       Values:
8529
8530       "passthrough"
8531           TPM passthrough type
8532
8533       "emulator"
8534           Software Emulator TPM type Since: 2.11
8535
8536       Since: 1.5
8537
8538       query-tpm-types  (Command) Return a list of supported TPM types
8539
8540       Returns: a list of TpmType
8541
8542       Since: 1.5
8543
8544       Example:
8545
8546               -> { "execute": "query-tpm-types" }
8547               <- { "return": [ "passthrough", "emulator" ] }
8548
8549       TPMPassthroughOptions (Object)
8550
8551       Information about the TPM passthrough type
8552
8553       Members:
8554
8555       "path: string" (optional)
8556           string describing the path used for accessing the TPM device
8557
8558       "cancel-path: string" (optional)
8559           string showing the TPM's sysfs cancel file for cancellation of TPM
8560           commands while they are executing
8561
8562       Since: 1.5
8563
8564       TPMEmulatorOptions (Object)
8565
8566       Information about the TPM emulator type
8567
8568       Members:
8569
8570       "chardev: string"
8571           Name of a unix socket chardev
8572
8573       Since: 2.11
8574
8575       TpmTypeOptions (Object)
8576
8577       A union referencing different TPM backend types' configuration options
8578
8579       Members:
8580
8581       "type"
8582           'passthrough' The configuration options for the TPM passthrough
8583           type 'emulator' The configuration options for TPM emulator backend
8584           type
8585
8586       "data: TPMPassthroughOptions" when "type" is "passthrough"
8587       "data: TPMEmulatorOptions" when "type" is "emulator"
8588
8589       Since: 1.5
8590
8591       TPMInfo (Object)
8592
8593       Information about the TPM
8594
8595       Members:
8596
8597       "id: string"
8598           The Id of the TPM
8599
8600       "model: TpmModel"
8601           The TPM frontend model
8602
8603       "options: TpmTypeOptions"
8604           The TPM (backend) type configuration options
8605
8606       Since: 1.5
8607
8608       query-tpm  (Command) Return information about the TPM device
8609
8610       Returns: "TPMInfo" on success
8611
8612       Since: 1.5
8613
8614       Example:
8615
8616               -> { "execute": "query-tpm" }
8617               <- { "return":
8618                    [
8619                      { "model": "tpm-tis",
8620                        "options":
8621                          { "type": "passthrough",
8622                            "data":
8623                              { "cancel-path": "/sys/class/misc/tpm0/device/cancel",
8624                                "path": "/dev/tpm0"
8625                              }
8626                          },
8627                        "id": "tpm0"
8628                      }
8629                    ]
8630                  }
8631
8632   Remote desktop
8633       set_password  (Command) Sets the password of a remote display session.
8634
8635       Arguments:
8636
8637       "protocol: string"
8638           `vnc' to modify the VNC server password `spice' to modify the Spice
8639           server password
8640
8641       "password: string"
8642           the new password
8643
8644       "connected: string" (optional)
8645           how to handle existing clients when changing the password.  If
8646           nothing is specified, defaults to `keep' `fail' to fail the command
8647           if clients are connected `disconnect' to disconnect existing
8648           clients `keep' to maintain existing clients
8649
8650       Returns: Nothing on success If Spice is not enabled, DeviceNotFound
8651
8652       Since: 0.14.0
8653
8654       Example:
8655
8656               -> { "execute": "set_password", "arguments": { "protocol": "vnc",
8657                                                              "password": "secret" } }
8658               <- { "return": {} }
8659
8660       expire_password  (Command) Expire the password of a remote display
8661       server.
8662
8663       Arguments:
8664
8665       "protocol: string"
8666           the name of the remote display protocol `vnc' or `spice'
8667
8668       "time: string"
8669           when to expire the password.  `now' to expire the password
8670           immediately `never' to cancel password expiration `+INT' where INT
8671           is the number of seconds from now (integer) `INT' where INT is the
8672           absolute time in seconds
8673
8674       Returns: Nothing on success If "protocol" is `spice' and Spice is not
8675       active, DeviceNotFound
8676
8677       Since: 0.14.0
8678
8679       Notes: Time is relative to the server and currently there is no way to
8680       coordinate server time with client time.  It is not recommended to use
8681       the absolute time version of the "time" parameter unless you're sure
8682       you are on the same machine as the QEMU instance.
8683
8684       Example:
8685
8686               -> { "execute": "expire_password", "arguments": { "protocol": "vnc",
8687                                                                 "time": "+60" } }
8688               <- { "return": {} }
8689
8690       screendump  (Command) Write a PPM of the VGA screen to a file.
8691
8692       Arguments:
8693
8694       "filename: string"
8695           the path of a new PPM file to store the image
8696
8697       "device: string" (optional)
8698           ID of the display device that should be dumped. If this parameter
8699           is missing, the primary display will be used. (Since 2.12)
8700
8701       "head: int" (optional)
8702           head to use in case the device supports multiple heads. If this
8703           parameter is missing, head #0 will be used. Also note that the head
8704           can only be specified in conjunction with the device ID. (Since
8705           2.12)
8706
8707       Returns: Nothing on success
8708
8709       Since: 0.14.0
8710
8711       Example:
8712
8713               -> { "execute": "screendump",
8714                    "arguments": { "filename": "/tmp/image" } }
8715               <- { "return": {} }
8716
8717       Spice
8718
8719       SpiceBasicInfo (Object)
8720
8721       The basic information for SPICE network connection
8722
8723       Members:
8724
8725       "host: string"
8726           IP address
8727
8728       "port: string"
8729           port number
8730
8731       "family: NetworkAddressFamily"
8732           address family
8733
8734       Since: 2.1
8735
8736       If: "defined(CONFIG_SPICE)"
8737
8738       SpiceServerInfo (Object)
8739
8740       Information about a SPICE server
8741
8742       Members:
8743
8744       "auth: string" (optional)
8745           authentication method
8746
8747       The members of "SpiceBasicInfo"
8748
8749       Since: 2.1
8750
8751       If: "defined(CONFIG_SPICE)"
8752
8753       SpiceChannel (Object)
8754
8755       Information about a SPICE client channel.
8756
8757       Members:
8758
8759       "connection-id: int"
8760           SPICE connection id number.  All channels with the same id belong
8761           to the same SPICE session.
8762
8763       "channel-type: int"
8764           SPICE channel type number.  "1" is the main control channel, filter
8765           for this one if you want to track spice sessions only
8766
8767       "channel-id: int"
8768           SPICE channel ID number.  Usually "0", might be different when
8769           multiple channels of the same type exist, such as multiple display
8770           channels in a multihead setup
8771
8772       "tls: boolean"
8773           true if the channel is encrypted, false otherwise.
8774
8775       The members of "SpiceBasicInfo"
8776
8777       Since: 0.14.0
8778
8779       If: "defined(CONFIG_SPICE)"
8780
8781       SpiceQueryMouseMode (Enum)
8782
8783       An enumeration of Spice mouse states.
8784
8785       Values:
8786
8787       "client"
8788           Mouse cursor position is determined by the client.
8789
8790       "server"
8791           Mouse cursor position is determined by the server.
8792
8793       "unknown"
8794           No information is available about mouse mode used by the spice
8795           server.
8796
8797       Note: spice/enums.h has a SpiceMouseMode already, hence the name.
8798
8799       Since: 1.1
8800
8801       If: "defined(CONFIG_SPICE)"
8802
8803       SpiceInfo (Object)
8804
8805       Information about the SPICE session.
8806
8807       Members:
8808
8809       "enabled: boolean"
8810           true if the SPICE server is enabled, false otherwise
8811
8812       "migrated: boolean"
8813           true if the last guest migration completed and spice migration had
8814           completed as well. false otherwise. (since 1.4)
8815
8816       "host: string" (optional)
8817           The hostname the SPICE server is bound to.  This depends on the
8818           name resolution on the host and may be an IP address.
8819
8820       "port: int" (optional)
8821           The SPICE server's port number.
8822
8823       "compiled-version: string" (optional)
8824           SPICE server version.
8825
8826       "tls-port: int" (optional)
8827           The SPICE server's TLS port number.
8828
8829       "auth: string" (optional)
8830           the current authentication type used by the server 'none'  if no
8831           authentication is being used 'spice' uses SASL or direct TLS
8832           authentication, depending on command line options
8833
8834       "mouse-mode: SpiceQueryMouseMode"
8835           The mode in which the mouse cursor is displayed currently. Can be
8836           determined by the client or the server, or unknown if spice server
8837           doesn't provide this information. (since: 1.1)
8838
8839       "channels: array of SpiceChannel" (optional)
8840           a list of "SpiceChannel" for each active spice channel
8841
8842       Since: 0.14.0
8843
8844       If: "defined(CONFIG_SPICE)"
8845
8846       query-spice  (Command) Returns information about the current SPICE
8847       server
8848
8849       Returns: "SpiceInfo"
8850
8851       Since: 0.14.0
8852
8853       Example:
8854
8855               -> { "execute": "query-spice" }
8856               <- { "return": {
8857                        "enabled": true,
8858                        "auth": "spice",
8859                        "port": 5920,
8860                        "tls-port": 5921,
8861                        "host": "0.0.0.0",
8862                        "channels": [
8863                           {
8864                              "port": "54924",
8865                              "family": "ipv4",
8866                              "channel-type": 1,
8867                              "connection-id": 1804289383,
8868                              "host": "127.0.0.1",
8869                              "channel-id": 0,
8870                              "tls": true
8871                           },
8872                           {
8873                              "port": "36710",
8874                              "family": "ipv4",
8875                              "channel-type": 4,
8876                              "connection-id": 1804289383,
8877                              "host": "127.0.0.1",
8878                              "channel-id": 0,
8879                              "tls": false
8880                           },
8881                           [ ... more channels follow ... ]
8882                        ]
8883                     }
8884                  }
8885
8886       If: "defined(CONFIG_SPICE)"
8887
8888       SPICE_CONNECTED  (Event) Emitted when a SPICE client establishes a
8889       connection
8890
8891       Arguments:
8892
8893       "server: SpiceBasicInfo"
8894           server information
8895
8896       "client: SpiceBasicInfo"
8897           client information
8898
8899       Since: 0.14.0
8900
8901       Example:
8902
8903               <- { "timestamp": {"seconds": 1290688046, "microseconds": 388707},
8904                    "event": "SPICE_CONNECTED",
8905                    "data": {
8906                      "server": { "port": "5920", "family": "ipv4", "host": "127.0.0.1"},
8907                      "client": {"port": "52873", "family": "ipv4", "host": "127.0.0.1"}
8908                  }}
8909
8910       If: "defined(CONFIG_SPICE)"
8911
8912       SPICE_INITIALIZED  (Event) Emitted after initial handshake and
8913       authentication takes place (if any) and the SPICE channel is up and
8914       running
8915
8916       Arguments:
8917
8918       "server: SpiceServerInfo"
8919           server information
8920
8921       "client: SpiceChannel"
8922           client information
8923
8924       Since: 0.14.0
8925
8926       Example:
8927
8928               <- { "timestamp": {"seconds": 1290688046, "microseconds": 417172},
8929                    "event": "SPICE_INITIALIZED",
8930                    "data": {"server": {"auth": "spice", "port": "5921",
8931                                        "family": "ipv4", "host": "127.0.0.1"},
8932                             "client": {"port": "49004", "family": "ipv4", "channel-type": 3,
8933                                        "connection-id": 1804289383, "host": "127.0.0.1",
8934                                        "channel-id": 0, "tls": true}
8935                  }}
8936
8937       If: "defined(CONFIG_SPICE)"
8938
8939       SPICE_DISCONNECTED  (Event) Emitted when the SPICE connection is closed
8940
8941       Arguments:
8942
8943       "server: SpiceBasicInfo"
8944           server information
8945
8946       "client: SpiceBasicInfo"
8947           client information
8948
8949       Since: 0.14.0
8950
8951       Example:
8952
8953               <- { "timestamp": {"seconds": 1290688046, "microseconds": 388707},
8954                    "event": "SPICE_DISCONNECTED",
8955                    "data": {
8956                      "server": { "port": "5920", "family": "ipv4", "host": "127.0.0.1"},
8957                      "client": {"port": "52873", "family": "ipv4", "host": "127.0.0.1"}
8958                  }}
8959
8960       If: "defined(CONFIG_SPICE)"
8961
8962       SPICE_MIGRATE_COMPLETED  (Event) Emitted when SPICE migration has
8963       completed
8964
8965       Since: 1.3
8966
8967       Example:
8968
8969               <- { "timestamp": {"seconds": 1290688046, "microseconds": 417172},
8970                    "event": "SPICE_MIGRATE_COMPLETED" }
8971
8972       If: "defined(CONFIG_SPICE)"
8973
8974       VNC
8975
8976       VncBasicInfo (Object)
8977
8978       The basic information for vnc network connection
8979
8980       Members:
8981
8982       "host: string"
8983           IP address
8984
8985       "service: string"
8986           The service name of the vnc port. This may depend on the host
8987           system's service database so symbolic names should not be relied
8988           on.
8989
8990       "family: NetworkAddressFamily"
8991           address family
8992
8993       "websocket: boolean"
8994           true in case the socket is a websocket (since 2.3).
8995
8996       Since: 2.1
8997
8998       If: "defined(CONFIG_VNC)"
8999
9000       VncServerInfo (Object)
9001
9002       The network connection information for server
9003
9004       Members:
9005
9006       "auth: string" (optional)
9007           authentication method used for the plain (non-websocket) VNC server
9008
9009       The members of "VncBasicInfo"
9010
9011       Since: 2.1
9012
9013       If: "defined(CONFIG_VNC)"
9014
9015       VncClientInfo (Object)
9016
9017       Information about a connected VNC client.
9018
9019       Members:
9020
9021       "x509_dname: string" (optional)
9022           If x509 authentication is in use, the Distinguished Name of the
9023           client.
9024
9025       "sasl_username: string" (optional)
9026           If SASL authentication is in use, the SASL username used for
9027           authentication.
9028
9029       The members of "VncBasicInfo"
9030
9031       Since: 0.14.0
9032
9033       If: "defined(CONFIG_VNC)"
9034
9035       VncInfo (Object)
9036
9037       Information about the VNC session.
9038
9039       Members:
9040
9041       "enabled: boolean"
9042           true if the VNC server is enabled, false otherwise
9043
9044       "host: string" (optional)
9045           The hostname the VNC server is bound to.  This depends on the name
9046           resolution on the host and may be an IP address.
9047
9048       "family: NetworkAddressFamily" (optional)
9049           'ipv6' if the host is listening for IPv6 connections 'ipv4' if the
9050           host is listening for IPv4 connections 'unix' if the host is
9051           listening on a unix domain socket 'unknown' otherwise
9052
9053       "service: string" (optional)
9054           The service name of the server's port.  This may depends on the
9055           host system's service database so symbolic names should not be
9056           relied on.
9057
9058       "auth: string" (optional)
9059           the current authentication type used by the server 'none' if no
9060           authentication is being used 'vnc' if VNC authentication is being
9061           used 'vencrypt+plain' if VEncrypt is used with plain text
9062           authentication 'vencrypt+tls+none' if VEncrypt is used with TLS and
9063           no authentication 'vencrypt+tls+vnc' if VEncrypt is used with TLS
9064           and VNC authentication 'vencrypt+tls+plain' if VEncrypt is used
9065           with TLS and plain text auth 'vencrypt+x509+none' if VEncrypt is
9066           used with x509 and no auth 'vencrypt+x509+vnc' if VEncrypt is used
9067           with x509 and VNC auth 'vencrypt+x509+plain' if VEncrypt is used
9068           with x509 and plain text auth 'vencrypt+tls+sasl' if VEncrypt is
9069           used with TLS and SASL auth 'vencrypt+x509+sasl' if VEncrypt is
9070           used with x509 and SASL auth
9071
9072       "clients: array of VncClientInfo" (optional)
9073           a list of "VncClientInfo" of all currently connected clients
9074
9075       Since: 0.14.0
9076
9077       If: "defined(CONFIG_VNC)"
9078
9079       VncPrimaryAuth (Enum)
9080
9081       vnc primary authentication method.
9082
9083       Values:
9084
9085       "none"
9086           Not documented
9087
9088       "vnc"
9089           Not documented
9090
9091       "ra2"
9092           Not documented
9093
9094       "ra2ne"
9095           Not documented
9096
9097       "tight"
9098           Not documented
9099
9100       "ultra"
9101           Not documented
9102
9103       "tls"
9104           Not documented
9105
9106       "vencrypt"
9107           Not documented
9108
9109       "sasl"
9110           Not documented
9111
9112       Since: 2.3
9113
9114       If: "defined(CONFIG_VNC)"
9115
9116       VncVencryptSubAuth (Enum)
9117
9118       vnc sub authentication method with vencrypt.
9119
9120       Values:
9121
9122       "plain"
9123           Not documented
9124
9125       "tls-none"
9126           Not documented
9127
9128       "x509-none"
9129           Not documented
9130
9131       "tls-vnc"
9132           Not documented
9133
9134       "x509-vnc"
9135           Not documented
9136
9137       "tls-plain"
9138           Not documented
9139
9140       "x509-plain"
9141           Not documented
9142
9143       "tls-sasl"
9144           Not documented
9145
9146       "x509-sasl"
9147           Not documented
9148
9149       Since: 2.3
9150
9151       If: "defined(CONFIG_VNC)"
9152
9153       VncServerInfo2 (Object)
9154
9155       The network connection information for server
9156
9157       Members:
9158
9159       "auth: VncPrimaryAuth"
9160           The current authentication type used by the servers
9161
9162       "vencrypt: VncVencryptSubAuth" (optional)
9163           The vencrypt sub authentication type used by the servers, only
9164           specified in case auth == vencrypt.
9165
9166       The members of "VncBasicInfo"
9167
9168       Since: 2.9
9169
9170       If: "defined(CONFIG_VNC)"
9171
9172       VncInfo2 (Object)
9173
9174       Information about a vnc server
9175
9176       Members:
9177
9178       "id: string"
9179           vnc server name.
9180
9181       "server: array of VncServerInfo2"
9182           A list of "VncBasincInfo" describing all listening sockets.  The
9183           list can be empty (in case the vnc server is disabled).  It also
9184           may have multiple entries: normal + websocket, possibly also ipv4 +
9185           ipv6 in the future.
9186
9187       "clients: array of VncClientInfo"
9188           A list of "VncClientInfo" of all currently connected clients.  The
9189           list can be empty, for obvious reasons.
9190
9191       "auth: VncPrimaryAuth"
9192           The current authentication type used by the non-websockets servers
9193
9194       "vencrypt: VncVencryptSubAuth" (optional)
9195           The vencrypt authentication type used by the servers, only
9196           specified in case auth == vencrypt.
9197
9198       "display: string" (optional)
9199           The display device the vnc server is linked to.
9200
9201       Since: 2.3
9202
9203       If: "defined(CONFIG_VNC)"
9204
9205       query-vnc  (Command) Returns information about the current VNC server
9206
9207       Returns: "VncInfo"
9208
9209       Since: 0.14.0
9210
9211       Example:
9212
9213               -> { "execute": "query-vnc" }
9214               <- { "return": {
9215                        "enabled":true,
9216                        "host":"0.0.0.0",
9217                        "service":"50402",
9218                        "auth":"vnc",
9219                        "family":"ipv4",
9220                        "clients":[
9221                           {
9222                              "host":"127.0.0.1",
9223                              "service":"50401",
9224                              "family":"ipv4"
9225                           }
9226                        ]
9227                     }
9228                  }
9229
9230       If: "defined(CONFIG_VNC)"
9231
9232       query-vnc-servers  (Command) Returns a list of vnc servers.  The list
9233       can be empty.
9234
9235       Returns: a list of "VncInfo2"
9236
9237       Since: 2.3
9238
9239       If: "defined(CONFIG_VNC)"
9240
9241       change-vnc-password  (Command) Change the VNC server password.
9242
9243       Arguments:
9244
9245       "password: string"
9246           the new password to use with VNC authentication
9247
9248       Since: 1.1
9249
9250       Notes: An empty password in this command will set the password to the
9251       empty string.  Existing clients are unaffected by executing this
9252       command.
9253
9254       If: "defined(CONFIG_VNC)"
9255
9256       VNC_CONNECTED  (Event) Emitted when a VNC client establishes a
9257       connection
9258
9259       Arguments:
9260
9261       "server: VncServerInfo"
9262           server information
9263
9264       "client: VncBasicInfo"
9265           client information
9266
9267       Note: This event is emitted before any authentication takes place, thus
9268       the authentication ID is not provided
9269
9270       Since: 0.13.0
9271
9272       Example:
9273
9274               <- { "event": "VNC_CONNECTED",
9275                    "data": {
9276                          "server": { "auth": "sasl", "family": "ipv4",
9277                                      "service": "5901", "host": "0.0.0.0" },
9278                          "client": { "family": "ipv4", "service": "58425",
9279                                      "host": "127.0.0.1" } },
9280                    "timestamp": { "seconds": 1262976601, "microseconds": 975795 } }
9281
9282       If: "defined(CONFIG_VNC)"
9283
9284       VNC_INITIALIZED  (Event) Emitted after authentication takes place (if
9285       any) and the VNC session is made active
9286
9287       Arguments:
9288
9289       "server: VncServerInfo"
9290           server information
9291
9292       "client: VncClientInfo"
9293           client information
9294
9295       Since: 0.13.0
9296
9297       Example:
9298
9299               <-  { "event": "VNC_INITIALIZED",
9300                     "data": {
9301                          "server": { "auth": "sasl", "family": "ipv4",
9302                                      "service": "5901", "host": "0.0.0.0"},
9303                          "client": { "family": "ipv4", "service": "46089",
9304                                      "host": "127.0.0.1", "sasl_username": "luiz" } },
9305                     "timestamp": { "seconds": 1263475302, "microseconds": 150772 } }
9306
9307       If: "defined(CONFIG_VNC)"
9308
9309       VNC_DISCONNECTED  (Event) Emitted when the connection is closed
9310
9311       Arguments:
9312
9313       "server: VncServerInfo"
9314           server information
9315
9316       "client: VncClientInfo"
9317           client information
9318
9319       Since: 0.13.0
9320
9321       Example:
9322
9323               <- { "event": "VNC_DISCONNECTED",
9324                    "data": {
9325                          "server": { "auth": "sasl", "family": "ipv4",
9326                                      "service": "5901", "host": "0.0.0.0" },
9327                          "client": { "family": "ipv4", "service": "58425",
9328                                      "host": "127.0.0.1", "sasl_username": "luiz" } },
9329                    "timestamp": { "seconds": 1262976601, "microseconds": 975795 } }
9330
9331       If: "defined(CONFIG_VNC)"
9332
9333   Input
9334       MouseInfo (Object)
9335
9336       Information about a mouse device.
9337
9338       Members:
9339
9340       "name: string"
9341           the name of the mouse device
9342
9343       "index: int"
9344           the index of the mouse device
9345
9346       "current: boolean"
9347           true if this device is currently receiving mouse events
9348
9349       "absolute: boolean"
9350           true if this device supports absolute coordinates as input
9351
9352       Since: 0.14.0
9353
9354       query-mice  (Command) Returns information about each active mouse
9355       device
9356
9357       Returns: a list of "MouseInfo" for each device
9358
9359       Since: 0.14.0
9360
9361       Example:
9362
9363               -> { "execute": "query-mice" }
9364               <- { "return": [
9365                        {
9366                           "name":"QEMU Microsoft Mouse",
9367                           "index":0,
9368                           "current":false,
9369                           "absolute":false
9370                        },
9371                        {
9372                           "name":"QEMU PS/2 Mouse",
9373                           "index":1,
9374                           "current":true,
9375                           "absolute":true
9376                        }
9377                     ]
9378                  }
9379
9380       QKeyCode (Enum)
9381
9382       An enumeration of key name.
9383
9384       This is used by the "send-key" command.
9385
9386       Values:
9387
9388       "unmapped"
9389           since 2.0
9390
9391       "pause"
9392           since 2.0
9393
9394       "ro"
9395           since 2.4
9396
9397       "kp_comma"
9398           since 2.4
9399
9400       "kp_equals"
9401           since 2.6
9402
9403       "power"
9404           since 2.6
9405
9406       "hiragana"
9407           since 2.9
9408
9409       "henkan"
9410           since 2.9
9411
9412       "yen"
9413           since 2.9
9414
9415       "sleep"
9416           since 2.10
9417
9418       "wake"
9419           since 2.10
9420
9421       "audionext"
9422           since 2.10
9423
9424       "audioprev"
9425           since 2.10
9426
9427       "audiostop"
9428           since 2.10
9429
9430       "audioplay"
9431           since 2.10
9432
9433       "audiomute"
9434           since 2.10
9435
9436       "volumeup"
9437           since 2.10
9438
9439       "volumedown"
9440           since 2.10
9441
9442       "mediaselect"
9443           since 2.10
9444
9445       "mail"
9446           since 2.10
9447
9448       "calculator"
9449           since 2.10
9450
9451       "computer"
9452           since 2.10
9453
9454       "ac_home"
9455           since 2.10
9456
9457       "ac_back"
9458           since 2.10
9459
9460       "ac_forward"
9461           since 2.10
9462
9463       "ac_refresh"
9464           since 2.10
9465
9466       "ac_bookmarks"
9467           since 2.10 altgr, altgr_r: dropped in 2.10
9468
9469       "muhenkan"
9470           since 2.12
9471
9472       "katakanahiragana"
9473           since 2.12
9474
9475       "shift"
9476           Not documented
9477
9478       "shift_r"
9479           Not documented
9480
9481       "alt"
9482           Not documented
9483
9484       "alt_r"
9485           Not documented
9486
9487       "ctrl"
9488           Not documented
9489
9490       "ctrl_r"
9491           Not documented
9492
9493       "menu"
9494           Not documented
9495
9496       "esc"
9497           Not documented
9498
9499       1   Not documented
9500
9501       2   Not documented
9502
9503       3   Not documented
9504
9505       4   Not documented
9506
9507       5   Not documented
9508
9509       6   Not documented
9510
9511       7   Not documented
9512
9513       8   Not documented
9514
9515       9   Not documented
9516
9517       0   Not documented
9518
9519       "minus"
9520           Not documented
9521
9522       "equal"
9523           Not documented
9524
9525       "backspace"
9526           Not documented
9527
9528       "tab"
9529           Not documented
9530
9531       "q" Not documented
9532
9533       "w" Not documented
9534
9535       "e" Not documented
9536
9537       "r" Not documented
9538
9539       "t" Not documented
9540
9541       "y" Not documented
9542
9543       "u" Not documented
9544
9545       "i" Not documented
9546
9547       "o" Not documented
9548
9549       "p" Not documented
9550
9551       "bracket_left"
9552           Not documented
9553
9554       "bracket_right"
9555           Not documented
9556
9557       "ret"
9558           Not documented
9559
9560       "a" Not documented
9561
9562       "s" Not documented
9563
9564       "d" Not documented
9565
9566       "f" Not documented
9567
9568       "g" Not documented
9569
9570       "h" Not documented
9571
9572       "j" Not documented
9573
9574       "k" Not documented
9575
9576       "l" Not documented
9577
9578       "semicolon"
9579           Not documented
9580
9581       "apostrophe"
9582           Not documented
9583
9584       "grave_accent"
9585           Not documented
9586
9587       "backslash"
9588           Not documented
9589
9590       "z" Not documented
9591
9592       "x" Not documented
9593
9594       "c" Not documented
9595
9596       "v" Not documented
9597
9598       "b" Not documented
9599
9600       "n" Not documented
9601
9602       "m" Not documented
9603
9604       "comma"
9605           Not documented
9606
9607       "dot"
9608           Not documented
9609
9610       "slash"
9611           Not documented
9612
9613       "asterisk"
9614           Not documented
9615
9616       "spc"
9617           Not documented
9618
9619       "caps_lock"
9620           Not documented
9621
9622       "f1"
9623           Not documented
9624
9625       "f2"
9626           Not documented
9627
9628       "f3"
9629           Not documented
9630
9631       "f4"
9632           Not documented
9633
9634       "f5"
9635           Not documented
9636
9637       "f6"
9638           Not documented
9639
9640       "f7"
9641           Not documented
9642
9643       "f8"
9644           Not documented
9645
9646       "f9"
9647           Not documented
9648
9649       "f10"
9650           Not documented
9651
9652       "num_lock"
9653           Not documented
9654
9655       "scroll_lock"
9656           Not documented
9657
9658       "kp_divide"
9659           Not documented
9660
9661       "kp_multiply"
9662           Not documented
9663
9664       "kp_subtract"
9665           Not documented
9666
9667       "kp_add"
9668           Not documented
9669
9670       "kp_enter"
9671           Not documented
9672
9673       "kp_decimal"
9674           Not documented
9675
9676       "sysrq"
9677           Not documented
9678
9679       "kp_0"
9680           Not documented
9681
9682       "kp_1"
9683           Not documented
9684
9685       "kp_2"
9686           Not documented
9687
9688       "kp_3"
9689           Not documented
9690
9691       "kp_4"
9692           Not documented
9693
9694       "kp_5"
9695           Not documented
9696
9697       "kp_6"
9698           Not documented
9699
9700       "kp_7"
9701           Not documented
9702
9703       "kp_8"
9704           Not documented
9705
9706       "kp_9"
9707           Not documented
9708
9709       "less"
9710           Not documented
9711
9712       "f11"
9713           Not documented
9714
9715       "f12"
9716           Not documented
9717
9718       "print"
9719           Not documented
9720
9721       "home"
9722           Not documented
9723
9724       "pgup"
9725           Not documented
9726
9727       "pgdn"
9728           Not documented
9729
9730       "end"
9731           Not documented
9732
9733       "left"
9734           Not documented
9735
9736       "up"
9737           Not documented
9738
9739       "down"
9740           Not documented
9741
9742       "right"
9743           Not documented
9744
9745       "insert"
9746           Not documented
9747
9748       "delete"
9749           Not documented
9750
9751       "stop"
9752           Not documented
9753
9754       "again"
9755           Not documented
9756
9757       "props"
9758           Not documented
9759
9760       "undo"
9761           Not documented
9762
9763       "front"
9764           Not documented
9765
9766       "copy"
9767           Not documented
9768
9769       "open"
9770           Not documented
9771
9772       "paste"
9773           Not documented
9774
9775       "find"
9776           Not documented
9777
9778       "cut"
9779           Not documented
9780
9781       "lf"
9782           Not documented
9783
9784       "help"
9785           Not documented
9786
9787       "meta_l"
9788           Not documented
9789
9790       "meta_r"
9791           Not documented
9792
9793       "compose"
9794           Not documented
9795
9796       'sysrq' was mistakenly added to hack around the fact that the ps2
9797       driver was not generating correct scancodes sequences when 'alt+print'
9798       was pressed. This flaw is now fixed and the 'sysrq' key serves no
9799       further purpose. Any further use of 'sysrq' will be transparently
9800       changed to 'print', so they are effectively synonyms.
9801
9802       Since: 1.3.0
9803
9804       KeyValue (Object)
9805
9806       Represents a keyboard key.
9807
9808       Members:
9809
9810       "type"
9811           One of "number", "qcode"
9812
9813       "data: int" when "type" is "number"
9814       "data: QKeyCode" when "type" is "qcode"
9815
9816       Since: 1.3.0
9817
9818       send-key  (Command) Send keys to guest.
9819
9820       Arguments:
9821
9822       "keys: array of KeyValue"
9823           An array of "KeyValue" elements. All "KeyValues" in this array are
9824           simultaneously sent to the guest. A "KeyValue".number value is sent
9825           directly to the guest, while "KeyValue".qcode must be a valid
9826           "QKeyCode" value
9827
9828       "hold-time: int" (optional)
9829           time to delay key up events, milliseconds. Defaults to 100
9830
9831       Returns: Nothing on success If key is unknown or redundant,
9832       InvalidParameter
9833
9834       Since: 1.3.0
9835
9836       Example:
9837
9838               -> { "execute": "send-key",
9839                    "arguments": { "keys": [ { "type": "qcode", "data": "ctrl" },
9840                                             { "type": "qcode", "data": "alt" },
9841                                             { "type": "qcode", "data": "delete" } ] } }
9842               <- { "return": {} }
9843
9844       InputButton (Enum)
9845
9846       Button of a pointer input device (mouse, tablet).
9847
9848       Values:
9849
9850       "side"
9851           front side button of a 5-button mouse (since 2.9)
9852
9853       "extra"
9854           rear side button of a 5-button mouse (since 2.9)
9855
9856       "left"
9857           Not documented
9858
9859       "middle"
9860           Not documented
9861
9862       "right"
9863           Not documented
9864
9865       "wheel-up"
9866           Not documented
9867
9868       "wheel-down"
9869           Not documented
9870
9871       Since: 2.0
9872
9873       InputAxis (Enum)
9874
9875       Position axis of a pointer input device (mouse, tablet).
9876
9877       Values:
9878
9879       "x" Not documented
9880
9881       "y" Not documented
9882
9883       Since: 2.0
9884
9885       InputKeyEvent (Object)
9886
9887       Keyboard input event.
9888
9889       Members:
9890
9891       "key: KeyValue"
9892           Which key this event is for.
9893
9894       "down: boolean"
9895           True for key-down and false for key-up events.
9896
9897       Since: 2.0
9898
9899       InputBtnEvent (Object)
9900
9901       Pointer button input event.
9902
9903       Members:
9904
9905       "button: InputButton"
9906           Which button this event is for.
9907
9908       "down: boolean"
9909           True for key-down and false for key-up events.
9910
9911       Since: 2.0
9912
9913       InputMoveEvent (Object)
9914
9915       Pointer motion input event.
9916
9917       Members:
9918
9919       "axis: InputAxis"
9920           Which axis is referenced by "value".
9921
9922       "value: int"
9923           Pointer position.  For absolute coordinates the valid range is 0 ->
9924           0x7ffff
9925
9926       Since: 2.0
9927
9928       InputEvent (Object)
9929
9930       Input event union.
9931
9932       Members:
9933
9934       "type"
9935           the input type, one of:
9936
9937           -   'key': Input event of Keyboard
9938
9939           -   'btn': Input event of pointer buttons
9940
9941           -   'rel': Input event of relative pointer motion
9942
9943           -   'abs': Input event of absolute pointer motion
9944
9945       "data: InputKeyEvent" when "type" is "key"
9946       "data: InputBtnEvent" when "type" is "btn"
9947       "data: InputMoveEvent" when "type" is "rel"
9948       "data: InputMoveEvent" when "type" is "abs"
9949
9950       Since: 2.0
9951
9952       input-send-event  (Command) Send input event(s) to guest.
9953
9954       Arguments:
9955
9956       "device: string" (optional)
9957           display device to send event(s) to.
9958
9959       "head: int" (optional)
9960           head to send event(s) to, in case the display device supports
9961           multiple scanouts.
9962
9963       "events: array of InputEvent"
9964           List of InputEvent union.
9965
9966       Returns: Nothing on success.
9967
9968       The "device" and "head" parameters can be used to send the input event
9969       to specific input devices in case (a) multiple input devices of the
9970       same kind are added to the virtual machine and (b) you have configured
9971       input routing (see docs/multiseat.txt) for those input devices.  The
9972       parameters work exactly like the device and head properties of input
9973       devices.  If "device" is missing, only devices that have no input
9974       routing config are admissible.  If "device" is specified, both input
9975       devices with and without input routing config are admissible, but
9976       devices with input routing config take precedence.
9977
9978       Since: 2.6
9979
9980       Note: The consoles are visible in the qom tree, under
9981       /backend/console[$index]. They have a device link and head property, so
9982       it is possible to map which console belongs to which device and
9983       display.
9984
9985       Example:
9986
9987               1. Press left mouse button.
9988
9989               -> { "execute": "input-send-event",
9990                   "arguments": { "device": "video0",
9991                                  "events": [ { "type": "btn",
9992                                  "data" : { "down": true, "button": "left" } } ] } }
9993               <- { "return": {} }
9994
9995               -> { "execute": "input-send-event",
9996                   "arguments": { "device": "video0",
9997                                  "events": [ { "type": "btn",
9998                                  "data" : { "down": false, "button": "left" } } ] } }
9999               <- { "return": {} }
10000
10001               2. Press ctrl-alt-del.
10002
10003               -> { "execute": "input-send-event",
10004                    "arguments": { "events": [
10005                       { "type": "key", "data" : { "down": true,
10006                         "key": {"type": "qcode", "data": "ctrl" } } },
10007                       { "type": "key", "data" : { "down": true,
10008                         "key": {"type": "qcode", "data": "alt" } } },
10009                       { "type": "key", "data" : { "down": true,
10010                         "key": {"type": "qcode", "data": "delete" } } } ] } }
10011               <- { "return": {} }
10012
10013               3. Move mouse pointer to absolute coordinates (20000, 400).
10014
10015               -> { "execute": "input-send-event" ,
10016                 "arguments": { "events": [
10017                              { "type": "abs", "data" : { "axis": "x", "value" : 20000 } },
10018                              { "type": "abs", "data" : { "axis": "y", "value" : 400 } } ] } }
10019               <- { "return": {} }
10020
10021       DisplayGTK (Object)
10022
10023       GTK display options.
10024
10025       Members:
10026
10027       "grab-on-hover: boolean" (optional)
10028           Grab keyboard input on mouse hover.
10029
10030       Since: 2.12
10031
10032       DisplayGLMode (Enum)
10033
10034       Display OpenGL mode.
10035
10036       Values:
10037
10038       "off"
10039           Disable OpenGL (default).
10040
10041       "on"
10042           Use OpenGL, pick context type automatically.  Would better be named
10043           'auto' but is called 'on' for backward compatibility with bool
10044           type.
10045
10046       "core"
10047           Use OpenGL with Core (desktop) Context.
10048
10049       "es"
10050           Use OpenGL with ES (embedded systems) Context.
10051
10052       Since: 3.0
10053
10054       DisplayType (Enum)
10055
10056       Display (user interface) type.
10057
10058       Values:
10059
10060       "default"
10061           Not documented
10062
10063       "none"
10064           Not documented
10065
10066       "gtk"
10067           Not documented
10068
10069       "sdl"
10070           Not documented
10071
10072       "egl-headless"
10073           Not documented
10074
10075       "curses"
10076           Not documented
10077
10078       "cocoa"
10079           Not documented
10080
10081       Since: 2.12
10082
10083       DisplayOptions (Object)
10084
10085       Display (user interface) options.
10086
10087       Members:
10088
10089       "type: DisplayType"
10090           Which DisplayType qemu should use.
10091
10092       "full-screen: boolean" (optional)
10093           Start user interface in fullscreen mode (default: off).
10094
10095       "window-close: boolean" (optional)
10096           Allow to quit qemu with window close button (default: on).
10097
10098       "gl: DisplayGLMode" (optional)
10099           Enable OpenGL support (default: off).
10100
10101       The members of "DisplayGTK" when "type" is "gtk"
10102
10103       Since: 2.12
10104
10105   Migration
10106       MigrationStats (Object)
10107
10108       Detailed migration status.
10109
10110       Members:
10111
10112       "transferred: int"
10113           amount of bytes already transferred to the target VM
10114
10115       "remaining: int"
10116           amount of bytes remaining to be transferred to the target VM
10117
10118       "total: int"
10119           total amount of bytes involved in the migration process
10120
10121       "duplicate: int"
10122           number of duplicate (zero) pages (since 1.2)
10123
10124       "skipped: int"
10125           number of skipped zero pages (since 1.5)
10126
10127       "normal: int"
10128           number of normal pages (since 1.2)
10129
10130       "normal-bytes: int"
10131           number of normal bytes sent (since 1.2)
10132
10133       "dirty-pages-rate: int"
10134           number of pages dirtied by second by the guest (since 1.3)
10135
10136       "mbps: number"
10137           throughput in megabits/sec. (since 1.6)
10138
10139       "dirty-sync-count: int"
10140           number of times that dirty ram was synchronized (since 2.1)
10141
10142       "postcopy-requests: int"
10143           The number of page requests received from the destination (since
10144           2.7)
10145
10146       "page-size: int"
10147           The number of bytes per page for the various page-based statistics
10148           (since 2.10)
10149
10150       "multifd-bytes: int"
10151           The number of bytes sent through multifd (since 3.0)
10152
10153       Since: 0.14.0
10154
10155       XBZRLECacheStats (Object)
10156
10157       Detailed XBZRLE migration cache statistics
10158
10159       Members:
10160
10161       "cache-size: int"
10162           XBZRLE cache size
10163
10164       "bytes: int"
10165           amount of bytes already transferred to the target VM
10166
10167       "pages: int"
10168           amount of pages transferred to the target VM
10169
10170       "cache-miss: int"
10171           number of cache miss
10172
10173       "cache-miss-rate: number"
10174           rate of cache miss (since 2.1)
10175
10176       "overflow: int"
10177           number of overflows
10178
10179       Since: 1.2
10180
10181       MigrationStatus (Enum)
10182
10183       An enumeration of migration status.
10184
10185       Values:
10186
10187       "none"
10188           no migration has ever happened.
10189
10190       "setup"
10191           migration process has been initiated.
10192
10193       "cancelling"
10194           in the process of cancelling migration.
10195
10196       "cancelled"
10197           cancelling migration is finished.
10198
10199       "active"
10200           in the process of doing migration.
10201
10202       "postcopy-active"
10203           like active, but now in postcopy mode. (since 2.5)
10204
10205       "postcopy-paused"
10206           during postcopy but paused. (since 3.0)
10207
10208       "postcopy-recover"
10209           trying to recover from a paused postcopy. (since 3.0)
10210
10211       "completed"
10212           migration is finished.
10213
10214       "failed"
10215           some error occurred during migration process.
10216
10217       "colo"
10218           VM is in the process of fault tolerance, VM can not get into this
10219           state unless colo capability is enabled for migration. (since 2.8)
10220
10221       "pre-switchover"
10222           Paused before device serialisation. (since 2.11)
10223
10224       "device"
10225           During device serialisation when pause-before-switchover is enabled
10226           (since 2.11)
10227
10228       Since: 2.3
10229
10230       MigrationInfo (Object)
10231
10232       Information about current migration process.
10233
10234       Members:
10235
10236       "status: MigrationStatus" (optional)
10237           "MigrationStatus" describing the current migration status.  If this
10238           field is not returned, no migration process has been initiated
10239
10240       "ram: MigrationStats" (optional)
10241           "MigrationStats" containing detailed migration status, only
10242           returned if status is 'active' or 'completed'(since 1.2)
10243
10244       "disk: MigrationStats" (optional)
10245           "MigrationStats" containing detailed disk migration status, only
10246           returned if status is 'active' and it is a block migration
10247
10248       "xbzrle-cache: XBZRLECacheStats" (optional)
10249           "XBZRLECacheStats" containing detailed XBZRLE migration statistics,
10250           only returned if XBZRLE feature is on and status is 'active' or
10251           'completed' (since 1.2)
10252
10253       "total-time: int" (optional)
10254           total amount of milliseconds since migration started.  If migration
10255           has ended, it returns the total migration time. (since 1.2)
10256
10257       "downtime: int" (optional)
10258           only present when migration finishes correctly total downtime in
10259           milliseconds for the guest.  (since 1.3)
10260
10261       "expected-downtime: int" (optional)
10262           only present while migration is active expected downtime in
10263           milliseconds for the guest in last walk of the dirty bitmap. (since
10264           1.3)
10265
10266       "setup-time: int" (optional)
10267           amount of setup time in milliseconds before the iterations begin
10268           but after the QMP command is issued. This is designed to provide an
10269           accounting of any activities (such as RDMA pinning) which may be
10270           expensive, but do not actually occur during the iterative migration
10271           rounds themselves. (since 1.6)
10272
10273       "cpu-throttle-percentage: int" (optional)
10274           percentage of time guest cpus are being throttled during auto-
10275           converge. This is only present when auto-converge has started
10276           throttling guest cpus. (Since 2.7)
10277
10278       "error-desc: string" (optional)
10279           the human readable error description string, when "status" is
10280           'failed'. Clients should not attempt to parse the error strings.
10281           (Since 2.7)
10282
10283       "postcopy-blocktime: int" (optional)
10284           total time when all vCPU were blocked during postcopy live
10285           migration. This is only present when the postcopy-blocktime
10286           migration capability is enabled. (Since 3.0)
10287
10288       "postcopy-vcpu-blocktime: array of int" (optional)
10289           list of the postcopy blocktime per vCPU.  This is only present when
10290           the postcopy-blocktime migration capability is enabled. (Since 3.0)
10291
10292       Since: 0.14.0
10293
10294       query-migrate  (Command) Returns information about current migration
10295       process. If migration is active there will be another json-object with
10296       RAM migration status and if block migration is active another one with
10297       block migration status.
10298
10299       Returns: "MigrationInfo"
10300
10301       Since: 0.14.0
10302
10303       Example:
10304
10305               1. Before the first migration
10306
10307               -> { "execute": "query-migrate" }
10308               <- { "return": {} }
10309
10310               2. Migration is done and has succeeded
10311
10312               -> { "execute": "query-migrate" }
10313               <- { "return": {
10314                       "status": "completed",
10315                       "ram":{
10316                         "transferred":123,
10317                         "remaining":123,
10318                         "total":246,
10319                         "total-time":12345,
10320                         "setup-time":12345,
10321                         "downtime":12345,
10322                         "duplicate":123,
10323                         "normal":123,
10324                         "normal-bytes":123456,
10325                         "dirty-sync-count":15
10326                       }
10327                    }
10328                  }
10329
10330               3. Migration is done and has failed
10331
10332               -> { "execute": "query-migrate" }
10333               <- { "return": { "status": "failed" } }
10334
10335               4. Migration is being performed and is not a block migration:
10336
10337               -> { "execute": "query-migrate" }
10338               <- {
10339                     "return":{
10340                        "status":"active",
10341                        "ram":{
10342                           "transferred":123,
10343                           "remaining":123,
10344                           "total":246,
10345                           "total-time":12345,
10346                           "setup-time":12345,
10347                           "expected-downtime":12345,
10348                           "duplicate":123,
10349                           "normal":123,
10350                           "normal-bytes":123456,
10351                           "dirty-sync-count":15
10352                        }
10353                     }
10354                  }
10355
10356               5. Migration is being performed and is a block migration:
10357
10358               -> { "execute": "query-migrate" }
10359               <- {
10360                     "return":{
10361                        "status":"active",
10362                        "ram":{
10363                           "total":1057024,
10364                           "remaining":1053304,
10365                           "transferred":3720,
10366                           "total-time":12345,
10367                           "setup-time":12345,
10368                           "expected-downtime":12345,
10369                           "duplicate":123,
10370                           "normal":123,
10371                           "normal-bytes":123456,
10372                           "dirty-sync-count":15
10373                        },
10374                        "disk":{
10375                           "total":20971520,
10376                           "remaining":20880384,
10377                           "transferred":91136
10378                        }
10379                     }
10380                  }
10381
10382               6. Migration is being performed and XBZRLE is active:
10383
10384               -> { "execute": "query-migrate" }
10385               <- {
10386                     "return":{
10387                        "status":"active",
10388                        "capabilities" : [ { "capability": "xbzrle", "state" : true } ],
10389                        "ram":{
10390                           "total":1057024,
10391                           "remaining":1053304,
10392                           "transferred":3720,
10393                           "total-time":12345,
10394                           "setup-time":12345,
10395                           "expected-downtime":12345,
10396                           "duplicate":10,
10397                           "normal":3333,
10398                           "normal-bytes":3412992,
10399                           "dirty-sync-count":15
10400                        },
10401                        "xbzrle-cache":{
10402                           "cache-size":67108864,
10403                           "bytes":20971520,
10404                           "pages":2444343,
10405                           "cache-miss":2244,
10406                           "cache-miss-rate":0.123,
10407                           "overflow":34434
10408                        }
10409                     }
10410                  }
10411
10412       MigrationCapability (Enum)
10413
10414       Migration capabilities enumeration
10415
10416       Values:
10417
10418       "xbzrle"
10419           Migration supports xbzrle (Xor Based Zero Run Length Encoding).
10420           This feature allows us to minimize migration traffic for certain
10421           work loads, by sending compressed difference of the pages
10422
10423       "rdma-pin-all"
10424           Controls whether or not the entire VM memory footprint is mlock()'d
10425           on demand or all at once. Refer to docs/rdma.txt for usage.
10426           Disabled by default. (since 2.0)
10427
10428       "zero-blocks"
10429           During storage migration encode blocks of zeroes efficiently. This
10430           essentially saves 1MB of zeroes per block on the wire. Enabling
10431           requires source and target VM to support this feature. To enable it
10432           is sufficient to enable the capability on the source VM. The
10433           feature is disabled by default. (since 1.6)
10434
10435       "compress"
10436           Use multiple compression threads to accelerate live migration.
10437           This feature can help to reduce the migration traffic, by sending
10438           compressed pages. Please note that if compress and xbzrle are both
10439           on, compress only takes effect in the ram bulk stage, after that,
10440           it will be disabled and only xbzrle takes effect, this can help to
10441           minimize migration traffic. The feature is disabled by default.
10442           (since 2.4 )
10443
10444       "events"
10445           generate events for each migration state change (since 2.4 )
10446
10447       "auto-converge"
10448           If enabled, QEMU will automatically throttle down the guest to
10449           speed up convergence of RAM migration. (since 1.6)
10450
10451       "postcopy-ram"
10452           Start executing on the migration target before all of RAM has been
10453           migrated, pulling the remaining pages along as needed. The capacity
10454           must have the same setting on both source and target or migration
10455           will not even start. NOTE: If the migration fails during postcopy
10456           the VM will fail.  (since 2.6)
10457
10458       "x-colo"
10459           If enabled, migration will never end, and the state of the VM on
10460           the primary side will be migrated continuously to the VM on
10461           secondary side, this process is called COarse-Grain LOck Stepping
10462           (COLO) for Non-stop Service. (since 2.8)
10463
10464       "release-ram"
10465           if enabled, qemu will free the migrated ram pages on the source
10466           during postcopy-ram migration. (since 2.9)
10467
10468       "block"
10469           If enabled, QEMU will also migrate the contents of all block
10470           devices.  Default is disabled.  A possible alternative uses mirror
10471           jobs to a builtin NBD server on the destination, which offers more
10472           flexibility.  (Since 2.10)
10473
10474       "return-path"
10475           If enabled, migration will use the return path even for precopy.
10476           (since 2.10)
10477
10478       "pause-before-switchover"
10479           Pause outgoing migration before serialising device state and before
10480           disabling block IO (since 2.11)
10481
10482       "x-multifd"
10483           Use more than one fd for migration (since 2.11)
10484
10485       "dirty-bitmaps"
10486           If enabled, QEMU will migrate named dirty bitmaps.  (since 2.12)
10487
10488       "postcopy-blocktime"
10489           Calculate downtime for postcopy live migration (since 3.0)
10490
10491       "late-block-activate"
10492           If enabled, the destination will not activate block devices (and
10493           thus take locks) immediately at the end of migration.  (since 3.0)
10494
10495       Since: 1.2
10496
10497       MigrationCapabilityStatus (Object)
10498
10499       Migration capability information
10500
10501       Members:
10502
10503       "capability: MigrationCapability"
10504           capability enum
10505
10506       "state: boolean"
10507           capability state bool
10508
10509       Since: 1.2
10510
10511       migrate-set-capabilities  (Command) Enable/Disable the following
10512       migration capabilities (like xbzrle)
10513
10514       Arguments:
10515
10516       "capabilities: array of MigrationCapabilityStatus"
10517           json array of capability modifications to make
10518
10519       Since: 1.2
10520
10521       Example:
10522
10523               -> { "execute": "migrate-set-capabilities" , "arguments":
10524                    { "capabilities": [ { "capability": "xbzrle", "state": true } ] } }
10525
10526       query-migrate-capabilities  (Command) Returns information about the
10527       current migration capabilities status
10528
10529       Returns: "MigrationCapabilitiesStatus"
10530
10531       Since: 1.2
10532
10533       Example:
10534
10535               -> { "execute": "query-migrate-capabilities" }
10536               <- { "return": [
10537                     {"state": false, "capability": "xbzrle"},
10538                     {"state": false, "capability": "rdma-pin-all"},
10539                     {"state": false, "capability": "auto-converge"},
10540                     {"state": false, "capability": "zero-blocks"},
10541                     {"state": false, "capability": "compress"},
10542                     {"state": true, "capability": "events"},
10543                     {"state": false, "capability": "postcopy-ram"},
10544                     {"state": false, "capability": "x-colo"}
10545                  ]}
10546
10547       MigrationParameter (Enum)
10548
10549       Migration parameters enumeration
10550
10551       Values:
10552
10553       "compress-level"
10554           Set the compression level to be used in live migration, the
10555           compression level is an integer between 0 and 9, where 0 means no
10556           compression, 1 means the best compression speed, and 9 means best
10557           compression ratio which will consume more CPU.
10558
10559       "compress-threads"
10560           Set compression thread count to be used in live migration, the
10561           compression thread count is an integer between 1 and 255.
10562
10563       "decompress-threads"
10564           Set decompression thread count to be used in live migration, the
10565           decompression thread count is an integer between 1 and 255.
10566           Usually, decompression is at least 4 times as fast as compression,
10567           so set the decompress-threads to the number about 1/4 of compress-
10568           threads is adequate.
10569
10570       "cpu-throttle-initial"
10571           Initial percentage of time guest cpus are throttled when migration
10572           auto-converge is activated. The default value is 20. (Since 2.7)
10573
10574       "cpu-throttle-increment"
10575           throttle percentage increase each time auto-converge detects that
10576           migration is not making progress. The default value is 10. (Since
10577           2.7)
10578
10579       "tls-creds"
10580           ID of the 'tls-creds' object that provides credentials for
10581           establishing a TLS connection over the migration data channel.  On
10582           the outgoing side of the migration, the credentials must be for a
10583           'client' endpoint, while for the incoming side the credentials must
10584           be for a 'server' endpoint. Setting this will enable TLS for all
10585           migrations. The default is unset, resulting in unsecured migration
10586           at the QEMU level. (Since 2.7)
10587
10588       "tls-hostname"
10589           hostname of the target host for the migration. This is required
10590           when using x509 based TLS credentials and the migration URI does
10591           not already include a hostname. For example if using fd: or exec:
10592           based migration, the hostname must be provided so that the server's
10593           x509 certificate identity can be validated. (Since 2.7)
10594
10595       "max-bandwidth"
10596           to set maximum speed for migration. maximum speed in bytes per
10597           second. (Since 2.8)
10598
10599       "downtime-limit"
10600           set maximum tolerated downtime for migration. maximum downtime in
10601           milliseconds (Since 2.8)
10602
10603       "x-checkpoint-delay"
10604           The delay time (in ms) between two COLO checkpoints in periodic
10605           mode. (Since 2.8)
10606
10607       "block-incremental"
10608           Affects how much storage is migrated when the block migration
10609           capability is enabled.  When false, the entire storage backing
10610           chain is migrated into a flattened image at the destination; when
10611           true, only the active qcow2 layer is migrated and the destination
10612           must already have access to the same backing chain as was used on
10613           the source.  (since 2.10)
10614
10615       "x-multifd-channels"
10616           Number of channels used to migrate data in parallel. This is the
10617           same number that the number of sockets used for migration.  The
10618           default value is 2 (since 2.11)
10619
10620       "x-multifd-page-count"
10621           Number of pages sent together to a thread.  The default value is 16
10622           (since 2.11)
10623
10624       "xbzrle-cache-size"
10625           cache size to be used by XBZRLE migration.  It needs to be a
10626           multiple of the target page size and a power of 2 (Since 2.11)
10627
10628       "max-postcopy-bandwidth"
10629           Background transfer bandwidth during postcopy.  Defaults to 0
10630           (unlimited).  In bytes per second.  (Since 3.0)
10631
10632       Since: 2.4
10633
10634       MigrateSetParameters (Object)
10635
10636       Members:
10637
10638       "compress-level: int" (optional)
10639           compression level
10640
10641       "compress-threads: int" (optional)
10642           compression thread count
10643
10644       "decompress-threads: int" (optional)
10645           decompression thread count
10646
10647       "cpu-throttle-initial: int" (optional)
10648           Initial percentage of time guest cpus are throttled when migration
10649           auto-converge is activated.  The default value is 20. (Since 2.7)
10650
10651       "cpu-throttle-increment: int" (optional)
10652           throttle percentage increase each time auto-converge detects that
10653           migration is not making progress. The default value is 10. (Since
10654           2.7)
10655
10656       "tls-creds: StrOrNull" (optional)
10657           ID of the 'tls-creds' object that provides credentials for
10658           establishing a TLS connection over the migration data channel. On
10659           the outgoing side of the migration, the credentials must be for a
10660           'client' endpoint, while for the incoming side the credentials must
10661           be for a 'server' endpoint. Setting this to a non-empty string
10662           enables TLS for all migrations.  An empty string means that QEMU
10663           will use plain text mode for migration, rather than TLS (Since 2.9)
10664           Previously (since 2.7), this was reported by omitting tls-creds
10665           instead.
10666
10667       "tls-hostname: StrOrNull" (optional)
10668           hostname of the target host for the migration. This is required
10669           when using x509 based TLS credentials and the migration URI does
10670           not already include a hostname. For example if using fd: or exec:
10671           based migration, the hostname must be provided so that the server's
10672           x509 certificate identity can be validated. (Since 2.7) An empty
10673           string means that QEMU will use the hostname associated with the
10674           migration URI, if any. (Since 2.9) Previously (since 2.7), this was
10675           reported by omitting tls-hostname instead.
10676
10677       "max-bandwidth: int" (optional)
10678           to set maximum speed for migration. maximum speed in bytes per
10679           second. (Since 2.8)
10680
10681       "downtime-limit: int" (optional)
10682           set maximum tolerated downtime for migration. maximum downtime in
10683           milliseconds (Since 2.8)
10684
10685       "x-checkpoint-delay: int" (optional)
10686           the delay time between two COLO checkpoints. (Since 2.8)
10687
10688       "block-incremental: boolean" (optional)
10689           Affects how much storage is migrated when the block migration
10690           capability is enabled.  When false, the entire storage backing
10691           chain is migrated into a flattened image at the destination; when
10692           true, only the active qcow2 layer is migrated and the destination
10693           must already have access to the same backing chain as was used on
10694           the source.  (since 2.10)
10695
10696       "x-multifd-channels: int" (optional)
10697           Number of channels used to migrate data in parallel. This is the
10698           same number that the number of sockets used for migration.  The
10699           default value is 2 (since 2.11)
10700
10701       "x-multifd-page-count: int" (optional)
10702           Number of pages sent together to a thread.  The default value is 16
10703           (since 2.11)
10704
10705       "xbzrle-cache-size: int" (optional)
10706           cache size to be used by XBZRLE migration.  It needs to be a
10707           multiple of the target page size and a power of 2 (Since 2.11)
10708
10709       "max-postcopy-bandwidth: int" (optional)
10710           Background transfer bandwidth during postcopy.  Defaults to 0
10711           (unlimited).  In bytes per second.  (Since 3.0)
10712
10713       Since: 2.4
10714
10715       migrate-set-parameters  (Command) Set various migration parameters.
10716
10717       Arguments: the members of "MigrateSetParameters"
10718
10719       Since: 2.4
10720
10721       Example:
10722
10723               -> { "execute": "migrate-set-parameters" ,
10724                    "arguments": { "compress-level": 1 } }
10725
10726       MigrationParameters (Object)
10727
10728       The optional members aren't actually optional.
10729
10730       Members:
10731
10732       "compress-level: int" (optional)
10733           compression level
10734
10735       "compress-threads: int" (optional)
10736           compression thread count
10737
10738       "decompress-threads: int" (optional)
10739           decompression thread count
10740
10741       "cpu-throttle-initial: int" (optional)
10742           Initial percentage of time guest cpus are throttled when migration
10743           auto-converge is activated.  (Since 2.7)
10744
10745       "cpu-throttle-increment: int" (optional)
10746           throttle percentage increase each time auto-converge detects that
10747           migration is not making progress. (Since 2.7)
10748
10749       "tls-creds: string" (optional)
10750           ID of the 'tls-creds' object that provides credentials for
10751           establishing a TLS connection over the migration data channel. On
10752           the outgoing side of the migration, the credentials must be for a
10753           'client' endpoint, while for the incoming side the credentials must
10754           be for a 'server' endpoint.  An empty string means that QEMU will
10755           use plain text mode for migration, rather than TLS (Since 2.7)
10756           Note: 2.8 reports this by omitting tls-creds instead.
10757
10758       "tls-hostname: string" (optional)
10759           hostname of the target host for the migration. This is required
10760           when using x509 based TLS credentials and the migration URI does
10761           not already include a hostname. For example if using fd: or exec:
10762           based migration, the hostname must be provided so that the server's
10763           x509 certificate identity can be validated. (Since 2.7) An empty
10764           string means that QEMU will use the hostname associated with the
10765           migration URI, if any. (Since 2.9) Note: 2.8 reports this by
10766           omitting tls-hostname instead.
10767
10768       "max-bandwidth: int" (optional)
10769           to set maximum speed for migration. maximum speed in bytes per
10770           second. (Since 2.8)
10771
10772       "downtime-limit: int" (optional)
10773           set maximum tolerated downtime for migration. maximum downtime in
10774           milliseconds (Since 2.8)
10775
10776       "x-checkpoint-delay: int" (optional)
10777           the delay time between two COLO checkpoints. (Since 2.8)
10778
10779       "block-incremental: boolean" (optional)
10780           Affects how much storage is migrated when the block migration
10781           capability is enabled.  When false, the entire storage backing
10782           chain is migrated into a flattened image at the destination; when
10783           true, only the active qcow2 layer is migrated and the destination
10784           must already have access to the same backing chain as was used on
10785           the source.  (since 2.10)
10786
10787       "x-multifd-channels: int" (optional)
10788           Number of channels used to migrate data in parallel. This is the
10789           same number that the number of sockets used for migration.  The
10790           default value is 2 (since 2.11)
10791
10792       "x-multifd-page-count: int" (optional)
10793           Number of pages sent together to a thread.  The default value is 16
10794           (since 2.11)
10795
10796       "xbzrle-cache-size: int" (optional)
10797           cache size to be used by XBZRLE migration.  It needs to be a
10798           multiple of the target page size and a power of 2 (Since 2.11)
10799
10800       "max-postcopy-bandwidth: int" (optional)
10801           Background transfer bandwidth during postcopy.  Defaults to 0
10802           (unlimited).  In bytes per second.  (Since 3.0)
10803
10804       Since: 2.4
10805
10806       query-migrate-parameters  (Command) Returns information about the
10807       current migration parameters
10808
10809       Returns: "MigrationParameters"
10810
10811       Since: 2.4
10812
10813       Example:
10814
10815               -> { "execute": "query-migrate-parameters" }
10816               <- { "return": {
10817                        "decompress-threads": 2,
10818                        "cpu-throttle-increment": 10,
10819                        "compress-threads": 8,
10820                        "compress-level": 1,
10821                        "cpu-throttle-initial": 20,
10822                        "max-bandwidth": 33554432,
10823                        "downtime-limit": 300
10824                     }
10825                  }
10826
10827       client_migrate_info  (Command) Set migration information for remote
10828       display.  This makes the server ask the client to automatically
10829       reconnect using the new parameters once migration finished
10830       successfully.  Only implemented for SPICE.
10831
10832       Arguments:
10833
10834       "protocol: string"
10835           must be "spice"
10836
10837       "hostname: string"
10838           migration target hostname
10839
10840       "port: int" (optional)
10841           spice tcp port for plaintext channels
10842
10843       "tls-port: int" (optional)
10844           spice tcp port for tls-secured channels
10845
10846       "cert-subject: string" (optional)
10847           server certificate subject
10848
10849       Since: 0.14.0
10850
10851       Example:
10852
10853               -> { "execute": "client_migrate_info",
10854                    "arguments": { "protocol": "spice",
10855                                   "hostname": "virt42.lab.kraxel.org",
10856                                   "port": 1234 } }
10857               <- { "return": {} }
10858
10859       migrate-start-postcopy  (Command) Followup to a migration command to
10860       switch the migration to postcopy mode.  The postcopy-ram capability
10861       must be set on both source and destination before the original
10862       migration command.
10863
10864       Since: 2.5
10865
10866       Example:
10867
10868               -> { "execute": "migrate-start-postcopy" }
10869               <- { "return": {} }
10870
10871       MIGRATION  (Event) Emitted when a migration event happens
10872
10873       Arguments:
10874
10875       "status: MigrationStatus"
10876           "MigrationStatus" describing the current migration status.
10877
10878       Since: 2.4
10879
10880       Example:
10881
10882               <- {"timestamp": {"seconds": 1432121972, "microseconds": 744001},
10883                   "event": "MIGRATION",
10884                   "data": {"status": "completed"} }
10885
10886       MIGRATION_PASS  (Event) Emitted from the source side of a migration at
10887       the start of each pass (when it syncs the dirty bitmap)
10888
10889       Arguments:
10890
10891       "pass: int"
10892           An incrementing count (starting at 1 on the first pass)
10893
10894       Since: 2.6
10895
10896       Example:
10897
10898               { "timestamp": {"seconds": 1449669631, "microseconds": 239225},
10899                 "event": "MIGRATION_PASS", "data": {"pass": 2} }
10900
10901       COLOMessage (Enum)
10902
10903       The message transmission between Primary side and Secondary side.
10904
10905       Values:
10906
10907       "checkpoint-ready"
10908           Secondary VM (SVM) is ready for checkpointing
10909
10910       "checkpoint-request"
10911           Primary VM (PVM) tells SVM to prepare for checkpointing
10912
10913       "checkpoint-reply"
10914           SVM gets PVM's checkpoint request
10915
10916       "vmstate-send"
10917           VM's state will be sent by PVM.
10918
10919       "vmstate-size"
10920           The total size of VMstate.
10921
10922       "vmstate-received"
10923           VM's state has been received by SVM.
10924
10925       "vmstate-loaded"
10926           VM's state has been loaded by SVM.
10927
10928       Since: 2.8
10929
10930       COLOMode (Enum)
10931
10932       The colo mode
10933
10934       Values:
10935
10936       "unknown"
10937           unknown mode
10938
10939       "primary"
10940           master side
10941
10942       "secondary"
10943           slave side
10944
10945       Since: 2.8
10946
10947       FailoverStatus (Enum)
10948
10949       An enumeration of COLO failover status
10950
10951       Values:
10952
10953       "none"
10954           no failover has ever happened
10955
10956       "require"
10957           got failover requirement but not handled
10958
10959       "active"
10960           in the process of doing failover
10961
10962       "completed"
10963           finish the process of failover
10964
10965       "relaunch"
10966           restart the failover process, from 'none' -> 'completed' (Since
10967           2.9)
10968
10969       Since: 2.8
10970
10971       x-colo-lost-heartbeat  (Command) Tell qemu that heartbeat is lost,
10972       request it to do takeover procedures.  If this command is sent to the
10973       PVM, the Primary side will exit COLO mode.  If sent to the Secondary,
10974       the Secondary side will run failover work, then takes over server
10975       operation to become the service VM.
10976
10977       Since: 2.8
10978
10979       Example:
10980
10981               -> { "execute": "x-colo-lost-heartbeat" }
10982               <- { "return": {} }
10983
10984       migrate_cancel  (Command) Cancel the current executing migration
10985       process.
10986
10987       Returns: nothing on success
10988
10989       Notes: This command succeeds even if there is no migration process
10990       running.
10991
10992       Since: 0.14.0
10993
10994       Example:
10995
10996               -> { "execute": "migrate_cancel" }
10997               <- { "return": {} }
10998
10999       migrate-continue  (Command) Continue migration when it's in a paused
11000       state.
11001
11002       Arguments:
11003
11004       "state: MigrationStatus"
11005           The state the migration is currently expected to be in
11006
11007       Returns: nothing on success
11008
11009       Since: 2.11
11010
11011       Example:
11012
11013               -> { "execute": "migrate-continue" , "arguments":
11014                    { "state": "pre-switchover" } }
11015               <- { "return": {} }
11016
11017       migrate_set_downtime  (Command) Set maximum tolerated downtime for
11018       migration.
11019
11020       Arguments:
11021
11022       "value: number"
11023           maximum downtime in seconds
11024
11025       Returns: nothing on success
11026
11027       Notes: This command is deprecated in favor of 'migrate-set-parameters'
11028
11029       Since: 0.14.0
11030
11031       Example:
11032
11033               -> { "execute": "migrate_set_downtime", "arguments": { "value": 0.1 } }
11034               <- { "return": {} }
11035
11036       migrate_set_speed  (Command) Set maximum speed for migration.
11037
11038       Arguments:
11039
11040       "value: int"
11041           maximum speed in bytes per second.
11042
11043       Returns: nothing on success
11044
11045       Notes: This command is deprecated in favor of 'migrate-set-parameters'
11046
11047       Since: 0.14.0
11048
11049       Example:
11050
11051               -> { "execute": "migrate_set_speed", "arguments": { "value": 1024 } }
11052               <- { "return": {} }
11053
11054       migrate-set-cache-size  (Command) Set cache size to be used by XBZRLE
11055       migration
11056
11057       Arguments:
11058
11059       "value: int"
11060           cache size in bytes
11061
11062       The size will be rounded down to the nearest power of 2.  The cache
11063       size can be modified before and during ongoing migration
11064
11065       Returns: nothing on success
11066
11067       Notes: This command is deprecated in favor of 'migrate-set-parameters'
11068
11069       Since: 1.2
11070
11071       Example:
11072
11073               -> { "execute": "migrate-set-cache-size",
11074                    "arguments": { "value": 536870912 } }
11075               <- { "return": {} }
11076
11077       query-migrate-cache-size  (Command) Query migration XBZRLE cache size
11078
11079       Returns: XBZRLE cache size in bytes
11080
11081       Notes: This command is deprecated in favor of
11082       'query-migrate-parameters'
11083
11084       Since: 1.2
11085
11086       Example:
11087
11088               -> { "execute": "query-migrate-cache-size" }
11089               <- { "return": 67108864 }
11090
11091       migrate  (Command) Migrates the current running guest to another
11092       Virtual Machine.
11093
11094       Arguments:
11095
11096       "uri: string"
11097           the Uniform Resource Identifier of the destination VM
11098
11099       "blk: boolean" (optional)
11100           do block migration (full disk copy)
11101
11102       "inc: boolean" (optional)
11103           incremental disk copy migration
11104
11105       "detach: boolean" (optional)
11106           this argument exists only for compatibility reasons and is ignored
11107           by QEMU
11108
11109       "resume: boolean" (optional)
11110           resume one paused migration, default "off". (since 3.0)
11111
11112       Returns: nothing on success
11113
11114       Since: 0.14.0
11115
11116       Notes:
11117
11118       1.  The 'query-migrate' command should be used to check migration's
11119           progress and final result (this information is provided by the
11120           'status' member)
11121
11122       2.  All boolean arguments default to false
11123
11124       3.  The user Monitor's "detach" argument is invalid in QMP and should
11125           not be used
11126
11127       Example:
11128
11129               -> { "execute": "migrate", "arguments": { "uri": "tcp:0:4446" } }
11130               <- { "return": {} }
11131
11132       migrate-incoming  (Command) Start an incoming migration, the qemu must
11133       have been started with -incoming defer
11134
11135       Arguments:
11136
11137       "uri: string"
11138           The Uniform Resource Identifier identifying the source or address
11139           to listen on
11140
11141       Returns: nothing on success
11142
11143       Since: 2.3
11144
11145       Notes:
11146
11147       1.  It's a bad idea to use a string for the uri, but it needs to stay
11148           compatible with -incoming and the format of the uri is already
11149           exposed above libvirt.
11150
11151       2.  QEMU must be started with -incoming defer to allow migrate-incoming
11152           to be used.
11153
11154       3.  The uri format is the same as for -incoming
11155
11156       Example:
11157
11158               -> { "execute": "migrate-incoming",
11159                    "arguments": { "uri": "tcp::4446" } }
11160               <- { "return": {} }
11161
11162       xen-save-devices-state  (Command) Save the state of all devices to
11163       file. The RAM and the block devices of the VM are not saved by this
11164       command.
11165
11166       Arguments:
11167
11168       "filename: string"
11169           the file to save the state of the devices to as binary data. See
11170           xen-save-devices-state.txt for a description of the binary format.
11171
11172       "live: boolean" (optional)
11173           Optional argument to ask QEMU to treat this command as part of a
11174           live migration. Default to true. (since 2.11)
11175
11176       Returns: Nothing on success
11177
11178       Since: 1.1
11179
11180       Example:
11181
11182               -> { "execute": "xen-save-devices-state",
11183                    "arguments": { "filename": "/tmp/save" } }
11184               <- { "return": {} }
11185
11186       xen-set-replication  (Command) Enable or disable replication.
11187
11188       Arguments:
11189
11190       "enable: boolean"
11191           true to enable, false to disable.
11192
11193       "primary: boolean"
11194           true for primary or false for secondary.
11195
11196       "failover: boolean" (optional)
11197           true to do failover, false to stop. but cannot be specified if
11198           'enable' is true. default value is false.
11199
11200       Returns: nothing.
11201
11202       Example:
11203
11204               -> { "execute": "xen-set-replication",
11205                    "arguments": {"enable": true, "primary": false} }
11206               <- { "return": {} }
11207
11208       Since: 2.9
11209
11210       ReplicationStatus (Object)
11211
11212       The result format for 'query-xen-replication-status'.
11213
11214       Members:
11215
11216       "error: boolean"
11217           true if an error happened, false if replication is normal.
11218
11219       "desc: string" (optional)
11220           the human readable error description string, when "error" is
11221           'true'.
11222
11223       Since: 2.9
11224
11225       query-xen-replication-status  (Command) Query replication status while
11226       the vm is running.
11227
11228       Returns: A "ReplicationResult" object showing the status.
11229
11230       Example:
11231
11232               -> { "execute": "query-xen-replication-status" }
11233               <- { "return": { "error": false } }
11234
11235       Since: 2.9
11236
11237       xen-colo-do-checkpoint  (Command) Xen uses this command to notify
11238       replication to trigger a checkpoint.
11239
11240       Returns: nothing.
11241
11242       Example:
11243
11244               -> { "execute": "xen-colo-do-checkpoint" }
11245               <- { "return": {} }
11246
11247       Since: 2.9
11248
11249       migrate-recover  (Command) Provide a recovery migration stream URI.
11250
11251       Arguments:
11252
11253       "uri: string"
11254           the URI to be used for the recovery of migration stream.
11255
11256       Returns: nothing.
11257
11258       Example:
11259
11260               -> { "execute": "migrate-recover",
11261                    "arguments": { "uri": "tcp:192.168.1.200:12345" } }
11262               <- { "return": {} }
11263
11264       Since: 3.0
11265
11266       migrate-pause  (Command) Pause a migration.  Currently it only supports
11267       postcopy.
11268
11269       Returns: nothing.
11270
11271       Example:
11272
11273               -> { "execute": "migrate-pause" }
11274               <- { "return": {} }
11275
11276       Since: 3.0
11277
11278   Transactions
11279       Abort (Object)
11280
11281       This action can be used to test transaction failure.
11282
11283       Since: 1.6
11284
11285       ActionCompletionMode (Enum)
11286
11287       An enumeration of Transactional completion modes.
11288
11289       Values:
11290
11291       "individual"
11292           Do not attempt to cancel any other Actions if any Actions fail
11293           after the Transaction request succeeds. All Actions that can
11294           complete successfully will do so without waiting on others.  This
11295           is the default.
11296
11297       "grouped"
11298           If any Action fails after the Transaction succeeds, cancel all
11299           Actions. Actions do not complete until all Actions are ready to
11300           complete. May be rejected by Actions that do not support this
11301           completion mode.
11302
11303       Since: 2.5
11304
11305       TransactionAction (Object)
11306
11307       A discriminated record of operations that can be performed with
11308       "transaction". Action "type" can be:
11309
11310       -   "abort": since 1.6
11311
11312       -   "block-dirty-bitmap-add": since 2.5
11313
11314       -   "block-dirty-bitmap-clear": since 2.5
11315
11316       -   "x-block-dirty-bitmap-enable": since 3.0
11317
11318       -   "x-block-dirty-bitmap-disable": since 3.0
11319
11320       -   "blockdev-backup": since 2.3
11321
11322       -   "blockdev-snapshot": since 2.5
11323
11324       -   "blockdev-snapshot-internal-sync": since 1.7
11325
11326       -   "blockdev-snapshot-sync": since 1.1
11327
11328       -   "drive-backup": since 1.6
11329
11330       Members:
11331
11332       "type"
11333           One of "abort", "block-dirty-bitmap-add", "block-dirty-bitmap-
11334           clear", "x-block-dirty-bitmap-enable", "x-block-dirty-bitmap-
11335           disable", "blockdev-backup", "blockdev-snapshot", "blockdev-
11336           snapshot-internal-sync", "blockdev-snapshot-sync", "drive-backup"
11337
11338       "data: Abort" when "type" is "abort"
11339       "data: BlockDirtyBitmapAdd" when "type" is "block-dirty-bitmap-add"
11340       "data: BlockDirtyBitmap" when "type" is "block-dirty-bitmap-clear"
11341       "data: BlockDirtyBitmap" when "type" is "x-block-dirty-bitmap-enable"
11342       "data: BlockDirtyBitmap" when "type" is "x-block-dirty-bitmap-disable"
11343       "data: BlockdevBackup" when "type" is "blockdev-backup"
11344       "data: BlockdevSnapshot" when "type" is "blockdev-snapshot"
11345       "data: BlockdevSnapshotInternal" when "type" is "blockdev-snapshot-
11346       internal-sync"
11347       "data: BlockdevSnapshotSync" when "type" is "blockdev-snapshot-sync"
11348       "data: DriveBackup" when "type" is "drive-backup"
11349
11350       Since: 1.1
11351
11352       TransactionProperties (Object)
11353
11354       Optional arguments to modify the behavior of a Transaction.
11355
11356       Members:
11357
11358       "completion-mode: ActionCompletionMode" (optional)
11359           Controls how jobs launched asynchronously by Actions will complete
11360           or fail as a group.  See "ActionCompletionMode" for details.
11361
11362       Since: 2.5
11363
11364       transaction  (Command) Executes a number of transactionable QMP
11365       commands atomically. If any operation fails, then the entire set of
11366       actions will be abandoned and the appropriate error returned.
11367
11368       For external snapshots, the dictionary contains the device, the file to
11369       use for the new snapshot, and the format.  The default format, if not
11370       specified, is qcow2.
11371
11372       Each new snapshot defaults to being created by QEMU (wiping any
11373       contents if the file already exists), but it is also possible to reuse
11374       an externally-created file.  In the latter case, you should ensure that
11375       the new image file has the same contents as the current one; QEMU
11376       cannot perform any meaningful check.  Typically this is achieved by
11377       using the current image file as the backing file for the new image.
11378
11379       On failure, the original disks pre-snapshot attempt will be used.
11380
11381       For internal snapshots, the dictionary contains the device and the
11382       snapshot's name.  If an internal snapshot matching name already exists,
11383       the request will be rejected.  Only some image formats support it, for
11384       example, qcow2, rbd, and sheepdog.
11385
11386       On failure, qemu will try delete the newly created internal snapshot in
11387       the transaction.  When an I/O error occurs during deletion, the user
11388       needs to fix it later with qemu-img or other command.
11389
11390       Arguments:
11391
11392       "actions: array of TransactionAction"
11393           List of "TransactionAction"; information needed for the respective
11394           operations.
11395
11396       "properties: TransactionProperties" (optional)
11397           structure of additional options to control the execution of the
11398           transaction. See "TransactionProperties" for additional detail.
11399
11400       Returns: nothing on success
11401
11402       Errors depend on the operations of the transaction
11403
11404       Note: The transaction aborts on the first failure.  Therefore, there
11405       will be information on only one failed operation returned in an error
11406       condition, and subsequent actions will not have been attempted.
11407
11408       Since: 1.1
11409
11410       Example:
11411
11412               -> { "execute": "transaction",
11413                    "arguments": { "actions": [
11414                        { "type": "blockdev-snapshot-sync", "data" : { "device": "ide-hd0",
11415                                                    "snapshot-file": "/some/place/my-image",
11416                                                    "format": "qcow2" } },
11417                        { "type": "blockdev-snapshot-sync", "data" : { "node-name": "myfile",
11418                                                    "snapshot-file": "/some/place/my-image2",
11419                                                    "snapshot-node-name": "node3432",
11420                                                    "mode": "existing",
11421                                                    "format": "qcow2" } },
11422                        { "type": "blockdev-snapshot-sync", "data" : { "device": "ide-hd1",
11423                                                    "snapshot-file": "/some/place/my-image2",
11424                                                    "mode": "existing",
11425                                                    "format": "qcow2" } },
11426                        { "type": "blockdev-snapshot-internal-sync", "data" : {
11427                                                    "device": "ide-hd2",
11428                                                    "name": "snapshot0" } } ] } }
11429               <- { "return": {} }
11430
11431   Tracing
11432       TraceEventState (Enum)
11433
11434       State of a tracing event.
11435
11436       Values:
11437
11438       "unavailable"
11439           The event is statically disabled.
11440
11441       "disabled"
11442           The event is dynamically disabled.
11443
11444       "enabled"
11445           The event is dynamically enabled.
11446
11447       Since: 2.2
11448
11449       TraceEventInfo (Object)
11450
11451       Information of a tracing event.
11452
11453       Members:
11454
11455       "name: string"
11456           Event name.
11457
11458       "state: TraceEventState"
11459           Tracing state.
11460
11461       "vcpu: boolean"
11462           Whether this is a per-vCPU event (since 2.7).
11463
11464       An event is per-vCPU if it has the "vcpu" property in the "trace-
11465       events" files.
11466
11467       Since: 2.2
11468
11469       trace-event-get-state  (Command) Query the state of events.
11470
11471       Arguments:
11472
11473       "name: string"
11474           Event name pattern (case-sensitive glob).
11475
11476       "vcpu: int" (optional)
11477           The vCPU to query (any by default; since 2.7).
11478
11479       Returns: a list of "TraceEventInfo" for the matching events
11480
11481       An event is returned if:
11482
11483       -   its name matches the "name" pattern, and
11484
11485       -   if "vcpu" is given, the event has the "vcpu" property.
11486
11487       Therefore, if "vcpu" is given, the operation will only match per-vCPU
11488       events, returning their state on the specified vCPU. Special case: if
11489       "name" is an exact match, "vcpu" is given and the event does not have
11490       the "vcpu" property, an error is returned.
11491
11492       Since: 2.2
11493
11494       Example:
11495
11496               -> { "execute": "trace-event-get-state",
11497                    "arguments": { "name": "qemu_memalign" } }
11498               <- { "return": [ { "name": "qemu_memalign", "state": "disabled" } ] }
11499
11500       trace-event-set-state  (Command) Set the dynamic tracing state of
11501       events.
11502
11503       Arguments:
11504
11505       "name: string"
11506           Event name pattern (case-sensitive glob).
11507
11508       "enable: boolean"
11509           Whether to enable tracing.
11510
11511       "ignore-unavailable: boolean" (optional)
11512           Do not match unavailable events with "name".
11513
11514       "vcpu: int" (optional)
11515           The vCPU to act upon (all by default; since 2.7).
11516
11517       An event's state is modified if:
11518
11519       -   its name matches the "name" pattern, and
11520
11521       -   if "vcpu" is given, the event has the "vcpu" property.
11522
11523       Therefore, if "vcpu" is given, the operation will only match per-vCPU
11524       events, setting their state on the specified vCPU. Special case: if
11525       "name" is an exact match, "vcpu" is given and the event does not have
11526       the "vcpu" property, an error is returned.
11527
11528       Since: 2.2
11529
11530       Example:
11531
11532               -> { "execute": "trace-event-set-state",
11533                    "arguments": { "name": "qemu_memalign", "enable": "true" } }
11534               <- { "return": {} }
11535
11536   QMP introspection
11537       query-qmp-schema  (Command) Command query-qmp-schema exposes the QMP
11538       wire ABI as an array of SchemaInfo.  This lets QMP clients figure out
11539       what commands and events are available in this QEMU, and their
11540       parameters and results.
11541
11542       However, the SchemaInfo can't reflect all the rules and restrictions
11543       that apply to QMP.  It's interface introspection (figuring out what's
11544       there), not interface specification.  The specification is in the QAPI
11545       schema.
11546
11547       Furthermore, while we strive to keep the QMP wire format backwards-
11548       compatible across qemu versions, the introspection output is not
11549       guaranteed to have the same stability.  For example, one version of
11550       qemu may list an object member as an optional non-variant, while
11551       another lists the same member only through the object's variants; or
11552       the type of a member may change from a generic string into a specific
11553       enum or from one specific type into an alternate that includes the
11554       original type alongside something else.
11555
11556       Returns: array of "SchemaInfo", where each element describes an entity
11557       in the ABI: command, event, type, ...
11558
11559       The order of the various SchemaInfo is unspecified; however, all names
11560       are guaranteed to be unique (no name will be duplicated with different
11561       meta-types).
11562
11563       Note: the QAPI schema is also used to help define internal interfaces,
11564       by defining QAPI types.  These are not part of the QMP wire ABI, and
11565       therefore not returned by this command.
11566
11567       Since: 2.5
11568
11569       SchemaMetaType (Enum)
11570
11571       This is a "SchemaInfo"'s meta type, i.e. the kind of entity it
11572       describes.
11573
11574       Values:
11575
11576       "builtin"
11577           a predefined type such as 'int' or 'bool'.
11578
11579       "enum"
11580           an enumeration type
11581
11582       "array"
11583           an array type
11584
11585       "object"
11586           an object type (struct or union)
11587
11588       "alternate"
11589           an alternate type
11590
11591       "command"
11592           a QMP command
11593
11594       "event"
11595           a QMP event
11596
11597       Since: 2.5
11598
11599       SchemaInfo (Object)
11600
11601       Members:
11602
11603       "name: string"
11604           the entity's name, inherited from "base".  The SchemaInfo is always
11605           referenced by this name.  Commands and events have the name defined
11606           in the QAPI schema.  Unlike command and event names, type names are
11607           not part of the wire ABI.  Consequently, type names are meaningless
11608           strings here, although they are still guaranteed unique regardless
11609           of "meta-type".
11610
11611       "meta-type: SchemaMetaType"
11612           the entity's meta type, inherited from "base".
11613
11614       The members of "SchemaInfoBuiltin" when "meta-type" is "builtin"
11615       The members of "SchemaInfoEnum" when "meta-type" is "enum"
11616       The members of "SchemaInfoArray" when "meta-type" is "array"
11617       The members of "SchemaInfoObject" when "meta-type" is "object"
11618       The members of "SchemaInfoAlternate" when "meta-type" is "alternate"
11619       The members of "SchemaInfoCommand" when "meta-type" is "command"
11620       The members of "SchemaInfoEvent" when "meta-type" is "event"
11621
11622       Additional members depend on the value of "meta-type".
11623
11624       Since: 2.5
11625
11626       SchemaInfoBuiltin (Object)
11627
11628       Additional SchemaInfo members for meta-type 'builtin'.
11629
11630       Members:
11631
11632       "json-type: JSONType"
11633           the JSON type used for this type on the wire.
11634
11635       Since: 2.5
11636
11637       JSONType (Enum)
11638
11639       The four primitive and two structured types according to RFC 7159
11640       section 1, plus 'int' (split off 'number'), plus the obvious top type
11641       'value'.
11642
11643       Values:
11644
11645       "string"
11646           Not documented
11647
11648       "number"
11649           Not documented
11650
11651       "int"
11652           Not documented
11653
11654       "boolean"
11655           Not documented
11656
11657       "null"
11658           Not documented
11659
11660       "object"
11661           Not documented
11662
11663       "array"
11664           Not documented
11665
11666       "value"
11667           Not documented
11668
11669       Since: 2.5
11670
11671       SchemaInfoEnum (Object)
11672
11673       Additional SchemaInfo members for meta-type 'enum'.
11674
11675       Members:
11676
11677       "values: array of string"
11678           the enumeration type's values, in no particular order.
11679
11680       Values of this type are JSON string on the wire.
11681
11682       Since: 2.5
11683
11684       SchemaInfoArray (Object)
11685
11686       Additional SchemaInfo members for meta-type 'array'.
11687
11688       Members:
11689
11690       "element-type: string"
11691           the array type's element type.
11692
11693       Values of this type are JSON array on the wire.
11694
11695       Since: 2.5
11696
11697       SchemaInfoObject (Object)
11698
11699       Additional SchemaInfo members for meta-type 'object'.
11700
11701       Members:
11702
11703       "members: array of SchemaInfoObjectMember"
11704           the object type's (non-variant) members, in no particular order.
11705
11706       "tag: string" (optional)
11707           the name of the member serving as type tag.  An element of
11708           "members" with this name must exist.
11709
11710       "variants: array of SchemaInfoObjectVariant" (optional)
11711           variant members, i.e. additional members that depend on the type
11712           tag's value.  Present exactly when "tag" is present.  The variants
11713           are in no particular order, and may even differ from the order of
11714           the values of the enum type of the "tag".
11715
11716       Values of this type are JSON object on the wire.
11717
11718       Since: 2.5
11719
11720       SchemaInfoObjectMember (Object)
11721
11722       An object member.
11723
11724       Members:
11725
11726       "name: string"
11727           the member's name, as defined in the QAPI schema.
11728
11729       "type: string"
11730           the name of the member's type.
11731
11732       "default: value" (optional)
11733           default when used as command parameter.  If absent, the parameter
11734           is mandatory.  If present, the value must be null.  The parameter
11735           is optional, and behavior when it's missing is not specified here.
11736           Future extension: if present and non-null, the parameter is
11737           optional, and defaults to this value.
11738
11739       Since: 2.5
11740
11741       SchemaInfoObjectVariant (Object)
11742
11743       The variant members for a value of the type tag.
11744
11745       Members:
11746
11747       "case: string"
11748           a value of the type tag.
11749
11750       "type: string"
11751           the name of the object type that provides the variant members when
11752           the type tag has value "case".
11753
11754       Since: 2.5
11755
11756       SchemaInfoAlternate (Object)
11757
11758       Additional SchemaInfo members for meta-type 'alternate'.
11759
11760       Members:
11761
11762       "members: array of SchemaInfoAlternateMember"
11763           the alternate type's members, in no particular order.  The members'
11764           wire encoding is distinct, see docs/devel/qapi-code-gen.txt section
11765           Alternate types.
11766
11767       On the wire, this can be any of the members.
11768
11769       Since: 2.5
11770
11771       SchemaInfoAlternateMember (Object)
11772
11773       An alternate member.
11774
11775       Members:
11776
11777       "type: string"
11778           the name of the member's type.
11779
11780       Since: 2.5
11781
11782       SchemaInfoCommand (Object)
11783
11784       Additional SchemaInfo members for meta-type 'command'.
11785
11786       Members:
11787
11788       "arg-type: string"
11789           the name of the object type that provides the command's parameters.
11790
11791       "ret-type: string"
11792           the name of the command's result type.
11793
11794       "allow-oob: boolean" (optional)
11795           whether the command allows out-of-band execution, defaults to false
11796           (Since: 2.12)
11797
11798       TODO: "success-response" (currently irrelevant, because it's QGA, not
11799       QMP)
11800
11801       Since: 2.5
11802
11803       SchemaInfoEvent (Object)
11804
11805       Additional SchemaInfo members for meta-type 'event'.
11806
11807       Members:
11808
11809       "arg-type: string"
11810           the name of the object type that provides the event's parameters.
11811
11812       Since: 2.5
11813
11814   Miscellanea
11815       qmp_capabilities  (Command) Enable QMP capabilities.
11816
11817       Arguments:
11818
11819       Arguments:
11820
11821       "enable: array of QMPCapability" (optional)
11822           An optional list of QMPCapability values to enable.  The client
11823           must not enable any capability that is not mentioned in the QMP
11824           greeting message.  If the field is not provided, it means no QMP
11825           capabilities will be enabled.  (since 2.12)
11826
11827       Example:
11828
11829               -> { "execute": "qmp_capabilities",
11830                    "arguments": { "enable": [ "oob" ] } }
11831               <- { "return": {} }
11832
11833       Notes: This command is valid exactly when first connecting: it must be
11834       issued before any other command will be accepted, and will fail once
11835       the monitor is accepting other commands. (see qemu
11836       docs/interop/qmp-spec.txt)
11837
11838       The QMP client needs to explicitly enable QMP capabilities, otherwise
11839       all the QMP capabilities will be turned off by default.
11840
11841       Since: 0.13
11842
11843       QMPCapability (Enum)
11844
11845       Enumeration of capabilities to be advertised during initial client
11846       connection, used for agreeing on particular QMP extension behaviors.
11847
11848       Values:
11849
11850       "oob"
11851           QMP ability to support out-of-band requests.  (Please refer to
11852           qmp-spec.txt for more information on OOB)
11853
11854       Since: 2.12
11855
11856       VersionTriple (Object)
11857
11858       A three-part version number.
11859
11860       Members:
11861
11862       "major: int"
11863           The major version number.
11864
11865       "minor: int"
11866           The minor version number.
11867
11868       "micro: int"
11869           The micro version number.
11870
11871       Since: 2.4
11872
11873       VersionInfo (Object)
11874
11875       A description of QEMU's version.
11876
11877       Members:
11878
11879       "qemu: VersionTriple"
11880           The version of QEMU.  By current convention, a micro version of 50
11881           signifies a development branch.  A micro version greater than or
11882           equal to 90 signifies a release candidate for the next minor
11883           version.  A micro version of less than 50 signifies a stable
11884           release.
11885
11886       "package: string"
11887           QEMU will always set this field to an empty string.  Downstream
11888           versions of QEMU should set this to a non-empty string.  The exact
11889           format depends on the downstream however it highly recommended that
11890           a unique name is used.
11891
11892       Since: 0.14.0
11893
11894       query-version  (Command) Returns the current version of QEMU.
11895
11896       Returns: A "VersionInfo" object describing the current version of QEMU.
11897
11898       Since: 0.14.0
11899
11900       Example:
11901
11902               -> { "execute": "query-version" }
11903               <- {
11904                     "return":{
11905                        "qemu":{
11906                           "major":0,
11907                           "minor":11,
11908                           "micro":5
11909                        },
11910                        "package":""
11911                     }
11912                  }
11913
11914       CommandInfo (Object)
11915
11916       Information about a QMP command
11917
11918       Members:
11919
11920       "name: string"
11921           The command name
11922
11923       Since: 0.14.0
11924
11925       query-commands  (Command) Return a list of supported QMP commands by
11926       this server
11927
11928       Returns: A list of "CommandInfo" for all supported commands
11929
11930       Since: 0.14.0
11931
11932       Example:
11933
11934               -> { "execute": "query-commands" }
11935               <- {
11936                    "return":[
11937                       {
11938                          "name":"query-balloon"
11939                       },
11940                       {
11941                          "name":"system_powerdown"
11942                       }
11943                    ]
11944                  }
11945
11946       Note: This example has been shortened as the real response is too long.
11947
11948       LostTickPolicy (Enum)
11949
11950       Policy for handling lost ticks in timer devices.
11951
11952       Values:
11953
11954       "discard"
11955           throw away the missed tick(s) and continue with future injection
11956           normally.  Guest time may be delayed, unless the OS has explicit
11957           handling of lost ticks
11958
11959       "delay"
11960           continue to deliver ticks at the normal rate.  Guest time will be
11961           delayed due to the late tick
11962
11963       "merge"
11964           merge the missed tick(s) into one tick and inject.  Guest time may
11965           be delayed, depending on how the OS reacts to the merging of ticks
11966
11967       "slew"
11968           deliver ticks at a higher rate to catch up with the missed tick.
11969           The guest time should not be delayed once catchup is complete.
11970
11971       Since: 2.0
11972
11973       add_client  (Command) Allow client connections for VNC, Spice and
11974       socket based character devices to be passed in to QEMU via SCM_RIGHTS.
11975
11976       Arguments:
11977
11978       "protocol: string"
11979           protocol name. Valid names are "vnc", "spice" or the name of a
11980           character device (eg. from -chardev id=XXXX)
11981
11982       "fdname: string"
11983           file descriptor name previously passed via 'getfd' command
11984
11985       "skipauth: boolean" (optional)
11986           whether to skip authentication. Only applies to "vnc" and "spice"
11987           protocols
11988
11989       "tls: boolean" (optional)
11990           whether to perform TLS. Only applies to the "spice" protocol
11991
11992       Returns: nothing on success.
11993
11994       Since: 0.14.0
11995
11996       Example:
11997
11998               -> { "execute": "add_client", "arguments": { "protocol": "vnc",
11999                                                            "fdname": "myclient" } }
12000               <- { "return": {} }
12001
12002       NameInfo (Object)
12003
12004       Guest name information.
12005
12006       Members:
12007
12008       "name: string" (optional)
12009           The name of the guest
12010
12011       Since: 0.14.0
12012
12013       query-name  (Command) Return the name information of a guest.
12014
12015       Returns: "NameInfo" of the guest
12016
12017       Since: 0.14.0
12018
12019       Example:
12020
12021               -> { "execute": "query-name" }
12022               <- { "return": { "name": "qemu-name" } }
12023
12024       KvmInfo (Object)
12025
12026       Information about support for KVM acceleration
12027
12028       Members:
12029
12030       "enabled: boolean"
12031           true if KVM acceleration is active
12032
12033       "present: boolean"
12034           true if KVM acceleration is built into this executable
12035
12036       Since: 0.14.0
12037
12038       query-kvm  (Command) Returns information about KVM acceleration
12039
12040       Returns: "KvmInfo"
12041
12042       Since: 0.14.0
12043
12044       Example:
12045
12046               -> { "execute": "query-kvm" }
12047               <- { "return": { "enabled": true, "present": true } }
12048
12049       UuidInfo (Object)
12050
12051       Guest UUID information (Universally Unique Identifier).
12052
12053       Members:
12054
12055       "UUID: string"
12056           the UUID of the guest
12057
12058       Since: 0.14.0
12059
12060       Notes: If no UUID was specified for the guest, a null UUID is returned.
12061
12062       query-uuid  (Command) Query the guest UUID information.
12063
12064       Returns: The "UuidInfo" for the guest
12065
12066       Since: 0.14.0
12067
12068       Example:
12069
12070               -> { "execute": "query-uuid" }
12071               <- { "return": { "UUID": "550e8400-e29b-41d4-a716-446655440000" } }
12072
12073       EventInfo (Object)
12074
12075       Information about a QMP event
12076
12077       Members:
12078
12079       "name: string"
12080           The event name
12081
12082       Since: 1.2.0
12083
12084       query-events  (Command) Return a list of supported QMP events by this
12085       server
12086
12087       Returns: A list of "EventInfo" for all supported events
12088
12089       Since: 1.2.0
12090
12091       Example:
12092
12093               -> { "execute": "query-events" }
12094               <- {
12095                    "return": [
12096                        {
12097                           "name":"SHUTDOWN"
12098                        },
12099                        {
12100                           "name":"RESET"
12101                        }
12102                     ]
12103                  }
12104
12105       Note: This example has been shortened as the real response is too long.
12106
12107       CpuInfoArch (Enum)
12108
12109       An enumeration of cpu types that enable additional information during
12110       "query-cpus" and "query-cpus-fast".
12111
12112       Values:
12113
12114       "s390"
12115           since 2.12
12116
12117       "riscv"
12118           since 2.12
12119
12120       "x86"
12121           Not documented
12122
12123       "sparc"
12124           Not documented
12125
12126       "ppc"
12127           Not documented
12128
12129       "mips"
12130           Not documented
12131
12132       "tricore"
12133           Not documented
12134
12135       "other"
12136           Not documented
12137
12138       Since: 2.6
12139
12140       CpuInfo (Object)
12141
12142       Information about a virtual CPU
12143
12144       Members:
12145
12146       "CPU: int"
12147           the index of the virtual CPU
12148
12149       "current: boolean"
12150           this only exists for backwards compatibility and should be ignored
12151
12152       "halted: boolean"
12153           true if the virtual CPU is in the halt state.  Halt usually refers
12154           to a processor specific low power mode.
12155
12156       "qom_path: string"
12157           path to the CPU object in the QOM tree (since 2.4)
12158
12159       "thread_id: int"
12160           ID of the underlying host thread
12161
12162       "props: CpuInstanceProperties" (optional)
12163           properties describing to which node/socket/core/thread virtual CPU
12164           belongs to, provided if supported by board (since 2.10)
12165
12166       "arch: CpuInfoArch"
12167           architecture of the cpu, which determines which additional fields
12168           will be listed (since 2.6)
12169
12170       The members of "CpuInfoX86" when "arch" is "x86"
12171       The members of "CpuInfoSPARC" when "arch" is "sparc"
12172       The members of "CpuInfoPPC" when "arch" is "ppc"
12173       The members of "CpuInfoMIPS" when "arch" is "mips"
12174       The members of "CpuInfoTricore" when "arch" is "tricore"
12175       The members of "CpuInfoS390" when "arch" is "s390"
12176       The members of "CpuInfoRISCV" when "arch" is "riscv"
12177
12178       Since: 0.14.0
12179
12180       Notes: "halted" is a transient state that changes frequently.  By the
12181       time the data is sent to the client, the guest may no longer be halted.
12182
12183       CpuInfoX86 (Object)
12184
12185       Additional information about a virtual i386 or x86_64 CPU
12186
12187       Members:
12188
12189       "pc: int"
12190           the 64-bit instruction pointer
12191
12192       Since: 2.6
12193
12194       CpuInfoSPARC (Object)
12195
12196       Additional information about a virtual SPARC CPU
12197
12198       Members:
12199
12200       "pc: int"
12201           the PC component of the instruction pointer
12202
12203       "npc: int"
12204           the NPC component of the instruction pointer
12205
12206       Since: 2.6
12207
12208       CpuInfoPPC (Object)
12209
12210       Additional information about a virtual PPC CPU
12211
12212       Members:
12213
12214       "nip: int"
12215           the instruction pointer
12216
12217       Since: 2.6
12218
12219       CpuInfoMIPS (Object)
12220
12221       Additional information about a virtual MIPS CPU
12222
12223       Members:
12224
12225       "PC: int"
12226           the instruction pointer
12227
12228       Since: 2.6
12229
12230       CpuInfoTricore (Object)
12231
12232       Additional information about a virtual Tricore CPU
12233
12234       Members:
12235
12236       "PC: int"
12237           the instruction pointer
12238
12239       Since: 2.6
12240
12241       CpuInfoRISCV (Object)
12242
12243       Additional information about a virtual RISCV CPU
12244
12245       Members:
12246
12247       "pc: int"
12248           the instruction pointer
12249
12250       Since 2.12
12251
12252       CpuS390State (Enum)
12253
12254       An enumeration of cpu states that can be assumed by a virtual S390 CPU
12255
12256       Values:
12257
12258       "uninitialized"
12259           Not documented
12260
12261       "stopped"
12262           Not documented
12263
12264       "check-stop"
12265           Not documented
12266
12267       "operating"
12268           Not documented
12269
12270       "load"
12271           Not documented
12272
12273       Since: 2.12
12274
12275       CpuInfoS390 (Object)
12276
12277       Additional information about a virtual S390 CPU
12278
12279       Members:
12280
12281       "cpu-state: CpuS390State"
12282           the virtual CPU's state
12283
12284       Since: 2.12
12285
12286       query-cpus  (Command) Returns a list of information about each virtual
12287       CPU.
12288
12289       This command causes vCPU threads to exit to userspace, which causes a
12290       small interruption to guest CPU execution. This will have a negative
12291       impact on realtime guests and other latency sensitive guest workloads.
12292       It is recommended to use "query-cpus-fast" instead of this command to
12293       avoid the vCPU interruption.
12294
12295       Returns: a list of "CpuInfo" for each virtual CPU
12296
12297       Since: 0.14.0
12298
12299       Example:
12300
12301               -> { "execute": "query-cpus" }
12302               <- { "return": [
12303                        {
12304                           "CPU":0,
12305                           "current":true,
12306                           "halted":false,
12307                           "qom_path":"/machine/unattached/device[0]",
12308                           "arch":"x86",
12309                           "pc":3227107138,
12310                           "thread_id":3134
12311                        },
12312                        {
12313                           "CPU":1,
12314                           "current":false,
12315                           "halted":true,
12316                           "qom_path":"/machine/unattached/device[2]",
12317                           "arch":"x86",
12318                           "pc":7108165,
12319                           "thread_id":3135
12320                        }
12321                     ]
12322                  }
12323
12324       Notes: This interface is deprecated (since 2.12.0), and it is strongly
12325       recommended that you avoid using it. Use "query-cpus-fast" to obtain
12326       information about virtual CPUs.
12327
12328       CpuInfoFast (Object)
12329
12330       Information about a virtual CPU
12331
12332       Members:
12333
12334       "cpu-index: int"
12335           index of the virtual CPU
12336
12337       "qom-path: string"
12338           path to the CPU object in the QOM tree
12339
12340       "thread-id: int"
12341           ID of the underlying host thread
12342
12343       "props: CpuInstanceProperties" (optional)
12344           properties describing to which node/socket/core/thread virtual CPU
12345           belongs to, provided if supported by board
12346
12347       "arch: CpuInfoArch"
12348           base architecture of the cpu; deprecated since 3.0.0 in favor of
12349           "target"
12350
12351       "target: SysEmuTarget"
12352           the QEMU system emulation target, which determines which additional
12353           fields will be listed (since 3.0)
12354
12355       The members of "CpuInfoS390" when "target" is "s390x"
12356
12357       Since: 2.12
12358
12359       query-cpus-fast  (Command) Returns information about all virtual CPUs.
12360       This command does not incur a performance penalty and should be used in
12361       production instead of query-cpus.
12362
12363       Returns: list of "CpuInfoFast"
12364
12365       Since: 2.12
12366
12367       Example:
12368
12369               -> { "execute": "query-cpus-fast" }
12370               <- { "return": [
12371                       {
12372                           "thread-id": 25627,
12373                           "props": {
12374                               "core-id": 0,
12375                               "thread-id": 0,
12376                               "socket-id": 0
12377                           },
12378                           "qom-path": "/machine/unattached/device[0]",
12379                           "arch":"x86",
12380                           "target":"x86_64",
12381                           "cpu-index": 0
12382                       },
12383                       {
12384                           "thread-id": 25628,
12385                           "props": {
12386                               "core-id": 0,
12387                               "thread-id": 0,
12388                               "socket-id": 1
12389                           },
12390                           "qom-path": "/machine/unattached/device[2]",
12391                           "arch":"x86",
12392                           "target":"x86_64",
12393                           "cpu-index": 1
12394                       }
12395                   ]
12396               }
12397
12398       IOThreadInfo (Object)
12399
12400       Information about an iothread
12401
12402       Members:
12403
12404       "id: string"
12405           the identifier of the iothread
12406
12407       "thread-id: int"
12408           ID of the underlying host thread
12409
12410       "poll-max-ns: int"
12411           maximum polling time in ns, 0 means polling is disabled (since 2.9)
12412
12413       "poll-grow: int"
12414           how many ns will be added to polling time, 0 means that it's not
12415           configured (since 2.9)
12416
12417       "poll-shrink: int"
12418           how many ns will be removed from polling time, 0 means that it's
12419           not configured (since 2.9)
12420
12421       Since: 2.0
12422
12423       query-iothreads  (Command) Returns a list of information about each
12424       iothread.
12425
12426       Note: this list excludes the QEMU main loop thread, which is not
12427       declared using the -object iothread command-line option.  It is always
12428       the main thread of the process.
12429
12430       Returns: a list of "IOThreadInfo" for each iothread
12431
12432       Since: 2.0
12433
12434       Example:
12435
12436               -> { "execute": "query-iothreads" }
12437               <- { "return": [
12438                        {
12439                           "id":"iothread0",
12440                           "thread-id":3134
12441                        },
12442                        {
12443                           "id":"iothread1",
12444                           "thread-id":3135
12445                        }
12446                     ]
12447                  }
12448
12449       BalloonInfo (Object)
12450
12451       Information about the guest balloon device.
12452
12453       Members:
12454
12455       "actual: int"
12456           the number of bytes the balloon currently contains
12457
12458       Since: 0.14.0
12459
12460       query-balloon  (Command) Return information about the balloon device.
12461
12462       Returns: "BalloonInfo" on success
12463
12464       If the balloon driver is enabled but not functional because the KVM
12465       kernel module cannot support it, KvmMissingCap
12466
12467       If no balloon device is present, DeviceNotActive
12468
12469       Since: 0.14.0
12470
12471       Example:
12472
12473               -> { "execute": "query-balloon" }
12474               <- { "return": {
12475                        "actual": 1073741824,
12476                     }
12477                  }
12478
12479       BALLOON_CHANGE  (Event) Emitted when the guest changes the actual
12480       BALLOON level. This value is equivalent to the "actual" field return by
12481       the 'query-balloon' command
12482
12483       Arguments:
12484
12485       "actual: int"
12486           actual level of the guest memory balloon in bytes
12487
12488       Note: this event is rate-limited.
12489
12490       Since: 1.2
12491
12492       Example:
12493
12494               <- { "event": "BALLOON_CHANGE",
12495                    "data": { "actual": 944766976 },
12496                    "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
12497
12498       PciMemoryRange (Object)
12499
12500       A PCI device memory region
12501
12502       Members:
12503
12504       "base: int"
12505           the starting address (guest physical)
12506
12507       "limit: int"
12508           the ending address (guest physical)
12509
12510       Since: 0.14.0
12511
12512       PciMemoryRegion (Object)
12513
12514       Information about a PCI device I/O region.
12515
12516       Members:
12517
12518       "bar: int"
12519           the index of the Base Address Register for this region
12520
12521       "type: string"
12522           'io' if the region is a PIO region 'memory' if the region is a MMIO
12523           region
12524
12525       "size: int"
12526           memory size
12527
12528       "prefetch: boolean" (optional)
12529           if "type" is 'memory', true if the memory is prefetchable
12530
12531       "mem_type_64: boolean" (optional)
12532           if "type" is 'memory', true if the BAR is 64-bit
12533
12534       "address: int"
12535           Not documented
12536
12537       Since: 0.14.0
12538
12539       PciBusInfo (Object)
12540
12541       Information about a bus of a PCI Bridge device
12542
12543       Members:
12544
12545       "number: int"
12546           primary bus interface number.  This should be the number of the bus
12547           the device resides on.
12548
12549       "secondary: int"
12550           secondary bus interface number.  This is the number of the main bus
12551           for the bridge
12552
12553       "subordinate: int"
12554           This is the highest number bus that resides below the bridge.
12555
12556       "io_range: PciMemoryRange"
12557           The PIO range for all devices on this bridge
12558
12559       "memory_range: PciMemoryRange"
12560           The MMIO range for all devices on this bridge
12561
12562       "prefetchable_range: PciMemoryRange"
12563           The range of prefetchable MMIO for all devices on this bridge
12564
12565       Since: 2.4
12566
12567       PciBridgeInfo (Object)
12568
12569       Information about a PCI Bridge device
12570
12571       Members:
12572
12573       "bus: PciBusInfo"
12574           information about the bus the device resides on
12575
12576       "devices: array of PciDeviceInfo" (optional)
12577           a list of "PciDeviceInfo" for each device on this bridge
12578
12579       Since: 0.14.0
12580
12581       PciDeviceClass (Object)
12582
12583       Information about the Class of a PCI device
12584
12585       Members:
12586
12587       "desc: string" (optional)
12588           a string description of the device's class
12589
12590       "class: int"
12591           the class code of the device
12592
12593       Since: 2.4
12594
12595       PciDeviceId (Object)
12596
12597       Information about the Id of a PCI device
12598
12599       Members:
12600
12601       "device: int"
12602           the PCI device id
12603
12604       "vendor: int"
12605           the PCI vendor id
12606
12607       Since: 2.4
12608
12609       PciDeviceInfo (Object)
12610
12611       Information about a PCI device
12612
12613       Members:
12614
12615       "bus: int"
12616           the bus number of the device
12617
12618       "slot: int"
12619           the slot the device is located in
12620
12621       "function: int"
12622           the function of the slot used by the device
12623
12624       "class_info: PciDeviceClass"
12625           the class of the device
12626
12627       "id: PciDeviceId"
12628           the PCI device id
12629
12630       "irq: int" (optional)
12631           if an IRQ is assigned to the device, the IRQ number
12632
12633       "qdev_id: string"
12634           the device name of the PCI device
12635
12636       "pci_bridge: PciBridgeInfo" (optional)
12637           if the device is a PCI bridge, the bridge information
12638
12639       "regions: array of PciMemoryRegion"
12640           a list of the PCI I/O regions associated with the device
12641
12642       Notes: the contents of "class_info".desc are not stable and should only
12643       be treated as informational.
12644
12645       Since: 0.14.0
12646
12647       PciInfo (Object)
12648
12649       Information about a PCI bus
12650
12651       Members:
12652
12653       "bus: int"
12654           the bus index
12655
12656       "devices: array of PciDeviceInfo"
12657           a list of devices on this bus
12658
12659       Since: 0.14.0
12660
12661       query-pci  (Command) Return information about the PCI bus topology of
12662       the guest.
12663
12664       Returns: a list of "PciInfo" for each PCI bus. Each bus is represented
12665       by a json-object, which has a key with a json-array of all PCI devices
12666       attached to it. Each device is represented by a json-object.
12667
12668       Since: 0.14.0
12669
12670       Example:
12671
12672               -> { "execute": "query-pci" }
12673               <- { "return": [
12674                        {
12675                           "bus": 0,
12676                           "devices": [
12677                              {
12678                                 "bus": 0,
12679                                 "qdev_id": "",
12680                                 "slot": 0,
12681                                 "class_info": {
12682                                    "class": 1536,
12683                                    "desc": "Host bridge"
12684                                 },
12685                                 "id": {
12686                                    "device": 32902,
12687                                    "vendor": 4663
12688                                 },
12689                                 "function": 0,
12690                                 "regions": [
12691                                 ]
12692                              },
12693                              {
12694                                 "bus": 0,
12695                                 "qdev_id": "",
12696                                 "slot": 1,
12697                                 "class_info": {
12698                                    "class": 1537,
12699                                    "desc": "ISA bridge"
12700                                 },
12701                                 "id": {
12702                                    "device": 32902,
12703                                    "vendor": 28672
12704                                 },
12705                                 "function": 0,
12706                                 "regions": [
12707                                 ]
12708                              },
12709                              {
12710                                 "bus": 0,
12711                                 "qdev_id": "",
12712                                 "slot": 1,
12713                                 "class_info": {
12714                                    "class": 257,
12715                                    "desc": "IDE controller"
12716                                 },
12717                                 "id": {
12718                                    "device": 32902,
12719                                    "vendor": 28688
12720                                 },
12721                                 "function": 1,
12722                                 "regions": [
12723                                    {
12724                                       "bar": 4,
12725                                       "size": 16,
12726                                       "address": 49152,
12727                                       "type": "io"
12728                                    }
12729                                 ]
12730                              },
12731                              {
12732                                 "bus": 0,
12733                                 "qdev_id": "",
12734                                 "slot": 2,
12735                                 "class_info": {
12736                                    "class": 768,
12737                                    "desc": "VGA controller"
12738                                 },
12739                                 "id": {
12740                                    "device": 4115,
12741                                    "vendor": 184
12742                                 },
12743                                 "function": 0,
12744                                 "regions": [
12745                                    {
12746                                       "prefetch": true,
12747                                       "mem_type_64": false,
12748                                       "bar": 0,
12749                                       "size": 33554432,
12750                                       "address": 4026531840,
12751                                       "type": "memory"
12752                                    },
12753                                    {
12754                                       "prefetch": false,
12755                                       "mem_type_64": false,
12756                                       "bar": 1,
12757                                       "size": 4096,
12758                                       "address": 4060086272,
12759                                       "type": "memory"
12760                                    },
12761                                    {
12762                                       "prefetch": false,
12763                                       "mem_type_64": false,
12764                                       "bar": 6,
12765                                       "size": 65536,
12766                                       "address": -1,
12767                                       "type": "memory"
12768                                    }
12769                                 ]
12770                              },
12771                              {
12772                                 "bus": 0,
12773                                 "qdev_id": "",
12774                                 "irq": 11,
12775                                 "slot": 4,
12776                                 "class_info": {
12777                                    "class": 1280,
12778                                    "desc": "RAM controller"
12779                                 },
12780                                 "id": {
12781                                    "device": 6900,
12782                                    "vendor": 4098
12783                                 },
12784                                 "function": 0,
12785                                 "regions": [
12786                                    {
12787                                       "bar": 0,
12788                                       "size": 32,
12789                                       "address": 49280,
12790                                       "type": "io"
12791                                    }
12792                                 ]
12793                              }
12794                           ]
12795                        }
12796                     ]
12797                  }
12798
12799       Note: This example has been shortened as the real response is too long.
12800
12801       quit  (Command) This command will cause the QEMU process to exit
12802       gracefully.  While every attempt is made to send the QMP response
12803       before terminating, this is not guaranteed.  When using this interface,
12804       a premature EOF would not be unexpected.
12805
12806       Since: 0.14.0
12807
12808       Example:
12809
12810               -> { "execute": "quit" }
12811               <- { "return": {} }
12812
12813       stop  (Command) Stop all guest VCPU execution.
12814
12815       Since: 0.14.0
12816
12817       Notes: This function will succeed even if the guest is already in the
12818       stopped state.  In "inmigrate" state, it will ensure that the guest
12819       remains paused once migration finishes, as if the -S option was passed
12820       on the command line.
12821
12822       Example:
12823
12824               -> { "execute": "stop" }
12825               <- { "return": {} }
12826
12827       system_reset  (Command) Performs a hard reset of a guest.
12828
12829       Since: 0.14.0
12830
12831       Example:
12832
12833               -> { "execute": "system_reset" }
12834               <- { "return": {} }
12835
12836       system_powerdown  (Command) Requests that a guest perform a powerdown
12837       operation.
12838
12839       Since: 0.14.0
12840
12841       Notes: A guest may or may not respond to this command.  This command
12842       returning does not indicate that a guest has accepted the request or
12843       that it has shut down.  Many guests will respond to this command by
12844       prompting the user in some way.
12845
12846       Example:
12847
12848               -> { "execute": "system_powerdown" }
12849               <- { "return": {} }
12850
12851       cpu-add  (Command) Adds CPU with specified ID
12852
12853       Arguments:
12854
12855       "id: int"
12856           ID of CPU to be created, valid values [0..max_cpus)
12857
12858       Returns: Nothing on success
12859
12860       Since: 1.5
12861
12862       Example:
12863
12864               -> { "execute": "cpu-add", "arguments": { "id": 2 } }
12865               <- { "return": {} }
12866
12867       memsave  (Command) Save a portion of guest memory to a file.
12868
12869       Arguments:
12870
12871       "val: int"
12872           the virtual address of the guest to start from
12873
12874       "size: int"
12875           the size of memory region to save
12876
12877       "filename: string"
12878           the file to save the memory to as binary data
12879
12880       "cpu-index: int" (optional)
12881           the index of the virtual CPU to use for translating the virtual
12882           address (defaults to CPU 0)
12883
12884       Returns: Nothing on success
12885
12886       Since: 0.14.0
12887
12888       Notes: Errors were not reliably returned until 1.1
12889
12890       Example:
12891
12892               -> { "execute": "memsave",
12893                    "arguments": { "val": 10,
12894                                   "size": 100,
12895                                   "filename": "/tmp/virtual-mem-dump" } }
12896               <- { "return": {} }
12897
12898       pmemsave  (Command) Save a portion of guest physical memory to a file.
12899
12900       Arguments:
12901
12902       "val: int"
12903           the physical address of the guest to start from
12904
12905       "size: int"
12906           the size of memory region to save
12907
12908       "filename: string"
12909           the file to save the memory to as binary data
12910
12911       Returns: Nothing on success
12912
12913       Since: 0.14.0
12914
12915       Notes: Errors were not reliably returned until 1.1
12916
12917       Example:
12918
12919               -> { "execute": "pmemsave",
12920                    "arguments": { "val": 10,
12921                                   "size": 100,
12922                                   "filename": "/tmp/physical-mem-dump" } }
12923               <- { "return": {} }
12924
12925       cont  (Command) Resume guest VCPU execution.
12926
12927       Since: 0.14.0
12928
12929       Returns: If successful, nothing
12930
12931       Notes: This command will succeed if the guest is currently running.  It
12932       will also succeed if the guest is in the "inmigrate" state; in this
12933       case, the effect of the command is to make sure the guest starts once
12934       migration finishes, removing the effect of the -S command line option
12935       if it was passed.
12936
12937       Example:
12938
12939               -> { "execute": "cont" }
12940               <- { "return": {} }
12941
12942       x-exit-preconfig  (Command) Exit from "preconfig" state
12943
12944       This command makes QEMU exit the preconfig state and proceed with VM
12945       initialization using configuration data provided on the command line
12946       and via the QMP monitor during the preconfig state. The command is only
12947       available during the preconfig state (i.e. when the --preconfig command
12948       line option was in use).
12949
12950       Since 3.0
12951
12952       Returns: nothing
12953
12954       Example:
12955
12956               -> { "execute": "x-exit-preconfig" }
12957               <- { "return": {} }
12958
12959       system_wakeup  (Command) Wakeup guest from suspend.  Does nothing in
12960       case the guest isn't suspended.
12961
12962       Since: 1.1
12963
12964       Returns: nothing.
12965
12966       Example:
12967
12968               -> { "execute": "system_wakeup" }
12969               <- { "return": {} }
12970
12971       inject-nmi  (Command) Injects a Non-Maskable Interrupt into the default
12972       CPU (x86/s390) or all CPUs (ppc64).  The command fails when the guest
12973       doesn't support injecting.
12974
12975       Returns: If successful, nothing
12976
12977       Since: 0.14.0
12978
12979       Note: prior to 2.1, this command was only supported for x86 and s390
12980       VMs
12981
12982       Example:
12983
12984               -> { "execute": "inject-nmi" }
12985               <- { "return": {} }
12986
12987       balloon  (Command) Request the balloon driver to change its balloon
12988       size.
12989
12990       Arguments:
12991
12992       "value: int"
12993           the target size of the balloon in bytes
12994
12995       Returns: Nothing on success If the balloon driver is enabled but not
12996       functional because the KVM kernel module cannot support it,
12997       KvmMissingCap If no balloon device is present, DeviceNotActive
12998
12999       Notes: This command just issues a request to the guest.  When it
13000       returns, the balloon size may not have changed.  A guest can change the
13001       balloon size independent of this command.
13002
13003       Since: 0.14.0
13004
13005       Example:
13006
13007               -> { "execute": "balloon", "arguments": { "value": 536870912 } }
13008               <- { "return": {} }
13009
13010       human-monitor-command  (Command) Execute a command on the human monitor
13011       and return the output.
13012
13013       Arguments:
13014
13015       "command-line: string"
13016           the command to execute in the human monitor
13017
13018       "cpu-index: int" (optional)
13019           The CPU to use for commands that require an implicit CPU
13020
13021       Returns: the output of the command as a string
13022
13023       Since: 0.14.0
13024
13025       Notes: This command only exists as a stop-gap.  Its use is highly
13026       discouraged.  The semantics of this command are not guaranteed: this
13027       means that command names, arguments and responses can change or be
13028       removed at ANY time.  Applications that rely on long term stability
13029       guarantees should NOT use this command.
13030
13031       Known limitations:
13032
13033       ·   This command is stateless, this means that commands that depend on
13034           state information (such as getfd) might not work
13035
13036       ·   Commands that prompt the user for data don't currently work
13037
13038       Example:
13039
13040               -> { "execute": "human-monitor-command",
13041                    "arguments": { "command-line": "info kvm" } }
13042               <- { "return": "kvm support: enabled\r\n" }
13043
13044       ObjectPropertyInfo (Object)
13045
13046       Members:
13047
13048       "name: string"
13049           the name of the property
13050
13051       "type: string"
13052           the type of the property.  This will typically come in one of four
13053           forms:
13054
13055           1) A primitive type such as 'u8', 'u16', 'bool', 'str', or
13056           'double'.  These types are mapped to the appropriate JSON type.
13057
13058           2) A child type in the form 'child<subtype>' where subtype is a
13059           qdev device type name.  Child properties create the composition
13060           tree.
13061
13062           3) A link type in the form 'link<subtype>' where subtype is a qdev
13063           device type name.  Link properties form the device model graph.
13064
13065       "description: string" (optional)
13066           if specified, the description of the property.
13067
13068       Since: 1.2
13069
13070       qom-list  (Command) This command will list any properties of a object
13071       given a path in the object model.
13072
13073       Arguments:
13074
13075       "path: string"
13076           the path within the object model.  See "qom-get" for a description
13077           of this parameter.
13078
13079       Returns: a list of "ObjectPropertyInfo" that describe the properties of
13080       the object.
13081
13082       Since: 1.2
13083
13084       qom-get  (Command) This command will get a property from a object model
13085       path and return the value.
13086
13087       Arguments:
13088
13089       "path: string"
13090           The path within the object model.  There are two forms of supported
13091           paths--absolute and partial paths.
13092
13093           Absolute paths are derived from the root object and can follow
13094           child<> or link<> properties.  Since they can follow link<>
13095           properties, they can be arbitrarily long.  Absolute paths look like
13096           absolute filenames and are prefixed  with a leading slash.
13097
13098           Partial paths look like relative filenames.  They do not begin with
13099           a prefix.  The matching rules for partial paths are subtle but
13100           designed to make specifying objects easy.  At each level of the
13101           composition tree, the partial path is matched as an absolute path.
13102           The first match is not returned.  At least two matches are searched
13103           for.  A successful result is only returned if only one match is
13104           found.  If more than one match is found, a flag is return to
13105           indicate that the match was ambiguous.
13106
13107       "property: string"
13108           The property name to read
13109
13110       Returns: The property value.  The type depends on the property type.
13111       child<> and link<> properties are returned as #str pathnames.  All
13112       integer property types (u8, u16, etc) are returned as #int.
13113
13114       Since: 1.2
13115
13116       qom-set  (Command) This command will set a property from a object model
13117       path.
13118
13119       Arguments:
13120
13121       "path: string"
13122           see "qom-get" for a description of this parameter
13123
13124       "property: string"
13125           the property name to set
13126
13127       "value: value"
13128           a value who's type is appropriate for the property type.  See
13129           "qom-get" for a description of type mapping.
13130
13131       Since: 1.2
13132
13133       change  (Command) This command is multiple commands multiplexed
13134       together.
13135
13136       Arguments:
13137
13138       "device: string"
13139           This is normally the name of a block device but it may also be
13140           'vnc'.  when it's 'vnc', then sub command depends on "target"
13141
13142       "target: string"
13143           If "device" is a block device, then this is the new filename.  If
13144           "device" is 'vnc', then if the value 'password' selects the vnc
13145           change password command.   Otherwise, this specifies a new server
13146           URI address to listen to for VNC connections.
13147
13148       "arg: string" (optional)
13149           If "device" is a block device, then this is an optional format to
13150           open the device with.  If "device" is 'vnc' and "target" is
13151           'password', this is the new VNC password to set.  See change-vnc-
13152           password for additional notes.
13153
13154       Returns: Nothing on success.  If "device" is not a valid block device,
13155       DeviceNotFound
13156
13157       Notes: This interface is deprecated, and it is strongly recommended
13158       that you avoid using it.  For changing block devices, use blockdev-
13159       change-medium; for changing VNC parameters, use change-vnc-password.
13160
13161       Since: 0.14.0
13162
13163       Example:
13164
13165               1. Change a removable medium
13166
13167               -> { "execute": "change",
13168                    "arguments": { "device": "ide1-cd0",
13169                                   "target": "/srv/images/Fedora-12-x86_64-DVD.iso" } }
13170               <- { "return": {} }
13171
13172               2. Change VNC password
13173
13174               -> { "execute": "change",
13175                    "arguments": { "device": "vnc", "target": "password",
13176                                   "arg": "foobar1" } }
13177               <- { "return": {} }
13178
13179       ObjectTypeInfo (Object)
13180
13181       This structure describes a search result from "qom-list-types"
13182
13183       Members:
13184
13185       "name: string"
13186           the type name found in the search
13187
13188       "abstract: boolean" (optional)
13189           the type is abstract and can't be directly instantiated.  Omitted
13190           if false. (since 2.10)
13191
13192       "parent: string" (optional)
13193           Name of parent type, if any (since 2.10)
13194
13195       Since: 1.1
13196
13197       qom-list-types  (Command) This command will return a list of types
13198       given search parameters
13199
13200       Arguments:
13201
13202       "implements: string" (optional)
13203           if specified, only return types that implement this type name
13204
13205       "abstract: boolean" (optional)
13206           if true, include abstract types in the results
13207
13208       Returns: a list of "ObjectTypeInfo" or an empty list if no results are
13209       found
13210
13211       Since: 1.1
13212
13213       device-list-properties  (Command) List properties associated with a
13214       device.
13215
13216       Arguments:
13217
13218       "typename: string"
13219           the type name of a device
13220
13221       Returns: a list of ObjectPropertyInfo describing a devices properties
13222
13223       Note: objects can create properties at runtime, for example to describe
13224       links between different devices and/or objects. These properties are
13225       not included in the output of this command.
13226
13227       Since: 1.2
13228
13229       qom-list-properties  (Command) List properties associated with a QOM
13230       object.
13231
13232       Arguments:
13233
13234       "typename: string"
13235           the type name of an object
13236
13237       Note: objects can create properties at runtime, for example to describe
13238       links between different devices and/or objects. These properties are
13239       not included in the output of this command.
13240
13241       Returns: a list of ObjectPropertyInfo describing object properties
13242
13243       Since: 2.12
13244
13245       xen-set-global-dirty-log  (Command) Enable or disable the global dirty
13246       log mode.
13247
13248       Arguments:
13249
13250       "enable: boolean"
13251           true to enable, false to disable.
13252
13253       Returns: nothing
13254
13255       Since: 1.3
13256
13257       Example:
13258
13259               -> { "execute": "xen-set-global-dirty-log",
13260                    "arguments": { "enable": true } }
13261               <- { "return": {} }
13262
13263       device_add  (Command)
13264
13265       Arguments:
13266
13267       "driver: string"
13268           the name of the new device's driver
13269
13270       "bus: string" (optional)
13271           the device's parent bus (device tree path)
13272
13273       "id: string" (optional)
13274           the device's ID, must be unique
13275
13276       Additional arguments depend on the type.
13277
13278       Add a device.
13279
13280       Notes:
13281
13282       1.  For detailed information about this command, please refer to the
13283           'docs/qdev-device-use.txt' file.
13284
13285       2.  It's possible to list device properties by running QEMU with the
13286           "-device DEVICE,help" command-line argument, where DEVICE is the
13287           device's name
13288
13289       Example:
13290
13291               -> { "execute": "device_add",
13292                    "arguments": { "driver": "e1000", "id": "net1",
13293                                   "bus": "pci.0",
13294                                   "mac": "52:54:00:12:34:56" } }
13295               <- { "return": {} }
13296
13297       TODO: This command effectively bypasses QAPI completely due to its
13298       "additional arguments" business.  It shouldn't have been added to the
13299       schema in this form.  It should be qapified properly, or replaced by a
13300       properly qapified command.
13301
13302       Since: 0.13
13303
13304       device_del  (Command) Remove a device from a guest
13305
13306       Arguments:
13307
13308       "id: string"
13309           the device's ID or QOM path
13310
13311       Returns: Nothing on success If "id" is not a valid device,
13312       DeviceNotFound
13313
13314       Notes: When this command completes, the device may not be removed from
13315       the guest.  Hot removal is an operation that requires guest
13316       cooperation.  This command merely requests that the guest begin the hot
13317       removal process.  Completion of the device removal process is signaled
13318       with a DEVICE_DELETED event. Guest reset will automatically complete
13319       removal for all devices.
13320
13321       Since: 0.14.0
13322
13323       Example:
13324
13325               -> { "execute": "device_del",
13326                    "arguments": { "id": "net1" } }
13327               <- { "return": {} }
13328
13329               -> { "execute": "device_del",
13330                    "arguments": { "id": "/machine/peripheral-anon/device[0]" } }
13331               <- { "return": {} }
13332
13333       DEVICE_DELETED  (Event) Emitted whenever the device removal completion
13334       is acknowledged by the guest.  At this point, it's safe to reuse the
13335       specified device ID. Device removal can be initiated by the guest or by
13336       HMP/QMP commands.
13337
13338       Arguments:
13339
13340       "device: string" (optional)
13341           device name
13342
13343       "path: string"
13344           device path
13345
13346       Since: 1.5
13347
13348       Example:
13349
13350               <- { "event": "DEVICE_DELETED",
13351                    "data": { "device": "virtio-net-pci-0",
13352                              "path": "/machine/peripheral/virtio-net-pci-0" },
13353                    "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
13354
13355       DumpGuestMemoryFormat (Enum)
13356
13357       An enumeration of guest-memory-dump's format.
13358
13359       Values:
13360
13361       "elf"
13362           elf format
13363
13364       "kdump-zlib"
13365           kdump-compressed format with zlib-compressed
13366
13367       "kdump-lzo"
13368           kdump-compressed format with lzo-compressed
13369
13370       "kdump-snappy"
13371           kdump-compressed format with snappy-compressed
13372
13373       "win-dmp"
13374           Windows full crashdump format, can be used instead of ELF
13375           converting (since 2.13)
13376
13377       Since: 2.0
13378
13379       dump-guest-memory  (Command) Dump guest's memory to vmcore. It is a
13380       synchronous operation that can take very long depending on the amount
13381       of guest memory.
13382
13383       Arguments:
13384
13385       "paging: boolean"
13386           if true, do paging to get guest's memory mapping. This allows using
13387           gdb to process the core file.
13388
13389           IMPORTANT: this option can make QEMU allocate several gigabytes of
13390           RAM. This can happen for a large guest, or a malicious guest
13391           pretending to be large.
13392
13393           Also, paging=true has the following limitations:
13394
13395           1.  The guest may be in a catastrophic state or can have corrupted
13396               memory, which cannot be trusted
13397
13398           2.  The guest can be in real-mode even if paging is enabled. For
13399               example, the guest uses ACPI to sleep, and ACPI sleep state
13400               goes in real-mode
13401
13402           3.  Currently only supported on i386 and x86_64.
13403
13404       "protocol: string"
13405           the filename or file descriptor of the vmcore. The supported
13406           protocols are:
13407
13408           1.  file: the protocol starts with "file:", and the following
13409               string is the file's path.
13410
13411           2.  fd: the protocol starts with "fd:", and the following string is
13412               the fd's name.
13413
13414       "detach: boolean" (optional)
13415           if true, QMP will return immediately rather than waiting for the
13416           dump to finish. The user can track progress using "query-dump".
13417           (since 2.6).
13418
13419       "begin: int" (optional)
13420           if specified, the starting physical address.
13421
13422       "length: int" (optional)
13423           if specified, the memory size, in bytes. If you don't want to dump
13424           all guest's memory, please specify the start "begin" and "length"
13425
13426       "format: DumpGuestMemoryFormat" (optional)
13427           if specified, the format of guest memory dump. But non-elf format
13428           is conflict with paging and filter, ie. "paging", "begin" and
13429           "length" is not allowed to be specified with non-elf "format" at
13430           the same time (since 2.0)
13431
13432       Note: All boolean arguments default to false
13433
13434       Returns: nothing on success
13435
13436       Since: 1.2
13437
13438       Example:
13439
13440               -> { "execute": "dump-guest-memory",
13441                    "arguments": { "protocol": "fd:dump" } }
13442               <- { "return": {} }
13443
13444       DumpStatus (Enum)
13445
13446       Describe the status of a long-running background guest memory dump.
13447
13448       Values:
13449
13450       "none"
13451           no dump-guest-memory has started yet.
13452
13453       "active"
13454           there is one dump running in background.
13455
13456       "completed"
13457           the last dump has finished successfully.
13458
13459       "failed"
13460           the last dump has failed.
13461
13462       Since: 2.6
13463
13464       DumpQueryResult (Object)
13465
13466       The result format for 'query-dump'.
13467
13468       Members:
13469
13470       "status: DumpStatus"
13471           enum of "DumpStatus", which shows current dump status
13472
13473       "completed: int"
13474           bytes written in latest dump (uncompressed)
13475
13476       "total: int"
13477           total bytes to be written in latest dump (uncompressed)
13478
13479       Since: 2.6
13480
13481       query-dump  (Command) Query latest dump status.
13482
13483       Returns: A "DumpStatus" object showing the dump status.
13484
13485       Since: 2.6
13486
13487       Example:
13488
13489               -> { "execute": "query-dump" }
13490               <- { "return": { "status": "active", "completed": 1024000,
13491                                "total": 2048000 } }
13492
13493       DUMP_COMPLETED  (Event) Emitted when background dump has completed
13494
13495       Arguments:
13496
13497       "result: DumpQueryResult"
13498           final dump status
13499
13500       "error: string" (optional)
13501           human-readable error string that provides hint on why dump failed.
13502           Only presents on failure. The user should not try to interpret the
13503           error string.
13504
13505       Since: 2.6
13506
13507       Example:
13508
13509               { "event": "DUMP_COMPLETED",
13510                 "data": {"result": {"total": 1090650112, "status": "completed",
13511                                     "completed": 1090650112} } }
13512
13513       DumpGuestMemoryCapability (Object)
13514
13515       A list of the available formats for dump-guest-memory
13516
13517       Members:
13518
13519       "formats: array of DumpGuestMemoryFormat"
13520           Not documented
13521
13522       Since: 2.0
13523
13524       query-dump-guest-memory-capability  (Command) Returns the available
13525       formats for dump-guest-memory
13526
13527       Returns: A "DumpGuestMemoryCapability" object listing available formats
13528       for dump-guest-memory
13529
13530       Since: 2.0
13531
13532       Example:
13533
13534               -> { "execute": "query-dump-guest-memory-capability" }
13535               <- { "return": { "formats":
13536                                ["elf", "kdump-zlib", "kdump-lzo", "kdump-snappy"] }
13537
13538       dump-skeys  (Command) Dump guest's storage keys
13539
13540       Arguments:
13541
13542       "filename: string"
13543           the path to the file to dump to
13544
13545       This command is only supported on s390 architecture.
13546
13547       Since: 2.5
13548
13549       Example:
13550
13551               -> { "execute": "dump-skeys",
13552                    "arguments": { "filename": "/tmp/skeys" } }
13553               <- { "return": {} }
13554
13555       object-add  (Command) Create a QOM object.
13556
13557       Arguments:
13558
13559       "qom-type: string"
13560           the class name for the object to be created
13561
13562       "id: string"
13563           the name of the new object
13564
13565       "props: value" (optional)
13566           a dictionary of properties to be passed to the backend
13567
13568       Returns: Nothing on success Error if "qom-type" is not a valid class
13569       name
13570
13571       Since: 2.0
13572
13573       Example:
13574
13575               -> { "execute": "object-add",
13576                    "arguments": { "qom-type": "rng-random", "id": "rng1",
13577                                   "props": { "filename": "/dev/hwrng" } } }
13578               <- { "return": {} }
13579
13580       object-del  (Command) Remove a QOM object.
13581
13582       Arguments:
13583
13584       "id: string"
13585           the name of the QOM object to remove
13586
13587       Returns: Nothing on success Error if "id" is not a valid id for a QOM
13588       object
13589
13590       Since: 2.0
13591
13592       Example:
13593
13594               -> { "execute": "object-del", "arguments": { "id": "rng1" } }
13595               <- { "return": {} }
13596
13597       getfd  (Command) Receive a file descriptor via SCM rights and assign it
13598       a name
13599
13600       Arguments:
13601
13602       "fdname: string"
13603           file descriptor name
13604
13605       Returns: Nothing on success
13606
13607       Since: 0.14.0
13608
13609       Notes: If "fdname" already exists, the file descriptor assigned to it
13610       will be closed and replaced by the received file descriptor.
13611
13612       The 'closefd' command can be used to explicitly close the file
13613       descriptor when it is no longer needed.
13614
13615       Example:
13616
13617               -> { "execute": "getfd", "arguments": { "fdname": "fd1" } }
13618               <- { "return": {} }
13619
13620       closefd  (Command) Close a file descriptor previously passed via SCM
13621       rights
13622
13623       Arguments:
13624
13625       "fdname: string"
13626           file descriptor name
13627
13628       Returns: Nothing on success
13629
13630       Since: 0.14.0
13631
13632       Example:
13633
13634               -> { "execute": "closefd", "arguments": { "fdname": "fd1" } }
13635               <- { "return": {} }
13636
13637       MachineInfo (Object)
13638
13639       Information describing a machine.
13640
13641       Members:
13642
13643       "name: string"
13644           the name of the machine
13645
13646       "alias: string" (optional)
13647           an alias for the machine name
13648
13649       "is-default: boolean" (optional)
13650           whether the machine is default
13651
13652       "cpu-max: int"
13653           maximum number of CPUs supported by the machine type (since 1.5.0)
13654
13655       "hotpluggable-cpus: boolean"
13656           cpu hotplug via -device is supported (since 2.7.0)
13657
13658       Since: 1.2.0
13659
13660       query-machines  (Command) Return a list of supported machines
13661
13662       Returns: a list of MachineInfo
13663
13664       Since: 1.2.0
13665
13666       CpuDefinitionInfo (Object)
13667
13668       Virtual CPU definition.
13669
13670       Members:
13671
13672       "name: string"
13673           the name of the CPU definition
13674
13675       "migration-safe: boolean" (optional)
13676           whether a CPU definition can be safely used for migration in
13677           combination with a QEMU compatibility machine when migrating
13678           between different QMU versions and between hosts with different
13679           sets of (hardware or software) capabilities. If not provided,
13680           information is not available and callers should not assume the CPU
13681           definition to be migration-safe. (since 2.8)
13682
13683       "static: boolean"
13684           whether a CPU definition is static and will not change depending on
13685           QEMU version, machine type, machine options and accelerator
13686           options.  A static model is always migration-safe. (since 2.8)
13687
13688       "unavailable-features: array of string" (optional)
13689           List of properties that prevent the CPU model from running in the
13690           current host. (since 2.8)
13691
13692       "typename: string"
13693           Type name that can be used as argument to "device-list-properties",
13694           to introspect properties configurable using -cpu or -global.
13695           (since 2.9)
13696
13697       "unavailable-features" is a list of QOM property names that represent
13698       CPU model attributes that prevent the CPU from running.  If the QOM
13699       property is read-only, that means there's no known way to make the CPU
13700       model run in the current host. Implementations that choose not to
13701       provide specific information return the property name "type".  If the
13702       property is read-write, it means that it MAY be possible to run the CPU
13703       model in the current host if that property is changed. Management
13704       software can use it as hints to suggest or choose an alternative for
13705       the user, or just to generate meaningful error messages explaining why
13706       the CPU model can't be used.  If "unavailable-features" is an empty
13707       list, the CPU model is runnable using the current host and machine-
13708       type.  If "unavailable-features" is not present, runnability
13709       information for the CPU is not available.
13710
13711       Since: 1.2.0
13712
13713       MemoryInfo (Object)
13714
13715       Actual memory information in bytes.
13716
13717       Members:
13718
13719       "base-memory: int"
13720           size of "base" memory specified with command line option -m.
13721
13722       "plugged-memory: int" (optional)
13723           size of memory that can be hot-unplugged. This field is omitted if
13724           target doesn't support memory hotplug (i.e. CONFIG_MEM_HOTPLUG not
13725           defined on build time).
13726
13727       Since: 2.11.0
13728
13729       query-memory-size-summary  (Command) Return the amount of initially
13730       allocated and present hotpluggable (if enabled) memory in bytes.
13731
13732       Example:
13733
13734               -> { "execute": "query-memory-size-summary" }
13735               <- { "return": { "base-memory": 4294967296, "plugged-memory": 0 } }
13736
13737       Since: 2.11.0
13738
13739       query-cpu-definitions  (Command) Return a list of supported virtual CPU
13740       definitions
13741
13742       Returns: a list of CpuDefInfo
13743
13744       Since: 1.2.0
13745
13746       CpuModelInfo (Object)
13747
13748       Virtual CPU model.
13749
13750       A CPU model consists of the name of a CPU definition, to which delta
13751       changes are applied (e.g. features added/removed). Most magic values
13752       that an architecture might require should be hidden behind the name.
13753       However, if required, architectures can expose relevant properties.
13754
13755       Members:
13756
13757       "name: string"
13758           the name of the CPU definition the model is based on
13759
13760       "props: value" (optional)
13761           a dictionary of QOM properties to be applied
13762
13763       Since: 2.8.0
13764
13765       CpuModelExpansionType (Enum)
13766
13767       An enumeration of CPU model expansion types.
13768
13769       Values:
13770
13771       "static"
13772           Expand to a static CPU model, a combination of a static base model
13773           name and property delta changes. As the static base model will
13774           never change, the expanded CPU model will be the same, independent
13775           of independent of QEMU version, machine type, machine options, and
13776           accelerator options. Therefore, the resulting model can be used by
13777           tooling without having to specify a compatibility machine - e.g.
13778           when displaying the "host" model. static CPU models are migration-
13779           safe.
13780
13781       "full"
13782           Expand all properties. The produced model is not guaranteed to be
13783           migration-safe, but allows tooling to get an insight and work with
13784           model details.
13785
13786       Note: When a non-migration-safe CPU model is expanded in static mode,
13787       some features enabled by the CPU model may be omitted, because they
13788       can't be implemented by a static CPU model definition (e.g. cache info
13789       passthrough and PMU passthrough in x86). If you need an accurate
13790       representation of the features enabled by a non-migration-safe CPU
13791       model, use "full". If you need a static representation that will keep
13792       ABI compatibility even when changing QEMU version or machine-type, use
13793       "static" (but keep in mind that some features may be omitted).
13794
13795       Since: 2.8.0
13796
13797       CpuModelExpansionInfo (Object)
13798
13799       The result of a cpu model expansion.
13800
13801       Members:
13802
13803       "model: CpuModelInfo"
13804           the expanded CpuModelInfo.
13805
13806       Since: 2.8.0
13807
13808       query-cpu-model-expansion  (Command) Expands a given CPU model (or a
13809       combination of CPU model + additional options) to different
13810       granularities, allowing tooling to get an understanding what a specific
13811       CPU model looks like in QEMU under a certain configuration.
13812
13813       This interface can be used to query the "host" CPU model.
13814
13815       The data returned by this command may be affected by:
13816
13817       ·   QEMU version: CPU models may look different depending on the QEMU
13818           version.  (Except for CPU models reported as "static" in query-cpu-
13819           definitions.)
13820
13821       ·   machine-type: CPU model  may look different depending on the
13822           machine-type.  (Except for CPU models reported as "static" in
13823           query-cpu-definitions.)
13824
13825       ·   machine options (including accelerator): in some architectures, CPU
13826           models may look different depending on machine and accelerator
13827           options. (Except for CPU models reported as "static" in query-cpu-
13828           definitions.)
13829
13830       ·   "-cpu" arguments and global properties: arguments to the -cpu
13831           option and global properties may affect expansion of CPU models.
13832           Using query-cpu-model-expansion while using these is not advised.
13833
13834       Some architectures may not support all expansion types. s390x supports
13835       "full" and "static".
13836
13837       Arguments:
13838
13839       "type: CpuModelExpansionType"
13840           Not documented
13841
13842       "model: CpuModelInfo"
13843           Not documented
13844
13845       Returns: a CpuModelExpansionInfo. Returns an error if expanding CPU
13846       models is not supported, if the model cannot be expanded, if the model
13847       contains an unknown CPU definition name, unknown properties or
13848       properties with a wrong type. Also returns an error if an expansion
13849       type is not supported.
13850
13851       Since: 2.8.0
13852
13853       CpuModelCompareResult (Enum)
13854
13855       An enumeration of CPU model comparison results. The result is usually
13856       calculated using e.g. CPU features or CPU generations.
13857
13858       Values:
13859
13860       "incompatible"
13861           If model A is incompatible to model B, model A is not guaranteed to
13862           run where model B runs and the other way around.
13863
13864       "identical"
13865           If model A is identical to model B, model A is guaranteed to run
13866           where model B runs and the other way around.
13867
13868       "superset"
13869           If model A is a superset of model B, model B is guaranteed to run
13870           where model A runs. There are no guarantees about the other way.
13871
13872       "subset"
13873           If model A is a subset of model B, model A is guaranteed to run
13874           where model B runs. There are no guarantees about the other way.
13875
13876       Since: 2.8.0
13877
13878       CpuModelCompareInfo (Object)
13879
13880       The result of a CPU model comparison.
13881
13882       Members:
13883
13884       "result: CpuModelCompareResult"
13885           The result of the compare operation.
13886
13887       "responsible-properties: array of string"
13888           List of properties that led to the comparison result not being
13889           identical.
13890
13891       "responsible-properties" is a list of QOM property names that led to
13892       both CPUs not being detected as identical. For identical models, this
13893       list is empty.  If a QOM property is read-only, that means there's no
13894       known way to make the CPU models identical. If the special property
13895       name "type" is included, the models are by definition not identical and
13896       cannot be made identical.
13897
13898       Since: 2.8.0
13899
13900       query-cpu-model-comparison  (Command) Compares two CPU models,
13901       returning how they compare in a specific configuration. The results
13902       indicates how both models compare regarding runnability. This result
13903       can be used by tooling to make decisions if a certain CPU model will
13904       run in a certain configuration or if a compatible CPU model has to be
13905       created by baselining.
13906
13907       Usually, a CPU model is compared against the maximum possible CPU model
13908       of a certain configuration (e.g. the "host" model for KVM). If that CPU
13909       model is identical or a subset, it will run in that configuration.
13910
13911       The result returned by this command may be affected by:
13912
13913       ·   QEMU version: CPU models may look different depending on the QEMU
13914           version.  (Except for CPU models reported as "static" in query-cpu-
13915           definitions.)
13916
13917       ·   machine-type: CPU model may look different depending on the
13918           machine-type.  (Except for CPU models reported as "static" in
13919           query-cpu-definitions.)
13920
13921       ·   machine options (including accelerator): in some architectures, CPU
13922           models may look different depending on machine and accelerator
13923           options. (Except for CPU models reported as "static" in query-cpu-
13924           definitions.)
13925
13926       ·   "-cpu" arguments and global properties: arguments to the -cpu
13927           option and global properties may affect expansion of CPU models.
13928           Using query-cpu-model-expansion while using these is not advised.
13929
13930       Some architectures may not support comparing CPU models. s390x supports
13931       comparing CPU models.
13932
13933       Arguments:
13934
13935       "modela: CpuModelInfo"
13936           Not documented
13937
13938       "modelb: CpuModelInfo"
13939           Not documented
13940
13941       Returns: a CpuModelBaselineInfo. Returns an error if comparing CPU
13942       models is not supported, if a model cannot be used, if a model contains
13943       an unknown cpu definition name, unknown properties or properties with
13944       wrong types.
13945
13946       Since: 2.8.0
13947
13948       CpuModelBaselineInfo (Object)
13949
13950       The result of a CPU model baseline.
13951
13952       Members:
13953
13954       "model: CpuModelInfo"
13955           the baselined CpuModelInfo.
13956
13957       Since: 2.8.0
13958
13959       query-cpu-model-baseline  (Command) Baseline two CPU models, creating a
13960       compatible third model. The created model will always be a static,
13961       migration-safe CPU model (see "static" CPU model expansion for
13962       details).
13963
13964       This interface can be used by tooling to create a compatible CPU model
13965       out two CPU models. The created CPU model will be identical to or a
13966       subset of both CPU models when comparing them. Therefore, the created
13967       CPU model is guaranteed to run where the given CPU models run.
13968
13969       The result returned by this command may be affected by:
13970
13971       ·   QEMU version: CPU models may look different depending on the QEMU
13972           version.  (Except for CPU models reported as "static" in query-cpu-
13973           definitions.)
13974
13975       ·   machine-type: CPU model may look different depending on the
13976           machine-type.  (Except for CPU models reported as "static" in
13977           query-cpu-definitions.)
13978
13979       ·   machine options (including accelerator): in some architectures, CPU
13980           models may look different depending on machine and accelerator
13981           options. (Except for CPU models reported as "static" in query-cpu-
13982           definitions.)
13983
13984       ·   "-cpu" arguments and global properties: arguments to the -cpu
13985           option and global properties may affect expansion of CPU models.
13986           Using query-cpu-model-expansion while using these is not advised.
13987
13988       Some architectures may not support baselining CPU models. s390x
13989       supports baselining CPU models.
13990
13991       Arguments:
13992
13993       "modela: CpuModelInfo"
13994           Not documented
13995
13996       "modelb: CpuModelInfo"
13997           Not documented
13998
13999       Returns: a CpuModelBaselineInfo. Returns an error if baselining CPU
14000       models is not supported, if a model cannot be used, if a model contains
14001       an unknown cpu definition name, unknown properties or properties with
14002       wrong types.
14003
14004       Since: 2.8.0
14005
14006       AddfdInfo (Object)
14007
14008       Information about a file descriptor that was added to an fd set.
14009
14010       Members:
14011
14012       "fdset-id: int"
14013           The ID of the fd set that "fd" was added to.
14014
14015       "fd: int"
14016           The file descriptor that was received via SCM rights and added to
14017           the fd set.
14018
14019       Since: 1.2.0
14020
14021       add-fd  (Command) Add a file descriptor, that was passed via SCM
14022       rights, to an fd set.
14023
14024       Arguments:
14025
14026       "fdset-id: int" (optional)
14027           The ID of the fd set to add the file descriptor to.
14028
14029       "opaque: string" (optional)
14030           A free-form string that can be used to describe the fd.
14031
14032       Returns: "AddfdInfo" on success
14033
14034       If file descriptor was not received, FdNotSupplied
14035
14036       If "fdset-id" is a negative value, InvalidParameterValue
14037
14038       Notes: The list of fd sets is shared by all monitor connections.
14039
14040       If "fdset-id" is not specified, a new fd set will be created.
14041
14042       Since: 1.2.0
14043
14044       Example:
14045
14046               -> { "execute": "add-fd", "arguments": { "fdset-id": 1 } }
14047               <- { "return": { "fdset-id": 1, "fd": 3 } }
14048
14049       remove-fd  (Command) Remove a file descriptor from an fd set.
14050
14051       Arguments:
14052
14053       "fdset-id: int"
14054           The ID of the fd set that the file descriptor belongs to.
14055
14056       "fd: int" (optional)
14057           The file descriptor that is to be removed.
14058
14059       Returns: Nothing on success If "fdset-id" or "fd" is not found,
14060       FdNotFound
14061
14062       Since: 1.2.0
14063
14064       Notes: The list of fd sets is shared by all monitor connections.
14065
14066       If "fd" is not specified, all file descriptors in "fdset-id" will be
14067       removed.
14068
14069       Example:
14070
14071               -> { "execute": "remove-fd", "arguments": { "fdset-id": 1, "fd": 3 } }
14072               <- { "return": {} }
14073
14074       FdsetFdInfo (Object)
14075
14076       Information about a file descriptor that belongs to an fd set.
14077
14078       Members:
14079
14080       "fd: int"
14081           The file descriptor value.
14082
14083       "opaque: string" (optional)
14084           A free-form string that can be used to describe the fd.
14085
14086       Since: 1.2.0
14087
14088       FdsetInfo (Object)
14089
14090       Information about an fd set.
14091
14092       Members:
14093
14094       "fdset-id: int"
14095           The ID of the fd set.
14096
14097       "fds: array of FdsetFdInfo"
14098           A list of file descriptors that belong to this fd set.
14099
14100       Since: 1.2.0
14101
14102       query-fdsets  (Command) Return information describing all fd sets.
14103
14104       Returns: A list of "FdsetInfo"
14105
14106       Since: 1.2.0
14107
14108       Note: The list of fd sets is shared by all monitor connections.
14109
14110       Example:
14111
14112               -> { "execute": "query-fdsets" }
14113               <- { "return": [
14114                      {
14115                        "fds": [
14116                          {
14117                            "fd": 30,
14118                            "opaque": "rdonly:/path/to/file"
14119                          },
14120                          {
14121                            "fd": 24,
14122                            "opaque": "rdwr:/path/to/file"
14123                          }
14124                        ],
14125                        "fdset-id": 1
14126                      },
14127                      {
14128                        "fds": [
14129                          {
14130                            "fd": 28
14131                          },
14132                          {
14133                            "fd": 29
14134                          }
14135                        ],
14136                        "fdset-id": 0
14137                      }
14138                    ]
14139                  }
14140
14141       TargetInfo (Object)
14142
14143       Information describing the QEMU target.
14144
14145       Members:
14146
14147       "arch: SysEmuTarget"
14148           the target architecture
14149
14150       Since: 1.2.0
14151
14152       query-target  (Command) Return information about the target for this
14153       QEMU
14154
14155       Returns: TargetInfo
14156
14157       Since: 1.2.0
14158
14159       AcpiTableOptions (Object)
14160
14161       Specify an ACPI table on the command line to load.
14162
14163       At most one of "file" and "data" can be specified. The list of files
14164       specified by any one of them is loaded and concatenated in order. If
14165       both are omitted, "data" is implied.
14166
14167       Other fields / optargs can be used to override fields of the generic
14168       ACPI table header; refer to the ACPI specification 5.0, section 5.2.6
14169       System Description Table Header. If a header field is not overridden,
14170       then the corresponding value from the concatenated blob is used (in
14171       case of "file"), or it is filled in with a hard-coded value (in case of
14172       "data").
14173
14174       String fields are copied into the matching ACPI member from lowest
14175       address upwards, and silently truncated / NUL-padded to length.
14176
14177       Members:
14178
14179       "sig: string" (optional)
14180           table signature / identifier (4 bytes)
14181
14182       "rev: int" (optional)
14183           table revision number (dependent on signature, 1 byte)
14184
14185       "oem_id: string" (optional)
14186           OEM identifier (6 bytes)
14187
14188       "oem_table_id: string" (optional)
14189           OEM table identifier (8 bytes)
14190
14191       "oem_rev: int" (optional)
14192           OEM-supplied revision number (4 bytes)
14193
14194       "asl_compiler_id: string" (optional)
14195           identifier of the utility that created the table (4 bytes)
14196
14197       "asl_compiler_rev: int" (optional)
14198           revision number of the utility that created the table (4 bytes)
14199
14200       "file: string" (optional)
14201           colon (:) separated list of pathnames to load and concatenate as
14202           table data. The resultant binary blob is expected to have an ACPI
14203           table header. At least one file is required. This field excludes
14204           "data".
14205
14206       "data: string" (optional)
14207           colon (:) separated list of pathnames to load and concatenate as
14208           table data. The resultant binary blob must not have an ACPI table
14209           header. At least one file is required. This field excludes "file".
14210
14211       Since: 1.5
14212
14213       CommandLineParameterType (Enum)
14214
14215       Possible types for an option parameter.
14216
14217       Values:
14218
14219       "string"
14220           accepts a character string
14221
14222       "boolean"
14223           accepts "on" or "off"
14224
14225       "number"
14226           accepts a number
14227
14228       "size"
14229           accepts a number followed by an optional suffix (K)ilo, (M)ega,
14230           (G)iga, (T)era
14231
14232       Since: 1.5
14233
14234       CommandLineParameterInfo (Object)
14235
14236       Details about a single parameter of a command line option.
14237
14238       Members:
14239
14240       "name: string"
14241           parameter name
14242
14243       "type: CommandLineParameterType"
14244           parameter "CommandLineParameterType"
14245
14246       "help: string" (optional)
14247           human readable text string, not suitable for parsing.
14248
14249       "default: string" (optional)
14250           default value string (since 2.1)
14251
14252       Since: 1.5
14253
14254       CommandLineOptionInfo (Object)
14255
14256       Details about a command line option, including its list of parameter
14257       details
14258
14259       Members:
14260
14261       "option: string"
14262           option name
14263
14264       "parameters: array of CommandLineParameterInfo"
14265           an array of "CommandLineParameterInfo"
14266
14267       Since: 1.5
14268
14269       query-command-line-options  (Command) Query command line option schema.
14270
14271       Arguments:
14272
14273       "option: string" (optional)
14274           option name
14275
14276       Returns: list of "CommandLineOptionInfo" for all options (or for the
14277       given "option").  Returns an error if the given "option" doesn't exist.
14278
14279       Since: 1.5
14280
14281       Example:
14282
14283               -> { "execute": "query-command-line-options",
14284                    "arguments": { "option": "option-rom" } }
14285               <- { "return": [
14286                       {
14287                           "parameters": [
14288                               {
14289                                   "name": "romfile",
14290                                   "type": "string"
14291                               },
14292                               {
14293                                   "name": "bootindex",
14294                                   "type": "number"
14295                               }
14296                           ],
14297                           "option": "option-rom"
14298                       }
14299                    ]
14300                  }
14301
14302       X86CPURegister32 (Enum)
14303
14304       A X86 32-bit register
14305
14306       Values:
14307
14308       "EAX"
14309           Not documented
14310
14311       "EBX"
14312           Not documented
14313
14314       "ECX"
14315           Not documented
14316
14317       "EDX"
14318           Not documented
14319
14320       "ESP"
14321           Not documented
14322
14323       "EBP"
14324           Not documented
14325
14326       "ESI"
14327           Not documented
14328
14329       "EDI"
14330           Not documented
14331
14332       Since: 1.5
14333
14334       X86CPUFeatureWordInfo (Object)
14335
14336       Information about a X86 CPU feature word
14337
14338       Members:
14339
14340       "cpuid-input-eax: int"
14341           Input EAX value for CPUID instruction for that feature word
14342
14343       "cpuid-input-ecx: int" (optional)
14344           Input ECX value for CPUID instruction for that feature word
14345
14346       "cpuid-register: X86CPURegister32"
14347           Output register containing the feature bits
14348
14349       "features: int"
14350           value of output register, containing the feature bits
14351
14352       Since: 1.5
14353
14354       DummyForceArrays (Object)
14355
14356       Not used by QMP; hack to let us use X86CPUFeatureWordInfoList
14357       internally
14358
14359       Members:
14360
14361       "unused: array of X86CPUFeatureWordInfo"
14362           Not documented
14363
14364       Since: 2.5
14365
14366       NumaOptionsType (Enum)
14367
14368       Values:
14369
14370       "node"
14371           NUMA nodes configuration
14372
14373       "dist"
14374           NUMA distance configuration (since 2.10)
14375
14376       "cpu"
14377           property based CPU(s) to node mapping (Since: 2.10)
14378
14379       Since: 2.1
14380
14381       NumaOptions (Object)
14382
14383       A discriminated record of NUMA options. (for OptsVisitor)
14384
14385       Members:
14386
14387       "type: NumaOptionsType"
14388           Not documented
14389
14390       The members of "NumaNodeOptions" when "type" is "node"
14391       The members of "NumaDistOptions" when "type" is "dist"
14392       The members of "NumaCpuOptions" when "type" is "cpu"
14393
14394       Since: 2.1
14395
14396       NumaNodeOptions (Object)
14397
14398       Create a guest NUMA node. (for OptsVisitor)
14399
14400       Members:
14401
14402       "nodeid: int" (optional)
14403           NUMA node ID (increase by 1 from 0 if omitted)
14404
14405       "cpus: array of int" (optional)
14406           VCPUs belonging to this node (assign VCPUS round-robin if omitted)
14407
14408       "mem: int" (optional)
14409           memory size of this node; mutually exclusive with "memdev".
14410           Equally divide total memory among nodes if both "mem" and "memdev"
14411           are omitted.
14412
14413       "memdev: string" (optional)
14414           memory backend object.  If specified for one node, it must be
14415           specified for all nodes.
14416
14417       Since: 2.1
14418
14419       NumaDistOptions (Object)
14420
14421       Set the distance between 2 NUMA nodes.
14422
14423       Members:
14424
14425       "src: int"
14426           source NUMA node.
14427
14428       "dst: int"
14429           destination NUMA node.
14430
14431       "val: int"
14432           NUMA distance from source node to destination node.  When a node is
14433           unreachable from another node, set the distance between them to
14434           255.
14435
14436       Since: 2.10
14437
14438       NumaCpuOptions (Object)
14439
14440       Option "-numa cpu" overrides default cpu to node mapping.  It accepts
14441       the same set of cpu properties as returned by
14442       query-hotpluggable-cpus[].props, where node-id could be used to
14443       override default node mapping.
14444
14445       Members:
14446
14447       The members of "CpuInstanceProperties"
14448
14449       Since: 2.10
14450
14451       HostMemPolicy (Enum)
14452
14453       Host memory policy types
14454
14455       Values:
14456
14457       "default"
14458           restore default policy, remove any nondefault policy
14459
14460       "preferred"
14461           set the preferred host nodes for allocation
14462
14463       "bind"
14464           a strict policy that restricts memory allocation to the host nodes
14465           specified
14466
14467       "interleave"
14468           memory allocations are interleaved across the set of host nodes
14469           specified
14470
14471       Since: 2.1
14472
14473       Memdev (Object)
14474
14475       Information about memory backend
14476
14477       Members:
14478
14479       "id: string" (optional)
14480           backend's ID if backend has 'id' property (since 2.9)
14481
14482       "size: int"
14483           memory backend size
14484
14485       "merge: boolean"
14486           enables or disables memory merge support
14487
14488       "dump: boolean"
14489           includes memory backend's memory in a core dump or not
14490
14491       "prealloc: boolean"
14492           enables or disables memory preallocation
14493
14494       "host-nodes: array of int"
14495           host nodes for its memory policy
14496
14497       "policy: HostMemPolicy"
14498           memory policy of memory backend
14499
14500       Since: 2.1
14501
14502       query-memdev  (Command) Returns information for all memory backends.
14503
14504       Returns: a list of "Memdev".
14505
14506       Since: 2.1
14507
14508       Example:
14509
14510               -> { "execute": "query-memdev" }
14511               <- { "return": [
14512                      {
14513                        "id": "mem1",
14514                        "size": 536870912,
14515                        "merge": false,
14516                        "dump": true,
14517                        "prealloc": false,
14518                        "host-nodes": [0, 1],
14519                        "policy": "bind"
14520                      },
14521                      {
14522                        "size": 536870912,
14523                        "merge": false,
14524                        "dump": true,
14525                        "prealloc": true,
14526                        "host-nodes": [2, 3],
14527                        "policy": "preferred"
14528                      }
14529                    ]
14530                  }
14531
14532       PCDIMMDeviceInfo (Object)
14533
14534       PCDIMMDevice state information
14535
14536       Members:
14537
14538       "id: string" (optional)
14539           device's ID
14540
14541       "addr: int"
14542           physical address, where device is mapped
14543
14544       "size: int"
14545           size of memory that the device provides
14546
14547       "slot: int"
14548           slot number at which device is plugged in
14549
14550       "node: int"
14551           NUMA node number where device is plugged in
14552
14553       "memdev: string"
14554           memory backend linked with device
14555
14556       "hotplugged: boolean"
14557           true if device was hotplugged
14558
14559       "hotpluggable: boolean"
14560           true if device if could be added/removed while machine is running
14561
14562       Since: 2.1
14563
14564       MemoryDeviceInfo (Object)
14565
14566       Union containing information about a memory device
14567
14568       Members:
14569
14570       "type"
14571           One of "dimm", "nvdimm"
14572
14573       "data: PCDIMMDeviceInfo" when "type" is "dimm"
14574       "data: PCDIMMDeviceInfo" when "type" is "nvdimm"
14575
14576       Since: 2.1
14577
14578       query-memory-devices  (Command) Lists available memory devices and
14579       their state
14580
14581       Since: 2.1
14582
14583       Example:
14584
14585               -> { "execute": "query-memory-devices" }
14586               <- { "return": [ { "data":
14587                                     { "addr": 5368709120,
14588                                       "hotpluggable": true,
14589                                       "hotplugged": true,
14590                                       "id": "d1",
14591                                       "memdev": "/objects/memX",
14592                                       "node": 0,
14593                                       "size": 1073741824,
14594                                       "slot": 0},
14595                                  "type": "dimm"
14596                                } ] }
14597
14598       MEM_UNPLUG_ERROR  (Event) Emitted when memory hot unplug error occurs.
14599
14600       Arguments:
14601
14602       "device: string"
14603           device name
14604
14605       "msg: string"
14606           Informative message
14607
14608       Since: 2.4
14609
14610       Example:
14611
14612               <- { "event": "MEM_UNPLUG_ERROR"
14613                    "data": { "device": "dimm1",
14614                              "msg": "acpi: device unplug for unsupported device"
14615                    },
14616                    "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
14617
14618       ACPISlotType (Enum)
14619
14620       Values:
14621
14622       "DIMM"
14623           memory slot
14624
14625       "CPU"
14626           logical CPU slot (since 2.7)
14627
14628       ACPIOSTInfo (Object)
14629
14630       OSPM Status Indication for a device For description of possible values
14631       of "source" and "status" fields see "_OST (OSPM Status Indication)"
14632       chapter of ACPI5.0 spec.
14633
14634       Members:
14635
14636       "device: string" (optional)
14637           device ID associated with slot
14638
14639       "slot: string"
14640           slot ID, unique per slot of a given "slot-type"
14641
14642       "slot-type: ACPISlotType"
14643           type of the slot
14644
14645       "source: int"
14646           an integer containing the source event
14647
14648       "status: int"
14649           an integer containing the status code
14650
14651       Since: 2.1
14652
14653       query-acpi-ospm-status  (Command) Return a list of ACPIOSTInfo for
14654       devices that support status reporting via ACPI _OST method.
14655
14656       Since: 2.1
14657
14658       Example:
14659
14660               -> { "execute": "query-acpi-ospm-status" }
14661               <- { "return": [ { "device": "d1", "slot": "0", "slot-type": "DIMM", "source": 1, "status": 0},
14662                                { "slot": "1", "slot-type": "DIMM", "source": 0, "status": 0},
14663                                { "slot": "2", "slot-type": "DIMM", "source": 0, "status": 0},
14664                                { "slot": "3", "slot-type": "DIMM", "source": 0, "status": 0}
14665                  ]}
14666
14667       ACPI_DEVICE_OST  (Event) Emitted when guest executes ACPI _OST method.
14668
14669       Arguments:
14670
14671       "info: ACPIOSTInfo"
14672           OSPM Status Indication
14673
14674       Since: 2.1
14675
14676       Example:
14677
14678               <- { "event": "ACPI_DEVICE_OST",
14679                    "data": { "device": "d1", "slot": "0",
14680                              "slot-type": "DIMM", "source": 1, "status": 0 } }
14681
14682       rtc-reset-reinjection  (Command) This command will reset the RTC
14683       interrupt reinjection backlog.  Can be used if another mechanism to
14684       synchronize guest time is in effect, for example QEMU guest agent's
14685       guest-set-time command.
14686
14687       Since: 2.1
14688
14689       Example:
14690
14691               -> { "execute": "rtc-reset-reinjection" }
14692               <- { "return": {} }
14693
14694       RTC_CHANGE  (Event) Emitted when the guest changes the RTC time.
14695
14696       Arguments:
14697
14698       "offset: int"
14699           offset between base RTC clock (as specified by -rtc base), and new
14700           RTC clock value
14701
14702       Note: This event is rate-limited.
14703
14704       Since: 0.13.0
14705
14706       Example:
14707
14708               <-   { "event": "RTC_CHANGE",
14709                      "data": { "offset": 78 },
14710                      "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
14711
14712       ReplayMode (Enum)
14713
14714       Mode of the replay subsystem.
14715
14716       Values:
14717
14718       "none"
14719           normal execution mode. Replay or record are not enabled.
14720
14721       "record"
14722           record mode. All non-deterministic data is written into the replay
14723           log.
14724
14725       "play"
14726           replay mode. Non-deterministic data required for system execution
14727           is read from the log.
14728
14729       Since: 2.5
14730
14731       xen-load-devices-state  (Command) Load the state of all devices from
14732       file. The RAM and the block devices of the VM are not loaded by this
14733       command.
14734
14735       Arguments:
14736
14737       "filename: string"
14738           the file to load the state of the devices from as binary data. See
14739           xen-save-devices-state.txt for a description of the binary format.
14740
14741       Since: 2.7
14742
14743       Example:
14744
14745               -> { "execute": "xen-load-devices-state",
14746                    "arguments": { "filename": "/tmp/resume" } }
14747               <- { "return": {} }
14748
14749       GICCapability (Object)
14750
14751       The struct describes capability for a specific GIC (Generic Interrupt
14752       Controller) version. These bits are not only decided by QEMU/KVM
14753       software version, but also decided by the hardware that the program is
14754       running upon.
14755
14756       Members:
14757
14758       "version: int"
14759           version of GIC to be described. Currently, only 2 and 3 are
14760           supported.
14761
14762       "emulated: boolean"
14763           whether current QEMU/hardware supports emulated GIC device in user
14764           space.
14765
14766       "kernel: boolean"
14767           whether current QEMU/hardware supports hardware accelerated GIC
14768           device in kernel.
14769
14770       Since: 2.6
14771
14772       query-gic-capabilities  (Command) This command is ARM-only. It will
14773       return a list of GICCapability objects that describe its capability
14774       bits.
14775
14776       Returns: a list of GICCapability objects.
14777
14778       Since: 2.6
14779
14780       Example:
14781
14782               -> { "execute": "query-gic-capabilities" }
14783               <- { "return": [{ "version": 2, "emulated": true, "kernel": false },
14784                               { "version": 3, "emulated": false, "kernel": true } ] }
14785
14786       CpuInstanceProperties (Object)
14787
14788       List of properties to be used for hotplugging a CPU instance, it should
14789       be passed by management with device_add command when a CPU is being
14790       hotplugged.
14791
14792       Members:
14793
14794       "node-id: int" (optional)
14795           NUMA node ID the CPU belongs to
14796
14797       "socket-id: int" (optional)
14798           socket number within node/board the CPU belongs to
14799
14800       "core-id: int" (optional)
14801           core number within socket the CPU belongs to
14802
14803       "thread-id: int" (optional)
14804           thread number within core the CPU belongs to
14805
14806       Note: currently there are 4 properties that could be present but
14807       management should be prepared to pass through other properties with
14808       device_add command to allow for future interface extension. This also
14809       requires the filed names to be kept in sync with the properties passed
14810       to -device/device_add.
14811
14812       Since: 2.7
14813
14814       HotpluggableCPU (Object)
14815
14816       Members:
14817
14818       "type: string"
14819           CPU object type for usage with device_add command
14820
14821       "props: CpuInstanceProperties"
14822           list of properties to be used for hotplugging CPU
14823
14824       "vcpus-count: int"
14825           number of logical VCPU threads "HotpluggableCPU" provides
14826
14827       "qom-path: string" (optional)
14828           link to existing CPU object if CPU is present or omitted if CPU is
14829           not present.
14830
14831       Since: 2.7
14832
14833       query-hotpluggable-cpus  (Command)
14834
14835       Returns: a list of HotpluggableCPU objects.
14836
14837       Since: 2.7
14838
14839       Example:
14840
14841               For pseries machine type started with -smp 2,cores=2,maxcpus=4 -cpu POWER8:
14842
14843               -> { "execute": "query-hotpluggable-cpus" }
14844               <- {"return": [
14845                    { "props": { "core": 8 }, "type": "POWER8-spapr-cpu-core",
14846                      "vcpus-count": 1 },
14847                    { "props": { "core": 0 }, "type": "POWER8-spapr-cpu-core",
14848                      "vcpus-count": 1, "qom-path": "/machine/unattached/device[0]"}
14849                  ]}'
14850
14851               For pc machine type started with -smp 1,maxcpus=2:
14852
14853               -> { "execute": "query-hotpluggable-cpus" }
14854               <- {"return": [
14855                    {
14856                       "type": "qemu64-x86_64-cpu", "vcpus-count": 1,
14857                       "props": {"core-id": 0, "socket-id": 1, "thread-id": 0}
14858                    },
14859                    {
14860                       "qom-path": "/machine/unattached/device[0]",
14861                       "type": "qemu64-x86_64-cpu", "vcpus-count": 1,
14862                       "props": {"core-id": 0, "socket-id": 0, "thread-id": 0}
14863                    }
14864                  ]}
14865
14866               For s390x-virtio-ccw machine type started with -smp 1,maxcpus=2 -cpu qemu
14867               (Since: 2.11):
14868
14869               -> { "execute": "query-hotpluggable-cpus" }
14870               <- {"return": [
14871                    {
14872                       "type": "qemu-s390x-cpu", "vcpus-count": 1,
14873                       "props": { "core-id": 1 }
14874                    },
14875                    {
14876                       "qom-path": "/machine/unattached/device[0]",
14877                       "type": "qemu-s390x-cpu", "vcpus-count": 1,
14878                       "props": { "core-id": 0 }
14879                    }
14880                  ]}
14881
14882       GuidInfo (Object)
14883
14884       GUID information.
14885
14886       Members:
14887
14888       "guid: string"
14889           the globally unique identifier
14890
14891       Since: 2.9
14892
14893       query-vm-generation-id  (Command) Show Virtual Machine Generation ID
14894
14895       Since: 2.9
14896
14897       SevState (Enum)
14898
14899       An enumeration of SEV state information used during "query-sev".
14900
14901       Values:
14902
14903       "uninit"
14904           The guest is uninitialized.
14905
14906       "launch-update"
14907           The guest is currently being launched; plaintext data and register
14908           state is being imported.
14909
14910       "launch-secret"
14911           The guest is currently being launched; ciphertext data is being
14912           imported.
14913
14914       "running"
14915           The guest is fully launched or migrated in.
14916
14917       "send-update"
14918           The guest is currently being migrated out to another machine.
14919
14920       "receive-update"
14921           The guest is currently being migrated from another machine.
14922
14923       Since: 2.12
14924
14925       SevInfo (Object)
14926
14927       Information about Secure Encrypted Virtualization (SEV) support
14928
14929       Members:
14930
14931       "enabled: boolean"
14932           true if SEV is active
14933
14934       "api-major: int"
14935           SEV API major version
14936
14937       "api-minor: int"
14938           SEV API minor version
14939
14940       "build-id: int"
14941           SEV FW build id
14942
14943       "policy: int"
14944           SEV policy value
14945
14946       "state: SevState"
14947           SEV guest state
14948
14949       "handle: int"
14950           SEV firmware handle
14951
14952       Since: 2.12
14953
14954       query-sev  (Command) Returns information about SEV
14955
14956       Returns: "SevInfo"
14957
14958       Since: 2.12
14959
14960       Example:
14961
14962               -> { "execute": "query-sev" }
14963               <- { "return": { "enabled": true, "api-major" : 0, "api-minor" : 0,
14964                                "build-id" : 0, "policy" : 0, "state" : "running",
14965                                "handle" : 1 } }
14966
14967       SevLaunchMeasureInfo (Object)
14968
14969       SEV Guest Launch measurement information
14970
14971       Members:
14972
14973       "data: string"
14974           the measurement value encoded in base64
14975
14976       Since: 2.12
14977
14978       query-sev-launch-measure  (Command) Query the SEV guest launch
14979       information.
14980
14981       Returns: The "SevLaunchMeasureInfo" for the guest
14982
14983       Since: 2.12
14984
14985       Example:
14986
14987               -> { "execute": "query-sev-launch-measure" }
14988               <- { "return": { "data": "4l8LXeNlSPUDlXPJG5966/8%YZ" } }
14989
14990       SevCapability (Object)
14991
14992       The struct describes capability for a Secure Encrypted Virtualization
14993       feature.
14994
14995       Members:
14996
14997       "pdh: string"
14998           Platform Diffie-Hellman key (base64 encoded)
14999
15000       "cert-chain: string"
15001           PDH certificate chain (base64 encoded)
15002
15003       "cbitpos: int"
15004           C-bit location in page table entry
15005
15006       "reduced-phys-bits: int"
15007           Number of physical Address bit reduction when SEV is enabled
15008
15009       Since: 2.12
15010
15011       query-sev-capabilities  (Command) This command is used to get the SEV
15012       capabilities, and is supported on AMD X86 platforms only.
15013
15014       Returns: SevCapability objects.
15015
15016       Since: 2.12
15017
15018       Example:
15019
15020               -> { "execute": "query-sev-capabilities" }
15021               <- { "return": { "pdh": "8CCDD8DDD", "cert-chain": "888CCCDDDEE",
15022                                "cbitpos": 47, "reduced-phys-bits": 5}}
15023
15024       CommandDropReason (Enum)
15025
15026       Reasons that caused one command to be dropped.
15027
15028       Values:
15029
15030       "queue-full"
15031           the command queue is full. This can only occur when the client
15032           sends a new non-oob command before the response to the previous
15033           non-oob command has been received.
15034
15035       Since: 2.12
15036
15037       COMMAND_DROPPED  (Event) Emitted when a command is dropped due to some
15038       reason.  Commands can only be dropped when the oob capability is
15039       enabled.
15040
15041       Arguments:
15042
15043       "id: value"
15044           The dropped command's "id" field.  FIXME Broken by design.  Events
15045           are broadcast to all monitors.  If another monitor's client has a
15046           command with the same ID in flight, the event will incorrectly
15047           claim that command was dropped.
15048
15049       "reason: CommandDropReason"
15050           The reason why the command is dropped.
15051
15052       Since: 2.12
15053
15054       Example:
15055
15056               { "event": "COMMAND_DROPPED",
15057                 "data": {"result": {"id": "libvirt-102",
15058                                     "reason": "queue-full" } } }
15059
15060       set-numa-node  (Command) Runtime equivalent of '-numa' CLI option,
15061       available at preconfigure stage to configure numa mapping before
15062       initializing machine.
15063
15064       Since 3.0
15065
15066       Arguments: the members of "NumaOptions"
15067
15068
15069
15070                                  2019-05-14                 QEMU-QMP-REF.7(7)
Impressum