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   QMP errors
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   Common data types
86       IoOperationType (Enum)
87
88       An enumeration of the I/O operation types
89
90       Values:
91
92       "read"
93           read operation
94
95       "write"
96           write operation
97
98       Since: 2.1
99
100       OnOffAuto (Enum)
101
102       An enumeration of three options: on, off, and auto
103
104       Values:
105
106       "auto"
107           QEMU selects the value between on and off
108
109       "on"
110           Enabled
111
112       "off"
113           Disabled
114
115       Since: 2.2
116
117       OnOffSplit (Enum)
118
119       An enumeration of three values: on, off, and split
120
121       Values:
122
123       "on"
124           Enabled
125
126       "off"
127           Disabled
128
129       "split"
130           Mixed
131
132       Since: 2.6
133
134       String (Object)
135
136       A fat type wrapping 'str', to be embedded in lists.
137
138       Members:
139
140       "str: string"
141           Not documented
142
143       Since: 1.2
144
145       StrOrNull (Alternate)
146
147       This is a string value or the explicit lack of a string (null pointer
148       in C).  Intended for cases when 'optional absent' already has a
149       different meaning.
150
151       Members:
152
153       "s: string"
154           the string value
155
156       "n: null"
157           no string value
158
159       Since: 2.10
160
161       OffAutoPCIBAR (Enum)
162
163       An enumeration of options for specifying a PCI BAR
164
165       Values:
166
167       "off"
168           The specified feature is disabled
169
170       "auto"
171           The PCI BAR for the feature is automatically selected
172
173       "bar0"
174           PCI BAR0 is used for the feature
175
176       "bar1"
177           PCI BAR1 is used for the feature
178
179       "bar2"
180           PCI BAR2 is used for the feature
181
182       "bar3"
183           PCI BAR3 is used for the feature
184
185       "bar4"
186           PCI BAR4 is used for the feature
187
188       "bar5"
189           PCI BAR5 is used for the feature
190
191       Since: 2.12
192
193       PCIELinkSpeed (Enum)
194
195       An enumeration of PCIe link speeds in units of GT/s
196
197       Values:
198
199       "2_5"
200           2.5GT/s
201
202       5   5.0GT/s
203
204       8   8.0GT/s
205
206       16  16.0GT/s
207
208       Since: 4.0
209
210       PCIELinkWidth (Enum)
211
212       An enumeration of PCIe link width
213
214       Values:
215
216       1   x1
217
218       2   x2
219
220       4   x4
221
222       8   x8
223
224       12  x12
225
226       16  x16
227
228       32  x32
229
230       Since: 4.0
231
232   Socket data types
233       NetworkAddressFamily (Enum)
234
235       The network address family
236
237       Values:
238
239       "ipv4"
240           IPV4 family
241
242       "ipv6"
243           IPV6 family
244
245       "unix"
246           unix socket
247
248       "vsock"
249           vsock family (since 2.8)
250
251       "unknown"
252           otherwise
253
254       Since: 2.1
255
256       InetSocketAddressBase (Object)
257
258       Members:
259
260       "host: string"
261           host part of the address
262
263       "port: string"
264           port part of the address
265
266       InetSocketAddress (Object)
267
268       Captures a socket address or address range in the Internet namespace.
269
270       Members:
271
272       "numeric: boolean" (optional)
273           true if the host/port are guaranteed to be numeric, false if name
274           resolution should be attempted. Defaults to false.  (Since 2.9)
275
276       "to: int" (optional)
277           If present, this is range of possible addresses, with port between
278           "port" and "to".
279
280       "ipv4: boolean" (optional)
281           whether to accept IPv4 addresses, default try both IPv4 and IPv6
282
283       "ipv6: boolean" (optional)
284           whether to accept IPv6 addresses, default try both IPv4 and IPv6
285
286       "keep-alive: boolean" (optional)
287           enable keep-alive when connecting to this socket. Not supported for
288           passive sockets. (Since 4.2)
289
290       The members of "InetSocketAddressBase"
291
292       Since: 1.3
293
294       UnixSocketAddress (Object)
295
296       Captures a socket address in the local ("Unix socket") namespace.
297
298       Members:
299
300       "path: string"
301           filesystem path to use
302
303       Since: 1.3
304
305       VsockSocketAddress (Object)
306
307       Captures a socket address in the vsock namespace.
308
309       Members:
310
311       "cid: string"
312           unique host identifier
313
314       "port: string"
315           port
316
317       Note: string types are used to allow for possible future hostname or
318       service resolution support.
319
320       Since: 2.8
321
322       SocketAddressLegacy (Object)
323
324       Captures the address of a socket, which could also be a named file
325       descriptor
326
327       Members:
328
329       "type"
330           One of "inet", "unix", "vsock", "fd"
331
332       "data: InetSocketAddress" when "type" is "inet"
333       "data: UnixSocketAddress" when "type" is "unix"
334       "data: VsockSocketAddress" when "type" is "vsock"
335       "data: String" when "type" is "fd"
336
337       Note: This type is deprecated in favor of SocketAddress.  The
338       difference between SocketAddressLegacy and SocketAddress is that the
339       latter is a flat union rather than a simple union. Flat is nicer
340       because it avoids nesting on the wire, i.e. that form has fewer {}.
341
342       Since: 1.3
343
344       SocketAddressType (Enum)
345
346       Available SocketAddress types
347
348       Values:
349
350       "inet"
351           Internet address
352
353       "unix"
354           Unix domain socket
355
356       "vsock"
357           VMCI address
358
359       "fd"
360           decimal is for file descriptor number, otherwise a file descriptor
361           name.  Named file descriptors are permitted in monitor commands, in
362           combination with the 'getfd' command. Decimal file descriptors are
363           permitted at startup or other contexts where no monitor context is
364           active.
365
366       Since: 2.9
367
368       SocketAddress (Object)
369
370       Captures the address of a socket, which could also be a named file
371       descriptor
372
373       Members:
374
375       "type: SocketAddressType"
376           Transport type
377
378       The members of "InetSocketAddress" when "type" is "inet"
379       The members of "UnixSocketAddress" when "type" is "unix"
380       The members of "VsockSocketAddress" when "type" is "vsock"
381       The members of "String" when "type" is "fd"
382
383       Since: 2.9
384
385   VM run state
386       RunState (Enum)
387
388       An enumeration of VM run states.
389
390       Values:
391
392       "debug"
393           QEMU is running on a debugger
394
395       "finish-migrate"
396           guest is paused to finish the migration process
397
398       "inmigrate"
399           guest is paused waiting for an incoming migration.  Note that this
400           state does not tell whether the machine will start at the end of
401           the migration.  This depends on the command-line -S option and any
402           invocation of 'stop' or 'cont' that has happened since QEMU was
403           started.
404
405       "internal-error"
406           An internal error that prevents further guest execution has
407           occurred
408
409       "io-error"
410           the last IOP has failed and the device is configured to pause on
411           I/O errors
412
413       "paused"
414           guest has been paused via the 'stop' command
415
416       "postmigrate"
417           guest is paused following a successful 'migrate'
418
419       "prelaunch"
420           QEMU was started with -S and guest has not started
421
422       "restore-vm"
423           guest is paused to restore VM state
424
425       "running"
426           guest is actively running
427
428       "save-vm"
429           guest is paused to save the VM state
430
431       "shutdown"
432           guest is shut down (and -no-shutdown is in use)
433
434       "suspended"
435           guest is suspended (ACPI S3)
436
437       "watchdog"
438           the watchdog action is configured to pause and has been triggered
439
440       "guest-panicked"
441           guest has been panicked as a result of guest OS panic
442
443       "colo"
444           guest is paused to save/restore VM state under colo checkpoint, VM
445           can not get into this state unless colo capability is enabled for
446           migration. (since 2.8)
447
448       "preconfig"
449           QEMU is paused before board specific init callback is executed.
450           The state is reachable only if the --preconfig CLI option is used.
451           (Since 3.0)
452
453       ShutdownCause (Enum)
454
455       An enumeration of reasons for a Shutdown.
456
457       Values:
458
459       "none"
460           No shutdown request pending
461
462       "host-error"
463           An error prevents further use of guest
464
465       "host-qmp-quit"
466           Reaction to the QMP command 'quit'
467
468       "host-qmp-system-reset"
469           Reaction to the QMP command 'system_reset'
470
471       "host-signal"
472           Reaction to a signal, such as SIGINT
473
474       "host-ui"
475           Reaction to a UI event, like window close
476
477       "guest-shutdown"
478           Guest shutdown/suspend request, via ACPI or other hardware-specific
479           means
480
481       "guest-reset"
482           Guest reset request, and command line turns that into a shutdown
483
484       "guest-panic"
485           Guest panicked, and command line turns that into a shutdown
486
487       "subsystem-reset"
488           Partial guest reset that does not trigger QMP events and ignores
489           --no-reboot. This is useful for sanitizing hypercalls on s390 that
490           are used during kexec/kdump/boot
491
492       StatusInfo (Object)
493
494       Information about VCPU run state
495
496       Members:
497
498       "running: boolean"
499           true if all VCPUs are runnable, false if not runnable
500
501       "singlestep: boolean"
502           true if VCPUs are in single-step mode
503
504       "status: RunState"
505           the virtual machine "RunState"
506
507       Since: 0.14.0
508
509       Notes: "singlestep" is enabled through the GDB stub
510
511       query-status  (Command) Query the run status of all VCPUs
512
513       Returns: "StatusInfo" reflecting all VCPUs
514
515       Since: 0.14.0
516
517       Example:
518
519               -> { "execute": "query-status" }
520               <- { "return": { "running": true,
521                                "singlestep": false,
522                                "status": "running" } }
523
524       SHUTDOWN  (Event) Emitted when the virtual machine has shut down,
525       indicating that qemu is about to exit.
526
527       Arguments:
528
529       "guest: boolean"
530           If true, the shutdown was triggered by a guest request (such as a
531           guest-initiated ACPI shutdown request or other hardware-specific
532           action) rather than a host request (such as sending qemu a SIGINT).
533           (since 2.10)
534
535       "reason: ShutdownCause"
536           The "ShutdownCause" which resulted in the SHUTDOWN. (since 4.0)
537
538       Note: If the command-line option "-no-shutdown" has been specified,
539       qemu will not exit, and a STOP event will eventually follow the
540       SHUTDOWN event
541
542       Since: 0.12.0
543
544       Example:
545
546               <- { "event": "SHUTDOWN", "data": { "guest": true },
547                    "timestamp": { "seconds": 1267040730, "microseconds": 682951 } }
548
549       POWERDOWN  (Event) Emitted when the virtual machine is powered down
550       through the power control system, such as via ACPI.
551
552       Since: 0.12.0
553
554       Example:
555
556               <- { "event": "POWERDOWN",
557                    "timestamp": { "seconds": 1267040730, "microseconds": 682951 } }
558
559       RESET  (Event) Emitted when the virtual machine is reset
560
561       Arguments:
562
563       "guest: boolean"
564           If true, the reset was triggered by a guest request (such as a
565           guest-initiated ACPI reboot request or other hardware-specific
566           action) rather than a host request (such as the QMP command
567           system_reset).  (since 2.10)
568
569       "reason: ShutdownCause"
570           The "ShutdownCause" of the RESET. (since 4.0)
571
572       Since: 0.12.0
573
574       Example:
575
576               <- { "event": "RESET", "data": { "guest": false },
577                    "timestamp": { "seconds": 1267041653, "microseconds": 9518 } }
578
579       STOP  (Event) Emitted when the virtual machine is stopped
580
581       Since: 0.12.0
582
583       Example:
584
585               <- { "event": "STOP",
586                    "timestamp": { "seconds": 1267041730, "microseconds": 281295 } }
587
588       RESUME  (Event) Emitted when the virtual machine resumes execution
589
590       Since: 0.12.0
591
592       Example:
593
594               <- { "event": "RESUME",
595                    "timestamp": { "seconds": 1271770767, "microseconds": 582542 } }
596
597       SUSPEND  (Event) Emitted when guest enters a hardware suspension state,
598       for example, S3 state, which is sometimes called standby state
599
600       Since: 1.1
601
602       Example:
603
604               <- { "event": "SUSPEND",
605                    "timestamp": { "seconds": 1344456160, "microseconds": 309119 } }
606
607       SUSPEND_DISK  (Event) Emitted when guest enters a hardware suspension
608       state with data saved on disk, for example, S4 state, which is
609       sometimes called hibernate state
610
611       Note: QEMU shuts down (similar to event "SHUTDOWN") when entering this
612       state
613
614       Since: 1.2
615
616       Example:
617
618               <-   { "event": "SUSPEND_DISK",
619                      "timestamp": { "seconds": 1344456160, "microseconds": 309119 } }
620
621       WAKEUP  (Event) Emitted when the guest has woken up from suspend state
622       and is running
623
624       Since: 1.1
625
626       Example:
627
628               <- { "event": "WAKEUP",
629                    "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
630
631       WATCHDOG  (Event) Emitted when the watchdog device's timer is expired
632
633       Arguments:
634
635       "action: WatchdogAction"
636           action that has been taken
637
638       Note: If action is "reset", "shutdown", or "pause" the WATCHDOG event
639       is followed respectively by the RESET, SHUTDOWN, or STOP events
640
641       Note: This event is rate-limited.
642
643       Since: 0.13.0
644
645       Example:
646
647               <- { "event": "WATCHDOG",
648                    "data": { "action": "reset" },
649                    "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
650
651       WatchdogAction (Enum)
652
653       An enumeration of the actions taken when the watchdog device's timer is
654       expired
655
656       Values:
657
658       "reset"
659           system resets
660
661       "shutdown"
662           system shutdown, note that it is similar to "powerdown", which
663           tries to set to system status and notify guest
664
665       "poweroff"
666           system poweroff, the emulator program exits
667
668       "pause"
669           system pauses, similar to "stop"
670
671       "debug"
672           system enters debug state
673
674       "none"
675           nothing is done
676
677       "inject-nmi"
678           a non-maskable interrupt is injected into the first VCPU (all VCPUS
679           on x86) (since 2.4)
680
681       Since: 2.1
682
683       watchdog-set-action  (Command) Set watchdog action
684
685       Arguments:
686
687       "action: WatchdogAction"
688           Not documented
689
690       Since: 2.11
691
692       GUEST_PANICKED  (Event) Emitted when guest OS panic is detected
693
694       Arguments:
695
696       "action: GuestPanicAction"
697           action that has been taken, currently always "pause"
698
699       "info: GuestPanicInformation" (optional)
700           information about a panic (since 2.9)
701
702       Since: 1.5
703
704       Example:
705
706               <- { "event": "GUEST_PANICKED",
707                    "data": { "action": "pause" } }
708
709       GuestPanicAction (Enum)
710
711       An enumeration of the actions taken when guest OS panic is detected
712
713       Values:
714
715       "pause"
716           system pauses
717
718       "poweroff"
719           Not documented
720
721       Since: 2.1 (poweroff since 2.8)
722
723       GuestPanicInformationType (Enum)
724
725       An enumeration of the guest panic information types
726
727       Values:
728
729       "hyper-v"
730           hyper-v guest panic information type
731
732       "s390"
733           s390 guest panic information type (Since: 2.12)
734
735       Since: 2.9
736
737       GuestPanicInformation (Object)
738
739       Information about a guest panic
740
741       Members:
742
743       "type: GuestPanicInformationType"
744           Crash type that defines the hypervisor specific information
745
746       The members of "GuestPanicInformationHyperV" when "type" is "hyper-v"
747       The members of "GuestPanicInformationS390" when "type" is "s390"
748
749       Since: 2.9
750
751       GuestPanicInformationHyperV (Object)
752
753       Hyper-V specific guest panic information (HV crash MSRs)
754
755       Members:
756
757       "arg1: int"
758           Not documented
759
760       "arg2: int"
761           Not documented
762
763       "arg3: int"
764           Not documented
765
766       "arg4: int"
767           Not documented
768
769       "arg5: int"
770           Not documented
771
772       Since: 2.9
773
774       S390CrashReason (Enum)
775
776       Reason why the CPU is in a crashed state.
777
778       Values:
779
780       "unknown"
781           no crash reason was set
782
783       "disabled-wait"
784           the CPU has entered a disabled wait state
785
786       "extint-loop"
787           clock comparator or cpu timer interrupt with new PSW enabled for
788           external interrupts
789
790       "pgmint-loop"
791           program interrupt with BAD new PSW
792
793       "opint-loop"
794           operation exception interrupt with invalid code at the program
795           interrupt new PSW
796
797       Since: 2.12
798
799       GuestPanicInformationS390 (Object)
800
801       S390 specific guest panic information (PSW)
802
803       Members:
804
805       "core: int"
806           core id of the CPU that crashed
807
808       "psw-mask: int"
809           control fields of guest PSW
810
811       "psw-addr: int"
812           guest instruction address
813
814       "reason: S390CrashReason"
815           guest crash reason
816
817       Since: 2.12
818
819   Cryptography
820       QCryptoTLSCredsEndpoint (Enum)
821
822       The type of network endpoint that will be using the credentials.  Most
823       types of credential require different setup / structures depending on
824       whether they will be used in a server versus a client.
825
826       Values:
827
828       "client"
829           the network endpoint is acting as the client
830
831       "server"
832           the network endpoint is acting as the server
833
834       Since: 2.5
835
836       QCryptoSecretFormat (Enum)
837
838       The data format that the secret is provided in
839
840       Values:
841
842       "raw"
843           raw bytes. When encoded in JSON only valid UTF-8 sequences can be
844           used
845
846       "base64"
847           arbitrary base64 encoded binary data
848
849       Since: 2.6
850
851       QCryptoHashAlgorithm (Enum)
852
853       The supported algorithms for computing content digests
854
855       Values:
856
857       "md5"
858           MD5. Should not be used in any new code, legacy compat only
859
860       "sha1"
861           SHA-1. Should not be used in any new code, legacy compat only
862
863       "sha224"
864           SHA-224. (since 2.7)
865
866       "sha256"
867           SHA-256. Current recommended strong hash.
868
869       "sha384"
870           SHA-384. (since 2.7)
871
872       "sha512"
873           SHA-512. (since 2.7)
874
875       "ripemd160"
876           RIPEMD-160. (since 2.7)
877
878       Since: 2.6
879
880       QCryptoCipherAlgorithm (Enum)
881
882       The supported algorithms for content encryption ciphers
883
884       Values:
885
886       "aes-128"
887           AES with 128 bit / 16 byte keys
888
889       "aes-192"
890           AES with 192 bit / 24 byte keys
891
892       "aes-256"
893           AES with 256 bit / 32 byte keys
894
895       "des-rfb"
896           RFB specific variant of single DES. Do not use except in VNC.
897
898       "3des"
899           3DES(EDE) with 192 bit / 24 byte keys (since 2.9)
900
901       "cast5-128"
902           Cast5 with 128 bit / 16 byte keys
903
904       "serpent-128"
905           Serpent with 128 bit / 16 byte keys
906
907       "serpent-192"
908           Serpent with 192 bit / 24 byte keys
909
910       "serpent-256"
911           Serpent with 256 bit / 32 byte keys
912
913       "twofish-128"
914           Twofish with 128 bit / 16 byte keys
915
916       "twofish-192"
917           Twofish with 192 bit / 24 byte keys
918
919       "twofish-256"
920           Twofish with 256 bit / 32 byte keys
921
922       Since: 2.6
923
924       QCryptoCipherMode (Enum)
925
926       The supported modes for content encryption ciphers
927
928       Values:
929
930       "ecb"
931           Electronic Code Book
932
933       "cbc"
934           Cipher Block Chaining
935
936       "xts"
937           XEX with tweaked code book and ciphertext stealing
938
939       "ctr"
940           Counter (Since 2.8)
941
942       Since: 2.6
943
944       QCryptoIVGenAlgorithm (Enum)
945
946       The supported algorithms for generating initialization vectors for full
947       disk encryption. The 'plain' generator should not be used for disks
948       with sector numbers larger than 2^32, except where compatibility with
949       pre-existing Linux dm-crypt volumes is required.
950
951       Values:
952
953       "plain"
954           64-bit sector number truncated to 32-bits
955
956       "plain64"
957           64-bit sector number
958
959       "essiv"
960           64-bit sector number encrypted with a hash of the encryption key
961
962       Since: 2.6
963
964       QCryptoBlockFormat (Enum)
965
966       The supported full disk encryption formats
967
968       Values:
969
970       "qcow"
971           QCow/QCow2 built-in AES-CBC encryption. Use only for liberating
972           data from old images.
973
974       "luks"
975           LUKS encryption format. Recommended for new images
976
977       Since: 2.6
978
979       QCryptoBlockOptionsBase (Object)
980
981       The common options that apply to all full disk encryption formats
982
983       Members:
984
985       "format: QCryptoBlockFormat"
986           the encryption format
987
988       Since: 2.6
989
990       QCryptoBlockOptionsQCow (Object)
991
992       The options that apply to QCow/QCow2 AES-CBC encryption format
993
994       Members:
995
996       "key-secret: string" (optional)
997           the ID of a QCryptoSecret object providing the decryption key.
998           Mandatory except when probing image for metadata only.
999
1000       Since: 2.6
1001
1002       QCryptoBlockOptionsLUKS (Object)
1003
1004       The options that apply to LUKS encryption format
1005
1006       Members:
1007
1008       "key-secret: string" (optional)
1009           the ID of a QCryptoSecret object providing the decryption key.
1010           Mandatory except when probing image for metadata only.
1011
1012       Since: 2.6
1013
1014       QCryptoBlockCreateOptionsLUKS (Object)
1015
1016       The options that apply to LUKS encryption format initialization
1017
1018       Members:
1019
1020       "cipher-alg: QCryptoCipherAlgorithm" (optional)
1021           the cipher algorithm for data encryption Currently defaults to
1022           'aes-256'.
1023
1024       "cipher-mode: QCryptoCipherMode" (optional)
1025           the cipher mode for data encryption Currently defaults to 'xts'
1026
1027       "ivgen-alg: QCryptoIVGenAlgorithm" (optional)
1028           the initialization vector generator Currently defaults to 'plain64'
1029
1030       "ivgen-hash-alg: QCryptoHashAlgorithm" (optional)
1031           the initialization vector generator hash Currently defaults to
1032           'sha256'
1033
1034       "hash-alg: QCryptoHashAlgorithm" (optional)
1035           the master key hash algorithm Currently defaults to 'sha256'
1036
1037       "iter-time: int" (optional)
1038           number of milliseconds to spend in PBKDF passphrase processing.
1039           Currently defaults to 2000. (since 2.8)
1040
1041       The members of "QCryptoBlockOptionsLUKS"
1042
1043       Since: 2.6
1044
1045       QCryptoBlockOpenOptions (Object)
1046
1047       The options that are available for all encryption formats when opening
1048       an existing volume
1049
1050       Members:
1051
1052       The members of "QCryptoBlockOptionsBase"
1053       The members of "QCryptoBlockOptionsQCow" when "format" is "qcow"
1054       The members of "QCryptoBlockOptionsLUKS" when "format" is "luks"
1055
1056       Since: 2.6
1057
1058       QCryptoBlockCreateOptions (Object)
1059
1060       The options that are available for all encryption formats when
1061       initializing a new volume
1062
1063       Members:
1064
1065       The members of "QCryptoBlockOptionsBase"
1066       The members of "QCryptoBlockOptionsQCow" when "format" is "qcow"
1067       The members of "QCryptoBlockCreateOptionsLUKS" when "format" is "luks"
1068
1069       Since: 2.6
1070
1071       QCryptoBlockInfoBase (Object)
1072
1073       The common information that applies to all full disk encryption formats
1074
1075       Members:
1076
1077       "format: QCryptoBlockFormat"
1078           the encryption format
1079
1080       Since: 2.7
1081
1082       QCryptoBlockInfoLUKSSlot (Object)
1083
1084       Information about the LUKS block encryption key slot options
1085
1086       Members:
1087
1088       "active: boolean"
1089           whether the key slot is currently in use
1090
1091       "key-offset: int"
1092           offset to the key material in bytes
1093
1094       "iters: int" (optional)
1095           number of PBKDF2 iterations for key material
1096
1097       "stripes: int" (optional)
1098           number of stripes for splitting key material
1099
1100       Since: 2.7
1101
1102       QCryptoBlockInfoLUKS (Object)
1103
1104       Information about the LUKS block encryption options
1105
1106       Members:
1107
1108       "cipher-alg: QCryptoCipherAlgorithm"
1109           the cipher algorithm for data encryption
1110
1111       "cipher-mode: QCryptoCipherMode"
1112           the cipher mode for data encryption
1113
1114       "ivgen-alg: QCryptoIVGenAlgorithm"
1115           the initialization vector generator
1116
1117       "ivgen-hash-alg: QCryptoHashAlgorithm" (optional)
1118           the initialization vector generator hash
1119
1120       "hash-alg: QCryptoHashAlgorithm"
1121           the master key hash algorithm
1122
1123       "payload-offset: int"
1124           offset to the payload data in bytes
1125
1126       "master-key-iters: int"
1127           number of PBKDF2 iterations for key material
1128
1129       "uuid: string"
1130           unique identifier for the volume
1131
1132       "slots: array of QCryptoBlockInfoLUKSSlot"
1133           information about each key slot
1134
1135       Since: 2.7
1136
1137       QCryptoBlockInfo (Object)
1138
1139       Information about the block encryption options
1140
1141       Members:
1142
1143       The members of "QCryptoBlockInfoBase"
1144       The members of "QCryptoBlockInfoLUKS" when "format" is "luks"
1145
1146       Since: 2.7
1147
1148   Block devices
1149       Block core (VM unrelated)
1150
1151       Background jobs
1152
1153       JobType (Enum)
1154
1155       Type of a background job.
1156
1157       Values:
1158
1159       "commit"
1160           block commit job type, see "block-commit"
1161
1162       "stream"
1163           block stream job type, see "block-stream"
1164
1165       "mirror"
1166           drive mirror job type, see "drive-mirror"
1167
1168       "backup"
1169           drive backup job type, see "drive-backup"
1170
1171       "create"
1172           image creation job type, see "blockdev-create" (since 3.0)
1173
1174       Since: 1.7
1175
1176       JobStatus (Enum)
1177
1178       Indicates the present state of a given job in its lifetime.
1179
1180       Values:
1181
1182       "undefined"
1183           Erroneous, default state. Should not ever be visible.
1184
1185       "created"
1186           The job has been created, but not yet started.
1187
1188       "running"
1189           The job is currently running.
1190
1191       "paused"
1192           The job is running, but paused. The pause may be requested by
1193           either the QMP user or by internal processes.
1194
1195       "ready"
1196           The job is running, but is ready for the user to signal completion.
1197           This is used for long-running jobs like mirror that are designed to
1198           run indefinitely.
1199
1200       "standby"
1201           The job is ready, but paused. This is nearly identical to "paused".
1202           The job may return to "ready" or otherwise be canceled.
1203
1204       "waiting"
1205           The job is waiting for other jobs in the transaction to converge to
1206           the waiting state. This status will likely not be visible for the
1207           last job in a transaction.
1208
1209       "pending"
1210           The job has finished its work, but has finalization steps that it
1211           needs to make prior to completing. These changes will require
1212           manual intervention via "job-finalize" if auto-finalize was set to
1213           false. These pending changes may still fail.
1214
1215       "aborting"
1216           The job is in the process of being aborted, and will finish with an
1217           error. The job will afterwards report that it is "concluded".  This
1218           status may not be visible to the management process.
1219
1220       "concluded"
1221           The job has finished all work. If auto-dismiss was set to false,
1222           the job will remain in the query list until it is dismissed via
1223           "job-dismiss".
1224
1225       "null"
1226           The job is in the process of being dismantled. This state should
1227           not ever be visible externally.
1228
1229       Since: 2.12
1230
1231       JobVerb (Enum)
1232
1233       Represents command verbs that can be applied to a job.
1234
1235       Values:
1236
1237       "cancel"
1238           see "job-cancel"
1239
1240       "pause"
1241           see "job-pause"
1242
1243       "resume"
1244           see "job-resume"
1245
1246       "set-speed"
1247           see "block-job-set-speed"
1248
1249       "complete"
1250           see "job-complete"
1251
1252       "dismiss"
1253           see "job-dismiss"
1254
1255       "finalize"
1256           see "job-finalize"
1257
1258       Since: 2.12
1259
1260       JOB_STATUS_CHANGE  (Event) Emitted when a job transitions to a
1261       different status.
1262
1263       Arguments:
1264
1265       "id: string"
1266           The job identifier
1267
1268       "status: JobStatus"
1269           The new job status
1270
1271       Since: 3.0
1272
1273       job-pause  (Command) Pause an active job.
1274
1275       This command returns immediately after marking the active job for
1276       pausing.  Pausing an already paused job is an error.
1277
1278       The job will pause as soon as possible, which means transitioning into
1279       the PAUSED state if it was RUNNING, or into STANDBY if it was READY.
1280       The corresponding JOB_STATUS_CHANGE event will be emitted.
1281
1282       Cancelling a paused job automatically resumes it.
1283
1284       Arguments:
1285
1286       "id: string"
1287           The job identifier.
1288
1289       Since: 3.0
1290
1291       job-resume  (Command) Resume a paused job.
1292
1293       This command returns immediately after resuming a paused job. Resuming
1294       an already running job is an error.
1295
1296       "id" : The job identifier.
1297
1298       Arguments:
1299
1300       "id: string"
1301           Not documented
1302
1303       Since: 3.0
1304
1305       job-cancel  (Command) Instruct an active background job to cancel at
1306       the next opportunity.  This command returns immediately after marking
1307       the active job for cancellation.
1308
1309       The job will cancel as soon as possible and then emit a
1310       JOB_STATUS_CHANGE event. Usually, the status will change to ABORTING,
1311       but it is possible that a job successfully completes (e.g. because it
1312       was almost done and there was no opportunity to cancel earlier than
1313       completing the job) and transitions to PENDING instead.
1314
1315       Arguments:
1316
1317       "id: string"
1318           The job identifier.
1319
1320       Since: 3.0
1321
1322       job-complete  (Command) Manually trigger completion of an active job in
1323       the READY state.
1324
1325       Arguments:
1326
1327       "id: string"
1328           The job identifier.
1329
1330       Since: 3.0
1331
1332       job-dismiss  (Command) Deletes a job that is in the CONCLUDED state.
1333       This command only needs to be run explicitly for jobs that don't have
1334       automatic dismiss enabled.
1335
1336       This command will refuse to operate on any job that has not yet reached
1337       its terminal state, JOB_STATUS_CONCLUDED. For jobs that make use of
1338       JOB_READY event, job-cancel or job-complete will still need to be used
1339       as appropriate.
1340
1341       Arguments:
1342
1343       "id: string"
1344           The job identifier.
1345
1346       Since: 3.0
1347
1348       job-finalize  (Command) Instructs all jobs in a transaction (or a
1349       single job if it is not part of any transaction) to finalize any graph
1350       changes and do any necessary cleanup. This command requires that all
1351       involved jobs are in the PENDING state.
1352
1353       For jobs in a transaction, instructing one job to finalize will force
1354       ALL jobs in the transaction to finalize, so it is only necessary to
1355       instruct a single member job to finalize.
1356
1357       Arguments:
1358
1359       "id: string"
1360           The identifier of any job in the transaction, or of a job that is
1361           not part of any transaction.
1362
1363       Since: 3.0
1364
1365       JobInfo (Object)
1366
1367       Information about a job.
1368
1369       Members:
1370
1371       "id: string"
1372           The job identifier
1373
1374       "type: JobType"
1375           The kind of job that is being performed
1376
1377       "status: JobStatus"
1378           Current job state/status
1379
1380       "current-progress: int"
1381           Progress made until now. The unit is arbitrary and the value can
1382           only meaningfully be used for the ratio of "current-progress" to
1383           "total-progress". The value is monotonically increasing.
1384
1385       "total-progress: int"
1386           Estimated "current-progress" value at the completion of the job.
1387           This value can arbitrarily change while the job is running, in both
1388           directions.
1389
1390       "error: string" (optional)
1391           If this field is present, the job failed; if it is still missing in
1392           the CONCLUDED state, this indicates successful completion.
1393
1394           The value is a human-readable error message to describe the reason
1395           for the job failure. It should not be parsed by applications.
1396
1397       Since: 3.0
1398
1399       query-jobs  (Command) Return information about jobs.
1400
1401       Returns: a list with a "JobInfo" for each active job
1402
1403       Since: 3.0
1404
1405       SnapshotInfo (Object)
1406
1407       Members:
1408
1409       "id: string"
1410           unique snapshot id
1411
1412       "name: string"
1413           user chosen name
1414
1415       "vm-state-size: int"
1416           size of the VM state
1417
1418       "date-sec: int"
1419           UTC date of the snapshot in seconds
1420
1421       "date-nsec: int"
1422           fractional part in nano seconds to be used with date-sec
1423
1424       "vm-clock-sec: int"
1425           VM clock relative to boot in seconds
1426
1427       "vm-clock-nsec: int"
1428           fractional part in nano seconds to be used with vm-clock-sec
1429
1430       Since: 1.3
1431
1432       ImageInfoSpecificQCow2EncryptionBase (Object)
1433
1434       Members:
1435
1436       "format: BlockdevQcow2EncryptionFormat"
1437           The encryption format
1438
1439       Since: 2.10
1440
1441       ImageInfoSpecificQCow2Encryption (Object)
1442
1443       Members:
1444
1445       The members of "ImageInfoSpecificQCow2EncryptionBase"
1446       The members of "QCryptoBlockInfoLUKS" when "format" is "luks"
1447
1448       Since: 2.10
1449
1450       ImageInfoSpecificQCow2 (Object)
1451
1452       Members:
1453
1454       "compat: string"
1455           compatibility level
1456
1457       "data-file: string" (optional)
1458           the filename of the external data file that is stored in the image
1459           and used as a default for opening the image (since: 4.0)
1460
1461       "data-file-raw: boolean" (optional)
1462           True if the external data file must stay valid as a standalone
1463           (read-only) raw image without looking at qcow2 metadata (since:
1464           4.0)
1465
1466       "lazy-refcounts: boolean" (optional)
1467           on or off; only valid for compat >= 1.1
1468
1469       "corrupt: boolean" (optional)
1470           true if the image has been marked corrupt; only valid for compat >=
1471           1.1 (since 2.2)
1472
1473       "refcount-bits: int"
1474           width of a refcount entry in bits (since 2.3)
1475
1476       "encrypt: ImageInfoSpecificQCow2Encryption" (optional)
1477           details about encryption parameters; only set if image is encrypted
1478           (since 2.10)
1479
1480       "bitmaps: array of Qcow2BitmapInfo" (optional)
1481           A list of qcow2 bitmap details (since 4.0)
1482
1483       Since: 1.7
1484
1485       ImageInfoSpecificVmdk (Object)
1486
1487       Members:
1488
1489       "create-type: string"
1490           The create type of VMDK image
1491
1492       "cid: int"
1493           Content id of image
1494
1495       "parent-cid: int"
1496           Parent VMDK image's cid
1497
1498       "extents: array of ImageInfo"
1499           List of extent files
1500
1501       Since: 1.7
1502
1503       ImageInfoSpecific (Object)
1504
1505       A discriminated record of image format specific information structures.
1506
1507       Members:
1508
1509       "type"
1510           One of "qcow2", "vmdk", "luks"
1511
1512       "data: ImageInfoSpecificQCow2" when "type" is "qcow2"
1513       "data: ImageInfoSpecificVmdk" when "type" is "vmdk"
1514       "data: QCryptoBlockInfoLUKS" when "type" is "luks"
1515
1516       Since: 1.7
1517
1518       ImageInfo (Object)
1519
1520       Information about a QEMU image file
1521
1522       Members:
1523
1524       "filename: string"
1525           name of the image file
1526
1527       "format: string"
1528           format of the image file
1529
1530       "virtual-size: int"
1531           maximum capacity in bytes of the image
1532
1533       "actual-size: int" (optional)
1534           actual size on disk in bytes of the image
1535
1536       "dirty-flag: boolean" (optional)
1537           true if image is not cleanly closed
1538
1539       "cluster-size: int" (optional)
1540           size of a cluster in bytes
1541
1542       "encrypted: boolean" (optional)
1543           true if the image is encrypted
1544
1545       "compressed: boolean" (optional)
1546           true if the image is compressed (Since 1.7)
1547
1548       "backing-filename: string" (optional)
1549           name of the backing file
1550
1551       "full-backing-filename: string" (optional)
1552           full path of the backing file
1553
1554       "backing-filename-format: string" (optional)
1555           the format of the backing file
1556
1557       "snapshots: array of SnapshotInfo" (optional)
1558           list of VM snapshots
1559
1560       "backing-image: ImageInfo" (optional)
1561           info of the backing image (since 1.6)
1562
1563       "format-specific: ImageInfoSpecific" (optional)
1564           structure supplying additional format-specific information (since
1565           1.7)
1566
1567       Since: 1.3
1568
1569       ImageCheck (Object)
1570
1571       Information about a QEMU image file check
1572
1573       Members:
1574
1575       "filename: string"
1576           name of the image file checked
1577
1578       "format: string"
1579           format of the image file checked
1580
1581       "check-errors: int"
1582           number of unexpected errors occurred during check
1583
1584       "image-end-offset: int" (optional)
1585           offset (in bytes) where the image ends, this field is present if
1586           the driver for the image format supports it
1587
1588       "corruptions: int" (optional)
1589           number of corruptions found during the check if any
1590
1591       "leaks: int" (optional)
1592           number of leaks found during the check if any
1593
1594       "corruptions-fixed: int" (optional)
1595           number of corruptions fixed during the check if any
1596
1597       "leaks-fixed: int" (optional)
1598           number of leaks fixed during the check if any
1599
1600       "total-clusters: int" (optional)
1601           total number of clusters, this field is present if the driver for
1602           the image format supports it
1603
1604       "allocated-clusters: int" (optional)
1605           total number of allocated clusters, this field is present if the
1606           driver for the image format supports it
1607
1608       "fragmented-clusters: int" (optional)
1609           total number of fragmented clusters, this field is present if the
1610           driver for the image format supports it
1611
1612       "compressed-clusters: int" (optional)
1613           total number of compressed clusters, this field is present if the
1614           driver for the image format supports it
1615
1616       Since: 1.4
1617
1618       MapEntry (Object)
1619
1620       Mapping information from a virtual block range to a host file range
1621
1622       Members:
1623
1624       "start: int"
1625           the start byte of the mapped virtual range
1626
1627       "length: int"
1628           the number of bytes of the mapped virtual range
1629
1630       "data: boolean"
1631           whether the mapped range has data
1632
1633       "zero: boolean"
1634           whether the virtual blocks are zeroed
1635
1636       "depth: int"
1637           the depth of the mapping
1638
1639       "offset: int" (optional)
1640           the offset in file that the virtual sectors are mapped to
1641
1642       "filename: string" (optional)
1643           filename that is referred to by "offset"
1644
1645       Since: 2.6
1646
1647       BlockdevCacheInfo (Object)
1648
1649       Cache mode information for a block device
1650
1651       Members:
1652
1653       "writeback: boolean"
1654           true if writeback mode is enabled
1655
1656       "direct: boolean"
1657           true if the host page cache is bypassed (O_DIRECT)
1658
1659       "no-flush: boolean"
1660           true if flush requests are ignored for the device
1661
1662       Since: 2.3
1663
1664       BlockDeviceInfo (Object)
1665
1666       Information about the backing device for a block device.
1667
1668       Members:
1669
1670       "file: string"
1671           the filename of the backing device
1672
1673       "node-name: string" (optional)
1674           the name of the block driver node (Since 2.0)
1675
1676       "ro: boolean"
1677           true if the backing device was open read-only
1678
1679       "drv: string"
1680           the name of the block format used to open the backing device. As of
1681           0.14.0 this can be: 'blkdebug', 'bochs', 'cloop', 'cow', 'dmg',
1682           'file', 'file', 'ftp', 'ftps', 'host_cdrom', 'host_device', 'http',
1683           'https', 'luks', 'nbd', 'parallels', 'qcow', 'qcow2', 'raw', 'vdi',
1684           'vmdk', 'vpc', 'vvfat' 2.2: 'archipelago' added, 'cow' dropped 2.3:
1685           'host_floppy' deprecated 2.5: 'host_floppy' dropped 2.6: 'luks'
1686           added 2.8: 'replication' added, 'tftp' dropped 2.9: 'archipelago'
1687           dropped
1688
1689       "backing_file: string" (optional)
1690           the name of the backing file (for copy-on-write)
1691
1692       "backing_file_depth: int"
1693           number of files in the backing file chain (since: 1.2)
1694
1695       "encrypted: boolean"
1696           true if the backing device is encrypted
1697
1698       "encryption_key_missing: boolean"
1699           Deprecated; always false
1700
1701       "detect_zeroes: BlockdevDetectZeroesOptions"
1702           detect and optimize zero writes (Since 2.1)
1703
1704       "bps: int"
1705           total throughput limit in bytes per second is specified
1706
1707       "bps_rd: int"
1708           read throughput limit in bytes per second is specified
1709
1710       "bps_wr: int"
1711           write throughput limit in bytes per second is specified
1712
1713       "iops: int"
1714           total I/O operations per second is specified
1715
1716       "iops_rd: int"
1717           read I/O operations per second is specified
1718
1719       "iops_wr: int"
1720           write I/O operations per second is specified
1721
1722       "image: ImageInfo"
1723           the info of image used (since: 1.6)
1724
1725       "bps_max: int" (optional)
1726           total throughput limit during bursts, in bytes (Since 1.7)
1727
1728       "bps_rd_max: int" (optional)
1729           read throughput limit during bursts, in bytes (Since 1.7)
1730
1731       "bps_wr_max: int" (optional)
1732           write throughput limit during bursts, in bytes (Since 1.7)
1733
1734       "iops_max: int" (optional)
1735           total I/O operations per second during bursts, in bytes (Since 1.7)
1736
1737       "iops_rd_max: int" (optional)
1738           read I/O operations per second during bursts, in bytes (Since 1.7)
1739
1740       "iops_wr_max: int" (optional)
1741           write I/O operations per second during bursts, in bytes (Since 1.7)
1742
1743       "bps_max_length: int" (optional)
1744           maximum length of the "bps_max" burst period, in seconds. (Since
1745           2.6)
1746
1747       "bps_rd_max_length: int" (optional)
1748           maximum length of the "bps_rd_max" burst period, in seconds. (Since
1749           2.6)
1750
1751       "bps_wr_max_length: int" (optional)
1752           maximum length of the "bps_wr_max" burst period, in seconds. (Since
1753           2.6)
1754
1755       "iops_max_length: int" (optional)
1756           maximum length of the "iops" burst period, in seconds. (Since 2.6)
1757
1758       "iops_rd_max_length: int" (optional)
1759           maximum length of the "iops_rd_max" burst period, in seconds.
1760           (Since 2.6)
1761
1762       "iops_wr_max_length: int" (optional)
1763           maximum length of the "iops_wr_max" burst period, in seconds.
1764           (Since 2.6)
1765
1766       "iops_size: int" (optional)
1767           an I/O size in bytes (Since 1.7)
1768
1769       "group: string" (optional)
1770           throttle group name (Since 2.4)
1771
1772       "cache: BlockdevCacheInfo"
1773           the cache mode used for the block device (since: 2.3)
1774
1775       "write_threshold: int"
1776           configured write threshold for the device.  0 if disabled. (Since
1777           2.3)
1778
1779       "dirty-bitmaps: array of BlockDirtyInfo" (optional)
1780           dirty bitmaps information (only present if node has one or more
1781           dirty bitmaps) (Since 4.2)
1782
1783       Since: 0.14.0
1784
1785       BlockDeviceIoStatus (Enum)
1786
1787       An enumeration of block device I/O status.
1788
1789       Values:
1790
1791       "ok"
1792           The last I/O operation has succeeded
1793
1794       "failed"
1795           The last I/O operation has failed
1796
1797       "nospace"
1798           The last I/O operation has failed due to a no-space condition
1799
1800       Since: 1.0
1801
1802       BlockDeviceMapEntry (Object)
1803
1804       Entry in the metadata map of the device (returned by "qemu-img map")
1805
1806       Members:
1807
1808       "start: int"
1809           Offset in the image of the first byte described by this entry (in
1810           bytes)
1811
1812       "length: int"
1813           Length of the range described by this entry (in bytes)
1814
1815       "depth: int"
1816           Number of layers (0 = top image, 1 = top image's backing file,
1817           etc.)  before reaching one for which the range is allocated.  The
1818           value is in the range 0 to the depth of the image chain - 1.
1819
1820       "zero: boolean"
1821           the sectors in this range read as zeros
1822
1823       "data: boolean"
1824           reading the image will actually read data from a file (in
1825           particular, if "offset" is present this means that the sectors are
1826           not simply preallocated, but contain actual data in raw format)
1827
1828       "offset: int" (optional)
1829           if present, the image file stores the data for this range in raw
1830           format at the given offset.
1831
1832       Since: 1.7
1833
1834       DirtyBitmapStatus (Enum)
1835
1836       An enumeration of possible states that a dirty bitmap can report to the
1837       user.
1838
1839       Values:
1840
1841       "frozen"
1842           The bitmap is currently in-use by some operation and is immutable.
1843           If the bitmap was "active" prior to the operation, new writes by
1844           the guest are being recorded in a temporary buffer, and will not be
1845           lost.  Generally, bitmaps are cleared on successful use in an
1846           operation and the temporary buffer is committed into the bitmap. On
1847           failure, the temporary buffer is merged back into the bitmap
1848           without first clearing it.  Please refer to the documentation for
1849           each bitmap-using operation, See also "blockdev-backup",
1850           "drive-backup".
1851
1852       "disabled"
1853           The bitmap is not currently recording new writes by the guest.
1854           This is requested explicitly via "block-dirty-bitmap-disable".  It
1855           can still be cleared, deleted, or used for backup operations.
1856
1857       "active"
1858           The bitmap is actively monitoring for new writes, and can be
1859           cleared, deleted, or used for backup operations.
1860
1861       "locked"
1862           The bitmap is currently in-use by some operation and is immutable.
1863           If the bitmap was "active" prior to the operation, it is still
1864           recording new writes. If the bitmap was "disabled", it is not
1865           recording new writes. (Since 2.12)
1866
1867       "inconsistent"
1868           This is a persistent dirty bitmap that was marked in-use on disk,
1869           and is unusable by QEMU. It can only be deleted.  Please rely on
1870           the inconsistent field in "BlockDirtyInfo" instead, as the status
1871           field is deprecated. (Since 4.0)
1872
1873       Since: 2.4
1874
1875       BlockDirtyInfo (Object)
1876
1877       Block dirty bitmap information.
1878
1879       Members:
1880
1881       "name: string" (optional)
1882           the name of the dirty bitmap (Since 2.4)
1883
1884       "count: int"
1885           number of dirty bytes according to the dirty bitmap
1886
1887       "granularity: int"
1888           granularity of the dirty bitmap in bytes (since 1.4)
1889
1890       "status: DirtyBitmapStatus"
1891           Deprecated in favor of "recording" and "locked". (since 2.4)
1892
1893       "recording: boolean"
1894           true if the bitmap is recording new writes from the guest.
1895           Replaces `active` and `disabled` statuses. (since 4.0)
1896
1897       "busy: boolean"
1898           true if the bitmap is in-use by some operation (NBD or jobs) and
1899           cannot be modified via QMP or used by another operation.  Replaces
1900           `locked` and `frozen` statuses. (since 4.0)
1901
1902       "persistent: boolean"
1903           true if the bitmap was stored on disk, is scheduled to be stored on
1904           disk, or both. (since 4.0)
1905
1906       "inconsistent: boolean" (optional)
1907           true if this is a persistent bitmap that was improperly stored.
1908           Implies "persistent" to be true; "recording" and "busy" to be
1909           false. This bitmap cannot be used. To remove it, use
1910           "block-dirty-bitmap-remove". (Since 4.0)
1911
1912       Since: 1.3
1913
1914       Qcow2BitmapInfoFlags (Enum)
1915
1916       An enumeration of flags that a bitmap can report to the user.
1917
1918       Values:
1919
1920       "in-use"
1921           This flag is set by any process actively modifying the qcow2 file,
1922           and cleared when the updated bitmap is flushed to the qcow2 image.
1923           The presence of this flag in an offline image means that the bitmap
1924           was not saved correctly after its last usage, and may contain
1925           inconsistent data.
1926
1927       "auto"
1928           The bitmap must reflect all changes of the virtual disk by any
1929           application that would write to this qcow2 file.
1930
1931       Since: 4.0
1932
1933       Qcow2BitmapInfo (Object)
1934
1935       Qcow2 bitmap information.
1936
1937       Members:
1938
1939       "name: string"
1940           the name of the bitmap
1941
1942       "granularity: int"
1943           granularity of the bitmap in bytes
1944
1945       "flags: array of Qcow2BitmapInfoFlags"
1946           flags of the bitmap
1947
1948       Since: 4.0
1949
1950       BlockLatencyHistogramInfo (Object)
1951
1952       Block latency histogram.
1953
1954       Members:
1955
1956       "boundaries: array of int"
1957           list of interval boundary values in nanoseconds, all greater than
1958           zero and in ascending order.  For example, the list [10, 50, 100]
1959           produces the following histogram intervals: [0, 10), [10, 50), [50,
1960           100), [100, +inf).
1961
1962       "bins: array of int"
1963           list of io request counts corresponding to histogram intervals.
1964           len("bins") = len("boundaries") + 1 For the example above, "bins"
1965           may be something like [3, 1, 5, 2], and corresponding histogram
1966           looks like:
1967
1968           5|           * 4|           * 3| 2|              * 1|
1969           +------------------ 10   50   100
1970
1971       Since: 4.0
1972
1973       block-latency-histogram-set  (Command) Manage read, write and flush
1974       latency histograms for the device.
1975
1976       If only "id" parameter is specified, remove all present latency
1977       histograms for the device. Otherwise, add/reset some of (or all)
1978       latency histograms.
1979
1980       Arguments:
1981
1982       "id: string"
1983           The name or QOM path of the guest device.
1984
1985       "boundaries: array of int" (optional)
1986           list of interval boundary values (see description in
1987           BlockLatencyHistogramInfo definition). If specified, all latency
1988           histograms are removed, and empty ones created for all io types
1989           with intervals corresponding to "boundaries" (except for io types,
1990           for which specific boundaries are set through the following
1991           parameters).
1992
1993       "boundaries-read: array of int" (optional)
1994           list of interval boundary values for read latency histogram. If
1995           specified, old read latency histogram is removed, and empty one
1996           created with intervals corresponding to "boundaries-read". The
1997           parameter has higher priority then "boundaries".
1998
1999       "boundaries-write: array of int" (optional)
2000           list of interval boundary values for write latency histogram.
2001
2002       "boundaries-flush: array of int" (optional)
2003           list of interval boundary values for flush latency histogram.
2004
2005       Returns: error if device is not found or any boundary arrays are
2006       invalid.
2007
2008       Since: 4.0
2009
2010       Example:
2011
2012               set new histograms for all io types with intervals
2013               [0, 10), [10, 50), [50, 100), [100, +inf):
2014
2015               -> { "execute": "block-latency-histogram-set",
2016                    "arguments": { "id": "drive0",
2017                                   "boundaries": [10, 50, 100] } }
2018               <- { "return": {} }
2019
2020       Example:
2021
2022               set new histogram only for write, other histograms will remain
2023               not changed (or not created):
2024
2025               -> { "execute": "block-latency-histogram-set",
2026                    "arguments": { "id": "drive0",
2027                                   "boundaries-write": [10, 50, 100] } }
2028               <- { "return": {} }
2029
2030       Example:
2031
2032               set new histograms with the following intervals:
2033                 read, flush: [0, 10), [10, 50), [50, 100), [100, +inf)
2034                 write: [0, 1000), [1000, 5000), [5000, +inf)
2035
2036               -> { "execute": "block-latency-histogram-set",
2037                    "arguments": { "id": "drive0",
2038                                   "boundaries": [10, 50, 100],
2039                                   "boundaries-write": [1000, 5000] } }
2040               <- { "return": {} }
2041
2042       Example:
2043
2044               remove all latency histograms:
2045
2046               -> { "execute": "block-latency-histogram-set",
2047                    "arguments": { "id": "drive0" } }
2048               <- { "return": {} }
2049
2050       BlockInfo (Object)
2051
2052       Block device information.  This structure describes a virtual device
2053       and the backing device associated with it.
2054
2055       Members:
2056
2057       "device: string"
2058           The device name associated with the virtual device.
2059
2060       "qdev: string" (optional)
2061           The qdev ID, or if no ID is assigned, the QOM path of the block
2062           device. (since 2.10)
2063
2064       "type: string"
2065           This field is returned only for compatibility reasons, it should
2066           not be used (always returns 'unknown')
2067
2068       "removable: boolean"
2069           True if the device supports removable media.
2070
2071       "locked: boolean"
2072           True if the guest has locked this device from having its media
2073           removed
2074
2075       "tray_open: boolean" (optional)
2076           True if the device's tray is open (only present if it has a tray)
2077
2078       "dirty-bitmaps: array of BlockDirtyInfo" (optional)
2079           dirty bitmaps information (only present if the driver has one or
2080           more dirty bitmaps) (Since 2.0) Deprecated in 4.2; see
2081           BlockDeviceInfo instead.
2082
2083       "io-status: BlockDeviceIoStatus" (optional)
2084           "BlockDeviceIoStatus". Only present if the device supports it and
2085           the VM is configured to stop on errors (supported device models:
2086           virtio-blk, IDE, SCSI except scsi-generic)
2087
2088       "inserted: BlockDeviceInfo" (optional)
2089           "BlockDeviceInfo" describing the device if media is present
2090
2091       Since: 0.14.0
2092
2093       BlockMeasureInfo (Object)
2094
2095       Image file size calculation information.  This structure describes the
2096       size requirements for creating a new image file.
2097
2098       The size requirements depend on the new image file format.  File size
2099       always equals virtual disk size for the 'raw' format, even for sparse
2100       POSIX files.  Compact formats such as 'qcow2' represent unallocated and
2101       zero regions efficiently so file size may be smaller than virtual disk
2102       size.
2103
2104       The values are upper bounds that are guaranteed to fit the new image
2105       file.  Subsequent modification, such as internal snapshot or bitmap
2106       creation, may require additional space and is not covered here.
2107
2108       Members:
2109
2110       "required: int"
2111           Size required for a new image file, in bytes.
2112
2113       "fully-allocated: int"
2114           Image file size, in bytes, once data has been written to all
2115           sectors.
2116
2117       Since: 2.10
2118
2119       query-block  (Command) Get a list of BlockInfo for all virtual block
2120       devices.
2121
2122       Returns: a list of "BlockInfo" describing each virtual block device.
2123       Filter nodes that were created implicitly are skipped over.
2124
2125       Since: 0.14.0
2126
2127       Example:
2128
2129               -> { "execute": "query-block" }
2130               <- {
2131                     "return":[
2132                        {
2133                           "io-status": "ok",
2134                           "device":"ide0-hd0",
2135                           "locked":false,
2136                           "removable":false,
2137                           "inserted":{
2138                              "ro":false,
2139                              "drv":"qcow2",
2140                              "encrypted":false,
2141                              "file":"disks/test.qcow2",
2142                              "backing_file_depth":1,
2143                              "bps":1000000,
2144                              "bps_rd":0,
2145                              "bps_wr":0,
2146                              "iops":1000000,
2147                              "iops_rd":0,
2148                              "iops_wr":0,
2149                              "bps_max": 8000000,
2150                              "bps_rd_max": 0,
2151                              "bps_wr_max": 0,
2152                              "iops_max": 0,
2153                              "iops_rd_max": 0,
2154                              "iops_wr_max": 0,
2155                              "iops_size": 0,
2156                              "detect_zeroes": "on",
2157                              "write_threshold": 0,
2158                              "image":{
2159                                 "filename":"disks/test.qcow2",
2160                                 "format":"qcow2",
2161                                 "virtual-size":2048000,
2162                                 "backing_file":"base.qcow2",
2163                                 "full-backing-filename":"disks/base.qcow2",
2164                                 "backing-filename-format":"qcow2",
2165                                 "snapshots":[
2166                                    {
2167                                       "id": "1",
2168                                       "name": "snapshot1",
2169                                       "vm-state-size": 0,
2170                                       "date-sec": 10000200,
2171                                       "date-nsec": 12,
2172                                       "vm-clock-sec": 206,
2173                                       "vm-clock-nsec": 30
2174                                    }
2175                                 ],
2176                                 "backing-image":{
2177                                     "filename":"disks/base.qcow2",
2178                                     "format":"qcow2",
2179                                     "virtual-size":2048000
2180                                 }
2181                              }
2182                           },
2183                           "qdev": "ide_disk",
2184                           "type":"unknown"
2185                        },
2186                        {
2187                           "io-status": "ok",
2188                           "device":"ide1-cd0",
2189                           "locked":false,
2190                           "removable":true,
2191                           "qdev": "/machine/unattached/device[23]",
2192                           "tray_open": false,
2193                           "type":"unknown"
2194                        },
2195                        {
2196                           "device":"floppy0",
2197                           "locked":false,
2198                           "removable":true,
2199                           "qdev": "/machine/unattached/device[20]",
2200                           "type":"unknown"
2201                        },
2202                        {
2203                           "device":"sd0",
2204                           "locked":false,
2205                           "removable":true,
2206                           "type":"unknown"
2207                        }
2208                     ]
2209                  }
2210
2211       BlockDeviceTimedStats (Object)
2212
2213       Statistics of a block device during a given interval of time.
2214
2215       Members:
2216
2217       "interval_length: int"
2218           Interval used for calculating the statistics, in seconds.
2219
2220       "min_rd_latency_ns: int"
2221           Minimum latency of read operations in the defined interval, in
2222           nanoseconds.
2223
2224       "min_wr_latency_ns: int"
2225           Minimum latency of write operations in the defined interval, in
2226           nanoseconds.
2227
2228       "min_flush_latency_ns: int"
2229           Minimum latency of flush operations in the defined interval, in
2230           nanoseconds.
2231
2232       "max_rd_latency_ns: int"
2233           Maximum latency of read operations in the defined interval, in
2234           nanoseconds.
2235
2236       "max_wr_latency_ns: int"
2237           Maximum latency of write operations in the defined interval, in
2238           nanoseconds.
2239
2240       "max_flush_latency_ns: int"
2241           Maximum latency of flush operations in the defined interval, in
2242           nanoseconds.
2243
2244       "avg_rd_latency_ns: int"
2245           Average latency of read operations in the defined interval, in
2246           nanoseconds.
2247
2248       "avg_wr_latency_ns: int"
2249           Average latency of write operations in the defined interval, in
2250           nanoseconds.
2251
2252       "avg_flush_latency_ns: int"
2253           Average latency of flush operations in the defined interval, in
2254           nanoseconds.
2255
2256       "avg_rd_queue_depth: number"
2257           Average number of pending read operations in the defined interval.
2258
2259       "avg_wr_queue_depth: number"
2260           Average number of pending write operations in the defined interval.
2261
2262       Since: 2.5
2263
2264       BlockDeviceStats (Object)
2265
2266       Statistics of a virtual block device or a block backing device.
2267
2268       Members:
2269
2270       "rd_bytes: int"
2271           The number of bytes read by the device.
2272
2273       "wr_bytes: int"
2274           The number of bytes written by the device.
2275
2276       "unmap_bytes: int"
2277           The number of bytes unmapped by the device (Since 4.2)
2278
2279       "rd_operations: int"
2280           The number of read operations performed by the device.
2281
2282       "wr_operations: int"
2283           The number of write operations performed by the device.
2284
2285       "flush_operations: int"
2286           The number of cache flush operations performed by the device (since
2287           0.15.0)
2288
2289       "unmap_operations: int"
2290           The number of unmap operations performed by the device (Since 4.2)
2291
2292       "rd_total_time_ns: int"
2293           Total time spent on reads in nanoseconds (since 0.15.0).
2294
2295       "wr_total_time_ns: int"
2296           Total time spent on writes in nanoseconds (since 0.15.0).
2297
2298       "flush_total_time_ns: int"
2299           Total time spent on cache flushes in nanoseconds (since 0.15.0).
2300
2301       "unmap_total_time_ns: int"
2302           Total time spent on unmap operations in nanoseconds (Since 4.2)
2303
2304       "wr_highest_offset: int"
2305           The offset after the greatest byte written to the device.  The
2306           intended use of this information is for growable sparse files (like
2307           qcow2) that are used on top of a physical device.
2308
2309       "rd_merged: int"
2310           Number of read requests that have been merged into another request
2311           (Since 2.3).
2312
2313       "wr_merged: int"
2314           Number of write requests that have been merged into another request
2315           (Since 2.3).
2316
2317       "unmap_merged: int"
2318           Number of unmap requests that have been merged into another request
2319           (Since 4.2)
2320
2321       "idle_time_ns: int" (optional)
2322           Time since the last I/O operation, in nanoseconds. If the field is
2323           absent it means that there haven't been any operations yet (Since
2324           2.5).
2325
2326       "failed_rd_operations: int"
2327           The number of failed read operations performed by the device (Since
2328           2.5)
2329
2330       "failed_wr_operations: int"
2331           The number of failed write operations performed by the device
2332           (Since 2.5)
2333
2334       "failed_flush_operations: int"
2335           The number of failed flush operations performed by the device
2336           (Since 2.5)
2337
2338       "failed_unmap_operations: int"
2339           The number of failed unmap operations performed by the device
2340           (Since 4.2)
2341
2342       "invalid_rd_operations: int"
2343           The number of invalid read operations performed by the device
2344           (Since 2.5)
2345
2346       "invalid_wr_operations: int"
2347           The number of invalid write operations performed by the device
2348           (Since 2.5)
2349
2350       "invalid_flush_operations: int"
2351           The number of invalid flush operations performed by the device
2352           (Since 2.5)
2353
2354       "invalid_unmap_operations: int"
2355           The number of invalid unmap operations performed by the device
2356           (Since 4.2)
2357
2358       "account_invalid: boolean"
2359           Whether invalid operations are included in the last access
2360           statistics (Since 2.5)
2361
2362       "account_failed: boolean"
2363           Whether failed operations are included in the latency and last
2364           access statistics (Since 2.5)
2365
2366       "timed_stats: array of BlockDeviceTimedStats"
2367           Statistics specific to the set of previously defined intervals of
2368           time (Since 2.5)
2369
2370       "rd_latency_histogram: BlockLatencyHistogramInfo" (optional)
2371           "BlockLatencyHistogramInfo". (Since 4.0)
2372
2373       "wr_latency_histogram: BlockLatencyHistogramInfo" (optional)
2374           "BlockLatencyHistogramInfo". (Since 4.0)
2375
2376       "flush_latency_histogram: BlockLatencyHistogramInfo" (optional)
2377           "BlockLatencyHistogramInfo". (Since 4.0)
2378
2379       Since: 0.14.0
2380
2381       BlockStatsSpecificFile (Object)
2382
2383       File driver statistics
2384
2385       Members:
2386
2387       "discard-nb-ok: int"
2388           The number of successful discard operations performed by the
2389           driver.
2390
2391       "discard-nb-failed: int"
2392           The number of failed discard operations performed by the driver.
2393
2394       "discard-bytes-ok: int"
2395           The number of bytes discarded by the driver.
2396
2397       Since: 4.2
2398
2399       BlockStatsSpecific (Object)
2400
2401       Block driver specific statistics
2402
2403       Members:
2404
2405       "driver: BlockdevDriver"
2406           Not documented
2407
2408       The members of "BlockStatsSpecificFile" when "driver" is "file"
2409       The members of "BlockStatsSpecificFile" when "driver" is "host_device"
2410
2411       Since: 4.2
2412
2413       BlockStats (Object)
2414
2415       Statistics of a virtual block device or a block backing device.
2416
2417       Members:
2418
2419       "device: string" (optional)
2420           If the stats are for a virtual block device, the name corresponding
2421           to the virtual block device.
2422
2423       "node-name: string" (optional)
2424           The node name of the device. (Since 2.3)
2425
2426       "qdev: string" (optional)
2427           The qdev ID, or if no ID is assigned, the QOM path of the block
2428           device. (since 3.0)
2429
2430       "stats: BlockDeviceStats"
2431           A "BlockDeviceStats" for the device.
2432
2433       "driver-specific: BlockStatsSpecific" (optional)
2434           Optional driver-specific stats. (Since 4.2)
2435
2436       "parent: BlockStats" (optional)
2437           This describes the file block device if it has one.  Contains
2438           recursively the statistics of the underlying protocol (e.g. the
2439           host file for a qcow2 image). If there is no underlying protocol,
2440           this field is omitted
2441
2442       "backing: BlockStats" (optional)
2443           This describes the backing block device if it has one.  (Since 2.0)
2444
2445       Since: 0.14.0
2446
2447       query-blockstats  (Command) Query the "BlockStats" for all virtual
2448       block devices.
2449
2450       Arguments:
2451
2452       "query-nodes: boolean" (optional)
2453           If true, the command will query all the block nodes that have a
2454           node name, in a list which will include "parent" information, but
2455           not "backing".  If false or omitted, the behavior is as before -
2456           query all the device backends, recursively including their "parent"
2457           and "backing". Filter nodes that were created implicitly are
2458           skipped over in this mode. (Since 2.3)
2459
2460       Returns: A list of "BlockStats" for each virtual block devices.
2461
2462       Since: 0.14.0
2463
2464       Example:
2465
2466               -> { "execute": "query-blockstats" }
2467               <- {
2468                     "return":[
2469                        {
2470                           "device":"ide0-hd0",
2471                           "parent":{
2472                              "stats":{
2473                                 "wr_highest_offset":3686448128,
2474                                 "wr_bytes":9786368,
2475                                 "wr_operations":751,
2476                                 "rd_bytes":122567168,
2477                                 "rd_operations":36772
2478                                 "wr_total_times_ns":313253456
2479                                 "rd_total_times_ns":3465673657
2480                                 "flush_total_times_ns":49653
2481                                 "flush_operations":61,
2482                                 "rd_merged":0,
2483                                 "wr_merged":0,
2484                                 "idle_time_ns":2953431879,
2485                                 "account_invalid":true,
2486                                 "account_failed":false
2487                              }
2488                           },
2489                           "stats":{
2490                              "wr_highest_offset":2821110784,
2491                              "wr_bytes":9786368,
2492                              "wr_operations":692,
2493                              "rd_bytes":122739200,
2494                              "rd_operations":36604
2495                              "flush_operations":51,
2496                              "wr_total_times_ns":313253456
2497                              "rd_total_times_ns":3465673657
2498                              "flush_total_times_ns":49653,
2499                              "rd_merged":0,
2500                              "wr_merged":0,
2501                              "idle_time_ns":2953431879,
2502                              "account_invalid":true,
2503                              "account_failed":false
2504                           },
2505                           "qdev": "/machine/unattached/device[23]"
2506                        },
2507                        {
2508                           "device":"ide1-cd0",
2509                           "stats":{
2510                              "wr_highest_offset":0,
2511                              "wr_bytes":0,
2512                              "wr_operations":0,
2513                              "rd_bytes":0,
2514                              "rd_operations":0
2515                              "flush_operations":0,
2516                              "wr_total_times_ns":0
2517                              "rd_total_times_ns":0
2518                              "flush_total_times_ns":0,
2519                              "rd_merged":0,
2520                              "wr_merged":0,
2521                              "account_invalid":false,
2522                              "account_failed":false
2523                           },
2524                           "qdev": "/machine/unattached/device[24]"
2525                        },
2526                        {
2527                           "device":"floppy0",
2528                           "stats":{
2529                              "wr_highest_offset":0,
2530                              "wr_bytes":0,
2531                              "wr_operations":0,
2532                              "rd_bytes":0,
2533                              "rd_operations":0
2534                              "flush_operations":0,
2535                              "wr_total_times_ns":0
2536                              "rd_total_times_ns":0
2537                              "flush_total_times_ns":0,
2538                              "rd_merged":0,
2539                              "wr_merged":0,
2540                              "account_invalid":false,
2541                              "account_failed":false
2542                           },
2543                           "qdev": "/machine/unattached/device[16]"
2544                        },
2545                        {
2546                           "device":"sd0",
2547                           "stats":{
2548                              "wr_highest_offset":0,
2549                              "wr_bytes":0,
2550                              "wr_operations":0,
2551                              "rd_bytes":0,
2552                              "rd_operations":0
2553                              "flush_operations":0,
2554                              "wr_total_times_ns":0
2555                              "rd_total_times_ns":0
2556                              "flush_total_times_ns":0,
2557                              "rd_merged":0,
2558                              "wr_merged":0,
2559                              "account_invalid":false,
2560                              "account_failed":false
2561                           }
2562                        }
2563                     ]
2564                  }
2565
2566       BlockdevOnError (Enum)
2567
2568       An enumeration of possible behaviors for errors on I/O operations.  The
2569       exact meaning depends on whether the I/O was initiated by a guest or by
2570       a block job
2571
2572       Values:
2573
2574       "report"
2575           for guest operations, report the error to the guest; for jobs,
2576           cancel the job
2577
2578       "ignore"
2579           ignore the error, only report a QMP event (BLOCK_IO_ERROR or
2580           BLOCK_JOB_ERROR)
2581
2582       "enospc"
2583           same as "stop" on ENOSPC, same as "report" otherwise.
2584
2585       "stop"
2586           for guest operations, stop the virtual machine; for jobs, pause the
2587           job
2588
2589       "auto"
2590           inherit the error handling policy of the backend (since: 2.7)
2591
2592       Since: 1.3
2593
2594       MirrorSyncMode (Enum)
2595
2596       An enumeration of possible behaviors for the initial synchronization
2597       phase of storage mirroring.
2598
2599       Values:
2600
2601       "top"
2602           copies data in the topmost image to the destination
2603
2604       "full"
2605           copies data from all images to the destination
2606
2607       "none"
2608           only copy data written from now on
2609
2610       "incremental"
2611           only copy data described by the dirty bitmap. (since: 2.4)
2612
2613       "bitmap"
2614           only copy data described by the dirty bitmap. (since: 4.2) Behavior
2615           on completion is determined by the BitmapSyncMode.
2616
2617       Since: 1.3
2618
2619       BitmapSyncMode (Enum)
2620
2621       An enumeration of possible behaviors for the synchronization of a
2622       bitmap when used for data copy operations.
2623
2624       Values:
2625
2626       "on-success"
2627           The bitmap is only synced when the operation is successful.  This
2628           is the behavior always used for 'INCREMENTAL' backups.
2629
2630       "never"
2631           The bitmap is never synchronized with the operation, and is treated
2632           solely as a read-only manifest of blocks to copy.
2633
2634       "always"
2635           The bitmap is always synchronized with the operation, regardless of
2636           whether or not the operation was successful.
2637
2638       Since: 4.2
2639
2640       MirrorCopyMode (Enum)
2641
2642       An enumeration whose values tell the mirror block job when to trigger
2643       writes to the target.
2644
2645       Values:
2646
2647       "background"
2648           copy data in background only.
2649
2650       "write-blocking"
2651           when data is written to the source, write it (synchronously) to the
2652           target as well.  In addition, data is copied in background just
2653           like in "background" mode.
2654
2655       Since: 3.0
2656
2657       BlockJobInfo (Object)
2658
2659       Information about a long-running block device operation.
2660
2661       Members:
2662
2663       "type: string"
2664           the job type ('stream' for image streaming)
2665
2666       "device: string"
2667           The job identifier. Originally the device name but other values are
2668           allowed since QEMU 2.7
2669
2670       "len: int"
2671           Estimated "offset" value at the completion of the job. This value
2672           can arbitrarily change while the job is running, in both
2673           directions.
2674
2675       "offset: int"
2676           Progress made until now. The unit is arbitrary and the value can
2677           only meaningfully be used for the ratio of "offset" to "len". The
2678           value is monotonically increasing.
2679
2680       "busy: boolean"
2681           false if the job is known to be in a quiescent state, with no
2682           pending I/O.  Since 1.3.
2683
2684       "paused: boolean"
2685           whether the job is paused or, if "busy" is true, will pause itself
2686           as soon as possible.  Since 1.3.
2687
2688       "speed: int"
2689           the rate limit, bytes per second
2690
2691       "io-status: BlockDeviceIoStatus"
2692           the status of the job (since 1.3)
2693
2694       "ready: boolean"
2695           true if the job may be completed (since 2.2)
2696
2697       "status: JobStatus"
2698           Current job state/status (since 2.12)
2699
2700       "auto-finalize: boolean"
2701           Job will finalize itself when PENDING, moving to the CONCLUDED
2702           state. (since 2.12)
2703
2704       "auto-dismiss: boolean"
2705           Job will dismiss itself when CONCLUDED, moving to the NULL state
2706           and disappearing from the query list. (since 2.12)
2707
2708       "error: string" (optional)
2709           Error information if the job did not complete successfully.  Not
2710           set if the job completed successfully. (since 2.12.1)
2711
2712       Since: 1.1
2713
2714       query-block-jobs  (Command) Return information about long-running block
2715       device operations.
2716
2717       Returns: a list of "BlockJobInfo" for each active block job
2718
2719       Since: 1.1
2720
2721       block_passwd  (Command) This command sets the password of a block
2722       device that has not been open with a password and requires one.
2723
2724       This command is now obsolete and will always return an error since 2.10
2725
2726       Arguments:
2727
2728       "device: string" (optional)
2729           Not documented
2730
2731       "node-name: string" (optional)
2732           Not documented
2733
2734       "password: string"
2735           Not documented
2736
2737       block_resize  (Command) Resize a block image while a guest is running.
2738
2739       Either "device" or "node-name" must be set but not both.
2740
2741       Arguments:
2742
2743       "device: string" (optional)
2744           the name of the device to get the image resized
2745
2746       "node-name: string" (optional)
2747           graph node name to get the image resized (Since 2.0)
2748
2749       "size: int"
2750           new image size in bytes
2751
2752       Returns: nothing on success If "device" is not a valid block device,
2753       DeviceNotFound
2754
2755       Since: 0.14.0
2756
2757       Example:
2758
2759               -> { "execute": "block_resize",
2760                    "arguments": { "device": "scratch", "size": 1073741824 } }
2761               <- { "return": {} }
2762
2763       NewImageMode (Enum)
2764
2765       An enumeration that tells QEMU how to set the backing file path in a
2766       new image file.
2767
2768       Values:
2769
2770       "existing"
2771           QEMU should look for an existing image file.
2772
2773       "absolute-paths"
2774           QEMU should create a new image with absolute paths for the backing
2775           file. If there is no backing file available, the new image will not
2776           be backed either.
2777
2778       Since: 1.1
2779
2780       BlockdevSnapshotSync (Object)
2781
2782       Either "device" or "node-name" must be set but not both.
2783
2784       Members:
2785
2786       "device: string" (optional)
2787           the name of the device to take a snapshot of.
2788
2789       "node-name: string" (optional)
2790           graph node name to generate the snapshot from (Since 2.0)
2791
2792       "snapshot-file: string"
2793           the target of the new overlay image. If the file exists, or if it
2794           is a device, the overlay will be created in the existing
2795           file/device. Otherwise, a new file will be created.
2796
2797       "snapshot-node-name: string" (optional)
2798           the graph node name of the new image (Since 2.0)
2799
2800       "format: string" (optional)
2801           the format of the overlay image, default is 'qcow2'.
2802
2803       "mode: NewImageMode" (optional)
2804           whether and how QEMU should create a new image, default is
2805           'absolute-paths'.
2806
2807       BlockdevSnapshot (Object)
2808
2809       Members:
2810
2811       "node: string"
2812           device or node name that will have a snapshot taken.
2813
2814       "overlay: string"
2815           reference to the existing block device that will become the overlay
2816           of "node", as part of taking the snapshot.  It must not have a
2817           current backing file (this can be achieved by passing "backing":
2818           null to blockdev-add).
2819
2820       Since: 2.5
2821
2822       BackupCommon (Object)
2823
2824       Members:
2825
2826       "job-id: string" (optional)
2827           identifier for the newly-created block job. If omitted, the device
2828           name will be used. (Since 2.7)
2829
2830       "device: string"
2831           the device name or node-name of a root node which should be copied.
2832
2833       "sync: MirrorSyncMode"
2834           what parts of the disk image should be copied to the destination
2835           (all the disk, only the sectors allocated in the topmost image,
2836           from a dirty bitmap, or only new I/O).
2837
2838       "speed: int" (optional)
2839           the maximum speed, in bytes per second. The default is 0, for
2840           unlimited.
2841
2842       "bitmap: string" (optional)
2843           The name of a dirty bitmap to use.  Must be present if sync is
2844           "bitmap" or "incremental".  Can be present if sync is "full" or
2845           "top".  Must not be present otherwise.  (Since 2.4 (drive-backup),
2846           3.1 (blockdev-backup))
2847
2848       "bitmap-mode: BitmapSyncMode" (optional)
2849           Specifies the type of data the bitmap should contain after the
2850           operation concludes.  Must be present if a bitmap was provided,
2851           Must NOT be present otherwise. (Since 4.2)
2852
2853       "compress: boolean" (optional)
2854           true to compress data, if the target format supports it.  (default:
2855           false) (since 2.8)
2856
2857       "on-source-error: BlockdevOnError" (optional)
2858           the action to take on an error on the source, default 'report'.
2859           'stop' and 'enospc' can only be used if the block device supports
2860           io-status (see BlockInfo).
2861
2862       "on-target-error: BlockdevOnError" (optional)
2863           the action to take on an error on the target, default 'report' (no
2864           limitations, since this applies to a different block device than
2865           "device").
2866
2867       "auto-finalize: boolean" (optional)
2868           When false, this job will wait in a PENDING state after it has
2869           finished its work, waiting for "block-job-finalize" before making
2870           any block graph changes.  When true, this job will automatically
2871           perform its abort or commit actions.  Defaults to true. (Since
2872           2.12)
2873
2874       "auto-dismiss: boolean" (optional)
2875           When false, this job will wait in a CONCLUDED state after it has
2876           completely ceased all work, and awaits "block-job-dismiss".  When
2877           true, this job will automatically disappear from the query list
2878           without user intervention.  Defaults to true. (Since 2.12)
2879
2880       "filter-node-name: string" (optional)
2881           the node name that should be assigned to the filter driver that the
2882           backup job inserts into the graph above node specified by "drive".
2883           If this option is not given, a node name is autogenerated. (Since:
2884           4.2)
2885
2886       Note: "on-source-error" and "on-target-error" only affect background
2887       I/O.  If an error occurs during a guest write request, the device's
2888       rerror/werror actions will be used.
2889
2890       Since: 4.2
2891
2892       DriveBackup (Object)
2893
2894       Members:
2895
2896       "target: string"
2897           the target of the new image. If the file exists, or if it is a
2898           device, the existing file/device will be used as the new
2899           destination.  If it does not exist, a new file will be created.
2900
2901       "format: string" (optional)
2902           the format of the new destination, default is to probe if "mode" is
2903           'existing', else the format of the source
2904
2905       "mode: NewImageMode" (optional)
2906           whether and how QEMU should create a new image, default is
2907           'absolute-paths'.
2908
2909       The members of "BackupCommon"
2910
2911       Since: 1.6
2912
2913       BlockdevBackup (Object)
2914
2915       Members:
2916
2917       "target: string"
2918           the device name or node-name of the backup target node.
2919
2920       The members of "BackupCommon"
2921
2922       Since: 2.3
2923
2924       blockdev-snapshot-sync  (Command) Takes a synchronous snapshot of a
2925       block device.
2926
2927       For the arguments, see the documentation of BlockdevSnapshotSync.
2928
2929       Returns: nothing on success If "device" is not a valid block device,
2930       DeviceNotFound
2931
2932       Since: 0.14.0
2933
2934       Example:
2935
2936               -> { "execute": "blockdev-snapshot-sync",
2937                    "arguments": { "device": "ide-hd0",
2938                                   "snapshot-file":
2939                                   "/some/place/my-image",
2940                                   "format": "qcow2" } }
2941               <- { "return": {} }
2942
2943       blockdev-snapshot  (Command) Takes a snapshot of a block device.
2944
2945       Take a snapshot, by installing 'node' as the backing image of
2946       'overlay'. Additionally, if 'node' is associated with a block device,
2947       the block device changes to using 'overlay' as its new active image.
2948
2949       For the arguments, see the documentation of BlockdevSnapshot.
2950
2951       Since: 2.5
2952
2953       Example:
2954
2955               -> { "execute": "blockdev-add",
2956                    "arguments": { "driver": "qcow2",
2957                                   "node-name": "node1534",
2958                                   "file": { "driver": "file",
2959                                             "filename": "hd1.qcow2" },
2960                                   "backing": null } }
2961
2962               <- { "return": {} }
2963
2964               -> { "execute": "blockdev-snapshot",
2965                    "arguments": { "node": "ide-hd0",
2966                                   "overlay": "node1534" } }
2967               <- { "return": {} }
2968
2969       change-backing-file  (Command) Change the backing file in the image
2970       file metadata.  This does not cause QEMU to reopen the image file to
2971       reparse the backing filename (it may, however, perform a reopen to
2972       change permissions from r/o -> r/w -> r/o, if needed). The new backing
2973       file string is written into the image file metadata, and the QEMU
2974       internal strings are updated.
2975
2976       Arguments:
2977
2978       "image-node-name: string"
2979           The name of the block driver state node of the image to modify. The
2980           "device" argument is used to verify "image-node-name" is in the
2981           chain described by "device".
2982
2983       "device: string"
2984           The device name or node-name of the root node that owns image-node-
2985           name.
2986
2987       "backing-file: string"
2988           The string to write as the backing file.  This string is not
2989           validated, so care should be taken when specifying the string or
2990           the image chain may not be able to be reopened again.
2991
2992       Returns: Nothing on success
2993
2994       If "device" does not exist or cannot be determined, DeviceNotFound
2995
2996       Since: 2.1
2997
2998       block-commit  (Command) Live commit of data from overlay image nodes
2999       into backing nodes - i.e., writes data between 'top' and 'base' into
3000       'base'.
3001
3002       Arguments:
3003
3004       "job-id: string" (optional)
3005           identifier for the newly-created block job. If omitted, the device
3006           name will be used. (Since 2.7)
3007
3008       "device: string"
3009           the device name or node-name of a root node
3010
3011       "base-node: string" (optional)
3012           The node name of the backing image to write data into.  If not
3013           specified, this is the deepest backing image.  (since: 3.1)
3014
3015       "base: string" (optional)
3016           Same as "base-node", except that it is a file name rather than a
3017           node name. This must be the exact filename string that was used to
3018           open the node; other strings, even if addressing the same file, are
3019           not accepted (deprecated, use "base-node" instead)
3020
3021       "top-node: string" (optional)
3022           The node name of the backing image within the image chain which
3023           contains the topmost data to be committed down. If not specified,
3024           this is the active layer. (since: 3.1)
3025
3026       "top: string" (optional)
3027           Same as "top-node", except that it is a file name rather than a
3028           node name. This must be the exact filename string that was used to
3029           open the node; other strings, even if addressing the same file, are
3030           not accepted (deprecated, use "base-node" instead)
3031
3032       "backing-file: string" (optional)
3033           The backing file string to write into the overlay image of 'top'.
3034           If 'top' is the active layer, specifying a backing file string is
3035           an error. This filename is not validated.
3036
3037           If a pathname string is such that it cannot be resolved by QEMU,
3038           that means that subsequent QMP or HMP commands must use node-names
3039           for the image in question, as filename lookup methods will fail.
3040
3041           If not specified, QEMU will automatically determine the backing
3042           file string to use, or error out if there is no obvious choice.
3043           Care should be taken when specifying the string, to specify a valid
3044           filename or protocol.  (Since 2.1)
3045
3046           If top == base, that is an error.  If top == active, the job will
3047           not be completed by itself, user needs to complete the job with the
3048           block-job-complete command after getting the ready event. (Since
3049           2.0)
3050
3051           If the base image is smaller than top, then the base image will be
3052           resized to be the same size as top.  If top is smaller than the
3053           base image, the base will not be truncated.  If you want the base
3054           image size to match the size of the smaller top, you can safely
3055           truncate it yourself once the commit operation successfully
3056           completes.
3057
3058       "speed: int" (optional)
3059           the maximum speed, in bytes per second
3060
3061       "filter-node-name: string" (optional)
3062           the node name that should be assigned to the filter driver that the
3063           commit job inserts into the graph above "top". If this option is
3064           not given, a node name is autogenerated. (Since: 2.9)
3065
3066       "auto-finalize: boolean" (optional)
3067           When false, this job will wait in a PENDING state after it has
3068           finished its work, waiting for "block-job-finalize" before making
3069           any block graph changes.  When true, this job will automatically
3070           perform its abort or commit actions.  Defaults to true. (Since 3.1)
3071
3072       "auto-dismiss: boolean" (optional)
3073           When false, this job will wait in a CONCLUDED state after it has
3074           completely ceased all work, and awaits "block-job-dismiss".  When
3075           true, this job will automatically disappear from the query list
3076           without user intervention.  Defaults to true. (Since 3.1)
3077
3078       Returns: Nothing on success If "device" does not exist, DeviceNotFound
3079       Any other error returns a GenericError.
3080
3081       Since: 1.3
3082
3083       Example:
3084
3085               -> { "execute": "block-commit",
3086                    "arguments": { "device": "virtio0",
3087                                   "top": "/tmp/snap1.qcow2" } }
3088               <- { "return": {} }
3089
3090       drive-backup  (Command) Start a point-in-time copy of a block device to
3091       a new destination.  The status of ongoing drive-backup operations can
3092       be checked with query-block-jobs where the BlockJobInfo.type field has
3093       the value 'backup'.  The operation can be stopped before it has
3094       completed using the block-job-cancel command.
3095
3096       Arguments: the members of "DriveBackup"
3097
3098       Returns: nothing on success If "device" is not a valid block device,
3099       GenericError
3100
3101       Since: 1.6
3102
3103       Example:
3104
3105               -> { "execute": "drive-backup",
3106                    "arguments": { "device": "drive0",
3107                                   "sync": "full",
3108                                   "target": "backup.img" } }
3109               <- { "return": {} }
3110
3111       blockdev-backup  (Command) Start a point-in-time copy of a block device
3112       to a new destination.  The status of ongoing blockdev-backup operations
3113       can be checked with query-block-jobs where the BlockJobInfo.type field
3114       has the value 'backup'.  The operation can be stopped before it has
3115       completed using the block-job-cancel command.
3116
3117       Arguments: the members of "BlockdevBackup"
3118
3119       Returns: nothing on success If "device" is not a valid block device,
3120       DeviceNotFound
3121
3122       Since: 2.3
3123
3124       Example:
3125
3126               -> { "execute": "blockdev-backup",
3127                    "arguments": { "device": "src-id",
3128                                   "sync": "full",
3129                                   "target": "tgt-id" } }
3130               <- { "return": {} }
3131
3132       query-named-block-nodes  (Command) Get the named block driver list
3133
3134       Returns: the list of BlockDeviceInfo
3135
3136       Since: 2.0
3137
3138       Example:
3139
3140               -> { "execute": "query-named-block-nodes" }
3141               <- { "return": [ { "ro":false,
3142                                  "drv":"qcow2",
3143                                  "encrypted":false,
3144                                  "file":"disks/test.qcow2",
3145                                  "node-name": "my-node",
3146                                  "backing_file_depth":1,
3147                                  "bps":1000000,
3148                                  "bps_rd":0,
3149                                  "bps_wr":0,
3150                                  "iops":1000000,
3151                                  "iops_rd":0,
3152                                  "iops_wr":0,
3153                                  "bps_max": 8000000,
3154                                  "bps_rd_max": 0,
3155                                  "bps_wr_max": 0,
3156                                  "iops_max": 0,
3157                                  "iops_rd_max": 0,
3158                                  "iops_wr_max": 0,
3159                                  "iops_size": 0,
3160                                  "write_threshold": 0,
3161                                  "image":{
3162                                     "filename":"disks/test.qcow2",
3163                                     "format":"qcow2",
3164                                     "virtual-size":2048000,
3165                                     "backing_file":"base.qcow2",
3166                                     "full-backing-filename":"disks/base.qcow2",
3167                                     "backing-filename-format":"qcow2",
3168                                     "snapshots":[
3169                                        {
3170                                           "id": "1",
3171                                           "name": "snapshot1",
3172                                           "vm-state-size": 0,
3173                                           "date-sec": 10000200,
3174                                           "date-nsec": 12,
3175                                           "vm-clock-sec": 206,
3176                                           "vm-clock-nsec": 30
3177                                        }
3178                                     ],
3179                                     "backing-image":{
3180                                         "filename":"disks/base.qcow2",
3181                                         "format":"qcow2",
3182                                         "virtual-size":2048000
3183                                     }
3184                                  } } ] }
3185
3186       XDbgBlockGraphNodeType (Enum)
3187
3188       Values:
3189
3190       "block-backend"
3191           corresponds to BlockBackend
3192
3193       "block-job"
3194           corresonds to BlockJob
3195
3196       "block-driver"
3197           corresponds to BlockDriverState
3198
3199       Since: 4.0
3200
3201       XDbgBlockGraphNode (Object)
3202
3203       Members:
3204
3205       "id: int"
3206           Block graph node identifier. This "id" is generated only for
3207           x-debug-query-block-graph and does not relate to any other
3208           identifiers in Qemu.
3209
3210       "type: XDbgBlockGraphNodeType"
3211           Type of graph node. Can be one of block-backend, block-job or
3212           block-driver-state.
3213
3214       "name: string"
3215           Human readable name of the node. Corresponds to node-name for
3216           block-driver-state nodes; is not guaranteed to be unique in the
3217           whole graph (with block-jobs and block-backends).
3218
3219       Since: 4.0
3220
3221       BlockPermission (Enum)
3222
3223       Enum of base block permissions.
3224
3225       Values:
3226
3227       "consistent-read"
3228           A user that has the "permission" of consistent reads is guaranteed
3229           that their view of the contents of the block device is complete and
3230           self-consistent, representing the contents of a disk at a specific
3231           point.  For most block devices (including their backing files) this
3232           is true, but the property cannot be maintained in a few situations
3233           like for intermediate nodes of a commit block job.
3234
3235       "write"
3236           This permission is required to change the visible disk contents.
3237
3238       "write-unchanged"
3239           This permission (which is weaker than BLK_PERM_WRITE) is both
3240           enough and required for writes to the block node when the caller
3241           promises that the visible disk content doesn't change.  As the
3242           BLK_PERM_WRITE permission is strictly stronger, either is
3243           sufficient to perform an unchanging write.
3244
3245       "resize"
3246           This permission is required to change the size of a block node.
3247
3248       "graph-mod"
3249           This permission is required to change the node that this BdrvChild
3250           points to.
3251
3252       Since: 4.0
3253
3254       XDbgBlockGraphEdge (Object)
3255
3256       Block Graph edge description for x-debug-query-block-graph.
3257
3258       Members:
3259
3260       "parent: int"
3261           parent id
3262
3263       "child: int"
3264           child id
3265
3266       "name: string"
3267           name of the relation (examples are 'file' and 'backing')
3268
3269       "perm: array of BlockPermission"
3270           granted permissions for the parent operating on the child
3271
3272       "shared-perm: array of BlockPermission"
3273           permissions that can still be granted to other users of the child
3274           while it is still attached to this parent
3275
3276       Since: 4.0
3277
3278       XDbgBlockGraph (Object)
3279
3280       Block Graph - list of nodes and list of edges.
3281
3282       Members:
3283
3284       "nodes: array of XDbgBlockGraphNode"
3285           Not documented
3286
3287       "edges: array of XDbgBlockGraphEdge"
3288           Not documented
3289
3290       Since: 4.0
3291
3292       x-debug-query-block-graph  (Command) Get the block graph.
3293
3294       Since: 4.0
3295
3296       drive-mirror  (Command) Start mirroring a block device's writes to a
3297       new destination. target specifies the target of the new image. If the
3298       file exists, or if it is a device, it will be used as the new
3299       destination for writes. If it does not exist, a new file will be
3300       created. format specifies the format of the mirror image, default is to
3301       probe if mode='existing', else the format of the source.
3302
3303       Arguments: the members of "DriveMirror"
3304
3305       Returns: nothing on success If "device" is not a valid block device,
3306       GenericError
3307
3308       Since: 1.3
3309
3310       Example:
3311
3312               -> { "execute": "drive-mirror",
3313                    "arguments": { "device": "ide-hd0",
3314                                   "target": "/some/place/my-image",
3315                                   "sync": "full",
3316                                   "format": "qcow2" } }
3317               <- { "return": {} }
3318
3319       DriveMirror (Object)
3320
3321       A set of parameters describing drive mirror setup.
3322
3323       Members:
3324
3325       "job-id: string" (optional)
3326           identifier for the newly-created block job. If omitted, the device
3327           name will be used. (Since 2.7)
3328
3329       "device: string"
3330           the device name or node-name of a root node whose writes should be
3331           mirrored.
3332
3333       "target: string"
3334           the target of the new image. If the file exists, or if it is a
3335           device, the existing file/device will be used as the new
3336           destination.  If it does not exist, a new file will be created.
3337
3338       "format: string" (optional)
3339           the format of the new destination, default is to probe if "mode" is
3340           'existing', else the format of the source
3341
3342       "node-name: string" (optional)
3343           the new block driver state node name in the graph (Since 2.1)
3344
3345       "replaces: string" (optional)
3346           with sync=full graph node name to be replaced by the new image when
3347           a whole image copy is done. This can be used to repair broken
3348           Quorum files. (Since 2.1)
3349
3350       "mode: NewImageMode" (optional)
3351           whether and how QEMU should create a new image, default is
3352           'absolute-paths'.
3353
3354       "speed: int" (optional)
3355           the maximum speed, in bytes per second
3356
3357       "sync: MirrorSyncMode"
3358           what parts of the disk image should be copied to the destination
3359           (all the disk, only the sectors allocated in the topmost image, or
3360           only new I/O).
3361
3362       "granularity: int" (optional)
3363           granularity of the dirty bitmap, default is 64K if the image format
3364           doesn't have clusters, 4K if the clusters are smaller than that,
3365           else the cluster size.  Must be a power of 2 between 512 and 64M
3366           (since 1.4).
3367
3368       "buf-size: int" (optional)
3369           maximum amount of data in flight from source to target (since 1.4).
3370
3371       "on-source-error: BlockdevOnError" (optional)
3372           the action to take on an error on the source, default 'report'.
3373           'stop' and 'enospc' can only be used if the block device supports
3374           io-status (see BlockInfo).
3375
3376       "on-target-error: BlockdevOnError" (optional)
3377           the action to take on an error on the target, default 'report' (no
3378           limitations, since this applies to a different block device than
3379           "device").
3380
3381       "unmap: boolean" (optional)
3382           Whether to try to unmap target sectors where source has only zero.
3383           If true, and target unallocated sectors will read as zero, target
3384           image sectors will be unmapped; otherwise, zeroes will be written.
3385           Both will result in identical contents.  Default is true. (Since
3386           2.4)
3387
3388       "copy-mode: MirrorCopyMode" (optional)
3389           when to copy data to the destination; defaults to 'background'
3390           (Since: 3.0)
3391
3392       "auto-finalize: boolean" (optional)
3393           When false, this job will wait in a PENDING state after it has
3394           finished its work, waiting for "block-job-finalize" before making
3395           any block graph changes.  When true, this job will automatically
3396           perform its abort or commit actions.  Defaults to true. (Since 3.1)
3397
3398       "auto-dismiss: boolean" (optional)
3399           When false, this job will wait in a CONCLUDED state after it has
3400           completely ceased all work, and awaits "block-job-dismiss".  When
3401           true, this job will automatically disappear from the query list
3402           without user intervention.  Defaults to true. (Since 3.1)
3403
3404       Since: 1.3
3405
3406       BlockDirtyBitmap (Object)
3407
3408       Members:
3409
3410       "node: string"
3411           name of device/node which the bitmap is tracking
3412
3413       "name: string"
3414           name of the dirty bitmap
3415
3416       Since: 2.4
3417
3418       BlockDirtyBitmapAdd (Object)
3419
3420       Members:
3421
3422       "node: string"
3423           name of device/node which the bitmap is tracking
3424
3425       "name: string"
3426           name of the dirty bitmap (must be less than 1024 bytes)
3427
3428       "granularity: int" (optional)
3429           the bitmap granularity, default is 64k for block-dirty-bitmap-add
3430
3431       "persistent: boolean" (optional)
3432           the bitmap is persistent, i.e. it will be saved to the
3433           corresponding block device image file on its close. For now only
3434           Qcow2 disks support persistent bitmaps. Default is false for block-
3435           dirty-bitmap-add. (Since: 2.10)
3436
3437       "disabled: boolean" (optional)
3438           the bitmap is created in the disabled state, which means that it
3439           will not track drive changes. The bitmap may be enabled with block-
3440           dirty-bitmap-enable. Default is false. (Since: 4.0)
3441
3442       Since: 2.4
3443
3444       BlockDirtyBitmapMergeSource (Alternate)
3445
3446       Members:
3447
3448       "local: string"
3449           name of the bitmap, attached to the same node as target bitmap.
3450
3451       "external: BlockDirtyBitmap"
3452           bitmap with specified node
3453
3454       Since: 4.1
3455
3456       BlockDirtyBitmapMerge (Object)
3457
3458       Members:
3459
3460       "node: string"
3461           name of device/node which the "target" bitmap is tracking
3462
3463       "target: string"
3464           name of the destination dirty bitmap
3465
3466       "bitmaps: array of BlockDirtyBitmapMergeSource"
3467           name(s) of the source dirty bitmap(s) at "node" and/or fully
3468           specifed BlockDirtyBitmap elements. The latter are supported since
3469           4.1.
3470
3471       Since: 4.0
3472
3473       block-dirty-bitmap-add  (Command) Create a dirty bitmap with a name on
3474       the node, and start tracking the writes.
3475
3476       Returns: nothing on success If "node" is not a valid block device or
3477       node, DeviceNotFound If "name" is already taken, GenericError with an
3478       explanation
3479
3480       Since: 2.4
3481
3482       Example:
3483
3484               -> { "execute": "block-dirty-bitmap-add",
3485                    "arguments": { "node": "drive0", "name": "bitmap0" } }
3486               <- { "return": {} }
3487
3488       block-dirty-bitmap-remove  (Command) Stop write tracking and remove the
3489       dirty bitmap that was created with block-dirty-bitmap-add. If the
3490       bitmap is persistent, remove it from its storage too.
3491
3492       Returns: nothing on success If "node" is not a valid block device or
3493       node, DeviceNotFound If "name" is not found, GenericError with an
3494       explanation if "name" is frozen by an operation, GenericError
3495
3496       Since: 2.4
3497
3498       Example:
3499
3500               -> { "execute": "block-dirty-bitmap-remove",
3501                    "arguments": { "node": "drive0", "name": "bitmap0" } }
3502               <- { "return": {} }
3503
3504       block-dirty-bitmap-clear  (Command) Clear (reset) a dirty bitmap on the
3505       device, so that an incremental backup from this point in time forward
3506       will only backup clusters modified after this clear operation.
3507
3508       Returns: nothing on success If "node" is not a valid block device,
3509       DeviceNotFound If "name" is not found, GenericError with an explanation
3510
3511       Since: 2.4
3512
3513       Example:
3514
3515               -> { "execute": "block-dirty-bitmap-clear",
3516                    "arguments": { "node": "drive0", "name": "bitmap0" } }
3517               <- { "return": {} }
3518
3519       block-dirty-bitmap-enable  (Command) Enables a dirty bitmap so that it
3520       will begin tracking disk changes.
3521
3522       Returns: nothing on success If "node" is not a valid block device,
3523       DeviceNotFound If "name" is not found, GenericError with an explanation
3524
3525       Since: 4.0
3526
3527       Example:
3528
3529               -> { "execute": "block-dirty-bitmap-enable",
3530                    "arguments": { "node": "drive0", "name": "bitmap0" } }
3531               <- { "return": {} }
3532
3533       block-dirty-bitmap-disable  (Command) Disables a dirty bitmap so that
3534       it will stop tracking disk changes.
3535
3536       Returns: nothing on success If "node" is not a valid block device,
3537       DeviceNotFound If "name" is not found, GenericError with an explanation
3538
3539       Since: 4.0
3540
3541       Example:
3542
3543               -> { "execute": "block-dirty-bitmap-disable",
3544                    "arguments": { "node": "drive0", "name": "bitmap0" } }
3545               <- { "return": {} }
3546
3547       block-dirty-bitmap-merge  (Command) Merge dirty bitmaps listed in
3548       "bitmaps" to the "target" dirty bitmap.  Dirty bitmaps in "bitmaps"
3549       will be unchanged, except if it also appears as the "target" bitmap.
3550       Any bits already set in "target" will still be set after the merge,
3551       i.e., this operation does not clear the target.  On error, "target" is
3552       unchanged.
3553
3554       The resulting bitmap will count as dirty any clusters that were dirty
3555       in any of the source bitmaps. This can be used to achieve backup
3556       checkpoints, or in simpler usages, to copy bitmaps.
3557
3558       Returns: nothing on success If "node" is not a valid block device,
3559       DeviceNotFound If any bitmap in "bitmaps" or "target" is not found,
3560       GenericError If any of the bitmaps have different sizes or
3561       granularities, GenericError
3562
3563       Since: 4.0
3564
3565       Example:
3566
3567               -> { "execute": "block-dirty-bitmap-merge",
3568                    "arguments": { "node": "drive0", "target": "bitmap0",
3569                                   "bitmaps": ["bitmap1"] } }
3570               <- { "return": {} }
3571
3572       BlockDirtyBitmapSha256 (Object)
3573
3574       SHA256 hash of dirty bitmap data
3575
3576       Members:
3577
3578       "sha256: string"
3579           ASCII representation of SHA256 bitmap hash
3580
3581       Since: 2.10
3582
3583       x-debug-block-dirty-bitmap-sha256  (Command) Get bitmap SHA256.
3584
3585       Returns: BlockDirtyBitmapSha256 on success If "node" is not a valid
3586       block device, DeviceNotFound If "name" is not found or if hashing has
3587       failed, GenericError with an explanation
3588
3589       Since: 2.10
3590
3591       blockdev-mirror  (Command) Start mirroring a block device's writes to a
3592       new destination.
3593
3594       Arguments:
3595
3596       "job-id: string" (optional)
3597           identifier for the newly-created block job. If omitted, the device
3598           name will be used. (Since 2.7)
3599
3600       "device: string"
3601           The device name or node-name of a root node whose writes should be
3602           mirrored.
3603
3604       "target: string"
3605           the id or node-name of the block device to mirror to. This mustn't
3606           be attached to guest.
3607
3608       "replaces: string" (optional)
3609           with sync=full graph node name to be replaced by the new image when
3610           a whole image copy is done. This can be used to repair broken
3611           Quorum files.
3612
3613       "speed: int" (optional)
3614           the maximum speed, in bytes per second
3615
3616       "sync: MirrorSyncMode"
3617           what parts of the disk image should be copied to the destination
3618           (all the disk, only the sectors allocated in the topmost image, or
3619           only new I/O).
3620
3621       "granularity: int" (optional)
3622           granularity of the dirty bitmap, default is 64K if the image format
3623           doesn't have clusters, 4K if the clusters are smaller than that,
3624           else the cluster size.  Must be a power of 2 between 512 and 64M
3625
3626       "buf-size: int" (optional)
3627           maximum amount of data in flight from source to target
3628
3629       "on-source-error: BlockdevOnError" (optional)
3630           the action to take on an error on the source, default 'report'.
3631           'stop' and 'enospc' can only be used if the block device supports
3632           io-status (see BlockInfo).
3633
3634       "on-target-error: BlockdevOnError" (optional)
3635           the action to take on an error on the target, default 'report' (no
3636           limitations, since this applies to a different block device than
3637           "device").
3638
3639       "filter-node-name: string" (optional)
3640           the node name that should be assigned to the filter driver that the
3641           mirror job inserts into the graph above "device". If this option is
3642           not given, a node name is autogenerated. (Since: 2.9)
3643
3644       "copy-mode: MirrorCopyMode" (optional)
3645           when to copy data to the destination; defaults to 'background'
3646           (Since: 3.0)
3647
3648       "auto-finalize: boolean" (optional)
3649           When false, this job will wait in a PENDING state after it has
3650           finished its work, waiting for "block-job-finalize" before making
3651           any block graph changes.  When true, this job will automatically
3652           perform its abort or commit actions.  Defaults to true. (Since 3.1)
3653
3654       "auto-dismiss: boolean" (optional)
3655           When false, this job will wait in a CONCLUDED state after it has
3656           completely ceased all work, and awaits "block-job-dismiss".  When
3657           true, this job will automatically disappear from the query list
3658           without user intervention.  Defaults to true. (Since 3.1)
3659
3660       Returns: nothing on success.
3661
3662       Since: 2.6
3663
3664       Example:
3665
3666               -> { "execute": "blockdev-mirror",
3667                    "arguments": { "device": "ide-hd0",
3668                                   "target": "target0",
3669                                   "sync": "full" } }
3670               <- { "return": {} }
3671
3672       block_set_io_throttle  (Command) Change I/O throttle limits for a block
3673       drive.
3674
3675       Since QEMU 2.4, each device with I/O limits is member of a throttle
3676       group.
3677
3678       If two or more devices are members of the same group, the limits will
3679       apply to the combined I/O of the whole group in a round-robin fashion.
3680       Therefore, setting new I/O limits to a device will affect the whole
3681       group.
3682
3683       The name of the group can be specified using the 'group' parameter.  If
3684       the parameter is unset, it is assumed to be the current group of that
3685       device. If it's not in any group yet, the name of the device will be
3686       used as the name for its group.
3687
3688       The 'group' parameter can also be used to move a device to a different
3689       group. In this case the limits specified in the parameters will be
3690       applied to the new group only.
3691
3692       I/O limits can be disabled by setting all of them to 0. In this case
3693       the device will be removed from its group and the rest of its members
3694       will not be affected. The 'group' parameter is ignored.
3695
3696       Arguments: the members of "BlockIOThrottle"
3697
3698       Returns: Nothing on success If "device" is not a valid block device,
3699       DeviceNotFound
3700
3701       Since: 1.1
3702
3703       Example:
3704
3705               -> { "execute": "block_set_io_throttle",
3706                    "arguments": { "id": "virtio-blk-pci0/virtio-backend",
3707                                   "bps": 0,
3708                                   "bps_rd": 0,
3709                                   "bps_wr": 0,
3710                                   "iops": 512,
3711                                   "iops_rd": 0,
3712                                   "iops_wr": 0,
3713                                   "bps_max": 0,
3714                                   "bps_rd_max": 0,
3715                                   "bps_wr_max": 0,
3716                                   "iops_max": 0,
3717                                   "iops_rd_max": 0,
3718                                   "iops_wr_max": 0,
3719                                   "bps_max_length": 0,
3720                                   "iops_size": 0 } }
3721               <- { "return": {} }
3722
3723               -> { "execute": "block_set_io_throttle",
3724                    "arguments": { "id": "ide0-1-0",
3725                                   "bps": 1000000,
3726                                   "bps_rd": 0,
3727                                   "bps_wr": 0,
3728                                   "iops": 0,
3729                                   "iops_rd": 0,
3730                                   "iops_wr": 0,
3731                                   "bps_max": 8000000,
3732                                   "bps_rd_max": 0,
3733                                   "bps_wr_max": 0,
3734                                   "iops_max": 0,
3735                                   "iops_rd_max": 0,
3736                                   "iops_wr_max": 0,
3737                                   "bps_max_length": 60,
3738                                   "iops_size": 0 } }
3739               <- { "return": {} }
3740
3741       BlockIOThrottle (Object)
3742
3743       A set of parameters describing block throttling.
3744
3745       Members:
3746
3747       "device: string" (optional)
3748           Block device name (deprecated, use "id" instead)
3749
3750       "id: string" (optional)
3751           The name or QOM path of the guest device (since: 2.8)
3752
3753       "bps: int"
3754           total throughput limit in bytes per second
3755
3756       "bps_rd: int"
3757           read throughput limit in bytes per second
3758
3759       "bps_wr: int"
3760           write throughput limit in bytes per second
3761
3762       "iops: int"
3763           total I/O operations per second
3764
3765       "iops_rd: int"
3766           read I/O operations per second
3767
3768       "iops_wr: int"
3769           write I/O operations per second
3770
3771       "bps_max: int" (optional)
3772           total throughput limit during bursts, in bytes (Since 1.7)
3773
3774       "bps_rd_max: int" (optional)
3775           read throughput limit during bursts, in bytes (Since 1.7)
3776
3777       "bps_wr_max: int" (optional)
3778           write throughput limit during bursts, in bytes (Since 1.7)
3779
3780       "iops_max: int" (optional)
3781           total I/O operations per second during bursts, in bytes (Since 1.7)
3782
3783       "iops_rd_max: int" (optional)
3784           read I/O operations per second during bursts, in bytes (Since 1.7)
3785
3786       "iops_wr_max: int" (optional)
3787           write I/O operations per second during bursts, in bytes (Since 1.7)
3788
3789       "bps_max_length: int" (optional)
3790           maximum length of the "bps_max" burst period, in seconds. It must
3791           only be set if "bps_max" is set as well.  Defaults to 1. (Since
3792           2.6)
3793
3794       "bps_rd_max_length: int" (optional)
3795           maximum length of the "bps_rd_max" burst period, in seconds. It
3796           must only be set if "bps_rd_max" is set as well.  Defaults to 1.
3797           (Since 2.6)
3798
3799       "bps_wr_max_length: int" (optional)
3800           maximum length of the "bps_wr_max" burst period, in seconds. It
3801           must only be set if "bps_wr_max" is set as well.  Defaults to 1.
3802           (Since 2.6)
3803
3804       "iops_max_length: int" (optional)
3805           maximum length of the "iops" burst period, in seconds. It must only
3806           be set if "iops_max" is set as well.  Defaults to 1. (Since 2.6)
3807
3808       "iops_rd_max_length: int" (optional)
3809           maximum length of the "iops_rd_max" burst period, in seconds. It
3810           must only be set if "iops_rd_max" is set as well.  Defaults to 1.
3811           (Since 2.6)
3812
3813       "iops_wr_max_length: int" (optional)
3814           maximum length of the "iops_wr_max" burst period, in seconds. It
3815           must only be set if "iops_wr_max" is set as well.  Defaults to 1.
3816           (Since 2.6)
3817
3818       "iops_size: int" (optional)
3819           an I/O size in bytes (Since 1.7)
3820
3821       "group: string" (optional)
3822           throttle group name (Since 2.4)
3823
3824       Since: 1.1
3825
3826       ThrottleLimits (Object)
3827
3828       Limit parameters for throttling.  Since some limit combinations are
3829       illegal, limits should always be set in one transaction. All fields are
3830       optional. When setting limits, if a field is missing the current value
3831       is not changed.
3832
3833       Members:
3834
3835       "iops-total: int" (optional)
3836           limit total I/O operations per second
3837
3838       "iops-total-max: int" (optional)
3839           I/O operations burst
3840
3841       "iops-total-max-length: int" (optional)
3842           length of the iops-total-max burst period, in seconds It must only
3843           be set if "iops-total-max" is set as well.
3844
3845       "iops-read: int" (optional)
3846           limit read operations per second
3847
3848       "iops-read-max: int" (optional)
3849           I/O operations read burst
3850
3851       "iops-read-max-length: int" (optional)
3852           length of the iops-read-max burst period, in seconds It must only
3853           be set if "iops-read-max" is set as well.
3854
3855       "iops-write: int" (optional)
3856           limit write operations per second
3857
3858       "iops-write-max: int" (optional)
3859           I/O operations write burst
3860
3861       "iops-write-max-length: int" (optional)
3862           length of the iops-write-max burst period, in seconds It must only
3863           be set if "iops-write-max" is set as well.
3864
3865       "bps-total: int" (optional)
3866           limit total bytes per second
3867
3868       "bps-total-max: int" (optional)
3869           total bytes burst
3870
3871       "bps-total-max-length: int" (optional)
3872           length of the bps-total-max burst period, in seconds.  It must only
3873           be set if "bps-total-max" is set as well.
3874
3875       "bps-read: int" (optional)
3876           limit read bytes per second
3877
3878       "bps-read-max: int" (optional)
3879           total bytes read burst
3880
3881       "bps-read-max-length: int" (optional)
3882           length of the bps-read-max burst period, in seconds It must only be
3883           set if "bps-read-max" is set as well.
3884
3885       "bps-write: int" (optional)
3886           limit write bytes per second
3887
3888       "bps-write-max: int" (optional)
3889           total bytes write burst
3890
3891       "bps-write-max-length: int" (optional)
3892           length of the bps-write-max burst period, in seconds It must only
3893           be set if "bps-write-max" is set as well.
3894
3895       "iops-size: int" (optional)
3896           when limiting by iops max size of an I/O in bytes
3897
3898       Since: 2.11
3899
3900       block-stream  (Command) Copy data from a backing file into a block
3901       device.
3902
3903       The block streaming operation is performed in the background until the
3904       entire backing file has been copied.  This command returns immediately
3905       once streaming has started.  The status of ongoing block streaming
3906       operations can be checked with query-block-jobs.  The operation can be
3907       stopped before it has completed using the block-job-cancel command.
3908
3909       The node that receives the data is called the top image, can be located
3910       in any part of the chain (but always above the base image; see below)
3911       and can be specified using its device or node name. Earlier qemu
3912       versions only allowed 'device' to name the top level node; presence of
3913       the 'base-node' parameter during introspection can be used as a witness
3914       of the enhanced semantics of 'device'.
3915
3916       If a base file is specified then sectors are not copied from that base
3917       file and its backing chain.  When streaming completes the image file
3918       will have the base file as its backing file.  This can be used to
3919       stream a subset of the backing file chain instead of flattening the
3920       entire image.
3921
3922       On successful completion the image file is updated to drop the backing
3923       file and the BLOCK_JOB_COMPLETED event is emitted.
3924
3925       Arguments:
3926
3927       "job-id: string" (optional)
3928           identifier for the newly-created block job. If omitted, the device
3929           name will be used. (Since 2.7)
3930
3931       "device: string"
3932           the device or node name of the top image
3933
3934       "base: string" (optional)
3935           the common backing file name.  It cannot be set if "base-node" is
3936           also set.
3937
3938       "base-node: string" (optional)
3939           the node name of the backing file.  It cannot be set if "base" is
3940           also set. (Since 2.8)
3941
3942       "backing-file: string" (optional)
3943           The backing file string to write into the top image. This filename
3944           is not validated.
3945
3946           If a pathname string is such that it cannot be resolved by QEMU,
3947           that means that subsequent QMP or HMP commands must use node-names
3948           for the image in question, as filename lookup methods will fail.
3949
3950           If not specified, QEMU will automatically determine the backing
3951           file string to use, or error out if there is no obvious choice.
3952           Care should be taken when specifying the string, to specify a valid
3953           filename or protocol.  (Since 2.1)
3954
3955       "speed: int" (optional)
3956           the maximum speed, in bytes per second
3957
3958       "on-error: BlockdevOnError" (optional)
3959           the action to take on an error (default report).  'stop' and
3960           'enospc' can only be used if the block device supports io-status
3961           (see BlockInfo).  Since 1.3.
3962
3963       "auto-finalize: boolean" (optional)
3964           When false, this job will wait in a PENDING state after it has
3965           finished its work, waiting for "block-job-finalize" before making
3966           any block graph changes.  When true, this job will automatically
3967           perform its abort or commit actions.  Defaults to true. (Since 3.1)
3968
3969       "auto-dismiss: boolean" (optional)
3970           When false, this job will wait in a CONCLUDED state after it has
3971           completely ceased all work, and awaits "block-job-dismiss".  When
3972           true, this job will automatically disappear from the query list
3973           without user intervention.  Defaults to true. (Since 3.1)
3974
3975       Returns: Nothing on success. If "device" does not exist,
3976       DeviceNotFound.
3977
3978       Since: 1.1
3979
3980       Example:
3981
3982               -> { "execute": "block-stream",
3983                    "arguments": { "device": "virtio0",
3984                                   "base": "/tmp/master.qcow2" } }
3985               <- { "return": {} }
3986
3987       block-job-set-speed  (Command) Set maximum speed for a background block
3988       operation.
3989
3990       This command can only be issued when there is an active block job.
3991
3992       Throttling can be disabled by setting the speed to 0.
3993
3994       Arguments:
3995
3996       "device: string"
3997           The job identifier. This used to be a device name (hence the name
3998           of the parameter), but since QEMU 2.7 it can have other values.
3999
4000       "speed: int"
4001           the maximum speed, in bytes per second, or 0 for unlimited.
4002           Defaults to 0.
4003
4004       Returns: Nothing on success If no background operation is active on
4005       this device, DeviceNotActive
4006
4007       Since: 1.1
4008
4009       block-job-cancel  (Command) Stop an active background block operation.
4010
4011       This command returns immediately after marking the active background
4012       block operation for cancellation.  It is an error to call this command
4013       if no operation is in progress.
4014
4015       The operation will cancel as soon as possible and then emit the
4016       BLOCK_JOB_CANCELLED event.  Before that happens the job is still
4017       visible when enumerated using query-block-jobs.
4018
4019       Note that if you issue 'block-job-cancel' after 'drive-mirror' has
4020       indicated (via the event BLOCK_JOB_READY) that the source and
4021       destination are synchronized, then the event triggered by this command
4022       changes to BLOCK_JOB_COMPLETED, to indicate that the mirroring has
4023       ended and the destination now has a point-in-time copy tied to the time
4024       of the cancellation.
4025
4026       For streaming, the image file retains its backing file unless the
4027       streaming operation happens to complete just as it is being cancelled.
4028       A new streaming operation can be started at a later time to finish
4029       copying all data from the backing file.
4030
4031       Arguments:
4032
4033       "device: string"
4034           The job identifier. This used to be a device name (hence the name
4035           of the parameter), but since QEMU 2.7 it can have other values.
4036
4037       "force: boolean" (optional)
4038           If true, and the job has already emitted the event BLOCK_JOB_READY,
4039           abandon the job immediately (even if it is paused) instead of
4040           waiting for the destination to complete its final synchronization
4041           (since 1.3)
4042
4043       Returns: Nothing on success If no background operation is active on
4044       this device, DeviceNotActive
4045
4046       Since: 1.1
4047
4048       block-job-pause  (Command) Pause an active background block operation.
4049
4050       This command returns immediately after marking the active background
4051       block operation for pausing.  It is an error to call this command if no
4052       operation is in progress or if the job is already paused.
4053
4054       The operation will pause as soon as possible.  No event is emitted when
4055       the operation is actually paused.  Cancelling a paused job
4056       automatically resumes it.
4057
4058       Arguments:
4059
4060       "device: string"
4061           The job identifier. This used to be a device name (hence the name
4062           of the parameter), but since QEMU 2.7 it can have other values.
4063
4064       Returns: Nothing on success If no background operation is active on
4065       this device, DeviceNotActive
4066
4067       Since: 1.3
4068
4069       block-job-resume  (Command) Resume an active background block
4070       operation.
4071
4072       This command returns immediately after resuming a paused background
4073       block operation.  It is an error to call this command if no operation
4074       is in progress or if the job is not paused.
4075
4076       This command also clears the error status of the job.
4077
4078       Arguments:
4079
4080       "device: string"
4081           The job identifier. This used to be a device name (hence the name
4082           of the parameter), but since QEMU 2.7 it can have other values.
4083
4084       Returns: Nothing on success If no background operation is active on
4085       this device, DeviceNotActive
4086
4087       Since: 1.3
4088
4089       block-job-complete  (Command) Manually trigger completion of an active
4090       background block operation.  This is supported for drive mirroring,
4091       where it also switches the device to write to the target path only.
4092       The ability to complete is signaled with a BLOCK_JOB_READY event.
4093
4094       This command completes an active background block operation
4095       synchronously.  The ordering of this command's return with the
4096       BLOCK_JOB_COMPLETED event is not defined.  Note that if an I/O error
4097       occurs during the processing of this command: 1) the command itself
4098       will fail; 2) the error will be processed according to the
4099       rerror/werror arguments that were specified when starting the
4100       operation.
4101
4102       A cancelled or paused job cannot be completed.
4103
4104       Arguments:
4105
4106       "device: string"
4107           The job identifier. This used to be a device name (hence the name
4108           of the parameter), but since QEMU 2.7 it can have other values.
4109
4110       Returns: Nothing on success If no background operation is active on
4111       this device, DeviceNotActive
4112
4113       Since: 1.3
4114
4115       block-job-dismiss  (Command) For jobs that have already concluded,
4116       remove them from the block-job-query list. This command only needs to
4117       be run for jobs which were started with QEMU 2.12+ job lifetime
4118       management semantics.
4119
4120       This command will refuse to operate on any job that has not yet reached
4121       its terminal state, JOB_STATUS_CONCLUDED. For jobs that make use of the
4122       BLOCK_JOB_READY event, block-job-cancel or block-job-complete will
4123       still need to be used as appropriate.
4124
4125       Arguments:
4126
4127       "id: string"
4128           The job identifier.
4129
4130       Returns: Nothing on success
4131
4132       Since: 2.12
4133
4134       block-job-finalize  (Command) Once a job that has manual=true reaches
4135       the pending state, it can be instructed to finalize any graph changes
4136       and do any necessary cleanup via this command.  For jobs in a
4137       transaction, instructing one job to finalize will force ALL jobs in the
4138       transaction to finalize, so it is only necessary to instruct a single
4139       member job to finalize.
4140
4141       Arguments:
4142
4143       "id: string"
4144           The job identifier.
4145
4146       Returns: Nothing on success
4147
4148       Since: 2.12
4149
4150       BlockdevDiscardOptions (Enum)
4151
4152       Determines how to handle discard requests.
4153
4154       Values:
4155
4156       "ignore"
4157           Ignore the request
4158
4159       "unmap"
4160           Forward as an unmap request
4161
4162       Since: 2.9
4163
4164       BlockdevDetectZeroesOptions (Enum)
4165
4166       Describes the operation mode for the automatic conversion of plain zero
4167       writes by the OS to driver specific optimized zero write commands.
4168
4169       Values:
4170
4171       "off"
4172           Disabled (default)
4173
4174       "on"
4175           Enabled
4176
4177       "unmap"
4178           Enabled and even try to unmap blocks if possible. This requires
4179           also that "BlockdevDiscardOptions" is set to unmap for this device.
4180
4181       Since: 2.1
4182
4183       BlockdevAioOptions (Enum)
4184
4185       Selects the AIO backend to handle I/O requests
4186
4187       Values:
4188
4189       "threads"
4190           Use qemu's thread pool
4191
4192       "native"
4193           Use native AIO backend (only Linux and Windows)
4194
4195       Since: 2.9
4196
4197       BlockdevCacheOptions (Object)
4198
4199       Includes cache-related options for block devices
4200
4201       Members:
4202
4203       "direct: boolean" (optional)
4204           enables use of O_DIRECT (bypass the host page cache; default:
4205           false)
4206
4207       "no-flush: boolean" (optional)
4208           ignore any flush requests for the device (default: false)
4209
4210       Since: 2.9
4211
4212       BlockdevDriver (Enum)
4213
4214       Drivers that are supported in block device operations.
4215
4216       Values:
4217
4218       "vxhs"
4219           Since 2.10
4220
4221       "throttle"
4222           Since 2.11
4223
4224       "nvme"
4225           Since 2.12
4226
4227       "copy-on-read"
4228           Since 3.0
4229
4230       "blklogwrites"
4231           Since 3.0
4232
4233       "blkreplay"
4234           Since 4.2
4235
4236       "blkdebug"
4237           Not documented
4238
4239       "blkverify"
4240           Not documented
4241
4242       "bochs"
4243           Not documented
4244
4245       "cloop"
4246           Not documented
4247
4248       "dmg"
4249           Not documented
4250
4251       "file"
4252           Not documented
4253
4254       "ftp"
4255           Not documented
4256
4257       "ftps"
4258           Not documented
4259
4260       "gluster"
4261           Not documented
4262
4263       "host_cdrom"
4264           Not documented
4265
4266       "host_device"
4267           Not documented
4268
4269       "http"
4270           Not documented
4271
4272       "https"
4273           Not documented
4274
4275       "iscsi"
4276           Not documented
4277
4278       "luks"
4279           Not documented
4280
4281       "nbd"
4282           Not documented
4283
4284       "nfs"
4285           Not documented
4286
4287       "null-aio"
4288           Not documented
4289
4290       "null-co"
4291           Not documented
4292
4293       "parallels"
4294           Not documented
4295
4296       "qcow"
4297           Not documented
4298
4299       "qcow2"
4300           Not documented
4301
4302       "qed"
4303           Not documented
4304
4305       "quorum"
4306           Not documented
4307
4308       "raw"
4309           Not documented
4310
4311       "rbd"
4312           Not documented
4313
4314       "replication"
4315           Not documented If: "defined(CONFIG_REPLICATION)"
4316
4317       "sheepdog"
4318           Not documented
4319
4320       "ssh"
4321           Not documented
4322
4323       "vdi"
4324           Not documented
4325
4326       "vhdx"
4327           Not documented
4328
4329       "vmdk"
4330           Not documented
4331
4332       "vpc"
4333           Not documented
4334
4335       "vvfat"
4336           Not documented
4337
4338       Since: 2.9
4339
4340       BlockdevOptionsFile (Object)
4341
4342       Driver specific block device options for the file backend.
4343
4344       Members:
4345
4346       "filename: string"
4347           path to the image file
4348
4349       "pr-manager: string" (optional)
4350           the id for the object that will handle persistent reservations for
4351           this device (default: none, forward the commands via SG_IO; since
4352           2.11)
4353
4354       "aio: BlockdevAioOptions" (optional)
4355           AIO backend (default: threads) (since: 2.8)
4356
4357       "locking: OnOffAuto" (optional)
4358           whether to enable file locking. If set to 'auto', only enable when
4359           Open File Descriptor (OFD) locking API is available (default: auto,
4360           since 2.10)
4361
4362       "drop-cache: boolean" (optional)
4363           invalidate page cache during live migration.  This prevents stale
4364           data on the migration destination with cache.direct=off.  Currently
4365           only supported on Linux hosts.  (default: on, since: 4.0) If:
4366           "defined(CONFIG_LINUX)"
4367
4368       "x-check-cache-dropped: boolean" (optional)
4369           whether to check that page cache was dropped on live migration.
4370           May cause noticeable delays if the image file is large, do not use
4371           in production.  (default: off) (since: 3.0)
4372
4373       Features:
4374
4375       "dynamic-auto-read-only"
4376           If present, enabled auto-read-only means that the driver will open
4377           the image read-only at first, dynamically reopen the image file
4378           read-write when the first writer is attached to the node and reopen
4379           read-only when the last writer is detached. This allows giving QEMU
4380           write permissions only on demand when an operation actually needs
4381           write access.
4382
4383       Since: 2.9
4384
4385       BlockdevOptionsNull (Object)
4386
4387       Driver specific block device options for the null backend.
4388
4389       Members:
4390
4391       "size: int" (optional)
4392           size of the device in bytes.
4393
4394       "latency-ns: int" (optional)
4395           emulated latency (in nanoseconds) in processing requests. Default
4396           to zero which completes requests immediately.  (Since 2.4)
4397
4398       "read-zeroes: boolean" (optional)
4399           if true, reads from the device produce zeroes; if false, the buffer
4400           is left unchanged. (default: false; since: 4.1)
4401
4402       Since: 2.9
4403
4404       BlockdevOptionsNVMe (Object)
4405
4406       Driver specific block device options for the NVMe backend.
4407
4408       Members:
4409
4410       "device: string"
4411           controller address of the NVMe device.
4412
4413       "namespace: int"
4414           namespace number of the device, starting from 1.
4415
4416       Since: 2.12
4417
4418       BlockdevOptionsVVFAT (Object)
4419
4420       Driver specific block device options for the vvfat protocol.
4421
4422       Members:
4423
4424       "dir: string"
4425           directory to be exported as FAT image
4426
4427       "fat-type: int" (optional)
4428           FAT type: 12, 16 or 32
4429
4430       "floppy: boolean" (optional)
4431           whether to export a floppy image (true) or partitioned hard disk
4432           (false; default)
4433
4434       "label: string" (optional)
4435           set the volume label, limited to 11 bytes. FAT16 and FAT32
4436           traditionally have some restrictions on labels, which are ignored
4437           by most operating systems. Defaults to "QEMU VVFAT".  (since 2.4)
4438
4439       "rw: boolean" (optional)
4440           whether to allow write operations (default: false)
4441
4442       Since: 2.9
4443
4444       BlockdevOptionsGenericFormat (Object)
4445
4446       Driver specific block device options for image format that have no
4447       option besides their data source.
4448
4449       Members:
4450
4451       "file: BlockdevRef"
4452           reference to or definition of the data source block device
4453
4454       Since: 2.9
4455
4456       BlockdevOptionsLUKS (Object)
4457
4458       Driver specific block device options for LUKS.
4459
4460       Members:
4461
4462       "key-secret: string" (optional)
4463           the ID of a QCryptoSecret object providing the decryption key
4464           (since 2.6). Mandatory except when doing a metadata-only probe of
4465           the image.
4466
4467       The members of "BlockdevOptionsGenericFormat"
4468
4469       Since: 2.9
4470
4471       BlockdevOptionsGenericCOWFormat (Object)
4472
4473       Driver specific block device options for image format that have no
4474       option besides their data source and an optional backing file.
4475
4476       Members:
4477
4478       "backing: BlockdevRefOrNull" (optional)
4479           reference to or definition of the backing file block device, null
4480           disables the backing file entirely.  Defaults to the backing file
4481           stored the image file.
4482
4483       The members of "BlockdevOptionsGenericFormat"
4484
4485       Since: 2.9
4486
4487       Qcow2OverlapCheckMode (Enum)
4488
4489       General overlap check modes.
4490
4491       Values:
4492
4493       "none"
4494           Do not perform any checks
4495
4496       "constant"
4497           Perform only checks which can be done in constant time and without
4498           reading anything from disk
4499
4500       "cached"
4501           Perform only checks which can be done without reading anything from
4502           disk
4503
4504       "all"
4505           Perform all available overlap checks
4506
4507       Since: 2.9
4508
4509       Qcow2OverlapCheckFlags (Object)
4510
4511       Structure of flags for each metadata structure. Setting a field to
4512       'true' makes qemu guard that structure against unintended overwriting.
4513       The default value is chosen according to the template given.
4514
4515       Members:
4516
4517       "template: Qcow2OverlapCheckMode" (optional)
4518           Specifies a template mode which can be adjusted using the other
4519           flags, defaults to 'cached'
4520
4521       "bitmap-directory: boolean" (optional)
4522           since 3.0
4523
4524       "main-header: boolean" (optional)
4525           Not documented
4526
4527       "active-l1: boolean" (optional)
4528           Not documented
4529
4530       "active-l2: boolean" (optional)
4531           Not documented
4532
4533       "refcount-table: boolean" (optional)
4534           Not documented
4535
4536       "refcount-block: boolean" (optional)
4537           Not documented
4538
4539       "snapshot-table: boolean" (optional)
4540           Not documented
4541
4542       "inactive-l1: boolean" (optional)
4543           Not documented
4544
4545       "inactive-l2: boolean" (optional)
4546           Not documented
4547
4548       Since: 2.9
4549
4550       Qcow2OverlapChecks (Alternate)
4551
4552       Specifies which metadata structures should be guarded against
4553       unintended overwriting.
4554
4555       Members:
4556
4557       "flags: Qcow2OverlapCheckFlags"
4558           set of flags for separate specification of each metadata structure
4559           type
4560
4561       "mode: Qcow2OverlapCheckMode"
4562           named mode which chooses a specific set of flags
4563
4564       Since: 2.9
4565
4566       BlockdevQcowEncryptionFormat (Enum)
4567
4568       Values:
4569
4570       "aes"
4571           AES-CBC with plain64 initialization vectors
4572
4573       Since: 2.10
4574
4575       BlockdevQcowEncryption (Object)
4576
4577       Members:
4578
4579       "format: BlockdevQcowEncryptionFormat"
4580           Not documented
4581
4582       The members of "QCryptoBlockOptionsQCow" when "format" is "aes"
4583
4584       Since: 2.10
4585
4586       BlockdevOptionsQcow (Object)
4587
4588       Driver specific block device options for qcow.
4589
4590       Members:
4591
4592       "encrypt: BlockdevQcowEncryption" (optional)
4593           Image decryption options. Mandatory for encrypted images, except
4594           when doing a metadata-only probe of the image.
4595
4596       The members of "BlockdevOptionsGenericCOWFormat"
4597
4598       Since: 2.10
4599
4600       BlockdevQcow2EncryptionFormat (Enum)
4601
4602       Values:
4603
4604       "aes"
4605           AES-CBC with plain64 initialization vectors
4606
4607       "luks"
4608           Not documented
4609
4610       Since: 2.10
4611
4612       BlockdevQcow2Encryption (Object)
4613
4614       Members:
4615
4616       "format: BlockdevQcow2EncryptionFormat"
4617           Not documented
4618
4619       The members of "QCryptoBlockOptionsQCow" when "format" is "aes"
4620       The members of "QCryptoBlockOptionsLUKS" when "format" is "luks"
4621
4622       Since: 2.10
4623
4624       BlockdevOptionsQcow2 (Object)
4625
4626       Driver specific block device options for qcow2.
4627
4628       Members:
4629
4630       "lazy-refcounts: boolean" (optional)
4631           whether to enable the lazy refcounts feature (default is taken from
4632           the image file)
4633
4634       "pass-discard-request: boolean" (optional)
4635           whether discard requests to the qcow2 device should be forwarded to
4636           the data source
4637
4638       "pass-discard-snapshot: boolean" (optional)
4639           whether discard requests for the data source should be issued when
4640           a snapshot operation (e.g.  deleting a snapshot) frees clusters in
4641           the qcow2 file
4642
4643       "pass-discard-other: boolean" (optional)
4644           whether discard requests for the data source should be issued on
4645           other occasions where a cluster gets freed
4646
4647       "overlap-check: Qcow2OverlapChecks" (optional)
4648           which overlap checks to perform for writes to the image, defaults
4649           to 'cached' (since 2.2)
4650
4651       "cache-size: int" (optional)
4652           the maximum total size of the L2 table and refcount block caches in
4653           bytes (since 2.2)
4654
4655       "l2-cache-size: int" (optional)
4656           the maximum size of the L2 table cache in bytes (since 2.2)
4657
4658       "l2-cache-entry-size: int" (optional)
4659           the size of each entry in the L2 cache in bytes. It must be a power
4660           of two between 512 and the cluster size. The default value is the
4661           cluster size (since 2.12)
4662
4663       "refcount-cache-size: int" (optional)
4664           the maximum size of the refcount block cache in bytes (since 2.2)
4665
4666       "cache-clean-interval: int" (optional)
4667           clean unused entries in the L2 and refcount caches. The interval is
4668           in seconds. The default value is 600 on supporting platforms, and 0
4669           on other platforms. 0 disables this feature. (since 2.5)
4670
4671       "encrypt: BlockdevQcow2Encryption" (optional)
4672           Image decryption options. Mandatory for encrypted images, except
4673           when doing a metadata-only probe of the image. (since 2.10)
4674
4675       "data-file: BlockdevRef" (optional)
4676           reference to or definition of the external data file.  This may
4677           only be specified for images that require an external data file. If
4678           it is not specified for such an image, the data file name is loaded
4679           from the image file. (since 4.0)
4680
4681       The members of "BlockdevOptionsGenericCOWFormat"
4682
4683       Since: 2.9
4684
4685       SshHostKeyCheckMode (Enum)
4686
4687       "none"             Don't check the host key at all "hash"
4688       Compare the host key with a given hash "known_hosts"      Check the
4689       host key against the known_hosts file
4690
4691       Values:
4692
4693       "none"
4694           Not documented
4695
4696       "hash"
4697           Not documented
4698
4699       "known_hosts"
4700           Not documented
4701
4702       Since: 2.12
4703
4704       SshHostKeyCheckHashType (Enum)
4705
4706       "md5"              The given hash is an md5 hash "sha1"             The
4707       given hash is an sha1 hash
4708
4709       Values:
4710
4711       "md5"
4712           Not documented
4713
4714       "sha1"
4715           Not documented
4716
4717       Since: 2.12
4718
4719       SshHostKeyHash (Object)
4720
4721       "type"             The hash algorithm used for the hash "hash"
4722       The expected hash value
4723
4724       Members:
4725
4726       "type: SshHostKeyCheckHashType"
4727           Not documented
4728
4729       "hash: string"
4730           Not documented
4731
4732       Since: 2.12
4733
4734       SshHostKeyCheck (Object)
4735
4736       Members:
4737
4738       "mode: SshHostKeyCheckMode"
4739           Not documented
4740
4741       The members of "SshHostKeyHash" when "mode" is "hash"
4742
4743       Since: 2.12
4744
4745       BlockdevOptionsSsh (Object)
4746
4747       Members:
4748
4749       "server: InetSocketAddress"
4750           host address
4751
4752       "path: string"
4753           path to the image on the host
4754
4755       "user: string" (optional)
4756           user as which to connect, defaults to current local user name
4757
4758       "host-key-check: SshHostKeyCheck" (optional)
4759           Defines how and what to check the host key against (default:
4760           known_hosts)
4761
4762       Since: 2.9
4763
4764       BlkdebugEvent (Enum)
4765
4766       Trigger events supported by blkdebug.
4767
4768       Values:
4769
4770       "l1_shrink_write_table"
4771           write zeros to the l1 table to shrink image.  (since 2.11)
4772
4773       "l1_shrink_free_l2_clusters"
4774           discard the l2 tables. (since 2.11)
4775
4776       "cor_write"
4777           a write due to copy-on-read (since 2.11)
4778
4779       "cluster_alloc_space"
4780           an allocation of file space for a cluster (since 4.1)
4781
4782       "none"
4783           triggers once at creation of the blkdebug node (since 4.1)
4784
4785       "l1_update"
4786           Not documented
4787
4788       "l1_grow_alloc_table"
4789           Not documented
4790
4791       "l1_grow_write_table"
4792           Not documented
4793
4794       "l1_grow_activate_table"
4795           Not documented
4796
4797       "l2_load"
4798           Not documented
4799
4800       "l2_update"
4801           Not documented
4802
4803       "l2_update_compressed"
4804           Not documented
4805
4806       "l2_alloc_cow_read"
4807           Not documented
4808
4809       "l2_alloc_write"
4810           Not documented
4811
4812       "read_aio"
4813           Not documented
4814
4815       "read_backing_aio"
4816           Not documented
4817
4818       "read_compressed"
4819           Not documented
4820
4821       "write_aio"
4822           Not documented
4823
4824       "write_compressed"
4825           Not documented
4826
4827       "vmstate_load"
4828           Not documented
4829
4830       "vmstate_save"
4831           Not documented
4832
4833       "cow_read"
4834           Not documented
4835
4836       "cow_write"
4837           Not documented
4838
4839       "reftable_load"
4840           Not documented
4841
4842       "reftable_grow"
4843           Not documented
4844
4845       "reftable_update"
4846           Not documented
4847
4848       "refblock_load"
4849           Not documented
4850
4851       "refblock_update"
4852           Not documented
4853
4854       "refblock_update_part"
4855           Not documented
4856
4857       "refblock_alloc"
4858           Not documented
4859
4860       "refblock_alloc_hookup"
4861           Not documented
4862
4863       "refblock_alloc_write"
4864           Not documented
4865
4866       "refblock_alloc_write_blocks"
4867           Not documented
4868
4869       "refblock_alloc_write_table"
4870           Not documented
4871
4872       "refblock_alloc_switch_table"
4873           Not documented
4874
4875       "cluster_alloc"
4876           Not documented
4877
4878       "cluster_alloc_bytes"
4879           Not documented
4880
4881       "cluster_free"
4882           Not documented
4883
4884       "flush_to_os"
4885           Not documented
4886
4887       "flush_to_disk"
4888           Not documented
4889
4890       "pwritev_rmw_head"
4891           Not documented
4892
4893       "pwritev_rmw_after_head"
4894           Not documented
4895
4896       "pwritev_rmw_tail"
4897           Not documented
4898
4899       "pwritev_rmw_after_tail"
4900           Not documented
4901
4902       "pwritev"
4903           Not documented
4904
4905       "pwritev_zero"
4906           Not documented
4907
4908       "pwritev_done"
4909           Not documented
4910
4911       "empty_image_prepare"
4912           Not documented
4913
4914       Since: 2.9
4915
4916       BlkdebugIOType (Enum)
4917
4918       Kinds of I/O that blkdebug can inject errors in.
4919
4920       Values:
4921
4922       "read"
4923           .bdrv_co_preadv()
4924
4925       "write"
4926           .bdrv_co_pwritev()
4927
4928       "write-zeroes"
4929           .bdrv_co_pwrite_zeroes()
4930
4931       "discard"
4932           .bdrv_co_pdiscard()
4933
4934       "flush"
4935           .bdrv_co_flush_to_disk()
4936
4937       "block-status"
4938           .bdrv_co_block_status()
4939
4940       Since: 4.1
4941
4942       BlkdebugInjectErrorOptions (Object)
4943
4944       Describes a single error injection for blkdebug.
4945
4946       Members:
4947
4948       "event: BlkdebugEvent"
4949           trigger event
4950
4951       "state: int" (optional)
4952           the state identifier blkdebug needs to be in to actually trigger
4953           the event; defaults to "any"
4954
4955       "iotype: BlkdebugIOType" (optional)
4956           the type of I/O operations on which this error should be injected;
4957           defaults to "all read, write, write-zeroes, discard, and flush
4958           operations" (since: 4.1)
4959
4960       "errno: int" (optional)
4961           error identifier (errno) to be returned; defaults to EIO
4962
4963       "sector: int" (optional)
4964           specifies the sector index which has to be affected in order to
4965           actually trigger the event; defaults to "any sector"
4966
4967       "once: boolean" (optional)
4968           disables further events after this one has been triggered; defaults
4969           to false
4970
4971       "immediately: boolean" (optional)
4972           fail immediately; defaults to false
4973
4974       Since: 2.9
4975
4976       BlkdebugSetStateOptions (Object)
4977
4978       Describes a single state-change event for blkdebug.
4979
4980       Members:
4981
4982       "event: BlkdebugEvent"
4983           trigger event
4984
4985       "state: int" (optional)
4986           the current state identifier blkdebug needs to be in; defaults to
4987           "any"
4988
4989       "new_state: int"
4990           the state identifier blkdebug is supposed to assume if this event
4991           is triggered
4992
4993       Since: 2.9
4994
4995       BlockdevOptionsBlkdebug (Object)
4996
4997       Driver specific block device options for blkdebug.
4998
4999       Members:
5000
5001       "image: BlockdevRef"
5002           underlying raw block device (or image file)
5003
5004       "config: string" (optional)
5005           filename of the configuration file
5006
5007       "align: int" (optional)
5008           required alignment for requests in bytes, must be positive power of
5009           2, or 0 for default
5010
5011       "max-transfer: int" (optional)
5012           maximum size for I/O transfers in bytes, must be positive multiple
5013           of "align" and of the underlying file's request alignment (but need
5014           not be a power of 2), or 0 for default (since 2.10)
5015
5016       "opt-write-zero: int" (optional)
5017           preferred alignment for write zero requests in bytes, must be
5018           positive multiple of "align" and of the underlying file's request
5019           alignment (but need not be a power of 2), or 0 for default (since
5020           2.10)
5021
5022       "max-write-zero: int" (optional)
5023           maximum size for write zero requests in bytes, must be positive
5024           multiple of "align", of "opt-write-zero", and of the underlying
5025           file's request alignment (but need not be a power of 2), or 0 for
5026           default (since 2.10)
5027
5028       "opt-discard: int" (optional)
5029           preferred alignment for discard requests in bytes, must be positive
5030           multiple of "align" and of the underlying file's request alignment
5031           (but need not be a power of 2), or 0 for default (since 2.10)
5032
5033       "max-discard: int" (optional)
5034           maximum size for discard requests in bytes, must be positive
5035           multiple of "align", of "opt-discard", and of the underlying file's
5036           request alignment (but need not be a power of 2), or 0 for default
5037           (since 2.10)
5038
5039       "inject-error: array of BlkdebugInjectErrorOptions" (optional)
5040           array of error injection descriptions
5041
5042       "set-state: array of BlkdebugSetStateOptions" (optional)
5043           array of state-change descriptions
5044
5045       Since: 2.9
5046
5047       BlockdevOptionsBlklogwrites (Object)
5048
5049       Driver specific block device options for blklogwrites.
5050
5051       Members:
5052
5053       "file: BlockdevRef"
5054           block device
5055
5056       "log: BlockdevRef"
5057           block device used to log writes to "file"
5058
5059       "log-sector-size: int" (optional)
5060           sector size used in logging writes to "file", determines
5061           granularity of offsets and sizes of writes (default: 512)
5062
5063       "log-append: boolean" (optional)
5064           append to an existing log (default: false)
5065
5066       "log-super-update-interval: int" (optional)
5067           interval of write requests after which the log super block is
5068           updated to disk (default: 4096)
5069
5070       Since: 3.0
5071
5072       BlockdevOptionsBlkverify (Object)
5073
5074       Driver specific block device options for blkverify.
5075
5076       Members:
5077
5078       "test: BlockdevRef"
5079           block device to be tested
5080
5081       "raw: BlockdevRef"
5082           raw image used for verification
5083
5084       Since: 2.9
5085
5086       BlockdevOptionsBlkreplay (Object)
5087
5088       Driver specific block device options for blkreplay.
5089
5090       Members:
5091
5092       "image: BlockdevRef"
5093           disk image which should be controlled with blkreplay
5094
5095       Since: 4.2
5096
5097       QuorumReadPattern (Enum)
5098
5099       An enumeration of quorum read patterns.
5100
5101       Values:
5102
5103       "quorum"
5104           read all the children and do a quorum vote on reads
5105
5106       "fifo"
5107           read only from the first child that has not failed
5108
5109       Since: 2.9
5110
5111       BlockdevOptionsQuorum (Object)
5112
5113       Driver specific block device options for Quorum
5114
5115       Members:
5116
5117       "blkverify: boolean" (optional)
5118           true if the driver must print content mismatch set to false by
5119           default
5120
5121       "children: array of BlockdevRef"
5122           the children block devices to use
5123
5124       "vote-threshold: int"
5125           the vote limit under which a read will fail
5126
5127       "rewrite-corrupted: boolean" (optional)
5128           rewrite corrupted data when quorum is reached (Since 2.1)
5129
5130       "read-pattern: QuorumReadPattern" (optional)
5131           choose read pattern and set to quorum by default (Since 2.2)
5132
5133       Since: 2.9
5134
5135       BlockdevOptionsGluster (Object)
5136
5137       Driver specific block device options for Gluster
5138
5139       Members:
5140
5141       "volume: string"
5142           name of gluster volume where VM image resides
5143
5144       "path: string"
5145           absolute path to image file in gluster volume
5146
5147       "server: array of SocketAddress"
5148           gluster servers description
5149
5150       "debug: int" (optional)
5151           libgfapi log level (default '4' which is Error) (Since 2.8)
5152
5153       "logfile: string" (optional)
5154           libgfapi log file (default /dev/stderr) (Since 2.8)
5155
5156       Since: 2.9
5157
5158       IscsiTransport (Enum)
5159
5160       An enumeration of libiscsi transport types
5161
5162       Values:
5163
5164       "tcp"
5165           Not documented
5166
5167       "iser"
5168           Not documented
5169
5170       Since: 2.9
5171
5172       IscsiHeaderDigest (Enum)
5173
5174       An enumeration of header digests supported by libiscsi
5175
5176       Values:
5177
5178       "crc32c"
5179           Not documented
5180
5181       "none"
5182           Not documented
5183
5184       "crc32c-none"
5185           Not documented
5186
5187       "none-crc32c"
5188           Not documented
5189
5190       Since: 2.9
5191
5192       BlockdevOptionsIscsi (Object)
5193
5194       Members:
5195
5196       "transport: IscsiTransport"
5197           The iscsi transport type
5198
5199       "portal: string"
5200           The address of the iscsi portal
5201
5202       "target: string"
5203           The target iqn name
5204
5205       "lun: int" (optional)
5206           LUN to connect to. Defaults to 0.
5207
5208       "user: string" (optional)
5209           User name to log in with. If omitted, no CHAP authentication is
5210           performed.
5211
5212       "password-secret: string" (optional)
5213           The ID of a QCryptoSecret object providing the password for the
5214           login. This option is required if "user" is specified.
5215
5216       "initiator-name: string" (optional)
5217           The iqn name we want to identify to the target as. If this option
5218           is not specified, an initiator name is generated automatically.
5219
5220       "header-digest: IscsiHeaderDigest" (optional)
5221           The desired header digest. Defaults to none-crc32c.
5222
5223       "timeout: int" (optional)
5224           Timeout in seconds after which a request will timeout. 0 means no
5225           timeout and is the default.
5226
5227       Driver specific block device options for iscsi
5228
5229       Since: 2.9
5230
5231       RbdAuthMode (Enum)
5232
5233       Values:
5234
5235       "cephx"
5236           Not documented
5237
5238       "none"
5239           Not documented
5240
5241       Since: 3.0
5242
5243       BlockdevOptionsRbd (Object)
5244
5245       Members:
5246
5247       "pool: string"
5248           Ceph pool name.
5249
5250       "image: string"
5251           Image name in the Ceph pool.
5252
5253       "conf: string" (optional)
5254           path to Ceph configuration file.  Values in the configuration file
5255           will be overridden by options specified via QAPI.
5256
5257       "snapshot: string" (optional)
5258           Ceph snapshot name.
5259
5260       "user: string" (optional)
5261           Ceph id name.
5262
5263       "auth-client-required: array of RbdAuthMode" (optional)
5264           Acceptable authentication modes.  This maps to Ceph configuration
5265           option "auth_client_required".  (Since 3.0)
5266
5267       "key-secret: string" (optional)
5268           ID of a QCryptoSecret object providing a key for cephx
5269           authentication.  This maps to Ceph configuration option "key".
5270           (Since 3.0)
5271
5272       "server: array of InetSocketAddressBase" (optional)
5273           Monitor host address and port.  This maps to the "mon_host" Ceph
5274           option.
5275
5276       Since: 2.9
5277
5278       BlockdevOptionsSheepdog (Object)
5279
5280       Driver specific block device options for sheepdog
5281
5282       Members:
5283
5284       "vdi: string"
5285           Virtual disk image name
5286
5287       "server: SocketAddress"
5288           The Sheepdog server to connect to
5289
5290       "snap-id: int" (optional)
5291           Snapshot ID
5292
5293       "tag: string" (optional)
5294           Snapshot tag name
5295
5296       Only one of "snap-id" and "tag" may be present.
5297
5298       Since: 2.9
5299
5300       ReplicationMode (Enum)
5301
5302       An enumeration of replication modes.
5303
5304       Values:
5305
5306       "primary"
5307           Primary mode, the vm's state will be sent to secondary QEMU.
5308
5309       "secondary"
5310           Secondary mode, receive the vm's state from primary QEMU.
5311
5312       Since: 2.9
5313
5314       If: "defined(CONFIG_REPLICATION)"
5315
5316       BlockdevOptionsReplication (Object)
5317
5318       Driver specific block device options for replication
5319
5320       Members:
5321
5322       "mode: ReplicationMode"
5323           the replication mode
5324
5325       "top-id: string" (optional)
5326           In secondary mode, node name or device ID of the root node who owns
5327           the replication node chain. Must not be given in primary mode.
5328
5329       The members of "BlockdevOptionsGenericFormat"
5330
5331       Since: 2.9
5332
5333       If: "defined(CONFIG_REPLICATION)"
5334
5335       NFSTransport (Enum)
5336
5337       An enumeration of NFS transport types
5338
5339       Values:
5340
5341       "inet"
5342           TCP transport
5343
5344       Since: 2.9
5345
5346       NFSServer (Object)
5347
5348       Captures the address of the socket
5349
5350       Members:
5351
5352       "type: NFSTransport"
5353           transport type used for NFS (only TCP supported)
5354
5355       "host: string"
5356           host address for NFS server
5357
5358       Since: 2.9
5359
5360       BlockdevOptionsNfs (Object)
5361
5362       Driver specific block device option for NFS
5363
5364       Members:
5365
5366       "server: NFSServer"
5367           host address
5368
5369       "path: string"
5370           path of the image on the host
5371
5372       "user: int" (optional)
5373           UID value to use when talking to the server (defaults to 65534 on
5374           Windows and getuid() on unix)
5375
5376       "group: int" (optional)
5377           GID value to use when talking to the server (defaults to 65534 on
5378           Windows and getgid() in unix)
5379
5380       "tcp-syn-count: int" (optional)
5381           number of SYNs during the session establishment (defaults to libnfs
5382           default)
5383
5384       "readahead-size: int" (optional)
5385           set the readahead size in bytes (defaults to libnfs default)
5386
5387       "page-cache-size: int" (optional)
5388           set the pagecache size in bytes (defaults to libnfs default)
5389
5390       "debug: int" (optional)
5391           set the NFS debug level (max 2) (defaults to libnfs default)
5392
5393       Since: 2.9
5394
5395       BlockdevOptionsCurlBase (Object)
5396
5397       Driver specific block device options shared by all protocols supported
5398       by the curl backend.
5399
5400       Members:
5401
5402       "url: string"
5403           URL of the image file
5404
5405       "readahead: int" (optional)
5406           Size of the read-ahead cache; must be a multiple of 512 (defaults
5407           to 256 kB)
5408
5409       "timeout: int" (optional)
5410           Timeout for connections, in seconds (defaults to 5)
5411
5412       "username: string" (optional)
5413           Username for authentication (defaults to none)
5414
5415       "password-secret: string" (optional)
5416           ID of a QCryptoSecret object providing a password for
5417           authentication (defaults to no password)
5418
5419       "proxy-username: string" (optional)
5420           Username for proxy authentication (defaults to none)
5421
5422       "proxy-password-secret: string" (optional)
5423           ID of a QCryptoSecret object providing a password for proxy
5424           authentication (defaults to no password)
5425
5426       Since: 2.9
5427
5428       BlockdevOptionsCurlHttp (Object)
5429
5430       Driver specific block device options for HTTP connections over the curl
5431       backend.  URLs must start with "http://".
5432
5433       Members:
5434
5435       "cookie: string" (optional)
5436           List of cookies to set; format is "name1=content1; name2=content2;"
5437           as explained by CURLOPT_COOKIE(3). Defaults to no cookies.
5438
5439       "cookie-secret: string" (optional)
5440           ID of a QCryptoSecret object providing the cookie data in a secure
5441           way. See "cookie" for the format. (since 2.10)
5442
5443       The members of "BlockdevOptionsCurlBase"
5444
5445       Since: 2.9
5446
5447       BlockdevOptionsCurlHttps (Object)
5448
5449       Driver specific block device options for HTTPS connections over the
5450       curl backend.  URLs must start with "https://".
5451
5452       Members:
5453
5454       "cookie: string" (optional)
5455           List of cookies to set; format is "name1=content1; name2=content2;"
5456           as explained by CURLOPT_COOKIE(3). Defaults to no cookies.
5457
5458       "sslverify: boolean" (optional)
5459           Whether to verify the SSL certificate's validity (defaults to true)
5460
5461       "cookie-secret: string" (optional)
5462           ID of a QCryptoSecret object providing the cookie data in a secure
5463           way. See "cookie" for the format. (since 2.10)
5464
5465       The members of "BlockdevOptionsCurlBase"
5466
5467       Since: 2.9
5468
5469       BlockdevOptionsCurlFtp (Object)
5470
5471       Driver specific block device options for FTP connections over the curl
5472       backend.  URLs must start with "ftp://".
5473
5474       Members:
5475
5476       The members of "BlockdevOptionsCurlBase"
5477
5478       Since: 2.9
5479
5480       BlockdevOptionsCurlFtps (Object)
5481
5482       Driver specific block device options for FTPS connections over the curl
5483       backend.  URLs must start with "ftps://".
5484
5485       Members:
5486
5487       "sslverify: boolean" (optional)
5488           Whether to verify the SSL certificate's validity (defaults to true)
5489
5490       The members of "BlockdevOptionsCurlBase"
5491
5492       Since: 2.9
5493
5494       BlockdevOptionsNbd (Object)
5495
5496       Driver specific block device options for NBD.
5497
5498       Members:
5499
5500       "server: SocketAddress"
5501           NBD server address
5502
5503       "export: string" (optional)
5504           export name
5505
5506       "tls-creds: string" (optional)
5507           TLS credentials ID
5508
5509       "x-dirty-bitmap: string" (optional)
5510           A "qemu:dirty-bitmap:NAME" string to query in place of traditional
5511           "base:allocation" block status (see NBD_OPT_LIST_META_CONTEXT in
5512           the NBD protocol) (since 3.0)
5513
5514       "reconnect-delay: int" (optional)
5515           On an unexpected disconnect, the nbd client tries to connect again
5516           until succeeding or encountering a serious error.  During the first
5517           "reconnect-delay" seconds, all requests are paused and will be
5518           rerun on a successful reconnect. After that time, any delayed
5519           requests and all future requests before a successful reconnect will
5520           immediately fail. Default 0 (Since 4.2)
5521
5522       Since: 2.9
5523
5524       BlockdevOptionsRaw (Object)
5525
5526       Driver specific block device options for the raw driver.
5527
5528       Members:
5529
5530       "offset: int" (optional)
5531           position where the block device starts
5532
5533       "size: int" (optional)
5534           the assumed size of the device
5535
5536       The members of "BlockdevOptionsGenericFormat"
5537
5538       Since: 2.9
5539
5540       BlockdevOptionsVxHS (Object)
5541
5542       Driver specific block device options for VxHS
5543
5544       Members:
5545
5546       "vdisk-id: string"
5547           UUID of VxHS volume
5548
5549       "server: InetSocketAddressBase"
5550           vxhs server IP, port
5551
5552       "tls-creds: string" (optional)
5553           TLS credentials ID
5554
5555       Since: 2.10
5556
5557       BlockdevOptionsThrottle (Object)
5558
5559       Driver specific block device options for the throttle driver
5560
5561       Members:
5562
5563       "throttle-group: string"
5564           the name of the throttle-group object to use. It must already
5565           exist.
5566
5567       "file: BlockdevRef"
5568           reference to or definition of the data source block device
5569
5570       Since: 2.11
5571
5572       BlockdevOptions (Object)
5573
5574       Options for creating a block device.  Many options are available for
5575       all block devices, independent of the block driver:
5576
5577       Members:
5578
5579       "driver: BlockdevDriver"
5580           block driver name
5581
5582       "node-name: string" (optional)
5583           the node name of the new node (Since 2.0).  This option is required
5584           on the top level of blockdev-add.  Valid node names start with an
5585           alphabetic character and may contain only alphanumeric characters,
5586           '-', '.' and '_'. Their maximum length is 31 characters.
5587
5588       "discard: BlockdevDiscardOptions" (optional)
5589           discard-related options (default: ignore)
5590
5591       "cache: BlockdevCacheOptions" (optional)
5592           cache-related options
5593
5594       "read-only: boolean" (optional)
5595           whether the block device should be read-only (default: false).
5596           Note that some block drivers support only read-only access, either
5597           generally or in certain configurations. In this case, the default
5598           value does not work and the option must be specified explicitly.
5599
5600       "auto-read-only: boolean" (optional)
5601           if true and "read-only" is false, QEMU may automatically decide not
5602           to open the image read-write as requested, but fall back to read-
5603           only instead (and switch between the modes later), e.g. depending
5604           on whether the image file is writable or whether a writing user is
5605           attached to the node (default: false, since 3.1)
5606
5607       "detect-zeroes: BlockdevDetectZeroesOptions" (optional)
5608           detect and optimize zero writes (Since 2.1) (default: off)
5609
5610       "force-share: boolean" (optional)
5611           force share all permission on added nodes.  Requires
5612           read-only=true. (Since 2.10)
5613
5614       The members of "BlockdevOptionsBlkdebug" when "driver" is "blkdebug"
5615       The members of "BlockdevOptionsBlklogwrites" when "driver" is
5616       "blklogwrites"
5617       The members of "BlockdevOptionsBlkverify" when "driver" is "blkverify"
5618       The members of "BlockdevOptionsBlkreplay" when "driver" is "blkreplay"
5619       The members of "BlockdevOptionsGenericFormat" when "driver" is "bochs"
5620       The members of "BlockdevOptionsGenericFormat" when "driver" is "cloop"
5621       The members of "BlockdevOptionsGenericFormat" when "driver" is "copy-
5622       on-read"
5623       The members of "BlockdevOptionsGenericFormat" when "driver" is "dmg"
5624       The members of "BlockdevOptionsFile" when "driver" is "file"
5625       The members of "BlockdevOptionsCurlFtp" when "driver" is "ftp"
5626       The members of "BlockdevOptionsCurlFtps" when "driver" is "ftps"
5627       The members of "BlockdevOptionsGluster" when "driver" is "gluster"
5628       The members of "BlockdevOptionsFile" when "driver" is "host_cdrom"
5629       The members of "BlockdevOptionsFile" when "driver" is "host_device"
5630       The members of "BlockdevOptionsCurlHttp" when "driver" is "http"
5631       The members of "BlockdevOptionsCurlHttps" when "driver" is "https"
5632       The members of "BlockdevOptionsIscsi" when "driver" is "iscsi"
5633       The members of "BlockdevOptionsLUKS" when "driver" is "luks"
5634       The members of "BlockdevOptionsNbd" when "driver" is "nbd"
5635       The members of "BlockdevOptionsNfs" when "driver" is "nfs"
5636       The members of "BlockdevOptionsNull" when "driver" is "null-aio"
5637       The members of "BlockdevOptionsNull" when "driver" is "null-co"
5638       The members of "BlockdevOptionsNVMe" when "driver" is "nvme"
5639       The members of "BlockdevOptionsGenericFormat" when "driver" is
5640       "parallels"
5641       The members of "BlockdevOptionsQcow2" when "driver" is "qcow2"
5642       The members of "BlockdevOptionsQcow" when "driver" is "qcow"
5643       The members of "BlockdevOptionsGenericCOWFormat" when "driver" is "qed"
5644       The members of "BlockdevOptionsQuorum" when "driver" is "quorum"
5645       The members of "BlockdevOptionsRaw" when "driver" is "raw"
5646       The members of "BlockdevOptionsRbd" when "driver" is "rbd"
5647       The members of "BlockdevOptionsReplication" when "driver" is
5648       "replication" (If: "defined(CONFIG_REPLICATION)")
5649       The members of "BlockdevOptionsSheepdog" when "driver" is "sheepdog"
5650       The members of "BlockdevOptionsSsh" when "driver" is "ssh"
5651       The members of "BlockdevOptionsThrottle" when "driver" is "throttle"
5652       The members of "BlockdevOptionsGenericFormat" when "driver" is "vdi"
5653       The members of "BlockdevOptionsGenericFormat" when "driver" is "vhdx"
5654       The members of "BlockdevOptionsGenericCOWFormat" when "driver" is
5655       "vmdk"
5656       The members of "BlockdevOptionsGenericFormat" when "driver" is "vpc"
5657       The members of "BlockdevOptionsVVFAT" when "driver" is "vvfat"
5658       The members of "BlockdevOptionsVxHS" when "driver" is "vxhs"
5659
5660       Remaining options are determined by the block driver.
5661
5662       Since: 2.9
5663
5664       BlockdevRef (Alternate)
5665
5666       Reference to a block device.
5667
5668       Members:
5669
5670       "definition: BlockdevOptions"
5671           defines a new block device inline
5672
5673       "reference: string"
5674           references the ID of an existing block device
5675
5676       Since: 2.9
5677
5678       BlockdevRefOrNull (Alternate)
5679
5680       Reference to a block device.
5681
5682       Members:
5683
5684       "definition: BlockdevOptions"
5685           defines a new block device inline
5686
5687       "reference: string"
5688           references the ID of an existing block device.  An empty string
5689           means that no block device should be referenced.  Deprecated; use
5690           null instead.
5691
5692       "null: null"
5693           No block device should be referenced (since 2.10)
5694
5695       Since: 2.9
5696
5697       blockdev-add  (Command) Creates a new block device. If the "id" option
5698       is given at the top level, a BlockBackend will be created; otherwise,
5699       "node-name" is mandatory at the top level and no BlockBackend will be
5700       created.
5701
5702       Arguments: the members of "BlockdevOptions"
5703
5704       Since: 2.9
5705
5706       Example:
5707
5708               1.
5709               -> { "execute": "blockdev-add",
5710                    "arguments": {
5711                         "driver": "qcow2",
5712                         "node-name": "test1",
5713                         "file": {
5714                             "driver": "file",
5715                             "filename": "test.qcow2"
5716                          }
5717                     }
5718                   }
5719               <- { "return": {} }
5720
5721               2.
5722               -> { "execute": "blockdev-add",
5723                    "arguments": {
5724                         "driver": "qcow2",
5725                         "node-name": "node0",
5726                         "discard": "unmap",
5727                         "cache": {
5728                            "direct": true
5729                          },
5730                          "file": {
5731                            "driver": "file",
5732                            "filename": "/tmp/test.qcow2"
5733                          },
5734                          "backing": {
5735                             "driver": "raw",
5736                             "file": {
5737                                "driver": "file",
5738                                "filename": "/dev/fdset/4"
5739                              }
5740                          }
5741                      }
5742                    }
5743
5744               <- { "return": {} }
5745
5746       x-blockdev-reopen  (Command) Reopens a block device using the given set
5747       of options. Any option not specified will be reset to its default value
5748       regardless of its previous status. If an option cannot be changed or a
5749       particular driver does not support reopening then the command will
5750       return an error.
5751
5752       The top-level "node-name" option (from BlockdevOptions) must be
5753       specified and is used to select the block device to be reopened.  Other
5754       "node-name" options must be either omitted or set to the current name
5755       of the appropriate node. This command won't change any node name and
5756       any attempt to do it will result in an error.
5757
5758       In the case of options that refer to child nodes, the behavior of this
5759       command depends on the value:
5760
5761       1) A set of options (BlockdevOptions): the child is reopened with the
5762       specified set of options.
5763
5764       2) A reference to the current child: the child is reopened using its
5765       existing set of options.
5766
5767       3) A reference to a different node: the current child is replaced with
5768       the specified one.
5769
5770       4) NULL: the current child (if any) is detached.
5771
5772       Options (1) and (2) are supported in all cases, but at the moment only
5773       "backing" allows replacing or detaching an existing child.
5774
5775       Unlike with blockdev-add, the "backing" option must always be present
5776       unless the node being reopened does not have a backing file and its
5777       image does not have a default backing file name as part of its
5778       metadata.
5779
5780       Arguments: the members of "BlockdevOptions"
5781
5782       Since: 4.0
5783
5784       blockdev-del  (Command) Deletes a block device that has been added
5785       using blockdev-add.  The command will fail if the node is attached to a
5786       device or is otherwise being used.
5787
5788       Arguments:
5789
5790       "node-name: string"
5791           Name of the graph node to delete.
5792
5793       Since: 2.9
5794
5795       Example:
5796
5797               -> { "execute": "blockdev-add",
5798                    "arguments": {
5799                         "driver": "qcow2",
5800                         "node-name": "node0",
5801                         "file": {
5802                             "driver": "file",
5803                             "filename": "test.qcow2"
5804                         }
5805                    }
5806                  }
5807               <- { "return": {} }
5808
5809               -> { "execute": "blockdev-del",
5810                    "arguments": { "node-name": "node0" }
5811                  }
5812               <- { "return": {} }
5813
5814       BlockdevCreateOptionsFile (Object)
5815
5816       Driver specific image creation options for file.
5817
5818       "filename"         Filename for the new image file "size"
5819       Size of the virtual disk in bytes "preallocation"    Preallocation mode
5820       for the new image (default: off; allowed values: off, falloc (if
5821       defined CONFIG_POSIX_FALLOCATE), full (if defined CONFIG_POSIX))
5822       "nocow"            Turn off copy-on-write (valid only on btrfs;
5823       default: off)
5824
5825       Members:
5826
5827       "filename: string"
5828           Not documented
5829
5830       "size: int"
5831           Not documented
5832
5833       "preallocation: PreallocMode" (optional)
5834           Not documented
5835
5836       "nocow: boolean" (optional)
5837           Not documented
5838
5839       Since: 2.12
5840
5841       BlockdevCreateOptionsGluster (Object)
5842
5843       Driver specific image creation options for gluster.
5844
5845       "location"         Where to store the new image file "size"
5846       Size of the virtual disk in bytes "preallocation"    Preallocation mode
5847       for the new image (default: off; allowed values: off, falloc (if
5848       defined CONFIG_GLUSTERFS_FALLOCATE), full (if defined
5849       CONFIG_GLUSTERFS_ZEROFILL))
5850
5851       Members:
5852
5853       "location: BlockdevOptionsGluster"
5854           Not documented
5855
5856       "size: int"
5857           Not documented
5858
5859       "preallocation: PreallocMode" (optional)
5860           Not documented
5861
5862       Since: 2.12
5863
5864       BlockdevCreateOptionsLUKS (Object)
5865
5866       Driver specific image creation options for LUKS.
5867
5868       "file"             Node to create the image format on "size"
5869       Size of the virtual disk in bytes "preallocation"    Preallocation mode
5870       for the new image (since: 4.2) (default: off; allowed values: off,
5871       metadata, falloc, full)
5872
5873       Members:
5874
5875       "file: BlockdevRef"
5876           Not documented
5877
5878       "size: int"
5879           Not documented
5880
5881       "preallocation: PreallocMode" (optional)
5882           Not documented
5883
5884       The members of "QCryptoBlockCreateOptionsLUKS"
5885
5886       Since: 2.12
5887
5888       BlockdevCreateOptionsNfs (Object)
5889
5890       Driver specific image creation options for NFS.
5891
5892       "location"         Where to store the new image file "size"
5893       Size of the virtual disk in bytes
5894
5895       Members:
5896
5897       "location: BlockdevOptionsNfs"
5898           Not documented
5899
5900       "size: int"
5901           Not documented
5902
5903       Since: 2.12
5904
5905       BlockdevCreateOptionsParallels (Object)
5906
5907       Driver specific image creation options for parallels.
5908
5909       "file"             Node to create the image format on "size"
5910       Size of the virtual disk in bytes "cluster-size"     Cluster size in
5911       bytes (default: 1 MB)
5912
5913       Members:
5914
5915       "file: BlockdevRef"
5916           Not documented
5917
5918       "size: int"
5919           Not documented
5920
5921       "cluster-size: int" (optional)
5922           Not documented
5923
5924       Since: 2.12
5925
5926       BlockdevCreateOptionsQcow (Object)
5927
5928       Driver specific image creation options for qcow.
5929
5930       "file"             Node to create the image format on "size"
5931       Size of the virtual disk in bytes "backing-file"     File name of the
5932       backing file if a backing file should be used "encrypt"
5933       Encryption options if the image should be encrypted
5934
5935       Members:
5936
5937       "file: BlockdevRef"
5938           Not documented
5939
5940       "size: int"
5941           Not documented
5942
5943       "backing-file: string" (optional)
5944           Not documented
5945
5946       "encrypt: QCryptoBlockCreateOptions" (optional)
5947           Not documented
5948
5949       Since: 2.12
5950
5951       BlockdevQcow2Version (Enum)
5952
5953       Values:
5954
5955       "v2"
5956           The original QCOW2 format as introduced in qemu 0.10 (version 2)
5957
5958       "v3"
5959           The extended QCOW2 format as introduced in qemu 1.1 (version 3)
5960
5961       Since: 2.12
5962
5963       BlockdevCreateOptionsQcow2 (Object)
5964
5965       Driver specific image creation options for qcow2.
5966
5967       "file"             Node to create the image format on "data-file"
5968       Node to use as an external data file in which all guest data is stored
5969       so that only metadata remains in the qcow2 file (since: 4.0)
5970       "data-file-raw"    True if the external data file must stay valid as a
5971       standalone (read-only) raw image without looking at qcow2 metadata
5972       (default: false; since: 4.0) "size"             Size of the virtual
5973       disk in bytes "version"          Compatibility level (default: v3)
5974       "backing-file"     File name of the backing file if a backing file
5975       should be used "backing-fmt"      Name of the block driver to use for
5976       the backing file "encrypt"          Encryption options if the image
5977       should be encrypted "cluster-size"     qcow2 cluster size in bytes
5978       (default: 65536) "preallocation"    Preallocation mode for the new
5979       image (default: off; allowed values: off, falloc, full, metadata)
5980       "lazy-refcounts"   True if refcounts may be updated lazily (default:
5981       off) "refcount-bits"    Width of reference counts in bits (default: 16)
5982
5983       Members:
5984
5985       "file: BlockdevRef"
5986           Not documented
5987
5988       "data-file: BlockdevRef" (optional)
5989           Not documented
5990
5991       "data-file-raw: boolean" (optional)
5992           Not documented
5993
5994       "size: int"
5995           Not documented
5996
5997       "version: BlockdevQcow2Version" (optional)
5998           Not documented
5999
6000       "backing-file: string" (optional)
6001           Not documented
6002
6003       "backing-fmt: BlockdevDriver" (optional)
6004           Not documented
6005
6006       "encrypt: QCryptoBlockCreateOptions" (optional)
6007           Not documented
6008
6009       "cluster-size: int" (optional)
6010           Not documented
6011
6012       "preallocation: PreallocMode" (optional)
6013           Not documented
6014
6015       "lazy-refcounts: boolean" (optional)
6016           Not documented
6017
6018       "refcount-bits: int" (optional)
6019           Not documented
6020
6021       Since: 2.12
6022
6023       BlockdevCreateOptionsQed (Object)
6024
6025       Driver specific image creation options for qed.
6026
6027       "file"             Node to create the image format on "size"
6028       Size of the virtual disk in bytes "backing-file"     File name of the
6029       backing file if a backing file should be used "backing-fmt"      Name
6030       of the block driver to use for the backing file "cluster-size"
6031       Cluster size in bytes (default: 65536) "table-size"       L1/L2 table
6032       size (in clusters)
6033
6034       Members:
6035
6036       "file: BlockdevRef"
6037           Not documented
6038
6039       "size: int"
6040           Not documented
6041
6042       "backing-file: string" (optional)
6043           Not documented
6044
6045       "backing-fmt: BlockdevDriver" (optional)
6046           Not documented
6047
6048       "cluster-size: int" (optional)
6049           Not documented
6050
6051       "table-size: int" (optional)
6052           Not documented
6053
6054       Since: 2.12
6055
6056       BlockdevCreateOptionsRbd (Object)
6057
6058       Driver specific image creation options for rbd/Ceph.
6059
6060       "location"         Where to store the new image file. This location
6061       cannot point to a snapshot.  "size"             Size of the virtual
6062       disk in bytes "cluster-size"     RBD object size
6063
6064       Members:
6065
6066       "location: BlockdevOptionsRbd"
6067           Not documented
6068
6069       "size: int"
6070           Not documented
6071
6072       "cluster-size: int" (optional)
6073           Not documented
6074
6075       Since: 2.12
6076
6077       BlockdevVmdkSubformat (Enum)
6078
6079       Subformat options for VMDK images
6080
6081       Values:
6082
6083       "monolithicSparse"
6084           Single file image with sparse cluster allocation
6085
6086       "monolithicFlat"
6087           Single flat data image and a descriptor file
6088
6089       "twoGbMaxExtentSparse"
6090           Data is split into 2GB (per virtual LBA) sparse extent files, in
6091           addition to a descriptor file
6092
6093       "twoGbMaxExtentFlat"
6094           Data is split into 2GB (per virtual LBA) flat extent files, in
6095           addition to a descriptor file
6096
6097       "streamOptimized"
6098           Single file image sparse cluster allocation, optimized for
6099           streaming over network.
6100
6101       Since: 4.0
6102
6103       BlockdevVmdkAdapterType (Enum)
6104
6105       Adapter type info for VMDK images
6106
6107       Values:
6108
6109       "ide"
6110           Not documented
6111
6112       "buslogic"
6113           Not documented
6114
6115       "lsilogic"
6116           Not documented
6117
6118       "legacyESX"
6119           Not documented
6120
6121       Since: 4.0
6122
6123       BlockdevCreateOptionsVmdk (Object)
6124
6125       Driver specific image creation options for VMDK.
6126
6127       "file"         Where to store the new image file. This refers to the
6128       image file for monolithcSparse and streamOptimized format, or the
6129       descriptor file for other formats.  "size"         Size of the virtual
6130       disk in bytes "extents"      Where to store the data extents. Required
6131       for monolithcFlat, twoGbMaxExtentSparse and twoGbMaxExtentFlat formats.
6132       For monolithicFlat, only one entry is required; for twoGbMaxExtent*
6133       formats, the number of entries required is calculated as extent_number
6134       = virtual_size / 2GB. Providing more extents than will be used is an
6135       error.  "subformat"    The subformat of the VMDK image. Default:
6136       "monolithicSparse".  "backing-file" The path of backing file. Default:
6137       no backing file is used.  "adapter-type" The adapter type used to fill
6138       in the descriptor. Default: ide.  "hwversion"    Hardware version. The
6139       meaningful options are "4" or "6".  Default: "4".  "zeroed-grain"
6140       Whether to enable zeroed-grain feature for sparse subformats.  Default:
6141       false.
6142
6143       Members:
6144
6145       "file: BlockdevRef"
6146           Not documented
6147
6148       "size: int"
6149           Not documented
6150
6151       "extents: array of BlockdevRef" (optional)
6152           Not documented
6153
6154       "subformat: BlockdevVmdkSubformat" (optional)
6155           Not documented
6156
6157       "backing-file: string" (optional)
6158           Not documented
6159
6160       "adapter-type: BlockdevVmdkAdapterType" (optional)
6161           Not documented
6162
6163       "hwversion: string" (optional)
6164           Not documented
6165
6166       "zeroed-grain: boolean" (optional)
6167           Not documented
6168
6169       Since: 4.0
6170
6171       SheepdogRedundancyType (Enum)
6172
6173       "full"             Create a fully replicated vdi with x copies
6174       "erasure-coded"    Create an erasure coded vdi with x data strips and y
6175       parity strips
6176
6177       Values:
6178
6179       "full"
6180           Not documented
6181
6182       "erasure-coded"
6183           Not documented
6184
6185       Since: 2.12
6186
6187       SheepdogRedundancyFull (Object)
6188
6189       "copies"           Number of copies to use (between 1 and 31)
6190
6191       Members:
6192
6193       "copies: int"
6194           Not documented
6195
6196       Since: 2.12
6197
6198       SheepdogRedundancyErasureCoded (Object)
6199
6200       "data-strips"      Number of data strips to use (one of {2,4,8,16})
6201       "parity-strips"    Number of parity strips to use (between 1 and 15)
6202
6203       Members:
6204
6205       "data-strips: int"
6206           Not documented
6207
6208       "parity-strips: int"
6209           Not documented
6210
6211       Since: 2.12
6212
6213       SheepdogRedundancy (Object)
6214
6215       Members:
6216
6217       "type: SheepdogRedundancyType"
6218           Not documented
6219
6220       The members of "SheepdogRedundancyFull" when "type" is "full"
6221       The members of "SheepdogRedundancyErasureCoded" when "type" is
6222       "erasure-coded"
6223
6224       Since: 2.12
6225
6226       BlockdevCreateOptionsSheepdog (Object)
6227
6228       Driver specific image creation options for Sheepdog.
6229
6230       "location"         Where to store the new image file "size"
6231       Size of the virtual disk in bytes "backing-file"     File name of a
6232       base image "preallocation"    Preallocation mode for the new image
6233       (default: off; allowed values: off, full) "redundancy"       Redundancy
6234       of the image "object-size"      Object size of the image
6235
6236       Members:
6237
6238       "location: BlockdevOptionsSheepdog"
6239           Not documented
6240
6241       "size: int"
6242           Not documented
6243
6244       "backing-file: string" (optional)
6245           Not documented
6246
6247       "preallocation: PreallocMode" (optional)
6248           Not documented
6249
6250       "redundancy: SheepdogRedundancy" (optional)
6251           Not documented
6252
6253       "object-size: int" (optional)
6254           Not documented
6255
6256       Since: 2.12
6257
6258       BlockdevCreateOptionsSsh (Object)
6259
6260       Driver specific image creation options for SSH.
6261
6262       "location"         Where to store the new image file "size"
6263       Size of the virtual disk in bytes
6264
6265       Members:
6266
6267       "location: BlockdevOptionsSsh"
6268           Not documented
6269
6270       "size: int"
6271           Not documented
6272
6273       Since: 2.12
6274
6275       BlockdevCreateOptionsVdi (Object)
6276
6277       Driver specific image creation options for VDI.
6278
6279       "file"             Node to create the image format on "size"
6280       Size of the virtual disk in bytes "preallocation"    Preallocation mode
6281       for the new image (default: off; allowed values: off, metadata)
6282
6283       Members:
6284
6285       "file: BlockdevRef"
6286           Not documented
6287
6288       "size: int"
6289           Not documented
6290
6291       "preallocation: PreallocMode" (optional)
6292           Not documented
6293
6294       Since: 2.12
6295
6296       BlockdevVhdxSubformat (Enum)
6297
6298       Values:
6299
6300       "dynamic"
6301           Growing image file
6302
6303       "fixed"
6304           Preallocated fixed-size image file
6305
6306       Since: 2.12
6307
6308       BlockdevCreateOptionsVhdx (Object)
6309
6310       Driver specific image creation options for vhdx.
6311
6312       "file"             Node to create the image format on "size"
6313       Size of the virtual disk in bytes "log-size"         Log size in bytes,
6314       must be a multiple of 1 MB (default: 1 MB) "block-size"       Block
6315       size in bytes, must be a multiple of 1 MB and not larger than 256 MB
6316       (default: automatically choose a block size depending on the image
6317       size) "subformat"        vhdx subformat (default: dynamic)
6318       "block-state-zero" Force use of payload blocks of type 'ZERO'. Non-
6319       standard, but default.  Do not set to 'off' when using 'qemu-img
6320       convert' with subformat=dynamic.
6321
6322       Members:
6323
6324       "file: BlockdevRef"
6325           Not documented
6326
6327       "size: int"
6328           Not documented
6329
6330       "log-size: int" (optional)
6331           Not documented
6332
6333       "block-size: int" (optional)
6334           Not documented
6335
6336       "subformat: BlockdevVhdxSubformat" (optional)
6337           Not documented
6338
6339       "block-state-zero: boolean" (optional)
6340           Not documented
6341
6342       Since: 2.12
6343
6344       BlockdevVpcSubformat (Enum)
6345
6346       Values:
6347
6348       "dynamic"
6349           Growing image file
6350
6351       "fixed"
6352           Preallocated fixed-size image file
6353
6354       Since: 2.12
6355
6356       BlockdevCreateOptionsVpc (Object)
6357
6358       Driver specific image creation options for vpc (VHD).
6359
6360       "file"             Node to create the image format on "size"
6361       Size of the virtual disk in bytes "subformat"        vhdx subformat
6362       (default: dynamic) "force-size"       Force use of the exact byte size
6363       instead of rounding to the next size that can be represented in CHS
6364       geometry (default: false)
6365
6366       Members:
6367
6368       "file: BlockdevRef"
6369           Not documented
6370
6371       "size: int"
6372           Not documented
6373
6374       "subformat: BlockdevVpcSubformat" (optional)
6375           Not documented
6376
6377       "force-size: boolean" (optional)
6378           Not documented
6379
6380       Since: 2.12
6381
6382       BlockdevCreateOptions (Object)
6383
6384       Options for creating an image format on a given node.
6385
6386       "driver"           block driver to create the image format
6387
6388       Members:
6389
6390       "driver: BlockdevDriver"
6391           Not documented
6392
6393       The members of "BlockdevCreateOptionsFile" when "driver" is "file"
6394       The members of "BlockdevCreateOptionsGluster" when "driver" is
6395       "gluster"
6396       The members of "BlockdevCreateOptionsLUKS" when "driver" is "luks"
6397       The members of "BlockdevCreateOptionsNfs" when "driver" is "nfs"
6398       The members of "BlockdevCreateOptionsParallels" when "driver" is
6399       "parallels"
6400       The members of "BlockdevCreateOptionsQcow" when "driver" is "qcow"
6401       The members of "BlockdevCreateOptionsQcow2" when "driver" is "qcow2"
6402       The members of "BlockdevCreateOptionsQed" when "driver" is "qed"
6403       The members of "BlockdevCreateOptionsRbd" when "driver" is "rbd"
6404       The members of "BlockdevCreateOptionsSheepdog" when "driver" is
6405       "sheepdog"
6406       The members of "BlockdevCreateOptionsSsh" when "driver" is "ssh"
6407       The members of "BlockdevCreateOptionsVdi" when "driver" is "vdi"
6408       The members of "BlockdevCreateOptionsVhdx" when "driver" is "vhdx"
6409       The members of "BlockdevCreateOptionsVmdk" when "driver" is "vmdk"
6410       The members of "BlockdevCreateOptionsVpc" when "driver" is "vpc"
6411
6412       Since: 2.12
6413
6414       blockdev-create  (Command) Starts a job to create an image format on a
6415       given node. The job is automatically finalized, but a manual job-
6416       dismiss is required.
6417
6418       Arguments:
6419
6420       "job-id: string"
6421           Identifier for the newly created job.
6422
6423       "options: BlockdevCreateOptions"
6424           Options for the image creation.
6425
6426       Since: 3.0
6427
6428       blockdev-open-tray  (Command) Opens a block device's tray. If there is
6429       a block driver state tree inserted as a medium, it will become
6430       inaccessible to the guest (but it will remain associated to the block
6431       device, so closing the tray will make it accessible again).
6432
6433       If the tray was already open before, this will be a no-op.
6434
6435       Once the tray opens, a DEVICE_TRAY_MOVED event is emitted. There are
6436       cases in which no such event will be generated, these include:
6437
6438       -   if the guest has locked the tray, "force" is false and the guest
6439           does not respond to the eject request
6440
6441       -   if the BlockBackend denoted by "device" does not have a guest
6442           device attached to it
6443
6444       -   if the guest device does not have an actual tray
6445
6446       Arguments:
6447
6448       "device: string" (optional)
6449           Block device name (deprecated, use "id" instead)
6450
6451       "id: string" (optional)
6452           The name or QOM path of the guest device (since: 2.8)
6453
6454       "force: boolean" (optional)
6455           if false (the default), an eject request will be sent to the guest
6456           if it has locked the tray (and the tray will not be opened
6457           immediately); if true, the tray will be opened regardless of
6458           whether it is locked
6459
6460       Since: 2.5
6461
6462       Example:
6463
6464               -> { "execute": "blockdev-open-tray",
6465                    "arguments": { "id": "ide0-1-0" } }
6466
6467               <- { "timestamp": { "seconds": 1418751016,
6468                                   "microseconds": 716996 },
6469                    "event": "DEVICE_TRAY_MOVED",
6470                    "data": { "device": "ide1-cd0",
6471                              "id": "ide0-1-0",
6472                              "tray-open": true } }
6473
6474               <- { "return": {} }
6475
6476       blockdev-close-tray  (Command) Closes a block device's tray. If there
6477       is a block driver state tree associated with the block device (which is
6478       currently ejected), that tree will be loaded as the medium.
6479
6480       If the tray was already closed before, this will be a no-op.
6481
6482       Arguments:
6483
6484       "device: string" (optional)
6485           Block device name (deprecated, use "id" instead)
6486
6487       "id: string" (optional)
6488           The name or QOM path of the guest device (since: 2.8)
6489
6490       Since: 2.5
6491
6492       Example:
6493
6494               -> { "execute": "blockdev-close-tray",
6495                    "arguments": { "id": "ide0-1-0" } }
6496
6497               <- { "timestamp": { "seconds": 1418751345,
6498                                   "microseconds": 272147 },
6499                    "event": "DEVICE_TRAY_MOVED",
6500                    "data": { "device": "ide1-cd0",
6501                              "id": "ide0-1-0",
6502                              "tray-open": false } }
6503
6504               <- { "return": {} }
6505
6506       blockdev-remove-medium  (Command) Removes a medium (a block driver
6507       state tree) from a block device. That block device's tray must
6508       currently be open (unless there is no attached guest device).
6509
6510       If the tray is open and there is no medium inserted, this will be a no-
6511       op.
6512
6513       Arguments:
6514
6515       "id: string"
6516           The name or QOM path of the guest device
6517
6518       Since: 2.12
6519
6520       Example:
6521
6522               -> { "execute": "blockdev-remove-medium",
6523                    "arguments": { "id": "ide0-1-0" } }
6524
6525               <- { "error": { "class": "GenericError",
6526                               "desc": "Tray of device 'ide0-1-0' is not open" } }
6527
6528               -> { "execute": "blockdev-open-tray",
6529                    "arguments": { "id": "ide0-1-0" } }
6530
6531               <- { "timestamp": { "seconds": 1418751627,
6532                                   "microseconds": 549958 },
6533                    "event": "DEVICE_TRAY_MOVED",
6534                    "data": { "device": "ide1-cd0",
6535                              "id": "ide0-1-0",
6536                              "tray-open": true } }
6537
6538               <- { "return": {} }
6539
6540               -> { "execute": "blockdev-remove-medium",
6541                    "arguments": { "id": "ide0-1-0" } }
6542
6543               <- { "return": {} }
6544
6545       blockdev-insert-medium  (Command) Inserts a medium (a block driver
6546       state tree) into a block device. That block device's tray must
6547       currently be open (unless there is no attached guest device) and there
6548       must be no medium inserted already.
6549
6550       Arguments:
6551
6552       "id: string"
6553           The name or QOM path of the guest device
6554
6555       "node-name: string"
6556           name of a node in the block driver state graph
6557
6558       Since: 2.12
6559
6560       Example:
6561
6562               -> { "execute": "blockdev-add",
6563                    "arguments": {
6564                        "node-name": "node0",
6565                        "driver": "raw",
6566                        "file": { "driver": "file",
6567                                  "filename": "fedora.iso" } } }
6568               <- { "return": {} }
6569
6570               -> { "execute": "blockdev-insert-medium",
6571                    "arguments": { "id": "ide0-1-0",
6572                                   "node-name": "node0" } }
6573
6574               <- { "return": {} }
6575
6576       BlockdevChangeReadOnlyMode (Enum)
6577
6578       Specifies the new read-only mode of a block device subject to the
6579       "blockdev-change-medium" command.
6580
6581       Values:
6582
6583       "retain"
6584           Retains the current read-only mode
6585
6586       "read-only"
6587           Makes the device read-only
6588
6589       "read-write"
6590           Makes the device writable
6591
6592       Since: 2.3
6593
6594       blockdev-change-medium  (Command) Changes the medium inserted into a
6595       block device by ejecting the current medium and loading a new image
6596       file which is inserted as the new medium (this command combines
6597       blockdev-open-tray, blockdev-remove-medium, blockdev-insert-medium and
6598       blockdev-close-tray).
6599
6600       Arguments:
6601
6602       "device: string" (optional)
6603           Block device name (deprecated, use "id" instead)
6604
6605       "id: string" (optional)
6606           The name or QOM path of the guest device (since: 2.8)
6607
6608       "filename: string"
6609           filename of the new image to be loaded
6610
6611       "format: string" (optional)
6612           format to open the new image with (defaults to the probed format)
6613
6614       "read-only-mode: BlockdevChangeReadOnlyMode" (optional)
6615           change the read-only mode of the device; defaults to 'retain'
6616
6617       Since: 2.5
6618
6619       Examples:
6620
6621               1. Change a removable medium
6622
6623               -> { "execute": "blockdev-change-medium",
6624                    "arguments": { "id": "ide0-1-0",
6625                                   "filename": "/srv/images/Fedora-12-x86_64-DVD.iso",
6626                                   "format": "raw" } }
6627               <- { "return": {} }
6628
6629               2. Load a read-only medium into a writable drive
6630
6631               -> { "execute": "blockdev-change-medium",
6632                    "arguments": { "id": "floppyA",
6633                                   "filename": "/srv/images/ro.img",
6634                                   "format": "raw",
6635                                   "read-only-mode": "retain" } }
6636
6637               <- { "error":
6638                    { "class": "GenericError",
6639                      "desc": "Could not open '/srv/images/ro.img': Permission denied" } }
6640
6641               -> { "execute": "blockdev-change-medium",
6642                    "arguments": { "id": "floppyA",
6643                                   "filename": "/srv/images/ro.img",
6644                                   "format": "raw",
6645                                   "read-only-mode": "read-only" } }
6646
6647               <- { "return": {} }
6648
6649       BlockErrorAction (Enum)
6650
6651       An enumeration of action that has been taken when a DISK I/O occurs
6652
6653       Values:
6654
6655       "ignore"
6656           error has been ignored
6657
6658       "report"
6659           error has been reported to the device
6660
6661       "stop"
6662           error caused VM to be stopped
6663
6664       Since: 2.1
6665
6666       BLOCK_IMAGE_CORRUPTED  (Event) Emitted when a disk image is being
6667       marked corrupt. The image can be identified by its device or node name.
6668       The 'device' field is always present for compatibility reasons, but it
6669       can be empty ("") if the image does not have a device name associated.
6670
6671       Arguments:
6672
6673       "device: string"
6674           device name. This is always present for compatibility reasons, but
6675           it can be empty ("") if the image does not have a device name
6676           associated.
6677
6678       "node-name: string" (optional)
6679           node name (Since: 2.4)
6680
6681       "msg: string"
6682           informative message for human consumption, such as the kind of
6683           corruption being detected. It should not be parsed by machine as it
6684           is not guaranteed to be stable
6685
6686       "offset: int" (optional)
6687           if the corruption resulted from an image access, this is the host's
6688           access offset into the image
6689
6690       "size: int" (optional)
6691           if the corruption resulted from an image access, this is the access
6692           size
6693
6694       "fatal: boolean"
6695           if set, the image is marked corrupt and therefore unusable after
6696           this event and must be repaired (Since 2.2; before, every
6697           BLOCK_IMAGE_CORRUPTED event was fatal)
6698
6699       Note: If action is "stop", a STOP event will eventually follow the
6700       BLOCK_IO_ERROR event.
6701
6702       Example:
6703
6704               <- { "event": "BLOCK_IMAGE_CORRUPTED",
6705                    "data": { "device": "ide0-hd0", "node-name": "node0",
6706                              "msg": "Prevented active L1 table overwrite", "offset": 196608,
6707                              "size": 65536 },
6708                    "timestamp": { "seconds": 1378126126, "microseconds": 966463 } }
6709
6710       Since: 1.7
6711
6712       BLOCK_IO_ERROR  (Event) Emitted when a disk I/O error occurs
6713
6714       Arguments:
6715
6716       "device: string"
6717           device name. This is always present for compatibility reasons, but
6718           it can be empty ("") if the image does not have a device name
6719           associated.
6720
6721       "node-name: string" (optional)
6722           node name. Note that errors may be reported for the root node that
6723           is directly attached to a guest device rather than for the node
6724           where the error occurred. The node name is not present if the drive
6725           is empty. (Since: 2.8)
6726
6727       "operation: IoOperationType"
6728           I/O operation
6729
6730       "action: BlockErrorAction"
6731           action that has been taken
6732
6733       "nospace: boolean" (optional)
6734           true if I/O error was caused due to a no-space condition. This key
6735           is only present if query-block's io-status is present, please see
6736           query-block documentation for more information (since: 2.2)
6737
6738       "reason: string"
6739           human readable string describing the error cause.  (This field is a
6740           debugging aid for humans, it should not be parsed by applications)
6741           (since: 2.2)
6742
6743       Note: If action is "stop", a STOP event will eventually follow the
6744       BLOCK_IO_ERROR event
6745
6746       Since: 0.13.0
6747
6748       Example:
6749
6750               <- { "event": "BLOCK_IO_ERROR",
6751                    "data": { "device": "ide0-hd1",
6752                              "node-name": "#block212",
6753                              "operation": "write",
6754                              "action": "stop" },
6755                    "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
6756
6757       BLOCK_JOB_COMPLETED  (Event) Emitted when a block job has completed
6758
6759       Arguments:
6760
6761       "type: JobType"
6762           job type
6763
6764       "device: string"
6765           The job identifier. Originally the device name but other values are
6766           allowed since QEMU 2.7
6767
6768       "len: int"
6769           maximum progress value
6770
6771       "offset: int"
6772           current progress value. On success this is equal to len.  On
6773           failure this is less than len
6774
6775       "speed: int"
6776           rate limit, bytes per second
6777
6778       "error: string" (optional)
6779           error message. Only present on failure. This field contains a
6780           human-readable error message. There are no semantics other than
6781           that streaming has failed and clients should not try to interpret
6782           the error string
6783
6784       Since: 1.1
6785
6786       Example:
6787
6788               <- { "event": "BLOCK_JOB_COMPLETED",
6789                    "data": { "type": "stream", "device": "virtio-disk0",
6790                              "len": 10737418240, "offset": 10737418240,
6791                              "speed": 0 },
6792                    "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
6793
6794       BLOCK_JOB_CANCELLED  (Event) Emitted when a block job has been
6795       cancelled
6796
6797       Arguments:
6798
6799       "type: JobType"
6800           job type
6801
6802       "device: string"
6803           The job identifier. Originally the device name but other values are
6804           allowed since QEMU 2.7
6805
6806       "len: int"
6807           maximum progress value
6808
6809       "offset: int"
6810           current progress value. On success this is equal to len.  On
6811           failure this is less than len
6812
6813       "speed: int"
6814           rate limit, bytes per second
6815
6816       Since: 1.1
6817
6818       Example:
6819
6820               <- { "event": "BLOCK_JOB_CANCELLED",
6821                    "data": { "type": "stream", "device": "virtio-disk0",
6822                              "len": 10737418240, "offset": 134217728,
6823                              "speed": 0 },
6824                    "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
6825
6826       BLOCK_JOB_ERROR  (Event) Emitted when a block job encounters an error
6827
6828       Arguments:
6829
6830       "device: string"
6831           The job identifier. Originally the device name but other values are
6832           allowed since QEMU 2.7
6833
6834       "operation: IoOperationType"
6835           I/O operation
6836
6837       "action: BlockErrorAction"
6838           action that has been taken
6839
6840       Since: 1.3
6841
6842       Example:
6843
6844               <- { "event": "BLOCK_JOB_ERROR",
6845                    "data": { "device": "ide0-hd1",
6846                              "operation": "write",
6847                              "action": "stop" },
6848                    "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
6849
6850       BLOCK_JOB_READY  (Event) Emitted when a block job is ready to complete
6851
6852       Arguments:
6853
6854       "type: JobType"
6855           job type
6856
6857       "device: string"
6858           The job identifier. Originally the device name but other values are
6859           allowed since QEMU 2.7
6860
6861       "len: int"
6862           maximum progress value
6863
6864       "offset: int"
6865           current progress value. On success this is equal to len.  On
6866           failure this is less than len
6867
6868       "speed: int"
6869           rate limit, bytes per second
6870
6871       Note: The "ready to complete" status is always reset by a
6872       "BLOCK_JOB_ERROR" event
6873
6874       Since: 1.3
6875
6876       Example:
6877
6878               <- { "event": "BLOCK_JOB_READY",
6879                    "data": { "device": "drive0", "type": "mirror", "speed": 0,
6880                              "len": 2097152, "offset": 2097152 }
6881                    "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
6882
6883       BLOCK_JOB_PENDING  (Event) Emitted when a block job is awaiting
6884       explicit authorization to finalize graph changes via
6885       "block-job-finalize". If this job is part of a transaction, it will not
6886       emit this event until the transaction has converged first.
6887
6888       Arguments:
6889
6890       "type: JobType"
6891           job type
6892
6893       "id: string"
6894           The job identifier.
6895
6896       Since: 2.12
6897
6898       Example:
6899
6900               <- { "event": "BLOCK_JOB_WAITING",
6901                    "data": { "device": "drive0", "type": "mirror" },
6902                    "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
6903
6904       PreallocMode (Enum)
6905
6906       Preallocation mode of QEMU image file
6907
6908       Values:
6909
6910       "off"
6911           no preallocation
6912
6913       "metadata"
6914           preallocate only for metadata
6915
6916       "falloc"
6917           like "full" preallocation but allocate disk space by
6918           posix_fallocate() rather than writing data.
6919
6920       "full"
6921           preallocate all data by writing it to the device to ensure disk
6922           space is really available. This data may or may not be zero,
6923           depending on the image format and storage.  "full" preallocation
6924           also sets up metadata correctly.
6925
6926       Since: 2.2
6927
6928       BLOCK_WRITE_THRESHOLD  (Event) Emitted when writes on block device
6929       reaches or exceeds the configured write threshold. For thin-provisioned
6930       devices, this means the device should be extended to avoid pausing for
6931       disk exhaustion.  The event is one shot. Once triggered, it needs to be
6932       re-registered with another block-set-write-threshold command.
6933
6934       Arguments:
6935
6936       "node-name: string"
6937           graph node name on which the threshold was exceeded.
6938
6939       "amount-exceeded: int"
6940           amount of data which exceeded the threshold, in bytes.
6941
6942       "write-threshold: int"
6943           last configured threshold, in bytes.
6944
6945       Since: 2.3
6946
6947       block-set-write-threshold  (Command) Change the write threshold for a
6948       block drive. An event will be delivered if a write to this block drive
6949       crosses the configured threshold.  The threshold is an offset, thus
6950       must be non-negative. Default is no write threshold. Setting the
6951       threshold to zero disables it.
6952
6953       This is useful to transparently resize thin-provisioned drives without
6954       the guest OS noticing.
6955
6956       Arguments:
6957
6958       "node-name: string"
6959           graph node name on which the threshold must be set.
6960
6961       "write-threshold: int"
6962           configured threshold for the block device, bytes.  Use 0 to disable
6963           the threshold.
6964
6965       Since: 2.3
6966
6967       Example:
6968
6969               -> { "execute": "block-set-write-threshold",
6970                    "arguments": { "node-name": "mydev",
6971                                   "write-threshold": 17179869184 } }
6972               <- { "return": {} }
6973
6974       x-blockdev-change  (Command) Dynamically reconfigure the block driver
6975       state graph. It can be used to add, remove, insert or replace a graph
6976       node. Currently only the Quorum driver implements this feature to add
6977       or remove its child. This is useful to fix a broken quorum child.
6978
6979       If "node" is specified, it will be inserted under "parent". "child" may
6980       not be specified in this case. If both "parent" and "child" are
6981       specified but "node" is not, "child" will be detached from "parent".
6982
6983       Arguments:
6984
6985       "parent: string"
6986           the id or name of the parent node.
6987
6988       "child: string" (optional)
6989           the name of a child under the given parent node.
6990
6991       "node: string" (optional)
6992           the name of the node that will be added.
6993
6994       Note: this command is experimental, and its API is not stable. It does
6995       not support all kinds of operations, all kinds of children, nor all
6996       block drivers.
6997
6998       FIXME Removing children from a quorum node means introducing gaps in
6999       the child indices. This cannot be represented in the 'children' list of
7000       BlockdevOptionsQuorum, as returned by .bdrv_refresh_filename().
7001
7002       Warning: The data in a new quorum child MUST be consistent with that of
7003       the rest of the array.
7004
7005       Since: 2.7
7006
7007       Example:
7008
7009               1. Add a new node to a quorum
7010               -> { "execute": "blockdev-add",
7011                    "arguments": {
7012                        "driver": "raw",
7013                        "node-name": "new_node",
7014                        "file": { "driver": "file",
7015                                  "filename": "test.raw" } } }
7016               <- { "return": {} }
7017               -> { "execute": "x-blockdev-change",
7018                    "arguments": { "parent": "disk1",
7019                                   "node": "new_node" } }
7020               <- { "return": {} }
7021
7022               2. Delete a quorum's node
7023               -> { "execute": "x-blockdev-change",
7024                    "arguments": { "parent": "disk1",
7025                                   "child": "children.1" } }
7026               <- { "return": {} }
7027
7028       x-blockdev-set-iothread  (Command) Move "node" and its children into
7029       the "iothread".  If "iothread" is null then move "node" and its
7030       children into the main loop.
7031
7032       The node must not be attached to a BlockBackend.
7033
7034       Arguments:
7035
7036       "node-name: string"
7037           the name of the block driver node
7038
7039       "iothread: StrOrNull"
7040           the name of the IOThread object or null for the main loop
7041
7042       "force: boolean" (optional)
7043           true if the node and its children should be moved when a
7044           BlockBackend is already attached
7045
7046       Note: this command is experimental and intended for test cases that
7047       need control over IOThreads only.
7048
7049       Since: 2.12
7050
7051       Example:
7052
7053               1. Move a node into an IOThread
7054               -> { "execute": "x-blockdev-set-iothread",
7055                    "arguments": { "node-name": "disk1",
7056                                   "iothread": "iothread0" } }
7057               <- { "return": {} }
7058
7059               2. Move a node into the main loop
7060               -> { "execute": "x-blockdev-set-iothread",
7061                    "arguments": { "node-name": "disk1",
7062                                   "iothread": null } }
7063               <- { "return": {} }
7064
7065       Additional block stuff (VM related)
7066
7067       BiosAtaTranslation (Enum)
7068
7069       Policy that BIOS should use to interpret cylinder/head/sector
7070       addresses.  Note that Bochs BIOS and SeaBIOS will not actually
7071       translate logical CHS to physical; instead, they will use logical block
7072       addressing.
7073
7074       Values:
7075
7076       "auto"
7077           If cylinder/heads/sizes are passed, choose between none and LBA
7078           depending on the size of the disk.  If they are not passed, choose
7079           none if QEMU can guess that the disk had 16 or fewer heads, large
7080           if QEMU can guess that the disk had 131072 or fewer tracks across
7081           all heads (i.e. cylinders*heads<131072), otherwise LBA.
7082
7083       "none"
7084           The physical disk geometry is equal to the logical geometry.
7085
7086       "lba"
7087           Assume 63 sectors per track and one of 16, 32, 64, 128 or 255 heads
7088           (if fewer than 255 are enough to cover the whole disk with 1024
7089           cylinders/head).  The number of cylinders/head is then computed
7090           based on the number of sectors and heads.
7091
7092       "large"
7093           The number of cylinders per head is scaled down to 1024 by
7094           correspondingly scaling up the number of heads.
7095
7096       "rechs"
7097           Same as "large", but first convert a 16-head geometry to 15-head,
7098           by proportionally scaling up the number of cylinders/head.
7099
7100       Since: 2.0
7101
7102       FloppyDriveType (Enum)
7103
7104       Type of Floppy drive to be emulated by the Floppy Disk Controller.
7105
7106       Values:
7107
7108       144 1.44MB 3.5" drive
7109
7110       288 2.88MB 3.5" drive
7111
7112       120 1.2MB 5.25" drive
7113
7114       "none"
7115           No drive connected
7116
7117       "auto"
7118           Automatically determined by inserted media at boot
7119
7120       Since: 2.6
7121
7122       BlockdevSnapshotInternal (Object)
7123
7124       Members:
7125
7126       "device: string"
7127           the device name or node-name of a root node to generate the
7128           snapshot from
7129
7130       "name: string"
7131           the name of the internal snapshot to be created
7132
7133       Notes: In transaction, if "name" is empty, or any snapshot matching
7134       "name" exists, the operation will fail. Only some image formats support
7135       it, for example, qcow2, rbd, and sheepdog.
7136
7137       Since: 1.7
7138
7139       PRManagerInfo (Object)
7140
7141       Information about a persistent reservation manager
7142
7143       Members:
7144
7145       "id: string"
7146           the identifier of the persistent reservation manager
7147
7148       "connected: boolean"
7149           true if the persistent reservation manager is connected to the
7150           underlying storage or helper
7151
7152       Since: 3.0
7153
7154       query-pr-managers  (Command) Returns a list of information about each
7155       persistent reservation manager.
7156
7157       Returns: a list of "PRManagerInfo" for each persistent reservation
7158       manager
7159
7160       Since: 3.0
7161
7162       blockdev-snapshot-internal-sync  (Command) Synchronously take an
7163       internal snapshot of a block device, when the format of the image used
7164       supports it. If the name is an empty string, or a snapshot with name
7165       already exists, the operation will fail.
7166
7167       For the arguments, see the documentation of BlockdevSnapshotInternal.
7168
7169       Returns: nothing on success
7170
7171       If "device" is not a valid block device, GenericError
7172
7173       If any snapshot matching "name" exists, or "name" is empty,
7174       GenericError
7175
7176       If the format of the image used does not support it,
7177       BlockFormatFeatureNotSupported
7178
7179       Since: 1.7
7180
7181       Example:
7182
7183               -> { "execute": "blockdev-snapshot-internal-sync",
7184                    "arguments": { "device": "ide-hd0",
7185                                   "name": "snapshot0" }
7186                  }
7187               <- { "return": {} }
7188
7189       blockdev-snapshot-delete-internal-sync  (Command) Synchronously delete
7190       an internal snapshot of a block device, when the format of the image
7191       used support it. The snapshot is identified by name or id or both. One
7192       of the name or id is required. Return SnapshotInfo for the successfully
7193       deleted snapshot.
7194
7195       Arguments:
7196
7197       "device: string"
7198           the device name or node-name of a root node to delete the snapshot
7199           from
7200
7201       "id: string" (optional)
7202           optional the snapshot's ID to be deleted
7203
7204       "name: string" (optional)
7205           optional the snapshot's name to be deleted
7206
7207       Returns: SnapshotInfo on success If "device" is not a valid block
7208       device, GenericError If snapshot not found, GenericError If the format
7209       of the image used does not support it, BlockFormatFeatureNotSupported
7210       If "id" and "name" are both not specified, GenericError
7211
7212       Since: 1.7
7213
7214       Example:
7215
7216               -> { "execute": "blockdev-snapshot-delete-internal-sync",
7217                    "arguments": { "device": "ide-hd0",
7218                                   "name": "snapshot0" }
7219                  }
7220               <- { "return": {
7221                                  "id": "1",
7222                                  "name": "snapshot0",
7223                                  "vm-state-size": 0,
7224                                  "date-sec": 1000012,
7225                                  "date-nsec": 10,
7226                                  "vm-clock-sec": 100,
7227                                  "vm-clock-nsec": 20
7228                    }
7229                  }
7230
7231       eject  (Command) Ejects a device from a removable drive.
7232
7233       Arguments:
7234
7235       "device: string" (optional)
7236           Block device name (deprecated, use "id" instead)
7237
7238       "id: string" (optional)
7239           The name or QOM path of the guest device (since: 2.8)
7240
7241       "force: boolean" (optional)
7242           If true, eject regardless of whether the drive is locked.  If not
7243           specified, the default value is false.
7244
7245       Returns: Nothing on success
7246
7247       If "device" is not a valid block device, DeviceNotFound
7248
7249       Notes: Ejecting a device with no media results in success
7250
7251       Since: 0.14.0
7252
7253       Example:
7254
7255               -> { "execute": "eject", "arguments": { "id": "ide1-0-1" } }
7256               <- { "return": {} }
7257
7258       nbd-server-start  (Command) Start an NBD server listening on the given
7259       host and port.  Block devices can then be exported using
7260       "nbd-server-add".  The NBD server will present them as named exports;
7261       for example, another QEMU instance could refer to them as
7262       "nbd:HOST:PORT:exportname=NAME".
7263
7264       Arguments:
7265
7266       "addr: SocketAddressLegacy"
7267           Address on which to listen.
7268
7269       "tls-creds: string" (optional)
7270           ID of the TLS credentials object (since 2.6).
7271
7272       "tls-authz: string" (optional)
7273           ID of the QAuthZ authorization object used to validate the client's
7274           x509 distinguished name. This object is is only resolved at time of
7275           use, so can be deleted and recreated on the fly while the NBD
7276           server is active.  If missing, it will default to denying access
7277           (since 4.0).
7278
7279       Returns: error if the server is already running.
7280
7281       Since: 1.3.0
7282
7283       nbd-server-add  (Command) Export a block node to QEMU's embedded NBD
7284       server.
7285
7286       Arguments:
7287
7288       "device: string"
7289           The device name or node name of the node to be exported
7290
7291       "name: string" (optional)
7292           Export name. If unspecified, the "device" parameter is used as the
7293           export name. (Since 2.12)
7294
7295       "writable: boolean" (optional)
7296           Whether clients should be able to write to the device via the NBD
7297           connection (default false).
7298
7299       "bitmap: string" (optional)
7300           Also export the dirty bitmap reachable from "device", so the NBD
7301           client can use NBD_OPT_SET_META_CONTEXT with
7302           "qemu:dirty-bitmap:NAME" to inspect the bitmap. (since 4.0)
7303
7304       Returns: error if the server is not running, or export with the same
7305       name already exists.
7306
7307       Since: 1.3.0
7308
7309       NbdServerRemoveMode (Enum)
7310
7311       Mode for removing an NBD export.
7312
7313       Values:
7314
7315       "safe"
7316           Remove export if there are no existing connections, fail otherwise.
7317
7318       "hard"
7319           Drop all connections immediately and remove export.
7320
7321       Potential additional modes to be added in the future:
7322
7323       hide: Just hide export from new clients, leave existing connections as
7324       is.  Remove export after all clients are disconnected.
7325
7326       soft: Hide export from new clients, answer with ESHUTDOWN for all
7327       further requests from existing clients.
7328
7329       Since: 2.12
7330
7331       nbd-server-remove  (Command) Remove NBD export by name.
7332
7333       Arguments:
7334
7335       "name: string"
7336           Export name.
7337
7338       "mode: NbdServerRemoveMode" (optional)
7339           Mode of command operation. See "NbdServerRemoveMode" description.
7340           Default is 'safe'.
7341
7342       Returns: error if
7343
7344       -   the server is not running
7345
7346       -   export is not found
7347
7348       -   mode is 'safe' and there are existing connections
7349
7350       Since: 2.12
7351
7352       nbd-server-stop  (Command) Stop QEMU's embedded NBD server, and
7353       unregister all devices previously added via "nbd-server-add".
7354
7355       Since: 1.3.0
7356
7357       DEVICE_TRAY_MOVED  (Event) Emitted whenever the tray of a removable
7358       device is moved by the guest or by HMP/QMP commands
7359
7360       Arguments:
7361
7362       "device: string"
7363           Block device name. This is always present for compatibility
7364           reasons, but it can be empty ("") if the image does not have a
7365           device name associated.
7366
7367       "id: string"
7368           The name or QOM path of the guest device (since 2.8)
7369
7370       "tray-open: boolean"
7371           true if the tray has been opened or false if it has been closed
7372
7373       Since: 1.1
7374
7375       Example:
7376
7377               <- { "event": "DEVICE_TRAY_MOVED",
7378                    "data": { "device": "ide1-cd0",
7379                              "id": "/machine/unattached/device[22]",
7380                              "tray-open": true
7381                    },
7382                    "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
7383
7384       PR_MANAGER_STATUS_CHANGED  (Event) Emitted whenever the connected
7385       status of a persistent reservation manager changes.
7386
7387       Arguments:
7388
7389       "id: string"
7390           The id of the PR manager object
7391
7392       "connected: boolean"
7393           true if the PR manager is connected to a backend
7394
7395       Since: 3.0
7396
7397       Example:
7398
7399               <- { "event": "PR_MANAGER_STATUS_CHANGED",
7400                    "data": { "id": "pr-helper0",
7401                              "connected": true
7402                    },
7403                    "timestamp": { "seconds": 1519840375, "microseconds": 450486 } }
7404
7405       QuorumOpType (Enum)
7406
7407       An enumeration of the quorum operation types
7408
7409       Values:
7410
7411       "read"
7412           read operation
7413
7414       "write"
7415           write operation
7416
7417       "flush"
7418           flush operation
7419
7420       Since: 2.6
7421
7422       QUORUM_FAILURE  (Event) Emitted by the Quorum block driver if it fails
7423       to establish a quorum
7424
7425       Arguments:
7426
7427       "reference: string"
7428           device name if defined else node name
7429
7430       "sector-num: int"
7431           number of the first sector of the failed read operation
7432
7433       "sectors-count: int"
7434           failed read operation sector count
7435
7436       Note: This event is rate-limited.
7437
7438       Since: 2.0
7439
7440       Example:
7441
7442               <- { "event": "QUORUM_FAILURE",
7443                    "data": { "reference": "usr1", "sector-num": 345435, "sectors-count": 5 },
7444                    "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
7445
7446       QUORUM_REPORT_BAD  (Event) Emitted to report a corruption of a Quorum
7447       file
7448
7449       Arguments:
7450
7451       "type: QuorumOpType"
7452           quorum operation type (Since 2.6)
7453
7454       "error: string" (optional)
7455           error message. Only present on failure. This field contains a
7456           human-readable error message. There are no semantics other than
7457           that the block layer reported an error and clients should not try
7458           to interpret the error string.
7459
7460       "node-name: string"
7461           the graph node name of the block driver state
7462
7463       "sector-num: int"
7464           number of the first sector of the failed read operation
7465
7466       "sectors-count: int"
7467           failed read operation sector count
7468
7469       Note: This event is rate-limited.
7470
7471       Since: 2.0
7472
7473       Example:
7474
7475               1. Read operation
7476
7477               { "event": "QUORUM_REPORT_BAD",
7478                    "data": { "node-name": "node0", "sector-num": 345435, "sectors-count": 5,
7479                              "type": "read" },
7480                    "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
7481
7482               2. Flush operation
7483
7484               { "event": "QUORUM_REPORT_BAD",
7485                    "data": { "node-name": "node0", "sector-num": 0, "sectors-count": 2097120,
7486                              "type": "flush", "error": "Broken pipe" },
7487                    "timestamp": { "seconds": 1456406829, "microseconds": 291763 } }
7488
7489   Character devices
7490       ChardevInfo (Object)
7491
7492       Information about a character device.
7493
7494       Members:
7495
7496       "label: string"
7497           the label of the character device
7498
7499       "filename: string"
7500           the filename of the character device
7501
7502       "frontend-open: boolean"
7503           shows whether the frontend device attached to this backend (eg.
7504           with the chardev=... option) is in open or closed state (since 2.1)
7505
7506       Notes: "filename" is encoded using the QEMU command line character
7507       device encoding.  See the QEMU man page for details.
7508
7509       Since: 0.14.0
7510
7511       query-chardev  (Command) Returns information about current character
7512       devices.
7513
7514       Returns: a list of "ChardevInfo"
7515
7516       Since: 0.14.0
7517
7518       Example:
7519
7520               -> { "execute": "query-chardev" }
7521               <- {
7522                     "return": [
7523                        {
7524                           "label": "charchannel0",
7525                           "filename": "unix:/var/lib/libvirt/qemu/seabios.rhel6.agent,server",
7526                           "frontend-open": false
7527                        },
7528                        {
7529                           "label": "charmonitor",
7530                           "filename": "unix:/var/lib/libvirt/qemu/seabios.rhel6.monitor,server",
7531                           "frontend-open": true
7532                        },
7533                        {
7534                           "label": "charserial0",
7535                           "filename": "pty:/dev/pts/2",
7536                           "frontend-open": true
7537                        }
7538                     ]
7539                  }
7540
7541       ChardevBackendInfo (Object)
7542
7543       Information about a character device backend
7544
7545       Members:
7546
7547       "name: string"
7548           The backend name
7549
7550       Since: 2.0
7551
7552       query-chardev-backends  (Command) Returns information about character
7553       device backends.
7554
7555       Returns: a list of "ChardevBackendInfo"
7556
7557       Since: 2.0
7558
7559       Example:
7560
7561               -> { "execute": "query-chardev-backends" }
7562               <- {
7563                     "return":[
7564                        {
7565                           "name":"udp"
7566                        },
7567                        {
7568                           "name":"tcp"
7569                        },
7570                        {
7571                           "name":"unix"
7572                        },
7573                        {
7574                           "name":"spiceport"
7575                        }
7576                     ]
7577                  }
7578
7579       DataFormat (Enum)
7580
7581       An enumeration of data format.
7582
7583       Values:
7584
7585       "utf8"
7586           Data is a UTF-8 string (RFC 3629)
7587
7588       "base64"
7589           Data is Base64 encoded binary (RFC 3548)
7590
7591       Since: 1.4
7592
7593       ringbuf-write  (Command) Write to a ring buffer character device.
7594
7595       Arguments:
7596
7597       "device: string"
7598           the ring buffer character device name
7599
7600       "data: string"
7601           data to write
7602
7603       "format: DataFormat" (optional)
7604           data encoding (default 'utf8').
7605
7606           -   base64: data must be base64 encoded text.  Its binary decoding
7607               gets written.
7608
7609           -   utf8: data's UTF-8 encoding is written
7610
7611           -   data itself is always Unicode regardless of format, like any
7612               other string.
7613
7614       Returns: Nothing on success
7615
7616       Since: 1.4
7617
7618       Example:
7619
7620               -> { "execute": "ringbuf-write",
7621                    "arguments": { "device": "foo",
7622                                   "data": "abcdefgh",
7623                                   "format": "utf8" } }
7624               <- { "return": {} }
7625
7626       ringbuf-read  (Command) Read from a ring buffer character device.
7627
7628       Arguments:
7629
7630       "device: string"
7631           the ring buffer character device name
7632
7633       "size: int"
7634           how many bytes to read at most
7635
7636       "format: DataFormat" (optional)
7637           data encoding (default 'utf8').
7638
7639           -   base64: the data read is returned in base64 encoding.
7640
7641           -   utf8: the data read is interpreted as UTF-8.  Bug: can screw up
7642               when the buffer contains invalid UTF-8 sequences, NUL
7643               characters, after the ring buffer lost data, and when reading
7644               stops because the size limit is reached.
7645
7646           -   The return value is always Unicode regardless of format, like
7647               any other string.
7648
7649       Returns: data read from the device
7650
7651       Since: 1.4
7652
7653       Example:
7654
7655               -> { "execute": "ringbuf-read",
7656                    "arguments": { "device": "foo",
7657                                   "size": 1000,
7658                                   "format": "utf8" } }
7659               <- { "return": "abcdefgh" }
7660
7661       ChardevCommon (Object)
7662
7663       Configuration shared across all chardev backends
7664
7665       Members:
7666
7667       "logfile: string" (optional)
7668           The name of a logfile to save output
7669
7670       "logappend: boolean" (optional)
7671           true to append instead of truncate (default to false to truncate)
7672
7673       Since: 2.6
7674
7675       ChardevFile (Object)
7676
7677       Configuration info for file chardevs.
7678
7679       Members:
7680
7681       "in: string" (optional)
7682           The name of the input file
7683
7684       "out: string"
7685           The name of the output file
7686
7687       "append: boolean" (optional)
7688           Open the file in append mode (default false to truncate) (Since
7689           2.6)
7690
7691       The members of "ChardevCommon"
7692
7693       Since: 1.4
7694
7695       ChardevHostdev (Object)
7696
7697       Configuration info for device and pipe chardevs.
7698
7699       Members:
7700
7701       "device: string"
7702           The name of the special file for the device, i.e. /dev/ttyS0 on
7703           Unix or COM1: on Windows
7704
7705       The members of "ChardevCommon"
7706
7707       Since: 1.4
7708
7709       ChardevSocket (Object)
7710
7711       Configuration info for (stream) socket chardevs.
7712
7713       Members:
7714
7715       "addr: SocketAddressLegacy"
7716           socket address to listen on (server=true) or connect to
7717           (server=false)
7718
7719       "tls-creds: string" (optional)
7720           the ID of the TLS credentials object (since 2.6)
7721
7722       "tls-authz: string" (optional)
7723           the ID of the QAuthZ authorization object against which the
7724           client's x509 distinguished name will be validated. This object is
7725           only resolved at time of use, so can be deleted and recreated on
7726           the fly while the chardev server is active.  If missing, it will
7727           default to denying access (since 4.0)
7728
7729       "server: boolean" (optional)
7730           create server socket (default: true)
7731
7732       "wait: boolean" (optional)
7733           wait for incoming connection on server sockets (default: false).
7734
7735       "nodelay: boolean" (optional)
7736           set TCP_NODELAY socket option (default: false)
7737
7738       "telnet: boolean" (optional)
7739           enable telnet protocol on server sockets (default: false)
7740
7741       "tn3270: boolean" (optional)
7742           enable tn3270 protocol on server sockets (default: false) (Since:
7743           2.10)
7744
7745       "websocket: boolean" (optional)
7746           enable websocket protocol on server sockets (default: false)
7747           (Since: 3.1)
7748
7749       "reconnect: int" (optional)
7750           For a client socket, if a socket is disconnected, then attempt a
7751           reconnect after the given number of seconds.  Setting this to zero
7752           disables this function. (default: 0) (Since: 2.2)
7753
7754       The members of "ChardevCommon"
7755
7756       Since: 1.4
7757
7758       ChardevUdp (Object)
7759
7760       Configuration info for datagram socket chardevs.
7761
7762       Members:
7763
7764       "remote: SocketAddressLegacy"
7765           remote address
7766
7767       "local: SocketAddressLegacy" (optional)
7768           local address
7769
7770       The members of "ChardevCommon"
7771
7772       Since: 1.5
7773
7774       ChardevMux (Object)
7775
7776       Configuration info for mux chardevs.
7777
7778       Members:
7779
7780       "chardev: string"
7781           name of the base chardev.
7782
7783       The members of "ChardevCommon"
7784
7785       Since: 1.5
7786
7787       ChardevStdio (Object)
7788
7789       Configuration info for stdio chardevs.
7790
7791       Members:
7792
7793       "signal: boolean" (optional)
7794           Allow signals (such as SIGINT triggered by ^C) be delivered to
7795           qemu.  Default: true in -nographic mode, false otherwise.
7796
7797       The members of "ChardevCommon"
7798
7799       Since: 1.5
7800
7801       ChardevSpiceChannel (Object)
7802
7803       Configuration info for spice vm channel chardevs.
7804
7805       Members:
7806
7807       "type: string"
7808           kind of channel (for example vdagent).
7809
7810       The members of "ChardevCommon"
7811
7812       Since: 1.5
7813
7814       If: "defined(CONFIG_SPICE)"
7815
7816       ChardevSpicePort (Object)
7817
7818       Configuration info for spice port chardevs.
7819
7820       Members:
7821
7822       "fqdn: string"
7823           name of the channel (see docs/spice-port-fqdn.txt)
7824
7825       The members of "ChardevCommon"
7826
7827       Since: 1.5
7828
7829       If: "defined(CONFIG_SPICE)"
7830
7831       ChardevVC (Object)
7832
7833       Configuration info for virtual console chardevs.
7834
7835       Members:
7836
7837       "width: int" (optional)
7838           console width,  in pixels
7839
7840       "height: int" (optional)
7841           console height, in pixels
7842
7843       "cols: int" (optional)
7844           console width,  in chars
7845
7846       "rows: int" (optional)
7847           console height, in chars
7848
7849       The members of "ChardevCommon"
7850
7851       Since: 1.5
7852
7853       ChardevRingbuf (Object)
7854
7855       Configuration info for ring buffer chardevs.
7856
7857       Members:
7858
7859       "size: int" (optional)
7860           ring buffer size, must be power of two, default is 65536
7861
7862       The members of "ChardevCommon"
7863
7864       Since: 1.5
7865
7866       ChardevBackend (Object)
7867
7868       Configuration info for the new chardev backend.
7869
7870       Members:
7871
7872       "type"
7873           One of "file", "serial", "parallel", "pipe", "socket", "udp",
7874           "pty", "null", "mux", "msmouse", "wctablet", "braille", "testdev",
7875           "stdio", "console", "spicevmc", "spiceport", "vc", "ringbuf",
7876           "memory"
7877
7878       "data: ChardevFile" when "type" is "file"
7879       "data: ChardevHostdev" when "type" is "serial"
7880       "data: ChardevHostdev" when "type" is "parallel"
7881       "data: ChardevHostdev" when "type" is "pipe"
7882       "data: ChardevSocket" when "type" is "socket"
7883       "data: ChardevUdp" when "type" is "udp"
7884       "data: ChardevCommon" when "type" is "pty"
7885       "data: ChardevCommon" when "type" is "null"
7886       "data: ChardevMux" when "type" is "mux"
7887       "data: ChardevCommon" when "type" is "msmouse"
7888       "data: ChardevCommon" when "type" is "wctablet"
7889       "data: ChardevCommon" when "type" is "braille"
7890       "data: ChardevCommon" when "type" is "testdev"
7891       "data: ChardevStdio" when "type" is "stdio"
7892       "data: ChardevCommon" when "type" is "console"
7893       "data: ChardevSpiceChannel" when "type" is "spicevmc" (If:
7894       "defined(CONFIG_SPICE)")
7895       "data: ChardevSpicePort" when "type" is "spiceport" (If:
7896       "defined(CONFIG_SPICE)")
7897       "data: ChardevVC" when "type" is "vc"
7898       "data: ChardevRingbuf" when "type" is "ringbuf"
7899       "data: ChardevRingbuf" when "type" is "memory"
7900
7901       Since: 1.4 (testdev since 2.2, wctablet since 2.9)
7902
7903       ChardevReturn (Object)
7904
7905       Return info about the chardev backend just created.
7906
7907       Members:
7908
7909       "pty: string" (optional)
7910           name of the slave pseudoterminal device, present if and only if a
7911           chardev of type 'pty' was created
7912
7913       Since: 1.4
7914
7915       chardev-add  (Command) Add a character device backend
7916
7917       Arguments:
7918
7919       "id: string"
7920           the chardev's ID, must be unique
7921
7922       "backend: ChardevBackend"
7923           backend type and parameters
7924
7925       Returns: ChardevReturn.
7926
7927       Since: 1.4
7928
7929       Example:
7930
7931               -> { "execute" : "chardev-add",
7932                    "arguments" : { "id" : "foo",
7933                                    "backend" : { "type" : "null", "data" : {} } } }
7934               <- { "return": {} }
7935
7936               -> { "execute" : "chardev-add",
7937                    "arguments" : { "id" : "bar",
7938                                    "backend" : { "type" : "file",
7939                                                  "data" : { "out" : "/tmp/bar.log" } } } }
7940               <- { "return": {} }
7941
7942               -> { "execute" : "chardev-add",
7943                    "arguments" : { "id" : "baz",
7944                                    "backend" : { "type" : "pty", "data" : {} } } }
7945               <- { "return": { "pty" : "/dev/pty/42" } }
7946
7947       chardev-change  (Command) Change a character device backend
7948
7949       Arguments:
7950
7951       "id: string"
7952           the chardev's ID, must exist
7953
7954       "backend: ChardevBackend"
7955           new backend type and parameters
7956
7957       Returns: ChardevReturn.
7958
7959       Since: 2.10
7960
7961       Example:
7962
7963               -> { "execute" : "chardev-change",
7964                    "arguments" : { "id" : "baz",
7965                                    "backend" : { "type" : "pty", "data" : {} } } }
7966               <- { "return": { "pty" : "/dev/pty/42" } }
7967
7968               -> {"execute" : "chardev-change",
7969                   "arguments" : {
7970                       "id" : "charchannel2",
7971                       "backend" : {
7972                           "type" : "socket",
7973                           "data" : {
7974                               "addr" : {
7975                                   "type" : "unix" ,
7976                                   "data" : {
7977                                       "path" : "/tmp/charchannel2.socket"
7978                                   }
7979                                },
7980                                "server" : true,
7981                                "wait" : false }}}}
7982               <- {"return": {}}
7983
7984       chardev-remove  (Command) Remove a character device backend
7985
7986       Arguments:
7987
7988       "id: string"
7989           the chardev's ID, must exist and not be in use
7990
7991       Returns: Nothing on success
7992
7993       Since: 1.4
7994
7995       Example:
7996
7997               -> { "execute": "chardev-remove", "arguments": { "id" : "foo" } }
7998               <- { "return": {} }
7999
8000       chardev-send-break  (Command) Send a break to a character device
8001
8002       Arguments:
8003
8004       "id: string"
8005           the chardev's ID, must exist
8006
8007       Returns: Nothing on success
8008
8009       Since: 2.10
8010
8011       Example:
8012
8013               -> { "execute": "chardev-send-break", "arguments": { "id" : "foo" } }
8014               <- { "return": {} }
8015
8016       VSERPORT_CHANGE  (Event) Emitted when the guest opens or closes a
8017       virtio-serial port.
8018
8019       Arguments:
8020
8021       "id: string"
8022           device identifier of the virtio-serial port
8023
8024       "open: boolean"
8025           true if the guest has opened the virtio-serial port
8026
8027       Since: 2.1
8028
8029       Example:
8030
8031               <- { "event": "VSERPORT_CHANGE",
8032                    "data": { "id": "channel0", "open": true },
8033                    "timestamp": { "seconds": 1401385907, "microseconds": 422329 } }
8034
8035   Dump guest memory
8036       DumpGuestMemoryFormat (Enum)
8037
8038       An enumeration of guest-memory-dump's format.
8039
8040       Values:
8041
8042       "elf"
8043           elf format
8044
8045       "kdump-zlib"
8046           kdump-compressed format with zlib-compressed
8047
8048       "kdump-lzo"
8049           kdump-compressed format with lzo-compressed
8050
8051       "kdump-snappy"
8052           kdump-compressed format with snappy-compressed
8053
8054       "win-dmp"
8055           Windows full crashdump format, can be used instead of ELF
8056           converting (since 2.13)
8057
8058       Since: 2.0
8059
8060       dump-guest-memory  (Command) Dump guest's memory to vmcore. It is a
8061       synchronous operation that can take very long depending on the amount
8062       of guest memory.
8063
8064       Arguments:
8065
8066       "paging: boolean"
8067           if true, do paging to get guest's memory mapping. This allows using
8068           gdb to process the core file.
8069
8070           IMPORTANT: this option can make QEMU allocate several gigabytes of
8071           RAM. This can happen for a large guest, or a malicious guest
8072           pretending to be large.
8073
8074           Also, paging=true has the following limitations:
8075
8076           1.  The guest may be in a catastrophic state or can have corrupted
8077               memory, which cannot be trusted
8078
8079           2.  The guest can be in real-mode even if paging is enabled. For
8080               example, the guest uses ACPI to sleep, and ACPI sleep state
8081               goes in real-mode
8082
8083           3.  Currently only supported on i386 and x86_64.
8084
8085       "protocol: string"
8086           the filename or file descriptor of the vmcore. The supported
8087           protocols are:
8088
8089           1.  file: the protocol starts with "file:", and the following
8090               string is the file's path.
8091
8092           2.  fd: the protocol starts with "fd:", and the following string is
8093               the fd's name.
8094
8095       "detach: boolean" (optional)
8096           if true, QMP will return immediately rather than waiting for the
8097           dump to finish. The user can track progress using "query-dump".
8098           (since 2.6).
8099
8100       "begin: int" (optional)
8101           if specified, the starting physical address.
8102
8103       "length: int" (optional)
8104           if specified, the memory size, in bytes. If you don't want to dump
8105           all guest's memory, please specify the start "begin" and "length"
8106
8107       "format: DumpGuestMemoryFormat" (optional)
8108           if specified, the format of guest memory dump. But non-elf format
8109           is conflict with paging and filter, ie. "paging", "begin" and
8110           "length" is not allowed to be specified with non-elf "format" at
8111           the same time (since 2.0)
8112
8113       Note: All boolean arguments default to false
8114
8115       Returns: nothing on success
8116
8117       Since: 1.2
8118
8119       Example:
8120
8121               -> { "execute": "dump-guest-memory",
8122                    "arguments": { "protocol": "fd:dump" } }
8123               <- { "return": {} }
8124
8125       DumpStatus (Enum)
8126
8127       Describe the status of a long-running background guest memory dump.
8128
8129       Values:
8130
8131       "none"
8132           no dump-guest-memory has started yet.
8133
8134       "active"
8135           there is one dump running in background.
8136
8137       "completed"
8138           the last dump has finished successfully.
8139
8140       "failed"
8141           the last dump has failed.
8142
8143       Since: 2.6
8144
8145       DumpQueryResult (Object)
8146
8147       The result format for 'query-dump'.
8148
8149       Members:
8150
8151       "status: DumpStatus"
8152           enum of "DumpStatus", which shows current dump status
8153
8154       "completed: int"
8155           bytes written in latest dump (uncompressed)
8156
8157       "total: int"
8158           total bytes to be written in latest dump (uncompressed)
8159
8160       Since: 2.6
8161
8162       query-dump  (Command) Query latest dump status.
8163
8164       Returns: A "DumpStatus" object showing the dump status.
8165
8166       Since: 2.6
8167
8168       Example:
8169
8170               -> { "execute": "query-dump" }
8171               <- { "return": { "status": "active", "completed": 1024000,
8172                                "total": 2048000 } }
8173
8174       DUMP_COMPLETED  (Event) Emitted when background dump has completed
8175
8176       Arguments:
8177
8178       "result: DumpQueryResult"
8179           final dump status
8180
8181       "error: string" (optional)
8182           human-readable error string that provides hint on why dump failed.
8183           Only presents on failure. The user should not try to interpret the
8184           error string.
8185
8186       Since: 2.6
8187
8188       Example:
8189
8190               { "event": "DUMP_COMPLETED",
8191                 "data": {"result": {"total": 1090650112, "status": "completed",
8192                                     "completed": 1090650112} } }
8193
8194       DumpGuestMemoryCapability (Object)
8195
8196       A list of the available formats for dump-guest-memory
8197
8198       Members:
8199
8200       "formats: array of DumpGuestMemoryFormat"
8201           Not documented
8202
8203       Since: 2.0
8204
8205       query-dump-guest-memory-capability  (Command) Returns the available
8206       formats for dump-guest-memory
8207
8208       Returns: A "DumpGuestMemoryCapability" object listing available formats
8209       for dump-guest-memory
8210
8211       Since: 2.0
8212
8213       Example:
8214
8215               -> { "execute": "query-dump-guest-memory-capability" }
8216               <- { "return": { "formats":
8217                                ["elf", "kdump-zlib", "kdump-lzo", "kdump-snappy"] }
8218
8219   Net devices
8220       set_link  (Command) Sets the link status of a virtual network adapter.
8221
8222       Arguments:
8223
8224       "name: string"
8225           the device name of the virtual network adapter
8226
8227       "up: boolean"
8228           true to set the link status to be up
8229
8230       Returns: Nothing on success If "name" is not a valid network device,
8231       DeviceNotFound
8232
8233       Since: 0.14.0
8234
8235       Notes: Not all network adapters support setting link status.  This
8236       command will succeed even if the network adapter does not support link
8237       status notification.
8238
8239       Example:
8240
8241               -> { "execute": "set_link",
8242                    "arguments": { "name": "e1000.0", "up": false } }
8243               <- { "return": {} }
8244
8245       netdev_add  (Command) Add a network backend.
8246
8247       Arguments:
8248
8249       "type: string"
8250           the type of network backend. Possible values are listed in
8251           NetClientDriver (excluding 'none' and 'nic')
8252
8253       "id: string"
8254           the name of the new network backend
8255
8256       Additional arguments depend on the type.
8257
8258       TODO: This command effectively bypasses QAPI completely due to its
8259       "additional arguments" business.  It shouldn't have been added to the
8260       schema in this form.  It should be qapified properly, or replaced by a
8261       properly qapified command.
8262
8263       Since: 0.14.0
8264
8265       Returns: Nothing on success If "type" is not a valid network backend,
8266       DeviceNotFound
8267
8268       Example:
8269
8270               -> { "execute": "netdev_add",
8271                    "arguments": { "type": "user", "id": "netdev1",
8272                                   "dnssearch": "example.org" } }
8273               <- { "return": {} }
8274
8275       netdev_del  (Command) Remove a network backend.
8276
8277       Arguments:
8278
8279       "id: string"
8280           the name of the network backend to remove
8281
8282       Returns: Nothing on success If "id" is not a valid network backend,
8283       DeviceNotFound
8284
8285       Since: 0.14.0
8286
8287       Example:
8288
8289               -> { "execute": "netdev_del", "arguments": { "id": "netdev1" } }
8290               <- { "return": {} }
8291
8292       NetLegacyNicOptions (Object)
8293
8294       Create a new Network Interface Card.
8295
8296       Members:
8297
8298       "netdev: string" (optional)
8299           id of -netdev to connect to
8300
8301       "macaddr: string" (optional)
8302           MAC address
8303
8304       "model: string" (optional)
8305           device model (e1000, rtl8139, virtio etc.)
8306
8307       "addr: string" (optional)
8308           PCI device address
8309
8310       "vectors: int" (optional)
8311           number of MSI-x vectors, 0 to disable MSI-X
8312
8313       Since: 1.2
8314
8315       NetdevUserOptions (Object)
8316
8317       Use the user mode network stack which requires no administrator
8318       privilege to run.
8319
8320       Members:
8321
8322       "hostname: string" (optional)
8323           client hostname reported by the builtin DHCP server
8324
8325       "restrict: boolean" (optional)
8326           isolate the guest from the host
8327
8328       "ipv4: boolean" (optional)
8329           whether to support IPv4, default true for enabled (since 2.6)
8330
8331       "ipv6: boolean" (optional)
8332           whether to support IPv6, default true for enabled (since 2.6)
8333
8334       "ip: string" (optional)
8335           legacy parameter, use net= instead
8336
8337       "net: string" (optional)
8338           IP network address that the guest will see, in the form
8339           addr[/netmask] The netmask is optional, and can be either in the
8340           form a.b.c.d or as a number of valid top-most bits. Default is
8341           10.0.2.0/24.
8342
8343       "host: string" (optional)
8344           guest-visible address of the host
8345
8346       "tftp: string" (optional)
8347           root directory of the built-in TFTP server
8348
8349       "bootfile: string" (optional)
8350           BOOTP filename, for use with tftp=
8351
8352       "dhcpstart: string" (optional)
8353           the first of the 16 IPs the built-in DHCP server can assign
8354
8355       "dns: string" (optional)
8356           guest-visible address of the virtual nameserver
8357
8358       "dnssearch: array of String" (optional)
8359           list of DNS suffixes to search, passed as DHCP option to the guest
8360
8361       "domainname: string" (optional)
8362           guest-visible domain name of the virtual nameserver (since 3.0)
8363
8364       "ipv6-prefix: string" (optional)
8365           IPv6 network prefix (default is fec0::) (since 2.6). The network
8366           prefix is given in the usual hexadecimal IPv6 address notation.
8367
8368       "ipv6-prefixlen: int" (optional)
8369           IPv6 network prefix length (default is 64) (since 2.6)
8370
8371       "ipv6-host: string" (optional)
8372           guest-visible IPv6 address of the host (since 2.6)
8373
8374       "ipv6-dns: string" (optional)
8375           guest-visible IPv6 address of the virtual nameserver (since 2.6)
8376
8377       "smb: string" (optional)
8378           root directory of the built-in SMB server
8379
8380       "smbserver: string" (optional)
8381           IP address of the built-in SMB server
8382
8383       "hostfwd: array of String" (optional)
8384           redirect incoming TCP or UDP host connections to guest endpoints
8385
8386       "guestfwd: array of String" (optional)
8387           forward guest TCP connections
8388
8389       "tftp-server-name: string" (optional)
8390           RFC2132 "TFTP server name" string (Since 3.1)
8391
8392       Since: 1.2
8393
8394       NetdevTapOptions (Object)
8395
8396       Used to configure a host TAP network interface backend.
8397
8398       Members:
8399
8400       "ifname: string" (optional)
8401           interface name
8402
8403       "fd: string" (optional)
8404           file descriptor of an already opened tap
8405
8406       "fds: string" (optional)
8407           multiple file descriptors of already opened multiqueue capable tap
8408
8409       "script: string" (optional)
8410           script to initialize the interface
8411
8412       "downscript: string" (optional)
8413           script to shut down the interface
8414
8415       "br: string" (optional)
8416           bridge name (since 2.8)
8417
8418       "helper: string" (optional)
8419           command to execute to configure bridge
8420
8421       "sndbuf: int" (optional)
8422           send buffer limit. Understands [TGMKkb] suffixes.
8423
8424       "vnet_hdr: boolean" (optional)
8425           enable the IFF_VNET_HDR flag on the tap interface
8426
8427       "vhost: boolean" (optional)
8428           enable vhost-net network accelerator
8429
8430       "vhostfd: string" (optional)
8431           file descriptor of an already opened vhost net device
8432
8433       "vhostfds: string" (optional)
8434           file descriptors of multiple already opened vhost net devices
8435
8436       "vhostforce: boolean" (optional)
8437           vhost on for non-MSIX virtio guests
8438
8439       "queues: int" (optional)
8440           number of queues to be created for multiqueue capable tap
8441
8442       "poll-us: int" (optional)
8443           maximum number of microseconds that could be spent on busy polling
8444           for tap (since 2.7)
8445
8446       Since: 1.2
8447
8448       NetdevSocketOptions (Object)
8449
8450       Socket netdevs are used to establish a network connection to another
8451       QEMU virtual machine via a TCP socket.
8452
8453       Members:
8454
8455       "fd: string" (optional)
8456           file descriptor of an already opened socket
8457
8458       "listen: string" (optional)
8459           port number, and optional hostname, to listen on
8460
8461       "connect: string" (optional)
8462           port number, and optional hostname, to connect to
8463
8464       "mcast: string" (optional)
8465           UDP multicast address and port number
8466
8467       "localaddr: string" (optional)
8468           source address and port for multicast and udp packets
8469
8470       "udp: string" (optional)
8471           UDP unicast address and port number
8472
8473       Since: 1.2
8474
8475       NetdevL2TPv3Options (Object)
8476
8477       Configure an Ethernet over L2TPv3 tunnel.
8478
8479       Members:
8480
8481       "src: string"
8482           source address
8483
8484       "dst: string"
8485           destination address
8486
8487       "srcport: string" (optional)
8488           source port - mandatory for udp, optional for ip
8489
8490       "dstport: string" (optional)
8491           destination port - mandatory for udp, optional for ip
8492
8493       "ipv6: boolean" (optional)
8494           force the use of ipv6
8495
8496       "udp: boolean" (optional)
8497           use the udp version of l2tpv3 encapsulation
8498
8499       "cookie64: boolean" (optional)
8500           use 64 bit coookies
8501
8502       "counter: boolean" (optional)
8503           have sequence counter
8504
8505       "pincounter: boolean" (optional)
8506           pin sequence counter to zero - workaround for buggy implementations
8507           or networks with packet reorder
8508
8509       "txcookie: int" (optional)
8510           32 or 64 bit transmit cookie
8511
8512       "rxcookie: int" (optional)
8513           32 or 64 bit receive cookie
8514
8515       "txsession: int"
8516           32 bit transmit session
8517
8518       "rxsession: int" (optional)
8519           32 bit receive session - if not specified set to the same value as
8520           transmit
8521
8522       "offset: int" (optional)
8523           additional offset - allows the insertion of additional application-
8524           specific data before the packet payload
8525
8526       Since: 2.1
8527
8528       NetdevVdeOptions (Object)
8529
8530       Connect to a vde switch running on the host.
8531
8532       Members:
8533
8534       "sock: string" (optional)
8535           socket path
8536
8537       "port: int" (optional)
8538           port number
8539
8540       "group: string" (optional)
8541           group owner of socket
8542
8543       "mode: int" (optional)
8544           permissions for socket
8545
8546       Since: 1.2
8547
8548       NetdevBridgeOptions (Object)
8549
8550       Connect a host TAP network interface to a host bridge device.
8551
8552       Members:
8553
8554       "br: string" (optional)
8555           bridge name
8556
8557       "helper: string" (optional)
8558           command to execute to configure bridge
8559
8560       Since: 1.2
8561
8562       NetdevHubPortOptions (Object)
8563
8564       Connect two or more net clients through a software hub.
8565
8566       Members:
8567
8568       "hubid: int"
8569           hub identifier number
8570
8571       "netdev: string" (optional)
8572           used to connect hub to a netdev instead of a device (since 2.12)
8573
8574       Since: 1.2
8575
8576       NetdevNetmapOptions (Object)
8577
8578       Connect a client to a netmap-enabled NIC or to a VALE switch port
8579
8580       Members:
8581
8582       "ifname: string"
8583           Either the name of an existing network interface supported by
8584           netmap, or the name of a VALE port (created on the fly).  A VALE
8585           port name is in the form 'valeXXX:YYY', where XXX and YYY are non-
8586           negative integers. XXX identifies a switch and YYY identifies a
8587           port of the switch. VALE ports having the same XXX are therefore
8588           connected to the same switch.
8589
8590       "devname: string" (optional)
8591           path of the netmap device (default: '/dev/netmap').
8592
8593       Since: 2.0
8594
8595       NetdevVhostUserOptions (Object)
8596
8597       Vhost-user network backend
8598
8599       Members:
8600
8601       "chardev: string"
8602           name of a unix socket chardev
8603
8604       "vhostforce: boolean" (optional)
8605           vhost on for non-MSIX virtio guests (default: false).
8606
8607       "queues: int" (optional)
8608           number of queues to be created for multiqueue vhost-user (default:
8609           1) (Since 2.5)
8610
8611       Since: 2.1
8612
8613       NetClientDriver (Enum)
8614
8615       Available netdev drivers.
8616
8617       Values:
8618
8619       "none"
8620           Not documented
8621
8622       "nic"
8623           Not documented
8624
8625       "user"
8626           Not documented
8627
8628       "tap"
8629           Not documented
8630
8631       "l2tpv3"
8632           Not documented
8633
8634       "socket"
8635           Not documented
8636
8637       "vde"
8638           Not documented
8639
8640       "bridge"
8641           Not documented
8642
8643       "hubport"
8644           Not documented
8645
8646       "netmap"
8647           Not documented
8648
8649       "vhost-user"
8650           Not documented
8651
8652       Since: 2.7
8653
8654       'dump': dropped in 2.12
8655
8656       Netdev (Object)
8657
8658       Captures the configuration of a network device.
8659
8660       Members:
8661
8662       "id: string"
8663           identifier for monitor commands.
8664
8665       "type: NetClientDriver"
8666           Specify the driver used for interpreting remaining arguments.
8667
8668       The members of "NetLegacyNicOptions" when "type" is "nic"
8669       The members of "NetdevUserOptions" when "type" is "user"
8670       The members of "NetdevTapOptions" when "type" is "tap"
8671       The members of "NetdevL2TPv3Options" when "type" is "l2tpv3"
8672       The members of "NetdevSocketOptions" when "type" is "socket"
8673       The members of "NetdevVdeOptions" when "type" is "vde"
8674       The members of "NetdevBridgeOptions" when "type" is "bridge"
8675       The members of "NetdevHubPortOptions" when "type" is "hubport"
8676       The members of "NetdevNetmapOptions" when "type" is "netmap"
8677       The members of "NetdevVhostUserOptions" when "type" is "vhost-user"
8678
8679       Since: 1.2
8680
8681       'l2tpv3' - since 2.1
8682
8683       NetLegacy (Object)
8684
8685       Captures the configuration of a network device; legacy.
8686
8687       Members:
8688
8689       "id: string" (optional)
8690           identifier for monitor commands
8691
8692       "name: string" (optional)
8693           identifier for monitor commands, ignored if "id" is present
8694
8695       "opts: NetLegacyOptions"
8696           device type specific properties (legacy)
8697
8698       Since: 1.2
8699
8700       'vlan': dropped in 3.0
8701
8702       NetLegacyOptionsType (Enum)
8703
8704       Values:
8705
8706       "none"
8707           Not documented
8708
8709       "nic"
8710           Not documented
8711
8712       "user"
8713           Not documented
8714
8715       "tap"
8716           Not documented
8717
8718       "l2tpv3"
8719           Not documented
8720
8721       "socket"
8722           Not documented
8723
8724       "vde"
8725           Not documented
8726
8727       "bridge"
8728           Not documented
8729
8730       "netmap"
8731           Not documented
8732
8733       "vhost-user"
8734           Not documented
8735
8736       Since: 1.2
8737
8738       NetLegacyOptions (Object)
8739
8740       Like Netdev, but for use only by the legacy command line options
8741
8742       Members:
8743
8744       "type: NetLegacyOptionsType"
8745           Not documented
8746
8747       The members of "NetLegacyNicOptions" when "type" is "nic"
8748       The members of "NetdevUserOptions" when "type" is "user"
8749       The members of "NetdevTapOptions" when "type" is "tap"
8750       The members of "NetdevL2TPv3Options" when "type" is "l2tpv3"
8751       The members of "NetdevSocketOptions" when "type" is "socket"
8752       The members of "NetdevVdeOptions" when "type" is "vde"
8753       The members of "NetdevBridgeOptions" when "type" is "bridge"
8754       The members of "NetdevNetmapOptions" when "type" is "netmap"
8755       The members of "NetdevVhostUserOptions" when "type" is "vhost-user"
8756
8757       Since: 1.2
8758
8759       NetFilterDirection (Enum)
8760
8761       Indicates whether a netfilter is attached to a netdev's transmit queue
8762       or receive queue or both.
8763
8764       Values:
8765
8766       "all"
8767           the filter is attached both to the receive and the transmit queue
8768           of the netdev (default).
8769
8770       "rx"
8771           the filter is attached to the receive queue of the netdev, where it
8772           will receive packets sent to the netdev.
8773
8774       "tx"
8775           the filter is attached to the transmit queue of the netdev, where
8776           it will receive packets sent by the netdev.
8777
8778       Since: 2.5
8779
8780       RxState (Enum)
8781
8782       Packets receiving state
8783
8784       Values:
8785
8786       "normal"
8787           filter assigned packets according to the mac-table
8788
8789       "none"
8790           don't receive any assigned packet
8791
8792       "all"
8793           receive all assigned packets
8794
8795       Since: 1.6
8796
8797       RxFilterInfo (Object)
8798
8799       Rx-filter information for a NIC.
8800
8801       Members:
8802
8803       "name: string"
8804           net client name
8805
8806       "promiscuous: boolean"
8807           whether promiscuous mode is enabled
8808
8809       "multicast: RxState"
8810           multicast receive state
8811
8812       "unicast: RxState"
8813           unicast receive state
8814
8815       "vlan: RxState"
8816           vlan receive state (Since 2.0)
8817
8818       "broadcast-allowed: boolean"
8819           whether to receive broadcast
8820
8821       "multicast-overflow: boolean"
8822           multicast table is overflowed or not
8823
8824       "unicast-overflow: boolean"
8825           unicast table is overflowed or not
8826
8827       "main-mac: string"
8828           the main macaddr string
8829
8830       "vlan-table: array of int"
8831           a list of active vlan id
8832
8833       "unicast-table: array of string"
8834           a list of unicast macaddr string
8835
8836       "multicast-table: array of string"
8837           a list of multicast macaddr string
8838
8839       Since: 1.6
8840
8841       query-rx-filter  (Command) Return rx-filter information for all NICs
8842       (or for the given NIC).
8843
8844       Arguments:
8845
8846       "name: string" (optional)
8847           net client name
8848
8849       Returns: list of "RxFilterInfo" for all NICs (or for the given NIC).
8850       Returns an error if the given "name" doesn't exist, or given NIC
8851       doesn't support rx-filter querying, or given net client isn't a NIC.
8852
8853       Since: 1.6
8854
8855       Example:
8856
8857               -> { "execute": "query-rx-filter", "arguments": { "name": "vnet0" } }
8858               <- { "return": [
8859                       {
8860                           "promiscuous": true,
8861                           "name": "vnet0",
8862                           "main-mac": "52:54:00:12:34:56",
8863                           "unicast": "normal",
8864                           "vlan": "normal",
8865                           "vlan-table": [
8866                               4,
8867                               0
8868                           ],
8869                           "unicast-table": [
8870                           ],
8871                           "multicast": "normal",
8872                           "multicast-overflow": false,
8873                           "unicast-overflow": false,
8874                           "multicast-table": [
8875                               "01:00:5e:00:00:01",
8876                               "33:33:00:00:00:01",
8877                               "33:33:ff:12:34:56"
8878                           ],
8879                           "broadcast-allowed": false
8880                       }
8881                     ]
8882                  }
8883
8884       NIC_RX_FILTER_CHANGED  (Event) Emitted once until the 'query-rx-filter'
8885       command is executed, the first event will always be emitted
8886
8887       Arguments:
8888
8889       "name: string" (optional)
8890           net client name
8891
8892       "path: string"
8893           device path
8894
8895       Since: 1.6
8896
8897       Example:
8898
8899               <- { "event": "NIC_RX_FILTER_CHANGED",
8900                    "data": { "name": "vnet0",
8901                              "path": "/machine/peripheral/vnet0/virtio-backend" },
8902                    "timestamp": { "seconds": 1368697518, "microseconds": 326866 } }
8903                  }
8904
8905       AnnounceParameters (Object)
8906
8907       Parameters for self-announce timers
8908
8909       Members:
8910
8911       "initial: int"
8912           Initial delay (in ms) before sending the first GARP/RARP
8913           announcement
8914
8915       "max: int"
8916           Maximum delay (in ms) between GARP/RARP announcement packets
8917
8918       "rounds: int"
8919           Number of self-announcement attempts
8920
8921       "step: int"
8922           Delay increase (in ms) after each self-announcement attempt
8923
8924       "interfaces: array of string" (optional)
8925           An optional list of interface names, which restricts the
8926           announcement to the listed interfaces. (Since 4.1)
8927
8928       "id: string" (optional)
8929           A name to be used to identify an instance of announce-timers and to
8930           allow it to modified later.  Not for use as part of the migration
8931           parameters. (Since 4.1)
8932
8933       Since: 4.0
8934
8935       announce-self  (Command) Trigger generation of broadcast RARP frames to
8936       update network switches.  This can be useful when network bonds fail-
8937       over the active slave.
8938
8939       Arguments: the members of "AnnounceParameters"
8940
8941       Example:
8942
8943               -> { "execute": "announce-self",
8944                    "arguments": {
8945                        "initial": 50, "max": 550, "rounds": 10, "step": 50,
8946                        "interfaces": ["vn2", "vn3"], "id": "bob" } }
8947               <- { "return": {} }
8948
8949       Since: 4.0
8950
8951       FAILOVER_NEGOTIATED  (Event) Emitted when VIRTIO_NET_F_STANDBY was
8952       enabled during feature negotiation.  Failover primary devices which
8953       were hidden (not hotplugged when requested) before will now be
8954       hotplugged by the virtio-net standby device.
8955
8956       device-id: QEMU device id of the unplugged device
8957
8958       Arguments:
8959
8960       "device-id: string"
8961           Not documented
8962
8963       Since: 4.2
8964
8965       Example:
8966
8967               <- { "event": "FAILOVER_NEGOTIATED",
8968                    "data": "net1" }
8969
8970   RDMA device
8971       RDMA_GID_STATUS_CHANGED  (Event) Emitted when guest driver adds/deletes
8972       GID to/from device
8973
8974       Arguments:
8975
8976       "netdev: string"
8977           RoCE Network Device name
8978
8979       "gid-status: boolean"
8980           Add or delete indication
8981
8982       "subnet-prefix: int"
8983           Subnet Prefix
8984
8985       "interface-id: int"
8986           Not documented
8987
8988       "interface-id" : Interface ID
8989
8990       Since: 4.0
8991
8992       Example:
8993
8994               <- {"timestamp": {"seconds": 1541579657, "microseconds": 986760},
8995                   "event": "RDMA_GID_STATUS_CHANGED",
8996                   "data":
8997                       {"netdev": "bridge0",
8998                       "interface-id": 15880512517475447892,
8999                       "gid-status": true,
9000                       "subnet-prefix": 33022}}
9001
9002   Rocker switch device
9003       RockerSwitch (Object)
9004
9005       Rocker switch information.
9006
9007       Members:
9008
9009       "name: string"
9010           switch name
9011
9012       "id: int"
9013           switch ID
9014
9015       "ports: int"
9016           number of front-panel ports
9017
9018       Since: 2.4
9019
9020       query-rocker  (Command) Return rocker switch information.
9021
9022       Arguments:
9023
9024       "name: string"
9025           Not documented
9026
9027       Returns: "Rocker" information
9028
9029       Since: 2.4
9030
9031       Example:
9032
9033               -> { "execute": "query-rocker", "arguments": { "name": "sw1" } }
9034               <- { "return": {"name": "sw1", "ports": 2, "id": 1327446905938}}
9035
9036       RockerPortDuplex (Enum)
9037
9038       An eumeration of port duplex states.
9039
9040       Values:
9041
9042       "half"
9043           half duplex
9044
9045       "full"
9046           full duplex
9047
9048       Since: 2.4
9049
9050       RockerPortAutoneg (Enum)
9051
9052       An eumeration of port autoneg states.
9053
9054       Values:
9055
9056       "off"
9057           autoneg is off
9058
9059       "on"
9060           autoneg is on
9061
9062       Since: 2.4
9063
9064       RockerPort (Object)
9065
9066       Rocker switch port information.
9067
9068       Members:
9069
9070       "name: string"
9071           port name
9072
9073       "enabled: boolean"
9074           port is enabled for I/O
9075
9076       "link-up: boolean"
9077           physical link is UP on port
9078
9079       "speed: int"
9080           port link speed in Mbps
9081
9082       "duplex: RockerPortDuplex"
9083           port link duplex
9084
9085       "autoneg: RockerPortAutoneg"
9086           port link autoneg
9087
9088       Since: 2.4
9089
9090       query-rocker-ports  (Command) Return rocker switch port information.
9091
9092       Arguments:
9093
9094       "name: string"
9095           Not documented
9096
9097       Returns: a list of "RockerPort" information
9098
9099       Since: 2.4
9100
9101       Example:
9102
9103               -> { "execute": "query-rocker-ports", "arguments": { "name": "sw1" } }
9104               <- { "return": [ {"duplex": "full", "enabled": true, "name": "sw1.1",
9105                                 "autoneg": "off", "link-up": true, "speed": 10000},
9106                                {"duplex": "full", "enabled": true, "name": "sw1.2",
9107                                 "autoneg": "off", "link-up": true, "speed": 10000}
9108                  ]}
9109
9110       RockerOfDpaFlowKey (Object)
9111
9112       Rocker switch OF-DPA flow key
9113
9114       Members:
9115
9116       "priority: int"
9117           key priority, 0 being lowest priority
9118
9119       "tbl-id: int"
9120           flow table ID
9121
9122       "in-pport: int" (optional)
9123           physical input port
9124
9125       "tunnel-id: int" (optional)
9126           tunnel ID
9127
9128       "vlan-id: int" (optional)
9129           VLAN ID
9130
9131       "eth-type: int" (optional)
9132           Ethernet header type
9133
9134       "eth-src: string" (optional)
9135           Ethernet header source MAC address
9136
9137       "eth-dst: string" (optional)
9138           Ethernet header destination MAC address
9139
9140       "ip-proto: int" (optional)
9141           IP Header protocol field
9142
9143       "ip-tos: int" (optional)
9144           IP header TOS field
9145
9146       "ip-dst: string" (optional)
9147           IP header destination address
9148
9149       Note: optional members may or may not appear in the flow key depending
9150       if they're relevant to the flow key.
9151
9152       Since: 2.4
9153
9154       RockerOfDpaFlowMask (Object)
9155
9156       Rocker switch OF-DPA flow mask
9157
9158       Members:
9159
9160       "in-pport: int" (optional)
9161           physical input port
9162
9163       "tunnel-id: int" (optional)
9164           tunnel ID
9165
9166       "vlan-id: int" (optional)
9167           VLAN ID
9168
9169       "eth-src: string" (optional)
9170           Ethernet header source MAC address
9171
9172       "eth-dst: string" (optional)
9173           Ethernet header destination MAC address
9174
9175       "ip-proto: int" (optional)
9176           IP Header protocol field
9177
9178       "ip-tos: int" (optional)
9179           IP header TOS field
9180
9181       Note: optional members may or may not appear in the flow mask depending
9182       if they're relevant to the flow mask.
9183
9184       Since: 2.4
9185
9186       RockerOfDpaFlowAction (Object)
9187
9188       Rocker switch OF-DPA flow action
9189
9190       Members:
9191
9192       "goto-tbl: int" (optional)
9193           next table ID
9194
9195       "group-id: int" (optional)
9196           group ID
9197
9198       "tunnel-lport: int" (optional)
9199           tunnel logical port ID
9200
9201       "vlan-id: int" (optional)
9202           VLAN ID
9203
9204       "new-vlan-id: int" (optional)
9205           new VLAN ID
9206
9207       "out-pport: int" (optional)
9208           physical output port
9209
9210       Note: optional members may or may not appear in the flow action
9211       depending if they're relevant to the flow action.
9212
9213       Since: 2.4
9214
9215       RockerOfDpaFlow (Object)
9216
9217       Rocker switch OF-DPA flow
9218
9219       Members:
9220
9221       "cookie: int"
9222           flow unique cookie ID
9223
9224       "hits: int"
9225           count of matches (hits) on flow
9226
9227       "key: RockerOfDpaFlowKey"
9228           flow key
9229
9230       "mask: RockerOfDpaFlowMask"
9231           flow mask
9232
9233       "action: RockerOfDpaFlowAction"
9234           flow action
9235
9236       Since: 2.4
9237
9238       query-rocker-of-dpa-flows  (Command) Return rocker OF-DPA flow
9239       information.
9240
9241       Arguments:
9242
9243       "name: string"
9244           switch name
9245
9246       "tbl-id: int" (optional)
9247           flow table ID.  If tbl-id is not specified, returns flow
9248           information for all tables.
9249
9250       Returns: rocker OF-DPA flow information
9251
9252       Since: 2.4
9253
9254       Example:
9255
9256               -> { "execute": "query-rocker-of-dpa-flows",
9257                    "arguments": { "name": "sw1" } }
9258               <- { "return": [ {"key": {"in-pport": 0, "priority": 1, "tbl-id": 0},
9259                                 "hits": 138,
9260                                 "cookie": 0,
9261                                 "action": {"goto-tbl": 10},
9262                                 "mask": {"in-pport": 4294901760}
9263                                },
9264                                {...more...},
9265                  ]}
9266
9267       RockerOfDpaGroup (Object)
9268
9269       Rocker switch OF-DPA group
9270
9271       Members:
9272
9273       "id: int"
9274           group unique ID
9275
9276       "type: int"
9277           group type
9278
9279       "vlan-id: int" (optional)
9280           VLAN ID
9281
9282       "pport: int" (optional)
9283           physical port number
9284
9285       "index: int" (optional)
9286           group index, unique with group type
9287
9288       "out-pport: int" (optional)
9289           output physical port number
9290
9291       "group-id: int" (optional)
9292           next group ID
9293
9294       "set-vlan-id: int" (optional)
9295           VLAN ID to set
9296
9297       "pop-vlan: int" (optional)
9298           pop VLAN headr from packet
9299
9300       "group-ids: array of int" (optional)
9301           list of next group IDs
9302
9303       "set-eth-src: string" (optional)
9304           set source MAC address in Ethernet header
9305
9306       "set-eth-dst: string" (optional)
9307           set destination MAC address in Ethernet header
9308
9309       "ttl-check: int" (optional)
9310           perform TTL check
9311
9312       Note: optional members may or may not appear in the group depending if
9313       they're relevant to the group type.
9314
9315       Since: 2.4
9316
9317       query-rocker-of-dpa-groups  (Command) Return rocker OF-DPA group
9318       information.
9319
9320       Arguments:
9321
9322       "name: string"
9323           switch name
9324
9325       "type: int" (optional)
9326           group type.  If type is not specified, returns group information
9327           for all group types.
9328
9329       Returns: rocker OF-DPA group information
9330
9331       Since: 2.4
9332
9333       Example:
9334
9335               -> { "execute": "query-rocker-of-dpa-groups",
9336                    "arguments": { "name": "sw1" } }
9337               <- { "return": [ {"type": 0, "out-pport": 2,
9338                                 "pport": 2, "vlan-id": 3841,
9339                                 "pop-vlan": 1, "id": 251723778},
9340                                {"type": 0, "out-pport": 0,
9341                                 "pport": 0, "vlan-id": 3841,
9342                                 "pop-vlan": 1, "id": 251723776},
9343                                {"type": 0, "out-pport": 1,
9344                                 "pport": 1, "vlan-id": 3840,
9345                                 "pop-vlan": 1, "id": 251658241},
9346                                {"type": 0, "out-pport": 0,
9347                                 "pport": 0, "vlan-id": 3840,
9348                                 "pop-vlan": 1, "id": 251658240}
9349                  ]}
9350
9351   TPM (trusted platform module) devices
9352       TpmModel (Enum)
9353
9354       An enumeration of TPM models
9355
9356       Values:
9357
9358       "tpm-tis"
9359           TPM TIS model
9360
9361       "tpm-crb"
9362           TPM CRB model (since 2.12)
9363
9364       Since: 1.5
9365
9366       query-tpm-models  (Command) Return a list of supported TPM models
9367
9368       Returns: a list of TpmModel
9369
9370       Since: 1.5
9371
9372       Example:
9373
9374               -> { "execute": "query-tpm-models" }
9375               <- { "return": [ "tpm-tis", "tpm-crb" ] }
9376
9377       TpmType (Enum)
9378
9379       An enumeration of TPM types
9380
9381       Values:
9382
9383       "passthrough"
9384           TPM passthrough type
9385
9386       "emulator"
9387           Software Emulator TPM type Since: 2.11
9388
9389       Since: 1.5
9390
9391       query-tpm-types  (Command) Return a list of supported TPM types
9392
9393       Returns: a list of TpmType
9394
9395       Since: 1.5
9396
9397       Example:
9398
9399               -> { "execute": "query-tpm-types" }
9400               <- { "return": [ "passthrough", "emulator" ] }
9401
9402       TPMPassthroughOptions (Object)
9403
9404       Information about the TPM passthrough type
9405
9406       Members:
9407
9408       "path: string" (optional)
9409           string describing the path used for accessing the TPM device
9410
9411       "cancel-path: string" (optional)
9412           string showing the TPM's sysfs cancel file for cancellation of TPM
9413           commands while they are executing
9414
9415       Since: 1.5
9416
9417       TPMEmulatorOptions (Object)
9418
9419       Information about the TPM emulator type
9420
9421       Members:
9422
9423       "chardev: string"
9424           Name of a unix socket chardev
9425
9426       Since: 2.11
9427
9428       TpmTypeOptions (Object)
9429
9430       A union referencing different TPM backend types' configuration options
9431
9432       Members:
9433
9434       "type"
9435           'passthrough' The configuration options for the TPM passthrough
9436           type 'emulator' The configuration options for TPM emulator backend
9437           type
9438
9439       "data: TPMPassthroughOptions" when "type" is "passthrough"
9440       "data: TPMEmulatorOptions" when "type" is "emulator"
9441
9442       Since: 1.5
9443
9444       TPMInfo (Object)
9445
9446       Information about the TPM
9447
9448       Members:
9449
9450       "id: string"
9451           The Id of the TPM
9452
9453       "model: TpmModel"
9454           The TPM frontend model
9455
9456       "options: TpmTypeOptions"
9457           The TPM (backend) type configuration options
9458
9459       Since: 1.5
9460
9461       query-tpm  (Command) Return information about the TPM device
9462
9463       Returns: "TPMInfo" on success
9464
9465       Since: 1.5
9466
9467       Example:
9468
9469               -> { "execute": "query-tpm" }
9470               <- { "return":
9471                    [
9472                      { "model": "tpm-tis",
9473                        "options":
9474                          { "type": "passthrough",
9475                            "data":
9476                              { "cancel-path": "/sys/class/misc/tpm0/device/cancel",
9477                                "path": "/dev/tpm0"
9478                              }
9479                          },
9480                        "id": "tpm0"
9481                      }
9482                    ]
9483                  }
9484
9485   Remote desktop
9486       set_password  (Command) Sets the password of a remote display session.
9487
9488       Arguments:
9489
9490       "protocol: string"
9491           `vnc' to modify the VNC server password `spice' to modify the Spice
9492           server password
9493
9494       "password: string"
9495           the new password
9496
9497       "connected: string" (optional)
9498           how to handle existing clients when changing the password.  If
9499           nothing is specified, defaults to `keep' `fail' to fail the command
9500           if clients are connected `disconnect' to disconnect existing
9501           clients `keep' to maintain existing clients
9502
9503       Returns: Nothing on success If Spice is not enabled, DeviceNotFound
9504
9505       Since: 0.14.0
9506
9507       Example:
9508
9509               -> { "execute": "set_password", "arguments": { "protocol": "vnc",
9510                                                              "password": "secret" } }
9511               <- { "return": {} }
9512
9513       expire_password  (Command) Expire the password of a remote display
9514       server.
9515
9516       Arguments:
9517
9518       "protocol: string"
9519           the name of the remote display protocol `vnc' or `spice'
9520
9521       "time: string"
9522           when to expire the password.  `now' to expire the password
9523           immediately `never' to cancel password expiration `+INT' where INT
9524           is the number of seconds from now (integer) `INT' where INT is the
9525           absolute time in seconds
9526
9527       Returns: Nothing on success If "protocol" is `spice' and Spice is not
9528       active, DeviceNotFound
9529
9530       Since: 0.14.0
9531
9532       Notes: Time is relative to the server and currently there is no way to
9533       coordinate server time with client time.  It is not recommended to use
9534       the absolute time version of the "time" parameter unless you're sure
9535       you are on the same machine as the QEMU instance.
9536
9537       Example:
9538
9539               -> { "execute": "expire_password", "arguments": { "protocol": "vnc",
9540                                                                 "time": "+60" } }
9541               <- { "return": {} }
9542
9543       screendump  (Command) Write a PPM of the VGA screen to a file.
9544
9545       Arguments:
9546
9547       "filename: string"
9548           the path of a new PPM file to store the image
9549
9550       "device: string" (optional)
9551           ID of the display device that should be dumped. If this parameter
9552           is missing, the primary display will be used. (Since 2.12)
9553
9554       "head: int" (optional)
9555           head to use in case the device supports multiple heads. If this
9556           parameter is missing, head #0 will be used. Also note that the head
9557           can only be specified in conjunction with the device ID. (Since
9558           2.12)
9559
9560       Returns: Nothing on success
9561
9562       Since: 0.14.0
9563
9564       Example:
9565
9566               -> { "execute": "screendump",
9567                    "arguments": { "filename": "/tmp/image" } }
9568               <- { "return": {} }
9569
9570       Spice
9571
9572       SpiceBasicInfo (Object)
9573
9574       The basic information for SPICE network connection
9575
9576       Members:
9577
9578       "host: string"
9579           IP address
9580
9581       "port: string"
9582           port number
9583
9584       "family: NetworkAddressFamily"
9585           address family
9586
9587       Since: 2.1
9588
9589       If: "defined(CONFIG_SPICE)"
9590
9591       SpiceServerInfo (Object)
9592
9593       Information about a SPICE server
9594
9595       Members:
9596
9597       "auth: string" (optional)
9598           authentication method
9599
9600       The members of "SpiceBasicInfo"
9601
9602       Since: 2.1
9603
9604       If: "defined(CONFIG_SPICE)"
9605
9606       SpiceChannel (Object)
9607
9608       Information about a SPICE client channel.
9609
9610       Members:
9611
9612       "connection-id: int"
9613           SPICE connection id number.  All channels with the same id belong
9614           to the same SPICE session.
9615
9616       "channel-type: int"
9617           SPICE channel type number.  "1" is the main control channel, filter
9618           for this one if you want to track spice sessions only
9619
9620       "channel-id: int"
9621           SPICE channel ID number.  Usually "0", might be different when
9622           multiple channels of the same type exist, such as multiple display
9623           channels in a multihead setup
9624
9625       "tls: boolean"
9626           true if the channel is encrypted, false otherwise.
9627
9628       The members of "SpiceBasicInfo"
9629
9630       Since: 0.14.0
9631
9632       If: "defined(CONFIG_SPICE)"
9633
9634       SpiceQueryMouseMode (Enum)
9635
9636       An enumeration of Spice mouse states.
9637
9638       Values:
9639
9640       "client"
9641           Mouse cursor position is determined by the client.
9642
9643       "server"
9644           Mouse cursor position is determined by the server.
9645
9646       "unknown"
9647           No information is available about mouse mode used by the spice
9648           server.
9649
9650       Note: spice/enums.h has a SpiceMouseMode already, hence the name.
9651
9652       Since: 1.1
9653
9654       If: "defined(CONFIG_SPICE)"
9655
9656       SpiceInfo (Object)
9657
9658       Information about the SPICE session.
9659
9660       Members:
9661
9662       "enabled: boolean"
9663           true if the SPICE server is enabled, false otherwise
9664
9665       "migrated: boolean"
9666           true if the last guest migration completed and spice migration had
9667           completed as well. false otherwise. (since 1.4)
9668
9669       "host: string" (optional)
9670           The hostname the SPICE server is bound to.  This depends on the
9671           name resolution on the host and may be an IP address.
9672
9673       "port: int" (optional)
9674           The SPICE server's port number.
9675
9676       "compiled-version: string" (optional)
9677           SPICE server version.
9678
9679       "tls-port: int" (optional)
9680           The SPICE server's TLS port number.
9681
9682       "auth: string" (optional)
9683           the current authentication type used by the server 'none'  if no
9684           authentication is being used 'spice' uses SASL or direct TLS
9685           authentication, depending on command line options
9686
9687       "mouse-mode: SpiceQueryMouseMode"
9688           The mode in which the mouse cursor is displayed currently. Can be
9689           determined by the client or the server, or unknown if spice server
9690           doesn't provide this information. (since: 1.1)
9691
9692       "channels: array of SpiceChannel" (optional)
9693           a list of "SpiceChannel" for each active spice channel
9694
9695       Since: 0.14.0
9696
9697       If: "defined(CONFIG_SPICE)"
9698
9699       query-spice  (Command) Returns information about the current SPICE
9700       server
9701
9702       Returns: "SpiceInfo"
9703
9704       Since: 0.14.0
9705
9706       Example:
9707
9708               -> { "execute": "query-spice" }
9709               <- { "return": {
9710                        "enabled": true,
9711                        "auth": "spice",
9712                        "port": 5920,
9713                        "tls-port": 5921,
9714                        "host": "0.0.0.0",
9715                        "channels": [
9716                           {
9717                              "port": "54924",
9718                              "family": "ipv4",
9719                              "channel-type": 1,
9720                              "connection-id": 1804289383,
9721                              "host": "127.0.0.1",
9722                              "channel-id": 0,
9723                              "tls": true
9724                           },
9725                           {
9726                              "port": "36710",
9727                              "family": "ipv4",
9728                              "channel-type": 4,
9729                              "connection-id": 1804289383,
9730                              "host": "127.0.0.1",
9731                              "channel-id": 0,
9732                              "tls": false
9733                           },
9734                           [ ... more channels follow ... ]
9735                        ]
9736                     }
9737                  }
9738
9739       If: "defined(CONFIG_SPICE)"
9740
9741       SPICE_CONNECTED  (Event) Emitted when a SPICE client establishes a
9742       connection
9743
9744       Arguments:
9745
9746       "server: SpiceBasicInfo"
9747           server information
9748
9749       "client: SpiceBasicInfo"
9750           client information
9751
9752       Since: 0.14.0
9753
9754       Example:
9755
9756               <- { "timestamp": {"seconds": 1290688046, "microseconds": 388707},
9757                    "event": "SPICE_CONNECTED",
9758                    "data": {
9759                      "server": { "port": "5920", "family": "ipv4", "host": "127.0.0.1"},
9760                      "client": {"port": "52873", "family": "ipv4", "host": "127.0.0.1"}
9761                  }}
9762
9763       If: "defined(CONFIG_SPICE)"
9764
9765       SPICE_INITIALIZED  (Event) Emitted after initial handshake and
9766       authentication takes place (if any) and the SPICE channel is up and
9767       running
9768
9769       Arguments:
9770
9771       "server: SpiceServerInfo"
9772           server information
9773
9774       "client: SpiceChannel"
9775           client information
9776
9777       Since: 0.14.0
9778
9779       Example:
9780
9781               <- { "timestamp": {"seconds": 1290688046, "microseconds": 417172},
9782                    "event": "SPICE_INITIALIZED",
9783                    "data": {"server": {"auth": "spice", "port": "5921",
9784                                        "family": "ipv4", "host": "127.0.0.1"},
9785                             "client": {"port": "49004", "family": "ipv4", "channel-type": 3,
9786                                        "connection-id": 1804289383, "host": "127.0.0.1",
9787                                        "channel-id": 0, "tls": true}
9788                  }}
9789
9790       If: "defined(CONFIG_SPICE)"
9791
9792       SPICE_DISCONNECTED  (Event) Emitted when the SPICE connection is closed
9793
9794       Arguments:
9795
9796       "server: SpiceBasicInfo"
9797           server information
9798
9799       "client: SpiceBasicInfo"
9800           client information
9801
9802       Since: 0.14.0
9803
9804       Example:
9805
9806               <- { "timestamp": {"seconds": 1290688046, "microseconds": 388707},
9807                    "event": "SPICE_DISCONNECTED",
9808                    "data": {
9809                      "server": { "port": "5920", "family": "ipv4", "host": "127.0.0.1"},
9810                      "client": {"port": "52873", "family": "ipv4", "host": "127.0.0.1"}
9811                  }}
9812
9813       If: "defined(CONFIG_SPICE)"
9814
9815       SPICE_MIGRATE_COMPLETED  (Event) Emitted when SPICE migration has
9816       completed
9817
9818       Since: 1.3
9819
9820       Example:
9821
9822               <- { "timestamp": {"seconds": 1290688046, "microseconds": 417172},
9823                    "event": "SPICE_MIGRATE_COMPLETED" }
9824
9825       If: "defined(CONFIG_SPICE)"
9826
9827       VNC
9828
9829       VncBasicInfo (Object)
9830
9831       The basic information for vnc network connection
9832
9833       Members:
9834
9835       "host: string"
9836           IP address
9837
9838       "service: string"
9839           The service name of the vnc port. This may depend on the host
9840           system's service database so symbolic names should not be relied
9841           on.
9842
9843       "family: NetworkAddressFamily"
9844           address family
9845
9846       "websocket: boolean"
9847           true in case the socket is a websocket (since 2.3).
9848
9849       Since: 2.1
9850
9851       If: "defined(CONFIG_VNC)"
9852
9853       VncServerInfo (Object)
9854
9855       The network connection information for server
9856
9857       Members:
9858
9859       "auth: string" (optional)
9860           authentication method used for the plain (non-websocket) VNC server
9861
9862       The members of "VncBasicInfo"
9863
9864       Since: 2.1
9865
9866       If: "defined(CONFIG_VNC)"
9867
9868       VncClientInfo (Object)
9869
9870       Information about a connected VNC client.
9871
9872       Members:
9873
9874       "x509_dname: string" (optional)
9875           If x509 authentication is in use, the Distinguished Name of the
9876           client.
9877
9878       "sasl_username: string" (optional)
9879           If SASL authentication is in use, the SASL username used for
9880           authentication.
9881
9882       The members of "VncBasicInfo"
9883
9884       Since: 0.14.0
9885
9886       If: "defined(CONFIG_VNC)"
9887
9888       VncInfo (Object)
9889
9890       Information about the VNC session.
9891
9892       Members:
9893
9894       "enabled: boolean"
9895           true if the VNC server is enabled, false otherwise
9896
9897       "host: string" (optional)
9898           The hostname the VNC server is bound to.  This depends on the name
9899           resolution on the host and may be an IP address.
9900
9901       "family: NetworkAddressFamily" (optional)
9902           'ipv6' if the host is listening for IPv6 connections 'ipv4' if the
9903           host is listening for IPv4 connections 'unix' if the host is
9904           listening on a unix domain socket 'unknown' otherwise
9905
9906       "service: string" (optional)
9907           The service name of the server's port.  This may depends on the
9908           host system's service database so symbolic names should not be
9909           relied on.
9910
9911       "auth: string" (optional)
9912           the current authentication type used by the server 'none' if no
9913           authentication is being used 'vnc' if VNC authentication is being
9914           used 'vencrypt+plain' if VEncrypt is used with plain text
9915           authentication 'vencrypt+tls+none' if VEncrypt is used with TLS and
9916           no authentication 'vencrypt+tls+vnc' if VEncrypt is used with TLS
9917           and VNC authentication 'vencrypt+tls+plain' if VEncrypt is used
9918           with TLS and plain text auth 'vencrypt+x509+none' if VEncrypt is
9919           used with x509 and no auth 'vencrypt+x509+vnc' if VEncrypt is used
9920           with x509 and VNC auth 'vencrypt+x509+plain' if VEncrypt is used
9921           with x509 and plain text auth 'vencrypt+tls+sasl' if VEncrypt is
9922           used with TLS and SASL auth 'vencrypt+x509+sasl' if VEncrypt is
9923           used with x509 and SASL auth
9924
9925       "clients: array of VncClientInfo" (optional)
9926           a list of "VncClientInfo" of all currently connected clients
9927
9928       Since: 0.14.0
9929
9930       If: "defined(CONFIG_VNC)"
9931
9932       VncPrimaryAuth (Enum)
9933
9934       vnc primary authentication method.
9935
9936       Values:
9937
9938       "none"
9939           Not documented
9940
9941       "vnc"
9942           Not documented
9943
9944       "ra2"
9945           Not documented
9946
9947       "ra2ne"
9948           Not documented
9949
9950       "tight"
9951           Not documented
9952
9953       "ultra"
9954           Not documented
9955
9956       "tls"
9957           Not documented
9958
9959       "vencrypt"
9960           Not documented
9961
9962       "sasl"
9963           Not documented
9964
9965       Since: 2.3
9966
9967       If: "defined(CONFIG_VNC)"
9968
9969       VncVencryptSubAuth (Enum)
9970
9971       vnc sub authentication method with vencrypt.
9972
9973       Values:
9974
9975       "plain"
9976           Not documented
9977
9978       "tls-none"
9979           Not documented
9980
9981       "x509-none"
9982           Not documented
9983
9984       "tls-vnc"
9985           Not documented
9986
9987       "x509-vnc"
9988           Not documented
9989
9990       "tls-plain"
9991           Not documented
9992
9993       "x509-plain"
9994           Not documented
9995
9996       "tls-sasl"
9997           Not documented
9998
9999       "x509-sasl"
10000           Not documented
10001
10002       Since: 2.3
10003
10004       If: "defined(CONFIG_VNC)"
10005
10006       VncServerInfo2 (Object)
10007
10008       The network connection information for server
10009
10010       Members:
10011
10012       "auth: VncPrimaryAuth"
10013           The current authentication type used by the servers
10014
10015       "vencrypt: VncVencryptSubAuth" (optional)
10016           The vencrypt sub authentication type used by the servers, only
10017           specified in case auth == vencrypt.
10018
10019       The members of "VncBasicInfo"
10020
10021       Since: 2.9
10022
10023       If: "defined(CONFIG_VNC)"
10024
10025       VncInfo2 (Object)
10026
10027       Information about a vnc server
10028
10029       Members:
10030
10031       "id: string"
10032           vnc server name.
10033
10034       "server: array of VncServerInfo2"
10035           A list of "VncBasincInfo" describing all listening sockets.  The
10036           list can be empty (in case the vnc server is disabled).  It also
10037           may have multiple entries: normal + websocket, possibly also ipv4 +
10038           ipv6 in the future.
10039
10040       "clients: array of VncClientInfo"
10041           A list of "VncClientInfo" of all currently connected clients.  The
10042           list can be empty, for obvious reasons.
10043
10044       "auth: VncPrimaryAuth"
10045           The current authentication type used by the non-websockets servers
10046
10047       "vencrypt: VncVencryptSubAuth" (optional)
10048           The vencrypt authentication type used by the servers, only
10049           specified in case auth == vencrypt.
10050
10051       "display: string" (optional)
10052           The display device the vnc server is linked to.
10053
10054       Since: 2.3
10055
10056       If: "defined(CONFIG_VNC)"
10057
10058       query-vnc  (Command) Returns information about the current VNC server
10059
10060       Returns: "VncInfo"
10061
10062       Since: 0.14.0
10063
10064       Example:
10065
10066               -> { "execute": "query-vnc" }
10067               <- { "return": {
10068                        "enabled":true,
10069                        "host":"0.0.0.0",
10070                        "service":"50402",
10071                        "auth":"vnc",
10072                        "family":"ipv4",
10073                        "clients":[
10074                           {
10075                              "host":"127.0.0.1",
10076                              "service":"50401",
10077                              "family":"ipv4"
10078                           }
10079                        ]
10080                     }
10081                  }
10082
10083       If: "defined(CONFIG_VNC)"
10084
10085       query-vnc-servers  (Command) Returns a list of vnc servers.  The list
10086       can be empty.
10087
10088       Returns: a list of "VncInfo2"
10089
10090       Since: 2.3
10091
10092       If: "defined(CONFIG_VNC)"
10093
10094       change-vnc-password  (Command) Change the VNC server password.
10095
10096       Arguments:
10097
10098       "password: string"
10099           the new password to use with VNC authentication
10100
10101       Since: 1.1
10102
10103       Notes: An empty password in this command will set the password to the
10104       empty string.  Existing clients are unaffected by executing this
10105       command.
10106
10107       If: "defined(CONFIG_VNC)"
10108
10109       VNC_CONNECTED  (Event) Emitted when a VNC client establishes a
10110       connection
10111
10112       Arguments:
10113
10114       "server: VncServerInfo"
10115           server information
10116
10117       "client: VncBasicInfo"
10118           client information
10119
10120       Note: This event is emitted before any authentication takes place, thus
10121       the authentication ID is not provided
10122
10123       Since: 0.13.0
10124
10125       Example:
10126
10127               <- { "event": "VNC_CONNECTED",
10128                    "data": {
10129                          "server": { "auth": "sasl", "family": "ipv4",
10130                                      "service": "5901", "host": "0.0.0.0" },
10131                          "client": { "family": "ipv4", "service": "58425",
10132                                      "host": "127.0.0.1" } },
10133                    "timestamp": { "seconds": 1262976601, "microseconds": 975795 } }
10134
10135       If: "defined(CONFIG_VNC)"
10136
10137       VNC_INITIALIZED  (Event) Emitted after authentication takes place (if
10138       any) and the VNC session is made active
10139
10140       Arguments:
10141
10142       "server: VncServerInfo"
10143           server information
10144
10145       "client: VncClientInfo"
10146           client information
10147
10148       Since: 0.13.0
10149
10150       Example:
10151
10152               <-  { "event": "VNC_INITIALIZED",
10153                     "data": {
10154                          "server": { "auth": "sasl", "family": "ipv4",
10155                                      "service": "5901", "host": "0.0.0.0"},
10156                          "client": { "family": "ipv4", "service": "46089",
10157                                      "host": "127.0.0.1", "sasl_username": "luiz" } },
10158                     "timestamp": { "seconds": 1263475302, "microseconds": 150772 } }
10159
10160       If: "defined(CONFIG_VNC)"
10161
10162       VNC_DISCONNECTED  (Event) Emitted when the connection is closed
10163
10164       Arguments:
10165
10166       "server: VncServerInfo"
10167           server information
10168
10169       "client: VncClientInfo"
10170           client information
10171
10172       Since: 0.13.0
10173
10174       Example:
10175
10176               <- { "event": "VNC_DISCONNECTED",
10177                    "data": {
10178                          "server": { "auth": "sasl", "family": "ipv4",
10179                                      "service": "5901", "host": "0.0.0.0" },
10180                          "client": { "family": "ipv4", "service": "58425",
10181                                      "host": "127.0.0.1", "sasl_username": "luiz" } },
10182                    "timestamp": { "seconds": 1262976601, "microseconds": 975795 } }
10183
10184       If: "defined(CONFIG_VNC)"
10185
10186   Input
10187       MouseInfo (Object)
10188
10189       Information about a mouse device.
10190
10191       Members:
10192
10193       "name: string"
10194           the name of the mouse device
10195
10196       "index: int"
10197           the index of the mouse device
10198
10199       "current: boolean"
10200           true if this device is currently receiving mouse events
10201
10202       "absolute: boolean"
10203           true if this device supports absolute coordinates as input
10204
10205       Since: 0.14.0
10206
10207       query-mice  (Command) Returns information about each active mouse
10208       device
10209
10210       Returns: a list of "MouseInfo" for each device
10211
10212       Since: 0.14.0
10213
10214       Example:
10215
10216               -> { "execute": "query-mice" }
10217               <- { "return": [
10218                        {
10219                           "name":"QEMU Microsoft Mouse",
10220                           "index":0,
10221                           "current":false,
10222                           "absolute":false
10223                        },
10224                        {
10225                           "name":"QEMU PS/2 Mouse",
10226                           "index":1,
10227                           "current":true,
10228                           "absolute":true
10229                        }
10230                     ]
10231                  }
10232
10233       QKeyCode (Enum)
10234
10235       An enumeration of key name.
10236
10237       This is used by the "send-key" command.
10238
10239       Values:
10240
10241       "unmapped"
10242           since 2.0
10243
10244       "pause"
10245           since 2.0
10246
10247       "ro"
10248           since 2.4
10249
10250       "kp_comma"
10251           since 2.4
10252
10253       "kp_equals"
10254           since 2.6
10255
10256       "power"
10257           since 2.6
10258
10259       "hiragana"
10260           since 2.9
10261
10262       "henkan"
10263           since 2.9
10264
10265       "yen"
10266           since 2.9
10267
10268       "sleep"
10269           since 2.10
10270
10271       "wake"
10272           since 2.10
10273
10274       "audionext"
10275           since 2.10
10276
10277       "audioprev"
10278           since 2.10
10279
10280       "audiostop"
10281           since 2.10
10282
10283       "audioplay"
10284           since 2.10
10285
10286       "audiomute"
10287           since 2.10
10288
10289       "volumeup"
10290           since 2.10
10291
10292       "volumedown"
10293           since 2.10
10294
10295       "mediaselect"
10296           since 2.10
10297
10298       "mail"
10299           since 2.10
10300
10301       "calculator"
10302           since 2.10
10303
10304       "computer"
10305           since 2.10
10306
10307       "ac_home"
10308           since 2.10
10309
10310       "ac_back"
10311           since 2.10
10312
10313       "ac_forward"
10314           since 2.10
10315
10316       "ac_refresh"
10317           since 2.10
10318
10319       "ac_bookmarks"
10320           since 2.10 altgr, altgr_r: dropped in 2.10
10321
10322       "muhenkan"
10323           since 2.12
10324
10325       "katakanahiragana"
10326           since 2.12
10327
10328       "shift"
10329           Not documented
10330
10331       "shift_r"
10332           Not documented
10333
10334       "alt"
10335           Not documented
10336
10337       "alt_r"
10338           Not documented
10339
10340       "ctrl"
10341           Not documented
10342
10343       "ctrl_r"
10344           Not documented
10345
10346       "menu"
10347           Not documented
10348
10349       "esc"
10350           Not documented
10351
10352       1   Not documented
10353
10354       2   Not documented
10355
10356       3   Not documented
10357
10358       4   Not documented
10359
10360       5   Not documented
10361
10362       6   Not documented
10363
10364       7   Not documented
10365
10366       8   Not documented
10367
10368       9   Not documented
10369
10370       0   Not documented
10371
10372       "minus"
10373           Not documented
10374
10375       "equal"
10376           Not documented
10377
10378       "backspace"
10379           Not documented
10380
10381       "tab"
10382           Not documented
10383
10384       "q" Not documented
10385
10386       "w" Not documented
10387
10388       "e" Not documented
10389
10390       "r" Not documented
10391
10392       "t" Not documented
10393
10394       "y" Not documented
10395
10396       "u" Not documented
10397
10398       "i" Not documented
10399
10400       "o" Not documented
10401
10402       "p" Not documented
10403
10404       "bracket_left"
10405           Not documented
10406
10407       "bracket_right"
10408           Not documented
10409
10410       "ret"
10411           Not documented
10412
10413       "a" Not documented
10414
10415       "s" Not documented
10416
10417       "d" Not documented
10418
10419       "f" Not documented
10420
10421       "g" Not documented
10422
10423       "h" Not documented
10424
10425       "j" Not documented
10426
10427       "k" Not documented
10428
10429       "l" Not documented
10430
10431       "semicolon"
10432           Not documented
10433
10434       "apostrophe"
10435           Not documented
10436
10437       "grave_accent"
10438           Not documented
10439
10440       "backslash"
10441           Not documented
10442
10443       "z" Not documented
10444
10445       "x" Not documented
10446
10447       "c" Not documented
10448
10449       "v" Not documented
10450
10451       "b" Not documented
10452
10453       "n" Not documented
10454
10455       "m" Not documented
10456
10457       "comma"
10458           Not documented
10459
10460       "dot"
10461           Not documented
10462
10463       "slash"
10464           Not documented
10465
10466       "asterisk"
10467           Not documented
10468
10469       "spc"
10470           Not documented
10471
10472       "caps_lock"
10473           Not documented
10474
10475       "f1"
10476           Not documented
10477
10478       "f2"
10479           Not documented
10480
10481       "f3"
10482           Not documented
10483
10484       "f4"
10485           Not documented
10486
10487       "f5"
10488           Not documented
10489
10490       "f6"
10491           Not documented
10492
10493       "f7"
10494           Not documented
10495
10496       "f8"
10497           Not documented
10498
10499       "f9"
10500           Not documented
10501
10502       "f10"
10503           Not documented
10504
10505       "num_lock"
10506           Not documented
10507
10508       "scroll_lock"
10509           Not documented
10510
10511       "kp_divide"
10512           Not documented
10513
10514       "kp_multiply"
10515           Not documented
10516
10517       "kp_subtract"
10518           Not documented
10519
10520       "kp_add"
10521           Not documented
10522
10523       "kp_enter"
10524           Not documented
10525
10526       "kp_decimal"
10527           Not documented
10528
10529       "sysrq"
10530           Not documented
10531
10532       "kp_0"
10533           Not documented
10534
10535       "kp_1"
10536           Not documented
10537
10538       "kp_2"
10539           Not documented
10540
10541       "kp_3"
10542           Not documented
10543
10544       "kp_4"
10545           Not documented
10546
10547       "kp_5"
10548           Not documented
10549
10550       "kp_6"
10551           Not documented
10552
10553       "kp_7"
10554           Not documented
10555
10556       "kp_8"
10557           Not documented
10558
10559       "kp_9"
10560           Not documented
10561
10562       "less"
10563           Not documented
10564
10565       "f11"
10566           Not documented
10567
10568       "f12"
10569           Not documented
10570
10571       "print"
10572           Not documented
10573
10574       "home"
10575           Not documented
10576
10577       "pgup"
10578           Not documented
10579
10580       "pgdn"
10581           Not documented
10582
10583       "end"
10584           Not documented
10585
10586       "left"
10587           Not documented
10588
10589       "up"
10590           Not documented
10591
10592       "down"
10593           Not documented
10594
10595       "right"
10596           Not documented
10597
10598       "insert"
10599           Not documented
10600
10601       "delete"
10602           Not documented
10603
10604       "stop"
10605           Not documented
10606
10607       "again"
10608           Not documented
10609
10610       "props"
10611           Not documented
10612
10613       "undo"
10614           Not documented
10615
10616       "front"
10617           Not documented
10618
10619       "copy"
10620           Not documented
10621
10622       "open"
10623           Not documented
10624
10625       "paste"
10626           Not documented
10627
10628       "find"
10629           Not documented
10630
10631       "cut"
10632           Not documented
10633
10634       "lf"
10635           Not documented
10636
10637       "help"
10638           Not documented
10639
10640       "meta_l"
10641           Not documented
10642
10643       "meta_r"
10644           Not documented
10645
10646       "compose"
10647           Not documented
10648
10649       'sysrq' was mistakenly added to hack around the fact that the ps2
10650       driver was not generating correct scancodes sequences when 'alt+print'
10651       was pressed. This flaw is now fixed and the 'sysrq' key serves no
10652       further purpose. Any further use of 'sysrq' will be transparently
10653       changed to 'print', so they are effectively synonyms.
10654
10655       Since: 1.3.0
10656
10657       KeyValue (Object)
10658
10659       Represents a keyboard key.
10660
10661       Members:
10662
10663       "type"
10664           One of "number", "qcode"
10665
10666       "data: int" when "type" is "number"
10667       "data: QKeyCode" when "type" is "qcode"
10668
10669       Since: 1.3.0
10670
10671       send-key  (Command) Send keys to guest.
10672
10673       Arguments:
10674
10675       "keys: array of KeyValue"
10676           An array of "KeyValue" elements. All "KeyValues" in this array are
10677           simultaneously sent to the guest. A "KeyValue".number value is sent
10678           directly to the guest, while "KeyValue".qcode must be a valid
10679           "QKeyCode" value
10680
10681       "hold-time: int" (optional)
10682           time to delay key up events, milliseconds. Defaults to 100
10683
10684       Returns: Nothing on success If key is unknown or redundant,
10685       InvalidParameter
10686
10687       Since: 1.3.0
10688
10689       Example:
10690
10691               -> { "execute": "send-key",
10692                    "arguments": { "keys": [ { "type": "qcode", "data": "ctrl" },
10693                                             { "type": "qcode", "data": "alt" },
10694                                             { "type": "qcode", "data": "delete" } ] } }
10695               <- { "return": {} }
10696
10697       InputButton (Enum)
10698
10699       Button of a pointer input device (mouse, tablet).
10700
10701       Values:
10702
10703       "side"
10704           front side button of a 5-button mouse (since 2.9)
10705
10706       "extra"
10707           rear side button of a 5-button mouse (since 2.9)
10708
10709       "left"
10710           Not documented
10711
10712       "middle"
10713           Not documented
10714
10715       "right"
10716           Not documented
10717
10718       "wheel-up"
10719           Not documented
10720
10721       "wheel-down"
10722           Not documented
10723
10724       Since: 2.0
10725
10726       InputAxis (Enum)
10727
10728       Position axis of a pointer input device (mouse, tablet).
10729
10730       Values:
10731
10732       "x" Not documented
10733
10734       "y" Not documented
10735
10736       Since: 2.0
10737
10738       InputKeyEvent (Object)
10739
10740       Keyboard input event.
10741
10742       Members:
10743
10744       "key: KeyValue"
10745           Which key this event is for.
10746
10747       "down: boolean"
10748           True for key-down and false for key-up events.
10749
10750       Since: 2.0
10751
10752       InputBtnEvent (Object)
10753
10754       Pointer button input event.
10755
10756       Members:
10757
10758       "button: InputButton"
10759           Which button this event is for.
10760
10761       "down: boolean"
10762           True for key-down and false for key-up events.
10763
10764       Since: 2.0
10765
10766       InputMoveEvent (Object)
10767
10768       Pointer motion input event.
10769
10770       Members:
10771
10772       "axis: InputAxis"
10773           Which axis is referenced by "value".
10774
10775       "value: int"
10776           Pointer position.  For absolute coordinates the valid range is 0 ->
10777           0x7ffff
10778
10779       Since: 2.0
10780
10781       InputEvent (Object)
10782
10783       Input event union.
10784
10785       Members:
10786
10787       "type"
10788           the input type, one of:
10789
10790           -   'key': Input event of Keyboard
10791
10792           -   'btn': Input event of pointer buttons
10793
10794           -   'rel': Input event of relative pointer motion
10795
10796           -   'abs': Input event of absolute pointer motion
10797
10798       "data: InputKeyEvent" when "type" is "key"
10799       "data: InputBtnEvent" when "type" is "btn"
10800       "data: InputMoveEvent" when "type" is "rel"
10801       "data: InputMoveEvent" when "type" is "abs"
10802
10803       Since: 2.0
10804
10805       input-send-event  (Command) Send input event(s) to guest.
10806
10807       Arguments:
10808
10809       "device: string" (optional)
10810           display device to send event(s) to.
10811
10812       "head: int" (optional)
10813           head to send event(s) to, in case the display device supports
10814           multiple scanouts.
10815
10816       "events: array of InputEvent"
10817           List of InputEvent union.
10818
10819       Returns: Nothing on success.
10820
10821       The "device" and "head" parameters can be used to send the input event
10822       to specific input devices in case (a) multiple input devices of the
10823       same kind are added to the virtual machine and (b) you have configured
10824       input routing (see docs/multiseat.txt) for those input devices.  The
10825       parameters work exactly like the device and head properties of input
10826       devices.  If "device" is missing, only devices that have no input
10827       routing config are admissible.  If "device" is specified, both input
10828       devices with and without input routing config are admissible, but
10829       devices with input routing config take precedence.
10830
10831       Since: 2.6
10832
10833       Note: The consoles are visible in the qom tree, under
10834       /backend/console[$index]. They have a device link and head property, so
10835       it is possible to map which console belongs to which device and
10836       display.
10837
10838       Example:
10839
10840               1. Press left mouse button.
10841
10842               -> { "execute": "input-send-event",
10843                   "arguments": { "device": "video0",
10844                                  "events": [ { "type": "btn",
10845                                  "data" : { "down": true, "button": "left" } } ] } }
10846               <- { "return": {} }
10847
10848               -> { "execute": "input-send-event",
10849                   "arguments": { "device": "video0",
10850                                  "events": [ { "type": "btn",
10851                                  "data" : { "down": false, "button": "left" } } ] } }
10852               <- { "return": {} }
10853
10854               2. Press ctrl-alt-del.
10855
10856               -> { "execute": "input-send-event",
10857                    "arguments": { "events": [
10858                       { "type": "key", "data" : { "down": true,
10859                         "key": {"type": "qcode", "data": "ctrl" } } },
10860                       { "type": "key", "data" : { "down": true,
10861                         "key": {"type": "qcode", "data": "alt" } } },
10862                       { "type": "key", "data" : { "down": true,
10863                         "key": {"type": "qcode", "data": "delete" } } } ] } }
10864               <- { "return": {} }
10865
10866               3. Move mouse pointer to absolute coordinates (20000, 400).
10867
10868               -> { "execute": "input-send-event" ,
10869                 "arguments": { "events": [
10870                              { "type": "abs", "data" : { "axis": "x", "value" : 20000 } },
10871                              { "type": "abs", "data" : { "axis": "y", "value" : 400 } } ] } }
10872               <- { "return": {} }
10873
10874       GrabToggleKeys (Enum)
10875
10876       Keys to toggle input-linux between host and guest.
10877
10878       Values:
10879
10880       "ctrl-ctrl"
10881           Not documented
10882
10883       "alt-alt"
10884           Not documented
10885
10886       "shift-shift"
10887           Not documented
10888
10889       "meta-meta"
10890           Not documented
10891
10892       "scrolllock"
10893           Not documented
10894
10895       "ctrl-scrolllock"
10896           Not documented
10897
10898       Since: 4.0
10899
10900       DisplayGTK (Object)
10901
10902       GTK display options.
10903
10904       Members:
10905
10906       "grab-on-hover: boolean" (optional)
10907           Grab keyboard input on mouse hover.
10908
10909       "zoom-to-fit: boolean" (optional)
10910           Zoom guest display to fit into the host window.  When turned off
10911           the host window will be resized instead.  In case the display
10912           device can notify the guest on window resizes (virtio-gpu) this
10913           will default to "on", assuming the guest will resize the display to
10914           match the window size then.  Otherwise it defaults to "off".  Since
10915           3.1
10916
10917       Since: 2.12
10918
10919       DisplayEGLHeadless (Object)
10920
10921       EGL headless display options.
10922
10923       Members:
10924
10925       "rendernode: string" (optional)
10926           Which DRM render node should be used. Default is the first
10927           available node on the host.
10928
10929       Since: 3.1
10930
10931       DisplayGLMode (Enum)
10932
10933       Display OpenGL mode.
10934
10935       Values:
10936
10937       "off"
10938           Disable OpenGL (default).
10939
10940       "on"
10941           Use OpenGL, pick context type automatically.  Would better be named
10942           'auto' but is called 'on' for backward compatibility with bool
10943           type.
10944
10945       "core"
10946           Use OpenGL with Core (desktop) Context.
10947
10948       "es"
10949           Use OpenGL with ES (embedded systems) Context.
10950
10951       Since: 3.0
10952
10953       DisplayCurses (Object)
10954
10955       Curses display options.
10956
10957       Members:
10958
10959       "charset: string" (optional)
10960           Font charset used by guest (default: CP437).
10961
10962       Since: 4.0
10963
10964       DisplayType (Enum)
10965
10966       Display (user interface) type.
10967
10968       Values:
10969
10970       "default"
10971           The default user interface, selecting from the first available of
10972           gtk, sdl, cocoa, and vnc.
10973
10974       "none"
10975           No user interface or video output display. The guest will still see
10976           an emulated graphics card, but its output will not be displayed to
10977           the QEMU user.
10978
10979       "gtk"
10980           The GTK user interface.
10981
10982       "sdl"
10983           The SDL user interface.
10984
10985       "egl-headless"
10986           No user interface, offload GL operations to a local DRI device.
10987           Graphical display need to be paired with VNC or Spice. (Since 3.1)
10988
10989       "curses"
10990           Display video output via curses.  For graphics device models which
10991           support a text mode, QEMU can display this output using a
10992           curses/ncurses interface. Nothing is displayed when the graphics
10993           device is in graphical mode or if the graphics device does not
10994           support a text mode. Generally only the VGA device models support
10995           text mode.
10996
10997       "cocoa"
10998           The Cocoa user interface.
10999
11000       "spice-app"
11001           Set up a Spice server and run the default associated application to
11002           connect to it. The server will redirect the serial console and QEMU
11003           monitors. (Since 4.0)
11004
11005       Since: 2.12
11006
11007       DisplayOptions (Object)
11008
11009       Display (user interface) options.
11010
11011       Members:
11012
11013       "type: DisplayType"
11014           Which DisplayType qemu should use.
11015
11016       "full-screen: boolean" (optional)
11017           Start user interface in fullscreen mode (default: off).
11018
11019       "window-close: boolean" (optional)
11020           Allow to quit qemu with window close button (default: on).
11021
11022       "gl: DisplayGLMode" (optional)
11023           Enable OpenGL support (default: off).
11024
11025       The members of "DisplayGTK" when "type" is "gtk"
11026       The members of "DisplayCurses" when "type" is "curses"
11027       The members of "DisplayEGLHeadless" when "type" is "egl-headless"
11028
11029       Since: 2.12
11030
11031       query-display-options  (Command) Returns information about display
11032       configuration
11033
11034       Returns: "DisplayOptions"
11035
11036       Since: 3.1
11037
11038       QAuthZListPolicy (Enum)
11039
11040       The authorization policy result
11041
11042       Values:
11043
11044       "deny"
11045           deny access
11046
11047       "allow"
11048           allow access
11049
11050       Since: 4.0
11051
11052       QAuthZListFormat (Enum)
11053
11054       The authorization policy match format
11055
11056       Values:
11057
11058       "exact"
11059           an exact string match
11060
11061       "glob"
11062           string with ? and * shell wildcard support
11063
11064       Since: 4.0
11065
11066       QAuthZListRule (Object)
11067
11068       A single authorization rule.
11069
11070       Members:
11071
11072       "match: string"
11073           a string or glob to match against a user identity
11074
11075       "policy: QAuthZListPolicy"
11076           the result to return if "match" evaluates to true
11077
11078       "format: QAuthZListFormat" (optional)
11079           the format of the "match" rule (default 'exact')
11080
11081       Since: 4.0
11082
11083       QAuthZListRuleListHack (Object)
11084
11085       Not exposed via QMP; hack to generate QAuthZListRuleList for use
11086       internally by the code.
11087
11088       Members:
11089
11090       "unused: array of QAuthZListRule"
11091           Not documented
11092
11093       Since: 4.0
11094
11095   Migration
11096       MigrationStats (Object)
11097
11098       Detailed migration status.
11099
11100       Members:
11101
11102       "transferred: int"
11103           amount of bytes already transferred to the target VM
11104
11105       "remaining: int"
11106           amount of bytes remaining to be transferred to the target VM
11107
11108       "total: int"
11109           total amount of bytes involved in the migration process
11110
11111       "duplicate: int"
11112           number of duplicate (zero) pages (since 1.2)
11113
11114       "skipped: int"
11115           number of skipped zero pages (since 1.5)
11116
11117       "normal: int"
11118           number of normal pages (since 1.2)
11119
11120       "normal-bytes: int"
11121           number of normal bytes sent (since 1.2)
11122
11123       "dirty-pages-rate: int"
11124           number of pages dirtied by second by the guest (since 1.3)
11125
11126       "mbps: number"
11127           throughput in megabits/sec. (since 1.6)
11128
11129       "dirty-sync-count: int"
11130           number of times that dirty ram was synchronized (since 2.1)
11131
11132       "postcopy-requests: int"
11133           The number of page requests received from the destination (since
11134           2.7)
11135
11136       "page-size: int"
11137           The number of bytes per page for the various page-based statistics
11138           (since 2.10)
11139
11140       "multifd-bytes: int"
11141           The number of bytes sent through multifd (since 3.0)
11142
11143       "pages-per-second: int"
11144           the number of memory pages transferred per second (Since 4.0)
11145
11146       Since: 0.14.0
11147
11148       XBZRLECacheStats (Object)
11149
11150       Detailed XBZRLE migration cache statistics
11151
11152       Members:
11153
11154       "cache-size: int"
11155           XBZRLE cache size
11156
11157       "bytes: int"
11158           amount of bytes already transferred to the target VM
11159
11160       "pages: int"
11161           amount of pages transferred to the target VM
11162
11163       "cache-miss: int"
11164           number of cache miss
11165
11166       "cache-miss-rate: number"
11167           rate of cache miss (since 2.1)
11168
11169       "overflow: int"
11170           number of overflows
11171
11172       Since: 1.2
11173
11174       CompressionStats (Object)
11175
11176       Detailed migration compression statistics
11177
11178       Members:
11179
11180       "pages: int"
11181           amount of pages compressed and transferred to the target VM
11182
11183       "busy: int"
11184           count of times that no free thread was available to compress data
11185
11186       "busy-rate: number"
11187           rate of thread busy
11188
11189       "compressed-size: int"
11190           amount of bytes after compression
11191
11192       "compression-rate: number"
11193           rate of compressed size
11194
11195       Since: 3.1
11196
11197       MigrationStatus (Enum)
11198
11199       An enumeration of migration status.
11200
11201       Values:
11202
11203       "none"
11204           no migration has ever happened.
11205
11206       "setup"
11207           migration process has been initiated.
11208
11209       "cancelling"
11210           in the process of cancelling migration.
11211
11212       "cancelled"
11213           cancelling migration is finished.
11214
11215       "active"
11216           in the process of doing migration.
11217
11218       "postcopy-active"
11219           like active, but now in postcopy mode. (since 2.5)
11220
11221       "postcopy-paused"
11222           during postcopy but paused. (since 3.0)
11223
11224       "postcopy-recover"
11225           trying to recover from a paused postcopy. (since 3.0)
11226
11227       "completed"
11228           migration is finished.
11229
11230       "failed"
11231           some error occurred during migration process.
11232
11233       "colo"
11234           VM is in the process of fault tolerance, VM can not get into this
11235           state unless colo capability is enabled for migration. (since 2.8)
11236
11237       "pre-switchover"
11238           Paused before device serialisation. (since 2.11)
11239
11240       "device"
11241           During device serialisation when pause-before-switchover is enabled
11242           (since 2.11)
11243
11244       "wait-unplug"
11245           wait for device unplug request by guest OS to be completed.  (since
11246           4.2)
11247
11248       Since: 2.3
11249
11250       MigrationInfo (Object)
11251
11252       Information about current migration process.
11253
11254       Members:
11255
11256       "status: MigrationStatus" (optional)
11257           "MigrationStatus" describing the current migration status.  If this
11258           field is not returned, no migration process has been initiated
11259
11260       "ram: MigrationStats" (optional)
11261           "MigrationStats" containing detailed migration status, only
11262           returned if status is 'active' or 'completed'(since 1.2)
11263
11264       "disk: MigrationStats" (optional)
11265           "MigrationStats" containing detailed disk migration status, only
11266           returned if status is 'active' and it is a block migration
11267
11268       "xbzrle-cache: XBZRLECacheStats" (optional)
11269           "XBZRLECacheStats" containing detailed XBZRLE migration statistics,
11270           only returned if XBZRLE feature is on and status is 'active' or
11271           'completed' (since 1.2)
11272
11273       "total-time: int" (optional)
11274           total amount of milliseconds since migration started.  If migration
11275           has ended, it returns the total migration time. (since 1.2)
11276
11277       "downtime: int" (optional)
11278           only present when migration finishes correctly total downtime in
11279           milliseconds for the guest.  (since 1.3)
11280
11281       "expected-downtime: int" (optional)
11282           only present while migration is active expected downtime in
11283           milliseconds for the guest in last walk of the dirty bitmap. (since
11284           1.3)
11285
11286       "setup-time: int" (optional)
11287           amount of setup time in milliseconds before the iterations begin
11288           but after the QMP command is issued. This is designed to provide an
11289           accounting of any activities (such as RDMA pinning) which may be
11290           expensive, but do not actually occur during the iterative migration
11291           rounds themselves. (since 1.6)
11292
11293       "cpu-throttle-percentage: int" (optional)
11294           percentage of time guest cpus are being throttled during auto-
11295           converge. This is only present when auto-converge has started
11296           throttling guest cpus. (Since 2.7)
11297
11298       "error-desc: string" (optional)
11299           the human readable error description string, when "status" is
11300           'failed'. Clients should not attempt to parse the error strings.
11301           (Since 2.7)
11302
11303       "postcopy-blocktime: int" (optional)
11304           total time when all vCPU were blocked during postcopy live
11305           migration. This is only present when the postcopy-blocktime
11306           migration capability is enabled. (Since 3.0)
11307
11308       "postcopy-vcpu-blocktime: array of int" (optional)
11309           list of the postcopy blocktime per vCPU.  This is only present when
11310           the postcopy-blocktime migration capability is enabled. (Since 3.0)
11311
11312       "compression: CompressionStats" (optional)
11313           migration compression statistics, only returned if compression
11314           feature is on and status is 'active' or 'completed' (Since 3.1)
11315
11316       "socket-address: array of SocketAddress" (optional)
11317           Only used for tcp, to know what the real port is (Since 4.0)
11318
11319       Since: 0.14.0
11320
11321       query-migrate  (Command) Returns information about current migration
11322       process. If migration is active there will be another json-object with
11323       RAM migration status and if block migration is active another one with
11324       block migration status.
11325
11326       Returns: "MigrationInfo"
11327
11328       Since: 0.14.0
11329
11330       Example:
11331
11332               1. Before the first migration
11333
11334               -> { "execute": "query-migrate" }
11335               <- { "return": {} }
11336
11337               2. Migration is done and has succeeded
11338
11339               -> { "execute": "query-migrate" }
11340               <- { "return": {
11341                       "status": "completed",
11342                       "total-time":12345,
11343                       "setup-time":12345,
11344                       "downtime":12345,
11345                       "ram":{
11346                         "transferred":123,
11347                         "remaining":123,
11348                         "total":246,
11349                         "duplicate":123,
11350                         "normal":123,
11351                         "normal-bytes":123456,
11352                         "dirty-sync-count":15
11353                       }
11354                    }
11355                  }
11356
11357               3. Migration is done and has failed
11358
11359               -> { "execute": "query-migrate" }
11360               <- { "return": { "status": "failed" } }
11361
11362               4. Migration is being performed and is not a block migration:
11363
11364               -> { "execute": "query-migrate" }
11365               <- {
11366                     "return":{
11367                        "status":"active",
11368                        "total-time":12345,
11369                        "setup-time":12345,
11370                        "expected-downtime":12345,
11371                        "ram":{
11372                           "transferred":123,
11373                           "remaining":123,
11374                           "total":246,
11375                           "duplicate":123,
11376                           "normal":123,
11377                           "normal-bytes":123456,
11378                           "dirty-sync-count":15
11379                        }
11380                     }
11381                  }
11382
11383               5. Migration is being performed and is a block migration:
11384
11385               -> { "execute": "query-migrate" }
11386               <- {
11387                     "return":{
11388                        "status":"active",
11389                        "total-time":12345,
11390                        "setup-time":12345,
11391                        "expected-downtime":12345,
11392                        "ram":{
11393                           "total":1057024,
11394                           "remaining":1053304,
11395                           "transferred":3720,
11396                           "duplicate":123,
11397                           "normal":123,
11398                           "normal-bytes":123456,
11399                           "dirty-sync-count":15
11400                        },
11401                        "disk":{
11402                           "total":20971520,
11403                           "remaining":20880384,
11404                           "transferred":91136
11405                        }
11406                     }
11407                  }
11408
11409               6. Migration is being performed and XBZRLE is active:
11410
11411               -> { "execute": "query-migrate" }
11412               <- {
11413                     "return":{
11414                        "status":"active",
11415                        "total-time":12345,
11416                        "setup-time":12345,
11417                        "expected-downtime":12345,
11418                        "ram":{
11419                           "total":1057024,
11420                           "remaining":1053304,
11421                           "transferred":3720,
11422                           "duplicate":10,
11423                           "normal":3333,
11424                           "normal-bytes":3412992,
11425                           "dirty-sync-count":15
11426                        },
11427                        "xbzrle-cache":{
11428                           "cache-size":67108864,
11429                           "bytes":20971520,
11430                           "pages":2444343,
11431                           "cache-miss":2244,
11432                           "cache-miss-rate":0.123,
11433                           "overflow":34434
11434                        }
11435                     }
11436                  }
11437
11438       MigrationCapability (Enum)
11439
11440       Migration capabilities enumeration
11441
11442       Values:
11443
11444       "xbzrle"
11445           Migration supports xbzrle (Xor Based Zero Run Length Encoding).
11446           This feature allows us to minimize migration traffic for certain
11447           work loads, by sending compressed difference of the pages
11448
11449       "rdma-pin-all"
11450           Controls whether or not the entire VM memory footprint is mlock()'d
11451           on demand or all at once. Refer to docs/rdma.txt for usage.
11452           Disabled by default. (since 2.0)
11453
11454       "zero-blocks"
11455           During storage migration encode blocks of zeroes efficiently. This
11456           essentially saves 1MB of zeroes per block on the wire. Enabling
11457           requires source and target VM to support this feature. To enable it
11458           is sufficient to enable the capability on the source VM. The
11459           feature is disabled by default. (since 1.6)
11460
11461       "compress"
11462           Use multiple compression threads to accelerate live migration.
11463           This feature can help to reduce the migration traffic, by sending
11464           compressed pages. Please note that if compress and xbzrle are both
11465           on, compress only takes effect in the ram bulk stage, after that,
11466           it will be disabled and only xbzrle takes effect, this can help to
11467           minimize migration traffic. The feature is disabled by default.
11468           (since 2.4 )
11469
11470       "events"
11471           generate events for each migration state change (since 2.4 )
11472
11473       "auto-converge"
11474           If enabled, QEMU will automatically throttle down the guest to
11475           speed up convergence of RAM migration. (since 1.6)
11476
11477       "postcopy-ram"
11478           Start executing on the migration target before all of RAM has been
11479           migrated, pulling the remaining pages along as needed. The capacity
11480           must have the same setting on both source and target or migration
11481           will not even start. NOTE: If the migration fails during postcopy
11482           the VM will fail.  (since 2.6)
11483
11484       "x-colo"
11485           If enabled, migration will never end, and the state of the VM on
11486           the primary side will be migrated continuously to the VM on
11487           secondary side, this process is called COarse-Grain LOck Stepping
11488           (COLO) for Non-stop Service. (since 2.8)
11489
11490       "release-ram"
11491           if enabled, qemu will free the migrated ram pages on the source
11492           during postcopy-ram migration. (since 2.9)
11493
11494       "block"
11495           If enabled, QEMU will also migrate the contents of all block
11496           devices.  Default is disabled.  A possible alternative uses mirror
11497           jobs to a builtin NBD server on the destination, which offers more
11498           flexibility.  (Since 2.10)
11499
11500       "return-path"
11501           If enabled, migration will use the return path even for precopy.
11502           (since 2.10)
11503
11504       "pause-before-switchover"
11505           Pause outgoing migration before serialising device state and before
11506           disabling block IO (since 2.11)
11507
11508       "multifd"
11509           Use more than one fd for migration (since 4.0)
11510
11511       "dirty-bitmaps"
11512           If enabled, QEMU will migrate named dirty bitmaps.  (since 2.12)
11513
11514       "postcopy-blocktime"
11515           Calculate downtime for postcopy live migration (since 3.0)
11516
11517       "late-block-activate"
11518           If enabled, the destination will not activate block devices (and
11519           thus take locks) immediately at the end of migration.  (since 3.0)
11520
11521       "x-ignore-shared"
11522           If enabled, QEMU will not migrate shared memory (since 4.0)
11523
11524       "validate-uuid"
11525           Send the UUID of the source to allow the destination to ensure it
11526           is the same. (since 4.2)
11527
11528       Since: 1.2
11529
11530       MigrationCapabilityStatus (Object)
11531
11532       Migration capability information
11533
11534       Members:
11535
11536       "capability: MigrationCapability"
11537           capability enum
11538
11539       "state: boolean"
11540           capability state bool
11541
11542       Since: 1.2
11543
11544       migrate-set-capabilities  (Command) Enable/Disable the following
11545       migration capabilities (like xbzrle)
11546
11547       Arguments:
11548
11549       "capabilities: array of MigrationCapabilityStatus"
11550           json array of capability modifications to make
11551
11552       Since: 1.2
11553
11554       Example:
11555
11556               -> { "execute": "migrate-set-capabilities" , "arguments":
11557                    { "capabilities": [ { "capability": "xbzrle", "state": true } ] } }
11558
11559       query-migrate-capabilities  (Command) Returns information about the
11560       current migration capabilities status
11561
11562       Returns: "MigrationCapabilitiesStatus"
11563
11564       Since: 1.2
11565
11566       Example:
11567
11568               -> { "execute": "query-migrate-capabilities" }
11569               <- { "return": [
11570                     {"state": false, "capability": "xbzrle"},
11571                     {"state": false, "capability": "rdma-pin-all"},
11572                     {"state": false, "capability": "auto-converge"},
11573                     {"state": false, "capability": "zero-blocks"},
11574                     {"state": false, "capability": "compress"},
11575                     {"state": true, "capability": "events"},
11576                     {"state": false, "capability": "postcopy-ram"},
11577                     {"state": false, "capability": "x-colo"}
11578                  ]}
11579
11580       MigrationParameter (Enum)
11581
11582       Migration parameters enumeration
11583
11584       Values:
11585
11586       "announce-initial"
11587           Initial delay (in milliseconds) before sending the first announce
11588           (Since 4.0)
11589
11590       "announce-max"
11591           Maximum delay (in milliseconds) between packets in the announcement
11592           (Since 4.0)
11593
11594       "announce-rounds"
11595           Number of self-announce packets sent after migration (Since 4.0)
11596
11597       "announce-step"
11598           Increase in delay (in milliseconds) between subsequent packets in
11599           the announcement (Since 4.0)
11600
11601       "compress-level"
11602           Set the compression level to be used in live migration, the
11603           compression level is an integer between 0 and 9, where 0 means no
11604           compression, 1 means the best compression speed, and 9 means best
11605           compression ratio which will consume more CPU.
11606
11607       "compress-threads"
11608           Set compression thread count to be used in live migration, the
11609           compression thread count is an integer between 1 and 255.
11610
11611       "compress-wait-thread"
11612           Controls behavior when all compression threads are currently busy.
11613           If true (default), wait for a free compression thread to become
11614           available; otherwise, send the page uncompressed. (Since 3.1)
11615
11616       "decompress-threads"
11617           Set decompression thread count to be used in live migration, the
11618           decompression thread count is an integer between 1 and 255.
11619           Usually, decompression is at least 4 times as fast as compression,
11620           so set the decompress-threads to the number about 1/4 of compress-
11621           threads is adequate.
11622
11623       "cpu-throttle-initial"
11624           Initial percentage of time guest cpus are throttled when migration
11625           auto-converge is activated. The default value is 20. (Since 2.7)
11626
11627       "cpu-throttle-increment"
11628           throttle percentage increase each time auto-converge detects that
11629           migration is not making progress. The default value is 10. (Since
11630           2.7)
11631
11632       "tls-creds"
11633           ID of the 'tls-creds' object that provides credentials for
11634           establishing a TLS connection over the migration data channel.  On
11635           the outgoing side of the migration, the credentials must be for a
11636           'client' endpoint, while for the incoming side the credentials must
11637           be for a 'server' endpoint. Setting this will enable TLS for all
11638           migrations. The default is unset, resulting in unsecured migration
11639           at the QEMU level. (Since 2.7)
11640
11641       "tls-hostname"
11642           hostname of the target host for the migration. This is required
11643           when using x509 based TLS credentials and the migration URI does
11644           not already include a hostname. For example if using fd: or exec:
11645           based migration, the hostname must be provided so that the server's
11646           x509 certificate identity can be validated. (Since 2.7)
11647
11648       "tls-authz"
11649           ID of the 'authz' object subclass that provides access control
11650           checking of the TLS x509 certificate distinguished name.  This
11651           object is only resolved at time of use, so can be deleted and
11652           recreated on the fly while the migration server is active.  If
11653           missing, it will default to denying access (Since 4.0)
11654
11655       "max-bandwidth"
11656           to set maximum speed for migration. maximum speed in bytes per
11657           second. (Since 2.8)
11658
11659       "downtime-limit"
11660           set maximum tolerated downtime for migration. maximum downtime in
11661           milliseconds (Since 2.8)
11662
11663       "x-checkpoint-delay"
11664           The delay time (in ms) between two COLO checkpoints in periodic
11665           mode. (Since 2.8)
11666
11667       "block-incremental"
11668           Affects how much storage is migrated when the block migration
11669           capability is enabled.  When false, the entire storage backing
11670           chain is migrated into a flattened image at the destination; when
11671           true, only the active qcow2 layer is migrated and the destination
11672           must already have access to the same backing chain as was used on
11673           the source.  (since 2.10)
11674
11675       "multifd-channels"
11676           Number of channels used to migrate data in parallel. This is the
11677           same number that the number of sockets used for migration.  The
11678           default value is 2 (since 4.0)
11679
11680       "xbzrle-cache-size"
11681           cache size to be used by XBZRLE migration.  It needs to be a
11682           multiple of the target page size and a power of 2 (Since 2.11)
11683
11684       "max-postcopy-bandwidth"
11685           Background transfer bandwidth during postcopy.  Defaults to 0
11686           (unlimited).  In bytes per second.  (Since 3.0)
11687
11688       "max-cpu-throttle"
11689           maximum cpu throttle percentage.  Defaults to 99. (Since 3.1)
11690
11691       Since: 2.4
11692
11693       MigrateSetParameters (Object)
11694
11695       Members:
11696
11697       "announce-initial: int" (optional)
11698           Initial delay (in milliseconds) before sending the first announce
11699           (Since 4.0)
11700
11701       "announce-max: int" (optional)
11702           Maximum delay (in milliseconds) between packets in the announcement
11703           (Since 4.0)
11704
11705       "announce-rounds: int" (optional)
11706           Number of self-announce packets sent after migration (Since 4.0)
11707
11708       "announce-step: int" (optional)
11709           Increase in delay (in milliseconds) between subsequent packets in
11710           the announcement (Since 4.0)
11711
11712       "compress-level: int" (optional)
11713           compression level
11714
11715       "compress-threads: int" (optional)
11716           compression thread count
11717
11718       "compress-wait-thread: boolean" (optional)
11719           Controls behavior when all compression threads are currently busy.
11720           If true (default), wait for a free compression thread to become
11721           available; otherwise, send the page uncompressed. (Since 3.1)
11722
11723       "decompress-threads: int" (optional)
11724           decompression thread count
11725
11726       "cpu-throttle-initial: int" (optional)
11727           Initial percentage of time guest cpus are throttled when migration
11728           auto-converge is activated.  The default value is 20. (Since 2.7)
11729
11730       "cpu-throttle-increment: int" (optional)
11731           throttle percentage increase each time auto-converge detects that
11732           migration is not making progress. The default value is 10. (Since
11733           2.7)
11734
11735       "tls-creds: StrOrNull" (optional)
11736           ID of the 'tls-creds' object that provides credentials for
11737           establishing a TLS connection over the migration data channel. On
11738           the outgoing side of the migration, the credentials must be for a
11739           'client' endpoint, while for the incoming side the credentials must
11740           be for a 'server' endpoint. Setting this to a non-empty string
11741           enables TLS for all migrations.  An empty string means that QEMU
11742           will use plain text mode for migration, rather than TLS (Since 2.9)
11743           Previously (since 2.7), this was reported by omitting tls-creds
11744           instead.
11745
11746       "tls-hostname: StrOrNull" (optional)
11747           hostname of the target host for the migration. This is required
11748           when using x509 based TLS credentials and the migration URI does
11749           not already include a hostname. For example if using fd: or exec:
11750           based migration, the hostname must be provided so that the server's
11751           x509 certificate identity can be validated. (Since 2.7) An empty
11752           string means that QEMU will use the hostname associated with the
11753           migration URI, if any. (Since 2.9) Previously (since 2.7), this was
11754           reported by omitting tls-hostname instead.
11755
11756       "max-bandwidth: int" (optional)
11757           to set maximum speed for migration. maximum speed in bytes per
11758           second. (Since 2.8)
11759
11760       "downtime-limit: int" (optional)
11761           set maximum tolerated downtime for migration. maximum downtime in
11762           milliseconds (Since 2.8)
11763
11764       "x-checkpoint-delay: int" (optional)
11765           the delay time between two COLO checkpoints. (Since 2.8)
11766
11767       "block-incremental: boolean" (optional)
11768           Affects how much storage is migrated when the block migration
11769           capability is enabled.  When false, the entire storage backing
11770           chain is migrated into a flattened image at the destination; when
11771           true, only the active qcow2 layer is migrated and the destination
11772           must already have access to the same backing chain as was used on
11773           the source.  (since 2.10)
11774
11775       "multifd-channels: int" (optional)
11776           Number of channels used to migrate data in parallel. This is the
11777           same number that the number of sockets used for migration.  The
11778           default value is 2 (since 4.0)
11779
11780       "xbzrle-cache-size: int" (optional)
11781           cache size to be used by XBZRLE migration.  It needs to be a
11782           multiple of the target page size and a power of 2 (Since 2.11)
11783
11784       "max-postcopy-bandwidth: int" (optional)
11785           Background transfer bandwidth during postcopy.  Defaults to 0
11786           (unlimited).  In bytes per second.  (Since 3.0)
11787
11788       "max-cpu-throttle: int" (optional)
11789           maximum cpu throttle percentage.  The default value is 99. (Since
11790           3.1)
11791
11792       "tls-authz: StrOrNull" (optional)
11793           Not documented
11794
11795       Since: 2.4
11796
11797       migrate-set-parameters  (Command) Set various migration parameters.
11798
11799       Arguments: the members of "MigrateSetParameters"
11800
11801       Since: 2.4
11802
11803       Example:
11804
11805               -> { "execute": "migrate-set-parameters" ,
11806                    "arguments": { "compress-level": 1 } }
11807
11808       MigrationParameters (Object)
11809
11810       The optional members aren't actually optional.
11811
11812       Members:
11813
11814       "announce-initial: int" (optional)
11815           Initial delay (in milliseconds) before sending the first announce
11816           (Since 4.0)
11817
11818       "announce-max: int" (optional)
11819           Maximum delay (in milliseconds) between packets in the announcement
11820           (Since 4.0)
11821
11822       "announce-rounds: int" (optional)
11823           Number of self-announce packets sent after migration (Since 4.0)
11824
11825       "announce-step: int" (optional)
11826           Increase in delay (in milliseconds) between subsequent packets in
11827           the announcement (Since 4.0)
11828
11829       "compress-level: int" (optional)
11830           compression level
11831
11832       "compress-threads: int" (optional)
11833           compression thread count
11834
11835       "compress-wait-thread: boolean" (optional)
11836           Controls behavior when all compression threads are currently busy.
11837           If true (default), wait for a free compression thread to become
11838           available; otherwise, send the page uncompressed. (Since 3.1)
11839
11840       "decompress-threads: int" (optional)
11841           decompression thread count
11842
11843       "cpu-throttle-initial: int" (optional)
11844           Initial percentage of time guest cpus are throttled when migration
11845           auto-converge is activated.  (Since 2.7)
11846
11847       "cpu-throttle-increment: int" (optional)
11848           throttle percentage increase each time auto-converge detects that
11849           migration is not making progress. (Since 2.7)
11850
11851       "tls-creds: string" (optional)
11852           ID of the 'tls-creds' object that provides credentials for
11853           establishing a TLS connection over the migration data channel. On
11854           the outgoing side of the migration, the credentials must be for a
11855           'client' endpoint, while for the incoming side the credentials must
11856           be for a 'server' endpoint.  An empty string means that QEMU will
11857           use plain text mode for migration, rather than TLS (Since 2.7)
11858           Note: 2.8 reports this by omitting tls-creds instead.
11859
11860       "tls-hostname: string" (optional)
11861           hostname of the target host for the migration. This is required
11862           when using x509 based TLS credentials and the migration URI does
11863           not already include a hostname. For example if using fd: or exec:
11864           based migration, the hostname must be provided so that the server's
11865           x509 certificate identity can be validated. (Since 2.7) An empty
11866           string means that QEMU will use the hostname associated with the
11867           migration URI, if any. (Since 2.9) Note: 2.8 reports this by
11868           omitting tls-hostname instead.
11869
11870       "tls-authz: string" (optional)
11871           ID of the 'authz' object subclass that provides access control
11872           checking of the TLS x509 certificate distinguished name. (Since
11873           4.0)
11874
11875       "max-bandwidth: int" (optional)
11876           to set maximum speed for migration. maximum speed in bytes per
11877           second. (Since 2.8)
11878
11879       "downtime-limit: int" (optional)
11880           set maximum tolerated downtime for migration. maximum downtime in
11881           milliseconds (Since 2.8)
11882
11883       "x-checkpoint-delay: int" (optional)
11884           the delay time between two COLO checkpoints. (Since 2.8)
11885
11886       "block-incremental: boolean" (optional)
11887           Affects how much storage is migrated when the block migration
11888           capability is enabled.  When false, the entire storage backing
11889           chain is migrated into a flattened image at the destination; when
11890           true, only the active qcow2 layer is migrated and the destination
11891           must already have access to the same backing chain as was used on
11892           the source.  (since 2.10)
11893
11894       "multifd-channels: int" (optional)
11895           Number of channels used to migrate data in parallel. This is the
11896           same number that the number of sockets used for migration.  The
11897           default value is 2 (since 4.0)
11898
11899       "xbzrle-cache-size: int" (optional)
11900           cache size to be used by XBZRLE migration.  It needs to be a
11901           multiple of the target page size and a power of 2 (Since 2.11)
11902
11903       "max-postcopy-bandwidth: int" (optional)
11904           Background transfer bandwidth during postcopy.  Defaults to 0
11905           (unlimited).  In bytes per second.  (Since 3.0)
11906
11907       "max-cpu-throttle: int" (optional)
11908           maximum cpu throttle percentage.  Defaults to 99.  (Since 3.1)
11909
11910       Since: 2.4
11911
11912       query-migrate-parameters  (Command) Returns information about the
11913       current migration parameters
11914
11915       Returns: "MigrationParameters"
11916
11917       Since: 2.4
11918
11919       Example:
11920
11921               -> { "execute": "query-migrate-parameters" }
11922               <- { "return": {
11923                        "decompress-threads": 2,
11924                        "cpu-throttle-increment": 10,
11925                        "compress-threads": 8,
11926                        "compress-level": 1,
11927                        "cpu-throttle-initial": 20,
11928                        "max-bandwidth": 33554432,
11929                        "downtime-limit": 300
11930                     }
11931                  }
11932
11933       client_migrate_info  (Command) Set migration information for remote
11934       display.  This makes the server ask the client to automatically
11935       reconnect using the new parameters once migration finished
11936       successfully.  Only implemented for SPICE.
11937
11938       Arguments:
11939
11940       "protocol: string"
11941           must be "spice"
11942
11943       "hostname: string"
11944           migration target hostname
11945
11946       "port: int" (optional)
11947           spice tcp port for plaintext channels
11948
11949       "tls-port: int" (optional)
11950           spice tcp port for tls-secured channels
11951
11952       "cert-subject: string" (optional)
11953           server certificate subject
11954
11955       Since: 0.14.0
11956
11957       Example:
11958
11959               -> { "execute": "client_migrate_info",
11960                    "arguments": { "protocol": "spice",
11961                                   "hostname": "virt42.lab.kraxel.org",
11962                                   "port": 1234 } }
11963               <- { "return": {} }
11964
11965       migrate-start-postcopy  (Command) Followup to a migration command to
11966       switch the migration to postcopy mode.  The postcopy-ram capability
11967       must be set on both source and destination before the original
11968       migration command.
11969
11970       Since: 2.5
11971
11972       Example:
11973
11974               -> { "execute": "migrate-start-postcopy" }
11975               <- { "return": {} }
11976
11977       MIGRATION  (Event) Emitted when a migration event happens
11978
11979       Arguments:
11980
11981       "status: MigrationStatus"
11982           "MigrationStatus" describing the current migration status.
11983
11984       Since: 2.4
11985
11986       Example:
11987
11988               <- {"timestamp": {"seconds": 1432121972, "microseconds": 744001},
11989                   "event": "MIGRATION",
11990                   "data": {"status": "completed"} }
11991
11992       MIGRATION_PASS  (Event) Emitted from the source side of a migration at
11993       the start of each pass (when it syncs the dirty bitmap)
11994
11995       Arguments:
11996
11997       "pass: int"
11998           An incrementing count (starting at 1 on the first pass)
11999
12000       Since: 2.6
12001
12002       Example:
12003
12004               { "timestamp": {"seconds": 1449669631, "microseconds": 239225},
12005                 "event": "MIGRATION_PASS", "data": {"pass": 2} }
12006
12007       COLOMessage (Enum)
12008
12009       The message transmission between Primary side and Secondary side.
12010
12011       Values:
12012
12013       "checkpoint-ready"
12014           Secondary VM (SVM) is ready for checkpointing
12015
12016       "checkpoint-request"
12017           Primary VM (PVM) tells SVM to prepare for checkpointing
12018
12019       "checkpoint-reply"
12020           SVM gets PVM's checkpoint request
12021
12022       "vmstate-send"
12023           VM's state will be sent by PVM.
12024
12025       "vmstate-size"
12026           The total size of VMstate.
12027
12028       "vmstate-received"
12029           VM's state has been received by SVM.
12030
12031       "vmstate-loaded"
12032           VM's state has been loaded by SVM.
12033
12034       Since: 2.8
12035
12036       COLOMode (Enum)
12037
12038       The COLO current mode.
12039
12040       Values:
12041
12042       "none"
12043           COLO is disabled.
12044
12045       "primary"
12046           COLO node in primary side.
12047
12048       "secondary"
12049           COLO node in slave side.
12050
12051       Since: 2.8
12052
12053       FailoverStatus (Enum)
12054
12055       An enumeration of COLO failover status
12056
12057       Values:
12058
12059       "none"
12060           no failover has ever happened
12061
12062       "require"
12063           got failover requirement but not handled
12064
12065       "active"
12066           in the process of doing failover
12067
12068       "completed"
12069           finish the process of failover
12070
12071       "relaunch"
12072           restart the failover process, from 'none' -> 'completed' (Since
12073           2.9)
12074
12075       Since: 2.8
12076
12077       COLO_EXIT  (Event) Emitted when VM finishes COLO mode due to some
12078       errors happening or at the request of users.
12079
12080       Arguments:
12081
12082       "mode: COLOMode"
12083           report COLO mode when COLO exited.
12084
12085       "reason: COLOExitReason"
12086           describes the reason for the COLO exit.
12087
12088       Since: 3.1
12089
12090       Example:
12091
12092               <- { "timestamp": {"seconds": 2032141960, "microseconds": 417172},
12093                    "event": "COLO_EXIT", "data": {"mode": "primary", "reason": "request" } }
12094
12095       COLOExitReason (Enum)
12096
12097       The reason for a COLO exit.
12098
12099       Values:
12100
12101       "none"
12102           failover has never happened. This state does not occur in the
12103           COLO_EXIT event, and is only visible in the result of query-colo-
12104           status.
12105
12106       "request"
12107           COLO exit is due to an external request.
12108
12109       "error"
12110           COLO exit is due to an internal error.
12111
12112       "processing"
12113           COLO is currently handling a failover (since 4.0).
12114
12115       Since: 3.1
12116
12117       x-colo-lost-heartbeat  (Command) Tell qemu that heartbeat is lost,
12118       request it to do takeover procedures.  If this command is sent to the
12119       PVM, the Primary side will exit COLO mode.  If sent to the Secondary,
12120       the Secondary side will run failover work, then takes over server
12121       operation to become the service VM.
12122
12123       Since: 2.8
12124
12125       Example:
12126
12127               -> { "execute": "x-colo-lost-heartbeat" }
12128               <- { "return": {} }
12129
12130       migrate_cancel  (Command) Cancel the current executing migration
12131       process.
12132
12133       Returns: nothing on success
12134
12135       Notes: This command succeeds even if there is no migration process
12136       running.
12137
12138       Since: 0.14.0
12139
12140       Example:
12141
12142               -> { "execute": "migrate_cancel" }
12143               <- { "return": {} }
12144
12145       migrate-continue  (Command) Continue migration when it's in a paused
12146       state.
12147
12148       Arguments:
12149
12150       "state: MigrationStatus"
12151           The state the migration is currently expected to be in
12152
12153       Returns: nothing on success
12154
12155       Since: 2.11
12156
12157       Example:
12158
12159               -> { "execute": "migrate-continue" , "arguments":
12160                    { "state": "pre-switchover" } }
12161               <- { "return": {} }
12162
12163       migrate_set_downtime  (Command) Set maximum tolerated downtime for
12164       migration.
12165
12166       Arguments:
12167
12168       "value: number"
12169           maximum downtime in seconds
12170
12171       Returns: nothing on success
12172
12173       Notes: This command is deprecated in favor of 'migrate-set-parameters'
12174
12175       Since: 0.14.0
12176
12177       Example:
12178
12179               -> { "execute": "migrate_set_downtime", "arguments": { "value": 0.1 } }
12180               <- { "return": {} }
12181
12182       migrate_set_speed  (Command) Set maximum speed for migration.
12183
12184       Arguments:
12185
12186       "value: int"
12187           maximum speed in bytes per second.
12188
12189       Returns: nothing on success
12190
12191       Notes: This command is deprecated in favor of 'migrate-set-parameters'
12192
12193       Since: 0.14.0
12194
12195       Example:
12196
12197               -> { "execute": "migrate_set_speed", "arguments": { "value": 1024 } }
12198               <- { "return": {} }
12199
12200       migrate-set-cache-size  (Command) Set cache size to be used by XBZRLE
12201       migration
12202
12203       Arguments:
12204
12205       "value: int"
12206           cache size in bytes
12207
12208       The size will be rounded down to the nearest power of 2.  The cache
12209       size can be modified before and during ongoing migration
12210
12211       Returns: nothing on success
12212
12213       Notes: This command is deprecated in favor of 'migrate-set-parameters'
12214
12215       Since: 1.2
12216
12217       Example:
12218
12219               -> { "execute": "migrate-set-cache-size",
12220                    "arguments": { "value": 536870912 } }
12221               <- { "return": {} }
12222
12223       query-migrate-cache-size  (Command) Query migration XBZRLE cache size
12224
12225       Returns: XBZRLE cache size in bytes
12226
12227       Notes: This command is deprecated in favor of
12228       'query-migrate-parameters'
12229
12230       Since: 1.2
12231
12232       Example:
12233
12234               -> { "execute": "query-migrate-cache-size" }
12235               <- { "return": 67108864 }
12236
12237       migrate  (Command) Migrates the current running guest to another
12238       Virtual Machine.
12239
12240       Arguments:
12241
12242       "uri: string"
12243           the Uniform Resource Identifier of the destination VM
12244
12245       "blk: boolean" (optional)
12246           do block migration (full disk copy)
12247
12248       "inc: boolean" (optional)
12249           incremental disk copy migration
12250
12251       "detach: boolean" (optional)
12252           this argument exists only for compatibility reasons and is ignored
12253           by QEMU
12254
12255       "resume: boolean" (optional)
12256           resume one paused migration, default "off". (since 3.0)
12257
12258       Returns: nothing on success
12259
12260       Since: 0.14.0
12261
12262       Notes:
12263
12264       1.  The 'query-migrate' command should be used to check migration's
12265           progress and final result (this information is provided by the
12266           'status' member)
12267
12268       2.  All boolean arguments default to false
12269
12270       3.  The user Monitor's "detach" argument is invalid in QMP and should
12271           not be used
12272
12273       Example:
12274
12275               -> { "execute": "migrate", "arguments": { "uri": "tcp:0:4446" } }
12276               <- { "return": {} }
12277
12278       migrate-incoming  (Command) Start an incoming migration, the qemu must
12279       have been started with -incoming defer
12280
12281       Arguments:
12282
12283       "uri: string"
12284           The Uniform Resource Identifier identifying the source or address
12285           to listen on
12286
12287       Returns: nothing on success
12288
12289       Since: 2.3
12290
12291       Notes:
12292
12293       1.  It's a bad idea to use a string for the uri, but it needs to stay
12294           compatible with -incoming and the format of the uri is already
12295           exposed above libvirt.
12296
12297       2.  QEMU must be started with -incoming defer to allow migrate-incoming
12298           to be used.
12299
12300       3.  The uri format is the same as for -incoming
12301
12302       Example:
12303
12304               -> { "execute": "migrate-incoming",
12305                    "arguments": { "uri": "tcp::4446" } }
12306               <- { "return": {} }
12307
12308       xen-save-devices-state  (Command) Save the state of all devices to
12309       file. The RAM and the block devices of the VM are not saved by this
12310       command.
12311
12312       Arguments:
12313
12314       "filename: string"
12315           the file to save the state of the devices to as binary data. See
12316           xen-save-devices-state.txt for a description of the binary format.
12317
12318       "live: boolean" (optional)
12319           Optional argument to ask QEMU to treat this command as part of a
12320           live migration. Default to true. (since 2.11)
12321
12322       Returns: Nothing on success
12323
12324       Since: 1.1
12325
12326       Example:
12327
12328               -> { "execute": "xen-save-devices-state",
12329                    "arguments": { "filename": "/tmp/save" } }
12330               <- { "return": {} }
12331
12332       xen-set-replication  (Command) Enable or disable replication.
12333
12334       Arguments:
12335
12336       "enable: boolean"
12337           true to enable, false to disable.
12338
12339       "primary: boolean"
12340           true for primary or false for secondary.
12341
12342       "failover: boolean" (optional)
12343           true to do failover, false to stop. but cannot be specified if
12344           'enable' is true. default value is false.
12345
12346       Returns: nothing.
12347
12348       Example:
12349
12350               -> { "execute": "xen-set-replication",
12351                    "arguments": {"enable": true, "primary": false} }
12352               <- { "return": {} }
12353
12354       Since: 2.9
12355
12356       If: "defined(CONFIG_REPLICATION)"
12357
12358       ReplicationStatus (Object)
12359
12360       The result format for 'query-xen-replication-status'.
12361
12362       Members:
12363
12364       "error: boolean"
12365           true if an error happened, false if replication is normal.
12366
12367       "desc: string" (optional)
12368           the human readable error description string, when "error" is
12369           'true'.
12370
12371       Since: 2.9
12372
12373       If: "defined(CONFIG_REPLICATION)"
12374
12375       query-xen-replication-status  (Command) Query replication status while
12376       the vm is running.
12377
12378       Returns: A "ReplicationResult" object showing the status.
12379
12380       Example:
12381
12382               -> { "execute": "query-xen-replication-status" }
12383               <- { "return": { "error": false } }
12384
12385       Since: 2.9
12386
12387       If: "defined(CONFIG_REPLICATION)"
12388
12389       xen-colo-do-checkpoint  (Command) Xen uses this command to notify
12390       replication to trigger a checkpoint.
12391
12392       Returns: nothing.
12393
12394       Example:
12395
12396               -> { "execute": "xen-colo-do-checkpoint" }
12397               <- { "return": {} }
12398
12399       Since: 2.9
12400
12401       If: "defined(CONFIG_REPLICATION)"
12402
12403       COLOStatus (Object)
12404
12405       The result format for 'query-colo-status'.
12406
12407       Members:
12408
12409       "mode: COLOMode"
12410           COLO running mode. If COLO is running, this field will return
12411           'primary' or 'secondary'.
12412
12413       "last-mode: COLOMode"
12414           COLO last running mode. If COLO is running, this field will return
12415           same like mode field, after failover we can use this field to get
12416           last colo mode. (since 4.0)
12417
12418       "reason: COLOExitReason"
12419           describes the reason for the COLO exit.
12420
12421       Since: 3.1
12422
12423       query-colo-status  (Command) Query COLO status while the vm is running.
12424
12425       Returns: A "COLOStatus" object showing the status.
12426
12427       Example:
12428
12429               -> { "execute": "query-colo-status" }
12430               <- { "return": { "mode": "primary", "reason": "request" } }
12431
12432       Since: 3.1
12433
12434       migrate-recover  (Command) Provide a recovery migration stream URI.
12435
12436       Arguments:
12437
12438       "uri: string"
12439           the URI to be used for the recovery of migration stream.
12440
12441       Returns: nothing.
12442
12443       Example:
12444
12445               -> { "execute": "migrate-recover",
12446                    "arguments": { "uri": "tcp:192.168.1.200:12345" } }
12447               <- { "return": {} }
12448
12449       Since: 3.0
12450
12451       migrate-pause  (Command) Pause a migration.  Currently it only supports
12452       postcopy.
12453
12454       Returns: nothing.
12455
12456       Example:
12457
12458               -> { "execute": "migrate-pause" }
12459               <- { "return": {} }
12460
12461       Since: 3.0
12462
12463       UNPLUG_PRIMARY  (Event) Emitted from source side of a migration when
12464       migration state is WAIT_UNPLUG. Device was unplugged by guest operating
12465       system.  Device resources in QEMU are kept on standby to be able to re-
12466       plug it in case of migration failure.
12467
12468       Arguments:
12469
12470       "device-id: string"
12471           QEMU device id of the unplugged device
12472
12473       Since: 4.2
12474
12475       Example:
12476
12477               {"event": "UNPLUG_PRIMARY", "data": {"device-id": "hostdev0"} }
12478
12479   Transactions
12480       Abort (Object)
12481
12482       This action can be used to test transaction failure.
12483
12484       Since: 1.6
12485
12486       ActionCompletionMode (Enum)
12487
12488       An enumeration of Transactional completion modes.
12489
12490       Values:
12491
12492       "individual"
12493           Do not attempt to cancel any other Actions if any Actions fail
12494           after the Transaction request succeeds. All Actions that can
12495           complete successfully will do so without waiting on others.  This
12496           is the default.
12497
12498       "grouped"
12499           If any Action fails after the Transaction succeeds, cancel all
12500           Actions. Actions do not complete until all Actions are ready to
12501           complete. May be rejected by Actions that do not support this
12502           completion mode.
12503
12504       Since: 2.5
12505
12506       TransactionAction (Object)
12507
12508       A discriminated record of operations that can be performed with
12509       "transaction". Action "type" can be:
12510
12511       -   "abort": since 1.6
12512
12513       -   "block-dirty-bitmap-add": since 2.5
12514
12515       -   "block-dirty-bitmap-remove": since 4.2
12516
12517       -   "block-dirty-bitmap-clear": since 2.5
12518
12519       -   "block-dirty-bitmap-enable": since 4.0
12520
12521       -   "block-dirty-bitmap-disable": since 4.0
12522
12523       -   "block-dirty-bitmap-merge": since 4.0
12524
12525       -   "blockdev-backup": since 2.3
12526
12527       -   "blockdev-snapshot": since 2.5
12528
12529       -   "blockdev-snapshot-internal-sync": since 1.7
12530
12531       -   "blockdev-snapshot-sync": since 1.1
12532
12533       -   "drive-backup": since 1.6
12534
12535       Members:
12536
12537       "type"
12538           One of "abort", "block-dirty-bitmap-add", "block-dirty-bitmap-
12539           remove", "block-dirty-bitmap-clear", "block-dirty-bitmap-enable",
12540           "block-dirty-bitmap-disable", "block-dirty-bitmap-merge",
12541           "blockdev-backup", "blockdev-snapshot", "blockdev-snapshot-
12542           internal-sync", "blockdev-snapshot-sync", "drive-backup"
12543
12544       "data: Abort" when "type" is "abort"
12545       "data: BlockDirtyBitmapAdd" when "type" is "block-dirty-bitmap-add"
12546       "data: BlockDirtyBitmap" when "type" is "block-dirty-bitmap-remove"
12547       "data: BlockDirtyBitmap" when "type" is "block-dirty-bitmap-clear"
12548       "data: BlockDirtyBitmap" when "type" is "block-dirty-bitmap-enable"
12549       "data: BlockDirtyBitmap" when "type" is "block-dirty-bitmap-disable"
12550       "data: BlockDirtyBitmapMerge" when "type" is "block-dirty-bitmap-merge"
12551       "data: BlockdevBackup" when "type" is "blockdev-backup"
12552       "data: BlockdevSnapshot" when "type" is "blockdev-snapshot"
12553       "data: BlockdevSnapshotInternal" when "type" is "blockdev-snapshot-
12554       internal-sync"
12555       "data: BlockdevSnapshotSync" when "type" is "blockdev-snapshot-sync"
12556       "data: DriveBackup" when "type" is "drive-backup"
12557
12558       Since: 1.1
12559
12560       TransactionProperties (Object)
12561
12562       Optional arguments to modify the behavior of a Transaction.
12563
12564       Members:
12565
12566       "completion-mode: ActionCompletionMode" (optional)
12567           Controls how jobs launched asynchronously by Actions will complete
12568           or fail as a group.  See "ActionCompletionMode" for details.
12569
12570       Since: 2.5
12571
12572       transaction  (Command) Executes a number of transactionable QMP
12573       commands atomically. If any operation fails, then the entire set of
12574       actions will be abandoned and the appropriate error returned.
12575
12576       For external snapshots, the dictionary contains the device, the file to
12577       use for the new snapshot, and the format.  The default format, if not
12578       specified, is qcow2.
12579
12580       Each new snapshot defaults to being created by QEMU (wiping any
12581       contents if the file already exists), but it is also possible to reuse
12582       an externally-created file.  In the latter case, you should ensure that
12583       the new image file has the same contents as the current one; QEMU
12584       cannot perform any meaningful check.  Typically this is achieved by
12585       using the current image file as the backing file for the new image.
12586
12587       On failure, the original disks pre-snapshot attempt will be used.
12588
12589       For internal snapshots, the dictionary contains the device and the
12590       snapshot's name.  If an internal snapshot matching name already exists,
12591       the request will be rejected.  Only some image formats support it, for
12592       example, qcow2, rbd, and sheepdog.
12593
12594       On failure, qemu will try delete the newly created internal snapshot in
12595       the transaction.  When an I/O error occurs during deletion, the user
12596       needs to fix it later with qemu-img or other command.
12597
12598       Arguments:
12599
12600       "actions: array of TransactionAction"
12601           List of "TransactionAction"; information needed for the respective
12602           operations.
12603
12604       "properties: TransactionProperties" (optional)
12605           structure of additional options to control the execution of the
12606           transaction. See "TransactionProperties" for additional detail.
12607
12608       Returns: nothing on success
12609
12610       Errors depend on the operations of the transaction
12611
12612       Note: The transaction aborts on the first failure.  Therefore, there
12613       will be information on only one failed operation returned in an error
12614       condition, and subsequent actions will not have been attempted.
12615
12616       Since: 1.1
12617
12618       Example:
12619
12620               -> { "execute": "transaction",
12621                    "arguments": { "actions": [
12622                        { "type": "blockdev-snapshot-sync", "data" : { "device": "ide-hd0",
12623                                                    "snapshot-file": "/some/place/my-image",
12624                                                    "format": "qcow2" } },
12625                        { "type": "blockdev-snapshot-sync", "data" : { "node-name": "myfile",
12626                                                    "snapshot-file": "/some/place/my-image2",
12627                                                    "snapshot-node-name": "node3432",
12628                                                    "mode": "existing",
12629                                                    "format": "qcow2" } },
12630                        { "type": "blockdev-snapshot-sync", "data" : { "device": "ide-hd1",
12631                                                    "snapshot-file": "/some/place/my-image2",
12632                                                    "mode": "existing",
12633                                                    "format": "qcow2" } },
12634                        { "type": "blockdev-snapshot-internal-sync", "data" : {
12635                                                    "device": "ide-hd2",
12636                                                    "name": "snapshot0" } } ] } }
12637               <- { "return": {} }
12638
12639   Tracing
12640       TraceEventState (Enum)
12641
12642       State of a tracing event.
12643
12644       Values:
12645
12646       "unavailable"
12647           The event is statically disabled.
12648
12649       "disabled"
12650           The event is dynamically disabled.
12651
12652       "enabled"
12653           The event is dynamically enabled.
12654
12655       Since: 2.2
12656
12657       TraceEventInfo (Object)
12658
12659       Information of a tracing event.
12660
12661       Members:
12662
12663       "name: string"
12664           Event name.
12665
12666       "state: TraceEventState"
12667           Tracing state.
12668
12669       "vcpu: boolean"
12670           Whether this is a per-vCPU event (since 2.7).
12671
12672       An event is per-vCPU if it has the "vcpu" property in the "trace-
12673       events" files.
12674
12675       Since: 2.2
12676
12677       trace-event-get-state  (Command) Query the state of events.
12678
12679       Arguments:
12680
12681       "name: string"
12682           Event name pattern (case-sensitive glob).
12683
12684       "vcpu: int" (optional)
12685           The vCPU to query (any by default; since 2.7).
12686
12687       Returns: a list of "TraceEventInfo" for the matching events
12688
12689       An event is returned if:
12690
12691       -   its name matches the "name" pattern, and
12692
12693       -   if "vcpu" is given, the event has the "vcpu" property.
12694
12695       Therefore, if "vcpu" is given, the operation will only match per-vCPU
12696       events, returning their state on the specified vCPU. Special case: if
12697       "name" is an exact match, "vcpu" is given and the event does not have
12698       the "vcpu" property, an error is returned.
12699
12700       Since: 2.2
12701
12702       Example:
12703
12704               -> { "execute": "trace-event-get-state",
12705                    "arguments": { "name": "qemu_memalign" } }
12706               <- { "return": [ { "name": "qemu_memalign", "state": "disabled" } ] }
12707
12708       trace-event-set-state  (Command) Set the dynamic tracing state of
12709       events.
12710
12711       Arguments:
12712
12713       "name: string"
12714           Event name pattern (case-sensitive glob).
12715
12716       "enable: boolean"
12717           Whether to enable tracing.
12718
12719       "ignore-unavailable: boolean" (optional)
12720           Do not match unavailable events with "name".
12721
12722       "vcpu: int" (optional)
12723           The vCPU to act upon (all by default; since 2.7).
12724
12725       An event's state is modified if:
12726
12727       -   its name matches the "name" pattern, and
12728
12729       -   if "vcpu" is given, the event has the "vcpu" property.
12730
12731       Therefore, if "vcpu" is given, the operation will only match per-vCPU
12732       events, setting their state on the specified vCPU. Special case: if
12733       "name" is an exact match, "vcpu" is given and the event does not have
12734       the "vcpu" property, an error is returned.
12735
12736       Since: 2.2
12737
12738       Example:
12739
12740               -> { "execute": "trace-event-set-state",
12741                    "arguments": { "name": "qemu_memalign", "enable": "true" } }
12742               <- { "return": {} }
12743
12744   QMP introspection
12745       query-qmp-schema  (Command) Command query-qmp-schema exposes the QMP
12746       wire ABI as an array of SchemaInfo.  This lets QMP clients figure out
12747       what commands and events are available in this QEMU, and their
12748       parameters and results.
12749
12750       However, the SchemaInfo can't reflect all the rules and restrictions
12751       that apply to QMP.  It's interface introspection (figuring out what's
12752       there), not interface specification.  The specification is in the QAPI
12753       schema.
12754
12755       Furthermore, while we strive to keep the QMP wire format backwards-
12756       compatible across qemu versions, the introspection output is not
12757       guaranteed to have the same stability.  For example, one version of
12758       qemu may list an object member as an optional non-variant, while
12759       another lists the same member only through the object's variants; or
12760       the type of a member may change from a generic string into a specific
12761       enum or from one specific type into an alternate that includes the
12762       original type alongside something else.
12763
12764       Returns: array of "SchemaInfo", where each element describes an entity
12765       in the ABI: command, event, type, ...
12766
12767       The order of the various SchemaInfo is unspecified; however, all names
12768       are guaranteed to be unique (no name will be duplicated with different
12769       meta-types).
12770
12771       Note: the QAPI schema is also used to help define internal interfaces,
12772       by defining QAPI types.  These are not part of the QMP wire ABI, and
12773       therefore not returned by this command.
12774
12775       Since: 2.5
12776
12777       SchemaMetaType (Enum)
12778
12779       This is a "SchemaInfo"'s meta type, i.e. the kind of entity it
12780       describes.
12781
12782       Values:
12783
12784       "builtin"
12785           a predefined type such as 'int' or 'bool'.
12786
12787       "enum"
12788           an enumeration type
12789
12790       "array"
12791           an array type
12792
12793       "object"
12794           an object type (struct or union)
12795
12796       "alternate"
12797           an alternate type
12798
12799       "command"
12800           a QMP command
12801
12802       "event"
12803           a QMP event
12804
12805       Since: 2.5
12806
12807       SchemaInfo (Object)
12808
12809       Members:
12810
12811       "name: string"
12812           the entity's name, inherited from "base".  The SchemaInfo is always
12813           referenced by this name.  Commands and events have the name defined
12814           in the QAPI schema.  Unlike command and event names, type names are
12815           not part of the wire ABI.  Consequently, type names are meaningless
12816           strings here, although they are still guaranteed unique regardless
12817           of "meta-type".
12818
12819       "meta-type: SchemaMetaType"
12820           the entity's meta type, inherited from "base".
12821
12822       The members of "SchemaInfoBuiltin" when "meta-type" is "builtin"
12823       The members of "SchemaInfoEnum" when "meta-type" is "enum"
12824       The members of "SchemaInfoArray" when "meta-type" is "array"
12825       The members of "SchemaInfoObject" when "meta-type" is "object"
12826       The members of "SchemaInfoAlternate" when "meta-type" is "alternate"
12827       The members of "SchemaInfoCommand" when "meta-type" is "command"
12828       The members of "SchemaInfoEvent" when "meta-type" is "event"
12829
12830       Additional members depend on the value of "meta-type".
12831
12832       Since: 2.5
12833
12834       SchemaInfoBuiltin (Object)
12835
12836       Additional SchemaInfo members for meta-type 'builtin'.
12837
12838       Members:
12839
12840       "json-type: JSONType"
12841           the JSON type used for this type on the wire.
12842
12843       Since: 2.5
12844
12845       JSONType (Enum)
12846
12847       The four primitive and two structured types according to RFC 8259
12848       section 1, plus 'int' (split off 'number'), plus the obvious top type
12849       'value'.
12850
12851       Values:
12852
12853       "string"
12854           Not documented
12855
12856       "number"
12857           Not documented
12858
12859       "int"
12860           Not documented
12861
12862       "boolean"
12863           Not documented
12864
12865       "null"
12866           Not documented
12867
12868       "object"
12869           Not documented
12870
12871       "array"
12872           Not documented
12873
12874       "value"
12875           Not documented
12876
12877       Since: 2.5
12878
12879       SchemaInfoEnum (Object)
12880
12881       Additional SchemaInfo members for meta-type 'enum'.
12882
12883       Members:
12884
12885       "values: array of string"
12886           the enumeration type's values, in no particular order.
12887
12888       Values of this type are JSON string on the wire.
12889
12890       Since: 2.5
12891
12892       SchemaInfoArray (Object)
12893
12894       Additional SchemaInfo members for meta-type 'array'.
12895
12896       Members:
12897
12898       "element-type: string"
12899           the array type's element type.
12900
12901       Values of this type are JSON array on the wire.
12902
12903       Since: 2.5
12904
12905       SchemaInfoObject (Object)
12906
12907       Additional SchemaInfo members for meta-type 'object'.
12908
12909       Members:
12910
12911       "members: array of SchemaInfoObjectMember"
12912           the object type's (non-variant) members, in no particular order.
12913
12914       "tag: string" (optional)
12915           the name of the member serving as type tag.  An element of
12916           "members" with this name must exist.
12917
12918       "variants: array of SchemaInfoObjectVariant" (optional)
12919           variant members, i.e. additional members that depend on the type
12920           tag's value.  Present exactly when "tag" is present.  The variants
12921           are in no particular order, and may even differ from the order of
12922           the values of the enum type of the "tag".
12923
12924       "features: array of string" (optional)
12925           names of features associated with the type, in no particular order.
12926           (since: 4.1)
12927
12928       Values of this type are JSON object on the wire.
12929
12930       Since: 2.5
12931
12932       SchemaInfoObjectMember (Object)
12933
12934       An object member.
12935
12936       Members:
12937
12938       "name: string"
12939           the member's name, as defined in the QAPI schema.
12940
12941       "type: string"
12942           the name of the member's type.
12943
12944       "default: value" (optional)
12945           default when used as command parameter.  If absent, the parameter
12946           is mandatory.  If present, the value must be null.  The parameter
12947           is optional, and behavior when it's missing is not specified here.
12948           Future extension: if present and non-null, the parameter is
12949           optional, and defaults to this value.
12950
12951       Since: 2.5
12952
12953       SchemaInfoObjectVariant (Object)
12954
12955       The variant members for a value of the type tag.
12956
12957       Members:
12958
12959       "case: string"
12960           a value of the type tag.
12961
12962       "type: string"
12963           the name of the object type that provides the variant members when
12964           the type tag has value "case".
12965
12966       Since: 2.5
12967
12968       SchemaInfoAlternate (Object)
12969
12970       Additional SchemaInfo members for meta-type 'alternate'.
12971
12972       Members:
12973
12974       "members: array of SchemaInfoAlternateMember"
12975           the alternate type's members, in no particular order.  The members'
12976           wire encoding is distinct, see docs/devel/qapi-code-gen.txt section
12977           Alternate types.
12978
12979       On the wire, this can be any of the members.
12980
12981       Since: 2.5
12982
12983       SchemaInfoAlternateMember (Object)
12984
12985       An alternate member.
12986
12987       Members:
12988
12989       "type: string"
12990           the name of the member's type.
12991
12992       Since: 2.5
12993
12994       SchemaInfoCommand (Object)
12995
12996       Additional SchemaInfo members for meta-type 'command'.
12997
12998       Members:
12999
13000       "arg-type: string"
13001           the name of the object type that provides the command's parameters.
13002
13003       "ret-type: string"
13004           the name of the command's result type.
13005
13006       "allow-oob: boolean" (optional)
13007           whether the command allows out-of-band execution, defaults to false
13008           (Since: 2.12)
13009
13010       "features: array of string" (optional)
13011           names of features associated with the command, in no particular
13012           order. (since 4.2)
13013
13014       TODO: "success-response" (currently irrelevant, because it's QGA, not
13015       QMP)
13016
13017       Since: 2.5
13018
13019       SchemaInfoEvent (Object)
13020
13021       Additional SchemaInfo members for meta-type 'event'.
13022
13023       Members:
13024
13025       "arg-type: string"
13026           the name of the object type that provides the event's parameters.
13027
13028       Since: 2.5
13029
13030   QEMU Object Model (QOM)
13031       ObjectPropertyInfo (Object)
13032
13033       Members:
13034
13035       "name: string"
13036           the name of the property
13037
13038       "type: string"
13039           the type of the property.  This will typically come in one of four
13040           forms:
13041
13042           1) A primitive type such as 'u8', 'u16', 'bool', 'str', or
13043           'double'.  These types are mapped to the appropriate JSON type.
13044
13045           2) A child type in the form 'child<subtype>' where subtype is a
13046           qdev device type name.  Child properties create the composition
13047           tree.
13048
13049           3) A link type in the form 'link<subtype>' where subtype is a qdev
13050           device type name.  Link properties form the device model graph.
13051
13052       "description: string" (optional)
13053           if specified, the description of the property.
13054
13055       Since: 1.2
13056
13057       qom-list  (Command) This command will list any properties of a object
13058       given a path in the object model.
13059
13060       Arguments:
13061
13062       "path: string"
13063           the path within the object model.  See "qom-get" for a description
13064           of this parameter.
13065
13066       Returns: a list of "ObjectPropertyInfo" that describe the properties of
13067       the object.
13068
13069       Since: 1.2
13070
13071       Example:
13072
13073               -> { "execute": "qom-list",
13074                    "arguments": { "path": "/chardevs" } }
13075               <- { "return": [ { "name": "type", "type": "string" },
13076                                { "name": "parallel0", "type": "child<chardev-vc>" },
13077                                { "name": "serial0", "type": "child<chardev-vc>" },
13078                                { "name": "mon0", "type": "child<chardev-stdio>" } ] }
13079
13080       qom-get  (Command) This command will get a property from a object model
13081       path and return the value.
13082
13083       Arguments:
13084
13085       "path: string"
13086           The path within the object model.  There are two forms of supported
13087           paths--absolute and partial paths.
13088
13089           Absolute paths are derived from the root object and can follow
13090           child<> or link<> properties.  Since they can follow link<>
13091           properties, they can be arbitrarily long.  Absolute paths look like
13092           absolute filenames and are prefixed  with a leading slash.
13093
13094           Partial paths look like relative filenames.  They do not begin with
13095           a prefix.  The matching rules for partial paths are subtle but
13096           designed to make specifying objects easy.  At each level of the
13097           composition tree, the partial path is matched as an absolute path.
13098           The first match is not returned.  At least two matches are searched
13099           for.  A successful result is only returned if only one match is
13100           found.  If more than one match is found, a flag is return to
13101           indicate that the match was ambiguous.
13102
13103       "property: string"
13104           The property name to read
13105
13106       Returns: The property value.  The type depends on the property type.
13107       child<> and link<> properties are returned as #str pathnames.  All
13108       integer property types (u8, u16, etc) are returned as #int.
13109
13110       Since: 1.2
13111
13112       Example:
13113
13114               1. Use absolute path
13115
13116               -> { "execute": "qom-get",
13117                    "arguments": { "path": "/machine/unattached/device[0]",
13118                                   "property": "hotplugged" } }
13119               <- { "return": false }
13120
13121               2. Use partial path
13122
13123               -> { "execute": "qom-get",
13124                    "arguments": { "path": "unattached/sysbus",
13125                                   "property": "type" } }
13126               <- { "return": "System" }
13127
13128       qom-set  (Command) This command will set a property from a object model
13129       path.
13130
13131       Arguments:
13132
13133       "path: string"
13134           see "qom-get" for a description of this parameter
13135
13136       "property: string"
13137           the property name to set
13138
13139       "value: value"
13140           a value who's type is appropriate for the property type.  See
13141           "qom-get" for a description of type mapping.
13142
13143       Since: 1.2
13144
13145       Example:
13146
13147               -> { "execute": "qom-set",
13148                    "arguments": { "path": "/machine",
13149                                   "property": "graphics",
13150                                   "value": false } }
13151               <- { "return": {} }
13152
13153       ObjectTypeInfo (Object)
13154
13155       This structure describes a search result from "qom-list-types"
13156
13157       Members:
13158
13159       "name: string"
13160           the type name found in the search
13161
13162       "abstract: boolean" (optional)
13163           the type is abstract and can't be directly instantiated.  Omitted
13164           if false. (since 2.10)
13165
13166       "parent: string" (optional)
13167           Name of parent type, if any (since 2.10)
13168
13169       Since: 1.1
13170
13171       qom-list-types  (Command) This command will return a list of types
13172       given search parameters
13173
13174       Arguments:
13175
13176       "implements: string" (optional)
13177           if specified, only return types that implement this type name
13178
13179       "abstract: boolean" (optional)
13180           if true, include abstract types in the results
13181
13182       Returns: a list of "ObjectTypeInfo" or an empty list if no results are
13183       found
13184
13185       Since: 1.1
13186
13187       qom-list-properties  (Command) List properties associated with a QOM
13188       object.
13189
13190       Arguments:
13191
13192       "typename: string"
13193           the type name of an object
13194
13195       Note: objects can create properties at runtime, for example to describe
13196       links between different devices and/or objects. These properties are
13197       not included in the output of this command.
13198
13199       Returns: a list of ObjectPropertyInfo describing object properties
13200
13201       Since: 2.12
13202
13203       object-add  (Command) Create a QOM object.
13204
13205       Arguments:
13206
13207       "qom-type: string"
13208           the class name for the object to be created
13209
13210       "id: string"
13211           the name of the new object
13212
13213       "props: value" (optional)
13214           a dictionary of properties to be passed to the backend
13215
13216       Returns: Nothing on success Error if "qom-type" is not a valid class
13217       name
13218
13219       Since: 2.0
13220
13221       Example:
13222
13223               -> { "execute": "object-add",
13224                    "arguments": { "qom-type": "rng-random", "id": "rng1",
13225                                   "props": { "filename": "/dev/hwrng" } } }
13226               <- { "return": {} }
13227
13228       object-del  (Command) Remove a QOM object.
13229
13230       Arguments:
13231
13232       "id: string"
13233           the name of the QOM object to remove
13234
13235       Returns: Nothing on success Error if "id" is not a valid id for a QOM
13236       object
13237
13238       Since: 2.0
13239
13240       Example:
13241
13242               -> { "execute": "object-del", "arguments": { "id": "rng1" } }
13243               <- { "return": {} }
13244
13245   Device infrastructure (qdev)
13246       device-list-properties  (Command) List properties associated with a
13247       device.
13248
13249       Arguments:
13250
13251       "typename: string"
13252           the type name of a device
13253
13254       Returns: a list of ObjectPropertyInfo describing a devices properties
13255
13256       Note: objects can create properties at runtime, for example to describe
13257       links between different devices and/or objects. These properties are
13258       not included in the output of this command.
13259
13260       Since: 1.2
13261
13262       device_add  (Command)
13263
13264       Arguments:
13265
13266       "driver: string"
13267           the name of the new device's driver
13268
13269       "bus: string" (optional)
13270           the device's parent bus (device tree path)
13271
13272       "id: string" (optional)
13273           the device's ID, must be unique
13274
13275       Additional arguments depend on the type.
13276
13277       Add a device.
13278
13279       Notes:
13280
13281       1.  For detailed information about this command, please refer to the
13282           'docs/qdev-device-use.txt' file.
13283
13284       2.  It's possible to list device properties by running QEMU with the
13285           "-device DEVICE,help" command-line argument, where DEVICE is the
13286           device's name
13287
13288       Example:
13289
13290               -> { "execute": "device_add",
13291                    "arguments": { "driver": "e1000", "id": "net1",
13292                                   "bus": "pci.0",
13293                                   "mac": "52:54:00:12:34:56" } }
13294               <- { "return": {} }
13295
13296       TODO: This command effectively bypasses QAPI completely due to its
13297       "additional arguments" business.  It shouldn't have been added to the
13298       schema in this form.  It should be qapified properly, or replaced by a
13299       properly qapified command.
13300
13301       Since: 0.13
13302
13303       device_del  (Command) Remove a device from a guest
13304
13305       Arguments:
13306
13307       "id: string"
13308           the device's ID or QOM path
13309
13310       Returns: Nothing on success If "id" is not a valid device,
13311       DeviceNotFound
13312
13313       Notes: When this command completes, the device may not be removed from
13314       the guest.  Hot removal is an operation that requires guest
13315       cooperation.  This command merely requests that the guest begin the hot
13316       removal process.  Completion of the device removal process is signaled
13317       with a DEVICE_DELETED event. Guest reset will automatically complete
13318       removal for all devices.
13319
13320       Since: 0.14.0
13321
13322       Example:
13323
13324               -> { "execute": "device_del",
13325                    "arguments": { "id": "net1" } }
13326               <- { "return": {} }
13327
13328               -> { "execute": "device_del",
13329                    "arguments": { "id": "/machine/peripheral-anon/device[0]" } }
13330               <- { "return": {} }
13331
13332       DEVICE_DELETED  (Event) Emitted whenever the device removal completion
13333       is acknowledged by the guest.  At this point, it's safe to reuse the
13334       specified device ID. Device removal can be initiated by the guest or by
13335       HMP/QMP commands.
13336
13337       Arguments:
13338
13339       "device: string" (optional)
13340           device name
13341
13342       "path: string"
13343           device path
13344
13345       Since: 1.5
13346
13347       Example:
13348
13349               <- { "event": "DEVICE_DELETED",
13350                    "data": { "device": "virtio-net-pci-0",
13351                              "path": "/machine/peripheral/virtio-net-pci-0" },
13352                    "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
13353
13354   Machines
13355       SysEmuTarget (Enum)
13356
13357       The comprehensive enumeration of QEMU system emulation ("softmmu")
13358       targets. Run "./configure --help" in the project root directory, and
13359       look for the *-softmmu targets near the "--target-list" option. The
13360       individual target constants are not documented here, for the time
13361       being.
13362
13363       Values:
13364
13365       "aarch64"
13366           Not documented
13367
13368       "alpha"
13369           Not documented
13370
13371       "arm"
13372           Not documented
13373
13374       "cris"
13375           Not documented
13376
13377       "hppa"
13378           Not documented
13379
13380       "i386"
13381           Not documented
13382
13383       "lm32"
13384           Not documented
13385
13386       "m68k"
13387           Not documented
13388
13389       "microblaze"
13390           Not documented
13391
13392       "microblazeel"
13393           Not documented
13394
13395       "mips"
13396           Not documented
13397
13398       "mips64"
13399           Not documented
13400
13401       "mips64el"
13402           Not documented
13403
13404       "mipsel"
13405           Not documented
13406
13407       "moxie"
13408           Not documented
13409
13410       "nios2"
13411           Not documented
13412
13413       "or1k"
13414           Not documented
13415
13416       "ppc"
13417           Not documented
13418
13419       "ppc64"
13420           Not documented
13421
13422       "riscv32"
13423           Not documented
13424
13425       "riscv64"
13426           Not documented
13427
13428       "s390x"
13429           Not documented
13430
13431       "sh4"
13432           Not documented
13433
13434       "sh4eb"
13435           Not documented
13436
13437       "sparc"
13438           Not documented
13439
13440       "sparc64"
13441           Not documented
13442
13443       "tricore"
13444           Not documented
13445
13446       "unicore32"
13447           Not documented
13448
13449       "x86_64"
13450           Not documented
13451
13452       "xtensa"
13453           Not documented
13454
13455       "xtensaeb"
13456           Not documented
13457
13458       Notes: The resulting QMP strings can be appended to the "qemu-system-"
13459       prefix to produce the corresponding QEMU executable name. This is true
13460       even for "qemu-system-x86_64".
13461
13462       ppcemb: dropped in 3.1
13463
13464       Since: 3.0
13465
13466       CpuInfoArch (Enum)
13467
13468       An enumeration of cpu types that enable additional information during
13469       "query-cpus" and "query-cpus-fast".
13470
13471       Values:
13472
13473       "s390"
13474           since 2.12
13475
13476       "riscv"
13477           since 2.12
13478
13479       "x86"
13480           Not documented
13481
13482       "sparc"
13483           Not documented
13484
13485       "ppc"
13486           Not documented
13487
13488       "mips"
13489           Not documented
13490
13491       "tricore"
13492           Not documented
13493
13494       "other"
13495           Not documented
13496
13497       Since: 2.6
13498
13499       CpuInfo (Object)
13500
13501       Information about a virtual CPU
13502
13503       Members:
13504
13505       "CPU: int"
13506           the index of the virtual CPU
13507
13508       "current: boolean"
13509           this only exists for backwards compatibility and should be ignored
13510
13511       "halted: boolean"
13512           true if the virtual CPU is in the halt state.  Halt usually refers
13513           to a processor specific low power mode.
13514
13515       "qom_path: string"
13516           path to the CPU object in the QOM tree (since 2.4)
13517
13518       "thread_id: int"
13519           ID of the underlying host thread
13520
13521       "props: CpuInstanceProperties" (optional)
13522           properties describing to which node/socket/core/thread virtual CPU
13523           belongs to, provided if supported by board (since 2.10)
13524
13525       "arch: CpuInfoArch"
13526           architecture of the cpu, which determines which additional fields
13527           will be listed (since 2.6)
13528
13529       The members of "CpuInfoX86" when "arch" is "x86"
13530       The members of "CpuInfoSPARC" when "arch" is "sparc"
13531       The members of "CpuInfoPPC" when "arch" is "ppc"
13532       The members of "CpuInfoMIPS" when "arch" is "mips"
13533       The members of "CpuInfoTricore" when "arch" is "tricore"
13534       The members of "CpuInfoS390" when "arch" is "s390"
13535       The members of "CpuInfoRISCV" when "arch" is "riscv"
13536
13537       Since: 0.14.0
13538
13539       Notes: "halted" is a transient state that changes frequently.  By the
13540       time the data is sent to the client, the guest may no longer be halted.
13541
13542       CpuInfoX86 (Object)
13543
13544       Additional information about a virtual i386 or x86_64 CPU
13545
13546       Members:
13547
13548       "pc: int"
13549           the 64-bit instruction pointer
13550
13551       Since: 2.6
13552
13553       CpuInfoSPARC (Object)
13554
13555       Additional information about a virtual SPARC CPU
13556
13557       Members:
13558
13559       "pc: int"
13560           the PC component of the instruction pointer
13561
13562       "npc: int"
13563           the NPC component of the instruction pointer
13564
13565       Since: 2.6
13566
13567       CpuInfoPPC (Object)
13568
13569       Additional information about a virtual PPC CPU
13570
13571       Members:
13572
13573       "nip: int"
13574           the instruction pointer
13575
13576       Since: 2.6
13577
13578       CpuInfoMIPS (Object)
13579
13580       Additional information about a virtual MIPS CPU
13581
13582       Members:
13583
13584       "PC: int"
13585           the instruction pointer
13586
13587       Since: 2.6
13588
13589       CpuInfoTricore (Object)
13590
13591       Additional information about a virtual Tricore CPU
13592
13593       Members:
13594
13595       "PC: int"
13596           the instruction pointer
13597
13598       Since: 2.6
13599
13600       CpuInfoRISCV (Object)
13601
13602       Additional information about a virtual RISCV CPU
13603
13604       Members:
13605
13606       "pc: int"
13607           the instruction pointer
13608
13609       Since 2.12
13610
13611       CpuS390State (Enum)
13612
13613       An enumeration of cpu states that can be assumed by a virtual S390 CPU
13614
13615       Values:
13616
13617       "uninitialized"
13618           Not documented
13619
13620       "stopped"
13621           Not documented
13622
13623       "check-stop"
13624           Not documented
13625
13626       "operating"
13627           Not documented
13628
13629       "load"
13630           Not documented
13631
13632       Since: 2.12
13633
13634       CpuInfoS390 (Object)
13635
13636       Additional information about a virtual S390 CPU
13637
13638       Members:
13639
13640       "cpu-state: CpuS390State"
13641           the virtual CPU's state
13642
13643       Since: 2.12
13644
13645       query-cpus  (Command) Returns a list of information about each virtual
13646       CPU.
13647
13648       This command causes vCPU threads to exit to userspace, which causes a
13649       small interruption to guest CPU execution. This will have a negative
13650       impact on realtime guests and other latency sensitive guest workloads.
13651       It is recommended to use "query-cpus-fast" instead of this command to
13652       avoid the vCPU interruption.
13653
13654       Returns: a list of "CpuInfo" for each virtual CPU
13655
13656       Since: 0.14.0
13657
13658       Example:
13659
13660               -> { "execute": "query-cpus" }
13661               <- { "return": [
13662                        {
13663                           "CPU":0,
13664                           "current":true,
13665                           "halted":false,
13666                           "qom_path":"/machine/unattached/device[0]",
13667                           "arch":"x86",
13668                           "pc":3227107138,
13669                           "thread_id":3134
13670                        },
13671                        {
13672                           "CPU":1,
13673                           "current":false,
13674                           "halted":true,
13675                           "qom_path":"/machine/unattached/device[2]",
13676                           "arch":"x86",
13677                           "pc":7108165,
13678                           "thread_id":3135
13679                        }
13680                     ]
13681                  }
13682
13683       Notes: This interface is deprecated (since 2.12.0), and it is strongly
13684       recommended that you avoid using it. Use "query-cpus-fast" to obtain
13685       information about virtual CPUs.
13686
13687       CpuInfoFast (Object)
13688
13689       Information about a virtual CPU
13690
13691       Members:
13692
13693       "cpu-index: int"
13694           index of the virtual CPU
13695
13696       "qom-path: string"
13697           path to the CPU object in the QOM tree
13698
13699       "thread-id: int"
13700           ID of the underlying host thread
13701
13702       "props: CpuInstanceProperties" (optional)
13703           properties describing to which node/socket/core/thread virtual CPU
13704           belongs to, provided if supported by board
13705
13706       "arch: CpuInfoArch"
13707           base architecture of the cpu; deprecated since 3.0.0 in favor of
13708           "target"
13709
13710       "target: SysEmuTarget"
13711           the QEMU system emulation target, which determines which additional
13712           fields will be listed (since 3.0)
13713
13714       The members of "CpuInfoS390" when "target" is "s390x"
13715
13716       Since: 2.12
13717
13718       query-cpus-fast  (Command) Returns information about all virtual CPUs.
13719       This command does not incur a performance penalty and should be used in
13720       production instead of query-cpus.
13721
13722       Returns: list of "CpuInfoFast"
13723
13724       Since: 2.12
13725
13726       Example:
13727
13728               -> { "execute": "query-cpus-fast" }
13729               <- { "return": [
13730                       {
13731                           "thread-id": 25627,
13732                           "props": {
13733                               "core-id": 0,
13734                               "thread-id": 0,
13735                               "socket-id": 0
13736                           },
13737                           "qom-path": "/machine/unattached/device[0]",
13738                           "arch":"x86",
13739                           "target":"x86_64",
13740                           "cpu-index": 0
13741                       },
13742                       {
13743                           "thread-id": 25628,
13744                           "props": {
13745                               "core-id": 0,
13746                               "thread-id": 0,
13747                               "socket-id": 1
13748                           },
13749                           "qom-path": "/machine/unattached/device[2]",
13750                           "arch":"x86",
13751                           "target":"x86_64",
13752                           "cpu-index": 1
13753                       }
13754                   ]
13755               }
13756
13757       cpu-add  (Command) Adds CPU with specified ID.
13758
13759       Arguments:
13760
13761       "id: int"
13762           ID of CPU to be created, valid values [0..max_cpus)
13763
13764       Returns: Nothing on success
13765
13766       Since: 1.5
13767
13768       Note: This command is deprecated.  The `device_add` command should be
13769       used instead.  See the `query-hotpluggable-cpus` command for details.
13770
13771       Example:
13772
13773               -> { "execute": "cpu-add", "arguments": { "id": 2 } }
13774               <- { "return": {} }
13775
13776       MachineInfo (Object)
13777
13778       Information describing a machine.
13779
13780       Members:
13781
13782       "name: string"
13783           the name of the machine
13784
13785       "alias: string" (optional)
13786           an alias for the machine name
13787
13788       "is-default: boolean" (optional)
13789           whether the machine is default
13790
13791       "cpu-max: int"
13792           maximum number of CPUs supported by the machine type (since 1.5.0)
13793
13794       "hotpluggable-cpus: boolean"
13795           cpu hotplug via -device is supported (since 2.7.0)
13796
13797       "numa-mem-supported: boolean"
13798           true if '-numa node,mem' option is supported by the machine type
13799           and false otherwise (since 4.1)
13800
13801       "deprecated: boolean"
13802           if true, the machine type is deprecated and may be removed in
13803           future versions of QEMU according to the QEMU deprecation policy
13804           (since 4.1.0)
13805
13806       "default-cpu-type: string" (optional)
13807           default CPU model typename if none is requested via the -cpu
13808           argument. (since 4.2)
13809
13810       Since: 1.2.0
13811
13812       query-machines  (Command) Return a list of supported machines
13813
13814       Returns: a list of MachineInfo
13815
13816       Since: 1.2.0
13817
13818       CurrentMachineParams (Object)
13819
13820       Information describing the running machine parameters.
13821
13822       Members:
13823
13824       "wakeup-suspend-support: boolean"
13825           true if the machine supports wake up from suspend
13826
13827       Since: 4.0
13828
13829       query-current-machine  (Command) Return information on the current
13830       virtual machine.
13831
13832       Returns: CurrentMachineParams
13833
13834       Since: 4.0
13835
13836       TargetInfo (Object)
13837
13838       Information describing the QEMU target.
13839
13840       Members:
13841
13842       "arch: SysEmuTarget"
13843           the target architecture
13844
13845       Since: 1.2.0
13846
13847       query-target  (Command) Return information about the target for this
13848       QEMU
13849
13850       Returns: TargetInfo
13851
13852       Since: 1.2.0
13853
13854       NumaOptionsType (Enum)
13855
13856       Values:
13857
13858       "node"
13859           NUMA nodes configuration
13860
13861       "dist"
13862           NUMA distance configuration (since 2.10)
13863
13864       "cpu"
13865           property based CPU(s) to node mapping (Since: 2.10)
13866
13867       Since: 2.1
13868
13869       NumaOptions (Object)
13870
13871       A discriminated record of NUMA options. (for OptsVisitor)
13872
13873       Members:
13874
13875       "type: NumaOptionsType"
13876           Not documented
13877
13878       The members of "NumaNodeOptions" when "type" is "node"
13879       The members of "NumaDistOptions" when "type" is "dist"
13880       The members of "NumaCpuOptions" when "type" is "cpu"
13881
13882       Since: 2.1
13883
13884       NumaNodeOptions (Object)
13885
13886       Create a guest NUMA node. (for OptsVisitor)
13887
13888       Members:
13889
13890       "nodeid: int" (optional)
13891           NUMA node ID (increase by 1 from 0 if omitted)
13892
13893       "cpus: array of int" (optional)
13894           VCPUs belonging to this node (assign VCPUS round-robin if omitted)
13895
13896       "mem: int" (optional)
13897           memory size of this node; mutually exclusive with "memdev".
13898           Equally divide total memory among nodes if both "mem" and "memdev"
13899           are omitted.
13900
13901       "memdev: string" (optional)
13902           memory backend object.  If specified for one node, it must be
13903           specified for all nodes.
13904
13905       Since: 2.1
13906
13907       NumaDistOptions (Object)
13908
13909       Set the distance between 2 NUMA nodes.
13910
13911       Members:
13912
13913       "src: int"
13914           source NUMA node.
13915
13916       "dst: int"
13917           destination NUMA node.
13918
13919       "val: int"
13920           NUMA distance from source node to destination node.  When a node is
13921           unreachable from another node, set the distance between them to
13922           255.
13923
13924       Since: 2.10
13925
13926       X86CPURegister32 (Enum)
13927
13928       A X86 32-bit register
13929
13930       Values:
13931
13932       "EAX"
13933           Not documented
13934
13935       "EBX"
13936           Not documented
13937
13938       "ECX"
13939           Not documented
13940
13941       "EDX"
13942           Not documented
13943
13944       "ESP"
13945           Not documented
13946
13947       "EBP"
13948           Not documented
13949
13950       "ESI"
13951           Not documented
13952
13953       "EDI"
13954           Not documented
13955
13956       Since: 1.5
13957
13958       X86CPUFeatureWordInfo (Object)
13959
13960       Information about a X86 CPU feature word
13961
13962       Members:
13963
13964       "cpuid-input-eax: int"
13965           Input EAX value for CPUID instruction for that feature word
13966
13967       "cpuid-input-ecx: int" (optional)
13968           Input ECX value for CPUID instruction for that feature word
13969
13970       "cpuid-register: X86CPURegister32"
13971           Output register containing the feature bits
13972
13973       "features: int"
13974           value of output register, containing the feature bits
13975
13976       Since: 1.5
13977
13978       DummyForceArrays (Object)
13979
13980       Not used by QMP; hack to let us use X86CPUFeatureWordInfoList
13981       internally
13982
13983       Members:
13984
13985       "unused: array of X86CPUFeatureWordInfo"
13986           Not documented
13987
13988       Since: 2.5
13989
13990       NumaCpuOptions (Object)
13991
13992       Option "-numa cpu" overrides default cpu to node mapping.  It accepts
13993       the same set of cpu properties as returned by
13994       query-hotpluggable-cpus[].props, where node-id could be used to
13995       override default node mapping.
13996
13997       Members:
13998
13999       The members of "CpuInstanceProperties"
14000
14001       Since: 2.10
14002
14003       HostMemPolicy (Enum)
14004
14005       Host memory policy types
14006
14007       Values:
14008
14009       "default"
14010           restore default policy, remove any nondefault policy
14011
14012       "preferred"
14013           set the preferred host nodes for allocation
14014
14015       "bind"
14016           a strict policy that restricts memory allocation to the host nodes
14017           specified
14018
14019       "interleave"
14020           memory allocations are interleaved across the set of host nodes
14021           specified
14022
14023       Since: 2.1
14024
14025       Memdev (Object)
14026
14027       Information about memory backend
14028
14029       Members:
14030
14031       "id: string" (optional)
14032           backend's ID if backend has 'id' property (since 2.9)
14033
14034       "size: int"
14035           memory backend size
14036
14037       "merge: boolean"
14038           enables or disables memory merge support
14039
14040       "dump: boolean"
14041           includes memory backend's memory in a core dump or not
14042
14043       "prealloc: boolean"
14044           enables or disables memory preallocation
14045
14046       "host-nodes: array of int"
14047           host nodes for its memory policy
14048
14049       "policy: HostMemPolicy"
14050           memory policy of memory backend
14051
14052       Since: 2.1
14053
14054       query-memdev  (Command) Returns information for all memory backends.
14055
14056       Returns: a list of "Memdev".
14057
14058       Since: 2.1
14059
14060       Example:
14061
14062               -> { "execute": "query-memdev" }
14063               <- { "return": [
14064                      {
14065                        "id": "mem1",
14066                        "size": 536870912,
14067                        "merge": false,
14068                        "dump": true,
14069                        "prealloc": false,
14070                        "host-nodes": [0, 1],
14071                        "policy": "bind"
14072                      },
14073                      {
14074                        "size": 536870912,
14075                        "merge": false,
14076                        "dump": true,
14077                        "prealloc": true,
14078                        "host-nodes": [2, 3],
14079                        "policy": "preferred"
14080                      }
14081                    ]
14082                  }
14083
14084       CpuInstanceProperties (Object)
14085
14086       List of properties to be used for hotplugging a CPU instance, it should
14087       be passed by management with device_add command when a CPU is being
14088       hotplugged.
14089
14090       Members:
14091
14092       "node-id: int" (optional)
14093           NUMA node ID the CPU belongs to
14094
14095       "socket-id: int" (optional)
14096           socket number within node/board the CPU belongs to
14097
14098       "die-id: int" (optional)
14099           die number within node/board the CPU belongs to (Since 4.1)
14100
14101       "core-id: int" (optional)
14102           core number within die the CPU belongs to# "thread-id": thread
14103           number within core the CPU belongs to
14104
14105       "thread-id: int" (optional)
14106           Not documented
14107
14108       Note: currently there are 5 properties that could be present but
14109       management should be prepared to pass through other properties with
14110       device_add command to allow for future interface extension. This also
14111       requires the filed names to be kept in sync with the properties passed
14112       to -device/device_add.
14113
14114       Since: 2.7
14115
14116       HotpluggableCPU (Object)
14117
14118       Members:
14119
14120       "type: string"
14121           CPU object type for usage with device_add command
14122
14123       "props: CpuInstanceProperties"
14124           list of properties to be used for hotplugging CPU
14125
14126       "vcpus-count: int"
14127           number of logical VCPU threads "HotpluggableCPU" provides
14128
14129       "qom-path: string" (optional)
14130           link to existing CPU object if CPU is present or omitted if CPU is
14131           not present.
14132
14133       Since: 2.7
14134
14135       query-hotpluggable-cpus  (Command)
14136
14137       TODO: Better documentation; currently there is none.
14138
14139       Returns: a list of HotpluggableCPU objects.
14140
14141       Since: 2.7
14142
14143       Example:
14144
14145               For pseries machine type started with -smp 2,cores=2,maxcpus=4 -cpu POWER8:
14146
14147               -> { "execute": "query-hotpluggable-cpus" }
14148               <- {"return": [
14149                    { "props": { "core": 8 }, "type": "POWER8-spapr-cpu-core",
14150                      "vcpus-count": 1 },
14151                    { "props": { "core": 0 }, "type": "POWER8-spapr-cpu-core",
14152                      "vcpus-count": 1, "qom-path": "/machine/unattached/device[0]"}
14153                  ]}'
14154
14155               For pc machine type started with -smp 1,maxcpus=2:
14156
14157               -> { "execute": "query-hotpluggable-cpus" }
14158               <- {"return": [
14159                    {
14160                       "type": "qemu64-x86_64-cpu", "vcpus-count": 1,
14161                       "props": {"core-id": 0, "socket-id": 1, "thread-id": 0}
14162                    },
14163                    {
14164                       "qom-path": "/machine/unattached/device[0]",
14165                       "type": "qemu64-x86_64-cpu", "vcpus-count": 1,
14166                       "props": {"core-id": 0, "socket-id": 0, "thread-id": 0}
14167                    }
14168                  ]}
14169
14170               For s390x-virtio-ccw machine type started with -smp 1,maxcpus=2 -cpu qemu
14171               (Since: 2.11):
14172
14173               -> { "execute": "query-hotpluggable-cpus" }
14174               <- {"return": [
14175                    {
14176                       "type": "qemu-s390x-cpu", "vcpus-count": 1,
14177                       "props": { "core-id": 1 }
14178                    },
14179                    {
14180                       "qom-path": "/machine/unattached/device[0]",
14181                       "type": "qemu-s390x-cpu", "vcpus-count": 1,
14182                       "props": { "core-id": 0 }
14183                    }
14184                  ]}
14185
14186       set-numa-node  (Command) Runtime equivalent of '-numa' CLI option,
14187       available at preconfigure stage to configure numa mapping before
14188       initializing machine.
14189
14190       Since 3.0
14191
14192       Arguments: the members of "NumaOptions"
14193
14194       CpuModelInfo (Object)
14195
14196       Virtual CPU model.
14197
14198       A CPU model consists of the name of a CPU definition, to which delta
14199       changes are applied (e.g. features added/removed). Most magic values
14200       that an architecture might require should be hidden behind the name.
14201       However, if required, architectures can expose relevant properties.
14202
14203       Members:
14204
14205       "name: string"
14206           the name of the CPU definition the model is based on
14207
14208       "props: value" (optional)
14209           a dictionary of QOM properties to be applied
14210
14211       Since: 2.8.0
14212
14213       CpuModelExpansionType (Enum)
14214
14215       An enumeration of CPU model expansion types.
14216
14217       Values:
14218
14219       "static"
14220           Expand to a static CPU model, a combination of a static base model
14221           name and property delta changes. As the static base model will
14222           never change, the expanded CPU model will be the same, independent
14223           of QEMU version, machine type, machine options, and accelerator
14224           options.  Therefore, the resulting model can be used by tooling
14225           without having to specify a compatibility machine - e.g. when
14226           displaying the "host" model. The "static" CPU models are migration-
14227           safe.
14228
14229       "full"
14230           Expand all properties. The produced model is not guaranteed to be
14231           migration-safe, but allows tooling to get an insight and work with
14232           model details.
14233
14234       Note: When a non-migration-safe CPU model is expanded in static mode,
14235       some features enabled by the CPU model may be omitted, because they
14236       can't be implemented by a static CPU model definition (e.g. cache info
14237       passthrough and PMU passthrough in x86). If you need an accurate
14238       representation of the features enabled by a non-migration-safe CPU
14239       model, use "full". If you need a static representation that will keep
14240       ABI compatibility even when changing QEMU version or machine-type, use
14241       "static" (but keep in mind that some features may be omitted).
14242
14243       Since: 2.8.0
14244
14245       CpuModelCompareResult (Enum)
14246
14247       An enumeration of CPU model comparison results. The result is usually
14248       calculated using e.g. CPU features or CPU generations.
14249
14250       Values:
14251
14252       "incompatible"
14253           If model A is incompatible to model B, model A is not guaranteed to
14254           run where model B runs and the other way around.
14255
14256       "identical"
14257           If model A is identical to model B, model A is guaranteed to run
14258           where model B runs and the other way around.
14259
14260       "superset"
14261           If model A is a superset of model B, model B is guaranteed to run
14262           where model A runs. There are no guarantees about the other way.
14263
14264       "subset"
14265           If model A is a subset of model B, model A is guaranteed to run
14266           where model B runs. There are no guarantees about the other way.
14267
14268       Since: 2.8.0
14269
14270       CpuModelBaselineInfo (Object)
14271
14272       The result of a CPU model baseline.
14273
14274       Members:
14275
14276       "model: CpuModelInfo"
14277           the baselined CpuModelInfo.
14278
14279       Since: 2.8.0
14280
14281       If: "defined(TARGET_S390X)"
14282
14283       CpuModelCompareInfo (Object)
14284
14285       The result of a CPU model comparison.
14286
14287       Members:
14288
14289       "result: CpuModelCompareResult"
14290           The result of the compare operation.
14291
14292       "responsible-properties: array of string"
14293           List of properties that led to the comparison result not being
14294           identical.
14295
14296       "responsible-properties" is a list of QOM property names that led to
14297       both CPUs not being detected as identical. For identical models, this
14298       list is empty.  If a QOM property is read-only, that means there's no
14299       known way to make the CPU models identical. If the special property
14300       name "type" is included, the models are by definition not identical and
14301       cannot be made identical.
14302
14303       Since: 2.8.0
14304
14305       If: "defined(TARGET_S390X)"
14306
14307       query-cpu-model-comparison  (Command) Compares two CPU models,
14308       returning how they compare in a specific configuration. The results
14309       indicates how both models compare regarding runnability. This result
14310       can be used by tooling to make decisions if a certain CPU model will
14311       run in a certain configuration or if a compatible CPU model has to be
14312       created by baselining.
14313
14314       Usually, a CPU model is compared against the maximum possible CPU model
14315       of a certain configuration (e.g. the "host" model for KVM). If that CPU
14316       model is identical or a subset, it will run in that configuration.
14317
14318       The result returned by this command may be affected by:
14319
14320       ·   QEMU version: CPU models may look different depending on the QEMU
14321           version.  (Except for CPU models reported as "static" in query-cpu-
14322           definitions.)
14323
14324       ·   machine-type: CPU model may look different depending on the
14325           machine-type.  (Except for CPU models reported as "static" in
14326           query-cpu-definitions.)
14327
14328       ·   machine options (including accelerator): in some architectures, CPU
14329           models may look different depending on machine and accelerator
14330           options. (Except for CPU models reported as "static" in query-cpu-
14331           definitions.)
14332
14333       ·   "-cpu" arguments and global properties: arguments to the -cpu
14334           option and global properties may affect expansion of CPU models.
14335           Using query-cpu-model-expansion while using these is not advised.
14336
14337       Some architectures may not support comparing CPU models. s390x supports
14338       comparing CPU models.
14339
14340       Arguments:
14341
14342       "modela: CpuModelInfo"
14343           Not documented
14344
14345       "modelb: CpuModelInfo"
14346           Not documented
14347
14348       Returns: a CpuModelBaselineInfo. Returns an error if comparing CPU
14349       models is not supported, if a model cannot be used, if a model contains
14350       an unknown cpu definition name, unknown properties or properties with
14351       wrong types.
14352
14353       Note: this command isn't specific to s390x, but is only implemented on
14354       this architecture currently.
14355
14356       Since: 2.8.0
14357
14358       If: "defined(TARGET_S390X)"
14359
14360       query-cpu-model-baseline  (Command) Baseline two CPU models, creating a
14361       compatible third model. The created model will always be a static,
14362       migration-safe CPU model (see "static" CPU model expansion for
14363       details).
14364
14365       This interface can be used by tooling to create a compatible CPU model
14366       out two CPU models. The created CPU model will be identical to or a
14367       subset of both CPU models when comparing them. Therefore, the created
14368       CPU model is guaranteed to run where the given CPU models run.
14369
14370       The result returned by this command may be affected by:
14371
14372       ·   QEMU version: CPU models may look different depending on the QEMU
14373           version.  (Except for CPU models reported as "static" in query-cpu-
14374           definitions.)
14375
14376       ·   machine-type: CPU model may look different depending on the
14377           machine-type.  (Except for CPU models reported as "static" in
14378           query-cpu-definitions.)
14379
14380       ·   machine options (including accelerator): in some architectures, CPU
14381           models may look different depending on machine and accelerator
14382           options. (Except for CPU models reported as "static" in query-cpu-
14383           definitions.)
14384
14385       ·   "-cpu" arguments and global properties: arguments to the -cpu
14386           option and global properties may affect expansion of CPU models.
14387           Using query-cpu-model-expansion while using these is not advised.
14388
14389       Some architectures may not support baselining CPU models. s390x
14390       supports baselining CPU models.
14391
14392       Arguments:
14393
14394       "modela: CpuModelInfo"
14395           Not documented
14396
14397       "modelb: CpuModelInfo"
14398           Not documented
14399
14400       Returns: a CpuModelBaselineInfo. Returns an error if baselining CPU
14401       models is not supported, if a model cannot be used, if a model contains
14402       an unknown cpu definition name, unknown properties or properties with
14403       wrong types.
14404
14405       Note: this command isn't specific to s390x, but is only implemented on
14406       this architecture currently.
14407
14408       Since: 2.8.0
14409
14410       If: "defined(TARGET_S390X)"
14411
14412       CpuModelExpansionInfo (Object)
14413
14414       The result of a cpu model expansion.
14415
14416       Members:
14417
14418       "model: CpuModelInfo"
14419           the expanded CpuModelInfo.
14420
14421       Since: 2.8.0
14422
14423       If: "defined(TARGET_S390X) || defined(TARGET_I386) ||
14424       defined(TARGET_ARM)"
14425
14426       query-cpu-model-expansion  (Command) Expands a given CPU model (or a
14427       combination of CPU model + additional options) to different
14428       granularities, allowing tooling to get an understanding what a specific
14429       CPU model looks like in QEMU under a certain configuration.
14430
14431       This interface can be used to query the "host" CPU model.
14432
14433       The data returned by this command may be affected by:
14434
14435       ·   QEMU version: CPU models may look different depending on the QEMU
14436           version.  (Except for CPU models reported as "static" in query-cpu-
14437           definitions.)
14438
14439       ·   machine-type: CPU model  may look different depending on the
14440           machine-type.  (Except for CPU models reported as "static" in
14441           query-cpu-definitions.)
14442
14443       ·   machine options (including accelerator): in some architectures, CPU
14444           models may look different depending on machine and accelerator
14445           options. (Except for CPU models reported as "static" in query-cpu-
14446           definitions.)
14447
14448       ·   "-cpu" arguments and global properties: arguments to the -cpu
14449           option and global properties may affect expansion of CPU models.
14450           Using query-cpu-model-expansion while using these is not advised.
14451
14452       Some architectures may not support all expansion types. s390x supports
14453       "full" and "static". Arm only supports "full".
14454
14455       Arguments:
14456
14457       "type: CpuModelExpansionType"
14458           Not documented
14459
14460       "model: CpuModelInfo"
14461           Not documented
14462
14463       Returns: a CpuModelExpansionInfo. Returns an error if expanding CPU
14464       models is not supported, if the model cannot be expanded, if the model
14465       contains an unknown CPU definition name, unknown properties or
14466       properties with a wrong type. Also returns an error if an expansion
14467       type is not supported.
14468
14469       Since: 2.8.0
14470
14471       If: "defined(TARGET_S390X) || defined(TARGET_I386) ||
14472       defined(TARGET_ARM)"
14473
14474       CpuDefinitionInfo (Object)
14475
14476       Virtual CPU definition.
14477
14478       Members:
14479
14480       "name: string"
14481           the name of the CPU definition
14482
14483       "migration-safe: boolean" (optional)
14484           whether a CPU definition can be safely used for migration in
14485           combination with a QEMU compatibility machine when migrating
14486           between different QEMU versions and between hosts with different
14487           sets of (hardware or software) capabilities. If not provided,
14488           information is not available and callers should not assume the CPU
14489           definition to be migration-safe. (since 2.8)
14490
14491       "static: boolean"
14492           whether a CPU definition is static and will not change depending on
14493           QEMU version, machine type, machine options and accelerator
14494           options.  A static model is always migration-safe. (since 2.8)
14495
14496       "unavailable-features: array of string" (optional)
14497           List of properties that prevent the CPU model from running in the
14498           current host. (since 2.8)
14499
14500       "typename: string"
14501           Type name that can be used as argument to "device-list-properties",
14502           to introspect properties configurable using -cpu or -global.
14503           (since 2.9)
14504
14505       "alias-of: string" (optional)
14506           Name of CPU model this model is an alias for.  The target of the
14507           CPU model alias may change depending on the machine type.
14508           Management software is supposed to translate CPU model aliases in
14509           the VM configuration, because aliases may stop being migration-safe
14510           in the future (since 4.1)
14511
14512       "unavailable-features" is a list of QOM property names that represent
14513       CPU model attributes that prevent the CPU from running.  If the QOM
14514       property is read-only, that means there's no known way to make the CPU
14515       model run in the current host. Implementations that choose not to
14516       provide specific information return the property name "type".  If the
14517       property is read-write, it means that it MAY be possible to run the CPU
14518       model in the current host if that property is changed. Management
14519       software can use it as hints to suggest or choose an alternative for
14520       the user, or just to generate meaningful error messages explaining why
14521       the CPU model can't be used.  If "unavailable-features" is an empty
14522       list, the CPU model is runnable using the current host and machine-
14523       type.  If "unavailable-features" is not present, runnability
14524       information for the CPU is not available.
14525
14526       Since: 1.2.0
14527
14528       If: "defined(TARGET_PPC) || defined(TARGET_ARM) || defined(TARGET_I386)
14529       || defined(TARGET_S390X) || defined(TARGET_MIPS)"
14530
14531       query-cpu-definitions  (Command) Return a list of supported virtual CPU
14532       definitions
14533
14534       Returns: a list of CpuDefInfo
14535
14536       Since: 1.2.0
14537
14538       If: "defined(TARGET_PPC) || defined(TARGET_ARM) || defined(TARGET_I386)
14539       || defined(TARGET_S390X) || defined(TARGET_MIPS)"
14540
14541   Miscellanea
14542       qmp_capabilities  (Command) Enable QMP capabilities.
14543
14544       Arguments:
14545
14546       Arguments:
14547
14548       "enable: array of QMPCapability" (optional)
14549           An optional list of QMPCapability values to enable.  The client
14550           must not enable any capability that is not mentioned in the QMP
14551           greeting message.  If the field is not provided, it means no QMP
14552           capabilities will be enabled.  (since 2.12)
14553
14554       Example:
14555
14556               -> { "execute": "qmp_capabilities",
14557                    "arguments": { "enable": [ "oob" ] } }
14558               <- { "return": {} }
14559
14560       Notes: This command is valid exactly when first connecting: it must be
14561       issued before any other command will be accepted, and will fail once
14562       the monitor is accepting other commands. (see qemu
14563       docs/interop/qmp-spec.txt)
14564
14565       The QMP client needs to explicitly enable QMP capabilities, otherwise
14566       all the QMP capabilities will be turned off by default.
14567
14568       Since: 0.13
14569
14570       QMPCapability (Enum)
14571
14572       Enumeration of capabilities to be advertised during initial client
14573       connection, used for agreeing on particular QMP extension behaviors.
14574
14575       Values:
14576
14577       "oob"
14578           QMP ability to support out-of-band requests.  (Please refer to
14579           qmp-spec.txt for more information on OOB)
14580
14581       Since: 2.12
14582
14583       VersionTriple (Object)
14584
14585       A three-part version number.
14586
14587       Members:
14588
14589       "major: int"
14590           The major version number.
14591
14592       "minor: int"
14593           The minor version number.
14594
14595       "micro: int"
14596           The micro version number.
14597
14598       Since: 2.4
14599
14600       VersionInfo (Object)
14601
14602       A description of QEMU's version.
14603
14604       Members:
14605
14606       "qemu: VersionTriple"
14607           The version of QEMU.  By current convention, a micro version of 50
14608           signifies a development branch.  A micro version greater than or
14609           equal to 90 signifies a release candidate for the next minor
14610           version.  A micro version of less than 50 signifies a stable
14611           release.
14612
14613       "package: string"
14614           QEMU will always set this field to an empty string.  Downstream
14615           versions of QEMU should set this to a non-empty string.  The exact
14616           format depends on the downstream however it highly recommended that
14617           a unique name is used.
14618
14619       Since: 0.14.0
14620
14621       query-version  (Command) Returns the current version of QEMU.
14622
14623       Returns: A "VersionInfo" object describing the current version of QEMU.
14624
14625       Since: 0.14.0
14626
14627       Example:
14628
14629               -> { "execute": "query-version" }
14630               <- {
14631                     "return":{
14632                        "qemu":{
14633                           "major":0,
14634                           "minor":11,
14635                           "micro":5
14636                        },
14637                        "package":""
14638                     }
14639                  }
14640
14641       CommandInfo (Object)
14642
14643       Information about a QMP command
14644
14645       Members:
14646
14647       "name: string"
14648           The command name
14649
14650       Since: 0.14.0
14651
14652       query-commands  (Command) Return a list of supported QMP commands by
14653       this server
14654
14655       Returns: A list of "CommandInfo" for all supported commands
14656
14657       Since: 0.14.0
14658
14659       Example:
14660
14661               -> { "execute": "query-commands" }
14662               <- {
14663                    "return":[
14664                       {
14665                          "name":"query-balloon"
14666                       },
14667                       {
14668                          "name":"system_powerdown"
14669                       }
14670                    ]
14671                  }
14672
14673       Note: This example has been shortened as the real response is too long.
14674
14675       LostTickPolicy (Enum)
14676
14677       Policy for handling lost ticks in timer devices.
14678
14679       Values:
14680
14681       "discard"
14682           throw away the missed tick(s) and continue with future injection
14683           normally.  Guest time may be delayed, unless the OS has explicit
14684           handling of lost ticks
14685
14686       "delay"
14687           continue to deliver ticks at the normal rate.  Guest time will be
14688           delayed due to the late tick
14689
14690       "slew"
14691           deliver ticks at a higher rate to catch up with the missed tick.
14692           The guest time should not be delayed once catchup is complete.
14693
14694       Since: 2.0
14695
14696       add_client  (Command) Allow client connections for VNC, Spice and
14697       socket based character devices to be passed in to QEMU via SCM_RIGHTS.
14698
14699       Arguments:
14700
14701       "protocol: string"
14702           protocol name. Valid names are "vnc", "spice" or the name of a
14703           character device (eg. from -chardev id=XXXX)
14704
14705       "fdname: string"
14706           file descriptor name previously passed via 'getfd' command
14707
14708       "skipauth: boolean" (optional)
14709           whether to skip authentication. Only applies to "vnc" and "spice"
14710           protocols
14711
14712       "tls: boolean" (optional)
14713           whether to perform TLS. Only applies to the "spice" protocol
14714
14715       Returns: nothing on success.
14716
14717       Since: 0.14.0
14718
14719       Example:
14720
14721               -> { "execute": "add_client", "arguments": { "protocol": "vnc",
14722                                                            "fdname": "myclient" } }
14723               <- { "return": {} }
14724
14725       NameInfo (Object)
14726
14727       Guest name information.
14728
14729       Members:
14730
14731       "name: string" (optional)
14732           The name of the guest
14733
14734       Since: 0.14.0
14735
14736       query-name  (Command) Return the name information of a guest.
14737
14738       Returns: "NameInfo" of the guest
14739
14740       Since: 0.14.0
14741
14742       Example:
14743
14744               -> { "execute": "query-name" }
14745               <- { "return": { "name": "qemu-name" } }
14746
14747       KvmInfo (Object)
14748
14749       Information about support for KVM acceleration
14750
14751       Members:
14752
14753       "enabled: boolean"
14754           true if KVM acceleration is active
14755
14756       "present: boolean"
14757           true if KVM acceleration is built into this executable
14758
14759       Since: 0.14.0
14760
14761       query-kvm  (Command) Returns information about KVM acceleration
14762
14763       Returns: "KvmInfo"
14764
14765       Since: 0.14.0
14766
14767       Example:
14768
14769               -> { "execute": "query-kvm" }
14770               <- { "return": { "enabled": true, "present": true } }
14771
14772       UuidInfo (Object)
14773
14774       Guest UUID information (Universally Unique Identifier).
14775
14776       Members:
14777
14778       "UUID: string"
14779           the UUID of the guest
14780
14781       Since: 0.14.0
14782
14783       Notes: If no UUID was specified for the guest, a null UUID is returned.
14784
14785       query-uuid  (Command) Query the guest UUID information.
14786
14787       Returns: The "UuidInfo" for the guest
14788
14789       Since: 0.14.0
14790
14791       Example:
14792
14793               -> { "execute": "query-uuid" }
14794               <- { "return": { "UUID": "550e8400-e29b-41d4-a716-446655440000" } }
14795
14796       EventInfo (Object)
14797
14798       Information about a QMP event
14799
14800       Members:
14801
14802       "name: string"
14803           The event name
14804
14805       Since: 1.2.0
14806
14807       query-events  (Command) Return information on QMP events.
14808
14809       Returns: A list of "EventInfo".
14810
14811       Since: 1.2.0
14812
14813       Note: This command is deprecated, because its output doesn't reflect
14814       compile-time configuration.  Use query-qmp-schema instead.
14815
14816       Example:
14817
14818               -> { "execute": "query-events" }
14819               <- {
14820                    "return": [
14821                        {
14822                           "name":"SHUTDOWN"
14823                        },
14824                        {
14825                           "name":"RESET"
14826                        }
14827                     ]
14828                  }
14829
14830       Note: This example has been shortened as the real response is too long.
14831
14832       IOThreadInfo (Object)
14833
14834       Information about an iothread
14835
14836       Members:
14837
14838       "id: string"
14839           the identifier of the iothread
14840
14841       "thread-id: int"
14842           ID of the underlying host thread
14843
14844       "poll-max-ns: int"
14845           maximum polling time in ns, 0 means polling is disabled (since 2.9)
14846
14847       "poll-grow: int"
14848           how many ns will be added to polling time, 0 means that it's not
14849           configured (since 2.9)
14850
14851       "poll-shrink: int"
14852           how many ns will be removed from polling time, 0 means that it's
14853           not configured (since 2.9)
14854
14855       Since: 2.0
14856
14857       query-iothreads  (Command) Returns a list of information about each
14858       iothread.
14859
14860       Note: this list excludes the QEMU main loop thread, which is not
14861       declared using the -object iothread command-line option.  It is always
14862       the main thread of the process.
14863
14864       Returns: a list of "IOThreadInfo" for each iothread
14865
14866       Since: 2.0
14867
14868       Example:
14869
14870               -> { "execute": "query-iothreads" }
14871               <- { "return": [
14872                        {
14873                           "id":"iothread0",
14874                           "thread-id":3134
14875                        },
14876                        {
14877                           "id":"iothread1",
14878                           "thread-id":3135
14879                        }
14880                     ]
14881                  }
14882
14883       BalloonInfo (Object)
14884
14885       Information about the guest balloon device.
14886
14887       Members:
14888
14889       "actual: int"
14890           the number of bytes the balloon currently contains
14891
14892       Since: 0.14.0
14893
14894       query-balloon  (Command) Return information about the balloon device.
14895
14896       Returns: "BalloonInfo" on success
14897
14898       If the balloon driver is enabled but not functional because the KVM
14899       kernel module cannot support it, KvmMissingCap
14900
14901       If no balloon device is present, DeviceNotActive
14902
14903       Since: 0.14.0
14904
14905       Example:
14906
14907               -> { "execute": "query-balloon" }
14908               <- { "return": {
14909                        "actual": 1073741824,
14910                     }
14911                  }
14912
14913       BALLOON_CHANGE  (Event) Emitted when the guest changes the actual
14914       BALLOON level. This value is equivalent to the "actual" field return by
14915       the 'query-balloon' command
14916
14917       Arguments:
14918
14919       "actual: int"
14920           actual level of the guest memory balloon in bytes
14921
14922       Note: this event is rate-limited.
14923
14924       Since: 1.2
14925
14926       Example:
14927
14928               <- { "event": "BALLOON_CHANGE",
14929                    "data": { "actual": 944766976 },
14930                    "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
14931
14932       PciMemoryRange (Object)
14933
14934       A PCI device memory region
14935
14936       Members:
14937
14938       "base: int"
14939           the starting address (guest physical)
14940
14941       "limit: int"
14942           the ending address (guest physical)
14943
14944       Since: 0.14.0
14945
14946       PciMemoryRegion (Object)
14947
14948       Information about a PCI device I/O region.
14949
14950       Members:
14951
14952       "bar: int"
14953           the index of the Base Address Register for this region
14954
14955       "type: string"
14956           'io' if the region is a PIO region 'memory' if the region is a MMIO
14957           region
14958
14959       "size: int"
14960           memory size
14961
14962       "prefetch: boolean" (optional)
14963           if "type" is 'memory', true if the memory is prefetchable
14964
14965       "mem_type_64: boolean" (optional)
14966           if "type" is 'memory', true if the BAR is 64-bit
14967
14968       "address: int"
14969           Not documented
14970
14971       Since: 0.14.0
14972
14973       PciBusInfo (Object)
14974
14975       Information about a bus of a PCI Bridge device
14976
14977       Members:
14978
14979       "number: int"
14980           primary bus interface number.  This should be the number of the bus
14981           the device resides on.
14982
14983       "secondary: int"
14984           secondary bus interface number.  This is the number of the main bus
14985           for the bridge
14986
14987       "subordinate: int"
14988           This is the highest number bus that resides below the bridge.
14989
14990       "io_range: PciMemoryRange"
14991           The PIO range for all devices on this bridge
14992
14993       "memory_range: PciMemoryRange"
14994           The MMIO range for all devices on this bridge
14995
14996       "prefetchable_range: PciMemoryRange"
14997           The range of prefetchable MMIO for all devices on this bridge
14998
14999       Since: 2.4
15000
15001       PciBridgeInfo (Object)
15002
15003       Information about a PCI Bridge device
15004
15005       Members:
15006
15007       "bus: PciBusInfo"
15008           information about the bus the device resides on
15009
15010       "devices: array of PciDeviceInfo" (optional)
15011           a list of "PciDeviceInfo" for each device on this bridge
15012
15013       Since: 0.14.0
15014
15015       PciDeviceClass (Object)
15016
15017       Information about the Class of a PCI device
15018
15019       Members:
15020
15021       "desc: string" (optional)
15022           a string description of the device's class
15023
15024       "class: int"
15025           the class code of the device
15026
15027       Since: 2.4
15028
15029       PciDeviceId (Object)
15030
15031       Information about the Id of a PCI device
15032
15033       Members:
15034
15035       "device: int"
15036           the PCI device id
15037
15038       "vendor: int"
15039           the PCI vendor id
15040
15041       "subsystem: int" (optional)
15042           the PCI subsystem id (since 3.1)
15043
15044       "subsystem-vendor: int" (optional)
15045           the PCI subsystem vendor id (since 3.1)
15046
15047       Since: 2.4
15048
15049       PciDeviceInfo (Object)
15050
15051       Information about a PCI device
15052
15053       Members:
15054
15055       "bus: int"
15056           the bus number of the device
15057
15058       "slot: int"
15059           the slot the device is located in
15060
15061       "function: int"
15062           the function of the slot used by the device
15063
15064       "class_info: PciDeviceClass"
15065           the class of the device
15066
15067       "id: PciDeviceId"
15068           the PCI device id
15069
15070       "irq: int" (optional)
15071           if an IRQ is assigned to the device, the IRQ number
15072
15073       "qdev_id: string"
15074           the device name of the PCI device
15075
15076       "pci_bridge: PciBridgeInfo" (optional)
15077           if the device is a PCI bridge, the bridge information
15078
15079       "regions: array of PciMemoryRegion"
15080           a list of the PCI I/O regions associated with the device
15081
15082       Notes: the contents of "class_info".desc are not stable and should only
15083       be treated as informational.
15084
15085       Since: 0.14.0
15086
15087       PciInfo (Object)
15088
15089       Information about a PCI bus
15090
15091       Members:
15092
15093       "bus: int"
15094           the bus index
15095
15096       "devices: array of PciDeviceInfo"
15097           a list of devices on this bus
15098
15099       Since: 0.14.0
15100
15101       query-pci  (Command) Return information about the PCI bus topology of
15102       the guest.
15103
15104       Returns: a list of "PciInfo" for each PCI bus. Each bus is represented
15105       by a json-object, which has a key with a json-array of all PCI devices
15106       attached to it. Each device is represented by a json-object.
15107
15108       Since: 0.14.0
15109
15110       Example:
15111
15112               -> { "execute": "query-pci" }
15113               <- { "return": [
15114                        {
15115                           "bus": 0,
15116                           "devices": [
15117                              {
15118                                 "bus": 0,
15119                                 "qdev_id": "",
15120                                 "slot": 0,
15121                                 "class_info": {
15122                                    "class": 1536,
15123                                    "desc": "Host bridge"
15124                                 },
15125                                 "id": {
15126                                    "device": 32902,
15127                                    "vendor": 4663
15128                                 },
15129                                 "function": 0,
15130                                 "regions": [
15131                                 ]
15132                              },
15133                              {
15134                                 "bus": 0,
15135                                 "qdev_id": "",
15136                                 "slot": 1,
15137                                 "class_info": {
15138                                    "class": 1537,
15139                                    "desc": "ISA bridge"
15140                                 },
15141                                 "id": {
15142                                    "device": 32902,
15143                                    "vendor": 28672
15144                                 },
15145                                 "function": 0,
15146                                 "regions": [
15147                                 ]
15148                              },
15149                              {
15150                                 "bus": 0,
15151                                 "qdev_id": "",
15152                                 "slot": 1,
15153                                 "class_info": {
15154                                    "class": 257,
15155                                    "desc": "IDE controller"
15156                                 },
15157                                 "id": {
15158                                    "device": 32902,
15159                                    "vendor": 28688
15160                                 },
15161                                 "function": 1,
15162                                 "regions": [
15163                                    {
15164                                       "bar": 4,
15165                                       "size": 16,
15166                                       "address": 49152,
15167                                       "type": "io"
15168                                    }
15169                                 ]
15170                              },
15171                              {
15172                                 "bus": 0,
15173                                 "qdev_id": "",
15174                                 "slot": 2,
15175                                 "class_info": {
15176                                    "class": 768,
15177                                    "desc": "VGA controller"
15178                                 },
15179                                 "id": {
15180                                    "device": 4115,
15181                                    "vendor": 184
15182                                 },
15183                                 "function": 0,
15184                                 "regions": [
15185                                    {
15186                                       "prefetch": true,
15187                                       "mem_type_64": false,
15188                                       "bar": 0,
15189                                       "size": 33554432,
15190                                       "address": 4026531840,
15191                                       "type": "memory"
15192                                    },
15193                                    {
15194                                       "prefetch": false,
15195                                       "mem_type_64": false,
15196                                       "bar": 1,
15197                                       "size": 4096,
15198                                       "address": 4060086272,
15199                                       "type": "memory"
15200                                    },
15201                                    {
15202                                       "prefetch": false,
15203                                       "mem_type_64": false,
15204                                       "bar": 6,
15205                                       "size": 65536,
15206                                       "address": -1,
15207                                       "type": "memory"
15208                                    }
15209                                 ]
15210                              },
15211                              {
15212                                 "bus": 0,
15213                                 "qdev_id": "",
15214                                 "irq": 11,
15215                                 "slot": 4,
15216                                 "class_info": {
15217                                    "class": 1280,
15218                                    "desc": "RAM controller"
15219                                 },
15220                                 "id": {
15221                                    "device": 6900,
15222                                    "vendor": 4098
15223                                 },
15224                                 "function": 0,
15225                                 "regions": [
15226                                    {
15227                                       "bar": 0,
15228                                       "size": 32,
15229                                       "address": 49280,
15230                                       "type": "io"
15231                                    }
15232                                 ]
15233                              }
15234                           ]
15235                        }
15236                     ]
15237                  }
15238
15239       Note: This example has been shortened as the real response is too long.
15240
15241       quit  (Command) This command will cause the QEMU process to exit
15242       gracefully.  While every attempt is made to send the QMP response
15243       before terminating, this is not guaranteed.  When using this interface,
15244       a premature EOF would not be unexpected.
15245
15246       Since: 0.14.0
15247
15248       Example:
15249
15250               -> { "execute": "quit" }
15251               <- { "return": {} }
15252
15253       stop  (Command) Stop all guest VCPU execution.
15254
15255       Since: 0.14.0
15256
15257       Notes: This function will succeed even if the guest is already in the
15258       stopped state.  In "inmigrate" state, it will ensure that the guest
15259       remains paused once migration finishes, as if the -S option was passed
15260       on the command line.
15261
15262       Example:
15263
15264               -> { "execute": "stop" }
15265               <- { "return": {} }
15266
15267       system_reset  (Command) Performs a hard reset of a guest.
15268
15269       Since: 0.14.0
15270
15271       Example:
15272
15273               -> { "execute": "system_reset" }
15274               <- { "return": {} }
15275
15276       system_powerdown  (Command) Requests that a guest perform a powerdown
15277       operation.
15278
15279       Since: 0.14.0
15280
15281       Notes: A guest may or may not respond to this command.  This command
15282       returning does not indicate that a guest has accepted the request or
15283       that it has shut down.  Many guests will respond to this command by
15284       prompting the user in some way.
15285
15286       Example:
15287
15288               -> { "execute": "system_powerdown" }
15289               <- { "return": {} }
15290
15291       memsave  (Command) Save a portion of guest memory to a file.
15292
15293       Arguments:
15294
15295       "val: int"
15296           the virtual address of the guest to start from
15297
15298       "size: int"
15299           the size of memory region to save
15300
15301       "filename: string"
15302           the file to save the memory to as binary data
15303
15304       "cpu-index: int" (optional)
15305           the index of the virtual CPU to use for translating the virtual
15306           address (defaults to CPU 0)
15307
15308       Returns: Nothing on success
15309
15310       Since: 0.14.0
15311
15312       Notes: Errors were not reliably returned until 1.1
15313
15314       Example:
15315
15316               -> { "execute": "memsave",
15317                    "arguments": { "val": 10,
15318                                   "size": 100,
15319                                   "filename": "/tmp/virtual-mem-dump" } }
15320               <- { "return": {} }
15321
15322       pmemsave  (Command) Save a portion of guest physical memory to a file.
15323
15324       Arguments:
15325
15326       "val: int"
15327           the physical address of the guest to start from
15328
15329       "size: int"
15330           the size of memory region to save
15331
15332       "filename: string"
15333           the file to save the memory to as binary data
15334
15335       Returns: Nothing on success
15336
15337       Since: 0.14.0
15338
15339       Notes: Errors were not reliably returned until 1.1
15340
15341       Example:
15342
15343               -> { "execute": "pmemsave",
15344                    "arguments": { "val": 10,
15345                                   "size": 100,
15346                                   "filename": "/tmp/physical-mem-dump" } }
15347               <- { "return": {} }
15348
15349       cont  (Command) Resume guest VCPU execution.
15350
15351       Since: 0.14.0
15352
15353       Returns: If successful, nothing
15354
15355       Notes: This command will succeed if the guest is currently running.  It
15356       will also succeed if the guest is in the "inmigrate" state; in this
15357       case, the effect of the command is to make sure the guest starts once
15358       migration finishes, removing the effect of the -S command line option
15359       if it was passed.
15360
15361       Example:
15362
15363               -> { "execute": "cont" }
15364               <- { "return": {} }
15365
15366       x-exit-preconfig  (Command) Exit from "preconfig" state
15367
15368       This command makes QEMU exit the preconfig state and proceed with VM
15369       initialization using configuration data provided on the command line
15370       and via the QMP monitor during the preconfig state. The command is only
15371       available during the preconfig state (i.e. when the --preconfig command
15372       line option was in use).
15373
15374       Since 3.0
15375
15376       Returns: nothing
15377
15378       Example:
15379
15380               -> { "execute": "x-exit-preconfig" }
15381               <- { "return": {} }
15382
15383       system_wakeup  (Command) Wake up guest from suspend. If the guest has
15384       wake-up from suspend support enabled (wakeup-suspend-support flag from
15385       query-current-machine), wake-up guest from suspend if the guest is in
15386       SUSPENDED state. Return an error otherwise.
15387
15388       Since: 1.1
15389
15390       Returns: nothing.
15391
15392       Note: prior to 4.0, this command does nothing in case the guest isn't
15393       suspended.
15394
15395       Example:
15396
15397               -> { "execute": "system_wakeup" }
15398               <- { "return": {} }
15399
15400       inject-nmi  (Command) Injects a Non-Maskable Interrupt into the default
15401       CPU (x86/s390) or all CPUs (ppc64).  The command fails when the guest
15402       doesn't support injecting.
15403
15404       Returns: If successful, nothing
15405
15406       Since: 0.14.0
15407
15408       Note: prior to 2.1, this command was only supported for x86 and s390
15409       VMs
15410
15411       Example:
15412
15413               -> { "execute": "inject-nmi" }
15414               <- { "return": {} }
15415
15416       balloon  (Command) Request the balloon driver to change its balloon
15417       size.
15418
15419       Arguments:
15420
15421       "value: int"
15422           the target size of the balloon in bytes
15423
15424       Returns: Nothing on success If the balloon driver is enabled but not
15425       functional because the KVM kernel module cannot support it,
15426       KvmMissingCap If no balloon device is present, DeviceNotActive
15427
15428       Notes: This command just issues a request to the guest.  When it
15429       returns, the balloon size may not have changed.  A guest can change the
15430       balloon size independent of this command.
15431
15432       Since: 0.14.0
15433
15434       Example:
15435
15436               -> { "execute": "balloon", "arguments": { "value": 536870912 } }
15437               <- { "return": {} }
15438
15439       human-monitor-command  (Command) Execute a command on the human monitor
15440       and return the output.
15441
15442       Arguments:
15443
15444       "command-line: string"
15445           the command to execute in the human monitor
15446
15447       "cpu-index: int" (optional)
15448           The CPU to use for commands that require an implicit CPU
15449
15450       Features:
15451
15452       "savevm-monitor-nodes"
15453           If present, HMP command savevm only snapshots monitor-owned nodes
15454           if they have no parents.  This allows the use of 'savevm' with
15455           -blockdev. (since 4.2)
15456
15457       Returns: the output of the command as a string
15458
15459       Since: 0.14.0
15460
15461       Notes: This command only exists as a stop-gap.  Its use is highly
15462       discouraged.  The semantics of this command are not guaranteed: this
15463       means that command names, arguments and responses can change or be
15464       removed at ANY time.  Applications that rely on long term stability
15465       guarantees should NOT use this command.
15466
15467       Known limitations:
15468
15469       ·   This command is stateless, this means that commands that depend on
15470           state information (such as getfd) might not work
15471
15472       ·   Commands that prompt the user for data don't currently work
15473
15474       Example:
15475
15476               -> { "execute": "human-monitor-command",
15477                    "arguments": { "command-line": "info kvm" } }
15478               <- { "return": "kvm support: enabled\r\n" }
15479
15480       change  (Command) This command is multiple commands multiplexed
15481       together.
15482
15483       Arguments:
15484
15485       "device: string"
15486           This is normally the name of a block device but it may also be
15487           'vnc'.  when it's 'vnc', then sub command depends on "target"
15488
15489       "target: string"
15490           If "device" is a block device, then this is the new filename.  If
15491           "device" is 'vnc', then if the value 'password' selects the vnc
15492           change password command.   Otherwise, this specifies a new server
15493           URI address to listen to for VNC connections.
15494
15495       "arg: string" (optional)
15496           If "device" is a block device, then this is an optional format to
15497           open the device with.  If "device" is 'vnc' and "target" is
15498           'password', this is the new VNC password to set.  See change-vnc-
15499           password for additional notes.
15500
15501       Returns: Nothing on success.  If "device" is not a valid block device,
15502       DeviceNotFound
15503
15504       Notes: This interface is deprecated, and it is strongly recommended
15505       that you avoid using it.  For changing block devices, use blockdev-
15506       change-medium; for changing VNC parameters, use change-vnc-password.
15507
15508       Since: 0.14.0
15509
15510       Example:
15511
15512               1. Change a removable medium
15513
15514               -> { "execute": "change",
15515                    "arguments": { "device": "ide1-cd0",
15516                                   "target": "/srv/images/Fedora-12-x86_64-DVD.iso" } }
15517               <- { "return": {} }
15518
15519               2. Change VNC password
15520
15521               -> { "execute": "change",
15522                    "arguments": { "device": "vnc", "target": "password",
15523                                   "arg": "foobar1" } }
15524               <- { "return": {} }
15525
15526       xen-set-global-dirty-log  (Command) Enable or disable the global dirty
15527       log mode.
15528
15529       Arguments:
15530
15531       "enable: boolean"
15532           true to enable, false to disable.
15533
15534       Returns: nothing
15535
15536       Since: 1.3
15537
15538       Example:
15539
15540               -> { "execute": "xen-set-global-dirty-log",
15541                    "arguments": { "enable": true } }
15542               <- { "return": {} }
15543
15544       getfd  (Command) Receive a file descriptor via SCM rights and assign it
15545       a name
15546
15547       Arguments:
15548
15549       "fdname: string"
15550           file descriptor name
15551
15552       Returns: Nothing on success
15553
15554       Since: 0.14.0
15555
15556       Notes: If "fdname" already exists, the file descriptor assigned to it
15557       will be closed and replaced by the received file descriptor.
15558
15559       The 'closefd' command can be used to explicitly close the file
15560       descriptor when it is no longer needed.
15561
15562       Example:
15563
15564               -> { "execute": "getfd", "arguments": { "fdname": "fd1" } }
15565               <- { "return": {} }
15566
15567       closefd  (Command) Close a file descriptor previously passed via SCM
15568       rights
15569
15570       Arguments:
15571
15572       "fdname: string"
15573           file descriptor name
15574
15575       Returns: Nothing on success
15576
15577       Since: 0.14.0
15578
15579       Example:
15580
15581               -> { "execute": "closefd", "arguments": { "fdname": "fd1" } }
15582               <- { "return": {} }
15583
15584       MemoryInfo (Object)
15585
15586       Actual memory information in bytes.
15587
15588       Members:
15589
15590       "base-memory: int"
15591           size of "base" memory specified with command line option -m.
15592
15593       "plugged-memory: int" (optional)
15594           size of memory that can be hot-unplugged. This field is omitted if
15595           target doesn't support memory hotplug (i.e. CONFIG_MEM_DEVICE not
15596           defined at build time).
15597
15598       Since: 2.11.0
15599
15600       query-memory-size-summary  (Command) Return the amount of initially
15601       allocated and present hotpluggable (if enabled) memory in bytes.
15602
15603       Example:
15604
15605               -> { "execute": "query-memory-size-summary" }
15606               <- { "return": { "base-memory": 4294967296, "plugged-memory": 0 } }
15607
15608       Since: 2.11.0
15609
15610       AddfdInfo (Object)
15611
15612       Information about a file descriptor that was added to an fd set.
15613
15614       Members:
15615
15616       "fdset-id: int"
15617           The ID of the fd set that "fd" was added to.
15618
15619       "fd: int"
15620           The file descriptor that was received via SCM rights and added to
15621           the fd set.
15622
15623       Since: 1.2.0
15624
15625       add-fd  (Command) Add a file descriptor, that was passed via SCM
15626       rights, to an fd set.
15627
15628       Arguments:
15629
15630       "fdset-id: int" (optional)
15631           The ID of the fd set to add the file descriptor to.
15632
15633       "opaque: string" (optional)
15634           A free-form string that can be used to describe the fd.
15635
15636       Returns: "AddfdInfo" on success
15637
15638       If file descriptor was not received, FdNotSupplied
15639
15640       If "fdset-id" is a negative value, InvalidParameterValue
15641
15642       Notes: The list of fd sets is shared by all monitor connections.
15643
15644       If "fdset-id" is not specified, a new fd set will be created.
15645
15646       Since: 1.2.0
15647
15648       Example:
15649
15650               -> { "execute": "add-fd", "arguments": { "fdset-id": 1 } }
15651               <- { "return": { "fdset-id": 1, "fd": 3 } }
15652
15653       remove-fd  (Command) Remove a file descriptor from an fd set.
15654
15655       Arguments:
15656
15657       "fdset-id: int"
15658           The ID of the fd set that the file descriptor belongs to.
15659
15660       "fd: int" (optional)
15661           The file descriptor that is to be removed.
15662
15663       Returns: Nothing on success If "fdset-id" or "fd" is not found,
15664       FdNotFound
15665
15666       Since: 1.2.0
15667
15668       Notes: The list of fd sets is shared by all monitor connections.
15669
15670       If "fd" is not specified, all file descriptors in "fdset-id" will be
15671       removed.
15672
15673       Example:
15674
15675               -> { "execute": "remove-fd", "arguments": { "fdset-id": 1, "fd": 3 } }
15676               <- { "return": {} }
15677
15678       FdsetFdInfo (Object)
15679
15680       Information about a file descriptor that belongs to an fd set.
15681
15682       Members:
15683
15684       "fd: int"
15685           The file descriptor value.
15686
15687       "opaque: string" (optional)
15688           A free-form string that can be used to describe the fd.
15689
15690       Since: 1.2.0
15691
15692       FdsetInfo (Object)
15693
15694       Information about an fd set.
15695
15696       Members:
15697
15698       "fdset-id: int"
15699           The ID of the fd set.
15700
15701       "fds: array of FdsetFdInfo"
15702           A list of file descriptors that belong to this fd set.
15703
15704       Since: 1.2.0
15705
15706       query-fdsets  (Command) Return information describing all fd sets.
15707
15708       Returns: A list of "FdsetInfo"
15709
15710       Since: 1.2.0
15711
15712       Note: The list of fd sets is shared by all monitor connections.
15713
15714       Example:
15715
15716               -> { "execute": "query-fdsets" }
15717               <- { "return": [
15718                      {
15719                        "fds": [
15720                          {
15721                            "fd": 30,
15722                            "opaque": "rdonly:/path/to/file"
15723                          },
15724                          {
15725                            "fd": 24,
15726                            "opaque": "rdwr:/path/to/file"
15727                          }
15728                        ],
15729                        "fdset-id": 1
15730                      },
15731                      {
15732                        "fds": [
15733                          {
15734                            "fd": 28
15735                          },
15736                          {
15737                            "fd": 29
15738                          }
15739                        ],
15740                        "fdset-id": 0
15741                      }
15742                    ]
15743                  }
15744
15745       AcpiTableOptions (Object)
15746
15747       Specify an ACPI table on the command line to load.
15748
15749       At most one of "file" and "data" can be specified. The list of files
15750       specified by any one of them is loaded and concatenated in order. If
15751       both are omitted, "data" is implied.
15752
15753       Other fields / optargs can be used to override fields of the generic
15754       ACPI table header; refer to the ACPI specification 5.0, section 5.2.6
15755       System Description Table Header. If a header field is not overridden,
15756       then the corresponding value from the concatenated blob is used (in
15757       case of "file"), or it is filled in with a hard-coded value (in case of
15758       "data").
15759
15760       String fields are copied into the matching ACPI member from lowest
15761       address upwards, and silently truncated / NUL-padded to length.
15762
15763       Members:
15764
15765       "sig: string" (optional)
15766           table signature / identifier (4 bytes)
15767
15768       "rev: int" (optional)
15769           table revision number (dependent on signature, 1 byte)
15770
15771       "oem_id: string" (optional)
15772           OEM identifier (6 bytes)
15773
15774       "oem_table_id: string" (optional)
15775           OEM table identifier (8 bytes)
15776
15777       "oem_rev: int" (optional)
15778           OEM-supplied revision number (4 bytes)
15779
15780       "asl_compiler_id: string" (optional)
15781           identifier of the utility that created the table (4 bytes)
15782
15783       "asl_compiler_rev: int" (optional)
15784           revision number of the utility that created the table (4 bytes)
15785
15786       "file: string" (optional)
15787           colon (:) separated list of pathnames to load and concatenate as
15788           table data. The resultant binary blob is expected to have an ACPI
15789           table header. At least one file is required. This field excludes
15790           "data".
15791
15792       "data: string" (optional)
15793           colon (:) separated list of pathnames to load and concatenate as
15794           table data. The resultant binary blob must not have an ACPI table
15795           header. At least one file is required. This field excludes "file".
15796
15797       Since: 1.5
15798
15799       CommandLineParameterType (Enum)
15800
15801       Possible types for an option parameter.
15802
15803       Values:
15804
15805       "string"
15806           accepts a character string
15807
15808       "boolean"
15809           accepts "on" or "off"
15810
15811       "number"
15812           accepts a number
15813
15814       "size"
15815           accepts a number followed by an optional suffix (K)ilo, (M)ega,
15816           (G)iga, (T)era
15817
15818       Since: 1.5
15819
15820       CommandLineParameterInfo (Object)
15821
15822       Details about a single parameter of a command line option.
15823
15824       Members:
15825
15826       "name: string"
15827           parameter name
15828
15829       "type: CommandLineParameterType"
15830           parameter "CommandLineParameterType"
15831
15832       "help: string" (optional)
15833           human readable text string, not suitable for parsing.
15834
15835       "default: string" (optional)
15836           default value string (since 2.1)
15837
15838       Since: 1.5
15839
15840       CommandLineOptionInfo (Object)
15841
15842       Details about a command line option, including its list of parameter
15843       details
15844
15845       Members:
15846
15847       "option: string"
15848           option name
15849
15850       "parameters: array of CommandLineParameterInfo"
15851           an array of "CommandLineParameterInfo"
15852
15853       Since: 1.5
15854
15855       query-command-line-options  (Command) Query command line option schema.
15856
15857       Arguments:
15858
15859       "option: string" (optional)
15860           option name
15861
15862       Returns: list of "CommandLineOptionInfo" for all options (or for the
15863       given "option").  Returns an error if the given "option" doesn't exist.
15864
15865       Since: 1.5
15866
15867       Example:
15868
15869               -> { "execute": "query-command-line-options",
15870                    "arguments": { "option": "option-rom" } }
15871               <- { "return": [
15872                       {
15873                           "parameters": [
15874                               {
15875                                   "name": "romfile",
15876                                   "type": "string"
15877                               },
15878                               {
15879                                   "name": "bootindex",
15880                                   "type": "number"
15881                               }
15882                           ],
15883                           "option": "option-rom"
15884                       }
15885                    ]
15886                  }
15887
15888       PCDIMMDeviceInfo (Object)
15889
15890       PCDIMMDevice state information
15891
15892       Members:
15893
15894       "id: string" (optional)
15895           device's ID
15896
15897       "addr: int"
15898           physical address, where device is mapped
15899
15900       "size: int"
15901           size of memory that the device provides
15902
15903       "slot: int"
15904           slot number at which device is plugged in
15905
15906       "node: int"
15907           NUMA node number where device is plugged in
15908
15909       "memdev: string"
15910           memory backend linked with device
15911
15912       "hotplugged: boolean"
15913           true if device was hotplugged
15914
15915       "hotpluggable: boolean"
15916           true if device if could be added/removed while machine is running
15917
15918       Since: 2.1
15919
15920       VirtioPMEMDeviceInfo (Object)
15921
15922       VirtioPMEM state information
15923
15924       Members:
15925
15926       "id: string" (optional)
15927           device's ID
15928
15929       "memaddr: int"
15930           physical address in memory, where device is mapped
15931
15932       "size: int"
15933           size of memory that the device provides
15934
15935       "memdev: string"
15936           memory backend linked with device
15937
15938       Since: 4.1
15939
15940       MemoryDeviceInfo (Object)
15941
15942       Union containing information about a memory device
15943
15944       nvdimm is included since 2.12. virtio-pmem is included since 4.1.
15945
15946       Members:
15947
15948       "type"
15949           One of "dimm", "nvdimm", "virtio-pmem"
15950
15951       "data: PCDIMMDeviceInfo" when "type" is "dimm"
15952       "data: PCDIMMDeviceInfo" when "type" is "nvdimm"
15953       "data: VirtioPMEMDeviceInfo" when "type" is "virtio-pmem"
15954
15955       Since: 2.1
15956
15957       query-memory-devices  (Command) Lists available memory devices and
15958       their state
15959
15960       Since: 2.1
15961
15962       Example:
15963
15964               -> { "execute": "query-memory-devices" }
15965               <- { "return": [ { "data":
15966                                     { "addr": 5368709120,
15967                                       "hotpluggable": true,
15968                                       "hotplugged": true,
15969                                       "id": "d1",
15970                                       "memdev": "/objects/memX",
15971                                       "node": 0,
15972                                       "size": 1073741824,
15973                                       "slot": 0},
15974                                  "type": "dimm"
15975                                } ] }
15976
15977       MEM_UNPLUG_ERROR  (Event) Emitted when memory hot unplug error occurs.
15978
15979       Arguments:
15980
15981       "device: string"
15982           device name
15983
15984       "msg: string"
15985           Informative message
15986
15987       Since: 2.4
15988
15989       Example:
15990
15991               <- { "event": "MEM_UNPLUG_ERROR"
15992                    "data": { "device": "dimm1",
15993                              "msg": "acpi: device unplug for unsupported device"
15994                    },
15995                    "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
15996
15997       ACPISlotType (Enum)
15998
15999       Values:
16000
16001       "DIMM"
16002           memory slot
16003
16004       "CPU"
16005           logical CPU slot (since 2.7)
16006
16007       ACPIOSTInfo (Object)
16008
16009       OSPM Status Indication for a device For description of possible values
16010       of "source" and "status" fields see "_OST (OSPM Status Indication)"
16011       chapter of ACPI5.0 spec.
16012
16013       Members:
16014
16015       "device: string" (optional)
16016           device ID associated with slot
16017
16018       "slot: string"
16019           slot ID, unique per slot of a given "slot-type"
16020
16021       "slot-type: ACPISlotType"
16022           type of the slot
16023
16024       "source: int"
16025           an integer containing the source event
16026
16027       "status: int"
16028           an integer containing the status code
16029
16030       Since: 2.1
16031
16032       query-acpi-ospm-status  (Command) Return a list of ACPIOSTInfo for
16033       devices that support status reporting via ACPI _OST method.
16034
16035       Since: 2.1
16036
16037       Example:
16038
16039               -> { "execute": "query-acpi-ospm-status" }
16040               <- { "return": [ { "device": "d1", "slot": "0", "slot-type": "DIMM", "source": 1, "status": 0},
16041                                { "slot": "1", "slot-type": "DIMM", "source": 0, "status": 0},
16042                                { "slot": "2", "slot-type": "DIMM", "source": 0, "status": 0},
16043                                { "slot": "3", "slot-type": "DIMM", "source": 0, "status": 0}
16044                  ]}
16045
16046       ACPI_DEVICE_OST  (Event) Emitted when guest executes ACPI _OST method.
16047
16048       Arguments:
16049
16050       "info: ACPIOSTInfo"
16051           OSPM Status Indication
16052
16053       Since: 2.1
16054
16055       Example:
16056
16057               <- { "event": "ACPI_DEVICE_OST",
16058                    "data": { "device": "d1", "slot": "0",
16059                              "slot-type": "DIMM", "source": 1, "status": 0 } }
16060
16061       ReplayMode (Enum)
16062
16063       Mode of the replay subsystem.
16064
16065       Values:
16066
16067       "none"
16068           normal execution mode. Replay or record are not enabled.
16069
16070       "record"
16071           record mode. All non-deterministic data is written into the replay
16072           log.
16073
16074       "play"
16075           replay mode. Non-deterministic data required for system execution
16076           is read from the log.
16077
16078       Since: 2.5
16079
16080       xen-load-devices-state  (Command) Load the state of all devices from
16081       file. The RAM and the block devices of the VM are not loaded by this
16082       command.
16083
16084       Arguments:
16085
16086       "filename: string"
16087           the file to load the state of the devices from as binary data. See
16088           xen-save-devices-state.txt for a description of the binary format.
16089
16090       Since: 2.7
16091
16092       Example:
16093
16094               -> { "execute": "xen-load-devices-state",
16095                    "arguments": { "filename": "/tmp/resume" } }
16096               <- { "return": {} }
16097
16098       GuidInfo (Object)
16099
16100       GUID information.
16101
16102       Members:
16103
16104       "guid: string"
16105           the globally unique identifier
16106
16107       Since: 2.9
16108
16109       query-vm-generation-id  (Command) Show Virtual Machine Generation ID
16110
16111       Since: 2.9
16112
16113       RTC_CHANGE  (Event) Emitted when the guest changes the RTC time.
16114
16115       Arguments:
16116
16117       "offset: int"
16118           offset between base RTC clock (as specified by -rtc base), and new
16119           RTC clock value
16120
16121       Note: This event is rate-limited.
16122
16123       Since: 0.13.0
16124
16125       Example:
16126
16127               <-   { "event": "RTC_CHANGE",
16128                      "data": { "offset": 78 },
16129                      "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
16130
16131       If: "defined(TARGET_ALPHA) || defined(TARGET_ARM) ||
16132       defined(TARGET_HPPA) || defined(TARGET_I386) || defined(TARGET_MIPS) ||
16133       defined(TARGET_MIPS64) || defined(TARGET_MOXIE) || defined(TARGET_PPC)
16134       || defined(TARGET_PPC64) || defined(TARGET_S390X) ||
16135       defined(TARGET_SH4) || defined(TARGET_SPARC)"
16136
16137       rtc-reset-reinjection  (Command) This command will reset the RTC
16138       interrupt reinjection backlog.  Can be used if another mechanism to
16139       synchronize guest time is in effect, for example QEMU guest agent's
16140       guest-set-time command.
16141
16142       Since: 2.1
16143
16144       Example:
16145
16146               -> { "execute": "rtc-reset-reinjection" }
16147               <- { "return": {} }
16148
16149       If: "defined(TARGET_I386)"
16150
16151       SevState (Enum)
16152
16153       An enumeration of SEV state information used during "query-sev".
16154
16155       Values:
16156
16157       "uninit"
16158           The guest is uninitialized.
16159
16160       "launch-update"
16161           The guest is currently being launched; plaintext data and register
16162           state is being imported.
16163
16164       "launch-secret"
16165           The guest is currently being launched; ciphertext data is being
16166           imported.
16167
16168       "running"
16169           The guest is fully launched or migrated in.
16170
16171       "send-update"
16172           The guest is currently being migrated out to another machine.
16173
16174       "receive-update"
16175           The guest is currently being migrated from another machine.
16176
16177       Since: 2.12
16178
16179       If: "defined(TARGET_I386)"
16180
16181       SevInfo (Object)
16182
16183       Information about Secure Encrypted Virtualization (SEV) support
16184
16185       Members:
16186
16187       "enabled: boolean"
16188           true if SEV is active
16189
16190       "api-major: int"
16191           SEV API major version
16192
16193       "api-minor: int"
16194           SEV API minor version
16195
16196       "build-id: int"
16197           SEV FW build id
16198
16199       "policy: int"
16200           SEV policy value
16201
16202       "state: SevState"
16203           SEV guest state
16204
16205       "handle: int"
16206           SEV firmware handle
16207
16208       Since: 2.12
16209
16210       If: "defined(TARGET_I386)"
16211
16212       query-sev  (Command) Returns information about SEV
16213
16214       Returns: "SevInfo"
16215
16216       Since: 2.12
16217
16218       Example:
16219
16220               -> { "execute": "query-sev" }
16221               <- { "return": { "enabled": true, "api-major" : 0, "api-minor" : 0,
16222                                "build-id" : 0, "policy" : 0, "state" : "running",
16223                                "handle" : 1 } }
16224
16225       If: "defined(TARGET_I386)"
16226
16227       SevLaunchMeasureInfo (Object)
16228
16229       SEV Guest Launch measurement information
16230
16231       Members:
16232
16233       "data: string"
16234           the measurement value encoded in base64
16235
16236       Since: 2.12
16237
16238       If: "defined(TARGET_I386)"
16239
16240       query-sev-launch-measure  (Command) Query the SEV guest launch
16241       information.
16242
16243       Returns: The "SevLaunchMeasureInfo" for the guest
16244
16245       Since: 2.12
16246
16247       Example:
16248
16249               -> { "execute": "query-sev-launch-measure" }
16250               <- { "return": { "data": "4l8LXeNlSPUDlXPJG5966/8%YZ" } }
16251
16252       If: "defined(TARGET_I386)"
16253
16254       SevCapability (Object)
16255
16256       The struct describes capability for a Secure Encrypted Virtualization
16257       feature.
16258
16259       Members:
16260
16261       "pdh: string"
16262           Platform Diffie-Hellman key (base64 encoded)
16263
16264       "cert-chain: string"
16265           PDH certificate chain (base64 encoded)
16266
16267       "cbitpos: int"
16268           C-bit location in page table entry
16269
16270       "reduced-phys-bits: int"
16271           Number of physical Address bit reduction when SEV is enabled
16272
16273       Since: 2.12
16274
16275       If: "defined(TARGET_I386)"
16276
16277       query-sev-capabilities  (Command) This command is used to get the SEV
16278       capabilities, and is supported on AMD X86 platforms only.
16279
16280       Returns: SevCapability objects.
16281
16282       Since: 2.12
16283
16284       Example:
16285
16286               -> { "execute": "query-sev-capabilities" }
16287               <- { "return": { "pdh": "8CCDD8DDD", "cert-chain": "888CCCDDDEE",
16288                                "cbitpos": 47, "reduced-phys-bits": 5}}
16289
16290       If: "defined(TARGET_I386)"
16291
16292       dump-skeys  (Command) Dump guest's storage keys
16293
16294       Arguments:
16295
16296       "filename: string"
16297           the path to the file to dump to
16298
16299       This command is only supported on s390 architecture.
16300
16301       Since: 2.5
16302
16303       Example:
16304
16305               -> { "execute": "dump-skeys",
16306                    "arguments": { "filename": "/tmp/skeys" } }
16307               <- { "return": {} }
16308
16309       If: "defined(TARGET_S390X)"
16310
16311       GICCapability (Object)
16312
16313       The struct describes capability for a specific GIC (Generic Interrupt
16314       Controller) version. These bits are not only decided by QEMU/KVM
16315       software version, but also decided by the hardware that the program is
16316       running upon.
16317
16318       Members:
16319
16320       "version: int"
16321           version of GIC to be described. Currently, only 2 and 3 are
16322           supported.
16323
16324       "emulated: boolean"
16325           whether current QEMU/hardware supports emulated GIC device in user
16326           space.
16327
16328       "kernel: boolean"
16329           whether current QEMU/hardware supports hardware accelerated GIC
16330           device in kernel.
16331
16332       Since: 2.6
16333
16334       If: "defined(TARGET_ARM)"
16335
16336       query-gic-capabilities  (Command) This command is ARM-only. It will
16337       return a list of GICCapability objects that describe its capability
16338       bits.
16339
16340       Returns: a list of GICCapability objects.
16341
16342       Since: 2.6
16343
16344       Example:
16345
16346               -> { "execute": "query-gic-capabilities" }
16347               <- { "return": [{ "version": 2, "emulated": true, "kernel": false },
16348                               { "version": 3, "emulated": false, "kernel": true } ] }
16349
16350       If: "defined(TARGET_ARM)"
16351
16352       AudiodevPerDirectionOptions (Object)
16353
16354       General audio backend options that are used for both playback and
16355       recording.
16356
16357       Members:
16358
16359       "mixing-engine: boolean" (optional)
16360           use QEMU's mixing engine to mix all streams inside QEMU and convert
16361           audio formats when not supported by the backend. When set to off,
16362           fixed-settings must be also off (default on, since 4.2)
16363
16364       "fixed-settings: boolean" (optional)
16365           use fixed settings for host input/output. When off, frequency,
16366           channels and format must not be specified (default true)
16367
16368       "frequency: int" (optional)
16369           frequency to use when using fixed settings (default 44100)
16370
16371       "channels: int" (optional)
16372           number of channels when using fixed settings (default 2)
16373
16374       "voices: int" (optional)
16375           number of voices to use (default 1)
16376
16377       "format: AudioFormat" (optional)
16378           sample format to use when using fixed settings (default s16)
16379
16380       "buffer-length: int" (optional)
16381           the buffer length in microseconds
16382
16383       Since: 4.0
16384
16385       AudiodevGenericOptions (Object)
16386
16387       Generic driver-specific options.
16388
16389       Members:
16390
16391       "in: AudiodevPerDirectionOptions" (optional)
16392           options of the capture stream
16393
16394       "out: AudiodevPerDirectionOptions" (optional)
16395           options of the playback stream
16396
16397       Since: 4.0
16398
16399       AudiodevAlsaPerDirectionOptions (Object)
16400
16401       Options of the ALSA backend that are used for both playback and
16402       recording.
16403
16404       Members:
16405
16406       "dev: string" (optional)
16407           the name of the ALSA device to use (default 'default')
16408
16409       "period-length: int" (optional)
16410           the period length in microseconds
16411
16412       "try-poll: boolean" (optional)
16413           attempt to use poll mode, falling back to non-polling access on
16414           failure (default true)
16415
16416       The members of "AudiodevPerDirectionOptions"
16417
16418       Since: 4.0
16419
16420       AudiodevAlsaOptions (Object)
16421
16422       Options of the ALSA audio backend.
16423
16424       Members:
16425
16426       "in: AudiodevAlsaPerDirectionOptions" (optional)
16427           options of the capture stream
16428
16429       "out: AudiodevAlsaPerDirectionOptions" (optional)
16430           options of the playback stream
16431
16432       "threshold: int" (optional)
16433           set the threshold (in microseconds) when playback starts
16434
16435       Since: 4.0
16436
16437       AudiodevCoreaudioPerDirectionOptions (Object)
16438
16439       Options of the Core Audio backend that are used for both playback and
16440       recording.
16441
16442       Members:
16443
16444       "buffer-count: int" (optional)
16445           number of buffers
16446
16447       The members of "AudiodevPerDirectionOptions"
16448
16449       Since: 4.0
16450
16451       AudiodevCoreaudioOptions (Object)
16452
16453       Options of the coreaudio audio backend.
16454
16455       Members:
16456
16457       "in: AudiodevCoreaudioPerDirectionOptions" (optional)
16458           options of the capture stream
16459
16460       "out: AudiodevCoreaudioPerDirectionOptions" (optional)
16461           options of the playback stream
16462
16463       Since: 4.0
16464
16465       AudiodevDsoundOptions (Object)
16466
16467       Options of the DirectSound audio backend.
16468
16469       Members:
16470
16471       "in: AudiodevPerDirectionOptions" (optional)
16472           options of the capture stream
16473
16474       "out: AudiodevPerDirectionOptions" (optional)
16475           options of the playback stream
16476
16477       "latency: int" (optional)
16478           add extra latency to playback in microseconds (default 10000)
16479
16480       Since: 4.0
16481
16482       AudiodevOssPerDirectionOptions (Object)
16483
16484       Options of the OSS backend that are used for both playback and
16485       recording.
16486
16487       Members:
16488
16489       "dev: string" (optional)
16490           file name of the OSS device (default '/dev/dsp')
16491
16492       "buffer-count: int" (optional)
16493           number of buffers
16494
16495       "try-poll: boolean" (optional)
16496           attempt to use poll mode, falling back to non-polling access on
16497           failure (default true)
16498
16499       The members of "AudiodevPerDirectionOptions"
16500
16501       Since: 4.0
16502
16503       AudiodevOssOptions (Object)
16504
16505       Options of the OSS audio backend.
16506
16507       Members:
16508
16509       "in: AudiodevOssPerDirectionOptions" (optional)
16510           options of the capture stream
16511
16512       "out: AudiodevOssPerDirectionOptions" (optional)
16513           options of the playback stream
16514
16515       "try-mmap: boolean" (optional)
16516           try using memory-mapped access, falling back to non-memory-mapped
16517           access on failure (default true)
16518
16519       "exclusive: boolean" (optional)
16520           open device in exclusive mode (vmix won't work) (default false)
16521
16522       "dsp-policy: int" (optional)
16523           set the timing policy of the device (between 0 and 10, where
16524           smaller number means smaller latency but higher CPU usage) or -1 to
16525           use fragment mode (option ignored on some platforms) (default 5)
16526
16527       Since: 4.0
16528
16529       AudiodevPaPerDirectionOptions (Object)
16530
16531       Options of the Pulseaudio backend that are used for both playback and
16532       recording.
16533
16534       Members:
16535
16536       "name: string" (optional)
16537           name of the sink/source to use
16538
16539       "stream-name: string" (optional)
16540           name of the PulseAudio stream created by qemu.  Can be used to
16541           identify the stream in PulseAudio when you create multiple
16542           PulseAudio devices or run multiple qemu instances (default:
16543           audiodev's id, since 4.2)
16544
16545       "latency: int" (optional)
16546           latency you want PulseAudio to achieve in microseconds (default
16547           15000)
16548
16549       The members of "AudiodevPerDirectionOptions"
16550
16551       Since: 4.0
16552
16553       AudiodevPaOptions (Object)
16554
16555       Options of the PulseAudio audio backend.
16556
16557       Members:
16558
16559       "in: AudiodevPaPerDirectionOptions" (optional)
16560           options of the capture stream
16561
16562       "out: AudiodevPaPerDirectionOptions" (optional)
16563           options of the playback stream
16564
16565       "server: string" (optional)
16566           PulseAudio server address (default: let PulseAudio choose)
16567
16568       Since: 4.0
16569
16570       AudiodevWavOptions (Object)
16571
16572       Options of the wav audio backend.
16573
16574       Members:
16575
16576       "in: AudiodevPerDirectionOptions" (optional)
16577           options of the capture stream
16578
16579       "out: AudiodevPerDirectionOptions" (optional)
16580           options of the playback stream
16581
16582       "path: string" (optional)
16583           name of the wav file to record (default 'qemu.wav')
16584
16585       Since: 4.0
16586
16587       AudioFormat (Enum)
16588
16589       An enumeration of possible audio formats.
16590
16591       Values:
16592
16593       "u8"
16594           Not documented
16595
16596       "s8"
16597           Not documented
16598
16599       "u16"
16600           Not documented
16601
16602       "s16"
16603           Not documented
16604
16605       "u32"
16606           Not documented
16607
16608       "s32"
16609           Not documented
16610
16611       Since: 4.0
16612
16613       AudiodevDriver (Enum)
16614
16615       An enumeration of possible audio backend drivers.
16616
16617       Values:
16618
16619       "none"
16620           Not documented
16621
16622       "alsa"
16623           Not documented
16624
16625       "coreaudio"
16626           Not documented
16627
16628       "dsound"
16629           Not documented
16630
16631       "oss"
16632           Not documented
16633
16634       "pa"
16635           Not documented
16636
16637       "sdl"
16638           Not documented
16639
16640       "spice"
16641           Not documented
16642
16643       "wav"
16644           Not documented
16645
16646       Since: 4.0
16647
16648       Audiodev (Object)
16649
16650       Options of an audio backend.
16651
16652       Members:
16653
16654       "id: string"
16655           identifier of the backend
16656
16657       "driver: AudiodevDriver"
16658           the backend driver to use
16659
16660       "timer-period: int" (optional)
16661           timer period (in microseconds, 0: use lowest possible)
16662
16663       The members of "AudiodevGenericOptions" when "driver" is "none"
16664       The members of "AudiodevAlsaOptions" when "driver" is "alsa"
16665       The members of "AudiodevCoreaudioOptions" when "driver" is "coreaudio"
16666       The members of "AudiodevDsoundOptions" when "driver" is "dsound"
16667       The members of "AudiodevOssOptions" when "driver" is "oss"
16668       The members of "AudiodevPaOptions" when "driver" is "pa"
16669       The members of "AudiodevGenericOptions" when "driver" is "sdl"
16670       The members of "AudiodevGenericOptions" when "driver" is "spice"
16671       The members of "AudiodevWavOptions" when "driver" is "wav"
16672
16673       Since: 4.0
16674
16675
16676
16677                                  2020-03-17                 QEMU-QMP-REF.7(7)
Impressum