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