1QEMU-STORAGE-DAEMON-QMP-REF(7)       QEMU       QEMU-STORAGE-DAEMON-QMP-REF(7)
2
3
4

NAME

6       qemu-storage-daemon-qmp-ref - QEMU Storage Daemon QMP Reference Manual
7
8   Contents
9QEMU Storage Daemon QMP Reference Manual
10
11Common data types
12
13IoOperationType (Enum)
14
15OnOffAuto (Enum)
16
17OnOffSplit (Enum)
18
19String (Object)
20
21StrOrNull (Alternate)
22
23OffAutoPCIBAR (Enum)
24
25PCIELinkSpeed (Enum)
26
27PCIELinkWidth (Enum)
28
29HostMemPolicy (Enum)
30
31NetFilterDirection (Enum)
32
33GrabToggleKeys (Enum)
34
35HumanReadableText (Object)
36
37Socket data types
38
39NetworkAddressFamily (Enum)
40
41InetSocketAddressBase (Object)
42
43InetSocketAddress (Object)
44
45UnixSocketAddress (Object)
46
47VsockSocketAddress (Object)
48
49InetSocketAddressWrapper (Object)
50
51UnixSocketAddressWrapper (Object)
52
53VsockSocketAddressWrapper (Object)
54
55StringWrapper (Object)
56
57SocketAddressLegacy (Object)
58
59SocketAddressType (Enum)
60
61SocketAddress (Object)
62
63Cryptography
64
65QCryptoTLSCredsEndpoint (Enum)
66
67QCryptoSecretFormat (Enum)
68
69QCryptoHashAlgorithm (Enum)
70
71QCryptoCipherAlgorithm (Enum)
72
73QCryptoCipherMode (Enum)
74
75QCryptoIVGenAlgorithm (Enum)
76
77QCryptoBlockFormat (Enum)
78
79QCryptoBlockOptionsBase (Object)
80
81QCryptoBlockOptionsQCow (Object)
82
83QCryptoBlockOptionsLUKS (Object)
84
85QCryptoBlockCreateOptionsLUKS (Object)
86
87QCryptoBlockOpenOptions (Object)
88
89QCryptoBlockCreateOptions (Object)
90
91QCryptoBlockInfoBase (Object)
92
93QCryptoBlockInfoLUKSSlot (Object)
94
95QCryptoBlockInfoLUKS (Object)
96
97QCryptoBlockInfo (Object)
98
99QCryptoBlockLUKSKeyslotState (Enum)
100
101QCryptoBlockAmendOptionsLUKS (Object)
102
103QCryptoBlockAmendOptions (Object)
104
105SecretCommonProperties (Object)
106
107SecretProperties (Object)
108
109SecretKeyringProperties (Object)
110
111TlsCredsProperties (Object)
112
113TlsCredsAnonProperties (Object)
114
115TlsCredsPskProperties (Object)
116
117TlsCredsX509Properties (Object)
118
119QCryptoAkCipherAlgorithm (Enum)
120
121QCryptoAkCipherKeyType (Enum)
122
123QCryptoRSAPaddingAlgorithm (Enum)
124
125QCryptoAkCipherOptionsRSA (Object)
126
127QCryptoAkCipherOptions (Object)
128
129Background jobs
130
131JobType (Enum)
132
133JobStatus (Enum)
134
135JobVerb (Enum)
136
137JOB_STATUS_CHANGE (Event)
138
139job-pause (Command)
140
141job-resume (Command)
142
143job-cancel (Command)
144
145job-complete (Command)
146
147job-dismiss (Command)
148
149job-finalize (Command)
150
151JobInfo (Object)
152
153query-jobs (Command)
154
155Block devices
156
157Block core (VM unrelated)
158
159Block device exports
160
161Character devices
162
163ChardevInfo (Object)
164
165query-chardev (Command)
166
167ChardevBackendInfo (Object)
168
169query-chardev-backends (Command)
170
171DataFormat (Enum)
172
173ringbuf-write (Command)
174
175ringbuf-read (Command)
176
177ChardevCommon (Object)
178
179ChardevFile (Object)
180
181ChardevHostdev (Object)
182
183ChardevSocket (Object)
184
185ChardevUdp (Object)
186
187ChardevMux (Object)
188
189ChardevStdio (Object)
190
191ChardevSpiceChannel (Object)
192
193ChardevSpicePort (Object)
194
195ChardevDBus (Object)
196
197ChardevVC (Object)
198
199ChardevRingbuf (Object)
200
201ChardevQemuVDAgent (Object)
202
203ChardevBackendKind (Enum)
204
205ChardevFileWrapper (Object)
206
207ChardevHostdevWrapper (Object)
208
209ChardevSocketWrapper (Object)
210
211ChardevUdpWrapper (Object)
212
213ChardevCommonWrapper (Object)
214
215ChardevMuxWrapper (Object)
216
217ChardevStdioWrapper (Object)
218
219ChardevSpiceChannelWrapper (Object)
220
221ChardevSpicePortWrapper (Object)
222
223ChardevQemuVDAgentWrapper (Object)
224
225ChardevDBusWrapper (Object)
226
227ChardevVCWrapper (Object)
228
229ChardevRingbufWrapper (Object)
230
231ChardevBackend (Object)
232
233ChardevReturn (Object)
234
235chardev-add (Command)
236
237chardev-change (Command)
238
239chardev-remove (Command)
240
241chardev-send-break (Command)
242
243VSERPORT_CHANGE (Event)
244
245User authorization
246
247QAuthZListPolicy (Enum)
248
249QAuthZListFormat (Enum)
250
251QAuthZListRule (Object)
252
253AuthZListProperties (Object)
254
255AuthZListFileProperties (Object)
256
257AuthZPAMProperties (Object)
258
259AuthZSimpleProperties (Object)
260
261Transactions
262
263Abort (Object)
264
265ActionCompletionMode (Enum)
266
267TransactionActionKind (Enum)
268
269AbortWrapper (Object)
270
271BlockDirtyBitmapAddWrapper (Object)
272
273BlockDirtyBitmapWrapper (Object)
274
275BlockDirtyBitmapMergeWrapper (Object)
276
277BlockdevBackupWrapper (Object)
278
279BlockdevSnapshotWrapper (Object)
280
281BlockdevSnapshotInternalWrapper (Object)
282
283BlockdevSnapshotSyncWrapper (Object)
284
285DriveBackupWrapper (Object)
286
287TransactionAction (Object)
288
289TransactionProperties (Object)
290
291transaction (Command)
292
293QMP monitor control
294
295qmp_capabilities (Command)
296
297QMPCapability (Enum)
298
299VersionTriple (Object)
300
301VersionInfo (Object)
302
303query-version (Command)
304
305CommandInfo (Object)
306
307query-commands (Command)
308
309quit (Command)
310
311MonitorMode (Enum)
312
313MonitorOptions (Object)
314
315QMP introspection
316
317query-qmp-schema (Command)
318
319SchemaMetaType (Enum)
320
321SchemaInfo (Object)
322
323SchemaInfoBuiltin (Object)
324
325JSONType (Enum)
326
327SchemaInfoEnum (Object)
328
329SchemaInfoEnumMember (Object)
330
331SchemaInfoArray (Object)
332
333SchemaInfoObject (Object)
334
335SchemaInfoObjectMember (Object)
336
337SchemaInfoObjectVariant (Object)
338
339SchemaInfoAlternate (Object)
340
341SchemaInfoAlternateMember (Object)
342
343SchemaInfoCommand (Object)
344
345SchemaInfoEvent (Object)
346
347QEMU Object Model (QOM)
348
349ObjectPropertyInfo (Object)
350
351qom-list (Command)
352
353qom-get (Command)
354
355qom-set (Command)
356
357ObjectTypeInfo (Object)
358
359qom-list-types (Command)
360
361qom-list-properties (Command)
362
363CanHostSocketcanProperties (Object)
364
365ColoCompareProperties (Object)
366
367CryptodevBackendProperties (Object)
368
369CryptodevVhostUserProperties (Object)
370
371DBusVMStateProperties (Object)
372
373NetfilterInsert (Enum)
374
375NetfilterProperties (Object)
376
377FilterBufferProperties (Object)
378
379FilterDumpProperties (Object)
380
381FilterMirrorProperties (Object)
382
383FilterRedirectorProperties (Object)
384
385FilterRewriterProperties (Object)
386
387InputBarrierProperties (Object)
388
389InputLinuxProperties (Object)
390
391EventLoopBaseProperties (Object)
392
393IothreadProperties (Object)
394
395MainLoopProperties (Object)
396
397MemoryBackendProperties (Object)
398
399MemoryBackendFileProperties (Object)
400
401MemoryBackendMemfdProperties (Object)
402
403MemoryBackendEpcProperties (Object)
404
405PrManagerHelperProperties (Object)
406
407QtestProperties (Object)
408
409RemoteObjectProperties (Object)
410
411VfioUserServerProperties (Object)
412
413RngProperties (Object)
414
415RngEgdProperties (Object)
416
417RngRandomProperties (Object)
418
419SevGuestProperties (Object)
420
421ThreadContextProperties (Object)
422
423ObjectType (Enum)
424
425ObjectOptions (Object)
426
427object-add (Command)
428
429object-del (Command)
430

COMMON DATA TYPES

432   IoOperationType (Enum)
433       An enumeration of the I/O operation types
434
435   Values
436       read   read operation
437
438       write  write operation
439
440   Since
441       2.1
442
443   OnOffAuto (Enum)
444       An enumeration of three options: on, off, and auto
445
446   Values
447       auto   QEMU selects the value between on and off
448
449       on     Enabled
450
451       off    Disabled
452
453   Since
454       2.2
455
456   OnOffSplit (Enum)
457       An enumeration of three values: on, off, and split
458
459   Values
460       on     Enabled
461
462       off    Disabled
463
464       split  Mixed
465
466   Since
467       2.6
468
469   String (Object)
470       A fat type wrapping 'str', to be embedded in lists.
471
472   Members
473       str: string
474              Not documented
475
476   Since
477       1.2
478
479   StrOrNull (Alternate)
480       This  is  a string value or the explicit lack of a string (null pointer
481       in C).  Intended for cases when 'optional absent' already has a differ‐
482       ent meaning.
483
484   Members
485       s: string
486              the string value
487
488       n: null
489              no string value
490
491   Since
492       2.10
493
494   OffAutoPCIBAR (Enum)
495       An enumeration of options for specifying a PCI BAR
496
497   Values
498       off    The specified feature is disabled
499
500       auto   The PCI BAR for the feature is automatically selected
501
502       bar0   PCI BAR0 is used for the feature
503
504       bar1   PCI BAR1 is used for the feature
505
506       bar2   PCI BAR2 is used for the feature
507
508       bar3   PCI BAR3 is used for the feature
509
510       bar4   PCI BAR4 is used for the feature
511
512       bar5   PCI BAR5 is used for the feature
513
514   Since
515       2.12
516
517   PCIELinkSpeed (Enum)
518       An enumeration of PCIe link speeds in units of GT/s
519
520   Values
521       2_5    2.5GT/s
522
523       5      5.0GT/s
524
525       8      8.0GT/s
526
527       16     16.0GT/s
528
529   Since
530       4.0
531
532   PCIELinkWidth (Enum)
533       An enumeration of PCIe link width
534
535   Values
536       1      x1
537
538       2      x2
539
540       4      x4
541
542       8      x8
543
544       12     x12
545
546       16     x16
547
548       32     x32
549
550   Since
551       4.0
552
553   HostMemPolicy (Enum)
554       Host memory policy types
555
556   Values
557       default
558              restore default policy, remove any nondefault policy
559
560       preferred
561              set the preferred host nodes for allocation
562
563       bind   a  strict  policy  that  restricts memory allocation to the host
564              nodes specified
565
566       interleave
567              memory allocations are interleaved across the set of host  nodes
568              specified
569
570   Since
571       2.1
572
573   NetFilterDirection (Enum)
574       Indicates  whether a netfilter is attached to a netdev's transmit queue
575       or receive queue or both.
576
577   Values
578       all    the filter is attached both to  the  receive  and  the  transmit
579              queue of the netdev (default).
580
581       rx     the filter is attached to the receive queue of the netdev, where
582              it will receive packets sent to the netdev.
583
584       tx     the filter is attached to the  transmit  queue  of  the  netdev,
585              where it will receive packets sent by the netdev.
586
587   Since
588       2.5
589
590   GrabToggleKeys (Enum)
591       Keys to toggle input-linux between host and guest.
592
593   Values
594       ctrl-ctrl
595              Not documented
596
597       alt-alt
598              Not documented
599
600       shift-shift
601              Not documented
602
603       meta-meta
604              Not documented
605
606       scrolllock
607              Not documented
608
609       ctrl-scrolllock
610              Not documented
611
612   Since
613       4.0
614
615   HumanReadableText (Object)
616   Members
617       human-readable-text: string
618              Formatted output intended for humans.
619
620   Since
621       6.2
622

SOCKET DATA TYPES

624   NetworkAddressFamily (Enum)
625       The network address family
626
627   Values
628       ipv4   IPV4 family
629
630       ipv6   IPV6 family
631
632       unix   unix socket
633
634       vsock  vsock family (since 2.8)
635
636       unknown
637              otherwise
638
639   Since
640       2.1
641
642   InetSocketAddressBase (Object)
643   Members
644       host: string
645              host part of the address
646
647       port: string
648              port part of the address
649
650   InetSocketAddress (Object)
651       Captures a socket address or address range in the Internet namespace.
652
653   Members
654       numeric: boolean (optional)
655              true  if  the  host/port  are guaranteed to be numeric, false if
656              name resolution should be attempted.  Defaults to false.  (Since
657              2.9)
658
659       to: int (optional)
660              If  present,  this is range of possible addresses, with port be‐
661              tween port and to.
662
663       ipv4: boolean (optional)
664              whether to accept IPv4 addresses, default try both IPv4 and IPv6
665
666       ipv6: boolean (optional)
667              whether to accept IPv6 addresses, default try both IPv4 and IPv6
668
669       keep-alive: boolean (optional)
670              enable keep-alive when connecting to this socket.  Not supported
671              for passive sockets.  (Since 4.2)
672
673       mptcp: boolean (optional) (If: HAVE_IPPROTO_MPTCP)
674              enable multi-path TCP. (Since 6.1)
675
676       The members of InetSocketAddressBase
677
678   Since
679       1.3
680
681   UnixSocketAddress (Object)
682       Captures a socket address in the local ("Unix socket") namespace.
683
684   Members
685       path: string
686              filesystem path to use
687
688       abstract: boolean (optional) (If: CONFIG_LINUX)
689              if  true, this is a Linux abstract socket address.  path will be
690              prefixed by a null byte, and optionally padded with null  bytes.
691              Defaults to false.  (Since 5.1)
692
693       tight: boolean (optional) (If: CONFIG_LINUX)
694              if  false, pad an abstract socket address with enough null bytes
695              to make it fill struct sockaddr_un member sun_path.  Defaults to
696              true.  (Since 5.1)
697
698   Since
699       1.3
700
701   VsockSocketAddress (Object)
702       Captures a socket address in the vsock namespace.
703
704   Members
705       cid: string
706              unique host identifier
707
708       port: string
709              port
710
711   Note
712       string  types are used to allow for possible future hostname or service
713       resolution support.
714
715   Since
716       2.8
717
718   InetSocketAddressWrapper (Object)
719   Members
720       data: InetSocketAddress
721              Not documented
722
723   Since
724       1.3
725
726   UnixSocketAddressWrapper (Object)
727   Members
728       data: UnixSocketAddress
729              Not documented
730
731   Since
732       1.3
733
734   VsockSocketAddressWrapper (Object)
735   Members
736       data: VsockSocketAddress
737              Not documented
738
739   Since
740       2.8
741
742   StringWrapper (Object)
743   Members
744       data: String
745              Not documented
746
747   Since
748       1.3
749
750   SocketAddressLegacy (Object)
751       Captures the address of a socket, which could also be a named file  de‐
752       scriptor
753
754   Members
755       type: SocketAddressType
756              Not documented
757
758       The members of InetSocketAddressWrapper when type is "inet"
759
760       The members of UnixSocketAddressWrapper when type is "unix"
761
762       The members of VsockSocketAddressWrapper when type is "vsock"
763
764       The members of StringWrapper when type is "fd"
765
766   Note
767       This  type is deprecated in favor of SocketAddress.  The difference be‐
768       tween SocketAddressLegacy and SocketAddress  is  that  the  latter  has
769       fewer {} on the wire.
770
771   Since
772       1.3
773
774   SocketAddressType (Enum)
775       Available SocketAddress types
776
777   Values
778       inet   Internet address
779
780       unix   Unix domain socket
781
782       vsock  VMCI address
783
784       fd     decimal is for file descriptor number, otherwise a file descrip‐
785              tor name.  Named file descriptors are permitted in monitor  com‐
786              mands,  in  combination  with the 'getfd' command.  Decimal file
787              descriptors are permitted at startup or other contexts where  no
788              monitor context is active.
789
790   Since
791       2.9
792
793   SocketAddress (Object)
794       Captures  the address of a socket, which could also be a named file de‐
795       scriptor
796
797   Members
798       type: SocketAddressType
799              Transport type
800
801       The members of InetSocketAddress when type is "inet"
802
803       The members of UnixSocketAddress when type is "unix"
804
805       The members of VsockSocketAddress when type is "vsock"
806
807       The members of String when type is "fd"
808
809   Since
810       2.9
811

CRYPTOGRAPHY

813   QCryptoTLSCredsEndpoint (Enum)
814       The type of network endpoint that will be using the credentials.   Most
815       types  of  credential require different setup / structures depending on
816       whether they will be used in a server versus a client.
817
818   Values
819       client the network endpoint is acting as the client
820
821       server the network endpoint is acting as the server
822
823   Since
824       2.5
825
826   QCryptoSecretFormat (Enum)
827       The data format that the secret is provided in
828
829   Values
830       raw    raw bytes.  When encoded in JSON only valid UTF-8 sequences  can
831              be used
832
833       base64 arbitrary base64 encoded binary data
834
835   Since
836       2.6
837
838   QCryptoHashAlgorithm (Enum)
839       The supported algorithms for computing content digests
840
841   Values
842       md5    MD5. Should not be used in any new code, legacy compat only
843
844       sha1   SHA-1. Should not be used in any new code, legacy compat only
845
846       sha224 SHA-224. (since 2.7)
847
848       sha256 SHA-256. Current recommended strong hash.
849
850       sha384 SHA-384. (since 2.7)
851
852       sha512 SHA-512. (since 2.7)
853
854       ripemd160
855              RIPEMD-160. (since 2.7)
856
857   Since
858       2.6
859
860   QCryptoCipherAlgorithm (Enum)
861       The supported algorithms for content encryption ciphers
862
863   Values
864       aes-128
865              AES with 128 bit / 16 byte keys
866
867       aes-192
868              AES with 192 bit / 24 byte keys
869
870       aes-256
871              AES with 256 bit / 32 byte keys
872
873       des    DES  with  56  bit  /  8  byte  keys.  Do not use except in VNC.
874              (since 6.1)
875
876       3des   3DES(EDE) with 192 bit / 24 byte keys (since 2.9)
877
878       cast5-128
879              Cast5 with 128 bit / 16 byte keys
880
881       serpent-128
882              Serpent with 128 bit / 16 byte keys
883
884       serpent-192
885              Serpent with 192 bit / 24 byte keys
886
887       serpent-256
888              Serpent with 256 bit / 32 byte keys
889
890       twofish-128
891              Twofish with 128 bit / 16 byte keys
892
893       twofish-192
894              Twofish with 192 bit / 24 byte keys
895
896       twofish-256
897              Twofish with 256 bit / 32 byte keys
898
899   Since
900       2.6
901
902   QCryptoCipherMode (Enum)
903       The supported modes for content encryption ciphers
904
905   Values
906       ecb    Electronic Code Book
907
908       cbc    Cipher Block Chaining
909
910       xts    XEX with tweaked code book and ciphertext stealing
911
912       ctr    Counter (Since 2.8)
913
914   Since
915       2.6
916
917   QCryptoIVGenAlgorithm (Enum)
918       The supported algorithms for generating initialization vectors for full
919       disk  encryption.   The  'plain' generator should not be used for disks
920       with sector numbers larger than 2^32, except where  compatibility  with
921       pre-existing Linux dm-crypt volumes is required.
922
923   Values
924       plain  64-bit sector number truncated to 32-bits
925
926       plain64
927              64-bit sector number
928
929       essiv  64-bit sector number encrypted with a hash of the encryption key
930
931   Since
932       2.6
933
934   QCryptoBlockFormat (Enum)
935       The supported full disk encryption formats
936
937   Values
938       qcow   QCow/QCow2 built-in AES-CBC encryption.  Use only for liberating
939              data from old images.
940
941       luks   LUKS encryption format.  Recommended for new images
942
943   Since
944       2.6
945
946   QCryptoBlockOptionsBase (Object)
947       The common options that apply to all full disk encryption formats
948
949   Members
950       format: QCryptoBlockFormat
951              the encryption format
952
953   Since
954       2.6
955
956   QCryptoBlockOptionsQCow (Object)
957       The options that apply to QCow/QCow2 AES-CBC encryption format
958
959   Members
960       key-secret: string (optional)
961              the ID of a QCryptoSecret object providing the  decryption  key.
962              Mandatory except when probing image for metadata only.
963
964   Since
965       2.6
966
967   QCryptoBlockOptionsLUKS (Object)
968       The options that apply to LUKS encryption format
969
970   Members
971       key-secret: string (optional)
972              the  ID  of a QCryptoSecret object providing the decryption key.
973              Mandatory except when probing image for metadata only.
974
975   Since
976       2.6
977
978   QCryptoBlockCreateOptionsLUKS (Object)
979       The options that apply to LUKS encryption format initialization
980
981   Members
982       cipher-alg: QCryptoCipherAlgorithm (optional)
983              the cipher algorithm for data encryption Currently  defaults  to
984              'aes-256'.
985
986       cipher-mode: QCryptoCipherMode (optional)
987              the cipher mode for data encryption Currently defaults to 'xts'
988
989       ivgen-alg: QCryptoIVGenAlgorithm (optional)
990              the   initialization  vector  generator  Currently  defaults  to
991              'plain64'
992
993       ivgen-hash-alg: QCryptoHashAlgorithm (optional)
994              the initialization vector generator hash Currently  defaults  to
995              'sha256'
996
997       hash-alg: QCryptoHashAlgorithm (optional)
998              the master key hash algorithm Currently defaults to 'sha256'
999
1000       iter-time: int (optional)
1001              number  of milliseconds to spend in PBKDF passphrase processing.
1002              Currently defaults to 2000. (since 2.8)
1003
1004       The members of QCryptoBlockOptionsLUKS
1005
1006   Since
1007       2.6
1008
1009   QCryptoBlockOpenOptions (Object)
1010       The options that are available for all encryption formats when  opening
1011       an existing volume
1012
1013   Members
1014       The members of QCryptoBlockOptionsBase
1015
1016       The members of QCryptoBlockOptionsQCow when format is "qcow"
1017
1018       The members of QCryptoBlockOptionsLUKS when format is "luks"
1019
1020   Since
1021       2.6
1022
1023   QCryptoBlockCreateOptions (Object)
1024       The options that are available for all encryption formats when initial‐
1025       izing a new volume
1026
1027   Members
1028       The members of QCryptoBlockOptionsBase
1029
1030       The members of QCryptoBlockOptionsQCow when format is "qcow"
1031
1032       The members of QCryptoBlockCreateOptionsLUKS when format is "luks"
1033
1034   Since
1035       2.6
1036
1037   QCryptoBlockInfoBase (Object)
1038       The common information that applies to all full disk encryption formats
1039
1040   Members
1041       format: QCryptoBlockFormat
1042              the encryption format
1043
1044   Since
1045       2.7
1046
1047   QCryptoBlockInfoLUKSSlot (Object)
1048       Information about the LUKS block encryption key slot options
1049
1050   Members
1051       active: boolean
1052              whether the key slot is currently in use
1053
1054       key-offset: int
1055              offset to the key material in bytes
1056
1057       iters: int (optional)
1058              number of PBKDF2 iterations for key material
1059
1060       stripes: int (optional)
1061              number of stripes for splitting key material
1062
1063   Since
1064       2.7
1065
1066   QCryptoBlockInfoLUKS (Object)
1067       Information about the LUKS block encryption options
1068
1069   Members
1070       cipher-alg: QCryptoCipherAlgorithm
1071              the cipher algorithm for data encryption
1072
1073       cipher-mode: QCryptoCipherMode
1074              the cipher mode for data encryption
1075
1076       ivgen-alg: QCryptoIVGenAlgorithm
1077              the initialization vector generator
1078
1079       ivgen-hash-alg: QCryptoHashAlgorithm (optional)
1080              the initialization vector generator hash
1081
1082       hash-alg: QCryptoHashAlgorithm
1083              the master key hash algorithm
1084
1085       payload-offset: int
1086              offset to the payload data in bytes
1087
1088       master-key-iters: int
1089              number of PBKDF2 iterations for key material
1090
1091       uuid: string
1092              unique identifier for the volume
1093
1094       slots: array of QCryptoBlockInfoLUKSSlot
1095              information about each key slot
1096
1097   Since
1098       2.7
1099
1100   QCryptoBlockInfo (Object)
1101       Information about the block encryption options
1102
1103   Members
1104       The members of QCryptoBlockInfoBase
1105
1106       The members of QCryptoBlockInfoLUKS when format is "luks"
1107
1108   Since
1109       2.7
1110
1111   QCryptoBlockLUKSKeyslotState (Enum)
1112       Defines state of keyslots that are affected by the update
1113
1114   Values
1115       active The slots contain the given password and marked as active
1116
1117       inactive
1118              The slots are erased (contain garbage) and marked as inactive
1119
1120   Since
1121       5.1
1122
1123   QCryptoBlockAmendOptionsLUKS (Object)
1124       This struct defines the update parameters that activate/de-activate set
1125       of keyslots
1126
1127   Members
1128       state: QCryptoBlockLUKSKeyslotState
1129              the desired state of the keyslots
1130
1131       new-secret: string (optional)
1132              The  ID  of  a QCryptoSecret object providing the password to be
1133              written into added active keyslots
1134
1135       old-secret: string (optional)
1136              Optional (for deactivation only) If given  will  deactivate  all
1137              keyslots  that match password located in QCryptoSecret with this
1138              ID
1139
1140       iter-time: int (optional)
1141              Optional (for activation only) Number of milliseconds  to  spend
1142              in  PBKDF passphrase processing for the newly activated keyslot.
1143              Currently defaults to 2000.
1144
1145       keyslot: int (optional)
1146              Optional.   ID  of  the  keyslot  to  activate/deactivate.   For
1147              keyslot  activation,  keyslot should not be active already (this
1148              is unsafe to update an active keyslot), but possible if  'force'
1149              parameter is given.  If keyslot is not given, first free keyslot
1150              will be written.
1151
1152              For keyslot deactivation, this  parameter  specifies  the  exact
1153              keyslot to deactivate
1154
1155       secret: string (optional)
1156              Optional.   The ID of a QCryptoSecret object providing the pass‐
1157              word to use to retrieve current master  key.   Defaults  to  the
1158              same secret that was used to open the image
1159
1160   Since
1161       5.1
1162
1163   QCryptoBlockAmendOptions (Object)
1164       The options that are available for all encryption formats when amending
1165       encryption settings
1166
1167   Members
1168       The members of QCryptoBlockOptionsBase
1169
1170       The members of QCryptoBlockAmendOptionsLUKS when format is "luks"
1171
1172   Since
1173       5.1
1174
1175   SecretCommonProperties (Object)
1176       Properties for objects of classes derived from secret-common.
1177
1178   Members
1179       loaded: boolean (optional)
1180              if true, the secret is loaded immediately when applying this op‐
1181              tion  and  will  probably  fail when processing the next option.
1182              Don't use; only provided for compatibility.  (default: false)
1183
1184       format: QCryptoSecretFormat (optional)
1185              the data format that the secret is provided in (default: raw)
1186
1187       keyid: string (optional)
1188              the name of another secret that should be used  to  decrypt  the
1189              provided  data.  If not present, the data is assumed to be unen‐
1190              crypted.
1191
1192       iv: string (optional)
1193              the random initialization vector used  for  encryption  of  this
1194              particular  secret.   Should be a base64 encrypted string of the
1195              16-byte IV. Mandatory if keyid is given.  Ignored  if  keyid  is
1196              absent.
1197
1198   Features
1199       deprecated
1200              Member  loaded  is deprecated.  Setting true doesn't make sense,
1201              and false is already the default.
1202
1203   Since
1204       2.6
1205
1206   SecretProperties (Object)
1207       Properties for secret objects.
1208
1209       Either data or file must be provided, but not both.
1210
1211   Members
1212       data: string (optional)
1213              the associated with the secret from
1214
1215       file: string (optional)
1216              the filename to load the data associated with the secret from
1217
1218       The members of SecretCommonProperties
1219
1220   Since
1221       2.6
1222
1223   SecretKeyringProperties (Object)
1224       Properties for secret_keyring objects.
1225
1226   Members
1227       serial: int
1228              serial number that identifies a key to get from the kernel
1229
1230       The members of SecretCommonProperties
1231
1232   Since
1233       5.1
1234
1235   TlsCredsProperties (Object)
1236       Properties for objects of classes derived from tls-creds.
1237
1238   Members
1239       verify-peer: boolean (optional)
1240              if true the peer credentials will be verified once the handshake
1241              is  completed.  This is a no-op for anonymous credentials.  (de‐
1242              fault: true)
1243
1244       dir: string (optional)
1245              the path of the directory that contains the credential files
1246
1247       endpoint: QCryptoTLSCredsEndpoint (optional)
1248              whether the QEMU network backend that uses the credentials  will
1249              be acting as a client or as a server (default: client)
1250
1251       priority: string (optional)
1252              a     gnutls     priority     string     as     described     at
1253              https://gnutls.org/manual/html_node/Priority-Strings.html
1254
1255   Since
1256       2.5
1257
1258   TlsCredsAnonProperties (Object)
1259       Properties for tls-creds-anon objects.
1260
1261   Members
1262       loaded: boolean (optional)
1263              if true, the credentials are loaded  immediately  when  applying
1264              this  option  and  will ignore options that are processed later.
1265              Don't use; only provided for compatibility.  (default: false)
1266
1267       The members of TlsCredsProperties
1268
1269   Features
1270       deprecated
1271              Member loaded is deprecated.  Setting true doesn't  make  sense,
1272              and false is already the default.
1273
1274   Since
1275       2.5
1276
1277   TlsCredsPskProperties (Object)
1278       Properties for tls-creds-psk objects.
1279
1280   Members
1281       loaded: boolean (optional)
1282              if  true,  the  credentials are loaded immediately when applying
1283              this option and will ignore options that  are  processed  later.
1284              Don't use; only provided for compatibility.  (default: false)
1285
1286       username: string (optional)
1287              the  username  which  will  be  sent to the server.  For clients
1288              only.  If absent, "qemu" is sent and the property will read back
1289              as an empty string.
1290
1291       The members of TlsCredsProperties
1292
1293   Features
1294       deprecated
1295              Member  loaded  is deprecated.  Setting true doesn't make sense,
1296              and false is already the default.
1297
1298   Since
1299       3.0
1300
1301   TlsCredsX509Properties (Object)
1302       Properties for tls-creds-x509 objects.
1303
1304   Members
1305       loaded: boolean (optional)
1306              if true, the credentials are loaded  immediately  when  applying
1307              this  option  and  will ignore options that are processed later.
1308              Don't use; only provided for compatibility.  (default: false)
1309
1310       sanity-check: boolean (optional)
1311              if true, perform some sanity checks before using the credentials
1312              (default: true)
1313
1314       passwordid: string (optional)
1315              For  the  server-key.pem  and client-key.pem files which contain
1316              sensitive private keys, it is possible to use an encrypted  ver‐
1317              sion  by  providing the passwordid parameter.  This provides the
1318              ID of a previously created secret object containing the password
1319              for decryption.
1320
1321       The members of TlsCredsProperties
1322
1323   Features
1324       deprecated
1325              Member  loaded  is deprecated.  Setting true doesn't make sense,
1326              and false is already the default.
1327
1328   Since
1329       2.5
1330
1331   QCryptoAkCipherAlgorithm (Enum)
1332       The supported algorithms for asymmetric encryption ciphers
1333
1334   Values
1335       rsa    RSA algorithm
1336
1337   Since
1338       7.1
1339
1340   QCryptoAkCipherKeyType (Enum)
1341       The type of asymmetric keys.
1342
1343   Values
1344       public Not documented
1345
1346       private
1347              Not documented
1348
1349   Since
1350       7.1
1351
1352   QCryptoRSAPaddingAlgorithm (Enum)
1353       The padding algorithm for RSA.
1354
1355   Values
1356       raw    no padding used
1357
1358       pkcs1  pkcs1#v1.5
1359
1360   Since
1361       7.1
1362
1363   QCryptoAkCipherOptionsRSA (Object)
1364       Specific parameters for RSA algorithm.
1365
1366   Members
1367       hash-alg: QCryptoHashAlgorithm
1368              QCryptoHashAlgorithm
1369
1370       padding-alg: QCryptoRSAPaddingAlgorithm
1371              QCryptoRSAPaddingAlgorithm
1372
1373   Since
1374       7.1
1375
1376   QCryptoAkCipherOptions (Object)
1377       The options that are available for all asymmetric key  algorithms  when
1378       creating a new QCryptoAkCipher.
1379
1380   Members
1381       alg: QCryptoAkCipherAlgorithm
1382              Not documented
1383
1384       The members of QCryptoAkCipherOptionsRSA when alg is "rsa"
1385
1386   Since
1387       7.1
1388

BACKGROUND JOBS

1390   JobType (Enum)
1391       Type of a background job.
1392
1393   Values
1394       commit block commit job type, see "block-commit"
1395
1396       stream block stream job type, see "block-stream"
1397
1398       mirror drive mirror job type, see "drive-mirror"
1399
1400       backup drive backup job type, see "drive-backup"
1401
1402       create image creation job type, see "blockdev-create" (since 3.0)
1403
1404       amend  image options amend job type, see "x-blockdev-amend" (since 5.1)
1405
1406       snapshot-load
1407              snapshot load job type, see "snapshot-load" (since 6.0)
1408
1409       snapshot-save
1410              snapshot save job type, see "snapshot-save" (since 6.0)
1411
1412       snapshot-delete
1413              snapshot delete job type, see "snapshot-delete" (since 6.0)
1414
1415   Since
1416       1.7
1417
1418   JobStatus (Enum)
1419       Indicates the present state of a given job in its lifetime.
1420
1421   Values
1422       undefined
1423              Erroneous, default state.  Should not ever be visible.
1424
1425       created
1426              The job has been created, but not yet started.
1427
1428       running
1429              The job is currently running.
1430
1431       paused The  job  is running, but paused.  The pause may be requested by
1432              either the QMP user or by internal processes.
1433
1434       ready  The job is running, but is ready for the user to signal  comple‐
1435              tion.   This  is used for long-running jobs like mirror that are
1436              designed to run indefinitely.
1437
1438       standby
1439              The job is ready, but  paused.   This  is  nearly  identical  to
1440              paused.  The job may return to ready or otherwise be canceled.
1441
1442       waiting
1443              The job is waiting for other jobs in the transaction to converge
1444              to the waiting state.  This status will likely  not  be  visible
1445              for the last job in a transaction.
1446
1447       pending
1448              The  job  has finished its work, but has finalization steps that
1449              it needs to make prior to completing.  These  changes  will  re‐
1450              quire  manual intervention via job-finalize if auto-finalize was
1451              set to false.  These pending changes may still fail.
1452
1453       aborting
1454              The job is in the process of being aborted, and will finish with
1455              an  error.  The job will afterwards report that it is concluded.
1456              This status may not be visible to the management process.
1457
1458       concluded
1459              The job has finished all  work.   If  auto-dismiss  was  set  to
1460              false,  the  job  will remain in the query list until it is dis‐
1461              missed via job-dismiss.
1462
1463       null   The job is in the  process  of  being  dismantled.   This  state
1464              should not ever be visible externally.
1465
1466   Since
1467       2.12
1468
1469   JobVerb (Enum)
1470       Represents command verbs that can be applied to a job.
1471
1472   Values
1473       cancel see job-cancel
1474
1475       pause  see job-pause
1476
1477       resume see job-resume
1478
1479       set-speed
1480              see block-job-set-speed
1481
1482       complete
1483              see job-complete
1484
1485       dismiss
1486              see job-dismiss
1487
1488       finalize
1489              see job-finalize
1490
1491   Since
1492       2.12
1493
1494   JOB_STATUS_CHANGE (Event)
1495       Emitted when a job transitions to a different status.
1496
1497   Arguments
1498       id: string
1499              The job identifier
1500
1501       status: JobStatus
1502              The new job status
1503
1504   Since
1505       3.0
1506
1507   job-pause (Command)
1508       Pause an active job.
1509
1510       This command returns immediately after marking the active job for paus‐
1511       ing.  Pausing an already paused job is an error.
1512
1513       The job will pause as soon as possible, which means transitioning  into
1514       the  PAUSED  state  if it was RUNNING, or into STANDBY if it was READY.
1515       The corresponding JOB_STATUS_CHANGE event will be emitted.
1516
1517       Cancelling a paused job automatically resumes it.
1518
1519   Arguments
1520       id: string
1521              The job identifier.
1522
1523   Since
1524       3.0
1525
1526   job-resume (Command)
1527       Resume a paused job.
1528
1529       This command returns immediately after resuming a paused job.  Resuming
1530       an already running job is an error.
1531
1532   Arguments
1533       id: string
1534              The job identifier.
1535
1536   Since
1537       3.0
1538
1539   job-cancel (Command)
1540       Instruct  an  active  background job to cancel at the next opportunity.
1541       This command returns immediately after marking the active job for  can‐
1542       cellation.
1543
1544       The  job  will  cancel  as  soon  as  possible and then emit a JOB_STA‐
1545       TUS_CHANGE event.  Usually, the status will change to ABORTING, but  it
1546       is possible that a job successfully completes (e.g.  because it was al‐
1547       most done and there was no opportunity to cancel earlier than  complet‐
1548       ing the job) and transitions to PENDING instead.
1549
1550   Arguments
1551       id: string
1552              The job identifier.
1553
1554   Since
1555       3.0
1556
1557   job-complete (Command)
1558       Manually trigger completion of an active job in the READY state.
1559
1560   Arguments
1561       id: string
1562              The job identifier.
1563
1564   Since
1565       3.0
1566
1567   job-dismiss (Command)
1568       Deletes  a job that is in the CONCLUDED state.  This command only needs
1569       to be run explicitly for jobs that don't  have  automatic  dismiss  en‐
1570       abled.
1571
1572       This command will refuse to operate on any job that has not yet reached
1573       its terminal state, JOB_STATUS_CONCLUDED. For jobs  that  make  use  of
1574       JOB_READY  event, job-cancel or job-complete will still need to be used
1575       as appropriate.
1576
1577   Arguments
1578       id: string
1579              The job identifier.
1580
1581   Since
1582       3.0
1583
1584   job-finalize (Command)
1585       Instructs all jobs in a transaction (or a single job if it is not  part
1586       of  any transaction) to finalize any graph changes and do any necessary
1587       cleanup.  This command requires that all involved jobs are in the PEND‐
1588       ING state.
1589
1590       For  jobs  in a transaction, instructing one job to finalize will force
1591       ALL jobs in the transaction to finalize, so it is only necessary to in‐
1592       struct a single member job to finalize.
1593
1594   Arguments
1595       id: string
1596              The  identifier  of any job in the transaction, or of a job that
1597              is not part of any transaction.
1598
1599   Since
1600       3.0
1601
1602   JobInfo (Object)
1603       Information about a job.
1604
1605   Members
1606       id: string
1607              The job identifier
1608
1609       type: JobType
1610              The kind of job that is being performed
1611
1612       status: JobStatus
1613              Current job state/status
1614
1615       current-progress: int
1616              Progress made until now.  The unit is arbitrary  and  the  value
1617              can  only meaningfully be used for the ratio of current-progress
1618              to total-progress.  The value is monotonically increasing.
1619
1620       total-progress: int
1621              Estimated current-progress value at the completion of  the  job.
1622              This  value  can arbitrarily change while the job is running, in
1623              both directions.
1624
1625       error: string (optional)
1626              If this field is present, the job failed; if it is still missing
1627              in the CONCLUDED state, this indicates successful completion.
1628
1629              The value is a human-readable error message to describe the rea‐
1630              son for the job failure.  It should not be  parsed  by  applica‐
1631              tions.
1632
1633   Since
1634       3.0
1635
1636   query-jobs (Command)
1637       Return information about jobs.
1638
1639   Returns
1640       a list with a JobInfo for each active job
1641
1642   Since
1643       3.0
1644

