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       "tight: boolean" (optional)
304           pass a socket address length confined to the minimum length of the
305           abstract string, rather than the full sockaddr_un record length
306           (only matters for abstract sockets, default true). (Since 5.1)
307
308       "abstract: boolean" (optional)
309           whether this is an abstract address, default false. (Since 5.1)
310
311       Since: 1.3
312
313       VsockSocketAddress (Object)
314
315       Captures a socket address in the vsock namespace.
316
317       Members:
318
319       "cid: string"
320           unique host identifier
321
322       "port: string"
323           port
324
325       Note: string types are used to allow for possible future hostname or
326       service resolution support.
327
328       Since: 2.8
329
330       SocketAddressLegacy (Object)
331
332       Captures the address of a socket, which could also be a named file
333       descriptor
334
335       Members:
336
337       "type"
338           One of "inet", "unix", "vsock", "fd"
339
340       "data: InetSocketAddress" when "type" is "inet"
341       "data: UnixSocketAddress" when "type" is "unix"
342       "data: VsockSocketAddress" when "type" is "vsock"
343       "data: String" when "type" is "fd"
344
345       Note: This type is deprecated in favor of SocketAddress.  The
346       difference between SocketAddressLegacy and SocketAddress is that the
347       latter is a flat union rather than a simple union. Flat is nicer
348       because it avoids nesting on the wire, i.e. that form has fewer {}.
349
350       Since: 1.3
351
352       SocketAddressType (Enum)
353
354       Available SocketAddress types
355
356       Values:
357
358       "inet"
359           Internet address
360
361       "unix"
362           Unix domain socket
363
364       "vsock"
365           VMCI address
366
367       "fd"
368           decimal is for file descriptor number, otherwise a file descriptor
369           name.  Named file descriptors are permitted in monitor commands, in
370           combination with the 'getfd' command. Decimal file descriptors are
371           permitted at startup or other contexts where no monitor context is
372           active.
373
374       Since: 2.9
375
376       SocketAddress (Object)
377
378       Captures the address of a socket, which could also be a named file
379       descriptor
380
381       Members:
382
383       "type: SocketAddressType"
384           Transport type
385
386       The members of "InetSocketAddress" when "type" is "inet"
387       The members of "UnixSocketAddress" when "type" is "unix"
388       The members of "VsockSocketAddress" when "type" is "vsock"
389       The members of "String" when "type" is "fd"
390
391       Since: 2.9
392
393   VM run state
394       RunState (Enum)
395
396       An enumeration of VM run states.
397
398       Values:
399
400       "debug"
401           QEMU is running on a debugger
402
403       "finish-migrate"
404           guest is paused to finish the migration process
405
406       "inmigrate"
407           guest is paused waiting for an incoming migration.  Note that this
408           state does not tell whether the machine will start at the end of
409           the migration.  This depends on the command-line -S option and any
410           invocation of 'stop' or 'cont' that has happened since QEMU was
411           started.
412
413       "internal-error"
414           An internal error that prevents further guest execution has
415           occurred
416
417       "io-error"
418           the last IOP has failed and the device is configured to pause on
419           I/O errors
420
421       "paused"
422           guest has been paused via the 'stop' command
423
424       "postmigrate"
425           guest is paused following a successful 'migrate'
426
427       "prelaunch"
428           QEMU was started with -S and guest has not started
429
430       "restore-vm"
431           guest is paused to restore VM state
432
433       "running"
434           guest is actively running
435
436       "save-vm"
437           guest is paused to save the VM state
438
439       "shutdown"
440           guest is shut down (and -no-shutdown is in use)
441
442       "suspended"
443           guest is suspended (ACPI S3)
444
445       "watchdog"
446           the watchdog action is configured to pause and has been triggered
447
448       "guest-panicked"
449           guest has been panicked as a result of guest OS panic
450
451       "colo"
452           guest is paused to save/restore VM state under colo checkpoint, VM
453           can not get into this state unless colo capability is enabled for
454           migration. (since 2.8)
455
456       "preconfig"
457           QEMU is paused before board specific init callback is executed.
458           The state is reachable only if the --preconfig CLI option is used.
459           (Since 3.0)
460
461       ShutdownCause (Enum)
462
463       An enumeration of reasons for a Shutdown.
464
465       Values:
466
467       "none"
468           No shutdown request pending
469
470       "host-error"
471           An error prevents further use of guest
472
473       "host-qmp-quit"
474           Reaction to the QMP command 'quit'
475
476       "host-qmp-system-reset"
477           Reaction to the QMP command 'system_reset'
478
479       "host-signal"
480           Reaction to a signal, such as SIGINT
481
482       "host-ui"
483           Reaction to a UI event, like window close
484
485       "guest-shutdown"
486           Guest shutdown/suspend request, via ACPI or other hardware-specific
487           means
488
489       "guest-reset"
490           Guest reset request, and command line turns that into a shutdown
491
492       "guest-panic"
493           Guest panicked, and command line turns that into a shutdown
494
495       "subsystem-reset"
496           Partial guest reset that does not trigger QMP events and ignores
497           --no-reboot. This is useful for sanitizing hypercalls on s390 that
498           are used during kexec/kdump/boot
499
500       StatusInfo (Object)
501
502       Information about VCPU run state
503
504       Members:
505
506       "running: boolean"
507           true if all VCPUs are runnable, false if not runnable
508
509       "singlestep: boolean"
510           true if VCPUs are in single-step mode
511
512       "status: RunState"
513           the virtual machine "RunState"
514
515       Since: 0.14.0
516
517       Notes: "singlestep" is enabled through the GDB stub
518
519       query-status  (Command) Query the run status of all VCPUs
520
521       Returns: "StatusInfo" reflecting all VCPUs
522
523       Since: 0.14.0
524
525       Example:
526
527               -> { "execute": "query-status" }
528               <- { "return": { "running": true,
529                                "singlestep": false,
530                                "status": "running" } }
531
532       SHUTDOWN  (Event) Emitted when the virtual machine has shut down,
533       indicating that qemu is about to exit.
534
535       Arguments:
536
537       "guest: boolean"
538           If true, the shutdown was triggered by a guest request (such as a
539           guest-initiated ACPI shutdown request or other hardware-specific
540           action) rather than a host request (such as sending qemu a SIGINT).
541           (since 2.10)
542
543       "reason: ShutdownCause"
544           The "ShutdownCause" which resulted in the SHUTDOWN. (since 4.0)
545
546       Note: If the command-line option "-no-shutdown" has been specified,
547       qemu will not exit, and a STOP event will eventually follow the
548       SHUTDOWN event
549
550       Since: 0.12.0
551
552       Example:
553
554               <- { "event": "SHUTDOWN", "data": { "guest": true },
555                    "timestamp": { "seconds": 1267040730, "microseconds": 682951 } }
556
557       POWERDOWN  (Event) Emitted when the virtual machine is powered down
558       through the power control system, such as via ACPI.
559
560       Since: 0.12.0
561
562       Example:
563
564               <- { "event": "POWERDOWN",
565                    "timestamp": { "seconds": 1267040730, "microseconds": 682951 } }
566
567       RESET  (Event) Emitted when the virtual machine is reset
568
569       Arguments:
570
571       "guest: boolean"
572           If true, the reset was triggered by a guest request (such as a
573           guest-initiated ACPI reboot request or other hardware-specific
574           action) rather than a host request (such as the QMP command
575           system_reset).  (since 2.10)
576
577       "reason: ShutdownCause"
578           The "ShutdownCause" of the RESET. (since 4.0)
579
580       Since: 0.12.0
581
582       Example:
583
584               <- { "event": "RESET", "data": { "guest": false },
585                    "timestamp": { "seconds": 1267041653, "microseconds": 9518 } }
586
587       STOP  (Event) Emitted when the virtual machine is stopped
588
589       Since: 0.12.0
590
591       Example:
592
593               <- { "event": "STOP",
594                    "timestamp": { "seconds": 1267041730, "microseconds": 281295 } }
595
596       RESUME  (Event) Emitted when the virtual machine resumes execution
597
598       Since: 0.12.0
599
600       Example:
601
602               <- { "event": "RESUME",
603                    "timestamp": { "seconds": 1271770767, "microseconds": 582542 } }
604
605       SUSPEND  (Event) Emitted when guest enters a hardware suspension state,
606       for example, S3 state, which is sometimes called standby state
607
608       Since: 1.1
609
610       Example:
611
612               <- { "event": "SUSPEND",
613                    "timestamp": { "seconds": 1344456160, "microseconds": 309119 } }
614
615       SUSPEND_DISK  (Event) Emitted when guest enters a hardware suspension
616       state with data saved on disk, for example, S4 state, which is
617       sometimes called hibernate state
618
619       Note: QEMU shuts down (similar to event "SHUTDOWN") when entering this
620       state
621
622       Since: 1.2
623
624       Example:
625
626               <-   { "event": "SUSPEND_DISK",
627                      "timestamp": { "seconds": 1344456160, "microseconds": 309119 } }
628
629       WAKEUP  (Event) Emitted when the guest has woken up from suspend state
630       and is running
631
632       Since: 1.1
633
634       Example:
635
636               <- { "event": "WAKEUP",
637                    "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
638
639       WATCHDOG  (Event) Emitted when the watchdog device's timer is expired
640
641       Arguments:
642
643       "action: WatchdogAction"
644           action that has been taken
645
646       Note: If action is "reset", "shutdown", or "pause" the WATCHDOG event
647       is followed respectively by the RESET, SHUTDOWN, or STOP events
648
649       Note: This event is rate-limited.
650
651       Since: 0.13.0
652
653       Example:
654
655               <- { "event": "WATCHDOG",
656                    "data": { "action": "reset" },
657                    "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
658
659       WatchdogAction (Enum)
660
661       An enumeration of the actions taken when the watchdog device's timer is
662       expired
663
664       Values:
665
666       "reset"
667           system resets
668
669       "shutdown"
670           system shutdown, note that it is similar to "powerdown", which
671           tries to set to system status and notify guest
672
673       "poweroff"
674           system poweroff, the emulator program exits
675
676       "pause"
677           system pauses, similar to "stop"
678
679       "debug"
680           system enters debug state
681
682       "none"
683           nothing is done
684
685       "inject-nmi"
686           a non-maskable interrupt is injected into the first VCPU (all VCPUS
687           on x86) (since 2.4)
688
689       Since: 2.1
690
691       watchdog-set-action  (Command) Set watchdog action
692
693       Arguments:
694
695       "action: WatchdogAction"
696           Not documented
697
698       Since: 2.11
699
700       GUEST_PANICKED  (Event) Emitted when guest OS panic is detected
701
702       Arguments:
703
704       "action: GuestPanicAction"
705           action that has been taken, currently always "pause"
706
707       "info: GuestPanicInformation" (optional)
708           information about a panic (since 2.9)
709
710       Since: 1.5
711
712       Example:
713
714               <- { "event": "GUEST_PANICKED",
715                    "data": { "action": "pause" } }
716
717       GUEST_CRASHLOADED  (Event) Emitted when guest OS crash loaded is
718       detected
719
720       Arguments:
721
722       "action: GuestPanicAction"
723           action that has been taken, currently always "run"
724
725       "info: GuestPanicInformation" (optional)
726           information about a panic
727
728       Since: 5.0
729
730       Example:
731
732               <- { "event": "GUEST_CRASHLOADED",
733                    "data": { "action": "run" } }
734
735       GuestPanicAction (Enum)
736
737       An enumeration of the actions taken when guest OS panic is detected
738
739       Values:
740
741       "pause"
742           system pauses
743
744       "poweroff"
745           Not documented
746
747       "run"
748           Not documented
749
750       Since: 2.1 (poweroff since 2.8, run since 5.0)
751
752       GuestPanicInformationType (Enum)
753
754       An enumeration of the guest panic information types
755
756       Values:
757
758       "hyper-v"
759           hyper-v guest panic information type
760
761       "s390"
762           s390 guest panic information type (Since: 2.12)
763
764       Since: 2.9
765
766       GuestPanicInformation (Object)
767
768       Information about a guest panic
769
770       Members:
771
772       "type: GuestPanicInformationType"
773           Crash type that defines the hypervisor specific information
774
775       The members of "GuestPanicInformationHyperV" when "type" is "hyper-v"
776       The members of "GuestPanicInformationS390" when "type" is "s390"
777
778       Since: 2.9
779
780       GuestPanicInformationHyperV (Object)
781
782       Hyper-V specific guest panic information (HV crash MSRs)
783
784       Members:
785
786       "arg1: int"
787           Not documented
788
789       "arg2: int"
790           Not documented
791
792       "arg3: int"
793           Not documented
794
795       "arg4: int"
796           Not documented
797
798       "arg5: int"
799           Not documented
800
801       Since: 2.9
802
803       S390CrashReason (Enum)
804
805       Reason why the CPU is in a crashed state.
806
807       Values:
808
809       "unknown"
810           no crash reason was set
811
812       "disabled-wait"
813           the CPU has entered a disabled wait state
814
815       "extint-loop"
816           clock comparator or cpu timer interrupt with new PSW enabled for
817           external interrupts
818
819       "pgmint-loop"
820           program interrupt with BAD new PSW
821
822       "opint-loop"
823           operation exception interrupt with invalid code at the program
824           interrupt new PSW
825
826       Since: 2.12
827
828       GuestPanicInformationS390 (Object)
829
830       S390 specific guest panic information (PSW)
831
832       Members:
833
834       "core: int"
835           core id of the CPU that crashed
836
837       "psw-mask: int"
838           control fields of guest PSW
839
840       "psw-addr: int"
841           guest instruction address
842
843       "reason: S390CrashReason"
844           guest crash reason
845
846       Since: 2.12
847
848   Cryptography
849       QCryptoTLSCredsEndpoint (Enum)
850
851       The type of network endpoint that will be using the credentials.  Most
852       types of credential require different setup / structures depending on
853       whether they will be used in a server versus a client.
854
855       Values:
856
857       "client"
858           the network endpoint is acting as the client
859
860       "server"
861           the network endpoint is acting as the server
862
863       Since: 2.5
864
865       QCryptoSecretFormat (Enum)
866
867       The data format that the secret is provided in
868
869       Values:
870
871       "raw"
872           raw bytes. When encoded in JSON only valid UTF-8 sequences can be
873           used
874
875       "base64"
876           arbitrary base64 encoded binary data
877
878       Since: 2.6
879
880       QCryptoHashAlgorithm (Enum)
881
882       The supported algorithms for computing content digests
883
884       Values:
885
886       "md5"
887           MD5. Should not be used in any new code, legacy compat only
888
889       "sha1"
890           SHA-1. Should not be used in any new code, legacy compat only
891
892       "sha224"
893           SHA-224. (since 2.7)
894
895       "sha256"
896           SHA-256. Current recommended strong hash.
897
898       "sha384"
899           SHA-384. (since 2.7)
900
901       "sha512"
902           SHA-512. (since 2.7)
903
904       "ripemd160"
905           RIPEMD-160. (since 2.7)
906
907       Since: 2.6
908
909       QCryptoCipherAlgorithm (Enum)
910
911       The supported algorithms for content encryption ciphers
912
913       Values:
914
915       "aes-128"
916           AES with 128 bit / 16 byte keys
917
918       "aes-192"
919           AES with 192 bit / 24 byte keys
920
921       "aes-256"
922           AES with 256 bit / 32 byte keys
923
924       "des-rfb"
925           RFB specific variant of single DES. Do not use except in VNC.
926
927       "3des"
928           3DES(EDE) with 192 bit / 24 byte keys (since 2.9)
929
930       "cast5-128"
931           Cast5 with 128 bit / 16 byte keys
932
933       "serpent-128"
934           Serpent with 128 bit / 16 byte keys
935
936       "serpent-192"
937           Serpent with 192 bit / 24 byte keys
938
939       "serpent-256"
940           Serpent with 256 bit / 32 byte keys
941
942       "twofish-128"
943           Twofish with 128 bit / 16 byte keys
944
945       "twofish-192"
946           Twofish with 192 bit / 24 byte keys
947
948       "twofish-256"
949           Twofish with 256 bit / 32 byte keys
950
951       Since: 2.6
952
953       QCryptoCipherMode (Enum)
954
955       The supported modes for content encryption ciphers
956
957       Values:
958
959       "ecb"
960           Electronic Code Book
961
962       "cbc"
963           Cipher Block Chaining
964
965       "xts"
966           XEX with tweaked code book and ciphertext stealing
967
968       "ctr"
969           Counter (Since 2.8)
970
971       Since: 2.6
972
973       QCryptoIVGenAlgorithm (Enum)
974
975       The supported algorithms for generating initialization vectors for full
976       disk encryption. The 'plain' generator should not be used for disks
977       with sector numbers larger than 2^32, except where compatibility with
978       pre-existing Linux dm-crypt volumes is required.
979
980       Values:
981
982       "plain"
983           64-bit sector number truncated to 32-bits
984
985       "plain64"
986           64-bit sector number
987
988       "essiv"
989           64-bit sector number encrypted with a hash of the encryption key
990
991       Since: 2.6
992
993       QCryptoBlockFormat (Enum)
994
995       The supported full disk encryption formats
996
997       Values:
998
999       "qcow"
1000           QCow/QCow2 built-in AES-CBC encryption. Use only for liberating
1001           data from old images.
1002
1003       "luks"
1004           LUKS encryption format. Recommended for new images
1005
1006       Since: 2.6
1007
1008       QCryptoBlockOptionsBase (Object)
1009
1010       The common options that apply to all full disk encryption formats
1011
1012       Members:
1013
1014       "format: QCryptoBlockFormat"
1015           the encryption format
1016
1017       Since: 2.6
1018
1019       QCryptoBlockOptionsQCow (Object)
1020
1021       The options that apply to QCow/QCow2 AES-CBC encryption format
1022
1023       Members:
1024
1025       "key-secret: string" (optional)
1026           the ID of a QCryptoSecret object providing the decryption key.
1027           Mandatory except when probing image for metadata only.
1028
1029       Since: 2.6
1030
1031       QCryptoBlockOptionsLUKS (Object)
1032
1033       The options that apply to LUKS encryption format
1034
1035       Members:
1036
1037       "key-secret: string" (optional)
1038           the ID of a QCryptoSecret object providing the decryption key.
1039           Mandatory except when probing image for metadata only.
1040
1041       Since: 2.6
1042
1043       QCryptoBlockCreateOptionsLUKS (Object)
1044
1045       The options that apply to LUKS encryption format initialization
1046
1047       Members:
1048
1049       "cipher-alg: QCryptoCipherAlgorithm" (optional)
1050           the cipher algorithm for data encryption Currently defaults to
1051           'aes-256'.
1052
1053       "cipher-mode: QCryptoCipherMode" (optional)
1054           the cipher mode for data encryption Currently defaults to 'xts'
1055
1056       "ivgen-alg: QCryptoIVGenAlgorithm" (optional)
1057           the initialization vector generator Currently defaults to 'plain64'
1058
1059       "ivgen-hash-alg: QCryptoHashAlgorithm" (optional)
1060           the initialization vector generator hash Currently defaults to
1061           'sha256'
1062
1063       "hash-alg: QCryptoHashAlgorithm" (optional)
1064           the master key hash algorithm Currently defaults to 'sha256'
1065
1066       "iter-time: int" (optional)
1067           number of milliseconds to spend in PBKDF passphrase processing.
1068           Currently defaults to 2000. (since 2.8)
1069
1070       The members of "QCryptoBlockOptionsLUKS"
1071
1072       Since: 2.6
1073
1074       QCryptoBlockOpenOptions (Object)
1075
1076       The options that are available for all encryption formats when opening
1077       an existing volume
1078
1079       Members:
1080
1081       The members of "QCryptoBlockOptionsBase"
1082       The members of "QCryptoBlockOptionsQCow" when "format" is "qcow"
1083       The members of "QCryptoBlockOptionsLUKS" when "format" is "luks"
1084
1085       Since: 2.6
1086
1087       QCryptoBlockCreateOptions (Object)
1088
1089       The options that are available for all encryption formats when
1090       initializing a new volume
1091
1092       Members:
1093
1094       The members of "QCryptoBlockOptionsBase"
1095       The members of "QCryptoBlockOptionsQCow" when "format" is "qcow"
1096       The members of "QCryptoBlockCreateOptionsLUKS" when "format" is "luks"
1097
1098       Since: 2.6
1099
1100       QCryptoBlockInfoBase (Object)
1101
1102       The common information that applies to all full disk encryption formats
1103
1104       Members:
1105
1106       "format: QCryptoBlockFormat"
1107           the encryption format
1108
1109       Since: 2.7
1110
1111       QCryptoBlockInfoLUKSSlot (Object)
1112
1113       Information about the LUKS block encryption key slot options
1114
1115       Members:
1116
1117       "active: boolean"
1118           whether the key slot is currently in use
1119
1120       "key-offset: int"
1121           offset to the key material in bytes
1122
1123       "iters: int" (optional)
1124           number of PBKDF2 iterations for key material
1125
1126       "stripes: int" (optional)
1127           number of stripes for splitting key material
1128
1129       Since: 2.7
1130
1131       QCryptoBlockInfoLUKS (Object)
1132
1133       Information about the LUKS block encryption options
1134
1135       Members:
1136
1137       "cipher-alg: QCryptoCipherAlgorithm"
1138           the cipher algorithm for data encryption
1139
1140       "cipher-mode: QCryptoCipherMode"
1141           the cipher mode for data encryption
1142
1143       "ivgen-alg: QCryptoIVGenAlgorithm"
1144           the initialization vector generator
1145
1146       "ivgen-hash-alg: QCryptoHashAlgorithm" (optional)
1147           the initialization vector generator hash
1148
1149       "hash-alg: QCryptoHashAlgorithm"
1150           the master key hash algorithm
1151
1152       "payload-offset: int"
1153           offset to the payload data in bytes
1154
1155       "master-key-iters: int"
1156           number of PBKDF2 iterations for key material
1157
1158       "uuid: string"
1159           unique identifier for the volume
1160
1161       "slots: array of QCryptoBlockInfoLUKSSlot"
1162           information about each key slot
1163
1164       Since: 2.7
1165
1166       QCryptoBlockInfo (Object)
1167
1168       Information about the block encryption options
1169
1170       Members:
1171
1172       The members of "QCryptoBlockInfoBase"
1173       The members of "QCryptoBlockInfoLUKS" when "format" is "luks"
1174
1175       Since: 2.7
1176
1177       QCryptoBlockLUKSKeyslotState (Enum)
1178
1179       Defines state of keyslots that are affected by the update
1180
1181       Values:
1182
1183       "active"
1184           The slots contain the given password and marked as active
1185
1186       "inactive"
1187           The slots are erased (contain garbage) and marked as inactive
1188
1189       Since: 5.1
1190
1191       QCryptoBlockAmendOptionsLUKS (Object)
1192
1193       This struct defines the update parameters that activate/de-activate set
1194       of keyslots
1195
1196       Members:
1197
1198       "state: QCryptoBlockLUKSKeyslotState"
1199           the desired state of the keyslots
1200
1201       "new-secret: string" (optional)
1202           The ID of a QCryptoSecret object providing the password to be
1203           written into added active keyslots
1204
1205       "old-secret: string" (optional)
1206           Optional (for deactivation only) If given will deactive all
1207           keyslots that match password located in QCryptoSecret with this ID
1208
1209       "iter-time: int" (optional)
1210           Optional (for activation only) Number of milliseconds to spend in
1211           PBKDF passphrase processing for the newly activated keyslot.
1212           Currently defaults to 2000.
1213
1214       "keyslot: int" (optional)
1215           Optional. ID of the keyslot to activate/deactivate.  For keyslot
1216           activation, keyslot should not be active already (this is unsafe to
1217           update an active keyslot), but possible if 'force' parameter is
1218           given.  If keyslot is not given, first free keyslot will be
1219           written.
1220
1221           For keyslot deactivation, this parameter specifies the exact
1222           keyslot to deactivate
1223
1224       "secret: string" (optional)
1225           Optional. The ID of a QCryptoSecret object providing the password
1226           to use to retrive current master key.  Defaults to the same secret
1227           that was used to open the image
1228
1229       Since 5.1
1230
1231       QCryptoBlockAmendOptions (Object)
1232
1233       The options that are available for all encryption formats when amending
1234       encryption settings
1235
1236       Members:
1237
1238       The members of "QCryptoBlockOptionsBase"
1239       The members of "QCryptoBlockAmendOptionsLUKS" when "format" is "luks"
1240
1241       Since: 5.1
1242
1243   Block devices
1244       Block core (VM unrelated)
1245
1246       Background jobs
1247
1248       JobType (Enum)
1249
1250       Type of a background job.
1251
1252       Values:
1253
1254       "commit"
1255           block commit job type, see "block-commit"
1256
1257       "stream"
1258           block stream job type, see "block-stream"
1259
1260       "mirror"
1261           drive mirror job type, see "drive-mirror"
1262
1263       "backup"
1264           drive backup job type, see "drive-backup"
1265
1266       "create"
1267           image creation job type, see "blockdev-create" (since 3.0)
1268
1269       "amend"
1270           image options amend job type, see "x-blockdev-amend" (since 5.1)
1271
1272       Since: 1.7
1273
1274       JobStatus (Enum)
1275
1276       Indicates the present state of a given job in its lifetime.
1277
1278       Values:
1279
1280       "undefined"
1281           Erroneous, default state. Should not ever be visible.
1282
1283       "created"
1284           The job has been created, but not yet started.
1285
1286       "running"
1287           The job is currently running.
1288
1289       "paused"
1290           The job is running, but paused. The pause may be requested by
1291           either the QMP user or by internal processes.
1292
1293       "ready"
1294           The job is running, but is ready for the user to signal completion.
1295           This is used for long-running jobs like mirror that are designed to
1296           run indefinitely.
1297
1298       "standby"
1299           The job is ready, but paused. This is nearly identical to "paused".
1300           The job may return to "ready" or otherwise be canceled.
1301
1302       "waiting"
1303           The job is waiting for other jobs in the transaction to converge to
1304           the waiting state. This status will likely not be visible for the
1305           last job in a transaction.
1306
1307       "pending"
1308           The job has finished its work, but has finalization steps that it
1309           needs to make prior to completing. These changes will require
1310           manual intervention via "job-finalize" if auto-finalize was set to
1311           false. These pending changes may still fail.
1312
1313       "aborting"
1314           The job is in the process of being aborted, and will finish with an
1315           error. The job will afterwards report that it is "concluded".  This
1316           status may not be visible to the management process.
1317
1318       "concluded"
1319           The job has finished all work. If auto-dismiss was set to false,
1320           the job will remain in the query list until it is dismissed via
1321           "job-dismiss".
1322
1323       "null"
1324           The job is in the process of being dismantled. This state should
1325           not ever be visible externally.
1326
1327       Since: 2.12
1328
1329       JobVerb (Enum)
1330
1331       Represents command verbs that can be applied to a job.
1332
1333       Values:
1334
1335       "cancel"
1336           see "job-cancel"
1337
1338       "pause"
1339           see "job-pause"
1340
1341       "resume"
1342           see "job-resume"
1343
1344       "set-speed"
1345           see "block-job-set-speed"
1346
1347       "complete"
1348           see "job-complete"
1349
1350       "dismiss"
1351           see "job-dismiss"
1352
1353       "finalize"
1354           see "job-finalize"
1355
1356       Since: 2.12
1357
1358       JOB_STATUS_CHANGE  (Event) Emitted when a job transitions to a
1359       different status.
1360
1361       Arguments:
1362
1363       "id: string"
1364           The job identifier
1365
1366       "status: JobStatus"
1367           The new job status
1368
1369       Since: 3.0
1370
1371       job-pause  (Command) Pause an active job.
1372
1373       This command returns immediately after marking the active job for
1374       pausing.  Pausing an already paused job is an error.
1375
1376       The job will pause as soon as possible, which means transitioning into
1377       the PAUSED state if it was RUNNING, or into STANDBY if it was READY.
1378       The corresponding JOB_STATUS_CHANGE event will be emitted.
1379
1380       Cancelling a paused job automatically resumes it.
1381
1382       Arguments:
1383
1384       "id: string"
1385           The job identifier.
1386
1387       Since: 3.0
1388
1389       job-resume  (Command) Resume a paused job.
1390
1391       This command returns immediately after resuming a paused job. Resuming
1392       an already running job is an error.
1393
1394       "id" : The job identifier.
1395
1396       Arguments:
1397
1398       "id: string"
1399           Not documented
1400
1401       Since: 3.0
1402
1403       job-cancel  (Command) Instruct an active background job to cancel at
1404       the next opportunity.  This command returns immediately after marking
1405       the active job for cancellation.
1406
1407       The job will cancel as soon as possible and then emit a
1408       JOB_STATUS_CHANGE event. Usually, the status will change to ABORTING,
1409       but it is possible that a job successfully completes (e.g. because it
1410       was almost done and there was no opportunity to cancel earlier than
1411       completing the job) and transitions to PENDING instead.
1412
1413       Arguments:
1414
1415       "id: string"
1416           The job identifier.
1417
1418       Since: 3.0
1419
1420       job-complete  (Command) Manually trigger completion of an active job in
1421       the READY state.
1422
1423       Arguments:
1424
1425       "id: string"
1426           The job identifier.
1427
1428       Since: 3.0
1429
1430       job-dismiss  (Command) Deletes a job that is in the CONCLUDED state.
1431       This command only needs to be run explicitly for jobs that don't have
1432       automatic dismiss enabled.
1433
1434       This command will refuse to operate on any job that has not yet reached
1435       its terminal state, JOB_STATUS_CONCLUDED. For jobs that make use of
1436       JOB_READY event, job-cancel or job-complete will still need to be used
1437       as appropriate.
1438
1439       Arguments:
1440
1441       "id: string"
1442           The job identifier.
1443
1444       Since: 3.0
1445
1446       job-finalize  (Command) Instructs all jobs in a transaction (or a
1447       single job if it is not part of any transaction) to finalize any graph
1448       changes and do any necessary cleanup. This command requires that all
1449       involved jobs are in the PENDING state.
1450
1451       For jobs in a transaction, instructing one job to finalize will force
1452       ALL jobs in the transaction to finalize, so it is only necessary to
1453       instruct a single member job to finalize.
1454
1455       Arguments:
1456
1457       "id: string"
1458           The identifier of any job in the transaction, or of a job that is
1459           not part of any transaction.
1460
1461       Since: 3.0
1462
1463       JobInfo (Object)
1464
1465       Information about a job.
1466
1467       Members:
1468
1469       "id: string"
1470           The job identifier
1471
1472       "type: JobType"
1473           The kind of job that is being performed
1474
1475       "status: JobStatus"
1476           Current job state/status
1477
1478       "current-progress: int"
1479           Progress made until now. The unit is arbitrary and the value can
1480           only meaningfully be used for the ratio of "current-progress" to
1481           "total-progress". The value is monotonically increasing.
1482
1483       "total-progress: int"
1484           Estimated "current-progress" value at the completion of the job.
1485           This value can arbitrarily change while the job is running, in both
1486           directions.
1487
1488       "error: string" (optional)
1489           If this field is present, the job failed; if it is still missing in
1490           the CONCLUDED state, this indicates successful completion.
1491
1492           The value is a human-readable error message to describe the reason
1493           for the job failure. It should not be parsed by applications.
1494
1495       Since: 3.0
1496
1497       query-jobs  (Command) Return information about jobs.
1498
1499       Returns: a list with a "JobInfo" for each active job
1500
1501       Since: 3.0
1502
1503       SnapshotInfo (Object)
1504
1505       Members:
1506
1507       "id: string"
1508           unique snapshot id
1509
1510       "name: string"
1511           user chosen name
1512
1513       "vm-state-size: int"
1514           size of the VM state
1515
1516       "date-sec: int"
1517           UTC date of the snapshot in seconds
1518
1519       "date-nsec: int"
1520           fractional part in nano seconds to be used with date-sec
1521
1522       "vm-clock-sec: int"
1523           VM clock relative to boot in seconds
1524
1525       "vm-clock-nsec: int"
1526           fractional part in nano seconds to be used with vm-clock-sec
1527
1528       Since: 1.3
1529
1530       ImageInfoSpecificQCow2EncryptionBase (Object)
1531
1532       Members:
1533
1534       "format: BlockdevQcow2EncryptionFormat"
1535           The encryption format
1536
1537       Since: 2.10
1538
1539       ImageInfoSpecificQCow2Encryption (Object)
1540
1541       Members:
1542
1543       The members of "ImageInfoSpecificQCow2EncryptionBase"
1544       The members of "QCryptoBlockInfoLUKS" when "format" is "luks"
1545
1546       Since: 2.10
1547
1548       ImageInfoSpecificQCow2 (Object)
1549
1550       Members:
1551
1552       "compat: string"
1553           compatibility level
1554
1555       "data-file: string" (optional)
1556           the filename of the external data file that is stored in the image
1557           and used as a default for opening the image (since: 4.0)
1558
1559       "data-file-raw: boolean" (optional)
1560           True if the external data file must stay valid as a standalone
1561           (read-only) raw image without looking at qcow2 metadata (since:
1562           4.0)
1563
1564       "lazy-refcounts: boolean" (optional)
1565           on or off; only valid for compat >= 1.1
1566
1567       "corrupt: boolean" (optional)
1568           true if the image has been marked corrupt; only valid for compat >=
1569           1.1 (since 2.2)
1570
1571       "refcount-bits: int"
1572           width of a refcount entry in bits (since 2.3)
1573
1574       "encrypt: ImageInfoSpecificQCow2Encryption" (optional)
1575           details about encryption parameters; only set if image is encrypted
1576           (since 2.10)
1577
1578       "bitmaps: array of Qcow2BitmapInfo" (optional)
1579           A list of qcow2 bitmap details (since 4.0)
1580
1581       "compression-type: Qcow2CompressionType"
1582           the image cluster compression method (since 5.1)
1583
1584       Since: 1.7
1585
1586       ImageInfoSpecificVmdk (Object)
1587
1588       Members:
1589
1590       "create-type: string"
1591           The create type of VMDK image
1592
1593       "cid: int"
1594           Content id of image
1595
1596       "parent-cid: int"
1597           Parent VMDK image's cid
1598
1599       "extents: array of ImageInfo"
1600           List of extent files
1601
1602       Since: 1.7
1603
1604       ImageInfoSpecific (Object)
1605
1606       A discriminated record of image format specific information structures.
1607
1608       Members:
1609
1610       "type"
1611           One of "qcow2", "vmdk", "luks"
1612
1613       "data: ImageInfoSpecificQCow2" when "type" is "qcow2"
1614       "data: ImageInfoSpecificVmdk" when "type" is "vmdk"
1615       "data: QCryptoBlockInfoLUKS" when "type" is "luks"
1616
1617       Since: 1.7
1618
1619       ImageInfo (Object)
1620
1621       Information about a QEMU image file
1622
1623       Members:
1624
1625       "filename: string"
1626           name of the image file
1627
1628       "format: string"
1629           format of the image file
1630
1631       "virtual-size: int"
1632           maximum capacity in bytes of the image
1633
1634       "actual-size: int" (optional)
1635           actual size on disk in bytes of the image
1636
1637       "dirty-flag: boolean" (optional)
1638           true if image is not cleanly closed
1639
1640       "cluster-size: int" (optional)
1641           size of a cluster in bytes
1642
1643       "encrypted: boolean" (optional)
1644           true if the image is encrypted
1645
1646       "compressed: boolean" (optional)
1647           true if the image is compressed (Since 1.7)
1648
1649       "backing-filename: string" (optional)
1650           name of the backing file
1651
1652       "full-backing-filename: string" (optional)
1653           full path of the backing file
1654
1655       "backing-filename-format: string" (optional)
1656           the format of the backing file
1657
1658       "snapshots: array of SnapshotInfo" (optional)
1659           list of VM snapshots
1660
1661       "backing-image: ImageInfo" (optional)
1662           info of the backing image (since 1.6)
1663
1664       "format-specific: ImageInfoSpecific" (optional)
1665           structure supplying additional format-specific information (since
1666           1.7)
1667
1668       Since: 1.3
1669
1670       ImageCheck (Object)
1671
1672       Information about a QEMU image file check
1673
1674       Members:
1675
1676       "filename: string"
1677           name of the image file checked
1678
1679       "format: string"
1680           format of the image file checked
1681
1682       "check-errors: int"
1683           number of unexpected errors occurred during check
1684
1685       "image-end-offset: int" (optional)
1686           offset (in bytes) where the image ends, this field is present if
1687           the driver for the image format supports it
1688
1689       "corruptions: int" (optional)
1690           number of corruptions found during the check if any
1691
1692       "leaks: int" (optional)
1693           number of leaks found during the check if any
1694
1695       "corruptions-fixed: int" (optional)
1696           number of corruptions fixed during the check if any
1697
1698       "leaks-fixed: int" (optional)
1699           number of leaks fixed during the check if any
1700
1701       "total-clusters: int" (optional)
1702           total number of clusters, this field is present if the driver for
1703           the image format supports it
1704
1705       "allocated-clusters: int" (optional)
1706           total number of allocated clusters, this field is present if the
1707           driver for the image format supports it
1708
1709       "fragmented-clusters: int" (optional)
1710           total number of fragmented clusters, this field is present if the
1711           driver for the image format supports it
1712
1713       "compressed-clusters: int" (optional)
1714           total number of compressed clusters, this field is present if the
1715           driver for the image format supports it
1716
1717       Since: 1.4
1718
1719       MapEntry (Object)
1720
1721       Mapping information from a virtual block range to a host file range
1722
1723       Members:
1724
1725       "start: int"
1726           the start byte of the mapped virtual range
1727
1728       "length: int"
1729           the number of bytes of the mapped virtual range
1730
1731       "data: boolean"
1732           whether the mapped range has data
1733
1734       "zero: boolean"
1735           whether the virtual blocks are zeroed
1736
1737       "depth: int"
1738           the depth of the mapping
1739
1740       "offset: int" (optional)
1741           the offset in file that the virtual sectors are mapped to
1742
1743       "filename: string" (optional)
1744           filename that is referred to by "offset"
1745
1746       Since: 2.6
1747
1748       BlockdevCacheInfo (Object)
1749
1750       Cache mode information for a block device
1751
1752       Members:
1753
1754       "writeback: boolean"
1755           true if writeback mode is enabled
1756
1757       "direct: boolean"
1758           true if the host page cache is bypassed (O_DIRECT)
1759
1760       "no-flush: boolean"
1761           true if flush requests are ignored for the device
1762
1763       Since: 2.3
1764
1765       BlockDeviceInfo (Object)
1766
1767       Information about the backing device for a block device.
1768
1769       Members:
1770
1771       "file: string"
1772           the filename of the backing device
1773
1774       "node-name: string" (optional)
1775           the name of the block driver node (Since 2.0)
1776
1777       "ro: boolean"
1778           true if the backing device was open read-only
1779
1780       "drv: string"
1781           the name of the block format used to open the backing device. As of
1782           0.14.0 this can be: 'blkdebug', 'bochs', 'cloop', 'cow', 'dmg',
1783           'file', 'file', 'ftp', 'ftps', 'host_cdrom', 'host_device', 'http',
1784           'https', 'luks', 'nbd', 'parallels', 'qcow', 'qcow2', 'raw', 'vdi',
1785           'vmdk', 'vpc', 'vvfat' 2.2: 'archipelago' added, 'cow' dropped 2.3:
1786           'host_floppy' deprecated 2.5: 'host_floppy' dropped 2.6: 'luks'
1787           added 2.8: 'replication' added, 'tftp' dropped 2.9: 'archipelago'
1788           dropped
1789
1790       "backing_file: string" (optional)
1791           the name of the backing file (for copy-on-write)
1792
1793       "backing_file_depth: int"
1794           number of files in the backing file chain (since: 1.2)
1795
1796       "encrypted: boolean"
1797           true if the backing device is encrypted
1798
1799       "encryption_key_missing: boolean"
1800           always false
1801
1802       "detect_zeroes: BlockdevDetectZeroesOptions"
1803           detect and optimize zero writes (Since 2.1)
1804
1805       "bps: int"
1806           total throughput limit in bytes per second is specified
1807
1808       "bps_rd: int"
1809           read throughput limit in bytes per second is specified
1810
1811       "bps_wr: int"
1812           write throughput limit in bytes per second is specified
1813
1814       "iops: int"
1815           total I/O operations per second is specified
1816
1817       "iops_rd: int"
1818           read I/O operations per second is specified
1819
1820       "iops_wr: int"
1821           write I/O operations per second is specified
1822
1823       "image: ImageInfo"
1824           the info of image used (since: 1.6)
1825
1826       "bps_max: int" (optional)
1827           total throughput limit during bursts, in bytes (Since 1.7)
1828
1829       "bps_rd_max: int" (optional)
1830           read throughput limit during bursts, in bytes (Since 1.7)
1831
1832       "bps_wr_max: int" (optional)
1833           write throughput limit during bursts, in bytes (Since 1.7)
1834
1835       "iops_max: int" (optional)
1836           total I/O operations per second during bursts, in bytes (Since 1.7)
1837
1838       "iops_rd_max: int" (optional)
1839           read I/O operations per second during bursts, in bytes (Since 1.7)
1840
1841       "iops_wr_max: int" (optional)
1842           write I/O operations per second during bursts, in bytes (Since 1.7)
1843
1844       "bps_max_length: int" (optional)
1845           maximum length of the "bps_max" burst period, in seconds. (Since
1846           2.6)
1847
1848       "bps_rd_max_length: int" (optional)
1849           maximum length of the "bps_rd_max" burst period, in seconds. (Since
1850           2.6)
1851
1852       "bps_wr_max_length: int" (optional)
1853           maximum length of the "bps_wr_max" burst period, in seconds. (Since
1854           2.6)
1855
1856       "iops_max_length: int" (optional)
1857           maximum length of the "iops" burst period, in seconds. (Since 2.6)
1858
1859       "iops_rd_max_length: int" (optional)
1860           maximum length of the "iops_rd_max" burst period, in seconds.
1861           (Since 2.6)
1862
1863       "iops_wr_max_length: int" (optional)
1864           maximum length of the "iops_wr_max" burst period, in seconds.
1865           (Since 2.6)
1866
1867       "iops_size: int" (optional)
1868           an I/O size in bytes (Since 1.7)
1869
1870       "group: string" (optional)
1871           throttle group name (Since 2.4)
1872
1873       "cache: BlockdevCacheInfo"
1874           the cache mode used for the block device (since: 2.3)
1875
1876       "write_threshold: int"
1877           configured write threshold for the device.  0 if disabled. (Since
1878           2.3)
1879
1880       "dirty-bitmaps: array of BlockDirtyInfo" (optional)
1881           dirty bitmaps information (only present if node has one or more
1882           dirty bitmaps) (Since 4.2)
1883
1884       Features:
1885
1886       "deprecated"
1887           Member "encryption_key_missing" is deprecated.  It is always false.
1888
1889       Since: 0.14.0
1890
1891       BlockDeviceIoStatus (Enum)
1892
1893       An enumeration of block device I/O status.
1894
1895       Values:
1896
1897       "ok"
1898           The last I/O operation has succeeded
1899
1900       "failed"
1901           The last I/O operation has failed
1902
1903       "nospace"
1904           The last I/O operation has failed due to a no-space condition
1905
1906       Since: 1.0
1907
1908       BlockDeviceMapEntry (Object)
1909
1910       Entry in the metadata map of the device (returned by "qemu-img map")
1911
1912       Members:
1913
1914       "start: int"
1915           Offset in the image of the first byte described by this entry (in
1916           bytes)
1917
1918       "length: int"
1919           Length of the range described by this entry (in bytes)
1920
1921       "depth: int"
1922           Number of layers (0 = top image, 1 = top image's backing file,
1923           etc.)  before reaching one for which the range is allocated.  The
1924           value is in the range 0 to the depth of the image chain - 1.
1925
1926       "zero: boolean"
1927           the sectors in this range read as zeros
1928
1929       "data: boolean"
1930           reading the image will actually read data from a file (in
1931           particular, if "offset" is present this means that the sectors are
1932           not simply preallocated, but contain actual data in raw format)
1933
1934       "offset: int" (optional)
1935           if present, the image file stores the data for this range in raw
1936           format at the given offset.
1937
1938       Since: 1.7
1939
1940       DirtyBitmapStatus (Enum)
1941
1942       An enumeration of possible states that a dirty bitmap can report to the
1943       user.
1944
1945       Values:
1946
1947       "frozen"
1948           The bitmap is currently in-use by some operation and is immutable.
1949           If the bitmap was "active" prior to the operation, new writes by
1950           the guest are being recorded in a temporary buffer, and will not be
1951           lost.  Generally, bitmaps are cleared on successful use in an
1952           operation and the temporary buffer is committed into the bitmap. On
1953           failure, the temporary buffer is merged back into the bitmap
1954           without first clearing it.  Please refer to the documentation for
1955           each bitmap-using operation, See also "blockdev-backup",
1956           "drive-backup".
1957
1958       "disabled"
1959           The bitmap is not currently recording new writes by the guest.
1960           This is requested explicitly via "block-dirty-bitmap-disable".  It
1961           can still be cleared, deleted, or used for backup operations.
1962
1963       "active"
1964           The bitmap is actively monitoring for new writes, and can be
1965           cleared, deleted, or used for backup operations.
1966
1967       "locked"
1968           The bitmap is currently in-use by some operation and is immutable.
1969           If the bitmap was "active" prior to the operation, it is still
1970           recording new writes. If the bitmap was "disabled", it is not
1971           recording new writes. (Since 2.12)
1972
1973       "inconsistent"
1974           This is a persistent dirty bitmap that was marked in-use on disk,
1975           and is unusable by QEMU. It can only be deleted.  Please rely on
1976           the inconsistent field in "BlockDirtyInfo" instead, as the status
1977           field is deprecated. (Since 4.0)
1978
1979       Since: 2.4
1980
1981       BlockDirtyInfo (Object)
1982
1983       Block dirty bitmap information.
1984
1985       Members:
1986
1987       "name: string" (optional)
1988           the name of the dirty bitmap (Since 2.4)
1989
1990       "count: int"
1991           number of dirty bytes according to the dirty bitmap
1992
1993       "granularity: int"
1994           granularity of the dirty bitmap in bytes (since 1.4)
1995
1996       "status: DirtyBitmapStatus"
1997           current status of the dirty bitmap (since 2.4)
1998
1999       "recording: boolean"
2000           true if the bitmap is recording new writes from the guest.
2001           Replaces `active` and `disabled` statuses. (since 4.0)
2002
2003       "busy: boolean"
2004           true if the bitmap is in-use by some operation (NBD or jobs) and
2005           cannot be modified via QMP or used by another operation.  Replaces
2006           `locked` and `frozen` statuses. (since 4.0)
2007
2008       "persistent: boolean"
2009           true if the bitmap was stored on disk, is scheduled to be stored on
2010           disk, or both. (since 4.0)
2011
2012       "inconsistent: boolean" (optional)
2013           true if this is a persistent bitmap that was improperly stored.
2014           Implies "persistent" to be true; "recording" and "busy" to be
2015           false. This bitmap cannot be used. To remove it, use
2016           "block-dirty-bitmap-remove". (Since 4.0)
2017
2018       Features:
2019
2020       "deprecated"
2021           Member "status" is deprecated.  Use "recording" and "locked"
2022           instead.
2023
2024       Since: 1.3
2025
2026       Qcow2BitmapInfoFlags (Enum)
2027
2028       An enumeration of flags that a bitmap can report to the user.
2029
2030       Values:
2031
2032       "in-use"
2033           This flag is set by any process actively modifying the qcow2 file,
2034           and cleared when the updated bitmap is flushed to the qcow2 image.
2035           The presence of this flag in an offline image means that the bitmap
2036           was not saved correctly after its last usage, and may contain
2037           inconsistent data.
2038
2039       "auto"
2040           The bitmap must reflect all changes of the virtual disk by any
2041           application that would write to this qcow2 file.
2042
2043       Since: 4.0
2044
2045       Qcow2BitmapInfo (Object)
2046
2047       Qcow2 bitmap information.
2048
2049       Members:
2050
2051       "name: string"
2052           the name of the bitmap
2053
2054       "granularity: int"
2055           granularity of the bitmap in bytes
2056
2057       "flags: array of Qcow2BitmapInfoFlags"
2058           flags of the bitmap
2059
2060       Since: 4.0
2061
2062       BlockLatencyHistogramInfo (Object)
2063
2064       Block latency histogram.
2065
2066       Members:
2067
2068       "boundaries: array of int"
2069           list of interval boundary values in nanoseconds, all greater than
2070           zero and in ascending order.  For example, the list [10, 50, 100]
2071           produces the following histogram intervals: [0, 10), [10, 50), [50,
2072           100), [100, +inf).
2073
2074       "bins: array of int"
2075           list of io request counts corresponding to histogram intervals.
2076           len("bins") = len("boundaries") + 1 For the example above, "bins"
2077           may be something like [3, 1, 5, 2], and corresponding histogram
2078           looks like:
2079
2080                    5|           *
2081
2082
2083
2084                    4|           *
2085
2086
2087
2088                    3|         B< >
2089
2090
2091
2092                    2|         B< >    *
2093
2094
2095
2096                    1|    B< >       B< >
2097
2098
2099
2100                     +------------------
2101
2102
2103
2104                         10   50   100
2105
2106       Since: 4.0
2107
2108       BlockInfo (Object)
2109
2110       Block device information.  This structure describes a virtual device
2111       and the backing device associated with it.
2112
2113       Members:
2114
2115       "device: string"
2116           The device name associated with the virtual device.
2117
2118       "qdev: string" (optional)
2119           The qdev ID, or if no ID is assigned, the QOM path of the block
2120           device. (since 2.10)
2121
2122       "type: string"
2123           This field is returned only for compatibility reasons, it should
2124           not be used (always returns 'unknown')
2125
2126       "removable: boolean"
2127           True if the device supports removable media.
2128
2129       "locked: boolean"
2130           True if the guest has locked this device from having its media
2131           removed
2132
2133       "tray_open: boolean" (optional)
2134           True if the device's tray is open (only present if it has a tray)
2135
2136       "dirty-bitmaps: array of BlockDirtyInfo" (optional)
2137           dirty bitmaps information (only present if the driver has one or
2138           more dirty bitmaps) (Since 2.0)
2139
2140       "io-status: BlockDeviceIoStatus" (optional)
2141           "BlockDeviceIoStatus". Only present if the device supports it and
2142           the VM is configured to stop on errors (supported device models:
2143           virtio-blk, IDE, SCSI except scsi-generic)
2144
2145       "inserted: BlockDeviceInfo" (optional)
2146           "BlockDeviceInfo" describing the device if media is present
2147
2148       Features:
2149
2150       "deprecated"
2151           Member "dirty-bitmaps" is deprecated.  Use "inserted" member
2152           "dirty-bitmaps" instead.
2153
2154       Since: 0.14.0
2155
2156       BlockMeasureInfo (Object)
2157
2158       Image file size calculation information.  This structure describes the
2159       size requirements for creating a new image file.
2160
2161       The size requirements depend on the new image file format.  File size
2162       always equals virtual disk size for the 'raw' format, even for sparse
2163       POSIX files.  Compact formats such as 'qcow2' represent unallocated and
2164       zero regions efficiently so file size may be smaller than virtual disk
2165       size.
2166
2167       The values are upper bounds that are guaranteed to fit the new image
2168       file.  Subsequent modification, such as internal snapshot or further
2169       bitmap creation, may require additional space and is not covered here.
2170
2171       Members:
2172
2173       "required: int"
2174           Size required for a new image file, in bytes, when copying just
2175           allocated guest-visible contents.
2176
2177       "fully-allocated: int"
2178           Image file size, in bytes, once data has been written to all
2179           sectors, when copying just guest-visible contents.
2180
2181       "bitmaps: int" (optional)
2182           Additional size required if all the top-level bitmap metadata in
2183           the source image were to be copied to the destination, present only
2184           when source and destination both support persistent bitmaps. (since
2185           5.1)
2186
2187       Since: 2.10
2188
2189       query-block  (Command) Get a list of BlockInfo for all virtual block
2190       devices.
2191
2192       Returns: a list of "BlockInfo" describing each virtual block device.
2193       Filter nodes that were created implicitly are skipped over.
2194
2195       Since: 0.14.0
2196
2197       Example:
2198
2199               -> { "execute": "query-block" }
2200               <- {
2201                     "return":[
2202                        {
2203                           "io-status": "ok",
2204                           "device":"ide0-hd0",
2205                           "locked":false,
2206                           "removable":false,
2207                           "inserted":{
2208                              "ro":false,
2209                              "drv":"qcow2",
2210                              "encrypted":false,
2211                              "file":"disks/test.qcow2",
2212                              "backing_file_depth":1,
2213                              "bps":1000000,
2214                              "bps_rd":0,
2215                              "bps_wr":0,
2216                              "iops":1000000,
2217                              "iops_rd":0,
2218                              "iops_wr":0,
2219                              "bps_max": 8000000,
2220                              "bps_rd_max": 0,
2221                              "bps_wr_max": 0,
2222                              "iops_max": 0,
2223                              "iops_rd_max": 0,
2224                              "iops_wr_max": 0,
2225                              "iops_size": 0,
2226                              "detect_zeroes": "on",
2227                              "write_threshold": 0,
2228                              "image":{
2229                                 "filename":"disks/test.qcow2",
2230                                 "format":"qcow2",
2231                                 "virtual-size":2048000,
2232                                 "backing_file":"base.qcow2",
2233                                 "full-backing-filename":"disks/base.qcow2",
2234                                 "backing-filename-format":"qcow2",
2235                                 "snapshots":[
2236                                    {
2237                                       "id": "1",
2238                                       "name": "snapshot1",
2239                                       "vm-state-size": 0,
2240                                       "date-sec": 10000200,
2241                                       "date-nsec": 12,
2242                                       "vm-clock-sec": 206,
2243                                       "vm-clock-nsec": 30
2244                                    }
2245                                 ],
2246                                 "backing-image":{
2247                                     "filename":"disks/base.qcow2",
2248                                     "format":"qcow2",
2249                                     "virtual-size":2048000
2250                                 }
2251                              }
2252                           },
2253                           "qdev": "ide_disk",
2254                           "type":"unknown"
2255                        },
2256                        {
2257                           "io-status": "ok",
2258                           "device":"ide1-cd0",
2259                           "locked":false,
2260                           "removable":true,
2261                           "qdev": "/machine/unattached/device[23]",
2262                           "tray_open": false,
2263                           "type":"unknown"
2264                        },
2265                        {
2266                           "device":"floppy0",
2267                           "locked":false,
2268                           "removable":true,
2269                           "qdev": "/machine/unattached/device[20]",
2270                           "type":"unknown"
2271                        },
2272                        {
2273                           "device":"sd0",
2274                           "locked":false,
2275                           "removable":true,
2276                           "type":"unknown"
2277                        }
2278                     ]
2279                  }
2280
2281       BlockDeviceTimedStats (Object)
2282
2283       Statistics of a block device during a given interval of time.
2284
2285       Members:
2286
2287       "interval_length: int"
2288           Interval used for calculating the statistics, in seconds.
2289
2290       "min_rd_latency_ns: int"
2291           Minimum latency of read operations in the defined interval, in
2292           nanoseconds.
2293
2294       "min_wr_latency_ns: int"
2295           Minimum latency of write operations in the defined interval, in
2296           nanoseconds.
2297
2298       "min_flush_latency_ns: int"
2299           Minimum latency of flush operations in the defined interval, in
2300           nanoseconds.
2301
2302       "max_rd_latency_ns: int"
2303           Maximum latency of read operations in the defined interval, in
2304           nanoseconds.
2305
2306       "max_wr_latency_ns: int"
2307           Maximum latency of write operations in the defined interval, in
2308           nanoseconds.
2309
2310       "max_flush_latency_ns: int"
2311           Maximum latency of flush operations in the defined interval, in
2312           nanoseconds.
2313
2314       "avg_rd_latency_ns: int"
2315           Average latency of read operations in the defined interval, in
2316           nanoseconds.
2317
2318       "avg_wr_latency_ns: int"
2319           Average latency of write operations in the defined interval, in
2320           nanoseconds.
2321
2322       "avg_flush_latency_ns: int"
2323           Average latency of flush operations in the defined interval, in
2324           nanoseconds.
2325
2326       "avg_rd_queue_depth: number"
2327           Average number of pending read operations in the defined interval.
2328
2329       "avg_wr_queue_depth: number"
2330           Average number of pending write operations in the defined interval.
2331
2332       Since: 2.5
2333
2334       BlockDeviceStats (Object)
2335
2336       Statistics of a virtual block device or a block backing device.
2337
2338       Members:
2339
2340       "rd_bytes: int"
2341           The number of bytes read by the device.
2342
2343       "wr_bytes: int"
2344           The number of bytes written by the device.
2345
2346       "unmap_bytes: int"
2347           The number of bytes unmapped by the device (Since 4.2)
2348
2349       "rd_operations: int"
2350           The number of read operations performed by the device.
2351
2352       "wr_operations: int"
2353           The number of write operations performed by the device.
2354
2355       "flush_operations: int"
2356           The number of cache flush operations performed by the device (since
2357           0.15.0)
2358
2359       "unmap_operations: int"
2360           The number of unmap operations performed by the device (Since 4.2)
2361
2362       "rd_total_time_ns: int"
2363           Total time spent on reads in nanoseconds (since 0.15.0).
2364
2365       "wr_total_time_ns: int"
2366           Total time spent on writes in nanoseconds (since 0.15.0).
2367
2368       "flush_total_time_ns: int"
2369           Total time spent on cache flushes in nanoseconds (since 0.15.0).
2370
2371       "unmap_total_time_ns: int"
2372           Total time spent on unmap operations in nanoseconds (Since 4.2)
2373
2374       "wr_highest_offset: int"
2375           The offset after the greatest byte written to the device.  The
2376           intended use of this information is for growable sparse files (like
2377           qcow2) that are used on top of a physical device.
2378
2379       "rd_merged: int"
2380           Number of read requests that have been merged into another request
2381           (Since 2.3).
2382
2383       "wr_merged: int"
2384           Number of write requests that have been merged into another request
2385           (Since 2.3).
2386
2387       "unmap_merged: int"
2388           Number of unmap requests that have been merged into another request
2389           (Since 4.2)
2390
2391       "idle_time_ns: int" (optional)
2392           Time since the last I/O operation, in nanoseconds. If the field is
2393           absent it means that there haven't been any operations yet (Since
2394           2.5).
2395
2396       "failed_rd_operations: int"
2397           The number of failed read operations performed by the device (Since
2398           2.5)
2399
2400       "failed_wr_operations: int"
2401           The number of failed write operations performed by the device
2402           (Since 2.5)
2403
2404       "failed_flush_operations: int"
2405           The number of failed flush operations performed by the device
2406           (Since 2.5)
2407
2408       "failed_unmap_operations: int"
2409           The number of failed unmap operations performed by the device
2410           (Since 4.2)
2411
2412       "invalid_rd_operations: int"
2413           The number of invalid read operations performed by the device
2414           (Since 2.5)
2415
2416       "invalid_wr_operations: int"
2417           The number of invalid write operations performed by the device
2418           (Since 2.5)
2419
2420       "invalid_flush_operations: int"
2421           The number of invalid flush operations performed by the device
2422           (Since 2.5)
2423
2424       "invalid_unmap_operations: int"
2425           The number of invalid unmap operations performed by the device
2426           (Since 4.2)
2427
2428       "account_invalid: boolean"
2429           Whether invalid operations are included in the last access
2430           statistics (Since 2.5)
2431
2432       "account_failed: boolean"
2433           Whether failed operations are included in the latency and last
2434           access statistics (Since 2.5)
2435
2436       "timed_stats: array of BlockDeviceTimedStats"
2437           Statistics specific to the set of previously defined intervals of
2438           time (Since 2.5)
2439
2440       "rd_latency_histogram: BlockLatencyHistogramInfo" (optional)
2441           "BlockLatencyHistogramInfo". (Since 4.0)
2442
2443       "wr_latency_histogram: BlockLatencyHistogramInfo" (optional)
2444           "BlockLatencyHistogramInfo". (Since 4.0)
2445
2446       "flush_latency_histogram: BlockLatencyHistogramInfo" (optional)
2447           "BlockLatencyHistogramInfo". (Since 4.0)
2448
2449       Since: 0.14.0
2450
2451       BlockStatsSpecificFile (Object)
2452
2453       File driver statistics
2454
2455       Members:
2456
2457       "discard-nb-ok: int"
2458           The number of successful discard operations performed by the
2459           driver.
2460
2461       "discard-nb-failed: int"
2462           The number of failed discard operations performed by the driver.
2463
2464       "discard-bytes-ok: int"
2465           The number of bytes discarded by the driver.
2466
2467       Since: 4.2
2468
2469       BlockStatsSpecific (Object)
2470
2471       Block driver specific statistics
2472
2473       Members:
2474
2475       "driver: BlockdevDriver"
2476           Not documented
2477
2478       The members of "BlockStatsSpecificFile" when "driver" is "file"
2479       The members of "BlockStatsSpecificFile" when "driver" is "host_device"
2480
2481       Since: 4.2
2482
2483       BlockStats (Object)
2484
2485       Statistics of a virtual block device or a block backing device.
2486
2487       Members:
2488
2489       "device: string" (optional)
2490           If the stats are for a virtual block device, the name corresponding
2491           to the virtual block device.
2492
2493       "node-name: string" (optional)
2494           The node name of the device. (Since 2.3)
2495
2496       "qdev: string" (optional)
2497           The qdev ID, or if no ID is assigned, the QOM path of the block
2498           device. (since 3.0)
2499
2500       "stats: BlockDeviceStats"
2501           A "BlockDeviceStats" for the device.
2502
2503       "driver-specific: BlockStatsSpecific" (optional)
2504           Optional driver-specific stats. (Since 4.2)
2505
2506       "parent: BlockStats" (optional)
2507           This describes the file block device if it has one.  Contains
2508           recursively the statistics of the underlying protocol (e.g. the
2509           host file for a qcow2 image). If there is no underlying protocol,
2510           this field is omitted
2511
2512       "backing: BlockStats" (optional)
2513           This describes the backing block device if it has one.  (Since 2.0)
2514
2515       Since: 0.14.0
2516
2517       query-blockstats  (Command) Query the "BlockStats" for all virtual
2518       block devices.
2519
2520       Arguments:
2521
2522       "query-nodes: boolean" (optional)
2523           If true, the command will query all the block nodes that have a
2524           node name, in a list which will include "parent" information, but
2525           not "backing".  If false or omitted, the behavior is as before -
2526           query all the device backends, recursively including their "parent"
2527           and "backing". Filter nodes that were created implicitly are
2528           skipped over in this mode. (Since 2.3)
2529
2530       Returns: A list of "BlockStats" for each virtual block devices.
2531
2532       Since: 0.14.0
2533
2534       Example:
2535
2536               -> { "execute": "query-blockstats" }
2537               <- {
2538                     "return":[
2539                        {
2540                           "device":"ide0-hd0",
2541                           "parent":{
2542                              "stats":{
2543                                 "wr_highest_offset":3686448128,
2544                                 "wr_bytes":9786368,
2545                                 "wr_operations":751,
2546                                 "rd_bytes":122567168,
2547                                 "rd_operations":36772
2548                                 "wr_total_times_ns":313253456
2549                                 "rd_total_times_ns":3465673657
2550                                 "flush_total_times_ns":49653
2551                                 "flush_operations":61,
2552                                 "rd_merged":0,
2553                                 "wr_merged":0,
2554                                 "idle_time_ns":2953431879,
2555                                 "account_invalid":true,
2556                                 "account_failed":false
2557                              }
2558                           },
2559                           "stats":{
2560                              "wr_highest_offset":2821110784,
2561                              "wr_bytes":9786368,
2562                              "wr_operations":692,
2563                              "rd_bytes":122739200,
2564                              "rd_operations":36604
2565                              "flush_operations":51,
2566                              "wr_total_times_ns":313253456
2567                              "rd_total_times_ns":3465673657
2568                              "flush_total_times_ns":49653,
2569                              "rd_merged":0,
2570                              "wr_merged":0,
2571                              "idle_time_ns":2953431879,
2572                              "account_invalid":true,
2573                              "account_failed":false
2574                           },
2575                           "qdev": "/machine/unattached/device[23]"
2576                        },
2577                        {
2578                           "device":"ide1-cd0",
2579                           "stats":{
2580                              "wr_highest_offset":0,
2581                              "wr_bytes":0,
2582                              "wr_operations":0,
2583                              "rd_bytes":0,
2584                              "rd_operations":0
2585                              "flush_operations":0,
2586                              "wr_total_times_ns":0
2587                              "rd_total_times_ns":0
2588                              "flush_total_times_ns":0,
2589                              "rd_merged":0,
2590                              "wr_merged":0,
2591                              "account_invalid":false,
2592                              "account_failed":false
2593                           },
2594                           "qdev": "/machine/unattached/device[24]"
2595                        },
2596                        {
2597                           "device":"floppy0",
2598                           "stats":{
2599                              "wr_highest_offset":0,
2600                              "wr_bytes":0,
2601                              "wr_operations":0,
2602                              "rd_bytes":0,
2603                              "rd_operations":0
2604                              "flush_operations":0,
2605                              "wr_total_times_ns":0
2606                              "rd_total_times_ns":0
2607                              "flush_total_times_ns":0,
2608                              "rd_merged":0,
2609                              "wr_merged":0,
2610                              "account_invalid":false,
2611                              "account_failed":false
2612                           },
2613                           "qdev": "/machine/unattached/device[16]"
2614                        },
2615                        {
2616                           "device":"sd0",
2617                           "stats":{
2618                              "wr_highest_offset":0,
2619                              "wr_bytes":0,
2620                              "wr_operations":0,
2621                              "rd_bytes":0,
2622                              "rd_operations":0
2623                              "flush_operations":0,
2624                              "wr_total_times_ns":0
2625                              "rd_total_times_ns":0
2626                              "flush_total_times_ns":0,
2627                              "rd_merged":0,
2628                              "wr_merged":0,
2629                              "account_invalid":false,
2630                              "account_failed":false
2631                           }
2632                        }
2633                     ]
2634                  }
2635
2636       BlockdevOnError (Enum)
2637
2638       An enumeration of possible behaviors for errors on I/O operations.  The
2639       exact meaning depends on whether the I/O was initiated by a guest or by
2640       a block job
2641
2642       Values:
2643
2644       "report"
2645           for guest operations, report the error to the guest; for jobs,
2646           cancel the job
2647
2648       "ignore"
2649           ignore the error, only report a QMP event (BLOCK_IO_ERROR or
2650           BLOCK_JOB_ERROR). The backup, mirror and commit block jobs retry
2651           the failing request later and may still complete successfully. The
2652           stream block job continues to stream and will complete with an
2653           error.
2654
2655       "enospc"
2656           same as "stop" on ENOSPC, same as "report" otherwise.
2657
2658       "stop"
2659           for guest operations, stop the virtual machine; for jobs, pause the
2660           job
2661
2662       "auto"
2663           inherit the error handling policy of the backend (since: 2.7)
2664
2665       Since: 1.3
2666
2667       MirrorSyncMode (Enum)
2668
2669       An enumeration of possible behaviors for the initial synchronization
2670       phase of storage mirroring.
2671
2672       Values:
2673
2674       "top"
2675           copies data in the topmost image to the destination
2676
2677       "full"
2678           copies data from all images to the destination
2679
2680       "none"
2681           only copy data written from now on
2682
2683       "incremental"
2684           only copy data described by the dirty bitmap. (since: 2.4)
2685
2686       "bitmap"
2687           only copy data described by the dirty bitmap. (since: 4.2) Behavior
2688           on completion is determined by the BitmapSyncMode.
2689
2690       Since: 1.3
2691
2692       BitmapSyncMode (Enum)
2693
2694       An enumeration of possible behaviors for the synchronization of a
2695       bitmap when used for data copy operations.
2696
2697       Values:
2698
2699       "on-success"
2700           The bitmap is only synced when the operation is successful.  This
2701           is the behavior always used for 'INCREMENTAL' backups.
2702
2703       "never"
2704           The bitmap is never synchronized with the operation, and is treated
2705           solely as a read-only manifest of blocks to copy.
2706
2707       "always"
2708           The bitmap is always synchronized with the operation, regardless of
2709           whether or not the operation was successful.
2710
2711       Since: 4.2
2712
2713       MirrorCopyMode (Enum)
2714
2715       An enumeration whose values tell the mirror block job when to trigger
2716       writes to the target.
2717
2718       Values:
2719
2720       "background"
2721           copy data in background only.
2722
2723       "write-blocking"
2724           when data is written to the source, write it (synchronously) to the
2725           target as well.  In addition, data is copied in background just
2726           like in "background" mode.
2727
2728       Since: 3.0
2729
2730       BlockJobInfo (Object)
2731
2732       Information about a long-running block device operation.
2733
2734       Members:
2735
2736       "type: string"
2737           the job type ('stream' for image streaming)
2738
2739       "device: string"
2740           The job identifier. Originally the device name but other values are
2741           allowed since QEMU 2.7
2742
2743       "len: int"
2744           Estimated "offset" value at the completion of the job. This value
2745           can arbitrarily change while the job is running, in both
2746           directions.
2747
2748       "offset: int"
2749           Progress made until now. The unit is arbitrary and the value can
2750           only meaningfully be used for the ratio of "offset" to "len". The
2751           value is monotonically increasing.
2752
2753       "busy: boolean"
2754           false if the job is known to be in a quiescent state, with no
2755           pending I/O.  Since 1.3.
2756
2757       "paused: boolean"
2758           whether the job is paused or, if "busy" is true, will pause itself
2759           as soon as possible.  Since 1.3.
2760
2761       "speed: int"
2762           the rate limit, bytes per second
2763
2764       "io-status: BlockDeviceIoStatus"
2765           the status of the job (since 1.3)
2766
2767       "ready: boolean"
2768           true if the job may be completed (since 2.2)
2769
2770       "status: JobStatus"
2771           Current job state/status (since 2.12)
2772
2773       "auto-finalize: boolean"
2774           Job will finalize itself when PENDING, moving to the CONCLUDED
2775           state. (since 2.12)
2776
2777       "auto-dismiss: boolean"
2778           Job will dismiss itself when CONCLUDED, moving to the NULL state
2779           and disappearing from the query list. (since 2.12)
2780
2781       "error: string" (optional)
2782           Error information if the job did not complete successfully.  Not
2783           set if the job completed successfully. (since 2.12.1)
2784
2785       Since: 1.1
2786
2787       query-block-jobs  (Command) Return information about long-running block
2788       device operations.
2789
2790       Returns: a list of "BlockJobInfo" for each active block job
2791
2792       Since: 1.1
2793
2794       block_passwd  (Command) This command sets the password of a block
2795       device that has not been open with a password and requires one.
2796
2797       This command is now obsolete and will always return an error since 2.10
2798
2799       Arguments:
2800
2801       "device: string" (optional)
2802           Not documented
2803
2804       "node-name: string" (optional)
2805           Not documented
2806
2807       "password: string"
2808           Not documented
2809
2810       block_resize  (Command) Resize a block image while a guest is running.
2811
2812       Either "device" or "node-name" must be set but not both.
2813
2814       Arguments:
2815
2816       "device: string" (optional)
2817           the name of the device to get the image resized
2818
2819       "node-name: string" (optional)
2820           graph node name to get the image resized (Since 2.0)
2821
2822       "size: int"
2823           new image size in bytes
2824
2825       Returns:
2826
2827       -   nothing on success
2828
2829       -   If "device" is not a valid block device, DeviceNotFound
2830
2831       Since: 0.14.0
2832
2833       Example:
2834
2835               -> { "execute": "block_resize",
2836                    "arguments": { "device": "scratch", "size": 1073741824 } }
2837               <- { "return": {} }
2838
2839       NewImageMode (Enum)
2840
2841       An enumeration that tells QEMU how to set the backing file path in a
2842       new image file.
2843
2844       Values:
2845
2846       "existing"
2847           QEMU should look for an existing image file.
2848
2849       "absolute-paths"
2850           QEMU should create a new image with absolute paths for the backing
2851           file. If there is no backing file available, the new image will not
2852           be backed either.
2853
2854       Since: 1.1
2855
2856       BlockdevSnapshotSync (Object)
2857
2858       Either "device" or "node-name" must be set but not both.
2859
2860       Members:
2861
2862       "device: string" (optional)
2863           the name of the device to take a snapshot of.
2864
2865       "node-name: string" (optional)
2866           graph node name to generate the snapshot from (Since 2.0)
2867
2868       "snapshot-file: string"
2869           the target of the new overlay image. If the file exists, or if it
2870           is a device, the overlay will be created in the existing
2871           file/device. Otherwise, a new file will be created.
2872
2873       "snapshot-node-name: string" (optional)
2874           the graph node name of the new image (Since 2.0)
2875
2876       "format: string" (optional)
2877           the format of the overlay image, default is 'qcow2'.
2878
2879       "mode: NewImageMode" (optional)
2880           whether and how QEMU should create a new image, default is
2881           'absolute-paths'.
2882
2883       BlockdevSnapshot (Object)
2884
2885       Members:
2886
2887       "node: string"
2888           device or node name that will have a snapshot taken.
2889
2890       "overlay: string"
2891           reference to the existing block device that will become the overlay
2892           of "node", as part of taking the snapshot.  It must not have a
2893           current backing file (this can be achieved by passing "backing":
2894           null to blockdev-add).
2895
2896       Since: 2.5
2897
2898       BackupCommon (Object)
2899
2900       Members:
2901
2902       "job-id: string" (optional)
2903           identifier for the newly-created block job. If omitted, the device
2904           name will be used. (Since 2.7)
2905
2906       "device: string"
2907           the device name or node-name of a root node which should be copied.
2908
2909       "sync: MirrorSyncMode"
2910           what parts of the disk image should be copied to the destination
2911           (all the disk, only the sectors allocated in the topmost image,
2912           from a dirty bitmap, or only new I/O).
2913
2914       "speed: int" (optional)
2915           the maximum speed, in bytes per second. The default is 0, for
2916           unlimited.
2917
2918       "bitmap: string" (optional)
2919           The name of a dirty bitmap to use.  Must be present if sync is
2920           "bitmap" or "incremental".  Can be present if sync is "full" or
2921           "top".  Must not be present otherwise.  (Since 2.4 (drive-backup),
2922           3.1 (blockdev-backup))
2923
2924       "bitmap-mode: BitmapSyncMode" (optional)
2925           Specifies the type of data the bitmap should contain after the
2926           operation concludes.  Must be present if a bitmap was provided,
2927           Must NOT be present otherwise. (Since 4.2)
2928
2929       "compress: boolean" (optional)
2930           true to compress data, if the target format supports it.  (default:
2931           false) (since 2.8)
2932
2933       "on-source-error: BlockdevOnError" (optional)
2934           the action to take on an error on the source, default 'report'.
2935           'stop' and 'enospc' can only be used if the block device supports
2936           io-status (see BlockInfo).
2937
2938       "on-target-error: BlockdevOnError" (optional)
2939           the action to take on an error on the target, default 'report' (no
2940           limitations, since this applies to a different block device than
2941           "device").
2942
2943       "auto-finalize: boolean" (optional)
2944           When false, this job will wait in a PENDING state after it has
2945           finished its work, waiting for "block-job-finalize" before making
2946           any block graph changes.  When true, this job will automatically
2947           perform its abort or commit actions.  Defaults to true. (Since
2948           2.12)
2949
2950       "auto-dismiss: boolean" (optional)
2951           When false, this job will wait in a CONCLUDED state after it has
2952           completely ceased all work, and awaits "block-job-dismiss".  When
2953           true, this job will automatically disappear from the query list
2954           without user intervention.  Defaults to true. (Since 2.12)
2955
2956       "filter-node-name: string" (optional)
2957           the node name that should be assigned to the filter driver that the
2958           backup job inserts into the graph above node specified by "drive".
2959           If this option is not given, a node name is autogenerated. (Since:
2960           4.2)
2961
2962       Note: "on-source-error" and "on-target-error" only affect background
2963       I/O.  If an error occurs during a guest write request, the device's
2964       rerror/werror actions will be used.
2965
2966       Since: 4.2
2967
2968       DriveBackup (Object)
2969
2970       Members:
2971
2972       "target: string"
2973           the target of the new image. If the file exists, or if it is a
2974           device, the existing file/device will be used as the new
2975           destination.  If it does not exist, a new file will be created.
2976
2977       "format: string" (optional)
2978           the format of the new destination, default is to probe if "mode" is
2979           'existing', else the format of the source
2980
2981       "mode: NewImageMode" (optional)
2982           whether and how QEMU should create a new image, default is
2983           'absolute-paths'.
2984
2985       The members of "BackupCommon"
2986
2987       Since: 1.6
2988
2989       BlockdevBackup (Object)
2990
2991       Members:
2992
2993       "target: string"
2994           the device name or node-name of the backup target node.
2995
2996       The members of "BackupCommon"
2997
2998       Since: 2.3
2999
3000       blockdev-snapshot-sync  (Command) Takes a synchronous snapshot of a
3001       block device.
3002
3003       For the arguments, see the documentation of BlockdevSnapshotSync.
3004
3005       Returns:
3006
3007       -   nothing on success
3008
3009       -   If "device" is not a valid block device, DeviceNotFound
3010
3011       Since: 0.14.0
3012
3013       Example:
3014
3015               -> { "execute": "blockdev-snapshot-sync",
3016                    "arguments": { "device": "ide-hd0",
3017                                   "snapshot-file":
3018                                   "/some/place/my-image",
3019                                   "format": "qcow2" } }
3020               <- { "return": {} }
3021
3022       blockdev-snapshot  (Command) Takes a snapshot of a block device.
3023
3024       Take a snapshot, by installing 'node' as the backing image of
3025       'overlay'. Additionally, if 'node' is associated with a block device,
3026       the block device changes to using 'overlay' as its new active image.
3027
3028       For the arguments, see the documentation of BlockdevSnapshot.
3029
3030       Features:
3031
3032       "allow-write-only-overlay"
3033           If present, the check whether this operation is safe was relaxed so
3034           that it can be used to change backing file of a destination of a
3035           blockdev-mirror.  (since 5.0)
3036
3037       Since: 2.5
3038
3039       Example:
3040
3041               -> { "execute": "blockdev-add",
3042                    "arguments": { "driver": "qcow2",
3043                                   "node-name": "node1534",
3044                                   "file": { "driver": "file",
3045                                             "filename": "hd1.qcow2" },
3046                                   "backing": null } }
3047
3048               <- { "return": {} }
3049
3050               -> { "execute": "blockdev-snapshot",
3051                    "arguments": { "node": "ide-hd0",
3052                                   "overlay": "node1534" } }
3053               <- { "return": {} }
3054
3055       change-backing-file  (Command) Change the backing file in the image
3056       file metadata.  This does not cause QEMU to reopen the image file to
3057       reparse the backing filename (it may, however, perform a reopen to
3058       change permissions from r/o -> r/w -> r/o, if needed). The new backing
3059       file string is written into the image file metadata, and the QEMU
3060       internal strings are updated.
3061
3062       Arguments:
3063
3064       "image-node-name: string"
3065           The name of the block driver state node of the image to modify. The
3066           "device" argument is used to verify "image-node-name" is in the
3067           chain described by "device".
3068
3069       "device: string"
3070           The device name or node-name of the root node that owns image-node-
3071           name.
3072
3073       "backing-file: string"
3074           The string to write as the backing file.  This string is not
3075           validated, so care should be taken when specifying the string or
3076           the image chain may not be able to be reopened again.
3077
3078       Returns:
3079
3080       -   Nothing on success
3081
3082       -   If "device" does not exist or cannot be determined, DeviceNotFound
3083
3084       Since: 2.1
3085
3086       block-commit  (Command) Live commit of data from overlay image nodes
3087       into backing nodes - i.e., writes data between 'top' and 'base' into
3088       'base'.
3089
3090       Arguments:
3091
3092       "job-id: string" (optional)
3093           identifier for the newly-created block job. If omitted, the device
3094           name will be used. (Since 2.7)
3095
3096       "device: string"
3097           the device name or node-name of a root node
3098
3099       "base-node: string" (optional)
3100           The node name of the backing image to write data into.  If not
3101           specified, this is the deepest backing image.  (since: 3.1)
3102
3103       "base: string" (optional)
3104           Same as "base-node", except that it is a file name rather than a
3105           node name. This must be the exact filename string that was used to
3106           open the node; other strings, even if addressing the same file, are
3107           not accepted
3108
3109       "top-node: string" (optional)
3110           The node name of the backing image within the image chain which
3111           contains the topmost data to be committed down. If not specified,
3112           this is the active layer. (since: 3.1)
3113
3114       "top: string" (optional)
3115           Same as "top-node", except that it is a file name rather than a
3116           node name. This must be the exact filename string that was used to
3117           open the node; other strings, even if addressing the same file, are
3118           not accepted
3119
3120       "backing-file: string" (optional)
3121           The backing file string to write into the overlay image of 'top'.
3122           If 'top' is the active layer, specifying a backing file string is
3123           an error. This filename is not validated.
3124
3125           If a pathname string is such that it cannot be resolved by QEMU,
3126           that means that subsequent QMP or HMP commands must use node-names
3127           for the image in question, as filename lookup methods will fail.
3128
3129           If not specified, QEMU will automatically determine the backing
3130           file string to use, or error out if there is no obvious choice.
3131           Care should be taken when specifying the string, to specify a valid
3132           filename or protocol.  (Since 2.1)
3133
3134           If top == base, that is an error.  If top == active, the job will
3135           not be completed by itself, user needs to complete the job with the
3136           block-job-complete command after getting the ready event. (Since
3137           2.0)
3138
3139           If the base image is smaller than top, then the base image will be
3140           resized to be the same size as top.  If top is smaller than the
3141           base image, the base will not be truncated.  If you want the base
3142           image size to match the size of the smaller top, you can safely
3143           truncate it yourself once the commit operation successfully
3144           completes.
3145
3146       "speed: int" (optional)
3147           the maximum speed, in bytes per second
3148
3149       "on-error: BlockdevOnError" (optional)
3150           the action to take on an error. 'ignore' means that the request
3151           should be retried. (default: report; Since: 5.0)
3152
3153       "filter-node-name: string" (optional)
3154           the node name that should be assigned to the filter driver that the
3155           commit job inserts into the graph above "top". If this option is
3156           not given, a node name is autogenerated. (Since: 2.9)
3157
3158       "auto-finalize: boolean" (optional)
3159           When false, this job will wait in a PENDING state after it has
3160           finished its work, waiting for "block-job-finalize" before making
3161           any block graph changes.  When true, this job will automatically
3162           perform its abort or commit actions.  Defaults to true. (Since 3.1)
3163
3164       "auto-dismiss: boolean" (optional)
3165           When false, this job will wait in a CONCLUDED state after it has
3166           completely ceased all work, and awaits "block-job-dismiss".  When
3167           true, this job will automatically disappear from the query list
3168           without user intervention.  Defaults to true. (Since 3.1)
3169
3170       Features:
3171
3172       "deprecated"
3173           Members "base" and "top" are deprecated.  Use "base-node" and
3174           "top-node" instead.
3175
3176       Returns:
3177
3178       -   Nothing on success
3179
3180       -   If "device" does not exist, DeviceNotFound
3181
3182       -   Any other error returns a GenericError.
3183
3184       Since: 1.3
3185
3186       Example:
3187
3188               -> { "execute": "block-commit",
3189                    "arguments": { "device": "virtio0",
3190                                   "top": "/tmp/snap1.qcow2" } }
3191               <- { "return": {} }
3192
3193       drive-backup  (Command) Start a point-in-time copy of a block device to
3194       a new destination.  The status of ongoing drive-backup operations can
3195       be checked with query-block-jobs where the BlockJobInfo.type field has
3196       the value 'backup'.  The operation can be stopped before it has
3197       completed using the block-job-cancel command.
3198
3199       Arguments: the members of "DriveBackup"
3200
3201       Returns:
3202
3203       -   nothing on success
3204
3205       -   If "device" is not a valid block device, GenericError
3206
3207       Since: 1.6
3208
3209       Example:
3210
3211               -> { "execute": "drive-backup",
3212                    "arguments": { "device": "drive0",
3213                                   "sync": "full",
3214                                   "target": "backup.img" } }
3215               <- { "return": {} }
3216
3217       blockdev-backup  (Command) Start a point-in-time copy of a block device
3218       to a new destination.  The status of ongoing blockdev-backup operations
3219       can be checked with query-block-jobs where the BlockJobInfo.type field
3220       has the value 'backup'.  The operation can be stopped before it has
3221       completed using the block-job-cancel command.
3222
3223       Arguments: the members of "BlockdevBackup"
3224
3225       Returns:
3226
3227       -   nothing on success
3228
3229       -   If "device" is not a valid block device, DeviceNotFound
3230
3231       Since: 2.3
3232
3233       Example:
3234
3235               -> { "execute": "blockdev-backup",
3236                    "arguments": { "device": "src-id",
3237                                   "sync": "full",
3238                                   "target": "tgt-id" } }
3239               <- { "return": {} }
3240
3241       query-named-block-nodes  (Command) Get the named block driver list
3242
3243       Arguments:
3244
3245       "flat: boolean" (optional)
3246           Omit the nested data about backing image ("backing-image" key) if
3247           true.  Default is false (Since 5.0)
3248
3249       Returns: the list of BlockDeviceInfo
3250
3251       Since: 2.0
3252
3253       Example:
3254
3255               -> { "execute": "query-named-block-nodes" }
3256               <- { "return": [ { "ro":false,
3257                                  "drv":"qcow2",
3258                                  "encrypted":false,
3259                                  "file":"disks/test.qcow2",
3260                                  "node-name": "my-node",
3261                                  "backing_file_depth":1,
3262                                  "bps":1000000,
3263                                  "bps_rd":0,
3264                                  "bps_wr":0,
3265                                  "iops":1000000,
3266                                  "iops_rd":0,
3267                                  "iops_wr":0,
3268                                  "bps_max": 8000000,
3269                                  "bps_rd_max": 0,
3270                                  "bps_wr_max": 0,
3271                                  "iops_max": 0,
3272                                  "iops_rd_max": 0,
3273                                  "iops_wr_max": 0,
3274                                  "iops_size": 0,
3275                                  "write_threshold": 0,
3276                                  "image":{
3277                                     "filename":"disks/test.qcow2",
3278                                     "format":"qcow2",
3279                                     "virtual-size":2048000,
3280                                     "backing_file":"base.qcow2",
3281                                     "full-backing-filename":"disks/base.qcow2",
3282                                     "backing-filename-format":"qcow2",
3283                                     "snapshots":[
3284                                        {
3285                                           "id": "1",
3286                                           "name": "snapshot1",
3287                                           "vm-state-size": 0,
3288                                           "date-sec": 10000200,
3289                                           "date-nsec": 12,
3290                                           "vm-clock-sec": 206,
3291                                           "vm-clock-nsec": 30
3292                                        }
3293                                     ],
3294                                     "backing-image":{
3295                                         "filename":"disks/base.qcow2",
3296                                         "format":"qcow2",
3297                                         "virtual-size":2048000
3298                                     }
3299                                  } } ] }
3300
3301       XDbgBlockGraphNodeType (Enum)
3302
3303       Values:
3304
3305       "block-backend"
3306           corresponds to BlockBackend
3307
3308       "block-job"
3309           corresonds to BlockJob
3310
3311       "block-driver"
3312           corresponds to BlockDriverState
3313
3314       Since: 4.0
3315
3316       XDbgBlockGraphNode (Object)
3317
3318       Members:
3319
3320       "id: int"
3321           Block graph node identifier. This "id" is generated only for
3322           x-debug-query-block-graph and does not relate to any other
3323           identifiers in Qemu.
3324
3325       "type: XDbgBlockGraphNodeType"
3326           Type of graph node. Can be one of block-backend, block-job or
3327           block-driver-state.
3328
3329       "name: string"
3330           Human readable name of the node. Corresponds to node-name for
3331           block-driver-state nodes; is not guaranteed to be unique in the
3332           whole graph (with block-jobs and block-backends).
3333
3334       Since: 4.0
3335
3336       BlockPermission (Enum)
3337
3338       Enum of base block permissions.
3339
3340       Values:
3341
3342       "consistent-read"
3343           A user that has the "permission" of consistent reads is guaranteed
3344           that their view of the contents of the block device is complete and
3345           self-consistent, representing the contents of a disk at a specific
3346           point.  For most block devices (including their backing files) this
3347           is true, but the property cannot be maintained in a few situations
3348           like for intermediate nodes of a commit block job.
3349
3350       "write"
3351           This permission is required to change the visible disk contents.
3352
3353       "write-unchanged"
3354           This permission (which is weaker than BLK_PERM_WRITE) is both
3355           enough and required for writes to the block node when the caller
3356           promises that the visible disk content doesn't change.  As the
3357           BLK_PERM_WRITE permission is strictly stronger, either is
3358           sufficient to perform an unchanging write.
3359
3360       "resize"
3361           This permission is required to change the size of a block node.
3362
3363       "graph-mod"
3364           This permission is required to change the node that this BdrvChild
3365           points to.
3366
3367       Since: 4.0
3368
3369       XDbgBlockGraphEdge (Object)
3370
3371       Block Graph edge description for x-debug-query-block-graph.
3372
3373       Members:
3374
3375       "parent: int"
3376           parent id
3377
3378       "child: int"
3379           child id
3380
3381       "name: string"
3382           name of the relation (examples are 'file' and 'backing')
3383
3384       "perm: array of BlockPermission"
3385           granted permissions for the parent operating on the child
3386
3387       "shared-perm: array of BlockPermission"
3388           permissions that can still be granted to other users of the child
3389           while it is still attached to this parent
3390
3391       Since: 4.0
3392
3393       XDbgBlockGraph (Object)
3394
3395       Block Graph - list of nodes and list of edges.
3396
3397       Members:
3398
3399       "nodes: array of XDbgBlockGraphNode"
3400           Not documented
3401
3402       "edges: array of XDbgBlockGraphEdge"
3403           Not documented
3404
3405       Since: 4.0
3406
3407       x-debug-query-block-graph  (Command) Get the block graph.
3408
3409       Since: 4.0
3410
3411       drive-mirror  (Command) Start mirroring a block device's writes to a
3412       new destination. target specifies the target of the new image. If the
3413       file exists, or if it is a device, it will be used as the new
3414       destination for writes. If it does not exist, a new file will be
3415       created. format specifies the format of the mirror image, default is to
3416       probe if mode='existing', else the format of the source.
3417
3418       Arguments: the members of "DriveMirror"
3419
3420       Returns:
3421
3422       -   nothing on success
3423
3424       -   If "device" is not a valid block device, GenericError
3425
3426       Since: 1.3
3427
3428       Example:
3429
3430               -> { "execute": "drive-mirror",
3431                    "arguments": { "device": "ide-hd0",
3432                                   "target": "/some/place/my-image",
3433                                   "sync": "full",
3434                                   "format": "qcow2" } }
3435               <- { "return": {} }
3436
3437       DriveMirror (Object)
3438
3439       A set of parameters describing drive mirror setup.
3440
3441       Members:
3442
3443       "job-id: string" (optional)
3444           identifier for the newly-created block job. If omitted, the device
3445           name will be used. (Since 2.7)
3446
3447       "device: string"
3448           the device name or node-name of a root node whose writes should be
3449           mirrored.
3450
3451       "target: string"
3452           the target of the new image. If the file exists, or if it is a
3453           device, the existing file/device will be used as the new
3454           destination.  If it does not exist, a new file will be created.
3455
3456       "format: string" (optional)
3457           the format of the new destination, default is to probe if "mode" is
3458           'existing', else the format of the source
3459
3460       "node-name: string" (optional)
3461           the new block driver state node name in the graph (Since 2.1)
3462
3463       "replaces: string" (optional)
3464           with sync=full graph node name to be replaced by the new image when
3465           a whole image copy is done. This can be used to repair broken
3466           Quorum files. (Since 2.1)
3467
3468       "mode: NewImageMode" (optional)
3469           whether and how QEMU should create a new image, default is
3470           'absolute-paths'.
3471
3472       "speed: int" (optional)
3473           the maximum speed, in bytes per second
3474
3475       "sync: MirrorSyncMode"
3476           what parts of the disk image should be copied to the destination
3477           (all the disk, only the sectors allocated in the topmost image, or
3478           only new I/O).
3479
3480       "granularity: int" (optional)
3481           granularity of the dirty bitmap, default is 64K if the image format
3482           doesn't have clusters, 4K if the clusters are smaller than that,
3483           else the cluster size.  Must be a power of 2 between 512 and 64M
3484           (since 1.4).
3485
3486       "buf-size: int" (optional)
3487           maximum amount of data in flight from source to target (since 1.4).
3488
3489       "on-source-error: BlockdevOnError" (optional)
3490           the action to take on an error on the source, default 'report'.
3491           'stop' and 'enospc' can only be used if the block device supports
3492           io-status (see BlockInfo).
3493
3494       "on-target-error: BlockdevOnError" (optional)
3495           the action to take on an error on the target, default 'report' (no
3496           limitations, since this applies to a different block device than
3497           "device").
3498
3499       "unmap: boolean" (optional)
3500           Whether to try to unmap target sectors where source has only zero.
3501           If true, and target unallocated sectors will read as zero, target
3502           image sectors will be unmapped; otherwise, zeroes will be written.
3503           Both will result in identical contents.  Default is true. (Since
3504           2.4)
3505
3506       "copy-mode: MirrorCopyMode" (optional)
3507           when to copy data to the destination; defaults to 'background'
3508           (Since: 3.0)
3509
3510       "auto-finalize: boolean" (optional)
3511           When false, this job will wait in a PENDING state after it has
3512           finished its work, waiting for "block-job-finalize" before making
3513           any block graph changes.  When true, this job will automatically
3514           perform its abort or commit actions.  Defaults to true. (Since 3.1)
3515
3516       "auto-dismiss: boolean" (optional)
3517           When false, this job will wait in a CONCLUDED state after it has
3518           completely ceased all work, and awaits "block-job-dismiss".  When
3519           true, this job will automatically disappear from the query list
3520           without user intervention.  Defaults to true. (Since 3.1)
3521
3522       Since: 1.3
3523
3524       BlockDirtyBitmap (Object)
3525
3526       Members:
3527
3528       "node: string"
3529           name of device/node which the bitmap is tracking
3530
3531       "name: string"
3532           name of the dirty bitmap
3533
3534       Since: 2.4
3535
3536       BlockDirtyBitmapAdd (Object)
3537
3538       Members:
3539
3540       "node: string"
3541           name of device/node which the bitmap is tracking
3542
3543       "name: string"
3544           name of the dirty bitmap (must be less than 1024 bytes)
3545
3546       "granularity: int" (optional)
3547           the bitmap granularity, default is 64k for block-dirty-bitmap-add
3548
3549       "persistent: boolean" (optional)
3550           the bitmap is persistent, i.e. it will be saved to the
3551           corresponding block device image file on its close. For now only
3552           Qcow2 disks support persistent bitmaps. Default is false for block-
3553           dirty-bitmap-add. (Since: 2.10)
3554
3555       "disabled: boolean" (optional)
3556           the bitmap is created in the disabled state, which means that it
3557           will not track drive changes. The bitmap may be enabled with block-
3558           dirty-bitmap-enable. Default is false. (Since: 4.0)
3559
3560       Since: 2.4
3561
3562       BlockDirtyBitmapMergeSource (Alternate)
3563
3564       Members:
3565
3566       "local: string"
3567           name of the bitmap, attached to the same node as target bitmap.
3568
3569       "external: BlockDirtyBitmap"
3570           bitmap with specified node
3571
3572       Since: 4.1
3573
3574       BlockDirtyBitmapMerge (Object)
3575
3576       Members:
3577
3578       "node: string"
3579           name of device/node which the "target" bitmap is tracking
3580
3581       "target: string"
3582           name of the destination dirty bitmap
3583
3584       "bitmaps: array of BlockDirtyBitmapMergeSource"
3585           name(s) of the source dirty bitmap(s) at "node" and/or fully
3586           specifed BlockDirtyBitmap elements. The latter are supported since
3587           4.1.
3588
3589       Since: 4.0
3590
3591       block-dirty-bitmap-add  (Command) Create a dirty bitmap with a name on
3592       the node, and start tracking the writes.
3593
3594       Returns:
3595
3596       -   nothing on success
3597
3598       -   If "node" is not a valid block device or node, DeviceNotFound
3599
3600       -   If "name" is already taken, GenericError with an explanation
3601
3602       Since: 2.4
3603
3604       Example:
3605
3606               -> { "execute": "block-dirty-bitmap-add",
3607                    "arguments": { "node": "drive0", "name": "bitmap0" } }
3608               <- { "return": {} }
3609
3610       block-dirty-bitmap-remove  (Command) Stop write tracking and remove the
3611       dirty bitmap that was created with block-dirty-bitmap-add. If the
3612       bitmap is persistent, remove it from its storage too.
3613
3614       Returns:
3615
3616       -   nothing on success
3617
3618       -   If "node" is not a valid block device or node, DeviceNotFound
3619
3620       -   If "name" is not found, GenericError with an explanation
3621
3622       -   if "name" is frozen by an operation, GenericError
3623
3624       Since: 2.4
3625
3626       Example:
3627
3628               -> { "execute": "block-dirty-bitmap-remove",
3629                    "arguments": { "node": "drive0", "name": "bitmap0" } }
3630               <- { "return": {} }
3631
3632       block-dirty-bitmap-clear  (Command) Clear (reset) a dirty bitmap on the
3633       device, so that an incremental backup from this point in time forward
3634       will only backup clusters modified after this clear operation.
3635
3636       Returns:
3637
3638       -   nothing on success
3639
3640       -   If "node" is not a valid block device, DeviceNotFound
3641
3642       -   If "name" is not found, GenericError with an explanation
3643
3644       Since: 2.4
3645
3646       Example:
3647
3648               -> { "execute": "block-dirty-bitmap-clear",
3649                    "arguments": { "node": "drive0", "name": "bitmap0" } }
3650               <- { "return": {} }
3651
3652       block-dirty-bitmap-enable  (Command) Enables a dirty bitmap so that it
3653       will begin tracking disk changes.
3654
3655       Returns:
3656
3657       -   nothing on success
3658
3659       -   If "node" is not a valid block device, DeviceNotFound
3660
3661       -   If "name" is not found, GenericError with an explanation
3662
3663       Since: 4.0
3664
3665       Example:
3666
3667               -> { "execute": "block-dirty-bitmap-enable",
3668                    "arguments": { "node": "drive0", "name": "bitmap0" } }
3669               <- { "return": {} }
3670
3671       block-dirty-bitmap-disable  (Command) Disables a dirty bitmap so that
3672       it will stop tracking disk changes.
3673
3674       Returns:
3675
3676       -   nothing on success
3677
3678       -   If "node" is not a valid block device, DeviceNotFound
3679
3680       -   If "name" is not found, GenericError with an explanation
3681
3682       Since: 4.0
3683
3684       Example:
3685
3686               -> { "execute": "block-dirty-bitmap-disable",
3687                    "arguments": { "node": "drive0", "name": "bitmap0" } }
3688               <- { "return": {} }
3689
3690       block-dirty-bitmap-merge  (Command) Merge dirty bitmaps listed in
3691       "bitmaps" to the "target" dirty bitmap.  Dirty bitmaps in "bitmaps"
3692       will be unchanged, except if it also appears as the "target" bitmap.
3693       Any bits already set in "target" will still be set after the merge,
3694       i.e., this operation does not clear the target.  On error, "target" is
3695       unchanged.
3696
3697       The resulting bitmap will count as dirty any clusters that were dirty
3698       in any of the source bitmaps. This can be used to achieve backup
3699       checkpoints, or in simpler usages, to copy bitmaps.
3700
3701       Returns:
3702
3703       -   nothing on success
3704
3705       -   If "node" is not a valid block device, DeviceNotFound
3706
3707       -   If any bitmap in "bitmaps" or "target" is not found, GenericError
3708
3709       -   If any of the bitmaps have different sizes or granularities,
3710           GenericError
3711
3712       Since: 4.0
3713
3714       Example:
3715
3716               -> { "execute": "block-dirty-bitmap-merge",
3717                    "arguments": { "node": "drive0", "target": "bitmap0",
3718                                   "bitmaps": ["bitmap1"] } }
3719               <- { "return": {} }
3720
3721       BlockDirtyBitmapSha256 (Object)
3722
3723       SHA256 hash of dirty bitmap data
3724
3725       Members:
3726
3727       "sha256: string"
3728           ASCII representation of SHA256 bitmap hash
3729
3730       Since: 2.10
3731
3732       x-debug-block-dirty-bitmap-sha256  (Command) Get bitmap SHA256.
3733
3734       Returns:
3735
3736       -   BlockDirtyBitmapSha256 on success
3737
3738       -   If "node" is not a valid block device, DeviceNotFound
3739
3740       -   If "name" is not found or if hashing has failed, GenericError with
3741           an explanation
3742
3743       Since: 2.10
3744
3745       blockdev-mirror  (Command) Start mirroring a block device's writes to a
3746       new destination.
3747
3748       Arguments:
3749
3750       "job-id: string" (optional)
3751           identifier for the newly-created block job. If omitted, the device
3752           name will be used. (Since 2.7)
3753
3754       "device: string"
3755           The device name or node-name of a root node whose writes should be
3756           mirrored.
3757
3758       "target: string"
3759           the id or node-name of the block device to mirror to. This mustn't
3760           be attached to guest.
3761
3762       "replaces: string" (optional)
3763           with sync=full graph node name to be replaced by the new image when
3764           a whole image copy is done. This can be used to repair broken
3765           Quorum files.
3766
3767       "speed: int" (optional)
3768           the maximum speed, in bytes per second
3769
3770       "sync: MirrorSyncMode"
3771           what parts of the disk image should be copied to the destination
3772           (all the disk, only the sectors allocated in the topmost image, or
3773           only new I/O).
3774
3775       "granularity: int" (optional)
3776           granularity of the dirty bitmap, default is 64K if the image format
3777           doesn't have clusters, 4K if the clusters are smaller than that,
3778           else the cluster size.  Must be a power of 2 between 512 and 64M
3779
3780       "buf-size: int" (optional)
3781           maximum amount of data in flight from source to target
3782
3783       "on-source-error: BlockdevOnError" (optional)
3784           the action to take on an error on the source, default 'report'.
3785           'stop' and 'enospc' can only be used if the block device supports
3786           io-status (see BlockInfo).
3787
3788       "on-target-error: BlockdevOnError" (optional)
3789           the action to take on an error on the target, default 'report' (no
3790           limitations, since this applies to a different block device than
3791           "device").
3792
3793       "filter-node-name: string" (optional)
3794           the node name that should be assigned to the filter driver that the
3795           mirror job inserts into the graph above "device". If this option is
3796           not given, a node name is autogenerated. (Since: 2.9)
3797
3798       "copy-mode: MirrorCopyMode" (optional)
3799           when to copy data to the destination; defaults to 'background'
3800           (Since: 3.0)
3801
3802       "auto-finalize: boolean" (optional)
3803           When false, this job will wait in a PENDING state after it has
3804           finished its work, waiting for "block-job-finalize" before making
3805           any block graph changes.  When true, this job will automatically
3806           perform its abort or commit actions.  Defaults to true. (Since 3.1)
3807
3808       "auto-dismiss: boolean" (optional)
3809           When false, this job will wait in a CONCLUDED state after it has
3810           completely ceased all work, and awaits "block-job-dismiss".  When
3811           true, this job will automatically disappear from the query list
3812           without user intervention.  Defaults to true. (Since 3.1)
3813
3814       Returns: nothing on success.
3815
3816       Since: 2.6
3817
3818       Example:
3819
3820               -> { "execute": "blockdev-mirror",
3821                    "arguments": { "device": "ide-hd0",
3822                                   "target": "target0",
3823                                   "sync": "full" } }
3824               <- { "return": {} }
3825
3826       BlockIOThrottle (Object)
3827
3828       A set of parameters describing block throttling.
3829
3830       Members:
3831
3832       "device: string" (optional)
3833           Block device name
3834
3835       "id: string" (optional)
3836           The name or QOM path of the guest device (since: 2.8)
3837
3838       "bps: int"
3839           total throughput limit in bytes per second
3840
3841       "bps_rd: int"
3842           read throughput limit in bytes per second
3843
3844       "bps_wr: int"
3845           write throughput limit in bytes per second
3846
3847       "iops: int"
3848           total I/O operations per second
3849
3850       "iops_rd: int"
3851           read I/O operations per second
3852
3853       "iops_wr: int"
3854           write I/O operations per second
3855
3856       "bps_max: int" (optional)
3857           total throughput limit during bursts, in bytes (Since 1.7)
3858
3859       "bps_rd_max: int" (optional)
3860           read throughput limit during bursts, in bytes (Since 1.7)
3861
3862       "bps_wr_max: int" (optional)
3863           write throughput limit during bursts, in bytes (Since 1.7)
3864
3865       "iops_max: int" (optional)
3866           total I/O operations per second during bursts, in bytes (Since 1.7)
3867
3868       "iops_rd_max: int" (optional)
3869           read I/O operations per second during bursts, in bytes (Since 1.7)
3870
3871       "iops_wr_max: int" (optional)
3872           write I/O operations per second during bursts, in bytes (Since 1.7)
3873
3874       "bps_max_length: int" (optional)
3875           maximum length of the "bps_max" burst period, in seconds. It must
3876           only be set if "bps_max" is set as well.  Defaults to 1. (Since
3877           2.6)
3878
3879       "bps_rd_max_length: int" (optional)
3880           maximum length of the "bps_rd_max" burst period, in seconds. It
3881           must only be set if "bps_rd_max" is set as well.  Defaults to 1.
3882           (Since 2.6)
3883
3884       "bps_wr_max_length: int" (optional)
3885           maximum length of the "bps_wr_max" burst period, in seconds. It
3886           must only be set if "bps_wr_max" is set as well.  Defaults to 1.
3887           (Since 2.6)
3888
3889       "iops_max_length: int" (optional)
3890           maximum length of the "iops" burst period, in seconds. It must only
3891           be set if "iops_max" is set as well.  Defaults to 1. (Since 2.6)
3892
3893       "iops_rd_max_length: int" (optional)
3894           maximum length of the "iops_rd_max" burst period, in seconds. It
3895           must only be set if "iops_rd_max" is set as well.  Defaults to 1.
3896           (Since 2.6)
3897
3898       "iops_wr_max_length: int" (optional)
3899           maximum length of the "iops_wr_max" burst period, in seconds. It
3900           must only be set if "iops_wr_max" is set as well.  Defaults to 1.
3901           (Since 2.6)
3902
3903       "iops_size: int" (optional)
3904           an I/O size in bytes (Since 1.7)
3905
3906       "group: string" (optional)
3907           throttle group name (Since 2.4)
3908
3909       Features:
3910
3911       "deprecated"
3912           Member "device" is deprecated.  Use "id" instead.
3913
3914       Since: 1.1
3915
3916       ThrottleLimits (Object)
3917
3918       Limit parameters for throttling.  Since some limit combinations are
3919       illegal, limits should always be set in one transaction. All fields are
3920       optional. When setting limits, if a field is missing the current value
3921       is not changed.
3922
3923       Members:
3924
3925       "iops-total: int" (optional)
3926           limit total I/O operations per second
3927
3928       "iops-total-max: int" (optional)
3929           I/O operations burst
3930
3931       "iops-total-max-length: int" (optional)
3932           length of the iops-total-max burst period, in seconds It must only
3933           be set if "iops-total-max" is set as well.
3934
3935       "iops-read: int" (optional)
3936           limit read operations per second
3937
3938       "iops-read-max: int" (optional)
3939           I/O operations read burst
3940
3941       "iops-read-max-length: int" (optional)
3942           length of the iops-read-max burst period, in seconds It must only
3943           be set if "iops-read-max" is set as well.
3944
3945       "iops-write: int" (optional)
3946           limit write operations per second
3947
3948       "iops-write-max: int" (optional)
3949           I/O operations write burst
3950
3951       "iops-write-max-length: int" (optional)
3952           length of the iops-write-max burst period, in seconds It must only
3953           be set if "iops-write-max" is set as well.
3954
3955       "bps-total: int" (optional)
3956           limit total bytes per second
3957
3958       "bps-total-max: int" (optional)
3959           total bytes burst
3960
3961       "bps-total-max-length: int" (optional)
3962           length of the bps-total-max burst period, in seconds.  It must only
3963           be set if "bps-total-max" is set as well.
3964
3965       "bps-read: int" (optional)
3966           limit read bytes per second
3967
3968       "bps-read-max: int" (optional)
3969           total bytes read burst
3970
3971       "bps-read-max-length: int" (optional)
3972           length of the bps-read-max burst period, in seconds It must only be
3973           set if "bps-read-max" is set as well.
3974
3975       "bps-write: int" (optional)
3976           limit write bytes per second
3977
3978       "bps-write-max: int" (optional)
3979           total bytes write burst
3980
3981       "bps-write-max-length: int" (optional)
3982           length of the bps-write-max burst period, in seconds It must only
3983           be set if "bps-write-max" is set as well.
3984
3985       "iops-size: int" (optional)
3986           when limiting by iops max size of an I/O in bytes
3987
3988       Since: 2.11
3989
3990       block-stream  (Command) Copy data from a backing file into a block
3991       device.
3992
3993       The block streaming operation is performed in the background until the
3994       entire backing file has been copied.  This command returns immediately
3995       once streaming has started.  The status of ongoing block streaming
3996       operations can be checked with query-block-jobs.  The operation can be
3997       stopped before it has completed using the block-job-cancel command.
3998
3999       The node that receives the data is called the top image, can be located
4000       in any part of the chain (but always above the base image; see below)
4001       and can be specified using its device or node name. Earlier qemu
4002       versions only allowed 'device' to name the top level node; presence of
4003       the 'base-node' parameter during introspection can be used as a witness
4004       of the enhanced semantics of 'device'.
4005
4006       If a base file is specified then sectors are not copied from that base
4007       file and its backing chain.  When streaming completes the image file
4008       will have the base file as its backing file.  This can be used to
4009       stream a subset of the backing file chain instead of flattening the
4010       entire image.
4011
4012       On successful completion the image file is updated to drop the backing
4013       file and the BLOCK_JOB_COMPLETED event is emitted.
4014
4015       Arguments:
4016
4017       "job-id: string" (optional)
4018           identifier for the newly-created block job. If omitted, the device
4019           name will be used. (Since 2.7)
4020
4021       "device: string"
4022           the device or node name of the top image
4023
4024       "base: string" (optional)
4025           the common backing file name.  It cannot be set if "base-node" is
4026           also set.
4027
4028       "base-node: string" (optional)
4029           the node name of the backing file.  It cannot be set if "base" is
4030           also set. (Since 2.8)
4031
4032       "backing-file: string" (optional)
4033           The backing file string to write into the top image. This filename
4034           is not validated.
4035
4036           If a pathname string is such that it cannot be resolved by QEMU,
4037           that means that subsequent QMP or HMP commands must use node-names
4038           for the image in question, as filename lookup methods will fail.
4039
4040           If not specified, QEMU will automatically determine the backing
4041           file string to use, or error out if there is no obvious choice.
4042           Care should be taken when specifying the string, to specify a valid
4043           filename or protocol.  (Since 2.1)
4044
4045       "speed: int" (optional)
4046           the maximum speed, in bytes per second
4047
4048       "on-error: BlockdevOnError" (optional)
4049           the action to take on an error (default report).  'stop' and
4050           'enospc' can only be used if the block device supports io-status
4051           (see BlockInfo).  Since 1.3.
4052
4053       "auto-finalize: boolean" (optional)
4054           When false, this job will wait in a PENDING state after it has
4055           finished its work, waiting for "block-job-finalize" before making
4056           any block graph changes.  When true, this job will automatically
4057           perform its abort or commit actions.  Defaults to true. (Since 3.1)
4058
4059       "auto-dismiss: boolean" (optional)
4060           When false, this job will wait in a CONCLUDED state after it has
4061           completely ceased all work, and awaits "block-job-dismiss".  When
4062           true, this job will automatically disappear from the query list
4063           without user intervention.  Defaults to true. (Since 3.1)
4064
4065       Returns:
4066
4067       -   Nothing on success.
4068
4069       -   If "device" does not exist, DeviceNotFound.
4070
4071       Since: 1.1
4072
4073       Example:
4074
4075               -> { "execute": "block-stream",
4076                    "arguments": { "device": "virtio0",
4077                                   "base": "/tmp/master.qcow2" } }
4078               <- { "return": {} }
4079
4080       block-job-set-speed  (Command) Set maximum speed for a background block
4081       operation.
4082
4083       This command can only be issued when there is an active block job.
4084
4085       Throttling can be disabled by setting the speed to 0.
4086
4087       Arguments:
4088
4089       "device: string"
4090           The job identifier. This used to be a device name (hence the name
4091           of the parameter), but since QEMU 2.7 it can have other values.
4092
4093       "speed: int"
4094           the maximum speed, in bytes per second, or 0 for unlimited.
4095           Defaults to 0.
4096
4097       Returns:
4098
4099       -   Nothing on success
4100
4101       -   If no background operation is active on this device,
4102           DeviceNotActive
4103
4104       Since: 1.1
4105
4106       block-job-cancel  (Command) Stop an active background block operation.
4107
4108       This command returns immediately after marking the active background
4109       block operation for cancellation.  It is an error to call this command
4110       if no operation is in progress.
4111
4112       The operation will cancel as soon as possible and then emit the
4113       BLOCK_JOB_CANCELLED event.  Before that happens the job is still
4114       visible when enumerated using query-block-jobs.
4115
4116       Note that if you issue 'block-job-cancel' after 'drive-mirror' has
4117       indicated (via the event BLOCK_JOB_READY) that the source and
4118       destination are synchronized, then the event triggered by this command
4119       changes to BLOCK_JOB_COMPLETED, to indicate that the mirroring has
4120       ended and the destination now has a point-in-time copy tied to the time
4121       of the cancellation.
4122
4123       For streaming, the image file retains its backing file unless the
4124       streaming operation happens to complete just as it is being cancelled.
4125       A new streaming operation can be started at a later time to finish
4126       copying all data from the backing file.
4127
4128       Arguments:
4129
4130       "device: string"
4131           The job identifier. This used to be a device name (hence the name
4132           of the parameter), but since QEMU 2.7 it can have other values.
4133
4134       "force: boolean" (optional)
4135           If true, and the job has already emitted the event BLOCK_JOB_READY,
4136           abandon the job immediately (even if it is paused) instead of
4137           waiting for the destination to complete its final synchronization
4138           (since 1.3)
4139
4140       Returns:
4141
4142       -   Nothing on success
4143
4144       -   If no background operation is active on this device,
4145           DeviceNotActive
4146
4147       Since: 1.1
4148
4149       block-job-pause  (Command) Pause an active background block operation.
4150
4151       This command returns immediately after marking the active background
4152       block operation for pausing.  It is an error to call this command if no
4153       operation is in progress or if the job is already paused.
4154
4155       The operation will pause as soon as possible.  No event is emitted when
4156       the operation is actually paused.  Cancelling a paused job
4157       automatically resumes it.
4158
4159       Arguments:
4160
4161       "device: string"
4162           The job identifier. This used to be a device name (hence the name
4163           of the parameter), but since QEMU 2.7 it can have other values.
4164
4165       Returns:
4166
4167       -   Nothing on success
4168
4169       -   If no background operation is active on this device,
4170           DeviceNotActive
4171
4172       Since: 1.3
4173
4174       block-job-resume  (Command) Resume an active background block
4175       operation.
4176
4177       This command returns immediately after resuming a paused background
4178       block operation.  It is an error to call this command if no operation
4179       is in progress or if the job is not paused.
4180
4181       This command also clears the error status of the job.
4182
4183       Arguments:
4184
4185       "device: string"
4186           The job identifier. This used to be a device name (hence the name
4187           of the parameter), but since QEMU 2.7 it can have other values.
4188
4189       Returns:
4190
4191       -   Nothing on success
4192
4193       -   If no background operation is active on this device,
4194           DeviceNotActive
4195
4196       Since: 1.3
4197
4198       block-job-complete  (Command) Manually trigger completion of an active
4199       background block operation.  This is supported for drive mirroring,
4200       where it also switches the device to write to the target path only.
4201       The ability to complete is signaled with a BLOCK_JOB_READY event.
4202
4203       This command completes an active background block operation
4204       synchronously.  The ordering of this command's return with the
4205       BLOCK_JOB_COMPLETED event is not defined.  Note that if an I/O error
4206       occurs during the processing of this command: 1) the command itself
4207       will fail; 2) the error will be processed according to the
4208       rerror/werror arguments that were specified when starting the
4209       operation.
4210
4211       A cancelled or paused job cannot be completed.
4212
4213       Arguments:
4214
4215       "device: string"
4216           The job identifier. This used to be a device name (hence the name
4217           of the parameter), but since QEMU 2.7 it can have other values.
4218
4219       Returns:
4220
4221       -   Nothing on success
4222
4223       -   If no background operation is active on this device,
4224           DeviceNotActive
4225
4226       Since: 1.3
4227
4228       block-job-dismiss  (Command) For jobs that have already concluded,
4229       remove them from the block-job-query list. This command only needs to
4230       be run for jobs which were started with QEMU 2.12+ job lifetime
4231       management semantics.
4232
4233       This command will refuse to operate on any job that has not yet reached
4234       its terminal state, JOB_STATUS_CONCLUDED. For jobs that make use of the
4235       BLOCK_JOB_READY event, block-job-cancel or block-job-complete will
4236       still need to be used as appropriate.
4237
4238       Arguments:
4239
4240       "id: string"
4241           The job identifier.
4242
4243       Returns: Nothing on success
4244
4245       Since: 2.12
4246
4247       block-job-finalize  (Command) Once a job that has manual=true reaches
4248       the pending state, it can be instructed to finalize any graph changes
4249       and do any necessary cleanup via this command.  For jobs in a
4250       transaction, instructing one job to finalize will force ALL jobs in the
4251       transaction to finalize, so it is only necessary to instruct a single
4252       member job to finalize.
4253
4254       Arguments:
4255
4256       "id: string"
4257           The job identifier.
4258
4259       Returns: Nothing on success
4260
4261       Since: 2.12
4262
4263       BlockdevDiscardOptions (Enum)
4264
4265       Determines how to handle discard requests.
4266
4267       Values:
4268
4269       "ignore"
4270           Ignore the request
4271
4272       "unmap"
4273           Forward as an unmap request
4274
4275       Since: 2.9
4276
4277       BlockdevDetectZeroesOptions (Enum)
4278
4279       Describes the operation mode for the automatic conversion of plain zero
4280       writes by the OS to driver specific optimized zero write commands.
4281
4282       Values:
4283
4284       "off"
4285           Disabled (default)
4286
4287       "on"
4288           Enabled
4289
4290       "unmap"
4291           Enabled and even try to unmap blocks if possible. This requires
4292           also that "BlockdevDiscardOptions" is set to unmap for this device.
4293
4294       Since: 2.1
4295
4296       BlockdevAioOptions (Enum)
4297
4298       Selects the AIO backend to handle I/O requests
4299
4300       Values:
4301
4302       "threads"
4303           Use qemu's thread pool
4304
4305       "native"
4306           Use native AIO backend (only Linux and Windows)
4307
4308       "io_uring"
4309           Use linux io_uring (since 5.0) If: "defined(CONFIG_LINUX_IO_URING)"
4310
4311       Since: 2.9
4312
4313       BlockdevCacheOptions (Object)
4314
4315       Includes cache-related options for block devices
4316
4317       Members:
4318
4319       "direct: boolean" (optional)
4320           enables use of O_DIRECT (bypass the host page cache; default:
4321           false)
4322
4323       "no-flush: boolean" (optional)
4324           ignore any flush requests for the device (default: false)
4325
4326       Since: 2.9
4327
4328       BlockdevDriver (Enum)
4329
4330       Drivers that are supported in block device operations.
4331
4332       Values:
4333
4334       "throttle"
4335           Since 2.11
4336
4337       "nvme"
4338           Since 2.12
4339
4340       "copy-on-read"
4341           Since 3.0
4342
4343       "blklogwrites"
4344           Since 3.0
4345
4346       "blkreplay"
4347           Since 4.2
4348
4349       "compress"
4350           Since 5.0
4351
4352       "blkdebug"
4353           Not documented
4354
4355       "blkverify"
4356           Not documented
4357
4358       "bochs"
4359           Not documented
4360
4361       "cloop"
4362           Not documented
4363
4364       "dmg"
4365           Not documented
4366
4367       "file"
4368           Not documented
4369
4370       "ftp"
4371           Not documented
4372
4373       "ftps"
4374           Not documented
4375
4376       "gluster"
4377           Not documented
4378
4379       "host_cdrom"
4380           Not documented
4381
4382       "host_device"
4383           Not documented
4384
4385       "http"
4386           Not documented
4387
4388       "https"
4389           Not documented
4390
4391       "iscsi"
4392           Not documented
4393
4394       "luks"
4395           Not documented
4396
4397       "nbd"
4398           Not documented
4399
4400       "nfs"
4401           Not documented
4402
4403       "null-aio"
4404           Not documented
4405
4406       "null-co"
4407           Not documented
4408
4409       "parallels"
4410           Not documented
4411
4412       "qcow"
4413           Not documented
4414
4415       "qcow2"
4416           Not documented
4417
4418       "qed"
4419           Not documented
4420
4421       "quorum"
4422           Not documented
4423
4424       "raw"
4425           Not documented
4426
4427       "rbd"
4428           Not documented
4429
4430       "replication"
4431           Not documented If: "defined(CONFIG_REPLICATION)"
4432
4433       "sheepdog"
4434           Not documented
4435
4436       "ssh"
4437           Not documented
4438
4439       "vdi"
4440           Not documented
4441
4442       "vhdx"
4443           Not documented
4444
4445       "vmdk"
4446           Not documented
4447
4448       "vpc"
4449           Not documented
4450
4451       "vvfat"
4452           Not documented
4453
4454       Since: 2.9
4455
4456       BlockdevOptionsFile (Object)
4457
4458       Driver specific block device options for the file backend.
4459
4460       Members:
4461
4462       "filename: string"
4463           path to the image file
4464
4465       "pr-manager: string" (optional)
4466           the id for the object that will handle persistent reservations for
4467           this device (default: none, forward the commands via SG_IO; since
4468           2.11)
4469
4470       "aio: BlockdevAioOptions" (optional)
4471           AIO backend (default: threads) (since: 2.8)
4472
4473       "locking: OnOffAuto" (optional)
4474           whether to enable file locking. If set to 'auto', only enable when
4475           Open File Descriptor (OFD) locking API is available (default: auto,
4476           since 2.10)
4477
4478       "drop-cache: boolean" (optional)
4479           invalidate page cache during live migration.  This prevents stale
4480           data on the migration destination with cache.direct=off.  Currently
4481           only supported on Linux hosts.  (default: on, since: 4.0) If:
4482           "defined(CONFIG_LINUX)"
4483
4484       "x-check-cache-dropped: boolean" (optional)
4485           whether to check that page cache was dropped on live migration.
4486           May cause noticeable delays if the image file is large, do not use
4487           in production.  (default: off) (since: 3.0)
4488
4489       Features:
4490
4491       "dynamic-auto-read-only"
4492           If present, enabled auto-read-only means that the driver will open
4493           the image read-only at first, dynamically reopen the image file
4494           read-write when the first writer is attached to the node and reopen
4495           read-only when the last writer is detached. This allows giving QEMU
4496           write permissions only on demand when an operation actually needs
4497           write access.
4498
4499       Since: 2.9
4500
4501       BlockdevOptionsNull (Object)
4502
4503       Driver specific block device options for the null backend.
4504
4505       Members:
4506
4507       "size: int" (optional)
4508           size of the device in bytes.
4509
4510       "latency-ns: int" (optional)
4511           emulated latency (in nanoseconds) in processing requests. Default
4512           to zero which completes requests immediately.  (Since 2.4)
4513
4514       "read-zeroes: boolean" (optional)
4515           if true, reads from the device produce zeroes; if false, the buffer
4516           is left unchanged. (default: false; since: 4.1)
4517
4518       Since: 2.9
4519
4520       BlockdevOptionsNVMe (Object)
4521
4522       Driver specific block device options for the NVMe backend.
4523
4524       Members:
4525
4526       "device: string"
4527           PCI controller address of the NVMe device in format hhhh:bb:ss.f
4528           (host:bus:slot.function)
4529
4530       "namespace: int"
4531           namespace number of the device, starting from 1.
4532
4533       Note that the PCI "device" must have been unbound from any host kernel
4534       driver before instructing QEMU to add the blockdev.
4535
4536       Since: 2.12
4537
4538       BlockdevOptionsVVFAT (Object)
4539
4540       Driver specific block device options for the vvfat protocol.
4541
4542       Members:
4543
4544       "dir: string"
4545           directory to be exported as FAT image
4546
4547       "fat-type: int" (optional)
4548           FAT type: 12, 16 or 32
4549
4550       "floppy: boolean" (optional)
4551           whether to export a floppy image (true) or partitioned hard disk
4552           (false; default)
4553
4554       "label: string" (optional)
4555           set the volume label, limited to 11 bytes. FAT16 and FAT32
4556           traditionally have some restrictions on labels, which are ignored
4557           by most operating systems. Defaults to "QEMU VVFAT".  (since 2.4)
4558
4559       "rw: boolean" (optional)
4560           whether to allow write operations (default: false)
4561
4562       Since: 2.9
4563
4564       BlockdevOptionsGenericFormat (Object)
4565
4566       Driver specific block device options for image format that have no
4567       option besides their data source.
4568
4569       Members:
4570
4571       "file: BlockdevRef"
4572           reference to or definition of the data source block device
4573
4574       Since: 2.9
4575
4576       BlockdevOptionsLUKS (Object)
4577
4578       Driver specific block device options for LUKS.
4579
4580       Members:
4581
4582       "key-secret: string" (optional)
4583           the ID of a QCryptoSecret object providing the decryption key
4584           (since 2.6). Mandatory except when doing a metadata-only probe of
4585           the image.
4586
4587       The members of "BlockdevOptionsGenericFormat"
4588
4589       Since: 2.9
4590
4591       BlockdevOptionsGenericCOWFormat (Object)
4592
4593       Driver specific block device options for image format that have no
4594       option besides their data source and an optional backing file.
4595
4596       Members:
4597
4598       "backing: BlockdevRefOrNull" (optional)
4599           reference to or definition of the backing file block device, null
4600           disables the backing file entirely.  Defaults to the backing file
4601           stored the image file.
4602
4603       The members of "BlockdevOptionsGenericFormat"
4604
4605       Since: 2.9
4606
4607       Qcow2OverlapCheckMode (Enum)
4608
4609       General overlap check modes.
4610
4611       Values:
4612
4613       "none"
4614           Do not perform any checks
4615
4616       "constant"
4617           Perform only checks which can be done in constant time and without
4618           reading anything from disk
4619
4620       "cached"
4621           Perform only checks which can be done without reading anything from
4622           disk
4623
4624       "all"
4625           Perform all available overlap checks
4626
4627       Since: 2.9
4628
4629       Qcow2OverlapCheckFlags (Object)
4630
4631       Structure of flags for each metadata structure. Setting a field to
4632       'true' makes qemu guard that structure against unintended overwriting.
4633       The default value is chosen according to the template given.
4634
4635       Members:
4636
4637       "template: Qcow2OverlapCheckMode" (optional)
4638           Specifies a template mode which can be adjusted using the other
4639           flags, defaults to 'cached'
4640
4641       "bitmap-directory: boolean" (optional)
4642           since 3.0
4643
4644       "main-header: boolean" (optional)
4645           Not documented
4646
4647       "active-l1: boolean" (optional)
4648           Not documented
4649
4650       "active-l2: boolean" (optional)
4651           Not documented
4652
4653       "refcount-table: boolean" (optional)
4654           Not documented
4655
4656       "refcount-block: boolean" (optional)
4657           Not documented
4658
4659       "snapshot-table: boolean" (optional)
4660           Not documented
4661
4662       "inactive-l1: boolean" (optional)
4663           Not documented
4664
4665       "inactive-l2: boolean" (optional)
4666           Not documented
4667
4668       Since: 2.9
4669
4670       Qcow2OverlapChecks (Alternate)
4671
4672       Specifies which metadata structures should be guarded against
4673       unintended overwriting.
4674
4675       Members:
4676
4677       "flags: Qcow2OverlapCheckFlags"
4678           set of flags for separate specification of each metadata structure
4679           type
4680
4681       "mode: Qcow2OverlapCheckMode"
4682           named mode which chooses a specific set of flags
4683
4684       Since: 2.9
4685
4686       BlockdevQcowEncryptionFormat (Enum)
4687
4688       Values:
4689
4690       "aes"
4691           AES-CBC with plain64 initialization vectors
4692
4693       Since: 2.10
4694
4695       BlockdevQcowEncryption (Object)
4696
4697       Members:
4698
4699       "format: BlockdevQcowEncryptionFormat"
4700           Not documented
4701
4702       The members of "QCryptoBlockOptionsQCow" when "format" is "aes"
4703
4704       Since: 2.10
4705
4706       BlockdevOptionsQcow (Object)
4707
4708       Driver specific block device options for qcow.
4709
4710       Members:
4711
4712       "encrypt: BlockdevQcowEncryption" (optional)
4713           Image decryption options. Mandatory for encrypted images, except
4714           when doing a metadata-only probe of the image.
4715
4716       The members of "BlockdevOptionsGenericCOWFormat"
4717
4718       Since: 2.10
4719
4720       BlockdevQcow2EncryptionFormat (Enum)
4721
4722       Values:
4723
4724       "aes"
4725           AES-CBC with plain64 initialization vectors
4726
4727       "luks"
4728           Not documented
4729
4730       Since: 2.10
4731
4732       BlockdevQcow2Encryption (Object)
4733
4734       Members:
4735
4736       "format: BlockdevQcow2EncryptionFormat"
4737           Not documented
4738
4739       The members of "QCryptoBlockOptionsQCow" when "format" is "aes"
4740       The members of "QCryptoBlockOptionsLUKS" when "format" is "luks"
4741
4742       Since: 2.10
4743
4744       BlockdevOptionsQcow2 (Object)
4745
4746       Driver specific block device options for qcow2.
4747
4748       Members:
4749
4750       "lazy-refcounts: boolean" (optional)
4751           whether to enable the lazy refcounts feature (default is taken from
4752           the image file)
4753
4754       "pass-discard-request: boolean" (optional)
4755           whether discard requests to the qcow2 device should be forwarded to
4756           the data source
4757
4758       "pass-discard-snapshot: boolean" (optional)
4759           whether discard requests for the data source should be issued when
4760           a snapshot operation (e.g.  deleting a snapshot) frees clusters in
4761           the qcow2 file
4762
4763       "pass-discard-other: boolean" (optional)
4764           whether discard requests for the data source should be issued on
4765           other occasions where a cluster gets freed
4766
4767       "overlap-check: Qcow2OverlapChecks" (optional)
4768           which overlap checks to perform for writes to the image, defaults
4769           to 'cached' (since 2.2)
4770
4771       "cache-size: int" (optional)
4772           the maximum total size of the L2 table and refcount block caches in
4773           bytes (since 2.2)
4774
4775       "l2-cache-size: int" (optional)
4776           the maximum size of the L2 table cache in bytes (since 2.2)
4777
4778       "l2-cache-entry-size: int" (optional)
4779           the size of each entry in the L2 cache in bytes. It must be a power
4780           of two between 512 and the cluster size. The default value is the
4781           cluster size (since 2.12)
4782
4783       "refcount-cache-size: int" (optional)
4784           the maximum size of the refcount block cache in bytes (since 2.2)
4785
4786       "cache-clean-interval: int" (optional)
4787           clean unused entries in the L2 and refcount caches. The interval is
4788           in seconds. The default value is 600 on supporting platforms, and 0
4789           on other platforms. 0 disables this feature. (since 2.5)
4790
4791       "encrypt: BlockdevQcow2Encryption" (optional)
4792           Image decryption options. Mandatory for encrypted images, except
4793           when doing a metadata-only probe of the image. (since 2.10)
4794
4795       "data-file: BlockdevRef" (optional)
4796           reference to or definition of the external data file.  This may
4797           only be specified for images that require an external data file. If
4798           it is not specified for such an image, the data file name is loaded
4799           from the image file. (since 4.0)
4800
4801       The members of "BlockdevOptionsGenericCOWFormat"
4802
4803       Since: 2.9
4804
4805       SshHostKeyCheckMode (Enum)
4806
4807       Values:
4808
4809       "none"
4810           Don't check the host key at all
4811
4812       "hash"
4813           Compare the host key with a given hash
4814
4815       "known_hosts"
4816           Check the host key against the known_hosts file
4817
4818       Since: 2.12
4819
4820       SshHostKeyCheckHashType (Enum)
4821
4822       Values:
4823
4824       "md5"
4825           The given hash is an md5 hash
4826
4827       "sha1"
4828           The given hash is an sha1 hash
4829
4830       Since: 2.12
4831
4832       SshHostKeyHash (Object)
4833
4834       Members:
4835
4836       "type: SshHostKeyCheckHashType"
4837           The hash algorithm used for the hash
4838
4839       "hash: string"
4840           The expected hash value
4841
4842       Since: 2.12
4843
4844       SshHostKeyCheck (Object)
4845
4846       Members:
4847
4848       "mode: SshHostKeyCheckMode"
4849           Not documented
4850
4851       The members of "SshHostKeyHash" when "mode" is "hash"
4852
4853       Since: 2.12
4854
4855       BlockdevOptionsSsh (Object)
4856
4857       Members:
4858
4859       "server: InetSocketAddress"
4860           host address
4861
4862       "path: string"
4863           path to the image on the host
4864
4865       "user: string" (optional)
4866           user as which to connect, defaults to current local user name
4867
4868       "host-key-check: SshHostKeyCheck" (optional)
4869           Defines how and what to check the host key against (default:
4870           known_hosts)
4871
4872       Since: 2.9
4873
4874       BlkdebugEvent (Enum)
4875
4876       Trigger events supported by blkdebug.
4877
4878       Values:
4879
4880       "l1_shrink_write_table"
4881           write zeros to the l1 table to shrink image.  (since 2.11)
4882
4883       "l1_shrink_free_l2_clusters"
4884           discard the l2 tables. (since 2.11)
4885
4886       "cor_write"
4887           a write due to copy-on-read (since 2.11)
4888
4889       "cluster_alloc_space"
4890           an allocation of file space for a cluster (since 4.1)
4891
4892       "none"
4893           triggers once at creation of the blkdebug node (since 4.1)
4894
4895       "l1_update"
4896           Not documented
4897
4898       "l1_grow_alloc_table"
4899           Not documented
4900
4901       "l1_grow_write_table"
4902           Not documented
4903
4904       "l1_grow_activate_table"
4905           Not documented
4906
4907       "l2_load"
4908           Not documented
4909
4910       "l2_update"
4911           Not documented
4912
4913       "l2_update_compressed"
4914           Not documented
4915
4916       "l2_alloc_cow_read"
4917           Not documented
4918
4919       "l2_alloc_write"
4920           Not documented
4921
4922       "read_aio"
4923           Not documented
4924
4925       "read_backing_aio"
4926           Not documented
4927
4928       "read_compressed"
4929           Not documented
4930
4931       "write_aio"
4932           Not documented
4933
4934       "write_compressed"
4935           Not documented
4936
4937       "vmstate_load"
4938           Not documented
4939
4940       "vmstate_save"
4941           Not documented
4942
4943       "cow_read"
4944           Not documented
4945
4946       "cow_write"
4947           Not documented
4948
4949       "reftable_load"
4950           Not documented
4951
4952       "reftable_grow"
4953           Not documented
4954
4955       "reftable_update"
4956           Not documented
4957
4958       "refblock_load"
4959           Not documented
4960
4961       "refblock_update"
4962           Not documented
4963
4964       "refblock_update_part"
4965           Not documented
4966
4967       "refblock_alloc"
4968           Not documented
4969
4970       "refblock_alloc_hookup"
4971           Not documented
4972
4973       "refblock_alloc_write"
4974           Not documented
4975
4976       "refblock_alloc_write_blocks"
4977           Not documented
4978
4979       "refblock_alloc_write_table"
4980           Not documented
4981
4982       "refblock_alloc_switch_table"
4983           Not documented
4984
4985       "cluster_alloc"
4986           Not documented
4987
4988       "cluster_alloc_bytes"
4989           Not documented
4990
4991       "cluster_free"
4992           Not documented
4993
4994       "flush_to_os"
4995           Not documented
4996
4997       "flush_to_disk"
4998           Not documented
4999
5000       "pwritev_rmw_head"
5001           Not documented
5002
5003       "pwritev_rmw_after_head"
5004           Not documented
5005
5006       "pwritev_rmw_tail"
5007           Not documented
5008
5009       "pwritev_rmw_after_tail"
5010           Not documented
5011
5012       "pwritev"
5013           Not documented
5014
5015       "pwritev_zero"
5016           Not documented
5017
5018       "pwritev_done"
5019           Not documented
5020
5021       "empty_image_prepare"
5022           Not documented
5023
5024       Since: 2.9
5025
5026       BlkdebugIOType (Enum)
5027
5028       Kinds of I/O that blkdebug can inject errors in.
5029
5030       Values:
5031
5032       "read"
5033           .bdrv_co_preadv()
5034
5035       "write"
5036           .bdrv_co_pwritev()
5037
5038       "write-zeroes"
5039           .bdrv_co_pwrite_zeroes()
5040
5041       "discard"
5042           .bdrv_co_pdiscard()
5043
5044       "flush"
5045           .bdrv_co_flush_to_disk()
5046
5047       "block-status"
5048           .bdrv_co_block_status()
5049
5050       Since: 4.1
5051
5052       BlkdebugInjectErrorOptions (Object)
5053
5054       Describes a single error injection for blkdebug.
5055
5056       Members:
5057
5058       "event: BlkdebugEvent"
5059           trigger event
5060
5061       "state: int" (optional)
5062           the state identifier blkdebug needs to be in to actually trigger
5063           the event; defaults to "any"
5064
5065       "iotype: BlkdebugIOType" (optional)
5066           the type of I/O operations on which this error should be injected;
5067           defaults to "all read, write, write-zeroes, discard, and flush
5068           operations" (since: 4.1)
5069
5070       "errno: int" (optional)
5071           error identifier (errno) to be returned; defaults to EIO
5072
5073       "sector: int" (optional)
5074           specifies the sector index which has to be affected in order to
5075           actually trigger the event; defaults to "any sector"
5076
5077       "once: boolean" (optional)
5078           disables further events after this one has been triggered; defaults
5079           to false
5080
5081       "immediately: boolean" (optional)
5082           fail immediately; defaults to false
5083
5084       Since: 2.9
5085
5086       BlkdebugSetStateOptions (Object)
5087
5088       Describes a single state-change event for blkdebug.
5089
5090       Members:
5091
5092       "event: BlkdebugEvent"
5093           trigger event
5094
5095       "state: int" (optional)
5096           the current state identifier blkdebug needs to be in; defaults to
5097           "any"
5098
5099       "new_state: int"
5100           the state identifier blkdebug is supposed to assume if this event
5101           is triggered
5102
5103       Since: 2.9
5104
5105       BlockdevOptionsBlkdebug (Object)
5106
5107       Driver specific block device options for blkdebug.
5108
5109       Members:
5110
5111       "image: BlockdevRef"
5112           underlying raw block device (or image file)
5113
5114       "config: string" (optional)
5115           filename of the configuration file
5116
5117       "align: int" (optional)
5118           required alignment for requests in bytes, must be positive power of
5119           2, or 0 for default
5120
5121       "max-transfer: int" (optional)
5122           maximum size for I/O transfers in bytes, must be positive multiple
5123           of "align" and of the underlying file's request alignment (but need
5124           not be a power of 2), or 0 for default (since 2.10)
5125
5126       "opt-write-zero: int" (optional)
5127           preferred alignment for write zero requests in bytes, must be
5128           positive multiple of "align" and of the underlying file's request
5129           alignment (but need not be a power of 2), or 0 for default (since
5130           2.10)
5131
5132       "max-write-zero: int" (optional)
5133           maximum size for write zero requests in bytes, must be positive
5134           multiple of "align", of "opt-write-zero", and of the underlying
5135           file's request alignment (but need not be a power of 2), or 0 for
5136           default (since 2.10)
5137
5138       "opt-discard: int" (optional)
5139           preferred alignment for discard requests in bytes, must be positive
5140           multiple of "align" and of the underlying file's request alignment
5141           (but need not be a power of 2), or 0 for default (since 2.10)
5142
5143       "max-discard: int" (optional)
5144           maximum size for discard requests in bytes, must be positive
5145           multiple of "align", of "opt-discard", and of the underlying file's
5146           request alignment (but need not be a power of 2), or 0 for default
5147           (since 2.10)
5148
5149       "inject-error: array of BlkdebugInjectErrorOptions" (optional)
5150           array of error injection descriptions
5151
5152       "set-state: array of BlkdebugSetStateOptions" (optional)
5153           array of state-change descriptions
5154
5155       "take-child-perms: array of BlockPermission" (optional)
5156           Permissions to take on "image" in addition to what is necessary
5157           anyway (which depends on how the blkdebug node is used).  Defaults
5158           to none.  (since 5.0)
5159
5160       "unshare-child-perms: array of BlockPermission" (optional)
5161           Permissions not to share on "image" in addition to what cannot be
5162           shared anyway (which depends on how the blkdebug node is used).
5163           Defaults to none.  (since 5.0)
5164
5165       Since: 2.9
5166
5167       BlockdevOptionsBlklogwrites (Object)
5168
5169       Driver specific block device options for blklogwrites.
5170
5171       Members:
5172
5173       "file: BlockdevRef"
5174           block device
5175
5176       "log: BlockdevRef"
5177           block device used to log writes to "file"
5178
5179       "log-sector-size: int" (optional)
5180           sector size used in logging writes to "file", determines
5181           granularity of offsets and sizes of writes (default: 512)
5182
5183       "log-append: boolean" (optional)
5184           append to an existing log (default: false)
5185
5186       "log-super-update-interval: int" (optional)
5187           interval of write requests after which the log super block is
5188           updated to disk (default: 4096)
5189
5190       Since: 3.0
5191
5192       BlockdevOptionsBlkverify (Object)
5193
5194       Driver specific block device options for blkverify.
5195
5196       Members:
5197
5198       "test: BlockdevRef"
5199           block device to be tested
5200
5201       "raw: BlockdevRef"
5202           raw image used for verification
5203
5204       Since: 2.9
5205
5206       BlockdevOptionsBlkreplay (Object)
5207
5208       Driver specific block device options for blkreplay.
5209
5210       Members:
5211
5212       "image: BlockdevRef"
5213           disk image which should be controlled with blkreplay
5214
5215       Since: 4.2
5216
5217       QuorumReadPattern (Enum)
5218
5219       An enumeration of quorum read patterns.
5220
5221       Values:
5222
5223       "quorum"
5224           read all the children and do a quorum vote on reads
5225
5226       "fifo"
5227           read only from the first child that has not failed
5228
5229       Since: 2.9
5230
5231       BlockdevOptionsQuorum (Object)
5232
5233       Driver specific block device options for Quorum
5234
5235       Members:
5236
5237       "blkverify: boolean" (optional)
5238           true if the driver must print content mismatch set to false by
5239           default
5240
5241       "children: array of BlockdevRef"
5242           the children block devices to use
5243
5244       "vote-threshold: int"
5245           the vote limit under which a read will fail
5246
5247       "rewrite-corrupted: boolean" (optional)
5248           rewrite corrupted data when quorum is reached (Since 2.1)
5249
5250       "read-pattern: QuorumReadPattern" (optional)
5251           choose read pattern and set to quorum by default (Since 2.2)
5252
5253       Since: 2.9
5254
5255       BlockdevOptionsGluster (Object)
5256
5257       Driver specific block device options for Gluster
5258
5259       Members:
5260
5261       "volume: string"
5262           name of gluster volume where VM image resides
5263
5264       "path: string"
5265           absolute path to image file in gluster volume
5266
5267       "server: array of SocketAddress"
5268           gluster servers description
5269
5270       "debug: int" (optional)
5271           libgfapi log level (default '4' which is Error) (Since 2.8)
5272
5273       "logfile: string" (optional)
5274           libgfapi log file (default /dev/stderr) (Since 2.8)
5275
5276       Since: 2.9
5277
5278       IscsiTransport (Enum)
5279
5280       An enumeration of libiscsi transport types
5281
5282       Values:
5283
5284       "tcp"
5285           Not documented
5286
5287       "iser"
5288           Not documented
5289
5290       Since: 2.9
5291
5292       IscsiHeaderDigest (Enum)
5293
5294       An enumeration of header digests supported by libiscsi
5295
5296       Values:
5297
5298       "crc32c"
5299           Not documented
5300
5301       "none"
5302           Not documented
5303
5304       "crc32c-none"
5305           Not documented
5306
5307       "none-crc32c"
5308           Not documented
5309
5310       Since: 2.9
5311
5312       BlockdevOptionsIscsi (Object)
5313
5314       Members:
5315
5316       "transport: IscsiTransport"
5317           The iscsi transport type
5318
5319       "portal: string"
5320           The address of the iscsi portal
5321
5322       "target: string"
5323           The target iqn name
5324
5325       "lun: int" (optional)
5326           LUN to connect to. Defaults to 0.
5327
5328       "user: string" (optional)
5329           User name to log in with. If omitted, no CHAP authentication is
5330           performed.
5331
5332       "password-secret: string" (optional)
5333           The ID of a QCryptoSecret object providing the password for the
5334           login. This option is required if "user" is specified.
5335
5336       "initiator-name: string" (optional)
5337           The iqn name we want to identify to the target as. If this option
5338           is not specified, an initiator name is generated automatically.
5339
5340       "header-digest: IscsiHeaderDigest" (optional)
5341           The desired header digest. Defaults to none-crc32c.
5342
5343       "timeout: int" (optional)
5344           Timeout in seconds after which a request will timeout. 0 means no
5345           timeout and is the default.
5346
5347       Driver specific block device options for iscsi
5348
5349       Since: 2.9
5350
5351       RbdAuthMode (Enum)
5352
5353       Values:
5354
5355       "cephx"
5356           Not documented
5357
5358       "none"
5359           Not documented
5360
5361       Since: 3.0
5362
5363       BlockdevOptionsRbd (Object)
5364
5365       Members:
5366
5367       "pool: string"
5368           Ceph pool name.
5369
5370       "namespace: string" (optional)
5371           Rados namespace name in the Ceph pool. (Since 5.0)
5372
5373       "image: string"
5374           Image name in the Ceph pool.
5375
5376       "conf: string" (optional)
5377           path to Ceph configuration file.  Values in the configuration file
5378           will be overridden by options specified via QAPI.
5379
5380       "snapshot: string" (optional)
5381           Ceph snapshot name.
5382
5383       "user: string" (optional)
5384           Ceph id name.
5385
5386       "auth-client-required: array of RbdAuthMode" (optional)
5387           Acceptable authentication modes.  This maps to Ceph configuration
5388           option "auth_client_required".  (Since 3.0)
5389
5390       "key-secret: string" (optional)
5391           ID of a QCryptoSecret object providing a key for cephx
5392           authentication.  This maps to Ceph configuration option "key".
5393           (Since 3.0)
5394
5395       "server: array of InetSocketAddressBase" (optional)
5396           Monitor host address and port.  This maps to the "mon_host" Ceph
5397           option.
5398
5399       Since: 2.9
5400
5401       BlockdevOptionsSheepdog (Object)
5402
5403       Driver specific block device options for sheepdog
5404
5405       Members:
5406
5407       "vdi: string"
5408           Virtual disk image name
5409
5410       "server: SocketAddress"
5411           The Sheepdog server to connect to
5412
5413       "snap-id: int" (optional)
5414           Snapshot ID
5415
5416       "tag: string" (optional)
5417           Snapshot tag name
5418
5419       Only one of "snap-id" and "tag" may be present.
5420
5421       Since: 2.9
5422
5423       ReplicationMode (Enum)
5424
5425       An enumeration of replication modes.
5426
5427       Values:
5428
5429       "primary"
5430           Primary mode, the vm's state will be sent to secondary QEMU.
5431
5432       "secondary"
5433           Secondary mode, receive the vm's state from primary QEMU.
5434
5435       Since: 2.9
5436
5437       If: "defined(CONFIG_REPLICATION)"
5438
5439       BlockdevOptionsReplication (Object)
5440
5441       Driver specific block device options for replication
5442
5443       Members:
5444
5445       "mode: ReplicationMode"
5446           the replication mode
5447
5448       "top-id: string" (optional)
5449           In secondary mode, node name or device ID of the root node who owns
5450           the replication node chain. Must not be given in primary mode.
5451
5452       The members of "BlockdevOptionsGenericFormat"
5453
5454       Since: 2.9
5455
5456       If: "defined(CONFIG_REPLICATION)"
5457
5458       NFSTransport (Enum)
5459
5460       An enumeration of NFS transport types
5461
5462       Values:
5463
5464       "inet"
5465           TCP transport
5466
5467       Since: 2.9
5468
5469       NFSServer (Object)
5470
5471       Captures the address of the socket
5472
5473       Members:
5474
5475       "type: NFSTransport"
5476           transport type used for NFS (only TCP supported)
5477
5478       "host: string"
5479           host address for NFS server
5480
5481       Since: 2.9
5482
5483       BlockdevOptionsNfs (Object)
5484
5485       Driver specific block device option for NFS
5486
5487       Members:
5488
5489       "server: NFSServer"
5490           host address
5491
5492       "path: string"
5493           path of the image on the host
5494
5495       "user: int" (optional)
5496           UID value to use when talking to the server (defaults to 65534 on
5497           Windows and getuid() on unix)
5498
5499       "group: int" (optional)
5500           GID value to use when talking to the server (defaults to 65534 on
5501           Windows and getgid() in unix)
5502
5503       "tcp-syn-count: int" (optional)
5504           number of SYNs during the session establishment (defaults to libnfs
5505           default)
5506
5507       "readahead-size: int" (optional)
5508           set the readahead size in bytes (defaults to libnfs default)
5509
5510       "page-cache-size: int" (optional)
5511           set the pagecache size in bytes (defaults to libnfs default)
5512
5513       "debug: int" (optional)
5514           set the NFS debug level (max 2) (defaults to libnfs default)
5515
5516       Since: 2.9
5517
5518       BlockdevOptionsCurlBase (Object)
5519
5520       Driver specific block device options shared by all protocols supported
5521       by the curl backend.
5522
5523       Members:
5524
5525       "url: string"
5526           URL of the image file
5527
5528       "readahead: int" (optional)
5529           Size of the read-ahead cache; must be a multiple of 512 (defaults
5530           to 256 kB)
5531
5532       "timeout: int" (optional)
5533           Timeout for connections, in seconds (defaults to 5)
5534
5535       "username: string" (optional)
5536           Username for authentication (defaults to none)
5537
5538       "password-secret: string" (optional)
5539           ID of a QCryptoSecret object providing a password for
5540           authentication (defaults to no password)
5541
5542       "proxy-username: string" (optional)
5543           Username for proxy authentication (defaults to none)
5544
5545       "proxy-password-secret: string" (optional)
5546           ID of a QCryptoSecret object providing a password for proxy
5547           authentication (defaults to no password)
5548
5549       Since: 2.9
5550
5551       BlockdevOptionsCurlHttp (Object)
5552
5553       Driver specific block device options for HTTP connections over the curl
5554       backend.  URLs must start with "http://".
5555
5556       Members:
5557
5558       "cookie: string" (optional)
5559           List of cookies to set; format is "name1=content1; name2=content2;"
5560           as explained by CURLOPT_COOKIE(3). Defaults to no cookies.
5561
5562       "cookie-secret: string" (optional)
5563           ID of a QCryptoSecret object providing the cookie data in a secure
5564           way. See "cookie" for the format. (since 2.10)
5565
5566       The members of "BlockdevOptionsCurlBase"
5567
5568       Since: 2.9
5569
5570       BlockdevOptionsCurlHttps (Object)
5571
5572       Driver specific block device options for HTTPS connections over the
5573       curl backend.  URLs must start with "https://".
5574
5575       Members:
5576
5577       "cookie: string" (optional)
5578           List of cookies to set; format is "name1=content1; name2=content2;"
5579           as explained by CURLOPT_COOKIE(3). Defaults to no cookies.
5580
5581       "sslverify: boolean" (optional)
5582           Whether to verify the SSL certificate's validity (defaults to true)
5583
5584       "cookie-secret: string" (optional)
5585           ID of a QCryptoSecret object providing the cookie data in a secure
5586           way. See "cookie" for the format. (since 2.10)
5587
5588       The members of "BlockdevOptionsCurlBase"
5589
5590       Since: 2.9
5591
5592       BlockdevOptionsCurlFtp (Object)
5593
5594       Driver specific block device options for FTP connections over the curl
5595       backend.  URLs must start with "ftp://".
5596
5597       Members:
5598
5599       The members of "BlockdevOptionsCurlBase"
5600
5601       Since: 2.9
5602
5603       BlockdevOptionsCurlFtps (Object)
5604
5605       Driver specific block device options for FTPS connections over the curl
5606       backend.  URLs must start with "ftps://".
5607
5608       Members:
5609
5610       "sslverify: boolean" (optional)
5611           Whether to verify the SSL certificate's validity (defaults to true)
5612
5613       The members of "BlockdevOptionsCurlBase"
5614
5615       Since: 2.9
5616
5617       BlockdevOptionsNbd (Object)
5618
5619       Driver specific block device options for NBD.
5620
5621       Members:
5622
5623       "server: SocketAddress"
5624           NBD server address
5625
5626       "export: string" (optional)
5627           export name
5628
5629       "tls-creds: string" (optional)
5630           TLS credentials ID
5631
5632       "x-dirty-bitmap: string" (optional)
5633           A "qemu:dirty-bitmap:NAME" string to query in place of traditional
5634           "base:allocation" block status (see NBD_OPT_LIST_META_CONTEXT in
5635           the NBD protocol) (since 3.0)
5636
5637       "reconnect-delay: int" (optional)
5638           On an unexpected disconnect, the nbd client tries to connect again
5639           until succeeding or encountering a serious error.  During the first
5640           "reconnect-delay" seconds, all requests are paused and will be
5641           rerun on a successful reconnect. After that time, any delayed
5642           requests and all future requests before a successful reconnect will
5643           immediately fail. Default 0 (Since 4.2)
5644
5645       Since: 2.9
5646
5647       BlockdevOptionsRaw (Object)
5648
5649       Driver specific block device options for the raw driver.
5650
5651       Members:
5652
5653       "offset: int" (optional)
5654           position where the block device starts
5655
5656       "size: int" (optional)
5657           the assumed size of the device
5658
5659       The members of "BlockdevOptionsGenericFormat"
5660
5661       Since: 2.9
5662
5663       BlockdevOptionsThrottle (Object)
5664
5665       Driver specific block device options for the throttle driver
5666
5667       Members:
5668
5669       "throttle-group: string"
5670           the name of the throttle-group object to use. It must already
5671           exist.
5672
5673       "file: BlockdevRef"
5674           reference to or definition of the data source block device
5675
5676       Since: 2.11
5677
5678       BlockdevOptions (Object)
5679
5680       Options for creating a block device.  Many options are available for
5681       all block devices, independent of the block driver:
5682
5683       Members:
5684
5685       "driver: BlockdevDriver"
5686           block driver name
5687
5688       "node-name: string" (optional)
5689           the node name of the new node (Since 2.0).  This option is required
5690           on the top level of blockdev-add.  Valid node names start with an
5691           alphabetic character and may contain only alphanumeric characters,
5692           '-', '.' and '_'. Their maximum length is 31 characters.
5693
5694       "discard: BlockdevDiscardOptions" (optional)
5695           discard-related options (default: ignore)
5696
5697       "cache: BlockdevCacheOptions" (optional)
5698           cache-related options
5699
5700       "read-only: boolean" (optional)
5701           whether the block device should be read-only (default: false).
5702           Note that some block drivers support only read-only access, either
5703           generally or in certain configurations. In this case, the default
5704           value does not work and the option must be specified explicitly.
5705
5706       "auto-read-only: boolean" (optional)
5707           if true and "read-only" is false, QEMU may automatically decide not
5708           to open the image read-write as requested, but fall back to read-
5709           only instead (and switch between the modes later), e.g. depending
5710           on whether the image file is writable or whether a writing user is
5711           attached to the node (default: false, since 3.1)
5712
5713       "detect-zeroes: BlockdevDetectZeroesOptions" (optional)
5714           detect and optimize zero writes (Since 2.1) (default: off)
5715
5716       "force-share: boolean" (optional)
5717           force share all permission on added nodes.  Requires
5718           read-only=true. (Since 2.10)
5719
5720       The members of "BlockdevOptionsBlkdebug" when "driver" is "blkdebug"
5721       The members of "BlockdevOptionsBlklogwrites" when "driver" is
5722       "blklogwrites"
5723       The members of "BlockdevOptionsBlkverify" when "driver" is "blkverify"
5724       The members of "BlockdevOptionsBlkreplay" when "driver" is "blkreplay"
5725       The members of "BlockdevOptionsGenericFormat" when "driver" is "bochs"
5726       The members of "BlockdevOptionsGenericFormat" when "driver" is "cloop"
5727       The members of "BlockdevOptionsGenericFormat" when "driver" is
5728       "compress"
5729       The members of "BlockdevOptionsGenericFormat" when "driver" is "copy-
5730       on-read"
5731       The members of "BlockdevOptionsGenericFormat" when "driver" is "dmg"
5732       The members of "BlockdevOptionsFile" when "driver" is "file"
5733       The members of "BlockdevOptionsCurlFtp" when "driver" is "ftp"
5734       The members of "BlockdevOptionsCurlFtps" when "driver" is "ftps"
5735       The members of "BlockdevOptionsGluster" when "driver" is "gluster"
5736       The members of "BlockdevOptionsFile" when "driver" is "host_cdrom"
5737       The members of "BlockdevOptionsFile" when "driver" is "host_device"
5738       The members of "BlockdevOptionsCurlHttp" when "driver" is "http"
5739       The members of "BlockdevOptionsCurlHttps" when "driver" is "https"
5740       The members of "BlockdevOptionsIscsi" when "driver" is "iscsi"
5741       The members of "BlockdevOptionsLUKS" when "driver" is "luks"
5742       The members of "BlockdevOptionsNbd" when "driver" is "nbd"
5743       The members of "BlockdevOptionsNfs" when "driver" is "nfs"
5744       The members of "BlockdevOptionsNull" when "driver" is "null-aio"
5745       The members of "BlockdevOptionsNull" when "driver" is "null-co"
5746       The members of "BlockdevOptionsNVMe" when "driver" is "nvme"
5747       The members of "BlockdevOptionsGenericFormat" when "driver" is
5748       "parallels"
5749       The members of "BlockdevOptionsQcow2" when "driver" is "qcow2"
5750       The members of "BlockdevOptionsQcow" when "driver" is "qcow"
5751       The members of "BlockdevOptionsGenericCOWFormat" when "driver" is "qed"
5752       The members of "BlockdevOptionsQuorum" when "driver" is "quorum"
5753       The members of "BlockdevOptionsRaw" when "driver" is "raw"
5754       The members of "BlockdevOptionsRbd" when "driver" is "rbd"
5755       The members of "BlockdevOptionsReplication" when "driver" is
5756       "replication" (If: "defined(CONFIG_REPLICATION)")
5757       The members of "BlockdevOptionsSheepdog" when "driver" is "sheepdog"
5758       The members of "BlockdevOptionsSsh" when "driver" is "ssh"
5759       The members of "BlockdevOptionsThrottle" when "driver" is "throttle"
5760       The members of "BlockdevOptionsGenericFormat" when "driver" is "vdi"
5761       The members of "BlockdevOptionsGenericFormat" when "driver" is "vhdx"
5762       The members of "BlockdevOptionsGenericCOWFormat" when "driver" is
5763       "vmdk"
5764       The members of "BlockdevOptionsGenericFormat" when "driver" is "vpc"
5765       The members of "BlockdevOptionsVVFAT" when "driver" is "vvfat"
5766
5767       Remaining options are determined by the block driver.
5768
5769       Since: 2.9
5770
5771       BlockdevRef (Alternate)
5772
5773       Reference to a block device.
5774
5775       Members:
5776
5777       "definition: BlockdevOptions"
5778           defines a new block device inline
5779
5780       "reference: string"
5781           references the ID of an existing block device
5782
5783       Since: 2.9
5784
5785       BlockdevRefOrNull (Alternate)
5786
5787       Reference to a block device.
5788
5789       Members:
5790
5791       "definition: BlockdevOptions"
5792           defines a new block device inline
5793
5794       "reference: string"
5795           references the ID of an existing block device.  An empty string
5796           means that no block device should be referenced.  Deprecated; use
5797           null instead.
5798
5799       "null: null"
5800           No block device should be referenced (since 2.10)
5801
5802       Since: 2.9
5803
5804       blockdev-add  (Command) Creates a new block device. If the "id" option
5805       is given at the top level, a BlockBackend will be created; otherwise,
5806       "node-name" is mandatory at the top level and no BlockBackend will be
5807       created.
5808
5809       Arguments: the members of "BlockdevOptions"
5810
5811       Since: 2.9
5812
5813       Example:
5814
5815               1.
5816               -> { "execute": "blockdev-add",
5817                    "arguments": {
5818                         "driver": "qcow2",
5819                         "node-name": "test1",
5820                         "file": {
5821                             "driver": "file",
5822                             "filename": "test.qcow2"
5823                          }
5824                     }
5825                   }
5826               <- { "return": {} }
5827
5828               2.
5829               -> { "execute": "blockdev-add",
5830                    "arguments": {
5831                         "driver": "qcow2",
5832                         "node-name": "node0",
5833                         "discard": "unmap",
5834                         "cache": {
5835                            "direct": true
5836                          },
5837                          "file": {
5838                            "driver": "file",
5839                            "filename": "/tmp/test.qcow2"
5840                          },
5841                          "backing": {
5842                             "driver": "raw",
5843                             "file": {
5844                                "driver": "file",
5845                                "filename": "/dev/fdset/4"
5846                              }
5847                          }
5848                      }
5849                    }
5850
5851               <- { "return": {} }
5852
5853       x-blockdev-reopen  (Command) Reopens a block device using the given set
5854       of options. Any option not specified will be reset to its default value
5855       regardless of its previous status. If an option cannot be changed or a
5856       particular driver does not support reopening then the command will
5857       return an error.
5858
5859       The top-level "node-name" option (from BlockdevOptions) must be
5860       specified and is used to select the block device to be reopened.  Other
5861       "node-name" options must be either omitted or set to the current name
5862       of the appropriate node. This command won't change any node name and
5863       any attempt to do it will result in an error.
5864
5865       In the case of options that refer to child nodes, the behavior of this
5866       command depends on the value:
5867
5868       1) A set of options (BlockdevOptions): the child is reopened with the
5869       specified set of options.
5870
5871       2) A reference to the current child: the child is reopened using its
5872       existing set of options.
5873
5874       3) A reference to a different node: the current child is replaced with
5875       the specified one.
5876
5877       4) NULL: the current child (if any) is detached.
5878
5879       Options (1) and (2) are supported in all cases, but at the moment only
5880       "backing" allows replacing or detaching an existing child.
5881
5882       Unlike with blockdev-add, the "backing" option must always be present
5883       unless the node being reopened does not have a backing file and its
5884       image does not have a default backing file name as part of its
5885       metadata.
5886
5887       Arguments: the members of "BlockdevOptions"
5888
5889       Since: 4.0
5890
5891       blockdev-del  (Command) Deletes a block device that has been added
5892       using blockdev-add.  The command will fail if the node is attached to a
5893       device or is otherwise being used.
5894
5895       Arguments:
5896
5897       "node-name: string"
5898           Name of the graph node to delete.
5899
5900       Since: 2.9
5901
5902       Example:
5903
5904               -> { "execute": "blockdev-add",
5905                    "arguments": {
5906                         "driver": "qcow2",
5907                         "node-name": "node0",
5908                         "file": {
5909                             "driver": "file",
5910                             "filename": "test.qcow2"
5911                         }
5912                    }
5913                  }
5914               <- { "return": {} }
5915
5916               -> { "execute": "blockdev-del",
5917                    "arguments": { "node-name": "node0" }
5918                  }
5919               <- { "return": {} }
5920
5921       BlockdevCreateOptionsFile (Object)
5922
5923       Driver specific image creation options for file.
5924
5925       Members:
5926
5927       "filename: string"
5928           Filename for the new image file
5929
5930       "size: int"
5931           Size of the virtual disk in bytes
5932
5933       "preallocation: PreallocMode" (optional)
5934           Preallocation mode for the new image (default: off; allowed values:
5935           off, falloc (if defined CONFIG_POSIX_FALLOCATE), full (if defined
5936           CONFIG_POSIX))
5937
5938       "nocow: boolean" (optional)
5939           Turn off copy-on-write (valid only on btrfs; default: off)
5940
5941       "extent-size-hint: int" (optional)
5942           Extent size hint to add to the image file; 0 for not adding an
5943           extent size hint (default: 1 MB, since 5.1)
5944
5945       Since: 2.12
5946
5947       BlockdevCreateOptionsGluster (Object)
5948
5949       Driver specific image creation options for gluster.
5950
5951       Members:
5952
5953       "location: BlockdevOptionsGluster"
5954           Where to store the new image file
5955
5956       "size: int"
5957           Size of the virtual disk in bytes
5958
5959       "preallocation: PreallocMode" (optional)
5960           Preallocation mode for the new image (default: off; allowed values:
5961           off, falloc (if defined CONFIG_GLUSTERFS_FALLOCATE), full (if
5962           defined CONFIG_GLUSTERFS_ZEROFILL))
5963
5964       Since: 2.12
5965
5966       BlockdevCreateOptionsLUKS (Object)
5967
5968       Driver specific image creation options for LUKS.
5969
5970       Members:
5971
5972       "file: BlockdevRef"
5973           Node to create the image format on
5974
5975       "size: int"
5976           Size of the virtual disk in bytes
5977
5978       "preallocation: PreallocMode" (optional)
5979           Preallocation mode for the new image (since: 4.2) (default: off;
5980           allowed values: off, metadata, falloc, full)
5981
5982       The members of "QCryptoBlockCreateOptionsLUKS"
5983
5984       Since: 2.12
5985
5986       BlockdevCreateOptionsNfs (Object)
5987
5988       Driver specific image creation options for NFS.
5989
5990       Members:
5991
5992       "location: BlockdevOptionsNfs"
5993           Where to store the new image file
5994
5995       "size: int"
5996           Size of the virtual disk in bytes
5997
5998       Since: 2.12
5999
6000       BlockdevCreateOptionsParallels (Object)
6001
6002       Driver specific image creation options for parallels.
6003
6004       Members:
6005
6006       "file: BlockdevRef"
6007           Node to create the image format on
6008
6009       "size: int"
6010           Size of the virtual disk in bytes
6011
6012       "cluster-size: int" (optional)
6013           Cluster size in bytes (default: 1 MB)
6014
6015       Since: 2.12
6016
6017       BlockdevCreateOptionsQcow (Object)
6018
6019       Driver specific image creation options for qcow.
6020
6021       Members:
6022
6023       "file: BlockdevRef"
6024           Node to create the image format on
6025
6026       "size: int"
6027           Size of the virtual disk in bytes
6028
6029       "backing-file: string" (optional)
6030           File name of the backing file if a backing file should be used
6031
6032       "encrypt: QCryptoBlockCreateOptions" (optional)
6033           Encryption options if the image should be encrypted
6034
6035       Since: 2.12
6036
6037       BlockdevQcow2Version (Enum)
6038
6039       Values:
6040
6041       "v2"
6042           The original QCOW2 format as introduced in qemu 0.10 (version 2)
6043
6044       "v3"
6045           The extended QCOW2 format as introduced in qemu 1.1 (version 3)
6046
6047       Since: 2.12
6048
6049       Qcow2CompressionType (Enum)
6050
6051       Compression type used in qcow2 image file
6052
6053       Values:
6054
6055       "zlib"
6056           zlib compression, see <http://zlib.net/>
6057
6058       "zstd"
6059           zstd compression, see <http://github.com/facebook/zstd> If:
6060           "defined(CONFIG_ZSTD)"
6061
6062       Since: 5.1
6063
6064       BlockdevCreateOptionsQcow2 (Object)
6065
6066       Driver specific image creation options for qcow2.
6067
6068       Members:
6069
6070       "file: BlockdevRef"
6071           Node to create the image format on
6072
6073       "data-file: BlockdevRef" (optional)
6074           Node to use as an external data file in which all guest data is
6075           stored so that only metadata remains in the qcow2 file (since: 4.0)
6076
6077       "data-file-raw: boolean" (optional)
6078           True if the external data file must stay valid as a standalone
6079           (read-only) raw image without looking at qcow2 metadata (default:
6080           false; since: 4.0)
6081
6082       "size: int"
6083           Size of the virtual disk in bytes
6084
6085       "version: BlockdevQcow2Version" (optional)
6086           Compatibility level (default: v3)
6087
6088       "backing-file: string" (optional)
6089           File name of the backing file if a backing file should be used
6090
6091       "backing-fmt: BlockdevDriver" (optional)
6092           Name of the block driver to use for the backing file
6093
6094       "encrypt: QCryptoBlockCreateOptions" (optional)
6095           Encryption options if the image should be encrypted
6096
6097       "cluster-size: int" (optional)
6098           qcow2 cluster size in bytes (default: 65536)
6099
6100       "preallocation: PreallocMode" (optional)
6101           Preallocation mode for the new image (default: off; allowed values:
6102           off, falloc, full, metadata)
6103
6104       "lazy-refcounts: boolean" (optional)
6105           True if refcounts may be updated lazily (default: off)
6106
6107       "refcount-bits: int" (optional)
6108           Width of reference counts in bits (default: 16)
6109
6110       "compression-type: Qcow2CompressionType" (optional)
6111           The image cluster compression method (default: zlib, since 5.1)
6112
6113       Since: 2.12
6114
6115       BlockdevCreateOptionsQed (Object)
6116
6117       Driver specific image creation options for qed.
6118
6119       Members:
6120
6121       "file: BlockdevRef"
6122           Node to create the image format on
6123
6124       "size: int"
6125           Size of the virtual disk in bytes
6126
6127       "backing-file: string" (optional)
6128           File name of the backing file if a backing file should be used
6129
6130       "backing-fmt: BlockdevDriver" (optional)
6131           Name of the block driver to use for the backing file
6132
6133       "cluster-size: int" (optional)
6134           Cluster size in bytes (default: 65536)
6135
6136       "table-size: int" (optional)
6137           L1/L2 table size (in clusters)
6138
6139       Since: 2.12
6140
6141       BlockdevCreateOptionsRbd (Object)
6142
6143       Driver specific image creation options for rbd/Ceph.
6144
6145       Members:
6146
6147       "location: BlockdevOptionsRbd"
6148           Where to store the new image file. This location cannot point to a
6149           snapshot.
6150
6151       "size: int"
6152           Size of the virtual disk in bytes
6153
6154       "cluster-size: int" (optional)
6155           RBD object size
6156
6157       Since: 2.12
6158
6159       BlockdevVmdkSubformat (Enum)
6160
6161       Subformat options for VMDK images
6162
6163       Values:
6164
6165       "monolithicSparse"
6166           Single file image with sparse cluster allocation
6167
6168       "monolithicFlat"
6169           Single flat data image and a descriptor file
6170
6171       "twoGbMaxExtentSparse"
6172           Data is split into 2GB (per virtual LBA) sparse extent files, in
6173           addition to a descriptor file
6174
6175       "twoGbMaxExtentFlat"
6176           Data is split into 2GB (per virtual LBA) flat extent files, in
6177           addition to a descriptor file
6178
6179       "streamOptimized"
6180           Single file image sparse cluster allocation, optimized for
6181           streaming over network.
6182
6183       Since: 4.0
6184
6185       BlockdevVmdkAdapterType (Enum)
6186
6187       Adapter type info for VMDK images
6188
6189       Values:
6190
6191       "ide"
6192           Not documented
6193
6194       "buslogic"
6195           Not documented
6196
6197       "lsilogic"
6198           Not documented
6199
6200       "legacyESX"
6201           Not documented
6202
6203       Since: 4.0
6204
6205       BlockdevCreateOptionsVmdk (Object)
6206
6207       Driver specific image creation options for VMDK.
6208
6209       Members:
6210
6211       "file: BlockdevRef"
6212           Where to store the new image file. This refers to the image file
6213           for monolithcSparse and streamOptimized format, or the descriptor
6214           file for other formats.
6215
6216       "size: int"
6217           Size of the virtual disk in bytes
6218
6219       "extents: array of BlockdevRef" (optional)
6220           Where to store the data extents. Required for monolithcFlat,
6221           twoGbMaxExtentSparse and twoGbMaxExtentFlat formats. For
6222           monolithicFlat, only one entry is required; for twoGbMaxExtent*
6223           formats, the number of entries required is calculated as
6224           extent_number = virtual_size / 2GB. Providing more extents than
6225           will be used is an error.
6226
6227       "subformat: BlockdevVmdkSubformat" (optional)
6228           The subformat of the VMDK image. Default: "monolithicSparse".
6229
6230       "backing-file: string" (optional)
6231           The path of backing file. Default: no backing file is used.
6232
6233       "adapter-type: BlockdevVmdkAdapterType" (optional)
6234           The adapter type used to fill in the descriptor. Default: ide.
6235
6236       "hwversion: string" (optional)
6237           Hardware version. The meaningful options are "4" or "6".  Default:
6238           "4".
6239
6240       "zeroed-grain: boolean" (optional)
6241           Whether to enable zeroed-grain feature for sparse subformats.
6242           Default: false.
6243
6244       Since: 4.0
6245
6246       SheepdogRedundancyType (Enum)
6247
6248       Values:
6249
6250       "full"
6251           Create a fully replicated vdi with x copies
6252
6253       "erasure-coded"
6254           Create an erasure coded vdi with x data strips and y parity strips
6255
6256       Since: 2.12
6257
6258       SheepdogRedundancyFull (Object)
6259
6260       Members:
6261
6262       "copies: int"
6263           Number of copies to use (between 1 and 31)
6264
6265       Since: 2.12
6266
6267       SheepdogRedundancyErasureCoded (Object)
6268
6269       Members:
6270
6271       "data-strips: int"
6272           Number of data strips to use (one of {2,4,8,16})
6273
6274       "parity-strips: int"
6275           Number of parity strips to use (between 1 and 15)
6276
6277       Since: 2.12
6278
6279       SheepdogRedundancy (Object)
6280
6281       Members:
6282
6283       "type: SheepdogRedundancyType"
6284           Not documented
6285
6286       The members of "SheepdogRedundancyFull" when "type" is "full"
6287       The members of "SheepdogRedundancyErasureCoded" when "type" is
6288       "erasure-coded"
6289
6290       Since: 2.12
6291
6292       BlockdevCreateOptionsSheepdog (Object)
6293
6294       Driver specific image creation options for Sheepdog.
6295
6296       Members:
6297
6298       "location: BlockdevOptionsSheepdog"
6299           Where to store the new image file
6300
6301       "size: int"
6302           Size of the virtual disk in bytes
6303
6304       "backing-file: string" (optional)
6305           File name of a base image
6306
6307       "preallocation: PreallocMode" (optional)
6308           Preallocation mode for the new image (default: off; allowed values:
6309           off, full)
6310
6311       "redundancy: SheepdogRedundancy" (optional)
6312           Redundancy of the image
6313
6314       "object-size: int" (optional)
6315           Object size of the image
6316
6317       Since: 2.12
6318
6319       BlockdevCreateOptionsSsh (Object)
6320
6321       Driver specific image creation options for SSH.
6322
6323       Members:
6324
6325       "location: BlockdevOptionsSsh"
6326           Where to store the new image file
6327
6328       "size: int"
6329           Size of the virtual disk in bytes
6330
6331       Since: 2.12
6332
6333       BlockdevCreateOptionsVdi (Object)
6334
6335       Driver specific image creation options for VDI.
6336
6337       Members:
6338
6339       "file: BlockdevRef"
6340           Node to create the image format on
6341
6342       "size: int"
6343           Size of the virtual disk in bytes
6344
6345       "preallocation: PreallocMode" (optional)
6346           Preallocation mode for the new image (default: off; allowed values:
6347           off, metadata)
6348
6349       Since: 2.12
6350
6351       BlockdevVhdxSubformat (Enum)
6352
6353       Values:
6354
6355       "dynamic"
6356           Growing image file
6357
6358       "fixed"
6359           Preallocated fixed-size image file
6360
6361       Since: 2.12
6362
6363       BlockdevCreateOptionsVhdx (Object)
6364
6365       Driver specific image creation options for vhdx.
6366
6367       Members:
6368
6369       "file: BlockdevRef"
6370           Node to create the image format on
6371
6372       "size: int"
6373           Size of the virtual disk in bytes
6374
6375       "log-size: int" (optional)
6376           Log size in bytes, must be a multiple of 1 MB (default: 1 MB)
6377
6378       "block-size: int" (optional)
6379           Block size in bytes, must be a multiple of 1 MB and not larger than
6380           256 MB (default: automatically choose a block size depending on the
6381           image size)
6382
6383       "subformat: BlockdevVhdxSubformat" (optional)
6384           vhdx subformat (default: dynamic)
6385
6386       "block-state-zero: boolean" (optional)
6387           Force use of payload blocks of type 'ZERO'. Non-standard, but
6388           default.  Do not set to 'off' when using 'qemu-img convert' with
6389           subformat=dynamic.
6390
6391       Since: 2.12
6392
6393       BlockdevVpcSubformat (Enum)
6394
6395       Values:
6396
6397       "dynamic"
6398           Growing image file
6399
6400       "fixed"
6401           Preallocated fixed-size image file
6402
6403       Since: 2.12
6404
6405       BlockdevCreateOptionsVpc (Object)
6406
6407       Driver specific image creation options for vpc (VHD).
6408
6409       Members:
6410
6411       "file: BlockdevRef"
6412           Node to create the image format on
6413
6414       "size: int"
6415           Size of the virtual disk in bytes
6416
6417       "subformat: BlockdevVpcSubformat" (optional)
6418           vhdx subformat (default: dynamic)
6419
6420       "force-size: boolean" (optional)
6421           Force use of the exact byte size instead of rounding to the next
6422           size that can be represented in CHS geometry (default: false)
6423
6424       Since: 2.12
6425
6426       BlockdevCreateOptions (Object)
6427
6428       Options for creating an image format on a given node.
6429
6430       Members:
6431
6432       "driver: BlockdevDriver"
6433           block driver to create the image format
6434
6435       The members of "BlockdevCreateOptionsFile" when "driver" is "file"
6436       The members of "BlockdevCreateOptionsGluster" when "driver" is
6437       "gluster"
6438       The members of "BlockdevCreateOptionsLUKS" when "driver" is "luks"
6439       The members of "BlockdevCreateOptionsNfs" when "driver" is "nfs"
6440       The members of "BlockdevCreateOptionsParallels" when "driver" is
6441       "parallels"
6442       The members of "BlockdevCreateOptionsQcow" when "driver" is "qcow"
6443       The members of "BlockdevCreateOptionsQcow2" when "driver" is "qcow2"
6444       The members of "BlockdevCreateOptionsQed" when "driver" is "qed"
6445       The members of "BlockdevCreateOptionsRbd" when "driver" is "rbd"
6446       The members of "BlockdevCreateOptionsSheepdog" when "driver" is
6447       "sheepdog"
6448       The members of "BlockdevCreateOptionsSsh" when "driver" is "ssh"
6449       The members of "BlockdevCreateOptionsVdi" when "driver" is "vdi"
6450       The members of "BlockdevCreateOptionsVhdx" when "driver" is "vhdx"
6451       The members of "BlockdevCreateOptionsVmdk" when "driver" is "vmdk"
6452       The members of "BlockdevCreateOptionsVpc" when "driver" is "vpc"
6453
6454       Since: 2.12
6455
6456       blockdev-create  (Command) Starts a job to create an image format on a
6457       given node. The job is automatically finalized, but a manual job-
6458       dismiss is required.
6459
6460       Arguments:
6461
6462       "job-id: string"
6463           Identifier for the newly created job.
6464
6465       "options: BlockdevCreateOptions"
6466           Options for the image creation.
6467
6468       Since: 3.0
6469
6470       BlockdevAmendOptionsLUKS (Object)
6471
6472       Driver specific image amend options for LUKS.
6473
6474       Members:
6475
6476       The members of "QCryptoBlockAmendOptionsLUKS"
6477
6478       Since: 5.1
6479
6480       BlockdevAmendOptionsQcow2 (Object)
6481
6482       Driver specific image amend options for qcow2.  For now, only
6483       encryption options can be amended
6484
6485       "encrypt"          Encryption options to be amended
6486
6487       Members:
6488
6489       "encrypt: QCryptoBlockAmendOptions" (optional)
6490           Not documented
6491
6492       Since: 5.1
6493
6494       BlockdevAmendOptions (Object)
6495
6496       Options for amending an image format
6497
6498       Members:
6499
6500       "driver: BlockdevDriver"
6501           Block driver of the node to amend.
6502
6503       The members of "BlockdevAmendOptionsLUKS" when "driver" is "luks"
6504       The members of "BlockdevAmendOptionsQcow2" when "driver" is "qcow2"
6505
6506       Since: 5.1
6507
6508       x-blockdev-amend  (Command) Starts a job to amend format specific
6509       options of an existing open block device The job is automatically
6510       finalized, but a manual job-dismiss is required.
6511
6512       Arguments:
6513
6514       "job-id: string"
6515           Identifier for the newly created job.
6516
6517       "node-name: string"
6518           Name of the block node to work on
6519
6520       "options: BlockdevAmendOptions"
6521           Options (driver specific)
6522
6523       "force: boolean" (optional)
6524           Allow unsafe operations, format specific For luks that allows erase
6525           of the last active keyslot (permanent loss of data), and
6526           replacement of an active keyslot (possible loss of data if IO error
6527           happens)
6528
6529       Since: 5.1
6530
6531       BlockErrorAction (Enum)
6532
6533       An enumeration of action that has been taken when a DISK I/O occurs
6534
6535       Values:
6536
6537       "ignore"
6538           error has been ignored
6539
6540       "report"
6541           error has been reported to the device
6542
6543       "stop"
6544           error caused VM to be stopped
6545
6546       Since: 2.1
6547
6548       BLOCK_IMAGE_CORRUPTED  (Event) Emitted when a disk image is being
6549       marked corrupt. The image can be identified by its device or node name.
6550       The 'device' field is always present for compatibility reasons, but it
6551       can be empty ("") if the image does not have a device name associated.
6552
6553       Arguments:
6554
6555       "device: string"
6556           device name. This is always present for compatibility reasons, but
6557           it can be empty ("") if the image does not have a device name
6558           associated.
6559
6560       "node-name: string" (optional)
6561           node name (Since: 2.4)
6562
6563       "msg: string"
6564           informative message for human consumption, such as the kind of
6565           corruption being detected. It should not be parsed by machine as it
6566           is not guaranteed to be stable
6567
6568       "offset: int" (optional)
6569           if the corruption resulted from an image access, this is the host's
6570           access offset into the image
6571
6572       "size: int" (optional)
6573           if the corruption resulted from an image access, this is the access
6574           size
6575
6576       "fatal: boolean"
6577           if set, the image is marked corrupt and therefore unusable after
6578           this event and must be repaired (Since 2.2; before, every
6579           BLOCK_IMAGE_CORRUPTED event was fatal)
6580
6581       Note: If action is "stop", a STOP event will eventually follow the
6582       BLOCK_IO_ERROR event.
6583
6584       Example:
6585
6586               <- { "event": "BLOCK_IMAGE_CORRUPTED",
6587                    "data": { "device": "ide0-hd0", "node-name": "node0",
6588                              "msg": "Prevented active L1 table overwrite", "offset": 196608,
6589                              "size": 65536 },
6590                    "timestamp": { "seconds": 1378126126, "microseconds": 966463 } }
6591
6592       Since: 1.7
6593
6594       BLOCK_IO_ERROR  (Event) Emitted when a disk I/O error occurs
6595
6596       Arguments:
6597
6598       "device: string"
6599           device name. This is always present for compatibility reasons, but
6600           it can be empty ("") if the image does not have a device name
6601           associated.
6602
6603       "node-name: string" (optional)
6604           node name. Note that errors may be reported for the root node that
6605           is directly attached to a guest device rather than for the node
6606           where the error occurred. The node name is not present if the drive
6607           is empty. (Since: 2.8)
6608
6609       "operation: IoOperationType"
6610           I/O operation
6611
6612       "action: BlockErrorAction"
6613           action that has been taken
6614
6615       "nospace: boolean" (optional)
6616           true if I/O error was caused due to a no-space condition. This key
6617           is only present if query-block's io-status is present, please see
6618           query-block documentation for more information (since: 2.2)
6619
6620       "reason: string"
6621           human readable string describing the error cause.  (This field is a
6622           debugging aid for humans, it should not be parsed by applications)
6623           (since: 2.2)
6624
6625       Note: If action is "stop", a STOP event will eventually follow the
6626       BLOCK_IO_ERROR event
6627
6628       Since: 0.13.0
6629
6630       Example:
6631
6632               <- { "event": "BLOCK_IO_ERROR",
6633                    "data": { "device": "ide0-hd1",
6634                              "node-name": "#block212",
6635                              "operation": "write",
6636                              "action": "stop" },
6637                    "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
6638
6639       BLOCK_JOB_COMPLETED  (Event) Emitted when a block job has completed
6640
6641       Arguments:
6642
6643       "type: JobType"
6644           job type
6645
6646       "device: string"
6647           The job identifier. Originally the device name but other values are
6648           allowed since QEMU 2.7
6649
6650       "len: int"
6651           maximum progress value
6652
6653       "offset: int"
6654           current progress value. On success this is equal to len.  On
6655           failure this is less than len
6656
6657       "speed: int"
6658           rate limit, bytes per second
6659
6660       "error: string" (optional)
6661           error message. Only present on failure. This field contains a
6662           human-readable error message. There are no semantics other than
6663           that streaming has failed and clients should not try to interpret
6664           the error string
6665
6666       Since: 1.1
6667
6668       Example:
6669
6670               <- { "event": "BLOCK_JOB_COMPLETED",
6671                    "data": { "type": "stream", "device": "virtio-disk0",
6672                              "len": 10737418240, "offset": 10737418240,
6673                              "speed": 0 },
6674                    "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
6675
6676       BLOCK_JOB_CANCELLED  (Event) Emitted when a block job has been
6677       cancelled
6678
6679       Arguments:
6680
6681       "type: JobType"
6682           job type
6683
6684       "device: string"
6685           The job identifier. Originally the device name but other values are
6686           allowed since QEMU 2.7
6687
6688       "len: int"
6689           maximum progress value
6690
6691       "offset: int"
6692           current progress value. On success this is equal to len.  On
6693           failure this is less than len
6694
6695       "speed: int"
6696           rate limit, bytes per second
6697
6698       Since: 1.1
6699
6700       Example:
6701
6702               <- { "event": "BLOCK_JOB_CANCELLED",
6703                    "data": { "type": "stream", "device": "virtio-disk0",
6704                              "len": 10737418240, "offset": 134217728,
6705                              "speed": 0 },
6706                    "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
6707
6708       BLOCK_JOB_ERROR  (Event) Emitted when a block job encounters an error
6709
6710       Arguments:
6711
6712       "device: string"
6713           The job identifier. Originally the device name but other values are
6714           allowed since QEMU 2.7
6715
6716       "operation: IoOperationType"
6717           I/O operation
6718
6719       "action: BlockErrorAction"
6720           action that has been taken
6721
6722       Since: 1.3
6723
6724       Example:
6725
6726               <- { "event": "BLOCK_JOB_ERROR",
6727                    "data": { "device": "ide0-hd1",
6728                              "operation": "write",
6729                              "action": "stop" },
6730                    "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
6731
6732       BLOCK_JOB_READY  (Event) Emitted when a block job is ready to complete
6733
6734       Arguments:
6735
6736       "type: JobType"
6737           job type
6738
6739       "device: string"
6740           The job identifier. Originally the device name but other values are
6741           allowed since QEMU 2.7
6742
6743       "len: int"
6744           maximum progress value
6745
6746       "offset: int"
6747           current progress value. On success this is equal to len.  On
6748           failure this is less than len
6749
6750       "speed: int"
6751           rate limit, bytes per second
6752
6753       Note: The "ready to complete" status is always reset by a
6754       "BLOCK_JOB_ERROR" event
6755
6756       Since: 1.3
6757
6758       Example:
6759
6760               <- { "event": "BLOCK_JOB_READY",
6761                    "data": { "device": "drive0", "type": "mirror", "speed": 0,
6762                              "len": 2097152, "offset": 2097152 }
6763                    "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
6764
6765       BLOCK_JOB_PENDING  (Event) Emitted when a block job is awaiting
6766       explicit authorization to finalize graph changes via
6767       "block-job-finalize". If this job is part of a transaction, it will not
6768       emit this event until the transaction has converged first.
6769
6770       Arguments:
6771
6772       "type: JobType"
6773           job type
6774
6775       "id: string"
6776           The job identifier.
6777
6778       Since: 2.12
6779
6780       Example:
6781
6782               <- { "event": "BLOCK_JOB_WAITING",
6783                    "data": { "device": "drive0", "type": "mirror" },
6784                    "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
6785
6786       PreallocMode (Enum)
6787
6788       Preallocation mode of QEMU image file
6789
6790       Values:
6791
6792       "off"
6793           no preallocation
6794
6795       "metadata"
6796           preallocate only for metadata
6797
6798       "falloc"
6799           like "full" preallocation but allocate disk space by
6800           posix_fallocate() rather than writing data.
6801
6802       "full"
6803           preallocate all data by writing it to the device to ensure disk
6804           space is really available. This data may or may not be zero,
6805           depending on the image format and storage.  "full" preallocation
6806           also sets up metadata correctly.
6807
6808       Since: 2.2
6809
6810       BLOCK_WRITE_THRESHOLD  (Event) Emitted when writes on block device
6811       reaches or exceeds the configured write threshold. For thin-provisioned
6812       devices, this means the device should be extended to avoid pausing for
6813       disk exhaustion.  The event is one shot. Once triggered, it needs to be
6814       re-registered with another block-set-write-threshold command.
6815
6816       Arguments:
6817
6818       "node-name: string"
6819           graph node name on which the threshold was exceeded.
6820
6821       "amount-exceeded: int"
6822           amount of data which exceeded the threshold, in bytes.
6823
6824       "write-threshold: int"
6825           last configured threshold, in bytes.
6826
6827       Since: 2.3
6828
6829       block-set-write-threshold  (Command) Change the write threshold for a
6830       block drive. An event will be delivered if a write to this block drive
6831       crosses the configured threshold.  The threshold is an offset, thus
6832       must be non-negative. Default is no write threshold. Setting the
6833       threshold to zero disables it.
6834
6835       This is useful to transparently resize thin-provisioned drives without
6836       the guest OS noticing.
6837
6838       Arguments:
6839
6840       "node-name: string"
6841           graph node name on which the threshold must be set.
6842
6843       "write-threshold: int"
6844           configured threshold for the block device, bytes.  Use 0 to disable
6845           the threshold.
6846
6847       Since: 2.3
6848
6849       Example:
6850
6851               -> { "execute": "block-set-write-threshold",
6852                    "arguments": { "node-name": "mydev",
6853                                   "write-threshold": 17179869184 } }
6854               <- { "return": {} }
6855
6856       x-blockdev-change  (Command) Dynamically reconfigure the block driver
6857       state graph. It can be used to add, remove, insert or replace a graph
6858       node. Currently only the Quorum driver implements this feature to add
6859       or remove its child. This is useful to fix a broken quorum child.
6860
6861       If "node" is specified, it will be inserted under "parent". "child" may
6862       not be specified in this case. If both "parent" and "child" are
6863       specified but "node" is not, "child" will be detached from "parent".
6864
6865       Arguments:
6866
6867       "parent: string"
6868           the id or name of the parent node.
6869
6870       "child: string" (optional)
6871           the name of a child under the given parent node.
6872
6873       "node: string" (optional)
6874           the name of the node that will be added.
6875
6876       Note: this command is experimental, and its API is not stable. It does
6877       not support all kinds of operations, all kinds of children, nor all
6878       block drivers.
6879
6880       FIXME Removing children from a quorum node means introducing gaps in
6881       the child indices. This cannot be represented in the 'children' list of
6882       BlockdevOptionsQuorum, as returned by .bdrv_refresh_filename().
6883
6884       Warning: The data in a new quorum child MUST be consistent with that of
6885       the rest of the array.
6886
6887       Since: 2.7
6888
6889       Example:
6890
6891               1. Add a new node to a quorum
6892               -> { "execute": "blockdev-add",
6893                    "arguments": {
6894                        "driver": "raw",
6895                        "node-name": "new_node",
6896                        "file": { "driver": "file",
6897                                  "filename": "test.raw" } } }
6898               <- { "return": {} }
6899               -> { "execute": "x-blockdev-change",
6900                    "arguments": { "parent": "disk1",
6901                                   "node": "new_node" } }
6902               <- { "return": {} }
6903
6904               2. Delete a quorum's node
6905               -> { "execute": "x-blockdev-change",
6906                    "arguments": { "parent": "disk1",
6907                                   "child": "children.1" } }
6908               <- { "return": {} }
6909
6910       x-blockdev-set-iothread  (Command) Move "node" and its children into
6911       the "iothread".  If "iothread" is null then move "node" and its
6912       children into the main loop.
6913
6914       The node must not be attached to a BlockBackend.
6915
6916       Arguments:
6917
6918       "node-name: string"
6919           the name of the block driver node
6920
6921       "iothread: StrOrNull"
6922           the name of the IOThread object or null for the main loop
6923
6924       "force: boolean" (optional)
6925           true if the node and its children should be moved when a
6926           BlockBackend is already attached
6927
6928       Note: this command is experimental and intended for test cases that
6929       need control over IOThreads only.
6930
6931       Since: 2.12
6932
6933       Example:
6934
6935               1. Move a node into an IOThread
6936               -> { "execute": "x-blockdev-set-iothread",
6937                    "arguments": { "node-name": "disk1",
6938                                   "iothread": "iothread0" } }
6939               <- { "return": {} }
6940
6941               2. Move a node into the main loop
6942               -> { "execute": "x-blockdev-set-iothread",
6943                    "arguments": { "node-name": "disk1",
6944                                   "iothread": null } }
6945               <- { "return": {} }
6946
6947       NbdServerOptions (Object)
6948
6949       Members:
6950
6951       "addr: SocketAddress"
6952           Address on which to listen.
6953
6954       "tls-creds: string" (optional)
6955           ID of the TLS credentials object (since 2.6).
6956
6957       "tls-authz: string" (optional)
6958           ID of the QAuthZ authorization object used to validate the client's
6959           x509 distinguished name. This object is is only resolved at time of
6960           use, so can be deleted and recreated on the fly while the NBD
6961           server is active.  If missing, it will default to denying access
6962           (since 4.0).
6963
6964       Keep this type consistent with the nbd-server-start arguments. The only
6965       intended difference is using SocketAddress instead of
6966       SocketAddressLegacy.
6967
6968       Since: 4.2
6969
6970       nbd-server-start  (Command) Start an NBD server listening on the given
6971       host and port.  Block devices can then be exported using
6972       "nbd-server-add".  The NBD server will present them as named exports;
6973       for example, another QEMU instance could refer to them as
6974       "nbd:HOST:PORT:exportname=NAME".
6975
6976       Arguments:
6977
6978       "addr: SocketAddressLegacy"
6979           Address on which to listen.
6980
6981       "tls-creds: string" (optional)
6982           ID of the TLS credentials object (since 2.6).
6983
6984       "tls-authz: string" (optional)
6985           ID of the QAuthZ authorization object used to validate the client's
6986           x509 distinguished name. This object is is only resolved at time of
6987           use, so can be deleted and recreated on the fly while the NBD
6988           server is active.  If missing, it will default to denying access
6989           (since 4.0).
6990
6991       Returns: error if the server is already running.
6992
6993       Keep this type consistent with the NbdServerOptions type. The only
6994       intended difference is using SocketAddressLegacy instead of
6995       SocketAddress.
6996
6997       Since: 1.3.0
6998
6999       BlockExportNbd (Object)
7000
7001       An NBD block export.
7002
7003       Members:
7004
7005       "device: string"
7006           The device name or node name of the node to be exported
7007
7008       "name: string" (optional)
7009           Export name. If unspecified, the "device" parameter is used as the
7010           export name. (Since 2.12)
7011
7012       "description: string" (optional)
7013           Free-form description of the export, up to 4096 bytes.  (Since 5.0)
7014
7015       "writable: boolean" (optional)
7016           Whether clients should be able to write to the device via the NBD
7017           connection (default false).
7018
7019       "bitmap: string" (optional)
7020           Also export the dirty bitmap reachable from "device", so the NBD
7021           client can use NBD_OPT_SET_META_CONTEXT with
7022           "qemu:dirty-bitmap:NAME" to inspect the bitmap. (since 4.0)
7023
7024       Since: 5.0
7025
7026       nbd-server-add  (Command) Export a block node to QEMU's embedded NBD
7027       server.
7028
7029       Arguments: the members of "BlockExportNbd"
7030
7031       Returns: error if the server is not running, or export with the same
7032       name already exists.
7033
7034       Since: 1.3.0
7035
7036       NbdServerRemoveMode (Enum)
7037
7038       Mode for removing an NBD export.
7039
7040       Values:
7041
7042       "safe"
7043           Remove export if there are no existing connections, fail otherwise.
7044
7045       "hard"
7046           Drop all connections immediately and remove export.
7047
7048       Potential additional modes to be added in the future:
7049
7050       hide: Just hide export from new clients, leave existing connections as
7051       is.  Remove export after all clients are disconnected.
7052
7053       soft: Hide export from new clients, answer with ESHUTDOWN for all
7054       further requests from existing clients.
7055
7056       Since: 2.12
7057
7058       nbd-server-remove  (Command) Remove NBD export by name.
7059
7060       Arguments:
7061
7062       "name: string"
7063           Export name.
7064
7065       "mode: NbdServerRemoveMode" (optional)
7066           Mode of command operation. See "NbdServerRemoveMode" description.
7067           Default is 'safe'.
7068
7069       Returns: error if
7070
7071       -   the server is not running
7072
7073       -   export is not found
7074
7075       -   mode is 'safe' and there are existing connections
7076
7077       Since: 2.12
7078
7079       nbd-server-stop  (Command) Stop QEMU's embedded NBD server, and
7080       unregister all devices previously added via "nbd-server-add".
7081
7082       Since: 1.3.0
7083
7084       BlockExportType (Enum)
7085
7086       An enumeration of block export types
7087
7088       Values:
7089
7090       "nbd"
7091           NBD export
7092
7093       Since: 4.2
7094
7095       BlockExport (Object)
7096
7097       Describes a block export, i.e. how single node should be exported on an
7098       external interface.
7099
7100       Members:
7101
7102       "type: BlockExportType"
7103           Not documented
7104
7105       The members of "BlockExportNbd" when "type" is "nbd"
7106
7107       Since: 4.2
7108
7109       QuorumOpType (Enum)
7110
7111       An enumeration of the quorum operation types
7112
7113       Values:
7114
7115       "read"
7116           read operation
7117
7118       "write"
7119           write operation
7120
7121       "flush"
7122           flush operation
7123
7124       Since: 2.6
7125
7126       QUORUM_FAILURE  (Event) Emitted by the Quorum block driver if it fails
7127       to establish a quorum
7128
7129       Arguments:
7130
7131       "reference: string"
7132           device name if defined else node name
7133
7134       "sector-num: int"
7135           number of the first sector of the failed read operation
7136
7137       "sectors-count: int"
7138           failed read operation sector count
7139
7140       Note: This event is rate-limited.
7141
7142       Since: 2.0
7143
7144       Example:
7145
7146               <- { "event": "QUORUM_FAILURE",
7147                    "data": { "reference": "usr1", "sector-num": 345435, "sectors-count": 5 },
7148                    "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
7149
7150       QUORUM_REPORT_BAD  (Event) Emitted to report a corruption of a Quorum
7151       file
7152
7153       Arguments:
7154
7155       "type: QuorumOpType"
7156           quorum operation type (Since 2.6)
7157
7158       "error: string" (optional)
7159           error message. Only present on failure. This field contains a
7160           human-readable error message. There are no semantics other than
7161           that the block layer reported an error and clients should not try
7162           to interpret the error string.
7163
7164       "node-name: string"
7165           the graph node name of the block driver state
7166
7167       "sector-num: int"
7168           number of the first sector of the failed read operation
7169
7170       "sectors-count: int"
7171           failed read operation sector count
7172
7173       Note: This event is rate-limited.
7174
7175       Since: 2.0
7176
7177       Example:
7178
7179               1. Read operation
7180
7181               { "event": "QUORUM_REPORT_BAD",
7182                    "data": { "node-name": "node0", "sector-num": 345435, "sectors-count": 5,
7183                              "type": "read" },
7184                    "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
7185
7186               2. Flush operation
7187
7188               { "event": "QUORUM_REPORT_BAD",
7189                    "data": { "node-name": "node0", "sector-num": 0, "sectors-count": 2097120,
7190                              "type": "flush", "error": "Broken pipe" },
7191                    "timestamp": { "seconds": 1456406829, "microseconds": 291763 } }
7192
7193       BlockdevSnapshotInternal (Object)
7194
7195       Members:
7196
7197       "device: string"
7198           the device name or node-name of a root node to generate the
7199           snapshot from
7200
7201       "name: string"
7202           the name of the internal snapshot to be created
7203
7204       Notes: In transaction, if "name" is empty, or any snapshot matching
7205       "name" exists, the operation will fail. Only some image formats support
7206       it, for example, qcow2, rbd, and sheepdog.
7207
7208       Since: 1.7
7209
7210       blockdev-snapshot-internal-sync  (Command) Synchronously take an
7211       internal snapshot of a block device, when the format of the image used
7212       supports it. If the name is an empty string, or a snapshot with name
7213       already exists, the operation will fail.
7214
7215       For the arguments, see the documentation of BlockdevSnapshotInternal.
7216
7217       Returns:
7218
7219       -   nothing on success
7220
7221       -   If "device" is not a valid block device, GenericError
7222
7223       -   If any snapshot matching "name" exists, or "name" is empty,
7224           GenericError
7225
7226       -   If the format of the image used does not support it,
7227           BlockFormatFeatureNotSupported
7228
7229       Since: 1.7
7230
7231       Example:
7232
7233               -> { "execute": "blockdev-snapshot-internal-sync",
7234                    "arguments": { "device": "ide-hd0",
7235                                   "name": "snapshot0" }
7236                  }
7237               <- { "return": {} }
7238
7239       blockdev-snapshot-delete-internal-sync  (Command) Synchronously delete
7240       an internal snapshot of a block device, when the format of the image
7241       used support it. The snapshot is identified by name or id or both. One
7242       of the name or id is required. Return SnapshotInfo for the successfully
7243       deleted snapshot.
7244
7245       Arguments:
7246
7247       "device: string"
7248           the device name or node-name of a root node to delete the snapshot
7249           from
7250
7251       "id: string" (optional)
7252           optional the snapshot's ID to be deleted
7253
7254       "name: string" (optional)
7255           optional the snapshot's name to be deleted
7256
7257       Returns:
7258
7259       -   SnapshotInfo on success
7260
7261       -   If "device" is not a valid block device, GenericError
7262
7263       -   If snapshot not found, GenericError
7264
7265       -   If the format of the image used does not support it,
7266           BlockFormatFeatureNotSupported
7267
7268       -   If "id" and "name" are both not specified, GenericError
7269
7270       Since: 1.7
7271
7272       Example:
7273
7274               -> { "execute": "blockdev-snapshot-delete-internal-sync",
7275                    "arguments": { "device": "ide-hd0",
7276                                   "name": "snapshot0" }
7277                  }
7278               <- { "return": {
7279                                  "id": "1",
7280                                  "name": "snapshot0",
7281                                  "vm-state-size": 0,
7282                                  "date-sec": 1000012,
7283                                  "date-nsec": 10,
7284                                  "vm-clock-sec": 100,
7285                                  "vm-clock-nsec": 20
7286                    }
7287                  }
7288
7289       Additional block stuff (VM related)
7290
7291       BiosAtaTranslation (Enum)
7292
7293       Policy that BIOS should use to interpret cylinder/head/sector
7294       addresses.  Note that Bochs BIOS and SeaBIOS will not actually
7295       translate logical CHS to physical; instead, they will use logical block
7296       addressing.
7297
7298       Values:
7299
7300       "auto"
7301           If cylinder/heads/sizes are passed, choose between none and LBA
7302           depending on the size of the disk.  If they are not passed, choose
7303           none if QEMU can guess that the disk had 16 or fewer heads, large
7304           if QEMU can guess that the disk had 131072 or fewer tracks across
7305           all heads (i.e. cylinders*heads<131072), otherwise LBA.
7306
7307       "none"
7308           The physical disk geometry is equal to the logical geometry.
7309
7310       "lba"
7311           Assume 63 sectors per track and one of 16, 32, 64, 128 or 255 heads
7312           (if fewer than 255 are enough to cover the whole disk with 1024
7313           cylinders/head).  The number of cylinders/head is then computed
7314           based on the number of sectors and heads.
7315
7316       "large"
7317           The number of cylinders per head is scaled down to 1024 by
7318           correspondingly scaling up the number of heads.
7319
7320       "rechs"
7321           Same as "large", but first convert a 16-head geometry to 15-head,
7322           by proportionally scaling up the number of cylinders/head.
7323
7324       Since: 2.0
7325
7326       FloppyDriveType (Enum)
7327
7328       Type of Floppy drive to be emulated by the Floppy Disk Controller.
7329
7330       Values:
7331
7332       144 1.44MB 3.5" drive
7333
7334       288 2.88MB 3.5" drive
7335
7336       120 1.2MB 5.25" drive
7337
7338       "none"
7339           No drive connected
7340
7341       "auto"
7342           Automatically determined by inserted media at boot
7343
7344       Since: 2.6
7345
7346       PRManagerInfo (Object)
7347
7348       Information about a persistent reservation manager
7349
7350       Members:
7351
7352       "id: string"
7353           the identifier of the persistent reservation manager
7354
7355       "connected: boolean"
7356           true if the persistent reservation manager is connected to the
7357           underlying storage or helper
7358
7359       Since: 3.0
7360
7361       query-pr-managers  (Command) Returns a list of information about each
7362       persistent reservation manager.
7363
7364       Returns: a list of "PRManagerInfo" for each persistent reservation
7365       manager
7366
7367       Since: 3.0
7368
7369       eject  (Command) Ejects the medium from a removable drive.
7370
7371       Arguments:
7372
7373       "device: string" (optional)
7374           Block device name
7375
7376       "id: string" (optional)
7377           The name or QOM path of the guest device (since: 2.8)
7378
7379       "force: boolean" (optional)
7380           If true, eject regardless of whether the drive is locked.  If not
7381           specified, the default value is false.
7382
7383       Features:
7384
7385       "deprecated"
7386           Member "device" is deprecated.  Use "id" instead.
7387
7388       Returns:
7389
7390       -   Nothing on success
7391
7392       -   If "device" is not a valid block device, DeviceNotFound
7393
7394       Notes: Ejecting a device with no media results in success
7395
7396       Since: 0.14.0
7397
7398       Example:
7399
7400               -> { "execute": "eject", "arguments": { "id": "ide1-0-1" } }
7401               <- { "return": {} }
7402
7403       blockdev-open-tray  (Command) Opens a block device's tray. If there is
7404       a block driver state tree inserted as a medium, it will become
7405       inaccessible to the guest (but it will remain associated to the block
7406       device, so closing the tray will make it accessible again).
7407
7408       If the tray was already open before, this will be a no-op.
7409
7410       Once the tray opens, a DEVICE_TRAY_MOVED event is emitted. There are
7411       cases in which no such event will be generated, these include:
7412
7413       -   if the guest has locked the tray, "force" is false and the guest
7414           does not respond to the eject request
7415
7416       -   if the BlockBackend denoted by "device" does not have a guest
7417           device attached to it
7418
7419       -   if the guest device does not have an actual tray
7420
7421       Arguments:
7422
7423       "device: string" (optional)
7424           Block device name
7425
7426       "id: string" (optional)
7427           The name or QOM path of the guest device (since: 2.8)
7428
7429       "force: boolean" (optional)
7430           if false (the default), an eject request will be sent to the guest
7431           if it has locked the tray (and the tray will not be opened
7432           immediately); if true, the tray will be opened regardless of
7433           whether it is locked
7434
7435       Features:
7436
7437       "deprecated"
7438           Member "device" is deprecated.  Use "id" instead.
7439
7440       Since: 2.5
7441
7442       Example:
7443
7444               -> { "execute": "blockdev-open-tray",
7445                    "arguments": { "id": "ide0-1-0" } }
7446
7447               <- { "timestamp": { "seconds": 1418751016,
7448                                   "microseconds": 716996 },
7449                    "event": "DEVICE_TRAY_MOVED",
7450                    "data": { "device": "ide1-cd0",
7451                              "id": "ide0-1-0",
7452                              "tray-open": true } }
7453
7454               <- { "return": {} }
7455
7456       blockdev-close-tray  (Command) Closes a block device's tray. If there
7457       is a block driver state tree associated with the block device (which is
7458       currently ejected), that tree will be loaded as the medium.
7459
7460       If the tray was already closed before, this will be a no-op.
7461
7462       Arguments:
7463
7464       "device: string" (optional)
7465           Block device name
7466
7467       "id: string" (optional)
7468           The name or QOM path of the guest device (since: 2.8)
7469
7470       Features:
7471
7472       "deprecated"
7473           Member "device" is deprecated.  Use "id" instead.
7474
7475       Since: 2.5
7476
7477       Example:
7478
7479               -> { "execute": "blockdev-close-tray",
7480                    "arguments": { "id": "ide0-1-0" } }
7481
7482               <- { "timestamp": { "seconds": 1418751345,
7483                                   "microseconds": 272147 },
7484                    "event": "DEVICE_TRAY_MOVED",
7485                    "data": { "device": "ide1-cd0",
7486                              "id": "ide0-1-0",
7487                              "tray-open": false } }
7488
7489               <- { "return": {} }
7490
7491       blockdev-remove-medium  (Command) Removes a medium (a block driver
7492       state tree) from a block device. That block device's tray must
7493       currently be open (unless there is no attached guest device).
7494
7495       If the tray is open and there is no medium inserted, this will be a no-
7496       op.
7497
7498       Arguments:
7499
7500       "id: string"
7501           The name or QOM path of the guest device
7502
7503       Since: 2.12
7504
7505       Example:
7506
7507               -> { "execute": "blockdev-remove-medium",
7508                    "arguments": { "id": "ide0-1-0" } }
7509
7510               <- { "error": { "class": "GenericError",
7511                               "desc": "Tray of device 'ide0-1-0' is not open" } }
7512
7513               -> { "execute": "blockdev-open-tray",
7514                    "arguments": { "id": "ide0-1-0" } }
7515
7516               <- { "timestamp": { "seconds": 1418751627,
7517                                   "microseconds": 549958 },
7518                    "event": "DEVICE_TRAY_MOVED",
7519                    "data": { "device": "ide1-cd0",
7520                              "id": "ide0-1-0",
7521                              "tray-open": true } }
7522
7523               <- { "return": {} }
7524
7525               -> { "execute": "blockdev-remove-medium",
7526                    "arguments": { "id": "ide0-1-0" } }
7527
7528               <- { "return": {} }
7529
7530       blockdev-insert-medium  (Command) Inserts a medium (a block driver
7531       state tree) into a block device. That block device's tray must
7532       currently be open (unless there is no attached guest device) and there
7533       must be no medium inserted already.
7534
7535       Arguments:
7536
7537       "id: string"
7538           The name or QOM path of the guest device
7539
7540       "node-name: string"
7541           name of a node in the block driver state graph
7542
7543       Since: 2.12
7544
7545       Example:
7546
7547               -> { "execute": "blockdev-add",
7548                    "arguments": {
7549                        "node-name": "node0",
7550                        "driver": "raw",
7551                        "file": { "driver": "file",
7552                                  "filename": "fedora.iso" } } }
7553               <- { "return": {} }
7554
7555               -> { "execute": "blockdev-insert-medium",
7556                    "arguments": { "id": "ide0-1-0",
7557                                   "node-name": "node0" } }
7558
7559               <- { "return": {} }
7560
7561       BlockdevChangeReadOnlyMode (Enum)
7562
7563       Specifies the new read-only mode of a block device subject to the
7564       "blockdev-change-medium" command.
7565
7566       Values:
7567
7568       "retain"
7569           Retains the current read-only mode
7570
7571       "read-only"
7572           Makes the device read-only
7573
7574       "read-write"
7575           Makes the device writable
7576
7577       Since: 2.3
7578
7579       blockdev-change-medium  (Command) Changes the medium inserted into a
7580       block device by ejecting the current medium and loading a new image
7581       file which is inserted as the new medium (this command combines
7582       blockdev-open-tray, blockdev-remove-medium, blockdev-insert-medium and
7583       blockdev-close-tray).
7584
7585       Arguments:
7586
7587       "device: string" (optional)
7588           Block device name
7589
7590       "id: string" (optional)
7591           The name or QOM path of the guest device (since: 2.8)
7592
7593       "filename: string"
7594           filename of the new image to be loaded
7595
7596       "format: string" (optional)
7597           format to open the new image with (defaults to the probed format)
7598
7599       "read-only-mode: BlockdevChangeReadOnlyMode" (optional)
7600           change the read-only mode of the device; defaults to 'retain'
7601
7602       Features:
7603
7604       "deprecated"
7605           Member "device" is deprecated.  Use "id" instead.
7606
7607       Since: 2.5
7608
7609       Examples:
7610
7611               1. Change a removable medium
7612
7613               -> { "execute": "blockdev-change-medium",
7614                    "arguments": { "id": "ide0-1-0",
7615                                   "filename": "/srv/images/Fedora-12-x86_64-DVD.iso",
7616                                   "format": "raw" } }
7617               <- { "return": {} }
7618
7619               2. Load a read-only medium into a writable drive
7620
7621               -> { "execute": "blockdev-change-medium",
7622                    "arguments": { "id": "floppyA",
7623                                   "filename": "/srv/images/ro.img",
7624                                   "format": "raw",
7625                                   "read-only-mode": "retain" } }
7626
7627               <- { "error":
7628                    { "class": "GenericError",
7629                      "desc": "Could not open '/srv/images/ro.img': Permission denied" } }
7630
7631               -> { "execute": "blockdev-change-medium",
7632                    "arguments": { "id": "floppyA",
7633                                   "filename": "/srv/images/ro.img",
7634                                   "format": "raw",
7635                                   "read-only-mode": "read-only" } }
7636
7637               <- { "return": {} }
7638
7639       DEVICE_TRAY_MOVED  (Event) Emitted whenever the tray of a removable
7640       device is moved by the guest or by HMP/QMP commands
7641
7642       Arguments:
7643
7644       "device: string"
7645           Block device name. This is always present for compatibility
7646           reasons, but it can be empty ("") if the image does not have a
7647           device name associated.
7648
7649       "id: string"
7650           The name or QOM path of the guest device (since 2.8)
7651
7652       "tray-open: boolean"
7653           true if the tray has been opened or false if it has been closed
7654
7655       Since: 1.1
7656
7657       Example:
7658
7659               <- { "event": "DEVICE_TRAY_MOVED",
7660                    "data": { "device": "ide1-cd0",
7661                              "id": "/machine/unattached/device[22]",
7662                              "tray-open": true
7663                    },
7664                    "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
7665
7666       PR_MANAGER_STATUS_CHANGED  (Event) Emitted whenever the connected
7667       status of a persistent reservation manager changes.
7668
7669       Arguments:
7670
7671       "id: string"
7672           The id of the PR manager object
7673
7674       "connected: boolean"
7675           true if the PR manager is connected to a backend
7676
7677       Since: 3.0
7678
7679       Example:
7680
7681               <- { "event": "PR_MANAGER_STATUS_CHANGED",
7682                    "data": { "id": "pr-helper0",
7683                              "connected": true
7684                    },
7685                    "timestamp": { "seconds": 1519840375, "microseconds": 450486 } }
7686
7687       block_set_io_throttle  (Command) Change I/O throttle limits for a block
7688       drive.
7689
7690       Since QEMU 2.4, each device with I/O limits is member of a throttle
7691       group.
7692
7693       If two or more devices are members of the same group, the limits will
7694       apply to the combined I/O of the whole group in a round-robin fashion.
7695       Therefore, setting new I/O limits to a device will affect the whole
7696       group.
7697
7698       The name of the group can be specified using the 'group' parameter.  If
7699       the parameter is unset, it is assumed to be the current group of that
7700       device. If it's not in any group yet, the name of the device will be
7701       used as the name for its group.
7702
7703       The 'group' parameter can also be used to move a device to a different
7704       group. In this case the limits specified in the parameters will be
7705       applied to the new group only.
7706
7707       I/O limits can be disabled by setting all of them to 0. In this case
7708       the device will be removed from its group and the rest of its members
7709       will not be affected. The 'group' parameter is ignored.
7710
7711       Arguments: the members of "BlockIOThrottle"
7712
7713       Returns:
7714
7715       -   Nothing on success
7716
7717       -   If "device" is not a valid block device, DeviceNotFound
7718
7719       Since: 1.1
7720
7721       Example:
7722
7723               -> { "execute": "block_set_io_throttle",
7724                    "arguments": { "id": "virtio-blk-pci0/virtio-backend",
7725                                   "bps": 0,
7726                                   "bps_rd": 0,
7727                                   "bps_wr": 0,
7728                                   "iops": 512,
7729                                   "iops_rd": 0,
7730                                   "iops_wr": 0,
7731                                   "bps_max": 0,
7732                                   "bps_rd_max": 0,
7733                                   "bps_wr_max": 0,
7734                                   "iops_max": 0,
7735                                   "iops_rd_max": 0,
7736                                   "iops_wr_max": 0,
7737                                   "bps_max_length": 0,
7738                                   "iops_size": 0 } }
7739               <- { "return": {} }
7740
7741               -> { "execute": "block_set_io_throttle",
7742                    "arguments": { "id": "ide0-1-0",
7743                                   "bps": 1000000,
7744                                   "bps_rd": 0,
7745                                   "bps_wr": 0,
7746                                   "iops": 0,
7747                                   "iops_rd": 0,
7748                                   "iops_wr": 0,
7749                                   "bps_max": 8000000,
7750                                   "bps_rd_max": 0,
7751                                   "bps_wr_max": 0,
7752                                   "iops_max": 0,
7753                                   "iops_rd_max": 0,
7754                                   "iops_wr_max": 0,
7755                                   "bps_max_length": 60,
7756                                   "iops_size": 0 } }
7757               <- { "return": {} }
7758
7759       block-latency-histogram-set  (Command) Manage read, write and flush
7760       latency histograms for the device.
7761
7762       If only "id" parameter is specified, remove all present latency
7763       histograms for the device. Otherwise, add/reset some of (or all)
7764       latency histograms.
7765
7766       Arguments:
7767
7768       "id: string"
7769           The name or QOM path of the guest device.
7770
7771       "boundaries: array of int" (optional)
7772           list of interval boundary values (see description in
7773           BlockLatencyHistogramInfo definition). If specified, all latency
7774           histograms are removed, and empty ones created for all io types
7775           with intervals corresponding to "boundaries" (except for io types,
7776           for which specific boundaries are set through the following
7777           parameters).
7778
7779       "boundaries-read: array of int" (optional)
7780           list of interval boundary values for read latency histogram. If
7781           specified, old read latency histogram is removed, and empty one
7782           created with intervals corresponding to "boundaries-read". The
7783           parameter has higher priority then "boundaries".
7784
7785       "boundaries-write: array of int" (optional)
7786           list of interval boundary values for write latency histogram.
7787
7788       "boundaries-flush: array of int" (optional)
7789           list of interval boundary values for flush latency histogram.
7790
7791       Returns: error if device is not found or any boundary arrays are
7792       invalid.
7793
7794       Since: 4.0
7795
7796       Example:
7797
7798               set new histograms for all io types with intervals
7799               [0, 10), [10, 50), [50, 100), [100, +inf):
7800
7801               -> { "execute": "block-latency-histogram-set",
7802                    "arguments": { "id": "drive0",
7803                                   "boundaries": [10, 50, 100] } }
7804               <- { "return": {} }
7805
7806       Example:
7807
7808               set new histogram only for write, other histograms will remain
7809               not changed (or not created):
7810
7811               -> { "execute": "block-latency-histogram-set",
7812                    "arguments": { "id": "drive0",
7813                                   "boundaries-write": [10, 50, 100] } }
7814               <- { "return": {} }
7815
7816       Example:
7817
7818               set new histograms with the following intervals:
7819                 read, flush: [0, 10), [10, 50), [50, 100), [100, +inf)
7820                 write: [0, 1000), [1000, 5000), [5000, +inf)
7821
7822               -> { "execute": "block-latency-histogram-set",
7823                    "arguments": { "id": "drive0",
7824                                   "boundaries": [10, 50, 100],
7825                                   "boundaries-write": [1000, 5000] } }
7826               <- { "return": {} }
7827
7828       Example:
7829
7830               remove all latency histograms:
7831
7832               -> { "execute": "block-latency-histogram-set",
7833                    "arguments": { "id": "drive0" } }
7834               <- { "return": {} }
7835
7836   Character devices
7837       ChardevInfo (Object)
7838
7839       Information about a character device.
7840
7841       Members:
7842
7843       "label: string"
7844           the label of the character device
7845
7846       "filename: string"
7847           the filename of the character device
7848
7849       "frontend-open: boolean"
7850           shows whether the frontend device attached to this backend (eg.
7851           with the chardev=... option) is in open or closed state (since 2.1)
7852
7853       Notes: "filename" is encoded using the QEMU command line character
7854       device encoding.  See the QEMU man page for details.
7855
7856       Since: 0.14.0
7857
7858       query-chardev  (Command) Returns information about current character
7859       devices.
7860
7861       Returns: a list of "ChardevInfo"
7862
7863       Since: 0.14.0
7864
7865       Example:
7866
7867               -> { "execute": "query-chardev" }
7868               <- {
7869                     "return": [
7870                        {
7871                           "label": "charchannel0",
7872                           "filename": "unix:/var/lib/libvirt/qemu/seabios.rhel6.agent,server",
7873                           "frontend-open": false
7874                        },
7875                        {
7876                           "label": "charmonitor",
7877                           "filename": "unix:/var/lib/libvirt/qemu/seabios.rhel6.monitor,server",
7878                           "frontend-open": true
7879                        },
7880                        {
7881                           "label": "charserial0",
7882                           "filename": "pty:/dev/pts/2",
7883                           "frontend-open": true
7884                        }
7885                     ]
7886                  }
7887
7888       ChardevBackendInfo (Object)
7889
7890       Information about a character device backend
7891
7892       Members:
7893
7894       "name: string"
7895           The backend name
7896
7897       Since: 2.0
7898
7899       query-chardev-backends  (Command) Returns information about character
7900       device backends.
7901
7902       Returns: a list of "ChardevBackendInfo"
7903
7904       Since: 2.0
7905
7906       Example:
7907
7908               -> { "execute": "query-chardev-backends" }
7909               <- {
7910                     "return":[
7911                        {
7912                           "name":"udp"
7913                        },
7914                        {
7915                           "name":"tcp"
7916                        },
7917                        {
7918                           "name":"unix"
7919                        },
7920                        {
7921                           "name":"spiceport"
7922                        }
7923                     ]
7924                  }
7925
7926       DataFormat (Enum)
7927
7928       An enumeration of data format.
7929
7930       Values:
7931
7932       "utf8"
7933           Data is a UTF-8 string (RFC 3629)
7934
7935       "base64"
7936           Data is Base64 encoded binary (RFC 3548)
7937
7938       Since: 1.4
7939
7940       ringbuf-write  (Command) Write to a ring buffer character device.
7941
7942       Arguments:
7943
7944       "device: string"
7945           the ring buffer character device name
7946
7947       "data: string"
7948           data to write
7949
7950       "format: DataFormat" (optional)
7951           data encoding (default 'utf8').
7952
7953           -   base64: data must be base64 encoded text.  Its binary decoding
7954               gets written.
7955
7956           -   utf8: data's UTF-8 encoding is written
7957
7958           -   data itself is always Unicode regardless of format, like any
7959               other string.
7960
7961       Returns: Nothing on success
7962
7963       Since: 1.4
7964
7965       Example:
7966
7967               -> { "execute": "ringbuf-write",
7968                    "arguments": { "device": "foo",
7969                                   "data": "abcdefgh",
7970                                   "format": "utf8" } }
7971               <- { "return": {} }
7972
7973       ringbuf-read  (Command) Read from a ring buffer character device.
7974
7975       Arguments:
7976
7977       "device: string"
7978           the ring buffer character device name
7979
7980       "size: int"
7981           how many bytes to read at most
7982
7983       "format: DataFormat" (optional)
7984           data encoding (default 'utf8').
7985
7986           -   base64: the data read is returned in base64 encoding.
7987
7988           -   utf8: the data read is interpreted as UTF-8.  Bug: can screw up
7989               when the buffer contains invalid UTF-8 sequences, NUL
7990               characters, after the ring buffer lost data, and when reading
7991               stops because the size limit is reached.
7992
7993           -   The return value is always Unicode regardless of format, like
7994               any other string.
7995
7996       Returns: data read from the device
7997
7998       Since: 1.4
7999
8000       Example:
8001
8002               -> { "execute": "ringbuf-read",
8003                    "arguments": { "device": "foo",
8004                                   "size": 1000,
8005                                   "format": "utf8" } }
8006               <- { "return": "abcdefgh" }
8007
8008       ChardevCommon (Object)
8009
8010       Configuration shared across all chardev backends
8011
8012       Members:
8013
8014       "logfile: string" (optional)
8015           The name of a logfile to save output
8016
8017       "logappend: boolean" (optional)
8018           true to append instead of truncate (default to false to truncate)
8019
8020       Since: 2.6
8021
8022       ChardevFile (Object)
8023
8024       Configuration info for file chardevs.
8025
8026       Members:
8027
8028       "in: string" (optional)
8029           The name of the input file
8030
8031       "out: string"
8032           The name of the output file
8033
8034       "append: boolean" (optional)
8035           Open the file in append mode (default false to truncate) (Since
8036           2.6)
8037
8038       The members of "ChardevCommon"
8039
8040       Since: 1.4
8041
8042       ChardevHostdev (Object)
8043
8044       Configuration info for device and pipe chardevs.
8045
8046       Members:
8047
8048       "device: string"
8049           The name of the special file for the device, i.e. /dev/ttyS0 on
8050           Unix or COM1: on Windows
8051
8052       The members of "ChardevCommon"
8053
8054       Since: 1.4
8055
8056       ChardevSocket (Object)
8057
8058       Configuration info for (stream) socket chardevs.
8059
8060       Members:
8061
8062       "addr: SocketAddressLegacy"
8063           socket address to listen on (server=true) or connect to
8064           (server=false)
8065
8066       "tls-creds: string" (optional)
8067           the ID of the TLS credentials object (since 2.6)
8068
8069       "tls-authz: string" (optional)
8070           the ID of the QAuthZ authorization object against which the
8071           client's x509 distinguished name will be validated. This object is
8072           only resolved at time of use, so can be deleted and recreated on
8073           the fly while the chardev server is active.  If missing, it will
8074           default to denying access (since 4.0)
8075
8076       "server: boolean" (optional)
8077           create server socket (default: true)
8078
8079       "wait: boolean" (optional)
8080           wait for incoming connection on server sockets (default: false).
8081           Silently ignored with server: false.  This use is deprecated.
8082
8083       "nodelay: boolean" (optional)
8084           set TCP_NODELAY socket option (default: false)
8085
8086       "telnet: boolean" (optional)
8087           enable telnet protocol on server sockets (default: false)
8088
8089       "tn3270: boolean" (optional)
8090           enable tn3270 protocol on server sockets (default: false) (Since:
8091           2.10)
8092
8093       "websocket: boolean" (optional)
8094           enable websocket protocol on server sockets (default: false)
8095           (Since: 3.1)
8096
8097       "reconnect: int" (optional)
8098           For a client socket, if a socket is disconnected, then attempt a
8099           reconnect after the given number of seconds.  Setting this to zero
8100           disables this function. (default: 0) (Since: 2.2)
8101
8102       The members of "ChardevCommon"
8103
8104       Since: 1.4
8105
8106       ChardevUdp (Object)
8107
8108       Configuration info for datagram socket chardevs.
8109
8110       Members:
8111
8112       "remote: SocketAddressLegacy"
8113           remote address
8114
8115       "local: SocketAddressLegacy" (optional)
8116           local address
8117
8118       The members of "ChardevCommon"
8119
8120       Since: 1.5
8121
8122       ChardevMux (Object)
8123
8124       Configuration info for mux chardevs.
8125
8126       Members:
8127
8128       "chardev: string"
8129           name of the base chardev.
8130
8131       The members of "ChardevCommon"
8132
8133       Since: 1.5
8134
8135       ChardevStdio (Object)
8136
8137       Configuration info for stdio chardevs.
8138
8139       Members:
8140
8141       "signal: boolean" (optional)
8142           Allow signals (such as SIGINT triggered by ^C) be delivered to
8143           qemu.  Default: true in -nographic mode, false otherwise.
8144
8145       The members of "ChardevCommon"
8146
8147       Since: 1.5
8148
8149       ChardevSpiceChannel (Object)
8150
8151       Configuration info for spice vm channel chardevs.
8152
8153       Members:
8154
8155       "type: string"
8156           kind of channel (for example vdagent).
8157
8158       The members of "ChardevCommon"
8159
8160       Since: 1.5
8161
8162       If: "defined(CONFIG_SPICE)"
8163
8164       ChardevSpicePort (Object)
8165
8166       Configuration info for spice port chardevs.
8167
8168       Members:
8169
8170       "fqdn: string"
8171           name of the channel (see docs/spice-port-fqdn.txt)
8172
8173       The members of "ChardevCommon"
8174
8175       Since: 1.5
8176
8177       If: "defined(CONFIG_SPICE)"
8178
8179       ChardevVC (Object)
8180
8181       Configuration info for virtual console chardevs.
8182
8183       Members:
8184
8185       "width: int" (optional)
8186           console width,  in pixels
8187
8188       "height: int" (optional)
8189           console height, in pixels
8190
8191       "cols: int" (optional)
8192           console width,  in chars
8193
8194       "rows: int" (optional)
8195           console height, in chars
8196
8197       The members of "ChardevCommon"
8198
8199       Since: 1.5
8200
8201       ChardevRingbuf (Object)
8202
8203       Configuration info for ring buffer chardevs.
8204
8205       Members:
8206
8207       "size: int" (optional)
8208           ring buffer size, must be power of two, default is 65536
8209
8210       The members of "ChardevCommon"
8211
8212       Since: 1.5
8213
8214       ChardevBackend (Object)
8215
8216       Configuration info for the new chardev backend.
8217
8218       Members:
8219
8220       "type"
8221           One of "file", "serial", "parallel", "pipe", "socket", "udp",
8222           "pty", "null", "mux", "msmouse", "wctablet", "braille", "testdev",
8223           "stdio", "console", "spicevmc", "spiceport", "vc", "ringbuf",
8224           "memory"
8225
8226       "data: ChardevFile" when "type" is "file"
8227       "data: ChardevHostdev" when "type" is "serial"
8228       "data: ChardevHostdev" when "type" is "parallel"
8229       "data: ChardevHostdev" when "type" is "pipe"
8230       "data: ChardevSocket" when "type" is "socket"
8231       "data: ChardevUdp" when "type" is "udp"
8232       "data: ChardevCommon" when "type" is "pty"
8233       "data: ChardevCommon" when "type" is "null"
8234       "data: ChardevMux" when "type" is "mux"
8235       "data: ChardevCommon" when "type" is "msmouse"
8236       "data: ChardevCommon" when "type" is "wctablet"
8237       "data: ChardevCommon" when "type" is "braille"
8238       "data: ChardevCommon" when "type" is "testdev"
8239       "data: ChardevStdio" when "type" is "stdio"
8240       "data: ChardevCommon" when "type" is "console"
8241       "data: ChardevSpiceChannel" when "type" is "spicevmc" (If:
8242       "defined(CONFIG_SPICE)")
8243       "data: ChardevSpicePort" when "type" is "spiceport" (If:
8244       "defined(CONFIG_SPICE)")
8245       "data: ChardevVC" when "type" is "vc"
8246       "data: ChardevRingbuf" when "type" is "ringbuf"
8247       "data: ChardevRingbuf" when "type" is "memory"
8248
8249       Since: 1.4 (testdev since 2.2, wctablet since 2.9)
8250
8251       ChardevReturn (Object)
8252
8253       Return info about the chardev backend just created.
8254
8255       Members:
8256
8257       "pty: string" (optional)
8258           name of the slave pseudoterminal device, present if and only if a
8259           chardev of type 'pty' was created
8260
8261       Since: 1.4
8262
8263       chardev-add  (Command) Add a character device backend
8264
8265       Arguments:
8266
8267       "id: string"
8268           the chardev's ID, must be unique
8269
8270       "backend: ChardevBackend"
8271           backend type and parameters
8272
8273       Returns: ChardevReturn.
8274
8275       Since: 1.4
8276
8277       Example:
8278
8279               -> { "execute" : "chardev-add",
8280                    "arguments" : { "id" : "foo",
8281                                    "backend" : { "type" : "null", "data" : {} } } }
8282               <- { "return": {} }
8283
8284               -> { "execute" : "chardev-add",
8285                    "arguments" : { "id" : "bar",
8286                                    "backend" : { "type" : "file",
8287                                                  "data" : { "out" : "/tmp/bar.log" } } } }
8288               <- { "return": {} }
8289
8290               -> { "execute" : "chardev-add",
8291                    "arguments" : { "id" : "baz",
8292                                    "backend" : { "type" : "pty", "data" : {} } } }
8293               <- { "return": { "pty" : "/dev/pty/42" } }
8294
8295       chardev-change  (Command) Change a character device backend
8296
8297       Arguments:
8298
8299       "id: string"
8300           the chardev's ID, must exist
8301
8302       "backend: ChardevBackend"
8303           new backend type and parameters
8304
8305       Returns: ChardevReturn.
8306
8307       Since: 2.10
8308
8309       Example:
8310
8311               -> { "execute" : "chardev-change",
8312                    "arguments" : { "id" : "baz",
8313                                    "backend" : { "type" : "pty", "data" : {} } } }
8314               <- { "return": { "pty" : "/dev/pty/42" } }
8315
8316               -> {"execute" : "chardev-change",
8317                   "arguments" : {
8318                       "id" : "charchannel2",
8319                       "backend" : {
8320                           "type" : "socket",
8321                           "data" : {
8322                               "addr" : {
8323                                   "type" : "unix" ,
8324                                   "data" : {
8325                                       "path" : "/tmp/charchannel2.socket"
8326                                   }
8327                                },
8328                                "server" : true,
8329                                "wait" : false }}}}
8330               <- {"return": {}}
8331
8332       chardev-remove  (Command) Remove a character device backend
8333
8334       Arguments:
8335
8336       "id: string"
8337           the chardev's ID, must exist and not be in use
8338
8339       Returns: Nothing on success
8340
8341       Since: 1.4
8342
8343       Example:
8344
8345               -> { "execute": "chardev-remove", "arguments": { "id" : "foo" } }
8346               <- { "return": {} }
8347
8348       chardev-send-break  (Command) Send a break to a character device
8349
8350       Arguments:
8351
8352       "id: string"
8353           the chardev's ID, must exist
8354
8355       Returns: Nothing on success
8356
8357       Since: 2.10
8358
8359       Example:
8360
8361               -> { "execute": "chardev-send-break", "arguments": { "id" : "foo" } }
8362               <- { "return": {} }
8363
8364       VSERPORT_CHANGE  (Event) Emitted when the guest opens or closes a
8365       virtio-serial port.
8366
8367       Arguments:
8368
8369       "id: string"
8370           device identifier of the virtio-serial port
8371
8372       "open: boolean"
8373           true if the guest has opened the virtio-serial port
8374
8375       Since: 2.1
8376
8377       Example:
8378
8379               <- { "event": "VSERPORT_CHANGE",
8380                    "data": { "id": "channel0", "open": true },
8381                    "timestamp": { "seconds": 1401385907, "microseconds": 422329 } }
8382
8383   Dump guest memory
8384       DumpGuestMemoryFormat (Enum)
8385
8386       An enumeration of guest-memory-dump's format.
8387
8388       Values:
8389
8390       "elf"
8391           elf format
8392
8393       "kdump-zlib"
8394           kdump-compressed format with zlib-compressed
8395
8396       "kdump-lzo"
8397           kdump-compressed format with lzo-compressed
8398
8399       "kdump-snappy"
8400           kdump-compressed format with snappy-compressed
8401
8402       "win-dmp"
8403           Windows full crashdump format, can be used instead of ELF
8404           converting (since 2.13)
8405
8406       Since: 2.0
8407
8408       dump-guest-memory  (Command) Dump guest's memory to vmcore. It is a
8409       synchronous operation that can take very long depending on the amount
8410       of guest memory.
8411
8412       Arguments:
8413
8414       "paging: boolean"
8415           if true, do paging to get guest's memory mapping. This allows using
8416           gdb to process the core file.
8417
8418           IMPORTANT: this option can make QEMU allocate several gigabytes of
8419           RAM. This can happen for a large guest, or a malicious guest
8420           pretending to be large.
8421
8422           Also, paging=true has the following limitations:
8423
8424           1.  The guest may be in a catastrophic state or can have corrupted
8425               memory, which cannot be trusted
8426
8427           2.  The guest can be in real-mode even if paging is enabled. For
8428               example, the guest uses ACPI to sleep, and ACPI sleep state
8429               goes in real-mode
8430
8431           3.  Currently only supported on i386 and x86_64.
8432
8433       "protocol: string"
8434           the filename or file descriptor of the vmcore. The supported
8435           protocols are:
8436
8437           1.  file: the protocol starts with "file:", and the following
8438               string is the file's path.
8439
8440           2.  fd: the protocol starts with "fd:", and the following string is
8441               the fd's name.
8442
8443       "detach: boolean" (optional)
8444           if true, QMP will return immediately rather than waiting for the
8445           dump to finish. The user can track progress using "query-dump".
8446           (since 2.6).
8447
8448       "begin: int" (optional)
8449           if specified, the starting physical address.
8450
8451       "length: int" (optional)
8452           if specified, the memory size, in bytes. If you don't want to dump
8453           all guest's memory, please specify the start "begin" and "length"
8454
8455       "format: DumpGuestMemoryFormat" (optional)
8456           if specified, the format of guest memory dump. But non-elf format
8457           is conflict with paging and filter, ie. "paging", "begin" and
8458           "length" is not allowed to be specified with non-elf "format" at
8459           the same time (since 2.0)
8460
8461       Note: All boolean arguments default to false
8462
8463       Returns: nothing on success
8464
8465       Since: 1.2
8466
8467       Example:
8468
8469               -> { "execute": "dump-guest-memory",
8470                    "arguments": { "protocol": "fd:dump" } }
8471               <- { "return": {} }
8472
8473       DumpStatus (Enum)
8474
8475       Describe the status of a long-running background guest memory dump.
8476
8477       Values:
8478
8479       "none"
8480           no dump-guest-memory has started yet.
8481
8482       "active"
8483           there is one dump running in background.
8484
8485       "completed"
8486           the last dump has finished successfully.
8487
8488       "failed"
8489           the last dump has failed.
8490
8491       Since: 2.6
8492
8493       DumpQueryResult (Object)
8494
8495       The result format for 'query-dump'.
8496
8497       Members:
8498
8499       "status: DumpStatus"
8500           enum of "DumpStatus", which shows current dump status
8501
8502       "completed: int"
8503           bytes written in latest dump (uncompressed)
8504
8505       "total: int"
8506           total bytes to be written in latest dump (uncompressed)
8507
8508       Since: 2.6
8509
8510       query-dump  (Command) Query latest dump status.
8511
8512       Returns: A "DumpStatus" object showing the dump status.
8513
8514       Since: 2.6
8515
8516       Example:
8517
8518               -> { "execute": "query-dump" }
8519               <- { "return": { "status": "active", "completed": 1024000,
8520                                "total": 2048000 } }
8521
8522       DUMP_COMPLETED  (Event) Emitted when background dump has completed
8523
8524       Arguments:
8525
8526       "result: DumpQueryResult"
8527           final dump status
8528
8529       "error: string" (optional)
8530           human-readable error string that provides hint on why dump failed.
8531           Only presents on failure. The user should not try to interpret the
8532           error string.
8533
8534       Since: 2.6
8535
8536       Example:
8537
8538               { "event": "DUMP_COMPLETED",
8539                 "data": {"result": {"total": 1090650112, "status": "completed",
8540                                     "completed": 1090650112} } }
8541
8542       DumpGuestMemoryCapability (Object)
8543
8544       A list of the available formats for dump-guest-memory
8545
8546       Members:
8547
8548       "formats: array of DumpGuestMemoryFormat"
8549           Not documented
8550
8551       Since: 2.0
8552
8553       query-dump-guest-memory-capability  (Command) Returns the available
8554       formats for dump-guest-memory
8555
8556       Returns: A "DumpGuestMemoryCapability" object listing available formats
8557       for dump-guest-memory
8558
8559       Since: 2.0
8560
8561       Example:
8562
8563               -> { "execute": "query-dump-guest-memory-capability" }
8564               <- { "return": { "formats":
8565                                ["elf", "kdump-zlib", "kdump-lzo", "kdump-snappy"] }
8566
8567   Net devices
8568       set_link  (Command) Sets the link status of a virtual network adapter.
8569
8570       Arguments:
8571
8572       "name: string"
8573           the device name of the virtual network adapter
8574
8575       "up: boolean"
8576           true to set the link status to be up
8577
8578       Returns: Nothing on success If "name" is not a valid network device,
8579       DeviceNotFound
8580
8581       Since: 0.14.0
8582
8583       Notes: Not all network adapters support setting link status.  This
8584       command will succeed even if the network adapter does not support link
8585       status notification.
8586
8587       Example:
8588
8589               -> { "execute": "set_link",
8590                    "arguments": { "name": "e1000.0", "up": false } }
8591               <- { "return": {} }
8592
8593       netdev_add  (Command) Add a network backend.
8594
8595       Additional arguments depend on the type.
8596
8597       Arguments: the members of "Netdev"
8598
8599       Since: 0.14.0
8600
8601       Returns: Nothing on success If "type" is not a valid network backend,
8602       DeviceNotFound
8603
8604       Example:
8605
8606               -> { "execute": "netdev_add",
8607                    "arguments": { "type": "user", "id": "netdev1",
8608                                   "dnssearch": "example.org" } }
8609               <- { "return": {} }
8610
8611       netdev_del  (Command) Remove a network backend.
8612
8613       Arguments:
8614
8615       "id: string"
8616           the name of the network backend to remove
8617
8618       Returns: Nothing on success If "id" is not a valid network backend,
8619       DeviceNotFound
8620
8621       Since: 0.14.0
8622
8623       Example:
8624
8625               -> { "execute": "netdev_del", "arguments": { "id": "netdev1" } }
8626               <- { "return": {} }
8627
8628       NetLegacyNicOptions (Object)
8629
8630       Create a new Network Interface Card.
8631
8632       Members:
8633
8634       "netdev: string" (optional)
8635           id of -netdev to connect to
8636
8637       "macaddr: string" (optional)
8638           MAC address
8639
8640       "model: string" (optional)
8641           device model (e1000, rtl8139, virtio etc.)
8642
8643       "addr: string" (optional)
8644           PCI device address
8645
8646       "vectors: int" (optional)
8647           number of MSI-x vectors, 0 to disable MSI-X
8648
8649       Since: 1.2
8650
8651       NetdevUserOptions (Object)
8652
8653       Use the user mode network stack which requires no administrator
8654       privilege to run.
8655
8656       Members:
8657
8658       "hostname: string" (optional)
8659           client hostname reported by the builtin DHCP server
8660
8661       "restrict: boolean" (optional)
8662           isolate the guest from the host
8663
8664       "ipv4: boolean" (optional)
8665           whether to support IPv4, default true for enabled (since 2.6)
8666
8667       "ipv6: boolean" (optional)
8668           whether to support IPv6, default true for enabled (since 2.6)
8669
8670       "ip: string" (optional)
8671           legacy parameter, use net= instead
8672
8673       "net: string" (optional)
8674           IP network address that the guest will see, in the form
8675           addr[/netmask] The netmask is optional, and can be either in the
8676           form a.b.c.d or as a number of valid top-most bits. Default is
8677           10.0.2.0/24.
8678
8679       "host: string" (optional)
8680           guest-visible address of the host
8681
8682       "tftp: string" (optional)
8683           root directory of the built-in TFTP server
8684
8685       "bootfile: string" (optional)
8686           BOOTP filename, for use with tftp=
8687
8688       "dhcpstart: string" (optional)
8689           the first of the 16 IPs the built-in DHCP server can assign
8690
8691       "dns: string" (optional)
8692           guest-visible address of the virtual nameserver
8693
8694       "dnssearch: array of String" (optional)
8695           list of DNS suffixes to search, passed as DHCP option to the guest
8696
8697       "domainname: string" (optional)
8698           guest-visible domain name of the virtual nameserver (since 3.0)
8699
8700       "ipv6-prefix: string" (optional)
8701           IPv6 network prefix (default is fec0::) (since 2.6). The network
8702           prefix is given in the usual hexadecimal IPv6 address notation.
8703
8704       "ipv6-prefixlen: int" (optional)
8705           IPv6 network prefix length (default is 64) (since 2.6)
8706
8707       "ipv6-host: string" (optional)
8708           guest-visible IPv6 address of the host (since 2.6)
8709
8710       "ipv6-dns: string" (optional)
8711           guest-visible IPv6 address of the virtual nameserver (since 2.6)
8712
8713       "smb: string" (optional)
8714           root directory of the built-in SMB server
8715
8716       "smbserver: string" (optional)
8717           IP address of the built-in SMB server
8718
8719       "hostfwd: array of String" (optional)
8720           redirect incoming TCP or UDP host connections to guest endpoints
8721
8722       "guestfwd: array of String" (optional)
8723           forward guest TCP connections
8724
8725       "tftp-server-name: string" (optional)
8726           RFC2132 "TFTP server name" string (Since 3.1)
8727
8728       Since: 1.2
8729
8730       NetdevTapOptions (Object)
8731
8732       Used to configure a host TAP network interface backend.
8733
8734       Members:
8735
8736       "ifname: string" (optional)
8737           interface name
8738
8739       "fd: string" (optional)
8740           file descriptor of an already opened tap
8741
8742       "fds: string" (optional)
8743           multiple file descriptors of already opened multiqueue capable tap
8744
8745       "script: string" (optional)
8746           script to initialize the interface
8747
8748       "downscript: string" (optional)
8749           script to shut down the interface
8750
8751       "br: string" (optional)
8752           bridge name (since 2.8)
8753
8754       "helper: string" (optional)
8755           command to execute to configure bridge
8756
8757       "sndbuf: int" (optional)
8758           send buffer limit. Understands [TGMKkb] suffixes.
8759
8760       "vnet_hdr: boolean" (optional)
8761           enable the IFF_VNET_HDR flag on the tap interface
8762
8763       "vhost: boolean" (optional)
8764           enable vhost-net network accelerator
8765
8766       "vhostfd: string" (optional)
8767           file descriptor of an already opened vhost net device
8768
8769       "vhostfds: string" (optional)
8770           file descriptors of multiple already opened vhost net devices
8771
8772       "vhostforce: boolean" (optional)
8773           vhost on for non-MSIX virtio guests
8774
8775       "queues: int" (optional)
8776           number of queues to be created for multiqueue capable tap
8777
8778       "poll-us: int" (optional)
8779           maximum number of microseconds that could be spent on busy polling
8780           for tap (since 2.7)
8781
8782       Since: 1.2
8783
8784       NetdevSocketOptions (Object)
8785
8786       Socket netdevs are used to establish a network connection to another
8787       QEMU virtual machine via a TCP socket.
8788
8789       Members:
8790
8791       "fd: string" (optional)
8792           file descriptor of an already opened socket
8793
8794       "listen: string" (optional)
8795           port number, and optional hostname, to listen on
8796
8797       "connect: string" (optional)
8798           port number, and optional hostname, to connect to
8799
8800       "mcast: string" (optional)
8801           UDP multicast address and port number
8802
8803       "localaddr: string" (optional)
8804           source address and port for multicast and udp packets
8805
8806       "udp: string" (optional)
8807           UDP unicast address and port number
8808
8809       Since: 1.2
8810
8811       NetdevL2TPv3Options (Object)
8812
8813       Configure an Ethernet over L2TPv3 tunnel.
8814
8815       Members:
8816
8817       "src: string"
8818           source address
8819
8820       "dst: string"
8821           destination address
8822
8823       "srcport: string" (optional)
8824           source port - mandatory for udp, optional for ip
8825
8826       "dstport: string" (optional)
8827           destination port - mandatory for udp, optional for ip
8828
8829       "ipv6: boolean" (optional)
8830           force the use of ipv6
8831
8832       "udp: boolean" (optional)
8833           use the udp version of l2tpv3 encapsulation
8834
8835       "cookie64: boolean" (optional)
8836           use 64 bit coookies
8837
8838       "counter: boolean" (optional)
8839           have sequence counter
8840
8841       "pincounter: boolean" (optional)
8842           pin sequence counter to zero - workaround for buggy implementations
8843           or networks with packet reorder
8844
8845       "txcookie: int" (optional)
8846           32 or 64 bit transmit cookie
8847
8848       "rxcookie: int" (optional)
8849           32 or 64 bit receive cookie
8850
8851       "txsession: int"
8852           32 bit transmit session
8853
8854       "rxsession: int" (optional)
8855           32 bit receive session - if not specified set to the same value as
8856           transmit
8857
8858       "offset: int" (optional)
8859           additional offset - allows the insertion of additional application-
8860           specific data before the packet payload
8861
8862       Since: 2.1
8863
8864       NetdevVdeOptions (Object)
8865
8866       Connect to a vde switch running on the host.
8867
8868       Members:
8869
8870       "sock: string" (optional)
8871           socket path
8872
8873       "port: int" (optional)
8874           port number
8875
8876       "group: string" (optional)
8877           group owner of socket
8878
8879       "mode: int" (optional)
8880           permissions for socket
8881
8882       Since: 1.2
8883
8884       NetdevBridgeOptions (Object)
8885
8886       Connect a host TAP network interface to a host bridge device.
8887
8888       Members:
8889
8890       "br: string" (optional)
8891           bridge name
8892
8893       "helper: string" (optional)
8894           command to execute to configure bridge
8895
8896       Since: 1.2
8897
8898       NetdevHubPortOptions (Object)
8899
8900       Connect two or more net clients through a software hub.
8901
8902       Members:
8903
8904       "hubid: int"
8905           hub identifier number
8906
8907       "netdev: string" (optional)
8908           used to connect hub to a netdev instead of a device (since 2.12)
8909
8910       Since: 1.2
8911
8912       NetdevNetmapOptions (Object)
8913
8914       Connect a client to a netmap-enabled NIC or to a VALE switch port
8915
8916       Members:
8917
8918       "ifname: string"
8919           Either the name of an existing network interface supported by
8920           netmap, or the name of a VALE port (created on the fly).  A VALE
8921           port name is in the form 'valeXXX:YYY', where XXX and YYY are non-
8922           negative integers. XXX identifies a switch and YYY identifies a
8923           port of the switch. VALE ports having the same XXX are therefore
8924           connected to the same switch.
8925
8926       "devname: string" (optional)
8927           path of the netmap device (default: '/dev/netmap').
8928
8929       Since: 2.0
8930
8931       NetdevVhostUserOptions (Object)
8932
8933       Vhost-user network backend
8934
8935       Members:
8936
8937       "chardev: string"
8938           name of a unix socket chardev
8939
8940       "vhostforce: boolean" (optional)
8941           vhost on for non-MSIX virtio guests (default: false).
8942
8943       "queues: int" (optional)
8944           number of queues to be created for multiqueue vhost-user (default:
8945           1) (Since 2.5)
8946
8947       Since: 2.1
8948
8949       NetdevVhostVDPAOptions (Object)
8950
8951       Vhost-vdpa network backend
8952
8953       vDPA device is a device that uses a datapath which complies with the
8954       virtio specifications with a vendor specific control path.
8955
8956       Members:
8957
8958       "vhostdev: string" (optional)
8959           path of vhost-vdpa device (default:'/dev/vhost-vdpa-0')
8960
8961       "queues: int" (optional)
8962           number of queues to be created for multiqueue vhost-vdpa (default:
8963           1)
8964
8965       Since: 5.1
8966
8967       NetClientDriver (Enum)
8968
8969       Available netdev drivers.
8970
8971       Values:
8972
8973       "none"
8974           Not documented
8975
8976       "nic"
8977           Not documented
8978
8979       "user"
8980           Not documented
8981
8982       "tap"
8983           Not documented
8984
8985       "l2tpv3"
8986           Not documented
8987
8988       "socket"
8989           Not documented
8990
8991       "vde"
8992           Not documented
8993
8994       "bridge"
8995           Not documented
8996
8997       "hubport"
8998           Not documented
8999
9000       "netmap"
9001           Not documented
9002
9003       "vhost-user"
9004           Not documented
9005
9006       "vhost-vdpa"
9007           Not documented
9008
9009       Since: 2.7
9010
9011       "vhost-vdpa" since 5.1
9012
9013       Netdev (Object)
9014
9015       Captures the configuration of a network device.
9016
9017       Members:
9018
9019       "id: string"
9020           identifier for monitor commands.
9021
9022       "type: NetClientDriver"
9023           Specify the driver used for interpreting remaining arguments.
9024
9025       The members of "NetLegacyNicOptions" when "type" is "nic"
9026       The members of "NetdevUserOptions" when "type" is "user"
9027       The members of "NetdevTapOptions" when "type" is "tap"
9028       The members of "NetdevL2TPv3Options" when "type" is "l2tpv3"
9029       The members of "NetdevSocketOptions" when "type" is "socket"
9030       The members of "NetdevVdeOptions" when "type" is "vde"
9031       The members of "NetdevBridgeOptions" when "type" is "bridge"
9032       The members of "NetdevHubPortOptions" when "type" is "hubport"
9033       The members of "NetdevNetmapOptions" when "type" is "netmap"
9034       The members of "NetdevVhostUserOptions" when "type" is "vhost-user"
9035       The members of "NetdevVhostVDPAOptions" when "type" is "vhost-vdpa"
9036
9037       Since: 1.2
9038
9039       'l2tpv3' - since 2.1
9040
9041       NetFilterDirection (Enum)
9042
9043       Indicates whether a netfilter is attached to a netdev's transmit queue
9044       or receive queue or both.
9045
9046       Values:
9047
9048       "all"
9049           the filter is attached both to the receive and the transmit queue
9050           of the netdev (default).
9051
9052       "rx"
9053           the filter is attached to the receive queue of the netdev, where it
9054           will receive packets sent to the netdev.
9055
9056       "tx"
9057           the filter is attached to the transmit queue of the netdev, where
9058           it will receive packets sent by the netdev.
9059
9060       Since: 2.5
9061
9062       RxState (Enum)
9063
9064       Packets receiving state
9065
9066       Values:
9067
9068       "normal"
9069           filter assigned packets according to the mac-table
9070
9071       "none"
9072           don't receive any assigned packet
9073
9074       "all"
9075           receive all assigned packets
9076
9077       Since: 1.6
9078
9079       RxFilterInfo (Object)
9080
9081       Rx-filter information for a NIC.
9082
9083       Members:
9084
9085       "name: string"
9086           net client name
9087
9088       "promiscuous: boolean"
9089           whether promiscuous mode is enabled
9090
9091       "multicast: RxState"
9092           multicast receive state
9093
9094       "unicast: RxState"
9095           unicast receive state
9096
9097       "vlan: RxState"
9098           vlan receive state (Since 2.0)
9099
9100       "broadcast-allowed: boolean"
9101           whether to receive broadcast
9102
9103       "multicast-overflow: boolean"
9104           multicast table is overflowed or not
9105
9106       "unicast-overflow: boolean"
9107           unicast table is overflowed or not
9108
9109       "main-mac: string"
9110           the main macaddr string
9111
9112       "vlan-table: array of int"
9113           a list of active vlan id
9114
9115       "unicast-table: array of string"
9116           a list of unicast macaddr string
9117
9118       "multicast-table: array of string"
9119           a list of multicast macaddr string
9120
9121       Since: 1.6
9122
9123       query-rx-filter  (Command) Return rx-filter information for all NICs
9124       (or for the given NIC).
9125
9126       Arguments:
9127
9128       "name: string" (optional)
9129           net client name
9130
9131       Returns: list of "RxFilterInfo" for all NICs (or for the given NIC).
9132       Returns an error if the given "name" doesn't exist, or given NIC
9133       doesn't support rx-filter querying, or given net client isn't a NIC.
9134
9135       Since: 1.6
9136
9137       Example:
9138
9139               -> { "execute": "query-rx-filter", "arguments": { "name": "vnet0" } }
9140               <- { "return": [
9141                       {
9142                           "promiscuous": true,
9143                           "name": "vnet0",
9144                           "main-mac": "52:54:00:12:34:56",
9145                           "unicast": "normal",
9146                           "vlan": "normal",
9147                           "vlan-table": [
9148                               4,
9149                               0
9150                           ],
9151                           "unicast-table": [
9152                           ],
9153                           "multicast": "normal",
9154                           "multicast-overflow": false,
9155                           "unicast-overflow": false,
9156                           "multicast-table": [
9157                               "01:00:5e:00:00:01",
9158                               "33:33:00:00:00:01",
9159                               "33:33:ff:12:34:56"
9160                           ],
9161                           "broadcast-allowed": false
9162                       }
9163                     ]
9164                  }
9165
9166       NIC_RX_FILTER_CHANGED  (Event) Emitted once until the 'query-rx-filter'
9167       command is executed, the first event will always be emitted
9168
9169       Arguments:
9170
9171       "name: string" (optional)
9172           net client name
9173
9174       "path: string"
9175           device path
9176
9177       Since: 1.6
9178
9179       Example:
9180
9181               <- { "event": "NIC_RX_FILTER_CHANGED",
9182                    "data": { "name": "vnet0",
9183                              "path": "/machine/peripheral/vnet0/virtio-backend" },
9184                    "timestamp": { "seconds": 1368697518, "microseconds": 326866 } }
9185                  }
9186
9187       AnnounceParameters (Object)
9188
9189       Parameters for self-announce timers
9190
9191       Members:
9192
9193       "initial: int"
9194           Initial delay (in ms) before sending the first GARP/RARP
9195           announcement
9196
9197       "max: int"
9198           Maximum delay (in ms) between GARP/RARP announcement packets
9199
9200       "rounds: int"
9201           Number of self-announcement attempts
9202
9203       "step: int"
9204           Delay increase (in ms) after each self-announcement attempt
9205
9206       "interfaces: array of string" (optional)
9207           An optional list of interface names, which restricts the
9208           announcement to the listed interfaces. (Since 4.1)
9209
9210       "id: string" (optional)
9211           A name to be used to identify an instance of announce-timers and to
9212           allow it to modified later.  Not for use as part of the migration
9213           parameters. (Since 4.1)
9214
9215       Since: 4.0
9216
9217       announce-self  (Command) Trigger generation of broadcast RARP frames to
9218       update network switches.  This can be useful when network bonds fail-
9219       over the active slave.
9220
9221       Arguments: the members of "AnnounceParameters"
9222
9223       Example:
9224
9225               -> { "execute": "announce-self",
9226                    "arguments": {
9227                        "initial": 50, "max": 550, "rounds": 10, "step": 50,
9228                        "interfaces": ["vn2", "vn3"], "id": "bob" } }
9229               <- { "return": {} }
9230
9231       Since: 4.0
9232
9233       FAILOVER_NEGOTIATED  (Event) Emitted when VIRTIO_NET_F_STANDBY was
9234       enabled during feature negotiation.  Failover primary devices which
9235       were hidden (not hotplugged when requested) before will now be
9236       hotplugged by the virtio-net standby device.
9237
9238       device-id: QEMU device id of the unplugged device
9239
9240       Arguments:
9241
9242       "device-id: string"
9243           Not documented
9244
9245       Since: 4.2
9246
9247       Example:
9248
9249               <- { "event": "FAILOVER_NEGOTIATED",
9250                    "data": "net1" }
9251
9252   RDMA device
9253       RDMA_GID_STATUS_CHANGED  (Event) Emitted when guest driver adds/deletes
9254       GID to/from device
9255
9256       Arguments:
9257
9258       "netdev: string"
9259           RoCE Network Device name
9260
9261       "gid-status: boolean"
9262           Add or delete indication
9263
9264       "subnet-prefix: int"
9265           Subnet Prefix
9266
9267       "interface-id: int"
9268           Not documented
9269
9270       "interface-id" : Interface ID
9271
9272       Since: 4.0
9273
9274       Example:
9275
9276               <- {"timestamp": {"seconds": 1541579657, "microseconds": 986760},
9277                   "event": "RDMA_GID_STATUS_CHANGED",
9278                   "data":
9279                       {"netdev": "bridge0",
9280                       "interface-id": 15880512517475447892,
9281                       "gid-status": true,
9282                       "subnet-prefix": 33022}}
9283
9284   Rocker switch device
9285       RockerSwitch (Object)
9286
9287       Rocker switch information.
9288
9289       Members:
9290
9291       "name: string"
9292           switch name
9293
9294       "id: int"
9295           switch ID
9296
9297       "ports: int"
9298           number of front-panel ports
9299
9300       Since: 2.4
9301
9302       query-rocker  (Command) Return rocker switch information.
9303
9304       Arguments:
9305
9306       "name: string"
9307           Not documented
9308
9309       Returns: "Rocker" information
9310
9311       Since: 2.4
9312
9313       Example:
9314
9315               -> { "execute": "query-rocker", "arguments": { "name": "sw1" } }
9316               <- { "return": {"name": "sw1", "ports": 2, "id": 1327446905938}}
9317
9318       RockerPortDuplex (Enum)
9319
9320       An eumeration of port duplex states.
9321
9322       Values:
9323
9324       "half"
9325           half duplex
9326
9327       "full"
9328           full duplex
9329
9330       Since: 2.4
9331
9332       RockerPortAutoneg (Enum)
9333
9334       An eumeration of port autoneg states.
9335
9336       Values:
9337
9338       "off"
9339           autoneg is off
9340
9341       "on"
9342           autoneg is on
9343
9344       Since: 2.4
9345
9346       RockerPort (Object)
9347
9348       Rocker switch port information.
9349
9350       Members:
9351
9352       "name: string"
9353           port name
9354
9355       "enabled: boolean"
9356           port is enabled for I/O
9357
9358       "link-up: boolean"
9359           physical link is UP on port
9360
9361       "speed: int"
9362           port link speed in Mbps
9363
9364       "duplex: RockerPortDuplex"
9365           port link duplex
9366
9367       "autoneg: RockerPortAutoneg"
9368           port link autoneg
9369
9370       Since: 2.4
9371
9372       query-rocker-ports  (Command) Return rocker switch port information.
9373
9374       Arguments:
9375
9376       "name: string"
9377           Not documented
9378
9379       Returns: a list of "RockerPort" information
9380
9381       Since: 2.4
9382
9383       Example:
9384
9385               -> { "execute": "query-rocker-ports", "arguments": { "name": "sw1" } }
9386               <- { "return": [ {"duplex": "full", "enabled": true, "name": "sw1.1",
9387                                 "autoneg": "off", "link-up": true, "speed": 10000},
9388                                {"duplex": "full", "enabled": true, "name": "sw1.2",
9389                                 "autoneg": "off", "link-up": true, "speed": 10000}
9390                  ]}
9391
9392       RockerOfDpaFlowKey (Object)
9393
9394       Rocker switch OF-DPA flow key
9395
9396       Members:
9397
9398       "priority: int"
9399           key priority, 0 being lowest priority
9400
9401       "tbl-id: int"
9402           flow table ID
9403
9404       "in-pport: int" (optional)
9405           physical input port
9406
9407       "tunnel-id: int" (optional)
9408           tunnel ID
9409
9410       "vlan-id: int" (optional)
9411           VLAN ID
9412
9413       "eth-type: int" (optional)
9414           Ethernet header type
9415
9416       "eth-src: string" (optional)
9417           Ethernet header source MAC address
9418
9419       "eth-dst: string" (optional)
9420           Ethernet header destination MAC address
9421
9422       "ip-proto: int" (optional)
9423           IP Header protocol field
9424
9425       "ip-tos: int" (optional)
9426           IP header TOS field
9427
9428       "ip-dst: string" (optional)
9429           IP header destination address
9430
9431       Note: optional members may or may not appear in the flow key depending
9432       if they're relevant to the flow key.
9433
9434       Since: 2.4
9435
9436       RockerOfDpaFlowMask (Object)
9437
9438       Rocker switch OF-DPA flow mask
9439
9440       Members:
9441
9442       "in-pport: int" (optional)
9443           physical input port
9444
9445       "tunnel-id: int" (optional)
9446           tunnel ID
9447
9448       "vlan-id: int" (optional)
9449           VLAN ID
9450
9451       "eth-src: string" (optional)
9452           Ethernet header source MAC address
9453
9454       "eth-dst: string" (optional)
9455           Ethernet header destination MAC address
9456
9457       "ip-proto: int" (optional)
9458           IP Header protocol field
9459
9460       "ip-tos: int" (optional)
9461           IP header TOS field
9462
9463       Note: optional members may or may not appear in the flow mask depending
9464       if they're relevant to the flow mask.
9465
9466       Since: 2.4
9467
9468       RockerOfDpaFlowAction (Object)
9469
9470       Rocker switch OF-DPA flow action
9471
9472       Members:
9473
9474       "goto-tbl: int" (optional)
9475           next table ID
9476
9477       "group-id: int" (optional)
9478           group ID
9479
9480       "tunnel-lport: int" (optional)
9481           tunnel logical port ID
9482
9483       "vlan-id: int" (optional)
9484           VLAN ID
9485
9486       "new-vlan-id: int" (optional)
9487           new VLAN ID
9488
9489       "out-pport: int" (optional)
9490           physical output port
9491
9492       Note: optional members may or may not appear in the flow action
9493       depending if they're relevant to the flow action.
9494
9495       Since: 2.4
9496
9497       RockerOfDpaFlow (Object)
9498
9499       Rocker switch OF-DPA flow
9500
9501       Members:
9502
9503       "cookie: int"
9504           flow unique cookie ID
9505
9506       "hits: int"
9507           count of matches (hits) on flow
9508
9509       "key: RockerOfDpaFlowKey"
9510           flow key
9511
9512       "mask: RockerOfDpaFlowMask"
9513           flow mask
9514
9515       "action: RockerOfDpaFlowAction"
9516           flow action
9517
9518       Since: 2.4
9519
9520       query-rocker-of-dpa-flows  (Command) Return rocker OF-DPA flow
9521       information.
9522
9523       Arguments:
9524
9525       "name: string"
9526           switch name
9527
9528       "tbl-id: int" (optional)
9529           flow table ID.  If tbl-id is not specified, returns flow
9530           information for all tables.
9531
9532       Returns: rocker OF-DPA flow information
9533
9534       Since: 2.4
9535
9536       Example:
9537
9538               -> { "execute": "query-rocker-of-dpa-flows",
9539                    "arguments": { "name": "sw1" } }
9540               <- { "return": [ {"key": {"in-pport": 0, "priority": 1, "tbl-id": 0},
9541                                 "hits": 138,
9542                                 "cookie": 0,
9543                                 "action": {"goto-tbl": 10},
9544                                 "mask": {"in-pport": 4294901760}
9545                                },
9546                                {...more...},
9547                  ]}
9548
9549       RockerOfDpaGroup (Object)
9550
9551       Rocker switch OF-DPA group
9552
9553       Members:
9554
9555       "id: int"
9556           group unique ID
9557
9558       "type: int"
9559           group type
9560
9561       "vlan-id: int" (optional)
9562           VLAN ID
9563
9564       "pport: int" (optional)
9565           physical port number
9566
9567       "index: int" (optional)
9568           group index, unique with group type
9569
9570       "out-pport: int" (optional)
9571           output physical port number
9572
9573       "group-id: int" (optional)
9574           next group ID
9575
9576       "set-vlan-id: int" (optional)
9577           VLAN ID to set
9578
9579       "pop-vlan: int" (optional)
9580           pop VLAN headr from packet
9581
9582       "group-ids: array of int" (optional)
9583           list of next group IDs
9584
9585       "set-eth-src: string" (optional)
9586           set source MAC address in Ethernet header
9587
9588       "set-eth-dst: string" (optional)
9589           set destination MAC address in Ethernet header
9590
9591       "ttl-check: int" (optional)
9592           perform TTL check
9593
9594       Note: optional members may or may not appear in the group depending if
9595       they're relevant to the group type.
9596
9597       Since: 2.4
9598
9599       query-rocker-of-dpa-groups  (Command) Return rocker OF-DPA group
9600       information.
9601
9602       Arguments:
9603
9604       "name: string"
9605           switch name
9606
9607       "type: int" (optional)
9608           group type.  If type is not specified, returns group information
9609           for all group types.
9610
9611       Returns: rocker OF-DPA group information
9612
9613       Since: 2.4
9614
9615       Example:
9616
9617               -> { "execute": "query-rocker-of-dpa-groups",
9618                    "arguments": { "name": "sw1" } }
9619               <- { "return": [ {"type": 0, "out-pport": 2,
9620                                 "pport": 2, "vlan-id": 3841,
9621                                 "pop-vlan": 1, "id": 251723778},
9622                                {"type": 0, "out-pport": 0,
9623                                 "pport": 0, "vlan-id": 3841,
9624                                 "pop-vlan": 1, "id": 251723776},
9625                                {"type": 0, "out-pport": 1,
9626                                 "pport": 1, "vlan-id": 3840,
9627                                 "pop-vlan": 1, "id": 251658241},
9628                                {"type": 0, "out-pport": 0,
9629                                 "pport": 0, "vlan-id": 3840,
9630                                 "pop-vlan": 1, "id": 251658240}
9631                  ]}
9632
9633   TPM (trusted platform module) devices
9634       TpmModel (Enum)
9635
9636       An enumeration of TPM models
9637
9638       Values:
9639
9640       "tpm-tis"
9641           TPM TIS model
9642
9643       "tpm-crb"
9644           TPM CRB model (since 2.12)
9645
9646       "tpm-spapr"
9647           TPM SPAPR model (since 5.0)
9648
9649       Since: 1.5
9650
9651       query-tpm-models  (Command) Return a list of supported TPM models
9652
9653       Returns: a list of TpmModel
9654
9655       Since: 1.5
9656
9657       Example:
9658
9659               -> { "execute": "query-tpm-models" }
9660               <- { "return": [ "tpm-tis", "tpm-crb", "tpm-spapr" ] }
9661
9662       TpmType (Enum)
9663
9664       An enumeration of TPM types
9665
9666       Values:
9667
9668       "passthrough"
9669           TPM passthrough type
9670
9671       "emulator"
9672           Software Emulator TPM type Since: 2.11
9673
9674       Since: 1.5
9675
9676       query-tpm-types  (Command) Return a list of supported TPM types
9677
9678       Returns: a list of TpmType
9679
9680       Since: 1.5
9681
9682       Example:
9683
9684               -> { "execute": "query-tpm-types" }
9685               <- { "return": [ "passthrough", "emulator" ] }
9686
9687       TPMPassthroughOptions (Object)
9688
9689       Information about the TPM passthrough type
9690
9691       Members:
9692
9693       "path: string" (optional)
9694           string describing the path used for accessing the TPM device
9695
9696       "cancel-path: string" (optional)
9697           string showing the TPM's sysfs cancel file for cancellation of TPM
9698           commands while they are executing
9699
9700       Since: 1.5
9701
9702       TPMEmulatorOptions (Object)
9703
9704       Information about the TPM emulator type
9705
9706       Members:
9707
9708       "chardev: string"
9709           Name of a unix socket chardev
9710
9711       Since: 2.11
9712
9713       TpmTypeOptions (Object)
9714
9715       A union referencing different TPM backend types' configuration options
9716
9717       Members:
9718
9719       "type"
9720           -   'passthrough' The configuration options for the TPM passthrough
9721               type
9722
9723           -   'emulator' The configuration options for TPM emulator backend
9724               type
9725
9726       "data: TPMPassthroughOptions" when "type" is "passthrough"
9727       "data: TPMEmulatorOptions" when "type" is "emulator"
9728
9729       Since: 1.5
9730
9731       TPMInfo (Object)
9732
9733       Information about the TPM
9734
9735       Members:
9736
9737       "id: string"
9738           The Id of the TPM
9739
9740       "model: TpmModel"
9741           The TPM frontend model
9742
9743       "options: TpmTypeOptions"
9744           The TPM (backend) type configuration options
9745
9746       Since: 1.5
9747
9748       query-tpm  (Command) Return information about the TPM device
9749
9750       Returns: "TPMInfo" on success
9751
9752       Since: 1.5
9753
9754       Example:
9755
9756               -> { "execute": "query-tpm" }
9757               <- { "return":
9758                    [
9759                      { "model": "tpm-tis",
9760                        "options":
9761                          { "type": "passthrough",
9762                            "data":
9763                              { "cancel-path": "/sys/class/misc/tpm0/device/cancel",
9764                                "path": "/dev/tpm0"
9765                              }
9766                          },
9767                        "id": "tpm0"
9768                      }
9769                    ]
9770                  }
9771
9772   Remote desktop
9773       set_password  (Command) Sets the password of a remote display session.
9774
9775       Arguments:
9776
9777       "protocol: string"
9778           -   'vnc' to modify the VNC server password
9779
9780           -   'spice' to modify the Spice server password
9781
9782       "password: string"
9783           the new password
9784
9785       "connected: string" (optional)
9786           how to handle existing clients when changing the password.  If
9787           nothing is specified, defaults to 'keep' 'fail' to fail the command
9788           if clients are connected 'disconnect' to disconnect existing
9789           clients 'keep' to maintain existing clients
9790
9791       Returns:
9792
9793       -   Nothing on success
9794
9795       -   If Spice is not enabled, DeviceNotFound
9796
9797       Since: 0.14.0
9798
9799       Example:
9800
9801               -> { "execute": "set_password", "arguments": { "protocol": "vnc",
9802                                                              "password": "secret" } }
9803               <- { "return": {} }
9804
9805       expire_password  (Command) Expire the password of a remote display
9806       server.
9807
9808       Arguments:
9809
9810       "protocol: string"
9811           the name of the remote display protocol 'vnc' or 'spice'
9812
9813       "time: string"
9814           when to expire the password.
9815
9816           -   'now' to expire the password immediately
9817
9818           -   'never' to cancel password expiration
9819
9820           -   '+INT' where INT is the number of seconds from now (integer)
9821
9822           -   'INT' where INT is the absolute time in seconds
9823
9824       Returns:
9825
9826       -   Nothing on success
9827
9828       -   If "protocol" is 'spice' and Spice is not active, DeviceNotFound
9829
9830       Since: 0.14.0
9831
9832       Notes: Time is relative to the server and currently there is no way to
9833       coordinate server time with client time.  It is not recommended to use
9834       the absolute time version of the "time" parameter unless you're sure
9835       you are on the same machine as the QEMU instance.
9836
9837       Example:
9838
9839               -> { "execute": "expire_password", "arguments": { "protocol": "vnc",
9840                                                                 "time": "+60" } }
9841               <- { "return": {} }
9842
9843       screendump  (Command) Write a PPM of the VGA screen to a file.
9844
9845       Arguments:
9846
9847       "filename: string"
9848           the path of a new PPM file to store the image
9849
9850       "device: string" (optional)
9851           ID of the display device that should be dumped. If this parameter
9852           is missing, the primary display will be used. (Since 2.12)
9853
9854       "head: int" (optional)
9855           head to use in case the device supports multiple heads. If this
9856           parameter is missing, head #0 will be used. Also note that the head
9857           can only be specified in conjunction with the device ID. (Since
9858           2.12)
9859
9860       Returns: Nothing on success
9861
9862       Since: 0.14.0
9863
9864       Example:
9865
9866               -> { "execute": "screendump",
9867                    "arguments": { "filename": "/tmp/image" } }
9868               <- { "return": {} }
9869
9870       Spice
9871
9872       SpiceBasicInfo (Object)
9873
9874       The basic information for SPICE network connection
9875
9876       Members:
9877
9878       "host: string"
9879           IP address
9880
9881       "port: string"
9882           port number
9883
9884       "family: NetworkAddressFamily"
9885           address family
9886
9887       Since: 2.1
9888
9889       If: "defined(CONFIG_SPICE)"
9890
9891       SpiceServerInfo (Object)
9892
9893       Information about a SPICE server
9894
9895       Members:
9896
9897       "auth: string" (optional)
9898           authentication method
9899
9900       The members of "SpiceBasicInfo"
9901
9902       Since: 2.1
9903
9904       If: "defined(CONFIG_SPICE)"
9905
9906       SpiceChannel (Object)
9907
9908       Information about a SPICE client channel.
9909
9910       Members:
9911
9912       "connection-id: int"
9913           SPICE connection id number.  All channels with the same id belong
9914           to the same SPICE session.
9915
9916       "channel-type: int"
9917           SPICE channel type number.  "1" is the main control channel, filter
9918           for this one if you want to track spice sessions only
9919
9920       "channel-id: int"
9921           SPICE channel ID number.  Usually "0", might be different when
9922           multiple channels of the same type exist, such as multiple display
9923           channels in a multihead setup
9924
9925       "tls: boolean"
9926           true if the channel is encrypted, false otherwise.
9927
9928       The members of "SpiceBasicInfo"
9929
9930       Since: 0.14.0
9931
9932       If: "defined(CONFIG_SPICE)"
9933
9934       SpiceQueryMouseMode (Enum)
9935
9936       An enumeration of Spice mouse states.
9937
9938       Values:
9939
9940       "client"
9941           Mouse cursor position is determined by the client.
9942
9943       "server"
9944           Mouse cursor position is determined by the server.
9945
9946       "unknown"
9947           No information is available about mouse mode used by the spice
9948           server.
9949
9950       Note: spice/enums.h has a SpiceMouseMode already, hence the name.
9951
9952       Since: 1.1
9953
9954       If: "defined(CONFIG_SPICE)"
9955
9956       SpiceInfo (Object)
9957
9958       Information about the SPICE session.
9959
9960       Members:
9961
9962       "enabled: boolean"
9963           true if the SPICE server is enabled, false otherwise
9964
9965       "migrated: boolean"
9966           true if the last guest migration completed and spice migration had
9967           completed as well. false otherwise. (since 1.4)
9968
9969       "host: string" (optional)
9970           The hostname the SPICE server is bound to.  This depends on the
9971           name resolution on the host and may be an IP address.
9972
9973       "port: int" (optional)
9974           The SPICE server's port number.
9975
9976       "compiled-version: string" (optional)
9977           SPICE server version.
9978
9979       "tls-port: int" (optional)
9980           The SPICE server's TLS port number.
9981
9982       "auth: string" (optional)
9983           the current authentication type used by the server
9984
9985           -   'none'  if no authentication is being used
9986
9987           -   'spice' uses SASL or direct TLS authentication, depending on
9988               command line options
9989
9990       "mouse-mode: SpiceQueryMouseMode"
9991           The mode in which the mouse cursor is displayed currently. Can be
9992           determined by the client or the server, or unknown if spice server
9993           doesn't provide this information. (since: 1.1)
9994
9995       "channels: array of SpiceChannel" (optional)
9996           a list of "SpiceChannel" for each active spice channel
9997
9998       Since: 0.14.0
9999
10000       If: "defined(CONFIG_SPICE)"
10001
10002       query-spice  (Command) Returns information about the current SPICE
10003       server
10004
10005       Returns: "SpiceInfo"
10006
10007       Since: 0.14.0
10008
10009       Example:
10010
10011               -> { "execute": "query-spice" }
10012               <- { "return": {
10013                        "enabled": true,
10014                        "auth": "spice",
10015                        "port": 5920,
10016                        "tls-port": 5921,
10017                        "host": "0.0.0.0",
10018                        "channels": [
10019                           {
10020                              "port": "54924",
10021                              "family": "ipv4",
10022                              "channel-type": 1,
10023                              "connection-id": 1804289383,
10024                              "host": "127.0.0.1",
10025                              "channel-id": 0,
10026                              "tls": true
10027                           },
10028                           {
10029                              "port": "36710",
10030                              "family": "ipv4",
10031                              "channel-type": 4,
10032                              "connection-id": 1804289383,
10033                              "host": "127.0.0.1",
10034                              "channel-id": 0,
10035                              "tls": false
10036                           },
10037                           [ ... more channels follow ... ]
10038                        ]
10039                     }
10040                  }
10041
10042       If: "defined(CONFIG_SPICE)"
10043
10044       SPICE_CONNECTED  (Event) Emitted when a SPICE client establishes a
10045       connection
10046
10047       Arguments:
10048
10049       "server: SpiceBasicInfo"
10050           server information
10051
10052       "client: SpiceBasicInfo"
10053           client information
10054
10055       Since: 0.14.0
10056
10057       Example:
10058
10059               <- { "timestamp": {"seconds": 1290688046, "microseconds": 388707},
10060                    "event": "SPICE_CONNECTED",
10061                    "data": {
10062                      "server": { "port": "5920", "family": "ipv4", "host": "127.0.0.1"},
10063                      "client": {"port": "52873", "family": "ipv4", "host": "127.0.0.1"}
10064                  }}
10065
10066       If: "defined(CONFIG_SPICE)"
10067
10068       SPICE_INITIALIZED  (Event) Emitted after initial handshake and
10069       authentication takes place (if any) and the SPICE channel is up and
10070       running
10071
10072       Arguments:
10073
10074       "server: SpiceServerInfo"
10075           server information
10076
10077       "client: SpiceChannel"
10078           client information
10079
10080       Since: 0.14.0
10081
10082       Example:
10083
10084               <- { "timestamp": {"seconds": 1290688046, "microseconds": 417172},
10085                    "event": "SPICE_INITIALIZED",
10086                    "data": {"server": {"auth": "spice", "port": "5921",
10087                                        "family": "ipv4", "host": "127.0.0.1"},
10088                             "client": {"port": "49004", "family": "ipv4", "channel-type": 3,
10089                                        "connection-id": 1804289383, "host": "127.0.0.1",
10090                                        "channel-id": 0, "tls": true}
10091                  }}
10092
10093       If: "defined(CONFIG_SPICE)"
10094
10095       SPICE_DISCONNECTED  (Event) Emitted when the SPICE connection is closed
10096
10097       Arguments:
10098
10099       "server: SpiceBasicInfo"
10100           server information
10101
10102       "client: SpiceBasicInfo"
10103           client information
10104
10105       Since: 0.14.0
10106
10107       Example:
10108
10109               <- { "timestamp": {"seconds": 1290688046, "microseconds": 388707},
10110                    "event": "SPICE_DISCONNECTED",
10111                    "data": {
10112                      "server": { "port": "5920", "family": "ipv4", "host": "127.0.0.1"},
10113                      "client": {"port": "52873", "family": "ipv4", "host": "127.0.0.1"}
10114                  }}
10115
10116       If: "defined(CONFIG_SPICE)"
10117
10118       SPICE_MIGRATE_COMPLETED  (Event) Emitted when SPICE migration has
10119       completed
10120
10121       Since: 1.3
10122
10123       Example:
10124
10125               <- { "timestamp": {"seconds": 1290688046, "microseconds": 417172},
10126                    "event": "SPICE_MIGRATE_COMPLETED" }
10127
10128       If: "defined(CONFIG_SPICE)"
10129
10130       VNC
10131
10132       VncBasicInfo (Object)
10133
10134       The basic information for vnc network connection
10135
10136       Members:
10137
10138       "host: string"
10139           IP address
10140
10141       "service: string"
10142           The service name of the vnc port. This may depend on the host
10143           system's service database so symbolic names should not be relied
10144           on.
10145
10146       "family: NetworkAddressFamily"
10147           address family
10148
10149       "websocket: boolean"
10150           true in case the socket is a websocket (since 2.3).
10151
10152       Since: 2.1
10153
10154       If: "defined(CONFIG_VNC)"
10155
10156       VncServerInfo (Object)
10157
10158       The network connection information for server
10159
10160       Members:
10161
10162       "auth: string" (optional)
10163           authentication method used for the plain (non-websocket) VNC server
10164
10165       The members of "VncBasicInfo"
10166
10167       Since: 2.1
10168
10169       If: "defined(CONFIG_VNC)"
10170
10171       VncClientInfo (Object)
10172
10173       Information about a connected VNC client.
10174
10175       Members:
10176
10177       "x509_dname: string" (optional)
10178           If x509 authentication is in use, the Distinguished Name of the
10179           client.
10180
10181       "sasl_username: string" (optional)
10182           If SASL authentication is in use, the SASL username used for
10183           authentication.
10184
10185       The members of "VncBasicInfo"
10186
10187       Since: 0.14.0
10188
10189       If: "defined(CONFIG_VNC)"
10190
10191       VncInfo (Object)
10192
10193       Information about the VNC session.
10194
10195       Members:
10196
10197       "enabled: boolean"
10198           true if the VNC server is enabled, false otherwise
10199
10200       "host: string" (optional)
10201           The hostname the VNC server is bound to.  This depends on the name
10202           resolution on the host and may be an IP address.
10203
10204       "family: NetworkAddressFamily" (optional)
10205           -   'ipv6' if the host is listening for IPv6 connections
10206
10207           -   'ipv4' if the host is listening for IPv4 connections
10208
10209           -   'unix' if the host is listening on a unix domain socket
10210
10211           -   'unknown' otherwise
10212
10213       "service: string" (optional)
10214           The service name of the server's port.  This may depends on the
10215           host system's service database so symbolic names should not be
10216           relied on.
10217
10218       "auth: string" (optional)
10219           the current authentication type used by the server
10220
10221           -   'none' if no authentication is being used
10222
10223           -   'vnc' if VNC authentication is being used
10224
10225           -   'vencrypt+plain' if VEncrypt is used with plain text
10226               authentication
10227
10228           -   'vencrypt+tls+none' if VEncrypt is used with TLS and no
10229               authentication
10230
10231           -   'vencrypt+tls+vnc' if VEncrypt is used with TLS and VNC
10232               authentication
10233
10234           -   'vencrypt+tls+plain' if VEncrypt is used with TLS and plain
10235               text auth
10236
10237           -   'vencrypt+x509+none' if VEncrypt is used with x509 and no auth
10238
10239           -   'vencrypt+x509+vnc' if VEncrypt is used with x509 and VNC auth
10240
10241           -   'vencrypt+x509+plain' if VEncrypt is used with x509 and plain
10242               text auth
10243
10244           -   'vencrypt+tls+sasl' if VEncrypt is used with TLS and SASL auth
10245
10246           -   'vencrypt+x509+sasl' if VEncrypt is used with x509 and SASL
10247               auth
10248
10249       "clients: array of VncClientInfo" (optional)
10250           a list of "VncClientInfo" of all currently connected clients
10251
10252       Since: 0.14.0
10253
10254       If: "defined(CONFIG_VNC)"
10255
10256       VncPrimaryAuth (Enum)
10257
10258       vnc primary authentication method.
10259
10260       Values:
10261
10262       "none"
10263           Not documented
10264
10265       "vnc"
10266           Not documented
10267
10268       "ra2"
10269           Not documented
10270
10271       "ra2ne"
10272           Not documented
10273
10274       "tight"
10275           Not documented
10276
10277       "ultra"
10278           Not documented
10279
10280       "tls"
10281           Not documented
10282
10283       "vencrypt"
10284           Not documented
10285
10286       "sasl"
10287           Not documented
10288
10289       Since: 2.3
10290
10291       If: "defined(CONFIG_VNC)"
10292
10293       VncVencryptSubAuth (Enum)
10294
10295       vnc sub authentication method with vencrypt.
10296
10297       Values:
10298
10299       "plain"
10300           Not documented
10301
10302       "tls-none"
10303           Not documented
10304
10305       "x509-none"
10306           Not documented
10307
10308       "tls-vnc"
10309           Not documented
10310
10311       "x509-vnc"
10312           Not documented
10313
10314       "tls-plain"
10315           Not documented
10316
10317       "x509-plain"
10318           Not documented
10319
10320       "tls-sasl"
10321           Not documented
10322
10323       "x509-sasl"
10324           Not documented
10325
10326       Since: 2.3
10327
10328       If: "defined(CONFIG_VNC)"
10329
10330       VncServerInfo2 (Object)
10331
10332       The network connection information for server
10333
10334       Members:
10335
10336       "auth: VncPrimaryAuth"
10337           The current authentication type used by the servers
10338
10339       "vencrypt: VncVencryptSubAuth" (optional)
10340           The vencrypt sub authentication type used by the servers, only
10341           specified in case auth == vencrypt.
10342
10343       The members of "VncBasicInfo"
10344
10345       Since: 2.9
10346
10347       If: "defined(CONFIG_VNC)"
10348
10349       VncInfo2 (Object)
10350
10351       Information about a vnc server
10352
10353       Members:
10354
10355       "id: string"
10356           vnc server name.
10357
10358       "server: array of VncServerInfo2"
10359           A list of "VncBasincInfo" describing all listening sockets.  The
10360           list can be empty (in case the vnc server is disabled).  It also
10361           may have multiple entries: normal + websocket, possibly also ipv4 +
10362           ipv6 in the future.
10363
10364       "clients: array of VncClientInfo"
10365           A list of "VncClientInfo" of all currently connected clients.  The
10366           list can be empty, for obvious reasons.
10367
10368       "auth: VncPrimaryAuth"
10369           The current authentication type used by the non-websockets servers
10370
10371       "vencrypt: VncVencryptSubAuth" (optional)
10372           The vencrypt authentication type used by the servers, only
10373           specified in case auth == vencrypt.
10374
10375       "display: string" (optional)
10376           The display device the vnc server is linked to.
10377
10378       Since: 2.3
10379
10380       If: "defined(CONFIG_VNC)"
10381
10382       query-vnc  (Command) Returns information about the current VNC server
10383
10384       Returns: "VncInfo"
10385
10386       Since: 0.14.0
10387
10388       Example:
10389
10390               -> { "execute": "query-vnc" }
10391               <- { "return": {
10392                        "enabled":true,
10393                        "host":"0.0.0.0",
10394                        "service":"50402",
10395                        "auth":"vnc",
10396                        "family":"ipv4",
10397                        "clients":[
10398                           {
10399                              "host":"127.0.0.1",
10400                              "service":"50401",
10401                              "family":"ipv4"
10402                           }
10403                        ]
10404                     }
10405                  }
10406
10407       If: "defined(CONFIG_VNC)"
10408
10409       query-vnc-servers  (Command) Returns a list of vnc servers.  The list
10410       can be empty.
10411
10412       Returns: a list of "VncInfo2"
10413
10414       Since: 2.3
10415
10416       If: "defined(CONFIG_VNC)"
10417
10418       change-vnc-password  (Command) Change the VNC server password.
10419
10420       Arguments:
10421
10422       "password: string"
10423           the new password to use with VNC authentication
10424
10425       Since: 1.1
10426
10427       Notes: An empty password in this command will set the password to the
10428       empty string.  Existing clients are unaffected by executing this
10429       command.
10430
10431       If: "defined(CONFIG_VNC)"
10432
10433       VNC_CONNECTED  (Event) Emitted when a VNC client establishes a
10434       connection
10435
10436       Arguments:
10437
10438       "server: VncServerInfo"
10439           server information
10440
10441       "client: VncBasicInfo"
10442           client information
10443
10444       Note: This event is emitted before any authentication takes place, thus
10445       the authentication ID is not provided
10446
10447       Since: 0.13.0
10448
10449       Example:
10450
10451               <- { "event": "VNC_CONNECTED",
10452                    "data": {
10453                          "server": { "auth": "sasl", "family": "ipv4",
10454                                      "service": "5901", "host": "0.0.0.0" },
10455                          "client": { "family": "ipv4", "service": "58425",
10456                                      "host": "127.0.0.1" } },
10457                    "timestamp": { "seconds": 1262976601, "microseconds": 975795 } }
10458
10459       If: "defined(CONFIG_VNC)"
10460
10461       VNC_INITIALIZED  (Event) Emitted after authentication takes place (if
10462       any) and the VNC session is made active
10463
10464       Arguments:
10465
10466       "server: VncServerInfo"
10467           server information
10468
10469       "client: VncClientInfo"
10470           client information
10471
10472       Since: 0.13.0
10473
10474       Example:
10475
10476               <-  { "event": "VNC_INITIALIZED",
10477                     "data": {
10478                          "server": { "auth": "sasl", "family": "ipv4",
10479                                      "service": "5901", "host": "0.0.0.0"},
10480                          "client": { "family": "ipv4", "service": "46089",
10481                                      "host": "127.0.0.1", "sasl_username": "luiz" } },
10482                     "timestamp": { "seconds": 1263475302, "microseconds": 150772 } }
10483
10484       If: "defined(CONFIG_VNC)"
10485
10486       VNC_DISCONNECTED  (Event) Emitted when the connection is closed
10487
10488       Arguments:
10489
10490       "server: VncServerInfo"
10491           server information
10492
10493       "client: VncClientInfo"
10494           client information
10495
10496       Since: 0.13.0
10497
10498       Example:
10499
10500               <- { "event": "VNC_DISCONNECTED",
10501                    "data": {
10502                          "server": { "auth": "sasl", "family": "ipv4",
10503                                      "service": "5901", "host": "0.0.0.0" },
10504                          "client": { "family": "ipv4", "service": "58425",
10505                                      "host": "127.0.0.1", "sasl_username": "luiz" } },
10506                    "timestamp": { "seconds": 1262976601, "microseconds": 975795 } }
10507
10508       If: "defined(CONFIG_VNC)"
10509
10510   Input
10511       MouseInfo (Object)
10512
10513       Information about a mouse device.
10514
10515       Members:
10516
10517       "name: string"
10518           the name of the mouse device
10519
10520       "index: int"
10521           the index of the mouse device
10522
10523       "current: boolean"
10524           true if this device is currently receiving mouse events
10525
10526       "absolute: boolean"
10527           true if this device supports absolute coordinates as input
10528
10529       Since: 0.14.0
10530
10531       query-mice  (Command) Returns information about each active mouse
10532       device
10533
10534       Returns: a list of "MouseInfo" for each device
10535
10536       Since: 0.14.0
10537
10538       Example:
10539
10540               -> { "execute": "query-mice" }
10541               <- { "return": [
10542                        {
10543                           "name":"QEMU Microsoft Mouse",
10544                           "index":0,
10545                           "current":false,
10546                           "absolute":false
10547                        },
10548                        {
10549                           "name":"QEMU PS/2 Mouse",
10550                           "index":1,
10551                           "current":true,
10552                           "absolute":true
10553                        }
10554                     ]
10555                  }
10556
10557       QKeyCode (Enum)
10558
10559       An enumeration of key name.
10560
10561       This is used by the "send-key" command.
10562
10563       Values:
10564
10565       "unmapped"
10566           since 2.0
10567
10568       "pause"
10569           since 2.0
10570
10571       "ro"
10572           since 2.4
10573
10574       "kp_comma"
10575           since 2.4
10576
10577       "kp_equals"
10578           since 2.6
10579
10580       "power"
10581           since 2.6
10582
10583       "hiragana"
10584           since 2.9
10585
10586       "henkan"
10587           since 2.9
10588
10589       "yen"
10590           since 2.9
10591
10592       "sleep"
10593           since 2.10
10594
10595       "wake"
10596           since 2.10
10597
10598       "audionext"
10599           since 2.10
10600
10601       "audioprev"
10602           since 2.10
10603
10604       "audiostop"
10605           since 2.10
10606
10607       "audioplay"
10608           since 2.10
10609
10610       "audiomute"
10611           since 2.10
10612
10613       "volumeup"
10614           since 2.10
10615
10616       "volumedown"
10617           since 2.10
10618
10619       "mediaselect"
10620           since 2.10
10621
10622       "mail"
10623           since 2.10
10624
10625       "calculator"
10626           since 2.10
10627
10628       "computer"
10629           since 2.10
10630
10631       "ac_home"
10632           since 2.10
10633
10634       "ac_back"
10635           since 2.10
10636
10637       "ac_forward"
10638           since 2.10
10639
10640       "ac_refresh"
10641           since 2.10
10642
10643       "ac_bookmarks"
10644           since 2.10
10645
10646       "muhenkan"
10647           since 2.12
10648
10649       "katakanahiragana"
10650           since 2.12
10651
10652       "shift"
10653           Not documented
10654
10655       "shift_r"
10656           Not documented
10657
10658       "alt"
10659           Not documented
10660
10661       "alt_r"
10662           Not documented
10663
10664       "ctrl"
10665           Not documented
10666
10667       "ctrl_r"
10668           Not documented
10669
10670       "menu"
10671           Not documented
10672
10673       "esc"
10674           Not documented
10675
10676       1   Not documented
10677
10678       2   Not documented
10679
10680       3   Not documented
10681
10682       4   Not documented
10683
10684       5   Not documented
10685
10686       6   Not documented
10687
10688       7   Not documented
10689
10690       8   Not documented
10691
10692       9   Not documented
10693
10694       0   Not documented
10695
10696       "minus"
10697           Not documented
10698
10699       "equal"
10700           Not documented
10701
10702       "backspace"
10703           Not documented
10704
10705       "tab"
10706           Not documented
10707
10708       "q" Not documented
10709
10710       "w" Not documented
10711
10712       "e" Not documented
10713
10714       "r" Not documented
10715
10716       "t" Not documented
10717
10718       "y" Not documented
10719
10720       "u" Not documented
10721
10722       "i" Not documented
10723
10724       "o" Not documented
10725
10726       "p" Not documented
10727
10728       "bracket_left"
10729           Not documented
10730
10731       "bracket_right"
10732           Not documented
10733
10734       "ret"
10735           Not documented
10736
10737       "a" Not documented
10738
10739       "s" Not documented
10740
10741       "d" Not documented
10742
10743       "f" Not documented
10744
10745       "g" Not documented
10746
10747       "h" Not documented
10748
10749       "j" Not documented
10750
10751       "k" Not documented
10752
10753       "l" Not documented
10754
10755       "semicolon"
10756           Not documented
10757
10758       "apostrophe"
10759           Not documented
10760
10761       "grave_accent"
10762           Not documented
10763
10764       "backslash"
10765           Not documented
10766
10767       "z" Not documented
10768
10769       "x" Not documented
10770
10771       "c" Not documented
10772
10773       "v" Not documented
10774
10775       "b" Not documented
10776
10777       "n" Not documented
10778
10779       "m" Not documented
10780
10781       "comma"
10782           Not documented
10783
10784       "dot"
10785           Not documented
10786
10787       "slash"
10788           Not documented
10789
10790       "asterisk"
10791           Not documented
10792
10793       "spc"
10794           Not documented
10795
10796       "caps_lock"
10797           Not documented
10798
10799       "f1"
10800           Not documented
10801
10802       "f2"
10803           Not documented
10804
10805       "f3"
10806           Not documented
10807
10808       "f4"
10809           Not documented
10810
10811       "f5"
10812           Not documented
10813
10814       "f6"
10815           Not documented
10816
10817       "f7"
10818           Not documented
10819
10820       "f8"
10821           Not documented
10822
10823       "f9"
10824           Not documented
10825
10826       "f10"
10827           Not documented
10828
10829       "num_lock"
10830           Not documented
10831
10832       "scroll_lock"
10833           Not documented
10834
10835       "kp_divide"
10836           Not documented
10837
10838       "kp_multiply"
10839           Not documented
10840
10841       "kp_subtract"
10842           Not documented
10843
10844       "kp_add"
10845           Not documented
10846
10847       "kp_enter"
10848           Not documented
10849
10850       "kp_decimal"
10851           Not documented
10852
10853       "sysrq"
10854           Not documented
10855
10856       "kp_0"
10857           Not documented
10858
10859       "kp_1"
10860           Not documented
10861
10862       "kp_2"
10863           Not documented
10864
10865       "kp_3"
10866           Not documented
10867
10868       "kp_4"
10869           Not documented
10870
10871       "kp_5"
10872           Not documented
10873
10874       "kp_6"
10875           Not documented
10876
10877       "kp_7"
10878           Not documented
10879
10880       "kp_8"
10881           Not documented
10882
10883       "kp_9"
10884           Not documented
10885
10886       "less"
10887           Not documented
10888
10889       "f11"
10890           Not documented
10891
10892       "f12"
10893           Not documented
10894
10895       "print"
10896           Not documented
10897
10898       "home"
10899           Not documented
10900
10901       "pgup"
10902           Not documented
10903
10904       "pgdn"
10905           Not documented
10906
10907       "end"
10908           Not documented
10909
10910       "left"
10911           Not documented
10912
10913       "up"
10914           Not documented
10915
10916       "down"
10917           Not documented
10918
10919       "right"
10920           Not documented
10921
10922       "insert"
10923           Not documented
10924
10925       "delete"
10926           Not documented
10927
10928       "stop"
10929           Not documented
10930
10931       "again"
10932           Not documented
10933
10934       "props"
10935           Not documented
10936
10937       "undo"
10938           Not documented
10939
10940       "front"
10941           Not documented
10942
10943       "copy"
10944           Not documented
10945
10946       "open"
10947           Not documented
10948
10949       "paste"
10950           Not documented
10951
10952       "find"
10953           Not documented
10954
10955       "cut"
10956           Not documented
10957
10958       "lf"
10959           Not documented
10960
10961       "help"
10962           Not documented
10963
10964       "meta_l"
10965           Not documented
10966
10967       "meta_r"
10968           Not documented
10969
10970       "compose"
10971           Not documented
10972
10973       'sysrq' was mistakenly added to hack around the fact that the ps2
10974       driver was not generating correct scancodes sequences when 'alt+print'
10975       was pressed. This flaw is now fixed and the 'sysrq' key serves no
10976       further purpose. Any further use of 'sysrq' will be transparently
10977       changed to 'print', so they are effectively synonyms.
10978
10979       Since: 1.3.0
10980
10981       KeyValue (Object)
10982
10983       Represents a keyboard key.
10984
10985       Members:
10986
10987       "type"
10988           One of "number", "qcode"
10989
10990       "data: int" when "type" is "number"
10991       "data: QKeyCode" when "type" is "qcode"
10992
10993       Since: 1.3.0
10994
10995       send-key  (Command) Send keys to guest.
10996
10997       Arguments:
10998
10999       "keys: array of KeyValue"
11000           An array of "KeyValue" elements. All "KeyValues" in this array are
11001           simultaneously sent to the guest. A "KeyValue".number value is sent
11002           directly to the guest, while "KeyValue".qcode must be a valid
11003           "QKeyCode" value
11004
11005       "hold-time: int" (optional)
11006           time to delay key up events, milliseconds. Defaults to 100
11007
11008       Returns:
11009
11010       -   Nothing on success
11011
11012       -   If key is unknown or redundant, InvalidParameter
11013
11014       Since: 1.3.0
11015
11016       Example:
11017
11018               -> { "execute": "send-key",
11019                    "arguments": { "keys": [ { "type": "qcode", "data": "ctrl" },
11020                                             { "type": "qcode", "data": "alt" },
11021                                             { "type": "qcode", "data": "delete" } ] } }
11022               <- { "return": {} }
11023
11024       InputButton (Enum)
11025
11026       Button of a pointer input device (mouse, tablet).
11027
11028       Values:
11029
11030       "side"
11031           front side button of a 5-button mouse (since 2.9)
11032
11033       "extra"
11034           rear side button of a 5-button mouse (since 2.9)
11035
11036       "left"
11037           Not documented
11038
11039       "middle"
11040           Not documented
11041
11042       "right"
11043           Not documented
11044
11045       "wheel-up"
11046           Not documented
11047
11048       "wheel-down"
11049           Not documented
11050
11051       Since: 2.0
11052
11053       InputAxis (Enum)
11054
11055       Position axis of a pointer input device (mouse, tablet).
11056
11057       Values:
11058
11059       "x" Not documented
11060
11061       "y" Not documented
11062
11063       Since: 2.0
11064
11065       InputKeyEvent (Object)
11066
11067       Keyboard input event.
11068
11069       Members:
11070
11071       "key: KeyValue"
11072           Which key this event is for.
11073
11074       "down: boolean"
11075           True for key-down and false for key-up events.
11076
11077       Since: 2.0
11078
11079       InputBtnEvent (Object)
11080
11081       Pointer button input event.
11082
11083       Members:
11084
11085       "button: InputButton"
11086           Which button this event is for.
11087
11088       "down: boolean"
11089           True for key-down and false for key-up events.
11090
11091       Since: 2.0
11092
11093       InputMoveEvent (Object)
11094
11095       Pointer motion input event.
11096
11097       Members:
11098
11099       "axis: InputAxis"
11100           Which axis is referenced by "value".
11101
11102       "value: int"
11103           Pointer position.  For absolute coordinates the valid range is 0 ->
11104           0x7ffff
11105
11106       Since: 2.0
11107
11108       InputEvent (Object)
11109
11110       Input event union.
11111
11112       Members:
11113
11114       "type"
11115           the input type, one of:
11116
11117           -   'key': Input event of Keyboard
11118
11119           -   'btn': Input event of pointer buttons
11120
11121           -   'rel': Input event of relative pointer motion
11122
11123           -   'abs': Input event of absolute pointer motion
11124
11125       "data: InputKeyEvent" when "type" is "key"
11126       "data: InputBtnEvent" when "type" is "btn"
11127       "data: InputMoveEvent" when "type" is "rel"
11128       "data: InputMoveEvent" when "type" is "abs"
11129
11130       Since: 2.0
11131
11132       input-send-event  (Command) Send input event(s) to guest.
11133
11134       The "device" and "head" parameters can be used to send the input event
11135       to specific input devices in case (a) multiple input devices of the
11136       same kind are added to the virtual machine and (b) you have configured
11137       input routing (see docs/multiseat.txt) for those input devices.  The
11138       parameters work exactly like the device and head properties of input
11139       devices.  If "device" is missing, only devices that have no input
11140       routing config are admissible.  If "device" is specified, both input
11141       devices with and without input routing config are admissible, but
11142       devices with input routing config take precedence.
11143
11144       Arguments:
11145
11146       "device: string" (optional)
11147           display device to send event(s) to.
11148
11149       "head: int" (optional)
11150           head to send event(s) to, in case the display device supports
11151           multiple scanouts.
11152
11153       "events: array of InputEvent"
11154           List of InputEvent union.
11155
11156       Returns: Nothing on success.
11157
11158       Since: 2.6
11159
11160       Note: The consoles are visible in the qom tree, under
11161       /backend/console[$index]. They have a device link and head property, so
11162       it is possible to map which console belongs to which device and
11163       display.
11164
11165       Example:
11166
11167               1. Press left mouse button.
11168
11169               -> { "execute": "input-send-event",
11170                   "arguments": { "device": "video0",
11171                                  "events": [ { "type": "btn",
11172                                  "data" : { "down": true, "button": "left" } } ] } }
11173               <- { "return": {} }
11174
11175               -> { "execute": "input-send-event",
11176                   "arguments": { "device": "video0",
11177                                  "events": [ { "type": "btn",
11178                                  "data" : { "down": false, "button": "left" } } ] } }
11179               <- { "return": {} }
11180
11181               2. Press ctrl-alt-del.
11182
11183               -> { "execute": "input-send-event",
11184                    "arguments": { "events": [
11185                       { "type": "key", "data" : { "down": true,
11186                         "key": {"type": "qcode", "data": "ctrl" } } },
11187                       { "type": "key", "data" : { "down": true,
11188                         "key": {"type": "qcode", "data": "alt" } } },
11189                       { "type": "key", "data" : { "down": true,
11190                         "key": {"type": "qcode", "data": "delete" } } } ] } }
11191               <- { "return": {} }
11192
11193               3. Move mouse pointer to absolute coordinates (20000, 400).
11194
11195               -> { "execute": "input-send-event" ,
11196                 "arguments": { "events": [
11197                              { "type": "abs", "data" : { "axis": "x", "value" : 20000 } },
11198                              { "type": "abs", "data" : { "axis": "y", "value" : 400 } } ] } }
11199               <- { "return": {} }
11200
11201       GrabToggleKeys (Enum)
11202
11203       Keys to toggle input-linux between host and guest.
11204
11205       Values:
11206
11207       "ctrl-ctrl"
11208           Not documented
11209
11210       "alt-alt"
11211           Not documented
11212
11213       "shift-shift"
11214           Not documented
11215
11216       "meta-meta"
11217           Not documented
11218
11219       "scrolllock"
11220           Not documented
11221
11222       "ctrl-scrolllock"
11223           Not documented
11224
11225       Since: 4.0
11226
11227       DisplayGTK (Object)
11228
11229       GTK display options.
11230
11231       Members:
11232
11233       "grab-on-hover: boolean" (optional)
11234           Grab keyboard input on mouse hover.
11235
11236       "zoom-to-fit: boolean" (optional)
11237           Zoom guest display to fit into the host window.  When turned off
11238           the host window will be resized instead.  In case the display
11239           device can notify the guest on window resizes (virtio-gpu) this
11240           will default to "on", assuming the guest will resize the display to
11241           match the window size then.  Otherwise it defaults to "off".  Since
11242           3.1
11243
11244       Since: 2.12
11245
11246       DisplayEGLHeadless (Object)
11247
11248       EGL headless display options.
11249
11250       Members:
11251
11252       "rendernode: string" (optional)
11253           Which DRM render node should be used. Default is the first
11254           available node on the host.
11255
11256       Since: 3.1
11257
11258       DisplayGLMode (Enum)
11259
11260       Display OpenGL mode.
11261
11262       Values:
11263
11264       "off"
11265           Disable OpenGL (default).
11266
11267       "on"
11268           Use OpenGL, pick context type automatically.  Would better be named
11269           'auto' but is called 'on' for backward compatibility with bool
11270           type.
11271
11272       "core"
11273           Use OpenGL with Core (desktop) Context.
11274
11275       "es"
11276           Use OpenGL with ES (embedded systems) Context.
11277
11278       Since: 3.0
11279
11280       DisplayCurses (Object)
11281
11282       Curses display options.
11283
11284       Members:
11285
11286       "charset: string" (optional)
11287           Font charset used by guest (default: CP437).
11288
11289       Since: 4.0
11290
11291       DisplayType (Enum)
11292
11293       Display (user interface) type.
11294
11295       Values:
11296
11297       "default"
11298           The default user interface, selecting from the first available of
11299           gtk, sdl, cocoa, and vnc.
11300
11301       "none"
11302           No user interface or video output display. The guest will still see
11303           an emulated graphics card, but its output will not be displayed to
11304           the QEMU user.
11305
11306       "gtk"
11307           The GTK user interface.
11308
11309       "sdl"
11310           The SDL user interface.
11311
11312       "egl-headless"
11313           No user interface, offload GL operations to a local DRI device.
11314           Graphical display need to be paired with VNC or Spice. (Since 3.1)
11315
11316       "curses"
11317           Display video output via curses.  For graphics device models which
11318           support a text mode, QEMU can display this output using a
11319           curses/ncurses interface. Nothing is displayed when the graphics
11320           device is in graphical mode or if the graphics device does not
11321           support a text mode. Generally only the VGA device models support
11322           text mode.
11323
11324       "cocoa"
11325           The Cocoa user interface.
11326
11327       "spice-app"
11328           Set up a Spice server and run the default associated application to
11329           connect to it. The server will redirect the serial console and QEMU
11330           monitors. (Since 4.0)
11331
11332       Since: 2.12
11333
11334       DisplayOptions (Object)
11335
11336       Display (user interface) options.
11337
11338       Members:
11339
11340       "type: DisplayType"
11341           Which DisplayType qemu should use.
11342
11343       "full-screen: boolean" (optional)
11344           Start user interface in fullscreen mode (default: off).
11345
11346       "window-close: boolean" (optional)
11347           Allow to quit qemu with window close button (default: on).
11348
11349       "show-cursor: boolean" (optional)
11350           Force showing the mouse cursor (default: off).  (since: 5.0)
11351
11352       "gl: DisplayGLMode" (optional)
11353           Enable OpenGL support (default: off).
11354
11355       The members of "DisplayGTK" when "type" is "gtk"
11356       The members of "DisplayCurses" when "type" is "curses"
11357       The members of "DisplayEGLHeadless" when "type" is "egl-headless"
11358
11359       Since: 2.12
11360
11361       query-display-options  (Command) Returns information about display
11362       configuration
11363
11364       Returns: "DisplayOptions"
11365
11366       Since: 3.1
11367
11368       QAuthZListPolicy (Enum)
11369
11370       The authorization policy result
11371
11372       Values:
11373
11374       "deny"
11375           deny access
11376
11377       "allow"
11378           allow access
11379
11380       Since: 4.0
11381
11382       QAuthZListFormat (Enum)
11383
11384       The authorization policy match format
11385
11386       Values:
11387
11388       "exact"
11389           an exact string match
11390
11391       "glob"
11392           string with ? and * shell wildcard support
11393
11394       Since: 4.0
11395
11396       QAuthZListRule (Object)
11397
11398       A single authorization rule.
11399
11400       Members:
11401
11402       "match: string"
11403           a string or glob to match against a user identity
11404
11405       "policy: QAuthZListPolicy"
11406           the result to return if "match" evaluates to true
11407
11408       "format: QAuthZListFormat" (optional)
11409           the format of the "match" rule (default 'exact')
11410
11411       Since: 4.0
11412
11413       QAuthZListRuleListHack (Object)
11414
11415       Not exposed via QMP; hack to generate QAuthZListRuleList for use
11416       internally by the code.
11417
11418       Members:
11419
11420       "unused: array of QAuthZListRule"
11421           Not documented
11422
11423       Since: 4.0
11424
11425   Migration
11426       MigrationStats (Object)
11427
11428       Detailed migration status.
11429
11430       Members:
11431
11432       "transferred: int"
11433           amount of bytes already transferred to the target VM
11434
11435       "remaining: int"
11436           amount of bytes remaining to be transferred to the target VM
11437
11438       "total: int"
11439           total amount of bytes involved in the migration process
11440
11441       "duplicate: int"
11442           number of duplicate (zero) pages (since 1.2)
11443
11444       "skipped: int"
11445           number of skipped zero pages (since 1.5)
11446
11447       "normal: int"
11448           number of normal pages (since 1.2)
11449
11450       "normal-bytes: int"
11451           number of normal bytes sent (since 1.2)
11452
11453       "dirty-pages-rate: int"
11454           number of pages dirtied by second by the guest (since 1.3)
11455
11456       "mbps: number"
11457           throughput in megabits/sec. (since 1.6)
11458
11459       "dirty-sync-count: int"
11460           number of times that dirty ram was synchronized (since 2.1)
11461
11462       "postcopy-requests: int"
11463           The number of page requests received from the destination (since
11464           2.7)
11465
11466       "page-size: int"
11467           The number of bytes per page for the various page-based statistics
11468           (since 2.10)
11469
11470       "multifd-bytes: int"
11471           The number of bytes sent through multifd (since 3.0)
11472
11473       "pages-per-second: int"
11474           the number of memory pages transferred per second (Since 4.0)
11475
11476       Since: 0.14.0
11477
11478       XBZRLECacheStats (Object)
11479
11480       Detailed XBZRLE migration cache statistics
11481
11482       Members:
11483
11484       "cache-size: int"
11485           XBZRLE cache size
11486
11487       "bytes: int"
11488           amount of bytes already transferred to the target VM
11489
11490       "pages: int"
11491           amount of pages transferred to the target VM
11492
11493       "cache-miss: int"
11494           number of cache miss
11495
11496       "cache-miss-rate: number"
11497           rate of cache miss (since 2.1)
11498
11499       "encoding-rate: number"
11500           rate of encoded bytes (since 5.1)
11501
11502       "overflow: int"
11503           number of overflows
11504
11505       Since: 1.2
11506
11507       CompressionStats (Object)
11508
11509       Detailed migration compression statistics
11510
11511       Members:
11512
11513       "pages: int"
11514           amount of pages compressed and transferred to the target VM
11515
11516       "busy: int"
11517           count of times that no free thread was available to compress data
11518
11519       "busy-rate: number"
11520           rate of thread busy
11521
11522       "compressed-size: int"
11523           amount of bytes after compression
11524
11525       "compression-rate: number"
11526           rate of compressed size
11527
11528       Since: 3.1
11529
11530       MigrationStatus (Enum)
11531
11532       An enumeration of migration status.
11533
11534       Values:
11535
11536       "none"
11537           no migration has ever happened.
11538
11539       "setup"
11540           migration process has been initiated.
11541
11542       "cancelling"
11543           in the process of cancelling migration.
11544
11545       "cancelled"
11546           cancelling migration is finished.
11547
11548       "active"
11549           in the process of doing migration.
11550
11551       "postcopy-active"
11552           like active, but now in postcopy mode. (since 2.5)
11553
11554       "postcopy-paused"
11555           during postcopy but paused. (since 3.0)
11556
11557       "postcopy-recover"
11558           trying to recover from a paused postcopy. (since 3.0)
11559
11560       "completed"
11561           migration is finished.
11562
11563       "failed"
11564           some error occurred during migration process.
11565
11566       "colo"
11567           VM is in the process of fault tolerance, VM can not get into this
11568           state unless colo capability is enabled for migration. (since 2.8)
11569
11570       "pre-switchover"
11571           Paused before device serialisation. (since 2.11)
11572
11573       "device"
11574           During device serialisation when pause-before-switchover is enabled
11575           (since 2.11)
11576
11577       "wait-unplug"
11578           wait for device unplug request by guest OS to be completed.  (since
11579           4.2)
11580
11581       Since: 2.3
11582
11583       MigrationInfo (Object)
11584
11585       Information about current migration process.
11586
11587       Members:
11588
11589       "status: MigrationStatus" (optional)
11590           "MigrationStatus" describing the current migration status.  If this
11591           field is not returned, no migration process has been initiated
11592
11593       "ram: MigrationStats" (optional)
11594           "MigrationStats" containing detailed migration status, only
11595           returned if status is 'active' or 'completed'(since 1.2)
11596
11597       "disk: MigrationStats" (optional)
11598           "MigrationStats" containing detailed disk migration status, only
11599           returned if status is 'active' and it is a block migration
11600
11601       "xbzrle-cache: XBZRLECacheStats" (optional)
11602           "XBZRLECacheStats" containing detailed XBZRLE migration statistics,
11603           only returned if XBZRLE feature is on and status is 'active' or
11604           'completed' (since 1.2)
11605
11606       "total-time: int" (optional)
11607           total amount of milliseconds since migration started.  If migration
11608           has ended, it returns the total migration time. (since 1.2)
11609
11610       "downtime: int" (optional)
11611           only present when migration finishes correctly total downtime in
11612           milliseconds for the guest.  (since 1.3)
11613
11614       "expected-downtime: int" (optional)
11615           only present while migration is active expected downtime in
11616           milliseconds for the guest in last walk of the dirty bitmap. (since
11617           1.3)
11618
11619       "setup-time: int" (optional)
11620           amount of setup time in milliseconds before the iterations begin
11621           but after the QMP command is issued. This is designed to provide an
11622           accounting of any activities (such as RDMA pinning) which may be
11623           expensive, but do not actually occur during the iterative migration
11624           rounds themselves. (since 1.6)
11625
11626       "cpu-throttle-percentage: int" (optional)
11627           percentage of time guest cpus are being throttled during auto-
11628           converge. This is only present when auto-converge has started
11629           throttling guest cpus. (Since 2.7)
11630
11631       "error-desc: string" (optional)
11632           the human readable error description string, when "status" is
11633           'failed'. Clients should not attempt to parse the error strings.
11634           (Since 2.7)
11635
11636       "postcopy-blocktime: int" (optional)
11637           total time when all vCPU were blocked during postcopy live
11638           migration. This is only present when the postcopy-blocktime
11639           migration capability is enabled. (Since 3.0)
11640
11641       "postcopy-vcpu-blocktime: array of int" (optional)
11642           list of the postcopy blocktime per vCPU.  This is only present when
11643           the postcopy-blocktime migration capability is enabled. (Since 3.0)
11644
11645       "compression: CompressionStats" (optional)
11646           migration compression statistics, only returned if compression
11647           feature is on and status is 'active' or 'completed' (Since 3.1)
11648
11649       "socket-address: array of SocketAddress" (optional)
11650           Only used for tcp, to know what the real port is (Since 4.0)
11651
11652       Since: 0.14.0
11653
11654       query-migrate  (Command) Returns information about current migration
11655       process. If migration is active there will be another json-object with
11656       RAM migration status and if block migration is active another one with
11657       block migration status.
11658
11659       Returns: "MigrationInfo"
11660
11661       Since: 0.14.0
11662
11663       Example:
11664
11665               1. Before the first migration
11666
11667               -> { "execute": "query-migrate" }
11668               <- { "return": {} }
11669
11670               2. Migration is done and has succeeded
11671
11672               -> { "execute": "query-migrate" }
11673               <- { "return": {
11674                       "status": "completed",
11675                       "total-time":12345,
11676                       "setup-time":12345,
11677                       "downtime":12345,
11678                       "ram":{
11679                         "transferred":123,
11680                         "remaining":123,
11681                         "total":246,
11682                         "duplicate":123,
11683                         "normal":123,
11684                         "normal-bytes":123456,
11685                         "dirty-sync-count":15
11686                       }
11687                    }
11688                  }
11689
11690               3. Migration is done and has failed
11691
11692               -> { "execute": "query-migrate" }
11693               <- { "return": { "status": "failed" } }
11694
11695               4. Migration is being performed and is not a block migration:
11696
11697               -> { "execute": "query-migrate" }
11698               <- {
11699                     "return":{
11700                        "status":"active",
11701                        "total-time":12345,
11702                        "setup-time":12345,
11703                        "expected-downtime":12345,
11704                        "ram":{
11705                           "transferred":123,
11706                           "remaining":123,
11707                           "total":246,
11708                           "duplicate":123,
11709                           "normal":123,
11710                           "normal-bytes":123456,
11711                           "dirty-sync-count":15
11712                        }
11713                     }
11714                  }
11715
11716               5. Migration is being performed and is a block migration:
11717
11718               -> { "execute": "query-migrate" }
11719               <- {
11720                     "return":{
11721                        "status":"active",
11722                        "total-time":12345,
11723                        "setup-time":12345,
11724                        "expected-downtime":12345,
11725                        "ram":{
11726                           "total":1057024,
11727                           "remaining":1053304,
11728                           "transferred":3720,
11729                           "duplicate":123,
11730                           "normal":123,
11731                           "normal-bytes":123456,
11732                           "dirty-sync-count":15
11733                        },
11734                        "disk":{
11735                           "total":20971520,
11736                           "remaining":20880384,
11737                           "transferred":91136
11738                        }
11739                     }
11740                  }
11741
11742               6. Migration is being performed and XBZRLE is active:
11743
11744               -> { "execute": "query-migrate" }
11745               <- {
11746                     "return":{
11747                        "status":"active",
11748                        "total-time":12345,
11749                        "setup-time":12345,
11750                        "expected-downtime":12345,
11751                        "ram":{
11752                           "total":1057024,
11753                           "remaining":1053304,
11754                           "transferred":3720,
11755                           "duplicate":10,
11756                           "normal":3333,
11757                           "normal-bytes":3412992,
11758                           "dirty-sync-count":15
11759                        },
11760                        "xbzrle-cache":{
11761                           "cache-size":67108864,
11762                           "bytes":20971520,
11763                           "pages":2444343,
11764                           "cache-miss":2244,
11765                           "cache-miss-rate":0.123,
11766                           "encoding-rate":80.1,
11767                           "overflow":34434
11768                        }
11769                     }
11770                  }
11771
11772       MigrationCapability (Enum)
11773
11774       Migration capabilities enumeration
11775
11776       Values:
11777
11778       "xbzrle"
11779           Migration supports xbzrle (Xor Based Zero Run Length Encoding).
11780           This feature allows us to minimize migration traffic for certain
11781           work loads, by sending compressed difference of the pages
11782
11783       "rdma-pin-all"
11784           Controls whether or not the entire VM memory footprint is mlock()'d
11785           on demand or all at once. Refer to docs/rdma.txt for usage.
11786           Disabled by default. (since 2.0)
11787
11788       "zero-blocks"
11789           During storage migration encode blocks of zeroes efficiently. This
11790           essentially saves 1MB of zeroes per block on the wire. Enabling
11791           requires source and target VM to support this feature. To enable it
11792           is sufficient to enable the capability on the source VM. The
11793           feature is disabled by default. (since 1.6)
11794
11795       "compress"
11796           Use multiple compression threads to accelerate live migration.
11797           This feature can help to reduce the migration traffic, by sending
11798           compressed pages. Please note that if compress and xbzrle are both
11799           on, compress only takes effect in the ram bulk stage, after that,
11800           it will be disabled and only xbzrle takes effect, this can help to
11801           minimize migration traffic. The feature is disabled by default.
11802           (since 2.4 )
11803
11804       "events"
11805           generate events for each migration state change (since 2.4 )
11806
11807       "auto-converge"
11808           If enabled, QEMU will automatically throttle down the guest to
11809           speed up convergence of RAM migration. (since 1.6)
11810
11811       "postcopy-ram"
11812           Start executing on the migration target before all of RAM has been
11813           migrated, pulling the remaining pages along as needed. The capacity
11814           must have the same setting on both source and target or migration
11815           will not even start. NOTE: If the migration fails during postcopy
11816           the VM will fail.  (since 2.6)
11817
11818       "x-colo"
11819           If enabled, migration will never end, and the state of the VM on
11820           the primary side will be migrated continuously to the VM on
11821           secondary side, this process is called COarse-Grain LOck Stepping
11822           (COLO) for Non-stop Service. (since 2.8)
11823
11824       "release-ram"
11825           if enabled, qemu will free the migrated ram pages on the source
11826           during postcopy-ram migration. (since 2.9)
11827
11828       "block"
11829           If enabled, QEMU will also migrate the contents of all block
11830           devices.  Default is disabled.  A possible alternative uses mirror
11831           jobs to a builtin NBD server on the destination, which offers more
11832           flexibility.  (Since 2.10)
11833
11834       "return-path"
11835           If enabled, migration will use the return path even for precopy.
11836           (since 2.10)
11837
11838       "pause-before-switchover"
11839           Pause outgoing migration before serialising device state and before
11840           disabling block IO (since 2.11)
11841
11842       "multifd"
11843           Use more than one fd for migration (since 4.0)
11844
11845       "dirty-bitmaps"
11846           If enabled, QEMU will migrate named dirty bitmaps.  (since 2.12)
11847
11848       "postcopy-blocktime"
11849           Calculate downtime for postcopy live migration (since 3.0)
11850
11851       "late-block-activate"
11852           If enabled, the destination will not activate block devices (and
11853           thus take locks) immediately at the end of migration.  (since 3.0)
11854
11855       "x-ignore-shared"
11856           If enabled, QEMU will not migrate shared memory (since 4.0)
11857
11858       "validate-uuid"
11859           Send the UUID of the source to allow the destination to ensure it
11860           is the same. (since 4.2)
11861
11862       Since: 1.2
11863
11864       MigrationCapabilityStatus (Object)
11865
11866       Migration capability information
11867
11868       Members:
11869
11870       "capability: MigrationCapability"
11871           capability enum
11872
11873       "state: boolean"
11874           capability state bool
11875
11876       Since: 1.2
11877
11878       migrate-set-capabilities  (Command) Enable/Disable the following
11879       migration capabilities (like xbzrle)
11880
11881       Arguments:
11882
11883       "capabilities: array of MigrationCapabilityStatus"
11884           json array of capability modifications to make
11885
11886       Since: 1.2
11887
11888       Example:
11889
11890               -> { "execute": "migrate-set-capabilities" , "arguments":
11891                    { "capabilities": [ { "capability": "xbzrle", "state": true } ] } }
11892
11893       query-migrate-capabilities  (Command) Returns information about the
11894       current migration capabilities status
11895
11896       Returns: "MigrationCapabilitiesStatus"
11897
11898       Since: 1.2
11899
11900       Example:
11901
11902               -> { "execute": "query-migrate-capabilities" }
11903               <- { "return": [
11904                     {"state": false, "capability": "xbzrle"},
11905                     {"state": false, "capability": "rdma-pin-all"},
11906                     {"state": false, "capability": "auto-converge"},
11907                     {"state": false, "capability": "zero-blocks"},
11908                     {"state": false, "capability": "compress"},
11909                     {"state": true, "capability": "events"},
11910                     {"state": false, "capability": "postcopy-ram"},
11911                     {"state": false, "capability": "x-colo"}
11912                  ]}
11913
11914       MultiFDCompression (Enum)
11915
11916       An enumeration of multifd compression methods.
11917
11918       Values:
11919
11920       "none"
11921           no compression.
11922
11923       "zlib"
11924           use zlib compression method.
11925
11926       "zstd"
11927           use zstd compression method.  If: "defined(CONFIG_ZSTD)"
11928
11929       Since: 5.0
11930
11931       MigrationParameter (Enum)
11932
11933       Migration parameters enumeration
11934
11935       Values:
11936
11937       "announce-initial"
11938           Initial delay (in milliseconds) before sending the first announce
11939           (Since 4.0)
11940
11941       "announce-max"
11942           Maximum delay (in milliseconds) between packets in the announcement
11943           (Since 4.0)
11944
11945       "announce-rounds"
11946           Number of self-announce packets sent after migration (Since 4.0)
11947
11948       "announce-step"
11949           Increase in delay (in milliseconds) between subsequent packets in
11950           the announcement (Since 4.0)
11951
11952       "compress-level"
11953           Set the compression level to be used in live migration, the
11954           compression level is an integer between 0 and 9, where 0 means no
11955           compression, 1 means the best compression speed, and 9 means best
11956           compression ratio which will consume more CPU.
11957
11958       "compress-threads"
11959           Set compression thread count to be used in live migration, the
11960           compression thread count is an integer between 1 and 255.
11961
11962       "compress-wait-thread"
11963           Controls behavior when all compression threads are currently busy.
11964           If true (default), wait for a free compression thread to become
11965           available; otherwise, send the page uncompressed. (Since 3.1)
11966
11967       "decompress-threads"
11968           Set decompression thread count to be used in live migration, the
11969           decompression thread count is an integer between 1 and 255.
11970           Usually, decompression is at least 4 times as fast as compression,
11971           so set the decompress-threads to the number about 1/4 of compress-
11972           threads is adequate.
11973
11974       "throttle-trigger-threshold"
11975           The ratio of bytes_dirty_period and bytes_xfer_period to trigger
11976           throttling. It is expressed as percentage.  The default value is
11977           50. (Since 5.0)
11978
11979       "cpu-throttle-initial"
11980           Initial percentage of time guest cpus are throttled when migration
11981           auto-converge is activated. The default value is 20. (Since 2.7)
11982
11983       "cpu-throttle-increment"
11984           throttle percentage increase each time auto-converge detects that
11985           migration is not making progress. The default value is 10. (Since
11986           2.7)
11987
11988       "cpu-throttle-tailslow"
11989           Make CPU throttling slower at tail stage At the tail stage of
11990           throttling, the Guest is very sensitive to CPU percentage while the
11991           "cpu-throttle" -increment is excessive usually at tail stage.  If
11992           this parameter is true, we will compute the ideal CPU percentage
11993           used by the Guest, which may exactly make the dirty rate match the
11994           dirty rate threshold. Then we will choose a smaller throttle
11995           increment between the one specified by "cpu-throttle-increment" and
11996           the one generated by ideal CPU percentage.  Therefore, it is
11997           compatible to traditional throttling, meanwhile the throttle
11998           increment won't be excessive at tail stage.  The default value is
11999           false. (Since 5.1)
12000
12001       "tls-creds"
12002           ID of the 'tls-creds' object that provides credentials for
12003           establishing a TLS connection over the migration data channel.  On
12004           the outgoing side of the migration, the credentials must be for a
12005           'client' endpoint, while for the incoming side the credentials must
12006           be for a 'server' endpoint. Setting this will enable TLS for all
12007           migrations. The default is unset, resulting in unsecured migration
12008           at the QEMU level. (Since 2.7)
12009
12010       "tls-hostname"
12011           hostname of the target host for the migration. This is required
12012           when using x509 based TLS credentials and the migration URI does
12013           not already include a hostname. For example if using fd: or exec:
12014           based migration, the hostname must be provided so that the server's
12015           x509 certificate identity can be validated. (Since 2.7)
12016
12017       "tls-authz"
12018           ID of the 'authz' object subclass that provides access control
12019           checking of the TLS x509 certificate distinguished name.  This
12020           object is only resolved at time of use, so can be deleted and
12021           recreated on the fly while the migration server is active.  If
12022           missing, it will default to denying access (Since 4.0)
12023
12024       "max-bandwidth"
12025           to set maximum speed for migration. maximum speed in bytes per
12026           second. (Since 2.8)
12027
12028       "downtime-limit"
12029           set maximum tolerated downtime for migration. maximum downtime in
12030           milliseconds (Since 2.8)
12031
12032       "x-checkpoint-delay"
12033           The delay time (in ms) between two COLO checkpoints in periodic
12034           mode. (Since 2.8)
12035
12036       "block-incremental"
12037           Affects how much storage is migrated when the block migration
12038           capability is enabled.  When false, the entire storage backing
12039           chain is migrated into a flattened image at the destination; when
12040           true, only the active qcow2 layer is migrated and the destination
12041           must already have access to the same backing chain as was used on
12042           the source.  (since 2.10)
12043
12044       "multifd-channels"
12045           Number of channels used to migrate data in parallel. This is the
12046           same number that the number of sockets used for migration.  The
12047           default value is 2 (since 4.0)
12048
12049       "xbzrle-cache-size"
12050           cache size to be used by XBZRLE migration.  It needs to be a
12051           multiple of the target page size and a power of 2 (Since 2.11)
12052
12053       "max-postcopy-bandwidth"
12054           Background transfer bandwidth during postcopy.  Defaults to 0
12055           (unlimited).  In bytes per second.  (Since 3.0)
12056
12057       "max-cpu-throttle"
12058           maximum cpu throttle percentage.  Defaults to 99. (Since 3.1)
12059
12060       "multifd-compression"
12061           Which compression method to use.  Defaults to none. (Since 5.0)
12062
12063       "multifd-zlib-level"
12064           Set the compression level to be used in live migration, the
12065           compression level is an integer between 0 and 9, where 0 means no
12066           compression, 1 means the best compression speed, and 9 means best
12067           compression ratio which will consume more CPU.  Defaults to 1.
12068           (Since 5.0)
12069
12070       "multifd-zstd-level"
12071           Set the compression level to be used in live migration, the
12072           compression level is an integer between 0 and 20, where 0 means no
12073           compression, 1 means the best compression speed, and 20 means best
12074           compression ratio which will consume more CPU.  Defaults to 1.
12075           (Since 5.0)
12076
12077       Since: 2.4
12078
12079       MigrateSetParameters (Object)
12080
12081       Members:
12082
12083       "announce-initial: int" (optional)
12084           Initial delay (in milliseconds) before sending the first announce
12085           (Since 4.0)
12086
12087       "announce-max: int" (optional)
12088           Maximum delay (in milliseconds) between packets in the announcement
12089           (Since 4.0)
12090
12091       "announce-rounds: int" (optional)
12092           Number of self-announce packets sent after migration (Since 4.0)
12093
12094       "announce-step: int" (optional)
12095           Increase in delay (in milliseconds) between subsequent packets in
12096           the announcement (Since 4.0)
12097
12098       "compress-level: int" (optional)
12099           compression level
12100
12101       "compress-threads: int" (optional)
12102           compression thread count
12103
12104       "compress-wait-thread: boolean" (optional)
12105           Controls behavior when all compression threads are currently busy.
12106           If true (default), wait for a free compression thread to become
12107           available; otherwise, send the page uncompressed. (Since 3.1)
12108
12109       "decompress-threads: int" (optional)
12110           decompression thread count
12111
12112       "throttle-trigger-threshold: int" (optional)
12113           The ratio of bytes_dirty_period and bytes_xfer_period to trigger
12114           throttling. It is expressed as percentage.  The default value is
12115           50. (Since 5.0)
12116
12117       "cpu-throttle-initial: int" (optional)
12118           Initial percentage of time guest cpus are throttled when migration
12119           auto-converge is activated.  The default value is 20. (Since 2.7)
12120
12121       "cpu-throttle-increment: int" (optional)
12122           throttle percentage increase each time auto-converge detects that
12123           migration is not making progress. The default value is 10. (Since
12124           2.7)
12125
12126       "cpu-throttle-tailslow: boolean" (optional)
12127           Make CPU throttling slower at tail stage At the tail stage of
12128           throttling, the Guest is very sensitive to CPU percentage while the
12129           "cpu-throttle" -increment is excessive usually at tail stage.  If
12130           this parameter is true, we will compute the ideal CPU percentage
12131           used by the Guest, which may exactly make the dirty rate match the
12132           dirty rate threshold. Then we will choose a smaller throttle
12133           increment between the one specified by "cpu-throttle-increment" and
12134           the one generated by ideal CPU percentage.  Therefore, it is
12135           compatible to traditional throttling, meanwhile the throttle
12136           increment won't be excessive at tail stage.  The default value is
12137           false. (Since 5.1)
12138
12139       "tls-creds: StrOrNull" (optional)
12140           ID of the 'tls-creds' object that provides credentials for
12141           establishing a TLS connection over the migration data channel. On
12142           the outgoing side of the migration, the credentials must be for a
12143           'client' endpoint, while for the incoming side the credentials must
12144           be for a 'server' endpoint. Setting this to a non-empty string
12145           enables TLS for all migrations.  An empty string means that QEMU
12146           will use plain text mode for migration, rather than TLS (Since 2.9)
12147           Previously (since 2.7), this was reported by omitting tls-creds
12148           instead.
12149
12150       "tls-hostname: StrOrNull" (optional)
12151           hostname of the target host for the migration. This is required
12152           when using x509 based TLS credentials and the migration URI does
12153           not already include a hostname. For example if using fd: or exec:
12154           based migration, the hostname must be provided so that the server's
12155           x509 certificate identity can be validated. (Since 2.7) An empty
12156           string means that QEMU will use the hostname associated with the
12157           migration URI, if any. (Since 2.9) Previously (since 2.7), this was
12158           reported by omitting tls-hostname instead.
12159
12160       "max-bandwidth: int" (optional)
12161           to set maximum speed for migration. maximum speed in bytes per
12162           second. (Since 2.8)
12163
12164       "downtime-limit: int" (optional)
12165           set maximum tolerated downtime for migration. maximum downtime in
12166           milliseconds (Since 2.8)
12167
12168       "x-checkpoint-delay: int" (optional)
12169           the delay time between two COLO checkpoints. (Since 2.8)
12170
12171       "block-incremental: boolean" (optional)
12172           Affects how much storage is migrated when the block migration
12173           capability is enabled.  When false, the entire storage backing
12174           chain is migrated into a flattened image at the destination; when
12175           true, only the active qcow2 layer is migrated and the destination
12176           must already have access to the same backing chain as was used on
12177           the source.  (since 2.10)
12178
12179       "multifd-channels: int" (optional)
12180           Number of channels used to migrate data in parallel. This is the
12181           same number that the number of sockets used for migration.  The
12182           default value is 2 (since 4.0)
12183
12184       "xbzrle-cache-size: int" (optional)
12185           cache size to be used by XBZRLE migration.  It needs to be a
12186           multiple of the target page size and a power of 2 (Since 2.11)
12187
12188       "max-postcopy-bandwidth: int" (optional)
12189           Background transfer bandwidth during postcopy.  Defaults to 0
12190           (unlimited).  In bytes per second.  (Since 3.0)
12191
12192       "max-cpu-throttle: int" (optional)
12193           maximum cpu throttle percentage.  The default value is 99. (Since
12194           3.1)
12195
12196       "multifd-compression: MultiFDCompression" (optional)
12197           Which compression method to use.  Defaults to none. (Since 5.0)
12198
12199       "multifd-zlib-level: int" (optional)
12200           Set the compression level to be used in live migration, the
12201           compression level is an integer between 0 and 9, where 0 means no
12202           compression, 1 means the best compression speed, and 9 means best
12203           compression ratio which will consume more CPU.  Defaults to 1.
12204           (Since 5.0)
12205
12206       "multifd-zstd-level: int" (optional)
12207           Set the compression level to be used in live migration, the
12208           compression level is an integer between 0 and 20, where 0 means no
12209           compression, 1 means the best compression speed, and 20 means best
12210           compression ratio which will consume more CPU.  Defaults to 1.
12211           (Since 5.0)
12212
12213       "tls-authz: StrOrNull" (optional)
12214           Not documented
12215
12216       Since: 2.4
12217
12218       migrate-set-parameters  (Command) Set various migration parameters.
12219
12220       Arguments: the members of "MigrateSetParameters"
12221
12222       Since: 2.4
12223
12224       Example:
12225
12226               -> { "execute": "migrate-set-parameters" ,
12227                    "arguments": { "compress-level": 1 } }
12228
12229       MigrationParameters (Object)
12230
12231       The optional members aren't actually optional.
12232
12233       Members:
12234
12235       "announce-initial: int" (optional)
12236           Initial delay (in milliseconds) before sending the first announce
12237           (Since 4.0)
12238
12239       "announce-max: int" (optional)
12240           Maximum delay (in milliseconds) between packets in the announcement
12241           (Since 4.0)
12242
12243       "announce-rounds: int" (optional)
12244           Number of self-announce packets sent after migration (Since 4.0)
12245
12246       "announce-step: int" (optional)
12247           Increase in delay (in milliseconds) between subsequent packets in
12248           the announcement (Since 4.0)
12249
12250       "compress-level: int" (optional)
12251           compression level
12252
12253       "compress-threads: int" (optional)
12254           compression thread count
12255
12256       "compress-wait-thread: boolean" (optional)
12257           Controls behavior when all compression threads are currently busy.
12258           If true (default), wait for a free compression thread to become
12259           available; otherwise, send the page uncompressed. (Since 3.1)
12260
12261       "decompress-threads: int" (optional)
12262           decompression thread count
12263
12264       "throttle-trigger-threshold: int" (optional)
12265           The ratio of bytes_dirty_period and bytes_xfer_period to trigger
12266           throttling. It is expressed as percentage.  The default value is
12267           50. (Since 5.0)
12268
12269       "cpu-throttle-initial: int" (optional)
12270           Initial percentage of time guest cpus are throttled when migration
12271           auto-converge is activated.  (Since 2.7)
12272
12273       "cpu-throttle-increment: int" (optional)
12274           throttle percentage increase each time auto-converge detects that
12275           migration is not making progress. (Since 2.7)
12276
12277       "cpu-throttle-tailslow: boolean" (optional)
12278           Make CPU throttling slower at tail stage At the tail stage of
12279           throttling, the Guest is very sensitive to CPU percentage while the
12280           "cpu-throttle" -increment is excessive usually at tail stage.  If
12281           this parameter is true, we will compute the ideal CPU percentage
12282           used by the Guest, which may exactly make the dirty rate match the
12283           dirty rate threshold. Then we will choose a smaller throttle
12284           increment between the one specified by "cpu-throttle-increment" and
12285           the one generated by ideal CPU percentage.  Therefore, it is
12286           compatible to traditional throttling, meanwhile the throttle
12287           increment won't be excessive at tail stage.  The default value is
12288           false. (Since 5.1)
12289
12290       "tls-creds: string" (optional)
12291           ID of the 'tls-creds' object that provides credentials for
12292           establishing a TLS connection over the migration data channel. On
12293           the outgoing side of the migration, the credentials must be for a
12294           'client' endpoint, while for the incoming side the credentials must
12295           be for a 'server' endpoint.  An empty string means that QEMU will
12296           use plain text mode for migration, rather than TLS (Since 2.7)
12297           Note: 2.8 reports this by omitting tls-creds instead.
12298
12299       "tls-hostname: string" (optional)
12300           hostname of the target host for the migration. This is required
12301           when using x509 based TLS credentials and the migration URI does
12302           not already include a hostname. For example if using fd: or exec:
12303           based migration, the hostname must be provided so that the server's
12304           x509 certificate identity can be validated. (Since 2.7) An empty
12305           string means that QEMU will use the hostname associated with the
12306           migration URI, if any. (Since 2.9) Note: 2.8 reports this by
12307           omitting tls-hostname instead.
12308
12309       "tls-authz: string" (optional)
12310           ID of the 'authz' object subclass that provides access control
12311           checking of the TLS x509 certificate distinguished name. (Since
12312           4.0)
12313
12314       "max-bandwidth: int" (optional)
12315           to set maximum speed for migration. maximum speed in bytes per
12316           second. (Since 2.8)
12317
12318       "downtime-limit: int" (optional)
12319           set maximum tolerated downtime for migration. maximum downtime in
12320           milliseconds (Since 2.8)
12321
12322       "x-checkpoint-delay: int" (optional)
12323           the delay time between two COLO checkpoints. (Since 2.8)
12324
12325       "block-incremental: boolean" (optional)
12326           Affects how much storage is migrated when the block migration
12327           capability is enabled.  When false, the entire storage backing
12328           chain is migrated into a flattened image at the destination; when
12329           true, only the active qcow2 layer is migrated and the destination
12330           must already have access to the same backing chain as was used on
12331           the source.  (since 2.10)
12332
12333       "multifd-channels: int" (optional)
12334           Number of channels used to migrate data in parallel. This is the
12335           same number that the number of sockets used for migration.  The
12336           default value is 2 (since 4.0)
12337
12338       "xbzrle-cache-size: int" (optional)
12339           cache size to be used by XBZRLE migration.  It needs to be a
12340           multiple of the target page size and a power of 2 (Since 2.11)
12341
12342       "max-postcopy-bandwidth: int" (optional)
12343           Background transfer bandwidth during postcopy.  Defaults to 0
12344           (unlimited).  In bytes per second.  (Since 3.0)
12345
12346       "max-cpu-throttle: int" (optional)
12347           maximum cpu throttle percentage.  Defaults to 99.  (Since 3.1)
12348
12349       "multifd-compression: MultiFDCompression" (optional)
12350           Which compression method to use.  Defaults to none. (Since 5.0)
12351
12352       "multifd-zlib-level: int" (optional)
12353           Set the compression level to be used in live migration, the
12354           compression level is an integer between 0 and 9, where 0 means no
12355           compression, 1 means the best compression speed, and 9 means best
12356           compression ratio which will consume more CPU.  Defaults to 1.
12357           (Since 5.0)
12358
12359       "multifd-zstd-level: int" (optional)
12360           Set the compression level to be used in live migration, the
12361           compression level is an integer between 0 and 20, where 0 means no
12362           compression, 1 means the best compression speed, and 20 means best
12363           compression ratio which will consume more CPU.  Defaults to 1.
12364           (Since 5.0)
12365
12366       Since: 2.4
12367
12368       query-migrate-parameters  (Command) Returns information about the
12369       current migration parameters
12370
12371       Returns: "MigrationParameters"
12372
12373       Since: 2.4
12374
12375       Example:
12376
12377               -> { "execute": "query-migrate-parameters" }
12378               <- { "return": {
12379                        "decompress-threads": 2,
12380                        "cpu-throttle-increment": 10,
12381                        "compress-threads": 8,
12382                        "compress-level": 1,
12383                        "cpu-throttle-initial": 20,
12384                        "max-bandwidth": 33554432,
12385                        "downtime-limit": 300
12386                     }
12387                  }
12388
12389       client_migrate_info  (Command) Set migration information for remote
12390       display.  This makes the server ask the client to automatically
12391       reconnect using the new parameters once migration finished
12392       successfully.  Only implemented for SPICE.
12393
12394       Arguments:
12395
12396       "protocol: string"
12397           must be "spice"
12398
12399       "hostname: string"
12400           migration target hostname
12401
12402       "port: int" (optional)
12403           spice tcp port for plaintext channels
12404
12405       "tls-port: int" (optional)
12406           spice tcp port for tls-secured channels
12407
12408       "cert-subject: string" (optional)
12409           server certificate subject
12410
12411       Since: 0.14.0
12412
12413       Example:
12414
12415               -> { "execute": "client_migrate_info",
12416                    "arguments": { "protocol": "spice",
12417                                   "hostname": "virt42.lab.kraxel.org",
12418                                   "port": 1234 } }
12419               <- { "return": {} }
12420
12421       migrate-start-postcopy  (Command) Followup to a migration command to
12422       switch the migration to postcopy mode.  The postcopy-ram capability
12423       must be set on both source and destination before the original
12424       migration command.
12425
12426       Since: 2.5
12427
12428       Example:
12429
12430               -> { "execute": "migrate-start-postcopy" }
12431               <- { "return": {} }
12432
12433       MIGRATION  (Event) Emitted when a migration event happens
12434
12435       Arguments:
12436
12437       "status: MigrationStatus"
12438           "MigrationStatus" describing the current migration status.
12439
12440       Since: 2.4
12441
12442       Example:
12443
12444               <- {"timestamp": {"seconds": 1432121972, "microseconds": 744001},
12445                   "event": "MIGRATION",
12446                   "data": {"status": "completed"} }
12447
12448       MIGRATION_PASS  (Event) Emitted from the source side of a migration at
12449       the start of each pass (when it syncs the dirty bitmap)
12450
12451       Arguments:
12452
12453       "pass: int"
12454           An incrementing count (starting at 1 on the first pass)
12455
12456       Since: 2.6
12457
12458       Example:
12459
12460               { "timestamp": {"seconds": 1449669631, "microseconds": 239225},
12461                 "event": "MIGRATION_PASS", "data": {"pass": 2} }
12462
12463       COLOMessage (Enum)
12464
12465       The message transmission between Primary side and Secondary side.
12466
12467       Values:
12468
12469       "checkpoint-ready"
12470           Secondary VM (SVM) is ready for checkpointing
12471
12472       "checkpoint-request"
12473           Primary VM (PVM) tells SVM to prepare for checkpointing
12474
12475       "checkpoint-reply"
12476           SVM gets PVM's checkpoint request
12477
12478       "vmstate-send"
12479           VM's state will be sent by PVM.
12480
12481       "vmstate-size"
12482           The total size of VMstate.
12483
12484       "vmstate-received"
12485           VM's state has been received by SVM.
12486
12487       "vmstate-loaded"
12488           VM's state has been loaded by SVM.
12489
12490       Since: 2.8
12491
12492       COLOMode (Enum)
12493
12494       The COLO current mode.
12495
12496       Values:
12497
12498       "none"
12499           COLO is disabled.
12500
12501       "primary"
12502           COLO node in primary side.
12503
12504       "secondary"
12505           COLO node in slave side.
12506
12507       Since: 2.8
12508
12509       FailoverStatus (Enum)
12510
12511       An enumeration of COLO failover status
12512
12513       Values:
12514
12515       "none"
12516           no failover has ever happened
12517
12518       "require"
12519           got failover requirement but not handled
12520
12521       "active"
12522           in the process of doing failover
12523
12524       "completed"
12525           finish the process of failover
12526
12527       "relaunch"
12528           restart the failover process, from 'none' -> 'completed' (Since
12529           2.9)
12530
12531       Since: 2.8
12532
12533       COLO_EXIT  (Event) Emitted when VM finishes COLO mode due to some
12534       errors happening or at the request of users.
12535
12536       Arguments:
12537
12538       "mode: COLOMode"
12539           report COLO mode when COLO exited.
12540
12541       "reason: COLOExitReason"
12542           describes the reason for the COLO exit.
12543
12544       Since: 3.1
12545
12546       Example:
12547
12548               <- { "timestamp": {"seconds": 2032141960, "microseconds": 417172},
12549                    "event": "COLO_EXIT", "data": {"mode": "primary", "reason": "request" } }
12550
12551       COLOExitReason (Enum)
12552
12553       The reason for a COLO exit.
12554
12555       Values:
12556
12557       "none"
12558           failover has never happened. This state does not occur in the
12559           COLO_EXIT event, and is only visible in the result of query-colo-
12560           status.
12561
12562       "request"
12563           COLO exit is due to an external request.
12564
12565       "error"
12566           COLO exit is due to an internal error.
12567
12568       "processing"
12569           COLO is currently handling a failover (since 4.0).
12570
12571       Since: 3.1
12572
12573       x-colo-lost-heartbeat  (Command) Tell qemu that heartbeat is lost,
12574       request it to do takeover procedures.  If this command is sent to the
12575       PVM, the Primary side will exit COLO mode.  If sent to the Secondary,
12576       the Secondary side will run failover work, then takes over server
12577       operation to become the service VM.
12578
12579       Since: 2.8
12580
12581       Example:
12582
12583               -> { "execute": "x-colo-lost-heartbeat" }
12584               <- { "return": {} }
12585
12586       migrate_cancel  (Command) Cancel the current executing migration
12587       process.
12588
12589       Returns: nothing on success
12590
12591       Notes: This command succeeds even if there is no migration process
12592       running.
12593
12594       Since: 0.14.0
12595
12596       Example:
12597
12598               -> { "execute": "migrate_cancel" }
12599               <- { "return": {} }
12600
12601       migrate-continue  (Command) Continue migration when it's in a paused
12602       state.
12603
12604       Arguments:
12605
12606       "state: MigrationStatus"
12607           The state the migration is currently expected to be in
12608
12609       Returns: nothing on success
12610
12611       Since: 2.11
12612
12613       Example:
12614
12615               -> { "execute": "migrate-continue" , "arguments":
12616                    { "state": "pre-switchover" } }
12617               <- { "return": {} }
12618
12619       migrate_set_downtime  (Command) Set maximum tolerated downtime for
12620       migration.
12621
12622       Arguments:
12623
12624       "value: number"
12625           maximum downtime in seconds
12626
12627       Features:
12628
12629       "deprecated"
12630           This command is deprecated.  Use 'migrate-set-parameters' instead.
12631
12632       Returns: nothing on success
12633
12634       Since: 0.14.0
12635
12636       Example:
12637
12638               -> { "execute": "migrate_set_downtime", "arguments": { "value": 0.1 } }
12639               <- { "return": {} }
12640
12641       migrate_set_speed  (Command) Set maximum speed for migration.
12642
12643       Arguments:
12644
12645       "value: int"
12646           maximum speed in bytes per second.
12647
12648       Features:
12649
12650       "deprecated"
12651           This command is deprecated.  Use 'migrate-set-parameters' instead.
12652
12653       Returns: nothing on success
12654
12655       Since: 0.14.0
12656
12657       Example:
12658
12659               -> { "execute": "migrate_set_speed", "arguments": { "value": 1024 } }
12660               <- { "return": {} }
12661
12662       migrate-set-cache-size  (Command) Set cache size to be used by XBZRLE
12663       migration
12664
12665       Arguments:
12666
12667       "value: int"
12668           cache size in bytes
12669
12670       Features:
12671
12672       "deprecated"
12673           This command is deprecated.  Use 'migrate-set-parameters' instead.
12674
12675       The size will be rounded down to the nearest power of 2.  The cache
12676       size can be modified before and during ongoing migration
12677
12678       Returns: nothing on success
12679
12680       Since: 1.2
12681
12682       Example:
12683
12684               -> { "execute": "migrate-set-cache-size",
12685                    "arguments": { "value": 536870912 } }
12686               <- { "return": {} }
12687
12688       query-migrate-cache-size  (Command) Query migration XBZRLE cache size
12689
12690       Features:
12691
12692       "deprecated"
12693           This command is deprecated.  Use 'query-migrate-parameters'
12694           instead.
12695
12696       Returns: XBZRLE cache size in bytes
12697
12698       Since: 1.2
12699
12700       Example:
12701
12702               -> { "execute": "query-migrate-cache-size" }
12703               <- { "return": 67108864 }
12704
12705       migrate  (Command) Migrates the current running guest to another
12706       Virtual Machine.
12707
12708       Arguments:
12709
12710       "uri: string"
12711           the Uniform Resource Identifier of the destination VM
12712
12713       "blk: boolean" (optional)
12714           do block migration (full disk copy)
12715
12716       "inc: boolean" (optional)
12717           incremental disk copy migration
12718
12719       "detach: boolean" (optional)
12720           this argument exists only for compatibility reasons and is ignored
12721           by QEMU
12722
12723       "resume: boolean" (optional)
12724           resume one paused migration, default "off". (since 3.0)
12725
12726       Returns: nothing on success
12727
12728       Since: 0.14.0
12729
12730       Notes:
12731
12732       1.  The 'query-migrate' command should be used to check migration's
12733           progress and final result (this information is provided by the
12734           'status' member)
12735
12736       2.  All boolean arguments default to false
12737
12738       3.  The user Monitor's "detach" argument is invalid in QMP and should
12739           not be used
12740
12741       Example:
12742
12743               -> { "execute": "migrate", "arguments": { "uri": "tcp:0:4446" } }
12744               <- { "return": {} }
12745
12746       migrate-incoming  (Command) Start an incoming migration, the qemu must
12747       have been started with -incoming defer
12748
12749       Arguments:
12750
12751       "uri: string"
12752           The Uniform Resource Identifier identifying the source or address
12753           to listen on
12754
12755       Returns: nothing on success
12756
12757       Since: 2.3
12758
12759       Notes:
12760
12761       1.  It's a bad idea to use a string for the uri, but it needs to stay
12762           compatible with -incoming and the format of the uri is already
12763           exposed above libvirt.
12764
12765       2.  QEMU must be started with -incoming defer to allow migrate-incoming
12766           to be used.
12767
12768       3.  The uri format is the same as for -incoming
12769
12770       Example:
12771
12772               -> { "execute": "migrate-incoming",
12773                    "arguments": { "uri": "tcp::4446" } }
12774               <- { "return": {} }
12775
12776       xen-save-devices-state  (Command) Save the state of all devices to
12777       file. The RAM and the block devices of the VM are not saved by this
12778       command.
12779
12780       Arguments:
12781
12782       "filename: string"
12783           the file to save the state of the devices to as binary data. See
12784           xen-save-devices-state.txt for a description of the binary format.
12785
12786       "live: boolean" (optional)
12787           Optional argument to ask QEMU to treat this command as part of a
12788           live migration. Default to true. (since 2.11)
12789
12790       Returns: Nothing on success
12791
12792       Since: 1.1
12793
12794       Example:
12795
12796               -> { "execute": "xen-save-devices-state",
12797                    "arguments": { "filename": "/tmp/save" } }
12798               <- { "return": {} }
12799
12800       xen-set-replication  (Command) Enable or disable replication.
12801
12802       Arguments:
12803
12804       "enable: boolean"
12805           true to enable, false to disable.
12806
12807       "primary: boolean"
12808           true for primary or false for secondary.
12809
12810       "failover: boolean" (optional)
12811           true to do failover, false to stop. but cannot be specified if
12812           'enable' is true. default value is false.
12813
12814       Returns: nothing.
12815
12816       Example:
12817
12818               -> { "execute": "xen-set-replication",
12819                    "arguments": {"enable": true, "primary": false} }
12820               <- { "return": {} }
12821
12822       Since: 2.9
12823
12824       If: "defined(CONFIG_REPLICATION)"
12825
12826       ReplicationStatus (Object)
12827
12828       The result format for 'query-xen-replication-status'.
12829
12830       Members:
12831
12832       "error: boolean"
12833           true if an error happened, false if replication is normal.
12834
12835       "desc: string" (optional)
12836           the human readable error description string, when "error" is
12837           'true'.
12838
12839       Since: 2.9
12840
12841       If: "defined(CONFIG_REPLICATION)"
12842
12843       query-xen-replication-status  (Command) Query replication status while
12844       the vm is running.
12845
12846       Returns: A "ReplicationResult" object showing the status.
12847
12848       Example:
12849
12850               -> { "execute": "query-xen-replication-status" }
12851               <- { "return": { "error": false } }
12852
12853       Since: 2.9
12854
12855       If: "defined(CONFIG_REPLICATION)"
12856
12857       xen-colo-do-checkpoint  (Command) Xen uses this command to notify
12858       replication to trigger a checkpoint.
12859
12860       Returns: nothing.
12861
12862       Example:
12863
12864               -> { "execute": "xen-colo-do-checkpoint" }
12865               <- { "return": {} }
12866
12867       Since: 2.9
12868
12869       If: "defined(CONFIG_REPLICATION)"
12870
12871       COLOStatus (Object)
12872
12873       The result format for 'query-colo-status'.
12874
12875       Members:
12876
12877       "mode: COLOMode"
12878           COLO running mode. If COLO is running, this field will return
12879           'primary' or 'secondary'.
12880
12881       "last-mode: COLOMode"
12882           COLO last running mode. If COLO is running, this field will return
12883           same like mode field, after failover we can use this field to get
12884           last colo mode. (since 4.0)
12885
12886       "reason: COLOExitReason"
12887           describes the reason for the COLO exit.
12888
12889       Since: 3.1
12890
12891       query-colo-status  (Command) Query COLO status while the vm is running.
12892
12893       Returns: A "COLOStatus" object showing the status.
12894
12895       Example:
12896
12897               -> { "execute": "query-colo-status" }
12898               <- { "return": { "mode": "primary", "reason": "request" } }
12899
12900       Since: 3.1
12901
12902       migrate-recover  (Command) Provide a recovery migration stream URI.
12903
12904       Arguments:
12905
12906       "uri: string"
12907           the URI to be used for the recovery of migration stream.
12908
12909       Returns: nothing.
12910
12911       Example:
12912
12913               -> { "execute": "migrate-recover",
12914                    "arguments": { "uri": "tcp:192.168.1.200:12345" } }
12915               <- { "return": {} }
12916
12917       Since: 3.0
12918
12919       migrate-pause  (Command) Pause a migration.  Currently it only supports
12920       postcopy.
12921
12922       Returns: nothing.
12923
12924       Example:
12925
12926               -> { "execute": "migrate-pause" }
12927               <- { "return": {} }
12928
12929       Since: 3.0
12930
12931       UNPLUG_PRIMARY  (Event) Emitted from source side of a migration when
12932       migration state is WAIT_UNPLUG. Device was unplugged by guest operating
12933       system.  Device resources in QEMU are kept on standby to be able to re-
12934       plug it in case of migration failure.
12935
12936       Arguments:
12937
12938       "device-id: string"
12939           QEMU device id of the unplugged device
12940
12941       Since: 4.2
12942
12943       Example:
12944
12945               {"event": "UNPLUG_PRIMARY", "data": {"device-id": "hostdev0"} }
12946
12947   Transactions
12948       Abort (Object)
12949
12950       This action can be used to test transaction failure.
12951
12952       Since: 1.6
12953
12954       ActionCompletionMode (Enum)
12955
12956       An enumeration of Transactional completion modes.
12957
12958       Values:
12959
12960       "individual"
12961           Do not attempt to cancel any other Actions if any Actions fail
12962           after the Transaction request succeeds. All Actions that can
12963           complete successfully will do so without waiting on others.  This
12964           is the default.
12965
12966       "grouped"
12967           If any Action fails after the Transaction succeeds, cancel all
12968           Actions. Actions do not complete until all Actions are ready to
12969           complete. May be rejected by Actions that do not support this
12970           completion mode.
12971
12972       Since: 2.5
12973
12974       TransactionAction (Object)
12975
12976       A discriminated record of operations that can be performed with
12977       "transaction". Action "type" can be:
12978
12979       -   "abort": since 1.6
12980
12981       -   "block-dirty-bitmap-add": since 2.5
12982
12983       -   "block-dirty-bitmap-remove": since 4.2
12984
12985       -   "block-dirty-bitmap-clear": since 2.5
12986
12987       -   "block-dirty-bitmap-enable": since 4.0
12988
12989       -   "block-dirty-bitmap-disable": since 4.0
12990
12991       -   "block-dirty-bitmap-merge": since 4.0
12992
12993       -   "blockdev-backup": since 2.3
12994
12995       -   "blockdev-snapshot": since 2.5
12996
12997       -   "blockdev-snapshot-internal-sync": since 1.7
12998
12999       -   "blockdev-snapshot-sync": since 1.1
13000
13001       -   "drive-backup": since 1.6
13002
13003       Members:
13004
13005       "type"
13006           One of "abort", "block-dirty-bitmap-add", "block-dirty-bitmap-
13007           remove", "block-dirty-bitmap-clear", "block-dirty-bitmap-enable",
13008           "block-dirty-bitmap-disable", "block-dirty-bitmap-merge",
13009           "blockdev-backup", "blockdev-snapshot", "blockdev-snapshot-
13010           internal-sync", "blockdev-snapshot-sync", "drive-backup"
13011
13012       "data: Abort" when "type" is "abort"
13013       "data: BlockDirtyBitmapAdd" when "type" is "block-dirty-bitmap-add"
13014       "data: BlockDirtyBitmap" when "type" is "block-dirty-bitmap-remove"
13015       "data: BlockDirtyBitmap" when "type" is "block-dirty-bitmap-clear"
13016       "data: BlockDirtyBitmap" when "type" is "block-dirty-bitmap-enable"
13017       "data: BlockDirtyBitmap" when "type" is "block-dirty-bitmap-disable"
13018       "data: BlockDirtyBitmapMerge" when "type" is "block-dirty-bitmap-merge"
13019       "data: BlockdevBackup" when "type" is "blockdev-backup"
13020       "data: BlockdevSnapshot" when "type" is "blockdev-snapshot"
13021       "data: BlockdevSnapshotInternal" when "type" is "blockdev-snapshot-
13022       internal-sync"
13023       "data: BlockdevSnapshotSync" when "type" is "blockdev-snapshot-sync"
13024       "data: DriveBackup" when "type" is "drive-backup"
13025
13026       Since: 1.1
13027
13028       TransactionProperties (Object)
13029
13030       Optional arguments to modify the behavior of a Transaction.
13031
13032       Members:
13033
13034       "completion-mode: ActionCompletionMode" (optional)
13035           Controls how jobs launched asynchronously by Actions will complete
13036           or fail as a group.  See "ActionCompletionMode" for details.
13037
13038       Since: 2.5
13039
13040       transaction  (Command) Executes a number of transactionable QMP
13041       commands atomically. If any operation fails, then the entire set of
13042       actions will be abandoned and the appropriate error returned.
13043
13044       For external snapshots, the dictionary contains the device, the file to
13045       use for the new snapshot, and the format.  The default format, if not
13046       specified, is qcow2.
13047
13048       Each new snapshot defaults to being created by QEMU (wiping any
13049       contents if the file already exists), but it is also possible to reuse
13050       an externally-created file.  In the latter case, you should ensure that
13051       the new image file has the same contents as the current one; QEMU
13052       cannot perform any meaningful check.  Typically this is achieved by
13053       using the current image file as the backing file for the new image.
13054
13055       On failure, the original disks pre-snapshot attempt will be used.
13056
13057       For internal snapshots, the dictionary contains the device and the
13058       snapshot's name.  If an internal snapshot matching name already exists,
13059       the request will be rejected.  Only some image formats support it, for
13060       example, qcow2, rbd, and sheepdog.
13061
13062       On failure, qemu will try delete the newly created internal snapshot in
13063       the transaction.  When an I/O error occurs during deletion, the user
13064       needs to fix it later with qemu-img or other command.
13065
13066       Arguments:
13067
13068       "actions: array of TransactionAction"
13069           List of "TransactionAction"; information needed for the respective
13070           operations.
13071
13072       "properties: TransactionProperties" (optional)
13073           structure of additional options to control the execution of the
13074           transaction. See "TransactionProperties" for additional detail.
13075
13076       Returns: nothing on success
13077
13078       Errors depend on the operations of the transaction
13079
13080       Note: The transaction aborts on the first failure.  Therefore, there
13081       will be information on only one failed operation returned in an error
13082       condition, and subsequent actions will not have been attempted.
13083
13084       Since: 1.1
13085
13086       Example:
13087
13088               -> { "execute": "transaction",
13089                    "arguments": { "actions": [
13090                        { "type": "blockdev-snapshot-sync", "data" : { "device": "ide-hd0",
13091                                                    "snapshot-file": "/some/place/my-image",
13092                                                    "format": "qcow2" } },
13093                        { "type": "blockdev-snapshot-sync", "data" : { "node-name": "myfile",
13094                                                    "snapshot-file": "/some/place/my-image2",
13095                                                    "snapshot-node-name": "node3432",
13096                                                    "mode": "existing",
13097                                                    "format": "qcow2" } },
13098                        { "type": "blockdev-snapshot-sync", "data" : { "device": "ide-hd1",
13099                                                    "snapshot-file": "/some/place/my-image2",
13100                                                    "mode": "existing",
13101                                                    "format": "qcow2" } },
13102                        { "type": "blockdev-snapshot-internal-sync", "data" : {
13103                                                    "device": "ide-hd2",
13104                                                    "name": "snapshot0" } } ] } }
13105               <- { "return": {} }
13106
13107   Tracing
13108       TraceEventState (Enum)
13109
13110       State of a tracing event.
13111
13112       Values:
13113
13114       "unavailable"
13115           The event is statically disabled.
13116
13117       "disabled"
13118           The event is dynamically disabled.
13119
13120       "enabled"
13121           The event is dynamically enabled.
13122
13123       Since: 2.2
13124
13125       TraceEventInfo (Object)
13126
13127       Information of a tracing event.
13128
13129       Members:
13130
13131       "name: string"
13132           Event name.
13133
13134       "state: TraceEventState"
13135           Tracing state.
13136
13137       "vcpu: boolean"
13138           Whether this is a per-vCPU event (since 2.7).
13139
13140       An event is per-vCPU if it has the "vcpu" property in the "trace-
13141       events" files.
13142
13143       Since: 2.2
13144
13145       trace-event-get-state  (Command) Query the state of events.
13146
13147       Arguments:
13148
13149       "name: string"
13150           Event name pattern (case-sensitive glob).
13151
13152       "vcpu: int" (optional)
13153           The vCPU to query (any by default; since 2.7).
13154
13155       Returns: a list of "TraceEventInfo" for the matching events
13156
13157       An event is returned if:
13158
13159       -   its name matches the "name" pattern, and
13160
13161       -   if "vcpu" is given, the event has the "vcpu" property.
13162
13163       Therefore, if "vcpu" is given, the operation will only match per-vCPU
13164       events, returning their state on the specified vCPU. Special case: if
13165       "name" is an exact match, "vcpu" is given and the event does not have
13166       the "vcpu" property, an error is returned.
13167
13168       Since: 2.2
13169
13170       Example:
13171
13172               -> { "execute": "trace-event-get-state",
13173                    "arguments": { "name": "qemu_memalign" } }
13174               <- { "return": [ { "name": "qemu_memalign", "state": "disabled" } ] }
13175
13176       trace-event-set-state  (Command) Set the dynamic tracing state of
13177       events.
13178
13179       Arguments:
13180
13181       "name: string"
13182           Event name pattern (case-sensitive glob).
13183
13184       "enable: boolean"
13185           Whether to enable tracing.
13186
13187       "ignore-unavailable: boolean" (optional)
13188           Do not match unavailable events with "name".
13189
13190       "vcpu: int" (optional)
13191           The vCPU to act upon (all by default; since 2.7).
13192
13193       An event's state is modified if:
13194
13195       -   its name matches the "name" pattern, and
13196
13197       -   if "vcpu" is given, the event has the "vcpu" property.
13198
13199       Therefore, if "vcpu" is given, the operation will only match per-vCPU
13200       events, setting their state on the specified vCPU. Special case: if
13201       "name" is an exact match, "vcpu" is given and the event does not have
13202       the "vcpu" property, an error is returned.
13203
13204       Since: 2.2
13205
13206       Example:
13207
13208               -> { "execute": "trace-event-set-state",
13209                    "arguments": { "name": "qemu_memalign", "enable": "true" } }
13210               <- { "return": {} }
13211
13212   QMP monitor control
13213       qmp_capabilities  (Command) Enable QMP capabilities.
13214
13215       Arguments:
13216
13217       Arguments:
13218
13219       "enable: array of QMPCapability" (optional)
13220           An optional list of QMPCapability values to enable.  The client
13221           must not enable any capability that is not mentioned in the QMP
13222           greeting message.  If the field is not provided, it means no QMP
13223           capabilities will be enabled.  (since 2.12)
13224
13225       Example:
13226
13227               -> { "execute": "qmp_capabilities",
13228                    "arguments": { "enable": [ "oob" ] } }
13229               <- { "return": {} }
13230
13231       Notes: This command is valid exactly when first connecting: it must be
13232       issued before any other command will be accepted, and will fail once
13233       the monitor is accepting other commands. (see qemu
13234       docs/interop/qmp-spec.txt)
13235
13236       The QMP client needs to explicitly enable QMP capabilities, otherwise
13237       all the QMP capabilities will be turned off by default.
13238
13239       Since: 0.13
13240
13241       QMPCapability (Enum)
13242
13243       Enumeration of capabilities to be advertised during initial client
13244       connection, used for agreeing on particular QMP extension behaviors.
13245
13246       Values:
13247
13248       "oob"
13249           QMP ability to support out-of-band requests.  (Please refer to
13250           qmp-spec.txt for more information on OOB)
13251
13252       Since: 2.12
13253
13254       VersionTriple (Object)
13255
13256       A three-part version number.
13257
13258       Members:
13259
13260       "major: int"
13261           The major version number.
13262
13263       "minor: int"
13264           The minor version number.
13265
13266       "micro: int"
13267           The micro version number.
13268
13269       Since: 2.4
13270
13271       VersionInfo (Object)
13272
13273       A description of QEMU's version.
13274
13275       Members:
13276
13277       "qemu: VersionTriple"
13278           The version of QEMU.  By current convention, a micro version of 50
13279           signifies a development branch.  A micro version greater than or
13280           equal to 90 signifies a release candidate for the next minor
13281           version.  A micro version of less than 50 signifies a stable
13282           release.
13283
13284       "package: string"
13285           QEMU will always set this field to an empty string.  Downstream
13286           versions of QEMU should set this to a non-empty string.  The exact
13287           format depends on the downstream however it highly recommended that
13288           a unique name is used.
13289
13290       Since: 0.14.0
13291
13292       query-version  (Command) Returns the current version of QEMU.
13293
13294       Returns: A "VersionInfo" object describing the current version of QEMU.
13295
13296       Since: 0.14.0
13297
13298       Example:
13299
13300               -> { "execute": "query-version" }
13301               <- {
13302                     "return":{
13303                        "qemu":{
13304                           "major":0,
13305                           "minor":11,
13306                           "micro":5
13307                        },
13308                        "package":""
13309                     }
13310                  }
13311
13312       CommandInfo (Object)
13313
13314       Information about a QMP command
13315
13316       Members:
13317
13318       "name: string"
13319           The command name
13320
13321       Since: 0.14.0
13322
13323       query-commands  (Command) Return a list of supported QMP commands by
13324       this server
13325
13326       Returns: A list of "CommandInfo" for all supported commands
13327
13328       Since: 0.14.0
13329
13330       Example:
13331
13332               -> { "execute": "query-commands" }
13333               <- {
13334                    "return":[
13335                       {
13336                          "name":"query-balloon"
13337                       },
13338                       {
13339                          "name":"system_powerdown"
13340                       }
13341                    ]
13342                  }
13343
13344       Note: This example has been shortened as the real response is too long.
13345
13346       EventInfo (Object)
13347
13348       Information about a QMP event
13349
13350       Members:
13351
13352       "name: string"
13353           The event name
13354
13355       Since: 1.2.0
13356
13357       query-events  (Command) Return information on QMP events.
13358
13359       Features:
13360
13361       "deprecated"
13362           This command is deprecated, because its output doesn't reflect
13363           compile-time configuration.  Use 'query-qmp-schema' instead.
13364
13365       Returns: A list of "EventInfo".
13366
13367       Since: 1.2.0
13368
13369       Example:
13370
13371               -> { "execute": "query-events" }
13372               <- {
13373                    "return": [
13374                        {
13375                           "name":"SHUTDOWN"
13376                        },
13377                        {
13378                           "name":"RESET"
13379                        }
13380                     ]
13381                  }
13382
13383       Note: This example has been shortened as the real response is too long.
13384
13385       quit  (Command) This command will cause the QEMU process to exit
13386       gracefully.  While every attempt is made to send the QMP response
13387       before terminating, this is not guaranteed.  When using this interface,
13388       a premature EOF would not be unexpected.
13389
13390       Since: 0.14.0
13391
13392       Example:
13393
13394               -> { "execute": "quit" }
13395               <- { "return": {} }
13396
13397       MonitorMode (Enum)
13398
13399       An enumeration of monitor modes.
13400
13401       Values:
13402
13403       "readline"
13404           HMP monitor (human-oriented command line interface)
13405
13406       "control"
13407           QMP monitor (JSON-based machine interface)
13408
13409       Since: 5.0
13410
13411       MonitorOptions (Object)
13412
13413       Options to be used for adding a new monitor.
13414
13415       Members:
13416
13417       "id: string" (optional)
13418           Name of the monitor
13419
13420       "mode: MonitorMode" (optional)
13421           Selects the monitor mode (default: readline in the system emulator,
13422           control in qemu-storage-daemon)
13423
13424       "pretty: boolean" (optional)
13425           Enables pretty printing (QMP only)
13426
13427       "chardev: string"
13428           Name of a character device to expose the monitor on
13429
13430       Since: 5.0
13431
13432   QMP introspection
13433       query-qmp-schema  (Command) Command query-qmp-schema exposes the QMP
13434       wire ABI as an array of SchemaInfo.  This lets QMP clients figure out
13435       what commands and events are available in this QEMU, and their
13436       parameters and results.
13437
13438       However, the SchemaInfo can't reflect all the rules and restrictions
13439       that apply to QMP.  It's interface introspection (figuring out what's
13440       there), not interface specification.  The specification is in the QAPI
13441       schema.
13442
13443       Furthermore, while we strive to keep the QMP wire format backwards-
13444       compatible across qemu versions, the introspection output is not
13445       guaranteed to have the same stability.  For example, one version of
13446       qemu may list an object member as an optional non-variant, while
13447       another lists the same member only through the object's variants; or
13448       the type of a member may change from a generic string into a specific
13449       enum or from one specific type into an alternate that includes the
13450       original type alongside something else.
13451
13452       Returns: array of "SchemaInfo", where each element describes an entity
13453       in the ABI: command, event, type, ...
13454
13455       The order of the various SchemaInfo is unspecified; however, all names
13456       are guaranteed to be unique (no name will be duplicated with different
13457       meta-types).
13458
13459       Note: the QAPI schema is also used to help define internal interfaces,
13460       by defining QAPI types.  These are not part of the QMP wire ABI, and
13461       therefore not returned by this command.
13462
13463       Since: 2.5
13464
13465       SchemaMetaType (Enum)
13466
13467       This is a "SchemaInfo"'s meta type, i.e. the kind of entity it
13468       describes.
13469
13470       Values:
13471
13472       "builtin"
13473           a predefined type such as 'int' or 'bool'.
13474
13475       "enum"
13476           an enumeration type
13477
13478       "array"
13479           an array type
13480
13481       "object"
13482           an object type (struct or union)
13483
13484       "alternate"
13485           an alternate type
13486
13487       "command"
13488           a QMP command
13489
13490       "event"
13491           a QMP event
13492
13493       Since: 2.5
13494
13495       SchemaInfo (Object)
13496
13497       Members:
13498
13499       "name: string"
13500           the entity's name, inherited from "base".  The SchemaInfo is always
13501           referenced by this name.  Commands and events have the name defined
13502           in the QAPI schema.  Unlike command and event names, type names are
13503           not part of the wire ABI.  Consequently, type names are meaningless
13504           strings here, although they are still guaranteed unique regardless
13505           of "meta-type".
13506
13507       "meta-type: SchemaMetaType"
13508           the entity's meta type, inherited from "base".
13509
13510       "features: array of string" (optional)
13511           names of features associated with the entity, in no particular
13512           order.  (since 4.1 for object types, 4.2 for commands, 5.0 for the
13513           rest)
13514
13515       The members of "SchemaInfoBuiltin" when "meta-type" is "builtin"
13516       The members of "SchemaInfoEnum" when "meta-type" is "enum"
13517       The members of "SchemaInfoArray" when "meta-type" is "array"
13518       The members of "SchemaInfoObject" when "meta-type" is "object"
13519       The members of "SchemaInfoAlternate" when "meta-type" is "alternate"
13520       The members of "SchemaInfoCommand" when "meta-type" is "command"
13521       The members of "SchemaInfoEvent" when "meta-type" is "event"
13522
13523       Additional members depend on the value of "meta-type".
13524
13525       Since: 2.5
13526
13527       SchemaInfoBuiltin (Object)
13528
13529       Additional SchemaInfo members for meta-type 'builtin'.
13530
13531       Members:
13532
13533       "json-type: JSONType"
13534           the JSON type used for this type on the wire.
13535
13536       Since: 2.5
13537
13538       JSONType (Enum)
13539
13540       The four primitive and two structured types according to RFC 8259
13541       section 1, plus 'int' (split off 'number'), plus the obvious top type
13542       'value'.
13543
13544       Values:
13545
13546       "string"
13547           Not documented
13548
13549       "number"
13550           Not documented
13551
13552       "int"
13553           Not documented
13554
13555       "boolean"
13556           Not documented
13557
13558       "null"
13559           Not documented
13560
13561       "object"
13562           Not documented
13563
13564       "array"
13565           Not documented
13566
13567       "value"
13568           Not documented
13569
13570       Since: 2.5
13571
13572       SchemaInfoEnum (Object)
13573
13574       Additional SchemaInfo members for meta-type 'enum'.
13575
13576       Members:
13577
13578       "values: array of string"
13579           the enumeration type's values, in no particular order.
13580
13581       Values of this type are JSON string on the wire.
13582
13583       Since: 2.5
13584
13585       SchemaInfoArray (Object)
13586
13587       Additional SchemaInfo members for meta-type 'array'.
13588
13589       Members:
13590
13591       "element-type: string"
13592           the array type's element type.
13593
13594       Values of this type are JSON array on the wire.
13595
13596       Since: 2.5
13597
13598       SchemaInfoObject (Object)
13599
13600       Additional SchemaInfo members for meta-type 'object'.
13601
13602       Members:
13603
13604       "members: array of SchemaInfoObjectMember"
13605           the object type's (non-variant) members, in no particular order.
13606
13607       "tag: string" (optional)
13608           the name of the member serving as type tag.  An element of
13609           "members" with this name must exist.
13610
13611       "variants: array of SchemaInfoObjectVariant" (optional)
13612           variant members, i.e. additional members that depend on the type
13613           tag's value.  Present exactly when "tag" is present.  The variants
13614           are in no particular order, and may even differ from the order of
13615           the values of the enum type of the "tag".
13616
13617       Values of this type are JSON object on the wire.
13618
13619       Since: 2.5
13620
13621       SchemaInfoObjectMember (Object)
13622
13623       An object member.
13624
13625       Members:
13626
13627       "name: string"
13628           the member's name, as defined in the QAPI schema.
13629
13630       "type: string"
13631           the name of the member's type.
13632
13633       "default: value" (optional)
13634           default when used as command parameter.  If absent, the parameter
13635           is mandatory.  If present, the value must be null.  The parameter
13636           is optional, and behavior when it's missing is not specified here.
13637           Future extension: if present and non-null, the parameter is
13638           optional, and defaults to this value.
13639
13640       "features: array of string" (optional)
13641           names of features associated with the member, in no particular
13642           order.  (since 5.0)
13643
13644       Since: 2.5
13645
13646       SchemaInfoObjectVariant (Object)
13647
13648       The variant members for a value of the type tag.
13649
13650       Members:
13651
13652       "case: string"
13653           a value of the type tag.
13654
13655       "type: string"
13656           the name of the object type that provides the variant members when
13657           the type tag has value "case".
13658
13659       Since: 2.5
13660
13661       SchemaInfoAlternate (Object)
13662
13663       Additional SchemaInfo members for meta-type 'alternate'.
13664
13665       Members:
13666
13667       "members: array of SchemaInfoAlternateMember"
13668           the alternate type's members, in no particular order.  The members'
13669           wire encoding is distinct, see docs/devel/qapi-code-gen.txt section
13670           Alternate types.
13671
13672       On the wire, this can be any of the members.
13673
13674       Since: 2.5
13675
13676       SchemaInfoAlternateMember (Object)
13677
13678       An alternate member.
13679
13680       Members:
13681
13682       "type: string"
13683           the name of the member's type.
13684
13685       Since: 2.5
13686
13687       SchemaInfoCommand (Object)
13688
13689       Additional SchemaInfo members for meta-type 'command'.
13690
13691       Members:
13692
13693       "arg-type: string"
13694           the name of the object type that provides the command's parameters.
13695
13696       "ret-type: string"
13697           the name of the command's result type.
13698
13699       "allow-oob: boolean" (optional)
13700           whether the command allows out-of-band execution, defaults to false
13701           (Since: 2.12)
13702
13703       TODO: "success-response" (currently irrelevant, because it's QGA, not
13704       QMP)
13705
13706       Since: 2.5
13707
13708       SchemaInfoEvent (Object)
13709
13710       Additional SchemaInfo members for meta-type 'event'.
13711
13712       Members:
13713
13714       "arg-type: string"
13715           the name of the object type that provides the event's parameters.
13716
13717       Since: 2.5
13718
13719   QEMU Object Model (QOM)
13720       ObjectPropertyInfo (Object)
13721
13722       Members:
13723
13724       "name: string"
13725           the name of the property
13726
13727       "type: string"
13728           the type of the property.  This will typically come in one of four
13729           forms:
13730
13731           1) A primitive type such as 'u8', 'u16', 'bool', 'str', or
13732           'double'.  These types are mapped to the appropriate JSON type.
13733
13734           2) A child type in the form 'child<subtype>' where subtype is a
13735           qdev device type name.  Child properties create the composition
13736           tree.
13737
13738           3) A link type in the form 'link<subtype>' where subtype is a qdev
13739           device type name.  Link properties form the device model graph.
13740
13741       "description: string" (optional)
13742           if specified, the description of the property.
13743
13744       "default-value: value" (optional)
13745           the default value, if any (since 5.0)
13746
13747       Since: 1.2
13748
13749       qom-list  (Command) This command will list any properties of a object
13750       given a path in the object model.
13751
13752       Arguments:
13753
13754       "path: string"
13755           the path within the object model.  See "qom-get" for a description
13756           of this parameter.
13757
13758       Returns: a list of "ObjectPropertyInfo" that describe the properties of
13759       the object.
13760
13761       Since: 1.2
13762
13763       Example:
13764
13765               -> { "execute": "qom-list",
13766                    "arguments": { "path": "/chardevs" } }
13767               <- { "return": [ { "name": "type", "type": "string" },
13768                                { "name": "parallel0", "type": "child<chardev-vc>" },
13769                                { "name": "serial0", "type": "child<chardev-vc>" },
13770                                { "name": "mon0", "type": "child<chardev-stdio>" } ] }
13771
13772       qom-get  (Command) This command will get a property from a object model
13773       path and return the value.
13774
13775       Arguments:
13776
13777       "path: string"
13778           The path within the object model.  There are two forms of supported
13779           paths--absolute and partial paths.
13780
13781           Absolute paths are derived from the root object and can follow
13782           child<> or link<> properties.  Since they can follow link<>
13783           properties, they can be arbitrarily long.  Absolute paths look like
13784           absolute filenames and are prefixed  with a leading slash.
13785
13786           Partial paths look like relative filenames.  They do not begin with
13787           a prefix.  The matching rules for partial paths are subtle but
13788           designed to make specifying objects easy.  At each level of the
13789           composition tree, the partial path is matched as an absolute path.
13790           The first match is not returned.  At least two matches are searched
13791           for.  A successful result is only returned if only one match is
13792           found.  If more than one match is found, a flag is return to
13793           indicate that the match was ambiguous.
13794
13795       "property: string"
13796           The property name to read
13797
13798       Returns: The property value.  The type depends on the property type.
13799       child<> and link<> properties are returned as #str pathnames.  All
13800       integer property types (u8, u16, etc) are returned as #int.
13801
13802       Since: 1.2
13803
13804       Example:
13805
13806               1. Use absolute path
13807
13808               -> { "execute": "qom-get",
13809                    "arguments": { "path": "/machine/unattached/device[0]",
13810                                   "property": "hotplugged" } }
13811               <- { "return": false }
13812
13813               2. Use partial path
13814
13815               -> { "execute": "qom-get",
13816                    "arguments": { "path": "unattached/sysbus",
13817                                   "property": "type" } }
13818               <- { "return": "System" }
13819
13820       qom-set  (Command) This command will set a property from a object model
13821       path.
13822
13823       Arguments:
13824
13825       "path: string"
13826           see "qom-get" for a description of this parameter
13827
13828       "property: string"
13829           the property name to set
13830
13831       "value: value"
13832           a value who's type is appropriate for the property type.  See
13833           "qom-get" for a description of type mapping.
13834
13835       Since: 1.2
13836
13837       Example:
13838
13839               -> { "execute": "qom-set",
13840                    "arguments": { "path": "/machine",
13841                                   "property": "graphics",
13842                                   "value": false } }
13843               <- { "return": {} }
13844
13845       ObjectTypeInfo (Object)
13846
13847       This structure describes a search result from "qom-list-types"
13848
13849       Members:
13850
13851       "name: string"
13852           the type name found in the search
13853
13854       "abstract: boolean" (optional)
13855           the type is abstract and can't be directly instantiated.  Omitted
13856           if false. (since 2.10)
13857
13858       "parent: string" (optional)
13859           Name of parent type, if any (since 2.10)
13860
13861       Since: 1.1
13862
13863       qom-list-types  (Command) This command will return a list of types
13864       given search parameters
13865
13866       Arguments:
13867
13868       "implements: string" (optional)
13869           if specified, only return types that implement this type name
13870
13871       "abstract: boolean" (optional)
13872           if true, include abstract types in the results
13873
13874       Returns: a list of "ObjectTypeInfo" or an empty list if no results are
13875       found
13876
13877       Since: 1.1
13878
13879       qom-list-properties  (Command) List properties associated with a QOM
13880       object.
13881
13882       Arguments:
13883
13884       "typename: string"
13885           the type name of an object
13886
13887       Note: objects can create properties at runtime, for example to describe
13888       links between different devices and/or objects. These properties are
13889       not included in the output of this command.
13890
13891       Returns: a list of ObjectPropertyInfo describing object properties
13892
13893       Since: 2.12
13894
13895       object-add  (Command) Create a QOM object.
13896
13897       Arguments:
13898
13899       "qom-type: string"
13900           the class name for the object to be created
13901
13902       "id: string"
13903           the name of the new object
13904
13905       "props: value" (optional)
13906           a dictionary of properties to be passed to the backend. Deprecated
13907           since 5.0, specify the properties on the top level instead. It is
13908           an error to specify the same option both on the top level and in
13909           "props".
13910
13911       Additional arguments depend on qom-type and are passed to the backend
13912       unchanged.
13913
13914       Returns: Nothing on success Error if "qom-type" is not a valid class
13915       name
13916
13917       Since: 2.0
13918
13919       Example:
13920
13921               -> { "execute": "object-add",
13922                    "arguments": { "qom-type": "rng-random", "id": "rng1",
13923                                   "filename": "/dev/hwrng" } }
13924               <- { "return": {} }
13925
13926       object-del  (Command) Remove a QOM object.
13927
13928       Arguments:
13929
13930       "id: string"
13931           the name of the QOM object to remove
13932
13933       Returns: Nothing on success Error if "id" is not a valid id for a QOM
13934       object
13935
13936       Since: 2.0
13937
13938       Example:
13939
13940               -> { "execute": "object-del", "arguments": { "id": "rng1" } }
13941               <- { "return": {} }
13942
13943   Device infrastructure (qdev)
13944       device-list-properties  (Command) List properties associated with a
13945       device.
13946
13947       Arguments:
13948
13949       "typename: string"
13950           the type name of a device
13951
13952       Returns: a list of ObjectPropertyInfo describing a devices properties
13953
13954       Note: objects can create properties at runtime, for example to describe
13955       links between different devices and/or objects. These properties are
13956       not included in the output of this command.
13957
13958       Since: 1.2
13959
13960       device_add  (Command)
13961
13962       Arguments:
13963
13964       "driver: string"
13965           the name of the new device's driver
13966
13967       "bus: string" (optional)
13968           the device's parent bus (device tree path)
13969
13970       "id: string" (optional)
13971           the device's ID, must be unique
13972
13973       Additional arguments depend on the type.
13974
13975       Add a device.
13976
13977       Notes:
13978
13979       1.  For detailed information about this command, please refer to the
13980           'docs/qdev-device-use.txt' file.
13981
13982       2.  It's possible to list device properties by running QEMU with the
13983           "-device DEVICE,help" command-line argument, where DEVICE is the
13984           device's name
13985
13986       Example:
13987
13988               -> { "execute": "device_add",
13989                    "arguments": { "driver": "e1000", "id": "net1",
13990                                   "bus": "pci.0",
13991                                   "mac": "52:54:00:12:34:56" } }
13992               <- { "return": {} }
13993
13994       TODO: This command effectively bypasses QAPI completely due to its
13995       "additional arguments" business.  It shouldn't have been added to the
13996       schema in this form.  It should be qapified properly, or replaced by a
13997       properly qapified command.
13998
13999       Since: 0.13
14000
14001       device_del  (Command) Remove a device from a guest
14002
14003       Arguments:
14004
14005       "id: string"
14006           the device's ID or QOM path
14007
14008       Returns: Nothing on success If "id" is not a valid device,
14009       DeviceNotFound
14010
14011       Notes: When this command completes, the device may not be removed from
14012       the guest.  Hot removal is an operation that requires guest
14013       cooperation.  This command merely requests that the guest begin the hot
14014       removal process.  Completion of the device removal process is signaled
14015       with a DEVICE_DELETED event. Guest reset will automatically complete
14016       removal for all devices.
14017
14018       Since: 0.14.0
14019
14020       Example:
14021
14022               -> { "execute": "device_del",
14023                    "arguments": { "id": "net1" } }
14024               <- { "return": {} }
14025
14026               -> { "execute": "device_del",
14027                    "arguments": { "id": "/machine/peripheral-anon/device[0]" } }
14028               <- { "return": {} }
14029
14030       DEVICE_DELETED  (Event) Emitted whenever the device removal completion
14031       is acknowledged by the guest.  At this point, it's safe to reuse the
14032       specified device ID. Device removal can be initiated by the guest or by
14033       HMP/QMP commands.
14034
14035       Arguments:
14036
14037       "device: string" (optional)
14038           device name
14039
14040       "path: string"
14041           device path
14042
14043       Since: 1.5
14044
14045       Example:
14046
14047               <- { "event": "DEVICE_DELETED",
14048                    "data": { "device": "virtio-net-pci-0",
14049                              "path": "/machine/peripheral/virtio-net-pci-0" },
14050                    "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
14051
14052   Machines
14053       SysEmuTarget (Enum)
14054
14055       The comprehensive enumeration of QEMU system emulation ("softmmu")
14056       targets. Run "./configure --help" in the project root directory, and
14057       look for the *-softmmu targets near the "--target-list" option. The
14058       individual target constants are not documented here, for the time
14059       being.
14060
14061       Values:
14062
14063       "rx"
14064           since 5.0
14065
14066       "avr"
14067           since 5.1
14068
14069       "aarch64"
14070           Not documented
14071
14072       "alpha"
14073           Not documented
14074
14075       "arm"
14076           Not documented
14077
14078       "cris"
14079           Not documented
14080
14081       "hppa"
14082           Not documented
14083
14084       "i386"
14085           Not documented
14086
14087       "lm32"
14088           Not documented
14089
14090       "m68k"
14091           Not documented
14092
14093       "microblaze"
14094           Not documented
14095
14096       "microblazeel"
14097           Not documented
14098
14099       "mips"
14100           Not documented
14101
14102       "mips64"
14103           Not documented
14104
14105       "mips64el"
14106           Not documented
14107
14108       "mipsel"
14109           Not documented
14110
14111       "moxie"
14112           Not documented
14113
14114       "nios2"
14115           Not documented
14116
14117       "or1k"
14118           Not documented
14119
14120       "ppc"
14121           Not documented
14122
14123       "ppc64"
14124           Not documented
14125
14126       "riscv32"
14127           Not documented
14128
14129       "riscv64"
14130           Not documented
14131
14132       "s390x"
14133           Not documented
14134
14135       "sh4"
14136           Not documented
14137
14138       "sh4eb"
14139           Not documented
14140
14141       "sparc"
14142           Not documented
14143
14144       "sparc64"
14145           Not documented
14146
14147       "tricore"
14148           Not documented
14149
14150       "unicore32"
14151           Not documented
14152
14153       "x86_64"
14154           Not documented
14155
14156       "xtensa"
14157           Not documented
14158
14159       "xtensaeb"
14160           Not documented
14161
14162       Notes: The resulting QMP strings can be appended to the "qemu-system-"
14163       prefix to produce the corresponding QEMU executable name. This is true
14164       even for "qemu-system-x86_64".
14165
14166       Since: 3.0
14167
14168       CpuInfoArch (Enum)
14169
14170       An enumeration of cpu types that enable additional information during
14171       "query-cpus" and "query-cpus-fast".
14172
14173       Values:
14174
14175       "s390"
14176           since 2.12
14177
14178       "riscv"
14179           since 2.12
14180
14181       "x86"
14182           Not documented
14183
14184       "sparc"
14185           Not documented
14186
14187       "ppc"
14188           Not documented
14189
14190       "mips"
14191           Not documented
14192
14193       "tricore"
14194           Not documented
14195
14196       "other"
14197           Not documented
14198
14199       Since: 2.6
14200
14201       CpuInfo (Object)
14202
14203       Information about a virtual CPU
14204
14205       Members:
14206
14207       "CPU: int"
14208           the index of the virtual CPU
14209
14210       "current: boolean"
14211           this only exists for backwards compatibility and should be ignored
14212
14213       "halted: boolean"
14214           true if the virtual CPU is in the halt state.  Halt usually refers
14215           to a processor specific low power mode.
14216
14217       "qom_path: string"
14218           path to the CPU object in the QOM tree (since 2.4)
14219
14220       "thread_id: int"
14221           ID of the underlying host thread
14222
14223       "props: CpuInstanceProperties" (optional)
14224           properties describing to which node/socket/core/thread virtual CPU
14225           belongs to, provided if supported by board (since 2.10)
14226
14227       "arch: CpuInfoArch"
14228           architecture of the cpu, which determines which additional fields
14229           will be listed (since 2.6)
14230
14231       The members of "CpuInfoX86" when "arch" is "x86"
14232       The members of "CpuInfoSPARC" when "arch" is "sparc"
14233       The members of "CpuInfoPPC" when "arch" is "ppc"
14234       The members of "CpuInfoMIPS" when "arch" is "mips"
14235       The members of "CpuInfoTricore" when "arch" is "tricore"
14236       The members of "CpuInfoS390" when "arch" is "s390"
14237       The members of "CpuInfoRISCV" when "arch" is "riscv"
14238
14239       Since: 0.14.0
14240
14241       Notes: "halted" is a transient state that changes frequently.  By the
14242       time the data is sent to the client, the guest may no longer be halted.
14243
14244       CpuInfoX86 (Object)
14245
14246       Additional information about a virtual i386 or x86_64 CPU
14247
14248       Members:
14249
14250       "pc: int"
14251           the 64-bit instruction pointer
14252
14253       Since: 2.6
14254
14255       CpuInfoSPARC (Object)
14256
14257       Additional information about a virtual SPARC CPU
14258
14259       Members:
14260
14261       "pc: int"
14262           the PC component of the instruction pointer
14263
14264       "npc: int"
14265           the NPC component of the instruction pointer
14266
14267       Since: 2.6
14268
14269       CpuInfoPPC (Object)
14270
14271       Additional information about a virtual PPC CPU
14272
14273       Members:
14274
14275       "nip: int"
14276           the instruction pointer
14277
14278       Since: 2.6
14279
14280       CpuInfoMIPS (Object)
14281
14282       Additional information about a virtual MIPS CPU
14283
14284       Members:
14285
14286       "PC: int"
14287           the instruction pointer
14288
14289       Since: 2.6
14290
14291       CpuInfoTricore (Object)
14292
14293       Additional information about a virtual Tricore CPU
14294
14295       Members:
14296
14297       "PC: int"
14298           the instruction pointer
14299
14300       Since: 2.6
14301
14302       CpuInfoRISCV (Object)
14303
14304       Additional information about a virtual RISCV CPU
14305
14306       Members:
14307
14308       "pc: int"
14309           the instruction pointer
14310
14311       Since 2.12
14312
14313       CpuS390State (Enum)
14314
14315       An enumeration of cpu states that can be assumed by a virtual S390 CPU
14316
14317       Values:
14318
14319       "uninitialized"
14320           Not documented
14321
14322       "stopped"
14323           Not documented
14324
14325       "check-stop"
14326           Not documented
14327
14328       "operating"
14329           Not documented
14330
14331       "load"
14332           Not documented
14333
14334       Since: 2.12
14335
14336       CpuInfoS390 (Object)
14337
14338       Additional information about a virtual S390 CPU
14339
14340       Members:
14341
14342       "cpu-state: CpuS390State"
14343           the virtual CPU's state
14344
14345       Since: 2.12
14346
14347       query-cpus  (Command) Returns a list of information about each virtual
14348       CPU.
14349
14350       This command causes vCPU threads to exit to userspace, which causes a
14351       small interruption to guest CPU execution. This will have a negative
14352       impact on realtime guests and other latency sensitive guest workloads.
14353
14354       Features:
14355
14356       "deprecated"
14357           This command is deprecated, because it interferes with the guest.
14358           Use 'query-cpus-fast' instead to avoid the vCPU interruption.
14359
14360       Returns: a list of "CpuInfo" for each virtual CPU
14361
14362       Since: 0.14.0
14363
14364       Example:
14365
14366               -> { "execute": "query-cpus" }
14367               <- { "return": [
14368                        {
14369                           "CPU":0,
14370                           "current":true,
14371                           "halted":false,
14372                           "qom_path":"/machine/unattached/device[0]",
14373                           "arch":"x86",
14374                           "pc":3227107138,
14375                           "thread_id":3134
14376                        },
14377                        {
14378                           "CPU":1,
14379                           "current":false,
14380                           "halted":true,
14381                           "qom_path":"/machine/unattached/device[2]",
14382                           "arch":"x86",
14383                           "pc":7108165,
14384                           "thread_id":3135
14385                        }
14386                     ]
14387                  }
14388
14389       CpuInfoFast (Object)
14390
14391       Information about a virtual CPU
14392
14393       Members:
14394
14395       "cpu-index: int"
14396           index of the virtual CPU
14397
14398       "qom-path: string"
14399           path to the CPU object in the QOM tree
14400
14401       "thread-id: int"
14402           ID of the underlying host thread
14403
14404       "props: CpuInstanceProperties" (optional)
14405           properties describing to which node/socket/core/thread virtual CPU
14406           belongs to, provided if supported by board
14407
14408       "arch: CpuInfoArch"
14409           base architecture of the cpu
14410
14411       "target: SysEmuTarget"
14412           the QEMU system emulation target, which determines which additional
14413           fields will be listed (since 3.0)
14414
14415       The members of "CpuInfoS390" when "target" is "s390x"
14416
14417       Features:
14418
14419       "deprecated"
14420           Member "arch" is deprecated.  Use "target" instead.
14421
14422       Since: 2.12
14423
14424       query-cpus-fast  (Command) Returns information about all virtual CPUs.
14425       This command does not incur a performance penalty and should be used in
14426       production instead of query-cpus.
14427
14428       Returns: list of "CpuInfoFast"
14429
14430       Since: 2.12
14431
14432       Example:
14433
14434               -> { "execute": "query-cpus-fast" }
14435               <- { "return": [
14436                       {
14437                           "thread-id": 25627,
14438                           "props": {
14439                               "core-id": 0,
14440                               "thread-id": 0,
14441                               "socket-id": 0
14442                           },
14443                           "qom-path": "/machine/unattached/device[0]",
14444                           "arch":"x86",
14445                           "target":"x86_64",
14446                           "cpu-index": 0
14447                       },
14448                       {
14449                           "thread-id": 25628,
14450                           "props": {
14451                               "core-id": 0,
14452                               "thread-id": 0,
14453                               "socket-id": 1
14454                           },
14455                           "qom-path": "/machine/unattached/device[2]",
14456                           "arch":"x86",
14457                           "target":"x86_64",
14458                           "cpu-index": 1
14459                       }
14460                   ]
14461               }
14462
14463       cpu-add  (Command) Adds CPU with specified ID.
14464
14465       Arguments:
14466
14467       "id: int"
14468           ID of CPU to be created, valid values [0..max_cpus)
14469
14470       Features:
14471
14472       "deprecated"
14473           This command is deprecated.  Use `device_add` instead.  See the
14474           `query-hotpluggable-cpus` command for details.
14475
14476       Returns: Nothing on success
14477
14478       Since: 1.5
14479
14480       Example:
14481
14482               -> { "execute": "cpu-add", "arguments": { "id": 2 } }
14483               <- { "return": {} }
14484
14485       MachineInfo (Object)
14486
14487       Information describing a machine.
14488
14489       Members:
14490
14491       "name: string"
14492           the name of the machine
14493
14494       "alias: string" (optional)
14495           an alias for the machine name
14496
14497       "is-default: boolean" (optional)
14498           whether the machine is default
14499
14500       "cpu-max: int"
14501           maximum number of CPUs supported by the machine type (since 1.5.0)
14502
14503       "hotpluggable-cpus: boolean"
14504           cpu hotplug via -device is supported (since 2.7.0)
14505
14506       "numa-mem-supported: boolean"
14507           true if '-numa node,mem' option is supported by the machine type
14508           and false otherwise (since 4.1)
14509
14510       "deprecated: boolean"
14511           if true, the machine type is deprecated and may be removed in
14512           future versions of QEMU according to the QEMU deprecation policy
14513           (since 4.1.0)
14514
14515       "default-cpu-type: string" (optional)
14516           default CPU model typename if none is requested via the -cpu
14517           argument. (since 4.2)
14518
14519       Since: 1.2.0
14520
14521       query-machines  (Command) Return a list of supported machines
14522
14523       Returns: a list of MachineInfo
14524
14525       Since: 1.2.0
14526
14527       CurrentMachineParams (Object)
14528
14529       Information describing the running machine parameters.
14530
14531       Members:
14532
14533       "wakeup-suspend-support: boolean"
14534           true if the machine supports wake up from suspend
14535
14536       Since: 4.0
14537
14538       query-current-machine  (Command) Return information on the current
14539       virtual machine.
14540
14541       Returns: CurrentMachineParams
14542
14543       Since: 4.0
14544
14545       TargetInfo (Object)
14546
14547       Information describing the QEMU target.
14548
14549       Members:
14550
14551       "arch: SysEmuTarget"
14552           the target architecture
14553
14554       Since: 1.2.0
14555
14556       query-target  (Command) Return information about the target for this
14557       QEMU
14558
14559       Returns: TargetInfo
14560
14561       Since: 1.2.0
14562
14563       NumaOptionsType (Enum)
14564
14565       Values:
14566
14567       "node"
14568           NUMA nodes configuration
14569
14570       "dist"
14571           NUMA distance configuration (since 2.10)
14572
14573       "cpu"
14574           property based CPU(s) to node mapping (Since: 2.10)
14575
14576       "hmat-lb"
14577           memory latency and bandwidth information (Since: 5.0)
14578
14579       "hmat-cache"
14580           memory side cache information (Since: 5.0)
14581
14582       Since: 2.1
14583
14584       NumaOptions (Object)
14585
14586       A discriminated record of NUMA options. (for OptsVisitor)
14587
14588       Members:
14589
14590       "type: NumaOptionsType"
14591           Not documented
14592
14593       The members of "NumaNodeOptions" when "type" is "node"
14594       The members of "NumaDistOptions" when "type" is "dist"
14595       The members of "NumaCpuOptions" when "type" is "cpu"
14596       The members of "NumaHmatLBOptions" when "type" is "hmat-lb"
14597       The members of "NumaHmatCacheOptions" when "type" is "hmat-cache"
14598
14599       Since: 2.1
14600
14601       NumaNodeOptions (Object)
14602
14603       Create a guest NUMA node. (for OptsVisitor)
14604
14605       Members:
14606
14607       "nodeid: int" (optional)
14608           NUMA node ID (increase by 1 from 0 if omitted)
14609
14610       "cpus: array of int" (optional)
14611           VCPUs belonging to this node (assign VCPUS round-robin if omitted)
14612
14613       "mem: int" (optional)
14614           memory size of this node; mutually exclusive with "memdev".
14615           Equally divide total memory among nodes if both "mem" and "memdev"
14616           are omitted.
14617
14618       "memdev: string" (optional)
14619           memory backend object.  If specified for one node, it must be
14620           specified for all nodes.
14621
14622       "initiator: int" (optional)
14623           defined in ACPI 6.3 Chapter 5.2.27.3 Table 5-145, points to the
14624           nodeid which has the memory controller responsible for this NUMA
14625           node. This field provides additional information as to the
14626           initiator node that is closest (as in directly attached) to this
14627           node, and therefore has the best performance (since 5.0)
14628
14629       Since: 2.1
14630
14631       NumaDistOptions (Object)
14632
14633       Set the distance between 2 NUMA nodes.
14634
14635       Members:
14636
14637       "src: int"
14638           source NUMA node.
14639
14640       "dst: int"
14641           destination NUMA node.
14642
14643       "val: int"
14644           NUMA distance from source node to destination node.  When a node is
14645           unreachable from another node, set the distance between them to
14646           255.
14647
14648       Since: 2.10
14649
14650       X86CPURegister32 (Enum)
14651
14652       A X86 32-bit register
14653
14654       Values:
14655
14656       "EAX"
14657           Not documented
14658
14659       "EBX"
14660           Not documented
14661
14662       "ECX"
14663           Not documented
14664
14665       "EDX"
14666           Not documented
14667
14668       "ESP"
14669           Not documented
14670
14671       "EBP"
14672           Not documented
14673
14674       "ESI"
14675           Not documented
14676
14677       "EDI"
14678           Not documented
14679
14680       Since: 1.5
14681
14682       X86CPUFeatureWordInfo (Object)
14683
14684       Information about a X86 CPU feature word
14685
14686       Members:
14687
14688       "cpuid-input-eax: int"
14689           Input EAX value for CPUID instruction for that feature word
14690
14691       "cpuid-input-ecx: int" (optional)
14692           Input ECX value for CPUID instruction for that feature word
14693
14694       "cpuid-register: X86CPURegister32"
14695           Output register containing the feature bits
14696
14697       "features: int"
14698           value of output register, containing the feature bits
14699
14700       Since: 1.5
14701
14702       DummyForceArrays (Object)
14703
14704       Not used by QMP; hack to let us use X86CPUFeatureWordInfoList
14705       internally
14706
14707       Members:
14708
14709       "unused: array of X86CPUFeatureWordInfo"
14710           Not documented
14711
14712       Since: 2.5
14713
14714       NumaCpuOptions (Object)
14715
14716       Option "-numa cpu" overrides default cpu to node mapping.  It accepts
14717       the same set of cpu properties as returned by
14718       query-hotpluggable-cpus[].props, where node-id could be used to
14719       override default node mapping.
14720
14721       Members:
14722
14723       The members of "CpuInstanceProperties"
14724
14725       Since: 2.10
14726
14727       HmatLBMemoryHierarchy (Enum)
14728
14729       The memory hierarchy in the System Locality Latency and Bandwidth
14730       Information Structure of HMAT (Heterogeneous Memory Attribute Table)
14731
14732       For more information about "HmatLBMemoryHierarchy", see chapter
14733       5.2.27.4: Table 5-146: Field "Flags" of ACPI 6.3 spec.
14734
14735       Values:
14736
14737       "memory"
14738           the structure represents the memory performance
14739
14740       "first-level"
14741           first level of memory side cache
14742
14743       "second-level"
14744           second level of memory side cache
14745
14746       "third-level"
14747           third level of memory side cache
14748
14749       Since: 5.0
14750
14751       HmatLBDataType (Enum)
14752
14753       Data type in the System Locality Latency and Bandwidth Information
14754       Structure of HMAT (Heterogeneous Memory Attribute Table)
14755
14756       For more information about "HmatLBDataType", see chapter 5.2.27.4:
14757       Table 5-146:  Field "Data Type" of ACPI 6.3 spec.
14758
14759       Values:
14760
14761       "access-latency"
14762           access latency (nanoseconds)
14763
14764       "read-latency"
14765           read latency (nanoseconds)
14766
14767       "write-latency"
14768           write latency (nanoseconds)
14769
14770       "access-bandwidth"
14771           access bandwidth (Bytes per second)
14772
14773       "read-bandwidth"
14774           read bandwidth (Bytes per second)
14775
14776       "write-bandwidth"
14777           write bandwidth (Bytes per second)
14778
14779       Since: 5.0
14780
14781       NumaHmatLBOptions (Object)
14782
14783       Set the system locality latency and bandwidth information between
14784       Initiator and Target proximity Domains.
14785
14786       For more information about "NumaHmatLBOptions", see chapter 5.2.27.4:
14787       Table 5-146 of ACPI 6.3 spec.
14788
14789       Members:
14790
14791       "initiator: int"
14792           the Initiator Proximity Domain.
14793
14794       "target: int"
14795           the Target Proximity Domain.
14796
14797       "hierarchy: HmatLBMemoryHierarchy"
14798           the Memory Hierarchy. Indicates the performance of memory or side
14799           cache.
14800
14801       "data-type: HmatLBDataType"
14802           presents the type of data, access/read/write latency or hit
14803           latency.
14804
14805       "latency: int" (optional)
14806           the value of latency from "initiator" to "target" proximity domain,
14807           the latency unit is "ns(nanosecond)".
14808
14809       "bandwidth: int" (optional)
14810           the value of bandwidth between "initiator" and "target" proximity
14811           domain, the bandwidth unit is "Bytes per second".
14812
14813       Since: 5.0
14814
14815       HmatCacheAssociativity (Enum)
14816
14817       Cache associativity in the Memory Side Cache Information Structure of
14818       HMAT
14819
14820       For more information of "HmatCacheAssociativity", see chapter 5.2.27.5:
14821       Table 5-147 of ACPI 6.3 spec.
14822
14823       Values:
14824
14825       "none"
14826           None (no memory side cache in this proximity domain, or cache
14827           associativity unknown)
14828
14829       "direct"
14830           Direct Mapped
14831
14832       "complex"
14833           Complex Cache Indexing (implementation specific)
14834
14835       Since: 5.0
14836
14837       HmatCacheWritePolicy (Enum)
14838
14839       Cache write policy in the Memory Side Cache Information Structure of
14840       HMAT
14841
14842       For more information of "HmatCacheWritePolicy", see chapter 5.2.27.5:
14843       Table 5-147: Field "Cache Attributes" of ACPI 6.3 spec.
14844
14845       Values:
14846
14847       "none"
14848           None (no memory side cache in this proximity domain, or cache write
14849           policy unknown)
14850
14851       "write-back"
14852           Write Back (WB)
14853
14854       "write-through"
14855           Write Through (WT)
14856
14857       Since: 5.0
14858
14859       NumaHmatCacheOptions (Object)
14860
14861       Set the memory side cache information for a given memory domain.
14862
14863       For more information of "NumaHmatCacheOptions", see chapter 5.2.27.5:
14864       Table 5-147: Field "Cache Attributes" of ACPI 6.3 spec.
14865
14866       Members:
14867
14868       "node-id: int"
14869           the memory proximity domain to which the memory belongs.
14870
14871       "size: int"
14872           the size of memory side cache in bytes.
14873
14874       "level: int"
14875           the cache level described in this structure.
14876
14877       "associativity: HmatCacheAssociativity"
14878           the cache associativity, none/direct-mapped/complex(complex cache
14879           indexing).
14880
14881       "policy: HmatCacheWritePolicy"
14882           the write policy, none/write-back/write-through.
14883
14884       "line: int"
14885           the cache Line size in bytes.
14886
14887       Since: 5.0
14888
14889       HostMemPolicy (Enum)
14890
14891       Host memory policy types
14892
14893       Values:
14894
14895       "default"
14896           restore default policy, remove any nondefault policy
14897
14898       "preferred"
14899           set the preferred host nodes for allocation
14900
14901       "bind"
14902           a strict policy that restricts memory allocation to the host nodes
14903           specified
14904
14905       "interleave"
14906           memory allocations are interleaved across the set of host nodes
14907           specified
14908
14909       Since: 2.1
14910
14911       Memdev (Object)
14912
14913       Information about memory backend
14914
14915       Members:
14916
14917       "id: string" (optional)
14918           backend's ID if backend has 'id' property (since 2.9)
14919
14920       "size: int"
14921           memory backend size
14922
14923       "merge: boolean"
14924           enables or disables memory merge support
14925
14926       "dump: boolean"
14927           includes memory backend's memory in a core dump or not
14928
14929       "prealloc: boolean"
14930           enables or disables memory preallocation
14931
14932       "host-nodes: array of int"
14933           host nodes for its memory policy
14934
14935       "policy: HostMemPolicy"
14936           memory policy of memory backend
14937
14938       Since: 2.1
14939
14940       query-memdev  (Command) Returns information for all memory backends.
14941
14942       Returns: a list of "Memdev".
14943
14944       Since: 2.1
14945
14946       Example:
14947
14948               -> { "execute": "query-memdev" }
14949               <- { "return": [
14950                      {
14951                        "id": "mem1",
14952                        "size": 536870912,
14953                        "merge": false,
14954                        "dump": true,
14955                        "prealloc": false,
14956                        "host-nodes": [0, 1],
14957                        "policy": "bind"
14958                      },
14959                      {
14960                        "size": 536870912,
14961                        "merge": false,
14962                        "dump": true,
14963                        "prealloc": true,
14964                        "host-nodes": [2, 3],
14965                        "policy": "preferred"
14966                      }
14967                    ]
14968                  }
14969
14970       CpuInstanceProperties (Object)
14971
14972       List of properties to be used for hotplugging a CPU instance, it should
14973       be passed by management with device_add command when a CPU is being
14974       hotplugged.
14975
14976       Members:
14977
14978       "node-id: int" (optional)
14979           NUMA node ID the CPU belongs to
14980
14981       "socket-id: int" (optional)
14982           socket number within node/board the CPU belongs to
14983
14984       "die-id: int" (optional)
14985           die number within node/board the CPU belongs to (Since 4.1)
14986
14987       "core-id: int" (optional)
14988           core number within die the CPU belongs to
14989
14990       "thread-id: int" (optional)
14991           thread number within core the CPU belongs to
14992
14993       Note: currently there are 5 properties that could be present but
14994       management should be prepared to pass through other properties with
14995       device_add command to allow for future interface extension. This also
14996       requires the filed names to be kept in sync with the properties passed
14997       to -device/device_add.
14998
14999       Since: 2.7
15000
15001       HotpluggableCPU (Object)
15002
15003       Members:
15004
15005       "type: string"
15006           CPU object type for usage with device_add command
15007
15008       "props: CpuInstanceProperties"
15009           list of properties to be used for hotplugging CPU
15010
15011       "vcpus-count: int"
15012           number of logical VCPU threads "HotpluggableCPU" provides
15013
15014       "qom-path: string" (optional)
15015           link to existing CPU object if CPU is present or omitted if CPU is
15016           not present.
15017
15018       Since: 2.7
15019
15020       query-hotpluggable-cpus  (Command)
15021
15022       TODO: Better documentation; currently there is none.
15023
15024       Returns: a list of HotpluggableCPU objects.
15025
15026       Since: 2.7
15027
15028       Example:
15029
15030               For pseries machine type started with -smp 2,cores=2,maxcpus=4 -cpu POWER8:
15031
15032               -> { "execute": "query-hotpluggable-cpus" }
15033               <- {"return": [
15034                    { "props": { "core": 8 }, "type": "POWER8-spapr-cpu-core",
15035                      "vcpus-count": 1 },
15036                    { "props": { "core": 0 }, "type": "POWER8-spapr-cpu-core",
15037                      "vcpus-count": 1, "qom-path": "/machine/unattached/device[0]"}
15038                  ]}'
15039
15040               For pc machine type started with -smp 1,maxcpus=2:
15041
15042               -> { "execute": "query-hotpluggable-cpus" }
15043               <- {"return": [
15044                    {
15045                       "type": "qemu64-x86_64-cpu", "vcpus-count": 1,
15046                       "props": {"core-id": 0, "socket-id": 1, "thread-id": 0}
15047                    },
15048                    {
15049                       "qom-path": "/machine/unattached/device[0]",
15050                       "type": "qemu64-x86_64-cpu", "vcpus-count": 1,
15051                       "props": {"core-id": 0, "socket-id": 0, "thread-id": 0}
15052                    }
15053                  ]}
15054
15055               For s390x-virtio-ccw machine type started with -smp 1,maxcpus=2 -cpu qemu
15056               (Since: 2.11):
15057
15058               -> { "execute": "query-hotpluggable-cpus" }
15059               <- {"return": [
15060                    {
15061                       "type": "qemu-s390x-cpu", "vcpus-count": 1,
15062                       "props": { "core-id": 1 }
15063                    },
15064                    {
15065                       "qom-path": "/machine/unattached/device[0]",
15066                       "type": "qemu-s390x-cpu", "vcpus-count": 1,
15067                       "props": { "core-id": 0 }
15068                    }
15069                  ]}
15070
15071       set-numa-node  (Command) Runtime equivalent of '-numa' CLI option,
15072       available at preconfigure stage to configure numa mapping before
15073       initializing machine.
15074
15075       Since 3.0
15076
15077       Arguments: the members of "NumaOptions"
15078
15079       CpuModelInfo (Object)
15080
15081       Virtual CPU model.
15082
15083       A CPU model consists of the name of a CPU definition, to which delta
15084       changes are applied (e.g. features added/removed). Most magic values
15085       that an architecture might require should be hidden behind the name.
15086       However, if required, architectures can expose relevant properties.
15087
15088       Members:
15089
15090       "name: string"
15091           the name of the CPU definition the model is based on
15092
15093       "props: value" (optional)
15094           a dictionary of QOM properties to be applied
15095
15096       Since: 2.8.0
15097
15098       CpuModelExpansionType (Enum)
15099
15100       An enumeration of CPU model expansion types.
15101
15102       Values:
15103
15104       "static"
15105           Expand to a static CPU model, a combination of a static base model
15106           name and property delta changes. As the static base model will
15107           never change, the expanded CPU model will be the same, independent
15108           of QEMU version, machine type, machine options, and accelerator
15109           options.  Therefore, the resulting model can be used by tooling
15110           without having to specify a compatibility machine - e.g. when
15111           displaying the "host" model. The "static" CPU models are migration-
15112           safe.
15113
15114       "full"
15115           Expand all properties. The produced model is not guaranteed to be
15116           migration-safe, but allows tooling to get an insight and work with
15117           model details.
15118
15119       Note: When a non-migration-safe CPU model is expanded in static mode,
15120       some features enabled by the CPU model may be omitted, because they
15121       can't be implemented by a static CPU model definition (e.g. cache info
15122       passthrough and PMU passthrough in x86). If you need an accurate
15123       representation of the features enabled by a non-migration-safe CPU
15124       model, use "full". If you need a static representation that will keep
15125       ABI compatibility even when changing QEMU version or machine-type, use
15126       "static" (but keep in mind that some features may be omitted).
15127
15128       Since: 2.8.0
15129
15130       CpuModelCompareResult (Enum)
15131
15132       An enumeration of CPU model comparison results. The result is usually
15133       calculated using e.g. CPU features or CPU generations.
15134
15135       Values:
15136
15137       "incompatible"
15138           If model A is incompatible to model B, model A is not guaranteed to
15139           run where model B runs and the other way around.
15140
15141       "identical"
15142           If model A is identical to model B, model A is guaranteed to run
15143           where model B runs and the other way around.
15144
15145       "superset"
15146           If model A is a superset of model B, model B is guaranteed to run
15147           where model A runs. There are no guarantees about the other way.
15148
15149       "subset"
15150           If model A is a subset of model B, model A is guaranteed to run
15151           where model B runs. There are no guarantees about the other way.
15152
15153       Since: 2.8.0
15154
15155       CpuModelBaselineInfo (Object)
15156
15157       The result of a CPU model baseline.
15158
15159       Members:
15160
15161       "model: CpuModelInfo"
15162           the baselined CpuModelInfo.
15163
15164       Since: 2.8.0
15165
15166       If: "defined(TARGET_S390X)"
15167
15168       CpuModelCompareInfo (Object)
15169
15170       The result of a CPU model comparison.
15171
15172       Members:
15173
15174       "result: CpuModelCompareResult"
15175           The result of the compare operation.
15176
15177       "responsible-properties: array of string"
15178           List of properties that led to the comparison result not being
15179           identical.
15180
15181       "responsible-properties" is a list of QOM property names that led to
15182       both CPUs not being detected as identical. For identical models, this
15183       list is empty.  If a QOM property is read-only, that means there's no
15184       known way to make the CPU models identical. If the special property
15185       name "type" is included, the models are by definition not identical and
15186       cannot be made identical.
15187
15188       Since: 2.8.0
15189
15190       If: "defined(TARGET_S390X)"
15191
15192       query-cpu-model-comparison  (Command) Compares two CPU models,
15193       returning how they compare in a specific configuration. The results
15194       indicates how both models compare regarding runnability. This result
15195       can be used by tooling to make decisions if a certain CPU model will
15196       run in a certain configuration or if a compatible CPU model has to be
15197       created by baselining.
15198
15199       Usually, a CPU model is compared against the maximum possible CPU model
15200       of a certain configuration (e.g. the "host" model for KVM). If that CPU
15201       model is identical or a subset, it will run in that configuration.
15202
15203       The result returned by this command may be affected by:
15204
15205       ·   QEMU version: CPU models may look different depending on the QEMU
15206           version.  (Except for CPU models reported as "static" in query-cpu-
15207           definitions.)
15208
15209       ·   machine-type: CPU model may look different depending on the
15210           machine-type.  (Except for CPU models reported as "static" in
15211           query-cpu-definitions.)
15212
15213       ·   machine options (including accelerator): in some architectures, CPU
15214           models may look different depending on machine and accelerator
15215           options. (Except for CPU models reported as "static" in query-cpu-
15216           definitions.)
15217
15218       ·   "-cpu" arguments and global properties: arguments to the -cpu
15219           option and global properties may affect expansion of CPU models.
15220           Using query-cpu-model-expansion while using these is not advised.
15221
15222       Some architectures may not support comparing CPU models. s390x supports
15223       comparing CPU models.
15224
15225       Arguments:
15226
15227       "modela: CpuModelInfo"
15228           Not documented
15229
15230       "modelb: CpuModelInfo"
15231           Not documented
15232
15233       Returns: a CpuModelBaselineInfo. Returns an error if comparing CPU
15234       models is not supported, if a model cannot be used, if a model contains
15235       an unknown cpu definition name, unknown properties or properties with
15236       wrong types.
15237
15238       Note: this command isn't specific to s390x, but is only implemented on
15239       this architecture currently.
15240
15241       Since: 2.8.0
15242
15243       If: "defined(TARGET_S390X)"
15244
15245       query-cpu-model-baseline  (Command) Baseline two CPU models, creating a
15246       compatible third model. The created model will always be a static,
15247       migration-safe CPU model (see "static" CPU model expansion for
15248       details).
15249
15250       This interface can be used by tooling to create a compatible CPU model
15251       out two CPU models. The created CPU model will be identical to or a
15252       subset of both CPU models when comparing them. Therefore, the created
15253       CPU model is guaranteed to run where the given CPU models run.
15254
15255       The result returned by this command may be affected by:
15256
15257       ·   QEMU version: CPU models may look different depending on the QEMU
15258           version.  (Except for CPU models reported as "static" in query-cpu-
15259           definitions.)
15260
15261       ·   machine-type: CPU model may look different depending on the
15262           machine-type.  (Except for CPU models reported as "static" in
15263           query-cpu-definitions.)
15264
15265       ·   machine options (including accelerator): in some architectures, CPU
15266           models may look different depending on machine and accelerator
15267           options. (Except for CPU models reported as "static" in query-cpu-
15268           definitions.)
15269
15270       ·   "-cpu" arguments and global properties: arguments to the -cpu
15271           option and global properties may affect expansion of CPU models.
15272           Using query-cpu-model-expansion while using these is not advised.
15273
15274       Some architectures may not support baselining CPU models. s390x
15275       supports baselining CPU models.
15276
15277       Arguments:
15278
15279       "modela: CpuModelInfo"
15280           Not documented
15281
15282       "modelb: CpuModelInfo"
15283           Not documented
15284
15285       Returns: a CpuModelBaselineInfo. Returns an error if baselining CPU
15286       models is not supported, if a model cannot be used, if a model contains
15287       an unknown cpu definition name, unknown properties or properties with
15288       wrong types.
15289
15290       Note: this command isn't specific to s390x, but is only implemented on
15291       this architecture currently.
15292
15293       Since: 2.8.0
15294
15295       If: "defined(TARGET_S390X)"
15296
15297       CpuModelExpansionInfo (Object)
15298
15299       The result of a cpu model expansion.
15300
15301       Members:
15302
15303       "model: CpuModelInfo"
15304           the expanded CpuModelInfo.
15305
15306       Since: 2.8.0
15307
15308       If: "defined(TARGET_S390X) || defined(TARGET_I386) ||
15309       defined(TARGET_ARM)"
15310
15311       query-cpu-model-expansion  (Command) Expands a given CPU model (or a
15312       combination of CPU model + additional options) to different
15313       granularities, allowing tooling to get an understanding what a specific
15314       CPU model looks like in QEMU under a certain configuration.
15315
15316       This interface can be used to query the "host" CPU model.
15317
15318       The data returned by this command may be affected by:
15319
15320       ·   QEMU version: CPU models may look different depending on the QEMU
15321           version.  (Except for CPU models reported as "static" in query-cpu-
15322           definitions.)
15323
15324       ·   machine-type: CPU model  may look different depending on the
15325           machine-type.  (Except for CPU models reported as "static" in
15326           query-cpu-definitions.)
15327
15328       ·   machine options (including accelerator): in some architectures, CPU
15329           models may look different depending on machine and accelerator
15330           options. (Except for CPU models reported as "static" in query-cpu-
15331           definitions.)
15332
15333       ·   "-cpu" arguments and global properties: arguments to the -cpu
15334           option and global properties may affect expansion of CPU models.
15335           Using query-cpu-model-expansion while using these is not advised.
15336
15337       Some architectures may not support all expansion types. s390x supports
15338       "full" and "static". Arm only supports "full".
15339
15340       Arguments:
15341
15342       "type: CpuModelExpansionType"
15343           Not documented
15344
15345       "model: CpuModelInfo"
15346           Not documented
15347
15348       Returns: a CpuModelExpansionInfo. Returns an error if expanding CPU
15349       models is not supported, if the model cannot be expanded, if the model
15350       contains an unknown CPU definition name, unknown properties or
15351       properties with a wrong type. Also returns an error if an expansion
15352       type is not supported.
15353
15354       Since: 2.8.0
15355
15356       If: "defined(TARGET_S390X) || defined(TARGET_I386) ||
15357       defined(TARGET_ARM)"
15358
15359       CpuDefinitionInfo (Object)
15360
15361       Virtual CPU definition.
15362
15363       Members:
15364
15365       "name: string"
15366           the name of the CPU definition
15367
15368       "migration-safe: boolean" (optional)
15369           whether a CPU definition can be safely used for migration in
15370           combination with a QEMU compatibility machine when migrating
15371           between different QEMU versions and between hosts with different
15372           sets of (hardware or software) capabilities. If not provided,
15373           information is not available and callers should not assume the CPU
15374           definition to be migration-safe. (since 2.8)
15375
15376       "static: boolean"
15377           whether a CPU definition is static and will not change depending on
15378           QEMU version, machine type, machine options and accelerator
15379           options.  A static model is always migration-safe. (since 2.8)
15380
15381       "unavailable-features: array of string" (optional)
15382           List of properties that prevent the CPU model from running in the
15383           current host. (since 2.8)
15384
15385       "typename: string"
15386           Type name that can be used as argument to "device-list-properties",
15387           to introspect properties configurable using -cpu or -global.
15388           (since 2.9)
15389
15390       "alias-of: string" (optional)
15391           Name of CPU model this model is an alias for.  The target of the
15392           CPU model alias may change depending on the machine type.
15393           Management software is supposed to translate CPU model aliases in
15394           the VM configuration, because aliases may stop being migration-safe
15395           in the future (since 4.1)
15396
15397       "unavailable-features" is a list of QOM property names that represent
15398       CPU model attributes that prevent the CPU from running.  If the QOM
15399       property is read-only, that means there's no known way to make the CPU
15400       model run in the current host. Implementations that choose not to
15401       provide specific information return the property name "type".  If the
15402       property is read-write, it means that it MAY be possible to run the CPU
15403       model in the current host if that property is changed. Management
15404       software can use it as hints to suggest or choose an alternative for
15405       the user, or just to generate meaningful error messages explaining why
15406       the CPU model can't be used.  If "unavailable-features" is an empty
15407       list, the CPU model is runnable using the current host and machine-
15408       type.  If "unavailable-features" is not present, runnability
15409       information for the CPU is not available.
15410
15411       Since: 1.2.0
15412
15413       If: "defined(TARGET_PPC) || defined(TARGET_ARM) || defined(TARGET_I386)
15414       || defined(TARGET_S390X) || defined(TARGET_MIPS)"
15415
15416       query-cpu-definitions  (Command) Return a list of supported virtual CPU
15417       definitions
15418
15419       Returns: a list of CpuDefInfo
15420
15421       Since: 1.2.0
15422
15423       If: "defined(TARGET_PPC) || defined(TARGET_ARM) || defined(TARGET_I386)
15424       || defined(TARGET_S390X) || defined(TARGET_MIPS)"
15425
15426   Miscellanea
15427       LostTickPolicy (Enum)
15428
15429       Policy for handling lost ticks in timer devices.  Ticks end up getting
15430       lost when, for example, the guest is paused.
15431
15432       Values:
15433
15434       "discard"
15435           throw away the missed ticks and continue with future injection
15436           normally.  The guest OS will see the timer jump ahead by a
15437           potentially quite significant amount all at once, as if the
15438           intervening chunk of time had simply not existed; needless to say,
15439           such a sudden jump can easily confuse a guest OS which is not
15440           specifically prepared to deal with it.  Assuming the guest OS can
15441           deal correctly with the time jump, the time in the guest and in the
15442           host should now match.
15443
15444       "delay"
15445           continue to deliver ticks at the normal rate.  The guest OS will
15446           not notice anything is amiss, as from its point of view time will
15447           have continued to flow normally.  The time in the guest should now
15448           be behind the time in the host by exactly the amount of time during
15449           which ticks have been missed.
15450
15451       "slew"
15452           deliver ticks at a higher rate to catch up with the missed ticks.
15453           The guest OS will not notice anything is amiss, as from its point
15454           of view time will have continued to flow normally.  Once the timer
15455           has managed to catch up with all the missing ticks, the time in the
15456           guest and in the host should match.
15457
15458       Since: 2.0
15459
15460       add_client  (Command) Allow client connections for VNC, Spice and
15461       socket based character devices to be passed in to QEMU via SCM_RIGHTS.
15462
15463       Arguments:
15464
15465       "protocol: string"
15466           protocol name. Valid names are "vnc", "spice" or the name of a
15467           character device (eg. from -chardev id=XXXX)
15468
15469       "fdname: string"
15470           file descriptor name previously passed via 'getfd' command
15471
15472       "skipauth: boolean" (optional)
15473           whether to skip authentication. Only applies to "vnc" and "spice"
15474           protocols
15475
15476       "tls: boolean" (optional)
15477           whether to perform TLS. Only applies to the "spice" protocol
15478
15479       Returns: nothing on success.
15480
15481       Since: 0.14.0
15482
15483       Example:
15484
15485               -> { "execute": "add_client", "arguments": { "protocol": "vnc",
15486                                                            "fdname": "myclient" } }
15487               <- { "return": {} }
15488
15489       NameInfo (Object)
15490
15491       Guest name information.
15492
15493       Members:
15494
15495       "name: string" (optional)
15496           The name of the guest
15497
15498       Since: 0.14.0
15499
15500       query-name  (Command) Return the name information of a guest.
15501
15502       Returns: "NameInfo" of the guest
15503
15504       Since: 0.14.0
15505
15506       Example:
15507
15508               -> { "execute": "query-name" }
15509               <- { "return": { "name": "qemu-name" } }
15510
15511       KvmInfo (Object)
15512
15513       Information about support for KVM acceleration
15514
15515       Members:
15516
15517       "enabled: boolean"
15518           true if KVM acceleration is active
15519
15520       "present: boolean"
15521           true if KVM acceleration is built into this executable
15522
15523       Since: 0.14.0
15524
15525       query-kvm  (Command) Returns information about KVM acceleration
15526
15527       Returns: "KvmInfo"
15528
15529       Since: 0.14.0
15530
15531       Example:
15532
15533               -> { "execute": "query-kvm" }
15534               <- { "return": { "enabled": true, "present": true } }
15535
15536       UuidInfo (Object)
15537
15538       Guest UUID information (Universally Unique Identifier).
15539
15540       Members:
15541
15542       "UUID: string"
15543           the UUID of the guest
15544
15545       Since: 0.14.0
15546
15547       Notes: If no UUID was specified for the guest, a null UUID is returned.
15548
15549       query-uuid  (Command) Query the guest UUID information.
15550
15551       Returns: The "UuidInfo" for the guest
15552
15553       Since: 0.14.0
15554
15555       Example:
15556
15557               -> { "execute": "query-uuid" }
15558               <- { "return": { "UUID": "550e8400-e29b-41d4-a716-446655440000" } }
15559
15560       IOThreadInfo (Object)
15561
15562       Information about an iothread
15563
15564       Members:
15565
15566       "id: string"
15567           the identifier of the iothread
15568
15569       "thread-id: int"
15570           ID of the underlying host thread
15571
15572       "poll-max-ns: int"
15573           maximum polling time in ns, 0 means polling is disabled (since 2.9)
15574
15575       "poll-grow: int"
15576           how many ns will be added to polling time, 0 means that it's not
15577           configured (since 2.9)
15578
15579       "poll-shrink: int"
15580           how many ns will be removed from polling time, 0 means that it's
15581           not configured (since 2.9)
15582
15583       Since: 2.0
15584
15585       query-iothreads  (Command) Returns a list of information about each
15586       iothread.
15587
15588       Note: this list excludes the QEMU main loop thread, which is not
15589       declared using the -object iothread command-line option.  It is always
15590       the main thread of the process.
15591
15592       Returns: a list of "IOThreadInfo" for each iothread
15593
15594       Since: 2.0
15595
15596       Example:
15597
15598               -> { "execute": "query-iothreads" }
15599               <- { "return": [
15600                        {
15601                           "id":"iothread0",
15602                           "thread-id":3134
15603                        },
15604                        {
15605                           "id":"iothread1",
15606                           "thread-id":3135
15607                        }
15608                     ]
15609                  }
15610
15611       BalloonInfo (Object)
15612
15613       Information about the guest balloon device.
15614
15615       Members:
15616
15617       "actual: int"
15618           the number of bytes the balloon currently contains
15619
15620       Since: 0.14.0
15621
15622       query-balloon  (Command) Return information about the balloon device.
15623
15624       Returns:
15625
15626       -   "BalloonInfo" on success
15627
15628       -   If the balloon driver is enabled but not functional because the KVM
15629           kernel module cannot support it, KvmMissingCap
15630
15631       -   If no balloon device is present, DeviceNotActive
15632
15633       Since: 0.14.0
15634
15635       Example:
15636
15637               -> { "execute": "query-balloon" }
15638               <- { "return": {
15639                        "actual": 1073741824,
15640                     }
15641                  }
15642
15643       BALLOON_CHANGE  (Event) Emitted when the guest changes the actual
15644       BALLOON level. This value is equivalent to the "actual" field return by
15645       the 'query-balloon' command
15646
15647       Arguments:
15648
15649       "actual: int"
15650           actual level of the guest memory balloon in bytes
15651
15652       Note: this event is rate-limited.
15653
15654       Since: 1.2
15655
15656       Example:
15657
15658               <- { "event": "BALLOON_CHANGE",
15659                    "data": { "actual": 944766976 },
15660                    "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
15661
15662       PciMemoryRange (Object)
15663
15664       A PCI device memory region
15665
15666       Members:
15667
15668       "base: int"
15669           the starting address (guest physical)
15670
15671       "limit: int"
15672           the ending address (guest physical)
15673
15674       Since: 0.14.0
15675
15676       PciMemoryRegion (Object)
15677
15678       Information about a PCI device I/O region.
15679
15680       Members:
15681
15682       "bar: int"
15683           the index of the Base Address Register for this region
15684
15685       "type: string"
15686           -   'io' if the region is a PIO region
15687
15688           -   'memory' if the region is a MMIO region
15689
15690       "size: int"
15691           memory size
15692
15693       "prefetch: boolean" (optional)
15694           if "type" is 'memory', true if the memory is prefetchable
15695
15696       "mem_type_64: boolean" (optional)
15697           if "type" is 'memory', true if the BAR is 64-bit
15698
15699       "address: int"
15700           Not documented
15701
15702       Since: 0.14.0
15703
15704       PciBusInfo (Object)
15705
15706       Information about a bus of a PCI Bridge device
15707
15708       Members:
15709
15710       "number: int"
15711           primary bus interface number.  This should be the number of the bus
15712           the device resides on.
15713
15714       "secondary: int"
15715           secondary bus interface number.  This is the number of the main bus
15716           for the bridge
15717
15718       "subordinate: int"
15719           This is the highest number bus that resides below the bridge.
15720
15721       "io_range: PciMemoryRange"
15722           The PIO range for all devices on this bridge
15723
15724       "memory_range: PciMemoryRange"
15725           The MMIO range for all devices on this bridge
15726
15727       "prefetchable_range: PciMemoryRange"
15728           The range of prefetchable MMIO for all devices on this bridge
15729
15730       Since: 2.4
15731
15732       PciBridgeInfo (Object)
15733
15734       Information about a PCI Bridge device
15735
15736       Members:
15737
15738       "bus: PciBusInfo"
15739           information about the bus the device resides on
15740
15741       "devices: array of PciDeviceInfo" (optional)
15742           a list of "PciDeviceInfo" for each device on this bridge
15743
15744       Since: 0.14.0
15745
15746       PciDeviceClass (Object)
15747
15748       Information about the Class of a PCI device
15749
15750       Members:
15751
15752       "desc: string" (optional)
15753           a string description of the device's class
15754
15755       "class: int"
15756           the class code of the device
15757
15758       Since: 2.4
15759
15760       PciDeviceId (Object)
15761
15762       Information about the Id of a PCI device
15763
15764       Members:
15765
15766       "device: int"
15767           the PCI device id
15768
15769       "vendor: int"
15770           the PCI vendor id
15771
15772       "subsystem: int" (optional)
15773           the PCI subsystem id (since 3.1)
15774
15775       "subsystem-vendor: int" (optional)
15776           the PCI subsystem vendor id (since 3.1)
15777
15778       Since: 2.4
15779
15780       PciDeviceInfo (Object)
15781
15782       Information about a PCI device
15783
15784       Members:
15785
15786       "bus: int"
15787           the bus number of the device
15788
15789       "slot: int"
15790           the slot the device is located in
15791
15792       "function: int"
15793           the function of the slot used by the device
15794
15795       "class_info: PciDeviceClass"
15796           the class of the device
15797
15798       "id: PciDeviceId"
15799           the PCI device id
15800
15801       "irq: int" (optional)
15802           if an IRQ is assigned to the device, the IRQ number
15803
15804       "irq_pin: int"
15805           the IRQ pin, zero means no IRQ (since 5.1)
15806
15807       "qdev_id: string"
15808           the device name of the PCI device
15809
15810       "pci_bridge: PciBridgeInfo" (optional)
15811           if the device is a PCI bridge, the bridge information
15812
15813       "regions: array of PciMemoryRegion"
15814           a list of the PCI I/O regions associated with the device
15815
15816       Notes: the contents of "class_info".desc are not stable and should only
15817       be treated as informational.
15818
15819       Since: 0.14.0
15820
15821       PciInfo (Object)
15822
15823       Information about a PCI bus
15824
15825       Members:
15826
15827       "bus: int"
15828           the bus index
15829
15830       "devices: array of PciDeviceInfo"
15831           a list of devices on this bus
15832
15833       Since: 0.14.0
15834
15835       query-pci  (Command) Return information about the PCI bus topology of
15836       the guest.
15837
15838       Returns: a list of "PciInfo" for each PCI bus. Each bus is represented
15839       by a json-object, which has a key with a json-array of all PCI devices
15840       attached to it. Each device is represented by a json-object.
15841
15842       Since: 0.14.0
15843
15844       Example:
15845
15846               -> { "execute": "query-pci" }
15847               <- { "return": [
15848                        {
15849                           "bus": 0,
15850                           "devices": [
15851                              {
15852                                 "bus": 0,
15853                                 "qdev_id": "",
15854                                 "slot": 0,
15855                                 "class_info": {
15856                                    "class": 1536,
15857                                    "desc": "Host bridge"
15858                                 },
15859                                 "id": {
15860                                    "device": 32902,
15861                                    "vendor": 4663
15862                                 },
15863                                 "function": 0,
15864                                 "regions": [
15865                                 ]
15866                              },
15867                              {
15868                                 "bus": 0,
15869                                 "qdev_id": "",
15870                                 "slot": 1,
15871                                 "class_info": {
15872                                    "class": 1537,
15873                                    "desc": "ISA bridge"
15874                                 },
15875                                 "id": {
15876                                    "device": 32902,
15877                                    "vendor": 28672
15878                                 },
15879                                 "function": 0,
15880                                 "regions": [
15881                                 ]
15882                              },
15883                              {
15884                                 "bus": 0,
15885                                 "qdev_id": "",
15886                                 "slot": 1,
15887                                 "class_info": {
15888                                    "class": 257,
15889                                    "desc": "IDE controller"
15890                                 },
15891                                 "id": {
15892                                    "device": 32902,
15893                                    "vendor": 28688
15894                                 },
15895                                 "function": 1,
15896                                 "regions": [
15897                                    {
15898                                       "bar": 4,
15899                                       "size": 16,
15900                                       "address": 49152,
15901                                       "type": "io"
15902                                    }
15903                                 ]
15904                              },
15905                              {
15906                                 "bus": 0,
15907                                 "qdev_id": "",
15908                                 "slot": 2,
15909                                 "class_info": {
15910                                    "class": 768,
15911                                    "desc": "VGA controller"
15912                                 },
15913                                 "id": {
15914                                    "device": 4115,
15915                                    "vendor": 184
15916                                 },
15917                                 "function": 0,
15918                                 "regions": [
15919                                    {
15920                                       "prefetch": true,
15921                                       "mem_type_64": false,
15922                                       "bar": 0,
15923                                       "size": 33554432,
15924                                       "address": 4026531840,
15925                                       "type": "memory"
15926                                    },
15927                                    {
15928                                       "prefetch": false,
15929                                       "mem_type_64": false,
15930                                       "bar": 1,
15931                                       "size": 4096,
15932                                       "address": 4060086272,
15933                                       "type": "memory"
15934                                    },
15935                                    {
15936                                       "prefetch": false,
15937                                       "mem_type_64": false,
15938                                       "bar": 6,
15939                                       "size": 65536,
15940                                       "address": -1,
15941                                       "type": "memory"
15942                                    }
15943                                 ]
15944                              },
15945                              {
15946                                 "bus": 0,
15947                                 "qdev_id": "",
15948                                 "irq": 11,
15949                                 "slot": 4,
15950                                 "class_info": {
15951                                    "class": 1280,
15952                                    "desc": "RAM controller"
15953                                 },
15954                                 "id": {
15955                                    "device": 6900,
15956                                    "vendor": 4098
15957                                 },
15958                                 "function": 0,
15959                                 "regions": [
15960                                    {
15961                                       "bar": 0,
15962                                       "size": 32,
15963                                       "address": 49280,
15964                                       "type": "io"
15965                                    }
15966                                 ]
15967                              }
15968                           ]
15969                        }
15970                     ]
15971                  }
15972
15973       Note: This example has been shortened as the real response is too long.
15974
15975       stop  (Command) Stop all guest VCPU execution.
15976
15977       Since: 0.14.0
15978
15979       Notes: This function will succeed even if the guest is already in the
15980       stopped state.  In "inmigrate" state, it will ensure that the guest
15981       remains paused once migration finishes, as if the -S option was passed
15982       on the command line.
15983
15984       Example:
15985
15986               -> { "execute": "stop" }
15987               <- { "return": {} }
15988
15989       system_reset  (Command) Performs a hard reset of a guest.
15990
15991       Since: 0.14.0
15992
15993       Example:
15994
15995               -> { "execute": "system_reset" }
15996               <- { "return": {} }
15997
15998       system_powerdown  (Command) Requests that a guest perform a powerdown
15999       operation.
16000
16001       Since: 0.14.0
16002
16003       Notes: A guest may or may not respond to this command.  This command
16004       returning does not indicate that a guest has accepted the request or
16005       that it has shut down.  Many guests will respond to this command by
16006       prompting the user in some way.
16007
16008       Example:
16009
16010               -> { "execute": "system_powerdown" }
16011               <- { "return": {} }
16012
16013       memsave  (Command) Save a portion of guest memory to a file.
16014
16015       Arguments:
16016
16017       "val: int"
16018           the virtual address of the guest to start from
16019
16020       "size: int"
16021           the size of memory region to save
16022
16023       "filename: string"
16024           the file to save the memory to as binary data
16025
16026       "cpu-index: int" (optional)
16027           the index of the virtual CPU to use for translating the virtual
16028           address (defaults to CPU 0)
16029
16030       Returns: Nothing on success
16031
16032       Since: 0.14.0
16033
16034       Notes: Errors were not reliably returned until 1.1
16035
16036       Example:
16037
16038               -> { "execute": "memsave",
16039                    "arguments": { "val": 10,
16040                                   "size": 100,
16041                                   "filename": "/tmp/virtual-mem-dump" } }
16042               <- { "return": {} }
16043
16044       pmemsave  (Command) Save a portion of guest physical memory to a file.
16045
16046       Arguments:
16047
16048       "val: int"
16049           the physical address of the guest to start from
16050
16051       "size: int"
16052           the size of memory region to save
16053
16054       "filename: string"
16055           the file to save the memory to as binary data
16056
16057       Returns: Nothing on success
16058
16059       Since: 0.14.0
16060
16061       Notes: Errors were not reliably returned until 1.1
16062
16063       Example:
16064
16065               -> { "execute": "pmemsave",
16066                    "arguments": { "val": 10,
16067                                   "size": 100,
16068                                   "filename": "/tmp/physical-mem-dump" } }
16069               <- { "return": {} }
16070
16071       cont  (Command) Resume guest VCPU execution.
16072
16073       Since: 0.14.0
16074
16075       Returns: If successful, nothing
16076
16077       Notes: This command will succeed if the guest is currently running.  It
16078       will also succeed if the guest is in the "inmigrate" state; in this
16079       case, the effect of the command is to make sure the guest starts once
16080       migration finishes, removing the effect of the -S command line option
16081       if it was passed.
16082
16083       Example:
16084
16085               -> { "execute": "cont" }
16086               <- { "return": {} }
16087
16088       x-exit-preconfig  (Command) Exit from "preconfig" state
16089
16090       This command makes QEMU exit the preconfig state and proceed with VM
16091       initialization using configuration data provided on the command line
16092       and via the QMP monitor during the preconfig state. The command is only
16093       available during the preconfig state (i.e. when the --preconfig command
16094       line option was in use).
16095
16096       Since 3.0
16097
16098       Returns: nothing
16099
16100       Example:
16101
16102               -> { "execute": "x-exit-preconfig" }
16103               <- { "return": {} }
16104
16105       system_wakeup  (Command) Wake up guest from suspend. If the guest has
16106       wake-up from suspend support enabled (wakeup-suspend-support flag from
16107       query-current-machine), wake-up guest from suspend if the guest is in
16108       SUSPENDED state. Return an error otherwise.
16109
16110       Since: 1.1
16111
16112       Returns: nothing.
16113
16114       Note: prior to 4.0, this command does nothing in case the guest isn't
16115       suspended.
16116
16117       Example:
16118
16119               -> { "execute": "system_wakeup" }
16120               <- { "return": {} }
16121
16122       inject-nmi  (Command) Injects a Non-Maskable Interrupt into the default
16123       CPU (x86/s390) or all CPUs (ppc64).  The command fails when the guest
16124       doesn't support injecting.
16125
16126       Returns: If successful, nothing
16127
16128       Since: 0.14.0
16129
16130       Note: prior to 2.1, this command was only supported for x86 and s390
16131       VMs
16132
16133       Example:
16134
16135               -> { "execute": "inject-nmi" }
16136               <- { "return": {} }
16137
16138       balloon  (Command) Request the balloon driver to change its balloon
16139       size.
16140
16141       Arguments:
16142
16143       "value: int"
16144           the target size of the balloon in bytes
16145
16146       Returns:
16147
16148       -   Nothing on success
16149
16150       -   If the balloon driver is enabled but not functional because the KVM
16151           kernel module cannot support it, KvmMissingCap
16152
16153       -   If no balloon device is present, DeviceNotActive
16154
16155       Notes: This command just issues a request to the guest.  When it
16156       returns, the balloon size may not have changed.  A guest can change the
16157       balloon size independent of this command.
16158
16159       Since: 0.14.0
16160
16161       Example:
16162
16163               -> { "execute": "balloon", "arguments": { "value": 536870912 } }
16164               <- { "return": {} }
16165
16166       human-monitor-command  (Command) Execute a command on the human monitor
16167       and return the output.
16168
16169       Arguments:
16170
16171       "command-line: string"
16172           the command to execute in the human monitor
16173
16174       "cpu-index: int" (optional)
16175           The CPU to use for commands that require an implicit CPU
16176
16177       Features:
16178
16179       "savevm-monitor-nodes"
16180           If present, HMP command savevm only snapshots monitor-owned nodes
16181           if they have no parents.  This allows the use of 'savevm' with
16182           -blockdev. (since 4.2)
16183
16184       Returns: the output of the command as a string
16185
16186       Since: 0.14.0
16187
16188       Notes: This command only exists as a stop-gap.  Its use is highly
16189       discouraged.  The semantics of this command are not guaranteed: this
16190       means that command names, arguments and responses can change or be
16191       removed at ANY time.  Applications that rely on long term stability
16192       guarantees should NOT use this command.
16193
16194       Known limitations:
16195
16196       ·   This command is stateless, this means that commands that depend on
16197           state information (such as getfd) might not work
16198
16199       ·   Commands that prompt the user for data don't currently work
16200
16201       Example:
16202
16203               -> { "execute": "human-monitor-command",
16204                    "arguments": { "command-line": "info kvm" } }
16205               <- { "return": "kvm support: enabled\r\n" }
16206
16207       change  (Command) This command is multiple commands multiplexed
16208       together.
16209
16210       Arguments:
16211
16212       "device: string"
16213           This is normally the name of a block device but it may also be
16214           'vnc'.  when it's 'vnc', then sub command depends on "target"
16215
16216       "target: string"
16217           If "device" is a block device, then this is the new filename.  If
16218           "device" is 'vnc', then if the value 'password' selects the vnc
16219           change password command.   Otherwise, this specifies a new server
16220           URI address to listen to for VNC connections.
16221
16222       "arg: string" (optional)
16223           If "device" is a block device, then this is an optional format to
16224           open the device with.  If "device" is 'vnc' and "target" is
16225           'password', this is the new VNC password to set.  See change-vnc-
16226           password for additional notes.
16227
16228       Features:
16229
16230       "deprecated"
16231           This command is deprecated.  For changing block devices, use
16232           'blockdev-change-medium' instead; for changing VNC parameters, use
16233           'change-vnc-password' instead.
16234
16235       Returns:
16236
16237       -   Nothing on success.
16238
16239       -   If "device" is not a valid block device, DeviceNotFound
16240
16241       Since: 0.14.0
16242
16243       Example:
16244
16245               1. Change a removable medium
16246
16247               -> { "execute": "change",
16248                    "arguments": { "device": "ide1-cd0",
16249                                   "target": "/srv/images/Fedora-12-x86_64-DVD.iso" } }
16250               <- { "return": {} }
16251
16252               2. Change VNC password
16253
16254               -> { "execute": "change",
16255                    "arguments": { "device": "vnc", "target": "password",
16256                                   "arg": "foobar1" } }
16257               <- { "return": {} }
16258
16259       xen-set-global-dirty-log  (Command) Enable or disable the global dirty
16260       log mode.
16261
16262       Arguments:
16263
16264       "enable: boolean"
16265           true to enable, false to disable.
16266
16267       Returns: nothing
16268
16269       Since: 1.3
16270
16271       Example:
16272
16273               -> { "execute": "xen-set-global-dirty-log",
16274                    "arguments": { "enable": true } }
16275               <- { "return": {} }
16276
16277       getfd  (Command) Receive a file descriptor via SCM rights and assign it
16278       a name
16279
16280       Arguments:
16281
16282       "fdname: string"
16283           file descriptor name
16284
16285       Returns: Nothing on success
16286
16287       Since: 0.14.0
16288
16289       Notes: If "fdname" already exists, the file descriptor assigned to it
16290       will be closed and replaced by the received file descriptor.
16291
16292       The 'closefd' command can be used to explicitly close the file
16293       descriptor when it is no longer needed.
16294
16295       Example:
16296
16297               -> { "execute": "getfd", "arguments": { "fdname": "fd1" } }
16298               <- { "return": {} }
16299
16300       closefd  (Command) Close a file descriptor previously passed via SCM
16301       rights
16302
16303       Arguments:
16304
16305       "fdname: string"
16306           file descriptor name
16307
16308       Returns: Nothing on success
16309
16310       Since: 0.14.0
16311
16312       Example:
16313
16314               -> { "execute": "closefd", "arguments": { "fdname": "fd1" } }
16315               <- { "return": {} }
16316
16317       MemoryInfo (Object)
16318
16319       Actual memory information in bytes.
16320
16321       Members:
16322
16323       "base-memory: int"
16324           size of "base" memory specified with command line option -m.
16325
16326       "plugged-memory: int" (optional)
16327           size of memory that can be hot-unplugged. This field is omitted if
16328           target doesn't support memory hotplug (i.e. CONFIG_MEM_DEVICE not
16329           defined at build time).
16330
16331       Since: 2.11.0
16332
16333       query-memory-size-summary  (Command) Return the amount of initially
16334       allocated and present hotpluggable (if enabled) memory in bytes.
16335
16336       Example:
16337
16338               -> { "execute": "query-memory-size-summary" }
16339               <- { "return": { "base-memory": 4294967296, "plugged-memory": 0 } }
16340
16341       Since: 2.11.0
16342
16343       AddfdInfo (Object)
16344
16345       Information about a file descriptor that was added to an fd set.
16346
16347       Members:
16348
16349       "fdset-id: int"
16350           The ID of the fd set that "fd" was added to.
16351
16352       "fd: int"
16353           The file descriptor that was received via SCM rights and added to
16354           the fd set.
16355
16356       Since: 1.2.0
16357
16358       add-fd  (Command) Add a file descriptor, that was passed via SCM
16359       rights, to an fd set.
16360
16361       Arguments:
16362
16363       "fdset-id: int" (optional)
16364           The ID of the fd set to add the file descriptor to.
16365
16366       "opaque: string" (optional)
16367           A free-form string that can be used to describe the fd.
16368
16369       Returns:
16370
16371       -   "AddfdInfo" on success
16372
16373       -   If file descriptor was not received, FdNotSupplied
16374
16375       -   If "fdset-id" is a negative value, InvalidParameterValue
16376
16377       Notes: The list of fd sets is shared by all monitor connections.
16378
16379       If "fdset-id" is not specified, a new fd set will be created.
16380
16381       Since: 1.2.0
16382
16383       Example:
16384
16385               -> { "execute": "add-fd", "arguments": { "fdset-id": 1 } }
16386               <- { "return": { "fdset-id": 1, "fd": 3 } }
16387
16388       remove-fd  (Command) Remove a file descriptor from an fd set.
16389
16390       Arguments:
16391
16392       "fdset-id: int"
16393           The ID of the fd set that the file descriptor belongs to.
16394
16395       "fd: int" (optional)
16396           The file descriptor that is to be removed.
16397
16398       Returns:
16399
16400       -   Nothing on success
16401
16402       -   If "fdset-id" or "fd" is not found, FdNotFound
16403
16404       Since: 1.2.0
16405
16406       Notes: The list of fd sets is shared by all monitor connections.
16407
16408       If "fd" is not specified, all file descriptors in "fdset-id" will be
16409       removed.
16410
16411       Example:
16412
16413               -> { "execute": "remove-fd", "arguments": { "fdset-id": 1, "fd": 3 } }
16414               <- { "return": {} }
16415
16416       FdsetFdInfo (Object)
16417
16418       Information about a file descriptor that belongs to an fd set.
16419
16420       Members:
16421
16422       "fd: int"
16423           The file descriptor value.
16424
16425       "opaque: string" (optional)
16426           A free-form string that can be used to describe the fd.
16427
16428       Since: 1.2.0
16429
16430       FdsetInfo (Object)
16431
16432       Information about an fd set.
16433
16434       Members:
16435
16436       "fdset-id: int"
16437           The ID of the fd set.
16438
16439       "fds: array of FdsetFdInfo"
16440           A list of file descriptors that belong to this fd set.
16441
16442       Since: 1.2.0
16443
16444       query-fdsets  (Command) Return information describing all fd sets.
16445
16446       Returns: A list of "FdsetInfo"
16447
16448       Since: 1.2.0
16449
16450       Note: The list of fd sets is shared by all monitor connections.
16451
16452       Example:
16453
16454               -> { "execute": "query-fdsets" }
16455               <- { "return": [
16456                      {
16457                        "fds": [
16458                          {
16459                            "fd": 30,
16460                            "opaque": "rdonly:/path/to/file"
16461                          },
16462                          {
16463                            "fd": 24,
16464                            "opaque": "rdwr:/path/to/file"
16465                          }
16466                        ],
16467                        "fdset-id": 1
16468                      },
16469                      {
16470                        "fds": [
16471                          {
16472                            "fd": 28
16473                          },
16474                          {
16475                            "fd": 29
16476                          }
16477                        ],
16478                        "fdset-id": 0
16479                      }
16480                    ]
16481                  }
16482
16483       AcpiTableOptions (Object)
16484
16485       Specify an ACPI table on the command line to load.
16486
16487       At most one of "file" and "data" can be specified. The list of files
16488       specified by any one of them is loaded and concatenated in order. If
16489       both are omitted, "data" is implied.
16490
16491       Other fields / optargs can be used to override fields of the generic
16492       ACPI table header; refer to the ACPI specification 5.0, section 5.2.6
16493       System Description Table Header. If a header field is not overridden,
16494       then the corresponding value from the concatenated blob is used (in
16495       case of "file"), or it is filled in with a hard-coded value (in case of
16496       "data").
16497
16498       String fields are copied into the matching ACPI member from lowest
16499       address upwards, and silently truncated / NUL-padded to length.
16500
16501       Members:
16502
16503       "sig: string" (optional)
16504           table signature / identifier (4 bytes)
16505
16506       "rev: int" (optional)
16507           table revision number (dependent on signature, 1 byte)
16508
16509       "oem_id: string" (optional)
16510           OEM identifier (6 bytes)
16511
16512       "oem_table_id: string" (optional)
16513           OEM table identifier (8 bytes)
16514
16515       "oem_rev: int" (optional)
16516           OEM-supplied revision number (4 bytes)
16517
16518       "asl_compiler_id: string" (optional)
16519           identifier of the utility that created the table (4 bytes)
16520
16521       "asl_compiler_rev: int" (optional)
16522           revision number of the utility that created the table (4 bytes)
16523
16524       "file: string" (optional)
16525           colon (:) separated list of pathnames to load and concatenate as
16526           table data. The resultant binary blob is expected to have an ACPI
16527           table header. At least one file is required. This field excludes
16528           "data".
16529
16530       "data: string" (optional)
16531           colon (:) separated list of pathnames to load and concatenate as
16532           table data. The resultant binary blob must not have an ACPI table
16533           header. At least one file is required. This field excludes "file".
16534
16535       Since: 1.5
16536
16537       CommandLineParameterType (Enum)
16538
16539       Possible types for an option parameter.
16540
16541       Values:
16542
16543       "string"
16544           accepts a character string
16545
16546       "boolean"
16547           accepts "on" or "off"
16548
16549       "number"
16550           accepts a number
16551
16552       "size"
16553           accepts a number followed by an optional suffix (K)ilo, (M)ega,
16554           (G)iga, (T)era
16555
16556       Since: 1.5
16557
16558       CommandLineParameterInfo (Object)
16559
16560       Details about a single parameter of a command line option.
16561
16562       Members:
16563
16564       "name: string"
16565           parameter name
16566
16567       "type: CommandLineParameterType"
16568           parameter "CommandLineParameterType"
16569
16570       "help: string" (optional)
16571           human readable text string, not suitable for parsing.
16572
16573       "default: string" (optional)
16574           default value string (since 2.1)
16575
16576       Since: 1.5
16577
16578       CommandLineOptionInfo (Object)
16579
16580       Details about a command line option, including its list of parameter
16581       details
16582
16583       Members:
16584
16585       "option: string"
16586           option name
16587
16588       "parameters: array of CommandLineParameterInfo"
16589           an array of "CommandLineParameterInfo"
16590
16591       Since: 1.5
16592
16593       query-command-line-options  (Command) Query command line option schema.
16594
16595       Arguments:
16596
16597       "option: string" (optional)
16598           option name
16599
16600       Returns: list of "CommandLineOptionInfo" for all options (or for the
16601       given "option").  Returns an error if the given "option" doesn't exist.
16602
16603       Since: 1.5
16604
16605       Example:
16606
16607               -> { "execute": "query-command-line-options",
16608                    "arguments": { "option": "option-rom" } }
16609               <- { "return": [
16610                       {
16611                           "parameters": [
16612                               {
16613                                   "name": "romfile",
16614                                   "type": "string"
16615                               },
16616                               {
16617                                   "name": "bootindex",
16618                                   "type": "number"
16619                               }
16620                           ],
16621                           "option": "option-rom"
16622                       }
16623                    ]
16624                  }
16625
16626       PCDIMMDeviceInfo (Object)
16627
16628       PCDIMMDevice state information
16629
16630       Members:
16631
16632       "id: string" (optional)
16633           device's ID
16634
16635       "addr: int"
16636           physical address, where device is mapped
16637
16638       "size: int"
16639           size of memory that the device provides
16640
16641       "slot: int"
16642           slot number at which device is plugged in
16643
16644       "node: int"
16645           NUMA node number where device is plugged in
16646
16647       "memdev: string"
16648           memory backend linked with device
16649
16650       "hotplugged: boolean"
16651           true if device was hotplugged
16652
16653       "hotpluggable: boolean"
16654           true if device if could be added/removed while machine is running
16655
16656       Since: 2.1
16657
16658       VirtioPMEMDeviceInfo (Object)
16659
16660       VirtioPMEM state information
16661
16662       Members:
16663
16664       "id: string" (optional)
16665           device's ID
16666
16667       "memaddr: int"
16668           physical address in memory, where device is mapped
16669
16670       "size: int"
16671           size of memory that the device provides
16672
16673       "memdev: string"
16674           memory backend linked with device
16675
16676       Since: 4.1
16677
16678       VirtioMEMDeviceInfo (Object)
16679
16680       VirtioMEMDevice state information
16681
16682       Members:
16683
16684       "id: string" (optional)
16685           device's ID
16686
16687       "memaddr: int"
16688           physical address in memory, where device is mapped
16689
16690       "requested-size: int"
16691           the user requested size of the device
16692
16693       "size: int"
16694           the (current) size of memory that the device provides
16695
16696       "max-size: int"
16697           the maximum size of memory that the device can provide
16698
16699       "block-size: int"
16700           the block size of memory that the device provides
16701
16702       "node: int"
16703           NUMA node number where device is assigned to
16704
16705       "memdev: string"
16706           memory backend linked with the region
16707
16708       Since: 5.1
16709
16710       MemoryDeviceInfo (Object)
16711
16712       Union containing information about a memory device
16713
16714       nvdimm is included since 2.12. virtio-pmem is included since 4.1.
16715       virtio-mem is included since 5.1.
16716
16717       Members:
16718
16719       "type"
16720           One of "dimm", "nvdimm", "virtio-pmem", "virtio-mem"
16721
16722       "data: PCDIMMDeviceInfo" when "type" is "dimm"
16723       "data: PCDIMMDeviceInfo" when "type" is "nvdimm"
16724       "data: VirtioPMEMDeviceInfo" when "type" is "virtio-pmem"
16725       "data: VirtioMEMDeviceInfo" when "type" is "virtio-mem"
16726
16727       Since: 2.1
16728
16729       query-memory-devices  (Command) Lists available memory devices and
16730       their state
16731
16732       Since: 2.1
16733
16734       Example:
16735
16736               -> { "execute": "query-memory-devices" }
16737               <- { "return": [ { "data":
16738                                     { "addr": 5368709120,
16739                                       "hotpluggable": true,
16740                                       "hotplugged": true,
16741                                       "id": "d1",
16742                                       "memdev": "/objects/memX",
16743                                       "node": 0,
16744                                       "size": 1073741824,
16745                                       "slot": 0},
16746                                  "type": "dimm"
16747                                } ] }
16748
16749       MEMORY_DEVICE_SIZE_CHANGE  (Event) Emitted when the size of a memory
16750       device changes. Only emitted for memory devices that can actually
16751       change the size (e.g., virtio-mem due to guest action).
16752
16753       Arguments:
16754
16755       "id: string" (optional)
16756           device's ID
16757
16758       "size: int"
16759           the new size of memory that the device provides
16760
16761       Note: this event is rate-limited.
16762
16763       Since: 5.1
16764
16765       Example:
16766
16767               <- { "event": "MEMORY_DEVICE_SIZE_CHANGE",
16768                    "data": { "id": "vm0", "size": 1073741824},
16769                    "timestamp": { "seconds": 1588168529, "microseconds": 201316 } }
16770
16771       MEM_UNPLUG_ERROR  (Event) Emitted when memory hot unplug error occurs.
16772
16773       Arguments:
16774
16775       "device: string"
16776           device name
16777
16778       "msg: string"
16779           Informative message
16780
16781       Since: 2.4
16782
16783       Example:
16784
16785               <- { "event": "MEM_UNPLUG_ERROR"
16786                    "data": { "device": "dimm1",
16787                              "msg": "acpi: device unplug for unsupported device"
16788                    },
16789                    "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
16790
16791       ACPISlotType (Enum)
16792
16793       Values:
16794
16795       "DIMM"
16796           memory slot
16797
16798       "CPU"
16799           logical CPU slot (since 2.7)
16800
16801       ACPIOSTInfo (Object)
16802
16803       OSPM Status Indication for a device For description of possible values
16804       of "source" and "status" fields see "_OST (OSPM Status Indication)"
16805       chapter of ACPI5.0 spec.
16806
16807       Members:
16808
16809       "device: string" (optional)
16810           device ID associated with slot
16811
16812       "slot: string"
16813           slot ID, unique per slot of a given "slot-type"
16814
16815       "slot-type: ACPISlotType"
16816           type of the slot
16817
16818       "source: int"
16819           an integer containing the source event
16820
16821       "status: int"
16822           an integer containing the status code
16823
16824       Since: 2.1
16825
16826       query-acpi-ospm-status  (Command) Return a list of ACPIOSTInfo for
16827       devices that support status reporting via ACPI _OST method.
16828
16829       Since: 2.1
16830
16831       Example:
16832
16833               -> { "execute": "query-acpi-ospm-status" }
16834               <- { "return": [ { "device": "d1", "slot": "0", "slot-type": "DIMM", "source": 1, "status": 0},
16835                                { "slot": "1", "slot-type": "DIMM", "source": 0, "status": 0},
16836                                { "slot": "2", "slot-type": "DIMM", "source": 0, "status": 0},
16837                                { "slot": "3", "slot-type": "DIMM", "source": 0, "status": 0}
16838                  ]}
16839
16840       ACPI_DEVICE_OST  (Event) Emitted when guest executes ACPI _OST method.
16841
16842       Arguments:
16843
16844       "info: ACPIOSTInfo"
16845           OSPM Status Indication
16846
16847       Since: 2.1
16848
16849       Example:
16850
16851               <- { "event": "ACPI_DEVICE_OST",
16852                    "data": { "device": "d1", "slot": "0",
16853                              "slot-type": "DIMM", "source": 1, "status": 0 } }
16854
16855       ReplayMode (Enum)
16856
16857       Mode of the replay subsystem.
16858
16859       Values:
16860
16861       "none"
16862           normal execution mode. Replay or record are not enabled.
16863
16864       "record"
16865           record mode. All non-deterministic data is written into the replay
16866           log.
16867
16868       "play"
16869           replay mode. Non-deterministic data required for system execution
16870           is read from the log.
16871
16872       Since: 2.5
16873
16874       xen-load-devices-state  (Command) Load the state of all devices from
16875       file. The RAM and the block devices of the VM are not loaded by this
16876       command.
16877
16878       Arguments:
16879
16880       "filename: string"
16881           the file to load the state of the devices from as binary data. See
16882           xen-save-devices-state.txt for a description of the binary format.
16883
16884       Since: 2.7
16885
16886       Example:
16887
16888               -> { "execute": "xen-load-devices-state",
16889                    "arguments": { "filename": "/tmp/resume" } }
16890               <- { "return": {} }
16891
16892       GuidInfo (Object)
16893
16894       GUID information.
16895
16896       Members:
16897
16898       "guid: string"
16899           the globally unique identifier
16900
16901       Since: 2.9
16902
16903       query-vm-generation-id  (Command) Show Virtual Machine Generation ID
16904
16905       Since: 2.9
16906
16907       RTC_CHANGE  (Event) Emitted when the guest changes the RTC time.
16908
16909       Arguments:
16910
16911       "offset: int"
16912           offset between base RTC clock (as specified by -rtc base), and new
16913           RTC clock value
16914
16915       Note: This event is rate-limited.
16916
16917       Since: 0.13.0
16918
16919       Example:
16920
16921               <-   { "event": "RTC_CHANGE",
16922                      "data": { "offset": 78 },
16923                      "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
16924
16925       If: "defined(TARGET_ALPHA) || defined(TARGET_ARM) ||
16926       defined(TARGET_HPPA) || defined(TARGET_I386) || defined(TARGET_MIPS) ||
16927       defined(TARGET_MIPS64) || defined(TARGET_MOXIE) || defined(TARGET_PPC)
16928       || defined(TARGET_PPC64) || defined(TARGET_S390X) ||
16929       defined(TARGET_SH4) || defined(TARGET_SPARC)"
16930
16931       rtc-reset-reinjection  (Command) This command will reset the RTC
16932       interrupt reinjection backlog.  Can be used if another mechanism to
16933       synchronize guest time is in effect, for example QEMU guest agent's
16934       guest-set-time command.
16935
16936       Since: 2.1
16937
16938       Example:
16939
16940               -> { "execute": "rtc-reset-reinjection" }
16941               <- { "return": {} }
16942
16943       If: "defined(TARGET_I386)"
16944
16945       SevState (Enum)
16946
16947       An enumeration of SEV state information used during "query-sev".
16948
16949       Values:
16950
16951       "uninit"
16952           The guest is uninitialized.
16953
16954       "launch-update"
16955           The guest is currently being launched; plaintext data and register
16956           state is being imported.
16957
16958       "launch-secret"
16959           The guest is currently being launched; ciphertext data is being
16960           imported.
16961
16962       "running"
16963           The guest is fully launched or migrated in.
16964
16965       "send-update"
16966           The guest is currently being migrated out to another machine.
16967
16968       "receive-update"
16969           The guest is currently being migrated from another machine.
16970
16971       Since: 2.12
16972
16973       If: "defined(TARGET_I386)"
16974
16975       SevInfo (Object)
16976
16977       Information about Secure Encrypted Virtualization (SEV) support
16978
16979       Members:
16980
16981       "enabled: boolean"
16982           true if SEV is active
16983
16984       "api-major: int"
16985           SEV API major version
16986
16987       "api-minor: int"
16988           SEV API minor version
16989
16990       "build-id: int"
16991           SEV FW build id
16992
16993       "policy: int"
16994           SEV policy value
16995
16996       "state: SevState"
16997           SEV guest state
16998
16999       "handle: int"
17000           SEV firmware handle
17001
17002       Since: 2.12
17003
17004       If: "defined(TARGET_I386)"
17005
17006       query-sev  (Command) Returns information about SEV
17007
17008       Returns: "SevInfo"
17009
17010       Since: 2.12
17011
17012       Example:
17013
17014               -> { "execute": "query-sev" }
17015               <- { "return": { "enabled": true, "api-major" : 0, "api-minor" : 0,
17016                                "build-id" : 0, "policy" : 0, "state" : "running",
17017                                "handle" : 1 } }
17018
17019       If: "defined(TARGET_I386)"
17020
17021       SevLaunchMeasureInfo (Object)
17022
17023       SEV Guest Launch measurement information
17024
17025       Members:
17026
17027       "data: string"
17028           the measurement value encoded in base64
17029
17030       Since: 2.12
17031
17032       If: "defined(TARGET_I386)"
17033
17034       query-sev-launch-measure  (Command) Query the SEV guest launch
17035       information.
17036
17037       Returns: The "SevLaunchMeasureInfo" for the guest
17038
17039       Since: 2.12
17040
17041       Example:
17042
17043               -> { "execute": "query-sev-launch-measure" }
17044               <- { "return": { "data": "4l8LXeNlSPUDlXPJG5966/8%YZ" } }
17045
17046       If: "defined(TARGET_I386)"
17047
17048       SevCapability (Object)
17049
17050       The struct describes capability for a Secure Encrypted Virtualization
17051       feature.
17052
17053       Members:
17054
17055       "pdh: string"
17056           Platform Diffie-Hellman key (base64 encoded)
17057
17058       "cert-chain: string"
17059           PDH certificate chain (base64 encoded)
17060
17061       "cbitpos: int"
17062           C-bit location in page table entry
17063
17064       "reduced-phys-bits: int"
17065           Number of physical Address bit reduction when SEV is enabled
17066
17067       Since: 2.12
17068
17069       If: "defined(TARGET_I386)"
17070
17071       query-sev-capabilities  (Command) This command is used to get the SEV
17072       capabilities, and is supported on AMD X86 platforms only.
17073
17074       Returns: SevCapability objects.
17075
17076       Since: 2.12
17077
17078       Example:
17079
17080               -> { "execute": "query-sev-capabilities" }
17081               <- { "return": { "pdh": "8CCDD8DDD", "cert-chain": "888CCCDDDEE",
17082                                "cbitpos": 47, "reduced-phys-bits": 5}}
17083
17084       If: "defined(TARGET_I386)"
17085
17086       dump-skeys  (Command) Dump guest's storage keys
17087
17088       Arguments:
17089
17090       "filename: string"
17091           the path to the file to dump to
17092
17093       This command is only supported on s390 architecture.
17094
17095       Since: 2.5
17096
17097       Example:
17098
17099               -> { "execute": "dump-skeys",
17100                    "arguments": { "filename": "/tmp/skeys" } }
17101               <- { "return": {} }
17102
17103       If: "defined(TARGET_S390X)"
17104
17105       GICCapability (Object)
17106
17107       The struct describes capability for a specific GIC (Generic Interrupt
17108       Controller) version. These bits are not only decided by QEMU/KVM
17109       software version, but also decided by the hardware that the program is
17110       running upon.
17111
17112       Members:
17113
17114       "version: int"
17115           version of GIC to be described. Currently, only 2 and 3 are
17116           supported.
17117
17118       "emulated: boolean"
17119           whether current QEMU/hardware supports emulated GIC device in user
17120           space.
17121
17122       "kernel: boolean"
17123           whether current QEMU/hardware supports hardware accelerated GIC
17124           device in kernel.
17125
17126       Since: 2.6
17127
17128       If: "defined(TARGET_ARM)"
17129
17130       query-gic-capabilities  (Command) This command is ARM-only. It will
17131       return a list of GICCapability objects that describe its capability
17132       bits.
17133
17134       Returns: a list of GICCapability objects.
17135
17136       Since: 2.6
17137
17138       Example:
17139
17140               -> { "execute": "query-gic-capabilities" }
17141               <- { "return": [{ "version": 2, "emulated": true, "kernel": false },
17142                               { "version": 3, "emulated": false, "kernel": true } ] }
17143
17144       If: "defined(TARGET_ARM)"
17145
17146       AudiodevPerDirectionOptions (Object)
17147
17148       General audio backend options that are used for both playback and
17149       recording.
17150
17151       Members:
17152
17153       "mixing-engine: boolean" (optional)
17154           use QEMU's mixing engine to mix all streams inside QEMU and convert
17155           audio formats when not supported by the backend. When set to off,
17156           fixed-settings must be also off (default on, since 4.2)
17157
17158       "fixed-settings: boolean" (optional)
17159           use fixed settings for host input/output. When off, frequency,
17160           channels and format must not be specified (default true)
17161
17162       "frequency: int" (optional)
17163           frequency to use when using fixed settings (default 44100)
17164
17165       "channels: int" (optional)
17166           number of channels when using fixed settings (default 2)
17167
17168       "voices: int" (optional)
17169           number of voices to use (default 1)
17170
17171       "format: AudioFormat" (optional)
17172           sample format to use when using fixed settings (default s16)
17173
17174       "buffer-length: int" (optional)
17175           the buffer length in microseconds
17176
17177       Since: 4.0
17178
17179       AudiodevGenericOptions (Object)
17180
17181       Generic driver-specific options.
17182
17183       Members:
17184
17185       "in: AudiodevPerDirectionOptions" (optional)
17186           options of the capture stream
17187
17188       "out: AudiodevPerDirectionOptions" (optional)
17189           options of the playback stream
17190
17191       Since: 4.0
17192
17193       AudiodevAlsaPerDirectionOptions (Object)
17194
17195       Options of the ALSA backend that are used for both playback and
17196       recording.
17197
17198       Members:
17199
17200       "dev: string" (optional)
17201           the name of the ALSA device to use (default 'default')
17202
17203       "period-length: int" (optional)
17204           the period length in microseconds
17205
17206       "try-poll: boolean" (optional)
17207           attempt to use poll mode, falling back to non-polling access on
17208           failure (default true)
17209
17210       The members of "AudiodevPerDirectionOptions"
17211
17212       Since: 4.0
17213
17214       AudiodevAlsaOptions (Object)
17215
17216       Options of the ALSA audio backend.
17217
17218       Members:
17219
17220       "in: AudiodevAlsaPerDirectionOptions" (optional)
17221           options of the capture stream
17222
17223       "out: AudiodevAlsaPerDirectionOptions" (optional)
17224           options of the playback stream
17225
17226       "threshold: int" (optional)
17227           set the threshold (in microseconds) when playback starts
17228
17229       Since: 4.0
17230
17231       AudiodevCoreaudioPerDirectionOptions (Object)
17232
17233       Options of the Core Audio backend that are used for both playback and
17234       recording.
17235
17236       Members:
17237
17238       "buffer-count: int" (optional)
17239           number of buffers
17240
17241       The members of "AudiodevPerDirectionOptions"
17242
17243       Since: 4.0
17244
17245       AudiodevCoreaudioOptions (Object)
17246
17247       Options of the coreaudio audio backend.
17248
17249       Members:
17250
17251       "in: AudiodevCoreaudioPerDirectionOptions" (optional)
17252           options of the capture stream
17253
17254       "out: AudiodevCoreaudioPerDirectionOptions" (optional)
17255           options of the playback stream
17256
17257       Since: 4.0
17258
17259       AudiodevDsoundOptions (Object)
17260
17261       Options of the DirectSound audio backend.
17262
17263       Members:
17264
17265       "in: AudiodevPerDirectionOptions" (optional)
17266           options of the capture stream
17267
17268       "out: AudiodevPerDirectionOptions" (optional)
17269           options of the playback stream
17270
17271       "latency: int" (optional)
17272           add extra latency to playback in microseconds (default 10000)
17273
17274       Since: 4.0
17275
17276       AudiodevJackPerDirectionOptions (Object)
17277
17278       Options of the JACK backend that are used for both playback and
17279       recording.
17280
17281       Members:
17282
17283       "server-name: string" (optional)
17284           select from among several possible concurrent server instances
17285           (default: environment variable $JACK_DEFAULT_SERVER if set, else
17286           "default")
17287
17288       "client-name: string" (optional)
17289           the client name to use. The server will modify this name to create
17290           a unique variant, if needed unless "exact-name" is true (default:
17291           the guest's name)
17292
17293       "connect-ports: string" (optional)
17294           if set, a regular expression of JACK client port name(s) to monitor
17295           for and automatically connect to
17296
17297       "start-server: boolean" (optional)
17298           start a jack server process if one is not already present (default:
17299           false)
17300
17301       "exact-name: boolean" (optional)
17302           use the exact name requested otherwise JACK automatically generates
17303           a unique one, if needed (default: false)
17304
17305       The members of "AudiodevPerDirectionOptions"
17306
17307       Since: 5.1
17308
17309       AudiodevJackOptions (Object)
17310
17311       Options of the JACK audio backend.
17312
17313       Members:
17314
17315       "in: AudiodevJackPerDirectionOptions" (optional)
17316           options of the capture stream
17317
17318       "out: AudiodevJackPerDirectionOptions" (optional)
17319           options of the playback stream
17320
17321       Since: 5.1
17322
17323       AudiodevOssPerDirectionOptions (Object)
17324
17325       Options of the OSS backend that are used for both playback and
17326       recording.
17327
17328       Members:
17329
17330       "dev: string" (optional)
17331           file name of the OSS device (default '/dev/dsp')
17332
17333       "buffer-count: int" (optional)
17334           number of buffers
17335
17336       "try-poll: boolean" (optional)
17337           attempt to use poll mode, falling back to non-polling access on
17338           failure (default true)
17339
17340       The members of "AudiodevPerDirectionOptions"
17341
17342       Since: 4.0
17343
17344       AudiodevOssOptions (Object)
17345
17346       Options of the OSS audio backend.
17347
17348       Members:
17349
17350       "in: AudiodevOssPerDirectionOptions" (optional)
17351           options of the capture stream
17352
17353       "out: AudiodevOssPerDirectionOptions" (optional)
17354           options of the playback stream
17355
17356       "try-mmap: boolean" (optional)
17357           try using memory-mapped access, falling back to non-memory-mapped
17358           access on failure (default true)
17359
17360       "exclusive: boolean" (optional)
17361           open device in exclusive mode (vmix won't work) (default false)
17362
17363       "dsp-policy: int" (optional)
17364           set the timing policy of the device (between 0 and 10, where
17365           smaller number means smaller latency but higher CPU usage) or -1 to
17366           use fragment mode (option ignored on some platforms) (default 5)
17367
17368       Since: 4.0
17369
17370       AudiodevPaPerDirectionOptions (Object)
17371
17372       Options of the Pulseaudio backend that are used for both playback and
17373       recording.
17374
17375       Members:
17376
17377       "name: string" (optional)
17378           name of the sink/source to use
17379
17380       "stream-name: string" (optional)
17381           name of the PulseAudio stream created by qemu.  Can be used to
17382           identify the stream in PulseAudio when you create multiple
17383           PulseAudio devices or run multiple qemu instances (default:
17384           audiodev's id, since 4.2)
17385
17386       "latency: int" (optional)
17387           latency you want PulseAudio to achieve in microseconds (default
17388           15000)
17389
17390       The members of "AudiodevPerDirectionOptions"
17391
17392       Since: 4.0
17393
17394       AudiodevPaOptions (Object)
17395
17396       Options of the PulseAudio audio backend.
17397
17398       Members:
17399
17400       "in: AudiodevPaPerDirectionOptions" (optional)
17401           options of the capture stream
17402
17403       "out: AudiodevPaPerDirectionOptions" (optional)
17404           options of the playback stream
17405
17406       "server: string" (optional)
17407           PulseAudio server address (default: let PulseAudio choose)
17408
17409       Since: 4.0
17410
17411       AudiodevWavOptions (Object)
17412
17413       Options of the wav audio backend.
17414
17415       Members:
17416
17417       "in: AudiodevPerDirectionOptions" (optional)
17418           options of the capture stream
17419
17420       "out: AudiodevPerDirectionOptions" (optional)
17421           options of the playback stream
17422
17423       "path: string" (optional)
17424           name of the wav file to record (default 'qemu.wav')
17425
17426       Since: 4.0
17427
17428       AudioFormat (Enum)
17429
17430       An enumeration of possible audio formats.
17431
17432       Values:
17433
17434       "u8"
17435           unsigned 8 bit integer
17436
17437       "s8"
17438           signed 8 bit integer
17439
17440       "u16"
17441           unsigned 16 bit integer
17442
17443       "s16"
17444           signed 16 bit integer
17445
17446       "u32"
17447           unsigned 32 bit integer
17448
17449       "s32"
17450           signed 32 bit integer
17451
17452       "f32"
17453           single precision floating-point (since 5.0)
17454
17455       Since: 4.0
17456
17457       AudiodevDriver (Enum)
17458
17459       An enumeration of possible audio backend drivers.
17460
17461       Values:
17462
17463       "jack"
17464           JACK audio backend (since 5.1)
17465
17466       "none"
17467           Not documented
17468
17469       "alsa"
17470           Not documented
17471
17472       "coreaudio"
17473           Not documented
17474
17475       "dsound"
17476           Not documented
17477
17478       "oss"
17479           Not documented
17480
17481       "pa"
17482           Not documented
17483
17484       "sdl"
17485           Not documented
17486
17487       "spice"
17488           Not documented
17489
17490       "wav"
17491           Not documented
17492
17493       Since: 4.0
17494
17495       Audiodev (Object)
17496
17497       Options of an audio backend.
17498
17499       Members:
17500
17501       "id: string"
17502           identifier of the backend
17503
17504       "driver: AudiodevDriver"
17505           the backend driver to use
17506
17507       "timer-period: int" (optional)
17508           timer period (in microseconds, 0: use lowest possible)
17509
17510       The members of "AudiodevGenericOptions" when "driver" is "none"
17511       The members of "AudiodevAlsaOptions" when "driver" is "alsa"
17512       The members of "AudiodevCoreaudioOptions" when "driver" is "coreaudio"
17513       The members of "AudiodevDsoundOptions" when "driver" is "dsound"
17514       The members of "AudiodevJackOptions" when "driver" is "jack"
17515       The members of "AudiodevOssOptions" when "driver" is "oss"
17516       The members of "AudiodevPaOptions" when "driver" is "pa"
17517       The members of "AudiodevGenericOptions" when "driver" is "sdl"
17518       The members of "AudiodevGenericOptions" when "driver" is "spice"
17519       The members of "AudiodevWavOptions" when "driver" is "wav"
17520
17521       Since: 4.0
17522
17523
17524
17525                                  2021-01-11                 QEMU-QMP-REF.7(7)
Impressum