BLOCK DEVICES

1646   Block core (VM unrelated)
1647   SnapshotInfo (Object)
1648   Members
1649       id: string
1650              unique snapshot id
1651
1652       name: string
1653              user chosen name
1654
1655       vm-state-size: int
1656              size of the VM state
1657
1658       date-sec: int
1659              UTC date of the snapshot in seconds
1660
1661       date-nsec: int
1662              fractional part in nano seconds to be used with date-sec
1663
1664       vm-clock-sec: int
1665              VM clock relative to boot in seconds
1666
1667       vm-clock-nsec: int
1668              fractional part in nano seconds to be used with vm-clock-sec
1669
1670       icount: int (optional)
1671              Current instruction count.  Appears when execution record/replay
1672              is enabled.  Used for "time-traveling" to match  the  moment  in
1673              the  recorded execution with the snapshots.  This counter may be
1674              obtained through query-replay command (since 5.2)
1675
1676   Since
1677       1.3
1678
1679   ImageInfoSpecificQCow2EncryptionBase (Object)
1680   Members
1681       format: BlockdevQcow2EncryptionFormat
1682              The encryption format
1683
1684   Since
1685       2.10
1686
1687   ImageInfoSpecificQCow2Encryption (Object)
1688   Members
1689       The members of ImageInfoSpecificQCow2EncryptionBase
1690
1691       The members of QCryptoBlockInfoLUKS when format is "luks"
1692
1693   Since
1694       2.10
1695
1696   ImageInfoSpecificQCow2 (Object)
1697   Members
1698       compat: string
1699              compatibility level
1700
1701       data-file: string (optional)
1702              the filename of the external data file that is stored in the im‐
1703              age and used as a default for opening the image (since: 4.0)
1704
1705       data-file-raw: boolean (optional)
1706              True  if  the external data file must stay valid as a standalone
1707              (read-only) raw image without looking at qcow2 metadata  (since:
1708              4.0)
1709
1710       extended-l2: boolean (optional)
1711              true if the image has extended L2 entries; only valid for compat
1712              >= 1.1 (since 5.2)
1713
1714       lazy-refcounts: boolean (optional)
1715              on or off; only valid for compat >= 1.1
1716
1717       corrupt: boolean (optional)
1718              true if the image has been marked corrupt; only valid for compat
1719              >= 1.1 (since 2.2)
1720
1721       refcount-bits: int
1722              width of a refcount entry in bits (since 2.3)
1723
1724       encrypt: ImageInfoSpecificQCow2Encryption (optional)
1725              details  about  encryption  parameters; only set if image is en‐
1726              crypted (since 2.10)
1727
1728       bitmaps: array of Qcow2BitmapInfo (optional)
1729              A list of qcow2 bitmap details (since 4.0)
1730
1731       compression-type: Qcow2CompressionType
1732              the image cluster compression method (since 5.1)
1733
1734   Since
1735       1.7
1736
1737   ImageInfoSpecificVmdk (Object)
1738   Members
1739       create-type: string
1740              The create type of VMDK image
1741
1742       cid: int
1743              Content id of image
1744
1745       parent-cid: int
1746              Parent VMDK image's cid
1747
1748       extents: array of VmdkExtentInfo
1749              List of extent files
1750
1751   Since
1752       1.7
1753
1754   VmdkExtentInfo (Object)
1755       Information about a VMDK extent file
1756
1757   Members
1758       filename: string
1759              Name of the extent file
1760
1761       format: string
1762              Extent type (e.g. FLAT or SPARSE)
1763
1764       virtual-size: int
1765              Number of bytes covered by this extent
1766
1767       cluster-size: int (optional)
1768              Cluster size in bytes (for non-flat extents)
1769
1770       compressed: boolean (optional)
1771              Whether this extent contains compressed data
1772
1773   Since
1774       8.0
1775
1776   ImageInfoSpecificRbd (Object)
1777   Members
1778       encryption-format: RbdImageEncryptionFormat (optional)
1779              Image encryption format
1780
1781   Since
1782       6.1
1783
1784   ImageInfoSpecificFile (Object)
1785   Members
1786       extent-size-hint: int (optional)
1787              Extent size hint (if available)
1788
1789   Since
1790       8.0
1791
1792   ImageInfoSpecificKind (Enum)
1793   Values
1794       luks   Since 2.7
1795
1796       rbd    Since 6.1
1797
1798       file   Since 8.0
1799
1800       qcow2  Not documented
1801
1802       vmdk   Not documented
1803
1804   Since
1805       1.7
1806
1807   ImageInfoSpecificQCow2Wrapper (Object)
1808   Members
1809       data: ImageInfoSpecificQCow2
1810              Not documented
1811
1812   Since
1813       1.7
1814
1815   ImageInfoSpecificVmdkWrapper (Object)
1816   Members
1817       data: ImageInfoSpecificVmdk
1818              Not documented
1819
1820   Since
1821       6.1
1822
1823   ImageInfoSpecificLUKSWrapper (Object)
1824   Members
1825       data: QCryptoBlockInfoLUKS
1826              Not documented
1827
1828   Since
1829       2.7
1830
1831   ImageInfoSpecificRbdWrapper (Object)
1832   Members
1833       data: ImageInfoSpecificRbd
1834              Not documented
1835
1836   Since
1837       6.1
1838
1839   ImageInfoSpecificFileWrapper (Object)
1840   Members
1841       data: ImageInfoSpecificFile
1842              Not documented
1843
1844   Since
1845       8.0
1846
1847   ImageInfoSpecific (Object)
1848       A discriminated record of image format specific information structures.
1849
1850   Members
1851       type: ImageInfoSpecificKind
1852              Not documented
1853
1854       The members of ImageInfoSpecificQCow2Wrapper when type is "qcow2"
1855
1856       The members of ImageInfoSpecificVmdkWrapper when type is "vmdk"
1857
1858       The members of ImageInfoSpecificLUKSWrapper when type is "luks"
1859
1860       The members of ImageInfoSpecificRbdWrapper when type is "rbd"
1861
1862       The members of ImageInfoSpecificFileWrapper when type is "file"
1863
1864   Since
1865       1.7
1866
1867   BlockNodeInfo (Object)
1868       Information about a QEMU image file
1869
1870   Members
1871       filename: string
1872              name of the image file
1873
1874       format: string
1875              format of the image file
1876
1877       virtual-size: int
1878              maximum capacity in bytes of the image
1879
1880       actual-size: int (optional)
1881              actual size on disk in bytes of the image
1882
1883       dirty-flag: boolean (optional)
1884              true if image is not cleanly closed
1885
1886       cluster-size: int (optional)
1887              size of a cluster in bytes
1888
1889       encrypted: boolean (optional)
1890              true if the image is encrypted
1891
1892       compressed: boolean (optional)
1893              true if the image is compressed (Since 1.7)
1894
1895       backing-filename: string (optional)
1896              name of the backing file
1897
1898       full-backing-filename: string (optional)
1899              full path of the backing file
1900
1901       backing-filename-format: string (optional)
1902              the format of the backing file
1903
1904       snapshots: array of SnapshotInfo (optional)
1905              list of VM snapshots
1906
1907       format-specific: ImageInfoSpecific (optional)
1908              structure  supplying  additional   format-specific   information
1909              (since 1.7)
1910
1911   Since
1912       8.0
1913
1914   ImageInfo (Object)
1915       Information about a QEMU image file, and potentially its backing image
1916
1917   Members
1918       backing-image: ImageInfo (optional)
1919              info of the backing image
1920
1921       The members of BlockNodeInfo
1922
1923   Since
1924       1.3
1925
1926   BlockChildInfo (Object)
1927       Information  about  all nodes in the block graph starting at some node,
1928       annotated with information about that node in relation to its parent.
1929
1930   Members
1931       name: string
1932              Child name of the root node in the BlockGraphInfo struct, in its
1933              role as the child of some undescribed parent node
1934
1935       info: BlockGraphInfo
1936              Block graph information starting at this node
1937
1938   Since
1939       8.0
1940
1941   BlockGraphInfo (Object)
1942       Information  about all nodes in a block (sub)graph in the form of Bloc‐
1943       kNodeInfo data.  The base BlockNodeInfo struct contains the information
1944       for the (sub)graph's root node.
1945
1946   Members
1947       children: array of BlockChildInfo
1948              Array of links to this node's child nodes' information
1949
1950       The members of BlockNodeInfo
1951
1952   Since
1953       8.0
1954
1955   ImageCheck (Object)
1956       Information about a QEMU image file check
1957
1958   Members
1959       filename: string
1960              name of the image file checked
1961
1962       format: string
1963              format of the image file checked
1964
1965       check-errors: int
1966              number of unexpected errors occurred during check
1967
1968       image-end-offset: int (optional)
1969              offset (in bytes) where the image ends, this field is present if
1970              the driver for the image format supports it
1971
1972       corruptions: int (optional)
1973              number of corruptions found during the check if any
1974
1975       leaks: int (optional)
1976              number of leaks found during the check if any
1977
1978       corruptions-fixed: int (optional)
1979              number of corruptions fixed during the check if any
1980
1981       leaks-fixed: int (optional)
1982              number of leaks fixed during the check if any
1983
1984       total-clusters: int (optional)
1985              total number of clusters, this field is present  if  the  driver
1986              for the image format supports it
1987
1988       allocated-clusters: int (optional)
1989              total number of allocated clusters, this field is present if the
1990              driver for the image format supports it
1991
1992       fragmented-clusters: int (optional)
1993              total number of fragmented clusters, this field  is  present  if
1994              the driver for the image format supports it
1995
1996       compressed-clusters: int (optional)
1997              total  number  of  compressed clusters, this field is present if
1998              the driver for the image format supports it
1999
2000   Since
2001       1.4
2002
2003   MapEntry (Object)
2004       Mapping information from a virtual block range to a host file range
2005
2006   Members
2007       start: int
2008              virtual (guest) offset of the first byte described by this entry
2009
2010       length: int
2011              the number of bytes of the mapped virtual range
2012
2013       data: boolean
2014              reading the image will actually read data from a file  (in  par‐
2015              ticular,  if  offset  is present this means that the sectors are
2016              not simply preallocated, but contain actual data in raw format)
2017
2018       zero: boolean
2019              whether the virtual blocks read as zeroes
2020
2021       depth: int
2022              number of layers (0 = top image, 1 = top image's  backing  file,
2023              ...,  n  -  1 = bottom image (where n is the number of images in
2024              the chain)) before reaching one for which the range is allocated
2025
2026       present: boolean
2027              true if this layer provides the data, false if adding a  backing
2028              layer could impact this region (since 6.1)
2029
2030       offset: int (optional)
2031              if present, the image file stores the data for this range in raw
2032              format at the given (host) offset
2033
2034       filename: string (optional)
2035              filename that is referred to by offset
2036
2037   Since
2038       2.6
2039
2040   BlockdevCacheInfo (Object)
2041       Cache mode information for a block device
2042
2043   Members
2044       writeback: boolean
2045              true if writeback mode is enabled
2046
2047       direct: boolean
2048              true if the host page cache is bypassed (O_DIRECT)
2049
2050       no-flush: boolean
2051              true if flush requests are ignored for the device
2052
2053   Since
2054       2.3
2055
2056   BlockDeviceInfo (Object)
2057       Information about the backing device for a block device.
2058
2059   Members
2060       file: string
2061              the filename of the backing device
2062
2063       node-name: string (optional)
2064              the name of the block driver node (Since 2.0)
2065
2066       ro: boolean
2067              true if the backing device was open read-only
2068
2069       drv: string
2070              the name of the block format used to open  the  backing  device.
2071              As  of  0.14  this  can be: 'blkdebug', 'bochs', 'cloop', 'cow',
2072              'dmg', 'file', 'file', 'ftp',  'ftps',  'host_cdrom',  'host_de‐
2073              vice',  'http',  'https',  'luks',  'nbd',  'parallels', 'qcow',
2074              'qcow2', 'raw', 'vdi', 'vmdk', 'vpc', 'vvfat' 2.2: 'archipelago'
2075              added,   'cow'   dropped   2.3:  'host_floppy'  deprecated  2.5:
2076              'host_floppy'  dropped  2.6:  'luks'  added  2.8:  'replication'
2077              added, 'tftp' dropped 2.9: 'archipelago' dropped
2078
2079       backing_file: string (optional)
2080              the name of the backing file (for copy-on-write)
2081
2082       backing_file_depth: int
2083              number of files in the backing file chain (since: 1.2)
2084
2085       encrypted: boolean
2086              true if the backing device is encrypted
2087
2088       detect_zeroes: BlockdevDetectZeroesOptions
2089              detect and optimize zero writes (Since 2.1)
2090
2091       bps: int
2092              total throughput limit in bytes per second is specified
2093
2094       bps_rd: int
2095              read throughput limit in bytes per second is specified
2096
2097       bps_wr: int
2098              write throughput limit in bytes per second is specified
2099
2100       iops: int
2101              total I/O operations per second is specified
2102
2103       iops_rd: int
2104              read I/O operations per second is specified
2105
2106       iops_wr: int
2107              write I/O operations per second is specified
2108
2109       image: ImageInfo
2110              the info of image used (since: 1.6)
2111
2112       bps_max: int (optional)
2113              total throughput limit during bursts, in bytes (Since 1.7)
2114
2115       bps_rd_max: int (optional)
2116              read throughput limit during bursts, in bytes (Since 1.7)
2117
2118       bps_wr_max: int (optional)
2119              write throughput limit during bursts, in bytes (Since 1.7)
2120
2121       iops_max: int (optional)
2122              total  I/O  operations per second during bursts, in bytes (Since
2123              1.7)
2124
2125       iops_rd_max: int (optional)
2126              read I/O operations per second during bursts,  in  bytes  (Since
2127              1.7)
2128
2129       iops_wr_max: int (optional)
2130              write  I/O  operations per second during bursts, in bytes (Since
2131              1.7)
2132
2133       bps_max_length: int (optional)
2134              maximum length of the bps_max burst period, in seconds.   (Since
2135              2.6)
2136
2137       bps_rd_max_length: int (optional)
2138              maximum  length  of  the  bps_rd_max  burst  period, in seconds.
2139              (Since 2.6)
2140
2141       bps_wr_max_length: int (optional)
2142              maximum length of  the  bps_wr_max  burst  period,  in  seconds.
2143              (Since 2.6)
2144
2145       iops_max_length: int (optional)
2146              maximum  length  of  the  iops burst period, in seconds.  (Since
2147              2.6)
2148
2149       iops_rd_max_length: int (optional)
2150              maximum length of the  iops_rd_max  burst  period,  in  seconds.
2151              (Since 2.6)
2152
2153       iops_wr_max_length: int (optional)
2154              maximum  length  of  the  iops_wr_max  burst period, in seconds.
2155              (Since 2.6)
2156
2157       iops_size: int (optional)
2158              an I/O size in bytes (Since 1.7)
2159
2160       group: string (optional)
2161              throttle group name (Since 2.4)
2162
2163       cache: BlockdevCacheInfo
2164              the cache mode used for the block device (since: 2.3)
2165
2166       write_threshold: int
2167              configured write threshold  for  the  device.   0  if  disabled.
2168              (Since 2.3)
2169
2170       dirty-bitmaps: array of BlockDirtyInfo (optional)
2171              dirty  bitmaps information (only present if node has one or more
2172              dirty bitmaps) (Since 4.2)
2173
2174   Since
2175       0.14
2176
2177   BlockDeviceIoStatus (Enum)
2178       An enumeration of block device I/O status.
2179
2180   Values
2181       ok     The last I/O operation has succeeded
2182
2183       failed The last I/O operation has failed
2184
2185       nospace
2186              The last I/O operation has failed due to a no-space condition
2187
2188   Since
2189       1.0
2190
2191   BlockDirtyInfo (Object)
2192       Block dirty bitmap information.
2193
2194   Members
2195       name: string (optional)
2196              the name of the dirty bitmap (Since 2.4)
2197
2198       count: int
2199              number of dirty bytes according to the dirty bitmap
2200
2201       granularity: int
2202              granularity of the dirty bitmap in bytes (since 1.4)
2203
2204       recording: boolean
2205              true if the bitmap is  recording  new  writes  from  the  guest.
2206              (since 4.0)
2207
2208       busy: boolean
2209              true if the bitmap is in-use by some operation (NBD or jobs) and
2210              cannot be modified via QMP or used by another operation.  (since
2211              4.0)
2212
2213       persistent: boolean
2214              true if the bitmap was stored on disk, is scheduled to be stored
2215              on disk, or both.  (since 4.0)
2216
2217       inconsistent: boolean (optional)
2218              true if this is a persistent bitmap that was improperly  stored.
2219              Implies  persistent  to be true; recording and busy to be false.
2220              This bitmap cannot be used.  To remove it, use  block-dirty-bit‐
2221              map-remove.  (Since 4.0)
2222
2223   Since
2224       1.3
2225
2226   Qcow2BitmapInfoFlags (Enum)
2227       An enumeration of flags that a bitmap can report to the user.
2228
2229   Values
2230       in-use This  flag  is  set  by any process actively modifying the qcow2
2231              file, and cleared when the updated  bitmap  is  flushed  to  the
2232              qcow2  image.   The  presence  of  this flag in an offline image
2233              means that the bitmap was not saved correctly after its last us‐
2234              age, and may contain inconsistent data.
2235
2236       auto   The  bitmap  must reflect all changes of the virtual disk by any
2237              application that would write to this qcow2 file.
2238
2239   Since
2240       4.0
2241
2242   Qcow2BitmapInfo (Object)
2243       Qcow2 bitmap information.
2244
2245   Members
2246       name: string
2247              the name of the bitmap
2248
2249       granularity: int
2250              granularity of the bitmap in bytes
2251
2252       flags: array of Qcow2BitmapInfoFlags
2253              flags of the bitmap
2254
2255   Since
2256       4.0
2257
2258   BlockLatencyHistogramInfo (Object)
2259       Block latency histogram.
2260
2261   Members
2262       boundaries: array of int
2263              list of interval boundary values  in  nanoseconds,  all  greater
2264              than  zero  and  in ascending order.  For example, the list [10,
2265              50, 100] produces the following histogram  intervals:  [0,  10),
2266              [10, 50), [50, 100), [100, +inf).
2267
2268       bins: array of int
2269              list  of io request counts corresponding to histogram intervals,
2270              one more element than boundaries has.  For  the  example  above,
2271              bins  may be something like [3, 1, 5, 2], and corresponding his‐
2272              togram looks like:
2273
2274          5|           *
2275          4|           *
2276          3| *         *
2277          2| *         *    *
2278          1| *    *    *    *
2279           +------------------
2280               10   50   100
2281
2282   Since
2283       4.0
2284
2285   BlockInfo (Object)
2286       Block device information.  This structure describes  a  virtual  device
2287       and the backing device associated with it.
2288
2289   Members
2290       device: string
2291              The device name associated with the virtual device.
2292
2293       qdev: string (optional)
2294              The  qdev ID, or if no ID is assigned, the QOM path of the block
2295              device.  (since 2.10)
2296
2297       type: string
2298              This field is returned only for compatibility reasons, it should
2299              not be used (always returns 'unknown')
2300
2301       removable: boolean
2302              True if the device supports removable media.
2303
2304       locked: boolean
2305              True  if  the guest has locked this device from having its media
2306              removed
2307
2308       tray_open: boolean (optional)
2309              True if the device's tray is open (only  present  if  it  has  a
2310              tray)
2311
2312       io-status: BlockDeviceIoStatus (optional)
2313              BlockDeviceIoStatus.  Only present if the device supports it and
2314              the VM is configured to stop on errors (supported device models:
2315              virtio-blk, IDE, SCSI except scsi-generic)
2316
2317       inserted: BlockDeviceInfo (optional)
2318              BlockDeviceInfo describing the device if media is present
2319
2320   Since
2321       0.14
2322
2323   BlockMeasureInfo (Object)
2324       Image  file size calculation information.  This structure describes the
2325       size requirements for creating a new image file.
2326
2327       The size requirements depend on the new image file format.   File  size
2328       always  equals  virtual disk size for the 'raw' format, even for sparse
2329       POSIX files.  Compact formats such as 'qcow2' represent unallocated and
2330       zero  regions efficiently so file size may be smaller than virtual disk
2331       size.
2332
2333       The values are upper bounds that are guaranteed to fit  the  new  image
2334       file.   Subsequent  modification,  such as internal snapshot or further
2335       bitmap creation, may require additional space and is not covered here.
2336
2337   Members
2338       required: int
2339              Size required for a new image file, in bytes, when copying  just
2340              allocated guest-visible contents.
2341
2342       fully-allocated: int
2343              Image  file  size,  in  bytes, once data has been written to all
2344              sectors, when copying just guest-visible contents.
2345
2346       bitmaps: int (optional)
2347              Additional size required if all the top-level bitmap metadata in
2348              the  source  image were to be copied to the destination, present
2349              only when source and destination both  support  persistent  bit‐
2350              maps.  (since 5.1)
2351
2352   Since
2353       2.10
2354
2355   query-block (Command)
2356       Get a list of BlockInfo for all virtual block devices.
2357
2358   Returns
2359       a list of BlockInfo describing each virtual block device.  Filter nodes
2360       that were created implicitly are skipped over.
2361
2362   Since
2363       0.14
2364
2365   Example
2366          -> { "execute": "query-block" }
2367          <- {
2368                "return":[
2369                   {
2370                      "io-status": "ok",
2371                      "device":"ide0-hd0",
2372                      "locked":false,
2373                      "removable":false,
2374                      "inserted":{
2375                         "ro":false,
2376                         "drv":"qcow2",
2377                         "encrypted":false,
2378                         "file":"disks/test.qcow2",
2379                         "backing_file_depth":1,
2380                         "bps":1000000,
2381                         "bps_rd":0,
2382                         "bps_wr":0,
2383                         "iops":1000000,
2384                         "iops_rd":0,
2385                         "iops_wr":0,
2386                         "bps_max": 8000000,
2387                         "bps_rd_max": 0,
2388                         "bps_wr_max": 0,
2389                         "iops_max": 0,
2390                         "iops_rd_max": 0,
2391                         "iops_wr_max": 0,
2392                         "iops_size": 0,
2393                         "detect_zeroes": "on",
2394                         "write_threshold": 0,
2395                         "image":{
2396                            "filename":"disks/test.qcow2",
2397                            "format":"qcow2",
2398                            "virtual-size":2048000,
2399                            "backing_file":"base.qcow2",
2400                            "full-backing-filename":"disks/base.qcow2",
2401                            "backing-filename-format":"qcow2",
2402                            "snapshots":[
2403                               {
2404                                  "id": "1",
2405                                  "name": "snapshot1",
2406                                  "vm-state-size": 0,
2407                                  "date-sec": 10000200,
2408                                  "date-nsec": 12,
2409                                  "vm-clock-sec": 206,
2410                                  "vm-clock-nsec": 30
2411                               }
2412                            ],
2413                            "backing-image":{
2414                                "filename":"disks/base.qcow2",
2415                                "format":"qcow2",
2416                                "virtual-size":2048000
2417                            }
2418                         }
2419                      },
2420                      "qdev": "ide_disk",
2421                      "type":"unknown"
2422                   },
2423                   {
2424                      "io-status": "ok",
2425                      "device":"ide1-cd0",
2426                      "locked":false,
2427                      "removable":true,
2428                      "qdev": "/machine/unattached/device[23]",
2429                      "tray_open": false,
2430                      "type":"unknown"
2431                   },
2432                   {
2433                      "device":"floppy0",
2434                      "locked":false,
2435                      "removable":true,
2436                      "qdev": "/machine/unattached/device[20]",
2437                      "type":"unknown"
2438                   },
2439                   {
2440                      "device":"sd0",
2441                      "locked":false,
2442                      "removable":true,
2443                      "type":"unknown"
2444                   }
2445                ]
2446             }
2447
2448   BlockDeviceTimedStats (Object)
2449       Statistics of a block device during a given interval of time.
2450
2451   Members
2452       interval_length: int
2453              Interval used for calculating the statistics, in seconds.
2454
2455       min_rd_latency_ns: int
2456              Minimum latency of read operations in the defined  interval,  in
2457              nanoseconds.
2458
2459       min_wr_latency_ns: int
2460              Minimum  latency of write operations in the defined interval, in
2461              nanoseconds.
2462
2463       min_zone_append_latency_ns: int
2464              Minimum latency of zone append operations in the defined  inter‐
2465              val, in nanoseconds (since 8.1)
2466
2467       min_flush_latency_ns: int
2468              Minimum  latency of flush operations in the defined interval, in
2469              nanoseconds.
2470
2471       max_rd_latency_ns: int
2472              Maximum latency of read operations in the defined  interval,  in
2473              nanoseconds.
2474
2475       max_wr_latency_ns: int
2476              Maximum  latency of write operations in the defined interval, in
2477              nanoseconds.
2478
2479       max_zone_append_latency_ns: int
2480              Maximum latency of zone append operations in the defined  inter‐
2481              val, in nanoseconds (since 8.1)
2482
2483       max_flush_latency_ns: int
2484              Maximum  latency of flush operations in the defined interval, in
2485              nanoseconds.
2486
2487       avg_rd_latency_ns: int
2488              Average latency of read operations in the defined  interval,  in
2489              nanoseconds.
2490
2491       avg_wr_latency_ns: int
2492              Average  latency of write operations in the defined interval, in
2493              nanoseconds.
2494
2495       avg_zone_append_latency_ns: int
2496              Average latency of zone append operations in the defined  inter‐
2497              val, in nanoseconds (since 8.1)
2498
2499       avg_flush_latency_ns: int
2500              Average  latency of flush operations in the defined interval, in
2501              nanoseconds.
2502
2503       avg_rd_queue_depth: number
2504              Average number of pending read operations in the defined  inter‐
2505              val.
2506
2507       avg_wr_queue_depth: number
2508              Average number of pending write operations in the defined inter‐
2509              val.
2510
2511       avg_zone_append_queue_depth: number
2512              Average number of pending zone append operations in the  defined
2513              interval (since 8.1).
2514
2515   Since
2516       2.5
2517
2518   BlockDeviceStats (Object)
2519       Statistics of a virtual block device or a block backing device.
2520
2521   Members
2522       rd_bytes: int
2523              The number of bytes read by the device.
2524
2525       wr_bytes: int
2526              The number of bytes written by the device.
2527
2528       zone_append_bytes: int
2529              The number of bytes appended by the zoned devices (since 8.1)
2530
2531       unmap_bytes: int
2532              The number of bytes unmapped by the device (Since 4.2)
2533
2534       rd_operations: int
2535              The number of read operations performed by the device.
2536
2537       wr_operations: int
2538              The number of write operations performed by the device.
2539
2540       zone_append_operations: int
2541              The  number of zone append operations performed by the zoned de‐
2542              vices (since 8.1)
2543
2544       flush_operations: int
2545              The number of cache flush operations  performed  by  the  device
2546              (since 0.15)
2547
2548       unmap_operations: int
2549              The  number  of  unmap operations performed by the device (Since
2550              4.2)
2551
2552       rd_total_time_ns: int
2553              Total time spent on reads in nanoseconds (since 0.15).
2554
2555       wr_total_time_ns: int
2556              Total time spent on writes in nanoseconds (since 0.15).
2557
2558       zone_append_total_time_ns: int
2559              Total time spent on zone append  writes  in  nanoseconds  (since
2560              8.1)
2561
2562       flush_total_time_ns: int
2563              Total time spent on cache flushes in nanoseconds (since 0.15).
2564
2565       unmap_total_time_ns: int
2566              Total time spent on unmap operations in nanoseconds (Since 4.2)
2567
2568       wr_highest_offset: int
2569              The  offset  after the greatest byte written to the device.  The
2570              intended use of this information is for  growable  sparse  files
2571              (like qcow2) that are used on top of a physical device.
2572
2573       rd_merged: int
2574              Number  of  read requests that have been merged into another re‐
2575              quest (Since 2.3).
2576
2577       wr_merged: int
2578              Number of write requests that have been merged into another  re‐
2579              quest (Since 2.3).
2580
2581       zone_append_merged: int
2582              Number  of  zone  append requests that have been merged into an‐
2583              other request (since 8.1)
2584
2585       unmap_merged: int
2586              Number of unmap requests that have been merged into another  re‐
2587              quest (Since 4.2)
2588
2589       idle_time_ns: int (optional)
2590              Time since the last I/O operation, in nanoseconds.  If the field
2591              is absent it means that there haven't been  any  operations  yet
2592              (Since 2.5).
2593
2594       failed_rd_operations: int
2595              The  number  of  failed  read operations performed by the device
2596              (Since 2.5)
2597
2598       failed_wr_operations: int
2599              The number of failed write operations performed  by  the  device
2600              (Since 2.5)
2601
2602       failed_zone_append_operations: int
2603              The  number  of failed zone append write operations performed by
2604              the zoned devices (since 8.1)
2605
2606       failed_flush_operations: int
2607              The number of failed flush operations performed  by  the  device
2608              (Since 2.5)
2609
2610       failed_unmap_operations: int
2611              The  number  of  failed unmap operations performed by the device
2612              (Since 4.2)
2613
2614       invalid_rd_operations: int
2615              The number of invalid read operations performed  by  the  device
2616              (Since 2.5)
2617
2618       invalid_wr_operations: int
2619              The  number  of invalid write operations performed by the device
2620              (Since 2.5)
2621
2622       invalid_zone_append_operations: int
2623              The number of invalid zone append operations  performed  by  the
2624              zoned device (since 8.1)
2625
2626       invalid_flush_operations: int
2627              The  number  of invalid flush operations performed by the device
2628              (Since 2.5)
2629
2630       invalid_unmap_operations: int
2631              The number of invalid unmap operations performed by  the  device
2632              (Since 4.2)
2633
2634       account_invalid: boolean
2635              Whether  invalid operations are included in the last access sta‐
2636              tistics (Since 2.5)
2637
2638       account_failed: boolean
2639              Whether failed operations are included in the latency  and  last
2640              access statistics (Since 2.5)
2641
2642       timed_stats: array of BlockDeviceTimedStats
2643              Statistics  specific  to the set of previously defined intervals
2644              of time (Since 2.5)
2645
2646       rd_latency_histogram: BlockLatencyHistogramInfo (optional)
2647              BlockLatencyHistogramInfo.  (Since 4.0)
2648
2649       wr_latency_histogram: BlockLatencyHistogramInfo (optional)
2650              BlockLatencyHistogramInfo.  (Since 4.0)
2651
2652       zone_append_latency_histogram: BlockLatencyHistogramInfo (optional)
2653              BlockLatencyHistogramInfo.  (since 8.1)
2654
2655       flush_latency_histogram: BlockLatencyHistogramInfo (optional)
2656              BlockLatencyHistogramInfo.  (Since 4.0)
2657
2658   Since
2659       0.14
2660
2661   BlockStatsSpecificFile (Object)
2662       File driver statistics
2663
2664   Members
2665       discard-nb-ok: int
2666              The number of successful discard  operations  performed  by  the
2667              driver.
2668
2669       discard-nb-failed: int
2670              The number of failed discard operations performed by the driver.
2671
2672       discard-bytes-ok: int
2673              The number of bytes discarded by the driver.
2674
2675   Since
2676       4.2
2677
2678   BlockStatsSpecificNvme (Object)
2679       NVMe driver statistics
2680
2681   Members
2682       completion-errors: int
2683              The number of completion errors.
2684
2685       aligned-accesses: int
2686              The number of aligned accesses performed by the driver.
2687
2688       unaligned-accesses: int
2689              The number of unaligned accesses performed by the driver.
2690
2691   Since
2692       5.2
2693
2694   BlockStatsSpecific (Object)
2695       Block driver specific statistics
2696
2697   Members
2698       driver: BlockdevDriver
2699              Not documented
2700
2701       The members of BlockStatsSpecificFile when driver is "file"
2702
2703       The members of BlockStatsSpecificFile when driver is "host_device" (If:
2704       HAVE_HOST_BLOCK_DEVICE)
2705
2706       The members of BlockStatsSpecificNvme when driver is "nvme"
2707
2708   Since
2709       4.2
2710
2711   BlockStats (Object)
2712       Statistics of a virtual block device or a block backing device.
2713
2714   Members
2715       device: string (optional)
2716              If the stats are for a virtual block  device,  the  name  corre‐
2717              sponding to the virtual block device.
2718
2719       node-name: string (optional)
2720              The node name of the device.  (Since 2.3)
2721
2722       qdev: string (optional)
2723              The  qdev ID, or if no ID is assigned, the QOM path of the block
2724              device.  (since 3.0)
2725
2726       stats: BlockDeviceStats
2727              A BlockDeviceStats for the device.
2728
2729       driver-specific: BlockStatsSpecific (optional)
2730              Optional driver-specific stats.  (Since 4.2)
2731
2732       parent: BlockStats (optional)
2733              This describes the file block device if it  has  one.   Contains
2734              recursively  the statistics of the underlying protocol (e.g. the
2735              host file for a qcow2 image).  If there is no underlying  proto‐
2736              col, this field is omitted
2737
2738       backing: BlockStats (optional)
2739              This  describes  the backing block device if it has one.  (Since
2740              2.0)
2741
2742   Since
2743       0.14
2744
2745   query-blockstats (Command)
2746       Query the BlockStats for all virtual block devices.
2747
2748   Arguments
2749       query-nodes: boolean (optional)
2750              If true, the command will query all the block nodes that have  a
2751              node  name,  in  a list which will include "parent" information,
2752              but not "backing". If false or omitted, the behavior is  as  be‐
2753              fore  -  query  all  the  device backends, recursively including
2754              their "parent" and "backing". Filter nodes that were created im‐
2755              plicitly are skipped over in this mode.  (Since 2.3)
2756
2757   Returns
2758       A list of BlockStats for each virtual block devices.
2759
2760   Since
2761       0.14
2762
2763   Example
2764          -> { "execute": "query-blockstats" }
2765          <- {
2766                "return":[
2767                   {
2768                      "device":"ide0-hd0",
2769                      "parent":{
2770                         "stats":{
2771                            "wr_highest_offset":3686448128,
2772                            "wr_bytes":9786368,
2773                            "wr_operations":751,
2774                            "rd_bytes":122567168,
2775                            "rd_operations":36772
2776                            "wr_total_times_ns":313253456
2777                            "rd_total_times_ns":3465673657
2778                            "flush_total_times_ns":49653
2779                            "flush_operations":61,
2780                            "rd_merged":0,
2781                            "wr_merged":0,
2782                            "idle_time_ns":2953431879,
2783                            "account_invalid":true,
2784                            "account_failed":false
2785                         }
2786                      },
2787                      "stats":{
2788                         "wr_highest_offset":2821110784,
2789                         "wr_bytes":9786368,
2790                         "wr_operations":692,
2791                         "rd_bytes":122739200,
2792                         "rd_operations":36604
2793                         "flush_operations":51,
2794                         "wr_total_times_ns":313253456
2795                         "rd_total_times_ns":3465673657
2796                         "flush_total_times_ns":49653,
2797                         "rd_merged":0,
2798                         "wr_merged":0,
2799                         "idle_time_ns":2953431879,
2800                         "account_invalid":true,
2801                         "account_failed":false
2802                      },
2803                      "qdev": "/machine/unattached/device[23]"
2804                   },
2805                   {
2806                      "device":"ide1-cd0",
2807                      "stats":{
2808                         "wr_highest_offset":0,
2809                         "wr_bytes":0,
2810                         "wr_operations":0,
2811                         "rd_bytes":0,
2812                         "rd_operations":0
2813                         "flush_operations":0,
2814                         "wr_total_times_ns":0
2815                         "rd_total_times_ns":0
2816                         "flush_total_times_ns":0,
2817                         "rd_merged":0,
2818                         "wr_merged":0,
2819                         "account_invalid":false,
2820                         "account_failed":false
2821                      },
2822                      "qdev": "/machine/unattached/device[24]"
2823                   },
2824                   {
2825                      "device":"floppy0",
2826                      "stats":{
2827                         "wr_highest_offset":0,
2828                         "wr_bytes":0,
2829                         "wr_operations":0,
2830                         "rd_bytes":0,
2831                         "rd_operations":0
2832                         "flush_operations":0,
2833                         "wr_total_times_ns":0
2834                         "rd_total_times_ns":0
2835                         "flush_total_times_ns":0,
2836                         "rd_merged":0,
2837                         "wr_merged":0,
2838                         "account_invalid":false,
2839                         "account_failed":false
2840                      },
2841                      "qdev": "/machine/unattached/device[16]"
2842                   },
2843                   {
2844                      "device":"sd0",
2845                      "stats":{
2846                         "wr_highest_offset":0,
2847                         "wr_bytes":0,
2848                         "wr_operations":0,
2849                         "rd_bytes":0,
2850                         "rd_operations":0
2851                         "flush_operations":0,
2852                         "wr_total_times_ns":0
2853                         "rd_total_times_ns":0
2854                         "flush_total_times_ns":0,
2855                         "rd_merged":0,
2856                         "wr_merged":0,
2857                         "account_invalid":false,
2858                         "account_failed":false
2859                      }
2860                   }
2861                ]
2862             }
2863
2864   BlockdevOnError (Enum)
2865       An enumeration of possible behaviors for errors on I/O operations.  The
2866       exact meaning depends on whether the I/O was initiated by a guest or by
2867       a block job
2868
2869   Values
2870       report for  guest  operations, report the error to the guest; for jobs,
2871              cancel the job
2872
2873       ignore ignore the error, only report a  QMP  event  (BLOCK_IO_ERROR  or
2874              BLOCK_JOB_ERROR). The backup, mirror and commit block jobs retry
2875              the failing request later and may still  complete  successfully.
2876              The  stream block job continues to stream and will complete with
2877              an error.
2878
2879       enospc same as stop on ENOSPC, same as report otherwise.
2880
2881       stop   for guest operations, stop the virtual machine; for jobs,  pause
2882              the job
2883
2884       auto   inherit the error handling policy of the backend (since: 2.7)
2885
2886   Since
2887       1.3
2888
2889   MirrorSyncMode (Enum)
2890       An  enumeration  of  possible behaviors for the initial synchronization
2891       phase of storage mirroring.
2892
2893   Values
2894       top    copies data in the topmost image to the destination
2895
2896       full   copies data from all images to the destination
2897
2898       none   only copy data written from now on
2899
2900       incremental
2901              only copy data described by the dirty bitmap.  (since: 2.4)
2902
2903       bitmap only copy data described by the dirty bitmap.  (since: 4.2)  Be‐
2904              havior on completion is determined by the BitmapSyncMode.
2905
2906   Since
2907       1.3
2908
2909   BitmapSyncMode (Enum)
2910       An  enumeration of possible behaviors for the synchronization of a bit‐
2911       map when used for data copy operations.
2912
2913   Values
2914       on-success
2915              The bitmap is only synced  when  the  operation  is  successful.
2916              This is the behavior always used for 'INCREMENTAL' backups.
2917
2918       never  The  bitmap  is  never  synchronized  with the operation, and is
2919              treated solely as a read-only manifest of blocks to copy.
2920
2921       always The bitmap is always synchronized with the operation, regardless
2922              of whether or not the operation was successful.
2923
2924   Since
2925       4.2
2926
2927   MirrorCopyMode (Enum)
2928       An  enumeration  whose values tell the mirror block job when to trigger
2929       writes to the target.
2930
2931   Values
2932       background
2933              copy data in background only.
2934
2935       write-blocking
2936              when data is written to the source, write it (synchronously)  to
2937              the  target  as well.  In addition, data is copied in background
2938              just like in background mode.
2939
2940   Since
2941       3.0
2942
2943   BlockJobInfo (Object)
2944       Information about a long-running block device operation.
2945
2946   Members
2947       type: string
2948              the job type ('stream' for image streaming)
2949
2950       device: string
2951              The job identifier.  Originally the device name but other values
2952              are allowed since QEMU 2.7
2953
2954       len: int
2955              Estimated offset value at the completion of the job.  This value
2956              can arbitrarily change while the job is running, in both  direc‐
2957              tions.
2958
2959       offset: int
2960              Progress  made  until  now.  The unit is arbitrary and the value
2961              can only meaningfully be used for the ratio of  offset  to  len.
2962              The value is monotonically increasing.
2963
2964       busy: boolean
2965              false  if  the  job is known to be in a quiescent state, with no
2966              pending I/O.  (Since 1.3)
2967
2968       paused: boolean
2969              whether the job is paused or, if busy is true, will pause itself
2970              as soon as possible.  (Since 1.3)
2971
2972       speed: int
2973              the rate limit, bytes per second
2974
2975       io-status: BlockDeviceIoStatus
2976              the status of the job (since 1.3)
2977
2978       ready: boolean
2979              true if the job may be completed (since 2.2)
2980
2981       status: JobStatus
2982              Current job state/status (since 2.12)
2983
2984       auto-finalize: boolean
2985              Job  will  finalize itself when PENDING, moving to the CONCLUDED
2986              state.  (since 2.12)
2987
2988       auto-dismiss: boolean
2989              Job will dismiss itself when CONCLUDED, moving to the NULL state
2990              and disappearing from the query list.  (since 2.12)
2991
2992       error: string (optional)
2993              Error information if the job did not complete successfully.  Not
2994              set if the job completed successfully.  (since 2.12.1)
2995
2996   Since
2997       1.1
2998
2999   query-block-jobs (Command)
3000       Return information about long-running block device operations.
3001
3002   Returns
3003       a list of BlockJobInfo for each active block job
3004
3005   Since
3006       1.1
3007
3008   block_resize (Command)
3009       Resize a block image while a guest is running.
3010
3011       Either device or node-name must be set but not both.
3012
3013   Arguments
3014       device: string (optional)
3015              the name of the device to get the image resized
3016
3017       node-name: string (optional)
3018              graph node name to get the image resized (Since 2.0)
3019
3020       size: int
3021              new image size in bytes
3022
3023   Returns
3024       • nothing on success
3025
3026       • If device is not a valid block device, DeviceNotFound
3027
3028   Since
3029       0.14
3030
3031   Example
3032          -> { "execute": "block_resize",
3033               "arguments": { "device": "scratch", "size": 1073741824 } }
3034          <- { "return": {} }
3035
3036   NewImageMode (Enum)
3037       An enumeration that tells QEMU how to set the backing file  path  in  a
3038       new image file.
3039
3040   Values
3041       existing
3042              QEMU should look for an existing image file.
3043
3044       absolute-paths
3045              QEMU should create a new image with absolute paths for the back‐
3046              ing file.  If there is no backing file available, the new  image
3047              will not be backed either.
3048
3049   Since
3050       1.1
3051
3052   BlockdevSnapshotSync (Object)
3053       Either device or node-name must be set but not both.
3054
3055   Members
3056       device: string (optional)
3057              the name of the device to take a snapshot of.
3058
3059       node-name: string (optional)
3060              graph node name to generate the snapshot from (Since 2.0)
3061
3062       snapshot-file: string
3063              the  target of the new overlay image.  If the file exists, or if
3064              it is a device, the overlay will  be  created  in  the  existing
3065              file/device.  Otherwise, a new file will be created.
3066
3067       snapshot-node-name: string (optional)
3068              the graph node name of the new image (Since 2.0)
3069
3070       format: string (optional)
3071              the format of the overlay image, default is 'qcow2'.
3072
3073       mode: NewImageMode (optional)
3074              whether  and how QEMU should create a new image, default is 'ab‐
3075              solute-paths'.
3076
3077   BlockdevSnapshot (Object)
3078   Members
3079       node: string
3080              device or node name that will have a snapshot taken.
3081
3082       overlay: string
3083              reference to the existing block  device  that  will  become  the
3084              overlay  of  node,  as part of taking the snapshot.  It must not
3085              have a current backing file (this can  be  achieved  by  passing
3086              "backing": null to blockdev-add).
3087
3088   Since
3089       2.5
3090
3091   BackupPerf (Object)
3092       Optional  parameters  for  backup.  These parameters don't affect func‐
3093       tionality, but may significantly affect performance.
3094
3095   Members
3096       use-copy-range: boolean (optional)
3097              Use copy offloading.  Default false.
3098
3099       max-workers: int (optional)
3100              Maximum number of parallel requests for the sustained background
3101              copying  process.   Doesn't  influence  copy-before-write opera‐
3102              tions.  Default 64.
3103
3104       max-chunk: int (optional)
3105              Maximum request length  for  the  sustained  background  copying
3106              process.   Doesn't  influence  copy-before-write  operations.  0
3107              means unlimited.  If max-chunk is non-zero then it should not be
3108              less  than  job  cluster  size which is calculated as maximum of
3109              target image cluster size and 64k.  Default 0.
3110
3111   Since
3112       6.0
3113
3114   BackupCommon (Object)
3115   Members
3116       job-id: string (optional)
3117              identifier for the newly-created block job.  If omitted, the de‐
3118              vice name will be used.  (Since 2.7)
3119
3120       device: string
3121              the  device  name  or  node-name  of a root node which should be
3122              copied.
3123
3124       sync: MirrorSyncMode
3125              what parts of the disk image should be copied to the destination
3126              (all  the disk, only the sectors allocated in the topmost image,
3127              from a dirty bitmap, or only new I/O).
3128
3129       speed: int (optional)
3130              the maximum speed, in bytes per second.  The default is  0,  for
3131              unlimited.
3132
3133       bitmap: string (optional)
3134              The  name  of a dirty bitmap to use.  Must be present if sync is
3135              "bitmap" or "incremental". Can be present if sync is  "full"  or
3136              "top".    Must   not   be   present   otherwise.    (Since   2.4
3137              (drive-backup), 3.1 (blockdev-backup))
3138
3139       bitmap-mode: BitmapSyncMode (optional)
3140              Specifies the type of data the bitmap should contain  after  the
3141              operation  concludes.  Must be present if a bitmap was provided,
3142              Must NOT be present otherwise.  (Since 4.2)
3143
3144       compress: boolean (optional)
3145              true to compress data, if the target format supports  it.   (de‐
3146              fault: false) (since 2.8)
3147
3148       on-source-error: BlockdevOnError (optional)
3149              the  action to take on an error on the source, default 'report'.
3150              'stop' and 'enospc' can only be used if the  block  device  sup‐
3151              ports io-status (see BlockInfo).
3152
3153       on-target-error: BlockdevOnError (optional)
3154              the  action  to take on an error on the target, default 'report'
3155              (no limitations, since this applies to a different block  device
3156              than device).
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
3163              2.12)
3164
3165       auto-dismiss: boolean (optional)
3166              When false, this job will wait in a CONCLUDED state after it has
3167              completely ceased all work, and awaits block-job-dismiss.   When
3168              true,  this job will automatically disappear from the query list
3169              without user intervention.  Defaults to true.  (Since 2.12)
3170
3171       filter-node-name: string (optional)
3172              the node name that should be assigned to the filter driver  that
3173              the  backup  job  inserts into the graph above node specified by
3174              drive.  If this option is not given, a node name  is  autogener‐
3175              ated.  (Since: 4.2)
3176
3177       x-perf: BackupPerf (optional)
3178              Performance options.  (Since 6.0)
3179
3180   Features
3181       unstable
3182              Member x-perf is experimental.
3183
3184   Note
3185       on-source-error  and on-target-error only affect background I/O.  If an
3186       error occurs during a guest write request, the  device's  rerror/werror
3187       actions will be used.
3188
3189   Since
3190       4.2
3191
3192   DriveBackup (Object)
3193   Members
3194       target: string
3195              the  target of the new image.  If the file exists, or if it is a
3196              device, the existing file/device will be used as the new  desti‐
3197              nation.  If it does not exist, a new file will be created.
3198
3199       format: string (optional)
3200              the  format  of the new destination, default is to probe if mode
3201              is 'existing', else the format of the source
3202
3203       mode: NewImageMode (optional)
3204              whether and how QEMU should create a new image, default is  'ab‐
3205              solute-paths'.
3206
3207       The members of BackupCommon
3208
3209   Since
3210       1.6
3211
3212   BlockdevBackup (Object)
3213   Members
3214       target: string
3215              the device name or node-name of the backup target node.
3216
3217       The members of BackupCommon
3218
3219   Since
3220       2.3
3221
3222   blockdev-snapshot-sync (Command)
3223       Takes a synchronous snapshot of a block device.
3224
3225       For the arguments, see the documentation of BlockdevSnapshotSync.
3226
3227   Returns
3228       • nothing on success
3229
3230       • If device is not a valid block device, DeviceNotFound
3231
3232   Since
3233       0.14
3234
3235   Example
3236          -> { "execute": "blockdev-snapshot-sync",
3237               "arguments": { "device": "ide-hd0",
3238                              "snapshot-file":
3239                              "/some/place/my-image",
3240                              "format": "qcow2" } }
3241          <- { "return": {} }
3242
3243   blockdev-snapshot (Command)
3244       Takes a snapshot of a block device.
3245
3246       Take  a  snapshot,  by installing 'node' as the backing image of 'over‐
3247       lay'. Additionally, if 'node' is associated with a  block  device,  the
3248       block device changes to using 'overlay' as its new active image.
3249
3250       For the arguments, see the documentation of BlockdevSnapshot.
3251
3252   Features
3253       allow-write-only-overlay
3254              If present, the check whether this operation is safe was relaxed
3255              so that it can be used to change backing file of  a  destination
3256              of a blockdev-mirror.  (since 5.0)
3257
3258   Since
3259       2.5
3260
3261   Example
3262          -> { "execute": "blockdev-add",
3263               "arguments": { "driver": "qcow2",
3264                              "node-name": "node1534",
3265                              "file": { "driver": "file",
3266                                        "filename": "hd1.qcow2" },
3267                              "backing": null } }
3268
3269          <- { "return": {} }
3270
3271          -> { "execute": "blockdev-snapshot",
3272               "arguments": { "node": "ide-hd0",
3273                              "overlay": "node1534" } }
3274          <- { "return": {} }
3275
3276   change-backing-file (Command)
3277       Change  the  backing  file  in  the image file metadata.  This does not
3278       cause QEMU to reopen the image file to reparse the backing filename (it
3279       may, however, perform a reopen to change permissions from r/o -> r/w ->
3280       r/o, if needed). The new backing file string is written into the  image
3281       file metadata, and the QEMU internal strings are updated.
3282
3283   Arguments
3284       image-node-name: string
3285              The  name of the block driver state node of the image to modify.
3286              The "device" argument is used to verify "image-node-name" is  in
3287              the chain described by "device".
3288
3289       device: string
3290              The  device  name  or  node-name  of the root node that owns im‐
3291              age-node-name.
3292
3293       backing-file: string
3294              The string to write as the backing file.   This  string  is  not
3295              validated, so care should be taken when specifying the string or
3296              the image chain may not be able to be reopened again.
3297
3298   Returns
3299       • Nothing on success
3300
3301       • If "device" does not exist or cannot be determined, DeviceNotFound
3302
3303   Since
3304       2.1
3305
3306   block-commit (Command)
3307       Live commit of data from overlay image nodes into backing nodes - i.e.,
3308       writes data between 'top' and 'base' into 'base'.
3309
3310       If top == base, that is an error.  If top has no overlays on top of it,
3311       or if it is in use by a writer, the job will not be  completed  by  it‐
3312       self.   The  user needs to complete the job with the block-job-complete
3313       command after getting the ready event.  (Since 2.0)
3314
3315       If the base image is smaller than top, then the base image will be  re‐
3316       sized  to be the same size as top.  If top is smaller than the base im‐
3317       age, the base will not be truncated.  If you want the base  image  size
3318       to  match the size of the smaller top, you can safely truncate it your‐
3319       self once the commit operation successfully completes.
3320
3321   Arguments
3322       job-id: string (optional)
3323              identifier for the newly-created block job.  If omitted, the de‐
3324              vice name will be used.  (Since 2.7)
3325
3326       device: string
3327              the device name or node-name of a root node
3328
3329       base-node: string (optional)
3330              The  node  name of the backing image to write data into.  If not
3331              specified, this is the deepest backing image.  (since: 3.1)
3332
3333       base: string (optional)
3334              Same as base-node, except that it is a file name rather  than  a
3335              node name.  This must be the exact filename string that was used
3336              to open the node; other strings, even  if  addressing  the  same
3337              file, are not accepted
3338
3339       top-node: string (optional)
3340              The  node name of the backing image within the image chain which
3341              contains the topmost data to be committed down.  If  not  speci‐
3342              fied, this is the active layer.  (since: 3.1)
3343
3344       top: string (optional)
3345              Same  as  top-node,  except that it is a file name rather than a
3346              node name.  This must be the exact filename string that was used
3347              to  open  the  node;  other strings, even if addressing the same
3348              file, are not accepted
3349
3350       backing-file: string (optional)
3351              The backing file string to  write  into  the  overlay  image  of
3352              'top'.   If 'top' does not have an overlay image, or if 'top' is
3353              in use by a writer, specifying a backing file string is  an  er‐
3354              ror.
3355
3356              This  filename  is  not validated.  If a pathname string is such
3357              that it cannot be resolved by QEMU, that means  that  subsequent
3358              QMP  or  HMP commands must use node-names for the image in ques‐
3359              tion, as filename lookup methods will fail.
3360
3361              If not specified, QEMU will automatically determine the  backing
3362              file  string to use, or error out if there is no obvious choice.
3363              Care should be taken when specifying the string,  to  specify  a
3364              valid filename or protocol.  (Since 2.1)
3365
3366       speed: int (optional)
3367              the maximum speed, in bytes per second
3368
3369       on-error: BlockdevOnError (optional)
3370              the action to take on an error.  'ignore' means that the request
3371              should be retried.  (default: report; Since: 5.0)
3372
3373       filter-node-name: string (optional)
3374              the node name that should be assigned to the filter driver  that
3375              the commit job inserts into the graph above top.  If this option
3376              is not given, a node name is autogenerated.  (Since: 2.9)
3377
3378       auto-finalize: boolean (optional)
3379              When false, this job will wait in a PENDING state after  it  has
3380              finished  its work, waiting for block-job-finalize before making
3381              any block graph changes.  When true, this job will automatically
3382              perform  its abort or commit actions.  Defaults to true.  (Since
3383              3.1)
3384
3385       auto-dismiss: boolean (optional)
3386              When false, this job will wait in a CONCLUDED state after it has
3387              completely  ceased all work, and awaits block-job-dismiss.  When
3388              true, this job will automatically disappear from the query  list
3389              without user intervention.  Defaults to true.  (Since 3.1)
3390
3391   Features
3392       deprecated
3393              Members base and top are deprecated.  Use base-node and top-node
3394              instead.
3395
3396   Returns
3397       • Nothing on success
3398
3399       • If device does not exist, DeviceNotFound
3400
3401       • Any other error returns a GenericError.
3402
3403   Since
3404       1.3
3405
3406   Example
3407          -> { "execute": "block-commit",
3408               "arguments": { "device": "virtio0",
3409                              "top": "/tmp/snap1.qcow2" } }
3410          <- { "return": {} }
3411
3412   drive-backup (Command)
3413       Start a point-in-time copy of a block device to a new destination.  The
3414       status   of   ongoing  drive-backup  operations  can  be  checked  with
3415       query-block-jobs  where  the  BlockJobInfo.type  field  has  the  value
3416       'backup'.  The  operation  can be stopped before it has completed using
3417       the block-job-cancel command.
3418
3419   Arguments
3420       The members of DriveBackup
3421
3422   Features
3423       deprecated
3424              This command is deprecated.  Use blockdev-backup instead.
3425
3426   Returns
3427       • nothing on success
3428
3429       • If device is not a valid block device, GenericError
3430
3431   Since
3432       1.6
3433
3434   Example
3435          -> { "execute": "drive-backup",
3436               "arguments": { "device": "drive0",
3437                              "sync": "full",
3438                              "target": "backup.img" } }
3439          <- { "return": {} }
3440
3441   blockdev-backup (Command)
3442       Start a point-in-time copy of a block device to a new destination.  The
3443       status  of  ongoing  blockdev-backup  operations  can  be  checked with
3444       query-block-jobs  where  the  BlockJobInfo.type  field  has  the  value
3445       'backup'.  The  operation  can be stopped before it has completed using
3446       the block-job-cancel command.
3447
3448   Arguments
3449       The members of BlockdevBackup
3450
3451   Returns
3452       • nothing on success
3453
3454       • If device is not a valid block device, DeviceNotFound
3455
3456   Since
3457       2.3
3458
3459   Example
3460          -> { "execute": "blockdev-backup",
3461               "arguments": { "device": "src-id",
3462                              "sync": "full",
3463                              "target": "tgt-id" } }
3464          <- { "return": {} }
3465
3466   query-named-block-nodes (Command)
3467       Get the named block driver list
3468
3469   Arguments
3470       flat: boolean (optional)
3471              Omit the nested data about backing image  ("backing-image"  key)
3472              if true.  Default is false (Since 5.0)
3473
3474   Returns
3475       the list of BlockDeviceInfo
3476
3477   Since
3478       2.0
3479
3480   Example
3481          -> { "execute": "query-named-block-nodes" }
3482          <- { "return": [ { "ro":false,
3483                             "drv":"qcow2",
3484                             "encrypted":false,
3485                             "file":"disks/test.qcow2",
3486                             "node-name": "my-node",
3487                             "backing_file_depth":1,
3488                             "detect_zeroes":"off",
3489                             "bps":1000000,
3490                             "bps_rd":0,
3491                             "bps_wr":0,
3492                             "iops":1000000,
3493                             "iops_rd":0,
3494                             "iops_wr":0,
3495                             "bps_max": 8000000,
3496                             "bps_rd_max": 0,
3497                             "bps_wr_max": 0,
3498                             "iops_max": 0,
3499                             "iops_rd_max": 0,
3500                             "iops_wr_max": 0,
3501                             "iops_size": 0,
3502                             "write_threshold": 0,
3503                             "image":{
3504                                "filename":"disks/test.qcow2",
3505                                "format":"qcow2",
3506                                "virtual-size":2048000,
3507                                "backing_file":"base.qcow2",
3508                                "full-backing-filename":"disks/base.qcow2",
3509                                "backing-filename-format":"qcow2",
3510                                "snapshots":[
3511                                   {
3512                                      "id": "1",
3513                                      "name": "snapshot1",
3514                                      "vm-state-size": 0,
3515                                      "date-sec": 10000200,
3516                                      "date-nsec": 12,
3517                                      "vm-clock-sec": 206,
3518                                      "vm-clock-nsec": 30
3519                                   }
3520                                ],
3521                                "backing-image":{
3522                                    "filename":"disks/base.qcow2",
3523                                    "format":"qcow2",
3524                                    "virtual-size":2048000
3525                                }
3526                             } } ] }
3527
3528   XDbgBlockGraphNodeType (Enum)
3529   Values
3530       block-backend
3531              corresponds to BlockBackend
3532
3533       block-job
3534              corresponds to BlockJob
3535
3536       block-driver
3537              corresponds to BlockDriverState
3538
3539   Since
3540       4.0
3541
3542   XDbgBlockGraphNode (Object)
3543   Members
3544       id: int
3545              Block  graph  node  identifier.   This  id is generated only for
3546              x-debug-query-block-graph and does not relate to any other iden‐
3547              tifiers in Qemu.
3548
3549       type: XDbgBlockGraphNodeType
3550              Type  of  graph node.  Can be one of block-backend, block-job or
3551              block-driver-state.
3552
3553       name: string
3554              Human readable name of the node.  Corresponds to  node-name  for
3555              block-driver-state  nodes; is not guaranteed to be unique in the
3556              whole graph (with block-jobs and block-backends).
3557
3558   Since
3559       4.0
3560
3561   BlockPermission (Enum)
3562       Enum of base block permissions.
3563
3564   Values
3565       consistent-read
3566              A user that has the "permission" of consistent reads is  guaran‐
3567              teed that their view of the contents of the block device is com‐
3568              plete and self-consistent, representing the contents of  a  disk
3569              at  a  specific  point.  For most block devices (including their
3570              backing files) this is true, but the property  cannot  be  main‐
3571              tained in a few situations like for intermediate nodes of a com‐
3572              mit block job.
3573
3574       write  This permission is required to change the visible disk contents.
3575
3576       write-unchanged
3577              This permission (which is weaker than  BLK_PERM_WRITE)  is  both
3578              enough and required for writes to the block node when the caller
3579              promises that the visible disk content doesn't change.   As  the
3580              BLK_PERM_WRITE permission is strictly stronger, either is suffi‐
3581              cient to perform an unchanging write.
3582
3583       resize This permission is required to change the size of a block node.
3584
3585   Since
3586       4.0
3587
3588   XDbgBlockGraphEdge (Object)
3589       Block Graph edge description for x-debug-query-block-graph.
3590
3591   Members
3592       parent: int
3593              parent id
3594
3595       child: int
3596              child id
3597
3598       name: string
3599              name of the relation (examples are 'file' and 'backing')
3600
3601       perm: array of BlockPermission
3602              granted permissions for the parent operating on the child
3603
3604       shared-perm: array of BlockPermission
3605              permissions that can still be granted  to  other  users  of  the
3606              child while it is still attached to this parent
3607
3608   Since
3609       4.0
3610
3611   XDbgBlockGraph (Object)
3612       Block Graph - list of nodes and list of edges.
3613
3614   Members
3615       nodes: array of XDbgBlockGraphNode
3616              Not documented
3617
3618       edges: array of XDbgBlockGraphEdge
3619              Not documented
3620
3621   Since
3622       4.0
3623
3624   x-debug-query-block-graph (Command)
3625       Get the block graph.
3626
3627   Features
3628       unstable
3629              This command is meant for debugging.
3630
3631   Since
3632       4.0
3633
3634   drive-mirror (Command)
3635       Start  mirroring  a block device's writes to a new destination.  target
3636       specifies the target of the new image.  If the file exists, or if it is
3637       a  device,  it  will  be used as the new destination for writes.  If it
3638       does not exist, a new file will be created.  format specifies the  for‐
3639       mat  of  the mirror image, default is to probe if mode='existing', else
3640       the format of the source.
3641
3642   Arguments
3643       The members of DriveMirror
3644
3645   Returns
3646       • nothing on success
3647
3648       • If device is not a valid block device, GenericError
3649
3650   Since
3651       1.3
3652
3653   Example
3654          -> { "execute": "drive-mirror",
3655               "arguments": { "device": "ide-hd0",
3656                              "target": "/some/place/my-image",
3657                              "sync": "full",
3658                              "format": "qcow2" } }
3659          <- { "return": {} }
3660
3661   DriveMirror (Object)
3662       A set of parameters describing drive mirror setup.
3663
3664   Members
3665       job-id: string (optional)
3666              identifier for the newly-created block job.  If omitted, the de‐
3667              vice name will be used.  (Since 2.7)
3668
3669       device: string
3670              the  device name or node-name of a root node whose writes should
3671              be mirrored.
3672
3673       target: string
3674              the target of the new image.  If the file exists, or if it is  a
3675              device,  the existing file/device will be used as the new desti‐
3676              nation.  If it does not exist, a new file will be created.
3677
3678       format: string (optional)
3679              the format of the new destination, default is to probe  if  mode
3680              is 'existing', else the format of the source
3681
3682       node-name: string (optional)
3683              the new block driver state node name in the graph (Since 2.1)
3684
3685       replaces: string (optional)
3686              with  sync=full  graph node name to be replaced by the new image
3687              when a whole image copy is done.  This can  be  used  to  repair
3688              broken  Quorum  files.  By default, device is replaced, although
3689              implicitly created filters on it are kept.  (Since 2.1)
3690
3691       mode: NewImageMode (optional)
3692              whether and how QEMU should create a new image, default is  'ab‐
3693              solute-paths'.
3694
3695       speed: int (optional)
3696              the maximum speed, in bytes per second
3697
3698       sync: MirrorSyncMode
3699              what parts of the disk image should be copied to the destination
3700              (all the disk, only the sectors allocated in the topmost  image,
3701              or only new I/O).
3702
3703       granularity: int (optional)
3704              granularity  of  the  dirty  bitmap, default is 64K if the image
3705              format doesn't have clusters, 4K if  the  clusters  are  smaller
3706              than  that, else the cluster size.  Must be a power of 2 between
3707              512 and 64M (since 1.4).
3708
3709       buf-size: int (optional)
3710              maximum amount of data in flight from source  to  target  (since
3711              1.4).
3712
3713       on-source-error: BlockdevOnError (optional)
3714              the  action to take on an error on the source, default 'report'.
3715              'stop' and 'enospc' can only be used if the  block  device  sup‐
3716              ports io-status (see BlockInfo).
3717
3718       on-target-error: BlockdevOnError (optional)
3719              the  action  to take on an error on the target, default 'report'
3720              (no limitations, since this applies to a different block  device
3721              than device).
3722
3723       unmap: boolean (optional)
3724              Whether  to  try  to  unmap target sectors where source has only
3725              zero.  If true, and target  unallocated  sectors  will  read  as
3726              zero,  target  image sectors will be unmapped; otherwise, zeroes
3727              will be written.  Both will result in identical  contents.   De‐
3728              fault is true.  (Since 2.4)
3729
3730       copy-mode: MirrorCopyMode (optional)
3731              when  to  copy data to the destination; defaults to 'background'
3732              (Since: 3.0)
3733
3734       auto-finalize: boolean (optional)
3735              When false, this job will wait in a PENDING state after  it  has
3736              finished  its work, waiting for block-job-finalize before making
3737              any block graph changes.  When true, this job will automatically
3738              perform  its abort or commit actions.  Defaults to true.  (Since
3739              3.1)
3740
3741       auto-dismiss: boolean (optional)
3742              When false, this job will wait in a CONCLUDED state after it has
3743              completely  ceased all work, and awaits block-job-dismiss.  When
3744              true, this job will automatically disappear from the query  list
3745              without user intervention.  Defaults to true.  (Since 3.1)
3746
3747   Since
3748       1.3
3749
3750   BlockDirtyBitmap (Object)
3751   Members
3752       node: string
3753              name of device/node which the bitmap is tracking
3754
3755       name: string
3756              name of the dirty bitmap
3757
3758   Since
3759       2.4
3760
3761   BlockDirtyBitmapAdd (Object)
3762   Members
3763       node: string
3764              name of device/node which the bitmap is tracking
3765
3766       name: string
3767              name of the dirty bitmap (must be less than 1024 bytes)
3768
3769       granularity: int (optional)
3770              the  bitmap  granularity,  default  is  64k for block-dirty-bit‐
3771              map-add
3772
3773       persistent: boolean (optional)
3774              the bitmap is persistent, i.e. it will be saved  to  the  corre‐
3775              sponding  block  device  image  file on its close.  For now only
3776              Qcow2 disks support persistent bitmaps.  Default  is  false  for
3777              block-dirty-bitmap-add.  (Since: 2.10)
3778
3779       disabled: boolean (optional)
3780              the bitmap is created in the disabled state, which means that it
3781              will not track drive changes.  The bitmap may  be  enabled  with
3782              block-dirty-bitmap-enable.  Default is false.  (Since: 4.0)
3783
3784   Since
3785       2.4
3786
3787   BlockDirtyBitmapOrStr (Alternate)
3788   Members
3789       local: string
3790              name of the bitmap, attached to the same node as target bitmap.
3791
3792       external: BlockDirtyBitmap
3793              bitmap with specified node
3794
3795   Since
3796       4.1
3797
3798   BlockDirtyBitmapMerge (Object)
3799   Members
3800       node: string
3801              name of device/node which the target bitmap is tracking
3802
3803       target: string
3804              name of the destination dirty bitmap
3805
3806       bitmaps: array of BlockDirtyBitmapOrStr
3807              name(s) of the source dirty bitmap(s) at node and/or fully spec‐
3808              ified BlockDirtyBitmap elements.  The latter are supported since
3809              4.1.
3810
3811   Since
3812       4.0
3813
3814   block-dirty-bitmap-add (Command)
3815       Create  a  dirty bitmap with a name on the node, and start tracking the
3816       writes.
3817
3818   Returns
3819       • nothing on success
3820
3821       • If node is not a valid block device or node, DeviceNotFound
3822
3823       • If name is already taken, GenericError with an explanation
3824
3825   Since
3826       2.4
3827
3828   Example
3829          -> { "execute": "block-dirty-bitmap-add",
3830               "arguments": { "node": "drive0", "name": "bitmap0" } }
3831          <- { "return": {} }
3832
3833   block-dirty-bitmap-remove (Command)
3834       Stop write tracking and remove the dirty bitmap that was  created  with
3835       block-dirty-bitmap-add.   If  the  bitmap is persistent, remove it from
3836       its storage too.
3837
3838   Returns
3839       • nothing on success
3840
3841       • If node is not a valid block device or node, DeviceNotFound
3842
3843       • If name is not found, GenericError with an explanation
3844
3845       • if name is frozen by an operation, GenericError
3846
3847   Since
3848       2.4
3849
3850   Example
3851          -> { "execute": "block-dirty-bitmap-remove",
3852               "arguments": { "node": "drive0", "name": "bitmap0" } }
3853          <- { "return": {} }
3854
3855   block-dirty-bitmap-clear (Command)
3856       Clear (reset) a dirty bitmap on the  device,  so  that  an  incremental
3857       backup  from this point in time forward will only backup clusters modi‐
3858       fied after this clear operation.
3859
3860   Returns
3861       • nothing on success
3862
3863       • If node is not a valid block device, DeviceNotFound
3864
3865       • If name is not found, GenericError with an explanation
3866
3867   Since
3868       2.4
3869
3870   Example
3871          -> { "execute": "block-dirty-bitmap-clear",
3872               "arguments": { "node": "drive0", "name": "bitmap0" } }
3873          <- { "return": {} }
3874
3875   block-dirty-bitmap-enable (Command)
3876       Enables a dirty bitmap so that it will begin tracking disk changes.
3877
3878   Returns
3879       • nothing on success
3880
3881       • If node is not a valid block device, DeviceNotFound
3882
3883       • If name is not found, GenericError with an explanation
3884
3885   Since
3886       4.0
3887
3888   Example
3889          -> { "execute": "block-dirty-bitmap-enable",
3890               "arguments": { "node": "drive0", "name": "bitmap0" } }
3891          <- { "return": {} }
3892
3893   block-dirty-bitmap-disable (Command)
3894       Disables a dirty bitmap so that it will stop tracking disk changes.
3895
3896   Returns
3897       • nothing on success
3898
3899       • If node is not a valid block device, DeviceNotFound
3900
3901       • If name is not found, GenericError with an explanation
3902
3903   Since
3904       4.0
3905
3906   Example
3907          -> { "execute": "block-dirty-bitmap-disable",
3908               "arguments": { "node": "drive0", "name": "bitmap0" } }
3909          <- { "return": {} }
3910
3911   block-dirty-bitmap-merge (Command)
3912       Merge dirty bitmaps listed in  bitmaps  to  the  target  dirty  bitmap.
3913       Dirty  bitmaps  in bitmaps will be unchanged, except if it also appears
3914       as the target bitmap.  Any bits already set in target will still be set
3915       after  the  merge,  i.e., this operation does not clear the target.  On
3916       error, target is unchanged.
3917
3918       The resulting bitmap will count as dirty any clusters that  were  dirty
3919       in  any  of  the  source  bitmaps.   This can be used to achieve backup
3920       checkpoints, or in simpler usages, to copy bitmaps.
3921
3922   Returns
3923       • nothing on success
3924
3925       • If node is not a valid block device, DeviceNotFound
3926
3927       • If any bitmap in bitmaps or target is not found, GenericError
3928
3929       • If any of the bitmaps have different sizes or  granularities,  Gener‐
3930         icError
3931
3932   Since
3933       4.0
3934
3935   Example
3936          -> { "execute": "block-dirty-bitmap-merge",
3937               "arguments": { "node": "drive0", "target": "bitmap0",
3938                              "bitmaps": ["bitmap1"] } }
3939          <- { "return": {} }
3940
3941   BlockDirtyBitmapSha256 (Object)
3942       SHA256 hash of dirty bitmap data
3943
3944   Members
3945       sha256: string
3946              ASCII representation of SHA256 bitmap hash
3947
3948   Since
3949       2.10
3950
3951   x-debug-block-dirty-bitmap-sha256 (Command)
3952       Get bitmap SHA256.
3953
3954   Features
3955       unstable
3956              This command is meant for debugging.
3957
3958   Returns
3959       • BlockDirtyBitmapSha256 on success
3960
3961       • If node is not a valid block device, DeviceNotFound
3962
3963       • If  name  is not found or if hashing has failed, GenericError with an
3964         explanation
3965
3966   Since
3967       2.10
3968
3969   blockdev-mirror (Command)
3970       Start mirroring a block device's writes to a new destination.
3971
3972   Arguments
3973       job-id: string (optional)
3974              identifier for the newly-created block job.  If omitted, the de‐
3975              vice name will be used.  (Since 2.7)
3976
3977       device: string
3978              The  device name or node-name of a root node whose writes should
3979              be mirrored.
3980
3981       target: string
3982              the id or node-name of the block  device  to  mirror  to.   This
3983              mustn't be attached to guest.
3984
3985       replaces: string (optional)
3986              with  sync=full  graph node name to be replaced by the new image
3987              when a whole image copy is done.  This can  be  used  to  repair
3988              broken  Quorum  files.  By default, device is replaced, although
3989              implicitly created filters on it are kept.
3990
3991       speed: int (optional)
3992              the maximum speed, in bytes per second
3993
3994       sync: MirrorSyncMode
3995              what parts of the disk image should be copied to the destination
3996              (all  the disk, only the sectors allocated in the topmost image,
3997              or only new I/O).
3998
3999       granularity: int (optional)
4000              granularity of the dirty bitmap, default is  64K  if  the  image
4001              format  doesn't  have  clusters,  4K if the clusters are smaller
4002              than that, else the cluster size.  Must be a power of 2  between
4003              512 and 64M
4004
4005       buf-size: int (optional)
4006              maximum amount of data in flight from source to target
4007
4008       on-source-error: BlockdevOnError (optional)
4009              the  action to take on an error on the source, default 'report'.
4010              'stop' and 'enospc' can only be used if the  block  device  sup‐
4011              ports io-status (see BlockInfo).
4012
4013       on-target-error: BlockdevOnError (optional)
4014              the  action  to take on an error on the target, default 'report'
4015              (no limitations, since this applies to a different block  device
4016              than device).
4017
4018       filter-node-name: string (optional)
4019              the  node name that should be assigned to the filter driver that
4020              the mirror job inserts into the graph above device.  If this op‐
4021              tion is not given, a node name is autogenerated.  (Since: 2.9)
4022
4023       copy-mode: MirrorCopyMode (optional)
4024              when  to  copy data to the destination; defaults to 'background'
4025              (Since: 3.0)
4026
4027       auto-finalize: boolean (optional)
4028              When false, this job will wait in a PENDING state after  it  has
4029              finished  its work, waiting for block-job-finalize before making
4030              any block graph changes.  When true, this job will automatically
4031              perform  its abort or commit actions.  Defaults to true.  (Since
4032              3.1)
4033
4034       auto-dismiss: boolean (optional)
4035              When false, this job will wait in a CONCLUDED state after it has
4036              completely  ceased all work, and awaits block-job-dismiss.  When
4037              true, this job will automatically disappear from the query  list
4038              without user intervention.  Defaults to true.  (Since 3.1)
4039
4040   Returns
4041       nothing on success.
4042
4043   Since
4044       2.6
4045
4046   Example
4047          -> { "execute": "blockdev-mirror",
4048               "arguments": { "device": "ide-hd0",
4049                              "target": "target0",
4050                              "sync": "full" } }
4051          <- { "return": {} }
4052
4053   BlockIOThrottle (Object)
4054       A set of parameters describing block throttling.
4055
4056   Members
4057       device: string (optional)
4058              Block device name
4059
4060       id: string (optional)
4061              The name or QOM path of the guest device (since: 2.8)
4062
4063       bps: int
4064              total throughput limit in bytes per second
4065
4066       bps_rd: int
4067              read throughput limit in bytes per second
4068
4069       bps_wr: int
4070              write throughput limit in bytes per second
4071
4072       iops: int
4073              total I/O operations per second
4074
4075       iops_rd: int
4076              read I/O operations per second
4077
4078       iops_wr: int
4079              write I/O operations per second
4080
4081       bps_max: int (optional)
4082              total throughput limit during bursts, in bytes (Since 1.7)
4083
4084       bps_rd_max: int (optional)
4085              read throughput limit during bursts, in bytes (Since 1.7)
4086
4087       bps_wr_max: int (optional)
4088              write throughput limit during bursts, in bytes (Since 1.7)
4089
4090       iops_max: int (optional)
4091              total  I/O  operations per second during bursts, in bytes (Since
4092              1.7)
4093
4094       iops_rd_max: int (optional)
4095              read I/O operations per second during bursts,  in  bytes  (Since
4096              1.7)
4097
4098       iops_wr_max: int (optional)
4099              write  I/O  operations per second during bursts, in bytes (Since
4100              1.7)
4101
4102       bps_max_length: int (optional)
4103              maximum length of the bps_max burst period, in seconds.  It must
4104              only  be  set  if bps_max is set as well.  Defaults to 1. (Since
4105              2.6)
4106
4107       bps_rd_max_length: int (optional)
4108              maximum length of the bps_rd_max burst period, in  seconds.   It
4109              must  only  be set if bps_rd_max is set as well.  Defaults to 1.
4110              (Since 2.6)
4111
4112       bps_wr_max_length: int (optional)
4113              maximum length of the bps_wr_max burst period, in  seconds.   It
4114              must  only  be set if bps_wr_max is set as well.  Defaults to 1.
4115              (Since 2.6)
4116
4117       iops_max_length: int (optional)
4118              maximum length of the iops burst period, in  seconds.   It  must
4119              only  be  set if iops_max is set as well.  Defaults to 1. (Since
4120              2.6)
4121
4122       iops_rd_max_length: int (optional)
4123              maximum length of the iops_rd_max burst period, in seconds.   It
4124              must  only be set if iops_rd_max is set as well.  Defaults to 1.
4125              (Since 2.6)
4126
4127       iops_wr_max_length: int (optional)
4128              maximum length of the iops_wr_max burst period, in seconds.   It
4129              must  only be set if iops_wr_max is set as well.  Defaults to 1.
4130              (Since 2.6)
4131
4132       iops_size: int (optional)
4133              an I/O size in bytes (Since 1.7)
4134
4135       group: string (optional)
4136              throttle group name (Since 2.4)
4137
4138   Features
4139       deprecated
4140              Member device is deprecated.  Use id instead.
4141
4142   Since
4143       1.1
4144
4145   ThrottleLimits (Object)
4146       Limit parameters for throttling.  Since some limit combinations are il‐
4147       legal,  limits should always be set in one transaction.  All fields are
4148       optional.  When setting limits, if a field is missing the current value
4149       is not changed.
4150
4151   Members
4152       iops-total: int (optional)
4153              limit total I/O operations per second
4154
4155       iops-total-max: int (optional)
4156              I/O operations burst
4157
4158       iops-total-max-length: int (optional)
4159              length  of  the  iops-total-max burst period, in seconds It must
4160              only be set if iops-total-max is set as well.
4161
4162       iops-read: int (optional)
4163              limit read operations per second
4164
4165       iops-read-max: int (optional)
4166              I/O operations read burst
4167
4168       iops-read-max-length: int (optional)
4169              length of the iops-read-max burst period,  in  seconds  It  must
4170              only be set if iops-read-max is set as well.
4171
4172       iops-write: int (optional)
4173              limit write operations per second
4174
4175       iops-write-max: int (optional)
4176              I/O operations write burst
4177
4178       iops-write-max-length: int (optional)
4179              length  of  the  iops-write-max burst period, in seconds It must
4180              only be set if iops-write-max is set as well.
4181
4182       bps-total: int (optional)
4183              limit total bytes per second
4184
4185       bps-total-max: int (optional)
4186              total bytes burst
4187
4188       bps-total-max-length: int (optional)
4189              length of the bps-total-max burst period, in seconds.   It  must
4190              only be set if bps-total-max is set as well.
4191
4192       bps-read: int (optional)
4193              limit read bytes per second
4194
4195       bps-read-max: int (optional)
4196              total bytes read burst
4197
4198       bps-read-max-length: int (optional)
4199              length of the bps-read-max burst period, in seconds It must only
4200              be set if bps-read-max is set as well.
4201
4202       bps-write: int (optional)
4203              limit write bytes per second
4204
4205       bps-write-max: int (optional)
4206              total bytes write burst
4207
4208       bps-write-max-length: int (optional)
4209              length of the bps-write-max burst period,  in  seconds  It  must
4210              only be set if bps-write-max is set as well.
4211
4212       iops-size: int (optional)
4213              when limiting by iops max size of an I/O in bytes
4214
4215   Since
4216       2.11
4217
4218   ThrottleGroupProperties (Object)
4219       Properties for throttle-group objects.
4220
4221   Members
4222       limits: ThrottleLimits (optional)
4223              limits to apply for this throttle group
4224
4225       x-iops-total: int (optional)
4226              Not documented
4227
4228       x-iops-total-max: int (optional)
4229              Not documented
4230
4231       x-iops-total-max-length: int (optional)
4232              Not documented
4233
4234       x-iops-read: int (optional)
4235              Not documented
4236
4237       x-iops-read-max: int (optional)
4238              Not documented
4239
4240       x-iops-read-max-length: int (optional)
4241              Not documented
4242
4243       x-iops-write: int (optional)
4244              Not documented
4245
4246       x-iops-write-max: int (optional)
4247              Not documented
4248
4249       x-iops-write-max-length: int (optional)
4250              Not documented
4251
4252       x-bps-total: int (optional)
4253              Not documented
4254
4255       x-bps-total-max: int (optional)
4256              Not documented
4257
4258       x-bps-total-max-length: int (optional)
4259              Not documented
4260
4261       x-bps-read: int (optional)
4262              Not documented
4263
4264       x-bps-read-max: int (optional)
4265              Not documented
4266
4267       x-bps-read-max-length: int (optional)
4268              Not documented
4269
4270       x-bps-write: int (optional)
4271              Not documented
4272
4273       x-bps-write-max: int (optional)
4274              Not documented
4275
4276       x-bps-write-max-length: int (optional)
4277              Not documented
4278
4279       x-iops-size: int (optional)
4280              Not documented
4281
4282   Features
4283       unstable
4284              All  members starting with x- are aliases for the same key with‐
4285              out x- in the limits object.  This is not a stable interface and
4286              may  be removed or changed incompatibly in the future.  Use lim‐
4287              its for a supported stable interface.
4288
4289   Since
4290       2.11
4291
4292   block-stream (Command)
4293       Copy data from a backing file into a block device.
4294
4295       The block streaming operation is performed in the background until  the
4296       entire  backing file has been copied.  This command returns immediately
4297       once streaming has started.  The status of ongoing block streaming  op‐
4298       erations  can  be  checked with query-block-jobs.  The operation can be
4299       stopped before it has completed using the block-job-cancel command.
4300
4301       The node that receives the data is called the top image, can be located
4302       in  any  part of the chain (but always above the base image; see below)
4303       and can be specified using its device or node name.  Earlier qemu  ver‐
4304       sions only allowed 'device' to name the top level node; presence of the
4305       'base-node' parameter during introspection can be used as a witness  of
4306       the enhanced semantics of 'device'.
4307
4308       If  a base file is specified then sectors are not copied from that base
4309       file and its backing chain.  This can be used to stream a subset of the
4310       backing  file  chain  instead  of  flattening  the  entire image.  When
4311       streaming completes the image file will have the base file as its back‐
4312       ing  file,  unless that node was changed while the job was running.  In
4313       that case, base's parent's  backing  (or  filtered,  whichever  exists)
4314       child  (i.e., base at the beginning of the job) will be the new backing
4315       file.
4316
4317       On successful completion the image file is updated to drop the  backing
4318       file and the BLOCK_JOB_COMPLETED event is emitted.
4319
4320       In  case  device  is  a  filter  node,  block-stream modifies the first
4321       non-filter overlay node below it to point to the new backing  node  in‐
4322       stead of modifying device itself.
4323
4324   Arguments
4325       job-id: string (optional)
4326              identifier for the newly-created block job.  If omitted, the de‐
4327              vice name will be used.  (Since 2.7)
4328
4329       device: string
4330              the device or node name of the top image
4331
4332       base: string (optional)
4333              the common backing file name.  It cannot be set if base-node  or
4334              bottom is also set.
4335
4336       base-node: string (optional)
4337              the  node name of the backing file.  It cannot be set if base or
4338              bottom is also set.  (Since 2.8)
4339
4340       bottom: string (optional)
4341              the last node in the chain that should be streamed into top.  It
4342              cannot  be  set  if base or base-node is also set.  It cannot be
4343              filter node.  (Since 6.0)
4344
4345       backing-file: string (optional)
4346              The backing file string to write into the top image.  This file‐
4347              name is not validated.
4348
4349              If a pathname string is such that it cannot be resolved by QEMU,
4350              that  means  that  subsequent  QMP  or  HMP  commands  must  use
4351              node-names for the image in question, as filename lookup methods
4352              will fail.
4353
4354              If not specified, QEMU will automatically determine the  backing
4355              file  string to use, or error out if there is no obvious choice.
4356              Care should be taken when specifying the string,  to  specify  a
4357              valid filename or protocol.  (Since 2.1)
4358
4359       speed: int (optional)
4360              the maximum speed, in bytes per second
4361
4362       on-error: BlockdevOnError (optional)
4363              the  action  to  take  on  an error (default report). 'stop' and
4364              'enospc' can only be used if the block device supports io-status
4365              (see BlockInfo).  (Since 1.3)
4366
4367       filter-node-name: string (optional)
4368              the  node name that should be assigned to the filter driver that
4369              the stream job inserts into the graph above device.  If this op‐
4370              tion is not given, a node name is autogenerated.  (Since: 6.0)
4371
4372       auto-finalize: boolean (optional)
4373              When  false,  this job will wait in a PENDING state after it has
4374              finished its work, waiting for block-job-finalize before  making
4375              any block graph changes.  When true, this job will automatically
4376              perform its abort or commit actions.  Defaults to true.   (Since
4377              3.1)
4378
4379       auto-dismiss: boolean (optional)
4380              When false, this job will wait in a CONCLUDED state after it has
4381              completely ceased all work, and awaits block-job-dismiss.   When
4382              true,  this job will automatically disappear from the query list
4383              without user intervention.  Defaults to true.  (Since 3.1)
4384
4385   Returns
4386       • Nothing on success.
4387
4388       • If device does not exist, DeviceNotFound.
4389
4390   Since
4391       1.1
4392
4393   Example
4394          -> { "execute": "block-stream",
4395               "arguments": { "device": "virtio0",
4396                              "base": "/tmp/master.qcow2" } }
4397          <- { "return": {} }
4398
4399   block-job-set-speed (Command)
4400       Set maximum speed for a background block operation.
4401
4402       This command can only be issued when there is an active block job.
4403
4404       Throttling can be disabled by setting the speed to 0.
4405
4406   Arguments
4407       device: string
4408              The job identifier.  This used to be a device  name  (hence  the
4409              name  of  the  parameter),  but since QEMU 2.7 it can have other
4410              values.
4411
4412       speed: int
4413              the maximum speed, in bytes per second, or 0 for unlimited.  De‐
4414              faults to 0.
4415
4416   Returns
4417       • Nothing on success
4418
4419       • If no background operation is active on this device, DeviceNotActive
4420
4421   Since
4422       1.1
4423
4424   block-job-cancel (Command)
4425       Stop an active background block operation.
4426
4427       This  command  returns  immediately after marking the active background
4428       block operation for cancellation.  It is an error to call this  command
4429       if no operation is in progress.
4430
4431       The  operation  will  cancel  as  soon  as  possible  and then emit the
4432       BLOCK_JOB_CANCELLED event.  Before that happens the job is still  visi‐
4433       ble when enumerated using query-block-jobs.
4434
4435       Note  that if you issue 'block-job-cancel' after 'drive-mirror' has in‐
4436       dicated (via the event BLOCK_JOB_READY) that the source and destination
4437       are  synchronized,  then the event triggered by this command changes to
4438       BLOCK_JOB_COMPLETED, to indicate that the mirroring has ended  and  the
4439       destination  now  has a point-in-time copy tied to the time of the can‐
4440       cellation.
4441
4442       For streaming, the image file  retains  its  backing  file  unless  the
4443       streaming  operation happens to complete just as it is being cancelled.
4444       A new streaming operation can be started at  a  later  time  to  finish
4445       copying all data from the backing file.
4446
4447   Arguments
4448       device: string
4449              The  job  identifier.   This used to be a device name (hence the
4450              name of the parameter), but since QEMU 2.7  it  can  have  other
4451              values.
4452
4453       force: boolean (optional)
4454              If   true,   and   the   job   has  already  emitted  the  event
4455              BLOCK_JOB_READY, abandon the job  immediately  (even  if  it  is
4456              paused)  instead  of waiting for the destination to complete its
4457              final synchronization (since 1.3)
4458
4459   Returns
4460       • Nothing on success
4461
4462       • If no background operation is active on this device, DeviceNotActive
4463
4464   Since
4465       1.1
4466
4467   block-job-pause (Command)
4468       Pause an active background block operation.
4469
4470       This command returns immediately after marking  the  active  background
4471       block operation for pausing.  It is an error to call this command if no
4472       operation is in progress or if the job is already paused.
4473
4474       The operation will pause as soon as possible.  No event is emitted when
4475       the  operation  is  actually paused.  Cancelling a paused job automati‐
4476       cally resumes it.
4477
4478   Arguments
4479       device: string
4480              The job identifier.  This used to be a device  name  (hence  the
4481              name  of  the  parameter),  but since QEMU 2.7 it can have other
4482              values.
4483
4484   Returns
4485       • Nothing on success
4486
4487       • If no background operation is active on this device, DeviceNotActive
4488
4489   Since
4490       1.3
4491
4492   block-job-resume (Command)
4493       Resume an active background block operation.
4494
4495       This command returns immediately after  resuming  a  paused  background
4496       block  operation.   It is an error to call this command if no operation
4497       is in progress or if the job is not paused.
4498
4499       This command also clears the error status of the job.
4500
4501   Arguments
4502       device: string
4503              The job identifier.  This used to be a device  name  (hence  the
4504              name  of  the  parameter),  but since QEMU 2.7 it can have other
4505              values.
4506
4507   Returns
4508       • Nothing on success
4509
4510       • If no background operation is active on this device, DeviceNotActive
4511
4512   Since
4513       1.3
4514
4515   block-job-complete (Command)
4516       Manually trigger completion of an active  background  block  operation.
4517       This  is  supported for drive mirroring, where it also switches the de‐
4518       vice to write to the target path only.  The ability to complete is sig‐
4519       naled with a BLOCK_JOB_READY event.
4520
4521       This  command  completes  an  active  background  block  operation syn‐
4522       chronously.   The  ordering  of  this   command's   return   with   the
4523       BLOCK_JOB_COMPLETED  event  is  not defined.  Note that if an I/O error
4524       occurs during the processing of this command:  1)  the  command  itself
4525       will  fail; 2) the error will be processed according to the rerror/wer‐
4526       ror arguments that were specified when starting the operation.
4527
4528       A cancelled or paused job cannot be completed.
4529
4530   Arguments
4531       device: string
4532              The job identifier.  This used to be a device  name  (hence  the
4533              name  of  the  parameter),  but since QEMU 2.7 it can have other
4534              values.
4535
4536   Returns
4537       • Nothing on success
4538
4539       • If no background operation is active on this device, DeviceNotActive
4540
4541   Since
4542       1.3
4543
4544   block-job-dismiss (Command)
4545       For  jobs  that  have  already  concluded,   remove   them   from   the
4546       block-job-query list.  This command only needs to be run for jobs which
4547       were started with QEMU 2.12+ job lifetime management semantics.
4548
4549       This command will refuse to operate on any job that has not yet reached
4550       its terminal state, JOB_STATUS_CONCLUDED. For jobs that make use of the
4551       BLOCK_JOB_READY  event,  block-job-cancel  or  block-job-complete  will
4552       still need to be used as appropriate.
4553
4554   Arguments
4555       id: string
4556              The job identifier.
4557
4558   Returns
4559       Nothing on success
4560
4561   Since
4562       2.12
4563
4564   block-job-finalize (Command)
4565       Once  a  job  that has manual=true reaches the pending state, it can be
4566       instructed to finalize any graph changes and do any  necessary  cleanup
4567       via  this  command.   For jobs in a transaction, instructing one job to
4568       finalize will force ALL jobs in the transaction to finalize, so  it  is
4569       only necessary to instruct a single member job to finalize.
4570
4571   Arguments
4572       id: string
4573              The job identifier.
4574
4575   Returns
4576       Nothing on success
4577
4578   Since
4579       2.12
4580
4581   BlockdevDiscardOptions (Enum)
4582       Determines how to handle discard requests.
4583
4584   Values
4585       ignore Ignore the request
4586
4587       unmap  Forward as an unmap request
4588
4589   Since
4590       2.9
4591
4592   BlockdevDetectZeroesOptions (Enum)
4593       Describes the operation mode for the automatic conversion of plain zero
4594       writes by the OS to driver specific optimized zero write commands.
4595
4596   Values
4597       off    Disabled (default)
4598
4599       on     Enabled
4600
4601       unmap  Enabled and even try to unmap blocks if possible.  This requires
4602              also  that  BlockdevDiscardOptions  is set to unmap for this de‐
4603              vice.
4604
4605   Since
4606       2.1
4607
4608   BlockdevAioOptions (Enum)
4609       Selects the AIO backend to handle I/O requests
4610
4611   Values
4612       threads
4613              Use qemu's thread pool
4614
4615       native Use native AIO backend (only Linux and Windows)
4616
4617       io_uring (If: CONFIG_LINUX_IO_URING)
4618              Use linux io_uring (since 5.0)
4619
4620   Since
4621       2.9
4622
4623   BlockdevCacheOptions (Object)
4624       Includes cache-related options for block devices
4625
4626   Members
4627       direct: boolean (optional)
4628              enables use of O_DIRECT (bypass the host  page  cache;  default:
4629              false)
4630
4631       no-flush: boolean (optional)
4632              ignore any flush requests for the device (default: false)
4633
4634   Since
4635       2.9
4636
4637   BlockdevDriver (Enum)
4638       Drivers that are supported in block device operations.
4639
4640   Values
4641       throttle
4642              Since 2.11
4643
4644       nvme   Since 2.12
4645
4646       copy-on-read
4647              Since 3.0
4648
4649       blklogwrites
4650              Since 3.0
4651
4652       blkreplay
4653              Since 4.2
4654
4655       compress
4656              Since 5.0
4657
4658       copy-before-write
4659              Since 6.2
4660
4661       snapshot-access
4662              Since 7.0
4663
4664       blkdebug
4665              Not documented
4666
4667       blkverify
4668              Not documented
4669
4670       bochs  Not documented
4671
4672       cloop  Not documented
4673
4674       dmg    Not documented
4675
4676       file   Not documented
4677
4678       ftp    Not documented
4679
4680       ftps   Not documented
4681
4682       gluster
4683              Not documented
4684
4685       host_cdrom (If: HAVE_HOST_BLOCK_DEVICE)
4686              Not documented
4687
4688       host_device (If: HAVE_HOST_BLOCK_DEVICE)
4689              Not documented
4690
4691       http   Not documented
4692
4693       https  Not documented
4694
4695       io_uring (If: CONFIG_BLKIO)
4696              Not documented
4697
4698       iscsi  Not documented
4699
4700       luks   Not documented
4701
4702       nbd    Not documented
4703
4704       nfs    Not documented
4705
4706       null-aio
4707              Not documented
4708
4709       null-co
4710              Not documented
4711
4712       nvme-io_uring (If: CONFIG_BLKIO)
4713              Not documented
4714
4715       parallels
4716              Not documented
4717
4718       preallocate
4719              Not documented
4720
4721       qcow   Not documented
4722
4723       qcow2  Not documented
4724
4725       qed    Not documented
4726
4727       quorum Not documented
4728
4729       raw    Not documented
4730
4731       rbd    Not documented
4732
4733       replication (If: CONFIG_REPLICATION)
4734              Not documented
4735
4736       ssh    Not documented
4737
4738       vdi    Not documented
4739
4740       vhdx   Not documented
4741
4742       virtio-blk-vfio-pci (If: CONFIG_BLKIO)
4743              Not documented
4744
4745       virtio-blk-vhost-user (If: CONFIG_BLKIO)
4746              Not documented
4747
4748       virtio-blk-vhost-vdpa (If: CONFIG_BLKIO)
4749              Not documented
4750
4751       vmdk   Not documented
4752
4753       vpc    Not documented
4754
4755       vvfat  Not documented
4756
4757   Since
4758       2.9
4759
4760   BlockdevOptionsFile (Object)
4761       Driver specific block device options for the file backend.
4762
4763   Members
4764       filename: string
4765              path to the image file
4766
4767       pr-manager: string (optional)
4768              the  id  for the object that will handle persistent reservations
4769              for this device (default: none, forward the commands via  SG_IO;
4770              since 2.11)
4771
4772       aio: BlockdevAioOptions (optional)
4773              AIO backend (default: threads) (since: 2.8)
4774
4775       aio-max-batch: int (optional)
4776              maximum  number of requests to batch together into a single sub‐
4777              mission in the AIO backend.  The smallest value between this and
4778              the  aio-max-batch  value  of  the IOThread object is chosen.  0
4779              means that the AIO backend will handle it  automatically.   (de‐
4780              fault: 0, since 6.2)
4781
4782       locking: OnOffAuto (optional)
4783              whether  to  enable file locking.  If set to 'auto', only enable
4784              when Open File Descriptor (OFD) locking API  is  available  (de‐
4785              fault: auto, since 2.10)
4786
4787       drop-cache: boolean (optional) (If: CONFIG_LINUX)
4788              invalidate  page  cache  during  live  migration.  This prevents
4789              stale data on the migration destination  with  cache.direct=off.
4790              Currently  only  supported on Linux hosts.  (default: on, since:
4791              4.0)
4792
4793       x-check-cache-dropped: boolean (optional)
4794              whether to check that page cache was dropped on live  migration.
4795              May  cause  noticeable delays if the image file is large, do not
4796              use in production.  (default: off) (since: 3.0)
4797
4798   Features
4799       dynamic-auto-read-only
4800              If present, enabled auto-read-only means that  the  driver  will
4801              open  the image read-only at first, dynamically reopen the image
4802              file read-write when the first writer is attached  to  the  node
4803              and reopen read-only when the last writer is detached.  This al‐
4804              lows giving QEMU write permissions only on demand when an opera‐
4805              tion actually needs write access.
4806
4807       unstable
4808              Member x-check-cache-dropped is meant for debugging.
4809
4810   Since
4811       2.9
4812
4813   BlockdevOptionsNull (Object)
4814       Driver specific block device options for the null backend.
4815
4816   Members
4817       size: int (optional)
4818              size of the device in bytes.
4819
4820       latency-ns: int (optional)
4821              emulated  latency  (in nanoseconds) in processing requests.  De‐
4822              fault to zero which completes requests immediately.  (Since 2.4)
4823
4824       read-zeroes: boolean (optional)
4825              if true, reads from the device produce  zeroes;  if  false,  the
4826              buffer is left unchanged.  (default: false; since: 4.1)
4827
4828   Since
4829       2.9
4830
4831   BlockdevOptionsNVMe (Object)
4832       Driver specific block device options for the NVMe backend.
4833
4834   Members
4835       device: string
4836              PCI controller address of the NVMe device in format hhhh:bb:ss.f
4837              (host:bus:slot.function)
4838
4839       namespace: int
4840              namespace number of the device, starting from 1.
4841       Note that the PCI device must have been unbound from  any  host  kernel
4842       driver before instructing QEMU to add the blockdev.
4843
4844   Since
4845       2.12
4846
4847   BlockdevOptionsVVFAT (Object)
4848       Driver specific block device options for the vvfat protocol.
4849
4850   Members
4851       dir: string
4852              directory to be exported as FAT image
4853
4854       fat-type: int (optional)
4855              FAT type: 12, 16 or 32
4856
4857       floppy: boolean (optional)
4858              whether to export a floppy image (true) or partitioned hard disk
4859              (false; default)
4860
4861       label: string (optional)
4862              set the volume label, limited to 11 bytes.  FAT16 and FAT32 tra‐
4863              ditionally  have  some restrictions on labels, which are ignored
4864              by most operating systems.  Defaults to  "QEMU  VVFAT".   (since
4865              2.4)
4866
4867       rw: boolean (optional)
4868              whether to allow write operations (default: false)
4869
4870   Since
4871       2.9
4872
4873   BlockdevOptionsGenericFormat (Object)
4874       Driver  specific block device options for image format that have no op‐
4875       tion besides their data source.
4876
4877   Members
4878       file: BlockdevRef
4879              reference to or definition of the data source block device
4880
4881   Since
4882       2.9
4883
4884   BlockdevOptionsLUKS (Object)
4885       Driver specific block device options for LUKS.
4886
4887   Members
4888       key-secret: string (optional)
4889              the ID of a QCryptoSecret object providing  the  decryption  key
4890              (since  2.6).  Mandatory except when doing a metadata-only probe
4891              of the image.
4892
4893       The members of BlockdevOptionsGenericFormat
4894
4895   Since
4896       2.9
4897
4898   BlockdevOptionsGenericCOWFormat (Object)
4899       Driver specific block device options for image format that have no  op‐
4900       tion besides their data source and an optional backing file.
4901
4902   Members
4903       backing: BlockdevRefOrNull (optional)
4904              reference  to  or  definition  of the backing file block device,
4905              null disables the backing file entirely.  Defaults to the  back‐
4906              ing file stored the image file.
4907
4908       The members of BlockdevOptionsGenericFormat
4909
4910   Since
4911       2.9
4912
4913   Qcow2OverlapCheckMode (Enum)
4914       General overlap check modes.
4915
4916   Values
4917       none   Do not perform any checks
4918
4919       constant
4920              Perform only checks which can be done in constant time and with‐
4921              out reading anything from disk
4922
4923       cached Perform only checks which can be done without  reading  anything
4924              from disk
4925
4926       all    Perform all available overlap checks
4927
4928   Since
4929       2.9
4930
4931   Qcow2OverlapCheckFlags (Object)
4932       Structure  of  flags  for  each metadata structure.  Setting a field to
4933       'true' makes qemu guard that structure against unintended  overwriting.
4934       The default value is chosen according to the template given.
4935
4936   Members
4937       template: Qcow2OverlapCheckMode (optional)
4938              Specifies  a template mode which can be adjusted using the other
4939              flags, defaults to 'cached'
4940
4941       bitmap-directory: boolean (optional)
4942              since 3.0
4943
4944       main-header: boolean (optional)
4945              Not documented
4946
4947       active-l1: boolean (optional)
4948              Not documented
4949
4950       active-l2: boolean (optional)
4951              Not documented
4952
4953       refcount-table: boolean (optional)
4954              Not documented
4955
4956       refcount-block: boolean (optional)
4957              Not documented
4958
4959       snapshot-table: boolean (optional)
4960              Not documented
4961
4962       inactive-l1: boolean (optional)
4963              Not documented
4964
4965       inactive-l2: boolean (optional)
4966              Not documented
4967
4968   Since
4969       2.9
4970
4971   Qcow2OverlapChecks (Alternate)
4972       Specifies which metadata structures should  be  guarded  against  unin‐
4973       tended overwriting.
4974
4975   Members
4976       flags: Qcow2OverlapCheckFlags
4977              set  of flags for separate specification of each metadata struc‐
4978              ture type
4979
4980       mode: Qcow2OverlapCheckMode
4981              named mode which chooses a specific set of flags
4982
4983   Since
4984       2.9
4985
4986   BlockdevQcowEncryptionFormat (Enum)
4987   Values
4988       aes    AES-CBC with plain64 initialization vectors
4989
4990   Since
4991       2.10
4992
4993   BlockdevQcowEncryption (Object)
4994   Members
4995       format: BlockdevQcowEncryptionFormat
4996              Not documented
4997
4998       The members of QCryptoBlockOptionsQCow when format is "aes"
4999
5000   Since
5001       2.10
5002
5003   BlockdevOptionsQcow (Object)
5004       Driver specific block device options for qcow.
5005
5006   Members
5007       encrypt: BlockdevQcowEncryption (optional)
5008              Image decryption options.  Mandatory for encrypted  images,  ex‐
5009              cept when doing a metadata-only probe of the image.
5010
5011       The members of BlockdevOptionsGenericCOWFormat
5012
5013   Since
5014       2.10
5015
5016   BlockdevQcow2EncryptionFormat (Enum)
5017   Values
5018       aes    AES-CBC with plain64 initialization vectors
5019
5020       luks   Not documented
5021
5022   Since
5023       2.10
5024
5025   BlockdevQcow2Encryption (Object)
5026   Members
5027       format: BlockdevQcow2EncryptionFormat
5028              Not documented
5029
5030       The members of QCryptoBlockOptionsQCow when format is "aes"
5031
5032       The members of QCryptoBlockOptionsLUKS when format is "luks"
5033
5034   Since
5035       2.10
5036
5037   BlockdevOptionsPreallocate (Object)
5038       Filter  driver intended to be inserted between format and protocol node
5039       and do preallocation in protocol node on write.
5040
5041   Members
5042       prealloc-align: int (optional)
5043              on preallocation, align file  length  to  this  number,  default
5044              1048576 (1M)
5045
5046       prealloc-size: int (optional)
5047              how much to preallocate, default 134217728 (128M)
5048
5049       The members of BlockdevOptionsGenericFormat
5050
5051   Since
5052       6.0
5053
5054   BlockdevOptionsQcow2 (Object)
5055       Driver specific block device options for qcow2.
5056
5057   Members
5058       lazy-refcounts: boolean (optional)
5059              whether  to  enable the lazy refcounts feature (default is taken
5060              from the image file)
5061
5062       pass-discard-request: boolean (optional)
5063              whether discard requests to the qcow2 device should be forwarded
5064              to the data source
5065
5066       pass-discard-snapshot: boolean (optional)
5067              whether  discard  requests  for the data source should be issued
5068              when a snapshot operation (e.g. deleting a snapshot) frees clus‐
5069              ters in the qcow2 file
5070
5071       pass-discard-other: boolean (optional)
5072              whether discard requests for the data source should be issued on
5073              other occasions where a cluster gets freed
5074
5075       discard-no-unref: boolean (optional)
5076              when enabled, data clusters will remain preallocated  when  they
5077              are no longer used, e.g. because they are discarded or converted
5078              to zero clusters.  As usual, whether the old data  is  discarded
5079              or  kept  on the protocol level (i.e. in the image file) depends
5080              on the setting of the pass-discard-request option.  Keeping  the
5081              clusters  preallocated  prevents  qcow2 fragmentation that would
5082              otherwise be caused by freeing  and  re-allocating  them  later.
5083              Besides  potential  performance  degradation, such fragmentation
5084              can lead to increased allocation of clusters past the end of the
5085              image  file, resulting in image files whose file length can grow
5086              much larger than their guest disk size would suggest.  If  image
5087              file  length  is  of concern (e.g. when storing qcow2 images di‐
5088              rectly on block devices), you should consider enabling this  op‐
5089              tion.  (since 8.1)
5090
5091       overlap-check: Qcow2OverlapChecks (optional)
5092              which  overlap  checks  to  perform for writes to the image, de‐
5093              faults to 'cached' (since 2.2)
5094
5095       cache-size: int (optional)
5096              the maximum total size of the L2 table and refcount block caches
5097              in bytes (since 2.2)
5098
5099       l2-cache-size: int (optional)
5100              the maximum size of the L2 table cache in bytes (since 2.2)
5101
5102       l2-cache-entry-size: int (optional)
5103              the  size  of each entry in the L2 cache in bytes.  It must be a
5104              power of two between 512 and  the  cluster  size.   The  default
5105              value is the cluster size (since 2.12)
5106
5107       refcount-cache-size: int (optional)
5108              the  maximum  size  of  the refcount block cache in bytes (since
5109              2.2)
5110
5111       cache-clean-interval: int (optional)
5112              clean unused entries in the L2 and refcount caches.  The  inter‐
5113              val is in seconds.  The default value is 600 on supporting plat‐
5114              forms, and 0 on  other  platforms.   0  disables  this  feature.
5115              (since 2.5)
5116
5117       encrypt: BlockdevQcow2Encryption (optional)
5118              Image  decryption  options.  Mandatory for encrypted images, ex‐
5119              cept when doing a metadata-only  probe  of  the  image.   (since
5120              2.10)
5121
5122       data-file: BlockdevRef (optional)
5123              reference  to or definition of the external data file.  This may
5124              only be specified for images that require an external data file.
5125              If  it is not specified for such an image, the data file name is
5126              loaded from the image file.  (since 4.0)
5127
5128       The members of BlockdevOptionsGenericCOWFormat
5129
5130   Since
5131       2.9
5132
5133   SshHostKeyCheckMode (Enum)
5134   Values
5135       none   Don't check the host key at all
5136
5137       hash   Compare the host key with a given hash
5138
5139       known_hosts
5140              Check the host key against the known_hosts file
5141
5142   Since
5143       2.12
5144
5145   SshHostKeyCheckHashType (Enum)
5146   Values
5147       md5    The given hash is an md5 hash
5148
5149       sha1   The given hash is an sha1 hash
5150
5151       sha256 The given hash is an sha256 hash
5152
5153   Since
5154       2.12
5155
5156   SshHostKeyHash (Object)
5157   Members
5158       type: SshHostKeyCheckHashType
5159              The hash algorithm used for the hash
5160
5161       hash: string
5162              The expected hash value
5163
5164   Since
5165       2.12
5166
5167   SshHostKeyCheck (Object)
5168   Members
5169       mode: SshHostKeyCheckMode
5170              Not documented
5171
5172       The members of SshHostKeyHash when mode is "hash"
5173
5174   Since
5175       2.12
5176
5177   BlockdevOptionsSsh (Object)
5178   Members
5179       server: InetSocketAddress
5180              host address
5181
5182       path: string
5183              path to the image on the host
5184
5185       user: string (optional)
5186              user as which to connect, defaults to current local user name
5187
5188       host-key-check: SshHostKeyCheck (optional)
5189              Defines how and what to check the  host  key  against  (default:
5190              known_hosts)
5191
5192   Since
5193       2.9
5194
5195   BlkdebugEvent (Enum)
5196       Trigger events supported by blkdebug.
5197
5198   Values
5199       l1_shrink_write_table
5200              write zeros to the l1 table to shrink image.  (since 2.11)
5201
5202       l1_shrink_free_l2_clusters
5203              discard the l2 tables.  (since 2.11)
5204
5205       cor_write
5206              a write due to copy-on-read (since 2.11)
5207
5208       cluster_alloc_space
5209              an allocation of file space for a cluster (since 4.1)
5210
5211       none   triggers once at creation of the blkdebug node (since 4.1)
5212
5213       l1_update
5214              Not documented
5215
5216       l1_grow_alloc_table
5217              Not documented
5218
5219       l1_grow_write_table
5220              Not documented
5221
5222       l1_grow_activate_table
5223              Not documented
5224
5225       l2_load
5226              Not documented
5227
5228       l2_update
5229              Not documented
5230
5231       l2_update_compressed
5232              Not documented
5233
5234       l2_alloc_cow_read
5235              Not documented
5236
5237       l2_alloc_write
5238              Not documented
5239
5240       read_aio
5241              Not documented
5242
5243       read_backing_aio
5244              Not documented
5245
5246       read_compressed
5247              Not documented
5248
5249       write_aio
5250              Not documented
5251
5252       write_compressed
5253              Not documented
5254
5255       vmstate_load
5256              Not documented
5257
5258       vmstate_save
5259              Not documented
5260
5261       cow_read
5262              Not documented
5263
5264       cow_write
5265              Not documented
5266
5267       reftable_load
5268              Not documented
5269
5270       reftable_grow
5271              Not documented
5272
5273       reftable_update
5274              Not documented
5275
5276       refblock_load
5277              Not documented
5278
5279       refblock_update
5280              Not documented
5281
5282       refblock_update_part
5283              Not documented
5284
5285       refblock_alloc
5286              Not documented
5287
5288       refblock_alloc_hookup
5289              Not documented
5290
5291       refblock_alloc_write
5292              Not documented
5293
5294       refblock_alloc_write_blocks
5295              Not documented
5296
5297       refblock_alloc_write_table
5298              Not documented
5299
5300       refblock_alloc_switch_table
5301              Not documented
5302
5303       cluster_alloc
5304              Not documented
5305
5306       cluster_alloc_bytes
5307              Not documented
5308
5309       cluster_free
5310              Not documented
5311
5312       flush_to_os
5313              Not documented
5314
5315       flush_to_disk
5316              Not documented
5317
5318       pwritev_rmw_head
5319              Not documented
5320
5321       pwritev_rmw_after_head
5322              Not documented
5323
5324       pwritev_rmw_tail
5325              Not documented
5326
5327       pwritev_rmw_after_tail
5328              Not documented
5329
5330       pwritev
5331              Not documented
5332
5333       pwritev_zero
5334              Not documented
5335
5336       pwritev_done
5337              Not documented
5338
5339       empty_image_prepare
5340              Not documented
5341
5342   Since
5343       2.9
5344
5345   BlkdebugIOType (Enum)
5346       Kinds of I/O that blkdebug can inject errors in.
5347
5348   Values
5349       read   .bdrv_co_preadv()
5350
5351       write  .bdrv_co_pwritev()
5352
5353       write-zeroes
5354              .bdrv_co_pwrite_zeroes()
5355
5356       discard
5357              .bdrv_co_pdiscard()
5358
5359       flush  .bdrv_co_flush_to_disk()
5360
5361       block-status
5362              .bdrv_co_block_status()
5363
5364   Since
5365       4.1
5366
5367   BlkdebugInjectErrorOptions (Object)
5368       Describes a single error injection for blkdebug.
5369
5370   Members
5371       event: BlkdebugEvent
5372              trigger event
5373
5374       state: int (optional)
5375              the state identifier blkdebug needs to be in to actually trigger
5376              the event; defaults to "any"
5377
5378       iotype: BlkdebugIOType (optional)
5379              the type of I/O operations on which this  error  should  be  in‐
5380              jected; defaults to "all read, write, write-zeroes, discard, and
5381              flush operations" (since: 4.1)
5382
5383       errno: int (optional)
5384              error identifier (errno) to be returned; defaults to EIO
5385
5386       sector: int (optional)
5387              specifies the sector index which has to be affected in order  to
5388              actually trigger the event; defaults to "any sector"
5389
5390       once: boolean (optional)
5391              disables  further  events after this one has been triggered; de‐
5392              faults to false
5393
5394       immediately: boolean (optional)
5395              fail immediately; defaults to false
5396
5397   Since
5398       2.9
5399
5400   BlkdebugSetStateOptions (Object)
5401       Describes a single state-change event for blkdebug.
5402
5403   Members
5404       event: BlkdebugEvent
5405              trigger event
5406
5407       state: int (optional)
5408              the current state identifier blkdebug needs to be  in;  defaults
5409              to "any"
5410
5411       new_state: int
5412              the  state  identifier  blkdebug  is  supposed to assume if this
5413              event is triggered
5414
5415   Since
5416       2.9
5417
5418   BlockdevOptionsBlkdebug (Object)
5419       Driver specific block device options for blkdebug.
5420
5421   Members
5422       image: BlockdevRef
5423              underlying raw block device (or image file)
5424
5425       config: string (optional)
5426              filename of the configuration file
5427
5428       align: int (optional)
5429              required alignment for requests in bytes, must be positive power
5430              of 2, or 0 for default
5431
5432       max-transfer: int (optional)
5433              maximum size for I/O transfers in bytes, must be positive multi‐
5434              ple of align and of the underlying file's request alignment (but
5435              need not be a power of 2), or 0 for default (since 2.10)
5436
5437       opt-write-zero: int (optional)
5438              preferred  alignment  for  write zero requests in bytes, must be
5439              positive multiple of align and of the underlying file's  request
5440              alignment  (but  need  not  be  a  power of 2), or 0 for default
5441              (since 2.10)
5442
5443       max-write-zero: int (optional)
5444              maximum size for write zero requests in bytes, must be  positive
5445              multiple  of  align,  of  opt-write-zero,  and of the underlying
5446              file's request alignment (but need not be a power of  2),  or  0
5447              for default (since 2.10)
5448
5449       opt-discard: int (optional)
5450              preferred alignment for discard requests in bytes, must be posi‐
5451              tive multiple of align and  of  the  underlying  file's  request
5452              alignment  (but  need  not  be  a  power of 2), or 0 for default
5453              (since 2.10)
5454
5455       max-discard: int (optional)
5456              maximum size for discard requests in  bytes,  must  be  positive
5457              multiple  of align, of opt-discard, and of the underlying file's
5458              request alignment (but need not be a power of 2), or 0  for  de‐
5459              fault (since 2.10)
5460
5461       inject-error: array of BlkdebugInjectErrorOptions (optional)
5462              array of error injection descriptions
5463
5464       set-state: array of BlkdebugSetStateOptions (optional)
5465              array of state-change descriptions
5466
5467       take-child-perms: array of BlockPermission (optional)
5468              Permissions  to  take  on image in addition to what is necessary
5469              anyway (which depends on how the blkdebug node  is  used).   De‐
5470              faults to none.  (since 5.0)
5471
5472       unshare-child-perms: array of BlockPermission (optional)
5473              Permissions  not to share on image in addition to what cannot be
5474              shared anyway (which depends on how the blkdebug node is  used).
5475              Defaults to none.  (since 5.0)
5476
5477   Since
5478       2.9
5479
5480   BlockdevOptionsBlklogwrites (Object)
5481       Driver specific block device options for blklogwrites.
5482
5483   Members
5484       file: BlockdevRef
5485              block device
5486
5487       log: BlockdevRef
5488              block device used to log writes to file
5489
5490       log-sector-size: int (optional)
5491              sector size used in logging writes to file, determines granular‐
5492              ity of offsets and sizes of writes (default: 512)
5493
5494       log-append: boolean (optional)
5495              append to an existing log (default: false)
5496
5497       log-super-update-interval: int (optional)
5498              interval of write requests after which the log  super  block  is
5499              updated to disk (default: 4096)
5500
5501   Since
5502       3.0
5503
5504   BlockdevOptionsBlkverify (Object)
5505       Driver specific block device options for blkverify.
5506
5507   Members
5508       test: BlockdevRef
5509              block device to be tested
5510
5511       raw: BlockdevRef
5512              raw image used for verification
5513
5514   Since
5515       2.9
5516
5517   BlockdevOptionsBlkreplay (Object)
5518       Driver specific block device options for blkreplay.
5519
5520   Members
5521       image: BlockdevRef
5522              disk image which should be controlled with blkreplay
5523
5524   Since
5525       4.2
5526
5527   QuorumReadPattern (Enum)
5528       An enumeration of quorum read patterns.
5529
5530   Values
5531       quorum read all the children and do a quorum vote on reads
5532
5533       fifo   read only from the first child that has not failed
5534
5535   Since
5536       2.9
5537
5538   BlockdevOptionsQuorum (Object)
5539       Driver specific block device options for Quorum
5540
5541   Members
5542       blkverify: boolean (optional)
5543              true  if  the driver must print content mismatch set to false by
5544              default
5545
5546       children: array of BlockdevRef
5547              the children block devices to use
5548
5549       vote-threshold: int
5550              the vote limit under which a read will fail
5551
5552       rewrite-corrupted: boolean (optional)
5553              rewrite corrupted data when quorum is reached (Since 2.1)
5554
5555       read-pattern: QuorumReadPattern (optional)
5556              choose read pattern and set to quorum by default (Since 2.2)
5557
5558   Since
5559       2.9
5560
5561   BlockdevOptionsGluster (Object)
5562       Driver specific block device options for Gluster
5563
5564   Members
5565       volume: string
5566              name of gluster volume where VM image resides
5567
5568       path: string
5569              absolute path to image file in gluster volume
5570
5571       server: array of SocketAddress
5572              gluster servers description
5573
5574       debug: int (optional)
5575              libgfapi log level (default '4' which is Error) (Since 2.8)
5576
5577       logfile: string (optional)
5578              libgfapi log file (default /dev/stderr) (Since 2.8)
5579
5580   Since
5581       2.9
5582
5583   BlockdevOptionsIoUring (Object)
5584       Driver specific block device options for the io_uring backend.
5585
5586   Members
5587       filename: string
5588              path to the image file
5589
5590   Since
5591       7.2
5592
5593   If
5594       CONFIG_BLKIO
5595
5596   BlockdevOptionsNvmeIoUring (Object)
5597       Driver specific block device options for the nvme-io_uring backend.
5598
5599   Members
5600       path: string
5601              path  to   the   NVMe   namespace's   character   device   (e.g.
5602              /dev/ng0n1).
5603
5604   Since
5605       7.2
5606
5607   If
5608       CONFIG_BLKIO
5609
5610   BlockdevOptionsVirtioBlkVfioPci (Object)
5611       Driver  specific block device options for the virtio-blk-vfio-pci back‐
5612       end.
5613
5614   Members
5615       path: string
5616              path to the PCI device's sysfs directory (e.g.  /sys/bus/pci/de‐
5617              vices/0000:00:01.0).
5618
5619   Since
5620       7.2
5621
5622   If
5623       CONFIG_BLKIO
5624
5625   BlockdevOptionsVirtioBlkVhostUser (Object)
5626       Driver  specific  block  device  options  for the virtio-blk-vhost-user
5627       backend.
5628
5629   Members
5630       path: string
5631              path to the vhost-user UNIX domain socket.
5632
5633   Since
5634       7.2
5635
5636   If
5637       CONFIG_BLKIO
5638
5639   BlockdevOptionsVirtioBlkVhostVdpa (Object)
5640       Driver specific block  device  options  for  the  virtio-blk-vhost-vdpa
5641       backend.
5642
5643   Members
5644       path: string
5645              path to the vhost-vdpa character device.
5646
5647   Features
5648       fdset  Member path supports the special "/dev/fdset/N" path (since 8.1)
5649
5650   Since
5651       7.2
5652
5653   If
5654       CONFIG_BLKIO
5655
5656   IscsiTransport (Enum)
5657       An enumeration of libiscsi transport types
5658
5659   Values
5660       tcp    Not documented
5661
5662       iser   Not documented
5663
5664   Since
5665       2.9
5666
5667   IscsiHeaderDigest (Enum)
5668       An enumeration of header digests supported by libiscsi
5669
5670   Values
5671       crc32c Not documented
5672
5673       none   Not documented
5674
5675       crc32c-none
5676              Not documented
5677
5678       none-crc32c
5679              Not documented
5680
5681   Since
5682       2.9
5683
5684   BlockdevOptionsIscsi (Object)
5685   Members
5686       transport: IscsiTransport
5687              The iscsi transport type
5688
5689       portal: string
5690              The address of the iscsi portal
5691
5692       target: string
5693              The target iqn name
5694
5695       lun: int (optional)
5696              LUN to connect to.  Defaults to 0.
5697
5698       user: string (optional)
5699              User name to log in with.  If omitted, no CHAP authentication is
5700              performed.
5701
5702       password-secret: string (optional)
5703              The ID of a QCryptoSecret object providing the password for  the
5704              login.  This option is required if user is specified.
5705
5706       initiator-name: string (optional)
5707              The  iqn name we want to identify to the target as.  If this op‐
5708              tion is not specified, an initiator name is generated  automati‐
5709              cally.
5710
5711       header-digest: IscsiHeaderDigest (optional)
5712              The desired header digest.  Defaults to none-crc32c.
5713
5714       timeout: int (optional)
5715              Timeout  in seconds after which a request will timeout.  0 means
5716              no timeout and is the default.
5717       Driver specific block device options for iscsi
5718
5719   Since
5720       2.9
5721
5722   RbdAuthMode (Enum)
5723   Values
5724       cephx  Not documented
5725
5726       none   Not documented
5727
5728   Since
5729       3.0
5730
5731   RbdImageEncryptionFormat (Enum)
5732   Values
5733       luks-any
5734              Used for opening either luks or luks2 (Since 8.0)
5735
5736       luks   Not documented
5737
5738       luks2  Not documented
5739
5740   Since
5741       6.1
5742
5743   RbdEncryptionOptionsLUKSBase (Object)
5744   Members
5745       key-secret: string
5746              ID of a QCryptoSecret object providing a passphrase for  unlock‐
5747              ing the encryption
5748
5749   Since
5750       6.1
5751
5752   RbdEncryptionCreateOptionsLUKSBase (Object)
5753   Members
5754       cipher-alg: QCryptoCipherAlgorithm (optional)
5755              The encryption algorithm
5756
5757       The members of RbdEncryptionOptionsLUKSBase
5758
5759   Since
5760       6.1
5761
5762   RbdEncryptionOptionsLUKS (Object)
5763   Members
5764       The members of RbdEncryptionOptionsLUKSBase
5765
5766   Since
5767       6.1
5768
5769   RbdEncryptionOptionsLUKS2 (Object)
5770   Members
5771       The members of RbdEncryptionOptionsLUKSBase
5772
5773   Since
5774       6.1
5775
5776   RbdEncryptionOptionsLUKSAny (Object)
5777   Members
5778       The members of RbdEncryptionOptionsLUKSBase
5779
5780   Since
5781       8.0
5782
5783   RbdEncryptionCreateOptionsLUKS (Object)
5784   Members
5785       The members of RbdEncryptionCreateOptionsLUKSBase
5786
5787   Since
5788       6.1
5789
5790   RbdEncryptionCreateOptionsLUKS2 (Object)
5791   Members
5792       The members of RbdEncryptionCreateOptionsLUKSBase
5793
5794   Since
5795       6.1
5796
5797   RbdEncryptionOptions (Object)
5798   Members
5799       format: RbdImageEncryptionFormat
5800              Encryption format.
5801
5802       parent: RbdEncryptionOptions (optional)
5803              Parent  image  encryption  options  (for cloned images).  Can be
5804              left unspecified if this cloned image  is  encrypted  using  the
5805              same  format and secret as its parent image (i.e. not explicitly
5806              formatted) or if its parent image is not encrypted.  (Since 8.0)
5807
5808       The members of RbdEncryptionOptionsLUKS when format is "luks"
5809
5810       The members of RbdEncryptionOptionsLUKS2 when format is "luks2"
5811
5812       The members of RbdEncryptionOptionsLUKSAny when format is "luks-any"
5813
5814   Since
5815       6.1
5816
5817   RbdEncryptionCreateOptions (Object)
5818   Members
5819       format: RbdImageEncryptionFormat
5820              Not documented
5821
5822       The members of RbdEncryptionCreateOptionsLUKS when format is "luks"
5823
5824       The members of RbdEncryptionCreateOptionsLUKS2 when format is "luks2"
5825
5826   Since
5827       6.1
5828
5829   BlockdevOptionsRbd (Object)
5830   Members
5831       pool: string
5832              Ceph pool name.
5833
5834       namespace: string (optional)
5835              Rados namespace name in the Ceph pool.  (Since 5.0)
5836
5837       image: string
5838              Image name in the Ceph pool.
5839
5840       conf: string (optional)
5841              path to Ceph configuration file.  Values  in  the  configuration
5842              file will be overridden by options specified via QAPI.
5843
5844       snapshot: string (optional)
5845              Ceph snapshot name.
5846
5847       encrypt: RbdEncryptionOptions (optional)
5848              Image encryption options.  (Since 6.1)
5849
5850       user: string (optional)
5851              Ceph id name.
5852
5853       auth-client-required: array of RbdAuthMode (optional)
5854              Acceptable  authentication  modes.  This maps to Ceph configura‐
5855              tion option "auth_client_required".  (Since 3.0)
5856
5857       key-secret: string (optional)
5858              ID of a QCryptoSecret object providing a key for cephx authenti‐
5859              cation.   This  maps to Ceph configuration option "key".  (Since
5860              3.0)
5861
5862       server: array of InetSocketAddressBase (optional)
5863              Monitor host address and port.  This maps to the "mon_host" Ceph
5864              option.
5865
5866   Since
5867       2.9
5868
5869   ReplicationMode (Enum)
5870       An enumeration of replication modes.
5871
5872   Values
5873       primary
5874              Primary mode, the vm's state will be sent to secondary QEMU.
5875
5876       secondary
5877              Secondary mode, receive the vm's state from primary QEMU.
5878
5879   Since
5880       2.9
5881
5882   If
5883       CONFIG_REPLICATION
5884
5885   BlockdevOptionsReplication (Object)
5886       Driver specific block device options for replication
5887
5888   Members
5889       mode: ReplicationMode
5890              the replication mode
5891
5892       top-id: string (optional)
5893              In  secondary  mode, node name or device ID of the root node who
5894              owns the replication node chain.  Must not be given  in  primary
5895              mode.
5896
5897       The members of BlockdevOptionsGenericFormat
5898
5899   Since
5900       2.9
5901
5902   If
5903       CONFIG_REPLICATION
5904
5905   NFSTransport (Enum)
5906       An enumeration of NFS transport types
5907
5908   Values
5909       inet   TCP transport
5910
5911   Since
5912       2.9
5913
5914   NFSServer (Object)
5915       Captures the address of the socket
5916
5917   Members
5918       type: NFSTransport
5919              transport type used for NFS (only TCP supported)
5920
5921       host: string
5922              host address for NFS server
5923
5924   Since
5925       2.9
5926
5927   BlockdevOptionsNfs (Object)
5928       Driver specific block device option for NFS
5929
5930   Members
5931       server: NFSServer
5932              host address
5933
5934       path: string
5935              path of the image on the host
5936
5937       user: int (optional)
5938              UID  value  to use when talking to the server (defaults to 65534
5939              on Windows and getuid() on unix)
5940
5941       group: int (optional)
5942              GID value to use when talking to the server (defaults  to  65534
5943              on Windows and getgid() in unix)
5944
5945       tcp-syn-count: int (optional)
5946              number  of  SYNs  during  the session establishment (defaults to
5947              libnfs default)
5948
5949       readahead-size: int (optional)
5950              set the readahead size in bytes (defaults to libnfs default)
5951
5952       page-cache-size: int (optional)
5953              set the pagecache size in bytes (defaults to libnfs default)
5954
5955       debug: int (optional)
5956              set the NFS debug level (max 2) (defaults to libnfs default)
5957
5958   Since
5959       2.9
5960
5961   BlockdevOptionsCurlBase (Object)
5962       Driver specific block device options shared by all protocols  supported
5963       by the curl backend.
5964
5965   Members
5966       url: string
5967              URL of the image file
5968
5969       readahead: int (optional)
5970              Size  of  the  read-ahead  cache; must be a multiple of 512 (de‐
5971              faults to 256 kB)
5972
5973       timeout: int (optional)
5974              Timeout for connections, in seconds (defaults to 5)
5975
5976       username: string (optional)
5977              Username for authentication (defaults to none)
5978
5979       password-secret: string (optional)
5980              ID of a QCryptoSecret object providing a password for  authenti‐
5981              cation (defaults to no password)
5982
5983       proxy-username: string (optional)
5984              Username for proxy authentication (defaults to none)
5985
5986       proxy-password-secret: string (optional)
5987              ID  of a QCryptoSecret object providing a password for proxy au‐
5988              thentication (defaults to no password)
5989
5990   Since
5991       2.9
5992
5993   BlockdevOptionsCurlHttp (Object)
5994       Driver specific block device options for HTTP connections over the curl
5995       backend.  URLs must start with "http://".
5996
5997   Members
5998       cookie: string (optional)
5999              List  of  cookies  to set; format is "name1=content1; name2=con‐
6000              tent2;" as explained by CURLOPT_COOKIE(3). Defaults to no  cook‐
6001              ies.
6002
6003       cookie-secret: string (optional)
6004              ID  of a QCryptoSecret object providing the cookie data in a se‐
6005              cure way.  See cookie for the format.  (since 2.10)
6006
6007       The members of BlockdevOptionsCurlBase
6008
6009   Since
6010       2.9
6011
6012   BlockdevOptionsCurlHttps (Object)
6013       Driver specific block device options for  HTTPS  connections  over  the
6014       curl backend.  URLs must start with "https://".
6015
6016   Members
6017       cookie: string (optional)
6018              List  of  cookies  to set; format is "name1=content1; name2=con‐
6019              tent2;" as explained by CURLOPT_COOKIE(3). Defaults to no  cook‐
6020              ies.
6021
6022       sslverify: boolean (optional)
6023              Whether  to  verify  the SSL certificate's validity (defaults to
6024              true)
6025
6026       cookie-secret: string (optional)
6027              ID of a QCryptoSecret object providing the cookie data in a  se‐
6028              cure way.  See cookie for the format.  (since 2.10)
6029
6030       The members of BlockdevOptionsCurlBase
6031
6032   Since
6033       2.9
6034
6035   BlockdevOptionsCurlFtp (Object)
6036       Driver  specific block device options for FTP connections over the curl
6037       backend.  URLs must start with "ftp://".
6038
6039   Members
6040       The members of BlockdevOptionsCurlBase
6041
6042   Since
6043       2.9
6044
6045   BlockdevOptionsCurlFtps (Object)
6046       Driver specific block device options for FTPS connections over the curl
6047       backend.  URLs must start with "ftps://".
6048
6049   Members
6050       sslverify: boolean (optional)
6051              Whether  to  verify  the SSL certificate's validity (defaults to
6052              true)
6053
6054       The members of BlockdevOptionsCurlBase
6055
6056   Since
6057       2.9
6058
6059   BlockdevOptionsNbd (Object)
6060       Driver specific block device options for NBD.
6061
6062   Members
6063       server: SocketAddress
6064              NBD server address
6065
6066       export: string (optional)
6067              export name
6068
6069       tls-creds: string (optional)
6070              TLS credentials ID
6071
6072       tls-hostname: string (optional)
6073              TLS hostname override for certificate validation (Since 7.0)
6074
6075       x-dirty-bitmap: string (optional)
6076              A metadata context  name  such  as  "qemu:dirty-bitmap:NAME"  or
6077              "qemu:allocation-depth"  to  query  in  place of the traditional
6078              "base:allocation" block status (see NBD_OPT_LIST_META_CONTEXT in
6079              the  NBD  protocol;  and yes, naming this option x-context would
6080              have made more sense) (since 3.0)
6081
6082       reconnect-delay: int (optional)
6083              On an unexpected disconnect, the nbd  client  tries  to  connect
6084              again  until succeeding or encountering a serious error.  During
6085              the first reconnect-delay seconds, all requests are  paused  and
6086              will  be  rerun on a successful reconnect.  After that time, any
6087              delayed requests and all future requests before a successful re‐
6088              connect will immediately fail.  Default 0 (Since 4.2)
6089
6090       open-timeout: int (optional)
6091              In  seconds.   If zero, the nbd driver tries the connection only
6092              once, and fails to open if the connection fails.   If  non-zero,
6093              the  nbd driver will repeat connection attempts until successful
6094              or until open-timeout seconds have elapsed.   Default  0  (Since
6095              7.0)
6096
6097   Features
6098       unstable
6099              Member x-dirty-bitmap is experimental.
6100
6101   Since
6102       2.9
6103
6104   BlockdevOptionsRaw (Object)
6105       Driver specific block device options for the raw driver.
6106
6107   Members
6108       offset: int (optional)
6109              position where the block device starts
6110
6111       size: int (optional)
6112              the assumed size of the device
6113
6114       The members of BlockdevOptionsGenericFormat
6115
6116   Since
6117       2.9
6118
6119   BlockdevOptionsThrottle (Object)
6120       Driver specific block device options for the throttle driver
6121
6122   Members
6123       throttle-group: string
6124              the  name  of the throttle-group object to use.  It must already
6125              exist.
6126
6127       file: BlockdevRef
6128              reference to or definition of the data source block device
6129
6130   Since
6131       2.11
6132
6133   BlockdevOptionsCor (Object)
6134       Driver specific block device options for the copy-on-read driver.
6135
6136   Members
6137       bottom: string (optional)
6138              The name of a non-filter node  (allocation-bearing  layer)  that
6139              limits  the  COR operations in the backing chain (inclusive), so
6140              that no data below this node will be copied by this filter.   If
6141              option  is  absent,  the limit is not applied, so that data from
6142              all backing layers may be copied.
6143
6144       The members of BlockdevOptionsGenericFormat
6145
6146   Since
6147       6.0
6148
6149   OnCbwError (Enum)
6150       An enumeration of possible behaviors  for  copy-before-write  operation
6151       failures.
6152
6153   Values
6154       break-guest-write
6155              report  the error to the guest.  This way, the guest will not be
6156              able to overwrite areas that cannot be backed up, so the  backup
6157              process remains valid.
6158
6159       break-snapshot
6160              continue  guest write.  Doing so will make the provided snapshot
6161              state invalid and any backup or export process based on it  will
6162              finally fail.
6163
6164   Since
6165       7.1
6166
6167   BlockdevOptionsCbw (Object)
6168       Driver  specific block device options for the copy-before-write driver,
6169       which does so called copy-before-write operations: when data is written
6170       to  the  filter,  the  filter first reads corresponding blocks from its
6171       file child and copies them to target child.  After  successfully  copy‐
6172       ing,  the write request is propagated to file child.  If copying fails,
6173       the original write request is failed too and no data is written to file
6174       child.
6175
6176   Members
6177       target: BlockdevRef
6178              The target for copy-before-write operations.
6179
6180       bitmap: BlockDirtyBitmap (optional)
6181              If specified, copy-before-write filter will do copy-before-write
6182              operations only for dirty regions of the  bitmap.   Bitmap  size
6183              must  be equal to length of file and target child of the filter.
6184              Note also, that bitmap is used only to initialize internal  bit‐
6185              map  of  the  process, so further modifications (or removing) of
6186              specified bitmap doesn't influence the filter.  (Since 7.0)
6187
6188       on-cbw-error: OnCbwError (optional)
6189              Behavior on failure of copy-before-write operation.  Default  is
6190              break-guest-write.  (Since 7.1)
6191
6192       cbw-timeout: int (optional)
6193              Zero  means  no limit.  Non-zero sets the timeout in seconds for
6194              copy-before-write operation.  When a timeout occurs, the respec‐
6195              tive copy-before-write operation will fail, and the on-cbw-error
6196              parameter will decide how this failure is handled.   Default  0.
6197              (Since 7.1)
6198
6199       The members of BlockdevOptionsGenericFormat
6200
6201   Since
6202       6.2
6203
6204   BlockdevOptions (Object)
6205       Options  for  creating  a block device.  Many options are available for
6206       all block devices, independent of the block driver:
6207
6208   Members
6209       driver: BlockdevDriver
6210              block driver name
6211
6212       node-name: string (optional)
6213              the node name of the new node (Since 2.0). This  option  is  re‐
6214              quired on the top level of blockdev-add.  Valid node names start
6215              with an alphabetic character and may contain  only  alphanumeric
6216              characters, '-', '.' and '_'. Their maximum length is 31 charac‐
6217              ters.
6218
6219       discard: BlockdevDiscardOptions (optional)
6220              discard-related options (default: ignore)
6221
6222       cache: BlockdevCacheOptions (optional)
6223              cache-related options
6224
6225       read-only: boolean (optional)
6226              whether the block device should be read-only  (default:  false).
6227              Note  that some block drivers support only read-only access, ei‐
6228              ther generally or in certain configurations.  In this case,  the
6229              default value does not work and the option must be specified ex‐
6230              plicitly.
6231
6232       auto-read-only: boolean (optional)
6233              if true and read-only is false, QEMU  may  automatically  decide
6234              not  to open the image read-write as requested, but fall back to
6235              read-only instead (and switch between the modes later), e.g. de‐
6236              pending on whether the image file is writable or whether a writ‐
6237              ing user is attached to the node (default: false, since 3.1)
6238
6239       detect-zeroes: BlockdevDetectZeroesOptions (optional)
6240              detect and optimize zero writes (Since 2.1) (default: off)
6241
6242       force-share: boolean (optional)
6243              force  share  all   permission   on   added   nodes.    Requires
6244              read-only=true.  (Since 2.10)
6245
6246       The members of BlockdevOptionsBlkdebug when driver is "blkdebug"
6247
6248       The  members  of  BlockdevOptionsBlklogwrites  when  driver is "blklog‐
6249       writes"
6250
6251       The members of BlockdevOptionsBlkverify when driver is "blkverify"
6252
6253       The members of BlockdevOptionsBlkreplay when driver is "blkreplay"
6254
6255       The members of BlockdevOptionsGenericFormat when driver is "bochs"
6256
6257       The members of BlockdevOptionsGenericFormat when driver is "cloop"
6258
6259       The members of BlockdevOptionsGenericFormat when driver is "compress"
6260
6261       The members of BlockdevOptionsCbw when driver is "copy-before-write"
6262
6263       The members of BlockdevOptionsCor when driver is "copy-on-read"
6264
6265       The members of BlockdevOptionsGenericFormat when driver is "dmg"
6266
6267       The members of BlockdevOptionsFile when driver is "file"
6268
6269       The members of BlockdevOptionsCurlFtp when driver is "ftp"
6270
6271       The members of BlockdevOptionsCurlFtps when driver is "ftps"
6272
6273       The members of BlockdevOptionsGluster when driver is "gluster"
6274
6275       The members of BlockdevOptionsFile when  driver  is  "host_cdrom"  (If:
6276       HAVE_HOST_BLOCK_DEVICE)
6277
6278       The  members  of  BlockdevOptionsFile when driver is "host_device" (If:
6279       HAVE_HOST_BLOCK_DEVICE)
6280
6281       The members of BlockdevOptionsCurlHttp when driver is "http"
6282
6283       The members of BlockdevOptionsCurlHttps when driver is "https"
6284
6285       The members of BlockdevOptionsIoUring when driver  is  "io_uring"  (If:
6286       CONFIG_BLKIO)
6287
6288       The members of BlockdevOptionsIscsi when driver is "iscsi"
6289
6290       The members of BlockdevOptionsLUKS when driver is "luks"
6291
6292       The members of BlockdevOptionsNbd when driver is "nbd"
6293
6294       The members of BlockdevOptionsNfs when driver is "nfs"
6295
6296       The members of BlockdevOptionsNull when driver is "null-aio"
6297
6298       The members of BlockdevOptionsNull when driver is "null-co"
6299
6300       The members of BlockdevOptionsNVMe when driver is "nvme"
6301
6302       The  members  of BlockdevOptionsNvmeIoUring when driver is "nvme-io_ur‐
6303       ing" (If: CONFIG_BLKIO)
6304
6305       The members of BlockdevOptionsGenericFormat when driver is "parallels"
6306
6307       The members of BlockdevOptionsPreallocate when driver is "preallocate"
6308
6309       The members of BlockdevOptionsQcow2 when driver is "qcow2"
6310
6311       The members of BlockdevOptionsQcow when driver is "qcow"
6312
6313       The members of BlockdevOptionsGenericCOWFormat when driver is "qed"
6314
6315       The members of BlockdevOptionsQuorum when driver is "quorum"
6316
6317       The members of BlockdevOptionsRaw when driver is "raw"
6318
6319       The members of BlockdevOptionsRbd when driver is "rbd"
6320
6321       The members of BlockdevOptionsReplication when driver is  "replication"
6322       (If: CONFIG_REPLICATION)
6323
6324       The  members  of  BlockdevOptionsGenericFormat  when  driver  is "snap‐
6325       shot-access"
6326
6327       The members of BlockdevOptionsSsh when driver is "ssh"
6328
6329       The members of BlockdevOptionsThrottle when driver is "throttle"
6330
6331       The members of BlockdevOptionsGenericFormat when driver is "vdi"
6332
6333       The members of BlockdevOptionsGenericFormat when driver is "vhdx"
6334
6335       The members of BlockdevOptionsVirtioBlkVfioPci  when  driver  is  "vir‐
6336       tio-blk-vfio-pci" (If: CONFIG_BLKIO)
6337
6338       The  members  of BlockdevOptionsVirtioBlkVhostUser when driver is "vir‐
6339       tio-blk-vhost-user" (If: CONFIG_BLKIO)
6340
6341       The members of BlockdevOptionsVirtioBlkVhostVdpa when driver  is  "vir‐
6342       tio-blk-vhost-vdpa" (If: CONFIG_BLKIO)
6343
6344       The members of BlockdevOptionsGenericCOWFormat when driver is "vmdk"
6345
6346       The members of BlockdevOptionsGenericFormat when driver is "vpc"
6347
6348       The members of BlockdevOptionsVVFAT when driver is "vvfat"
6349       Remaining options are determined by the block driver.
6350
6351   Since
6352       2.9
6353
6354   BlockdevRef (Alternate)
6355       Reference to a block device.
6356
6357   Members
6358       definition: BlockdevOptions
6359              defines a new block device inline
6360
6361       reference: string
6362              references the ID of an existing block device
6363
6364   Since
6365       2.9
6366
6367   BlockdevRefOrNull (Alternate)
6368       Reference to a block device.
6369
6370   Members
6371       definition: BlockdevOptions
6372              defines a new block device inline
6373
6374       reference: string
6375              references  the ID of an existing block device.  An empty string
6376              means that no block device should  be  referenced.   Deprecated;
6377              use null instead.
6378
6379       null: null
6380              No block device should be referenced (since 2.10)
6381
6382   Since
6383       2.9
6384
6385   blockdev-add (Command)
6386       Creates a new block device.
6387
6388   Arguments
6389       The members of BlockdevOptions
6390
6391   Since
6392       2.9
6393
6394   Examples
6395          -> { "execute": "blockdev-add",
6396               "arguments": {
6397                    "driver": "qcow2",
6398                    "node-name": "test1",
6399                    "file": {
6400                        "driver": "file",
6401                        "filename": "test.qcow2"
6402                     }
6403                }
6404              }
6405          <- { "return": {} }
6406
6407          -> { "execute": "blockdev-add",
6408               "arguments": {
6409                    "driver": "qcow2",
6410                    "node-name": "node0",
6411                    "discard": "unmap",
6412                    "cache": {
6413                       "direct": true
6414                     },
6415                     "file": {
6416                       "driver": "file",
6417                       "filename": "/tmp/test.qcow2"
6418                     },
6419                     "backing": {
6420                        "driver": "raw",
6421                        "file": {
6422                           "driver": "file",
6423                           "filename": "/dev/fdset/4"
6424                         }
6425                     }
6426                 }
6427               }
6428
6429          <- { "return": {} }
6430
6431   blockdev-reopen (Command)
6432       Reopens  one or more block devices using the given set of options.  Any
6433       option not specified will be reset to its default value  regardless  of
6434       its  previous  status.   If an option cannot be changed or a particular
6435       driver does not support reopening then the command will return  an  er‐
6436       ror.   All  devices  in the list are reopened in one transaction, so if
6437       one of them fails then the whole transaction is cancelled.
6438
6439       The command receives a list of block devices to reopen.  For  each  one
6440       of  them, the top-level node-name option (from BlockdevOptions) must be
6441       specified and is used to select the block device to be reopened.  Other
6442       node-name  options must be either omitted or set to the current name of
6443       the appropriate node.  This command won't change any node name and  any
6444       attempt to do it will result in an error.
6445
6446       In  the case of options that refer to child nodes, the behavior of this
6447       command depends on the value:
6448
6449          1. A set of options (BlockdevOptions): the child  is  reopened  with
6450             the specified set of options.
6451
6452          2. A reference to the current child: the child is reopened using its
6453             existing set of options.
6454
6455          3. A reference to a different node: the current  child  is  replaced
6456             with the specified one.
6457
6458          4. NULL: the current child (if any) is detached.
6459
6460       Options  (1)  and  (2)  are supported in all cases.  Option (3) is sup‐
6461       ported for file and backing, and option (4) for backing only.
6462
6463       Unlike with blockdev-add, the backing option must always be present un‐
6464       less the node being reopened does not have a backing file and its image
6465       does not have a default backing file name as part of its metadata.
6466
6467   Arguments
6468       options: array of BlockdevOptions
6469              Not documented
6470
6471   Since
6472       6.1
6473
6474   blockdev-del (Command)
6475       Deletes a block device that has been  added  using  blockdev-add.   The
6476       command  will  fail if the node is attached to a device or is otherwise
6477       being used.
6478
6479   Arguments
6480       node-name: string
6481              Name of the graph node to delete.
6482
6483   Since
6484       2.9
6485
6486   Example
6487          -> { "execute": "blockdev-add",
6488               "arguments": {
6489                    "driver": "qcow2",
6490                    "node-name": "node0",
6491                    "file": {
6492                        "driver": "file",
6493                        "filename": "test.qcow2"
6494                    }
6495               }
6496             }
6497          <- { "return": {} }
6498
6499          -> { "execute": "blockdev-del",
6500               "arguments": { "node-name": "node0" }
6501             }
6502          <- { "return": {} }
6503
6504   BlockdevCreateOptionsFile (Object)
6505       Driver specific image creation options for file.
6506
6507   Members
6508       filename: string
6509              Filename for the new image file
6510
6511       size: int
6512              Size of the virtual disk in bytes
6513
6514       preallocation: PreallocMode (optional)
6515              Preallocation mode for the new image (default: off; allowed val‐
6516              ues:  off,  falloc  (if  CONFIG_POSIX_FALLOCATE),  full (if CON‐
6517              FIG_POSIX))
6518
6519       nocow: boolean (optional)
6520              Turn off copy-on-write (valid only on btrfs; default: off)
6521
6522       extent-size-hint: int (optional)
6523              Extent size hint to add to the image file; 0 for not  adding  an
6524              extent size hint (default: 1 MB, since 5.1)
6525
6526   Since
6527       2.12
6528
6529   BlockdevCreateOptionsGluster (Object)
6530       Driver specific image creation options for gluster.
6531
6532   Members
6533       location: BlockdevOptionsGluster
6534              Where to store the new image file
6535
6536       size: int
6537              Size of the virtual disk in bytes
6538
6539       preallocation: PreallocMode (optional)
6540              Preallocation mode for the new image (default: off; allowed val‐
6541              ues: off, falloc (if CONFIG_GLUSTERFS_FALLOCATE), full (if  CON‐
6542              FIG_GLUSTERFS_ZEROFILL))
6543
6544   Since
6545       2.12
6546
6547   BlockdevCreateOptionsLUKS (Object)
6548       Driver specific image creation options for LUKS.
6549
6550   Members
6551       file: BlockdevRef
6552              Node to create the image format on
6553
6554       size: int
6555              Size of the virtual disk in bytes
6556
6557       preallocation: PreallocMode (optional)
6558              Preallocation mode for the new image (since: 4.2) (default: off;
6559              allowed values: off, metadata, falloc, full)
6560
6561       The members of QCryptoBlockCreateOptionsLUKS
6562
6563   Since
6564       2.12
6565
6566   BlockdevCreateOptionsNfs (Object)
6567       Driver specific image creation options for NFS.
6568
6569   Members
6570       location: BlockdevOptionsNfs
6571              Where to store the new image file
6572
6573       size: int
6574              Size of the virtual disk in bytes
6575
6576   Since
6577       2.12
6578
6579   BlockdevCreateOptionsParallels (Object)
6580       Driver specific image creation options for parallels.
6581
6582   Members
6583       file: BlockdevRef
6584              Node to create the image format on
6585
6586       size: int
6587              Size of the virtual disk in bytes
6588
6589       cluster-size: int (optional)
6590              Cluster size in bytes (default: 1 MB)
6591
6592   Since
6593       2.12
6594
6595   BlockdevCreateOptionsQcow (Object)
6596       Driver specific image creation options for qcow.
6597
6598   Members
6599       file: BlockdevRef
6600              Node to create the image format on
6601
6602       size: int
6603              Size of the virtual disk in bytes
6604
6605       backing-file: string (optional)
6606              File name of the backing file if a backing file should be used
6607
6608       encrypt: QCryptoBlockCreateOptions (optional)
6609              Encryption options if the image should be encrypted
6610
6611   Since
6612       2.12
6613
6614   BlockdevQcow2Version (Enum)
6615   Values
6616       v2     The original QCOW2 format as introduced in qemu 0.10 (version 2)
6617
6618       v3     The extended QCOW2 format as introduced in qemu 1.1 (version 3)
6619
6620   Since
6621       2.12
6622
6623   Qcow2CompressionType (Enum)
6624       Compression type used in qcow2 image file
6625
6626   Values
6627       zlib   zlib compression, see <http://zlib.net/>
6628
6629       zstd (If: CONFIG_ZSTD)
6630              zstd compression, see <http://github.com/facebook/zstd>
6631
6632   Since
6633       5.1
6634
6635   BlockdevCreateOptionsQcow2 (Object)
6636       Driver specific image creation options for qcow2.
6637
6638   Members
6639       file: BlockdevRef
6640              Node to create the image format on
6641
6642       data-file: BlockdevRef (optional)
6643              Node to use as an external data file in which all guest data  is
6644              stored  so  that only metadata remains in the qcow2 file (since:
6645              4.0)
6646
6647       data-file-raw: boolean (optional)
6648              True if the external data file must stay valid as  a  standalone
6649              (read-only)  raw  image  without  looking at qcow2 metadata (de‐
6650              fault: false; since: 4.0)
6651
6652       extended-l2: boolean (optional)
6653              True to make the image have extended L2 entries (default: false;
6654              since 5.2)
6655
6656       size: int
6657              Size of the virtual disk in bytes
6658
6659       version: BlockdevQcow2Version (optional)
6660              Compatibility level (default: v3)
6661
6662       backing-file: string (optional)
6663              File name of the backing file if a backing file should be used
6664
6665       backing-fmt: BlockdevDriver (optional)
6666              Name of the block driver to use for the backing file
6667
6668       encrypt: QCryptoBlockCreateOptions (optional)
6669              Encryption options if the image should be encrypted
6670
6671       cluster-size: int (optional)
6672              qcow2 cluster size in bytes (default: 65536)
6673
6674       preallocation: PreallocMode (optional)
6675              Preallocation mode for the new image (default: off; allowed val‐
6676              ues: off, falloc, full, metadata)
6677
6678       lazy-refcounts: boolean (optional)
6679              True if refcounts may be updated lazily (default: off)
6680
6681       refcount-bits: int (optional)
6682              Width of reference counts in bits (default: 16)
6683
6684       compression-type: Qcow2CompressionType (optional)
6685              The image cluster compression method (default: zlib, since 5.1)
6686
6687   Since
6688       2.12
6689
6690   BlockdevCreateOptionsQed (Object)
6691       Driver specific image creation options for qed.
6692
6693   Members
6694       file: BlockdevRef
6695              Node to create the image format on
6696
6697       size: int
6698              Size of the virtual disk in bytes
6699
6700       backing-file: string (optional)
6701              File name of the backing file if a backing file should be used
6702
6703       backing-fmt: BlockdevDriver (optional)
6704              Name of the block driver to use for the backing file
6705
6706       cluster-size: int (optional)
6707              Cluster size in bytes (default: 65536)
6708
6709       table-size: int (optional)
6710              L1/L2 table size (in clusters)
6711
6712   Since
6713       2.12
6714
6715   BlockdevCreateOptionsRbd (Object)
6716       Driver specific image creation options for rbd/Ceph.
6717
6718   Members
6719       location: BlockdevOptionsRbd
6720              Where to store the new image file.  This location  cannot  point
6721              to a snapshot.
6722
6723       size: int
6724              Size of the virtual disk in bytes
6725
6726       cluster-size: int (optional)
6727              RBD object size
6728
6729       encrypt: RbdEncryptionCreateOptions (optional)
6730              Image encryption options.  (Since 6.1)
6731
6732   Since
6733       2.12
6734
6735   BlockdevVmdkSubformat (Enum)
6736       Subformat options for VMDK images
6737
6738   Values
6739       monolithicSparse
6740              Single file image with sparse cluster allocation
6741
6742       monolithicFlat
6743              Single flat data image and a descriptor file
6744
6745       twoGbMaxExtentSparse
6746              Data is split into 2GB (per virtual LBA) sparse extent files, in
6747              addition to a descriptor file
6748
6749       twoGbMaxExtentFlat
6750              Data is split into 2GB (per virtual LBA) flat extent  files,  in
6751              addition to a descriptor file
6752
6753       streamOptimized
6754              Single  file  image  sparse  cluster  allocation,  optimized for
6755              streaming over network.
6756
6757   Since
6758       4.0
6759
6760   BlockdevVmdkAdapterType (Enum)
6761       Adapter type info for VMDK images
6762
6763   Values
6764       ide    Not documented
6765
6766       buslogic
6767              Not documented
6768
6769       lsilogic
6770              Not documented
6771
6772       legacyESX
6773              Not documented
6774
6775   Since
6776       4.0
6777
6778   BlockdevCreateOptionsVmdk (Object)
6779       Driver specific image creation options for VMDK.
6780
6781   Members
6782       file: BlockdevRef
6783              Where to store the new image file.  This  refers  to  the  image
6784              file  for monolithcSparse and streamOptimized format, or the de‐
6785              scriptor file for other formats.
6786
6787       size: int
6788              Size of the virtual disk in bytes
6789
6790       extents: array of BlockdevRef (optional)
6791              Where to store the data extents.   Required  for  monolithcFlat,
6792              twoGbMaxExtentSparse  and twoGbMaxExtentFlat formats.  For mono‐
6793              lithicFlat, only one entry is required; for twoGbMaxExtent* for‐
6794              mats,  the  number  of  entries  required  is  calculated as ex‐
6795              tent_number = virtual_size / 2GB. Providing  more  extents  than
6796              will be used is an error.
6797
6798       subformat: BlockdevVmdkSubformat (optional)
6799              The subformat of the VMDK image.  Default: "monolithicSparse".
6800
6801       backing-file: string (optional)
6802              The path of backing file.  Default: no backing file is used.
6803
6804       adapter-type: BlockdevVmdkAdapterType (optional)
6805              The adapter type used to fill in the descriptor.  Default: ide.
6806
6807       hwversion: string (optional)
6808              Hardware  version.   The  meaningful options are "4" or "6". De‐
6809              fault: "4".
6810
6811       toolsversion: string (optional)
6812              VMware guest tools version.  Default: "2147483647" (Since 6.2)
6813
6814       zeroed-grain: boolean (optional)
6815              Whether to enable zeroed-grain feature  for  sparse  subformats.
6816              Default: false.
6817
6818   Since
6819       4.0
6820
6821   BlockdevCreateOptionsSsh (Object)
6822       Driver specific image creation options for SSH.
6823
6824   Members
6825       location: BlockdevOptionsSsh
6826              Where to store the new image file
6827
6828       size: int
6829              Size of the virtual disk in bytes
6830
6831   Since
6832       2.12
6833
6834   BlockdevCreateOptionsVdi (Object)
6835       Driver specific image creation options for VDI.
6836
6837   Members
6838       file: BlockdevRef
6839              Node to create the image format on
6840
6841       size: int
6842              Size of the virtual disk in bytes
6843
6844       preallocation: PreallocMode (optional)
6845              Preallocation mode for the new image (default: off; allowed val‐
6846              ues: off, metadata)
6847
6848   Since
6849       2.12
6850
6851   BlockdevVhdxSubformat (Enum)
6852   Values
6853       dynamic
6854              Growing image file
6855
6856       fixed  Preallocated fixed-size image file
6857
6858   Since
6859       2.12
6860
6861   BlockdevCreateOptionsVhdx (Object)
6862       Driver specific image creation options for vhdx.
6863
6864   Members
6865       file: BlockdevRef
6866              Node to create the image format on
6867
6868       size: int
6869              Size of the virtual disk in bytes
6870
6871       log-size: int (optional)
6872              Log size in bytes, must be a multiple of 1 MB (default: 1 MB)
6873
6874       block-size: int (optional)
6875              Block size in bytes, must be a multiple of 1 MB and  not  larger
6876              than  256 MB (default: automatically choose a block size depend‐
6877              ing on the image size)
6878
6879       subformat: BlockdevVhdxSubformat (optional)
6880              vhdx subformat (default: dynamic)
6881
6882       block-state-zero: boolean (optional)
6883              Force use of payload blocks of type 'ZERO'.   Non-standard,  but
6884              default.  Do not set to 'off' when using 'qemu-img convert' with
6885              subformat=dynamic.
6886
6887   Since
6888       2.12
6889
6890   BlockdevVpcSubformat (Enum)
6891   Values
6892       dynamic
6893              Growing image file
6894
6895       fixed  Preallocated fixed-size image file
6896
6897   Since
6898       2.12
6899
6900   BlockdevCreateOptionsVpc (Object)
6901       Driver specific image creation options for vpc (VHD).
6902
6903   Members
6904       file: BlockdevRef
6905              Node to create the image format on
6906
6907       size: int
6908              Size of the virtual disk in bytes
6909
6910       subformat: BlockdevVpcSubformat (optional)
6911              vhdx subformat (default: dynamic)
6912
6913       force-size: boolean (optional)
6914              Force use of the exact byte size instead of rounding to the next
6915              size that can be represented in CHS geometry (default: false)
6916
6917   Since
6918       2.12
6919
6920   BlockdevCreateOptions (Object)
6921       Options for creating an image format on a given node.
6922
6923   Members
6924       driver: BlockdevDriver
6925              block driver to create the image format
6926
6927       The members of BlockdevCreateOptionsFile when driver is "file"
6928
6929       The members of BlockdevCreateOptionsGluster when driver is "gluster"
6930
6931       The members of BlockdevCreateOptionsLUKS when driver is "luks"
6932
6933       The members of BlockdevCreateOptionsNfs when driver is "nfs"
6934
6935       The  members  of  BlockdevCreateOptionsParallels when driver is "paral‐
6936       lels"
6937
6938       The members of BlockdevCreateOptionsQcow when driver is "qcow"
6939
6940       The members of BlockdevCreateOptionsQcow2 when driver is "qcow2"
6941
6942       The members of BlockdevCreateOptionsQed when driver is "qed"
6943
6944       The members of BlockdevCreateOptionsRbd when driver is "rbd"
6945
6946       The members of BlockdevCreateOptionsSsh when driver is "ssh"
6947
6948       The members of BlockdevCreateOptionsVdi when driver is "vdi"
6949
6950       The members of BlockdevCreateOptionsVhdx when driver is "vhdx"
6951
6952       The members of BlockdevCreateOptionsVmdk when driver is "vmdk"
6953
6954       The members of BlockdevCreateOptionsVpc when driver is "vpc"
6955
6956   Since
6957       2.12
6958
6959   blockdev-create (Command)
6960       Starts a job to create an image format on a given node.  The job is au‐
6961       tomatically finalized, but a manual job-dismiss is required.
6962
6963   Arguments
6964       job-id: string
6965              Identifier for the newly created job.
6966
6967       options: BlockdevCreateOptions
6968              Options for the image creation.
6969
6970   Since
6971       3.0
6972
6973   BlockdevAmendOptionsLUKS (Object)
6974       Driver specific image amend options for LUKS.
6975
6976   Members
6977       The members of QCryptoBlockAmendOptionsLUKS
6978
6979   Since
6980       5.1
6981
6982   BlockdevAmendOptionsQcow2 (Object)
6983       Driver specific image amend options for qcow2. For now, only encryption
6984       options can be amended
6985
6986   Members
6987       encrypt: QCryptoBlockAmendOptions (optional)
6988              Encryption options to be amended
6989
6990   Since
6991       5.1
6992
6993   BlockdevAmendOptions (Object)
6994       Options for amending an image format
6995
6996   Members
6997       driver: BlockdevDriver
6998              Block driver of the node to amend.
6999
7000       The members of BlockdevAmendOptionsLUKS when driver is "luks"
7001
7002       The members of BlockdevAmendOptionsQcow2 when driver is "qcow2"
7003
7004   Since
7005       5.1
7006
7007   x-blockdev-amend (Command)
7008       Starts a job to amend format specific options of an existing open block
7009       device  The job is automatically finalized, but a manual job-dismiss is
7010       required.
7011
7012   Arguments
7013       job-id: string
7014              Identifier for the newly created job.
7015
7016       node-name: string
7017              Name of the block node to work on
7018
7019       options: BlockdevAmendOptions
7020              Options (driver specific)
7021
7022       force: boolean (optional)
7023              Allow unsafe operations, format specific For  luks  that  allows
7024              erase  of  the last active keyslot (permanent loss of data), and
7025              replacement of an active keyslot (possible loss of  data  if  IO
7026              error happens)
7027
7028   Features
7029       unstable
7030              This command is experimental.
7031
7032   Since
7033       5.1
7034
7035   BlockErrorAction (Enum)
7036       An enumeration of action that has been taken when a DISK I/O occurs
7037
7038   Values
7039       ignore error has been ignored
7040
7041       report error has been reported to the device
7042
7043       stop   error caused VM to be stopped
7044
7045   Since
7046       2.1
7047
7048   BLOCK_IMAGE_CORRUPTED (Event)
7049       Emitted  when  a  disk image is being marked corrupt.  The image can be
7050       identified by its device or node name.  The 'device'  field  is  always
7051       present  for compatibility reasons, but it can be empty ("") if the im‐
7052       age does not have a device name associated.
7053
7054   Arguments
7055       device: string
7056              device name.  This is always present for compatibility  reasons,
7057              but  it  can  be  empty ("") if the image does not have a device
7058              name associated.
7059
7060       node-name: string (optional)
7061              node name (Since: 2.4)
7062
7063       msg: string
7064              informative message for human consumption, such as the  kind  of
7065              corruption  being  detected.  It should not be parsed by machine
7066              as it is not guaranteed to be stable
7067
7068       offset: int (optional)
7069              if the corruption resulted from an image  access,  this  is  the
7070              host's access offset into the image
7071
7072       size: int (optional)
7073              if the corruption resulted from an image access, this is the ac‐
7074              cess size
7075
7076       fatal: boolean
7077              if set, the image is marked corrupt and therefore unusable after
7078              this  event  and  must  be  repaired  (Since  2.2; before, every
7079              BLOCK_IMAGE_CORRUPTED event was fatal)
7080
7081   Note
7082       If  action  is  "stop",  a  STOP  event  will  eventually  follow   the
7083       BLOCK_IO_ERROR event.
7084
7085   Example
7086          <- { "event": "BLOCK_IMAGE_CORRUPTED",
7087               "data": { "device": "", "node-name": "drive", "fatal": false,
7088                         "msg": "L2 table offset 0x2a2a2a00 unaligned (L1 index: 0)" },
7089               "timestamp": { "seconds": 1648243240, "microseconds": 906060 } }
7090
7091   Since
7092       1.7
7093
7094   BLOCK_IO_ERROR (Event)
7095       Emitted when a disk I/O error occurs
7096
7097   Arguments
7098       device: string
7099              device  name.  This is always present for compatibility reasons,
7100              but it can be empty ("") if the image does  not  have  a  device
7101              name associated.
7102
7103       node-name: string (optional)
7104              node  name.   Note that errors may be reported for the root node
7105              that is directly attached to a guest device rather than for  the
7106              node  where the error occurred.  The node name is not present if
7107              the drive is empty.  (Since: 2.8)
7108
7109       operation: IoOperationType
7110              I/O operation
7111
7112       action: BlockErrorAction
7113              action that has been taken
7114
7115       nospace: boolean (optional)
7116              true if I/O error was caused due to a no-space condition.   This
7117              key  is  only  present  if  query-block's  io-status is present,
7118              please  see  query-block  documentation  for  more   information
7119              (since: 2.2)
7120
7121       reason: string
7122              human  readable  string describing the error cause.  (This field
7123              is a debugging aid for humans, it should not be parsed by appli‐
7124              cations) (since: 2.2)
7125
7126   Note
7127       If   action  is  "stop",  a  STOP  event  will  eventually  follow  the
7128       BLOCK_IO_ERROR event
7129
7130   Since
7131       0.13
7132
7133   Example
7134          <- { "event": "BLOCK_IO_ERROR",
7135               "data": { "device": "ide0-hd1",
7136                         "node-name": "#block212",
7137                         "operation": "write",
7138                         "action": "stop",
7139                         "reason": "No space left on device" },
7140               "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
7141
7142   BLOCK_JOB_COMPLETED (Event)
7143       Emitted when a block job has completed
7144
7145   Arguments
7146       type: JobType
7147              job type
7148
7149       device: string
7150              The job identifier.  Originally the device name but other values
7151              are allowed since QEMU 2.7
7152
7153       len: int
7154              maximum progress value
7155
7156       offset: int
7157              current  progress  value.   On success this is equal to len.  On
7158              failure this is less than len
7159
7160       speed: int
7161              rate limit, bytes per second
7162
7163       error: string (optional)
7164              error message.  Only present on failure.  This field contains  a
7165              human-readable error message.  There are no semantics other than
7166              that streaming has failed and clients should not try  to  inter‐
7167              pret the error string
7168
7169   Since
7170       1.1
7171
7172   Example
7173          <- { "event": "BLOCK_JOB_COMPLETED",
7174               "data": { "type": "stream", "device": "virtio-disk0",
7175                         "len": 10737418240, "offset": 10737418240,
7176                         "speed": 0 },
7177               "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
7178
7179   BLOCK_JOB_CANCELLED (Event)
7180       Emitted when a block job has been cancelled
7181
7182   Arguments
7183       type: JobType
7184              job type
7185
7186       device: string
7187              The job identifier.  Originally the device name but other values
7188              are allowed since QEMU 2.7
7189
7190       len: int
7191              maximum progress value
7192
7193       offset: int
7194              current progress value.  On success this is equal  to  len.   On
7195              failure this is less than len
7196
7197       speed: int
7198              rate limit, bytes per second
7199
7200   Since
7201       1.1
7202
7203   Example
7204          <- { "event": "BLOCK_JOB_CANCELLED",
7205               "data": { "type": "stream", "device": "virtio-disk0",
7206                         "len": 10737418240, "offset": 134217728,
7207                         "speed": 0 },
7208               "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
7209
7210   BLOCK_JOB_ERROR (Event)
7211       Emitted when a block job encounters an error
7212
7213   Arguments
7214       device: string
7215              The job identifier.  Originally the device name but other values
7216              are allowed since QEMU 2.7
7217
7218       operation: IoOperationType
7219              I/O operation
7220
7221       action: BlockErrorAction
7222              action that has been taken
7223
7224   Since
7225       1.3
7226
7227   Example
7228          <- { "event": "BLOCK_JOB_ERROR",
7229               "data": { "device": "ide0-hd1",
7230                         "operation": "write",
7231                         "action": "stop" },
7232               "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
7233
7234   BLOCK_JOB_READY (Event)
7235       Emitted when a block job is ready to complete
7236
7237   Arguments
7238       type: JobType
7239              job type
7240
7241       device: string
7242              The job identifier.  Originally the device name but other values
7243              are allowed since QEMU 2.7
7244
7245       len: int
7246              maximum progress value
7247
7248       offset: int
7249              current  progress  value.   On success this is equal to len.  On
7250              failure this is less than len
7251
7252       speed: int
7253              rate limit, bytes per second
7254
7255   Note
7256       The "ready to complete" status is always  reset  by  a  BLOCK_JOB_ERROR
7257       event
7258
7259   Since
7260       1.3
7261
7262   Example
7263          <- { "event": "BLOCK_JOB_READY",
7264               "data": { "device": "drive0", "type": "mirror", "speed": 0,
7265                         "len": 2097152, "offset": 2097152 },
7266               "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
7267
7268   BLOCK_JOB_PENDING (Event)
7269       Emitted when a block job is awaiting explicit authorization to finalize
7270       graph changes via block-job-finalize.  If this job is part of a  trans‐
7271       action, it will not emit this event until the transaction has converged
7272       first.
7273
7274   Arguments
7275       type: JobType
7276              job type
7277
7278       id: string
7279              The job identifier.
7280
7281   Since
7282       2.12
7283
7284   Example
7285          <- { "event": "BLOCK_JOB_PENDING",
7286               "data": { "type": "mirror", "id": "backup_1" },
7287               "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
7288
7289   PreallocMode (Enum)
7290       Preallocation mode of QEMU image file
7291
7292   Values
7293       off    no preallocation
7294
7295       metadata
7296              preallocate only for metadata
7297
7298       falloc like full preallocation but allocate disk space by  posix_fallo‐
7299              cate() rather than writing data.
7300
7301       full   preallocate  all data by writing it to the device to ensure disk
7302              space is really available.  This data may or may  not  be  zero,
7303              depending  on  the image format and storage.  full preallocation
7304              also sets up metadata correctly.
7305
7306   Since
7307       2.2
7308
7309   BLOCK_WRITE_THRESHOLD (Event)
7310       Emitted when writes on block device reaches or exceeds  the  configured
7311       write  threshold.   For thin-provisioned devices, this means the device
7312       should be extended to avoid pausing for disk exhaustion.  The event  is
7313       one  shot.   Once  triggered, it needs to be re-registered with another
7314       block-set-write-threshold command.
7315
7316   Arguments
7317       node-name: string
7318              graph node name on which the threshold was exceeded.
7319
7320       amount-exceeded: int
7321              amount of data which exceeded the threshold, in bytes.
7322
7323       write-threshold: int
7324              last configured threshold, in bytes.
7325
7326   Since
7327       2.3
7328
7329   block-set-write-threshold (Command)
7330       Change the write threshold for a block drive.  An event will be  deliv‐
7331       ered  if  a write to this block drive crosses the configured threshold.
7332       The threshold is an offset, thus must be non-negative.  Default  is  no
7333       write threshold.  Setting the threshold to zero disables it.
7334
7335       This  is useful to transparently resize thin-provisioned drives without
7336       the guest OS noticing.
7337
7338   Arguments
7339       node-name: string
7340              graph node name on which the threshold must be set.
7341
7342       write-threshold: int
7343              configured threshold for the block device, bytes.  Use 0 to dis‐
7344              able the threshold.
7345
7346   Since
7347       2.3
7348
7349   Example
7350          -> { "execute": "block-set-write-threshold",
7351               "arguments": { "node-name": "mydev",
7352                              "write-threshold": 17179869184 } }
7353          <- { "return": {} }
7354
7355   x-blockdev-change (Command)
7356       Dynamically  reconfigure  the block driver state graph.  It can be used
7357       to add, remove, insert or replace a graph  node.   Currently  only  the
7358       Quorum driver implements this feature to add or remove its child.  This
7359       is useful to fix a broken quorum child.
7360
7361       If node is specified, it will be inserted under parent.  child may  not
7362       be  specified in this case.  If both parent and child are specified but
7363       node is not, child will be detached from parent.
7364
7365   Arguments
7366       parent: string
7367              the id or name of the parent node.
7368
7369       child: string (optional)
7370              the name of a child under the given parent node.
7371
7372       node: string (optional)
7373              the name of the node that will be added.
7374
7375   Features
7376       unstable
7377              This command is experimental, and its API  is  not  stable.   It
7378              does not support all kinds of operations, all kinds of children,
7379              nor all block drivers.
7380
7381              FIXME Removing children from a  quorum  node  means  introducing
7382              gaps  in  the  child indices.  This cannot be represented in the
7383              'children'  list  of  BlockdevOptionsQuorum,  as   returned   by
7384              .bdrv_refresh_filename().
7385
7386              Warning:  The data in a new quorum child MUST be consistent with
7387              that of the rest of the array.
7388
7389   Since
7390       2.7
7391
7392   Examples
7393          1. Add a new node to a quorum
7394
7395          -> { "execute": "blockdev-add",
7396               "arguments": {
7397                   "driver": "raw",
7398                   "node-name": "new_node",
7399                   "file": { "driver": "file",
7400                             "filename": "test.raw" } } }
7401          <- { "return": {} }
7402          -> { "execute": "x-blockdev-change",
7403               "arguments": { "parent": "disk1",
7404                              "node": "new_node" } }
7405          <- { "return": {} }
7406
7407          2. Delete a quorum's node
7408
7409          -> { "execute": "x-blockdev-change",
7410               "arguments": { "parent": "disk1",
7411                              "child": "children.1" } }
7412          <- { "return": {} }
7413
7414   x-blockdev-set-iothread (Command)
7415       Move node and its children into the iothread.  If iothread is null then
7416       move node and its children into the main loop.
7417
7418       The node must not be attached to a BlockBackend.
7419
7420   Arguments
7421       node-name: string
7422              the name of the block driver node
7423
7424       iothread: StrOrNull
7425              the name of the IOThread object or null for the main loop
7426
7427       force: boolean (optional)
7428              true  if the node and its children should be moved when a Block‐
7429              Backend is already attached
7430
7431   Features
7432       unstable
7433              This command is experimental and intended for  test  cases  that
7434              need control over IOThreads only.
7435
7436   Since
7437       2.12
7438
7439   Examples
7440          1. Move a node into an IOThread
7441
7442          -> { "execute": "x-blockdev-set-iothread",
7443               "arguments": { "node-name": "disk1",
7444                              "iothread": "iothread0" } }
7445          <- { "return": {} }
7446
7447          2. Move a node into the main loop
7448
7449          -> { "execute": "x-blockdev-set-iothread",
7450               "arguments": { "node-name": "disk1",
7451                              "iothread": null } }
7452          <- { "return": {} }
7453
7454   QuorumOpType (Enum)
7455       An enumeration of the quorum operation types
7456
7457   Values
7458       read   read operation
7459
7460       write  write operation
7461
7462       flush  flush operation
7463
7464   Since
7465       2.6
7466
7467   QUORUM_FAILURE (Event)
7468       Emitted by the Quorum block driver if it fails to establish a quorum
7469
7470   Arguments
7471       reference: string
7472              device name if defined else node name
7473
7474       sector-num: int
7475              number of the first sector of the failed read operation
7476
7477       sectors-count: int
7478              failed read operation sector count
7479
7480   Note
7481       This event is rate-limited.
7482
7483   Since
7484       2.0
7485
7486   Example
7487          <- { "event": "QUORUM_FAILURE",
7488               "data": { "reference": "usr1", "sector-num": 345435, "sectors-count": 5 },
7489               "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
7490
7491   QUORUM_REPORT_BAD (Event)
7492       Emitted to report a corruption of a Quorum file
7493
7494   Arguments
7495       type: QuorumOpType
7496              quorum operation type (Since 2.6)
7497
7498       error: string (optional)
7499              error  message.  Only present on failure.  This field contains a
7500              human-readable error message.  There are no semantics other than
7501              that  the  block  layer reported an error and clients should not
7502              try to interpret the error string.
7503
7504       node-name: string
7505              the graph node name of the block driver state
7506
7507       sector-num: int
7508              number of the first sector of the failed read operation
7509
7510       sectors-count: int
7511              failed read operation sector count
7512
7513   Note
7514       This event is rate-limited.
7515
7516   Since
7517       2.0
7518
7519   Examples
7520          1. Read operation
7521
7522          <- { "event": "QUORUM_REPORT_BAD",
7523               "data": { "node-name": "node0", "sector-num": 345435, "sectors-count": 5,
7524                         "type": "read" },
7525               "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
7526
7527          2. Flush operation
7528
7529          <- { "event": "QUORUM_REPORT_BAD",
7530               "data": { "node-name": "node0", "sector-num": 0, "sectors-count": 2097120,
7531                         "type": "flush", "error": "Broken pipe" },
7532               "timestamp": { "seconds": 1456406829, "microseconds": 291763 } }
7533
7534   BlockdevSnapshotInternal (Object)
7535   Members
7536       device: string
7537              the device name or node-name of a  root  node  to  generate  the
7538              snapshot from
7539
7540       name: string
7541              the name of the internal snapshot to be created
7542
7543   Notes
7544       In transaction, if name is empty, or any snapshot matching name exists,
7545       the operation will fail.  Only some image formats support it, for exam‐
7546       ple, qcow2, and rbd.
7547
7548   Since
7549       1.7
7550
7551   blockdev-snapshot-internal-sync (Command)
7552       Synchronously  take  an  internal  snapshot of a block device, when the
7553       format of the image used supports it.  If the name is an empty  string,
7554       or a snapshot with name already exists, the operation will fail.
7555
7556       For the arguments, see the documentation of BlockdevSnapshotInternal.
7557
7558   Returns
7559       • nothing on success
7560
7561       • If device is not a valid block device, GenericError
7562
7563       • If any snapshot matching name exists, or name is empty, GenericError
7564
7565       • If the format of the image used does not support it, GenericError
7566
7567   Since
7568       1.7
7569
7570   Example
7571          -> { "execute": "blockdev-snapshot-internal-sync",
7572               "arguments": { "device": "ide-hd0",
7573                              "name": "snapshot0" }
7574             }
7575          <- { "return": {} }
7576
7577   blockdev-snapshot-delete-internal-sync (Command)
7578       Synchronously  delete  an internal snapshot of a block device, when the
7579       format of the image used support it.  The  snapshot  is  identified  by
7580       name  or  id or both.  One of the name or id is required.  Return Snap‐
7581       shotInfo for the successfully deleted snapshot.
7582
7583   Arguments
7584       device: string
7585              the device name or node-name of a root node to delete the  snap‐
7586              shot from
7587
7588       id: string (optional)
7589              optional the snapshot's ID to be deleted
7590
7591       name: string (optional)
7592              optional the snapshot's name to be deleted
7593
7594   Returns
7595       • SnapshotInfo on success
7596
7597       • If device is not a valid block device, GenericError
7598
7599       • If snapshot not found, GenericError
7600
7601       • If the format of the image used does not support it, GenericError
7602
7603       • If id and name are both not specified, GenericError
7604
7605   Since
7606       1.7
7607
7608   Example
7609          -> { "execute": "blockdev-snapshot-delete-internal-sync",
7610               "arguments": { "device": "ide-hd0",
7611                              "name": "snapshot0" }
7612             }
7613          <- { "return": {
7614                             "id": "1",
7615                             "name": "snapshot0",
7616                             "vm-state-size": 0,
7617                             "date-sec": 1000012,
7618                             "date-nsec": 10,
7619                             "vm-clock-sec": 100,
7620                             "vm-clock-nsec": 20,
7621                             "icount": 220414
7622               }
7623             }
7624
7625   DummyBlockCoreForceArrays (Object)
7626       Not used by QMP; hack to let us use BlockGraphInfoList internally
7627
7628   Members
7629       unused-block-graph-info: array of BlockGraphInfo
7630              Not documented
7631
7632   Since
7633       8.0
7634
7635   Block device exports
7636   NbdServerOptions (Object)
7637       Keep  this  type  consistent  with the nbd-server-start arguments.  The
7638       only intended difference is using SocketAddress  instead  of  SocketAd‐
7639       dressLegacy.
7640
7641   Members
7642       addr: SocketAddress
7643              Address on which to listen.
7644
7645       tls-creds: string (optional)
7646              ID of the TLS credentials object (since 2.6).
7647
7648       tls-authz: string (optional)
7649              ID  of  the  QAuthZ  authorization  object  used to validate the
7650              client's x509 distinguished name.  This object is  is  only  re‐
7651              solved  at  time  of use, so can be deleted and recreated on the
7652              fly while the NBD server is active.  If missing, it will default
7653              to denying access (since 4.0).
7654
7655       max-connections: int (optional)
7656              The  maximum  number of connections to allow at the same time, 0
7657              for unlimited.  Setting this to 1 also stops the server from ad‐
7658              vertising multiple client support (since 5.2; default: 0)
7659
7660   Since
7661       4.2
7662
7663   nbd-server-start (Command)
7664       Start  an  NBD  server listening on the given host and port.  Block de‐
7665       vices can then be exported using nbd-server-add.  The NBD  server  will
7666       present them as named exports; for example, another QEMU instance could
7667       refer to them as "nbd:HOST:PORT:exportname=NAME".
7668
7669       Keep this type consistent with the NbdServerOptions type.  The only in‐
7670       tended  difference  is  using  SocketAddressLegacy instead of SocketAd‐
7671       dress.
7672
7673   Arguments
7674       addr: SocketAddressLegacy
7675              Address on which to listen.
7676
7677       tls-creds: string (optional)
7678              ID of the TLS credentials object (since 2.6).
7679
7680       tls-authz: string (optional)
7681              ID of the QAuthZ  authorization  object  used  to  validate  the
7682              client's  x509  distinguished  name.  This object is is only re‐
7683              solved at time of use, so can be deleted and  recreated  on  the
7684              fly while the NBD server is active.  If missing, it will default
7685              to denying access (since 4.0).
7686
7687       max-connections: int (optional)
7688              The maximum number of connections to allow at the same  time,  0
7689              for unlimited.  Setting this to 1 also stops the server from ad‐
7690              vertising multiple client support (since 5.2; default: 0).
7691
7692   Returns
7693       error if the server is already running.
7694
7695   Since
7696       1.3
7697
7698   BlockExportOptionsNbdBase (Object)
7699       An NBD block export (common options shared between  nbd-server-add  and
7700       the NBD branch of block-export-add).
7701
7702   Members
7703       name: string (optional)
7704              Export  name.   If  unspecified, the device parameter is used as
7705              the export name.  (Since 2.12)
7706
7707       description: string (optional)
7708              Free-form description of the export, up to 4096  bytes.   (Since
7709              5.0)
7710
7711   Since
7712       5.0
7713
7714   BlockExportOptionsNbd (Object)
7715       An  NBD  block  export  (distinct  options  used  in  the NBD branch of
7716       block-export-add).
7717
7718   Members
7719       bitmaps: array of BlockDirtyBitmapOrStr (optional)
7720              Also export each of the named dirty bitmaps reachable  from  de‐
7721              vice,  so  the  NBD client can use NBD_OPT_SET_META_CONTEXT with
7722              the metadata context name "qemu:dirty-bitmap:BITMAP" to  inspect
7723              each  bitmap.   Since  7.1  bitmap may be specified by node/name
7724              pair.
7725
7726       allocation-depth: boolean (optional)
7727              Also export the allocation depth map  for  device,  so  the  NBD
7728              client  can  use NBD_OPT_SET_META_CONTEXT with the metadata con‐
7729              text name "qemu:allocation-depth" to inspect allocation details.
7730              (since 5.2)
7731
7732       The members of BlockExportOptionsNbdBase
7733
7734   Since
7735       5.2
7736
7737   BlockExportOptionsVhostUserBlk (Object)
7738       A vhost-user-blk block export.
7739
7740   Members
7741       addr: SocketAddress
7742              The  vhost-user socket on which to listen.  Both 'unix' and 'fd'
7743              SocketAddress types are supported.  Passed fds must be UNIX  do‐
7744              main sockets.
7745
7746       logical-block-size: int (optional)
7747              Logical block size in bytes.  Defaults to 512 bytes.
7748
7749       num-queues: int (optional)
7750              Number of request virtqueues.  Must be greater than 0.  Defaults
7751              to 1.
7752
7753   Since
7754       5.2
7755
7756   FuseExportAllowOther (Enum)
7757       Possible allow_other modes for FUSE exports.
7758
7759   Values
7760       off    Do not pass allow_other as a mount option.
7761
7762       on     Pass allow_other as a mount option.
7763
7764       auto   Try mounting with allow_other first, and if  that  fails,  retry
7765              without allow_other.
7766
7767   Since
7768       6.1
7769
7770   BlockExportOptionsFuse (Object)
7771       Options for exporting a block graph node on some (file) mountpoint as a
7772       raw image.
7773
7774   Members
7775       mountpoint: string
7776              Path on which to export the block device  via  FUSE.  This  must
7777              point to an existing regular file.
7778
7779       growable: boolean (optional)
7780              Whether writes beyond the EOF should grow the block node accord‐
7781              ingly.  (default: false)
7782
7783       allow-other: FuseExportAllowOther (optional)
7784              If this is off, only qemu's user is allowed access to  this  ex‐
7785              port.   That  cannot  be  changed even with chmod or chown.  En‐
7786              abling this option will allow other users access to  the  export
7787              with  the  FUSE  mount option "allow_other". Note that using al‐
7788              low_other as a non-root user requires user_allow_other to be en‐
7789              abled  in the global fuse.conf configuration file.  In auto mode
7790              (the default), the FUSE export  driver  will  first  attempt  to
7791              mount  the export with allow_other, and if that fails, try again
7792              without.  (since 6.1; default: auto)
7793
7794   Since
7795       6.0
7796
7797   If
7798       CONFIG_FUSE
7799
7800   BlockExportOptionsVduseBlk (Object)
7801       A vduse-blk block export.
7802
7803   Members
7804       name: string
7805              the name of VDUSE device (must be unique across the host).
7806
7807       num-queues: int (optional)
7808              the number of virtqueues.  Defaults to 1.
7809
7810       queue-size: int (optional)
7811              the size of virtqueue.  Defaults to 256.
7812
7813       logical-block-size: int (optional)
7814              Logical block size in bytes.  Range [512, PAGE_SIZE] and must be
7815              power of 2. Defaults to 512 bytes.
7816
7817       serial: string (optional)
7818              the  serial  number  of  virtio block device.  Defaults to empty
7819              string.
7820
7821   Since
7822       7.1
7823
7824   NbdServerAddOptions (Object)
7825       An NBD block export, per legacy nbd-server-add command.
7826
7827   Members
7828       device: string
7829              The device name or node name of the node to be exported
7830
7831       writable: boolean (optional)
7832              Whether clients should be able to write to the  device  via  the
7833              NBD connection (default false).
7834
7835       bitmap: string (optional)
7836              Also  export a single dirty bitmap reachable from device, so the
7837              NBD client can use NBD_OPT_SET_META_CONTEXT  with  the  metadata
7838              context  name  "qemu:dirty-bitmap:BITMAP"  to inspect the bitmap
7839              (since 4.0).
7840
7841       The members of BlockExportOptionsNbdBase
7842
7843   Since
7844       5.0
7845
7846   nbd-server-add (Command)
7847       Export a block node to QEMU's embedded NBD server.
7848
7849       The export name will be used as the id for the resulting block export.
7850
7851   Arguments
7852       The members of NbdServerAddOptions
7853
7854   Features
7855       deprecated
7856              This command is deprecated.  Use block-export-add instead.
7857
7858   Returns
7859       error if the server is not running, or export with the  same  name  al‐
7860       ready exists.
7861
7862   Since
7863       1.3
7864
7865   BlockExportRemoveMode (Enum)
7866       Mode for removing a block export.
7867
7868   Values
7869       safe   Remove  export if there are no existing connections, fail other‐
7870              wise.
7871
7872       hard   Drop all connections immediately and remove export.
7873       Potential additional modes to be added in the future:
7874
7875       hide: Just hide export from new clients, leave existing connections  as
7876       is.  Remove export after all clients are disconnected.
7877
7878       soft:  Hide export from new clients, answer with ESHUTDOWN for all fur‐
7879       ther requests from existing clients.
7880
7881   Since
7882       2.12
7883
7884   nbd-server-remove (Command)
7885       Remove NBD export by name.
7886
7887   Arguments
7888       name: string
7889              Block export id.
7890
7891       mode: BlockExportRemoveMode (optional)
7892              Mode of command operation.  See  BlockExportRemoveMode  descrip‐
7893              tion.  Default is 'safe'.
7894
7895   Features
7896       deprecated
7897              This command is deprecated.  Use block-export-del instead.
7898
7899   Returns
7900       error if
7901
7902       • the server is not running
7903
7904       • export is not found
7905
7906       • mode is 'safe' and there are existing connections
7907
7908   Since
7909       2.12
7910
7911   nbd-server-stop (Command)
7912       Stop  QEMU's embedded NBD server, and unregister all devices previously
7913       added via nbd-server-add.
7914
7915   Since
7916       1.3
7917
7918   BlockExportType (Enum)
7919       An enumeration of block export types
7920
7921   Values
7922       nbd    NBD export
7923
7924       vhost-user-blk (If: CONFIG_VHOST_USER_BLK_SERVER)
7925              vhost-user-blk export (since 5.2)
7926
7927       fuse (If: CONFIG_FUSE)
7928              FUSE export (since: 6.0)
7929
7930       vduse-blk (If: CONFIG_VDUSE_BLK_EXPORT)
7931              vduse-blk export (since 7.1)
7932
7933   Since
7934       4.2
7935
7936   BlockExportOptions (Object)
7937       Describes a block export, i.e. how single node should be exported on an
7938       external interface.
7939
7940   Members
7941       id: string
7942              A  unique  identifier  for  the  block export (across all export
7943              types)
7944
7945       node-name: string
7946              The node name of the block node to be exported (since: 5.2)
7947
7948       writable: boolean (optional)
7949              True if clients should be able to write to the  export  (default
7950              false)
7951
7952       writethrough: boolean (optional)
7953              If true, caches are flushed after every write request to the ex‐
7954              port before completion  is  signalled.   (since:  5.2;  default:
7955              false)
7956
7957       iothread: string (optional)
7958              The  name of the iothread object where the export will run.  The
7959              default is to use the thread currently associated with the block
7960              node.  (since: 5.2)
7961
7962       fixed-iothread: boolean (optional)
7963              True  prevents the block node from being moved to another thread
7964              while the export is active.  If true and iothread is given,  ex‐
7965              port creation fails if the block node cannot be moved to the io‐
7966              thread.  The default is false.  (since: 5.2)
7967
7968       type: BlockExportType
7969              Not documented
7970
7971       The members of BlockExportOptionsNbd when type is "nbd"
7972
7973       The   members   of   BlockExportOptionsVhostUserBlk   when   type    is
7974       "vhost-user-blk" (If: CONFIG_VHOST_USER_BLK_SERVER)
7975
7976       The  members  of  BlockExportOptionsFuse  when type is "fuse" (If: CON‐
7977       FIG_FUSE)
7978
7979       The members of BlockExportOptionsVduseBlk when type is "vduse-blk" (If:
7980       CONFIG_VDUSE_BLK_EXPORT)
7981
7982   Since
7983       4.2
7984
7985   block-export-add (Command)
7986       Creates a new block export.
7987
7988   Arguments
7989       The members of BlockExportOptions
7990
7991   Since
7992       5.2
7993
7994   block-export-del (Command)
7995       Request  to  remove a block export.  This drops the user's reference to
7996       the export, but the export may still stay around after this command re‐
7997       turns until the shutdown of the export has completed.
7998
7999   Arguments
8000       id: string
8001              Block export id.
8002
8003       mode: BlockExportRemoveMode (optional)
8004              Mode  of  command operation.  See BlockExportRemoveMode descrip‐
8005              tion.  Default is 'safe'.
8006
8007   Returns
8008       Error if the export is not found or mode is 'safe' and  the  export  is
8009       still in use (e.g. by existing client connections)
8010
8011   Since
8012       5.2
8013
8014   BLOCK_EXPORT_DELETED (Event)
8015       Emitted when a block export is removed and its id can be reused.
8016
8017   Arguments
8018       id: string
8019              Block export id.
8020
8021   Since
8022       5.2
8023
8024   BlockExportInfo (Object)
8025       Information about a single block export.
8026
8027   Members
8028       id: string
8029              The unique identifier for the block export
8030
8031       type: BlockExportType
8032              The block export type
8033
8034       node-name: string
8035              The node name of the block node that is exported
8036
8037       shutting-down: boolean
8038              True  if  the  export  is  shutting down (e.g. after a block-ex‐
8039              port-del command, but before the shutdown has completed)
8040
8041   Since
8042       5.2
8043
8044   query-block-exports (Command)
8045   Returns
8046       A list of BlockExportInfo describing all block exports
8047
8048   Since
8049       5.2
8050

CHARACTER DEVICES

8052   ChardevInfo (Object)
8053       Information about a character device.
8054
8055   Members
8056       label: string
8057              the label of the character device
8058
8059       filename: string
8060              the filename of the character device
8061
8062       frontend-open: boolean
8063              shows whether the frontend device attached to this backend (e.g.
8064              with  the  chardev=... option) is in open or closed state (since
8065              2.1)
8066
8067   Notes
8068       filename is encoded using the QEMU command line character device encod‐
8069       ing.  See the QEMU man page for details.
8070
8071   Since
8072       0.14
8073
8074   query-chardev (Command)
8075       Returns information about current character devices.
8076
8077   Returns
8078       a list of ChardevInfo
8079
8080   Since
8081       0.14
8082
8083   Example
8084          -> { "execute": "query-chardev" }
8085          <- {
8086                "return": [
8087                   {
8088                      "label": "charchannel0",
8089                      "filename": "unix:/var/lib/libvirt/qemu/seabios.rhel6.agent,server=on",
8090                      "frontend-open": false
8091                   },
8092                   {
8093                      "label": "charmonitor",
8094                      "filename": "unix:/var/lib/libvirt/qemu/seabios.rhel6.monitor,server=on",
8095                      "frontend-open": true
8096                   },
8097                   {
8098                      "label": "charserial0",
8099                      "filename": "pty:/dev/pts/2",
8100                      "frontend-open": true
8101                   }
8102                ]
8103             }
8104
8105   ChardevBackendInfo (Object)
8106       Information about a character device backend
8107
8108   Members
8109       name: string
8110              The backend name
8111
8112   Since
8113       2.0
8114
8115   query-chardev-backends (Command)
8116       Returns information about character device backends.
8117
8118   Returns
8119       a list of ChardevBackendInfo
8120
8121   Since
8122       2.0
8123
8124   Example
8125          -> { "execute": "query-chardev-backends" }
8126          <- {
8127                "return":[
8128                   {
8129                      "name":"udp"
8130                   },
8131                   {
8132                      "name":"tcp"
8133                   },
8134                   {
8135                      "name":"unix"
8136                   },
8137                   {
8138                      "name":"spiceport"
8139                   }
8140                ]
8141             }
8142
8143   DataFormat (Enum)
8144       An enumeration of data format.
8145
8146   Values
8147       utf8   Data is a UTF-8 string (RFC 3629)
8148
8149       base64 Data is Base64 encoded binary (RFC 3548)
8150
8151   Since
8152       1.4
8153
8154   ringbuf-write (Command)
8155       Write to a ring buffer character device.
8156
8157   Arguments
8158       device: string
8159              the ring buffer character device name
8160
8161       data: string
8162              data to write
8163
8164       format: DataFormat (optional)
8165              data encoding (default 'utf8').
8166
8167              • base64: data must be base64 encoded text.  Its binary decoding
8168                gets written.
8169
8170              • utf8: data's UTF-8 encoding is written
8171
8172              • data itself is always Unicode regardless of format,  like  any
8173                other string.
8174
8175   Returns
8176       Nothing on success
8177
8178   Since
8179       1.4
8180
8181   Example
8182          -> { "execute": "ringbuf-write",
8183               "arguments": { "device": "foo",
8184                              "data": "abcdefgh",
8185                              "format": "utf8" } }
8186          <- { "return": {} }
8187
8188   ringbuf-read (Command)
8189       Read from a ring buffer character device.
8190
8191   Arguments
8192       device: string
8193              the ring buffer character device name
8194
8195       size: int
8196              how many bytes to read at most
8197
8198       format: DataFormat (optional)
8199              data encoding (default 'utf8').
8200
8201              • base64: the data read is returned in base64 encoding.
8202
8203              • utf8:  the  data read is interpreted as UTF-8.  Bug: can screw
8204                up when the buffer contains invalid UTF-8 sequences, NUL char‐
8205                acters,  after  the  ring  buffer  lost data, and when reading
8206                stops because the size limit is reached.
8207
8208              • The return value is always Unicode regardless of format,  like
8209                any other string.
8210
8211   Returns
8212       data read from the device
8213
8214   Since
8215       1.4
8216
8217   Example
8218          -> { "execute": "ringbuf-read",
8219               "arguments": { "device": "foo",
8220                              "size": 1000,
8221                              "format": "utf8" } }
8222          <- { "return": "abcdefgh" }
8223
8224   ChardevCommon (Object)
8225       Configuration shared across all chardev backends
8226
8227   Members
8228       logfile: string (optional)
8229              The name of a logfile to save output
8230
8231       logappend: boolean (optional)
8232              true  to  append  instead of truncate (default to false to trun‐
8233              cate)
8234
8235   Since
8236       2.6
8237
8238   ChardevFile (Object)
8239       Configuration info for file chardevs.
8240
8241   Members
8242       in: string (optional)
8243              The name of the input file
8244
8245       out: string
8246              The name of the output file
8247
8248       append: boolean (optional)
8249              Open the file in append mode (default false to truncate)  (Since
8250              2.6)
8251
8252       The members of ChardevCommon
8253
8254   Since
8255       1.4
8256
8257   ChardevHostdev (Object)
8258       Configuration info for device and pipe chardevs.
8259
8260   Members
8261       device: string
8262              The name of the special file for the device, i.e.  /dev/ttyS0 on
8263              Unix or COM1: on Windows
8264
8265       The members of ChardevCommon
8266
8267   Since
8268       1.4
8269
8270   ChardevSocket (Object)
8271       Configuration info for (stream) socket chardevs.
8272
8273   Members
8274       addr: SocketAddressLegacy
8275              socket  address  to  listen  on  (server=true)  or  connect   to
8276              (server=false)
8277
8278       tls-creds: string (optional)
8279              the ID of the TLS credentials object (since 2.6)
8280
8281       tls-authz: string (optional)
8282              the  ID  of  the  QAuthZ  authorization object against which the
8283              client's x509 distinguished name will be validated.  This object
8284              is only resolved at time of use, so can be deleted and recreated
8285              on the fly while the chardev server is active.  If  missing,  it
8286              will default to denying access (since 4.0)
8287
8288       server: boolean (optional)
8289              create server socket (default: true)
8290
8291       wait: boolean (optional)
8292              wait for incoming connection on server sockets (default: false).
8293              Silently ignored with server: false.  This use is deprecated.
8294
8295       nodelay: boolean (optional)
8296              set TCP_NODELAY socket option (default: false)
8297
8298       telnet: boolean (optional)
8299              enable telnet protocol on server sockets (default: false)
8300
8301       tn3270: boolean (optional)
8302              enable  tn3270  protocol  on  server  sockets  (default:  false)
8303              (Since: 2.10)
8304
8305       websocket: boolean (optional)
8306              enable  websocket  protocol  on  server sockets (default: false)
8307              (Since: 3.1)
8308
8309       reconnect: int (optional)
8310              For a client socket, if a socket is disconnected, then attempt a
8311              reconnect  after  the  given number of seconds.  Setting this to
8312              zero disables this function.  (default: 0) (Since: 2.2)
8313
8314       The members of ChardevCommon
8315
8316   Since
8317       1.4
8318
8319   ChardevUdp (Object)
8320       Configuration info for datagram socket chardevs.
8321
8322   Members
8323       remote: SocketAddressLegacy
8324              remote address
8325
8326       local: SocketAddressLegacy (optional)
8327              local address
8328
8329       The members of ChardevCommon
8330
8331   Since
8332       1.5
8333
8334   ChardevMux (Object)
8335       Configuration info for mux chardevs.
8336
8337   Members
8338       chardev: string
8339              name of the base chardev.
8340
8341       The members of ChardevCommon
8342
8343   Since
8344       1.5
8345
8346   ChardevStdio (Object)
8347       Configuration info for stdio chardevs.
8348
8349   Members
8350       signal: boolean (optional)
8351              Allow signals (such as SIGINT triggered by ^C) be  delivered  to
8352              qemu.  Default: true.
8353
8354       The members of ChardevCommon
8355
8356   Since
8357       1.5
8358
8359   ChardevSpiceChannel (Object)
8360       Configuration info for spice vm channel chardevs.
8361
8362   Members
8363       type: string
8364              kind of channel (for example vdagent).
8365
8366       The members of ChardevCommon
8367
8368   Since
8369       1.5
8370
8371   If
8372       CONFIG_SPICE
8373
8374   ChardevSpicePort (Object)
8375       Configuration info for spice port chardevs.
8376
8377   Members
8378       fqdn: string
8379              name of the channel (see docs/spice-port-fqdn.txt)
8380
8381       The members of ChardevCommon
8382
8383   Since
8384       1.5
8385
8386   If
8387       CONFIG_SPICE
8388
8389   ChardevDBus (Object)
8390       Configuration info for DBus chardevs.
8391
8392   Members
8393       name: string
8394              name of the channel (following docs/spice-port-fqdn.txt)
8395
8396       The members of ChardevCommon
8397
8398   Since
8399       7.0
8400
8401   If
8402       CONFIG_DBUS_DISPLAY
8403
8404   ChardevVC (Object)
8405       Configuration info for virtual console chardevs.
8406
8407   Members
8408       width: int (optional)
8409              console width, in pixels
8410
8411       height: int (optional)
8412              console height, in pixels
8413
8414       cols: int (optional)
8415              console width, in chars
8416
8417       rows: int (optional)
8418              console height, in chars
8419
8420       The members of ChardevCommon
8421
8422   Since
8423       1.5
8424
8425   ChardevRingbuf (Object)
8426       Configuration info for ring buffer chardevs.
8427
8428   Members
8429       size: int (optional)
8430              ring buffer size, must be power of two, default is 65536
8431
8432       The members of ChardevCommon
8433
8434   Since
8435       1.5
8436
8437   ChardevQemuVDAgent (Object)
8438       Configuration info for qemu vdagent implementation.
8439
8440   Members
8441       mouse: boolean (optional)
8442              enable/disable mouse, default is enabled.
8443
8444       clipboard: boolean (optional)
8445              enable/disable clipboard, default is disabled.
8446
8447       The members of ChardevCommon
8448
8449   Since
8450       6.1
8451
8452   If
8453       CONFIG_SPICE_PROTOCOL
8454
8455   ChardevBackendKind (Enum)
8456   Values
8457       pipe   Since 1.5
8458
8459       udp    Since 1.5
8460
8461       mux    Since 1.5
8462
8463       msmouse
8464              Since 1.5
8465
8466       wctablet
8467              Since 2.9
8468
8469       braille
8470              Since 1.5
8471
8472       testdev
8473              Since 2.2
8474
8475       stdio  Since 1.5
8476
8477       console
8478              Since 1.5
8479
8480       spicevmc (If: CONFIG_SPICE)
8481              Since 1.5
8482
8483       spiceport (If: CONFIG_SPICE)
8484              Since 1.5
8485
8486       qemu-vdagent (If: CONFIG_SPICE_PROTOCOL)
8487              Since 6.1
8488
8489       dbus (If: CONFIG_DBUS_DISPLAY)
8490              Since 7.0
8491
8492       vc     v1.5
8493
8494       ringbuf
8495              Since 1.6
8496
8497       memory Since 1.5
8498
8499       file   Not documented
8500
8501       serial Not documented
8502
8503       parallel
8504              Not documented
8505
8506       socket Not documented
8507
8508       pty    Not documented
8509
8510       null   Not documented
8511
8512   Since
8513       1.4
8514
8515   ChardevFileWrapper (Object)
8516   Members
8517       data: ChardevFile
8518              Not documented
8519
8520   Since
8521       1.4
8522
8523   ChardevHostdevWrapper (Object)
8524   Members
8525       data: ChardevHostdev
8526              Not documented
8527
8528   Since
8529       1.4
8530
8531   ChardevSocketWrapper (Object)
8532   Members
8533       data: ChardevSocket
8534              Not documented
8535
8536   Since
8537       1.4
8538
8539   ChardevUdpWrapper (Object)
8540   Members
8541       data: ChardevUdp
8542              Not documented
8543
8544   Since
8545       1.5
8546
8547   ChardevCommonWrapper (Object)
8548   Members
8549       data: ChardevCommon
8550              Not documented
8551
8552   Since
8553       2.6
8554
8555   ChardevMuxWrapper (Object)
8556   Members
8557       data: ChardevMux
8558              Not documented
8559
8560   Since
8561       1.5
8562
8563   ChardevStdioWrapper (Object)
8564   Members
8565       data: ChardevStdio
8566              Not documented
8567
8568   Since
8569       1.5
8570
8571   ChardevSpiceChannelWrapper (Object)
8572   Members
8573       data: ChardevSpiceChannel
8574              Not documented
8575
8576   Since
8577       1.5
8578
8579   If
8580       CONFIG_SPICE
8581
8582   ChardevSpicePortWrapper (Object)
8583   Members
8584       data: ChardevSpicePort
8585              Not documented
8586
8587   Since
8588       1.5
8589
8590   If
8591       CONFIG_SPICE
8592
8593   ChardevQemuVDAgentWrapper (Object)
8594   Members
8595       data: ChardevQemuVDAgent
8596              Not documented
8597
8598   Since
8599       6.1
8600
8601   If
8602       CONFIG_SPICE_PROTOCOL
8603
8604   ChardevDBusWrapper (Object)
8605   Members
8606       data: ChardevDBus
8607              Not documented
8608
8609   Since
8610       7.0
8611
8612   If
8613       CONFIG_DBUS_DISPLAY
8614
8615   ChardevVCWrapper (Object)
8616   Members
8617       data: ChardevVC
8618              Not documented
8619
8620   Since
8621       1.5
8622
8623   ChardevRingbufWrapper (Object)
8624   Members
8625       data: ChardevRingbuf
8626              Not documented
8627
8628   Since
8629       1.5
8630
8631   ChardevBackend (Object)
8632       Configuration info for the new chardev backend.
8633
8634   Members
8635       type: ChardevBackendKind
8636              Not documented
8637
8638       The members of ChardevFileWrapper when type is "file"
8639
8640       The members of ChardevHostdevWrapper when type is "serial"
8641
8642       The members of ChardevHostdevWrapper when type is "parallel"
8643
8644       The members of ChardevHostdevWrapper when type is "pipe"
8645
8646       The members of ChardevSocketWrapper when type is "socket"
8647
8648       The members of ChardevUdpWrapper when type is "udp"
8649
8650       The members of ChardevCommonWrapper when type is "pty"
8651
8652       The members of ChardevCommonWrapper when type is "null"
8653
8654       The members of ChardevMuxWrapper when type is "mux"
8655
8656       The members of ChardevCommonWrapper when type is "msmouse"
8657
8658       The members of ChardevCommonWrapper when type is "wctablet"
8659
8660       The members of ChardevCommonWrapper when type is "braille"
8661
8662       The members of ChardevCommonWrapper when type is "testdev"
8663
8664       The members of ChardevStdioWrapper when type is "stdio"
8665
8666       The members of ChardevCommonWrapper when type is "console"
8667
8668       The  members of ChardevSpiceChannelWrapper when type is "spicevmc" (If:
8669       CONFIG_SPICE)
8670
8671       The members of ChardevSpicePortWrapper when type  is  "spiceport"  (If:
8672       CONFIG_SPICE)
8673
8674       The  members  of  ChardevQemuVDAgentWrapper when type is "qemu-vdagent"
8675       (If: CONFIG_SPICE_PROTOCOL)
8676
8677       The members  of  ChardevDBusWrapper  when  type  is  "dbus"  (If:  CON‐
8678       FIG_DBUS_DISPLAY)
8679
8680       The members of ChardevVCWrapper when type is "vc"
8681
8682       The members of ChardevRingbufWrapper when type is "ringbuf"
8683
8684       The members of ChardevRingbufWrapper when type is "memory"
8685
8686   Since
8687       1.4
8688
8689   ChardevReturn (Object)
8690       Return info about the chardev backend just created.
8691
8692   Members
8693       pty: string (optional)
8694              name  of the slave pseudoterminal device, present if and only if
8695              a chardev of type 'pty' was created
8696
8697   Since
8698       1.4
8699
8700   chardev-add (Command)
8701       Add a character device backend
8702
8703   Arguments
8704       id: string
8705              the chardev's ID, must be unique
8706
8707       backend: ChardevBackend
8708              backend type and parameters
8709
8710   Returns
8711       ChardevReturn.
8712
8713   Since
8714       1.4
8715
8716   Examples
8717          -> { "execute" : "chardev-add",
8718               "arguments" : { "id" : "foo",
8719                               "backend" : { "type" : "null", "data" : {} } } }
8720          <- { "return": {} }
8721
8722          -> { "execute" : "chardev-add",
8723               "arguments" : { "id" : "bar",
8724                               "backend" : { "type" : "file",
8725                                             "data" : { "out" : "/tmp/bar.log" } } } }
8726          <- { "return": {} }
8727
8728          -> { "execute" : "chardev-add",
8729               "arguments" : { "id" : "baz",
8730                               "backend" : { "type" : "pty", "data" : {} } } }
8731          <- { "return": { "pty" : "/dev/pty/42" } }
8732
8733   chardev-change (Command)
8734       Change a character device backend
8735
8736   Arguments
8737       id: string
8738              the chardev's ID, must exist
8739
8740       backend: ChardevBackend
8741              new backend type and parameters
8742
8743   Returns
8744       ChardevReturn.
8745
8746   Since
8747       2.10
8748
8749   Examples
8750          -> { "execute" : "chardev-change",
8751               "arguments" : { "id" : "baz",
8752                               "backend" : { "type" : "pty", "data" : {} } } }
8753          <- { "return": { "pty" : "/dev/pty/42" } }
8754
8755          -> {"execute" : "chardev-change",
8756              "arguments" : {
8757                  "id" : "charchannel2",
8758                  "backend" : {
8759                      "type" : "socket",
8760                      "data" : {
8761                          "addr" : {
8762                              "type" : "unix" ,
8763                              "data" : {
8764                                  "path" : "/tmp/charchannel2.socket"
8765                              }
8766                           },
8767                           "server" : true,
8768                           "wait" : false }}}}
8769          <- {"return": {}}
8770
8771   chardev-remove (Command)
8772       Remove a character device backend
8773
8774   Arguments
8775       id: string
8776              the chardev's ID, must exist and not be in use
8777
8778   Returns
8779       Nothing on success
8780
8781   Since
8782       1.4
8783
8784   Example
8785          -> { "execute": "chardev-remove", "arguments": { "id" : "foo" } }
8786          <- { "return": {} }
8787
8788   chardev-send-break (Command)
8789       Send a break to a character device
8790
8791   Arguments
8792       id: string
8793              the chardev's ID, must exist
8794
8795   Returns
8796       Nothing on success
8797
8798   Since
8799       2.10
8800
8801   Example
8802          -> { "execute": "chardev-send-break", "arguments": { "id" : "foo" } }
8803          <- { "return": {} }
8804
8805   VSERPORT_CHANGE (Event)
8806       Emitted when the guest opens or closes a virtio-serial port.
8807
8808   Arguments
8809       id: string
8810              device identifier of the virtio-serial port
8811
8812       open: boolean
8813              true if the guest has opened the virtio-serial port
8814
8815   Note
8816       This event is rate-limited.
8817
8818   Since
8819       2.1
8820
8821   Example
8822          <- { "event": "VSERPORT_CHANGE",
8823               "data": { "id": "channel0", "open": true },
8824               "timestamp": { "seconds": 1401385907, "microseconds": 422329 } }
8825

USER AUTHORIZATION

8827   QAuthZListPolicy (Enum)
8828       The authorization policy result
8829
8830   Values
8831       deny   deny access
8832
8833       allow  allow access
8834
8835   Since
8836       4.0
8837
8838   QAuthZListFormat (Enum)
8839       The authorization policy match format
8840
8841   Values
8842       exact  an exact string match
8843
8844       glob   string with ? and * shell wildcard support
8845
8846   Since
8847       4.0
8848
8849   QAuthZListRule (Object)
8850       A single authorization rule.
8851
8852   Members
8853       match: string
8854              a string or glob to match against a user identity
8855
8856       policy: QAuthZListPolicy
8857              the result to return if match evaluates to true
8858
8859       format: QAuthZListFormat (optional)
8860              the format of the match rule (default 'exact')
8861
8862   Since
8863       4.0
8864
8865   AuthZListProperties (Object)
8866       Properties for authz-list objects.
8867
8868   Members
8869       policy: QAuthZListPolicy (optional)
8870              Default policy to apply when no rule matches (default: deny)
8871
8872       rules: array of QAuthZListRule (optional)
8873              Authorization rules based on matching user
8874
8875   Since
8876       4.0
8877
8878   AuthZListFileProperties (Object)
8879       Properties for authz-listfile objects.
8880
8881   Members
8882       filename: string
8883              File name to load the configuration from.  The file must contain
8884              valid JSON for AuthZListProperties.
8885
8886       refresh: boolean (optional)
8887              If  true,  inotify  is  used  to monitor the file, automatically
8888              reloading changes.  If an error occurs during reloading, all au‐
8889              thorizations  will  fail  until  the  file  is next successfully
8890              loaded.  (default: true if the binary was built with CONFIG_INO‐
8891              TIFY1, false otherwise)
8892
8893   Since
8894       4.0
8895
8896   AuthZPAMProperties (Object)
8897       Properties for authz-pam objects.
8898
8899   Members
8900       service: string
8901              PAM service name to use for authorization
8902
8903   Since
8904       4.0
8905
8906   AuthZSimpleProperties (Object)
8907       Properties for authz-simple objects.
8908
8909   Members
8910       identity: string
8911              Identifies  the allowed user.  Its format depends on the network
8912              service that authorization object is associated with.   For  au‐
8913              thorizing  based  on TLS x509 certificates, the identity must be
8914              the x509 distinguished name.
8915
8916   Since
8917       4.0
8918

TRANSACTIONS

8920   Abort (Object)
8921       This action can be used to test transaction failure.
8922
8923   Since
8924       1.6
8925
8926   ActionCompletionMode (Enum)
8927       An enumeration of Transactional completion modes.
8928
8929   Values
8930       individual
8931              Do not attempt to cancel any other Actions if any  Actions  fail
8932              after  the  Transaction  request succeeds.  All Actions that can
8933              complete successfully will do  so  without  waiting  on  others.
8934              This is the default.
8935
8936       grouped
8937              If  any  Action fails after the Transaction succeeds, cancel all
8938              Actions.  Actions do not complete until all Actions are ready to
8939              complete.   May  be rejected by Actions that do not support this
8940              completion mode.
8941
8942   Since
8943       2.5
8944
8945   TransactionActionKind (Enum)
8946   Values
8947       abort  Since 1.6
8948
8949       block-dirty-bitmap-add
8950              Since 2.5
8951
8952       block-dirty-bitmap-remove
8953              Since 4.2
8954
8955       block-dirty-bitmap-clear
8956              Since 2.5
8957
8958       block-dirty-bitmap-enable
8959              Since 4.0
8960
8961       block-dirty-bitmap-disable
8962              Since 4.0
8963
8964       block-dirty-bitmap-merge
8965              Since 4.0
8966
8967       blockdev-backup
8968              Since 2.3
8969
8970       blockdev-snapshot
8971              Since 2.5
8972
8973       blockdev-snapshot-internal-sync
8974              Since 1.7
8975
8976       blockdev-snapshot-sync
8977              since 1.1
8978
8979       drive-backup
8980              Since 1.6
8981
8982   Features
8983       deprecated
8984              Member drive-backup is deprecated.  Use  member  blockdev-backup
8985              instead.
8986
8987   Since
8988       1.1
8989
8990   AbortWrapper (Object)
8991   Members
8992       data: Abort
8993              Not documented
8994
8995   Since
8996       1.6
8997
8998   BlockDirtyBitmapAddWrapper (Object)
8999   Members
9000       data: BlockDirtyBitmapAdd
9001              Not documented
9002
9003   Since
9004       2.5
9005
9006   BlockDirtyBitmapWrapper (Object)
9007   Members
9008       data: BlockDirtyBitmap
9009              Not documented
9010
9011   Since
9012       2.5
9013
9014   BlockDirtyBitmapMergeWrapper (Object)
9015   Members
9016       data: BlockDirtyBitmapMerge
9017              Not documented
9018
9019   Since
9020       4.0
9021
9022   BlockdevBackupWrapper (Object)
9023   Members
9024       data: BlockdevBackup
9025              Not documented
9026
9027   Since
9028       2.3
9029
9030   BlockdevSnapshotWrapper (Object)
9031   Members
9032       data: BlockdevSnapshot
9033              Not documented
9034
9035   Since
9036       2.5
9037
9038   BlockdevSnapshotInternalWrapper (Object)
9039   Members
9040       data: BlockdevSnapshotInternal
9041              Not documented
9042
9043   Since
9044       1.7
9045
9046   BlockdevSnapshotSyncWrapper (Object)
9047   Members
9048       data: BlockdevSnapshotSync
9049              Not documented
9050
9051   Since
9052       1.1
9053
9054   DriveBackupWrapper (Object)
9055   Members
9056       data: DriveBackup
9057              Not documented
9058
9059   Since
9060       1.6
9061
9062   TransactionAction (Object)
9063       A  discriminated record of operations that can be performed with trans‐
9064       action.
9065
9066   Members
9067       type: TransactionActionKind
9068              Not documented
9069
9070       The members of AbortWrapper when type is "abort"
9071
9072       The   members    of    BlockDirtyBitmapAddWrapper    when    type    is
9073       "block-dirty-bitmap-add"
9074
9075       The  members  of BlockDirtyBitmapWrapper when type is "block-dirty-bit‐
9076       map-remove"
9077
9078       The members of BlockDirtyBitmapWrapper when type  is  "block-dirty-bit‐
9079       map-clear"
9080
9081       The  members  of BlockDirtyBitmapWrapper when type is "block-dirty-bit‐
9082       map-enable"
9083
9084       The members of BlockDirtyBitmapWrapper when type  is  "block-dirty-bit‐
9085       map-disable"
9086
9087       The    members    of    BlockDirtyBitmapMergeWrapper   when   type   is
9088       "block-dirty-bitmap-merge"
9089
9090       The members of BlockdevBackupWrapper when type is "blockdev-backup"
9091
9092       The members of BlockdevSnapshotWrapper when type is "blockdev-snapshot"
9093
9094       The members of BlockdevSnapshotInternalWrapper  when  type  is  "block‐
9095       dev-snapshot-internal-sync"
9096
9097       The members of BlockdevSnapshotSyncWrapper when type is "blockdev-snap‐
9098       shot-sync"
9099
9100       The members of DriveBackupWrapper when type is "drive-backup"
9101
9102   Since
9103       1.1
9104
9105   TransactionProperties (Object)
9106       Optional arguments to modify the behavior of a Transaction.
9107
9108   Members
9109       completion-mode: ActionCompletionMode (optional)
9110              Controls how jobs launched asynchronously by Actions  will  com‐
9111              plete or fail as a group.  See ActionCompletionMode for details.
9112
9113   Since
9114       2.5
9115
9116   transaction (Command)
9117       Executes  a  number of transactionable QMP commands atomically.  If any
9118       operation fails, then the entire set of actions will be  abandoned  and
9119       the appropriate error returned.
9120
9121       For external snapshots, the dictionary contains the device, the file to
9122       use for the new snapshot, and the format.  The default format,  if  not
9123       specified, is qcow2.
9124
9125       Each  new  snapshot  defaults to being created by QEMU (wiping any con‐
9126       tents if the file already exists), but it is also possible to reuse  an
9127       externally-created  file.   In  the latter case, you should ensure that
9128       the new image file has the same contents as the current one; QEMU  can‐
9129       not  perform any meaningful check.  Typically this is achieved by using
9130       the current image file as the backing file for the new image.
9131
9132       On failure, the original disks pre-snapshot attempt will be used.
9133
9134       For internal snapshots, the dictionary  contains  the  device  and  the
9135       snapshot's name.  If an internal snapshot matching name already exists,
9136       the request will be rejected.  Only some image formats support it,  for
9137       example, qcow2, and rbd,
9138
9139       On failure, qemu will try delete the newly created internal snapshot in
9140       the transaction.  When an I/O error occurs during  deletion,  the  user
9141       needs to fix it later with qemu-img or other command.
9142
9143   Arguments
9144       actions: array of TransactionAction
9145              List of TransactionAction; information needed for the respective
9146              operations.
9147
9148       properties: TransactionProperties (optional)
9149              structure of additional options to control the execution of  the
9150              transaction.  See TransactionProperties for additional detail.
9151
9152   Returns
9153       nothing on success
9154
9155       Errors depend on the operations of the transaction
9156
9157   Note
9158       The  transaction aborts on the first failure.  Therefore, there will be
9159       information on only one failed operation returned in  an  error  condi‐
9160       tion, and subsequent actions will not have been attempted.
9161
9162   Since
9163       1.1
9164
9165   Example
9166          -> { "execute": "transaction",
9167               "arguments": { "actions": [
9168                   { "type": "blockdev-snapshot-sync", "data" : { "device": "ide-hd0",
9169                                               "snapshot-file": "/some/place/my-image",
9170                                               "format": "qcow2" } },
9171                   { "type": "blockdev-snapshot-sync", "data" : { "node-name": "myfile",
9172                                               "snapshot-file": "/some/place/my-image2",
9173                                               "snapshot-node-name": "node3432",
9174                                               "mode": "existing",
9175                                               "format": "qcow2" } },
9176                   { "type": "blockdev-snapshot-sync", "data" : { "device": "ide-hd1",
9177                                               "snapshot-file": "/some/place/my-image2",
9178                                               "mode": "existing",
9179                                               "format": "qcow2" } },
9180                   { "type": "blockdev-snapshot-internal-sync", "data" : {
9181                                               "device": "ide-hd2",
9182                                               "name": "snapshot0" } } ] } }
9183          <- { "return": {} }
9184

QMP MONITOR CONTROL

9186   qmp_capabilities (Command)
9187       Enable QMP capabilities.
9188
9189       Arguments:
9190
9191   Arguments
9192       enable: array of QMPCapability (optional)
9193              An  optional list of QMPCapability values to enable.  The client
9194              must not enable any capability that is not mentioned in the  QMP
9195              greeting message.  If the field is not provided, it means no QMP
9196              capabilities will be enabled.  (since 2.12)
9197
9198   Example
9199          -> { "execute": "qmp_capabilities",
9200               "arguments": { "enable": [ "oob" ] } }
9201          <- { "return": {} }
9202
9203   Notes
9204       This command is valid exactly when first connecting: it must be  issued
9205       before any other command will be accepted, and will fail once the moni‐
9206       tor is accepting other commands.  (see qemu docs/interop/qmp-spec.rst)
9207
9208       The QMP client needs to explicitly enable QMP  capabilities,  otherwise
9209       all the QMP capabilities will be turned off by default.
9210
9211   Since
9212       0.13
9213
9214   QMPCapability (Enum)
9215       Enumeration of capabilities to be advertised during initial client con‐
9216       nection, used for agreeing on particular QMP extension behaviors.
9217
9218   Values
9219       oob    QMP ability to support out-of-band requests.  (Please  refer  to
9220              qmp-spec.rst for more information on OOB)
9221
9222   Since
9223       2.12
9224
9225   VersionTriple (Object)
9226       A three-part version number.
9227
9228   Members
9229       major: int
9230              The major version number.
9231
9232       minor: int
9233              The minor version number.
9234
9235       micro: int
9236              The micro version number.
9237
9238   Since
9239       2.4
9240
9241   VersionInfo (Object)
9242       A description of QEMU's version.
9243
9244   Members
9245       qemu: VersionTriple
9246              The  version of QEMU.  By current convention, a micro version of
9247              50 signifies a development branch.  A micro version greater than
9248              or  equal to 90 signifies a release candidate for the next minor
9249              version.  A micro version of less than 50 signifies a stable re‐
9250              lease.
9251
9252       package: string
9253              QEMU  will always set this field to an empty string.  Downstream
9254              versions of QEMU should set this to a non-empty string.  The ex‐
9255              act  format  depends  on the downstream however it highly recom‐
9256              mended that a unique name is used.
9257
9258   Since
9259       0.14
9260
9261   query-version (Command)
9262       Returns the current version of QEMU.
9263
9264   Returns
9265       A VersionInfo object describing the current version of QEMU.
9266
9267   Since
9268       0.14
9269
9270   Example
9271          -> { "execute": "query-version" }
9272          <- {
9273                "return":{
9274                   "qemu":{
9275                      "major":0,
9276                      "minor":11,
9277                      "micro":5
9278                   },
9279                   "package":""
9280                }
9281             }
9282
9283   CommandInfo (Object)
9284       Information about a QMP command
9285
9286   Members
9287       name: string
9288              The command name
9289
9290   Since
9291       0.14
9292
9293   query-commands (Command)
9294       Return a list of supported QMP commands by this server
9295
9296   Returns
9297       A list of CommandInfo for all supported commands
9298
9299   Since
9300       0.14
9301
9302   Example
9303          -> { "execute": "query-commands" }
9304          <- {
9305               "return":[
9306                  {
9307                     "name":"query-balloon"
9308                  },
9309                  {
9310                     "name":"system_powerdown"
9311                  }
9312               ]
9313             }
9314
9315   Note
9316       This example has been shortened as the real response is too long.
9317
9318   quit (Command)
9319       This command will cause the QEMU process to exit gracefully.  While ev‐
9320       ery  attempt  is made to send the QMP response before terminating, this
9321       is not guaranteed.  When using this interface, a  premature  EOF  would
9322       not be unexpected.
9323
9324   Since
9325       0.14
9326
9327   Example
9328          -> { "execute": "quit" }
9329          <- { "return": {} }
9330
9331   MonitorMode (Enum)
9332       An enumeration of monitor modes.
9333
9334   Values
9335       readline
9336              HMP monitor (human-oriented command line interface)
9337
9338       control
9339              QMP monitor (JSON-based machine interface)
9340
9341   Since
9342       5.0
9343
9344   MonitorOptions (Object)
9345       Options to be used for adding a new monitor.
9346
9347   Members
9348       id: string (optional)
9349              Name of the monitor
9350
9351       mode: MonitorMode (optional)
9352              Selects the monitor mode (default: readline in the system emula‐
9353              tor, control in qemu-storage-daemon)
9354
9355       pretty: boolean (optional)
9356              Enables pretty printing (QMP only)
9357
9358       chardev: string
9359              Name of a character device to expose the monitor on
9360
9361   Since
9362       5.0
9363

QMP INTROSPECTION

9365   query-qmp-schema (Command)
9366       Command query-qmp-schema exposes the  QMP  wire  ABI  as  an  array  of
9367       SchemaInfo.   This lets QMP clients figure out what commands and events
9368       are available in this QEMU, and their parameters and results.
9369
9370       However, the SchemaInfo can't reflect all the  rules  and  restrictions
9371       that  apply  to QMP.  It's interface introspection (figuring out what's
9372       there), not interface specification.  The specification is in the  QAPI
9373       schema.
9374
9375       Furthermore, while we strive to keep the QMP wire format backwards-com‐
9376       patible across qemu versions, the introspection output is  not  guaran‐
9377       teed  to have the same stability.  For example, one version of qemu may
9378       list an object member as an optional non-variant, while  another  lists
9379       the  same  member  only through the object's variants; or the type of a
9380       member may change from a generic string into a specific  enum  or  from
9381       one  specific  type  into  an alternate that includes the original type
9382       alongside something else.
9383
9384   Returns
9385       array of SchemaInfo, where each element describes an entity in the ABI:
9386       command, event, type, ...
9387
9388       The  order of the various SchemaInfo is unspecified; however, all names
9389       are guaranteed to be unique (no name will be duplicated with  different
9390       meta-types).
9391
9392   Note
9393       the  QAPI  schema  is  also used to help define internal interfaces, by
9394       defining QAPI types.  These are not part  of  the  QMP  wire  ABI,  and
9395       therefore not returned by this command.
9396
9397   Since
9398       2.5
9399
9400   SchemaMetaType (Enum)
9401       This is a SchemaInfo's meta type, i.e. the kind of entity it describes.
9402
9403   Values
9404       builtin
9405              a predefined type such as 'int' or 'bool'.
9406
9407       enum   an enumeration type
9408
9409       array  an array type
9410
9411       object an object type (struct or union)
9412
9413       alternate
9414              an alternate type
9415
9416       command
9417              a QMP command
9418
9419       event  a QMP event
9420
9421   Since
9422       2.5
9423
9424   SchemaInfo (Object)
9425   Members
9426       name: string
9427              the  entity's  name, inherited from base.  The SchemaInfo is al‐
9428              ways referenced by this name.  Commands and events have the name
9429              defined  in  the  QAPI  schema.  Unlike command and event names,
9430              type names are not part of the  wire  ABI.   Consequently,  type
9431              names  are  meaningless  strings  here,  although they are still
9432              guaranteed unique regardless of meta-type.
9433
9434       meta-type: SchemaMetaType
9435              the entity's meta type, inherited from base.
9436
9437       features: array of string (optional)
9438              names of features associated with the entity, in  no  particular
9439              order.   (since  4.1 for object types, 4.2 for commands, 5.0 for
9440              the rest)
9441
9442       The members of SchemaInfoBuiltin when meta-type is "builtin"
9443
9444       The members of SchemaInfoEnum when meta-type is "enum"
9445
9446       The members of SchemaInfoArray when meta-type is "array"
9447
9448       The members of SchemaInfoObject when meta-type is "object"
9449
9450       The members of SchemaInfoAlternate when meta-type is "alternate"
9451
9452       The members of SchemaInfoCommand when meta-type is "command"
9453
9454       The members of SchemaInfoEvent when meta-type is "event"
9455       Additional members depend on the value of meta-type.
9456
9457   Since
9458       2.5
9459
9460   SchemaInfoBuiltin (Object)
9461       Additional SchemaInfo members for meta-type 'builtin'.
9462
9463   Members
9464       json-type: JSONType
9465              the JSON type used for this type on the wire.
9466
9467   Since
9468       2.5
9469
9470   JSONType (Enum)
9471       The four primitive and two structured types according to RFC 8259  sec‐
9472       tion  1,  plus  'int'  (split  off 'number'), plus the obvious top type
9473       'value'.
9474
9475   Values
9476       string Not documented
9477
9478       number Not documented
9479
9480       int    Not documented
9481
9482       boolean
9483              Not documented
9484
9485       null   Not documented
9486
9487       object Not documented
9488
9489       array  Not documented
9490
9491       value  Not documented
9492
9493   Since
9494       2.5
9495
9496   SchemaInfoEnum (Object)
9497       Additional SchemaInfo members for meta-type 'enum'.
9498
9499   Members
9500       members: array of SchemaInfoEnumMember
9501              the enum type's members, in no particular order (since 6.2).
9502
9503       values: array of string
9504              the enumeration type's member names,  in  no  particular  order.
9505              Redundant with members.  Just for backward compatibility.
9506
9507   Features
9508       deprecated
9509              Member values is deprecated.  Use members instead.
9510       Values of this type are JSON string on the wire.
9511
9512   Since
9513       2.5
9514
9515   SchemaInfoEnumMember (Object)
9516       An object member.
9517
9518   Members
9519       name: string
9520              the member's name, as defined in the QAPI schema.
9521
9522       features: array of string (optional)
9523              names  of  features associated with the member, in no particular
9524              order.
9525
9526   Since
9527       6.2
9528
9529   SchemaInfoArray (Object)
9530       Additional SchemaInfo members for meta-type 'array'.
9531
9532   Members
9533       element-type: string
9534              the array type's element type.
9535       Values of this type are JSON array on the wire.
9536
9537   Since
9538       2.5
9539
9540   SchemaInfoObject (Object)
9541       Additional SchemaInfo members for meta-type 'object'.
9542
9543   Members
9544       members: array of SchemaInfoObjectMember
9545              the object type's (non-variant) members, in no particular order.
9546
9547       tag: string (optional)
9548              the name of the member serving as type tag.  An element of  mem‐
9549              bers with this name must exist.
9550
9551       variants: array of SchemaInfoObjectVariant (optional)
9552              variant members, i.e. additional members that depend on the type
9553              tag's value.  Present exactly when tag is present.  The variants
9554              are  in  no particular order, and may even differ from the order
9555              of the values of the enum type of the tag.
9556       Values of this type are JSON object on the wire.
9557
9558   Since
9559       2.5
9560
9561   SchemaInfoObjectMember (Object)
9562       An object member.
9563
9564   Members
9565       name: string
9566              the member's name, as defined in the QAPI schema.
9567
9568       type: string
9569              the name of the member's type.
9570
9571       default: value (optional)
9572              default when used as command parameter.  If absent, the  parame‐
9573              ter  is mandatory.  If present, the value must be null.  The pa‐
9574              rameter is optional, and behavior when it's missing is not spec‐
9575              ified  here.  Future extension: if present and non-null, the pa‐
9576              rameter is optional, and defaults to this value.
9577
9578       features: array of string (optional)
9579              names of features associated with the member, in  no  particular
9580              order.  (since 5.0)
9581
9582   Since
9583       2.5
9584
9585   SchemaInfoObjectVariant (Object)
9586       The variant members for a value of the type tag.
9587
9588   Members
9589       case: string
9590              a value of the type tag.
9591
9592       type: string
9593              the  name  of  the object type that provides the variant members
9594              when the type tag has value case.
9595
9596   Since
9597       2.5
9598
9599   SchemaInfoAlternate (Object)
9600       Additional SchemaInfo members for meta-type 'alternate'.
9601
9602   Members
9603       members: array of SchemaInfoAlternateMember
9604              the alternate type's members, in no particular order.  The  mem‐
9605              bers'     wire    encoding    is    distinct,    see    docs/de‐
9606              vel/qapi-code-gen.txt section Alternate types.
9607       On the wire, this can be any of the members.
9608
9609   Since
9610       2.5
9611
9612   SchemaInfoAlternateMember (Object)
9613       An alternate member.
9614
9615   Members
9616       type: string
9617              the name of the member's type.
9618
9619   Since
9620       2.5
9621
9622   SchemaInfoCommand (Object)
9623       Additional SchemaInfo members for meta-type 'command'.
9624
9625   Members
9626       arg-type: string
9627              the name of the object type that provides the command's  parame‐
9628              ters.
9629
9630       ret-type: string
9631              the name of the command's result type.
9632
9633       allow-oob: boolean (optional)
9634              whether  the  command  allows out-of-band execution, defaults to
9635              false (Since: 2.12)
9636
9637   Since
9638       2.5
9639
9640   SchemaInfoEvent (Object)
9641       Additional SchemaInfo members for meta-type 'event'.
9642
9643   Members
9644       arg-type: string
9645              the name of the object type that provides  the  event's  parame‐
9646              ters.
9647
9648   Since
9649       2.5
9650

QEMU OBJECT MODEL (QOM)

9652   ObjectPropertyInfo (Object)
9653   Members
9654       name: string
9655              the name of the property
9656
9657       type: string
9658              the  type  of  the property.  This will typically come in one of
9659              four forms:
9660
9661              1. A primitive type such as 'u8', 'u16', 'bool', 'str', or 'dou‐
9662                 ble'.  These types are mapped to the appropriate JSON type.
9663
9664              2. A  child type in the form 'child<subtype>' where subtype is a
9665                 qdev device type name.  Child properties create the  composi‐
9666                 tion tree.
9667
9668              3. A  link  type  in the form 'link<subtype>' where subtype is a
9669                 qdev device type name.  Link properties form the device model
9670                 graph.
9671
9672       description: string (optional)
9673              if specified, the description of the property.
9674
9675       default-value: value (optional)
9676              the default value, if any (since 5.0)
9677
9678   Since
9679       1.2
9680
9681   qom-list (Command)
9682       This  command  will list any properties of a object given a path in the
9683       object model.
9684
9685   Arguments
9686       path: string
9687              the path within the object model.  See qom-get for a description
9688              of this parameter.
9689
9690   Returns
9691       a  list  of  ObjectPropertyInfo that describe the properties of the ob‐
9692       ject.
9693
9694   Since
9695       1.2
9696
9697   Example
9698          -> { "execute": "qom-list",
9699               "arguments": { "path": "/chardevs" } }
9700          <- { "return": [ { "name": "type", "type": "string" },
9701                           { "name": "parallel0", "type": "child<chardev-vc>" },
9702                           { "name": "serial0", "type": "child<chardev-vc>" },
9703                           { "name": "mon0", "type": "child<chardev-stdio>" } ] }
9704
9705   qom-get (Command)
9706       This command will get a property from a object model  path  and  return
9707       the value.
9708
9709   Arguments
9710       path: string
9711              The  path  within the object model.  There are two forms of sup‐
9712              ported paths--absolute and partial paths.
9713
9714              Absolute paths are derived from the root object and  can  follow
9715              child<>  or  link<>  properties.   Since  they can follow link<>
9716              properties, they can be arbitrarily long.  Absolute  paths  look
9717              like absolute filenames and are prefixed  with a leading slash.
9718
9719              Partial  paths  look like relative filenames.  They do not begin
9720              with a prefix.  The matching rules for partial paths are  subtle
9721              but  designed to make specifying objects easy.  At each level of
9722              the composition tree, the partial path is matched as an absolute
9723              path.   The  first  match is not returned.  At least two matches
9724              are searched for.  A successful result is only returned if  only
9725              one  match is found.  If more than one match is found, a flag is
9726              return to indicate that the match was ambiguous.
9727
9728       property: string
9729              The property name to read
9730
9731   Returns
9732       The property value.  The type depends on the  property  type.   child<>
9733       and  link<>  properties  are  returned  as #str pathnames.  All integer
9734       property types (u8, u16, etc) are returned as #int.
9735
9736   Since
9737       1.2
9738
9739   Examples
9740          1. Use absolute path
9741
9742          -> { "execute": "qom-get",
9743               "arguments": { "path": "/machine/unattached/device[0]",
9744                              "property": "hotplugged" } }
9745          <- { "return": false }
9746
9747          2. Use partial path
9748
9749          -> { "execute": "qom-get",
9750               "arguments": { "path": "unattached/sysbus",
9751                              "property": "type" } }
9752          <- { "return": "System" }
9753
9754   qom-set (Command)
9755       This command will set a property from a object model path.
9756
9757   Arguments
9758       path: string
9759              see qom-get for a description of this parameter
9760
9761       property: string
9762              the property name to set
9763
9764       value: value
9765              a value who's type is appropriate for the  property  type.   See
9766              qom-get for a description of type mapping.
9767
9768   Since
9769       1.2
9770
9771   Example
9772          -> { "execute": "qom-set",
9773               "arguments": { "path": "/machine",
9774                              "property": "graphics",
9775                              "value": false } }
9776          <- { "return": {} }
9777
9778   ObjectTypeInfo (Object)
9779       This structure describes a search result from qom-list-types
9780
9781   Members
9782       name: string
9783              the type name found in the search
9784
9785       abstract: boolean (optional)
9786              the  type is abstract and can't be directly instantiated.  Omit‐
9787              ted if false.  (since 2.10)
9788
9789       parent: string (optional)
9790              Name of parent type, if any (since 2.10)
9791
9792   Since
9793       1.1
9794
9795   qom-list-types (Command)
9796       This command will return a list of types given search parameters
9797
9798   Arguments
9799       implements: string (optional)
9800              if specified, only return types that implement this type name
9801
9802       abstract: boolean (optional)
9803              if true, include abstract types in the results
9804
9805   Returns
9806       a list of ObjectTypeInfo or an empty list if no results are found
9807
9808   Since
9809       1.1
9810
9811   qom-list-properties (Command)
9812       List properties associated with a QOM object.
9813
9814   Arguments
9815       typename: string
9816              the type name of an object
9817
9818   Note
9819       objects can create properties at runtime, for example to describe links
9820       between different devices and/or objects.  These properties are not in‐
9821       cluded in the output of this command.
9822
9823   Returns
9824       a list of ObjectPropertyInfo describing object properties
9825
9826   Since
9827       2.12
9828
9829   CanHostSocketcanProperties (Object)
9830       Properties for can-host-socketcan objects.
9831
9832   Members
9833       if: string
9834              interface name of the host system CAN bus to connect to
9835
9836       canbus: string
9837              object ID of the can-bus object to connect to the host interface
9838
9839   Since
9840       2.12
9841
9842   ColoCompareProperties (Object)
9843       Properties for colo-compare objects.
9844
9845   Members
9846       primary_in: string
9847              name of the character device backend to use for the primary  in‐
9848              put (incoming packets are redirected to outdev)
9849
9850       secondary_in: string
9851              name  of the character device backend to use for secondary input
9852              (incoming packets are only compared to the input  on  primary_in
9853              and then dropped)
9854
9855       outdev: string
9856              name of the character device backend to use for output
9857
9858       iothread: string
9859              name of the iothread to run in
9860
9861       notify_dev: string (optional)
9862              name  of  the character device backend to be used to communicate
9863              with the remote colo-frame (only for Xen COLO)
9864
9865       compare_timeout: int (optional)
9866              the maximum time to hold a packet from primary_in for comparison
9867              with  an  incoming  packet  on secondary_in in milliseconds (de‐
9868              fault: 3000)
9869
9870       expired_scan_cycle: int (optional)
9871              the interval at which colo-compare checks whether  packets  from
9872              primary have timed out, in milliseconds (default: 3000)
9873
9874       max_queue_size: int (optional)
9875              the maximum number of packets to keep in the queue for comparing
9876              with incoming packets from secondary_in.  If the queue  is  full
9877              and  additional packets are received, the additional packets are
9878              dropped.  (default: 1024)
9879
9880       vnet_hdr_support: boolean (optional)
9881              if true, vnet header support is enabled (default: false)
9882
9883   Since
9884       2.8
9885
9886   CryptodevBackendProperties (Object)
9887       Properties for cryptodev-backend and cryptodev-backend-builtin objects.
9888
9889   Members
9890       queues: int (optional)
9891              the number of queues for the  cryptodev  backend.   Ignored  for
9892              cryptodev-backend  and  must be 1 for cryptodev-backend-builtin.
9893              (default: 1)
9894
9895       throttle-bps: int (optional)
9896              limit total bytes per second (Since 8.0)
9897
9898       throttle-ops: int (optional)
9899              limit total operations per second (Since 8.0)
9900
9901   Since
9902       2.8
9903
9904   CryptodevVhostUserProperties (Object)
9905       Properties for cryptodev-vhost-user objects.
9906
9907   Members
9908       chardev: string
9909              the name of a Unix domain socket character device that  connects
9910              to the vhost-user server
9911
9912       The members of CryptodevBackendProperties
9913
9914   Since
9915       2.12
9916
9917   DBusVMStateProperties (Object)
9918       Properties for dbus-vmstate objects.
9919
9920   Members
9921       addr: string
9922              the name of the DBus bus to connect to
9923
9924       id-list: string (optional)
9925              a  comma separated list of DBus IDs of helpers whose data should
9926              be included in the VM state on migration
9927
9928   Since
9929       5.0
9930
9931   NetfilterInsert (Enum)
9932       Indicates where to insert a netfilter relative to a given other filter.
9933
9934   Values
9935       before insert before the specified filter
9936
9937       behind insert behind the specified filter
9938
9939   Since
9940       5.0
9941
9942   NetfilterProperties (Object)
9943       Properties for objects of classes derived from netfilter.
9944
9945   Members
9946       netdev: string
9947              id of the network device backend to filter
9948
9949       queue: NetFilterDirection (optional)
9950              indicates which queue(s) to filter (default: all)
9951
9952       status: string (optional)
9953              indicates whether the  filter  is  enabled  ("on")  or  disabled
9954              ("off") (default: "on")
9955
9956       position: string (optional)
9957              specifies  where  the  filter  should  be inserted in the filter
9958              list.  "head" means the filter is inserted at the  head  of  the
9959              filter list, before any existing filters.  "tail" means the fil‐
9960              ter is inserted at the tail of the filter list, behind  any  ex‐
9961              isting filters (default). "id=<id>" means the filter is inserted
9962              before or behind the filter specified by <id>, depending on  the
9963              insert property.  (default: "tail")
9964
9965       insert: NetfilterInsert (optional)
9966              where to insert the filter relative to the filter given in posi‐
9967              tion.  Ignored if position is "head" or "tail".   (default:  be‐
9968              hind)
9969
9970   Since
9971       2.5
9972
9973   FilterBufferProperties (Object)
9974       Properties for filter-buffer objects.
9975
9976   Members
9977       interval: int
9978              a  non-zero  interval  in microseconds.  All packets arriving in
9979              the given interval are delayed until the end of the interval.
9980
9981       The members of NetfilterProperties
9982
9983   Since
9984       2.5
9985
9986   FilterDumpProperties (Object)
9987       Properties for filter-dump objects.
9988
9989   Members
9990       file: string
9991              the filename where the dumped packets should be stored
9992
9993       maxlen: int (optional)
9994              maximum number of bytes in a packet that  are  stored  (default:
9995              65536)
9996
9997       The members of NetfilterProperties
9998
9999   Since
10000       2.5
10001
10002   FilterMirrorProperties (Object)
10003       Properties for filter-mirror objects.
10004
10005   Members
10006       outdev: string
10007              the  name  of  a  character device backend to which all incoming
10008              packets are mirrored
10009
10010       vnet_hdr_support: boolean (optional)
10011              if true, vnet header support is enabled (default: false)
10012
10013       The members of NetfilterProperties
10014
10015   Since
10016       2.6
10017
10018   FilterRedirectorProperties (Object)
10019       Properties for filter-redirector objects.
10020
10021       At least one of indev or outdev must be present.  If both are  present,
10022       they must not refer to the same character device backend.
10023
10024   Members
10025       indev: string (optional)
10026              the  name  of  a character device backend from which packets are
10027              received and redirected to the filtered network device
10028
10029       outdev: string (optional)
10030              the name of a character device backend  to  which  all  incoming
10031              packets are redirected
10032
10033       vnet_hdr_support: boolean (optional)
10034              if true, vnet header support is enabled (default: false)
10035
10036       The members of NetfilterProperties
10037
10038   Since
10039       2.6
10040
10041   FilterRewriterProperties (Object)
10042       Properties for filter-rewriter objects.
10043
10044   Members
10045       vnet_hdr_support: boolean (optional)
10046              if true, vnet header support is enabled (default: false)
10047
10048       The members of NetfilterProperties
10049
10050   Since
10051       2.8
10052
10053   InputBarrierProperties (Object)
10054       Properties for input-barrier objects.
10055
10056   Members
10057       name: string
10058              the  screen  name  as  declared  in  the screens section of bar‐
10059              rier.conf
10060
10061       server: string (optional)
10062              hostname of the Barrier server (default: "localhost")
10063
10064       port: string (optional)
10065              TCP port of the Barrier server (default: "24800")
10066
10067       x-origin: string (optional)
10068              x coordinate of the leftmost pixel on the guest screen (default:
10069              "0")
10070
10071       y-origin: string (optional)
10072              y  coordinate of the topmost pixel on the guest screen (default:
10073              "0")
10074
10075       width: string (optional)
10076              the width of secondary screen in pixels (default: "1920")
10077
10078       height: string (optional)
10079              the height of secondary screen in pixels (default: "1080")
10080
10081   Since
10082       4.2
10083
10084   InputLinuxProperties (Object)
10085       Properties for input-linux objects.
10086
10087   Members
10088       evdev: string
10089              the path of the host evdev device to use
10090
10091       grab_all: boolean (optional)
10092              if true, grab is toggled for all devices (e.g. both keyboard and
10093              mouse) instead of just one device (default: false)
10094
10095       repeat: boolean (optional)
10096              enables auto-repeat events (default: false)
10097
10098       grab-toggle: GrabToggleKeys (optional)
10099              the  key  or  key combination that toggles device grab (default:
10100              ctrl-ctrl)
10101
10102   Since
10103       2.6
10104
10105   EventLoopBaseProperties (Object)
10106       Common properties for event loops
10107
10108   Members
10109       aio-max-batch: int (optional)
10110              maximum number of requests in a batch  for  the  AIO  engine,  0
10111              means that the engine will use its default.  (default: 0)
10112
10113       thread-pool-min: int (optional)
10114              minimum  number  of  threads  reserved  in  the thread pool (de‐
10115              fault:0)
10116
10117       thread-pool-max: int (optional)
10118              maximum number of threads  the  thread  pool  can  contain  (de‐
10119              fault:64)
10120
10121   Since
10122       7.1
10123
10124   IothreadProperties (Object)
10125       Properties for iothread objects.
10126
10127   Members
10128       poll-max-ns: int (optional)
10129              the  maximum  number  of nanoseconds to busy wait for events.  0
10130              means polling is disabled (default: 32768 on POSIX hosts, 0 oth‐
10131              erwise)
10132
10133       poll-grow: int (optional)
10134              the  multiplier used to increase the polling time when the algo‐
10135              rithm detects it is missing  events  due  to  not  polling  long
10136              enough.  0 selects a default behaviour (default: 0)
10137
10138       poll-shrink: int (optional)
10139              the divisor used to decrease the polling time when the algorithm
10140              detects it is spending too  long  polling  without  encountering
10141              events.  0 selects a default behaviour (default: 0)
10142
10143       The members of EventLoopBaseProperties
10144       The aio-max-batch option is available since 6.1.
10145
10146   Since
10147       2.0
10148
10149   MainLoopProperties (Object)
10150       Properties for the main-loop object.
10151
10152   Members
10153       The members of EventLoopBaseProperties
10154
10155   Since
10156       7.1
10157
10158   MemoryBackendProperties (Object)
10159       Properties for objects of classes derived from memory-backend.
10160
10161   Members
10162       merge: boolean (optional)
10163              if  true,  mark  the memory as mergeable (default depends on the
10164              machine type)
10165
10166       dump: boolean (optional)
10167              if true, include the memory in core dumps  (default  depends  on
10168              the machine type)
10169
10170       host-nodes: array of int (optional)
10171              the list of NUMA host nodes to bind the memory to
10172
10173       policy: HostMemPolicy (optional)
10174              the NUMA policy (default: 'default')
10175
10176       prealloc: boolean (optional)
10177              if true, preallocate memory (default: false)
10178
10179       prealloc-threads: int (optional)
10180              number of CPU threads to use for prealloc (default: 1)
10181
10182       prealloc-context: string (optional)
10183              thread context to use for creation of preallocation threads (de‐
10184              fault: none) (since 7.2)
10185
10186       share: boolean (optional)
10187              if false, the memory is private to QEMU; if true, it  is  shared
10188              (default: false)
10189
10190       reserve: boolean (optional)
10191              if  true,  reserve swap space (or huge pages) if applicable (de‐
10192              fault: true) (since 6.1)
10193
10194       size: int
10195              size of the memory region in bytes
10196
10197       x-use-canonical-path-for-ramblock-id: boolean (optional)
10198              if true, the canonical path is used  for  ramblock-id.   Disable
10199              this  for  4.0  machine  types  or older to allow migration with
10200              newer QEMU versions.  (default: false generally,  but  true  for
10201              machine types <= 4.0)
10202
10203   Note
10204       prealloc=true  and  reserve=false cannot be set at the same time.  With
10205       reserve=true, the behavior depends on the operating system:  for  exam‐
10206       ple, Linux will not reserve swap space for shared file mappings -- "not
10207       applicable". In contrast, reserve=false will bail out if it  cannot  be
10208       configured accordingly.
10209
10210   Since
10211       2.1
10212
10213   MemoryBackendFileProperties (Object)
10214       Properties for memory-backend-file objects.
10215
10216   Members
10217       align: int (optional)
10218              the  base  address  alignment when QEMU mmap(2)s mem-path.  Some
10219              backend stores specified by mem-path require an  alignment  dif‐
10220              ferent  than  the  default one used by QEMU, e.g. the device DAX
10221              /dev/dax0.0 requires 2M alignment rather than 4K. In such cases,
10222              users can specify the required alignment via this option.  0 se‐
10223              lects a default alignment (currently the page size).   (default:
10224              0)
10225
10226       offset: int (optional)
10227              the  offset into the target file that the region starts at.  You
10228              can use this option to back multiple regions with a single file.
10229              Must be a multiple of the page size.  (default: 0) (since 8.1)
10230
10231       discard-data: boolean (optional)
10232              if  true, the file contents can be destroyed when QEMU exits, to
10233              avoid unnecessarily flushing data to  the  backing  file.   Note
10234              that  discard-data  is  only an optimization, and QEMU might not
10235              discard file contents if it aborts unexpectedly or is terminated
10236              using SIGKILL. (default: false)
10237
10238       mem-path: string
10239              the path to either a shared memory or huge page filesystem mount
10240
10241       pmem: boolean (optional) (If: CONFIG_LIBPMEM)
10242              specifies  whether  the backing file specified by mem-path is in
10243              host persistent memory that can be accessed using the  SNIA  NVM
10244              programming model (e.g. Intel NVDIMM).
10245
10246       readonly: boolean (optional)
10247              if  true,  the backing file is opened read-only; if false, it is
10248              opened read-write.  (default: false)
10249
10250       The members of MemoryBackendProperties
10251
10252   Since
10253       2.1
10254
10255   MemoryBackendMemfdProperties (Object)
10256       Properties for memory-backend-memfd objects.
10257
10258       The share boolean option is true by default with memfd.
10259
10260   Members
10261       hugetlb: boolean (optional)
10262              if true, the  file  to  be  created  resides  in  the  hugetlbfs
10263              filesystem (default: false)
10264
10265       hugetlbsize: int (optional)
10266              the  hugetlb  page size on systems that support multiple hugetlb
10267              page sizes (it must be a power of 2 value supported by the  sys‐
10268              tem).  0 selects a default page size.  This option is ignored if
10269              hugetlb is false.  (default: 0)
10270
10271       seal: boolean (optional)
10272              if true, create a sealed-file, which will block further resizing
10273              of the memory (default: true)
10274
10275       The members of MemoryBackendProperties
10276
10277   Since
10278       2.12
10279
10280   MemoryBackendEpcProperties (Object)
10281       Properties for memory-backend-epc objects.
10282
10283       The share boolean option is true by default with epc
10284
10285       The merge boolean option is false by default with epc
10286
10287       The dump boolean option is false by default with epc
10288
10289   Members
10290       The members of MemoryBackendProperties
10291
10292   Since
10293       6.2
10294
10295   PrManagerHelperProperties (Object)
10296       Properties for pr-manager-helper objects.
10297
10298   Members
10299       path: string
10300              the  path to a Unix domain socket for connecting to the external
10301              helper
10302
10303   Since
10304       2.11
10305
10306   QtestProperties (Object)
10307       Properties for qtest objects.
10308
10309   Members
10310       chardev: string
10311              the chardev to be used to receive qtest commands on.
10312
10313       log: string (optional)
10314              the path to a log file
10315
10316   Since
10317       6.0
10318
10319   RemoteObjectProperties (Object)
10320       Properties for x-remote-object objects.
10321
10322   Members
10323       fd: string
10324              file descriptor name previously passed via 'getfd' command
10325
10326       devid: string
10327              the id of the device to be associated with the file descriptor
10328
10329   Since
10330       6.0
10331
10332   VfioUserServerProperties (Object)
10333       Properties for x-vfio-user-server objects.
10334
10335   Members
10336       socket: SocketAddress
10337              socket to be used by the libvfio-user library
10338
10339       device: string
10340              the ID of the device to be emulated at the server
10341
10342   Since
10343       7.1
10344
10345   RngProperties (Object)
10346       Properties for objects of classes derived from rng.
10347
10348   Members
10349       opened: boolean (optional)
10350              if true, the device is opened immediately when applying this op‐
10351              tion  and  will  probably  fail when processing the next option.
10352              Don't use; only provided for compatibility.  (default: false)
10353
10354   Features
10355       deprecated
10356              Member opened is deprecated.  Setting true doesn't  make  sense,
10357              and false is already the default.
10358
10359   Since
10360       1.3
10361
10362   RngEgdProperties (Object)
10363       Properties for rng-egd objects.
10364
10365   Members
10366       chardev: string
10367              the name of a character device backend that provides the connec‐
10368              tion to the RNG daemon
10369
10370       The members of RngProperties
10371
10372   Since
10373       1.3
10374
10375   RngRandomProperties (Object)
10376       Properties for rng-random objects.
10377
10378   Members
10379       filename: string (optional)
10380              the filename of the device on the host to  obtain  entropy  from
10381              (default: "/dev/urandom")
10382
10383       The members of RngProperties
10384
10385   Since
10386       1.3
10387
10388   SevGuestProperties (Object)
10389       Properties for sev-guest objects.
10390
10391   Members
10392       sev-device: string (optional)
10393              SEV device to use (default: "/dev/sev")
10394
10395       dh-cert-file: string (optional)
10396              guest owners DH certificate (encoded with base64)
10397
10398       session-file: string (optional)
10399              guest owners session parameters (encoded with base64)
10400
10401       policy: int (optional)
10402              SEV policy value (default: 0x1)
10403
10404       handle: int (optional)
10405              SEV firmware handle (default: 0)
10406
10407       cbitpos: int (optional)
10408              C-bit location in page table entry (default: 0)
10409
10410       reduced-phys-bits: int
10411              number  of  bits  in  physical addresses that become unavailable
10412              when SEV is enabled
10413
10414       kernel-hashes: boolean (optional)
10415              if true, add hashes of  kernel/initrd/cmdline  to  a  designated
10416              guest  firmware  page  for  measured boot with -kernel (default:
10417              false) (since 6.2)
10418
10419   Since
10420       2.12
10421
10422   ThreadContextProperties (Object)
10423       Properties for thread context objects.
10424
10425   Members
10426       cpu-affinity: array of int (optional)
10427              the list of host CPU  numbers  used  as  CPU  affinity  for  all
10428              threads created in the thread context (default: QEMU main thread
10429              CPU affinity)
10430
10431       node-affinity: array of int (optional)
10432              the list of host node numbers that will be resolved to a list of
10433              host  CPU  numbers used as CPU affinity.  This is a shortcut for
10434              specifying the list of host CPU numbers belonging  to  the  host
10435              nodes  manually  by  setting  cpu-affinity.  (default: QEMU main
10436              thread affinity)
10437
10438   Since
10439       7.2
10440
10441   ObjectType (Enum)
10442   Values
10443       authz-list
10444              Not documented
10445
10446       authz-listfile
10447              Not documented
10448
10449       authz-pam
10450              Not documented
10451
10452       authz-simple
10453              Not documented
10454
10455       can-bus
10456              Not documented
10457
10458       can-host-socketcan (If: CONFIG_LINUX)
10459              Not documented
10460
10461       colo-compare
10462              Not documented
10463
10464       cryptodev-backend
10465              Not documented
10466
10467       cryptodev-backend-builtin
10468              Not documented
10469
10470       cryptodev-backend-lkcf
10471              Not documented
10472
10473       cryptodev-vhost-user (If: CONFIG_VHOST_CRYPTO)
10474              Not documented
10475
10476       dbus-vmstate
10477              Not documented
10478
10479       filter-buffer
10480              Not documented
10481
10482       filter-dump
10483              Not documented
10484
10485       filter-mirror
10486              Not documented
10487
10488       filter-redirector
10489              Not documented
10490
10491       filter-replay
10492              Not documented
10493
10494       filter-rewriter
10495              Not documented
10496
10497       input-barrier
10498              Not documented
10499
10500       input-linux (If: CONFIG_LINUX)
10501              Not documented
10502
10503       iothread
10504              Not documented
10505
10506       main-loop
10507              Not documented
10508
10509       memory-backend-epc (If: CONFIG_LINUX)
10510              Not documented
10511
10512       memory-backend-file
10513              Not documented
10514
10515       memory-backend-memfd (If: CONFIG_LINUX)
10516              Not documented
10517
10518       memory-backend-ram
10519              Not documented
10520
10521       pef-guest
10522              Not documented
10523
10524       pr-manager-helper (If: CONFIG_LINUX)
10525              Not documented
10526
10527       qtest  Not documented
10528
10529       rng-builtin
10530              Not documented
10531
10532       rng-egd
10533              Not documented
10534
10535       rng-random (If: CONFIG_POSIX)
10536              Not documented
10537
10538       secret Not documented
10539
10540       secret_keyring (If: CONFIG_SECRET_KEYRING)
10541              Not documented
10542
10543       sev-guest
10544              Not documented
10545
10546       thread-context
10547              Not documented
10548
10549       s390-pv-guest
10550              Not documented
10551
10552       throttle-group
10553              Not documented
10554
10555       tls-creds-anon
10556              Not documented
10557
10558       tls-creds-psk
10559              Not documented
10560
10561       tls-creds-x509
10562              Not documented
10563
10564       tls-cipher-suites
10565              Not documented
10566
10567       x-remote-object
10568              Not documented
10569
10570       x-vfio-user-server
10571              Not documented
10572
10573   Features
10574       unstable
10575              Member x-remote-object is experimental.
10576
10577   Since
10578       6.0
10579
10580   ObjectOptions (Object)
10581       Describes the options of a user creatable QOM object.
10582
10583   Members
10584       qom-type: ObjectType
10585              the class name for the object to be created
10586
10587       id: string
10588              the name of the new object
10589
10590       The members of AuthZListProperties when qom-type is "authz-list"
10591
10592       The members of AuthZListFileProperties when  qom-type  is  "authz-list‐
10593       file"
10594
10595       The members of AuthZPAMProperties when qom-type is "authz-pam"
10596
10597       The members of AuthZSimpleProperties when qom-type is "authz-simple"
10598
10599       The    members   of   CanHostSocketcanProperties   when   qom-type   is
10600       "can-host-socketcan" (If: CONFIG_LINUX)
10601
10602       The members of ColoCompareProperties when qom-type is "colo-compare"
10603
10604       The members  of  CryptodevBackendProperties  when  qom-type  is  "cryp‐
10605       todev-backend"
10606
10607       The  members  of  CryptodevBackendProperties  when  qom-type  is "cryp‐
10608       todev-backend-builtin"
10609
10610       The members  of  CryptodevBackendProperties  when  qom-type  is  "cryp‐
10611       todev-backend-lkcf"
10612
10613       The  members  of  CryptodevVhostUserProperties  when qom-type is "cryp‐
10614       todev-vhost-user" (If: CONFIG_VHOST_CRYPTO)
10615
10616       The members of DBusVMStateProperties when qom-type is "dbus-vmstate"
10617
10618       The members of FilterBufferProperties when qom-type is "filter-buffer"
10619
10620       The members of FilterDumpProperties when qom-type is "filter-dump"
10621
10622       The members of FilterMirrorProperties when qom-type is "filter-mirror"
10623
10624       The  members  of  FilterRedirectorProperties  when  qom-type  is  "fil‐
10625       ter-redirector"
10626
10627       The members of NetfilterProperties when qom-type is "filter-replay"
10628
10629       The   members   of  FilterRewriterProperties  when  qom-type  is  "fil‐
10630       ter-rewriter"
10631
10632       The members of InputBarrierProperties when qom-type is "input-barrier"
10633
10634       The members of InputLinuxProperties when qom-type is "input-linux" (If:
10635       CONFIG_LINUX)
10636
10637       The members of IothreadProperties when qom-type is "iothread"
10638
10639       The members of MainLoopProperties when qom-type is "main-loop"
10640
10641       The  members  of  MemoryBackendEpcProperties  when  qom-type  is  "mem‐
10642       ory-backend-epc" (If: CONFIG_LINUX)
10643
10644       The members  of  MemoryBackendFileProperties  when  qom-type  is  "mem‐
10645       ory-backend-file"
10646
10647       The  members  of  MemoryBackendMemfdProperties  when  qom-type is "mem‐
10648       ory-backend-memfd" (If: CONFIG_LINUX)
10649
10650       The members of MemoryBackendProperties when qom-type  is  "memory-back‐
10651       end-ram"
10652
10653       The  members  of  PrManagerHelperProperties  when  qom-type is "pr-man‐
10654       ager-helper" (If: CONFIG_LINUX)
10655
10656       The members of QtestProperties when qom-type is "qtest"
10657
10658       The members of RngProperties when qom-type is "rng-builtin"
10659
10660       The members of RngEgdProperties when qom-type is "rng-egd"
10661
10662       The members of RngRandomProperties when qom-type is  "rng-random"  (If:
10663       CONFIG_POSIX)
10664
10665       The members of SecretProperties when qom-type is "secret"
10666
10667       The   members   of   SecretKeyringProperties   when  qom-type  is  "se‐
10668       cret_keyring" (If: CONFIG_SECRET_KEYRING)
10669
10670       The members of SevGuestProperties when qom-type is "sev-guest"
10671
10672       The members of ThreadContextProperties when  qom-type  is  "thread-con‐
10673       text"
10674
10675       The   members  of  ThrottleGroupProperties  when  qom-type  is  "throt‐
10676       tle-group"
10677
10678       The members of TlsCredsAnonProperties when qom-type is "tls-creds-anon"
10679
10680       The members of TlsCredsPskProperties when qom-type is "tls-creds-psk"
10681
10682       The members of TlsCredsX509Properties when qom-type is "tls-creds-x509"
10683
10684       The members of TlsCredsProperties when qom-type is "tls-cipher-suites"
10685
10686       The members of RemoteObjectProperties when  qom-type  is  "x-remote-ob‐
10687       ject"
10688
10689       The    members    of    VfioUserServerProperties   when   qom-type   is
10690       "x-vfio-user-server"
10691
10692   Since
10693       6.0
10694
10695   object-add (Command)
10696       Create a QOM object.
10697
10698   Arguments
10699       The members of ObjectOptions
10700
10701   Returns
10702       Nothing on success Error if qom-type is not a valid class name
10703
10704   Since
10705       2.0
10706
10707   Example
10708          -> { "execute": "object-add",
10709               "arguments": { "qom-type": "rng-random", "id": "rng1",
10710                              "filename": "/dev/hwrng" } }
10711          <- { "return": {} }
10712
10713   object-del (Command)
10714       Remove a QOM object.
10715
10716   Arguments
10717       id: string
10718              the name of the QOM object to remove
10719
10720   Returns
10721       Nothing on success Error if id is not a valid id for a QOM object
10722
10723   Since
10724       2.0
10725
10726   Example
10727          -> { "execute": "object-del", "arguments": { "id": "rng1" } }
10728          <- { "return": {} }
10729
10731       2023, The QEMU Project Developers
10732
10733
10734
10735
107368.1.3                            Nov 28, 2023   QEMU-STORAGE-DAEMON-QMP-REF(7)
Impressum