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

NAME

6       qemu-qmp-ref - QEMU QMP Reference Manual
7
8   Contents
9QEMU QMP Reference Manual
10
11Introduction
12
13This document describes all commands currently supported by QMP.
14
15Stability Considerations
16
17The  current QMP command set (described in this file) may be use‐
18             ful for a number of use cases, however it's limited  and  several
19             commands  have  bad  defined  semantics, specially with regard to
20             command completion.
21
22QMP errors
23
24QapiErrorClass (Enum)
25
26Common data types
27
28IoOperationType (Enum)
29
30OnOffAuto (Enum)
31
32OnOffSplit (Enum)
33
34String (Object)
35
36StrOrNull (Alternate)
37
38OffAutoPCIBAR (Enum)
39
40PCIELinkSpeed (Enum)
41
42PCIELinkWidth (Enum)
43
44HostMemPolicy (Enum)
45
46NetFilterDirection (Enum)
47
48GrabToggleKeys (Enum)
49
50Socket data types
51
52NetworkAddressFamily (Enum)
53
54InetSocketAddressBase (Object)
55
56InetSocketAddress (Object)
57
58UnixSocketAddress (Object)
59
60VsockSocketAddress (Object)
61
62SocketAddressLegacy (Object)
63
64SocketAddressType (Enum)
65
66SocketAddress (Object)
67
68VM run state
69
70RunState (Enum)
71
72ShutdownCause (Enum)
73
74StatusInfo (Object)
75
76query-status (Command)
77
78SHUTDOWN (Event)
79
80POWERDOWN (Event)
81
82RESET (Event)
83
84STOP (Event)
85
86RESUME (Event)
87
88SUSPEND (Event)
89
90SUSPEND_DISK (Event)
91
92WAKEUP (Event)
93
94WATCHDOG (Event)
95
96WatchdogAction (Enum)
97
98RebootAction (Enum)
99
100ShutdownAction (Enum)
101
102PanicAction (Enum)
103
104watchdog-set-action (Command)
105
106set-action (Command)
107
108GUEST_PANICKED (Event)
109
110GUEST_CRASHLOADED (Event)
111
112GuestPanicAction (Enum)
113
114GuestPanicInformationType (Enum)
115
116GuestPanicInformation (Object)
117
118GuestPanicInformationHyperV (Object)
119
120S390CrashReason (Enum)
121
122GuestPanicInformationS390 (Object)
123
124MEMORY_FAILURE (Event)
125
126MemoryFailureRecipient (Enum)
127
128MemoryFailureAction (Enum)
129
130MemoryFailureFlags (Object)
131
132Cryptography
133
134QCryptoTLSCredsEndpoint (Enum)
135
136QCryptoSecretFormat (Enum)
137
138QCryptoHashAlgorithm (Enum)
139
140QCryptoCipherAlgorithm (Enum)
141
142QCryptoCipherMode (Enum)
143
144QCryptoIVGenAlgorithm (Enum)
145
146QCryptoBlockFormat (Enum)
147
148QCryptoBlockOptionsBase (Object)
149
150QCryptoBlockOptionsQCow (Object)
151
152QCryptoBlockOptionsLUKS (Object)
153
154QCryptoBlockCreateOptionsLUKS (Object)
155
156QCryptoBlockOpenOptions (Object)
157
158QCryptoBlockCreateOptions (Object)
159
160QCryptoBlockInfoBase (Object)
161
162QCryptoBlockInfoLUKSSlot (Object)
163
164QCryptoBlockInfoLUKS (Object)
165
166QCryptoBlockInfo (Object)
167
168QCryptoBlockLUKSKeyslotState (Enum)
169
170QCryptoBlockAmendOptionsLUKS (Object)
171
172QCryptoBlockAmendOptions (Object)
173
174SecretCommonProperties (Object)
175
176SecretProperties (Object)
177
178SecretKeyringProperties (Object)
179
180TlsCredsProperties (Object)
181
182TlsCredsAnonProperties (Object)
183
184TlsCredsPskProperties (Object)
185
186TlsCredsX509Properties (Object)
187
188Block devices
189
190Block core (VM unrelated)
191
192Background jobs
193
194Additional block stuff (VM related)
195
196Block device exports
197
198Character devices
199
200ChardevInfo (Object)
201
202query-chardev (Command)
203
204ChardevBackendInfo (Object)
205
206query-chardev-backends (Command)
207
208DataFormat (Enum)
209
210ringbuf-write (Command)
211
212ringbuf-read (Command)
213
214ChardevCommon (Object)
215
216ChardevFile (Object)
217
218ChardevHostdev (Object)
219
220ChardevSocket (Object)
221
222ChardevUdp (Object)
223
224ChardevMux (Object)
225
226ChardevStdio (Object)
227
228ChardevSpiceChannel (Object)
229
230ChardevSpicePort (Object)
231
232ChardevVC (Object)
233
234ChardevRingbuf (Object)
235
236ChardevQemuVDAgent (Object)
237
238ChardevBackend (Object)
239
240ChardevReturn (Object)
241
242chardev-add (Command)
243
244chardev-change (Command)
245
246chardev-remove (Command)
247
248chardev-send-break (Command)
249
250VSERPORT_CHANGE (Event)
251
252Dump guest memory
253
254DumpGuestMemoryFormat (Enum)
255
256dump-guest-memory (Command)
257
258DumpStatus (Enum)
259
260DumpQueryResult (Object)
261
262query-dump (Command)
263
264DUMP_COMPLETED (Event)
265
266DumpGuestMemoryCapability (Object)
267
268query-dump-guest-memory-capability (Command)
269
270Net devices
271
272set_link (Command)
273
274netdev_add (Command)
275
276netdev_del (Command)
277
278NetLegacyNicOptions (Object)
279
280NetdevUserOptions (Object)
281
282NetdevTapOptions (Object)
283
284NetdevSocketOptions (Object)
285
286NetdevL2TPv3Options (Object)
287
288NetdevVdeOptions (Object)
289
290NetdevBridgeOptions (Object)
291
292NetdevHubPortOptions (Object)
293
294NetdevNetmapOptions (Object)
295
296NetdevVhostUserOptions (Object)
297
298NetdevVhostVDPAOptions (Object)
299
300NetClientDriver (Enum)
301
302Netdev (Object)
303
304RxState (Enum)
305
306RxFilterInfo (Object)
307
308query-rx-filter (Command)
309
310NIC_RX_FILTER_CHANGED (Event)
311
312AnnounceParameters (Object)
313
314announce-self (Command)
315
316FAILOVER_NEGOTIATED (Event)
317
318RDMA device
319
320RDMA_GID_STATUS_CHANGED (Event)
321
322Rocker switch device
323
324RockerSwitch (Object)
325
326query-rocker (Command)
327
328RockerPortDuplex (Enum)
329
330RockerPortAutoneg (Enum)
331
332RockerPort (Object)
333
334query-rocker-ports (Command)
335
336RockerOfDpaFlowKey (Object)
337
338RockerOfDpaFlowMask (Object)
339
340RockerOfDpaFlowAction (Object)
341
342RockerOfDpaFlow (Object)
343
344query-rocker-of-dpa-flows (Command)
345
346RockerOfDpaGroup (Object)
347
348query-rocker-of-dpa-groups (Command)
349
350TPM (trusted platform module) devices
351
352TpmModel (Enum)
353
354query-tpm-models (Command)
355
356TpmType (Enum)
357
358query-tpm-types (Command)
359
360TPMPassthroughOptions (Object)
361
362TPMEmulatorOptions (Object)
363
364TpmTypeOptions (Object)
365
366TPMInfo (Object)
367
368query-tpm (Command)
369
370Remote desktop
371
372set_password (Command)
373
374expire_password (Command)
375
376screendump (Command)
377
378Spice
379
380VNC
381
382Input
383
384MouseInfo (Object)
385
386query-mice (Command)
387
388QKeyCode (Enum)
389
390KeyValue (Object)
391
392send-key (Command)
393
394InputButton (Enum)
395
396InputAxis (Enum)
397
398InputKeyEvent (Object)
399
400InputBtnEvent (Object)
401
402InputMoveEvent (Object)
403
404InputEvent (Object)
405
406input-send-event (Command)
407
408DisplayGTK (Object)
409
410DisplayEGLHeadless (Object)
411
412DisplayGLMode (Enum)
413
414DisplayCurses (Object)
415
416DisplayType (Enum)
417
418DisplayOptions (Object)
419
420query-display-options (Command)
421
422DisplayReloadType (Enum)
423
424DisplayReloadOptionsVNC (Object)
425
426DisplayReloadOptions (Object)
427
428display-reload (Command)
429
430User authorization
431
432QAuthZListPolicy (Enum)
433
434QAuthZListFormat (Enum)
435
436QAuthZListRule (Object)
437
438AuthZListProperties (Object)
439
440AuthZListFileProperties (Object)
441
442AuthZPAMProperties (Object)
443
444AuthZSimpleProperties (Object)
445
446Migration
447
448MigrationStats (Object)
449
450XBZRLECacheStats (Object)
451
452CompressionStats (Object)
453
454MigrationStatus (Enum)
455
456VfioStats (Object)
457
458MigrationInfo (Object)
459
460query-migrate (Command)
461
462MigrationCapability (Enum)
463
464MigrationCapabilityStatus (Object)
465
466migrate-set-capabilities (Command)
467
468query-migrate-capabilities (Command)
469
470MultiFDCompression (Enum)
471
472BitmapMigrationBitmapAliasTransform (Object)
473
474BitmapMigrationBitmapAlias (Object)
475
476BitmapMigrationNodeAlias (Object)
477
478MigrationParameter (Enum)
479
480MigrateSetParameters (Object)
481
482migrate-set-parameters (Command)
483
484MigrationParameters (Object)
485
486query-migrate-parameters (Command)
487
488client_migrate_info (Command)
489
490migrate-start-postcopy (Command)
491
492MIGRATION (Event)
493
494MIGRATION_PASS (Event)
495
496COLOMessage (Enum)
497
498COLOMode (Enum)
499
500FailoverStatus (Enum)
501
502COLO_EXIT (Event)
503
504COLOExitReason (Enum)
505
506x-colo-lost-heartbeat (Command)
507
508migrate_cancel (Command)
509
510migrate-continue (Command)
511
512migrate (Command)
513
514migrate-incoming (Command)
515
516xen-save-devices-state (Command)
517
518xen-set-global-dirty-log (Command)
519
520xen-load-devices-state (Command)
521
522xen-set-replication (Command)
523
524ReplicationStatus (Object)
525
526query-xen-replication-status (Command)
527
528xen-colo-do-checkpoint (Command)
529
530COLOStatus (Object)
531
532query-colo-status (Command)
533
534migrate-recover (Command)
535
536migrate-pause (Command)
537
538UNPLUG_PRIMARY (Event)
539
540DirtyRateStatus (Enum)
541
542DirtyRateInfo (Object)
543
544calc-dirty-rate (Command)
545
546query-dirty-rate (Command)
547
548snapshot-save (Command)
549
550snapshot-load (Command)
551
552snapshot-delete (Command)
553
554Transactions
555
556Abort (Object)
557
558ActionCompletionMode (Enum)
559
560TransactionAction (Object)
561
562TransactionProperties (Object)
563
564transaction (Command)
565
566Tracing
567
568TraceEventState (Enum)
569
570TraceEventInfo (Object)
571
572trace-event-get-state (Command)
573
574trace-event-set-state (Command)
575
576Compatibility policy
577
578CompatPolicyInput (Enum)
579
580CompatPolicyOutput (Enum)
581
582CompatPolicy (Object)
583
584QMP monitor control
585
586qmp_capabilities (Command)
587
588QMPCapability (Enum)
589
590VersionTriple (Object)
591
592VersionInfo (Object)
593
594query-version (Command)
595
596CommandInfo (Object)
597
598query-commands (Command)
599
600quit (Command)
601
602MonitorMode (Enum)
603
604MonitorOptions (Object)
605
606QMP introspection
607
608query-qmp-schema (Command)
609
610SchemaMetaType (Enum)
611
612SchemaInfo (Object)
613
614SchemaInfoBuiltin (Object)
615
616JSONType (Enum)
617
618SchemaInfoEnum (Object)
619
620SchemaInfoArray (Object)
621
622SchemaInfoObject (Object)
623
624SchemaInfoObjectMember (Object)
625
626SchemaInfoObjectVariant (Object)
627
628SchemaInfoAlternate (Object)
629
630SchemaInfoAlternateMember (Object)
631
632SchemaInfoCommand (Object)
633
634SchemaInfoEvent (Object)
635
636QEMU Object Model (QOM)
637
638ObjectPropertyInfo (Object)
639
640qom-list (Command)
641
642qom-get (Command)
643
644qom-set (Command)
645
646ObjectTypeInfo (Object)
647
648qom-list-types (Command)
649
650qom-list-properties (Command)
651
652CanHostSocketcanProperties (Object)
653
654ColoCompareProperties (Object)
655
656CryptodevBackendProperties (Object)
657
658CryptodevVhostUserProperties (Object)
659
660DBusVMStateProperties (Object)
661
662NetfilterInsert (Enum)
663
664NetfilterProperties (Object)
665
666FilterBufferProperties (Object)
667
668FilterDumpProperties (Object)
669
670FilterMirrorProperties (Object)
671
672FilterRedirectorProperties (Object)
673
674FilterRewriterProperties (Object)
675
676InputBarrierProperties (Object)
677
678InputLinuxProperties (Object)
679
680IothreadProperties (Object)
681
682MemoryBackendProperties (Object)
683
684MemoryBackendFileProperties (Object)
685
686MemoryBackendMemfdProperties (Object)
687
688PrManagerHelperProperties (Object)
689
690QtestProperties (Object)
691
692RemoteObjectProperties (Object)
693
694RngProperties (Object)
695
696RngEgdProperties (Object)
697
698RngRandomProperties (Object)
699
700SevGuestProperties (Object)
701
702ObjectType (Enum)
703
704ObjectOptions (Object)
705
706object-add (Command)
707
708object-del (Command)
709
710Device infrastructure (qdev)
711
712device-list-properties (Command)
713
714device_add (Command)
715
716device_del (Command)
717
718DEVICE_DELETED (Event)
719
720Machines
721
722SysEmuTarget (Enum)
723
724CpuS390State (Enum)
725
726CpuInfoS390 (Object)
727
728CpuInfoFast (Object)
729
730query-cpus-fast (Command)
731
732MachineInfo (Object)
733
734query-machines (Command)
735
736CurrentMachineParams (Object)
737
738query-current-machine (Command)
739
740TargetInfo (Object)
741
742query-target (Command)
743
744UuidInfo (Object)
745
746query-uuid (Command)
747
748GuidInfo (Object)
749
750query-vm-generation-id (Command)
751
752system_reset (Command)
753
754system_powerdown (Command)
755
756system_wakeup (Command)
757
758LostTickPolicy (Enum)
759
760inject-nmi (Command)
761
762KvmInfo (Object)
763
764query-kvm (Command)
765
766NumaOptionsType (Enum)
767
768NumaOptions (Object)
769
770NumaNodeOptions (Object)
771
772NumaDistOptions (Object)
773
774X86CPURegister32 (Enum)
775
776X86CPUFeatureWordInfo (Object)
777
778DummyForceArrays (Object)
779
780NumaCpuOptions (Object)
781
782HmatLBMemoryHierarchy (Enum)
783
784HmatLBDataType (Enum)
785
786NumaHmatLBOptions (Object)
787
788HmatCacheAssociativity (Enum)
789
790HmatCacheWritePolicy (Enum)
791
792NumaHmatCacheOptions (Object)
793
794memsave (Command)
795
796pmemsave (Command)
797
798Memdev (Object)
799
800query-memdev (Command)
801
802CpuInstanceProperties (Object)
803
804HotpluggableCPU (Object)
805
806query-hotpluggable-cpus (Command)
807
808set-numa-node (Command)
809
810balloon (Command)
811
812BalloonInfo (Object)
813
814query-balloon (Command)
815
816BALLOON_CHANGE (Event)
817
818MemoryInfo (Object)
819
820query-memory-size-summary (Command)
821
822PCDIMMDeviceInfo (Object)
823
824VirtioPMEMDeviceInfo (Object)
825
826VirtioMEMDeviceInfo (Object)
827
828MemoryDeviceInfo (Object)
829
830query-memory-devices (Command)
831
832MEMORY_DEVICE_SIZE_CHANGE (Event)
833
834MEM_UNPLUG_ERROR (Event)
835
836SMPConfiguration (Object)
837
838CpuModelInfo (Object)
839
840CpuModelExpansionType (Enum)
841
842CpuModelCompareResult (Enum)
843
844CpuModelBaselineInfo (Object)
845
846CpuModelCompareInfo (Object)
847
848query-cpu-model-comparison (Command)
849
850query-cpu-model-baseline (Command)
851
852CpuModelExpansionInfo (Object)
853
854query-cpu-model-expansion (Command)
855
856CpuDefinitionInfo (Object)
857
858query-cpu-definitions (Command)
859
860Record/replay
861
862ReplayMode (Enum)
863
864ReplayInfo (Object)
865
866query-replay (Command)
867
868replay-break (Command)
869
870replay-delete-break (Command)
871
872replay-seek (Command)
873
874Yank feature
875
876YankInstanceType (Enum)
877
878YankInstanceBlockNode (Object)
879
880YankInstanceChardev (Object)
881
882YankInstance (Object)
883
884yank (Command)
885
886query-yank (Command)
887
888Miscellanea
889
890add_client (Command)
891
892NameInfo (Object)
893
894query-name (Command)
895
896IOThreadInfo (Object)
897
898query-iothreads (Command)
899
900stop (Command)
901
902cont (Command)
903
904x-exit-preconfig (Command)
905
906human-monitor-command (Command)
907
908getfd (Command)
909
910closefd (Command)
911
912AddfdInfo (Object)
913
914add-fd (Command)
915
916remove-fd (Command)
917
918FdsetFdInfo (Object)
919
920FdsetInfo (Object)
921
922query-fdsets (Command)
923
924CommandLineParameterType (Enum)
925
926CommandLineParameterInfo (Object)
927
928CommandLineOptionInfo (Object)
929
930query-command-line-options (Command)
931
932RTC_CHANGE (Event)
933
934rtc-reset-reinjection (Command)
935
936SevState (Enum)
937
938SevInfo (Object)
939
940query-sev (Command)
941
942SevLaunchMeasureInfo (Object)
943
944query-sev-launch-measure (Command)
945
946SevCapability (Object)
947
948query-sev-capabilities (Command)
949
950sev-inject-launch-secret (Command)
951
952dump-skeys (Command)
953
954GICCapability (Object)
955
956query-gic-capabilities (Command)
957
958SevAttestationReport (Object)
959
960query-sev-attestation-report (Command)
961
962Audio
963
964AudiodevPerDirectionOptions (Object)
965
966AudiodevGenericOptions (Object)
967
968AudiodevAlsaPerDirectionOptions (Object)
969
970AudiodevAlsaOptions (Object)
971
972AudiodevCoreaudioPerDirectionOptions (Object)
973
974AudiodevCoreaudioOptions (Object)
975
976AudiodevDsoundOptions (Object)
977
978AudiodevJackPerDirectionOptions (Object)
979
980AudiodevJackOptions (Object)
981
982AudiodevOssPerDirectionOptions (Object)
983
984AudiodevOssOptions (Object)
985
986AudiodevPaPerDirectionOptions (Object)
987
988AudiodevPaOptions (Object)
989
990AudiodevSdlPerDirectionOptions (Object)
991
992AudiodevSdlOptions (Object)
993
994AudiodevWavOptions (Object)
995
996AudioFormat (Enum)
997
998AudiodevDriver (Enum)
999
1000Audiodev (Object)
1001
1002ACPI
1003
1004AcpiTableOptions (Object)
1005
1006ACPISlotType (Enum)
1007
1008ACPIOSTInfo (Object)
1009
1010query-acpi-ospm-status (Command)
1011
1012ACPI_DEVICE_OST (Event)
1013
1014PCI
1015
1016PciMemoryRange (Object)
1017
1018PciMemoryRegion (Object)
1019
1020PciBusInfo (Object)
1021
1022PciBridgeInfo (Object)
1023
1024PciDeviceClass (Object)
1025
1026PciDeviceId (Object)
1027
1028PciDeviceInfo (Object)
1029
1030PciInfo (Object)
1031
1032query-pci (Command)
1033

INTRODUCTION

1035       This document describes all commands currently supported by QMP.
1036
1037       Most of the time their usage is exactly the same as in the  user  Moni‐
1038       tor,  this  means  that any other document which also describe commands
1039       (the manpage, QEMU's manual, etc) can and should be consulted.
1040
1041       QMP has two types of commands: regular and query commands. Regular com‐
1042       mands  usually  change the Virtual Machine's state someway, while query
1043       commands just return information. The sections below  are  divided  ac‐
1044       cordingly.
1045
1046       It's important to observe that all communication examples are formatted
1047       in a reader-friendly way, so that they're easier  to  understand.  How‐
1048       ever, in real protocol usage, they're emitted as a single line.
1049
1050       Also, the following notation is used to denote data flow:
1051
1052       Example:
1053
1054          -> data issued by the Client
1055          <- Server data response
1056
1057       Please,  refer to the QMP specification (docs/interop/qmp-spec.txt) for
1058       detailed information on the Server command and response formats.
1059

STABILITY CONSIDERATIONS

1061       The current QMP command set (described in this file) may be useful  for
1062       a  number  of use cases, however it's limited and several commands have
1063       bad defined semantics, specially with regard to command completion.
1064
1065       These problems are going to be solved incrementally in  the  next  QEMU
1066       releases  and  we're  going to establish a deprecation policy for badly
1067       defined commands.
1068
1069       If you're planning to adopt QMP, please observe the following:
1070
1071          1. The deprecation policy will take effect and be  documented  soon,
1072             please  check the documentation of each used command as soon as a
1073             new release of QEMU is available
1074
1075          2. DO NOT rely on anything which is not explicit documented
1076
1077          3. Errors, in special, are not documented. Applications  should  NOT
1078             check  for  specific errors classes or data (it's strongly recom‐
1079             mended to only check for the "error" key)
1080

QMP ERRORS

1082   QapiErrorClass (Enum)
1083       QEMU error classes
1084
1085   Values
1086       GenericError
1087              this is used for errors that  don't  require  a  specific  error
1088              class. This should be the default case for most errors
1089
1090       CommandNotFound
1091              the requested command has not been found
1092
1093       DeviceNotActive
1094              a device has failed to be become active
1095
1096       DeviceNotFound
1097              the requested device has not been found
1098
1099       KVMMissingCap
1100              the  requested  operation  can't be fulfilled because a required
1101              KVM capability is missing
1102
1103   Since
1104       1.2
1105

COMMON DATA TYPES

1107   IoOperationType (Enum)
1108       An enumeration of the I/O operation types
1109
1110   Values
1111       read   read operation
1112
1113       write  write operation
1114
1115   Since
1116       2.1
1117
1118   OnOffAuto (Enum)
1119       An enumeration of three options: on, off, and auto
1120
1121   Values
1122       auto   QEMU selects the value between on and off
1123
1124       on     Enabled
1125
1126       off    Disabled
1127
1128   Since
1129       2.2
1130
1131   OnOffSplit (Enum)
1132       An enumeration of three values: on, off, and split
1133
1134   Values
1135       on     Enabled
1136
1137       off    Disabled
1138
1139       split  Mixed
1140
1141   Since
1142       2.6
1143
1144   String (Object)
1145       A fat type wrapping 'str', to be embedded in lists.
1146
1147   Members
1148       str: string
1149              Not documented
1150
1151   Since
1152       1.2
1153
1154   StrOrNull (Alternate)
1155       This is a string value or the explicit lack of a string  (null  pointer
1156       in C).  Intended for cases when 'optional absent' already has a differ‐
1157       ent meaning.
1158
1159   Members
1160       s: string
1161              the string value
1162
1163       n: null
1164              no string value
1165
1166   Since
1167       2.10
1168
1169   OffAutoPCIBAR (Enum)
1170       An enumeration of options for specifying a PCI BAR
1171
1172   Values
1173       off    The specified feature is disabled
1174
1175       auto   The PCI BAR for the feature is automatically selected
1176
1177       bar0   PCI BAR0 is used for the feature
1178
1179       bar1   PCI BAR1 is used for the feature
1180
1181       bar2   PCI BAR2 is used for the feature
1182
1183       bar3   PCI BAR3 is used for the feature
1184
1185       bar4   PCI BAR4 is used for the feature
1186
1187       bar5   PCI BAR5 is used for the feature
1188
1189   Since
1190       2.12
1191
1192   PCIELinkSpeed (Enum)
1193       An enumeration of PCIe link speeds in units of GT/s
1194
1195   Values
1196       2_5    2.5GT/s
1197
1198       5      5.0GT/s
1199
1200       8      8.0GT/s
1201
1202       16     16.0GT/s
1203
1204   Since
1205       4.0
1206
1207   PCIELinkWidth (Enum)
1208       An enumeration of PCIe link width
1209
1210   Values
1211       1      x1
1212
1213       2      x2
1214
1215       4      x4
1216
1217       8      x8
1218
1219       12     x12
1220
1221       16     x16
1222
1223       32     x32
1224
1225   Since
1226       4.0
1227
1228   HostMemPolicy (Enum)
1229       Host memory policy types
1230
1231   Values
1232       default
1233              restore default policy, remove any nondefault policy
1234
1235       preferred
1236              set the preferred host nodes for allocation
1237
1238       bind   a strict policy that restricts memory  allocation  to  the  host
1239              nodes specified
1240
1241       interleave
1242              memory  allocations are interleaved across the set of host nodes
1243              specified
1244
1245   Since
1246       2.1
1247
1248   NetFilterDirection (Enum)
1249       Indicates whether a netfilter is attached to a netdev's transmit  queue
1250       or receive queue or both.
1251
1252   Values
1253       all    the  filter  is  attached  both  to the receive and the transmit
1254              queue of the netdev (default).
1255
1256       rx     the filter is attached to the receive queue of the netdev, where
1257              it will receive packets sent to the netdev.
1258
1259       tx     the  filter  is  attached  to  the transmit queue of the netdev,
1260              where it will receive packets sent by the netdev.
1261
1262   Since
1263       2.5
1264
1265   GrabToggleKeys (Enum)
1266       Keys to toggle input-linux between host and guest.
1267
1268   Values
1269       ctrl-ctrl
1270              Not documented
1271
1272       alt-alt
1273              Not documented
1274
1275       shift-shift
1276              Not documented
1277
1278       meta-meta
1279              Not documented
1280
1281       scrolllock
1282              Not documented
1283
1284       ctrl-scrolllock
1285              Not documented
1286
1287   Since
1288       4.0
1289

SOCKET DATA TYPES

1291   NetworkAddressFamily (Enum)
1292       The network address family
1293
1294   Values
1295       ipv4   IPV4 family
1296
1297       ipv6   IPV6 family
1298
1299       unix   unix socket
1300
1301       vsock  vsock family (since 2.8)
1302
1303       unknown
1304              otherwise
1305
1306   Since
1307       2.1
1308
1309   InetSocketAddressBase (Object)
1310   Members
1311       host: string
1312              host part of the address
1313
1314       port: string
1315              port part of the address
1316
1317   InetSocketAddress (Object)
1318       Captures a socket address or address range in the Internet namespace.
1319
1320   Members
1321       numeric: boolean (optional)
1322              true if the host/port are guaranteed to  be  numeric,  false  if
1323              name  resolution should be attempted. Defaults to false.  (Since
1324              2.9)
1325
1326       to: int (optional)
1327              If present, this is range of possible addresses, with  port  be‐
1328              tween port and to.
1329
1330       ipv4: boolean (optional)
1331              whether to accept IPv4 addresses, default try both IPv4 and IPv6
1332
1333       ipv6: boolean (optional)
1334              whether to accept IPv6 addresses, default try both IPv4 and IPv6
1335
1336       keep-alive: boolean (optional)
1337              enable  keep-alive when connecting to this socket. Not supported
1338              for passive sockets. (Since 4.2)
1339
1340       mptcp: boolean (optional) (If: defined(IPPROTO_MPTCP))
1341              enable multi-path TCP. (Since 6.1)
1342
1343       The members of InetSocketAddressBase
1344
1345   Since
1346       1.3
1347
1348   UnixSocketAddress (Object)
1349       Captures a socket address in the local ("Unix socket") namespace.
1350
1351   Members
1352       path: string
1353              filesystem path to use
1354
1355       abstract: boolean (optional) (If: defined(CONFIG_LINUX))
1356              if true, this is a Linux abstract socket address.  path will  be
1357              prefixed  by a null byte, and optionally padded with null bytes.
1358              Defaults to false.  (Since 5.1)
1359
1360       tight: boolean (optional) (If: defined(CONFIG_LINUX))
1361              if false, pad an abstract socket address with enough null  bytes
1362              to make it fill struct sockaddr_un member sun_path.  Defaults to
1363              true.  (Since 5.1)
1364
1365   Since
1366       1.3
1367
1368   VsockSocketAddress (Object)
1369       Captures a socket address in the vsock namespace.
1370
1371   Members
1372       cid: string
1373              unique host identifier
1374
1375       port: string
1376              port
1377
1378   Note
1379       string types are used to allow for possible future hostname or  service
1380       resolution support.
1381
1382   Since
1383       2.8
1384
1385   SocketAddressLegacy (Object)
1386       Captures  the address of a socket, which could also be a named file de‐
1387       scriptor
1388
1389   Members
1390       type   One of inet, unix, vsock, fd
1391
1392       data: InetSocketAddress when type is "inet"
1393
1394       data: UnixSocketAddress when type is "unix"
1395
1396       data: VsockSocketAddress when type is "vsock"
1397
1398       data: String when type is "fd"
1399
1400   Note
1401       This type is deprecated in favor of SocketAddress.  The difference  be‐
1402       tween  SocketAddressLegacy  and  SocketAddress  is that the latter is a
1403       flat union rather than a simple union. Flat is nicer because it  avoids
1404       nesting on the wire, i.e. that form has fewer {}.
1405
1406   Since
1407       1.3
1408
1409   SocketAddressType (Enum)
1410       Available SocketAddress types
1411
1412   Values
1413       inet   Internet address
1414
1415       unix   Unix domain socket
1416
1417       vsock  VMCI address
1418
1419       fd     decimal is for file descriptor number, otherwise a file descrip‐
1420              tor name.  Named file descriptors are permitted in monitor  com‐
1421              mands, in combination with the 'getfd' command. Decimal file de‐
1422              scriptors are permitted at startup or other  contexts  where  no
1423              monitor context is active.
1424
1425   Since
1426       2.9
1427
1428   SocketAddress (Object)
1429       Captures  the address of a socket, which could also be a named file de‐
1430       scriptor
1431
1432   Members
1433       type: SocketAddressType
1434              Transport type
1435
1436       The members of InetSocketAddress when type is "inet"
1437
1438       The members of UnixSocketAddress when type is "unix"
1439
1440       The members of VsockSocketAddress when type is "vsock"
1441
1442       The members of String when type is "fd"
1443
1444   Since
1445       2.9
1446

VM RUN STATE

1448   RunState (Enum)
1449       An enumeration of VM run states.
1450
1451   Values
1452       debug  QEMU is running on a debugger
1453
1454       finish-migrate
1455              guest is paused to finish the migration process
1456
1457       inmigrate
1458              guest is paused waiting for an incoming  migration.   Note  that
1459              this  state  does not tell whether the machine will start at the
1460              end of the migration.  This depends on the command-line  -S  op‐
1461              tion  and  any  invocation of 'stop' or 'cont' that has happened
1462              since QEMU was started.
1463
1464       internal-error
1465              An internal error that prevents further guest execution has  oc‐
1466              curred
1467
1468       io-error
1469              the last IOP has failed and the device is configured to pause on
1470              I/O errors
1471
1472       paused guest has been paused via the 'stop' command
1473
1474       postmigrate
1475              guest is paused following a successful 'migrate'
1476
1477       prelaunch
1478              QEMU was started with -S and guest has not started
1479
1480       restore-vm
1481              guest is paused to restore VM state
1482
1483       running
1484              guest is actively running
1485
1486       save-vm
1487              guest is paused to save the VM state
1488
1489       shutdown
1490              guest is shut down (and -no-shutdown is in use)
1491
1492       suspended
1493              guest is suspended (ACPI S3)
1494
1495       watchdog
1496              the watchdog action is configured to pause and  has  been  trig‐
1497              gered
1498
1499       guest-panicked
1500              guest has been panicked as a result of guest OS panic
1501
1502       colo   guest  is paused to save/restore VM state under colo checkpoint,
1503              VM can not get into this state unless colo capability is enabled
1504              for migration. (since 2.8)
1505
1506   ShutdownCause (Enum)
1507       An enumeration of reasons for a Shutdown.
1508
1509   Values
1510       none   No shutdown request pending
1511
1512       host-error
1513              An error prevents further use of guest
1514
1515       host-qmp-quit
1516              Reaction to the QMP command 'quit'
1517
1518       host-qmp-system-reset
1519              Reaction to the QMP command 'system_reset'
1520
1521       host-signal
1522              Reaction to a signal, such as SIGINT
1523
1524       host-ui
1525              Reaction to a UI event, like window close
1526
1527       guest-shutdown
1528              Guest  shutdown/suspend request, via ACPI or other hardware-spe‐
1529              cific means
1530
1531       guest-reset
1532              Guest reset request, and command line turns that into a shutdown
1533
1534       guest-panic
1535              Guest panicked, and command line turns that into a shutdown
1536
1537       subsystem-reset
1538              Partial guest reset that does not trigger QMP events and ignores
1539              --no-reboot.  This  is  useful for sanitizing hypercalls on s390
1540              that are used during kexec/kdump/boot
1541
1542   StatusInfo (Object)
1543       Information about VCPU run state
1544
1545   Members
1546       running: boolean
1547              true if all VCPUs are runnable, false if not runnable
1548
1549       singlestep: boolean
1550              true if VCPUs are in single-step mode
1551
1552       status: RunState
1553              the virtual machine RunState
1554
1555   Since
1556       0.14
1557
1558   Notes
1559       singlestep is enabled through the GDB stub
1560
1561   query-status (Command)
1562       Query the run status of all VCPUs
1563
1564   Returns
1565       StatusInfo reflecting all VCPUs
1566
1567   Since
1568       0.14
1569
1570   Example
1571          -> { "execute": "query-status" }
1572          <- { "return": { "running": true,
1573                           "singlestep": false,
1574                           "status": "running" } }
1575
1576   SHUTDOWN (Event)
1577       Emitted when the virtual machine has shut down, indicating that qemu is
1578       about to exit.
1579
1580   Arguments
1581       guest: boolean
1582              If  true, the shutdown was triggered by a guest request (such as
1583              a guest-initiated ACPI shutdown request or  other  hardware-spe‐
1584              cific action) rather than a host request (such as sending qemu a
1585              SIGINT). (since 2.10)
1586
1587       reason: ShutdownCause
1588              The ShutdownCause which resulted in the SHUTDOWN. (since 4.0)
1589
1590   Note
1591       If the command-line option "-no-shutdown" has been specified, qemu will
1592       not exit, and a STOP event will eventually follow the SHUTDOWN event
1593
1594   Since
1595       0.12
1596
1597   Example
1598          <- { "event": "SHUTDOWN", "data": { "guest": true },
1599               "timestamp": { "seconds": 1267040730, "microseconds": 682951 } }
1600
1601   POWERDOWN (Event)
1602       Emitted when the virtual machine is powered down through the power con‐
1603       trol system, such as via ACPI.
1604
1605   Since
1606       0.12
1607
1608   Example
1609          <- { "event": "POWERDOWN",
1610               "timestamp": { "seconds": 1267040730, "microseconds": 682951 } }
1611
1612   RESET (Event)
1613       Emitted when the virtual machine is reset
1614
1615   Arguments
1616       guest: boolean
1617              If true, the reset was triggered by a guest request (such  as  a
1618              guest-initiated  ACPI  reboot request or other hardware-specific
1619              action) rather than a host request (such as the QMP command sys‐
1620              tem_reset).  (since 2.10)
1621
1622       reason: ShutdownCause
1623              The ShutdownCause of the RESET. (since 4.0)
1624
1625   Since
1626       0.12
1627
1628   Example
1629          <- { "event": "RESET", "data": { "guest": false },
1630               "timestamp": { "seconds": 1267041653, "microseconds": 9518 } }
1631
1632   STOP (Event)
1633       Emitted when the virtual machine is stopped
1634
1635   Since
1636       0.12
1637
1638   Example
1639          <- { "event": "STOP",
1640               "timestamp": { "seconds": 1267041730, "microseconds": 281295 } }
1641
1642   RESUME (Event)
1643       Emitted when the virtual machine resumes execution
1644
1645   Since
1646       0.12
1647
1648   Example
1649          <- { "event": "RESUME",
1650               "timestamp": { "seconds": 1271770767, "microseconds": 582542 } }
1651
1652   SUSPEND (Event)
1653       Emitted  when guest enters a hardware suspension state, for example, S3
1654       state, which is sometimes called standby state
1655
1656   Since
1657       1.1
1658
1659   Example
1660          <- { "event": "SUSPEND",
1661               "timestamp": { "seconds": 1344456160, "microseconds": 309119 } }
1662
1663   SUSPEND_DISK (Event)
1664       Emitted when guest enters a hardware suspension state with  data  saved
1665       on  disk,  for  example,  S4 state, which is sometimes called hibernate
1666       state
1667
1668   Note
1669       QEMU shuts down (similar to event SHUTDOWN) when entering this state
1670
1671   Since
1672       1.2
1673
1674   Example
1675          <-   { "event": "SUSPEND_DISK",
1676                 "timestamp": { "seconds": 1344456160, "microseconds": 309119 } }
1677
1678   WAKEUP (Event)
1679       Emitted when the guest has woken up from suspend state and is running
1680
1681   Since
1682       1.1
1683
1684   Example
1685          <- { "event": "WAKEUP",
1686               "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
1687
1688   WATCHDOG (Event)
1689       Emitted when the watchdog device's timer is expired
1690
1691   Arguments
1692       action: WatchdogAction
1693              action that has been taken
1694
1695   Note
1696       If action is "reset", "shutdown", or "pause" the WATCHDOG event is fol‐
1697       lowed respectively by the RESET, SHUTDOWN, or STOP events
1698
1699   Note
1700       This event is rate-limited.
1701
1702   Since
1703       0.13
1704
1705   Example
1706          <- { "event": "WATCHDOG",
1707               "data": { "action": "reset" },
1708               "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
1709
1710   WatchdogAction (Enum)
1711       An enumeration of the actions taken when the watchdog device's timer is
1712       expired
1713
1714   Values
1715       reset  system resets
1716
1717       shutdown
1718              system shutdown, note that it is  similar  to  powerdown,  which
1719              tries to set to system status and notify guest
1720
1721       poweroff
1722              system poweroff, the emulator program exits
1723
1724       pause  system pauses, similar to stop
1725
1726       debug  system enters debug state
1727
1728       none   nothing is done
1729
1730       inject-nmi
1731              a  non-maskable  interrupt  is injected into the first VCPU (all
1732              VCPUS on x86) (since 2.4)
1733
1734   Since
1735       2.1
1736
1737   RebootAction (Enum)
1738       Possible QEMU actions upon guest reboot
1739
1740   Values
1741       reset  Reset the VM
1742
1743       shutdown
1744              Shutdown the VM and exit, according to the shutdown action
1745
1746   Since
1747       6.0
1748
1749   ShutdownAction (Enum)
1750       Possible QEMU actions upon guest shutdown
1751
1752   Values
1753       poweroff
1754              Shutdown the VM and exit
1755
1756       pause  pause the VM#
1757
1758   Since
1759       6.0
1760
1761   PanicAction (Enum)
1762   Values
1763       none   Continue VM execution
1764
1765       pause  Pause the VM
1766
1767       shutdown
1768              Shutdown the VM and exit, according to the shutdown action
1769
1770   Since
1771       6.0
1772
1773   watchdog-set-action (Command)
1774       Set watchdog action
1775
1776   Arguments
1777       action: WatchdogAction
1778              Not documented
1779
1780   Since
1781       2.11
1782
1783   set-action (Command)
1784       Set the actions that will be taken by the emulator in response to guest
1785       events.
1786
1787   Arguments
1788       reboot: RebootAction (optional)
1789              RebootAction action taken on guest reboot.
1790
1791       shutdown: ShutdownAction (optional)
1792              ShutdownAction action taken on guest shutdown.
1793
1794       panic: PanicAction (optional)
1795              PanicAction action taken on guest panic.
1796
1797       watchdog: WatchdogAction (optional)
1798              WatchdogAction action taken when watchdog timer expires .
1799
1800   Returns
1801       Nothing on success.
1802
1803   Since
1804       6.0
1805
1806   Example
1807          -> { "execute": "set-action",
1808               "arguments": { "reboot": "shutdown",
1809                              "shutdown" : "pause",
1810                              "panic": "pause",
1811                              "watchdog": "inject-nmi" } }
1812          <- { "return": {} }
1813
1814   GUEST_PANICKED (Event)
1815       Emitted when guest OS panic is detected
1816
1817   Arguments
1818       action: GuestPanicAction
1819              action that has been taken, currently always "pause"
1820
1821       info: GuestPanicInformation (optional)
1822              information about a panic (since 2.9)
1823
1824   Since
1825       1.5
1826
1827   Example
1828          <- { "event": "GUEST_PANICKED",
1829               "data": { "action": "pause" } }
1830
1831   GUEST_CRASHLOADED (Event)
1832       Emitted when guest OS crash loaded is detected
1833
1834   Arguments
1835       action: GuestPanicAction
1836              action that has been taken, currently always "run"
1837
1838       info: GuestPanicInformation (optional)
1839              information about a panic
1840
1841   Since
1842       5.0
1843
1844   Example
1845          <- { "event": "GUEST_CRASHLOADED",
1846               "data": { "action": "run" } }
1847
1848   GuestPanicAction (Enum)
1849       An enumeration of the actions taken when guest OS panic is detected
1850
1851   Values
1852       pause  system pauses
1853
1854       poweroff
1855              Not documented
1856
1857       run    Not documented
1858
1859   Since
1860       2.1 (poweroff since 2.8, run since 5.0)
1861
1862   GuestPanicInformationType (Enum)
1863       An enumeration of the guest panic information types
1864
1865   Values
1866       hyper-v
1867              hyper-v guest panic information type
1868
1869       s390   s390 guest panic information type (Since: 2.12)
1870
1871   Since
1872       2.9
1873
1874   GuestPanicInformation (Object)
1875       Information about a guest panic
1876
1877   Members
1878       type: GuestPanicInformationType
1879              Crash type that defines the hypervisor specific information
1880
1881       The members of GuestPanicInformationHyperV when type is "hyper-v"
1882
1883       The members of GuestPanicInformationS390 when type is "s390"
1884
1885   Since
1886       2.9
1887
1888   GuestPanicInformationHyperV (Object)
1889       Hyper-V specific guest panic information (HV crash MSRs)
1890
1891   Members
1892       arg1: int
1893              Not documented
1894
1895       arg2: int
1896              Not documented
1897
1898       arg3: int
1899              Not documented
1900
1901       arg4: int
1902              Not documented
1903
1904       arg5: int
1905              Not documented
1906
1907   Since
1908       2.9
1909
1910   S390CrashReason (Enum)
1911       Reason why the CPU is in a crashed state.
1912
1913   Values
1914       unknown
1915              no crash reason was set
1916
1917       disabled-wait
1918              the CPU has entered a disabled wait state
1919
1920       extint-loop
1921              clock comparator or cpu timer interrupt with new PSW enabled for
1922              external interrupts
1923
1924       pgmint-loop
1925              program interrupt with BAD new PSW
1926
1927       opint-loop
1928              operation exception interrupt with invalid code at  the  program
1929              interrupt new PSW
1930
1931   Since
1932       2.12
1933
1934   GuestPanicInformationS390 (Object)
1935       S390 specific guest panic information (PSW)
1936
1937   Members
1938       core: int
1939              core id of the CPU that crashed
1940
1941       psw-mask: int
1942              control fields of guest PSW
1943
1944       psw-addr: int
1945              guest instruction address
1946
1947       reason: S390CrashReason
1948              guest crash reason
1949
1950   Since
1951       2.12
1952
1953   MEMORY_FAILURE (Event)
1954       Emitted when a memory failure occurs on host side.
1955
1956   Arguments
1957       recipient: MemoryFailureRecipient
1958              recipient is defined as MemoryFailureRecipient.
1959
1960       action: MemoryFailureAction
1961              action  that has been taken. action is defined as MemoryFailure‐
1962              Action.
1963
1964       flags: MemoryFailureFlags
1965              flags for MemoryFailureAction. action is defined as  MemoryFail‐
1966              ureFlags.
1967
1968   Since
1969       5.2
1970
1971   Example
1972          <- { "event": "MEMORY_FAILURE",
1973               "data": { "recipient": "hypervisor",
1974                         "action": "fatal",
1975                         "flags": { 'action-required': false } }
1976
1977   MemoryFailureRecipient (Enum)
1978       Hardware memory failure occurs, handled by recipient.
1979
1980   Values
1981       hypervisor
1982              memory  failure at QEMU process address space.  (none guest mem‐
1983              ory, but used by QEMU itself).
1984
1985       guest  memory failure at guest memory,
1986
1987   Since
1988       5.2
1989
1990   MemoryFailureAction (Enum)
1991       Actions taken by QEMU in response to a hardware memory failure.
1992
1993   Values
1994       ignore the memory failure could be ignored.  This will only be the case
1995              for action-optional failures.
1996
1997       inject memory  failure  occurred in guest memory, the guest enabled MCE
1998              handling mechanism, and QEMU could inject the MCE into the guest
1999              successfully.
2000
2001       fatal  the  failure  is unrecoverable.  This occurs for action-required
2002              failures if the recipient is the hypervisor; QEMU will exit.
2003
2004       reset  the failure is unrecoverable but confined to  the  guest.   This
2005              occurs  if  the recipient is a guest guest which is not ready to
2006              handle memory failures.
2007
2008   Since
2009       5.2
2010
2011   MemoryFailureFlags (Object)
2012       Additional information on memory failures.
2013
2014   Members
2015       action-required: boolean
2016              whether a memory failure event is action-required or  action-op‐
2017              tional (e.g. a failure during memory scrub).
2018
2019       recursive: boolean
2020              whether  the  failure  occurred  while  the previous failure was
2021              still in progress.
2022
2023   Since
2024       5.2
2025

CRYPTOGRAPHY

2027   QCryptoTLSCredsEndpoint (Enum)
2028       The type of network endpoint that will be using the credentials.   Most
2029       types  of  credential require different setup / structures depending on
2030       whether they will be used in a server versus a client.
2031
2032   Values
2033       client the network endpoint is acting as the client
2034
2035       server the network endpoint is acting as the server
2036
2037   Since
2038       2.5
2039
2040   QCryptoSecretFormat (Enum)
2041       The data format that the secret is provided in
2042
2043   Values
2044       raw    raw bytes. When encoded in JSON only valid UTF-8  sequences  can
2045              be used
2046
2047       base64 arbitrary base64 encoded binary data
2048
2049   Since
2050       2.6
2051
2052   QCryptoHashAlgorithm (Enum)
2053       The supported algorithms for computing content digests
2054
2055   Values
2056       md5    MD5. Should not be used in any new code, legacy compat only
2057
2058       sha1   SHA-1. Should not be used in any new code, legacy compat only
2059
2060       sha224 SHA-224. (since 2.7)
2061
2062       sha256 SHA-256. Current recommended strong hash.
2063
2064       sha384 SHA-384. (since 2.7)
2065
2066       sha512 SHA-512. (since 2.7)
2067
2068       ripemd160
2069              RIPEMD-160. (since 2.7)
2070
2071   Since
2072       2.6
2073
2074   QCryptoCipherAlgorithm (Enum)
2075       The supported algorithms for content encryption ciphers
2076
2077   Values
2078       aes-128
2079              AES with 128 bit / 16 byte keys
2080
2081       aes-192
2082              AES with 192 bit / 24 byte keys
2083
2084       aes-256
2085              AES with 256 bit / 32 byte keys
2086
2087       des    DES  with 56 bit / 8 byte keys. Do not use except in VNC. (since
2088              6.1)
2089
2090       3des   3DES(EDE) with 192 bit / 24 byte keys (since 2.9)
2091
2092       cast5-128
2093              Cast5 with 128 bit / 16 byte keys
2094
2095       serpent-128
2096              Serpent with 128 bit / 16 byte keys
2097
2098       serpent-192
2099              Serpent with 192 bit / 24 byte keys
2100
2101       serpent-256
2102              Serpent with 256 bit / 32 byte keys
2103
2104       twofish-128
2105              Twofish with 128 bit / 16 byte keys
2106
2107       twofish-192
2108              Twofish with 192 bit / 24 byte keys
2109
2110       twofish-256
2111              Twofish with 256 bit / 32 byte keys
2112
2113   Since
2114       2.6
2115
2116   QCryptoCipherMode (Enum)
2117       The supported modes for content encryption ciphers
2118
2119   Values
2120       ecb    Electronic Code Book
2121
2122       cbc    Cipher Block Chaining
2123
2124       xts    XEX with tweaked code book and ciphertext stealing
2125
2126       ctr    Counter (Since 2.8)
2127
2128   Since
2129       2.6
2130
2131   QCryptoIVGenAlgorithm (Enum)
2132       The supported algorithms for generating initialization vectors for full
2133       disk  encryption.  The  'plain'  generator should not be used for disks
2134       with sector numbers larger than 2^32, except where  compatibility  with
2135       pre-existing Linux dm-crypt volumes is required.
2136
2137   Values
2138       plain  64-bit sector number truncated to 32-bits
2139
2140       plain64
2141              64-bit sector number
2142
2143       essiv  64-bit sector number encrypted with a hash of the encryption key
2144
2145   Since
2146       2.6
2147
2148   QCryptoBlockFormat (Enum)
2149       The supported full disk encryption formats
2150
2151   Values
2152       qcow   QCow/QCow2  built-in AES-CBC encryption. Use only for liberating
2153              data from old images.
2154
2155       luks   LUKS encryption format. Recommended for new images
2156
2157   Since
2158       2.6
2159
2160   QCryptoBlockOptionsBase (Object)
2161       The common options that apply to all full disk encryption formats
2162
2163   Members
2164       format: QCryptoBlockFormat
2165              the encryption format
2166
2167   Since
2168       2.6
2169
2170   QCryptoBlockOptionsQCow (Object)
2171       The options that apply to QCow/QCow2 AES-CBC encryption format
2172
2173   Members
2174       key-secret: string (optional)
2175              the ID of a QCryptoSecret object providing the  decryption  key.
2176              Mandatory except when probing image for metadata only.
2177
2178   Since
2179       2.6
2180
2181   QCryptoBlockOptionsLUKS (Object)
2182       The options that apply to LUKS encryption format
2183
2184   Members
2185       key-secret: string (optional)
2186              the  ID  of a QCryptoSecret object providing the decryption key.
2187              Mandatory except when probing image for metadata only.
2188
2189   Since
2190       2.6
2191
2192   QCryptoBlockCreateOptionsLUKS (Object)
2193       The options that apply to LUKS encryption format initialization
2194
2195   Members
2196       cipher-alg: QCryptoCipherAlgorithm (optional)
2197              the cipher algorithm for data encryption Currently  defaults  to
2198              'aes-256'.
2199
2200       cipher-mode: QCryptoCipherMode (optional)
2201              the cipher mode for data encryption Currently defaults to 'xts'
2202
2203       ivgen-alg: QCryptoIVGenAlgorithm (optional)
2204              the   initialization  vector  generator  Currently  defaults  to
2205              'plain64'
2206
2207       ivgen-hash-alg: QCryptoHashAlgorithm (optional)
2208              the initialization vector generator hash Currently  defaults  to
2209              'sha256'
2210
2211       hash-alg: QCryptoHashAlgorithm (optional)
2212              the master key hash algorithm Currently defaults to 'sha256'
2213
2214       iter-time: int (optional)
2215              number  of milliseconds to spend in PBKDF passphrase processing.
2216              Currently defaults to 2000. (since 2.8)
2217
2218       The members of QCryptoBlockOptionsLUKS
2219
2220   Since
2221       2.6
2222
2223   QCryptoBlockOpenOptions (Object)
2224       The options that are available for all encryption formats when  opening
2225       an existing volume
2226
2227   Members
2228       The members of QCryptoBlockOptionsBase
2229
2230       The members of QCryptoBlockOptionsQCow when format is "qcow"
2231
2232       The members of QCryptoBlockOptionsLUKS when format is "luks"
2233
2234   Since
2235       2.6
2236
2237   QCryptoBlockCreateOptions (Object)
2238       The options that are available for all encryption formats when initial‐
2239       izing a new volume
2240
2241   Members
2242       The members of QCryptoBlockOptionsBase
2243
2244       The members of QCryptoBlockOptionsQCow when format is "qcow"
2245
2246       The members of QCryptoBlockCreateOptionsLUKS when format is "luks"
2247
2248   Since
2249       2.6
2250
2251   QCryptoBlockInfoBase (Object)
2252       The common information that applies to all full disk encryption formats
2253
2254   Members
2255       format: QCryptoBlockFormat
2256              the encryption format
2257
2258   Since
2259       2.7
2260
2261   QCryptoBlockInfoLUKSSlot (Object)
2262       Information about the LUKS block encryption key slot options
2263
2264   Members
2265       active: boolean
2266              whether the key slot is currently in use
2267
2268       key-offset: int
2269              offset to the key material in bytes
2270
2271       iters: int (optional)
2272              number of PBKDF2 iterations for key material
2273
2274       stripes: int (optional)
2275              number of stripes for splitting key material
2276
2277   Since
2278       2.7
2279
2280   QCryptoBlockInfoLUKS (Object)
2281       Information about the LUKS block encryption options
2282
2283   Members
2284       cipher-alg: QCryptoCipherAlgorithm
2285              the cipher algorithm for data encryption
2286
2287       cipher-mode: QCryptoCipherMode
2288              the cipher mode for data encryption
2289
2290       ivgen-alg: QCryptoIVGenAlgorithm
2291              the initialization vector generator
2292
2293       ivgen-hash-alg: QCryptoHashAlgorithm (optional)
2294              the initialization vector generator hash
2295
2296       hash-alg: QCryptoHashAlgorithm
2297              the master key hash algorithm
2298
2299       payload-offset: int
2300              offset to the payload data in bytes
2301
2302       master-key-iters: int
2303              number of PBKDF2 iterations for key material
2304
2305       uuid: string
2306              unique identifier for the volume
2307
2308       slots: array of QCryptoBlockInfoLUKSSlot
2309              information about each key slot
2310
2311   Since
2312       2.7
2313
2314   QCryptoBlockInfo (Object)
2315       Information about the block encryption options
2316
2317   Members
2318       The members of QCryptoBlockInfoBase
2319
2320       The members of QCryptoBlockInfoLUKS when format is "luks"
2321
2322   Since
2323       2.7
2324
2325   QCryptoBlockLUKSKeyslotState (Enum)
2326       Defines state of keyslots that are affected by the update
2327
2328   Values
2329       active The slots contain the given password and marked as active
2330
2331       inactive
2332              The slots are erased (contain garbage) and marked as inactive
2333
2334   Since
2335       5.1
2336
2337   QCryptoBlockAmendOptionsLUKS (Object)
2338       This struct defines the update parameters that activate/de-activate set
2339       of keyslots
2340
2341   Members
2342       state: QCryptoBlockLUKSKeyslotState
2343              the desired state of the keyslots
2344
2345       new-secret: string (optional)
2346              The  ID  of  a QCryptoSecret object providing the password to be
2347              written into added active keyslots
2348
2349       old-secret: string (optional)
2350              Optional (for deactivation only) If given  will  deactivate  all
2351              keyslots  that match password located in QCryptoSecret with this
2352              ID
2353
2354       iter-time: int (optional)
2355              Optional (for activation only) Number of milliseconds  to  spend
2356              in  PBKDF passphrase processing for the newly activated keyslot.
2357              Currently defaults to 2000.
2358
2359       keyslot: int (optional)
2360              Optional. ID of the keyslot to activate/deactivate.  For keyslot
2361              activation, keyslot should not be active already (this is unsafe
2362              to update an active keyslot), but possible if 'force'  parameter
2363              is  given.   If keyslot is not given, first free keyslot will be
2364              written.
2365
2366              For keyslot deactivation, this  parameter  specifies  the  exact
2367              keyslot to deactivate
2368
2369       secret: string (optional)
2370              Optional.  The  ID of a QCryptoSecret object providing the pass‐
2371              word to use to retrieve current master  key.   Defaults  to  the
2372              same secret that was used to open the image
2373       Since 5.1
2374
2375   QCryptoBlockAmendOptions (Object)
2376       The options that are available for all encryption formats when amending
2377       encryption settings
2378
2379   Members
2380       The members of QCryptoBlockOptionsBase
2381
2382       The members of QCryptoBlockAmendOptionsLUKS when format is "luks"
2383
2384   Since
2385       5.1
2386
2387   SecretCommonProperties (Object)
2388       Properties for objects of classes derived from secret-common.
2389
2390   Members
2391       loaded: boolean (optional)
2392              if true, the secret is loaded immediately when applying this op‐
2393              tion  and  will  probably  fail when processing the next option.
2394              Don't use; only provided for compatibility. (default: false)
2395
2396       format: QCryptoSecretFormat (optional)
2397              the data format that the secret is provided in (default: raw)
2398
2399       keyid: string (optional)
2400              the name of another secret that should be used  to  decrypt  the
2401              provided  data.  If not present, the data is assumed to be unen‐
2402              crypted.
2403
2404       iv: string (optional)
2405              the random initialization vector used  for  encryption  of  this
2406              particular  secret.  Should  be a base64 encrypted string of the
2407              16-byte IV. Mandatory if keyid is given. Ignored if keyid is ab‐
2408              sent.
2409
2410   Features
2411       deprecated
2412              Member  loaded  is deprecated.  Setting true doesn't make sense,
2413              and false is already the default.
2414
2415   Since
2416       2.6
2417
2418   SecretProperties (Object)
2419       Properties for secret objects.
2420
2421       Either data or file must be provided, but not both.
2422
2423   Members
2424       data: string (optional)
2425              the associated with the secret from
2426
2427       file: string (optional)
2428              the filename to load the data associated with the secret from
2429
2430       The members of SecretCommonProperties
2431
2432   Since
2433       2.6
2434
2435   SecretKeyringProperties (Object)
2436       Properties for secret_keyring objects.
2437
2438   Members
2439       serial: int
2440              serial number that identifies a key to get from the kernel
2441
2442       The members of SecretCommonProperties
2443
2444   Since
2445       5.1
2446
2447   TlsCredsProperties (Object)
2448       Properties for objects of classes derived from tls-creds.
2449
2450   Members
2451       verify-peer: boolean (optional)
2452              if true the peer credentials will be verified once the handshake
2453              is  completed.   This is a no-op for anonymous credentials. (de‐
2454              fault: true)
2455
2456       dir: string (optional)
2457              the path of the directory that contains the credential files
2458
2459       endpoint: QCryptoTLSCredsEndpoint (optional)
2460              whether the QEMU network backend that uses the credentials  will
2461              be acting as a client or as a server (default: client)
2462
2463       priority: string (optional)
2464              a     gnutls     priority     string     as     described     at
2465              https://gnutls.org/manual/html_node/Priority-Strings.html
2466
2467   Since
2468       2.5
2469
2470   TlsCredsAnonProperties (Object)
2471       Properties for tls-creds-anon objects.
2472
2473   Members
2474       loaded: boolean (optional)
2475              if true, the credentials are loaded  immediately  when  applying
2476              this  option  and  will ignore options that are processed later.
2477              Don't use; only provided for compatibility. (default: false)
2478
2479       The members of TlsCredsProperties
2480
2481   Features
2482       deprecated
2483              Member loaded is deprecated.  Setting true doesn't  make  sense,
2484              and false is already the default.
2485
2486   Since
2487       2.5
2488
2489   TlsCredsPskProperties (Object)
2490       Properties for tls-creds-psk objects.
2491
2492   Members
2493       loaded: boolean (optional)
2494              if  true,  the  credentials are loaded immediately when applying
2495              this option and will ignore options that  are  processed  later.
2496              Don't use; only provided for compatibility. (default: false)
2497
2498       username: string (optional)
2499              the  username  which  will  be  sent to the server.  For clients
2500              only.  If absent, "qemu" is sent and the property will read back
2501              as an empty string.
2502
2503       The members of TlsCredsProperties
2504
2505   Features
2506       deprecated
2507              Member  loaded  is deprecated.  Setting true doesn't make sense,
2508              and false is already the default.
2509
2510   Since
2511       3.0
2512
2513   TlsCredsX509Properties (Object)
2514       Properties for tls-creds-x509 objects.
2515
2516   Members
2517       loaded: boolean (optional)
2518              if true, the credentials are loaded  immediately  when  applying
2519              this  option  and  will ignore options that are processed later.
2520              Don't use; only provided for compatibility. (default: false)
2521
2522       sanity-check: boolean (optional)
2523              if true, perform some sanity checks before using the credentials
2524              (default: true)
2525
2526       passwordid: string (optional)
2527              For  the  server-key.pem  and client-key.pem files which contain
2528              sensitive private keys, it is possible to use an encrypted  ver‐
2529              sion  by  providing the passwordid parameter.  This provides the
2530              ID of a previously created secret object containing the password
2531              for decryption.
2532
2533       The members of TlsCredsProperties
2534
2535   Features
2536       deprecated
2537              Member  loaded  is deprecated.  Setting true doesn't make sense,
2538              and false is already the default.
2539
2540   Since
2541       2.5
2542

BLOCK DEVICES

2544   Block core (VM unrelated)
2545   Background jobs
2546   JobType (Enum)
2547       Type of a background job.
2548
2549   Values
2550       commit block commit job type, see "block-commit"
2551
2552       stream block stream job type, see "block-stream"
2553
2554       mirror drive mirror job type, see "drive-mirror"
2555
2556       backup drive backup job type, see "drive-backup"
2557
2558       create image creation job type, see "blockdev-create" (since 3.0)
2559
2560       amend  image options amend job type, see "x-blockdev-amend" (since 5.1)
2561
2562       snapshot-load
2563              snapshot load job type, see "snapshot-load" (since 6.0)
2564
2565       snapshot-save
2566              snapshot save job type, see "snapshot-save" (since 6.0)
2567
2568       snapshot-delete
2569              snapshot delete job type, see "snapshot-delete" (since 6.0)
2570
2571   Since
2572       1.7
2573
2574   JobStatus (Enum)
2575       Indicates the present state of a given job in its lifetime.
2576
2577   Values
2578       undefined
2579              Erroneous, default state. Should not ever be visible.
2580
2581       created
2582              The job has been created, but not yet started.
2583
2584       running
2585              The job is currently running.
2586
2587       paused The job is running, but paused. The pause may  be  requested  by
2588              either the QMP user or by internal processes.
2589
2590       ready  The  job is running, but is ready for the user to signal comple‐
2591              tion.  This is used for long-running jobs like mirror  that  are
2592              designed to run indefinitely.
2593
2594       standby
2595              The  job  is  ready,  but  paused.  This  is nearly identical to
2596              paused.  The job may return to ready or otherwise be canceled.
2597
2598       waiting
2599              The job is waiting for other jobs in the transaction to converge
2600              to the waiting state. This status will likely not be visible for
2601              the last job in a transaction.
2602
2603       pending
2604              The job has finished its work, but has finalization  steps  that
2605              it needs to make prior to completing. These changes will require
2606              manual intervention via job-finalize if auto-finalize was set to
2607              false. These pending changes may still fail.
2608
2609       aborting
2610              The job is in the process of being aborted, and will finish with
2611              an error. The job will afterwards report that it  is  concluded.
2612              This status may not be visible to the management process.
2613
2614       concluded
2615              The job has finished all work. If auto-dismiss was set to false,
2616              the job will remain in the query list until it is dismissed  via
2617              job-dismiss.
2618
2619       null   The job is in the process of being dismantled. This state should
2620              not ever be visible externally.
2621
2622   Since
2623       2.12
2624
2625   JobVerb (Enum)
2626       Represents command verbs that can be applied to a job.
2627
2628   Values
2629       cancel see job-cancel
2630
2631       pause  see job-pause
2632
2633       resume see job-resume
2634
2635       set-speed
2636              see block-job-set-speed
2637
2638       complete
2639              see job-complete
2640
2641       dismiss
2642              see job-dismiss
2643
2644       finalize
2645              see job-finalize
2646
2647   Since
2648       2.12
2649
2650   JOB_STATUS_CHANGE (Event)
2651       Emitted when a job transitions to a different status.
2652
2653   Arguments
2654       id: string
2655              The job identifier
2656
2657       status: JobStatus
2658              The new job status
2659
2660   Since
2661       3.0
2662
2663   job-pause (Command)
2664       Pause an active job.
2665
2666       This command returns immediately after marking the active job for paus‐
2667       ing.  Pausing an already paused job is an error.
2668
2669       The  job will pause as soon as possible, which means transitioning into
2670       the PAUSED state if it was RUNNING, or into STANDBY if  it  was  READY.
2671       The corresponding JOB_STATUS_CHANGE event will be emitted.
2672
2673       Cancelling a paused job automatically resumes it.
2674
2675   Arguments
2676       id: string
2677              The job identifier.
2678
2679   Since
2680       3.0
2681
2682   job-resume (Command)
2683       Resume a paused job.
2684
2685       This  command returns immediately after resuming a paused job. Resuming
2686       an already running job is an error.
2687
2688       id : The job identifier.
2689
2690   Arguments
2691       id: string
2692              Not documented
2693
2694   Since
2695       3.0
2696
2697   job-cancel (Command)
2698       Instruct an active background job to cancel at  the  next  opportunity.
2699       This  command returns immediately after marking the active job for can‐
2700       cellation.
2701
2702       The job will cancel as soon  as  possible  and  then  emit  a  JOB_STA‐
2703       TUS_CHANGE  event.  Usually, the status will change to ABORTING, but it
2704       is possible that a job successfully completes (e.g. because it was  al‐
2705       most  done and there was no opportunity to cancel earlier than complet‐
2706       ing the job) and transitions to PENDING instead.
2707
2708   Arguments
2709       id: string
2710              The job identifier.
2711
2712   Since
2713       3.0
2714
2715   job-complete (Command)
2716       Manually trigger completion of an active job in the READY state.
2717
2718   Arguments
2719       id: string
2720              The job identifier.
2721
2722   Since
2723       3.0
2724
2725   job-dismiss (Command)
2726       Deletes a job that is in the CONCLUDED state. This command  only  needs
2727       to  be  run  explicitly  for jobs that don't have automatic dismiss en‐
2728       abled.
2729
2730       This command will refuse to operate on any job that has not yet reached
2731       its  terminal  state,  JOB_STATUS_CONCLUDED.  For jobs that make use of
2732       JOB_READY event, job-cancel or job-complete will still need to be  used
2733       as appropriate.
2734
2735   Arguments
2736       id: string
2737              The job identifier.
2738
2739   Since
2740       3.0
2741
2742   job-finalize (Command)
2743       Instructs  all jobs in a transaction (or a single job if it is not part
2744       of any transaction) to finalize any graph changes and do any  necessary
2745       cleanup.  This command requires that all involved jobs are in the PEND‐
2746       ING state.
2747
2748       For jobs in a transaction, instructing one job to finalize  will  force
2749       ALL jobs in the transaction to finalize, so it is only necessary to in‐
2750       struct a single member job to finalize.
2751
2752   Arguments
2753       id: string
2754              The identifier of any job in the transaction, or of a  job  that
2755              is not part of any transaction.
2756
2757   Since
2758       3.0
2759
2760   JobInfo (Object)
2761       Information about a job.
2762
2763   Members
2764       id: string
2765              The job identifier
2766
2767       type: JobType
2768              The kind of job that is being performed
2769
2770       status: JobStatus
2771              Current job state/status
2772
2773       current-progress: int
2774              Progress made until now. The unit is arbitrary and the value can
2775              only meaningfully be used for the ratio of  current-progress  to
2776              total-progress. The value is monotonically increasing.
2777
2778       total-progress: int
2779              Estimated  current-progress  value at the completion of the job.
2780              This value can arbitrarily change while the job is  running,  in
2781              both directions.
2782
2783       error: string (optional)
2784              If this field is present, the job failed; if it is still missing
2785              in the CONCLUDED state, this indicates successful completion.
2786
2787              The value is a human-readable error message to describe the rea‐
2788              son  for  the  job  failure. It should not be parsed by applica‐
2789              tions.
2790
2791   Since
2792       3.0
2793
2794   query-jobs (Command)
2795       Return information about jobs.
2796
2797   Returns
2798       a list with a JobInfo for each active job
2799
2800   Since
2801       3.0
2802
2803   SnapshotInfo (Object)
2804   Members
2805       id: string
2806              unique snapshot id
2807
2808       name: string
2809              user chosen name
2810
2811       vm-state-size: int
2812              size of the VM state
2813
2814       date-sec: int
2815              UTC date of the snapshot in seconds
2816
2817       date-nsec: int
2818              fractional part in nano seconds to be used with date-sec
2819
2820       vm-clock-sec: int
2821              VM clock relative to boot in seconds
2822
2823       vm-clock-nsec: int
2824              fractional part in nano seconds to be used with vm-clock-sec
2825
2826       icount: int (optional)
2827              Current instruction count. Appears when execution  record/replay
2828              is enabled. Used for "time-traveling" to match the moment in the
2829              recorded execution with the snapshots. This counter may  be  ob‐
2830              tained through query-replay command (since 5.2)
2831
2832   Since
2833       1.3
2834
2835   ImageInfoSpecificQCow2EncryptionBase (Object)
2836   Members
2837       format: BlockdevQcow2EncryptionFormat
2838              The encryption format
2839
2840   Since
2841       2.10
2842
2843   ImageInfoSpecificQCow2Encryption (Object)
2844   Members
2845       The members of ImageInfoSpecificQCow2EncryptionBase
2846
2847       The members of QCryptoBlockInfoLUKS when format is "luks"
2848
2849   Since
2850       2.10
2851
2852   ImageInfoSpecificQCow2 (Object)
2853   Members
2854       compat: string
2855              compatibility level
2856
2857       data-file: string (optional)
2858              the filename of the external data file that is stored in the im‐
2859              age and used as a default for opening the image (since: 4.0)
2860
2861       data-file-raw: boolean (optional)
2862              True if the external data file must stay valid as  a  standalone
2863              (read-only)  raw image without looking at qcow2 metadata (since:
2864              4.0)
2865
2866       extended-l2: boolean (optional)
2867              true if the image has extended L2 entries; only valid for compat
2868              >= 1.1 (since 5.2)
2869
2870       lazy-refcounts: boolean (optional)
2871              on or off; only valid for compat >= 1.1
2872
2873       corrupt: boolean (optional)
2874              true if the image has been marked corrupt; only valid for compat
2875              >= 1.1 (since 2.2)
2876
2877       refcount-bits: int
2878              width of a refcount entry in bits (since 2.3)
2879
2880       encrypt: ImageInfoSpecificQCow2Encryption (optional)
2881              details about encryption parameters; only set if  image  is  en‐
2882              crypted (since 2.10)
2883
2884       bitmaps: array of Qcow2BitmapInfo (optional)
2885              A list of qcow2 bitmap details (since 4.0)
2886
2887       compression-type: Qcow2CompressionType
2888              the image cluster compression method (since 5.1)
2889
2890   Since
2891       1.7
2892
2893   ImageInfoSpecificVmdk (Object)
2894   Members
2895       create-type: string
2896              The create type of VMDK image
2897
2898       cid: int
2899              Content id of image
2900
2901       parent-cid: int
2902              Parent VMDK image's cid
2903
2904       extents: array of ImageInfo
2905              List of extent files
2906
2907   Since
2908       1.7
2909
2910   ImageInfoSpecificRbd (Object)
2911   Members
2912       encryption-format: RbdImageEncryptionFormat (optional)
2913              Image encryption format
2914
2915   Since
2916       6.1
2917
2918   ImageInfoSpecific (Object)
2919       A discriminated record of image format specific information structures.
2920
2921   Members
2922       type   One of qcow2, vmdk, luks, rbd
2923
2924       data: ImageInfoSpecificQCow2 when type is "qcow2"
2925
2926       data: ImageInfoSpecificVmdk when type is "vmdk"
2927
2928       data: QCryptoBlockInfoLUKS when type is "luks"
2929
2930       data: ImageInfoSpecificRbd when type is "rbd"
2931
2932   Since
2933       1.7
2934
2935   ImageInfo (Object)
2936       Information about a QEMU image file
2937
2938   Members
2939       filename: string
2940              name of the image file
2941
2942       format: string
2943              format of the image file
2944
2945       virtual-size: int
2946              maximum capacity in bytes of the image
2947
2948       actual-size: int (optional)
2949              actual size on disk in bytes of the image
2950
2951       dirty-flag: boolean (optional)
2952              true if image is not cleanly closed
2953
2954       cluster-size: int (optional)
2955              size of a cluster in bytes
2956
2957       encrypted: boolean (optional)
2958              true if the image is encrypted
2959
2960       compressed: boolean (optional)
2961              true if the image is compressed (Since 1.7)
2962
2963       backing-filename: string (optional)
2964              name of the backing file
2965
2966       full-backing-filename: string (optional)
2967              full path of the backing file
2968
2969       backing-filename-format: string (optional)
2970              the format of the backing file
2971
2972       snapshots: array of SnapshotInfo (optional)
2973              list of VM snapshots
2974
2975       backing-image: ImageInfo (optional)
2976              info of the backing image (since 1.6)
2977
2978       format-specific: ImageInfoSpecific (optional)
2979              structure   supplying   additional  format-specific  information
2980              (since 1.7)
2981
2982   Since
2983       1.3
2984
2985   ImageCheck (Object)
2986       Information about a QEMU image file check
2987
2988   Members
2989       filename: string
2990              name of the image file checked
2991
2992       format: string
2993              format of the image file checked
2994
2995       check-errors: int
2996              number of unexpected errors occurred during check
2997
2998       image-end-offset: int (optional)
2999              offset (in bytes) where the image ends, this field is present if
3000              the driver for the image format supports it
3001
3002       corruptions: int (optional)
3003              number of corruptions found during the check if any
3004
3005       leaks: int (optional)
3006              number of leaks found during the check if any
3007
3008       corruptions-fixed: int (optional)
3009              number of corruptions fixed during the check if any
3010
3011       leaks-fixed: int (optional)
3012              number of leaks fixed during the check if any
3013
3014       total-clusters: int (optional)
3015              total  number  of  clusters, this field is present if the driver
3016              for the image format supports it
3017
3018       allocated-clusters: int (optional)
3019              total number of allocated clusters, this field is present if the
3020              driver for the image format supports it
3021
3022       fragmented-clusters: int (optional)
3023              total  number  of  fragmented clusters, this field is present if
3024              the driver for the image format supports it
3025
3026       compressed-clusters: int (optional)
3027              total number of compressed clusters, this field  is  present  if
3028              the driver for the image format supports it
3029
3030   Since
3031       1.4
3032
3033   MapEntry (Object)
3034       Mapping information from a virtual block range to a host file range
3035
3036   Members
3037       start: int
3038              virtual (guest) offset of the first byte described by this entry
3039
3040       length: int
3041              the number of bytes of the mapped virtual range
3042
3043       data: boolean
3044              reading  the  image will actually read data from a file (in par‐
3045              ticular, if offset is present this means that  the  sectors  are
3046              not simply preallocated, but contain actual data in raw format)
3047
3048       zero: boolean
3049              whether the virtual blocks read as zeroes
3050
3051       depth: int
3052              number  of  layers (0 = top image, 1 = top image's backing file,
3053              ..., n - 1 = bottom image (where n is the number  of  images  in
3054              the chain)) before reaching one for which the range is allocated
3055
3056       present: boolean
3057              true  if this layer provides the data, false if adding a backing
3058              layer could impact this region (since 6.1)
3059
3060       offset: int (optional)
3061              if present, the image file stores the data for this range in raw
3062              format at the given (host) offset
3063
3064       filename: string (optional)
3065              filename that is referred to by offset
3066
3067   Since
3068       2.6
3069
3070   BlockdevCacheInfo (Object)
3071       Cache mode information for a block device
3072
3073   Members
3074       writeback: boolean
3075              true if writeback mode is enabled
3076
3077       direct: boolean
3078              true if the host page cache is bypassed (O_DIRECT)
3079
3080       no-flush: boolean
3081              true if flush requests are ignored for the device
3082
3083   Since
3084       2.3
3085
3086   BlockDeviceInfo (Object)
3087       Information about the backing device for a block device.
3088
3089   Members
3090       file: string
3091              the filename of the backing device
3092
3093       node-name: string (optional)
3094              the name of the block driver node (Since 2.0)
3095
3096       ro: boolean
3097              true if the backing device was open read-only
3098
3099       drv: string
3100              the name of the block format used to open the backing device. As
3101              of 0.14 this can be: 'blkdebug', 'bochs', 'cloop', 'cow', 'dmg',
3102              'file',  'file',  'ftp',  'ftps',  'host_cdrom',  'host_device',
3103              'http', 'https', 'luks', 'nbd',  'parallels',  'qcow',  'qcow2',
3104              'raw',  'vdi',  'vmdk', 'vpc', 'vvfat' 2.2: 'archipelago' added,
3105              'cow' dropped 2.3: 'host_floppy' deprecated  2.5:  'host_floppy'
3106              dropped  2.6:  'luks'  added  2.8:  'replication'  added, 'tftp'
3107              dropped 2.9: 'archipelago' dropped
3108
3109       backing_file: string (optional)
3110              the name of the backing file (for copy-on-write)
3111
3112       backing_file_depth: int
3113              number of files in the backing file chain (since: 1.2)
3114
3115       encrypted: boolean
3116              true if the backing device is encrypted
3117
3118       detect_zeroes: BlockdevDetectZeroesOptions
3119              detect and optimize zero writes (Since 2.1)
3120
3121       bps: int
3122              total throughput limit in bytes per second is specified
3123
3124       bps_rd: int
3125              read throughput limit in bytes per second is specified
3126
3127       bps_wr: int
3128              write throughput limit in bytes per second is specified
3129
3130       iops: int
3131              total I/O operations per second is specified
3132
3133       iops_rd: int
3134              read I/O operations per second is specified
3135
3136       iops_wr: int
3137              write I/O operations per second is specified
3138
3139       image: ImageInfo
3140              the info of image used (since: 1.6)
3141
3142       bps_max: int (optional)
3143
3144              total throughput limit during bursts,
3145                     in bytes (Since 1.7)
3146
3147       bps_rd_max: int (optional)
3148
3149              read throughput limit during bursts,
3150                     in bytes (Since 1.7)
3151
3152       bps_wr_max: int (optional)
3153
3154              write throughput limit during bursts,
3155                     in bytes (Since 1.7)
3156
3157       iops_max: int (optional)
3158
3159              total I/O operations per second during bursts,
3160                     in bytes (Since 1.7)
3161
3162       iops_rd_max: int (optional)
3163
3164              read I/O operations per second during bursts,
3165                     in bytes (Since 1.7)
3166
3167       iops_wr_max: int (optional)
3168
3169              write I/O operations per second during bursts,
3170                     in bytes (Since 1.7)
3171
3172       bps_max_length: int (optional)
3173
3174              maximum length of the bps_max burst
3175                     period, in seconds. (Since 2.6)
3176
3177       bps_rd_max_length: int (optional)
3178
3179              maximum length of the bps_rd_max
3180                     burst period, in seconds. (Since 2.6)
3181
3182       bps_wr_max_length: int (optional)
3183
3184              maximum length of the bps_wr_max
3185                     burst period, in seconds. (Since 2.6)
3186
3187       iops_max_length: int (optional)
3188
3189              maximum length of the iops burst
3190                     period, in seconds. (Since 2.6)
3191
3192       iops_rd_max_length: int (optional)
3193
3194              maximum length of the iops_rd_max
3195                     burst period, in seconds. (Since 2.6)
3196
3197       iops_wr_max_length: int (optional)
3198
3199              maximum length of the iops_wr_max
3200                     burst period, in seconds. (Since 2.6)
3201
3202       iops_size: int (optional)
3203              an I/O size in bytes (Since 1.7)
3204
3205       group: string (optional)
3206              throttle group name (Since 2.4)
3207
3208       cache: BlockdevCacheInfo
3209              the cache mode used for the block device (since: 2.3)
3210
3211       write_threshold: int
3212              configured write threshold  for  the  device.   0  if  disabled.
3213              (Since 2.3)
3214
3215       dirty-bitmaps: array of BlockDirtyInfo (optional)
3216              dirty  bitmaps information (only present if node has one or more
3217              dirty bitmaps) (Since 4.2)
3218
3219   Since
3220       0.14
3221
3222   BlockDeviceIoStatus (Enum)
3223       An enumeration of block device I/O status.
3224
3225   Values
3226       ok     The last I/O operation has succeeded
3227
3228       failed The last I/O operation has failed
3229
3230       nospace
3231              The last I/O operation has failed due to a no-space condition
3232
3233   Since
3234       1.0
3235
3236   BlockDirtyInfo (Object)
3237       Block dirty bitmap information.
3238
3239   Members
3240       name: string (optional)
3241              the name of the dirty bitmap (Since 2.4)
3242
3243       count: int
3244              number of dirty bytes according to the dirty bitmap
3245
3246       granularity: int
3247              granularity of the dirty bitmap in bytes (since 1.4)
3248
3249       recording: boolean
3250              true if the bitmap is recording new writes from the guest.   Re‐
3251              places active and disabled statuses. (since 4.0)
3252
3253       busy: boolean
3254              true if the bitmap is in-use by some operation (NBD or jobs) and
3255              cannot be modified via QMP or used by  another  operation.   Re‐
3256              places locked and frozen statuses. (since 4.0)
3257
3258       persistent: boolean
3259              true if the bitmap was stored on disk, is scheduled to be stored
3260              on disk, or both. (since 4.0)
3261
3262       inconsistent: boolean (optional)
3263              true if this is a persistent bitmap that was improperly  stored.
3264              Implies  persistent  to be true; recording and busy to be false.
3265              This bitmap cannot be used. To remove it,  use  block-dirty-bit‐
3266              map-remove. (Since 4.0)
3267
3268   Since
3269       1.3
3270
3271   Qcow2BitmapInfoFlags (Enum)
3272       An enumeration of flags that a bitmap can report to the user.
3273
3274   Values
3275       in-use This  flag  is  set  by any process actively modifying the qcow2
3276              file, and cleared when the updated  bitmap  is  flushed  to  the
3277              qcow2  image.   The  presence  of  this flag in an offline image
3278              means that the bitmap was not saved correctly after its last us‐
3279              age, and may contain inconsistent data.
3280
3281       auto   The  bitmap  must reflect all changes of the virtual disk by any
3282              application that would write to this qcow2 file.
3283
3284   Since
3285       4.0
3286
3287   Qcow2BitmapInfo (Object)
3288       Qcow2 bitmap information.
3289
3290   Members
3291       name: string
3292              the name of the bitmap
3293
3294       granularity: int
3295              granularity of the bitmap in bytes
3296
3297       flags: array of Qcow2BitmapInfoFlags
3298              flags of the bitmap
3299
3300   Since
3301       4.0
3302
3303   BlockLatencyHistogramInfo (Object)
3304       Block latency histogram.
3305
3306   Members
3307       boundaries: array of int
3308              list of interval boundary values  in  nanoseconds,  all  greater
3309              than  zero  and  in ascending order.  For example, the list [10,
3310              50, 100] produces the following histogram  intervals:  [0,  10),
3311              [10, 50), [50, 100), [100, +inf).
3312
3313       bins: array of int
3314              list  of io request counts corresponding to histogram intervals.
3315              len(bins) = len(boundaries) + 1 For the example above, bins  may
3316              be  something  like  [3,  1,  5, 2], and corresponding histogram
3317              looks like:
3318
3319          5|           *
3320          4|           *
3321          3| *         *
3322          2| *         *    *
3323          1| *    *    *    *
3324           +------------------
3325               10   50   100
3326
3327   Since
3328       4.0
3329
3330   BlockInfo (Object)
3331       Block device information.  This structure describes  a  virtual  device
3332       and the backing device associated with it.
3333
3334   Members
3335       device: string
3336              The device name associated with the virtual device.
3337
3338       qdev: string (optional)
3339              The  qdev ID, or if no ID is assigned, the QOM path of the block
3340              device. (since 2.10)
3341
3342       type: string
3343              This field is returned only for compatibility reasons, it should
3344              not be used (always returns 'unknown')
3345
3346       removable: boolean
3347              True if the device supports removable media.
3348
3349       locked: boolean
3350              True  if  the guest has locked this device from having its media
3351              removed
3352
3353       tray_open: boolean (optional)
3354              True if the device's tray is open (only  present  if  it  has  a
3355              tray)
3356
3357       io-status: BlockDeviceIoStatus (optional)
3358              BlockDeviceIoStatus.  Only present if the device supports it and
3359              the VM is configured to stop on errors (supported device models:
3360              virtio-blk, IDE, SCSI except scsi-generic)
3361
3362       inserted: BlockDeviceInfo (optional)
3363              BlockDeviceInfo describing the device if media is present
3364
3365   Since
3366       0.14
3367
3368   BlockMeasureInfo (Object)
3369       Image  file size calculation information.  This structure describes the
3370       size requirements for creating a new image file.
3371
3372       The size requirements depend on the new image file format.   File  size
3373       always  equals  virtual disk size for the 'raw' format, even for sparse
3374       POSIX files.  Compact formats such as 'qcow2' represent unallocated and
3375       zero  regions efficiently so file size may be smaller than virtual disk
3376       size.
3377
3378       The values are upper bounds that are guaranteed to fit  the  new  image
3379       file.   Subsequent  modification,  such as internal snapshot or further
3380       bitmap creation, may require additional space and is not covered here.
3381
3382   Members
3383       required: int
3384              Size required for a new image file, in bytes, when copying  just
3385              allocated guest-visible contents.
3386
3387       fully-allocated: int
3388              Image  file  size,  in  bytes, once data has been written to all
3389              sectors, when copying just guest-visible contents.
3390
3391       bitmaps: int (optional)
3392              Additional size required if all the top-level bitmap metadata in
3393              the  source  image were to be copied to the destination, present
3394              only when source and destination both  support  persistent  bit‐
3395              maps. (since 5.1)
3396
3397   Since
3398       2.10
3399
3400   query-block (Command)
3401       Get a list of BlockInfo for all virtual block devices.
3402
3403   Returns
3404       a  list of BlockInfo describing each virtual block device. Filter nodes
3405       that were created implicitly are skipped over.
3406
3407   Since
3408       0.14
3409
3410   Example
3411          -> { "execute": "query-block" }
3412          <- {
3413                "return":[
3414                   {
3415                      "io-status": "ok",
3416                      "device":"ide0-hd0",
3417                      "locked":false,
3418                      "removable":false,
3419                      "inserted":{
3420                         "ro":false,
3421                         "drv":"qcow2",
3422                         "encrypted":false,
3423                         "file":"disks/test.qcow2",
3424                         "backing_file_depth":1,
3425                         "bps":1000000,
3426                         "bps_rd":0,
3427                         "bps_wr":0,
3428                         "iops":1000000,
3429                         "iops_rd":0,
3430                         "iops_wr":0,
3431                         "bps_max": 8000000,
3432                         "bps_rd_max": 0,
3433                         "bps_wr_max": 0,
3434                         "iops_max": 0,
3435                         "iops_rd_max": 0,
3436                         "iops_wr_max": 0,
3437                         "iops_size": 0,
3438                         "detect_zeroes": "on",
3439                         "write_threshold": 0,
3440                         "image":{
3441                            "filename":"disks/test.qcow2",
3442                            "format":"qcow2",
3443                            "virtual-size":2048000,
3444                            "backing_file":"base.qcow2",
3445                            "full-backing-filename":"disks/base.qcow2",
3446                            "backing-filename-format":"qcow2",
3447                            "snapshots":[
3448                               {
3449                                  "id": "1",
3450                                  "name": "snapshot1",
3451                                  "vm-state-size": 0,
3452                                  "date-sec": 10000200,
3453                                  "date-nsec": 12,
3454                                  "vm-clock-sec": 206,
3455                                  "vm-clock-nsec": 30
3456                               }
3457                            ],
3458                            "backing-image":{
3459                                "filename":"disks/base.qcow2",
3460                                "format":"qcow2",
3461                                "virtual-size":2048000
3462                            }
3463                         }
3464                      },
3465                      "qdev": "ide_disk",
3466                      "type":"unknown"
3467                   },
3468                   {
3469                      "io-status": "ok",
3470                      "device":"ide1-cd0",
3471                      "locked":false,
3472                      "removable":true,
3473                      "qdev": "/machine/unattached/device[23]",
3474                      "tray_open": false,
3475                      "type":"unknown"
3476                   },
3477                   {
3478                      "device":"floppy0",
3479                      "locked":false,
3480                      "removable":true,
3481                      "qdev": "/machine/unattached/device[20]",
3482                      "type":"unknown"
3483                   },
3484                   {
3485                      "device":"sd0",
3486                      "locked":false,
3487                      "removable":true,
3488                      "type":"unknown"
3489                   }
3490                ]
3491             }
3492
3493   BlockDeviceTimedStats (Object)
3494       Statistics of a block device during a given interval of time.
3495
3496   Members
3497       interval_length: int
3498              Interval used for calculating the statistics, in seconds.
3499
3500       min_rd_latency_ns: int
3501              Minimum latency of read operations in the defined  interval,  in
3502              nanoseconds.
3503
3504       min_wr_latency_ns: int
3505              Minimum  latency of write operations in the defined interval, in
3506              nanoseconds.
3507
3508       min_flush_latency_ns: int
3509              Minimum latency of flush operations in the defined interval,  in
3510              nanoseconds.
3511
3512       max_rd_latency_ns: int
3513              Maximum  latency  of read operations in the defined interval, in
3514              nanoseconds.
3515
3516       max_wr_latency_ns: int
3517              Maximum latency of write operations in the defined interval,  in
3518              nanoseconds.
3519
3520       max_flush_latency_ns: int
3521              Maximum  latency of flush operations in the defined interval, in
3522              nanoseconds.
3523
3524       avg_rd_latency_ns: int
3525              Average latency of read operations in the defined  interval,  in
3526              nanoseconds.
3527
3528       avg_wr_latency_ns: int
3529              Average  latency of write operations in the defined interval, in
3530              nanoseconds.
3531
3532       avg_flush_latency_ns: int
3533              Average latency of flush operations in the defined interval,  in
3534              nanoseconds.
3535
3536       avg_rd_queue_depth: number
3537              Average  number of pending read operations in the defined inter‐
3538              val.
3539
3540       avg_wr_queue_depth: number
3541              Average number of pending write operations in the defined inter‐
3542              val.
3543
3544   Since
3545       2.5
3546
3547   BlockDeviceStats (Object)
3548       Statistics of a virtual block device or a block backing device.
3549
3550   Members
3551       rd_bytes: int
3552              The number of bytes read by the device.
3553
3554       wr_bytes: int
3555              The number of bytes written by the device.
3556
3557       unmap_bytes: int
3558              The number of bytes unmapped by the device (Since 4.2)
3559
3560       rd_operations: int
3561              The number of read operations performed by the device.
3562
3563       wr_operations: int
3564              The number of write operations performed by the device.
3565
3566       flush_operations: int
3567              The  number  of  cache  flush operations performed by the device
3568              (since 0.15)
3569
3570       unmap_operations: int
3571              The number of unmap operations performed by  the  device  (Since
3572              4.2)
3573
3574       rd_total_time_ns: int
3575              Total time spent on reads in nanoseconds (since 0.15).
3576
3577       wr_total_time_ns: int
3578              Total time spent on writes in nanoseconds (since 0.15).
3579
3580       flush_total_time_ns: int
3581              Total time spent on cache flushes in nanoseconds (since 0.15).
3582
3583       unmap_total_time_ns: int
3584              Total time spent on unmap operations in nanoseconds (Since 4.2)
3585
3586       wr_highest_offset: int
3587              The  offset  after the greatest byte written to the device.  The
3588              intended use of this information is for  growable  sparse  files
3589              (like qcow2) that are used on top of a physical device.
3590
3591       rd_merged: int
3592              Number  of  read requests that have been merged into another re‐
3593              quest (Since 2.3).
3594
3595       wr_merged: int
3596              Number of write requests that have been merged into another  re‐
3597              quest (Since 2.3).
3598
3599       unmap_merged: int
3600              Number  of unmap requests that have been merged into another re‐
3601              quest (Since 4.2)
3602
3603       idle_time_ns: int (optional)
3604              Time since the last I/O operation, in nanoseconds. If the  field
3605              is  absent  it  means that there haven't been any operations yet
3606              (Since 2.5).
3607
3608       failed_rd_operations: int
3609              The number of failed read operations  performed  by  the  device
3610              (Since 2.5)
3611
3612       failed_wr_operations: int
3613              The  number  of  failed write operations performed by the device
3614              (Since 2.5)
3615
3616       failed_flush_operations: int
3617              The number of failed flush operations performed  by  the  device
3618              (Since 2.5)
3619
3620       failed_unmap_operations: int
3621              The  number  of  failed unmap operations performed by the device
3622              (Since 4.2)
3623
3624       invalid_rd_operations: int
3625
3626              The number of invalid read operations
3627                     performed by the device (Since 2.5)
3628
3629       invalid_wr_operations: int
3630              The number of invalid write operations performed by  the  device
3631              (Since 2.5)
3632
3633       invalid_flush_operations: int
3634              The  number  of invalid flush operations performed by the device
3635              (Since 2.5)
3636
3637       invalid_unmap_operations: int
3638              The number of invalid unmap operations performed by  the  device
3639              (Since 4.2)
3640
3641       account_invalid: boolean
3642              Whether  invalid operations are included in the last access sta‐
3643              tistics (Since 2.5)
3644
3645       account_failed: boolean
3646              Whether failed operations are included in the latency  and  last
3647              access statistics (Since 2.5)
3648
3649       timed_stats: array of BlockDeviceTimedStats
3650              Statistics  specific  to the set of previously defined intervals
3651              of time (Since 2.5)
3652
3653       rd_latency_histogram: BlockLatencyHistogramInfo (optional)
3654              BlockLatencyHistogramInfo. (Since 4.0)
3655
3656       wr_latency_histogram: BlockLatencyHistogramInfo (optional)
3657              BlockLatencyHistogramInfo. (Since 4.0)
3658
3659       flush_latency_histogram: BlockLatencyHistogramInfo (optional)
3660              BlockLatencyHistogramInfo. (Since 4.0)
3661
3662   Since
3663       0.14
3664
3665   BlockStatsSpecificFile (Object)
3666       File driver statistics
3667
3668   Members
3669       discard-nb-ok: int
3670              The number of successful discard  operations  performed  by  the
3671              driver.
3672
3673       discard-nb-failed: int
3674              The number of failed discard operations performed by the driver.
3675
3676       discard-bytes-ok: int
3677              The number of bytes discarded by the driver.
3678
3679   Since
3680       4.2
3681
3682   BlockStatsSpecificNvme (Object)
3683       NVMe driver statistics
3684
3685   Members
3686       completion-errors: int
3687              The number of completion errors.
3688
3689       aligned-accesses: int
3690              The number of aligned accesses performed by the driver.
3691
3692       unaligned-accesses: int
3693              The number of unaligned accesses performed by the driver.
3694
3695   Since
3696       5.2
3697
3698   BlockStatsSpecific (Object)
3699       Block driver specific statistics
3700
3701   Members
3702       driver: BlockdevDriver
3703              Not documented
3704
3705       The members of BlockStatsSpecificFile when driver is "file"
3706
3707       The members of BlockStatsSpecificFile when driver is "host_device" (If:
3708       defined(HAVE_HOST_BLOCK_DEVICE))
3709
3710       The members of BlockStatsSpecificNvme when driver is "nvme"
3711
3712   Since
3713       4.2
3714
3715   BlockStats (Object)
3716       Statistics of a virtual block device or a block backing device.
3717
3718   Members
3719       device: string (optional)
3720              If the stats are for a virtual block  device,  the  name  corre‐
3721              sponding to the virtual block device.
3722
3723       node-name: string (optional)
3724              The node name of the device. (Since 2.3)
3725
3726       qdev: string (optional)
3727              The  qdev ID, or if no ID is assigned, the QOM path of the block
3728              device. (since 3.0)
3729
3730       stats: BlockDeviceStats
3731              A BlockDeviceStats for the device.
3732
3733       driver-specific: BlockStatsSpecific (optional)
3734              Optional driver-specific stats. (Since 4.2)
3735
3736       parent: BlockStats (optional)
3737              This describes the file block device if it  has  one.   Contains
3738              recursively  the statistics of the underlying protocol (e.g. the
3739              host file for a qcow2 image). If there is no  underlying  proto‐
3740              col, this field is omitted
3741
3742       backing: BlockStats (optional)
3743              This  describes  the backing block device if it has one.  (Since
3744              2.0)
3745
3746   Since
3747       0.14
3748
3749   query-blockstats (Command)
3750       Query the BlockStats for all virtual block devices.
3751
3752   Arguments
3753       query-nodes: boolean (optional)
3754              If true, the command will query all the block nodes that have  a
3755              node  name,  in  a list which will include "parent" information,
3756              but not "backing".  If false or omitted, the behavior is as  be‐
3757              fore  -  query  all  the  device backends, recursively including
3758              their "parent" and "backing". Filter nodes that were created im‐
3759              plicitly are skipped over in this mode. (Since 2.3)
3760
3761   Returns
3762       A list of BlockStats for each virtual block devices.
3763
3764   Since
3765       0.14
3766
3767   Example
3768          -> { "execute": "query-blockstats" }
3769          <- {
3770                "return":[
3771                   {
3772                      "device":"ide0-hd0",
3773                      "parent":{
3774                         "stats":{
3775                            "wr_highest_offset":3686448128,
3776                            "wr_bytes":9786368,
3777                            "wr_operations":751,
3778                            "rd_bytes":122567168,
3779                            "rd_operations":36772
3780                            "wr_total_times_ns":313253456
3781                            "rd_total_times_ns":3465673657
3782                            "flush_total_times_ns":49653
3783                            "flush_operations":61,
3784                            "rd_merged":0,
3785                            "wr_merged":0,
3786                            "idle_time_ns":2953431879,
3787                            "account_invalid":true,
3788                            "account_failed":false
3789                         }
3790                      },
3791                      "stats":{
3792                         "wr_highest_offset":2821110784,
3793                         "wr_bytes":9786368,
3794                         "wr_operations":692,
3795                         "rd_bytes":122739200,
3796                         "rd_operations":36604
3797                         "flush_operations":51,
3798                         "wr_total_times_ns":313253456
3799                         "rd_total_times_ns":3465673657
3800                         "flush_total_times_ns":49653,
3801                         "rd_merged":0,
3802                         "wr_merged":0,
3803                         "idle_time_ns":2953431879,
3804                         "account_invalid":true,
3805                         "account_failed":false
3806                      },
3807                      "qdev": "/machine/unattached/device[23]"
3808                   },
3809                   {
3810                      "device":"ide1-cd0",
3811                      "stats":{
3812                         "wr_highest_offset":0,
3813                         "wr_bytes":0,
3814                         "wr_operations":0,
3815                         "rd_bytes":0,
3816                         "rd_operations":0
3817                         "flush_operations":0,
3818                         "wr_total_times_ns":0
3819                         "rd_total_times_ns":0
3820                         "flush_total_times_ns":0,
3821                         "rd_merged":0,
3822                         "wr_merged":0,
3823                         "account_invalid":false,
3824                         "account_failed":false
3825                      },
3826                      "qdev": "/machine/unattached/device[24]"
3827                   },
3828                   {
3829                      "device":"floppy0",
3830                      "stats":{
3831                         "wr_highest_offset":0,
3832                         "wr_bytes":0,
3833                         "wr_operations":0,
3834                         "rd_bytes":0,
3835                         "rd_operations":0
3836                         "flush_operations":0,
3837                         "wr_total_times_ns":0
3838                         "rd_total_times_ns":0
3839                         "flush_total_times_ns":0,
3840                         "rd_merged":0,
3841                         "wr_merged":0,
3842                         "account_invalid":false,
3843                         "account_failed":false
3844                      },
3845                      "qdev": "/machine/unattached/device[16]"
3846                   },
3847                   {
3848                      "device":"sd0",
3849                      "stats":{
3850                         "wr_highest_offset":0,
3851                         "wr_bytes":0,
3852                         "wr_operations":0,
3853                         "rd_bytes":0,
3854                         "rd_operations":0
3855                         "flush_operations":0,
3856                         "wr_total_times_ns":0
3857                         "rd_total_times_ns":0
3858                         "flush_total_times_ns":0,
3859                         "rd_merged":0,
3860                         "wr_merged":0,
3861                         "account_invalid":false,
3862                         "account_failed":false
3863                      }
3864                   }
3865                ]
3866             }
3867
3868   BlockdevOnError (Enum)
3869       An enumeration of possible behaviors for errors on I/O operations.  The
3870       exact meaning depends on whether the I/O was initiated by a guest or by
3871       a block job
3872
3873   Values
3874       report for  guest  operations, report the error to the guest; for jobs,
3875              cancel the job
3876
3877       ignore ignore the error, only report a  QMP  event  (BLOCK_IO_ERROR  or
3878              BLOCK_JOB_ERROR). The backup, mirror and commit block jobs retry
3879              the failing request later and may still  complete  successfully.
3880              The  stream block job continues to stream and will complete with
3881              an error.
3882
3883       enospc same as stop on ENOSPC, same as report otherwise.
3884
3885       stop   for guest operations, stop the virtual machine; for jobs,  pause
3886              the job
3887
3888       auto   inherit the error handling policy of the backend (since: 2.7)
3889
3890   Since
3891       1.3
3892
3893   MirrorSyncMode (Enum)
3894       An  enumeration  of  possible behaviors for the initial synchronization
3895       phase of storage mirroring.
3896
3897   Values
3898       top    copies data in the topmost image to the destination
3899
3900       full   copies data from all images to the destination
3901
3902       none   only copy data written from now on
3903
3904       incremental
3905              only copy data described by the dirty bitmap. (since: 2.4)
3906
3907       bitmap only copy data described by the dirty bitmap. (since:  4.2)  Be‐
3908              havior on completion is determined by the BitmapSyncMode.
3909
3910   Since
3911       1.3
3912
3913   BitmapSyncMode (Enum)
3914       An  enumeration of possible behaviors for the synchronization of a bit‐
3915       map when used for data copy operations.
3916
3917   Values
3918       on-success
3919              The bitmap is only synced  when  the  operation  is  successful.
3920              This is the behavior always used for 'INCREMENTAL' backups.
3921
3922       never  The  bitmap  is  never  synchronized  with the operation, and is
3923              treated solely as a read-only manifest of blocks to copy.
3924
3925       always The bitmap is always synchronized with the operation, regardless
3926              of whether or not the operation was successful.
3927
3928   Since
3929       4.2
3930
3931   MirrorCopyMode (Enum)
3932       An  enumeration  whose values tell the mirror block job when to trigger
3933       writes to the target.
3934
3935   Values
3936       background
3937              copy data in background only.
3938
3939       write-blocking
3940              when data is written to the source, write it (synchronously)  to
3941              the  target  as well.  In addition, data is copied in background
3942              just like in background mode.
3943
3944   Since
3945       3.0
3946
3947   BlockJobInfo (Object)
3948       Information about a long-running block device operation.
3949
3950   Members
3951       type: string
3952              the job type ('stream' for image streaming)
3953
3954       device: string
3955              The job identifier. Originally the device name but other  values
3956              are allowed since QEMU 2.7
3957
3958       len: int
3959              Estimated  offset value at the completion of the job. This value
3960              can arbitrarily change while the job is running, in both  direc‐
3961              tions.
3962
3963       offset: int
3964              Progress made until now. The unit is arbitrary and the value can
3965              only meaningfully be used for the ratio of offset  to  len.  The
3966              value is monotonically increasing.
3967
3968       busy: boolean
3969              false  if  the  job is known to be in a quiescent state, with no
3970              pending I/O.  Since 1.3.
3971
3972       paused: boolean
3973              whether the job is paused or, if busy is true, will pause itself
3974              as soon as possible.  Since 1.3.
3975
3976       speed: int
3977              the rate limit, bytes per second
3978
3979       io-status: BlockDeviceIoStatus
3980              the status of the job (since 1.3)
3981
3982       ready: boolean
3983              true if the job may be completed (since 2.2)
3984
3985       status: JobStatus
3986              Current job state/status (since 2.12)
3987
3988       auto-finalize: boolean
3989              Job  will  finalize itself when PENDING, moving to the CONCLUDED
3990              state. (since 2.12)
3991
3992       auto-dismiss: boolean
3993              Job will dismiss itself when CONCLUDED, moving to the NULL state
3994              and disappearing from the query list. (since 2.12)
3995
3996       error: string (optional)
3997              Error information if the job did not complete successfully.  Not
3998              set if the job completed successfully. (since 2.12.1)
3999
4000   Since
4001       1.1
4002
4003   query-block-jobs (Command)
4004       Return information about long-running block device operations.
4005
4006   Returns
4007       a list of BlockJobInfo for each active block job
4008
4009   Since
4010       1.1
4011
4012   block_resize (Command)
4013       Resize a block image while a guest is running.
4014
4015       Either device or node-name must be set but not both.
4016
4017   Arguments
4018       device: string (optional)
4019              the name of the device to get the image resized
4020
4021       node-name: string (optional)
4022              graph node name to get the image resized (Since 2.0)
4023
4024       size: int
4025              new image size in bytes
4026
4027   Returns
4028       • nothing on success
4029
4030       • If device is not a valid block device, DeviceNotFound
4031
4032   Since
4033       0.14
4034
4035   Example
4036          -> { "execute": "block_resize",
4037               "arguments": { "device": "scratch", "size": 1073741824 } }
4038          <- { "return": {} }
4039
4040   NewImageMode (Enum)
4041       An enumeration that tells QEMU how to set the backing file  path  in  a
4042       new image file.
4043
4044   Values
4045       existing
4046              QEMU should look for an existing image file.
4047
4048       absolute-paths
4049              QEMU should create a new image with absolute paths for the back‐
4050              ing file. If there is no backing file available, the  new  image
4051              will not be backed either.
4052
4053   Since
4054       1.1
4055
4056   BlockdevSnapshotSync (Object)
4057       Either device or node-name must be set but not both.
4058
4059   Members
4060       device: string (optional)
4061              the name of the device to take a snapshot of.
4062
4063       node-name: string (optional)
4064              graph node name to generate the snapshot from (Since 2.0)
4065
4066       snapshot-file: string
4067              the  target  of the new overlay image. If the file exists, or if
4068              it is a device, the overlay will  be  created  in  the  existing
4069              file/device. Otherwise, a new file will be created.
4070
4071       snapshot-node-name: string (optional)
4072              the graph node name of the new image (Since 2.0)
4073
4074       format: string (optional)
4075              the format of the overlay image, default is 'qcow2'.
4076
4077       mode: NewImageMode (optional)
4078              whether  and how QEMU should create a new image, default is 'ab‐
4079              solute-paths'.
4080
4081   BlockdevSnapshot (Object)
4082   Members
4083       node: string
4084              device or node name that will have a snapshot taken.
4085
4086       overlay: string
4087              reference to the existing block  device  that  will  become  the
4088              overlay  of  node,  as part of taking the snapshot.  It must not
4089              have a current backing file (this can  be  achieved  by  passing
4090              "backing": null to blockdev-add).
4091
4092   Since
4093       2.5
4094
4095   BackupPerf (Object)
4096       Optional parameters for backup. These parameters don't affect function‐
4097       ality, but may significantly affect performance.
4098
4099   Members
4100       use-copy-range: boolean (optional)
4101              Use copy offloading. Default false.
4102
4103       max-workers: int (optional)
4104              Maximum number of parallel requests for the sustained background
4105              copying process. Doesn't influence copy-before-write operations.
4106              Default 64.
4107
4108       max-chunk: int (optional)
4109              Maximum request length  for  the  sustained  background  copying
4110              process.  Doesn't  influence  copy-before-write  operations.   0
4111              means unlimited. If max-chunk is non-zero then it should not  be
4112              less  than  job  cluster  size which is calculated as maximum of
4113              target image cluster size and 64k. Default 0.
4114
4115   Since
4116       6.0
4117
4118   BackupCommon (Object)
4119   Members
4120       job-id: string (optional)
4121              identifier for the newly-created block job. If omitted, the  de‐
4122              vice name will be used. (Since 2.7)
4123
4124       device: string
4125              the  device  name  or  node-name  of a root node which should be
4126              copied.
4127
4128       sync: MirrorSyncMode
4129              what parts of the disk image should be copied to the destination
4130              (all  the disk, only the sectors allocated in the topmost image,
4131              from a dirty bitmap, or only new I/O).
4132
4133       speed: int (optional)
4134              the maximum speed, in bytes per second. The default  is  0,  for
4135              unlimited.
4136
4137       bitmap: string (optional)
4138              The  name  of a dirty bitmap to use.  Must be present if sync is
4139              "bitmap" or "incremental".  Can be present if sync is "full"  or
4140              "top".    Must   not   be   present   otherwise.    (Since   2.4
4141              (drive-backup), 3.1 (blockdev-backup))
4142
4143       bitmap-mode: BitmapSyncMode (optional)
4144              Specifies the type of data the bitmap should contain  after  the
4145              operation  concludes.  Must be present if a bitmap was provided,
4146              Must NOT be present otherwise. (Since 4.2)
4147
4148       compress: boolean (optional)
4149              true to compress data, if the target format supports  it.   (de‐
4150              fault: false) (since 2.8)
4151
4152       on-source-error: BlockdevOnError (optional)
4153              the  action to take on an error on the source, default 'report'.
4154              'stop' and 'enospc' can only be used if the  block  device  sup‐
4155              ports io-status (see BlockInfo).
4156
4157       on-target-error: BlockdevOnError (optional)
4158              the  action  to take on an error on the target, default 'report'
4159              (no limitations, since this applies to a different block  device
4160              than device).
4161
4162       auto-finalize: boolean (optional)
4163              When  false,  this job will wait in a PENDING state after it has
4164              finished its work, waiting for block-job-finalize before  making
4165              any block graph changes.  When true, this job will automatically
4166              perform its abort or commit actions.  Defaults to  true.  (Since
4167              2.12)
4168
4169       auto-dismiss: boolean (optional)
4170              When false, this job will wait in a CONCLUDED state after it has
4171              completely ceased all work, and awaits block-job-dismiss.   When
4172              true,  this job will automatically disappear from the query list
4173              without user intervention.  Defaults to true. (Since 2.12)
4174
4175       filter-node-name: string (optional)
4176              the node name that should be assigned to the filter driver  that
4177              the  backup  job  inserts into the graph above node specified by
4178              drive. If this option is not given, a node  name  is  autogener‐
4179              ated. (Since: 4.2)
4180
4181       x-perf: BackupPerf (optional)
4182              Performance options. (Since 6.0)
4183
4184   Note
4185       on-source-error  and on-target-error only affect background I/O.  If an
4186       error occurs during a guest write request, the  device's  rerror/werror
4187       actions will be used.
4188
4189   Since
4190       4.2
4191
4192   DriveBackup (Object)
4193   Members
4194       target: string
4195              the  target  of the new image. If the file exists, or if it is a
4196              device, the existing file/device will be used as the new  desti‐
4197              nation.  If it does not exist, a new file will be created.
4198
4199       format: string (optional)
4200              the  format  of the new destination, default is to probe if mode
4201              is 'existing', else the format of the source
4202
4203       mode: NewImageMode (optional)
4204              whether and how QEMU should create a new image, default is  'ab‐
4205              solute-paths'.
4206
4207       The members of BackupCommon
4208
4209   Since
4210       1.6
4211
4212   BlockdevBackup (Object)
4213   Members
4214       target: string
4215              the device name or node-name of the backup target node.
4216
4217       The members of BackupCommon
4218
4219   Since
4220       2.3
4221
4222   blockdev-snapshot-sync (Command)
4223       Takes a synchronous snapshot of a block device.
4224
4225       For the arguments, see the documentation of BlockdevSnapshotSync.
4226
4227   Returns
4228       • nothing on success
4229
4230       • If device is not a valid block device, DeviceNotFound
4231
4232   Since
4233       0.14
4234
4235   Example
4236          -> { "execute": "blockdev-snapshot-sync",
4237               "arguments": { "device": "ide-hd0",
4238                              "snapshot-file":
4239                              "/some/place/my-image",
4240                              "format": "qcow2" } }
4241          <- { "return": {} }
4242
4243   blockdev-snapshot (Command)
4244       Takes a snapshot of a block device.
4245
4246       Take  a  snapshot,  by installing 'node' as the backing image of 'over‐
4247       lay'. Additionally, if 'node' is associated with a  block  device,  the
4248       block device changes to using 'overlay' as its new active image.
4249
4250       For the arguments, see the documentation of BlockdevSnapshot.
4251
4252   Features
4253       allow-write-only-overlay
4254              If present, the check whether this operation is safe was relaxed
4255              so that it can be used to change backing file of  a  destination
4256              of a blockdev-mirror.  (since 5.0)
4257
4258   Since
4259       2.5
4260
4261   Example
4262          -> { "execute": "blockdev-add",
4263               "arguments": { "driver": "qcow2",
4264                              "node-name": "node1534",
4265                              "file": { "driver": "file",
4266                                        "filename": "hd1.qcow2" },
4267                              "backing": null } }
4268
4269          <- { "return": {} }
4270
4271          -> { "execute": "blockdev-snapshot",
4272               "arguments": { "node": "ide-hd0",
4273                              "overlay": "node1534" } }
4274          <- { "return": {} }
4275
4276   change-backing-file (Command)
4277       Change  the  backing  file  in  the image file metadata.  This does not
4278       cause QEMU to reopen the image file to reparse the backing filename (it
4279       may, however, perform a reopen to change permissions from r/o -> r/w ->
4280       r/o, if needed). The new backing file string is written into the  image
4281       file metadata, and the QEMU internal strings are updated.
4282
4283   Arguments
4284       image-node-name: string
4285              The  name of the block driver state node of the image to modify.
4286              The "device" argument is used to verify "image-node-name" is  in
4287              the chain described by "device".
4288
4289       device: string
4290              The  device  name  or  node-name  of the root node that owns im‐
4291              age-node-name.
4292
4293       backing-file: string
4294              The string to write as the backing file.   This  string  is  not
4295              validated, so care should be taken when specifying the string or
4296              the image chain may not be able to be reopened again.
4297
4298   Returns
4299       • Nothing on success
4300
4301       • If "device" does not exist or cannot be determined, DeviceNotFound
4302
4303   Since
4304       2.1
4305
4306   block-commit (Command)
4307       Live commit of data from overlay image nodes into backing nodes - i.e.,
4308       writes data between 'top' and 'base' into 'base'.
4309
4310       If top == base, that is an error.  If top has no overlays on top of it,
4311       or if it is in use by a writer, the job will not be  completed  by  it‐
4312       self.   The  user needs to complete the job with the block-job-complete
4313       command after getting the ready event. (Since 2.0)
4314
4315       If the base image is smaller than top, then the base image will be  re‐
4316       sized  to be the same size as top.  If top is smaller than the base im‐
4317       age, the base will not be truncated.  If you want the base  image  size
4318       to  match the size of the smaller top, you can safely truncate it your‐
4319       self once the commit operation successfully completes.
4320
4321   Arguments
4322       job-id: string (optional)
4323              identifier for the newly-created block job. If omitted, the  de‐
4324              vice name will be used. (Since 2.7)
4325
4326       device: string
4327              the device name or node-name of a root node
4328
4329       base-node: string (optional)
4330              The  node  name of the backing image to write data into.  If not
4331              specified, this is the deepest backing image.  (since: 3.1)
4332
4333       base: string (optional)
4334              Same as base-node, except that it is a file name rather  than  a
4335              node  name. This must be the exact filename string that was used
4336              to open the node; other strings, even  if  addressing  the  same
4337              file, are not accepted
4338
4339       top-node: string (optional)
4340              The  node name of the backing image within the image chain which
4341              contains the topmost data to be committed down.  If  not  speci‐
4342              fied, this is the active layer. (since: 3.1)
4343
4344       top: string (optional)
4345              Same  as  top-node,  except that it is a file name rather than a
4346              node name. This must be the exact filename string that was  used
4347              to  open  the  node;  other strings, even if addressing the same
4348              file, are not accepted
4349
4350       backing-file: string (optional)
4351              The backing file string to  write  into  the  overlay  image  of
4352              'top'.   If 'top' does not have an overlay image, or if 'top' is
4353              in use by a writer, specifying a backing file string is  an  er‐
4354              ror.
4355
4356              This  filename  is  not validated.  If a pathname string is such
4357              that it cannot be resolved by QEMU, that means  that  subsequent
4358              QMP  or  HMP commands must use node-names for the image in ques‐
4359              tion, as filename lookup methods will fail.
4360
4361              If not specified, QEMU will automatically determine the  backing
4362              file  string to use, or error out if there is no obvious choice.
4363              Care should be taken when specifying the string,  to  specify  a
4364              valid filename or protocol.  (Since 2.1)
4365
4366       speed: int (optional)
4367              the maximum speed, in bytes per second
4368
4369       on-error: BlockdevOnError (optional)
4370              the  action to take on an error. 'ignore' means that the request
4371              should be retried. (default: report; Since: 5.0)
4372
4373       filter-node-name: string (optional)
4374              the node name that should be assigned to the filter driver  that
4375              the  commit job inserts into the graph above top. If this option
4376              is not given, a node name is autogenerated. (Since: 2.9)
4377
4378       auto-finalize: boolean (optional)
4379              When false, this job will wait in a PENDING state after  it  has
4380              finished  its work, waiting for block-job-finalize before making
4381              any block graph changes.  When true, this job will automatically
4382              perform  its  abort or commit actions.  Defaults to true. (Since
4383              3.1)
4384
4385       auto-dismiss: boolean (optional)
4386              When false, this job will wait in a CONCLUDED state after it has
4387              completely  ceased all work, and awaits block-job-dismiss.  When
4388              true, this job will automatically disappear from the query  list
4389              without user intervention.  Defaults to true. (Since 3.1)
4390
4391   Features
4392       deprecated
4393              Members base and top are deprecated.  Use base-node and top-node
4394              instead.
4395
4396   Returns
4397       • Nothing on success
4398
4399       • If device does not exist, DeviceNotFound
4400
4401       • Any other error returns a GenericError.
4402
4403   Since
4404       1.3
4405
4406   Example
4407          -> { "execute": "block-commit",
4408               "arguments": { "device": "virtio0",
4409                              "top": "/tmp/snap1.qcow2" } }
4410          <- { "return": {} }
4411
4412   drive-backup (Command)
4413       Start a point-in-time copy of a block device to a new destination.  The
4414       status   of   ongoing  drive-backup  operations  can  be  checked  with
4415       query-block-jobs  where  the  BlockJobInfo.type  field  has  the  value
4416       'backup'.   The  operation can be stopped before it has completed using
4417       the block-job-cancel command.
4418
4419   Arguments
4420       The members of DriveBackup
4421
4422   Returns
4423       • nothing on success
4424
4425       • If device is not a valid block device, GenericError
4426
4427   Since
4428       1.6
4429
4430   Example
4431          -> { "execute": "drive-backup",
4432               "arguments": { "device": "drive0",
4433                              "sync": "full",
4434                              "target": "backup.img" } }
4435          <- { "return": {} }
4436
4437   blockdev-backup (Command)
4438       Start a point-in-time copy of a block device to a new destination.  The
4439       status  of  ongoing  blockdev-backup  operations  can  be  checked with
4440       query-block-jobs  where  the  BlockJobInfo.type  field  has  the  value
4441       'backup'.   The  operation can be stopped before it has completed using
4442       the block-job-cancel command.
4443
4444   Arguments
4445       The members of BlockdevBackup
4446
4447   Returns
4448       • nothing on success
4449
4450       • If device is not a valid block device, DeviceNotFound
4451
4452   Since
4453       2.3
4454
4455   Example
4456          -> { "execute": "blockdev-backup",
4457               "arguments": { "device": "src-id",
4458                              "sync": "full",
4459                              "target": "tgt-id" } }
4460          <- { "return": {} }
4461
4462   query-named-block-nodes (Command)
4463       Get the named block driver list
4464
4465   Arguments
4466       flat: boolean (optional)
4467              Omit the nested data about backing image  ("backing-image"  key)
4468              if true.  Default is false (Since 5.0)
4469
4470   Returns
4471       the list of BlockDeviceInfo
4472
4473   Since
4474       2.0
4475
4476   Example
4477          -> { "execute": "query-named-block-nodes" }
4478          <- { "return": [ { "ro":false,
4479                             "drv":"qcow2",
4480                             "encrypted":false,
4481                             "file":"disks/test.qcow2",
4482                             "node-name": "my-node",
4483                             "backing_file_depth":1,
4484                             "bps":1000000,
4485                             "bps_rd":0,
4486                             "bps_wr":0,
4487                             "iops":1000000,
4488                             "iops_rd":0,
4489                             "iops_wr":0,
4490                             "bps_max": 8000000,
4491                             "bps_rd_max": 0,
4492                             "bps_wr_max": 0,
4493                             "iops_max": 0,
4494                             "iops_rd_max": 0,
4495                             "iops_wr_max": 0,
4496                             "iops_size": 0,
4497                             "write_threshold": 0,
4498                             "image":{
4499                                "filename":"disks/test.qcow2",
4500                                "format":"qcow2",
4501                                "virtual-size":2048000,
4502                                "backing_file":"base.qcow2",
4503                                "full-backing-filename":"disks/base.qcow2",
4504                                "backing-filename-format":"qcow2",
4505                                "snapshots":[
4506                                   {
4507                                      "id": "1",
4508                                      "name": "snapshot1",
4509                                      "vm-state-size": 0,
4510                                      "date-sec": 10000200,
4511                                      "date-nsec": 12,
4512                                      "vm-clock-sec": 206,
4513                                      "vm-clock-nsec": 30
4514                                   }
4515                                ],
4516                                "backing-image":{
4517                                    "filename":"disks/base.qcow2",
4518                                    "format":"qcow2",
4519                                    "virtual-size":2048000
4520                                }
4521                             } } ] }
4522
4523   XDbgBlockGraphNodeType (Enum)
4524   Values
4525       block-backend
4526              corresponds to BlockBackend
4527
4528       block-job
4529              corresponds to BlockJob
4530
4531       block-driver
4532              corresponds to BlockDriverState
4533
4534   Since
4535       4.0
4536
4537   XDbgBlockGraphNode (Object)
4538   Members
4539       id: int
4540              Block graph node identifier. This id is generated only for x-de‐
4541              bug-query-block-graph and does not relate to any  other  identi‐
4542              fiers in Qemu.
4543
4544       type: XDbgBlockGraphNodeType
4545              Type  of  graph  node. Can be one of block-backend, block-job or
4546              block-driver-state.
4547
4548       name: string
4549              Human readable name of the node. Corresponds  to  node-name  for
4550              block-driver-state  nodes; is not guaranteed to be unique in the
4551              whole graph (with block-jobs and block-backends).
4552
4553   Since
4554       4.0
4555
4556   BlockPermission (Enum)
4557       Enum of base block permissions.
4558
4559   Values
4560       consistent-read
4561              A user that has the "permission" of consistent reads is  guaran‐
4562              teed that their view of the contents of the block device is com‐
4563              plete and self-consistent, representing the contents of  a  disk
4564              at  a  specific  point.  For most block devices (including their
4565              backing files) this is true, but the property  cannot  be  main‐
4566              tained in a few situations like for intermediate nodes of a com‐
4567              mit block job.
4568
4569       write  This permission is required to change the visible disk contents.
4570
4571       write-unchanged
4572              This permission (which is weaker than  BLK_PERM_WRITE)  is  both
4573              enough and required for writes to the block node when the caller
4574              promises that the visible disk content doesn't change.   As  the
4575              BLK_PERM_WRITE permission is strictly stronger, either is suffi‐
4576              cient to perform an unchanging write.
4577
4578       resize This permission is required to change the size of a block node.
4579
4580       graph-mod
4581              This permission  is  required  to  change  the  node  that  this
4582              BdrvChild points to.
4583
4584   Since
4585       4.0
4586
4587   XDbgBlockGraphEdge (Object)
4588       Block Graph edge description for x-debug-query-block-graph.
4589
4590   Members
4591       parent: int
4592              parent id
4593
4594       child: int
4595              child id
4596
4597       name: string
4598              name of the relation (examples are 'file' and 'backing')
4599
4600       perm: array of BlockPermission
4601              granted permissions for the parent operating on the child
4602
4603       shared-perm: array of BlockPermission
4604              permissions  that  can  still  be  granted to other users of the
4605              child while it is still attached to this parent
4606
4607   Since
4608       4.0
4609
4610   XDbgBlockGraph (Object)
4611       Block Graph - list of nodes and list of edges.
4612
4613   Members
4614       nodes: array of XDbgBlockGraphNode
4615              Not documented
4616
4617       edges: array of XDbgBlockGraphEdge
4618              Not documented
4619
4620   Since
4621       4.0
4622
4623   x-debug-query-block-graph (Command)
4624       Get the block graph.
4625
4626   Since
4627       4.0
4628
4629   drive-mirror (Command)
4630       Start mirroring a block device's writes to a  new  destination.  target
4631       specifies  the target of the new image. If the file exists, or if it is
4632       a device, it will be used as the new destination for writes. If it does
4633       not  exist,  a new file will be created. format specifies the format of
4634       the mirror image, default is to probe if mode='existing', else the for‐
4635       mat of the source.
4636
4637   Arguments
4638       The members of DriveMirror
4639
4640   Returns
4641       • nothing on success
4642
4643       • If device is not a valid block device, GenericError
4644
4645   Since
4646       1.3
4647
4648   Example
4649          -> { "execute": "drive-mirror",
4650               "arguments": { "device": "ide-hd0",
4651                              "target": "/some/place/my-image",
4652                              "sync": "full",
4653                              "format": "qcow2" } }
4654          <- { "return": {} }
4655
4656   DriveMirror (Object)
4657       A set of parameters describing drive mirror setup.
4658
4659   Members
4660       job-id: string (optional)
4661              identifier  for the newly-created block job. If omitted, the de‐
4662              vice name will be used. (Since 2.7)
4663
4664       device: string
4665              the device name or node-name of a root node whose writes  should
4666              be mirrored.
4667
4668       target: string
4669              the  target  of the new image. If the file exists, or if it is a
4670              device, the existing file/device will be used as the new  desti‐
4671              nation.  If it does not exist, a new file will be created.
4672
4673       format: string (optional)
4674              the  format  of the new destination, default is to probe if mode
4675              is 'existing', else the format of the source
4676
4677       node-name: string (optional)
4678              the new block driver state node name in the graph (Since 2.1)
4679
4680       replaces: string (optional)
4681              with sync=full graph node name to be replaced by the  new  image
4682              when a whole image copy is done. This can be used to repair bro‐
4683              ken Quorum files.  By default, device is replaced, although  im‐
4684              plicitly created filters on it are kept. (Since 2.1)
4685
4686       mode: NewImageMode (optional)
4687              whether  and how QEMU should create a new image, default is 'ab‐
4688              solute-paths'.
4689
4690       speed: int (optional)
4691              the maximum speed, in bytes per second
4692
4693       sync: MirrorSyncMode
4694              what parts of the disk image should be copied to the destination
4695              (all  the disk, only the sectors allocated in the topmost image,
4696              or only new I/O).
4697
4698       granularity: int (optional)
4699              granularity of the dirty bitmap, default is  64K  if  the  image
4700              format  doesn't  have  clusters,  4K if the clusters are smaller
4701              than that, else the cluster size.  Must be a power of 2  between
4702              512 and 64M (since 1.4).
4703
4704       buf-size: int (optional)
4705              maximum  amount  of  data in flight from source to target (since
4706              1.4).
4707
4708       on-source-error: BlockdevOnError (optional)
4709              the action to take on an error on the source, default  'report'.
4710              'stop'  and  'enospc'  can only be used if the block device sup‐
4711              ports io-status (see BlockInfo).
4712
4713       on-target-error: BlockdevOnError (optional)
4714              the action to take on an error on the target,  default  'report'
4715              (no  limitations, since this applies to a different block device
4716              than device).
4717
4718       unmap: boolean (optional)
4719              Whether to try to unmap target sectors  where  source  has  only
4720              zero. If true, and target unallocated sectors will read as zero,
4721              target image sectors will be unmapped; otherwise, zeroes will be
4722              written.  Both  will  result  in identical contents.  Default is
4723              true. (Since 2.4)
4724
4725       copy-mode: MirrorCopyMode (optional)
4726              when to copy data to the destination; defaults  to  'background'
4727              (Since: 3.0)
4728
4729       auto-finalize: boolean (optional)
4730              When  false,  this job will wait in a PENDING state after it has
4731              finished its work, waiting for block-job-finalize before  making
4732              any block graph changes.  When true, this job will automatically
4733              perform its abort or commit actions.  Defaults to  true.  (Since
4734              3.1)
4735
4736       auto-dismiss: boolean (optional)
4737              When false, this job will wait in a CONCLUDED state after it has
4738              completely ceased all work, and awaits block-job-dismiss.   When
4739              true,  this job will automatically disappear from the query list
4740              without user intervention.  Defaults to true. (Since 3.1)
4741
4742   Since
4743       1.3
4744
4745   BlockDirtyBitmap (Object)
4746   Members
4747       node: string
4748              name of device/node which the bitmap is tracking
4749
4750       name: string
4751              name of the dirty bitmap
4752
4753   Since
4754       2.4
4755
4756   BlockDirtyBitmapAdd (Object)
4757   Members
4758       node: string
4759              name of device/node which the bitmap is tracking
4760
4761       name: string
4762              name of the dirty bitmap (must be less than 1024 bytes)
4763
4764       granularity: int (optional)
4765              the bitmap granularity,  default  is  64k  for  block-dirty-bit‐
4766              map-add
4767
4768       persistent: boolean (optional)
4769              the  bitmap  is  persistent, i.e. it will be saved to the corre‐
4770              sponding block device image file on  its  close.  For  now  only
4771              Qcow2  disks  support  persistent  bitmaps. Default is false for
4772              block-dirty-bitmap-add. (Since: 2.10)
4773
4774       disabled: boolean (optional)
4775              the bitmap is created in the disabled state, which means that it
4776              will  not  track  drive  changes. The bitmap may be enabled with
4777              block-dirty-bitmap-enable. Default is false. (Since: 4.0)
4778
4779   Since
4780       2.4
4781
4782   BlockDirtyBitmapMergeSource (Alternate)
4783   Members
4784       local: string
4785              name of the bitmap, attached to the same node as target bitmap.
4786
4787       external: BlockDirtyBitmap
4788              bitmap with specified node
4789
4790   Since
4791       4.1
4792
4793   BlockDirtyBitmapMerge (Object)
4794   Members
4795       node: string
4796              name of device/node which the target bitmap is tracking
4797
4798       target: string
4799              name of the destination dirty bitmap
4800
4801       bitmaps: array of BlockDirtyBitmapMergeSource
4802              name(s) of the source dirty bitmap(s) at node and/or fully spec‐
4803              ified  BlockDirtyBitmap elements. The latter are supported since
4804              4.1.
4805
4806   Since
4807       4.0
4808
4809   block-dirty-bitmap-add (Command)
4810       Create a dirty bitmap with a name on the node, and start  tracking  the
4811       writes.
4812
4813   Returns
4814       • nothing on success
4815
4816       • If node is not a valid block device or node, DeviceNotFound
4817
4818       • If name is already taken, GenericError with an explanation
4819
4820   Since
4821       2.4
4822
4823   Example
4824          -> { "execute": "block-dirty-bitmap-add",
4825               "arguments": { "node": "drive0", "name": "bitmap0" } }
4826          <- { "return": {} }
4827
4828   block-dirty-bitmap-remove (Command)
4829       Stop  write  tracking and remove the dirty bitmap that was created with
4830       block-dirty-bitmap-add. If the bitmap is persistent, remove it from its
4831       storage too.
4832
4833   Returns
4834       • nothing on success
4835
4836       • If node is not a valid block device or node, DeviceNotFound
4837
4838       • If name is not found, GenericError with an explanation
4839
4840       • if name is frozen by an operation, GenericError
4841
4842   Since
4843       2.4
4844
4845   Example
4846          -> { "execute": "block-dirty-bitmap-remove",
4847               "arguments": { "node": "drive0", "name": "bitmap0" } }
4848          <- { "return": {} }
4849
4850   block-dirty-bitmap-clear (Command)
4851       Clear  (reset)  a  dirty  bitmap  on the device, so that an incremental
4852       backup from this point in time forward will only backup clusters  modi‐
4853       fied after this clear operation.
4854
4855   Returns
4856       • nothing on success
4857
4858       • If node is not a valid block device, DeviceNotFound
4859
4860       • If name is not found, GenericError with an explanation
4861
4862   Since
4863       2.4
4864
4865   Example
4866          -> { "execute": "block-dirty-bitmap-clear",
4867               "arguments": { "node": "drive0", "name": "bitmap0" } }
4868          <- { "return": {} }
4869
4870   block-dirty-bitmap-enable (Command)
4871       Enables a dirty bitmap so that it will begin tracking disk changes.
4872
4873   Returns
4874       • nothing on success
4875
4876       • If node is not a valid block device, DeviceNotFound
4877
4878       • If name is not found, GenericError with an explanation
4879
4880   Since
4881       4.0
4882
4883   Example
4884          -> { "execute": "block-dirty-bitmap-enable",
4885               "arguments": { "node": "drive0", "name": "bitmap0" } }
4886          <- { "return": {} }
4887
4888   block-dirty-bitmap-disable (Command)
4889       Disables a dirty bitmap so that it will stop tracking disk changes.
4890
4891   Returns
4892       • nothing on success
4893
4894       • If node is not a valid block device, DeviceNotFound
4895
4896       • If name is not found, GenericError with an explanation
4897
4898   Since
4899       4.0
4900
4901   Example
4902          -> { "execute": "block-dirty-bitmap-disable",
4903               "arguments": { "node": "drive0", "name": "bitmap0" } }
4904          <- { "return": {} }
4905
4906   block-dirty-bitmap-merge (Command)
4907       Merge  dirty  bitmaps  listed  in  bitmaps  to the target dirty bitmap.
4908       Dirty bitmaps in bitmaps will be unchanged, except if it  also  appears
4909       as  the target bitmap. Any bits already set in target will still be set
4910       after the merge, i.e., this operation does not clear  the  target.   On
4911       error, target is unchanged.
4912
4913       The  resulting  bitmap will count as dirty any clusters that were dirty
4914       in any of the source bitmaps. This can be used to achieve backup check‐
4915       points, or in simpler usages, to copy bitmaps.
4916
4917   Returns
4918       • nothing on success
4919
4920       • If node is not a valid block device, DeviceNotFound
4921
4922       • If any bitmap in bitmaps or target is not found, GenericError
4923
4924       • If  any  of the bitmaps have different sizes or granularities, Gener‐
4925         icError
4926
4927   Since
4928       4.0
4929
4930   Example
4931          -> { "execute": "block-dirty-bitmap-merge",
4932               "arguments": { "node": "drive0", "target": "bitmap0",
4933                              "bitmaps": ["bitmap1"] } }
4934          <- { "return": {} }
4935
4936   BlockDirtyBitmapSha256 (Object)
4937       SHA256 hash of dirty bitmap data
4938
4939   Members
4940       sha256: string
4941              ASCII representation of SHA256 bitmap hash
4942
4943   Since
4944       2.10
4945
4946   x-debug-block-dirty-bitmap-sha256 (Command)
4947       Get bitmap SHA256.
4948
4949   Returns
4950       • BlockDirtyBitmapSha256 on success
4951
4952       • If node is not a valid block device, DeviceNotFound
4953
4954       • If name is not found or if hashing has failed, GenericError  with  an
4955         explanation
4956
4957   Since
4958       2.10
4959
4960   blockdev-mirror (Command)
4961       Start mirroring a block device's writes to a new destination.
4962
4963   Arguments
4964       job-id: string (optional)
4965              identifier  for the newly-created block job. If omitted, the de‐
4966              vice name will be used. (Since 2.7)
4967
4968       device: string
4969              The device name or node-name of a root node whose writes  should
4970              be mirrored.
4971
4972       target: string
4973              the  id  or  node-name  of  the  block device to mirror to. This
4974              mustn't be attached to guest.
4975
4976       replaces: string (optional)
4977              with sync=full graph node name to be replaced by the  new  image
4978              when a whole image copy is done. This can be used to repair bro‐
4979              ken Quorum files.  By default, device is replaced, although  im‐
4980              plicitly created filters on it are kept.
4981
4982       speed: int (optional)
4983              the maximum speed, in bytes per second
4984
4985       sync: MirrorSyncMode
4986              what parts of the disk image should be copied to the destination
4987              (all the disk, only the sectors allocated in the topmost  image,
4988              or only new I/O).
4989
4990       granularity: int (optional)
4991              granularity  of  the  dirty  bitmap, default is 64K if the image
4992              format doesn't have clusters, 4K if  the  clusters  are  smaller
4993              than  that, else the cluster size.  Must be a power of 2 between
4994              512 and 64M
4995
4996       buf-size: int (optional)
4997              maximum amount of data in flight from source to target
4998
4999       on-source-error: BlockdevOnError (optional)
5000              the action to take on an error on the source, default  'report'.
5001              'stop'  and  'enospc'  can only be used if the block device sup‐
5002              ports io-status (see BlockInfo).
5003
5004       on-target-error: BlockdevOnError (optional)
5005              the action to take on an error on the target,  default  'report'
5006              (no  limitations, since this applies to a different block device
5007              than device).
5008
5009       filter-node-name: string (optional)
5010              the node name that should be assigned to the filter driver  that
5011              the  mirror job inserts into the graph above device. If this op‐
5012              tion is not given, a node name is autogenerated. (Since: 2.9)
5013
5014       copy-mode: MirrorCopyMode (optional)
5015              when to copy data to the destination; defaults  to  'background'
5016              (Since: 3.0)
5017
5018       auto-finalize: boolean (optional)
5019              When  false,  this job will wait in a PENDING state after it has
5020              finished its work, waiting for block-job-finalize before  making
5021              any block graph changes.  When true, this job will automatically
5022              perform its abort or commit actions.  Defaults to  true.  (Since
5023              3.1)
5024
5025       auto-dismiss: boolean (optional)
5026              When false, this job will wait in a CONCLUDED state after it has
5027              completely ceased all work, and awaits block-job-dismiss.   When
5028              true,  this job will automatically disappear from the query list
5029              without user intervention.  Defaults to true. (Since 3.1)
5030
5031   Returns
5032       nothing on success.
5033
5034   Since
5035       2.6
5036
5037   Example
5038          -> { "execute": "blockdev-mirror",
5039               "arguments": { "device": "ide-hd0",
5040                              "target": "target0",
5041                              "sync": "full" } }
5042          <- { "return": {} }
5043
5044   BlockIOThrottle (Object)
5045       A set of parameters describing block throttling.
5046
5047   Members
5048       device: string (optional)
5049              Block device name
5050
5051       id: string (optional)
5052              The name or QOM path of the guest device (since: 2.8)
5053
5054       bps: int
5055              total throughput limit in bytes per second
5056
5057       bps_rd: int
5058              read throughput limit in bytes per second
5059
5060       bps_wr: int
5061              write throughput limit in bytes per second
5062
5063       iops: int
5064              total I/O operations per second
5065
5066       iops_rd: int
5067              read I/O operations per second
5068
5069       iops_wr: int
5070              write I/O operations per second
5071
5072       bps_max: int (optional)
5073              total throughput limit during bursts, in bytes (Since 1.7)
5074
5075       bps_rd_max: int (optional)
5076              read throughput limit during bursts, in bytes (Since 1.7)
5077
5078       bps_wr_max: int (optional)
5079              write throughput limit during bursts, in bytes (Since 1.7)
5080
5081       iops_max: int (optional)
5082              total I/O operations per second during bursts, in  bytes  (Since
5083              1.7)
5084
5085       iops_rd_max: int (optional)
5086              read  I/O  operations  per second during bursts, in bytes (Since
5087              1.7)
5088
5089       iops_wr_max: int (optional)
5090              write I/O operations per second during bursts, in  bytes  (Since
5091              1.7)
5092
5093       bps_max_length: int (optional)
5094              maximum  length of the bps_max burst period, in seconds. It must
5095              only be set if bps_max is set as well.  Defaults  to  1.  (Since
5096              2.6)
5097
5098       bps_rd_max_length: int (optional)
5099              maximum  length  of  the bps_rd_max burst period, in seconds. It
5100              must only be set if bps_rd_max is set as well.  Defaults  to  1.
5101              (Since 2.6)
5102
5103       bps_wr_max_length: int (optional)
5104              maximum  length  of  the bps_wr_max burst period, in seconds. It
5105              must only be set if bps_wr_max is set as well.  Defaults  to  1.
5106              (Since 2.6)
5107
5108       iops_max_length: int (optional)
5109              maximum  length  of  the  iops burst period, in seconds. It must
5110              only be set if iops_max is set as well.  Defaults to  1.  (Since
5111              2.6)
5112
5113       iops_rd_max_length: int (optional)
5114              maximum  length  of the iops_rd_max burst period, in seconds. It
5115              must only be set if iops_rd_max is set as well.  Defaults to  1.
5116              (Since 2.6)
5117
5118       iops_wr_max_length: int (optional)
5119              maximum  length  of the iops_wr_max burst period, in seconds. It
5120              must only be set if iops_wr_max is set as well.  Defaults to  1.
5121              (Since 2.6)
5122
5123       iops_size: int (optional)
5124              an I/O size in bytes (Since 1.7)
5125
5126       group: string (optional)
5127              throttle group name (Since 2.4)
5128
5129   Features
5130       deprecated
5131              Member device is deprecated.  Use id instead.
5132
5133   Since
5134       1.1
5135
5136   ThrottleLimits (Object)
5137       Limit parameters for throttling.  Since some limit combinations are il‐
5138       legal, limits should always be set in one transaction. All  fields  are
5139       optional.  When setting limits, if a field is missing the current value
5140       is not changed.
5141
5142   Members
5143       iops-total: int (optional)
5144              limit total I/O operations per second
5145
5146       iops-total-max: int (optional)
5147              I/O operations burst
5148
5149       iops-total-max-length: int (optional)
5150              length of the iops-total-max burst period, in  seconds  It  must
5151              only be set if iops-total-max is set as well.
5152
5153       iops-read: int (optional)
5154              limit read operations per second
5155
5156       iops-read-max: int (optional)
5157              I/O operations read burst
5158
5159       iops-read-max-length: int (optional)
5160              length  of  the  iops-read-max  burst period, in seconds It must
5161              only be set if iops-read-max is set as well.
5162
5163       iops-write: int (optional)
5164              limit write operations per second
5165
5166       iops-write-max: int (optional)
5167              I/O operations write burst
5168
5169       iops-write-max-length: int (optional)
5170              length of the iops-write-max burst period, in  seconds  It  must
5171              only be set if iops-write-max is set as well.
5172
5173       bps-total: int (optional)
5174              limit total bytes per second
5175
5176       bps-total-max: int (optional)
5177              total bytes burst
5178
5179       bps-total-max-length: int (optional)
5180              length  of  the bps-total-max burst period, in seconds.  It must
5181              only be set if bps-total-max is set as well.
5182
5183       bps-read: int (optional)
5184              limit read bytes per second
5185
5186       bps-read-max: int (optional)
5187              total bytes read burst
5188
5189       bps-read-max-length: int (optional)
5190              length of the bps-read-max burst period, in seconds It must only
5191              be set if bps-read-max is set as well.
5192
5193       bps-write: int (optional)
5194              limit write bytes per second
5195
5196       bps-write-max: int (optional)
5197              total bytes write burst
5198
5199       bps-write-max-length: int (optional)
5200              length  of  the  bps-write-max  burst period, in seconds It must
5201              only be set if bps-write-max is set as well.
5202
5203       iops-size: int (optional)
5204              when limiting by iops max size of an I/O in bytes
5205
5206   Since
5207       2.11
5208
5209   ThrottleGroupProperties (Object)
5210       Properties for throttle-group objects.
5211
5212       The options starting with x- are aliases for the same key without x- in
5213       the  limits object. As indicated by the x- prefix, this is not a stable
5214       interface and may be removed or changed incompatibly in the future. Use
5215       limits for a supported stable interface.
5216
5217   Members
5218       limits: ThrottleLimits (optional)
5219              limits to apply for this throttle group
5220
5221       x-iops-total: int (optional)
5222              Not documented
5223
5224       x-iops-total-max: int (optional)
5225              Not documented
5226
5227       x-iops-total-max-length: int (optional)
5228              Not documented
5229
5230       x-iops-read: int (optional)
5231              Not documented
5232
5233       x-iops-read-max: int (optional)
5234              Not documented
5235
5236       x-iops-read-max-length: int (optional)
5237              Not documented
5238
5239       x-iops-write: int (optional)
5240              Not documented
5241
5242       x-iops-write-max: int (optional)
5243              Not documented
5244
5245       x-iops-write-max-length: int (optional)
5246              Not documented
5247
5248       x-bps-total: int (optional)
5249              Not documented
5250
5251       x-bps-total-max: int (optional)
5252              Not documented
5253
5254       x-bps-total-max-length: int (optional)
5255              Not documented
5256
5257       x-bps-read: int (optional)
5258              Not documented
5259
5260       x-bps-read-max: int (optional)
5261              Not documented
5262
5263       x-bps-read-max-length: int (optional)
5264              Not documented
5265
5266       x-bps-write: int (optional)
5267              Not documented
5268
5269       x-bps-write-max: int (optional)
5270              Not documented
5271
5272       x-bps-write-max-length: int (optional)
5273              Not documented
5274
5275       x-iops-size: int (optional)
5276              Not documented
5277
5278   Since
5279       2.11
5280
5281   block-stream (Command)
5282       Copy data from a backing file into a block device.
5283
5284       The  block streaming operation is performed in the background until the
5285       entire backing file has been copied.  This command returns  immediately
5286       once  streaming has started.  The status of ongoing block streaming op‐
5287       erations can be checked with query-block-jobs.  The  operation  can  be
5288       stopped before it has completed using the block-job-cancel command.
5289
5290       The node that receives the data is called the top image, can be located
5291       in any part of the chain (but always above the base image;  see  below)
5292       and  can  be specified using its device or node name. Earlier qemu ver‐
5293       sions only allowed 'device' to name the top level node; presence of the
5294       'base-node'  parameter during introspection can be used as a witness of
5295       the enhanced semantics of 'device'.
5296
5297       If a base file is specified then sectors are not copied from that  base
5298       file and its backing chain.  This can be used to stream a subset of the
5299       backing file chain  instead  of  flattening  the  entire  image.   When
5300       streaming completes the image file will have the base file as its back‐
5301       ing file, unless that node was changed while the job was  running.   In
5302       that  case,  base's  parent's  backing  (or filtered, whichever exists)
5303       child (i.e., base at the beginning of the job) will be the new  backing
5304       file.
5305
5306       On  successful completion the image file is updated to drop the backing
5307       file and the BLOCK_JOB_COMPLETED event is emitted.
5308
5309       In case device is  a  filter  node,  block-stream  modifies  the  first
5310       non-filter  overlay  node below it to point to the new backing node in‐
5311       stead of modifying device itself.
5312
5313   Arguments
5314       job-id: string (optional)
5315              identifier for the newly-created block job. If omitted, the  de‐
5316              vice name will be used. (Since 2.7)
5317
5318       device: string
5319              the device or node name of the top image
5320
5321       base: string (optional)
5322              the  common backing file name.  It cannot be set if base-node or
5323              bottom is also set.
5324
5325       base-node: string (optional)
5326              the node name of the backing file.  It cannot be set if base  or
5327              bottom is also set. (Since 2.8)
5328
5329       bottom: string (optional)
5330              the  last node in the chain that should be streamed into top. It
5331              cannot be set if base or base-node is also set.   It  cannot  be
5332              filter node. (Since 6.0)
5333
5334       backing-file: string (optional)
5335              The  backing file string to write into the top image. This file‐
5336              name is not validated.
5337
5338              If a pathname string is such that it cannot be resolved by QEMU,
5339              that  means  that  subsequent  QMP  or  HMP  commands  must  use
5340              node-names for the image in question, as filename lookup methods
5341              will fail.
5342
5343              If  not specified, QEMU will automatically determine the backing
5344              file string to use, or error out if there is no obvious  choice.
5345              Care  should  be  taken when specifying the string, to specify a
5346              valid filename or protocol.  (Since 2.1)
5347
5348       speed: int (optional)
5349              the maximum speed, in bytes per second
5350
5351       on-error: BlockdevOnError (optional)
5352              the action to take on an error  (default  report).   'stop'  and
5353              'enospc' can only be used if the block device supports io-status
5354              (see BlockInfo).  Since 1.3.
5355
5356       filter-node-name: string (optional)
5357              the node name that should be assigned to the filter driver  that
5358              the  stream job inserts into the graph above device. If this op‐
5359              tion is not given, a node name is autogenerated. (Since: 6.0)
5360
5361       auto-finalize: boolean (optional)
5362              When false, this job will wait in a PENDING state after  it  has
5363              finished  its work, waiting for block-job-finalize before making
5364              any block graph changes.  When true, this job will automatically
5365              perform  its  abort or commit actions.  Defaults to true. (Since
5366              3.1)
5367
5368       auto-dismiss: boolean (optional)
5369              When false, this job will wait in a CONCLUDED state after it has
5370              completely  ceased all work, and awaits block-job-dismiss.  When
5371              true, this job will automatically disappear from the query  list
5372              without user intervention.  Defaults to true. (Since 3.1)
5373
5374   Returns
5375       • Nothing on success.
5376
5377       • If device does not exist, DeviceNotFound.
5378
5379   Since
5380       1.1
5381
5382   Example
5383          -> { "execute": "block-stream",
5384               "arguments": { "device": "virtio0",
5385                              "base": "/tmp/master.qcow2" } }
5386          <- { "return": {} }
5387
5388   block-job-set-speed (Command)
5389       Set maximum speed for a background block operation.
5390
5391       This command can only be issued when there is an active block job.
5392
5393       Throttling can be disabled by setting the speed to 0.
5394
5395   Arguments
5396       device: string
5397              The  job  identifier.  This  used to be a device name (hence the
5398              name of the parameter), but since QEMU 2.7  it  can  have  other
5399              values.
5400
5401       speed: int
5402              the maximum speed, in bytes per second, or 0 for unlimited.  De‐
5403              faults to 0.
5404
5405   Returns
5406       • Nothing on success
5407
5408       • If no background operation is active on this device, DeviceNotActive
5409
5410   Since
5411       1.1
5412
5413   block-job-cancel (Command)
5414       Stop an active background block operation.
5415
5416       This command returns immediately after marking  the  active  background
5417       block  operation for cancellation.  It is an error to call this command
5418       if no operation is in progress.
5419
5420       The operation will cancel  as  soon  as  possible  and  then  emit  the
5421       BLOCK_JOB_CANCELLED  event.  Before that happens the job is still visi‐
5422       ble when enumerated using query-block-jobs.
5423
5424       Note that if you issue 'block-job-cancel' after 'drive-mirror' has  in‐
5425       dicated (via the event BLOCK_JOB_READY) that the source and destination
5426       are synchronized, then the event triggered by this command  changes  to
5427       BLOCK_JOB_COMPLETED,  to  indicate that the mirroring has ended and the
5428       destination now has a point-in-time copy tied to the time of  the  can‐
5429       cellation.
5430
5431       For  streaming,  the  image  file  retains  its backing file unless the
5432       streaming operation happens to complete just as it is being  cancelled.
5433       A  new  streaming  operation  can  be started at a later time to finish
5434       copying all data from the backing file.
5435
5436   Arguments
5437       device: string
5438              The job identifier. This used to be a  device  name  (hence  the
5439              name  of  the  parameter),  but since QEMU 2.7 it can have other
5440              values.
5441
5442       force: boolean (optional)
5443              If  true,  and  the  job   has   already   emitted   the   event
5444              BLOCK_JOB_READY,  abandon  the  job  immediately  (even if it is
5445              paused) instead of waiting for the destination to  complete  its
5446              final synchronization (since 1.3)
5447
5448   Returns
5449       • Nothing on success
5450
5451       • If no background operation is active on this device, DeviceNotActive
5452
5453   Since
5454       1.1
5455
5456   block-job-pause (Command)
5457       Pause an active background block operation.
5458
5459       This  command  returns  immediately after marking the active background
5460       block operation for pausing.  It is an error to call this command if no
5461       operation is in progress or if the job is already paused.
5462
5463       The operation will pause as soon as possible.  No event is emitted when
5464       the operation is actually paused.  Cancelling a  paused  job  automati‐
5465       cally resumes it.
5466
5467   Arguments
5468       device: string
5469              The  job  identifier.  This  used to be a device name (hence the
5470              name of the parameter), but since QEMU 2.7  it  can  have  other
5471              values.
5472
5473   Returns
5474       • Nothing on success
5475
5476       • If no background operation is active on this device, DeviceNotActive
5477
5478   Since
5479       1.3
5480
5481   block-job-resume (Command)
5482       Resume an active background block operation.
5483
5484       This  command  returns  immediately  after resuming a paused background
5485       block operation.  It is an error to call this command if  no  operation
5486       is in progress or if the job is not paused.
5487
5488       This command also clears the error status of the job.
5489
5490   Arguments
5491       device: string
5492              The  job  identifier.  This  used to be a device name (hence the
5493              name of the parameter), but since QEMU 2.7  it  can  have  other
5494              values.
5495
5496   Returns
5497       • Nothing on success
5498
5499       • If no background operation is active on this device, DeviceNotActive
5500
5501   Since
5502       1.3
5503
5504   block-job-complete (Command)
5505       Manually  trigger  completion  of an active background block operation.
5506       This is supported for drive mirroring, where it also switches  the  de‐
5507       vice to write to the target path only.  The ability to complete is sig‐
5508       naled with a BLOCK_JOB_READY event.
5509
5510       This command  completes  an  active  background  block  operation  syn‐
5511       chronously.    The   ordering   of   this  command's  return  with  the
5512       BLOCK_JOB_COMPLETED event is not defined.  Note that if  an  I/O  error
5513       occurs  during  the  processing  of this command: 1) the command itself
5514       will fail; 2) the error will be processed according to the  rerror/wer‐
5515       ror arguments that were specified when starting the operation.
5516
5517       A cancelled or paused job cannot be completed.
5518
5519   Arguments
5520       device: string
5521              The  job  identifier.  This  used to be a device name (hence the
5522              name of the parameter), but since QEMU 2.7  it  can  have  other
5523              values.
5524
5525   Returns
5526       • Nothing on success
5527
5528       • If no background operation is active on this device, DeviceNotActive
5529
5530   Since
5531       1.3
5532
5533   block-job-dismiss (Command)
5534       For   jobs   that   have   already  concluded,  remove  them  from  the
5535       block-job-query list. This command only needs to be run for jobs  which
5536       were started with QEMU 2.12+ job lifetime management semantics.
5537
5538       This command will refuse to operate on any job that has not yet reached
5539       its terminal state, JOB_STATUS_CONCLUDED. For jobs that make use of the
5540       BLOCK_JOB_READY  event,  block-job-cancel  or  block-job-complete  will
5541       still need to be used as appropriate.
5542
5543   Arguments
5544       id: string
5545              The job identifier.
5546
5547   Returns
5548       Nothing on success
5549
5550   Since
5551       2.12
5552
5553   block-job-finalize (Command)
5554       Once a job that has manual=true reaches the pending state,  it  can  be
5555       instructed  to  finalize any graph changes and do any necessary cleanup
5556       via this command.  For jobs in a transaction, instructing  one  job  to
5557       finalize  will  force ALL jobs in the transaction to finalize, so it is
5558       only necessary to instruct a single member job to finalize.
5559
5560   Arguments
5561       id: string
5562              The job identifier.
5563
5564   Returns
5565       Nothing on success
5566
5567   Since
5568       2.12
5569
5570   BlockdevDiscardOptions (Enum)
5571       Determines how to handle discard requests.
5572
5573   Values
5574       ignore Ignore the request
5575
5576       unmap  Forward as an unmap request
5577
5578   Since
5579       2.9
5580
5581   BlockdevDetectZeroesOptions (Enum)
5582       Describes the operation mode for the automatic conversion of plain zero
5583       writes by the OS to driver specific optimized zero write commands.
5584
5585   Values
5586       off    Disabled (default)
5587
5588       on     Enabled
5589
5590       unmap  Enabled  and even try to unmap blocks if possible. This requires
5591              also that BlockdevDiscardOptions is set to unmap  for  this  de‐
5592              vice.
5593
5594   Since
5595       2.1
5596
5597   BlockdevAioOptions (Enum)
5598       Selects the AIO backend to handle I/O requests
5599
5600   Values
5601       threads
5602              Use qemu's thread pool
5603
5604       native Use native AIO backend (only Linux and Windows)
5605
5606       io_uring (If: defined(CONFIG_LINUX_IO_URING))
5607              Use linux io_uring (since 5.0)
5608
5609   Since
5610       2.9
5611
5612   BlockdevCacheOptions (Object)
5613       Includes cache-related options for block devices
5614
5615   Members
5616       direct: boolean (optional)
5617              enables  use  of  O_DIRECT (bypass the host page cache; default:
5618              false)
5619
5620       no-flush: boolean (optional)
5621              ignore any flush requests for the device (default: false)
5622
5623   Since
5624       2.9
5625
5626   BlockdevDriver (Enum)
5627       Drivers that are supported in block device operations.
5628
5629   Values
5630       throttle
5631              Since 2.11
5632
5633       nvme   Since 2.12
5634
5635       copy-on-read
5636              Since 3.0
5637
5638       blklogwrites
5639              Since 3.0
5640
5641       blkreplay
5642              Since 4.2
5643
5644       compress
5645              Since 5.0
5646
5647       blkdebug
5648              Not documented
5649
5650       blkverify
5651              Not documented
5652
5653       bochs  Not documented
5654
5655       cloop  Not documented
5656
5657       dmg    Not documented
5658
5659       file   Not documented
5660
5661       ftp    Not documented
5662
5663       ftps   Not documented
5664
5665       gluster
5666              Not documented
5667
5668       host_cdrom (If: defined(HAVE_HOST_BLOCK_DEVICE))
5669              Not documented
5670
5671       host_device (If: defined(HAVE_HOST_BLOCK_DEVICE))
5672              Not documented
5673
5674       http   Not documented
5675
5676       https  Not documented
5677
5678       iscsi  Not documented
5679
5680       luks   Not documented
5681
5682       nbd    Not documented
5683
5684       nfs    Not documented
5685
5686       null-aio
5687              Not documented
5688
5689       null-co
5690              Not documented
5691
5692       parallels
5693              Not documented
5694
5695       preallocate
5696              Not documented
5697
5698       qcow   Not documented
5699
5700       qcow2  Not documented
5701
5702       qed    Not documented
5703
5704       quorum Not documented
5705
5706       raw    Not documented
5707
5708       rbd    Not documented
5709
5710       replication (If: defined(CONFIG_REPLICATION))
5711              Not documented
5712
5713       ssh    Not documented
5714
5715       vdi    Not documented
5716
5717       vhdx   Not documented
5718
5719       vmdk   Not documented
5720
5721       vpc    Not documented
5722
5723       vvfat  Not documented
5724
5725   Since
5726       2.9
5727
5728   BlockdevOptionsFile (Object)
5729       Driver specific block device options for the file backend.
5730
5731   Members
5732       filename: string
5733              path to the image file
5734
5735       pr-manager: string (optional)
5736              the id for the object that will handle  persistent  reservations
5737              for  this device (default: none, forward the commands via SG_IO;
5738              since 2.11)
5739
5740       aio: BlockdevAioOptions (optional)
5741              AIO backend (default: threads) (since: 2.8)
5742
5743       locking: OnOffAuto (optional)
5744              whether to enable file locking. If set to  'auto',  only  enable
5745              when  Open  File  Descriptor (OFD) locking API is available (de‐
5746              fault: auto, since 2.10)
5747
5748       drop-cache: boolean (optional) (If: defined(CONFIG_LINUX))
5749              invalidate page cache  during  live  migration.   This  prevents
5750              stale  data  on the migration destination with cache.direct=off.
5751              Currently only supported on Linux hosts.  (default:  on,  since:
5752              4.0)
5753
5754       x-check-cache-dropped: boolean (optional)
5755              whether  to check that page cache was dropped on live migration.
5756              May cause noticeable delays if the image file is large,  do  not
5757              use in production.  (default: off) (since: 3.0)
5758
5759   Features
5760       dynamic-auto-read-only
5761              If  present,  enabled  auto-read-only means that the driver will
5762              open the image read-only at first, dynamically reopen the  image
5763              file  read-write  when  the first writer is attached to the node
5764              and reopen read-only when the last writer is detached. This  al‐
5765              lows giving QEMU write permissions only on demand when an opera‐
5766              tion actually needs write access.
5767
5768   Since
5769       2.9
5770
5771   BlockdevOptionsNull (Object)
5772       Driver specific block device options for the null backend.
5773
5774   Members
5775       size: int (optional)
5776              size of the device in bytes.
5777
5778       latency-ns: int (optional)
5779              emulated latency (in nanoseconds) in  processing  requests.  De‐
5780              fault to zero which completes requests immediately.  (Since 2.4)
5781
5782       read-zeroes: boolean (optional)
5783              if  true,  reads  from  the device produce zeroes; if false, the
5784              buffer is left unchanged. (default: false; since: 4.1)
5785
5786   Since
5787       2.9
5788
5789   BlockdevOptionsNVMe (Object)
5790       Driver specific block device options for the NVMe backend.
5791
5792   Members
5793       device: string
5794              PCI controller address of the NVMe device in format hhhh:bb:ss.f
5795              (host:bus:slot.function)
5796
5797       namespace: int
5798              namespace number of the device, starting from 1.
5799       Note  that  the  PCI device must have been unbound from any host kernel
5800       driver before instructing QEMU to add the blockdev.
5801
5802   Since
5803       2.12
5804
5805   BlockdevOptionsVVFAT (Object)
5806       Driver specific block device options for the vvfat protocol.
5807
5808   Members
5809       dir: string
5810              directory to be exported as FAT image
5811
5812       fat-type: int (optional)
5813              FAT type: 12, 16 or 32
5814
5815       floppy: boolean (optional)
5816              whether to export a floppy image (true) or partitioned hard disk
5817              (false; default)
5818
5819       label: string (optional)
5820              set  the volume label, limited to 11 bytes. FAT16 and FAT32 tra‐
5821              ditionally have some restrictions on labels, which  are  ignored
5822              by  most  operating  systems.  Defaults to "QEMU VVFAT".  (since
5823              2.4)
5824
5825       rw: boolean (optional)
5826              whether to allow write operations (default: false)
5827
5828   Since
5829       2.9
5830
5831   BlockdevOptionsGenericFormat (Object)
5832       Driver specific block device options for image format that have no  op‐
5833       tion besides their data source.
5834
5835   Members
5836       file: BlockdevRef
5837              reference to or definition of the data source block device
5838
5839   Since
5840       2.9
5841
5842   BlockdevOptionsLUKS (Object)
5843       Driver specific block device options for LUKS.
5844
5845   Members
5846       key-secret: string (optional)
5847              the  ID  of  a QCryptoSecret object providing the decryption key
5848              (since 2.6). Mandatory except when doing a  metadata-only  probe
5849              of the image.
5850
5851       The members of BlockdevOptionsGenericFormat
5852
5853   Since
5854       2.9
5855
5856   BlockdevOptionsGenericCOWFormat (Object)
5857       Driver  specific block device options for image format that have no op‐
5858       tion besides their data source and an optional backing file.
5859
5860   Members
5861       backing: BlockdevRefOrNull (optional)
5862              reference to or definition of the  backing  file  block  device,
5863              null  disables the backing file entirely.  Defaults to the back‐
5864              ing file stored the image file.
5865
5866       The members of BlockdevOptionsGenericFormat
5867
5868   Since
5869       2.9
5870
5871   Qcow2OverlapCheckMode (Enum)
5872       General overlap check modes.
5873
5874   Values
5875       none   Do not perform any checks
5876
5877       constant
5878              Perform only checks which can be done in constant time and with‐
5879              out reading anything from disk
5880
5881       cached Perform  only  checks which can be done without reading anything
5882              from disk
5883
5884       all    Perform all available overlap checks
5885
5886   Since
5887       2.9
5888
5889   Qcow2OverlapCheckFlags (Object)
5890       Structure of flags for each metadata  structure.  Setting  a  field  to
5891       'true'  makes qemu guard that structure against unintended overwriting.
5892       The default value is chosen according to the template given.
5893
5894   Members
5895       template: Qcow2OverlapCheckMode (optional)
5896              Specifies a template mode which can be adjusted using the  other
5897              flags, defaults to 'cached'
5898
5899       bitmap-directory: boolean (optional)
5900              since 3.0
5901
5902       main-header: boolean (optional)
5903              Not documented
5904
5905       active-l1: boolean (optional)
5906              Not documented
5907
5908       active-l2: boolean (optional)
5909              Not documented
5910
5911       refcount-table: boolean (optional)
5912              Not documented
5913
5914       refcount-block: boolean (optional)
5915              Not documented
5916
5917       snapshot-table: boolean (optional)
5918              Not documented
5919
5920       inactive-l1: boolean (optional)
5921              Not documented
5922
5923       inactive-l2: boolean (optional)
5924              Not documented
5925
5926   Since
5927       2.9
5928
5929   Qcow2OverlapChecks (Alternate)
5930       Specifies  which  metadata  structures  should be guarded against unin‐
5931       tended overwriting.
5932
5933   Members
5934       flags: Qcow2OverlapCheckFlags
5935              set of flags for separate specification of each metadata  struc‐
5936              ture type
5937
5938       mode: Qcow2OverlapCheckMode
5939              named mode which chooses a specific set of flags
5940
5941   Since
5942       2.9
5943
5944   BlockdevQcowEncryptionFormat (Enum)
5945   Values
5946       aes    AES-CBC with plain64 initialization vectors
5947
5948   Since
5949       2.10
5950
5951   BlockdevQcowEncryption (Object)
5952   Members
5953       format: BlockdevQcowEncryptionFormat
5954              Not documented
5955
5956       The members of QCryptoBlockOptionsQCow when format is "aes"
5957
5958   Since
5959       2.10
5960
5961   BlockdevOptionsQcow (Object)
5962       Driver specific block device options for qcow.
5963
5964   Members
5965       encrypt: BlockdevQcowEncryption (optional)
5966              Image decryption options. Mandatory for encrypted images, except
5967              when doing a metadata-only probe of the image.
5968
5969       The members of BlockdevOptionsGenericCOWFormat
5970
5971   Since
5972       2.10
5973
5974   BlockdevQcow2EncryptionFormat (Enum)
5975   Values
5976       aes    AES-CBC with plain64 initialization vectors
5977
5978       luks   Not documented
5979
5980   Since
5981       2.10
5982
5983   BlockdevQcow2Encryption (Object)
5984   Members
5985       format: BlockdevQcow2EncryptionFormat
5986              Not documented
5987
5988       The members of QCryptoBlockOptionsQCow when format is "aes"
5989
5990       The members of QCryptoBlockOptionsLUKS when format is "luks"
5991
5992   Since
5993       2.10
5994
5995   BlockdevOptionsPreallocate (Object)
5996       Filter driver intended to be inserted between format and protocol  node
5997       and do preallocation in protocol node on write.
5998
5999   Members
6000       prealloc-align: int (optional)
6001              on  preallocation,  align  file  length  to this number, default
6002              1048576 (1M)
6003
6004       prealloc-size: int (optional)
6005              how much to preallocate, default 134217728 (128M)
6006
6007       The members of BlockdevOptionsGenericFormat
6008
6009   Since
6010       6.0
6011
6012   BlockdevOptionsQcow2 (Object)
6013       Driver specific block device options for qcow2.
6014
6015   Members
6016       lazy-refcounts: boolean (optional)
6017              whether to enable the lazy refcounts feature (default  is  taken
6018              from the image file)
6019
6020       pass-discard-request: boolean (optional)
6021              whether discard requests to the qcow2 device should be forwarded
6022              to the data source
6023
6024       pass-discard-snapshot: boolean (optional)
6025              whether discard requests for the data source  should  be  issued
6026              when  a  snapshot  operation  (e.g.   deleting a snapshot) frees
6027              clusters in the qcow2 file
6028
6029       pass-discard-other: boolean (optional)
6030              whether discard requests for the data source should be issued on
6031              other occasions where a cluster gets freed
6032
6033       overlap-check: Qcow2OverlapChecks (optional)
6034              which  overlap  checks  to  perform for writes to the image, de‐
6035              faults to 'cached' (since 2.2)
6036
6037       cache-size: int (optional)
6038              the maximum total size of the L2 table and refcount block caches
6039              in bytes (since 2.2)
6040
6041       l2-cache-size: int (optional)
6042              the maximum size of the L2 table cache in bytes (since 2.2)
6043
6044       l2-cache-entry-size: int (optional)
6045              the  size  of  each entry in the L2 cache in bytes. It must be a
6046              power of two between 512 and the cluster size. The default value
6047              is the cluster size (since 2.12)
6048
6049       refcount-cache-size: int (optional)
6050              the  maximum  size  of  the refcount block cache in bytes (since
6051              2.2)
6052
6053       cache-clean-interval: int (optional)
6054              clean unused entries in the L2 and refcount caches. The interval
6055              is in seconds. The default value is 600 on supporting platforms,
6056              and 0 on other platforms. 0 disables this feature. (since 2.5)
6057
6058       encrypt: BlockdevQcow2Encryption (optional)
6059              Image decryption options. Mandatory for encrypted images, except
6060              when doing a metadata-only probe of the image. (since 2.10)
6061
6062       data-file: BlockdevRef (optional)
6063              reference  to or definition of the external data file.  This may
6064              only be specified for images that require an external data file.
6065              If  it is not specified for such an image, the data file name is
6066              loaded from the image file. (since 4.0)
6067
6068       The members of BlockdevOptionsGenericCOWFormat
6069
6070   Since
6071       2.9
6072
6073   SshHostKeyCheckMode (Enum)
6074   Values
6075       none   Don't check the host key at all
6076
6077       hash   Compare the host key with a given hash
6078
6079       known_hosts
6080              Check the host key against the known_hosts file
6081
6082   Since
6083       2.12
6084
6085   SshHostKeyCheckHashType (Enum)
6086   Values
6087       md5    The given hash is an md5 hash
6088
6089       sha1   The given hash is an sha1 hash
6090
6091       sha256 The given hash is an sha256 hash
6092
6093   Since
6094       2.12
6095
6096   SshHostKeyHash (Object)
6097   Members
6098       type: SshHostKeyCheckHashType
6099              The hash algorithm used for the hash
6100
6101       hash: string
6102              The expected hash value
6103
6104   Since
6105       2.12
6106
6107   SshHostKeyCheck (Object)
6108   Members
6109       mode: SshHostKeyCheckMode
6110              Not documented
6111
6112       The members of SshHostKeyHash when mode is "hash"
6113
6114   Since
6115       2.12
6116
6117   BlockdevOptionsSsh (Object)
6118   Members
6119       server: InetSocketAddress
6120              host address
6121
6122       path: string
6123              path to the image on the host
6124
6125       user: string (optional)
6126              user as which to connect, defaults to current local user name
6127
6128       host-key-check: SshHostKeyCheck (optional)
6129              Defines how and what to check the  host  key  against  (default:
6130              known_hosts)
6131
6132   Since
6133       2.9
6134
6135   BlkdebugEvent (Enum)
6136       Trigger events supported by blkdebug.
6137
6138   Values
6139       l1_shrink_write_table
6140              write zeros to the l1 table to shrink image.  (since 2.11)
6141
6142       l1_shrink_free_l2_clusters
6143              discard the l2 tables. (since 2.11)
6144
6145       cor_write
6146              a write due to copy-on-read (since 2.11)
6147
6148       cluster_alloc_space
6149              an allocation of file space for a cluster (since 4.1)
6150
6151       none   triggers once at creation of the blkdebug node (since 4.1)
6152
6153       l1_update
6154              Not documented
6155
6156       l1_grow_alloc_table
6157              Not documented
6158
6159       l1_grow_write_table
6160              Not documented
6161
6162       l1_grow_activate_table
6163              Not documented
6164
6165       l2_load
6166              Not documented
6167
6168       l2_update
6169              Not documented
6170
6171       l2_update_compressed
6172              Not documented
6173
6174       l2_alloc_cow_read
6175              Not documented
6176
6177       l2_alloc_write
6178              Not documented
6179
6180       read_aio
6181              Not documented
6182
6183       read_backing_aio
6184              Not documented
6185
6186       read_compressed
6187              Not documented
6188
6189       write_aio
6190              Not documented
6191
6192       write_compressed
6193              Not documented
6194
6195       vmstate_load
6196              Not documented
6197
6198       vmstate_save
6199              Not documented
6200
6201       cow_read
6202              Not documented
6203
6204       cow_write
6205              Not documented
6206
6207       reftable_load
6208              Not documented
6209
6210       reftable_grow
6211              Not documented
6212
6213       reftable_update
6214              Not documented
6215
6216       refblock_load
6217              Not documented
6218
6219       refblock_update
6220              Not documented
6221
6222       refblock_update_part
6223              Not documented
6224
6225       refblock_alloc
6226              Not documented
6227
6228       refblock_alloc_hookup
6229              Not documented
6230
6231       refblock_alloc_write
6232              Not documented
6233
6234       refblock_alloc_write_blocks
6235              Not documented
6236
6237       refblock_alloc_write_table
6238              Not documented
6239
6240       refblock_alloc_switch_table
6241              Not documented
6242
6243       cluster_alloc
6244              Not documented
6245
6246       cluster_alloc_bytes
6247              Not documented
6248
6249       cluster_free
6250              Not documented
6251
6252       flush_to_os
6253              Not documented
6254
6255       flush_to_disk
6256              Not documented
6257
6258       pwritev_rmw_head
6259              Not documented
6260
6261       pwritev_rmw_after_head
6262              Not documented
6263
6264       pwritev_rmw_tail
6265              Not documented
6266
6267       pwritev_rmw_after_tail
6268              Not documented
6269
6270       pwritev
6271              Not documented
6272
6273       pwritev_zero
6274              Not documented
6275
6276       pwritev_done
6277              Not documented
6278
6279       empty_image_prepare
6280              Not documented
6281
6282   Since
6283       2.9
6284
6285   BlkdebugIOType (Enum)
6286       Kinds of I/O that blkdebug can inject errors in.
6287
6288   Values
6289       read   .bdrv_co_preadv()
6290
6291       write  .bdrv_co_pwritev()
6292
6293       write-zeroes
6294              .bdrv_co_pwrite_zeroes()
6295
6296       discard
6297              .bdrv_co_pdiscard()
6298
6299       flush  .bdrv_co_flush_to_disk()
6300
6301       block-status
6302              .bdrv_co_block_status()
6303
6304   Since
6305       4.1
6306
6307   BlkdebugInjectErrorOptions (Object)
6308       Describes a single error injection for blkdebug.
6309
6310   Members
6311       event: BlkdebugEvent
6312              trigger event
6313
6314       state: int (optional)
6315              the state identifier blkdebug needs to be in to actually trigger
6316              the event; defaults to "any"
6317
6318       iotype: BlkdebugIOType (optional)
6319              the type of I/O operations on which this  error  should  be  in‐
6320              jected; defaults to "all read, write, write-zeroes, discard, and
6321              flush operations" (since: 4.1)
6322
6323       errno: int (optional)
6324              error identifier (errno) to be returned; defaults to EIO
6325
6326       sector: int (optional)
6327              specifies the sector index which has to be affected in order  to
6328              actually trigger the event; defaults to "any sector"
6329
6330       once: boolean (optional)
6331              disables  further  events after this one has been triggered; de‐
6332              faults to false
6333
6334       immediately: boolean (optional)
6335              fail immediately; defaults to false
6336
6337   Since
6338       2.9
6339
6340   BlkdebugSetStateOptions (Object)
6341       Describes a single state-change event for blkdebug.
6342
6343   Members
6344       event: BlkdebugEvent
6345              trigger event
6346
6347       state: int (optional)
6348              the current state identifier blkdebug needs to be  in;  defaults
6349              to "any"
6350
6351       new_state: int
6352              the  state  identifier  blkdebug  is  supposed to assume if this
6353              event is triggered
6354
6355   Since
6356       2.9
6357
6358   BlockdevOptionsBlkdebug (Object)
6359       Driver specific block device options for blkdebug.
6360
6361   Members
6362       image: BlockdevRef
6363              underlying raw block device (or image file)
6364
6365       config: string (optional)
6366              filename of the configuration file
6367
6368       align: int (optional)
6369              required alignment for requests in bytes, must be positive power
6370              of 2, or 0 for default
6371
6372       max-transfer: int (optional)
6373              maximum size for I/O transfers in bytes, must be positive multi‐
6374              ple of align and of the underlying file's request alignment (but
6375              need not be a power of 2), or 0 for default (since 2.10)
6376
6377       opt-write-zero: int (optional)
6378              preferred  alignment  for  write zero requests in bytes, must be
6379              positive multiple of align and of the underlying file's  request
6380              alignment  (but  need  not  be  a  power of 2), or 0 for default
6381              (since 2.10)
6382
6383       max-write-zero: int (optional)
6384              maximum size for write zero requests in bytes, must be  positive
6385              multiple  of  align,  of  opt-write-zero,  and of the underlying
6386              file's request alignment (but need not be a power of  2),  or  0
6387              for default (since 2.10)
6388
6389       opt-discard: int (optional)
6390              preferred alignment for discard requests in bytes, must be posi‐
6391              tive multiple of align and  of  the  underlying  file's  request
6392              alignment  (but  need  not  be  a  power of 2), or 0 for default
6393              (since 2.10)
6394
6395       max-discard: int (optional)
6396              maximum size for discard requests in  bytes,  must  be  positive
6397              multiple  of align, of opt-discard, and of the underlying file's
6398              request alignment (but need not be a power of 2), or 0  for  de‐
6399              fault (since 2.10)
6400
6401       inject-error: array of BlkdebugInjectErrorOptions (optional)
6402              array of error injection descriptions
6403
6404       set-state: array of BlkdebugSetStateOptions (optional)
6405              array of state-change descriptions
6406
6407       take-child-perms: array of BlockPermission (optional)
6408              Permissions  to  take  on image in addition to what is necessary
6409              anyway (which depends on how the blkdebug node  is  used).   De‐
6410              faults to none.  (since 5.0)
6411
6412       unshare-child-perms: array of BlockPermission (optional)
6413              Permissions  not to share on image in addition to what cannot be
6414              shared anyway (which depends on how the blkdebug node is  used).
6415              Defaults to none.  (since 5.0)
6416
6417   Since
6418       2.9
6419
6420   BlockdevOptionsBlklogwrites (Object)
6421       Driver specific block device options for blklogwrites.
6422
6423   Members
6424       file: BlockdevRef
6425              block device
6426
6427       log: BlockdevRef
6428              block device used to log writes to file
6429
6430       log-sector-size: int (optional)
6431              sector size used in logging writes to file, determines granular‐
6432              ity of offsets and sizes of writes (default: 512)
6433
6434       log-append: boolean (optional)
6435              append to an existing log (default: false)
6436
6437       log-super-update-interval: int (optional)
6438              interval of write requests after which the log  super  block  is
6439              updated to disk (default: 4096)
6440
6441   Since
6442       3.0
6443
6444   BlockdevOptionsBlkverify (Object)
6445       Driver specific block device options for blkverify.
6446
6447   Members
6448       test: BlockdevRef
6449              block device to be tested
6450
6451       raw: BlockdevRef
6452              raw image used for verification
6453
6454   Since
6455       2.9
6456
6457   BlockdevOptionsBlkreplay (Object)
6458       Driver specific block device options for blkreplay.
6459
6460   Members
6461       image: BlockdevRef
6462              disk image which should be controlled with blkreplay
6463
6464   Since
6465       4.2
6466
6467   QuorumReadPattern (Enum)
6468       An enumeration of quorum read patterns.
6469
6470   Values
6471       quorum read all the children and do a quorum vote on reads
6472
6473       fifo   read only from the first child that has not failed
6474
6475   Since
6476       2.9
6477
6478   BlockdevOptionsQuorum (Object)
6479       Driver specific block device options for Quorum
6480
6481   Members
6482       blkverify: boolean (optional)
6483
6484              true if the driver must print content mismatch
6485                     set to false by default
6486
6487       children: array of BlockdevRef
6488              the children block devices to use
6489
6490       vote-threshold: int
6491              the vote limit under which a read will fail
6492
6493       rewrite-corrupted: boolean (optional)
6494              rewrite corrupted data when quorum is reached (Since 2.1)
6495
6496       read-pattern: QuorumReadPattern (optional)
6497              choose read pattern and set to quorum by default (Since 2.2)
6498
6499   Since
6500       2.9
6501
6502   BlockdevOptionsGluster (Object)
6503       Driver specific block device options for Gluster
6504
6505   Members
6506       volume: string
6507              name of gluster volume where VM image resides
6508
6509       path: string
6510              absolute path to image file in gluster volume
6511
6512       server: array of SocketAddress
6513              gluster servers description
6514
6515       debug: int (optional)
6516              libgfapi log level (default '4' which is Error) (Since 2.8)
6517
6518       logfile: string (optional)
6519              libgfapi log file (default /dev/stderr) (Since 2.8)
6520
6521   Since
6522       2.9
6523
6524   IscsiTransport (Enum)
6525       An enumeration of libiscsi transport types
6526
6527   Values
6528       tcp    Not documented
6529
6530       iser   Not documented
6531
6532   Since
6533       2.9
6534
6535   IscsiHeaderDigest (Enum)
6536       An enumeration of header digests supported by libiscsi
6537
6538   Values
6539       crc32c Not documented
6540
6541       none   Not documented
6542
6543       crc32c-none
6544              Not documented
6545
6546       none-crc32c
6547              Not documented
6548
6549   Since
6550       2.9
6551
6552   BlockdevOptionsIscsi (Object)
6553   Members
6554       transport: IscsiTransport
6555              The iscsi transport type
6556
6557       portal: string
6558              The address of the iscsi portal
6559
6560       target: string
6561              The target iqn name
6562
6563       lun: int (optional)
6564              LUN to connect to. Defaults to 0.
6565
6566       user: string (optional)
6567              User  name to log in with. If omitted, no CHAP authentication is
6568              performed.
6569
6570       password-secret: string (optional)
6571              The ID of a QCryptoSecret object providing the password for  the
6572              login. This option is required if user is specified.
6573
6574       initiator-name: string (optional)
6575              The  iqn  name we want to identify to the target as. If this op‐
6576              tion is not specified, an initiator name is generated  automati‐
6577              cally.
6578
6579       header-digest: IscsiHeaderDigest (optional)
6580              The desired header digest. Defaults to none-crc32c.
6581
6582       timeout: int (optional)
6583              Timeout  in  seconds after which a request will timeout. 0 means
6584              no timeout and is the default.
6585       Driver specific block device options for iscsi
6586
6587   Since
6588       2.9
6589
6590   RbdAuthMode (Enum)
6591   Values
6592       cephx  Not documented
6593
6594       none   Not documented
6595
6596   Since
6597       3.0
6598
6599   RbdImageEncryptionFormat (Enum)
6600   Values
6601       luks   Not documented
6602
6603       luks2  Not documented
6604
6605   Since
6606       6.1
6607
6608   RbdEncryptionOptionsLUKSBase (Object)
6609   Members
6610       key-secret: string
6611              ID of a QCryptoSecret object providing a passphrase for  unlock‐
6612              ing the encryption
6613
6614   Since
6615       6.1
6616
6617   RbdEncryptionCreateOptionsLUKSBase (Object)
6618   Members
6619       cipher-alg: QCryptoCipherAlgorithm (optional)
6620              The encryption algorithm
6621
6622       The members of RbdEncryptionOptionsLUKSBase
6623
6624   Since
6625       6.1
6626
6627   RbdEncryptionOptionsLUKS (Object)
6628   Members
6629       The members of RbdEncryptionOptionsLUKSBase
6630
6631   Since
6632       6.1
6633
6634   RbdEncryptionOptionsLUKS2 (Object)
6635   Members
6636       The members of RbdEncryptionOptionsLUKSBase
6637
6638   Since
6639       6.1
6640
6641   RbdEncryptionCreateOptionsLUKS (Object)
6642   Members
6643       The members of RbdEncryptionCreateOptionsLUKSBase
6644
6645   Since
6646       6.1
6647
6648   RbdEncryptionCreateOptionsLUKS2 (Object)
6649   Members
6650       The members of RbdEncryptionCreateOptionsLUKSBase
6651
6652   Since
6653       6.1
6654
6655   RbdEncryptionOptions (Object)
6656   Members
6657       format: RbdImageEncryptionFormat
6658              Not documented
6659
6660       The members of RbdEncryptionOptionsLUKS when format is "luks"
6661
6662       The members of RbdEncryptionOptionsLUKS2 when format is "luks2"
6663
6664   Since
6665       6.1
6666
6667   RbdEncryptionCreateOptions (Object)
6668   Members
6669       format: RbdImageEncryptionFormat
6670              Not documented
6671
6672       The members of RbdEncryptionCreateOptionsLUKS when format is "luks"
6673
6674       The members of RbdEncryptionCreateOptionsLUKS2 when format is "luks2"
6675
6676   Since
6677       6.1
6678
6679   BlockdevOptionsRbd (Object)
6680   Members
6681       pool: string
6682              Ceph pool name.
6683
6684       namespace: string (optional)
6685              Rados namespace name in the Ceph pool. (Since 5.0)
6686
6687       image: string
6688              Image name in the Ceph pool.
6689
6690       conf: string (optional)
6691              path  to  Ceph  configuration file.  Values in the configuration
6692              file will be overridden by options specified via QAPI.
6693
6694       snapshot: string (optional)
6695              Ceph snapshot name.
6696
6697       encrypt: RbdEncryptionOptions (optional)
6698              Image encryption options. (Since 6.1)
6699
6700       user: string (optional)
6701              Ceph id name.
6702
6703       auth-client-required: array of RbdAuthMode (optional)
6704              Acceptable authentication modes.  This maps to  Ceph  configura‐
6705              tion option "auth_client_required".  (Since 3.0)
6706
6707       key-secret: string (optional)
6708              ID of a QCryptoSecret object providing a key for cephx authenti‐
6709              cation.  This maps to Ceph configuration option  "key".   (Since
6710              3.0)
6711
6712       server: array of InetSocketAddressBase (optional)
6713              Monitor host address and port.  This maps to the "mon_host" Ceph
6714              option.
6715
6716   Since
6717       2.9
6718
6719   ReplicationMode (Enum)
6720       An enumeration of replication modes.
6721
6722   Values
6723       primary
6724              Primary mode, the vm's state will be sent to secondary QEMU.
6725
6726       secondary
6727              Secondary mode, receive the vm's state from primary QEMU.
6728
6729   Since
6730       2.9
6731
6732   If
6733       defined(CONFIG_REPLICATION)
6734
6735   BlockdevOptionsReplication (Object)
6736       Driver specific block device options for replication
6737
6738   Members
6739       mode: ReplicationMode
6740              the replication mode
6741
6742       top-id: string (optional)
6743              In secondary mode, node name or device ID of the root  node  who
6744              owns  the  replication  node chain. Must not be given in primary
6745              mode.
6746
6747       The members of BlockdevOptionsGenericFormat
6748
6749   Since
6750       2.9
6751
6752   If
6753       defined(CONFIG_REPLICATION)
6754
6755   NFSTransport (Enum)
6756       An enumeration of NFS transport types
6757
6758   Values
6759       inet   TCP transport
6760
6761   Since
6762       2.9
6763
6764   NFSServer (Object)
6765       Captures the address of the socket
6766
6767   Members
6768       type: NFSTransport
6769              transport type used for NFS (only TCP supported)
6770
6771       host: string
6772              host address for NFS server
6773
6774   Since
6775       2.9
6776
6777   BlockdevOptionsNfs (Object)
6778       Driver specific block device option for NFS
6779
6780   Members
6781       server: NFSServer
6782              host address
6783
6784       path: string
6785              path of the image on the host
6786
6787       user: int (optional)
6788              UID value to use when talking to the server (defaults  to  65534
6789              on Windows and getuid() on unix)
6790
6791       group: int (optional)
6792              GID  value  to use when talking to the server (defaults to 65534
6793              on Windows and getgid() in unix)
6794
6795       tcp-syn-count: int (optional)
6796              number of SYNs during the  session  establishment  (defaults  to
6797              libnfs default)
6798
6799       readahead-size: int (optional)
6800              set the readahead size in bytes (defaults to libnfs default)
6801
6802       page-cache-size: int (optional)
6803              set the pagecache size in bytes (defaults to libnfs default)
6804
6805       debug: int (optional)
6806              set the NFS debug level (max 2) (defaults to libnfs default)
6807
6808   Since
6809       2.9
6810
6811   BlockdevOptionsCurlBase (Object)
6812       Driver  specific block device options shared by all protocols supported
6813       by the curl backend.
6814
6815   Members
6816       url: string
6817              URL of the image file
6818
6819       readahead: int (optional)
6820              Size of the read-ahead cache; must be a  multiple  of  512  (de‐
6821              faults to 256 kB)
6822
6823       timeout: int (optional)
6824              Timeout for connections, in seconds (defaults to 5)
6825
6826       username: string (optional)
6827              Username for authentication (defaults to none)
6828
6829       password-secret: string (optional)
6830              ID  of a QCryptoSecret object providing a password for authenti‐
6831              cation (defaults to no password)
6832
6833       proxy-username: string (optional)
6834              Username for proxy authentication (defaults to none)
6835
6836       proxy-password-secret: string (optional)
6837              ID of a QCryptoSecret object providing a password for proxy  au‐
6838              thentication (defaults to no password)
6839
6840   Since
6841       2.9
6842
6843   BlockdevOptionsCurlHttp (Object)
6844       Driver specific block device options for HTTP connections over the curl
6845       backend.  URLs must start with "http://".
6846
6847   Members
6848       cookie: string (optional)
6849              List of cookies to set; format  is  "name1=content1;  name2=con‐
6850              tent2;"  as explained by CURLOPT_COOKIE(3). Defaults to no cook‐
6851              ies.
6852
6853       cookie-secret: string (optional)
6854              ID of a QCryptoSecret object providing the cookie data in a  se‐
6855              cure way. See cookie for the format. (since 2.10)
6856
6857       The members of BlockdevOptionsCurlBase
6858
6859   Since
6860       2.9
6861
6862   BlockdevOptionsCurlHttps (Object)
6863       Driver  specific  block  device  options for HTTPS connections over the
6864       curl backend.  URLs must start with "https://".
6865
6866   Members
6867       cookie: string (optional)
6868              List of cookies to set; format  is  "name1=content1;  name2=con‐
6869              tent2;"  as explained by CURLOPT_COOKIE(3). Defaults to no cook‐
6870              ies.
6871
6872       sslverify: boolean (optional)
6873              Whether to verify the SSL certificate's  validity  (defaults  to
6874              true)
6875
6876       cookie-secret: string (optional)
6877              ID  of a QCryptoSecret object providing the cookie data in a se‐
6878              cure way. See cookie for the format. (since 2.10)
6879
6880       The members of BlockdevOptionsCurlBase
6881
6882   Since
6883       2.9
6884
6885   BlockdevOptionsCurlFtp (Object)
6886       Driver specific block device options for FTP connections over the  curl
6887       backend.  URLs must start with "ftp://".
6888
6889   Members
6890       The members of BlockdevOptionsCurlBase
6891
6892   Since
6893       2.9
6894
6895   BlockdevOptionsCurlFtps (Object)
6896       Driver specific block device options for FTPS connections over the curl
6897       backend.  URLs must start with "ftps://".
6898
6899   Members
6900       sslverify: boolean (optional)
6901              Whether to verify the SSL certificate's  validity  (defaults  to
6902              true)
6903
6904       The members of BlockdevOptionsCurlBase
6905
6906   Since
6907       2.9
6908
6909   BlockdevOptionsNbd (Object)
6910       Driver specific block device options for NBD.
6911
6912   Members
6913       server: SocketAddress
6914              NBD server address
6915
6916       export: string (optional)
6917              export name
6918
6919       tls-creds: string (optional)
6920              TLS credentials ID
6921
6922       x-dirty-bitmap: string (optional)
6923              A  metadata  context  name  such  as "qemu:dirty-bitmap:NAME" or
6924              "qemu:allocation-depth" to query in  place  of  the  traditional
6925              "base:allocation" block status (see NBD_OPT_LIST_META_CONTEXT in
6926              the NBD protocol; and yes, naming this  option  x-context  would
6927              have made more sense) (since 3.0)
6928
6929       reconnect-delay: int (optional)
6930              On  an  unexpected  disconnect,  the nbd client tries to connect
6931              again until succeeding or encountering a serious error.   During
6932              the  first  reconnect-delay seconds, all requests are paused and
6933              will be rerun on a successful reconnect. After  that  time,  any
6934              delayed requests and all future requests before a successful re‐
6935              connect will immediately fail. Default 0 (Since 4.2)
6936
6937   Since
6938       2.9
6939
6940   BlockdevOptionsRaw (Object)
6941       Driver specific block device options for the raw driver.
6942
6943   Members
6944       offset: int (optional)
6945              position where the block device starts
6946
6947       size: int (optional)
6948              the assumed size of the device
6949
6950       The members of BlockdevOptionsGenericFormat
6951
6952   Since
6953       2.9
6954
6955   BlockdevOptionsThrottle (Object)
6956       Driver specific block device options for the throttle driver
6957
6958   Members
6959       throttle-group: string
6960              the name of the throttle-group object to use.  It  must  already
6961              exist.
6962
6963       file: BlockdevRef
6964              reference to or definition of the data source block device
6965
6966   Since
6967       2.11
6968
6969   BlockdevOptionsCor (Object)
6970       Driver specific block device options for the copy-on-read driver.
6971
6972   Members
6973       bottom: string (optional)
6974              The  name  of  a non-filter node (allocation-bearing layer) that
6975              limits the COR operations in the backing chain  (inclusive),  so
6976              that  no data below this node will be copied by this filter.  If
6977              option is absent, the limit is not applied, so  that  data  from
6978              all backing layers may be copied.
6979
6980       The members of BlockdevOptionsGenericFormat
6981
6982   Since
6983       6.0
6984
6985   BlockdevOptions (Object)
6986       Options  for  creating  a block device.  Many options are available for
6987       all block devices, independent of the block driver:
6988
6989   Members
6990       driver: BlockdevDriver
6991              block driver name
6992
6993       node-name: string (optional)
6994              the node name of the new node (Since 2.0).  This option  is  re‐
6995              quired on the top level of blockdev-add.  Valid node names start
6996              with an alphabetic character and may contain  only  alphanumeric
6997              characters, '-', '.' and '_'. Their maximum length is 31 charac‐
6998              ters.
6999
7000       discard: BlockdevDiscardOptions (optional)
7001              discard-related options (default: ignore)
7002
7003       cache: BlockdevCacheOptions (optional)
7004              cache-related options
7005
7006       read-only: boolean (optional)
7007              whether the block device should be read-only  (default:  false).
7008              Note  that some block drivers support only read-only access, ei‐
7009              ther generally or in certain configurations. In this  case,  the
7010              default value does not work and the option must be specified ex‐
7011              plicitly.
7012
7013       auto-read-only: boolean (optional)
7014              if true and read-only is false, QEMU  may  automatically  decide
7015              not  to open the image read-write as requested, but fall back to
7016              read-only instead (and switch between the modes later), e.g. de‐
7017              pending on whether the image file is writable or whether a writ‐
7018              ing user is attached to the node (default: false, since 3.1)
7019
7020       detect-zeroes: BlockdevDetectZeroesOptions (optional)
7021              detect and optimize zero writes (Since 2.1) (default: off)
7022
7023       force-share: boolean (optional)
7024              force  share  all   permission   on   added   nodes.    Requires
7025              read-only=true. (Since 2.10)
7026
7027       The members of BlockdevOptionsBlkdebug when driver is "blkdebug"
7028
7029       The  members  of  BlockdevOptionsBlklogwrites  when  driver is "blklog‐
7030       writes"
7031
7032       The members of BlockdevOptionsBlkverify when driver is "blkverify"
7033
7034       The members of BlockdevOptionsBlkreplay when driver is "blkreplay"
7035
7036       The members of BlockdevOptionsGenericFormat when driver is "bochs"
7037
7038       The members of BlockdevOptionsGenericFormat when driver is "cloop"
7039
7040       The members of BlockdevOptionsGenericFormat when driver is "compress"
7041
7042       The members of BlockdevOptionsCor when driver is "copy-on-read"
7043
7044       The members of BlockdevOptionsGenericFormat when driver is "dmg"
7045
7046       The members of BlockdevOptionsFile when driver is "file"
7047
7048       The members of BlockdevOptionsCurlFtp when driver is "ftp"
7049
7050       The members of BlockdevOptionsCurlFtps when driver is "ftps"
7051
7052       The members of BlockdevOptionsGluster when driver is "gluster"
7053
7054       The members of BlockdevOptionsFile when driver is "host_cdrom" (If: de‐
7055       fined(HAVE_HOST_BLOCK_DEVICE))
7056
7057       The  members  of  BlockdevOptionsFile when driver is "host_device" (If:
7058       defined(HAVE_HOST_BLOCK_DEVICE))
7059
7060       The members of BlockdevOptionsCurlHttp when driver is "http"
7061
7062       The members of BlockdevOptionsCurlHttps when driver is "https"
7063
7064       The members of BlockdevOptionsIscsi when driver is "iscsi"
7065
7066       The members of BlockdevOptionsLUKS when driver is "luks"
7067
7068       The members of BlockdevOptionsNbd when driver is "nbd"
7069
7070       The members of BlockdevOptionsNfs when driver is "nfs"
7071
7072       The members of BlockdevOptionsNull when driver is "null-aio"
7073
7074       The members of BlockdevOptionsNull when driver is "null-co"
7075
7076       The members of BlockdevOptionsNVMe when driver is "nvme"
7077
7078       The members of BlockdevOptionsGenericFormat when driver is "parallels"
7079
7080       The members of BlockdevOptionsPreallocate when driver is "preallocate"
7081
7082       The members of BlockdevOptionsQcow2 when driver is "qcow2"
7083
7084       The members of BlockdevOptionsQcow when driver is "qcow"
7085
7086       The members of BlockdevOptionsGenericCOWFormat when driver is "qed"
7087
7088       The members of BlockdevOptionsQuorum when driver is "quorum"
7089
7090       The members of BlockdevOptionsRaw when driver is "raw"
7091
7092       The members of BlockdevOptionsRbd when driver is "rbd"
7093
7094       The members of BlockdevOptionsReplication when driver is  "replication"
7095       (If: defined(CONFIG_REPLICATION))
7096
7097       The members of BlockdevOptionsSsh when driver is "ssh"
7098
7099       The members of BlockdevOptionsThrottle when driver is "throttle"
7100
7101       The members of BlockdevOptionsGenericFormat when driver is "vdi"
7102
7103       The members of BlockdevOptionsGenericFormat when driver is "vhdx"
7104
7105       The members of BlockdevOptionsGenericCOWFormat when driver is "vmdk"
7106
7107       The members of BlockdevOptionsGenericFormat when driver is "vpc"
7108
7109       The members of BlockdevOptionsVVFAT when driver is "vvfat"
7110       Remaining options are determined by the block driver.
7111
7112   Since
7113       2.9
7114
7115   BlockdevRef (Alternate)
7116       Reference to a block device.
7117
7118   Members
7119       definition: BlockdevOptions
7120              defines a new block device inline
7121
7122       reference: string
7123              references the ID of an existing block device
7124
7125   Since
7126       2.9
7127
7128   BlockdevRefOrNull (Alternate)
7129       Reference to a block device.
7130
7131   Members
7132       definition: BlockdevOptions
7133              defines a new block device inline
7134
7135       reference: string
7136              references  the ID of an existing block device.  An empty string
7137              means that no block device should  be  referenced.   Deprecated;
7138              use null instead.
7139
7140       null: null
7141              No block device should be referenced (since 2.10)
7142
7143   Since
7144       2.9
7145
7146   blockdev-add (Command)
7147       Creates a new block device.
7148
7149   Arguments
7150       The members of BlockdevOptions
7151
7152   Since
7153       2.9
7154
7155   Example
7156          1.
7157          -> { "execute": "blockdev-add",
7158               "arguments": {
7159                    "driver": "qcow2",
7160                    "node-name": "test1",
7161                    "file": {
7162                        "driver": "file",
7163                        "filename": "test.qcow2"
7164                     }
7165                }
7166              }
7167          <- { "return": {} }
7168
7169          2.
7170          -> { "execute": "blockdev-add",
7171               "arguments": {
7172                    "driver": "qcow2",
7173                    "node-name": "node0",
7174                    "discard": "unmap",
7175                    "cache": {
7176                       "direct": true
7177                     },
7178                     "file": {
7179                       "driver": "file",
7180                       "filename": "/tmp/test.qcow2"
7181                     },
7182                     "backing": {
7183                        "driver": "raw",
7184                        "file": {
7185                           "driver": "file",
7186                           "filename": "/dev/fdset/4"
7187                         }
7188                     }
7189                 }
7190               }
7191
7192          <- { "return": {} }
7193
7194   blockdev-reopen (Command)
7195       Reopens  one or more block devices using the given set of options.  Any
7196       option not specified will be reset to its default value  regardless  of
7197       its  previous  status.  If  an option cannot be changed or a particular
7198       driver does not support reopening then the command will return  an  er‐
7199       ror. All devices in the list are reopened in one transaction, so if one
7200       of them fails then the whole transaction is cancelled.
7201
7202       The command receives a list of block devices to reopen. For each one of
7203       them,  the  top-level  node-name  option (from BlockdevOptions) must be
7204       specified and is used to select the block device to be reopened.  Other
7205       node-name  options must be either omitted or set to the current name of
7206       the appropriate node. This command won't change any node name  and  any
7207       attempt to do it will result in an error.
7208
7209       In  the case of options that refer to child nodes, the behavior of this
7210       command depends on the value:
7211
7212          1. A set of options (BlockdevOptions): the child  is  reopened  with
7213             the specified set of options.
7214
7215          2. A reference to the current child: the child is reopened using its
7216             existing set of options.
7217
7218          3. A reference to a different node: the current  child  is  replaced
7219             with the specified one.
7220
7221          4. NULL: the current child (if any) is detached.
7222
7223       Options (1) and (2) are supported in all cases. Option (3) is supported
7224       for file and backing, and option (4) for backing only.
7225
7226       Unlike with blockdev-add, the backing option must always be present un‐
7227       less the node being reopened does not have a backing file and its image
7228       does not have a default backing file name as part of its metadata.
7229
7230   Arguments
7231       options: array of BlockdevOptions
7232              Not documented
7233
7234   Since
7235       6.1
7236
7237   blockdev-del (Command)
7238       Deletes a block device that has been  added  using  blockdev-add.   The
7239       command  will  fail if the node is attached to a device or is otherwise
7240       being used.
7241
7242   Arguments
7243       node-name: string
7244              Name of the graph node to delete.
7245
7246   Since
7247       2.9
7248
7249   Example
7250          -> { "execute": "blockdev-add",
7251               "arguments": {
7252                    "driver": "qcow2",
7253                    "node-name": "node0",
7254                    "file": {
7255                        "driver": "file",
7256                        "filename": "test.qcow2"
7257                    }
7258               }
7259             }
7260          <- { "return": {} }
7261
7262          -> { "execute": "blockdev-del",
7263               "arguments": { "node-name": "node0" }
7264             }
7265          <- { "return": {} }
7266
7267   BlockdevCreateOptionsFile (Object)
7268       Driver specific image creation options for file.
7269
7270   Members
7271       filename: string
7272              Filename for the new image file
7273
7274       size: int
7275              Size of the virtual disk in bytes
7276
7277       preallocation: PreallocMode (optional)
7278              Preallocation mode for the new image (default: off; allowed val‐
7279              ues:  off,  falloc (if defined CONFIG_POSIX_FALLOCATE), full (if
7280              defined CONFIG_POSIX))
7281
7282       nocow: boolean (optional)
7283              Turn off copy-on-write (valid only on btrfs; default: off)
7284
7285       extent-size-hint: int (optional)
7286              Extent size hint to add to the image file; 0 for not  adding  an
7287              extent size hint (default: 1 MB, since 5.1)
7288
7289   Since
7290       2.12
7291
7292   BlockdevCreateOptionsGluster (Object)
7293       Driver specific image creation options for gluster.
7294
7295   Members
7296       location: BlockdevOptionsGluster
7297              Where to store the new image file
7298
7299       size: int
7300              Size of the virtual disk in bytes
7301
7302       preallocation: PreallocMode (optional)
7303              Preallocation mode for the new image (default: off; allowed val‐
7304              ues: off, falloc (if defined  CONFIG_GLUSTERFS_FALLOCATE),  full
7305              (if defined CONFIG_GLUSTERFS_ZEROFILL))
7306
7307   Since
7308       2.12
7309
7310   BlockdevCreateOptionsLUKS (Object)
7311       Driver specific image creation options for LUKS.
7312
7313   Members
7314       file: BlockdevRef
7315              Node to create the image format on
7316
7317       size: int
7318              Size of the virtual disk in bytes
7319
7320       preallocation: PreallocMode (optional)
7321              Preallocation mode for the new image (since: 4.2) (default: off;
7322              allowed values: off, metadata, falloc, full)
7323
7324       The members of QCryptoBlockCreateOptionsLUKS
7325
7326   Since
7327       2.12
7328
7329   BlockdevCreateOptionsNfs (Object)
7330       Driver specific image creation options for NFS.
7331
7332   Members
7333       location: BlockdevOptionsNfs
7334              Where to store the new image file
7335
7336       size: int
7337              Size of the virtual disk in bytes
7338
7339   Since
7340       2.12
7341
7342   BlockdevCreateOptionsParallels (Object)
7343       Driver specific image creation options for parallels.
7344
7345   Members
7346       file: BlockdevRef
7347              Node to create the image format on
7348
7349       size: int
7350              Size of the virtual disk in bytes
7351
7352       cluster-size: int (optional)
7353              Cluster size in bytes (default: 1 MB)
7354
7355   Since
7356       2.12
7357
7358   BlockdevCreateOptionsQcow (Object)
7359       Driver specific image creation options for qcow.
7360
7361   Members
7362       file: BlockdevRef
7363              Node to create the image format on
7364
7365       size: int
7366              Size of the virtual disk in bytes
7367
7368       backing-file: string (optional)
7369              File name of the backing file if a backing file should be used
7370
7371       encrypt: QCryptoBlockCreateOptions (optional)
7372              Encryption options if the image should be encrypted
7373
7374   Since
7375       2.12
7376
7377   BlockdevQcow2Version (Enum)
7378   Values
7379       v2     The original QCOW2 format as introduced in qemu 0.10 (version 2)
7380
7381       v3     The extended QCOW2 format as introduced in qemu 1.1 (version 3)
7382
7383   Since
7384       2.12
7385
7386   Qcow2CompressionType (Enum)
7387       Compression type used in qcow2 image file
7388
7389   Values
7390       zlib   zlib compression, see <http://zlib.net/>
7391
7392       zstd (If: defined(CONFIG_ZSTD))
7393              zstd compression, see <http://github.com/facebook/zstd>
7394
7395   Since
7396       5.1
7397
7398   BlockdevCreateOptionsQcow2 (Object)
7399       Driver specific image creation options for qcow2.
7400
7401   Members
7402       file: BlockdevRef
7403              Node to create the image format on
7404
7405       data-file: BlockdevRef (optional)
7406              Node to use as an external data file in which all guest data  is
7407              stored  so  that only metadata remains in the qcow2 file (since:
7408              4.0)
7409
7410       data-file-raw: boolean (optional)
7411              True if the external data file must stay valid as  a  standalone
7412              (read-only)  raw  image  without  looking at qcow2 metadata (de‐
7413              fault: false; since: 4.0)
7414
7415       extended-l2: boolean (optional)
7416              True to make the image have extended L2 entries (default: false;
7417              since 5.2)
7418
7419       size: int
7420              Size of the virtual disk in bytes
7421
7422       version: BlockdevQcow2Version (optional)
7423              Compatibility level (default: v3)
7424
7425       backing-file: string (optional)
7426              File name of the backing file if a backing file should be used
7427
7428       backing-fmt: BlockdevDriver (optional)
7429              Name of the block driver to use for the backing file
7430
7431       encrypt: QCryptoBlockCreateOptions (optional)
7432              Encryption options if the image should be encrypted
7433
7434       cluster-size: int (optional)
7435              qcow2 cluster size in bytes (default: 65536)
7436
7437       preallocation: PreallocMode (optional)
7438              Preallocation mode for the new image (default: off; allowed val‐
7439              ues: off, falloc, full, metadata)
7440
7441       lazy-refcounts: boolean (optional)
7442              True if refcounts may be updated lazily (default: off)
7443
7444       refcount-bits: int (optional)
7445              Width of reference counts in bits (default: 16)
7446
7447       compression-type: Qcow2CompressionType (optional)
7448              The image cluster compression method (default: zlib, since 5.1)
7449
7450   Since
7451       2.12
7452
7453   BlockdevCreateOptionsQed (Object)
7454       Driver specific image creation options for qed.
7455
7456   Members
7457       file: BlockdevRef
7458              Node to create the image format on
7459
7460       size: int
7461              Size of the virtual disk in bytes
7462
7463       backing-file: string (optional)
7464              File name of the backing file if a backing file should be used
7465
7466       backing-fmt: BlockdevDriver (optional)
7467              Name of the block driver to use for the backing file
7468
7469       cluster-size: int (optional)
7470              Cluster size in bytes (default: 65536)
7471
7472       table-size: int (optional)
7473              L1/L2 table size (in clusters)
7474
7475   Since
7476       2.12
7477
7478   BlockdevCreateOptionsRbd (Object)
7479       Driver specific image creation options for rbd/Ceph.
7480
7481   Members
7482       location: BlockdevOptionsRbd
7483              Where to store the new image file. This location cannot point to
7484              a snapshot.
7485
7486       size: int
7487              Size of the virtual disk in bytes
7488
7489       cluster-size: int (optional)
7490              RBD object size
7491
7492       encrypt: RbdEncryptionCreateOptions (optional)
7493              Image encryption options. (Since 6.1)
7494
7495   Since
7496       2.12
7497
7498   BlockdevVmdkSubformat (Enum)
7499       Subformat options for VMDK images
7500
7501   Values
7502       monolithicSparse
7503              Single file image with sparse cluster allocation
7504
7505       monolithicFlat
7506              Single flat data image and a descriptor file
7507
7508       twoGbMaxExtentSparse
7509              Data is split into 2GB (per virtual LBA) sparse extent files, in
7510              addition to a descriptor file
7511
7512       twoGbMaxExtentFlat
7513              Data is split into 2GB (per virtual LBA) flat extent  files,  in
7514              addition to a descriptor file
7515
7516       streamOptimized
7517              Single  file  image  sparse  cluster  allocation,  optimized for
7518              streaming over network.
7519
7520   Since
7521       4.0
7522
7523   BlockdevVmdkAdapterType (Enum)
7524       Adapter type info for VMDK images
7525
7526   Values
7527       ide    Not documented
7528
7529       buslogic
7530              Not documented
7531
7532       lsilogic
7533              Not documented
7534
7535       legacyESX
7536              Not documented
7537
7538   Since
7539       4.0
7540
7541   BlockdevCreateOptionsVmdk (Object)
7542       Driver specific image creation options for VMDK.
7543
7544   Members
7545       file: BlockdevRef
7546              Where to store the new image file. This refers to the image file
7547              for  monolithcSparse and streamOptimized format, or the descrip‐
7548              tor file for other formats.
7549
7550       size: int
7551              Size of the virtual disk in bytes
7552
7553       extents: array of BlockdevRef (optional)
7554              Where to store the data  extents.  Required  for  monolithcFlat,
7555              twoGbMaxExtentSparse  and  twoGbMaxExtentFlat formats. For mono‐
7556              lithicFlat, only one entry is required; for twoGbMaxExtent* for‐
7557              mats,  the  number  of  entries  required  is  calculated as ex‐
7558              tent_number = virtual_size / 2GB. Providing  more  extents  than
7559              will be used is an error.
7560
7561       subformat: BlockdevVmdkSubformat (optional)
7562              The subformat of the VMDK image. Default: "monolithicSparse".
7563
7564       backing-file: string (optional)
7565              The path of backing file. Default: no backing file is used.
7566
7567       adapter-type: BlockdevVmdkAdapterType (optional)
7568              The adapter type used to fill in the descriptor. Default: ide.
7569
7570       hwversion: string (optional)
7571              Hardware  version.  The  meaningful options are "4" or "6".  De‐
7572              fault: "4".
7573
7574       zeroed-grain: boolean (optional)
7575              Whether to enable zeroed-grain feature  for  sparse  subformats.
7576              Default: false.
7577
7578   Since
7579       4.0
7580
7581   BlockdevCreateOptionsSsh (Object)
7582       Driver specific image creation options for SSH.
7583
7584   Members
7585       location: BlockdevOptionsSsh
7586              Where to store the new image file
7587
7588       size: int
7589              Size of the virtual disk in bytes
7590
7591   Since
7592       2.12
7593
7594   BlockdevCreateOptionsVdi (Object)
7595       Driver specific image creation options for VDI.
7596
7597   Members
7598       file: BlockdevRef
7599              Node to create the image format on
7600
7601       size: int
7602              Size of the virtual disk in bytes
7603
7604       preallocation: PreallocMode (optional)
7605              Preallocation mode for the new image (default: off; allowed val‐
7606              ues: off, metadata)
7607
7608   Since
7609       2.12
7610
7611   BlockdevVhdxSubformat (Enum)
7612   Values
7613       dynamic
7614              Growing image file
7615
7616       fixed  Preallocated fixed-size image file
7617
7618   Since
7619       2.12
7620
7621   BlockdevCreateOptionsVhdx (Object)
7622       Driver specific image creation options for vhdx.
7623
7624   Members
7625       file: BlockdevRef
7626              Node to create the image format on
7627
7628       size: int
7629              Size of the virtual disk in bytes
7630
7631       log-size: int (optional)
7632              Log size in bytes, must be a multiple of 1 MB (default: 1 MB)
7633
7634       block-size: int (optional)
7635              Block size in bytes, must be a multiple of 1 MB and  not  larger
7636              than  256 MB (default: automatically choose a block size depend‐
7637              ing on the image size)
7638
7639       subformat: BlockdevVhdxSubformat (optional)
7640              vhdx subformat (default: dynamic)
7641
7642       block-state-zero: boolean (optional)
7643              Force use of payload blocks of type  'ZERO'.  Non-standard,  but
7644              default.  Do not set to 'off' when using 'qemu-img convert' with
7645              subformat=dynamic.
7646
7647   Since
7648       2.12
7649
7650   BlockdevVpcSubformat (Enum)
7651   Values
7652       dynamic
7653              Growing image file
7654
7655       fixed  Preallocated fixed-size image file
7656
7657   Since
7658       2.12
7659
7660   BlockdevCreateOptionsVpc (Object)
7661       Driver specific image creation options for vpc (VHD).
7662
7663   Members
7664       file: BlockdevRef
7665              Node to create the image format on
7666
7667       size: int
7668              Size of the virtual disk in bytes
7669
7670       subformat: BlockdevVpcSubformat (optional)
7671              vhdx subformat (default: dynamic)
7672
7673       force-size: boolean (optional)
7674              Force use of the exact byte size instead of rounding to the next
7675              size that can be represented in CHS geometry (default: false)
7676
7677   Since
7678       2.12
7679
7680   BlockdevCreateOptions (Object)
7681       Options for creating an image format on a given node.
7682
7683   Members
7684       driver: BlockdevDriver
7685              block driver to create the image format
7686
7687       The members of BlockdevCreateOptionsFile when driver is "file"
7688
7689       The members of BlockdevCreateOptionsGluster when driver is "gluster"
7690
7691       The members of BlockdevCreateOptionsLUKS when driver is "luks"
7692
7693       The members of BlockdevCreateOptionsNfs when driver is "nfs"
7694
7695       The  members  of  BlockdevCreateOptionsParallels when driver is "paral‐
7696       lels"
7697
7698       The members of BlockdevCreateOptionsQcow when driver is "qcow"
7699
7700       The members of BlockdevCreateOptionsQcow2 when driver is "qcow2"
7701
7702       The members of BlockdevCreateOptionsQed when driver is "qed"
7703
7704       The members of BlockdevCreateOptionsRbd when driver is "rbd"
7705
7706       The members of BlockdevCreateOptionsSsh when driver is "ssh"
7707
7708       The members of BlockdevCreateOptionsVdi when driver is "vdi"
7709
7710       The members of BlockdevCreateOptionsVhdx when driver is "vhdx"
7711
7712       The members of BlockdevCreateOptionsVmdk when driver is "vmdk"
7713
7714       The members of BlockdevCreateOptionsVpc when driver is "vpc"
7715
7716   Since
7717       2.12
7718
7719   blockdev-create (Command)
7720       Starts a job to create an image format on a given node. The job is  au‐
7721       tomatically finalized, but a manual job-dismiss is required.
7722
7723   Arguments
7724       job-id: string
7725              Identifier for the newly created job.
7726
7727       options: BlockdevCreateOptions
7728              Options for the image creation.
7729
7730   Since
7731       3.0
7732
7733   BlockdevAmendOptionsLUKS (Object)
7734       Driver specific image amend options for LUKS.
7735
7736   Members
7737       The members of QCryptoBlockAmendOptionsLUKS
7738
7739   Since
7740       5.1
7741
7742   BlockdevAmendOptionsQcow2 (Object)
7743       Driver  specific  image amend options for qcow2.  For now, only encryp‐
7744       tion options can be amended
7745
7746       encrypt          Encryption options to be amended
7747
7748   Members
7749       encrypt: QCryptoBlockAmendOptions (optional)
7750              Not documented
7751
7752   Since
7753       5.1
7754
7755   BlockdevAmendOptions (Object)
7756       Options for amending an image format
7757
7758   Members
7759       driver: BlockdevDriver
7760              Block driver of the node to amend.
7761
7762       The members of BlockdevAmendOptionsLUKS when driver is "luks"
7763
7764       The members of BlockdevAmendOptionsQcow2 when driver is "qcow2"
7765
7766   Since
7767       5.1
7768
7769   x-blockdev-amend (Command)
7770       Starts a job to amend format specific options of an existing open block
7771       device  The job is automatically finalized, but a manual job-dismiss is
7772       required.
7773
7774   Arguments
7775       job-id: string
7776              Identifier for the newly created job.
7777
7778       node-name: string
7779              Name of the block node to work on
7780
7781       options: BlockdevAmendOptions
7782              Options (driver specific)
7783
7784       force: boolean (optional)
7785              Allow unsafe operations, format specific For  luks  that  allows
7786              erase  of  the last active keyslot (permanent loss of data), and
7787              replacement of an active keyslot (possible loss of  data  if  IO
7788              error happens)
7789
7790   Since
7791       5.1
7792
7793   BlockErrorAction (Enum)
7794       An enumeration of action that has been taken when a DISK I/O occurs
7795
7796   Values
7797       ignore error has been ignored
7798
7799       report error has been reported to the device
7800
7801       stop   error caused VM to be stopped
7802
7803   Since
7804       2.1
7805
7806   BLOCK_IMAGE_CORRUPTED (Event)
7807       Emitted  when  a  disk  image is being marked corrupt. The image can be
7808       identified by its device or node name. The  'device'  field  is  always
7809       present  for compatibility reasons, but it can be empty ("") if the im‐
7810       age does not have a device name associated.
7811
7812   Arguments
7813       device: string
7814              device name. This is always present for  compatibility  reasons,
7815              but  it  can  be  empty ("") if the image does not have a device
7816              name associated.
7817
7818       node-name: string (optional)
7819              node name (Since: 2.4)
7820
7821       msg: string
7822              informative message for human consumption, such as the  kind  of
7823              corruption being detected. It should not be parsed by machine as
7824              it is not guaranteed to be stable
7825
7826       offset: int (optional)
7827              if the corruption resulted from an image  access,  this  is  the
7828              host's access offset into the image
7829
7830       size: int (optional)
7831              if the corruption resulted from an image access, this is the ac‐
7832              cess size
7833
7834       fatal: boolean
7835              if set, the image is marked corrupt and therefore unusable after
7836              this  event  and  must  be  repaired  (Since  2.2; before, every
7837              BLOCK_IMAGE_CORRUPTED event was fatal)
7838
7839   Note
7840       If  action  is  "stop",  a  STOP  event  will  eventually  follow   the
7841       BLOCK_IO_ERROR event.
7842
7843   Example
7844          <- { "event": "BLOCK_IMAGE_CORRUPTED",
7845               "data": { "device": "ide0-hd0", "node-name": "node0",
7846                         "msg": "Prevented active L1 table overwrite", "offset": 196608,
7847                         "size": 65536 },
7848               "timestamp": { "seconds": 1378126126, "microseconds": 966463 } }
7849
7850   Since
7851       1.7
7852
7853   BLOCK_IO_ERROR (Event)
7854       Emitted when a disk I/O error occurs
7855
7856   Arguments
7857       device: string
7858              device  name.  This is always present for compatibility reasons,
7859              but it can be empty ("") if the image does  not  have  a  device
7860              name associated.
7861
7862       node-name: string (optional)
7863              node  name.  Note  that errors may be reported for the root node
7864              that is directly attached to a guest device rather than for  the
7865              node  where  the error occurred. The node name is not present if
7866              the drive is empty. (Since: 2.8)
7867
7868       operation: IoOperationType
7869              I/O operation
7870
7871       action: BlockErrorAction
7872              action that has been taken
7873
7874       nospace: boolean (optional)
7875              true if I/O error was caused due to a no-space  condition.  This
7876              key  is  only  present  if  query-block's  io-status is present,
7877              please  see  query-block  documentation  for  more   information
7878              (since: 2.2)
7879
7880       reason: string
7881              human  readable  string describing the error cause.  (This field
7882              is a debugging aid for humans, it should not be parsed by appli‐
7883              cations) (since: 2.2)
7884
7885   Note
7886       If   action  is  "stop",  a  STOP  event  will  eventually  follow  the
7887       BLOCK_IO_ERROR event
7888
7889   Since
7890       0.13
7891
7892   Example
7893          <- { "event": "BLOCK_IO_ERROR",
7894               "data": { "device": "ide0-hd1",
7895                         "node-name": "#block212",
7896                         "operation": "write",
7897                         "action": "stop" },
7898               "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
7899
7900   BLOCK_JOB_COMPLETED (Event)
7901       Emitted when a block job has completed
7902
7903   Arguments
7904       type: JobType
7905              job type
7906
7907       device: string
7908              The job identifier. Originally the device name but other  values
7909              are allowed since QEMU 2.7
7910
7911       len: int
7912              maximum progress value
7913
7914       offset: int
7915              current  progress  value.  On  success this is equal to len.  On
7916              failure this is less than len
7917
7918       speed: int
7919              rate limit, bytes per second
7920
7921       error: string (optional)
7922              error message. Only present on failure. This  field  contains  a
7923              human-readable  error message. There are no semantics other than
7924              that streaming has failed and clients should not try  to  inter‐
7925              pret the error string
7926
7927   Since
7928       1.1
7929
7930   Example
7931          <- { "event": "BLOCK_JOB_COMPLETED",
7932               "data": { "type": "stream", "device": "virtio-disk0",
7933                         "len": 10737418240, "offset": 10737418240,
7934                         "speed": 0 },
7935               "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
7936
7937   BLOCK_JOB_CANCELLED (Event)
7938       Emitted when a block job has been cancelled
7939
7940   Arguments
7941       type: JobType
7942              job type
7943
7944       device: string
7945              The  job identifier. Originally the device name but other values
7946              are allowed since QEMU 2.7
7947
7948       len: int
7949              maximum progress value
7950
7951       offset: int
7952              current progress value. On success this is  equal  to  len.   On
7953              failure this is less than len
7954
7955       speed: int
7956              rate limit, bytes per second
7957
7958   Since
7959       1.1
7960
7961   Example
7962          <- { "event": "BLOCK_JOB_CANCELLED",
7963               "data": { "type": "stream", "device": "virtio-disk0",
7964                         "len": 10737418240, "offset": 134217728,
7965                         "speed": 0 },
7966               "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
7967
7968   BLOCK_JOB_ERROR (Event)
7969       Emitted when a block job encounters an error
7970
7971   Arguments
7972       device: string
7973              The  job identifier. Originally the device name but other values
7974              are allowed since QEMU 2.7
7975
7976       operation: IoOperationType
7977              I/O operation
7978
7979       action: BlockErrorAction
7980              action that has been taken
7981
7982   Since
7983       1.3
7984
7985   Example
7986          <- { "event": "BLOCK_JOB_ERROR",
7987               "data": { "device": "ide0-hd1",
7988                         "operation": "write",
7989                         "action": "stop" },
7990               "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
7991
7992   BLOCK_JOB_READY (Event)
7993       Emitted when a block job is ready to complete
7994
7995   Arguments
7996       type: JobType
7997              job type
7998
7999       device: string
8000              The job identifier. Originally the device name but other  values
8001              are allowed since QEMU 2.7
8002
8003       len: int
8004              maximum progress value
8005
8006       offset: int
8007              current  progress  value.  On  success this is equal to len.  On
8008              failure this is less than len
8009
8010       speed: int
8011              rate limit, bytes per second
8012
8013   Note
8014       The "ready to complete" status is always  reset  by  a  BLOCK_JOB_ERROR
8015       event
8016
8017   Since
8018       1.3
8019
8020   Example
8021          <- { "event": "BLOCK_JOB_READY",
8022               "data": { "device": "drive0", "type": "mirror", "speed": 0,
8023                         "len": 2097152, "offset": 2097152 }
8024               "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
8025
8026   BLOCK_JOB_PENDING (Event)
8027       Emitted when a block job is awaiting explicit authorization to finalize
8028       graph changes via block-job-finalize. If this job is part of a transac‐
8029       tion,  it  will not emit this event until the transaction has converged
8030       first.
8031
8032   Arguments
8033       type: JobType
8034              job type
8035
8036       id: string
8037              The job identifier.
8038
8039   Since
8040       2.12
8041
8042   Example
8043          <- { "event": "BLOCK_JOB_WAITING",
8044               "data": { "device": "drive0", "type": "mirror" },
8045               "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
8046
8047   PreallocMode (Enum)
8048       Preallocation mode of QEMU image file
8049
8050   Values
8051       off    no preallocation
8052
8053       metadata
8054              preallocate only for metadata
8055
8056       falloc like full preallocation but allocate disk space by  posix_fallo‐
8057              cate() rather than writing data.
8058
8059       full   preallocate  all data by writing it to the device to ensure disk
8060              space is really available. This data may or may not be zero, de‐
8061              pending  on  the  image  format and storage.  full preallocation
8062              also sets up metadata correctly.
8063
8064   Since
8065       2.2
8066
8067   BLOCK_WRITE_THRESHOLD (Event)
8068       Emitted when writes on block device reaches or exceeds  the  configured
8069       write  threshold.  For  thin-provisioned devices, this means the device
8070       should be extended to avoid pausing for disk exhaustion.  The event  is
8071       one  shot.  Once  triggered,  it needs to be re-registered with another
8072       block-set-write-threshold command.
8073
8074   Arguments
8075       node-name: string
8076              graph node name on which the threshold was exceeded.
8077
8078       amount-exceeded: int
8079              amount of data which exceeded the threshold, in bytes.
8080
8081       write-threshold: int
8082              last configured threshold, in bytes.
8083
8084   Since
8085       2.3
8086
8087   block-set-write-threshold (Command)
8088       Change the write threshold for a block drive. An event will  be  deliv‐
8089       ered  if  a write to this block drive crosses the configured threshold.
8090       The threshold is an offset, thus must be non-negative.  Default  is  no
8091       write threshold. Setting the threshold to zero disables it.
8092
8093       This  is useful to transparently resize thin-provisioned drives without
8094       the guest OS noticing.
8095
8096   Arguments
8097       node-name: string
8098              graph node name on which the threshold must be set.
8099
8100       write-threshold: int
8101              configured threshold for the block device, bytes.  Use 0 to dis‐
8102              able the threshold.
8103
8104   Since
8105       2.3
8106
8107   Example
8108          -> { "execute": "block-set-write-threshold",
8109               "arguments": { "node-name": "mydev",
8110                              "write-threshold": 17179869184 } }
8111          <- { "return": {} }
8112
8113   x-blockdev-change (Command)
8114       Dynamically reconfigure the block driver state graph. It can be used to
8115       add, remove, insert or replace a graph node. Currently only the  Quorum
8116       driver implements this feature to add or remove its child. This is use‐
8117       ful to fix a broken quorum child.
8118
8119       If node is specified, it will be inserted under parent. child  may  not
8120       be  specified  in this case. If both parent and child are specified but
8121       node is not, child will be detached from parent.
8122
8123   Arguments
8124       parent: string
8125              the id or name of the parent node.
8126
8127       child: string (optional)
8128              the name of a child under the given parent node.
8129
8130       node: string (optional)
8131              the name of the node that will be added.
8132
8133   Note
8134       this command is experimental, and its API is not stable.  It  does  not
8135       support  all  kinds of operations, all kinds of children, nor all block
8136       drivers.
8137
8138       FIXME Removing children from a quorum node means  introducing  gaps  in
8139       the child indices. This cannot be represented in the 'children' list of
8140       BlockdevOptionsQuorum, as returned by .bdrv_refresh_filename().
8141
8142       Warning: The data in a new quorum child MUST be consistent with that of
8143       the rest of the array.
8144
8145   Since
8146       2.7
8147
8148   Example
8149          1. Add a new node to a quorum
8150          -> { "execute": "blockdev-add",
8151               "arguments": {
8152                   "driver": "raw",
8153                   "node-name": "new_node",
8154                   "file": { "driver": "file",
8155                             "filename": "test.raw" } } }
8156          <- { "return": {} }
8157          -> { "execute": "x-blockdev-change",
8158               "arguments": { "parent": "disk1",
8159                              "node": "new_node" } }
8160          <- { "return": {} }
8161
8162          2. Delete a quorum's node
8163          -> { "execute": "x-blockdev-change",
8164               "arguments": { "parent": "disk1",
8165                              "child": "children.1" } }
8166          <- { "return": {} }
8167
8168   x-blockdev-set-iothread (Command)
8169       Move node and its children into the iothread.  If iothread is null then
8170       move node and its children into the main loop.
8171
8172       The node must not be attached to a BlockBackend.
8173
8174   Arguments
8175       node-name: string
8176              the name of the block driver node
8177
8178       iothread: StrOrNull
8179              the name of the IOThread object or null for the main loop
8180
8181       force: boolean (optional)
8182              true if the node and its children should be moved when a  Block‐
8183              Backend is already attached
8184
8185   Note
8186       this command is experimental and intended for test cases that need con‐
8187       trol over IOThreads only.
8188
8189   Since
8190       2.12
8191
8192   Example
8193          1. Move a node into an IOThread
8194          -> { "execute": "x-blockdev-set-iothread",
8195               "arguments": { "node-name": "disk1",
8196                              "iothread": "iothread0" } }
8197          <- { "return": {} }
8198
8199          2. Move a node into the main loop
8200          -> { "execute": "x-blockdev-set-iothread",
8201               "arguments": { "node-name": "disk1",
8202                              "iothread": null } }
8203          <- { "return": {} }
8204
8205   QuorumOpType (Enum)
8206       An enumeration of the quorum operation types
8207
8208   Values
8209       read   read operation
8210
8211       write  write operation
8212
8213       flush  flush operation
8214
8215   Since
8216       2.6
8217
8218   QUORUM_FAILURE (Event)
8219       Emitted by the Quorum block driver if it fails to establish a quorum
8220
8221   Arguments
8222       reference: string
8223              device name if defined else node name
8224
8225       sector-num: int
8226              number of the first sector of the failed read operation
8227
8228       sectors-count: int
8229              failed read operation sector count
8230
8231   Note
8232       This event is rate-limited.
8233
8234   Since
8235       2.0
8236
8237   Example
8238          <- { "event": "QUORUM_FAILURE",
8239               "data": { "reference": "usr1", "sector-num": 345435, "sectors-count": 5 },
8240               "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
8241
8242   QUORUM_REPORT_BAD (Event)
8243       Emitted to report a corruption of a Quorum file
8244
8245   Arguments
8246       type: QuorumOpType
8247              quorum operation type (Since 2.6)
8248
8249       error: string (optional)
8250              error message. Only present on failure. This  field  contains  a
8251              human-readable  error message. There are no semantics other than
8252              that the block layer reported an error and  clients  should  not
8253              try to interpret the error string.
8254
8255       node-name: string
8256              the graph node name of the block driver state
8257
8258       sector-num: int
8259              number of the first sector of the failed read operation
8260
8261       sectors-count: int
8262              failed read operation sector count
8263
8264   Note
8265       This event is rate-limited.
8266
8267   Since
8268       2.0
8269
8270   Example
8271          1. Read operation
8272
8273          { "event": "QUORUM_REPORT_BAD",
8274               "data": { "node-name": "node0", "sector-num": 345435, "sectors-count": 5,
8275                         "type": "read" },
8276               "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
8277
8278          2. Flush operation
8279
8280          { "event": "QUORUM_REPORT_BAD",
8281               "data": { "node-name": "node0", "sector-num": 0, "sectors-count": 2097120,
8282                         "type": "flush", "error": "Broken pipe" },
8283               "timestamp": { "seconds": 1456406829, "microseconds": 291763 } }
8284
8285   BlockdevSnapshotInternal (Object)
8286   Members
8287       device: string
8288              the  device  name  or  node-name  of a root node to generate the
8289              snapshot from
8290
8291       name: string
8292              the name of the internal snapshot to be created
8293
8294   Notes
8295       In transaction, if name is empty, or any snapshot matching name exists,
8296       the  operation will fail. Only some image formats support it, for exam‐
8297       ple, qcow2, and rbd.
8298
8299   Since
8300       1.7
8301
8302   blockdev-snapshot-internal-sync (Command)
8303       Synchronously take an internal snapshot of a  block  device,  when  the
8304       format  of  the image used supports it. If the name is an empty string,
8305       or a snapshot with name already exists, the operation will fail.
8306
8307       For the arguments, see the documentation of BlockdevSnapshotInternal.
8308
8309   Returns
8310       • nothing on success
8311
8312       • If device is not a valid block device, GenericError
8313
8314       • If any snapshot matching name exists, or name is empty, GenericError
8315
8316       • If the format of the image used does not support it,  BlockFormatFea‐
8317         tureNotSupported
8318
8319   Since
8320       1.7
8321
8322   Example
8323          -> { "execute": "blockdev-snapshot-internal-sync",
8324               "arguments": { "device": "ide-hd0",
8325                              "name": "snapshot0" }
8326             }
8327          <- { "return": {} }
8328
8329   blockdev-snapshot-delete-internal-sync (Command)
8330       Synchronously  delete  an internal snapshot of a block device, when the
8331       format of the image used support it. The snapshot is identified by name
8332       or  id  or both. One of the name or id is required. Return SnapshotInfo
8333       for the successfully deleted snapshot.
8334
8335   Arguments
8336       device: string
8337              the device name or node-name of a root node to delete the  snap‐
8338              shot from
8339
8340       id: string (optional)
8341              optional the snapshot's ID to be deleted
8342
8343       name: string (optional)
8344              optional the snapshot's name to be deleted
8345
8346   Returns
8347       • SnapshotInfo on success
8348
8349       • If device is not a valid block device, GenericError
8350
8351       • If snapshot not found, GenericError
8352
8353       • If  the format of the image used does not support it, BlockFormatFea‐
8354         tureNotSupported
8355
8356       • If id and name are both not specified, GenericError
8357
8358   Since
8359       1.7
8360
8361   Example
8362          -> { "execute": "blockdev-snapshot-delete-internal-sync",
8363               "arguments": { "device": "ide-hd0",
8364                              "name": "snapshot0" }
8365             }
8366          <- { "return": {
8367                             "id": "1",
8368                             "name": "snapshot0",
8369                             "vm-state-size": 0,
8370                             "date-sec": 1000012,
8371                             "date-nsec": 10,
8372                             "vm-clock-sec": 100,
8373                             "vm-clock-nsec": 20,
8374                             "icount": 220414
8375               }
8376             }
8377
8378   Additional block stuff (VM related)
8379   BiosAtaTranslation (Enum)
8380       Policy that BIOS  should  use  to  interpret  cylinder/head/sector  ad‐
8381       dresses.   Note that Bochs BIOS and SeaBIOS will not actually translate
8382       logical CHS to physical; instead, they will use logical block  address‐
8383       ing.
8384
8385   Values
8386       auto   If  cylinder/heads/sizes are passed, choose between none and LBA
8387              depending on the size of the disk.   If  they  are  not  passed,
8388              choose  none  if  QEMU  can  guess that the disk had 16 or fewer
8389              heads, large if QEMU can guess that the disk had 131072 or fewer
8390              tracks across all heads (i.e. cylinders*heads<131072), otherwise
8391              LBA.
8392
8393       none   The physical disk geometry is equal to the logical geometry.
8394
8395       lba    Assume 63 sectors per track and one of 16, 32, 64,  128  or  255
8396              heads (if fewer than 255 are enough to cover the whole disk with
8397              1024 cylinders/head).  The number of cylinders/head is then com‐
8398              puted based on the number of sectors and heads.
8399
8400       large  The  number of cylinders per head is scaled down to 1024 by cor‐
8401              respondingly scaling up the number of heads.
8402
8403       rechs  Same as large, but first convert a 16-head geometry to  15-head,
8404              by proportionally scaling up the number of cylinders/head.
8405
8406   Since
8407       2.0
8408
8409   FloppyDriveType (Enum)
8410       Type of Floppy drive to be emulated by the Floppy Disk Controller.
8411
8412   Values
8413       144    1.44MB 3.5" drive
8414
8415       288    2.88MB 3.5" drive
8416
8417       120    1.2MB 5.25" drive
8418
8419       none   No drive connected
8420
8421       auto   Automatically determined by inserted media at boot
8422
8423   Since
8424       2.6
8425
8426   PRManagerInfo (Object)
8427       Information about a persistent reservation manager
8428
8429   Members
8430       id: string
8431              the identifier of the persistent reservation manager
8432
8433       connected: boolean
8434              true  if  the persistent reservation manager is connected to the
8435              underlying storage or helper
8436
8437   Since
8438       3.0
8439
8440   query-pr-managers (Command)
8441       Returns a list of information about each  persistent  reservation  man‐
8442       ager.
8443
8444   Returns
8445       a list of PRManagerInfo for each persistent reservation manager
8446
8447   Since
8448       3.0
8449
8450   eject (Command)
8451       Ejects the medium from a removable drive.
8452
8453   Arguments
8454       device: string (optional)
8455              Block device name
8456
8457       id: string (optional)
8458              The name or QOM path of the guest device (since: 2.8)
8459
8460       force: boolean (optional)
8461              If  true,  eject  regardless of whether the drive is locked.  If
8462              not specified, the default value is false.
8463
8464   Features
8465       deprecated
8466              Member device is deprecated.  Use id instead.
8467
8468   Returns
8469       • Nothing on success
8470
8471       • If device is not a valid block device, DeviceNotFound
8472
8473   Notes
8474       Ejecting a device with no media results in success
8475
8476   Since
8477       0.14
8478
8479   Example
8480          -> { "execute": "eject", "arguments": { "id": "ide1-0-1" } }
8481          <- { "return": {} }
8482
8483   blockdev-open-tray (Command)
8484       Opens a block device's tray. If there is a block driver state tree  in‐
8485       serted  as  a  medium, it will become inaccessible to the guest (but it
8486       will remain associated to the block device, so closing  the  tray  will
8487       make it accessible again).
8488
8489       If the tray was already open before, this will be a no-op.
8490
8491       Once  the  tray  opens, a DEVICE_TRAY_MOVED event is emitted. There are
8492       cases in which no such event will be generated, these include:
8493
8494       • if the guest has locked the tray, force is false and the  guest  does
8495         not respond to the eject request
8496
8497       • if  the  BlockBackend  denoted by device does not have a guest device
8498         attached to it
8499
8500       • if the guest device does not have an actual tray
8501
8502   Arguments
8503       device: string (optional)
8504              Block device name
8505
8506       id: string (optional)
8507              The name or QOM path of the guest device (since: 2.8)
8508
8509       force: boolean (optional)
8510              if false (the default), an eject request will  be  sent  to  the
8511              guest if it has locked the tray (and the tray will not be opened
8512              immediately); if true, the tray will  be  opened  regardless  of
8513              whether it is locked
8514
8515   Features
8516       deprecated
8517              Member device is deprecated.  Use id instead.
8518
8519   Since
8520       2.5
8521
8522   Example
8523          -> { "execute": "blockdev-open-tray",
8524               "arguments": { "id": "ide0-1-0" } }
8525
8526          <- { "timestamp": { "seconds": 1418751016,
8527                              "microseconds": 716996 },
8528               "event": "DEVICE_TRAY_MOVED",
8529               "data": { "device": "ide1-cd0",
8530                         "id": "ide0-1-0",
8531                         "tray-open": true } }
8532
8533          <- { "return": {} }
8534
8535   blockdev-close-tray (Command)
8536       Closes a block device's tray. If there is a block driver state tree as‐
8537       sociated with the block device (which is currently ejected), that  tree
8538       will be loaded as the medium.
8539
8540       If the tray was already closed before, this will be a no-op.
8541
8542   Arguments
8543       device: string (optional)
8544              Block device name
8545
8546       id: string (optional)
8547              The name or QOM path of the guest device (since: 2.8)
8548
8549   Features
8550       deprecated
8551              Member device is deprecated.  Use id instead.
8552
8553   Since
8554       2.5
8555
8556   Example
8557          -> { "execute": "blockdev-close-tray",
8558               "arguments": { "id": "ide0-1-0" } }
8559
8560          <- { "timestamp": { "seconds": 1418751345,
8561                              "microseconds": 272147 },
8562               "event": "DEVICE_TRAY_MOVED",
8563               "data": { "device": "ide1-cd0",
8564                         "id": "ide0-1-0",
8565                         "tray-open": false } }
8566
8567          <- { "return": {} }
8568
8569   blockdev-remove-medium (Command)
8570       Removes  a medium (a block driver state tree) from a block device. That
8571       block device's tray must currently be open (unless there is no attached
8572       guest device).
8573
8574       If  the  tray  is  open and there is no medium inserted, this will be a
8575       no-op.
8576
8577   Arguments
8578       id: string
8579              The name or QOM path of the guest device
8580
8581   Since
8582       2.12
8583
8584   Example
8585          -> { "execute": "blockdev-remove-medium",
8586               "arguments": { "id": "ide0-1-0" } }
8587
8588          <- { "error": { "class": "GenericError",
8589                          "desc": "Tray of device 'ide0-1-0' is not open" } }
8590
8591          -> { "execute": "blockdev-open-tray",
8592               "arguments": { "id": "ide0-1-0" } }
8593
8594          <- { "timestamp": { "seconds": 1418751627,
8595                              "microseconds": 549958 },
8596               "event": "DEVICE_TRAY_MOVED",
8597               "data": { "device": "ide1-cd0",
8598                         "id": "ide0-1-0",
8599                         "tray-open": true } }
8600
8601          <- { "return": {} }
8602
8603          -> { "execute": "blockdev-remove-medium",
8604               "arguments": { "id": "ide0-1-0" } }
8605
8606          <- { "return": {} }
8607
8608   blockdev-insert-medium (Command)
8609       Inserts a medium (a block driver state tree) into a block device.  That
8610       block device's tray must currently be open (unless there is no attached
8611       guest device) and there must be no medium inserted already.
8612
8613   Arguments
8614       id: string
8615              The name or QOM path of the guest device
8616
8617       node-name: string
8618              name of a node in the block driver state graph
8619
8620   Since
8621       2.12
8622
8623   Example
8624          -> { "execute": "blockdev-add",
8625               "arguments": {
8626                   "node-name": "node0",
8627                   "driver": "raw",
8628                   "file": { "driver": "file",
8629                             "filename": "fedora.iso" } } }
8630          <- { "return": {} }
8631
8632          -> { "execute": "blockdev-insert-medium",
8633               "arguments": { "id": "ide0-1-0",
8634                              "node-name": "node0" } }
8635
8636          <- { "return": {} }
8637
8638   BlockdevChangeReadOnlyMode (Enum)
8639       Specifies the new read-only mode of  a  block  device  subject  to  the
8640       blockdev-change-medium command.
8641
8642   Values
8643       retain Retains the current read-only mode
8644
8645       read-only
8646              Makes the device read-only
8647
8648       read-write
8649              Makes the device writable
8650
8651   Since
8652       2.3
8653
8654   blockdev-change-medium (Command)
8655       Changes the medium inserted into a block device by ejecting the current
8656       medium and loading a new image file which is inserted as the new medium
8657       (this   command  combines  blockdev-open-tray,  blockdev-remove-medium,
8658       blockdev-insert-medium and blockdev-close-tray).
8659
8660   Arguments
8661       device: string (optional)
8662              Block device name
8663
8664       id: string (optional)
8665              The name or QOM path of the guest device (since: 2.8)
8666
8667       filename: string
8668              filename of the new image to be loaded
8669
8670       format: string (optional)
8671              format to open the new image with (defaults to the  probed  for‐
8672              mat)
8673
8674       read-only-mode: BlockdevChangeReadOnlyMode (optional)
8675              change the read-only mode of the device; defaults to 'retain'
8676
8677   Features
8678       deprecated
8679              Member device is deprecated.  Use id instead.
8680
8681   Since
8682       2.5
8683
8684   Examples
8685          1. Change a removable medium
8686
8687          -> { "execute": "blockdev-change-medium",
8688               "arguments": { "id": "ide0-1-0",
8689                              "filename": "/srv/images/Fedora-12-x86_64-DVD.iso",
8690                              "format": "raw" } }
8691          <- { "return": {} }
8692
8693          2. Load a read-only medium into a writable drive
8694
8695          -> { "execute": "blockdev-change-medium",
8696               "arguments": { "id": "floppyA",
8697                              "filename": "/srv/images/ro.img",
8698                              "format": "raw",
8699                              "read-only-mode": "retain" } }
8700
8701          <- { "error":
8702               { "class": "GenericError",
8703                 "desc": "Could not open '/srv/images/ro.img': Permission denied" } }
8704
8705          -> { "execute": "blockdev-change-medium",
8706               "arguments": { "id": "floppyA",
8707                              "filename": "/srv/images/ro.img",
8708                              "format": "raw",
8709                              "read-only-mode": "read-only" } }
8710
8711          <- { "return": {} }
8712
8713   DEVICE_TRAY_MOVED (Event)
8714       Emitted  whenever  the tray of a removable device is moved by the guest
8715       or by HMP/QMP commands
8716
8717   Arguments
8718       device: string
8719              Block device name. This is always present for compatibility rea‐
8720              sons,  but it can be empty ("") if the image does not have a de‐
8721              vice name associated.
8722
8723       id: string
8724              The name or QOM path of the guest device (since 2.8)
8725
8726       tray-open: boolean
8727              true if the tray has been opened or false if it has been closed
8728
8729   Since
8730       1.1
8731
8732   Example
8733          <- { "event": "DEVICE_TRAY_MOVED",
8734               "data": { "device": "ide1-cd0",
8735                         "id": "/machine/unattached/device[22]",
8736                         "tray-open": true
8737               },
8738               "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
8739
8740   PR_MANAGER_STATUS_CHANGED (Event)
8741       Emitted whenever the connected status of a persistent reservation  man‐
8742       ager changes.
8743
8744   Arguments
8745       id: string
8746              The id of the PR manager object
8747
8748       connected: boolean
8749              true if the PR manager is connected to a backend
8750
8751   Since
8752       3.0
8753
8754   Example
8755          <- { "event": "PR_MANAGER_STATUS_CHANGED",
8756               "data": { "id": "pr-helper0",
8757                         "connected": true
8758               },
8759               "timestamp": { "seconds": 1519840375, "microseconds": 450486 } }
8760
8761   block_set_io_throttle (Command)
8762       Change I/O throttle limits for a block drive.
8763
8764       Since  QEMU  2.4,  each  device with I/O limits is member of a throttle
8765       group.
8766
8767       If two or more devices are members of the same group, the  limits  will
8768       apply  to the combined I/O of the whole group in a round-robin fashion.
8769       Therefore, setting new I/O limits to a device  will  affect  the  whole
8770       group.
8771
8772       The name of the group can be specified using the 'group' parameter.  If
8773       the parameter is unset, it is assumed to be the current group  of  that
8774       device.  If  it's  not in any group yet, the name of the device will be
8775       used as the name for its group.
8776
8777       The 'group' parameter can also be used to move a device to a  different
8778       group.  In this case the limits specified in the parameters will be ap‐
8779       plied to the new group only.
8780
8781       I/O limits can be disabled by setting all of them to 0.  In  this  case
8782       the  device  will be removed from its group and the rest of its members
8783       will not be affected. The 'group' parameter is ignored.
8784
8785   Arguments
8786       The members of BlockIOThrottle
8787
8788   Returns
8789       • Nothing on success
8790
8791       • If device is not a valid block device, DeviceNotFound
8792
8793   Since
8794       1.1
8795
8796   Example
8797          -> { "execute": "block_set_io_throttle",
8798               "arguments": { "id": "virtio-blk-pci0/virtio-backend",
8799                              "bps": 0,
8800                              "bps_rd": 0,
8801                              "bps_wr": 0,
8802                              "iops": 512,
8803                              "iops_rd": 0,
8804                              "iops_wr": 0,
8805                              "bps_max": 0,
8806                              "bps_rd_max": 0,
8807                              "bps_wr_max": 0,
8808                              "iops_max": 0,
8809                              "iops_rd_max": 0,
8810                              "iops_wr_max": 0,
8811                              "bps_max_length": 0,
8812                              "iops_size": 0 } }
8813          <- { "return": {} }
8814
8815          -> { "execute": "block_set_io_throttle",
8816               "arguments": { "id": "ide0-1-0",
8817                              "bps": 1000000,
8818                              "bps_rd": 0,
8819                              "bps_wr": 0,
8820                              "iops": 0,
8821                              "iops_rd": 0,
8822                              "iops_wr": 0,
8823                              "bps_max": 8000000,
8824                              "bps_rd_max": 0,
8825                              "bps_wr_max": 0,
8826                              "iops_max": 0,
8827                              "iops_rd_max": 0,
8828                              "iops_wr_max": 0,
8829                              "bps_max_length": 60,
8830                              "iops_size": 0 } }
8831          <- { "return": {} }
8832
8833   block-latency-histogram-set (Command)
8834       Manage read, write and flush latency histograms for the device.
8835
8836       If only id parameter is specified,  remove  all  present  latency  his‐
8837       tograms  for  the device. Otherwise, add/reset some of (or all) latency
8838       histograms.
8839
8840   Arguments
8841       id: string
8842              The name or QOM path of the guest device.
8843
8844       boundaries: array of int (optional)
8845              list of interval boundary values (see description in BlockLaten‐
8846              cyHistogramInfo  definition).  If  specified,  all  latency his‐
8847              tograms are removed, and empty ones created  for  all  io  types
8848              with intervals corresponding to boundaries (except for io types,
8849              for which specific boundaries are set through the following  pa‐
8850              rameters).
8851
8852       boundaries-read: array of int (optional)
8853              list  of interval boundary values for read latency histogram. If
8854              specified, old read latency histogram is removed, and empty  one
8855              created with intervals corresponding to boundaries-read. The pa‐
8856              rameter has higher priority then boundaries.
8857
8858       boundaries-write: array of int (optional)
8859              list of interval boundary values for write latency histogram.
8860
8861       boundaries-flush: array of int (optional)
8862              list of interval boundary values for flush latency histogram.
8863
8864   Returns
8865       error if device is not found or any boundary arrays are invalid.
8866
8867   Since
8868       4.0
8869
8870   Example
8871          set new histograms for all io types with intervals
8872          [0, 10), [10, 50), [50, 100), [100, +inf):
8873
8874          -> { "execute": "block-latency-histogram-set",
8875               "arguments": { "id": "drive0",
8876                              "boundaries": [10, 50, 100] } }
8877          <- { "return": {} }
8878
8879   Example
8880          set new histogram only for write, other histograms will remain
8881          not changed (or not created):
8882
8883          -> { "execute": "block-latency-histogram-set",
8884               "arguments": { "id": "drive0",
8885                              "boundaries-write": [10, 50, 100] } }
8886          <- { "return": {} }
8887
8888   Example
8889          set new histograms with the following intervals:
8890            read, flush: [0, 10), [10, 50), [50, 100), [100, +inf)
8891            write: [0, 1000), [1000, 5000), [5000, +inf)
8892
8893          -> { "execute": "block-latency-histogram-set",
8894               "arguments": { "id": "drive0",
8895                              "boundaries": [10, 50, 100],
8896                              "boundaries-write": [1000, 5000] } }
8897          <- { "return": {} }
8898
8899   Example
8900          remove all latency histograms:
8901
8902          -> { "execute": "block-latency-histogram-set",
8903               "arguments": { "id": "drive0" } }
8904          <- { "return": {} }
8905
8906   Block device exports
8907   NbdServerOptions (Object)
8908       Keep this type consistent with the nbd-server-start arguments. The only
8909       intended  difference is using SocketAddress instead of SocketAddressLe‐
8910       gacy.
8911
8912   Members
8913       addr: SocketAddress
8914              Address on which to listen.
8915
8916       tls-creds: string (optional)
8917              ID of the TLS credentials object (since 2.6).
8918
8919       tls-authz: string (optional)
8920              ID of the QAuthZ  authorization  object  used  to  validate  the
8921              client's  x509  distinguished  name.  This object is is only re‐
8922              solved at time of use, so can be deleted and  recreated  on  the
8923              fly while the NBD server is active.  If missing, it will default
8924              to denying access (since 4.0).
8925
8926       max-connections: int (optional)
8927              The maximum number of connections to allow at the same  time,  0
8928              for unlimited. (since 5.2; default: 0)
8929
8930   Since
8931       4.2
8932
8933   nbd-server-start (Command)
8934       Start  an  NBD  server listening on the given host and port.  Block de‐
8935       vices can then be exported using nbd-server-add.  The NBD  server  will
8936       present them as named exports; for example, another QEMU instance could
8937       refer to them as "nbd:HOST:PORT:exportname=NAME".
8938
8939       Keep this type consistent with the NbdServerOptions type. The only  in‐
8940       tended  difference  is  using  SocketAddressLegacy instead of SocketAd‐
8941       dress.
8942
8943   Arguments
8944       addr: SocketAddressLegacy
8945              Address on which to listen.
8946
8947       tls-creds: string (optional)
8948              ID of the TLS credentials object (since 2.6).
8949
8950       tls-authz: string (optional)
8951              ID of the QAuthZ  authorization  object  used  to  validate  the
8952              client's  x509  distinguished  name.  This object is is only re‐
8953              solved at time of use, so can be deleted and  recreated  on  the
8954              fly while the NBD server is active.  If missing, it will default
8955              to denying access (since 4.0).
8956
8957       max-connections: int (optional)
8958              The maximum number of connections to allow at the same  time,  0
8959              for unlimited. (since 5.2; default: 0)
8960
8961   Returns
8962       error if the server is already running.
8963
8964   Since
8965       1.3
8966
8967   BlockExportOptionsNbdBase (Object)
8968       An  NBD  block export (common options shared between nbd-server-add and
8969       the NBD branch of block-export-add).
8970
8971   Members
8972       name: string (optional)
8973              Export name. If unspecified, the device parameter is used as the
8974              export name. (Since 2.12)
8975
8976       description: string (optional)
8977              Free-form  description  of the export, up to 4096 bytes.  (Since
8978              5.0)
8979
8980   Since
8981       5.0
8982
8983   BlockExportOptionsNbd (Object)
8984       An NBD block export  (distinct  options  used  in  the  NBD  branch  of
8985       block-export-add).
8986
8987   Members
8988       bitmaps: array of string (optional)
8989              Also  export  each of the named dirty bitmaps reachable from de‐
8990              vice, so the NBD client can  use  NBD_OPT_SET_META_CONTEXT  with
8991              the  metadata context name "qemu:dirty-bitmap:BITMAP" to inspect
8992              each bitmap.
8993
8994       allocation-depth: boolean (optional)
8995              Also export the allocation depth map  for  device,  so  the  NBD
8996              client  can  use NBD_OPT_SET_META_CONTEXT with the metadata con‐
8997              text name "qemu:allocation-depth" to inspect allocation details.
8998              (since 5.2)
8999
9000       The members of BlockExportOptionsNbdBase
9001
9002   Since
9003       5.2
9004
9005   BlockExportOptionsVhostUserBlk (Object)
9006       A vhost-user-blk block export.
9007
9008   Members
9009       addr: SocketAddress
9010              The  vhost-user  socket on which to listen. Both 'unix' and 'fd'
9011              SocketAddress types are supported. Passed fds must be  UNIX  do‐
9012              main sockets.
9013
9014       logical-block-size: int (optional)
9015              Logical block size in bytes. Defaults to 512 bytes.
9016
9017       num-queues: int (optional)
9018              Number  of  request virtqueues. Must be greater than 0. Defaults
9019              to 1.
9020
9021   Since
9022       5.2
9023
9024   FuseExportAllowOther (Enum)
9025       Possible allow_other modes for FUSE exports.
9026
9027   Values
9028       off    Do not pass allow_other as a mount option.
9029
9030       on     Pass allow_other as a mount option.
9031
9032       auto   Try mounting with allow_other first, and if  that  fails,  retry
9033              without allow_other.
9034
9035   Since
9036       6.1
9037
9038   BlockExportOptionsFuse (Object)
9039       Options for exporting a block graph node on some (file) mountpoint as a
9040       raw image.
9041
9042   Members
9043       mountpoint: string
9044              Path on which to export the block device via  FUSE.   This  must
9045              point to an existing regular file.
9046
9047       growable: boolean (optional)
9048              Whether writes beyond the EOF should grow the block node accord‐
9049              ingly. (default: false)
9050
9051       allow-other: FuseExportAllowOther (optional)
9052              If this is off, only qemu's user is allowed access to  this  ex‐
9053              port.   That  cannot  be  changed even with chmod or chown.  En‐
9054              abling this option will allow other users access to  the  export
9055              with  the  FUSE mount option "allow_other".  Note that using al‐
9056              low_other as a non-root user requires user_allow_other to be en‐
9057              abled  in the global fuse.conf configuration file.  In auto mode
9058              (the default), the FUSE export  driver  will  first  attempt  to
9059              mount  the export with allow_other, and if that fails, try again
9060              without.  (since 6.1; default: auto)
9061
9062   Since
9063       6.0
9064
9065   If
9066       defined(CONFIG_FUSE)
9067
9068   NbdServerAddOptions (Object)
9069       An NBD block export, per legacy nbd-server-add command.
9070
9071   Members
9072       device: string
9073              The device name or node name of the node to be exported
9074
9075       writable: boolean (optional)
9076              Whether clients should be able to write to the  device  via  the
9077              NBD connection (default false).
9078
9079       bitmap: string (optional)
9080              Also  export a single dirty bitmap reachable from device, so the
9081              NBD client can use NBD_OPT_SET_META_CONTEXT  with  the  metadata
9082              context  name  "qemu:dirty-bitmap:BITMAP"  to inspect the bitmap
9083              (since 4.0).
9084
9085       The members of BlockExportOptionsNbdBase
9086
9087   Since
9088       5.0
9089
9090   nbd-server-add (Command)
9091       Export a block node to QEMU's embedded NBD server.
9092
9093       The export name will be used as the id for the resulting block export.
9094
9095   Arguments
9096       The members of NbdServerAddOptions
9097
9098   Features
9099       deprecated
9100              This command is deprecated. Use block-export-add instead.
9101
9102   Returns
9103       error if the server is not running, or export with the  same  name  al‐
9104       ready exists.
9105
9106   Since
9107       1.3
9108
9109   BlockExportRemoveMode (Enum)
9110       Mode for removing a block export.
9111
9112   Values
9113       safe   Remove  export if there are no existing connections, fail other‐
9114              wise.
9115
9116       hard   Drop all connections immediately and remove export.
9117       Potential additional modes to be added in the future:
9118
9119       hide: Just hide export from new clients, leave existing connections  as
9120       is.  Remove export after all clients are disconnected.
9121
9122       soft:  Hide export from new clients, answer with ESHUTDOWN for all fur‐
9123       ther requests from existing clients.
9124
9125   Since
9126       2.12
9127
9128   nbd-server-remove (Command)
9129       Remove NBD export by name.
9130
9131   Arguments
9132       name: string
9133              Block export id.
9134
9135       mode: BlockExportRemoveMode (optional)
9136              Mode of command operation.  See  BlockExportRemoveMode  descrip‐
9137              tion.  Default is 'safe'.
9138
9139   Features
9140       deprecated
9141              This command is deprecated. Use block-export-del instead.
9142
9143   Returns
9144       error if
9145
9146              • the server is not running
9147
9148              • export is not found
9149
9150              • mode is 'safe' and there are existing connections
9151
9152   Since
9153       2.12
9154
9155   nbd-server-stop (Command)
9156       Stop  QEMU's embedded NBD server, and unregister all devices previously
9157       added via nbd-server-add.
9158
9159   Since
9160       1.3
9161
9162   BlockExportType (Enum)
9163       An enumeration of block export types
9164
9165   Values
9166       nbd    NBD export
9167
9168       vhost-user-blk
9169              vhost-user-blk export (since 5.2)
9170
9171       fuse (If: defined(CONFIG_FUSE))
9172              FUSE export (since: 6.0)
9173
9174   Since
9175       4.2
9176
9177   BlockExportOptions (Object)
9178       Describes a block export, i.e. how single node should be exported on an
9179       external interface.
9180
9181   Members
9182       id: string
9183              A  unique  identifier  for  the  block export (across all export
9184              types)
9185
9186       node-name: string
9187              The node name of the block node to be exported (since: 5.2)
9188
9189       writable: boolean (optional)
9190              True if clients should be able to write to the  export  (default
9191              false)
9192
9193       writethrough: boolean (optional)
9194              If true, caches are flushed after every write request to the ex‐
9195              port before  completion  is  signalled.  (since:  5.2;  default:
9196              false)
9197
9198       iothread: string (optional)
9199              The  name  of the iothread object where the export will run. The
9200              default is to use the thread currently associated with the block
9201              node. (since: 5.2)
9202
9203       fixed-iothread: boolean (optional)
9204              True  prevents the block node from being moved to another thread
9205              while the export is active. If true and iothread is  given,  ex‐
9206              port creation fails if the block node cannot be moved to the io‐
9207              thread. The default is false. (since: 5.2)
9208
9209       type: BlockExportType
9210              Not documented
9211
9212       The members of BlockExportOptionsNbd when type is "nbd"
9213
9214       The   members   of   BlockExportOptionsVhostUserBlk   when   type    is
9215       "vhost-user-blk"
9216
9217       The  members  of  BlockExportOptionsFuse  when  type is "fuse" (If: de‐
9218       fined(CONFIG_FUSE))
9219
9220   Since
9221       4.2
9222
9223   block-export-add (Command)
9224       Creates a new block export.
9225
9226   Arguments
9227       The members of BlockExportOptions
9228
9229   Since
9230       5.2
9231
9232   block-export-del (Command)
9233       Request to remove a block export. This drops the  user's  reference  to
9234       the export, but the export may still stay around after this command re‐
9235       turns until the shutdown of the export has completed.
9236
9237   Arguments
9238       id: string
9239              Block export id.
9240
9241       mode: BlockExportRemoveMode (optional)
9242              Mode of command operation.  See  BlockExportRemoveMode  descrip‐
9243              tion.  Default is 'safe'.
9244
9245   Returns
9246       Error  if  the  export is not found or mode is 'safe' and the export is
9247       still in use (e.g. by existing client connections)
9248
9249   Since
9250       5.2
9251
9252   BLOCK_EXPORT_DELETED (Event)
9253       Emitted when a block export is removed and its id can be reused.
9254
9255   Arguments
9256       id: string
9257              Block export id.
9258
9259   Since
9260       5.2
9261
9262   BlockExportInfo (Object)
9263       Information about a single block export.
9264
9265   Members
9266       id: string
9267              The unique identifier for the block export
9268
9269       type: BlockExportType
9270              The block export type
9271
9272       node-name: string
9273              The node name of the block node that is exported
9274
9275       shutting-down: boolean
9276              True if the export is shutting  down  (e.g.  after  a  block-ex‐
9277              port-del command, but before the shutdown has completed)
9278
9279   Since
9280       5.2
9281
9282   query-block-exports (Command)
9283   Returns
9284       A list of BlockExportInfo describing all block exports
9285
9286   Since
9287       5.2
9288

CHARACTER DEVICES

9290   ChardevInfo (Object)
9291       Information about a character device.
9292
9293   Members
9294       label: string
9295              the label of the character device
9296
9297       filename: string
9298              the filename of the character device
9299
9300       frontend-open: boolean
9301              shows  whether the frontend device attached to this backend (eg.
9302              with the chardev=... option) is in open or closed  state  (since
9303              2.1)
9304
9305   Notes
9306       filename is encoded using the QEMU command line character device encod‐
9307       ing.  See the QEMU man page for details.
9308
9309   Since
9310       0.14
9311
9312   query-chardev (Command)
9313       Returns information about current character devices.
9314
9315   Returns
9316       a list of ChardevInfo
9317
9318   Since
9319       0.14
9320
9321   Example
9322          -> { "execute": "query-chardev" }
9323          <- {
9324                "return": [
9325                   {
9326                      "label": "charchannel0",
9327                      "filename": "unix:/var/lib/libvirt/qemu/seabios.rhel6.agent,server=on",
9328                      "frontend-open": false
9329                   },
9330                   {
9331                      "label": "charmonitor",
9332                      "filename": "unix:/var/lib/libvirt/qemu/seabios.rhel6.monitor,server=on",
9333                      "frontend-open": true
9334                   },
9335                   {
9336                      "label": "charserial0",
9337                      "filename": "pty:/dev/pts/2",
9338                      "frontend-open": true
9339                   }
9340                ]
9341             }
9342
9343   ChardevBackendInfo (Object)
9344       Information about a character device backend
9345
9346   Members
9347       name: string
9348              The backend name
9349
9350   Since
9351       2.0
9352
9353   query-chardev-backends (Command)
9354       Returns information about character device backends.
9355
9356   Returns
9357       a list of ChardevBackendInfo
9358
9359   Since
9360       2.0
9361
9362   Example
9363          -> { "execute": "query-chardev-backends" }
9364          <- {
9365                "return":[
9366                   {
9367                      "name":"udp"
9368                   },
9369                   {
9370                      "name":"tcp"
9371                   },
9372                   {
9373                      "name":"unix"
9374                   },
9375                   {
9376                      "name":"spiceport"
9377                   }
9378                ]
9379             }
9380
9381   DataFormat (Enum)
9382       An enumeration of data format.
9383
9384   Values
9385       utf8   Data is a UTF-8 string (RFC 3629)
9386
9387       base64 Data is Base64 encoded binary (RFC 3548)
9388
9389   Since
9390       1.4
9391
9392   ringbuf-write (Command)
9393       Write to a ring buffer character device.
9394
9395   Arguments
9396       device: string
9397              the ring buffer character device name
9398
9399       data: string
9400              data to write
9401
9402       format: DataFormat (optional)
9403              data encoding (default 'utf8').
9404
9405              • base64: data must be base64 encoded text.  Its binary decoding
9406                gets written.
9407
9408              • utf8: data's UTF-8 encoding is written
9409
9410              • data  itself  is always Unicode regardless of format, like any
9411                other string.
9412
9413   Returns
9414       Nothing on success
9415
9416   Since
9417       1.4
9418
9419   Example
9420          -> { "execute": "ringbuf-write",
9421               "arguments": { "device": "foo",
9422                              "data": "abcdefgh",
9423                              "format": "utf8" } }
9424          <- { "return": {} }
9425
9426   ringbuf-read (Command)
9427       Read from a ring buffer character device.
9428
9429   Arguments
9430       device: string
9431              the ring buffer character device name
9432
9433       size: int
9434              how many bytes to read at most
9435
9436       format: DataFormat (optional)
9437              data encoding (default 'utf8').
9438
9439              • base64: the data read is returned in base64 encoding.
9440
9441              • utf8: the data read is interpreted as UTF-8.  Bug:  can  screw
9442                up when the buffer contains invalid UTF-8 sequences, NUL char‐
9443                acters, after the ring buffer  lost  data,  and  when  reading
9444                stops because the size limit is reached.
9445
9446              • The  return value is always Unicode regardless of format, like
9447                any other string.
9448
9449   Returns
9450       data read from the device
9451
9452   Since
9453       1.4
9454
9455   Example
9456          -> { "execute": "ringbuf-read",
9457               "arguments": { "device": "foo",
9458                              "size": 1000,
9459                              "format": "utf8" } }
9460          <- { "return": "abcdefgh" }
9461
9462   ChardevCommon (Object)
9463       Configuration shared across all chardev backends
9464
9465   Members
9466       logfile: string (optional)
9467              The name of a logfile to save output
9468
9469       logappend: boolean (optional)
9470              true to append instead of truncate (default to  false  to  trun‐
9471              cate)
9472
9473   Since
9474       2.6
9475
9476   ChardevFile (Object)
9477       Configuration info for file chardevs.
9478
9479   Members
9480       in: string (optional)
9481              The name of the input file
9482
9483       out: string
9484              The name of the output file
9485
9486       append: boolean (optional)
9487              Open  the file in append mode (default false to truncate) (Since
9488              2.6)
9489
9490       The members of ChardevCommon
9491
9492   Since
9493       1.4
9494
9495   ChardevHostdev (Object)
9496       Configuration info for device and pipe chardevs.
9497
9498   Members
9499       device: string
9500              The name of the special file for the device, i.e. /dev/ttyS0  on
9501              Unix or COM1: on Windows
9502
9503       The members of ChardevCommon
9504
9505   Since
9506       1.4
9507
9508   ChardevSocket (Object)
9509       Configuration info for (stream) socket chardevs.
9510
9511   Members
9512       addr: SocketAddressLegacy
9513              socket   address  to  listen  on  (server=true)  or  connect  to
9514              (server=false)
9515
9516       tls-creds: string (optional)
9517              the ID of the TLS credentials object (since 2.6)
9518
9519       tls-authz: string (optional)
9520              the ID of the QAuthZ  authorization  object  against  which  the
9521              client's  x509 distinguished name will be validated. This object
9522              is only resolved at time of use, so can be deleted and recreated
9523              on  the  fly while the chardev server is active.  If missing, it
9524              will default to denying access (since 4.0)
9525
9526       server: boolean (optional)
9527              create server socket (default: true)
9528
9529       wait: boolean (optional)
9530              wait for incoming connection on server sockets (default: false).
9531              Silently ignored with server: false.  This use is deprecated.
9532
9533       nodelay: boolean (optional)
9534              set TCP_NODELAY socket option (default: false)
9535
9536       telnet: boolean (optional)
9537              enable telnet protocol on server sockets (default: false)
9538
9539       tn3270: boolean (optional)
9540              enable  tn3270  protocol  on  server  sockets  (default:  false)
9541              (Since: 2.10)
9542
9543       websocket: boolean (optional)
9544              enable websocket protocol on  server  sockets  (default:  false)
9545              (Since: 3.1)
9546
9547       reconnect: int (optional)
9548              For a client socket, if a socket is disconnected, then attempt a
9549              reconnect after the given number of seconds.   Setting  this  to
9550              zero disables this function. (default: 0) (Since: 2.2)
9551
9552       The members of ChardevCommon
9553
9554   Since
9555       1.4
9556
9557   ChardevUdp (Object)
9558       Configuration info for datagram socket chardevs.
9559
9560   Members
9561       remote: SocketAddressLegacy
9562              remote address
9563
9564       local: SocketAddressLegacy (optional)
9565              local address
9566
9567       The members of ChardevCommon
9568
9569   Since
9570       1.5
9571
9572   ChardevMux (Object)
9573       Configuration info for mux chardevs.
9574
9575   Members
9576       chardev: string
9577              name of the base chardev.
9578
9579       The members of ChardevCommon
9580
9581   Since
9582       1.5
9583
9584   ChardevStdio (Object)
9585       Configuration info for stdio chardevs.
9586
9587   Members
9588       signal: boolean (optional)
9589              Allow  signals  (such as SIGINT triggered by ^C) be delivered to
9590              qemu.  Default: true.
9591
9592       The members of ChardevCommon
9593
9594   Since
9595       1.5
9596
9597   ChardevSpiceChannel (Object)
9598       Configuration info for spice vm channel chardevs.
9599
9600   Members
9601       type: string
9602              kind of channel (for example vdagent).
9603
9604       The members of ChardevCommon
9605
9606   Since
9607       1.5
9608
9609   If
9610       defined(CONFIG_SPICE)
9611
9612   ChardevSpicePort (Object)
9613       Configuration info for spice port chardevs.
9614
9615   Members
9616       fqdn: string
9617              name of the channel (see docs/spice-port-fqdn.txt)
9618
9619       The members of ChardevCommon
9620
9621   Since
9622       1.5
9623
9624   If
9625       defined(CONFIG_SPICE)
9626
9627   ChardevVC (Object)
9628       Configuration info for virtual console chardevs.
9629
9630   Members
9631       width: int (optional)
9632              console width,  in pixels
9633
9634       height: int (optional)
9635              console height, in pixels
9636
9637       cols: int (optional)
9638              console width,  in chars
9639
9640       rows: int (optional)
9641              console height, in chars
9642
9643       The members of ChardevCommon
9644
9645   Since
9646       1.5
9647
9648   ChardevRingbuf (Object)
9649       Configuration info for ring buffer chardevs.
9650
9651   Members
9652       size: int (optional)
9653              ring buffer size, must be power of two, default is 65536
9654
9655       The members of ChardevCommon
9656
9657   Since
9658       1.5
9659
9660   ChardevQemuVDAgent (Object)
9661       Configuration info for qemu vdagent implementation.
9662
9663   Members
9664       mouse: boolean (optional)
9665              enable/disable mouse, default is enabled.
9666
9667       clipboard: boolean (optional)
9668              enable/disable clipboard, default is disabled.
9669
9670       The members of ChardevCommon
9671
9672   Since
9673       6.1
9674
9675   If
9676       defined(CONFIG_SPICE_PROTOCOL)
9677
9678   ChardevBackend (Object)
9679       Configuration info for the new chardev backend.
9680
9681   Members
9682       type   One of file, serial, parallel, pipe,  socket,  udp,  pty,  null,
9683              mux,   msmouse,  wctablet,  braille,  testdev,  stdio,  console,
9684              spicevmc, spiceport, qemu-vdagent, vc, ringbuf, memory
9685
9686       data: ChardevFile when type is "file"
9687
9688       data: ChardevHostdev when type is "serial"
9689
9690       data: ChardevHostdev when type is "parallel"
9691
9692       data: ChardevHostdev when type is "pipe"
9693
9694       data: ChardevSocket when type is "socket"
9695
9696       data: ChardevUdp when type is "udp"
9697
9698       data: ChardevCommon when type is "pty"
9699
9700       data: ChardevCommon when type is "null"
9701
9702       data: ChardevMux when type is "mux"
9703
9704       data: ChardevCommon when type is "msmouse"
9705
9706       data: ChardevCommon when type is "wctablet"
9707
9708       data: ChardevCommon when type is "braille"
9709
9710       data: ChardevCommon when type is "testdev"
9711
9712       data: ChardevStdio when type is "stdio"
9713
9714       data: ChardevCommon when type is "console"
9715
9716       data: ChardevSpiceChannel when type  is  "spicevmc"  (If:  defined(CON‐
9717       FIG_SPICE))
9718
9719       data:  ChardevSpicePort  when  type  is  "spiceport"  (If: defined(CON‐
9720       FIG_SPICE))
9721
9722       data: ChardevQemuVDAgent when type is "qemu-vdagent" (If:  defined(CON‐
9723       FIG_SPICE_PROTOCOL))
9724
9725       data: ChardevVC when type is "vc"
9726
9727       data: ChardevRingbuf when type is "ringbuf"
9728
9729       data: ChardevRingbuf when type is "memory"
9730
9731   Since
9732       1.4 (testdev since 2.2, wctablet since 2.9, vdagent since 6.1)
9733
9734   ChardevReturn (Object)
9735       Return info about the chardev backend just created.
9736
9737   Members
9738       pty: string (optional)
9739              name  of the slave pseudoterminal device, present if and only if
9740              a chardev of type 'pty' was created
9741
9742   Since
9743       1.4
9744
9745   chardev-add (Command)
9746       Add a character device backend
9747
9748   Arguments
9749       id: string
9750              the chardev's ID, must be unique
9751
9752       backend: ChardevBackend
9753              backend type and parameters
9754
9755   Returns
9756       ChardevReturn.
9757
9758   Since
9759       1.4
9760
9761   Example
9762          -> { "execute" : "chardev-add",
9763               "arguments" : { "id" : "foo",
9764                               "backend" : { "type" : "null", "data" : {} } } }
9765          <- { "return": {} }
9766
9767          -> { "execute" : "chardev-add",
9768               "arguments" : { "id" : "bar",
9769                               "backend" : { "type" : "file",
9770                                             "data" : { "out" : "/tmp/bar.log" } } } }
9771          <- { "return": {} }
9772
9773          -> { "execute" : "chardev-add",
9774               "arguments" : { "id" : "baz",
9775                               "backend" : { "type" : "pty", "data" : {} } } }
9776          <- { "return": { "pty" : "/dev/pty/42" } }
9777
9778   chardev-change (Command)
9779       Change a character device backend
9780
9781   Arguments
9782       id: string
9783              the chardev's ID, must exist
9784
9785       backend: ChardevBackend
9786              new backend type and parameters
9787
9788   Returns
9789       ChardevReturn.
9790
9791   Since
9792       2.10
9793
9794   Example
9795          -> { "execute" : "chardev-change",
9796               "arguments" : { "id" : "baz",
9797                               "backend" : { "type" : "pty", "data" : {} } } }
9798          <- { "return": { "pty" : "/dev/pty/42" } }
9799
9800          -> {"execute" : "chardev-change",
9801              "arguments" : {
9802                  "id" : "charchannel2",
9803                  "backend" : {
9804                      "type" : "socket",
9805                      "data" : {
9806                          "addr" : {
9807                              "type" : "unix" ,
9808                              "data" : {
9809                                  "path" : "/tmp/charchannel2.socket"
9810                              }
9811                           },
9812                           "server" : true,
9813                           "wait" : false }}}}
9814          <- {"return": {}}
9815
9816   chardev-remove (Command)
9817       Remove a character device backend
9818
9819   Arguments
9820       id: string
9821              the chardev's ID, must exist and not be in use
9822
9823   Returns
9824       Nothing on success
9825
9826   Since
9827       1.4
9828
9829   Example
9830          -> { "execute": "chardev-remove", "arguments": { "id" : "foo" } }
9831          <- { "return": {} }
9832
9833   chardev-send-break (Command)
9834       Send a break to a character device
9835
9836   Arguments
9837       id: string
9838              the chardev's ID, must exist
9839
9840   Returns
9841       Nothing on success
9842
9843   Since
9844       2.10
9845
9846   Example
9847          -> { "execute": "chardev-send-break", "arguments": { "id" : "foo" } }
9848          <- { "return": {} }
9849
9850   VSERPORT_CHANGE (Event)
9851       Emitted when the guest opens or closes a virtio-serial port.
9852
9853   Arguments
9854       id: string
9855              device identifier of the virtio-serial port
9856
9857       open: boolean
9858              true if the guest has opened the virtio-serial port
9859
9860   Note
9861       This event is rate-limited.
9862
9863   Since
9864       2.1
9865
9866   Example
9867          <- { "event": "VSERPORT_CHANGE",
9868               "data": { "id": "channel0", "open": true },
9869               "timestamp": { "seconds": 1401385907, "microseconds": 422329 } }
9870

DUMP GUEST MEMORY

9872   DumpGuestMemoryFormat (Enum)
9873       An enumeration of guest-memory-dump's format.
9874
9875   Values
9876       elf    elf format
9877
9878       kdump-zlib
9879              kdump-compressed format with zlib-compressed
9880
9881       kdump-lzo
9882              kdump-compressed format with lzo-compressed
9883
9884       kdump-snappy
9885              kdump-compressed format with snappy-compressed
9886
9887       win-dmp
9888              Windows full crashdump format, can be used instead of  ELF  con‐
9889              verting (since 2.13)
9890
9891   Since
9892       2.0
9893
9894   dump-guest-memory (Command)
9895       Dump  guest's  memory to vmcore. It is a synchronous operation that can
9896       take very long depending on the amount of guest memory.
9897
9898   Arguments
9899       paging: boolean
9900              if true, do paging to get guest's memory  mapping.  This  allows
9901              using gdb to process the core file.
9902
9903              IMPORTANT:  this option can make QEMU allocate several gigabytes
9904              of RAM. This can happen for a large guest, or a malicious  guest
9905              pretending to be large.
9906
9907              Also, paging=true has the following limitations:
9908
9909                 1. The  guest may be in a catastrophic state or can have cor‐
9910                    rupted memory, which cannot be trusted
9911
9912                 2. The guest can be in real-mode even if paging  is  enabled.
9913                    For  example, the guest uses ACPI to sleep, and ACPI sleep
9914                    state goes in real-mode
9915
9916                 3. Currently only supported on i386 and x86_64.
9917
9918       protocol: string
9919              the filename or file descriptor of  the  vmcore.  The  supported
9920              protocols are:
9921
9922              1. file:  the  protocol  starts  with "file:", and the following
9923                 string is the file's path.
9924
9925              2. fd: the protocol starts with "fd:", and the following  string
9926                 is the fd's name.
9927
9928       detach: boolean (optional)
9929              if true, QMP will return immediately rather than waiting for the
9930              dump to finish. The user can track progress using  "query-dump".
9931              (since 2.6).
9932
9933       begin: int (optional)
9934              if specified, the starting physical address.
9935
9936       length: int (optional)
9937              if  specified,  the  memory size, in bytes. If you don't want to
9938              dump all guest's memory, please  specify  the  start  begin  and
9939              length
9940
9941       format: DumpGuestMemoryFormat (optional)
9942              if  specified, the format of guest memory dump. But non-elf for‐
9943              mat is conflict with paging and filter, ie.  paging,  begin  and
9944              length is not allowed to be specified with non-elf format at the
9945              same time (since 2.0)
9946
9947   Note
9948       All boolean arguments default to false
9949
9950   Returns
9951       nothing on success
9952
9953   Since
9954       1.2
9955
9956   Example
9957          -> { "execute": "dump-guest-memory",
9958               "arguments": { "protocol": "fd:dump" } }
9959          <- { "return": {} }
9960
9961   DumpStatus (Enum)
9962       Describe the status of a long-running background guest memory dump.
9963
9964   Values
9965       none   no dump-guest-memory has started yet.
9966
9967       active there is one dump running in background.
9968
9969       completed
9970              the last dump has finished successfully.
9971
9972       failed the last dump has failed.
9973
9974   Since
9975       2.6
9976
9977   DumpQueryResult (Object)
9978       The result format for 'query-dump'.
9979
9980   Members
9981       status: DumpStatus
9982              enum of DumpStatus, which shows current dump status
9983
9984       completed: int
9985              bytes written in latest dump (uncompressed)
9986
9987       total: int
9988              total bytes to be written in latest dump (uncompressed)
9989
9990   Since
9991       2.6
9992
9993   query-dump (Command)
9994       Query latest dump status.
9995
9996   Returns
9997       A DumpStatus object showing the dump status.
9998
9999   Since
10000       2.6
10001
10002   Example
10003          -> { "execute": "query-dump" }
10004          <- { "return": { "status": "active", "completed": 1024000,
10005                           "total": 2048000 } }
10006
10007   DUMP_COMPLETED (Event)
10008       Emitted when background dump has completed
10009
10010   Arguments
10011       result: DumpQueryResult
10012              final dump status
10013
10014       error: string (optional)
10015              human-readable error string  that  provides  hint  on  why  dump
10016              failed. Only presents on failure. The user should not try to in‐
10017              terpret the error string.
10018
10019   Since
10020       2.6
10021
10022   Example
10023          { "event": "DUMP_COMPLETED",
10024            "data": {"result": {"total": 1090650112, "status": "completed",
10025                                "completed": 1090650112} } }
10026
10027   DumpGuestMemoryCapability (Object)
10028       A list of the available formats for dump-guest-memory
10029
10030   Members
10031       formats: array of DumpGuestMemoryFormat
10032              Not documented
10033
10034   Since
10035       2.0
10036
10037   query-dump-guest-memory-capability (Command)
10038       Returns the available formats for dump-guest-memory
10039
10040   Returns
10041       A  DumpGuestMemoryCapability  object  listing  available  formats   for
10042       dump-guest-memory
10043
10044   Since
10045       2.0
10046
10047   Example
10048          -> { "execute": "query-dump-guest-memory-capability" }
10049          <- { "return": { "formats":
10050                           ["elf", "kdump-zlib", "kdump-lzo", "kdump-snappy"] }
10051

NET DEVICES

10053   set_link (Command)
10054       Sets the link status of a virtual network adapter.
10055
10056   Arguments
10057       name: string
10058              the device name of the virtual network adapter
10059
10060       up: boolean
10061              true to set the link status to be up
10062
10063   Returns
10064       Nothing  on  success  If name is not a valid network device, DeviceNot‐
10065       Found
10066
10067   Since
10068       0.14
10069
10070   Notes
10071       Not all network adapters support setting  link  status.   This  command
10072       will  succeed  even if the network adapter does not support link status
10073       notification.
10074
10075   Example
10076          -> { "execute": "set_link",
10077               "arguments": { "name": "e1000.0", "up": false } }
10078          <- { "return": {} }
10079
10080   netdev_add (Command)
10081       Add a network backend.
10082
10083       Additional arguments depend on the type.
10084
10085   Arguments
10086       The members of Netdev
10087
10088   Since
10089       0.14
10090
10091   Returns
10092       Nothing on success If type is not a valid network  backend,  DeviceNot‐
10093       Found
10094
10095   Example
10096          -> { "execute": "netdev_add",
10097               "arguments": { "type": "user", "id": "netdev1",
10098                              "dnssearch": "example.org" } }
10099          <- { "return": {} }
10100
10101   netdev_del (Command)
10102       Remove a network backend.
10103
10104   Arguments
10105       id: string
10106              the name of the network backend to remove
10107
10108   Returns
10109       Nothing on success If id is not a valid network backend, DeviceNotFound
10110
10111   Since
10112       0.14
10113
10114   Example
10115          -> { "execute": "netdev_del", "arguments": { "id": "netdev1" } }
10116          <- { "return": {} }
10117
10118   NetLegacyNicOptions (Object)
10119       Create a new Network Interface Card.
10120
10121   Members
10122       netdev: string (optional)
10123              id of -netdev to connect to
10124
10125       macaddr: string (optional)
10126              MAC address
10127
10128       model: string (optional)
10129              device model (e1000, rtl8139, virtio etc.)
10130
10131       addr: string (optional)
10132              PCI device address
10133
10134       vectors: int (optional)
10135              number of MSI-x vectors, 0 to disable MSI-X
10136
10137   Since
10138       1.2
10139
10140   NetdevUserOptions (Object)
10141       Use  the user mode network stack which requires no administrator privi‐
10142       lege to run.
10143
10144   Members
10145       hostname: string (optional)
10146              client hostname reported by the builtin DHCP server
10147
10148       restrict: boolean (optional)
10149              isolate the guest from the host
10150
10151       ipv4: boolean (optional)
10152              whether to support IPv4, default true for enabled (since 2.6)
10153
10154       ipv6: boolean (optional)
10155              whether to support IPv6, default true for enabled (since 2.6)
10156
10157       ip: string (optional)
10158              legacy parameter, use net= instead
10159
10160       net: string (optional)
10161              IP network  address  that  the  guest  will  see,  in  the  form
10162              addr[/netmask] The netmask is optional, and can be either in the
10163              form a.b.c.d or as a number of valid top-most bits.  Default  is
10164              10.0.2.0/24.
10165
10166       host: string (optional)
10167              guest-visible address of the host
10168
10169       tftp: string (optional)
10170              root directory of the built-in TFTP server
10171
10172       bootfile: string (optional)
10173              BOOTP filename, for use with tftp=
10174
10175       dhcpstart: string (optional)
10176              the first of the 16 IPs the built-in DHCP server can assign
10177
10178       dns: string (optional)
10179              guest-visible address of the virtual nameserver
10180
10181       dnssearch: array of String (optional)
10182              list  of  DNS  suffixes  to search, passed as DHCP option to the
10183              guest
10184
10185       domainname: string (optional)
10186              guest-visible domain name of the virtual nameserver (since 3.0)
10187
10188       ipv6-prefix: string (optional)
10189              IPv6 network prefix (default is fec0::) (since 2.6). The network
10190              prefix is given in the usual hexadecimal IPv6 address notation.
10191
10192       ipv6-prefixlen: int (optional)
10193              IPv6 network prefix length (default is 64) (since 2.6)
10194
10195       ipv6-host: string (optional)
10196              guest-visible IPv6 address of the host (since 2.6)
10197
10198       ipv6-dns: string (optional)
10199              guest-visible IPv6 address of the virtual nameserver (since 2.6)
10200
10201       smb: string (optional)
10202              root directory of the built-in SMB server
10203
10204       smbserver: string (optional)
10205              IP address of the built-in SMB server
10206
10207       hostfwd: array of String (optional)
10208              redirect incoming TCP or UDP host connections to guest endpoints
10209
10210       guestfwd: array of String (optional)
10211              forward guest TCP connections
10212
10213       tftp-server-name: string (optional)
10214              RFC2132 "TFTP server name" string (Since 3.1)
10215
10216   Since
10217       1.2
10218
10219   NetdevTapOptions (Object)
10220       Used to configure a host TAP network interface backend.
10221
10222   Members
10223       ifname: string (optional)
10224              interface name
10225
10226       fd: string (optional)
10227              file descriptor of an already opened tap
10228
10229       fds: string (optional)
10230              multiple  file  descriptors of already opened multiqueue capable
10231              tap
10232
10233       script: string (optional)
10234              script to initialize the interface
10235
10236       downscript: string (optional)
10237              script to shut down the interface
10238
10239       br: string (optional)
10240              bridge name (since 2.8)
10241
10242       helper: string (optional)
10243              command to execute to configure bridge
10244
10245       sndbuf: int (optional)
10246              send buffer limit. Understands [TGMKkb] suffixes.
10247
10248       vnet_hdr: boolean (optional)
10249              enable the IFF_VNET_HDR flag on the tap interface
10250
10251       vhost: boolean (optional)
10252              enable vhost-net network accelerator
10253
10254       vhostfd: string (optional)
10255              file descriptor of an already opened vhost net device
10256
10257       vhostfds: string (optional)
10258              file descriptors of multiple already opened vhost net devices
10259
10260       vhostforce: boolean (optional)
10261              vhost on for non-MSIX virtio guests
10262
10263       queues: int (optional)
10264              number of queues to be created for multiqueue capable tap
10265
10266       poll-us: int (optional)
10267              maximum number of microseconds  that  could  be  spent  on  busy
10268              polling for tap (since 2.7)
10269
10270   Since
10271       1.2
10272
10273   NetdevSocketOptions (Object)
10274       Socket  netdevs  are  used to establish a network connection to another
10275       QEMU virtual machine via a TCP socket.
10276
10277   Members
10278       fd: string (optional)
10279              file descriptor of an already opened socket
10280
10281       listen: string (optional)
10282              port number, and optional hostname, to listen on
10283
10284       connect: string (optional)
10285              port number, and optional hostname, to connect to
10286
10287       mcast: string (optional)
10288              UDP multicast address and port number
10289
10290       localaddr: string (optional)
10291              source address and port for multicast and udp packets
10292
10293       udp: string (optional)
10294              UDP unicast address and port number
10295
10296   Since
10297       1.2
10298
10299   NetdevL2TPv3Options (Object)
10300       Configure an Ethernet over L2TPv3 tunnel.
10301
10302   Members
10303       src: string
10304              source address
10305
10306       dst: string
10307              destination address
10308
10309       srcport: string (optional)
10310              source port - mandatory for udp, optional for ip
10311
10312       dstport: string (optional)
10313              destination port - mandatory for udp, optional for ip
10314
10315       ipv6: boolean (optional)
10316              force the use of ipv6
10317
10318       udp: boolean (optional)
10319              use the udp version of l2tpv3 encapsulation
10320
10321       cookie64: boolean (optional)
10322              use 64 bit coookies
10323
10324       counter: boolean (optional)
10325              have sequence counter
10326
10327       pincounter: boolean (optional)
10328              pin sequence counter to zero - workaround for buggy  implementa‐
10329              tions or networks with packet reorder
10330
10331       txcookie: int (optional)
10332              32 or 64 bit transmit cookie
10333
10334       rxcookie: int (optional)
10335              32 or 64 bit receive cookie
10336
10337       txsession: int
10338              32 bit transmit session
10339
10340       rxsession: int (optional)
10341              32  bit receive session - if not specified set to the same value
10342              as transmit
10343
10344       offset: int (optional)
10345              additional offset - allows the insertion of additional  applica‐
10346              tion-specific data before the packet payload
10347
10348   Since
10349       2.1
10350
10351   NetdevVdeOptions (Object)
10352       Connect to a vde switch running on the host.
10353
10354   Members
10355       sock: string (optional)
10356              socket path
10357
10358       port: int (optional)
10359              port number
10360
10361       group: string (optional)
10362              group owner of socket
10363
10364       mode: int (optional)
10365              permissions for socket
10366
10367   Since
10368       1.2
10369
10370   NetdevBridgeOptions (Object)
10371       Connect a host TAP network interface to a host bridge device.
10372
10373   Members
10374       br: string (optional)
10375              bridge name
10376
10377       helper: string (optional)
10378              command to execute to configure bridge
10379
10380   Since
10381       1.2
10382
10383   NetdevHubPortOptions (Object)
10384       Connect two or more net clients through a software hub.
10385
10386   Members
10387       hubid: int
10388              hub identifier number
10389
10390       netdev: string (optional)
10391              used to connect hub to a netdev instead of a device (since 2.12)
10392
10393   Since
10394       1.2
10395
10396   NetdevNetmapOptions (Object)
10397       Connect a client to a netmap-enabled NIC or to a VALE switch port
10398
10399   Members
10400       ifname: string
10401              Either  the  name  of an existing network interface supported by
10402              netmap, or the name of a VALE port (created on the fly).  A VALE
10403              port  name  is  in the form 'valeXXX:YYY', where XXX and YYY are
10404              non-negative integers. XXX identifies a switch and  YYY  identi‐
10405              fies  a  port  of the switch. VALE ports having the same XXX are
10406              therefore connected to the same switch.
10407
10408       devname: string (optional)
10409              path of the netmap device (default: '/dev/netmap').
10410
10411   Since
10412       2.0
10413
10414   NetdevVhostUserOptions (Object)
10415       Vhost-user network backend
10416
10417   Members
10418       chardev: string
10419              name of a unix socket chardev
10420
10421       vhostforce: boolean (optional)
10422              vhost on for non-MSIX virtio guests (default: false).
10423
10424       queues: int (optional)
10425              number of queues to be created for  multiqueue  vhost-user  (de‐
10426              fault: 1) (Since 2.5)
10427
10428   Since
10429       2.1
10430
10431   NetdevVhostVDPAOptions (Object)
10432       Vhost-vdpa network backend
10433
10434       vDPA  device  is  a device that uses a datapath which complies with the
10435       virtio specifications with a vendor specific control path.
10436
10437   Members
10438       vhostdev: string (optional)
10439              path of vhost-vdpa device (default:'/dev/vhost-vdpa-0')
10440
10441       queues: int (optional)
10442              number of queues to be created for  multiqueue  vhost-vdpa  (de‐
10443              fault: 1)
10444
10445   Since
10446       5.1
10447
10448   NetClientDriver (Enum)
10449       Available netdev drivers.
10450
10451   Values
10452       none   Not documented
10453
10454       nic    Not documented
10455
10456       user   Not documented
10457
10458       tap    Not documented
10459
10460       l2tpv3 Not documented
10461
10462       socket Not documented
10463
10464       vde    Not documented
10465
10466       bridge Not documented
10467
10468       hubport
10469              Not documented
10470
10471       netmap Not documented
10472
10473       vhost-user
10474              Not documented
10475
10476       vhost-vdpa
10477              Not documented
10478
10479   Since
10480       2.7
10481
10482       vhost-vdpa since 5.1
10483
10484   Netdev (Object)
10485       Captures the configuration of a network device.
10486
10487   Members
10488       id: string
10489              identifier for monitor commands.
10490
10491       type: NetClientDriver
10492              Specify the driver used for interpreting remaining arguments.
10493
10494       The members of NetLegacyNicOptions when type is "nic"
10495
10496       The members of NetdevUserOptions when type is "user"
10497
10498       The members of NetdevTapOptions when type is "tap"
10499
10500       The members of NetdevL2TPv3Options when type is "l2tpv3"
10501
10502       The members of NetdevSocketOptions when type is "socket"
10503
10504       The members of NetdevVdeOptions when type is "vde"
10505
10506       The members of NetdevBridgeOptions when type is "bridge"
10507
10508       The members of NetdevHubPortOptions when type is "hubport"
10509
10510       The members of NetdevNetmapOptions when type is "netmap"
10511
10512       The members of NetdevVhostUserOptions when type is "vhost-user"
10513
10514       The members of NetdevVhostVDPAOptions when type is "vhost-vdpa"
10515
10516   Since
10517       1.2
10518
10519       'l2tpv3' - since 2.1
10520
10521   RxState (Enum)
10522       Packets receiving state
10523
10524   Values
10525       normal filter assigned packets according to the mac-table
10526
10527       none   don't receive any assigned packet
10528
10529       all    receive all assigned packets
10530
10531   Since
10532       1.6
10533
10534   RxFilterInfo (Object)
10535       Rx-filter information for a NIC.
10536
10537   Members
10538       name: string
10539              net client name
10540
10541       promiscuous: boolean
10542              whether promiscuous mode is enabled
10543
10544       multicast: RxState
10545              multicast receive state
10546
10547       unicast: RxState
10548              unicast receive state
10549
10550       vlan: RxState
10551              vlan receive state (Since 2.0)
10552
10553       broadcast-allowed: boolean
10554              whether to receive broadcast
10555
10556       multicast-overflow: boolean
10557              multicast table is overflowed or not
10558
10559       unicast-overflow: boolean
10560              unicast table is overflowed or not
10561
10562       main-mac: string
10563              the main macaddr string
10564
10565       vlan-table: array of int
10566              a list of active vlan id
10567
10568       unicast-table: array of string
10569              a list of unicast macaddr string
10570
10571       multicast-table: array of string
10572              a list of multicast macaddr string
10573
10574   Since
10575       1.6
10576
10577   query-rx-filter (Command)
10578       Return rx-filter information for all NICs (or for the given NIC).
10579
10580   Arguments
10581       name: string (optional)
10582              net client name
10583
10584   Returns
10585       list  of  RxFilterInfo for all NICs (or for the given NIC).  Returns an
10586       error if the given name doesn't exist, or  given  NIC  doesn't  support
10587       rx-filter querying, or given net client isn't a NIC.
10588
10589   Since
10590       1.6
10591
10592   Example
10593          -> { "execute": "query-rx-filter", "arguments": { "name": "vnet0" } }
10594          <- { "return": [
10595                  {
10596                      "promiscuous": true,
10597                      "name": "vnet0",
10598                      "main-mac": "52:54:00:12:34:56",
10599                      "unicast": "normal",
10600                      "vlan": "normal",
10601                      "vlan-table": [
10602                          4,
10603                          0
10604                      ],
10605                      "unicast-table": [
10606                      ],
10607                      "multicast": "normal",
10608                      "multicast-overflow": false,
10609                      "unicast-overflow": false,
10610                      "multicast-table": [
10611                          "01:00:5e:00:00:01",
10612                          "33:33:00:00:00:01",
10613                          "33:33:ff:12:34:56"
10614                      ],
10615                      "broadcast-allowed": false
10616                  }
10617                ]
10618             }
10619
10620   NIC_RX_FILTER_CHANGED (Event)
10621       Emitted once until the 'query-rx-filter' command is executed, the first
10622       event will always be emitted
10623
10624   Arguments
10625       name: string (optional)
10626              net client name
10627
10628       path: string
10629              device path
10630
10631   Since
10632       1.6
10633
10634   Example
10635          <- { "event": "NIC_RX_FILTER_CHANGED",
10636               "data": { "name": "vnet0",
10637                         "path": "/machine/peripheral/vnet0/virtio-backend" },
10638               "timestamp": { "seconds": 1368697518, "microseconds": 326866 } }
10639             }
10640
10641   AnnounceParameters (Object)
10642       Parameters for self-announce timers
10643
10644   Members
10645       initial: int
10646              Initial delay (in ms) before sending  the  first  GARP/RARP  an‐
10647              nouncement
10648
10649       max: int
10650              Maximum delay (in ms) between GARP/RARP announcement packets
10651
10652       rounds: int
10653              Number of self-announcement attempts
10654
10655       step: int
10656              Delay increase (in ms) after each self-announcement attempt
10657
10658       interfaces: array of string (optional)
10659              An  optional  list  of  interface names, which restricts the an‐
10660              nouncement to the listed interfaces. (Since 4.1)
10661
10662       id: string (optional)
10663              A name to be used to identify an instance of announce-timers and
10664              to  allow  it to modified later.  Not for use as part of the mi‐
10665              gration parameters. (Since 4.1)
10666
10667   Since
10668       4.0
10669
10670   announce-self (Command)
10671       Trigger generation of broadcast RARP frames to update network switches.
10672       This can be useful when network bonds fail-over the active slave.
10673
10674   Arguments
10675       The members of AnnounceParameters
10676
10677   Example
10678          -> { "execute": "announce-self",
10679               "arguments": {
10680                   "initial": 50, "max": 550, "rounds": 10, "step": 50,
10681                   "interfaces": ["vn2", "vn3"], "id": "bob" } }
10682          <- { "return": {} }
10683
10684   Since
10685       4.0
10686
10687   FAILOVER_NEGOTIATED (Event)
10688       Emitted  when  VIRTIO_NET_F_STANDBY was enabled during feature negotia‐
10689       tion.  Failover primary devices which were hidden (not hotplugged  when
10690       requested)  before will now be hotplugged by the virtio-net standby de‐
10691       vice.
10692
10693       device-id: QEMU device id of the unplugged device
10694
10695   Arguments
10696       device-id: string
10697              Not documented
10698
10699   Since
10700       4.2
10701
10702   Example
10703          <- { "event": "FAILOVER_NEGOTIATED",
10704               "data": "net1" }
10705

RDMA DEVICE

10707   RDMA_GID_STATUS_CHANGED (Event)
10708       Emitted when guest driver adds/deletes GID to/from device
10709
10710   Arguments
10711       netdev: string
10712              RoCE Network Device name
10713
10714       gid-status: boolean
10715              Add or delete indication
10716
10717       subnet-prefix: int
10718              Subnet Prefix
10719
10720       interface-id: int
10721              Not documented
10722       interface-id : Interface ID
10723
10724   Since
10725       4.0
10726
10727   Example
10728          <- {"timestamp": {"seconds": 1541579657, "microseconds": 986760},
10729              "event": "RDMA_GID_STATUS_CHANGED",
10730              "data":
10731                  {"netdev": "bridge0",
10732                  "interface-id": 15880512517475447892,
10733                  "gid-status": true,
10734                  "subnet-prefix": 33022}}
10735

ROCKER SWITCH DEVICE

10737   RockerSwitch (Object)
10738       Rocker switch information.
10739
10740   Members
10741       name: string
10742              switch name
10743
10744       id: int
10745              switch ID
10746
10747       ports: int
10748              number of front-panel ports
10749
10750   Since
10751       2.4
10752
10753   query-rocker (Command)
10754       Return rocker switch information.
10755
10756   Arguments
10757       name: string
10758              Not documented
10759
10760   Returns
10761       Rocker information
10762
10763   Since
10764       2.4
10765
10766   Example
10767          -> { "execute": "query-rocker", "arguments": { "name": "sw1" } }
10768          <- { "return": {"name": "sw1", "ports": 2, "id": 1327446905938}}
10769
10770   RockerPortDuplex (Enum)
10771       An eumeration of port duplex states.
10772
10773   Values
10774       half   half duplex
10775
10776       full   full duplex
10777
10778   Since
10779       2.4
10780
10781   RockerPortAutoneg (Enum)
10782       An eumeration of port autoneg states.
10783
10784   Values
10785       off    autoneg is off
10786
10787       on     autoneg is on
10788
10789   Since
10790       2.4
10791
10792   RockerPort (Object)
10793       Rocker switch port information.
10794
10795   Members
10796       name: string
10797              port name
10798
10799       enabled: boolean
10800              port is enabled for I/O
10801
10802       link-up: boolean
10803              physical link is UP on port
10804
10805       speed: int
10806              port link speed in Mbps
10807
10808       duplex: RockerPortDuplex
10809              port link duplex
10810
10811       autoneg: RockerPortAutoneg
10812              port link autoneg
10813
10814   Since
10815       2.4
10816
10817   query-rocker-ports (Command)
10818       Return rocker switch port information.
10819
10820   Arguments
10821       name: string
10822              Not documented
10823
10824   Returns
10825       a list of RockerPort information
10826
10827   Since
10828       2.4
10829
10830   Example
10831          -> { "execute": "query-rocker-ports", "arguments": { "name": "sw1" } }
10832          <- { "return": [ {"duplex": "full", "enabled": true, "name": "sw1.1",
10833                            "autoneg": "off", "link-up": true, "speed": 10000},
10834                           {"duplex": "full", "enabled": true, "name": "sw1.2",
10835                            "autoneg": "off", "link-up": true, "speed": 10000}
10836             ]}
10837
10838   RockerOfDpaFlowKey (Object)
10839       Rocker switch OF-DPA flow key
10840
10841   Members
10842       priority: int
10843              key priority, 0 being lowest priority
10844
10845       tbl-id: int
10846              flow table ID
10847
10848       in-pport: int (optional)
10849              physical input port
10850
10851       tunnel-id: int (optional)
10852              tunnel ID
10853
10854       vlan-id: int (optional)
10855              VLAN ID
10856
10857       eth-type: int (optional)
10858              Ethernet header type
10859
10860       eth-src: string (optional)
10861              Ethernet header source MAC address
10862
10863       eth-dst: string (optional)
10864              Ethernet header destination MAC address
10865
10866       ip-proto: int (optional)
10867              IP Header protocol field
10868
10869       ip-tos: int (optional)
10870              IP header TOS field
10871
10872       ip-dst: string (optional)
10873              IP header destination address
10874
10875   Note
10876       optional members may or may not appear in the  flow  key  depending  if
10877       they're relevant to the flow key.
10878
10879   Since
10880       2.4
10881
10882   RockerOfDpaFlowMask (Object)
10883       Rocker switch OF-DPA flow mask
10884
10885   Members
10886       in-pport: int (optional)
10887              physical input port
10888
10889       tunnel-id: int (optional)
10890              tunnel ID
10891
10892       vlan-id: int (optional)
10893              VLAN ID
10894
10895       eth-src: string (optional)
10896              Ethernet header source MAC address
10897
10898       eth-dst: string (optional)
10899              Ethernet header destination MAC address
10900
10901       ip-proto: int (optional)
10902              IP Header protocol field
10903
10904       ip-tos: int (optional)
10905              IP header TOS field
10906
10907   Note
10908       optional  members  may  or may not appear in the flow mask depending if
10909       they're relevant to the flow mask.
10910
10911   Since
10912       2.4
10913
10914   RockerOfDpaFlowAction (Object)
10915       Rocker switch OF-DPA flow action
10916
10917   Members
10918       goto-tbl: int (optional)
10919              next table ID
10920
10921       group-id: int (optional)
10922              group ID
10923
10924       tunnel-lport: int (optional)
10925              tunnel logical port ID
10926
10927       vlan-id: int (optional)
10928              VLAN ID
10929
10930       new-vlan-id: int (optional)
10931              new VLAN ID
10932
10933       out-pport: int (optional)
10934              physical output port
10935
10936   Note
10937       optional members may or may not appear in the flow action depending  if
10938       they're relevant to the flow action.
10939
10940   Since
10941       2.4
10942
10943   RockerOfDpaFlow (Object)
10944       Rocker switch OF-DPA flow
10945
10946   Members
10947       cookie: int
10948              flow unique cookie ID
10949
10950       hits: int
10951              count of matches (hits) on flow
10952
10953       key: RockerOfDpaFlowKey
10954              flow key
10955
10956       mask: RockerOfDpaFlowMask
10957              flow mask
10958
10959       action: RockerOfDpaFlowAction
10960              flow action
10961
10962   Since
10963       2.4
10964
10965   query-rocker-of-dpa-flows (Command)
10966       Return rocker OF-DPA flow information.
10967
10968   Arguments
10969       name: string
10970              switch name
10971
10972       tbl-id: int (optional)
10973              flow  table ID.  If tbl-id is not specified, returns flow infor‐
10974              mation for all tables.
10975
10976   Returns
10977       rocker OF-DPA flow information
10978
10979   Since
10980       2.4
10981
10982   Example
10983          -> { "execute": "query-rocker-of-dpa-flows",
10984               "arguments": { "name": "sw1" } }
10985          <- { "return": [ {"key": {"in-pport": 0, "priority": 1, "tbl-id": 0},
10986                            "hits": 138,
10987                            "cookie": 0,
10988                            "action": {"goto-tbl": 10},
10989                            "mask": {"in-pport": 4294901760}
10990                           },
10991                           {...more...},
10992             ]}
10993
10994   RockerOfDpaGroup (Object)
10995       Rocker switch OF-DPA group
10996
10997   Members
10998       id: int
10999              group unique ID
11000
11001       type: int
11002              group type
11003
11004       vlan-id: int (optional)
11005              VLAN ID
11006
11007       pport: int (optional)
11008              physical port number
11009
11010       index: int (optional)
11011              group index, unique with group type
11012
11013       out-pport: int (optional)
11014              output physical port number
11015
11016       group-id: int (optional)
11017              next group ID
11018
11019       set-vlan-id: int (optional)
11020              VLAN ID to set
11021
11022       pop-vlan: int (optional)
11023              pop VLAN headr from packet
11024
11025       group-ids: array of int (optional)
11026              list of next group IDs
11027
11028       set-eth-src: string (optional)
11029              set source MAC address in Ethernet header
11030
11031       set-eth-dst: string (optional)
11032              set destination MAC address in Ethernet header
11033
11034       ttl-check: int (optional)
11035              perform TTL check
11036
11037   Note
11038       optional members may or may  not  appear  in  the  group  depending  if
11039       they're relevant to the group type.
11040
11041   Since
11042       2.4
11043
11044   query-rocker-of-dpa-groups (Command)
11045       Return rocker OF-DPA group information.
11046
11047   Arguments
11048       name: string
11049              switch name
11050
11051       type: int (optional)
11052              group type.  If type is not specified, returns group information
11053              for all group types.
11054
11055   Returns
11056       rocker OF-DPA group information
11057
11058   Since
11059       2.4
11060
11061   Example
11062          -> { "execute": "query-rocker-of-dpa-groups",
11063               "arguments": { "name": "sw1" } }
11064          <- { "return": [ {"type": 0, "out-pport": 2,
11065                            "pport": 2, "vlan-id": 3841,
11066                            "pop-vlan": 1, "id": 251723778},
11067                           {"type": 0, "out-pport": 0,
11068                            "pport": 0, "vlan-id": 3841,
11069                            "pop-vlan": 1, "id": 251723776},
11070                           {"type": 0, "out-pport": 1,
11071                            "pport": 1, "vlan-id": 3840,
11072                            "pop-vlan": 1, "id": 251658241},
11073                           {"type": 0, "out-pport": 0,
11074                            "pport": 0, "vlan-id": 3840,
11075                            "pop-vlan": 1, "id": 251658240}
11076             ]}
11077

TPM (TRUSTED PLATFORM MODULE) DEVICES

11079   TpmModel (Enum)
11080       An enumeration of TPM models
11081
11082   Values
11083       tpm-tis
11084              TPM TIS model
11085
11086       tpm-crb
11087              TPM CRB model (since 2.12)
11088
11089       tpm-spapr
11090              TPM SPAPR model (since 5.0)
11091
11092   Since
11093       1.5
11094
11095   If
11096       defined(CONFIG_TPM)
11097
11098   query-tpm-models (Command)
11099       Return a list of supported TPM models
11100
11101   Returns
11102       a list of TpmModel
11103
11104   Since
11105       1.5
11106
11107   Example
11108          -> { "execute": "query-tpm-models" }
11109          <- { "return": [ "tpm-tis", "tpm-crb", "tpm-spapr" ] }
11110
11111   If
11112       defined(CONFIG_TPM)
11113
11114   TpmType (Enum)
11115       An enumeration of TPM types
11116
11117   Values
11118       passthrough
11119              TPM passthrough type
11120
11121       emulator
11122              Software Emulator TPM type Since: 2.11
11123
11124   Since
11125       1.5
11126
11127   If
11128       defined(CONFIG_TPM)
11129
11130   query-tpm-types (Command)
11131       Return a list of supported TPM types
11132
11133   Returns
11134       a list of TpmType
11135
11136   Since
11137       1.5
11138
11139   Example
11140          -> { "execute": "query-tpm-types" }
11141          <- { "return": [ "passthrough", "emulator" ] }
11142
11143   If
11144       defined(CONFIG_TPM)
11145
11146   TPMPassthroughOptions (Object)
11147       Information about the TPM passthrough type
11148
11149   Members
11150       path: string (optional)
11151              string describing the path used for accessing the TPM device
11152
11153       cancel-path: string (optional)
11154              string showing the TPM's sysfs cancel file for  cancellation  of
11155              TPM commands while they are executing
11156
11157   Since
11158       1.5
11159
11160   If
11161       defined(CONFIG_TPM)
11162
11163   TPMEmulatorOptions (Object)
11164       Information about the TPM emulator type
11165
11166   Members
11167       chardev: string
11168              Name of a unix socket chardev
11169
11170   Since
11171       2.11
11172
11173   If
11174       defined(CONFIG_TPM)
11175
11176   TpmTypeOptions (Object)
11177       A union referencing different TPM backend types' configuration options
11178
11179   Members
11180       type
11181
11182              • 'passthrough'   The   configuration   options   for   the  TPM
11183                passthrough type
11184
11185              • 'emulator' The configuration options for TPM emulator  backend
11186                type
11187
11188       data: TPMPassthroughOptions when type is "passthrough"
11189
11190       data: TPMEmulatorOptions when type is "emulator"
11191
11192   Since
11193       1.5
11194
11195   If
11196       defined(CONFIG_TPM)
11197
11198   TPMInfo (Object)
11199       Information about the TPM
11200
11201   Members
11202       id: string
11203              The Id of the TPM
11204
11205       model: TpmModel
11206              The TPM frontend model
11207
11208       options: TpmTypeOptions
11209              The TPM (backend) type configuration options
11210
11211   Since
11212       1.5
11213
11214   If
11215       defined(CONFIG_TPM)
11216
11217   query-tpm (Command)
11218       Return information about the TPM device
11219
11220   Returns
11221       TPMInfo on success
11222
11223   Since
11224       1.5
11225
11226   Example
11227          -> { "execute": "query-tpm" }
11228          <- { "return":
11229               [
11230                 { "model": "tpm-tis",
11231                   "options":
11232                     { "type": "passthrough",
11233                       "data":
11234                         { "cancel-path": "/sys/class/misc/tpm0/device/cancel",
11235                           "path": "/dev/tpm0"
11236                         }
11237                     },
11238                   "id": "tpm0"
11239                 }
11240               ]
11241             }
11242
11243   If
11244       defined(CONFIG_TPM)
11245

REMOTE DESKTOP

11247   set_password (Command)
11248       Sets the password of a remote display session.
11249
11250   Arguments
11251       protocol: string
11252
11253              • 'vnc' to modify the VNC server password
11254
11255              • 'spice' to modify the Spice server password
11256
11257       password: string
11258              the new password
11259
11260       connected: string (optional)
11261              how  to  handle existing clients when changing the password.  If
11262              nothing is specified, defaults to 'keep' 'fail' to fail the com‐
11263              mand  if clients are connected 'disconnect' to disconnect exist‐
11264              ing clients 'keep' to maintain existing clients
11265
11266   Returns
11267       • Nothing on success
11268
11269       • If Spice is not enabled, DeviceNotFound
11270
11271   Since
11272       0.14
11273
11274   Example
11275          -> { "execute": "set_password", "arguments": { "protocol": "vnc",
11276                                                         "password": "secret" } }
11277          <- { "return": {} }
11278
11279   expire_password (Command)
11280       Expire the password of a remote display server.
11281
11282   Arguments
11283       protocol: string
11284              the name of the remote display protocol 'vnc' or 'spice'
11285
11286       time: string
11287              when to expire the password.
11288
11289              • 'now' to expire the password immediately
11290
11291              • 'never' to cancel password expiration
11292
11293              • '+INT' where INT is the number of seconds from now (integer)
11294
11295              • 'INT' where INT is the absolute time in seconds
11296
11297   Returns
11298       • Nothing on success
11299
11300       • If protocol is 'spice' and Spice is not active, DeviceNotFound
11301
11302   Since
11303       0.14
11304
11305   Notes
11306       Time is relative to the server and currently there is no way to coordi‐
11307       nate  server  time  with client time.  It is not recommended to use the
11308       absolute time version of the time parameter unless you're sure you  are
11309       on the same machine as the QEMU instance.
11310
11311   Example
11312          -> { "execute": "expire_password", "arguments": { "protocol": "vnc",
11313                                                            "time": "+60" } }
11314          <- { "return": {} }
11315
11316   screendump (Command)
11317       Write a PPM of the VGA screen to a file.
11318
11319   Arguments
11320       filename: string
11321              the path of a new PPM file to store the image
11322
11323       device: string (optional)
11324              ID  of the display device that should be dumped. If this parame‐
11325              ter is missing, the primary display will be used. (Since 2.12)
11326
11327       head: int (optional)
11328              head to use in case the device supports multiple heads. If  this
11329              parameter  is  missing, head #0 will be used. Also note that the
11330              head can only be specified in conjunction with  the  device  ID.
11331              (Since 2.12)
11332
11333   Returns
11334       Nothing on success
11335
11336   Since
11337       0.14
11338
11339   Example
11340          -> { "execute": "screendump",
11341               "arguments": { "filename": "/tmp/image" } }
11342          <- { "return": {} }
11343
11344   Spice
11345   SpiceBasicInfo (Object)
11346       The basic information for SPICE network connection
11347
11348   Members
11349       host: string
11350              IP address
11351
11352       port: string
11353              port number
11354
11355       family: NetworkAddressFamily
11356              address family
11357
11358   Since
11359       2.1
11360
11361   If
11362       defined(CONFIG_SPICE)
11363
11364   SpiceServerInfo (Object)
11365       Information about a SPICE server
11366
11367   Members
11368       auth: string (optional)
11369              authentication method
11370
11371       The members of SpiceBasicInfo
11372
11373   Since
11374       2.1
11375
11376   If
11377       defined(CONFIG_SPICE)
11378
11379   SpiceChannel (Object)
11380       Information about a SPICE client channel.
11381
11382   Members
11383       connection-id: int
11384              SPICE  connection  id number.  All channels with the same id be‐
11385              long to the same SPICE session.
11386
11387       channel-type: int
11388              SPICE channel type number.  "1" is  the  main  control  channel,
11389              filter for this one if you want to track spice sessions only
11390
11391       channel-id: int
11392              SPICE  channel  ID number.  Usually "0", might be different when
11393              multiple channels of the same type exist, such as multiple  dis‐
11394              play channels in a multihead setup
11395
11396       tls: boolean
11397              true if the channel is encrypted, false otherwise.
11398
11399       The members of SpiceBasicInfo
11400
11401   Since
11402       0.14
11403
11404   If
11405       defined(CONFIG_SPICE)
11406
11407   SpiceQueryMouseMode (Enum)
11408       An enumeration of Spice mouse states.
11409
11410   Values
11411       client Mouse cursor position is determined by the client.
11412
11413       server Mouse cursor position is determined by the server.
11414
11415       unknown
11416              No  information  is available about mouse mode used by the spice
11417              server.
11418
11419   Note
11420       spice/enums.h has a SpiceMouseMode already, hence the name.
11421
11422   Since
11423       1.1
11424
11425   If
11426       defined(CONFIG_SPICE)
11427
11428   SpiceInfo (Object)
11429       Information about the SPICE session.
11430
11431   Members
11432       enabled: boolean
11433              true if the SPICE server is enabled, false otherwise
11434
11435       migrated: boolean
11436              true if the last guest migration completed and  spice  migration
11437              had completed as well. false otherwise. (since 1.4)
11438
11439       host: string (optional)
11440              The  hostname the SPICE server is bound to.  This depends on the
11441              name resolution on the host and may be an IP address.
11442
11443       port: int (optional)
11444              The SPICE server's port number.
11445
11446       compiled-version: string (optional)
11447              SPICE server version.
11448
11449       tls-port: int (optional)
11450              The SPICE server's TLS port number.
11451
11452       auth: string (optional)
11453              the current authentication type used by the server
11454
11455              • 'none'  if no authentication is being used
11456
11457              • 'spice' uses SASL or direct TLS authentication,  depending  on
11458                command line options
11459
11460       mouse-mode: SpiceQueryMouseMode
11461              The  mode  in which the mouse cursor is displayed currently. Can
11462              be determined by the client or the server, or unknown  if  spice
11463              server doesn't provide this information. (since: 1.1)
11464
11465       channels: array of SpiceChannel (optional)
11466              a list of SpiceChannel for each active spice channel
11467
11468   Since
11469       0.14
11470
11471   If
11472       defined(CONFIG_SPICE)
11473
11474   query-spice (Command)
11475       Returns information about the current SPICE server
11476
11477   Returns
11478       SpiceInfo
11479
11480   Since
11481       0.14
11482
11483   Example
11484          -> { "execute": "query-spice" }
11485          <- { "return": {
11486                   "enabled": true,
11487                   "auth": "spice",
11488                   "port": 5920,
11489                   "tls-port": 5921,
11490                   "host": "0.0.0.0",
11491                   "channels": [
11492                      {
11493                         "port": "54924",
11494                         "family": "ipv4",
11495                         "channel-type": 1,
11496                         "connection-id": 1804289383,
11497                         "host": "127.0.0.1",
11498                         "channel-id": 0,
11499                         "tls": true
11500                      },
11501                      {
11502                         "port": "36710",
11503                         "family": "ipv4",
11504                         "channel-type": 4,
11505                         "connection-id": 1804289383,
11506                         "host": "127.0.0.1",
11507                         "channel-id": 0,
11508                         "tls": false
11509                      },
11510                      [ ... more channels follow ... ]
11511                   ]
11512                }
11513             }
11514
11515   If
11516       defined(CONFIG_SPICE)
11517
11518   SPICE_CONNECTED (Event)
11519       Emitted when a SPICE client establishes a connection
11520
11521   Arguments
11522       server: SpiceBasicInfo
11523              server information
11524
11525       client: SpiceBasicInfo
11526              client information
11527
11528   Since
11529       0.14
11530
11531   Example
11532          <- { "timestamp": {"seconds": 1290688046, "microseconds": 388707},
11533               "event": "SPICE_CONNECTED",
11534               "data": {
11535                 "server": { "port": "5920", "family": "ipv4", "host": "127.0.0.1"},
11536                 "client": {"port": "52873", "family": "ipv4", "host": "127.0.0.1"}
11537             }}
11538
11539   If
11540       defined(CONFIG_SPICE)
11541
11542   SPICE_INITIALIZED (Event)
11543       Emitted after initial handshake and authentication takes place (if any)
11544       and the SPICE channel is up and running
11545
11546   Arguments
11547       server: SpiceServerInfo
11548              server information
11549
11550       client: SpiceChannel
11551              client information
11552
11553   Since
11554       0.14
11555
11556   Example
11557          <- { "timestamp": {"seconds": 1290688046, "microseconds": 417172},
11558               "event": "SPICE_INITIALIZED",
11559               "data": {"server": {"auth": "spice", "port": "5921",
11560                                   "family": "ipv4", "host": "127.0.0.1"},
11561                        "client": {"port": "49004", "family": "ipv4", "channel-type": 3,
11562                                   "connection-id": 1804289383, "host": "127.0.0.1",
11563                                   "channel-id": 0, "tls": true}
11564             }}
11565
11566   If
11567       defined(CONFIG_SPICE)
11568
11569   SPICE_DISCONNECTED (Event)
11570       Emitted when the SPICE connection is closed
11571
11572   Arguments
11573       server: SpiceBasicInfo
11574              server information
11575
11576       client: SpiceBasicInfo
11577              client information
11578
11579   Since
11580       0.14
11581
11582   Example
11583          <- { "timestamp": {"seconds": 1290688046, "microseconds": 388707},
11584               "event": "SPICE_DISCONNECTED",
11585               "data": {
11586                 "server": { "port": "5920", "family": "ipv4", "host": "127.0.0.1"},
11587                 "client": {"port": "52873", "family": "ipv4", "host": "127.0.0.1"}
11588             }}
11589
11590   If
11591       defined(CONFIG_SPICE)
11592
11593   SPICE_MIGRATE_COMPLETED (Event)
11594       Emitted when SPICE migration has completed
11595
11596   Since
11597       1.3
11598
11599   Example
11600          <- { "timestamp": {"seconds": 1290688046, "microseconds": 417172},
11601               "event": "SPICE_MIGRATE_COMPLETED" }
11602
11603   If
11604       defined(CONFIG_SPICE)
11605
11606   VNC
11607   VncBasicInfo (Object)
11608       The basic information for vnc network connection
11609
11610   Members
11611       host: string
11612              IP address
11613
11614       service: string
11615              The service name of the vnc port. This may depend  on  the  host
11616              system's service database so symbolic names should not be relied
11617              on.
11618
11619       family: NetworkAddressFamily
11620              address family
11621
11622       websocket: boolean
11623              true in case the socket is a websocket (since 2.3).
11624
11625   Since
11626       2.1
11627
11628   If
11629       defined(CONFIG_VNC)
11630
11631   VncServerInfo (Object)
11632       The network connection information for server
11633
11634   Members
11635       auth: string (optional)
11636              authentication method used for  the  plain  (non-websocket)  VNC
11637              server
11638
11639       The members of VncBasicInfo
11640
11641   Since
11642       2.1
11643
11644   If
11645       defined(CONFIG_VNC)
11646
11647   VncClientInfo (Object)
11648       Information about a connected VNC client.
11649
11650   Members
11651       x509_dname: string (optional)
11652              If  x509 authentication is in use, the Distinguished Name of the
11653              client.
11654
11655       sasl_username: string (optional)
11656              If SASL authentication is in use, the SASL username used for au‐
11657              thentication.
11658
11659       The members of VncBasicInfo
11660
11661   Since
11662       0.14
11663
11664   If
11665       defined(CONFIG_VNC)
11666
11667   VncInfo (Object)
11668       Information about the VNC session.
11669
11670   Members
11671       enabled: boolean
11672              true if the VNC server is enabled, false otherwise
11673
11674       host: string (optional)
11675              The  hostname  the  VNC server is bound to.  This depends on the
11676              name resolution on the host and may be an IP address.
11677
11678       family: NetworkAddressFamily (optional)
11679
11680              • 'ipv6' if the host is listening for IPv6 connections
11681
11682              • 'ipv4' if the host is listening for IPv4 connections
11683
11684              • 'unix' if the host is listening on a unix domain socket
11685
11686              • 'unknown' otherwise
11687
11688       service: string (optional)
11689              The service name of the server's port.  This may depends on  the
11690              host  system's  service database so symbolic names should not be
11691              relied on.
11692
11693       auth: string (optional)
11694              the current authentication type used by the server
11695
11696              • 'none' if no authentication is being used
11697
11698              • 'vnc' if VNC authentication is being used
11699
11700              • 'vencrypt+plain' if VEncrypt is used with plain text authenti‐
11701                cation
11702
11703              • 'vencrypt+tls+none'  if  VEncrypt  is used with TLS and no au‐
11704                thentication
11705
11706              • 'vencrypt+tls+vnc' if VEncrypt is used with TLS  and  VNC  au‐
11707                thentication
11708
11709              • 'vencrypt+tls+plain'  if  VEncrypt  is used with TLS and plain
11710                text auth
11711
11712              • 'vencrypt+x509+none' if VEncrypt is used with x509 and no auth
11713
11714              • 'vencrypt+x509+vnc' if VEncrypt is used with x509 and VNC auth
11715
11716              • 'vencrypt+x509+plain' if VEncrypt is used with x509 and  plain
11717                text auth
11718
11719              • 'vencrypt+tls+sasl' if VEncrypt is used with TLS and SASL auth
11720
11721              • 'vencrypt+x509+sasl'  if  VEncrypt  is used with x509 and SASL
11722                auth
11723
11724       clients: array of VncClientInfo (optional)
11725              a list of VncClientInfo of all currently connected clients
11726
11727   Since
11728       0.14
11729
11730   If
11731       defined(CONFIG_VNC)
11732
11733   VncPrimaryAuth (Enum)
11734       vnc primary authentication method.
11735
11736   Values
11737       none   Not documented
11738
11739       vnc    Not documented
11740
11741       ra2    Not documented
11742
11743       ra2ne  Not documented
11744
11745       tight  Not documented
11746
11747       ultra  Not documented
11748
11749       tls    Not documented
11750
11751       vencrypt
11752              Not documented
11753
11754       sasl   Not documented
11755
11756   Since
11757       2.3
11758
11759   If
11760       defined(CONFIG_VNC)
11761
11762   VncVencryptSubAuth (Enum)
11763       vnc sub authentication method with vencrypt.
11764
11765   Values
11766       plain  Not documented
11767
11768       tls-none
11769              Not documented
11770
11771       x509-none
11772              Not documented
11773
11774       tls-vnc
11775              Not documented
11776
11777       x509-vnc
11778              Not documented
11779
11780       tls-plain
11781              Not documented
11782
11783       x509-plain
11784              Not documented
11785
11786       tls-sasl
11787              Not documented
11788
11789       x509-sasl
11790              Not documented
11791
11792   Since
11793       2.3
11794
11795   If
11796       defined(CONFIG_VNC)
11797
11798   VncServerInfo2 (Object)
11799       The network connection information for server
11800
11801   Members
11802       auth: VncPrimaryAuth
11803              The current authentication type used by the servers
11804
11805       vencrypt: VncVencryptSubAuth (optional)
11806              The vencrypt sub authentication type used by the  servers,  only
11807              specified in case auth == vencrypt.
11808
11809       The members of VncBasicInfo
11810
11811   Since
11812       2.9
11813
11814   If
11815       defined(CONFIG_VNC)
11816
11817   VncInfo2 (Object)
11818       Information about a vnc server
11819
11820   Members
11821       id: string
11822              vnc server name.
11823
11824       server: array of VncServerInfo2
11825              A  list  of VncBasincInfo describing all listening sockets.  The
11826              list can be empty (in case the vnc server is disabled).  It also
11827              may  have  multiple  entries:  normal + websocket, possibly also
11828              ipv4 + ipv6 in the future.
11829
11830       clients: array of VncClientInfo
11831              A list of VncClientInfo of all currently connected clients.  The
11832              list can be empty, for obvious reasons.
11833
11834       auth: VncPrimaryAuth
11835              The  current  authentication  type  used  by  the non-websockets
11836              servers
11837
11838       vencrypt: VncVencryptSubAuth (optional)
11839              The vencrypt authentication type used by the servers, only spec‐
11840              ified in case auth == vencrypt.
11841
11842       display: string (optional)
11843              The display device the vnc server is linked to.
11844
11845   Since
11846       2.3
11847
11848   If
11849       defined(CONFIG_VNC)
11850
11851   query-vnc (Command)
11852       Returns information about the current VNC server
11853
11854   Returns
11855       VncInfo
11856
11857   Since
11858       0.14
11859
11860   Example
11861          -> { "execute": "query-vnc" }
11862          <- { "return": {
11863                   "enabled":true,
11864                   "host":"0.0.0.0",
11865                   "service":"50402",
11866                   "auth":"vnc",
11867                   "family":"ipv4",
11868                   "clients":[
11869                      {
11870                         "host":"127.0.0.1",
11871                         "service":"50401",
11872                         "family":"ipv4"
11873                      }
11874                   ]
11875                }
11876             }
11877
11878   If
11879       defined(CONFIG_VNC)
11880
11881   query-vnc-servers (Command)
11882       Returns a list of vnc servers.  The list can be empty.
11883
11884   Returns
11885       a list of VncInfo2
11886
11887   Since
11888       2.3
11889
11890   If
11891       defined(CONFIG_VNC)
11892
11893   change-vnc-password (Command)
11894       Change the VNC server password.
11895
11896   Arguments
11897       password: string
11898              the new password to use with VNC authentication
11899
11900   Since
11901       1.1
11902
11903   Notes
11904       An  empty  password  in this command will set the password to the empty
11905       string.  Existing clients are unaffected by executing this command.
11906
11907   If
11908       defined(CONFIG_VNC)
11909
11910   VNC_CONNECTED (Event)
11911       Emitted when a VNC client establishes a connection
11912
11913   Arguments
11914       server: VncServerInfo
11915              server information
11916
11917       client: VncBasicInfo
11918              client information
11919
11920   Note
11921       This event is emitted before any authentication takes place,  thus  the
11922       authentication ID is not provided
11923
11924   Since
11925       0.13
11926
11927   Example
11928          <- { "event": "VNC_CONNECTED",
11929               "data": {
11930                     "server": { "auth": "sasl", "family": "ipv4",
11931                                 "service": "5901", "host": "0.0.0.0" },
11932                     "client": { "family": "ipv4", "service": "58425",
11933                                 "host": "127.0.0.1" } },
11934               "timestamp": { "seconds": 1262976601, "microseconds": 975795 } }
11935
11936   If
11937       defined(CONFIG_VNC)
11938
11939   VNC_INITIALIZED (Event)
11940       Emitted  after  authentication takes place (if any) and the VNC session
11941       is made active
11942
11943   Arguments
11944       server: VncServerInfo
11945              server information
11946
11947       client: VncClientInfo
11948              client information
11949
11950   Since
11951       0.13
11952
11953   Example
11954          <-  { "event": "VNC_INITIALIZED",
11955                "data": {
11956                     "server": { "auth": "sasl", "family": "ipv4",
11957                                 "service": "5901", "host": "0.0.0.0"},
11958                     "client": { "family": "ipv4", "service": "46089",
11959                                 "host": "127.0.0.1", "sasl_username": "luiz" } },
11960                "timestamp": { "seconds": 1263475302, "microseconds": 150772 } }
11961
11962   If
11963       defined(CONFIG_VNC)
11964
11965   VNC_DISCONNECTED (Event)
11966       Emitted when the connection is closed
11967
11968   Arguments
11969       server: VncServerInfo
11970              server information
11971
11972       client: VncClientInfo
11973              client information
11974
11975   Since
11976       0.13
11977
11978   Example
11979          <- { "event": "VNC_DISCONNECTED",
11980               "data": {
11981                     "server": { "auth": "sasl", "family": "ipv4",
11982                                 "service": "5901", "host": "0.0.0.0" },
11983                     "client": { "family": "ipv4", "service": "58425",
11984                                 "host": "127.0.0.1", "sasl_username": "luiz" } },
11985               "timestamp": { "seconds": 1262976601, "microseconds": 975795 } }
11986
11987   If
11988       defined(CONFIG_VNC)
11989

INPUT

11991   MouseInfo (Object)
11992       Information about a mouse device.
11993
11994   Members
11995       name: string
11996              the name of the mouse device
11997
11998       index: int
11999              the index of the mouse device
12000
12001       current: boolean
12002              true if this device is currently receiving mouse events
12003
12004       absolute: boolean
12005              true if this device supports absolute coordinates as input
12006
12007   Since
12008       0.14
12009
12010   query-mice (Command)
12011       Returns information about each active mouse device
12012
12013   Returns
12014       a list of MouseInfo for each device
12015
12016   Since
12017       0.14
12018
12019   Example
12020          -> { "execute": "query-mice" }
12021          <- { "return": [
12022                   {
12023                      "name":"QEMU Microsoft Mouse",
12024                      "index":0,
12025                      "current":false,
12026                      "absolute":false
12027                   },
12028                   {
12029                      "name":"QEMU PS/2 Mouse",
12030                      "index":1,
12031                      "current":true,
12032                      "absolute":true
12033                   }
12034                ]
12035             }
12036
12037   QKeyCode (Enum)
12038       An enumeration of key name.
12039
12040       This is used by the send-key command.
12041
12042   Values
12043       unmapped
12044              since 2.0
12045
12046       pause  since 2.0
12047
12048       ro     since 2.4
12049
12050       kp_comma
12051              since 2.4
12052
12053       kp_equals
12054              since 2.6
12055
12056       power  since 2.6
12057
12058       hiragana
12059              since 2.9
12060
12061       henkan since 2.9
12062
12063       yen    since 2.9
12064
12065       sleep  since 2.10
12066
12067       wake   since 2.10
12068
12069       audionext
12070              since 2.10
12071
12072       audioprev
12073              since 2.10
12074
12075       audiostop
12076              since 2.10
12077
12078       audioplay
12079              since 2.10
12080
12081       audiomute
12082              since 2.10
12083
12084       volumeup
12085              since 2.10
12086
12087       volumedown
12088              since 2.10
12089
12090       mediaselect
12091              since 2.10
12092
12093       mail   since 2.10
12094
12095       calculator
12096              since 2.10
12097
12098       computer
12099              since 2.10
12100
12101       ac_home
12102              since 2.10
12103
12104       ac_back
12105              since 2.10
12106
12107       ac_forward
12108              since 2.10
12109
12110       ac_refresh
12111              since 2.10
12112
12113       ac_bookmarks
12114              since 2.10
12115
12116       muhenkan
12117              since 2.12
12118
12119       katakanahiragana
12120              since 2.12
12121
12122       lang1  since 6.1
12123
12124       lang2  since 6.1
12125
12126       shift  Not documented
12127
12128       shift_r
12129              Not documented
12130
12131       alt    Not documented
12132
12133       alt_r  Not documented
12134
12135       ctrl   Not documented
12136
12137       ctrl_r Not documented
12138
12139       menu   Not documented
12140
12141       esc    Not documented
12142
12143       1      Not documented
12144
12145       2      Not documented
12146
12147       3      Not documented
12148
12149       4      Not documented
12150
12151       5      Not documented
12152
12153       6      Not documented
12154
12155       7      Not documented
12156
12157       8      Not documented
12158
12159       9      Not documented
12160
12161       0      Not documented
12162
12163       minus  Not documented
12164
12165       equal  Not documented
12166
12167       backspace
12168              Not documented
12169
12170       tab    Not documented
12171
12172       q      Not documented
12173
12174       w      Not documented
12175
12176       e      Not documented
12177
12178       r      Not documented
12179
12180       t      Not documented
12181
12182       y      Not documented
12183
12184       u      Not documented
12185
12186       i      Not documented
12187
12188       o      Not documented
12189
12190       p      Not documented
12191
12192       bracket_left
12193              Not documented
12194
12195       bracket_right
12196              Not documented
12197
12198       ret    Not documented
12199
12200       a      Not documented
12201
12202       s      Not documented
12203
12204       d      Not documented
12205
12206       f      Not documented
12207
12208       g      Not documented
12209
12210       h      Not documented
12211
12212       j      Not documented
12213
12214       k      Not documented
12215
12216       l      Not documented
12217
12218       semicolon
12219              Not documented
12220
12221       apostrophe
12222              Not documented
12223
12224       grave_accent
12225              Not documented
12226
12227       backslash
12228              Not documented
12229
12230       z      Not documented
12231
12232       x      Not documented
12233
12234       c      Not documented
12235
12236       v      Not documented
12237
12238       b      Not documented
12239
12240       n      Not documented
12241
12242       m      Not documented
12243
12244       comma  Not documented
12245
12246       dot    Not documented
12247
12248       slash  Not documented
12249
12250       asterisk
12251              Not documented
12252
12253       spc    Not documented
12254
12255       caps_lock
12256              Not documented
12257
12258       f1     Not documented
12259
12260       f2     Not documented
12261
12262       f3     Not documented
12263
12264       f4     Not documented
12265
12266       f5     Not documented
12267
12268       f6     Not documented
12269
12270       f7     Not documented
12271
12272       f8     Not documented
12273
12274       f9     Not documented
12275
12276       f10    Not documented
12277
12278       num_lock
12279              Not documented
12280
12281       scroll_lock
12282              Not documented
12283
12284       kp_divide
12285              Not documented
12286
12287       kp_multiply
12288              Not documented
12289
12290       kp_subtract
12291              Not documented
12292
12293       kp_add Not documented
12294
12295       kp_enter
12296              Not documented
12297
12298       kp_decimal
12299              Not documented
12300
12301       sysrq  Not documented
12302
12303       kp_0   Not documented
12304
12305       kp_1   Not documented
12306
12307       kp_2   Not documented
12308
12309       kp_3   Not documented
12310
12311       kp_4   Not documented
12312
12313       kp_5   Not documented
12314
12315       kp_6   Not documented
12316
12317       kp_7   Not documented
12318
12319       kp_8   Not documented
12320
12321       kp_9   Not documented
12322
12323       less   Not documented
12324
12325       f11    Not documented
12326
12327       f12    Not documented
12328
12329       print  Not documented
12330
12331       home   Not documented
12332
12333       pgup   Not documented
12334
12335       pgdn   Not documented
12336
12337       end    Not documented
12338
12339       left   Not documented
12340
12341       up     Not documented
12342
12343       down   Not documented
12344
12345       right  Not documented
12346
12347       insert Not documented
12348
12349       delete Not documented
12350
12351       stop   Not documented
12352
12353       again  Not documented
12354
12355       props  Not documented
12356
12357       undo   Not documented
12358
12359       front  Not documented
12360
12361       copy   Not documented
12362
12363       open   Not documented
12364
12365       paste  Not documented
12366
12367       find   Not documented
12368
12369       cut    Not documented
12370
12371       lf     Not documented
12372
12373       help   Not documented
12374
12375       meta_l Not documented
12376
12377       meta_r Not documented
12378
12379       compose
12380              Not documented
12381       'sysrq' was mistakenly added to hack  around  the  fact  that  the  ps2
12382       driver  was not generating correct scancodes sequences when 'alt+print'
12383       was pressed. This flaw is now fixed and the 'sysrq' key serves no  fur‐
12384       ther  purpose. Any further use of 'sysrq' will be transparently changed
12385       to 'print', so they are effectively synonyms.
12386
12387   Since
12388       1.3
12389
12390   KeyValue (Object)
12391       Represents a keyboard key.
12392
12393   Members
12394       type   One of number, qcode
12395
12396       data: int when type is "number"
12397
12398       data: QKeyCode when type is "qcode"
12399
12400   Since
12401       1.3
12402
12403   send-key (Command)
12404       Send keys to guest.
12405
12406   Arguments
12407       keys: array of KeyValue
12408              An array of KeyValue elements. All KeyValues in this  array  are
12409              simultaneously  sent  to  the  guest. A KeyValue.number value is
12410              sent directly to the guest, while KeyValue.qcode must be a valid
12411              QKeyCode value
12412
12413       hold-time: int (optional)
12414              time to delay key up events, milliseconds. Defaults to 100
12415
12416   Returns
12417       • Nothing on success
12418
12419       • If key is unknown or redundant, InvalidParameter
12420
12421   Since
12422       1.3
12423
12424   Example
12425          -> { "execute": "send-key",
12426               "arguments": { "keys": [ { "type": "qcode", "data": "ctrl" },
12427                                        { "type": "qcode", "data": "alt" },
12428                                        { "type": "qcode", "data": "delete" } ] } }
12429          <- { "return": {} }
12430
12431   InputButton (Enum)
12432       Button of a pointer input device (mouse, tablet).
12433
12434   Values
12435       side   front side button of a 5-button mouse (since 2.9)
12436
12437       extra  rear side button of a 5-button mouse (since 2.9)
12438
12439       left   Not documented
12440
12441       middle Not documented
12442
12443       right  Not documented
12444
12445       wheel-up
12446              Not documented
12447
12448       wheel-down
12449              Not documented
12450
12451   Since
12452       2.0
12453
12454   InputAxis (Enum)
12455       Position axis of a pointer input device (mouse, tablet).
12456
12457   Values
12458       x      Not documented
12459
12460       y      Not documented
12461
12462   Since
12463       2.0
12464
12465   InputKeyEvent (Object)
12466       Keyboard input event.
12467
12468   Members
12469       key: KeyValue
12470              Which key this event is for.
12471
12472       down: boolean
12473              True for key-down and false for key-up events.
12474
12475   Since
12476       2.0
12477
12478   InputBtnEvent (Object)
12479       Pointer button input event.
12480
12481   Members
12482       button: InputButton
12483              Which button this event is for.
12484
12485       down: boolean
12486              True for key-down and false for key-up events.
12487
12488   Since
12489       2.0
12490
12491   InputMoveEvent (Object)
12492       Pointer motion input event.
12493
12494   Members
12495       axis: InputAxis
12496              Which axis is referenced by value.
12497
12498       value: int
12499              Pointer position.  For absolute coordinates the valid range is 0
12500              -> 0x7ffff
12501
12502   Since
12503       2.0
12504
12505   InputEvent (Object)
12506       Input event union.
12507
12508   Members
12509       type   the input type, one of:
12510
12511              • 'key': Input event of Keyboard
12512
12513              • 'btn': Input event of pointer buttons
12514
12515              • 'rel': Input event of relative pointer motion
12516
12517              • 'abs': Input event of absolute pointer motion
12518
12519       data: InputKeyEvent when type is "key"
12520
12521       data: InputBtnEvent when type is "btn"
12522
12523       data: InputMoveEvent when type is "rel"
12524
12525       data: InputMoveEvent when type is "abs"
12526
12527   Since
12528       2.0
12529
12530   input-send-event (Command)
12531       Send input event(s) to guest.
12532
12533       The device and head parameters can be used to send the input  event  to
12534       specific  input  devices in case (a) multiple input devices of the same
12535       kind are added to the virtual machine and (b) you have configured input
12536       routing  (see docs/multiseat.txt) for those input devices.  The parame‐
12537       ters work exactly like the device and head properties of input devices.
12538       If  device  is  missing, only devices that have no input routing config
12539       are admissible.  If device is specified, both input  devices  with  and
12540       without  input  routing  config  are admissible, but devices with input
12541       routing config take precedence.
12542
12543   Arguments
12544       device: string (optional)
12545              display device to send event(s) to.
12546
12547       head: int (optional)
12548              head to send event(s) to, in case the  display  device  supports
12549              multiple scanouts.
12550
12551       events: array of InputEvent
12552              List of InputEvent union.
12553
12554   Returns
12555       Nothing on success.
12556
12557   Since
12558       2.6
12559
12560   Note
12561       The  consoles  are visible in the qom tree, under /backend/console[$in‐
12562       dex]. They have a device link and head property, so it is  possible  to
12563       map which console belongs to which device and display.
12564
12565   Example
12566          1. Press left mouse button.
12567
12568          -> { "execute": "input-send-event",
12569              "arguments": { "device": "video0",
12570                             "events": [ { "type": "btn",
12571                             "data" : { "down": true, "button": "left" } } ] } }
12572          <- { "return": {} }
12573
12574          -> { "execute": "input-send-event",
12575              "arguments": { "device": "video0",
12576                             "events": [ { "type": "btn",
12577                             "data" : { "down": false, "button": "left" } } ] } }
12578          <- { "return": {} }
12579
12580          2. Press ctrl-alt-del.
12581
12582          -> { "execute": "input-send-event",
12583               "arguments": { "events": [
12584                  { "type": "key", "data" : { "down": true,
12585                    "key": {"type": "qcode", "data": "ctrl" } } },
12586                  { "type": "key", "data" : { "down": true,
12587                    "key": {"type": "qcode", "data": "alt" } } },
12588                  { "type": "key", "data" : { "down": true,
12589                    "key": {"type": "qcode", "data": "delete" } } } ] } }
12590          <- { "return": {} }
12591
12592          3. Move mouse pointer to absolute coordinates (20000, 400).
12593
12594          -> { "execute": "input-send-event" ,
12595            "arguments": { "events": [
12596                         { "type": "abs", "data" : { "axis": "x", "value" : 20000 } },
12597                         { "type": "abs", "data" : { "axis": "y", "value" : 400 } } ] } }
12598          <- { "return": {} }
12599
12600   DisplayGTK (Object)
12601       GTK display options.
12602
12603   Members
12604       grab-on-hover: boolean (optional)
12605              Grab keyboard input on mouse hover.
12606
12607       zoom-to-fit: boolean (optional)
12608              Zoom guest display to fit into the host window.  When turned off
12609              the host window will be resized instead.  In  case  the  display
12610              device  can notify the guest on window resizes (virtio-gpu) this
12611              will default to "on", assuming the guest will resize the display
12612              to  match the window size then.  Otherwise it defaults to "off".
12613              Since 3.1
12614
12615   Since
12616       2.12
12617
12618   DisplayEGLHeadless (Object)
12619       EGL headless display options.
12620
12621   Members
12622       rendernode: string (optional)
12623              Which DRM render node should  be  used.  Default  is  the  first
12624              available node on the host.
12625
12626   Since
12627       3.1
12628
12629   DisplayGLMode (Enum)
12630       Display OpenGL mode.
12631
12632   Values
12633       off    Disable OpenGL (default).
12634
12635       on     Use  OpenGL,  pick  context type automatically.  Would better be
12636              named 'auto' but is called 'on' for backward compatibility  with
12637              bool type.
12638
12639       core   Use OpenGL with Core (desktop) Context.
12640
12641       es     Use OpenGL with ES (embedded systems) Context.
12642
12643   Since
12644       3.0
12645
12646   DisplayCurses (Object)
12647       Curses display options.
12648
12649   Members
12650       charset: string (optional)
12651              Font charset used by guest (default: CP437).
12652
12653   Since
12654       4.0
12655
12656   DisplayType (Enum)
12657       Display (user interface) type.
12658
12659   Values
12660       default
12661              The  default  user interface, selecting from the first available
12662              of gtk, sdl, cocoa, and vnc.
12663
12664       none   No user interface or video output display. The guest will  still
12665              see  an  emulated graphics card, but its output will not be dis‐
12666              played to the QEMU user.
12667
12668       gtk (If: defined(CONFIG_GTK))
12669              The GTK user interface.
12670
12671       sdl (If: defined(CONFIG_SDL))
12672              The SDL user interface.
12673
12674       egl-headless (If: defined(CONFIG_OPENGL) && defined(CONFIG_GBM))
12675              No user interface, offload GL operations to a local DRI  device.
12676              Graphical  display  need  to be paired with VNC or Spice. (Since
12677              3.1)
12678
12679       curses (If: defined(CONFIG_CURSES))
12680              Display video output via curses.   For  graphics  device  models
12681              which  support a text mode, QEMU can display this output using a
12682              curses/ncurses interface. Nothing is displayed when the graphics
12683              device  is  in graphical mode or if the graphics device does not
12684              support a text mode. Generally only the VGA device  models  sup‐
12685              port text mode.
12686
12687       cocoa (If: defined(CONFIG_COCOA))
12688              The Cocoa user interface.
12689
12690       spice-app (If: defined(CONFIG_SPICE))
12691              Set up a Spice server and run the default associated application
12692              to connect to it. The server will redirect  the  serial  console
12693              and QEMU monitors. (Since 4.0)
12694
12695   Since
12696       2.12
12697
12698   DisplayOptions (Object)
12699       Display (user interface) options.
12700
12701   Members
12702       type: DisplayType
12703              Which DisplayType qemu should use.
12704
12705       full-screen: boolean (optional)
12706              Start user interface in fullscreen mode (default: off).
12707
12708       window-close: boolean (optional)
12709              Allow to quit qemu with window close button (default: on).
12710
12711       show-cursor: boolean (optional)
12712              Force showing the mouse cursor (default: off).  (since: 5.0)
12713
12714       gl: DisplayGLMode (optional)
12715              Enable OpenGL support (default: off).
12716
12717       The members of DisplayGTK when type is "gtk" (If: defined(CONFIG_GTK))
12718
12719       The  members  of  DisplayCurses when type is "curses" (If: defined(CON‐
12720       FIG_CURSES))
12721
12722       The members of DisplayEGLHeadless when type is "egl-headless" (If:  de‐
12723       fined(CONFIG_OPENGL) && defined(CONFIG_GBM))
12724
12725   Since
12726       2.12
12727
12728   query-display-options (Command)
12729       Returns information about display configuration
12730
12731   Returns
12732       DisplayOptions
12733
12734   Since
12735       3.1
12736
12737   DisplayReloadType (Enum)
12738       Available DisplayReload types.
12739
12740   Values
12741       vnc    VNC display
12742
12743   Since
12744       6.0
12745
12746   DisplayReloadOptionsVNC (Object)
12747       Specify the VNC reload options.
12748
12749   Members
12750       tls-certs: boolean (optional)
12751              reload tls certs or not.
12752
12753   Since
12754       6.0
12755
12756   DisplayReloadOptions (Object)
12757       Options of the display configuration reload.
12758
12759   Members
12760       type: DisplayReloadType
12761              Specify the display type.
12762
12763       The members of DisplayReloadOptionsVNC when type is "vnc"
12764
12765   Since
12766       6.0
12767
12768   display-reload (Command)
12769       Reload display configuration.
12770
12771   Arguments
12772       The members of DisplayReloadOptions
12773
12774   Returns
12775       Nothing on success.
12776
12777   Since
12778       6.0
12779
12780   Example
12781          -> { "execute": "display-reload",
12782               "arguments": { "type": "vnc", "tls-certs": true  } }
12783          <- { "return": {} }
12784

USER AUTHORIZATION

12786   QAuthZListPolicy (Enum)
12787       The authorization policy result
12788
12789   Values
12790       deny   deny access
12791
12792       allow  allow access
12793
12794   Since
12795       4.0
12796
12797   QAuthZListFormat (Enum)
12798       The authorization policy match format
12799
12800   Values
12801       exact  an exact string match
12802
12803       glob   string with ? and * shell wildcard support
12804
12805   Since
12806       4.0
12807
12808   QAuthZListRule (Object)
12809       A single authorization rule.
12810
12811   Members
12812       match: string
12813              a string or glob to match against a user identity
12814
12815       policy: QAuthZListPolicy
12816              the result to return if match evaluates to true
12817
12818       format: QAuthZListFormat (optional)
12819              the format of the match rule (default 'exact')
12820
12821   Since
12822       4.0
12823
12824   AuthZListProperties (Object)
12825       Properties for authz-list objects.
12826
12827   Members
12828       policy: QAuthZListPolicy (optional)
12829              Default policy to apply when no rule matches (default: deny)
12830
12831       rules: array of QAuthZListRule (optional)
12832              Authorization rules based on matching user
12833
12834   Since
12835       4.0
12836
12837   AuthZListFileProperties (Object)
12838       Properties for authz-listfile objects.
12839
12840   Members
12841       filename: string
12842              File  name to load the configuration from. The file must contain
12843              valid JSON for AuthZListProperties.
12844
12845       refresh: boolean (optional)
12846              If true, inotify is used  to  monitor  the  file,  automatically
12847              reloading  changes. If an error occurs during reloading, all au‐
12848              thorizations will fail  until  the  file  is  next  successfully
12849              loaded.  (default: true if the binary was built with CONFIG_INO‐
12850              TIFY1, false otherwise)
12851
12852   Since
12853       4.0
12854
12855   AuthZPAMProperties (Object)
12856       Properties for authz-pam objects.
12857
12858   Members
12859       service: string
12860              PAM service name to use for authorization
12861
12862   Since
12863       4.0
12864
12865   AuthZSimpleProperties (Object)
12866       Properties for authz-simple objects.
12867
12868   Members
12869       identity: string
12870              Identifies the allowed user. Its format depends on  the  network
12871              service that authorization object is associated with. For autho‐
12872              rizing based on TLS x509 certificates, the identity must be  the
12873              x509 distinguished name.
12874
12875   Since
12876       4.0
12877

MIGRATION

12879   MigrationStats (Object)
12880       Detailed migration status.
12881
12882   Members
12883       transferred: int
12884              amount of bytes already transferred to the target VM
12885
12886       remaining: int
12887              amount of bytes remaining to be transferred to the target VM
12888
12889       total: int
12890              total amount of bytes involved in the migration process
12891
12892       duplicate: int
12893              number of duplicate (zero) pages (since 1.2)
12894
12895       skipped: int
12896              number of skipped zero pages (since 1.5)
12897
12898       normal: int
12899              number of normal pages (since 1.2)
12900
12901       normal-bytes: int
12902              number of normal bytes sent (since 1.2)
12903
12904       dirty-pages-rate: int
12905              number of pages dirtied by second by the guest (since 1.3)
12906
12907       mbps: number
12908              throughput in megabits/sec. (since 1.6)
12909
12910       dirty-sync-count: int
12911              number of times that dirty ram was synchronized (since 2.1)
12912
12913       postcopy-requests: int
12914              The number of page requests received from the destination (since
12915              2.7)
12916
12917       page-size: int
12918              The number of bytes per page for the various page-based  statis‐
12919              tics (since 2.10)
12920
12921       multifd-bytes: int
12922              The number of bytes sent through multifd (since 3.0)
12923
12924       pages-per-second: int
12925              the number of memory pages transferred per second (Since 4.0)
12926
12927   Since
12928       0.14
12929
12930   XBZRLECacheStats (Object)
12931       Detailed XBZRLE migration cache statistics
12932
12933   Members
12934       cache-size: int
12935              XBZRLE cache size
12936
12937       bytes: int
12938              amount of bytes already transferred to the target VM
12939
12940       pages: int
12941              amount of pages transferred to the target VM
12942
12943       cache-miss: int
12944              number of cache miss
12945
12946       cache-miss-rate: number
12947              rate of cache miss (since 2.1)
12948
12949       encoding-rate: number
12950              rate of encoded bytes (since 5.1)
12951
12952       overflow: int
12953              number of overflows
12954
12955   Since
12956       1.2
12957
12958   CompressionStats (Object)
12959       Detailed migration compression statistics
12960
12961   Members
12962       pages: int
12963              amount of pages compressed and transferred to the target VM
12964
12965       busy: int
12966              count  of  times  that  no free thread was available to compress
12967              data
12968
12969       busy-rate: number
12970              rate of thread busy
12971
12972       compressed-size: int
12973              amount of bytes after compression
12974
12975       compression-rate: number
12976              rate of compressed size
12977
12978   Since
12979       3.1
12980
12981   MigrationStatus (Enum)
12982       An enumeration of migration status.
12983
12984   Values
12985       none   no migration has ever happened.
12986
12987       setup  migration process has been initiated.
12988
12989       cancelling
12990              in the process of cancelling migration.
12991
12992       cancelled
12993              cancelling migration is finished.
12994
12995       active in the process of doing migration.
12996
12997       postcopy-active
12998              like active, but now in postcopy mode. (since 2.5)
12999
13000       postcopy-paused
13001              during postcopy but paused. (since 3.0)
13002
13003       postcopy-recover
13004              trying to recover from a paused postcopy. (since 3.0)
13005
13006       completed
13007              migration is finished.
13008
13009       failed some error occurred during migration process.
13010
13011       colo   VM is in the process of fault tolerance, VM  can  not  get  into
13012              this  state  unless  colo  capability  is enabled for migration.
13013              (since 2.8)
13014
13015       pre-switchover
13016              Paused before device serialisation. (since 2.11)
13017
13018       device During device serialisation when pause-before-switchover is  en‐
13019              abled (since 2.11)
13020
13021       wait-unplug
13022              wait  for  device  unplug  request  by guest OS to be completed.
13023              (since 4.2)
13024
13025   Since
13026       2.3
13027
13028   VfioStats (Object)
13029       Detailed VFIO devices migration statistics
13030
13031   Members
13032       transferred: int
13033              amount of bytes transferred to the target VM by VFIO devices
13034
13035   Since
13036       5.2
13037
13038   MigrationInfo (Object)
13039       Information about current migration process.
13040
13041   Members
13042       status: MigrationStatus (optional)
13043              MigrationStatus describing the  current  migration  status.   If
13044              this field is not returned, no migration process has been initi‐
13045              ated
13046
13047       ram: MigrationStats (optional)
13048              MigrationStats containing detailed migration  status,  only  re‐
13049              turned if status is 'active' or 'completed'(since 1.2)
13050
13051       disk: MigrationStats (optional)
13052              MigrationStats  containing  detailed disk migration status, only
13053              returned if status is 'active' and it is a block migration
13054
13055       xbzrle-cache: XBZRLECacheStats (optional)
13056              XBZRLECacheStats containing detailed  XBZRLE  migration  statis‐
13057              tics,  only  returned if XBZRLE feature is on and status is 'ac‐
13058              tive' or 'completed' (since 1.2)
13059
13060       total-time: int (optional)
13061              total amount of milliseconds since migration started.  If migra‐
13062              tion has ended, it returns the total migration time. (since 1.2)
13063
13064       downtime: int (optional)
13065              only present when migration finishes correctly total downtime in
13066              milliseconds for the guest.  (since 1.3)
13067
13068       expected-downtime: int (optional)
13069              only present while migration is active expected downtime in mil‐
13070              liseconds for the guest in last walk of the dirty bitmap. (since
13071              1.3)
13072
13073       setup-time: int (optional)
13074              amount of setup time in milliseconds before the iterations begin
13075              but after the QMP command is issued. This is designed to provide
13076              an accounting of any activities (such as RDMA pinning) which may
13077              be expensive, but do not actually occur during the iterative mi‐
13078              gration rounds themselves. (since 1.6)
13079
13080       cpu-throttle-percentage: int (optional)
13081              percentage  of  time  guest  cpus  are  being  throttled  during
13082              auto-converge.  This  is  only  present  when  auto-converge has
13083              started throttling guest cpus. (Since 2.7)
13084
13085       error-desc: string (optional)
13086              the human readable error  description  string,  when  status  is
13087              'failed'. Clients should not attempt to parse the error strings.
13088              (Since 2.7)
13089
13090       postcopy-blocktime: int (optional)
13091              total time when all vCPU were blocked during postcopy  live  mi‐
13092              gration. This is only present when the postcopy-blocktime migra‐
13093              tion capability is enabled. (Since 3.0)
13094
13095       postcopy-vcpu-blocktime: array of int (optional)
13096              list of the postcopy blocktime per vCPU.  This is  only  present
13097              when  the  postcopy-blocktime  migration  capability is enabled.
13098              (Since 3.0)
13099
13100       compression: CompressionStats (optional)
13101              migration compression statistics, only returned  if  compression
13102              feature is on and status is 'active' or 'completed' (Since 3.1)
13103
13104       socket-address: array of SocketAddress (optional)
13105              Only used for tcp, to know what the real port is (Since 4.0)
13106
13107       vfio: VfioStats (optional)
13108              VfioStats containing detailed VFIO devices migration statistics,
13109              only returned if VFIO device is present, migration is  supported
13110              by all VFIO devices and status is 'active' or 'completed' (since
13111              5.2)
13112
13113       blocked-reasons: array of string (optional)
13114              A list of reasons an outgoing migration is blocked.  Present and
13115              non-empty when migration is blocked.  (since 6.0)
13116
13117   Since
13118       0.14
13119
13120   query-migrate (Command)
13121       Returns  information  about  current migration process. If migration is
13122       active there will be another json-object with RAM migration status  and
13123       if block migration is active another one with block migration status.
13124
13125   Returns
13126       MigrationInfo
13127
13128   Since
13129       0.14
13130
13131   Example
13132          1. Before the first migration
13133
13134          -> { "execute": "query-migrate" }
13135          <- { "return": {} }
13136
13137          2. Migration is done and has succeeded
13138
13139          -> { "execute": "query-migrate" }
13140          <- { "return": {
13141                  "status": "completed",
13142                  "total-time":12345,
13143                  "setup-time":12345,
13144                  "downtime":12345,
13145                  "ram":{
13146                    "transferred":123,
13147                    "remaining":123,
13148                    "total":246,
13149                    "duplicate":123,
13150                    "normal":123,
13151                    "normal-bytes":123456,
13152                    "dirty-sync-count":15
13153                  }
13154               }
13155             }
13156
13157          3. Migration is done and has failed
13158
13159          -> { "execute": "query-migrate" }
13160          <- { "return": { "status": "failed" } }
13161
13162          4. Migration is being performed and is not a block migration:
13163
13164          -> { "execute": "query-migrate" }
13165          <- {
13166                "return":{
13167                   "status":"active",
13168                   "total-time":12345,
13169                   "setup-time":12345,
13170                   "expected-downtime":12345,
13171                   "ram":{
13172                      "transferred":123,
13173                      "remaining":123,
13174                      "total":246,
13175                      "duplicate":123,
13176                      "normal":123,
13177                      "normal-bytes":123456,
13178                      "dirty-sync-count":15
13179                   }
13180                }
13181             }
13182
13183          5. Migration is being performed and is a block migration:
13184
13185          -> { "execute": "query-migrate" }
13186          <- {
13187                "return":{
13188                   "status":"active",
13189                   "total-time":12345,
13190                   "setup-time":12345,
13191                   "expected-downtime":12345,
13192                   "ram":{
13193                      "total":1057024,
13194                      "remaining":1053304,
13195                      "transferred":3720,
13196                      "duplicate":123,
13197                      "normal":123,
13198                      "normal-bytes":123456,
13199                      "dirty-sync-count":15
13200                   },
13201                   "disk":{
13202                      "total":20971520,
13203                      "remaining":20880384,
13204                      "transferred":91136
13205                   }
13206                }
13207             }
13208
13209          6. Migration is being performed and XBZRLE is active:
13210
13211          -> { "execute": "query-migrate" }
13212          <- {
13213                "return":{
13214                   "status":"active",
13215                   "total-time":12345,
13216                   "setup-time":12345,
13217                   "expected-downtime":12345,
13218                   "ram":{
13219                      "total":1057024,
13220                      "remaining":1053304,
13221                      "transferred":3720,
13222                      "duplicate":10,
13223                      "normal":3333,
13224                      "normal-bytes":3412992,
13225                      "dirty-sync-count":15
13226                   },
13227                   "xbzrle-cache":{
13228                      "cache-size":67108864,
13229                      "bytes":20971520,
13230                      "pages":2444343,
13231                      "cache-miss":2244,
13232                      "cache-miss-rate":0.123,
13233                      "encoding-rate":80.1,
13234                      "overflow":34434
13235                   }
13236                }
13237             }
13238
13239   MigrationCapability (Enum)
13240       Migration capabilities enumeration
13241
13242   Values
13243       xbzrle Migration  supports xbzrle (Xor Based Zero Run Length Encoding).
13244              This feature allows us to minimize migration traffic for certain
13245              work loads, by sending compressed difference of the pages
13246
13247       rdma-pin-all
13248              Controls  whether  or  not  the  entire  VM  memory footprint is
13249              mlock()'d on demand or all at once. Refer to  docs/rdma.txt  for
13250              usage.  Disabled by default. (since 2.0)
13251
13252       zero-blocks
13253              During  storage  migration  encode blocks of zeroes efficiently.
13254              This essentially saves 1MB of zeroes per block on the wire.  En‐
13255              abling requires source and target VM to support this feature. To
13256              enable it is sufficient to enable the capability on  the  source
13257              VM. The feature is disabled by default. (since 1.6)
13258
13259       compress
13260              Use  multiple  compression threads to accelerate live migration.
13261              This feature can help to reduce the migration traffic, by  send‐
13262              ing  compressed  pages.  Please note that if compress and xbzrle
13263              are both on, compress only takes effect in the ram  bulk  stage,
13264              after  that,  it  will be disabled and only xbzrle takes effect,
13265              this can help to minimize migration traffic. The feature is dis‐
13266              abled by default.  (since 2.4 )
13267
13268       events generate events for each migration state change (since 2.4 )
13269
13270       auto-converge
13271              If  enabled,  QEMU will automatically throttle down the guest to
13272              speed up convergence of RAM migration. (since 1.6)
13273
13274       postcopy-ram
13275              Start executing on the migration target before all  of  RAM  has
13276              been  migrated, pulling the remaining pages along as needed. The
13277              capacity must have the same setting on both source and target or
13278              migration will not even start. NOTE: If the migration fails dur‐
13279              ing postcopy the VM will fail.  (since 2.6)
13280
13281       x-colo If enabled, migration will never end, and the state of the VM on
13282              the primary side will be migrated continuously to the VM on sec‐
13283              ondary side, this process is called COarse-Grain  LOck  Stepping
13284              (COLO) for Non-stop Service. (since 2.8)
13285
13286       release-ram
13287              if  enabled, qemu will free the migrated ram pages on the source
13288              during postcopy-ram migration. (since 2.9)
13289
13290       block  If enabled, QEMU will also migrate the contents of all block de‐
13291              vices.  Default is disabled.  A possible alternative uses mirror
13292              jobs to a builtin NBD server on the  destination,  which  offers
13293              more flexibility.  (Since 2.10)
13294
13295       return-path
13296              If enabled, migration will use the return path even for precopy.
13297              (since 2.10)
13298
13299       pause-before-switchover
13300              Pause outgoing migration before serialising device state and be‐
13301              fore disabling block IO (since 2.11)
13302
13303       multifd
13304              Use more than one fd for migration (since 4.0)
13305
13306       dirty-bitmaps
13307              If enabled, QEMU will migrate named dirty bitmaps.  (since 2.12)
13308
13309       postcopy-blocktime
13310              Calculate downtime for postcopy live migration (since 3.0)
13311
13312       late-block-activate
13313              If enabled, the destination will not activate block devices (and
13314              thus take locks) immediately at the end  of  migration.   (since
13315              3.0)
13316
13317       x-ignore-shared
13318              If enabled, QEMU will not migrate shared memory (since 4.0)
13319
13320       validate-uuid
13321              Send  the  UUID of the source to allow the destination to ensure
13322              it is the same. (since 4.2)
13323
13324       background-snapshot
13325              If enabled, the migration stream will be a snapshot  of  the  VM
13326              exactly at the point when the migration procedure starts. The VM
13327              RAM is saved with running VM.  (since 6.0)
13328
13329   Since
13330       1.2
13331
13332   MigrationCapabilityStatus (Object)
13333       Migration capability information
13334
13335   Members
13336       capability: MigrationCapability
13337              capability enum
13338
13339       state: boolean
13340              capability state bool
13341
13342   Since
13343       1.2
13344
13345   migrate-set-capabilities (Command)
13346       Enable/Disable the following migration capabilities (like xbzrle)
13347
13348   Arguments
13349       capabilities: array of MigrationCapabilityStatus
13350              json array of capability modifications to make
13351
13352   Since
13353       1.2
13354
13355   Example
13356          -> { "execute": "migrate-set-capabilities" , "arguments":
13357               { "capabilities": [ { "capability": "xbzrle", "state": true } ] } }
13358
13359   query-migrate-capabilities (Command)
13360       Returns information about the current migration capabilities status
13361
13362   Returns
13363       MigrationCapabilitiesStatus
13364
13365   Since
13366       1.2
13367
13368   Example
13369          -> { "execute": "query-migrate-capabilities" }
13370          <- { "return": [
13371                {"state": false, "capability": "xbzrle"},
13372                {"state": false, "capability": "rdma-pin-all"},
13373                {"state": false, "capability": "auto-converge"},
13374                {"state": false, "capability": "zero-blocks"},
13375                {"state": false, "capability": "compress"},
13376                {"state": true, "capability": "events"},
13377                {"state": false, "capability": "postcopy-ram"},
13378                {"state": false, "capability": "x-colo"}
13379             ]}
13380
13381   MultiFDCompression (Enum)
13382       An enumeration of multifd compression methods.
13383
13384   Values
13385       none   no compression.
13386
13387       zlib   use zlib compression method.
13388
13389       zstd (If: defined(CONFIG_ZSTD))
13390              use zstd compression method.
13391
13392   Since
13393       5.0
13394
13395   BitmapMigrationBitmapAliasTransform (Object)
13396   Members
13397       persistent: boolean (optional)
13398              If present, the bitmap will be made persistent or transient  de‐
13399              pending on this parameter.
13400
13401   Since
13402       6.0
13403
13404   BitmapMigrationBitmapAlias (Object)
13405   Members
13406       name: string
13407              The name of the bitmap.
13408
13409       alias: string
13410              An  alias name for migration (for example the bitmap name on the
13411              opposite site).
13412
13413       transform: BitmapMigrationBitmapAliasTransform (optional)
13414              Allows the modification of the migrated bitmap.  (since 6.0)
13415
13416   Since
13417       5.2
13418
13419   BitmapMigrationNodeAlias (Object)
13420       Maps a block node name and the bitmaps it has to aliases for dirty bit‐
13421       map migration.
13422
13423   Members
13424       node-name: string
13425              A block node name.
13426
13427       alias: string
13428              An  alias  block  node  name for migration (for example the node
13429              name on the opposite site).
13430
13431       bitmaps: array of BitmapMigrationBitmapAlias
13432              Mappings for the bitmaps on this node.
13433
13434   Since
13435       5.2
13436
13437   MigrationParameter (Enum)
13438       Migration parameters enumeration
13439
13440   Values
13441       announce-initial
13442              Initial delay (in milliseconds) before  sending  the  first  an‐
13443              nounce (Since 4.0)
13444
13445       announce-max
13446              Maximum delay (in milliseconds) between packets in the announce‐
13447              ment (Since 4.0)
13448
13449       announce-rounds
13450              Number of self-announce packets sent after migration (Since 4.0)
13451
13452       announce-step
13453              Increase in delay (in milliseconds) between  subsequent  packets
13454              in the announcement (Since 4.0)
13455
13456       compress-level
13457              Set the compression level to be used in live migration, the com‐
13458              pression level is an integer between 0 and 9, where 0  means  no
13459              compression,  1  means  the  best compression speed, and 9 means
13460              best compression ratio which will consume more CPU.
13461
13462       compress-threads
13463              Set compression thread count to be used in live  migration,  the
13464              compression thread count is an integer between 1 and 255.
13465
13466       compress-wait-thread
13467              Controls  behavior  when  all  compression threads are currently
13468              busy. If true (default), wait for a free compression  thread  to
13469              become  available; otherwise, send the page uncompressed. (Since
13470              3.1)
13471
13472       decompress-threads
13473              Set decompression thread count to be used in live migration, the
13474              decompression thread count is an integer between 1 and 255. Usu‐
13475              ally, decompression is at least 4 times as fast as  compression,
13476              so  set  the  decompress-threads to the number about 1/4 of com‐
13477              press-threads is adequate.
13478
13479       throttle-trigger-threshold
13480              The ratio of bytes_dirty_period and bytes_xfer_period to trigger
13481              throttling. It is expressed as percentage.  The default value is
13482              50. (Since 5.0)
13483
13484       cpu-throttle-initial
13485              Initial percentage of time guest cpus are throttled when  migra‐
13486              tion auto-converge is activated. The default value is 20. (Since
13487              2.7)
13488
13489       cpu-throttle-increment
13490              throttle percentage increase  each  time  auto-converge  detects
13491              that  migration is not making progress. The default value is 10.
13492              (Since 2.7)
13493
13494       cpu-throttle-tailslow
13495              Make CPU throttling slower at tail stage At the  tail  stage  of
13496              throttling,  the Guest is very sensitive to CPU percentage while
13497              the cpu-throttle -increment is excessive usually at tail  stage.
13498              If  this  parameter  is true, we will compute the ideal CPU per‐
13499              centage used by the Guest, which may exactly make the dirty rate
13500              match  the  dirty  rate threshold. Then we will choose a smaller
13501              throttle increment between the one specified by cpu-throttle-in‐
13502              crement  and  the one generated by ideal CPU percentage.  There‐
13503              fore, it is compatible to traditional throttling, meanwhile  the
13504              throttle  increment  won't  be excessive at tail stage.  The de‐
13505              fault value is false. (Since 5.1)
13506
13507       tls-creds
13508              ID of the 'tls-creds' object that provides credentials  for  es‐
13509              tablishing a TLS connection over the migration data channel.  On
13510              the outgoing side of the migration, the credentials must be  for
13511              a 'client' endpoint, while for the incoming side the credentials
13512              must be for a 'server' endpoint. Setting this  will  enable  TLS
13513              for all migrations. The default is unset, resulting in unsecured
13514              migration at the QEMU level. (Since 2.7)
13515
13516       tls-hostname
13517              hostname of the target host for the migration. This is  required
13518              when using x509 based TLS credentials and the migration URI does
13519              not already include a hostname. For  example  if  using  fd:  or
13520              exec: based migration, the hostname must be provided so that the
13521              server's x509 certificate identity can be validated. (Since 2.7)
13522
13523       tls-authz
13524              ID of the 'authz' object subclass that provides  access  control
13525              checking  of  the TLS x509 certificate distinguished name.  This
13526              object is only resolved at time of use, so can  be  deleted  and
13527              recreated  on  the fly while the migration server is active.  If
13528              missing, it will default to denying access (Since 4.0)
13529
13530       max-bandwidth
13531              to set maximum speed for migration. maximum speed in  bytes  per
13532              second. (Since 2.8)
13533
13534       downtime-limit
13535              set  maximum  tolerated downtime for migration. maximum downtime
13536              in milliseconds (Since 2.8)
13537
13538       x-checkpoint-delay
13539              The delay time (in ms) between two COLO checkpoints in  periodic
13540              mode. (Since 2.8)
13541
13542       block-incremental
13543              Affects  how  much  storage is migrated when the block migration
13544              capability is enabled.  When false, the entire  storage  backing
13545              chain  is  migrated  into  a flattened image at the destination;
13546              when true, only the active qcow2 layer is migrated and the  des‐
13547              tination  must  already have access to the same backing chain as
13548              was used on the source.  (since 2.10)
13549
13550       multifd-channels
13551              Number of channels used to migrate data in parallel. This is the
13552              same  number that the number of sockets used for migration.  The
13553              default value is 2 (since 4.0)
13554
13555       xbzrle-cache-size
13556              cache size to be used by XBZRLE migration.  It  needs  to  be  a
13557              multiple of the target page size and a power of 2 (Since 2.11)
13558
13559       max-postcopy-bandwidth
13560              Background  transfer  bandwidth  during postcopy.  Defaults to 0
13561              (unlimited).  In bytes per second.  (Since 3.0)
13562
13563       max-cpu-throttle
13564              maximum cpu throttle percentage.  Defaults to 99. (Since 3.1)
13565
13566       multifd-compression
13567              Which compression method to use.  Defaults to none. (Since 5.0)
13568
13569       multifd-zlib-level
13570              Set the compression level to be used in live migration, the com‐
13571              pression  level  is an integer between 0 and 9, where 0 means no
13572              compression, 1 means the best compression  speed,  and  9  means
13573              best compression ratio which will consume more CPU.  Defaults to
13574              1. (Since 5.0)
13575
13576       multifd-zstd-level
13577              Set the compression level to be used in live migration, the com‐
13578              pression  level is an integer between 0 and 20, where 0 means no
13579              compression, 1 means the best compression speed,  and  20  means
13580              best compression ratio which will consume more CPU.  Defaults to
13581              1. (Since 5.0)
13582
13583       block-bitmap-mapping
13584              Maps block nodes and bitmaps on them to aliases for the  purpose
13585              of  dirty bitmap migration.  Such aliases may for example be the
13586              corresponding names on the opposite site.  The mapping  must  be
13587              one-to-one,  but  not  necessarily  complete: On the source, un‐
13588              mapped bitmaps and all bitmaps on unmapped  nodes  will  be  ig‐
13589              nored.   On  the  destination, encountering an unmapped alias in
13590              the incoming migration stream will result in a report,  and  all
13591              further bitmap migration data will then be discarded.  Note that
13592              the destination does not know about bitmaps it does not receive,
13593              so there is no limitation or requirement regarding the number of
13594              bitmaps received, or how they are named, or on which nodes  they
13595              are  placed.   By  default  (when  this parameter has never been
13596              set), bitmap names are mapped to themselves.  Nodes  are  mapped
13597              to  their  block  device name if there is one, and to their node
13598              name otherwise. (Since 5.2)
13599
13600   Since
13601       2.4
13602
13603   MigrateSetParameters (Object)
13604   Members
13605       announce-initial: int (optional)
13606              Initial delay (in milliseconds) before  sending  the  first  an‐
13607              nounce (Since 4.0)
13608
13609       announce-max: int (optional)
13610              Maximum delay (in milliseconds) between packets in the announce‐
13611              ment (Since 4.0)
13612
13613       announce-rounds: int (optional)
13614              Number of self-announce packets sent after migration (Since 4.0)
13615
13616       announce-step: int (optional)
13617              Increase in delay (in milliseconds) between  subsequent  packets
13618              in the announcement (Since 4.0)
13619
13620       compress-level: int (optional)
13621              compression level
13622
13623       compress-threads: int (optional)
13624              compression thread count
13625
13626       compress-wait-thread: boolean (optional)
13627              Controls  behavior  when  all  compression threads are currently
13628              busy. If true (default), wait for a free compression  thread  to
13629              become  available; otherwise, send the page uncompressed. (Since
13630              3.1)
13631
13632       decompress-threads: int (optional)
13633              decompression thread count
13634
13635       throttle-trigger-threshold: int (optional)
13636              The ratio of bytes_dirty_period and bytes_xfer_period to trigger
13637              throttling. It is expressed as percentage.  The default value is
13638              50. (Since 5.0)
13639
13640       cpu-throttle-initial: int (optional)
13641              Initial percentage of time guest cpus are throttled when  migra‐
13642              tion  auto-converge  is  activated.   The  default  value is 20.
13643              (Since 2.7)
13644
13645       cpu-throttle-increment: int (optional)
13646              throttle percentage increase  each  time  auto-converge  detects
13647              that  migration is not making progress. The default value is 10.
13648              (Since 2.7)
13649
13650       cpu-throttle-tailslow: boolean (optional)
13651              Make CPU throttling slower at tail stage At the  tail  stage  of
13652              throttling,  the Guest is very sensitive to CPU percentage while
13653              the cpu-throttle -increment is excessive usually at tail  stage.
13654              If  this  parameter  is true, we will compute the ideal CPU per‐
13655              centage used by the Guest, which may exactly make the dirty rate
13656              match  the  dirty  rate threshold. Then we will choose a smaller
13657              throttle increment between the one specified by cpu-throttle-in‐
13658              crement  and  the one generated by ideal CPU percentage.  There‐
13659              fore, it is compatible to traditional throttling, meanwhile  the
13660              throttle  increment  won't  be excessive at tail stage.  The de‐
13661              fault value is false. (Since 5.1)
13662
13663       tls-creds: StrOrNull (optional)
13664              ID of the 'tls-creds' object that provides credentials  for  es‐
13665              tablishing  a TLS connection over the migration data channel. On
13666              the outgoing side of the migration, the credentials must be  for
13667              a 'client' endpoint, while for the incoming side the credentials
13668              must be for a 'server' endpoint. Setting  this  to  a  non-empty
13669              string  enables  TLS  for all migrations.  An empty string means
13670              that QEMU will use plain text mode for  migration,  rather  than
13671              TLS  (Since  2.9)  Previously  (since 2.7), this was reported by
13672              omitting tls-creds instead.
13673
13674       tls-hostname: StrOrNull (optional)
13675              hostname of the target host for the migration. This is  required
13676              when using x509 based TLS credentials and the migration URI does
13677              not already include a hostname. For  example  if  using  fd:  or
13678              exec: based migration, the hostname must be provided so that the
13679              server's x509 certificate identity can be validated. (Since 2.7)
13680              An empty string means that QEMU will use the hostname associated
13681              with the migration URI, if any. (Since  2.9)  Previously  (since
13682              2.7), this was reported by omitting tls-hostname instead.
13683
13684       max-bandwidth: int (optional)
13685              to  set  maximum speed for migration. maximum speed in bytes per
13686              second. (Since 2.8)
13687
13688       downtime-limit: int (optional)
13689              set maximum tolerated downtime for migration.  maximum  downtime
13690              in milliseconds (Since 2.8)
13691
13692       x-checkpoint-delay: int (optional)
13693              the delay time between two COLO checkpoints. (Since 2.8)
13694
13695       block-incremental: boolean (optional)
13696              Affects  how  much  storage is migrated when the block migration
13697              capability is enabled.  When false, the entire  storage  backing
13698              chain  is  migrated  into  a flattened image at the destination;
13699              when true, only the active qcow2 layer is migrated and the  des‐
13700              tination  must  already have access to the same backing chain as
13701              was used on the source.  (since 2.10)
13702
13703       multifd-channels: int (optional)
13704              Number of channels used to migrate data in parallel. This is the
13705              same  number that the number of sockets used for migration.  The
13706              default value is 2 (since 4.0)
13707
13708       xbzrle-cache-size: int (optional)
13709              cache size to be used by XBZRLE migration.  It  needs  to  be  a
13710              multiple of the target page size and a power of 2 (Since 2.11)
13711
13712       max-postcopy-bandwidth: int (optional)
13713              Background  transfer  bandwidth  during postcopy.  Defaults to 0
13714              (unlimited).  In bytes per second.  (Since 3.0)
13715
13716       max-cpu-throttle: int (optional)
13717              maximum cpu throttle  percentage.   The  default  value  is  99.
13718              (Since 3.1)
13719
13720       multifd-compression: MultiFDCompression (optional)
13721              Which compression method to use.  Defaults to none. (Since 5.0)
13722
13723       multifd-zlib-level: int (optional)
13724              Set the compression level to be used in live migration, the com‐
13725              pression level is an integer between 0 and 9, where 0  means  no
13726              compression,  1  means  the  best compression speed, and 9 means
13727              best compression ratio which will consume more CPU.  Defaults to
13728              1. (Since 5.0)
13729
13730       multifd-zstd-level: int (optional)
13731              Set the compression level to be used in live migration, the com‐
13732              pression level is an integer between 0 and 20, where 0 means  no
13733              compression,  1  means  the best compression speed, and 20 means
13734              best compression ratio which will consume more CPU.  Defaults to
13735              1. (Since 5.0)
13736
13737       block-bitmap-mapping: array of BitmapMigrationNodeAlias (optional)
13738              Maps  block nodes and bitmaps on them to aliases for the purpose
13739              of dirty bitmap migration.  Such aliases may for example be  the
13740              corresponding  names  on the opposite site.  The mapping must be
13741              one-to-one, but not necessarily complete:  On  the  source,  un‐
13742              mapped  bitmaps  and  all  bitmaps on unmapped nodes will be ig‐
13743              nored.  On the destination, encountering an  unmapped  alias  in
13744              the  incoming  migration stream will result in a report, and all
13745              further bitmap migration data will then be discarded.  Note that
13746              the destination does not know about bitmaps it does not receive,
13747              so there is no limitation or requirement regarding the number of
13748              bitmaps  received, or how they are named, or on which nodes they
13749              are placed.  By default (when  this  parameter  has  never  been
13750              set),  bitmap  names are mapped to themselves.  Nodes are mapped
13751              to their block device name if there is one, and  to  their  node
13752              name otherwise. (Since 5.2)
13753
13754       tls-authz: StrOrNull (optional)
13755              Not documented
13756
13757   Since
13758       2.4
13759
13760   migrate-set-parameters (Command)
13761       Set various migration parameters.
13762
13763   Arguments
13764       The members of MigrateSetParameters
13765
13766   Since
13767       2.4
13768
13769   Example
13770          -> { "execute": "migrate-set-parameters" ,
13771               "arguments": { "compress-level": 1 } }
13772
13773   MigrationParameters (Object)
13774       The optional members aren't actually optional.
13775
13776   Members
13777       announce-initial: int (optional)
13778              Initial  delay  (in  milliseconds)  before sending the first an‐
13779              nounce (Since 4.0)
13780
13781       announce-max: int (optional)
13782              Maximum delay (in milliseconds) between packets in the announce‐
13783              ment (Since 4.0)
13784
13785       announce-rounds: int (optional)
13786              Number of self-announce packets sent after migration (Since 4.0)
13787
13788       announce-step: int (optional)
13789              Increase  in  delay (in milliseconds) between subsequent packets
13790              in the announcement (Since 4.0)
13791
13792       compress-level: int (optional)
13793              compression level
13794
13795       compress-threads: int (optional)
13796              compression thread count
13797
13798       compress-wait-thread: boolean (optional)
13799              Controls behavior when all  compression  threads  are  currently
13800              busy.  If  true (default), wait for a free compression thread to
13801              become available; otherwise, send the page uncompressed.  (Since
13802              3.1)
13803
13804       decompress-threads: int (optional)
13805              decompression thread count
13806
13807       throttle-trigger-threshold: int (optional)
13808              The ratio of bytes_dirty_period and bytes_xfer_period to trigger
13809              throttling. It is expressed as percentage.  The default value is
13810              50. (Since 5.0)
13811
13812       cpu-throttle-initial: int (optional)
13813              Initial  percentage of time guest cpus are throttled when migra‐
13814              tion auto-converge is activated.  (Since 2.7)
13815
13816       cpu-throttle-increment: int (optional)
13817              throttle percentage increase  each  time  auto-converge  detects
13818              that migration is not making progress. (Since 2.7)
13819
13820       cpu-throttle-tailslow: boolean (optional)
13821              Make  CPU  throttling  slower at tail stage At the tail stage of
13822              throttling, the Guest is very sensitive to CPU percentage  while
13823              the  cpu-throttle -increment is excessive usually at tail stage.
13824              If this parameter is true, we will compute the  ideal  CPU  per‐
13825              centage used by the Guest, which may exactly make the dirty rate
13826              match the dirty rate threshold. Then we will  choose  a  smaller
13827              throttle increment between the one specified by cpu-throttle-in‐
13828              crement and the one generated by ideal CPU  percentage.   There‐
13829              fore,  it is compatible to traditional throttling, meanwhile the
13830              throttle increment won't be excessive at tail  stage.   The  de‐
13831              fault value is false. (Since 5.1)
13832
13833       tls-creds: string (optional)
13834              ID  of  the 'tls-creds' object that provides credentials for es‐
13835              tablishing a TLS connection over the migration data channel.  On
13836              the  outgoing side of the migration, the credentials must be for
13837              a 'client' endpoint, while for the incoming side the credentials
13838              must  be  for  a  'server' endpoint.  An empty string means that
13839              QEMU will use plain text mode for  migration,  rather  than  TLS
13840              (Since  2.7)  Note:  2.8  reports this by omitting tls-creds in‐
13841              stead.
13842
13843       tls-hostname: string (optional)
13844              hostname of the target host for the migration. This is  required
13845              when using x509 based TLS credentials and the migration URI does
13846              not already include a hostname. For  example  if  using  fd:  or
13847              exec: based migration, the hostname must be provided so that the
13848              server's x509 certificate identity can be validated. (Since 2.7)
13849              An empty string means that QEMU will use the hostname associated
13850              with the migration URI, if any. (Since 2.9)  Note:  2.8  reports
13851              this by omitting tls-hostname instead.
13852
13853       tls-authz: string (optional)
13854              ID  of  the 'authz' object subclass that provides access control
13855              checking of the TLS x509 certificate distinguished name.  (Since
13856              4.0)
13857
13858       max-bandwidth: int (optional)
13859              to  set  maximum speed for migration. maximum speed in bytes per
13860              second. (Since 2.8)
13861
13862       downtime-limit: int (optional)
13863              set maximum tolerated downtime for migration.  maximum  downtime
13864              in milliseconds (Since 2.8)
13865
13866       x-checkpoint-delay: int (optional)
13867              the delay time between two COLO checkpoints. (Since 2.8)
13868
13869       block-incremental: boolean (optional)
13870              Affects  how  much  storage is migrated when the block migration
13871              capability is enabled.  When false, the entire  storage  backing
13872              chain  is  migrated  into  a flattened image at the destination;
13873              when true, only the active qcow2 layer is migrated and the  des‐
13874              tination  must  already have access to the same backing chain as
13875              was used on the source.  (since 2.10)
13876
13877       multifd-channels: int (optional)
13878              Number of channels used to migrate data in parallel. This is the
13879              same  number that the number of sockets used for migration.  The
13880              default value is 2 (since 4.0)
13881
13882       xbzrle-cache-size: int (optional)
13883              cache size to be used by XBZRLE migration.  It  needs  to  be  a
13884              multiple of the target page size and a power of 2 (Since 2.11)
13885
13886       max-postcopy-bandwidth: int (optional)
13887              Background  transfer  bandwidth  during postcopy.  Defaults to 0
13888              (unlimited).  In bytes per second.  (Since 3.0)
13889
13890       max-cpu-throttle: int (optional)
13891              maximum cpu throttle percentage.  Defaults to 99.  (Since 3.1)
13892
13893       multifd-compression: MultiFDCompression (optional)
13894              Which compression method to use.  Defaults to none. (Since 5.0)
13895
13896       multifd-zlib-level: int (optional)
13897              Set the compression level to be used in live migration, the com‐
13898              pression  level  is an integer between 0 and 9, where 0 means no
13899              compression, 1 means the best compression  speed,  and  9  means
13900              best compression ratio which will consume more CPU.  Defaults to
13901              1. (Since 5.0)
13902
13903       multifd-zstd-level: int (optional)
13904              Set the compression level to be used in live migration, the com‐
13905              pression  level is an integer between 0 and 20, where 0 means no
13906              compression, 1 means the best compression speed,  and  20  means
13907              best compression ratio which will consume more CPU.  Defaults to
13908              1. (Since 5.0)
13909
13910       block-bitmap-mapping: array of BitmapMigrationNodeAlias (optional)
13911              Maps block nodes and bitmaps on them to aliases for the  purpose
13912              of  dirty bitmap migration.  Such aliases may for example be the
13913              corresponding names on the opposite site.  The mapping  must  be
13914              one-to-one,  but  not  necessarily  complete: On the source, un‐
13915              mapped bitmaps and all bitmaps on unmapped  nodes  will  be  ig‐
13916              nored.   On  the  destination, encountering an unmapped alias in
13917              the incoming migration stream will result in a report,  and  all
13918              further bitmap migration data will then be discarded.  Note that
13919              the destination does not know about bitmaps it does not receive,
13920              so there is no limitation or requirement regarding the number of
13921              bitmaps received, or how they are named, or on which nodes  they
13922              are  placed.   By  default  (when  this parameter has never been
13923              set), bitmap names are mapped to themselves.  Nodes  are  mapped
13924              to  their  block  device name if there is one, and to their node
13925              name otherwise. (Since 5.2)
13926
13927   Since
13928       2.4
13929
13930   query-migrate-parameters (Command)
13931       Returns information about the current migration parameters
13932
13933   Returns
13934       MigrationParameters
13935
13936   Since
13937       2.4
13938
13939   Example
13940          -> { "execute": "query-migrate-parameters" }
13941          <- { "return": {
13942                   "decompress-threads": 2,
13943                   "cpu-throttle-increment": 10,
13944                   "compress-threads": 8,
13945                   "compress-level": 1,
13946                   "cpu-throttle-initial": 20,
13947                   "max-bandwidth": 33554432,
13948                   "downtime-limit": 300
13949                }
13950             }
13951
13952   client_migrate_info (Command)
13953       Set migration information for remote display.  This  makes  the  server
13954       ask the client to automatically reconnect using the new parameters once
13955       migration finished successfully.  Only implemented for SPICE.
13956
13957   Arguments
13958       protocol: string
13959              must be "spice"
13960
13961       hostname: string
13962              migration target hostname
13963
13964       port: int (optional)
13965              spice tcp port for plaintext channels
13966
13967       tls-port: int (optional)
13968              spice tcp port for tls-secured channels
13969
13970       cert-subject: string (optional)
13971              server certificate subject
13972
13973   Since
13974       0.14
13975
13976   Example
13977          -> { "execute": "client_migrate_info",
13978               "arguments": { "protocol": "spice",
13979                              "hostname": "virt42.lab.kraxel.org",
13980                              "port": 1234 } }
13981          <- { "return": {} }
13982
13983   migrate-start-postcopy (Command)
13984       Followup to a migration command to switch  the  migration  to  postcopy
13985       mode.   The postcopy-ram capability must be set on both source and des‐
13986       tination before the original migration command.
13987
13988   Since
13989       2.5
13990
13991   Example
13992          -> { "execute": "migrate-start-postcopy" }
13993          <- { "return": {} }
13994
13995   MIGRATION (Event)
13996       Emitted when a migration event happens
13997
13998   Arguments
13999       status: MigrationStatus
14000              MigrationStatus describing the current migration status.
14001
14002   Since
14003       2.4
14004
14005   Example
14006          <- {"timestamp": {"seconds": 1432121972, "microseconds": 744001},
14007              "event": "MIGRATION",
14008              "data": {"status": "completed"} }
14009
14010   MIGRATION_PASS (Event)
14011       Emitted from the source side of a migration at the start of  each  pass
14012       (when it syncs the dirty bitmap)
14013
14014   Arguments
14015       pass: int
14016              An incrementing count (starting at 1 on the first pass)
14017
14018   Since
14019       2.6
14020
14021   Example
14022          { "timestamp": {"seconds": 1449669631, "microseconds": 239225},
14023            "event": "MIGRATION_PASS", "data": {"pass": 2} }
14024
14025   COLOMessage (Enum)
14026       The message transmission between Primary side and Secondary side.
14027
14028   Values
14029       checkpoint-ready
14030              Secondary VM (SVM) is ready for checkpointing
14031
14032       checkpoint-request
14033              Primary VM (PVM) tells SVM to prepare for checkpointing
14034
14035       checkpoint-reply
14036              SVM gets PVM's checkpoint request
14037
14038       vmstate-send
14039              VM's state will be sent by PVM.
14040
14041       vmstate-size
14042              The total size of VMstate.
14043
14044       vmstate-received
14045              VM's state has been received by SVM.
14046
14047       vmstate-loaded
14048              VM's state has been loaded by SVM.
14049
14050   Since
14051       2.8
14052
14053   COLOMode (Enum)
14054       The COLO current mode.
14055
14056   Values
14057       none   COLO is disabled.
14058
14059       primary
14060              COLO node in primary side.
14061
14062       secondary
14063              COLO node in slave side.
14064
14065   Since
14066       2.8
14067
14068   FailoverStatus (Enum)
14069       An enumeration of COLO failover status
14070
14071   Values
14072       none   no failover has ever happened
14073
14074       require
14075              got failover requirement but not handled
14076
14077       active in the process of doing failover
14078
14079       completed
14080              finish the process of failover
14081
14082       relaunch
14083              restart  the failover process, from 'none' -> 'completed' (Since
14084              2.9)
14085
14086   Since
14087       2.8
14088
14089   COLO_EXIT (Event)
14090       Emitted when VM finishes COLO mode due to some errors happening  or  at
14091       the request of users.
14092
14093   Arguments
14094       mode: COLOMode
14095              report COLO mode when COLO exited.
14096
14097       reason: COLOExitReason
14098              describes the reason for the COLO exit.
14099
14100   Since
14101       3.1
14102
14103   Example
14104          <- { "timestamp": {"seconds": 2032141960, "microseconds": 417172},
14105               "event": "COLO_EXIT", "data": {"mode": "primary", "reason": "request" } }
14106
14107   COLOExitReason (Enum)
14108       The reason for a COLO exit.
14109
14110   Values
14111       none   failover  has  never  happened. This state does not occur in the
14112              COLO_EXIT  event,  and  is  only  visible  in  the   result   of
14113              query-colo-status.
14114
14115       request
14116              COLO exit is due to an external request.
14117
14118       error  COLO exit is due to an internal error.
14119
14120       processing
14121              COLO is currently handling a failover (since 4.0).
14122
14123   Since
14124       3.1
14125
14126   x-colo-lost-heartbeat (Command)
14127       Tell qemu that heartbeat is lost, request it to do takeover procedures.
14128       If this command is sent to the PVM, the Primary  side  will  exit  COLO
14129       mode.   If  sent to the Secondary, the Secondary side will run failover
14130       work, then takes over server operation to become the service VM.
14131
14132   Since
14133       2.8
14134
14135   Example
14136          -> { "execute": "x-colo-lost-heartbeat" }
14137          <- { "return": {} }
14138
14139   migrate_cancel (Command)
14140       Cancel the current executing migration process.
14141
14142   Returns
14143       nothing on success
14144
14145   Notes
14146       This command succeeds even if there is no migration process running.
14147
14148   Since
14149       0.14
14150
14151   Example
14152          -> { "execute": "migrate_cancel" }
14153          <- { "return": {} }
14154
14155   migrate-continue (Command)
14156       Continue migration when it's in a paused state.
14157
14158   Arguments
14159       state: MigrationStatus
14160              The state the migration is currently expected to be in
14161
14162   Returns
14163       nothing on success
14164
14165   Since
14166       2.11
14167
14168   Example
14169          -> { "execute": "migrate-continue" , "arguments":
14170               { "state": "pre-switchover" } }
14171          <- { "return": {} }
14172
14173   migrate (Command)
14174       Migrates the current running guest to another Virtual Machine.
14175
14176   Arguments
14177       uri: string
14178              the Uniform Resource Identifier of the destination VM
14179
14180       blk: boolean (optional)
14181              do block migration (full disk copy)
14182
14183       inc: boolean (optional)
14184              incremental disk copy migration
14185
14186       detach: boolean (optional)
14187              this argument exists only for compatibility reasons and  is  ig‐
14188              nored by QEMU
14189
14190       resume: boolean (optional)
14191              resume one paused migration, default "off". (since 3.0)
14192
14193   Returns
14194       nothing on success
14195
14196   Since
14197       0.14
14198
14199   Notes
14200       1. The  'query-migrate'  command  should  be  used to check migration's
14201          progress and final result (this information is provided by the 'sta‐
14202          tus' member)
14203
14204       2. All boolean arguments default to false
14205
14206       3. The  user  Monitor's  "detach" argument is invalid in QMP and should
14207          not be used
14208
14209   Example
14210          -> { "execute": "migrate", "arguments": { "uri": "tcp:0:4446" } }
14211          <- { "return": {} }
14212
14213   migrate-incoming (Command)
14214       Start an incoming migration, the qemu must have been started with  -in‐
14215       coming defer
14216
14217   Arguments
14218       uri: string
14219              The  Uniform  Resource  Identifier identifying the source or ad‐
14220              dress to listen on
14221
14222   Returns
14223       nothing on success
14224
14225   Since
14226       2.3
14227
14228   Notes
14229       1. It's a bad idea to use a string for the uri, but it  needs  to  stay
14230          compatible  with  -incoming and the format of the uri is already ex‐
14231          posed above libvirt.
14232
14233       2. QEMU must be started with -incoming defer to allow  migrate-incoming
14234          to be used.
14235
14236       3. The uri format is the same as for -incoming
14237
14238   Example
14239          -> { "execute": "migrate-incoming",
14240               "arguments": { "uri": "tcp::4446" } }
14241          <- { "return": {} }
14242
14243   xen-save-devices-state (Command)
14244       Save the state of all devices to file. The RAM and the block devices of
14245       the VM are not saved by this command.
14246
14247   Arguments
14248       filename: string
14249              the file to save the state of the devices to as binary data. See
14250              xen-save-devices-state.txt  for a description of the binary for‐
14251              mat.
14252
14253       live: boolean (optional)
14254              Optional argument to ask QEMU to treat this command as part of a
14255              live migration. Default to true. (since 2.11)
14256
14257   Returns
14258       Nothing on success
14259
14260   Since
14261       1.1
14262
14263   Example
14264          -> { "execute": "xen-save-devices-state",
14265               "arguments": { "filename": "/tmp/save" } }
14266          <- { "return": {} }
14267
14268   xen-set-global-dirty-log (Command)
14269       Enable or disable the global dirty log mode.
14270
14271   Arguments
14272       enable: boolean
14273              true to enable, false to disable.
14274
14275   Returns
14276       nothing
14277
14278   Since
14279       1.3
14280
14281   Example
14282          -> { "execute": "xen-set-global-dirty-log",
14283               "arguments": { "enable": true } }
14284          <- { "return": {} }
14285
14286   xen-load-devices-state (Command)
14287       Load  the state of all devices from file. The RAM and the block devices
14288       of the VM are not loaded by this command.
14289
14290   Arguments
14291       filename: string
14292              the file to load the state of the devices from as  binary  data.
14293              See  xen-save-devices-state.txt  for a description of the binary
14294              format.
14295
14296   Since
14297       2.7
14298
14299   Example
14300          -> { "execute": "xen-load-devices-state",
14301               "arguments": { "filename": "/tmp/resume" } }
14302          <- { "return": {} }
14303
14304   xen-set-replication (Command)
14305       Enable or disable replication.
14306
14307   Arguments
14308       enable: boolean
14309              true to enable, false to disable.
14310
14311       primary: boolean
14312              true for primary or false for secondary.
14313
14314       failover: boolean (optional)
14315              true to do failover, false to stop. but cannot be  specified  if
14316              'enable' is true. default value is false.
14317
14318   Returns
14319       nothing.
14320
14321   Example
14322          -> { "execute": "xen-set-replication",
14323               "arguments": {"enable": true, "primary": false} }
14324          <- { "return": {} }
14325
14326   Since
14327       2.9
14328
14329   If
14330       defined(CONFIG_REPLICATION)
14331
14332   ReplicationStatus (Object)
14333       The result format for 'query-xen-replication-status'.
14334
14335   Members
14336       error: boolean
14337              true if an error happened, false if replication is normal.
14338
14339       desc: string (optional)
14340              the  human  readable  error  description  string,  when error is
14341              'true'.
14342
14343   Since
14344       2.9
14345
14346   If
14347       defined(CONFIG_REPLICATION)
14348
14349   query-xen-replication-status (Command)
14350       Query replication status while the vm is running.
14351
14352   Returns
14353       A ReplicationResult object showing the status.
14354
14355   Example
14356          -> { "execute": "query-xen-replication-status" }
14357          <- { "return": { "error": false } }
14358
14359   Since
14360       2.9
14361
14362   If
14363       defined(CONFIG_REPLICATION)
14364
14365   xen-colo-do-checkpoint (Command)
14366       Xen uses this command to notify replication to trigger a checkpoint.
14367
14368   Returns
14369       nothing.
14370
14371   Example
14372          -> { "execute": "xen-colo-do-checkpoint" }
14373          <- { "return": {} }
14374
14375   Since
14376       2.9
14377
14378   If
14379       defined(CONFIG_REPLICATION)
14380
14381   COLOStatus (Object)
14382       The result format for 'query-colo-status'.
14383
14384   Members
14385       mode: COLOMode
14386              COLO running mode. If COLO is running, this  field  will  return
14387              'primary' or 'secondary'.
14388
14389       last-mode: COLOMode
14390              COLO  last running mode. If COLO is running, this field will re‐
14391              turn same like mode field, after failover we can use this  field
14392              to get last colo mode. (since 4.0)
14393
14394       reason: COLOExitReason
14395              describes the reason for the COLO exit.
14396
14397   Since
14398       3.1
14399
14400   query-colo-status (Command)
14401       Query COLO status while the vm is running.
14402
14403   Returns
14404       A COLOStatus object showing the status.
14405
14406   Example
14407          -> { "execute": "query-colo-status" }
14408          <- { "return": { "mode": "primary", "reason": "request" } }
14409
14410   Since
14411       3.1
14412
14413   migrate-recover (Command)
14414       Provide a recovery migration stream URI.
14415
14416   Arguments
14417       uri: string
14418              the URI to be used for the recovery of migration stream.
14419
14420   Returns
14421       nothing.
14422
14423   Example
14424          -> { "execute": "migrate-recover",
14425               "arguments": { "uri": "tcp:192.168.1.200:12345" } }
14426          <- { "return": {} }
14427
14428   Since
14429       3.0
14430
14431   migrate-pause (Command)
14432       Pause a migration.  Currently it only supports postcopy.
14433
14434   Returns
14435       nothing.
14436
14437   Example
14438          -> { "execute": "migrate-pause" }
14439          <- { "return": {} }
14440
14441   Since
14442       3.0
14443
14444   UNPLUG_PRIMARY (Event)
14445       Emitted  from  source  side  of  a  migration  when  migration state is
14446       WAIT_UNPLUG. Device was unplugged by guest  operating  system.   Device
14447       resources  in QEMU are kept on standby to be able to re-plug it in case
14448       of migration failure.
14449
14450   Arguments
14451       device-id: string
14452              QEMU device id of the unplugged device
14453
14454   Since
14455       4.2
14456
14457   Example
14458          {"event": "UNPLUG_PRIMARY", "data": {"device-id": "hostdev0"} }
14459
14460   DirtyRateStatus (Enum)
14461       An enumeration of dirtyrate status.
14462
14463   Values
14464       unstarted
14465              the dirtyrate thread has not been started.
14466
14467       measuring
14468              the dirtyrate thread is measuring.
14469
14470       measured
14471              the dirtyrate thread has measured and results are available.
14472
14473   Since
14474       5.2
14475
14476   DirtyRateInfo (Object)
14477       Information about current dirty page rate of vm.
14478
14479   Members
14480       dirty-rate: int (optional)
14481              an estimate of the dirty page rate of the VM in units  of  MB/s,
14482              present only when estimating the rate has completed.
14483
14484       status: DirtyRateStatus
14485              status containing dirtyrate query status includes 'unstarted' or
14486              'measuring' or 'measured'
14487
14488       start-time: int
14489              start time in units of second for calculation
14490
14491       calc-time: int
14492              time in units of second for sample dirty pages
14493
14494       sample-pages: int
14495              page count per GB for sample dirty pages the  default  value  is
14496              512 (since 6.1)
14497
14498   Since
14499       5.2
14500
14501   calc-dirty-rate (Command)
14502       start calculating dirty page rate for vm
14503
14504   Arguments
14505       calc-time: int
14506              time in units of second for sample dirty pages
14507
14508       sample-pages: int (optional)
14509              page  count  per  GB for sample dirty pages the default value is
14510              512 (since 6.1)
14511
14512   Since
14513       5.2
14514
14515   Example
14516          {"command": "calc-dirty-rate", "data": {"calc-time": 1,
14517                                                    'sample-pages': 512} }
14518
14519   query-dirty-rate (Command)
14520       query dirty page rate in units of MB/s for vm
14521
14522   Since
14523       5.2
14524
14525   snapshot-save (Command)
14526       Save a VM snapshot
14527
14528   Arguments
14529       job-id: string
14530              identifier for the newly created job
14531
14532       tag: string
14533              name of the snapshot to create
14534
14535       vmstate: string
14536              block device node name to save vmstate to
14537
14538       devices: array of string
14539              list of block device node names to save a snapshot to
14540       Applications should not assume that the snapshot save is complete  when
14541       this  command returns. The job commands / events must be used to deter‐
14542       mine completion and to fetch details of any errors that arise.
14543
14544       Note that execution of the guest CPUs may be stopped during the time it
14545       takes  to  save  the snapshot. A future version of QEMU may ensure CPUs
14546       are executing continuously.
14547
14548       It is strongly recommended that devices contain all writable block  de‐
14549       vice nodes if a consistent snapshot is required.
14550
14551       If tag already exists, an error will be reported
14552
14553   Returns
14554       nothing
14555
14556   Example
14557          -> { "execute": "snapshot-save",
14558               "data": {
14559                  "job-id": "snapsave0",
14560                  "tag": "my-snap",
14561                  "vmstate": "disk0",
14562                  "devices": ["disk0", "disk1"]
14563               }
14564             }
14565          <- { "return": { } }
14566          <- {"event": "JOB_STATUS_CHANGE",
14567              "data": {"status": "created", "id": "snapsave0"}}
14568          <- {"event": "JOB_STATUS_CHANGE",
14569              "data": {"status": "running", "id": "snapsave0"}}
14570          <- {"event": "STOP"}
14571          <- {"event": "RESUME"}
14572          <- {"event": "JOB_STATUS_CHANGE",
14573              "data": {"status": "waiting", "id": "snapsave0"}}
14574          <- {"event": "JOB_STATUS_CHANGE",
14575              "data": {"status": "pending", "id": "snapsave0"}}
14576          <- {"event": "JOB_STATUS_CHANGE",
14577              "data": {"status": "concluded", "id": "snapsave0"}}
14578          -> {"execute": "query-jobs"}
14579          <- {"return": [{"current-progress": 1,
14580                          "status": "concluded",
14581                          "total-progress": 1,
14582                          "type": "snapshot-save",
14583                          "id": "snapsave0"}]}
14584
14585   Since
14586       6.0
14587
14588   snapshot-load (Command)
14589       Load a VM snapshot
14590
14591   Arguments
14592       job-id: string
14593              identifier for the newly created job
14594
14595       tag: string
14596              name of the snapshot to load.
14597
14598       vmstate: string
14599              block device node name to load vmstate from
14600
14601       devices: array of string
14602              list of block device node names to load a snapshot from
14603       Applications  should not assume that the snapshot load is complete when
14604       this command returns. The job commands / events must be used to  deter‐
14605       mine completion and to fetch details of any errors that arise.
14606
14607       Note  that  execution of the guest CPUs will be stopped during the time
14608       it takes to load the snapshot.
14609
14610       It is strongly recommended that devices contain all writable block  de‐
14611       vice  nodes that can have changed since the original snapshot-save com‐
14612       mand execution.
14613
14614   Returns
14615       nothing
14616
14617   Example
14618          -> { "execute": "snapshot-load",
14619               "data": {
14620                  "job-id": "snapload0",
14621                  "tag": "my-snap",
14622                  "vmstate": "disk0",
14623                  "devices": ["disk0", "disk1"]
14624               }
14625             }
14626          <- { "return": { } }
14627          <- {"event": "JOB_STATUS_CHANGE",
14628              "data": {"status": "created", "id": "snapload0"}}
14629          <- {"event": "JOB_STATUS_CHANGE",
14630              "data": {"status": "running", "id": "snapload0"}}
14631          <- {"event": "STOP"}
14632          <- {"event": "RESUME"}
14633          <- {"event": "JOB_STATUS_CHANGE",
14634              "data": {"status": "waiting", "id": "snapload0"}}
14635          <- {"event": "JOB_STATUS_CHANGE",
14636              "data": {"status": "pending", "id": "snapload0"}}
14637          <- {"event": "JOB_STATUS_CHANGE",
14638              "data": {"status": "concluded", "id": "snapload0"}}
14639          -> {"execute": "query-jobs"}
14640          <- {"return": [{"current-progress": 1,
14641                          "status": "concluded",
14642                          "total-progress": 1,
14643                          "type": "snapshot-load",
14644                          "id": "snapload0"}]}
14645
14646   Since
14647       6.0
14648
14649   snapshot-delete (Command)
14650       Delete a VM snapshot
14651
14652   Arguments
14653       job-id: string
14654              identifier for the newly created job
14655
14656       tag: string
14657              name of the snapshot to delete.
14658
14659       devices: array of string
14660              list of block device node names to delete a snapshot from
14661       Applications should not assume that the  snapshot  delete  is  complete
14662       when  this  command  returns. The job commands / events must be used to
14663       determine completion and to fetch details of any errors that arise.
14664
14665   Returns
14666       nothing
14667
14668   Example
14669          -> { "execute": "snapshot-delete",
14670               "data": {
14671                  "job-id": "snapdelete0",
14672                  "tag": "my-snap",
14673                  "devices": ["disk0", "disk1"]
14674               }
14675             }
14676          <- { "return": { } }
14677          <- {"event": "JOB_STATUS_CHANGE",
14678              "data": {"status": "created", "id": "snapdelete0"}}
14679          <- {"event": "JOB_STATUS_CHANGE",
14680              "data": {"status": "running", "id": "snapdelete0"}}
14681          <- {"event": "JOB_STATUS_CHANGE",
14682              "data": {"status": "waiting", "id": "snapdelete0"}}
14683          <- {"event": "JOB_STATUS_CHANGE",
14684              "data": {"status": "pending", "id": "snapdelete0"}}
14685          <- {"event": "JOB_STATUS_CHANGE",
14686              "data": {"status": "concluded", "id": "snapdelete0"}}
14687          -> {"execute": "query-jobs"}
14688          <- {"return": [{"current-progress": 1,
14689                          "status": "concluded",
14690                          "total-progress": 1,
14691                          "type": "snapshot-delete",
14692                          "id": "snapdelete0"}]}
14693
14694   Since
14695       6.0
14696

TRANSACTIONS

14698   Abort (Object)
14699       This action can be used to test transaction failure.
14700
14701   Since
14702       1.6
14703
14704   ActionCompletionMode (Enum)
14705       An enumeration of Transactional completion modes.
14706
14707   Values
14708       individual
14709              Do not attempt to cancel any other Actions if any  Actions  fail
14710              after  the  Transaction  request  succeeds. All Actions that can
14711              complete successfully will do  so  without  waiting  on  others.
14712              This is the default.
14713
14714       grouped
14715              If  any  Action fails after the Transaction succeeds, cancel all
14716              Actions. Actions do not complete until all Actions are ready  to
14717              complete.  May  be  rejected by Actions that do not support this
14718              completion mode.
14719
14720   Since
14721       2.5
14722
14723   TransactionAction (Object)
14724       A discriminated record of operations that can be performed with  trans‐
14725       action. Action type can be:
14726
14727abort: since 1.6
14728
14729block-dirty-bitmap-add: since 2.5
14730
14731block-dirty-bitmap-remove: since 4.2
14732
14733block-dirty-bitmap-clear: since 2.5
14734
14735block-dirty-bitmap-enable: since 4.0
14736
14737block-dirty-bitmap-disable: since 4.0
14738
14739block-dirty-bitmap-merge: since 4.0
14740
14741blockdev-backup: since 2.3
14742
14743blockdev-snapshot: since 2.5
14744
14745blockdev-snapshot-internal-sync: since 1.7
14746
14747blockdev-snapshot-sync: since 1.1
14748
14749drive-backup: since 1.6
14750
14751   Members
14752       type   One of abort, block-dirty-bitmap-add, block-dirty-bitmap-remove,
14753              block-dirty-bitmap-clear,             block-dirty-bitmap-enable,
14754              block-dirty-bitmap-disable,   block-dirty-bitmap-merge,   block‐
14755              dev-backup, blockdev-snapshot,  blockdev-snapshot-internal-sync,
14756              blockdev-snapshot-sync, drive-backup
14757
14758       data: Abort when type is "abort"
14759
14760       data: BlockDirtyBitmapAdd when type is "block-dirty-bitmap-add"
14761
14762       data: BlockDirtyBitmap when type is "block-dirty-bitmap-remove"
14763
14764       data: BlockDirtyBitmap when type is "block-dirty-bitmap-clear"
14765
14766       data: BlockDirtyBitmap when type is "block-dirty-bitmap-enable"
14767
14768       data: BlockDirtyBitmap when type is "block-dirty-bitmap-disable"
14769
14770       data: BlockDirtyBitmapMerge when type is "block-dirty-bitmap-merge"
14771
14772       data: BlockdevBackup when type is "blockdev-backup"
14773
14774       data: BlockdevSnapshot when type is "blockdev-snapshot"
14775
14776       data:  BlockdevSnapshotInternal  when type is "blockdev-snapshot-inter‐
14777       nal-sync"
14778
14779       data: BlockdevSnapshotSync when type is "blockdev-snapshot-sync"
14780
14781       data: DriveBackup when type is "drive-backup"
14782
14783   Since
14784       1.1
14785
14786   TransactionProperties (Object)
14787       Optional arguments to modify the behavior of a Transaction.
14788
14789   Members
14790       completion-mode: ActionCompletionMode (optional)
14791              Controls how jobs launched asynchronously by Actions  will  com‐
14792              plete or fail as a group.  See ActionCompletionMode for details.
14793
14794   Since
14795       2.5
14796
14797   transaction (Command)
14798       Executes  a  number  of transactionable QMP commands atomically. If any
14799       operation fails, then the entire set of actions will be  abandoned  and
14800       the appropriate error returned.
14801
14802       For external snapshots, the dictionary contains the device, the file to
14803       use for the new snapshot, and the format.  The default format,  if  not
14804       specified, is qcow2.
14805
14806       Each  new  snapshot  defaults to being created by QEMU (wiping any con‐
14807       tents if the file already exists), but it is also possible to reuse  an
14808       externally-created  file.   In  the latter case, you should ensure that
14809       the new image file has the same contents as the current one; QEMU  can‐
14810       not  perform any meaningful check.  Typically this is achieved by using
14811       the current image file as the backing file for the new image.
14812
14813       On failure, the original disks pre-snapshot attempt will be used.
14814
14815       For internal snapshots, the dictionary  contains  the  device  and  the
14816       snapshot's name.  If an internal snapshot matching name already exists,
14817       the request will be rejected.  Only some image formats support it,  for
14818       example, qcow2, and rbd,
14819
14820       On failure, qemu will try delete the newly created internal snapshot in
14821       the transaction.  When an I/O error occurs during  deletion,  the  user
14822       needs to fix it later with qemu-img or other command.
14823
14824   Arguments
14825       actions: array of TransactionAction
14826              List of TransactionAction; information needed for the respective
14827              operations.
14828
14829       properties: TransactionProperties (optional)
14830              structure of additional options to control the execution of  the
14831              transaction. See TransactionProperties for additional detail.
14832
14833   Returns
14834       nothing on success
14835
14836       Errors depend on the operations of the transaction
14837
14838   Note
14839       The  transaction aborts on the first failure.  Therefore, there will be
14840       information on only one failed operation returned in  an  error  condi‐
14841       tion, and subsequent actions will not have been attempted.
14842
14843   Since
14844       1.1
14845
14846   Example
14847          -> { "execute": "transaction",
14848               "arguments": { "actions": [
14849                   { "type": "blockdev-snapshot-sync", "data" : { "device": "ide-hd0",
14850                                               "snapshot-file": "/some/place/my-image",
14851                                               "format": "qcow2" } },
14852                   { "type": "blockdev-snapshot-sync", "data" : { "node-name": "myfile",
14853                                               "snapshot-file": "/some/place/my-image2",
14854                                               "snapshot-node-name": "node3432",
14855                                               "mode": "existing",
14856                                               "format": "qcow2" } },
14857                   { "type": "blockdev-snapshot-sync", "data" : { "device": "ide-hd1",
14858                                               "snapshot-file": "/some/place/my-image2",
14859                                               "mode": "existing",
14860                                               "format": "qcow2" } },
14861                   { "type": "blockdev-snapshot-internal-sync", "data" : {
14862                                               "device": "ide-hd2",
14863                                               "name": "snapshot0" } } ] } }
14864          <- { "return": {} }
14865

TRACING

14867   TraceEventState (Enum)
14868       State of a tracing event.
14869
14870   Values
14871       unavailable
14872              The event is statically disabled.
14873
14874       disabled
14875              The event is dynamically disabled.
14876
14877       enabled
14878              The event is dynamically enabled.
14879
14880   Since
14881       2.2
14882
14883   TraceEventInfo (Object)
14884       Information of a tracing event.
14885
14886   Members
14887       name: string
14888              Event name.
14889
14890       state: TraceEventState
14891              Tracing state.
14892
14893       vcpu: boolean
14894              Whether this is a per-vCPU event (since 2.7).
14895       An   event   is   per-vCPU  if  it  has  the  "vcpu"  property  in  the
14896       "trace-events" files.
14897
14898   Since
14899       2.2
14900
14901   trace-event-get-state (Command)
14902       Query the state of events.
14903
14904   Arguments
14905       name: string
14906              Event name pattern (case-sensitive glob).
14907
14908       vcpu: int (optional)
14909              The vCPU to query (any by default; since 2.7).
14910
14911   Returns
14912       a list of TraceEventInfo for the matching events
14913
14914       An event is returned if:
14915
14916       • its name matches the name pattern, and
14917
14918       • if vcpu is given, the event has the "vcpu" property.
14919
14920       Therefore, if vcpu is given, the operation  will  only  match  per-vCPU
14921       events,  returning  their state on the specified vCPU. Special case: if
14922       name is an exact match, vcpu is given and the event does not  have  the
14923       "vcpu" property, an error is returned.
14924
14925   Since
14926       2.2
14927
14928   Example
14929          -> { "execute": "trace-event-get-state",
14930               "arguments": { "name": "qemu_memalign" } }
14931          <- { "return": [ { "name": "qemu_memalign", "state": "disabled" } ] }
14932
14933   trace-event-set-state (Command)
14934       Set the dynamic tracing state of events.
14935
14936   Arguments
14937       name: string
14938              Event name pattern (case-sensitive glob).
14939
14940       enable: boolean
14941              Whether to enable tracing.
14942
14943       ignore-unavailable: boolean (optional)
14944              Do not match unavailable events with name.
14945
14946       vcpu: int (optional)
14947              The vCPU to act upon (all by default; since 2.7).
14948       An  event's  state is modified if: - its name matches the name pattern,
14949       and - if vcpu is given, the event has the "vcpu" property.
14950
14951       Therefore, if vcpu is given, the operation  will  only  match  per-vCPU
14952       events,  setting  their  state  on the specified vCPU. Special case: if
14953       name is an exact match, vcpu is given and the event does not  have  the
14954       "vcpu" property, an error is returned.
14955
14956   Since
14957       2.2
14958
14959   Example
14960          -> { "execute": "trace-event-set-state",
14961               "arguments": { "name": "qemu_memalign", "enable": "true" } }
14962          <- { "return": {} }
14963

COMPATIBILITY POLICY

14965   CompatPolicyInput (Enum)
14966       Policy for handling "funny" input.
14967
14968   Values
14969       accept Accept silently
14970
14971       reject Reject with an error
14972
14973       crash  abort() the process
14974
14975   Since
14976       6.0
14977
14978   CompatPolicyOutput (Enum)
14979       Policy for handling "funny" output.
14980
14981   Values
14982       accept Pass on unchanged
14983
14984       hide   Filter out
14985
14986   Since
14987       6.0
14988
14989   CompatPolicy (Object)
14990       Policy for handling deprecated management interfaces.
14991
14992       This is intended for testing users of the management interfaces.
14993
14994       Limitation:  covers  only  syntactic  aspects of QMP, i.e. stuff tagged
14995       with feature 'deprecated'.  We may want to extend it to cover  semantic
14996       aspects, CLI, and experimental features.
14997
14998   Members
14999       deprecated-input: CompatPolicyInput (optional)
15000              how to handle deprecated input (default 'accept')
15001
15002       deprecated-output: CompatPolicyOutput (optional)
15003              how to handle deprecated output (default 'accept')
15004
15005   Since
15006       6.0
15007

QMP MONITOR CONTROL

15009   qmp_capabilities (Command)
15010       Enable QMP capabilities.
15011
15012       Arguments:
15013
15014   Arguments
15015       enable: array of QMPCapability (optional)
15016              An  optional list of QMPCapability values to enable.  The client
15017              must not enable any capability that is not mentioned in the  QMP
15018              greeting message.  If the field is not provided, it means no QMP
15019              capabilities will be enabled.  (since 2.12)
15020
15021   Example
15022          -> { "execute": "qmp_capabilities",
15023               "arguments": { "enable": [ "oob" ] } }
15024          <- { "return": {} }
15025
15026   Notes
15027       This command is valid exactly when first connecting: it must be  issued
15028       before any other command will be accepted, and will fail once the moni‐
15029       tor is accepting other commands. (see qemu docs/interop/qmp-spec.txt)
15030
15031       The QMP client needs to explicitly enable QMP  capabilities,  otherwise
15032       all the QMP capabilities will be turned off by default.
15033
15034   Since
15035       0.13
15036
15037   QMPCapability (Enum)
15038       Enumeration of capabilities to be advertised during initial client con‐
15039       nection, used for agreeing on particular QMP extension behaviors.
15040
15041   Values
15042       oob    QMP ability to support out-of-band requests.  (Please  refer  to
15043              qmp-spec.txt for more information on OOB)
15044
15045   Since
15046       2.12
15047
15048   VersionTriple (Object)
15049       A three-part version number.
15050
15051   Members
15052       major: int
15053              The major version number.
15054
15055       minor: int
15056              The minor version number.
15057
15058       micro: int
15059              The micro version number.
15060
15061   Since
15062       2.4
15063
15064   VersionInfo (Object)
15065       A description of QEMU's version.
15066
15067   Members
15068       qemu: VersionTriple
15069              The  version of QEMU.  By current convention, a micro version of
15070              50 signifies a development branch.  A micro version greater than
15071              or  equal to 90 signifies a release candidate for the next minor
15072              version.  A micro version of less than 50 signifies a stable re‐
15073              lease.
15074
15075       package: string
15076              QEMU  will always set this field to an empty string.  Downstream
15077              versions of QEMU should set this to a non-empty string.  The ex‐
15078              act  format  depends  on the downstream however it highly recom‐
15079              mended that a unique name is used.
15080
15081   Since
15082       0.14
15083
15084   query-version (Command)
15085       Returns the current version of QEMU.
15086
15087   Returns
15088       A VersionInfo object describing the current version of QEMU.
15089
15090   Since
15091       0.14
15092
15093   Example
15094          -> { "execute": "query-version" }
15095          <- {
15096                "return":{
15097                   "qemu":{
15098                      "major":0,
15099                      "minor":11,
15100                      "micro":5
15101                   },
15102                   "package":""
15103                }
15104             }
15105
15106   CommandInfo (Object)
15107       Information about a QMP command
15108
15109   Members
15110       name: string
15111              The command name
15112
15113   Since
15114       0.14
15115
15116   query-commands (Command)
15117       Return a list of supported QMP commands by this server
15118
15119   Returns
15120       A list of CommandInfo for all supported commands
15121
15122   Since
15123       0.14
15124
15125   Example
15126          -> { "execute": "query-commands" }
15127          <- {
15128               "return":[
15129                  {
15130                     "name":"query-balloon"
15131                  },
15132                  {
15133                     "name":"system_powerdown"
15134                  }
15135               ]
15136             }
15137
15138   Note
15139       This example has been shortened as the real response is too long.
15140
15141   quit (Command)
15142       This command will cause the QEMU process to exit gracefully.  While ev‐
15143       ery  attempt  is made to send the QMP response before terminating, this
15144       is not guaranteed.  When using this interface, a  premature  EOF  would
15145       not be unexpected.
15146
15147   Since
15148       0.14
15149
15150   Example
15151          -> { "execute": "quit" }
15152          <- { "return": {} }
15153
15154   MonitorMode (Enum)
15155       An enumeration of monitor modes.
15156
15157   Values
15158       readline
15159              HMP monitor (human-oriented command line interface)
15160
15161       control
15162              QMP monitor (JSON-based machine interface)
15163
15164   Since
15165       5.0
15166
15167   MonitorOptions (Object)
15168       Options to be used for adding a new monitor.
15169
15170   Members
15171       id: string (optional)
15172              Name of the monitor
15173
15174       mode: MonitorMode (optional)
15175              Selects the monitor mode (default: readline in the system emula‐
15176              tor, control in qemu-storage-daemon)
15177
15178       pretty: boolean (optional)
15179              Enables pretty printing (QMP only)
15180
15181       chardev: string
15182              Name of a character device to expose the monitor on
15183
15184   Since
15185       5.0
15186

QMP INTROSPECTION

15188   query-qmp-schema (Command)
15189       Command query-qmp-schema exposes the  QMP  wire  ABI  as  an  array  of
15190       SchemaInfo.   This lets QMP clients figure out what commands and events
15191       are available in this QEMU, and their parameters and results.
15192
15193       However, the SchemaInfo can't reflect all the  rules  and  restrictions
15194       that  apply  to QMP.  It's interface introspection (figuring out what's
15195       there), not interface specification.  The specification is in the  QAPI
15196       schema.
15197
15198       Furthermore, while we strive to keep the QMP wire format backwards-com‐
15199       patible across qemu versions, the introspection output is  not  guaran‐
15200       teed  to have the same stability.  For example, one version of qemu may
15201       list an object member as an optional non-variant, while  another  lists
15202       the  same  member  only through the object's variants; or the type of a
15203       member may change from a generic string into a specific  enum  or  from
15204       one  specific  type  into  an alternate that includes the original type
15205       alongside something else.
15206
15207   Returns
15208       array of SchemaInfo, where each element describes an entity in the ABI:
15209       command, event, type, ...
15210
15211       The  order of the various SchemaInfo is unspecified; however, all names
15212       are guaranteed to be unique (no name will be duplicated with  different
15213       meta-types).
15214
15215   Note
15216       the  QAPI  schema  is  also used to help define internal interfaces, by
15217       defining QAPI types.  These are not part  of  the  QMP  wire  ABI,  and
15218       therefore not returned by this command.
15219
15220   Since
15221       2.5
15222
15223   SchemaMetaType (Enum)
15224       This is a SchemaInfo's meta type, i.e. the kind of entity it describes.
15225
15226   Values
15227       builtin
15228              a predefined type such as 'int' or 'bool'.
15229
15230       enum   an enumeration type
15231
15232       array  an array type
15233
15234       object an object type (struct or union)
15235
15236       alternate
15237              an alternate type
15238
15239       command
15240              a QMP command
15241
15242       event  a QMP event
15243
15244   Since
15245       2.5
15246
15247   SchemaInfo (Object)
15248   Members
15249       name: string
15250              the  entity's  name, inherited from base.  The SchemaInfo is al‐
15251              ways referenced by this name.  Commands and events have the name
15252              defined  in  the  QAPI  schema.  Unlike command and event names,
15253              type names are not part of the  wire  ABI.   Consequently,  type
15254              names  are  meaningless  strings  here,  although they are still
15255              guaranteed unique regardless of meta-type.
15256
15257       meta-type: SchemaMetaType
15258              the entity's meta type, inherited from base.
15259
15260       features: array of string (optional)
15261              names of features associated with the entity, in  no  particular
15262              order.   (since  4.1 for object types, 4.2 for commands, 5.0 for
15263              the rest)
15264
15265       The members of SchemaInfoBuiltin when meta-type is "builtin"
15266
15267       The members of SchemaInfoEnum when meta-type is "enum"
15268
15269       The members of SchemaInfoArray when meta-type is "array"
15270
15271       The members of SchemaInfoObject when meta-type is "object"
15272
15273       The members of SchemaInfoAlternate when meta-type is "alternate"
15274
15275       The members of SchemaInfoCommand when meta-type is "command"
15276
15277       The members of SchemaInfoEvent when meta-type is "event"
15278       Additional members depend on the value of meta-type.
15279
15280   Since
15281       2.5
15282
15283   SchemaInfoBuiltin (Object)
15284       Additional SchemaInfo members for meta-type 'builtin'.
15285
15286   Members
15287       json-type: JSONType
15288              the JSON type used for this type on the wire.
15289
15290   Since
15291       2.5
15292
15293   JSONType (Enum)
15294       The four primitive and two structured types according to RFC 8259  sec‐
15295       tion  1,  plus  'int'  (split  off 'number'), plus the obvious top type
15296       'value'.
15297
15298   Values
15299       string Not documented
15300
15301       number Not documented
15302
15303       int    Not documented
15304
15305       boolean
15306              Not documented
15307
15308       null   Not documented
15309
15310       object Not documented
15311
15312       array  Not documented
15313
15314       value  Not documented
15315
15316   Since
15317       2.5
15318
15319   SchemaInfoEnum (Object)
15320       Additional SchemaInfo members for meta-type 'enum'.
15321
15322   Members
15323       values: array of string
15324              the enumeration type's values, in no particular order.
15325       Values of this type are JSON string on the wire.
15326
15327   Since
15328       2.5
15329
15330   SchemaInfoArray (Object)
15331       Additional SchemaInfo members for meta-type 'array'.
15332
15333   Members
15334       element-type: string
15335              the array type's element type.
15336       Values of this type are JSON array on the wire.
15337
15338   Since
15339       2.5
15340
15341   SchemaInfoObject (Object)
15342       Additional SchemaInfo members for meta-type 'object'.
15343
15344   Members
15345       members: array of SchemaInfoObjectMember
15346              the object type's (non-variant) members, in no particular order.
15347
15348       tag: string (optional)
15349              the name of the member serving as type tag.  An element of  mem‐
15350              bers with this name must exist.
15351
15352       variants: array of SchemaInfoObjectVariant (optional)
15353              variant members, i.e. additional members that depend on the type
15354              tag's value.  Present exactly when tag is present.  The variants
15355              are  in  no particular order, and may even differ from the order
15356              of the values of the enum type of the tag.
15357       Values of this type are JSON object on the wire.
15358
15359   Since
15360       2.5
15361
15362   SchemaInfoObjectMember (Object)
15363       An object member.
15364
15365   Members
15366       name: string
15367              the member's name, as defined in the QAPI schema.
15368
15369       type: string
15370              the name of the member's type.
15371
15372       default: value (optional)
15373              default when used as command parameter.  If absent, the  parame‐
15374              ter  is mandatory.  If present, the value must be null.  The pa‐
15375              rameter is optional, and behavior when it's missing is not spec‐
15376              ified  here.  Future extension: if present and non-null, the pa‐
15377              rameter is optional, and defaults to this value.
15378
15379       features: array of string (optional)
15380              names of features associated with the member, in  no  particular
15381              order.  (since 5.0)
15382
15383   Since
15384       2.5
15385
15386   SchemaInfoObjectVariant (Object)
15387       The variant members for a value of the type tag.
15388
15389   Members
15390       case: string
15391              a value of the type tag.
15392
15393       type: string
15394              the  name  of  the object type that provides the variant members
15395              when the type tag has value case.
15396
15397   Since
15398       2.5
15399
15400   SchemaInfoAlternate (Object)
15401       Additional SchemaInfo members for meta-type 'alternate'.
15402
15403   Members
15404       members: array of SchemaInfoAlternateMember
15405              the alternate type's members, in no particular order.  The  mem‐
15406              bers'     wire    encoding    is    distinct,    see    docs/de‐
15407              vel/qapi-code-gen.txt section Alternate types.
15408       On the wire, this can be any of the members.
15409
15410   Since
15411       2.5
15412
15413   SchemaInfoAlternateMember (Object)
15414       An alternate member.
15415
15416   Members
15417       type: string
15418              the name of the member's type.
15419
15420   Since
15421       2.5
15422
15423   SchemaInfoCommand (Object)
15424       Additional SchemaInfo members for meta-type 'command'.
15425
15426   Members
15427       arg-type: string
15428              the name of the object type that provides the command's  parame‐
15429              ters.
15430
15431       ret-type: string
15432              the name of the command's result type.
15433
15434       allow-oob: boolean (optional)
15435              whether  the  command  allows out-of-band execution, defaults to
15436              false (Since: 2.12)
15437
15438   TODO
15439       success-response (currently irrelevant, because it's QGA, not QMP)
15440
15441   Since
15442       2.5
15443
15444   SchemaInfoEvent (Object)
15445       Additional SchemaInfo members for meta-type 'event'.
15446
15447   Members
15448       arg-type: string
15449              the name of the object type that provides  the  event's  parame‐
15450              ters.
15451
15452   Since
15453       2.5
15454

QEMU OBJECT MODEL (QOM)

15456   ObjectPropertyInfo (Object)
15457   Members
15458       name: string
15459              the name of the property
15460
15461       type: string
15462              the  type  of  the property.  This will typically come in one of
15463              four forms:
15464
15465              1. A primitive type such as 'u8', 'u16', 'bool', 'str', or 'dou‐
15466                 ble'.  These types are mapped to the appropriate JSON type.
15467
15468              2. A  child type in the form 'child<subtype>' where subtype is a
15469                 qdev device type name.  Child properties create the  composi‐
15470                 tion tree.
15471
15472              3. A  link  type  in the form 'link<subtype>' where subtype is a
15473                 qdev device type name.  Link properties form the device model
15474                 graph.
15475
15476       description: string (optional)
15477              if specified, the description of the property.
15478
15479       default-value: value (optional)
15480              the default value, if any (since 5.0)
15481
15482   Since
15483       1.2
15484
15485   qom-list (Command)
15486       This  command  will list any properties of a object given a path in the
15487       object model.
15488
15489   Arguments
15490       path: string
15491              the path within the object model.  See qom-get for a description
15492              of this parameter.
15493
15494   Returns
15495       a  list  of  ObjectPropertyInfo that describe the properties of the ob‐
15496       ject.
15497
15498   Since
15499       1.2
15500
15501   Example
15502          -> { "execute": "qom-list",
15503               "arguments": { "path": "/chardevs" } }
15504          <- { "return": [ { "name": "type", "type": "string" },
15505                           { "name": "parallel0", "type": "child<chardev-vc>" },
15506                           { "name": "serial0", "type": "child<chardev-vc>" },
15507                           { "name": "mon0", "type": "child<chardev-stdio>" } ] }
15508
15509   qom-get (Command)
15510       This command will get a property from a object model  path  and  return
15511       the value.
15512
15513   Arguments
15514       path: string
15515              The  path  within the object model.  There are two forms of sup‐
15516              ported paths--absolute and partial paths.
15517
15518              Absolute paths are derived from the root object and  can  follow
15519              child<>  or  link<>  properties.   Since  they can follow link<>
15520              properties, they can be arbitrarily long.  Absolute  paths  look
15521              like absolute filenames and are prefixed  with a leading slash.
15522
15523              Partial  paths  look like relative filenames.  They do not begin
15524              with a prefix.  The matching rules for partial paths are  subtle
15525              but  designed to make specifying objects easy.  At each level of
15526              the composition tree, the partial path is matched as an absolute
15527              path.   The  first  match is not returned.  At least two matches
15528              are searched for.  A successful result is only returned if  only
15529              one  match is found.  If more than one match is found, a flag is
15530              return to indicate that the match was ambiguous.
15531
15532       property: string
15533              The property name to read
15534
15535   Returns
15536       The property value.  The type depends on the property type. child<> and
15537       link<> properties are returned as #str pathnames.  All integer property
15538       types (u8, u16, etc) are returned as #int.
15539
15540   Since
15541       1.2
15542
15543   Example
15544          1. Use absolute path
15545
15546          -> { "execute": "qom-get",
15547               "arguments": { "path": "/machine/unattached/device[0]",
15548                              "property": "hotplugged" } }
15549          <- { "return": false }
15550
15551          2. Use partial path
15552
15553          -> { "execute": "qom-get",
15554               "arguments": { "path": "unattached/sysbus",
15555                              "property": "type" } }
15556          <- { "return": "System" }
15557
15558   qom-set (Command)
15559       This command will set a property from a object model path.
15560
15561   Arguments
15562       path: string
15563              see qom-get for a description of this parameter
15564
15565       property: string
15566              the property name to set
15567
15568       value: value
15569              a value who's type is appropriate for the  property  type.   See
15570              qom-get for a description of type mapping.
15571
15572   Since
15573       1.2
15574
15575   Example
15576          -> { "execute": "qom-set",
15577               "arguments": { "path": "/machine",
15578                              "property": "graphics",
15579                              "value": false } }
15580          <- { "return": {} }
15581
15582   ObjectTypeInfo (Object)
15583       This structure describes a search result from qom-list-types
15584
15585   Members
15586       name: string
15587              the type name found in the search
15588
15589       abstract: boolean (optional)
15590              the  type is abstract and can't be directly instantiated.  Omit‐
15591              ted if false. (since 2.10)
15592
15593       parent: string (optional)
15594              Name of parent type, if any (since 2.10)
15595
15596   Since
15597       1.1
15598
15599   qom-list-types (Command)
15600       This command will return a list of types given search parameters
15601
15602   Arguments
15603       implements: string (optional)
15604              if specified, only return types that implement this type name
15605
15606       abstract: boolean (optional)
15607              if true, include abstract types in the results
15608
15609   Returns
15610       a list of ObjectTypeInfo or an empty list if no results are found
15611
15612   Since
15613       1.1
15614
15615   qom-list-properties (Command)
15616       List properties associated with a QOM object.
15617
15618   Arguments
15619       typename: string
15620              the type name of an object
15621
15622   Note
15623       objects can create properties at runtime, for example to describe links
15624       between  different devices and/or objects. These properties are not in‐
15625       cluded in the output of this command.
15626
15627   Returns
15628       a list of ObjectPropertyInfo describing object properties
15629
15630   Since
15631       2.12
15632
15633   CanHostSocketcanProperties (Object)
15634       Properties for can-host-socketcan objects.
15635
15636   Members
15637       if: string
15638              interface name of the host system CAN bus to connect to
15639
15640       canbus: string
15641              object ID of the can-bus object to connect to the host interface
15642
15643   Since
15644       2.12
15645
15646   ColoCompareProperties (Object)
15647       Properties for colo-compare objects.
15648
15649   Members
15650       primary_in: string
15651              name of the character device backend to use for the primary  in‐
15652              put (incoming packets are redirected to outdev)
15653
15654       secondary_in: string
15655              name  of the character device backend to use for secondary input
15656              (incoming packets are only compared to the input  on  primary_in
15657              and then dropped)
15658
15659       outdev: string
15660              name of the character device backend to use for output
15661
15662       iothread: string
15663              name of the iothread to run in
15664
15665       notify_dev: string (optional)
15666              name  of  the character device backend to be used to communicate
15667              with the remote colo-frame (only for Xen COLO)
15668
15669       compare_timeout: int (optional)
15670              the maximum time to hold a packet from primary_in for comparison
15671              with  an  incoming  packet  on secondary_in in milliseconds (de‐
15672              fault: 3000)
15673
15674       expired_scan_cycle: int (optional)
15675              the interval at which colo-compare checks whether  packets  from
15676              primary have timed out, in milliseconds (default: 3000)
15677
15678       max_queue_size: int (optional)
15679              the maximum number of packets to keep in the queue for comparing
15680              with incoming packets from secondary_in.  If the queue  is  full
15681              and  additional packets are received, the additional packets are
15682              dropped. (default: 1024)
15683
15684       vnet_hdr_support: boolean (optional)
15685              if true, vnet header support is enabled (default: false)
15686
15687   Since
15688       2.8
15689
15690   CryptodevBackendProperties (Object)
15691       Properties for cryptodev-backend and cryptodev-backend-builtin objects.
15692
15693   Members
15694       queues: int (optional)
15695              the number of queues for  the  cryptodev  backend.  Ignored  for
15696              cryptodev-backend  and  must be 1 for cryptodev-backend-builtin.
15697              (default: 1)
15698
15699   Since
15700       2.8
15701
15702   CryptodevVhostUserProperties (Object)
15703       Properties for cryptodev-vhost-user objects.
15704
15705   Members
15706       chardev: string
15707              the name of a Unix domain socket character device that  connects
15708              to the vhost-user server
15709
15710       The members of CryptodevBackendProperties
15711
15712   Since
15713       2.12
15714
15715   DBusVMStateProperties (Object)
15716       Properties for dbus-vmstate objects.
15717
15718   Members
15719       addr: string
15720              the name of the DBus bus to connect to
15721
15722       id-list: string (optional)
15723              a  comma separated list of DBus IDs of helpers whose data should
15724              be included in the VM state on migration
15725
15726   Since
15727       5.0
15728
15729   NetfilterInsert (Enum)
15730       Indicates where to insert a netfilter relative to a given other filter.
15731
15732   Values
15733       before insert before the specified filter
15734
15735       behind insert behind the specified filter
15736
15737   Since
15738       5.0
15739
15740   NetfilterProperties (Object)
15741       Properties for objects of classes derived from netfilter.
15742
15743   Members
15744       netdev: string
15745              id of the network device backend to filter
15746
15747       queue: NetFilterDirection (optional)
15748              indicates which queue(s) to filter (default: all)
15749
15750       status: string (optional)
15751              indicates whether the  filter  is  enabled  ("on")  or  disabled
15752              ("off") (default: "on")
15753
15754       position: string (optional)
15755              specifies  where  the  filter  should  be inserted in the filter
15756              list.  "head" means the filter is inserted at the  head  of  the
15757              filter list, before any existing filters.  "tail" means the fil‐
15758              ter is inserted at the tail of the filter list, behind  any  ex‐
15759              isting  filters  (default).   "id=<id>"  means the filter is in‐
15760              serted before or behind the filter specified by <id>,  depending
15761              on the insert property.  (default: "tail")
15762
15763       insert: NetfilterInsert (optional)
15764              where to insert the filter relative to the filter given in posi‐
15765              tion.  Ignored if position is "head" or  "tail".  (default:  be‐
15766              hind)
15767
15768   Since
15769       2.5
15770
15771   FilterBufferProperties (Object)
15772       Properties for filter-buffer objects.
15773
15774   Members
15775       interval: int
15776              a  non-zero  interval  in microseconds.  All packets arriving in
15777              the given interval are delayed until the end of the interval.
15778
15779       The members of NetfilterProperties
15780
15781   Since
15782       2.5
15783
15784   FilterDumpProperties (Object)
15785       Properties for filter-dump objects.
15786
15787   Members
15788       file: string
15789              the filename where the dumped packets should be stored
15790
15791       maxlen: int (optional)
15792              maximum number of bytes in a packet that  are  stored  (default:
15793              65536)
15794
15795       The members of NetfilterProperties
15796
15797   Since
15798       2.5
15799
15800   FilterMirrorProperties (Object)
15801       Properties for filter-mirror objects.
15802
15803   Members
15804       outdev: string
15805              the  name  of  a  character device backend to which all incoming
15806              packets are mirrored
15807
15808       vnet_hdr_support: boolean (optional)
15809              if true, vnet header support is enabled (default: false)
15810
15811       The members of NetfilterProperties
15812
15813   Since
15814       2.6
15815
15816   FilterRedirectorProperties (Object)
15817       Properties for filter-redirector objects.
15818
15819       At least one of indev or outdev must be present.  If both are  present,
15820       they must not refer to the same character device backend.
15821
15822   Members
15823       indev: string (optional)
15824              the  name  of  a character device backend from which packets are
15825              received and redirected to the filtered network device
15826
15827       outdev: string (optional)
15828              the name of a character device backend  to  which  all  incoming
15829              packets are redirected
15830
15831       vnet_hdr_support: boolean (optional)
15832              if true, vnet header support is enabled (default: false)
15833
15834       The members of NetfilterProperties
15835
15836   Since
15837       2.6
15838
15839   FilterRewriterProperties (Object)
15840       Properties for filter-rewriter objects.
15841
15842   Members
15843       vnet_hdr_support: boolean (optional)
15844              if true, vnet header support is enabled (default: false)
15845
15846       The members of NetfilterProperties
15847
15848   Since
15849       2.8
15850
15851   InputBarrierProperties (Object)
15852       Properties for input-barrier objects.
15853
15854   Members
15855       name: string
15856              the  screen  name  as  declared  in  the screens section of bar‐
15857              rier.conf
15858
15859       server: string (optional)
15860              hostname of the Barrier server (default: "localhost")
15861
15862       port: string (optional)
15863              TCP port of the Barrier server (default: "24800")
15864
15865       x-origin: string (optional)
15866              x coordinate of the leftmost pixel on the guest screen (default:
15867              "0")
15868
15869       y-origin: string (optional)
15870              y  coordinate of the topmost pixel on the guest screen (default:
15871              "0")
15872
15873       width: string (optional)
15874              the width of secondary screen in pixels (default: "1920")
15875
15876       height: string (optional)
15877              the height of secondary screen in pixels (default: "1080")
15878
15879   Since
15880       4.2
15881
15882   InputLinuxProperties (Object)
15883       Properties for input-linux objects.
15884
15885   Members
15886       evdev: string
15887              the path of the host evdev device to use
15888
15889       grab_all: boolean (optional)
15890              if true, grab is toggled for all devices (e.g. both keyboard and
15891              mouse) instead of just one device (default: false)
15892
15893       repeat: boolean (optional)
15894              enables auto-repeat events (default: false)
15895
15896       grab-toggle: GrabToggleKeys (optional)
15897              the  key  or  key combination that toggles device grab (default:
15898              ctrl-ctrl)
15899
15900   Since
15901       2.6
15902
15903   IothreadProperties (Object)
15904       Properties for iothread objects.
15905
15906   Members
15907       poll-max-ns: int (optional)
15908              the maximum number of nanoseconds to busy wait  for  events.   0
15909              means polling is disabled (default: 32768 on POSIX hosts, 0 oth‐
15910              erwise)
15911
15912       poll-grow: int (optional)
15913              the multiplier used to increase the polling time when the  algo‐
15914              rithm  detects  it  is  missing  events  due to not polling long
15915              enough. 0 selects a default behaviour (default: 0)
15916
15917       poll-shrink: int (optional)
15918              the divisor used to decrease the polling time when the algorithm
15919              detects  it  is  spending  too long polling without encountering
15920              events. 0 selects a default behaviour (default: 0)
15921
15922       aio-max-batch: int (optional)
15923              maximum number of requests in a batch  for  the  AIO  engine,  0
15924              means  that  the  engine  will use its default (default:0, since
15925              6.1)
15926
15927   Since
15928       2.0
15929
15930   MemoryBackendProperties (Object)
15931       Properties for objects of classes derived from memory-backend.
15932
15933   Members
15934       merge: boolean (optional)
15935              if true, mark the memory as mergeable (default  depends  on  the
15936              machine type)
15937
15938       dump: boolean (optional)
15939              if  true,  include  the memory in core dumps (default depends on
15940              the machine type)
15941
15942       host-nodes: array of int (optional)
15943              the list of NUMA host nodes to bind the memory to
15944
15945       policy: HostMemPolicy (optional)
15946              the NUMA policy (default: 'default')
15947
15948       prealloc: boolean (optional)
15949              if true, preallocate memory (default: false)
15950
15951       prealloc-threads: int (optional)
15952              number of CPU threads to use for prealloc (default: 1)
15953
15954       share: boolean (optional)
15955              if false, the memory is private to QEMU; if true, it  is  shared
15956              (default: false)
15957
15958       reserve: boolean (optional)
15959              if  true,  reserve swap space (or huge pages) if applicable (de‐
15960              fault: true) (since 6.1)
15961
15962       size: int
15963              size of the memory region in bytes
15964
15965       x-use-canonical-path-for-ramblock-id: boolean (optional)
15966              if true, the canoncial path is  used  for  ramblock-id.  Disable
15967              this  for  4.0  machine  types  or older to allow migration with
15968              newer QEMU versions.  This option is considered  stable  despite
15969              the  x-  prefix. (default: false generally, but true for machine
15970              types <= 4.0)
15971
15972   Note
15973       prealloc=true and reserve=false cannot be set at the  same  time.  With
15974       reserve=true,  the  behavior depends on the operating system: for exam‐
15975       ple, Linux will not reserve swap space for shared file mappings -- "not
15976       applicable".  In  contrast, reserve=false will bail out if it cannot be
15977       configured accordingly.
15978
15979   Since
15980       2.1
15981
15982   MemoryBackendFileProperties (Object)
15983       Properties for memory-backend-file objects.
15984
15985   Members
15986       align: int (optional)
15987              the base address alignment when  QEMU  mmap(2)s  mem-path.  Some
15988              backend  stores  specified by mem-path require an alignment dif‐
15989              ferent than the default one used by QEMU, e.g.  the  device  DAX
15990              /dev/dax0.0 requires 2M alignment rather than 4K. In such cases,
15991              users can specify the required alignment via this option.  0 se‐
15992              lects  a  default alignment (currently the page size). (default:
15993              0)
15994
15995       discard-data: boolean (optional)
15996              if true, the file contents can be destroyed when QEMU exits,  to
15997              avoid unnecessarily flushing data to the backing file. Note that
15998              discard-data is only an optimization, and QEMU might not discard
15999              file  contents  if it aborts unexpectedly or is terminated using
16000              SIGKILL. (default: false)
16001
16002       mem-path: string
16003              the path to either a shared memory or huge page filesystem mount
16004
16005       pmem: boolean (optional) (If: defined(CONFIG_LIBPMEM))
16006              specifies whether the backing file specified by mem-path  is  in
16007              host  persistent  memory that can be accessed using the SNIA NVM
16008              programming model (e.g. Intel NVDIMM).
16009
16010       readonly: boolean (optional)
16011              if true, the backing file is opened read-only; if false,  it  is
16012              opened read-write. (default: false)
16013
16014       The members of MemoryBackendProperties
16015
16016   Since
16017       2.1
16018
16019   MemoryBackendMemfdProperties (Object)
16020       Properties for memory-backend-memfd objects.
16021
16022       The share boolean option is true by default with memfd.
16023
16024   Members
16025       hugetlb: boolean (optional)
16026              if  true,  the  file  to  be  created  resides  in the hugetlbfs
16027              filesystem (default: false)
16028
16029       hugetlbsize: int (optional)
16030              the hugetlb page size on systems that support  multiple  hugetlb
16031              page  sizes (it must be a power of 2 value supported by the sys‐
16032              tem). 0 selects a default page size. This option is  ignored  if
16033              hugetlb is false. (default: 0)
16034
16035       seal: boolean (optional)
16036              if true, create a sealed-file, which will block further resizing
16037              of the memory (default: true)
16038
16039       The members of MemoryBackendProperties
16040
16041   Since
16042       2.12
16043
16044   PrManagerHelperProperties (Object)
16045       Properties for pr-manager-helper objects.
16046
16047   Members
16048       path: string
16049              the path to a Unix domain socket for connecting to the  external
16050              helper
16051
16052   Since
16053       2.11
16054
16055   QtestProperties (Object)
16056       Properties for qtest objects.
16057
16058   Members
16059       chardev: string
16060              the chardev to be used to receive qtest commands on.
16061
16062       log: string (optional)
16063              the path to a log file
16064
16065   Since
16066       6.0
16067
16068   RemoteObjectProperties (Object)
16069       Properties for x-remote-object objects.
16070
16071   Members
16072       fd: string
16073              file descriptor name previously passed via 'getfd' command
16074
16075       devid: string
16076              the id of the device to be associated with the file descriptor
16077
16078   Since
16079       6.0
16080
16081   RngProperties (Object)
16082       Properties for objects of classes derived from rng.
16083
16084   Members
16085       opened: boolean (optional)
16086              if true, the device is opened immediately when applying this op‐
16087              tion and will probably fail when  processing  the  next  option.
16088              Don't use; only provided for compatibility. (default: false)
16089
16090   Features
16091       deprecated
16092              Member  opened  is deprecated.  Setting true doesn't make sense,
16093              and false is already the default.
16094
16095   Since
16096       1.3
16097
16098   RngEgdProperties (Object)
16099       Properties for rng-egd objects.
16100
16101   Members
16102       chardev: string
16103              the name of a character device backend that provides the connec‐
16104              tion to the RNG daemon
16105
16106       The members of RngProperties
16107
16108   Since
16109       1.3
16110
16111   RngRandomProperties (Object)
16112       Properties for rng-random objects.
16113
16114   Members
16115       filename: string (optional)
16116              the  filename  of  the device on the host to obtain entropy from
16117              (default: "/dev/urandom")
16118
16119       The members of RngProperties
16120
16121   Since
16122       1.3
16123
16124   SevGuestProperties (Object)
16125       Properties for sev-guest objects.
16126
16127   Members
16128       sev-device: string (optional)
16129              SEV device to use (default: "/dev/sev")
16130
16131       dh-cert-file: string (optional)
16132              guest owners DH certificate (encoded with base64)
16133
16134       session-file: string (optional)
16135              guest owners session parameters (encoded with base64)
16136
16137       policy: int (optional)
16138              SEV policy value (default: 0x1)
16139
16140       handle: int (optional)
16141              SEV firmware handle (default: 0)
16142
16143       cbitpos: int (optional)
16144              C-bit location in page table entry (default: 0)
16145
16146       reduced-phys-bits: int
16147              number of bits in physical  addresses  that  become  unavailable
16148              when SEV is enabled
16149
16150   Since
16151       2.12
16152
16153   ObjectType (Enum)
16154   Values
16155       authz-list
16156              Not documented
16157
16158       authz-listfile
16159              Not documented
16160
16161       authz-pam
16162              Not documented
16163
16164       authz-simple
16165              Not documented
16166
16167       can-bus
16168              Not documented
16169
16170       can-host-socketcan
16171              Not documented
16172
16173       colo-compare
16174              Not documented
16175
16176       cryptodev-backend
16177              Not documented
16178
16179       cryptodev-backend-builtin
16180              Not documented
16181
16182       cryptodev-vhost-user (If: defined(CONFIG_VHOST_CRYPTO))
16183              Not documented
16184
16185       dbus-vmstate
16186              Not documented
16187
16188       filter-buffer
16189              Not documented
16190
16191       filter-dump
16192              Not documented
16193
16194       filter-mirror
16195              Not documented
16196
16197       filter-redirector
16198              Not documented
16199
16200       filter-replay
16201              Not documented
16202
16203       filter-rewriter
16204              Not documented
16205
16206       input-barrier
16207              Not documented
16208
16209       input-linux
16210              Not documented
16211
16212       iothread
16213              Not documented
16214
16215       memory-backend-file
16216              Not documented
16217
16218       memory-backend-memfd (If: defined(CONFIG_LINUX))
16219              Not documented
16220
16221       memory-backend-ram
16222              Not documented
16223
16224       pef-guest
16225              Not documented
16226
16227       pr-manager-helper
16228              Not documented
16229
16230       qtest  Not documented
16231
16232       rng-builtin
16233              Not documented
16234
16235       rng-egd
16236              Not documented
16237
16238       rng-random
16239              Not documented
16240
16241       secret Not documented
16242
16243       secret_keyring
16244              Not documented
16245
16246       sev-guest
16247              Not documented
16248
16249       s390-pv-guest
16250              Not documented
16251
16252       throttle-group
16253              Not documented
16254
16255       tls-creds-anon
16256              Not documented
16257
16258       tls-creds-psk
16259              Not documented
16260
16261       tls-creds-x509
16262              Not documented
16263
16264       tls-cipher-suites
16265              Not documented
16266
16267       x-remote-object
16268              Not documented
16269
16270   Since
16271       6.0
16272
16273   ObjectOptions (Object)
16274       Describes the options of a user creatable QOM object.
16275
16276   Members
16277       qom-type: ObjectType
16278              the class name for the object to be created
16279
16280       id: string
16281              the name of the new object
16282
16283       The members of AuthZListProperties when qom-type is "authz-list"
16284
16285       The  members  of  AuthZListFileProperties when qom-type is "authz-list‐
16286       file"
16287
16288       The members of AuthZPAMProperties when qom-type is "authz-pam"
16289
16290       The members of AuthZSimpleProperties when qom-type is "authz-simple"
16291
16292       The   members   of   CanHostSocketcanProperties   when   qom-type    is
16293       "can-host-socketcan"
16294
16295       The members of ColoCompareProperties when qom-type is "colo-compare"
16296
16297       The  members  of  CryptodevBackendProperties  when  qom-type  is "cryp‐
16298       todev-backend"
16299
16300       The members  of  CryptodevBackendProperties  when  qom-type  is  "cryp‐
16301       todev-backend-builtin"
16302
16303       The  members  of  CryptodevVhostUserProperties  when qom-type is "cryp‐
16304       todev-vhost-user" (If: defined(CONFIG_VHOST_CRYPTO))
16305
16306       The members of DBusVMStateProperties when qom-type is "dbus-vmstate"
16307
16308       The members of FilterBufferProperties when qom-type is "filter-buffer"
16309
16310       The members of FilterDumpProperties when qom-type is "filter-dump"
16311
16312       The members of FilterMirrorProperties when qom-type is "filter-mirror"
16313
16314       The  members  of  FilterRedirectorProperties  when  qom-type  is  "fil‐
16315       ter-redirector"
16316
16317       The members of NetfilterProperties when qom-type is "filter-replay"
16318
16319       The   members   of  FilterRewriterProperties  when  qom-type  is  "fil‐
16320       ter-rewriter"
16321
16322       The members of InputBarrierProperties when qom-type is "input-barrier"
16323
16324       The members of InputLinuxProperties when qom-type is "input-linux"
16325
16326       The members of IothreadProperties when qom-type is "iothread"
16327
16328       The members  of  MemoryBackendFileProperties  when  qom-type  is  "mem‐
16329       ory-backend-file"
16330
16331       The  members  of  MemoryBackendMemfdProperties  when  qom-type is "mem‐
16332       ory-backend-memfd" (If: defined(CONFIG_LINUX))
16333
16334       The members of MemoryBackendProperties when qom-type  is  "memory-back‐
16335       end-ram"
16336
16337       The  members  of  PrManagerHelperProperties  when  qom-type is "pr-man‐
16338       ager-helper"
16339
16340       The members of QtestProperties when qom-type is "qtest"
16341
16342       The members of RngProperties when qom-type is "rng-builtin"
16343
16344       The members of RngEgdProperties when qom-type is "rng-egd"
16345
16346       The members of RngRandomProperties when qom-type is "rng-random"
16347
16348       The members of SecretProperties when qom-type is "secret"
16349
16350       The  members  of  SecretKeyringProperties   when   qom-type   is   "se‐
16351       cret_keyring"
16352
16353       The members of SevGuestProperties when qom-type is "sev-guest"
16354
16355       The   members  of  ThrottleGroupProperties  when  qom-type  is  "throt‐
16356       tle-group"
16357
16358       The members of TlsCredsAnonProperties when qom-type is "tls-creds-anon"
16359
16360       The members of TlsCredsPskProperties when qom-type is "tls-creds-psk"
16361
16362       The members of TlsCredsX509Properties when qom-type is "tls-creds-x509"
16363
16364       The members of TlsCredsProperties when qom-type is "tls-cipher-suites"
16365
16366       The members of RemoteObjectProperties when  qom-type  is  "x-remote-ob‐
16367       ject"
16368
16369   Since
16370       6.0
16371
16372   object-add (Command)
16373       Create a QOM object.
16374
16375   Arguments
16376       The members of ObjectOptions
16377
16378   Returns
16379       Nothing on success Error if qom-type is not a valid class name
16380
16381   Since
16382       2.0
16383
16384   Example
16385          -> { "execute": "object-add",
16386               "arguments": { "qom-type": "rng-random", "id": "rng1",
16387                              "filename": "/dev/hwrng" } }
16388          <- { "return": {} }
16389
16390   object-del (Command)
16391       Remove a QOM object.
16392
16393   Arguments
16394       id: string
16395              the name of the QOM object to remove
16396
16397   Returns
16398       Nothing on success Error if id is not a valid id for a QOM object
16399
16400   Since
16401       2.0
16402
16403   Example
16404          -> { "execute": "object-del", "arguments": { "id": "rng1" } }
16405          <- { "return": {} }
16406

DEVICE INFRASTRUCTURE (QDEV)

16408   device-list-properties (Command)
16409       List properties associated with a device.
16410
16411   Arguments
16412       typename: string
16413              the type name of a device
16414
16415   Returns
16416       a list of ObjectPropertyInfo describing a devices properties
16417
16418   Note
16419       objects can create properties at runtime, for example to describe links
16420       between different devices and/or objects. These properties are not  in‐
16421       cluded in the output of this command.
16422
16423   Since
16424       1.2
16425
16426   device_add (Command)
16427   Arguments
16428       driver: string
16429              the name of the new device's driver
16430
16431       bus: string (optional)
16432              the device's parent bus (device tree path)
16433
16434       id: string (optional)
16435              the device's ID, must be unique
16436       Additional arguments depend on the type.
16437
16438       Add a device.
16439
16440   Notes
16441       1. For  detailed  information  about  this command, please refer to the
16442          'docs/qdev-device-use.txt' file.
16443
16444       2. It's possible to list device properties by  running  QEMU  with  the
16445          "-device DEVICE,help" command-line argument, where DEVICE is the de‐
16446          vice's name
16447
16448   Example
16449          -> { "execute": "device_add",
16450               "arguments": { "driver": "e1000", "id": "net1",
16451                              "bus": "pci.0",
16452                              "mac": "52:54:00:12:34:56" } }
16453          <- { "return": {} }
16454
16455   TODO
16456       This command effectively bypasses QAPI completely  due  to  its  "addi‐
16457       tional arguments" business.  It shouldn't have been added to the schema
16458       in this form.  It should be qapified properly, or replaced by  a  prop‐
16459       erly qapified command.
16460
16461   Since
16462       0.13
16463
16464   device_del (Command)
16465       Remove a device from a guest
16466
16467   Arguments
16468       id: string
16469              the device's ID or QOM path
16470
16471   Returns
16472       Nothing on success If id is not a valid device, DeviceNotFound
16473
16474   Notes
16475       When  this  command  completes,  the device may not be removed from the
16476       guest.  Hot removal is an operation that  requires  guest  cooperation.
16477       This  command  merely  requests  that  the  guest begin the hot removal
16478       process.  Completion of the device removal process is signaled  with  a
16479       DEVICE_DELETED  event.  Guest reset will automatically complete removal
16480       for all devices.
16481
16482   Since
16483       0.14
16484
16485   Example
16486          -> { "execute": "device_del",
16487               "arguments": { "id": "net1" } }
16488          <- { "return": {} }
16489
16490          -> { "execute": "device_del",
16491               "arguments": { "id": "/machine/peripheral-anon/device[0]" } }
16492          <- { "return": {} }
16493
16494   DEVICE_DELETED (Event)
16495       Emitted whenever the device removal completion is acknowledged  by  the
16496       guest.   At this point, it's safe to reuse the specified device ID. De‐
16497       vice removal can be initiated by the guest or by HMP/QMP commands.
16498
16499   Arguments
16500       device: string (optional)
16501              device name
16502
16503       path: string
16504              device path
16505
16506   Since
16507       1.5
16508
16509   Example
16510          <- { "event": "DEVICE_DELETED",
16511               "data": { "device": "virtio-net-pci-0",
16512                         "path": "/machine/peripheral/virtio-net-pci-0" },
16513               "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
16514

MACHINES

16516   SysEmuTarget (Enum)
16517       The comprehensive enumeration of QEMU system emulation ("softmmu") tar‐
16518       gets.  Run "./configure --help" in the project root directory, and look
16519       for the *-softmmu targets near the "--target-list" option. The individ‐
16520       ual target constants are not documented here, for the time being.
16521
16522   Values
16523       rx     since 5.0
16524
16525       avr    since 5.1
16526
16527       aarch64
16528              Not documented
16529
16530       alpha  Not documented
16531
16532       arm    Not documented
16533
16534       cris   Not documented
16535
16536       hppa   Not documented
16537
16538       i386   Not documented
16539
16540       m68k   Not documented
16541
16542       microblaze
16543              Not documented
16544
16545       microblazeel
16546              Not documented
16547
16548       mips   Not documented
16549
16550       mips64 Not documented
16551
16552       mips64el
16553              Not documented
16554
16555       mipsel Not documented
16556
16557       nios2  Not documented
16558
16559       or1k   Not documented
16560
16561       ppc    Not documented
16562
16563       ppc64  Not documented
16564
16565       riscv32
16566              Not documented
16567
16568       riscv64
16569              Not documented
16570
16571       s390x  Not documented
16572
16573       sh4    Not documented
16574
16575       sh4eb  Not documented
16576
16577       sparc  Not documented
16578
16579       sparc64
16580              Not documented
16581
16582       tricore
16583              Not documented
16584
16585       x86_64 Not documented
16586
16587       xtensa Not documented
16588
16589       xtensaeb
16590              Not documented
16591
16592   Notes
16593       The  resulting QMP strings can be appended to the "qemu-system-" prefix
16594       to produce the corresponding QEMU executable name. This  is  true  even
16595       for "qemu-system-x86_64".
16596
16597   Since
16598       3.0
16599
16600   CpuS390State (Enum)
16601       An enumeration of cpu states that can be assumed by a virtual S390 CPU
16602
16603   Values
16604       uninitialized
16605              Not documented
16606
16607       stopped
16608              Not documented
16609
16610       check-stop
16611              Not documented
16612
16613       operating
16614              Not documented
16615
16616       load   Not documented
16617
16618   Since
16619       2.12
16620
16621   CpuInfoS390 (Object)
16622       Additional information about a virtual S390 CPU
16623
16624   Members
16625       cpu-state: CpuS390State
16626              the virtual CPU's state
16627
16628   Since
16629       2.12
16630
16631   CpuInfoFast (Object)
16632       Information about a virtual CPU
16633
16634   Members
16635       cpu-index: int
16636              index of the virtual CPU
16637
16638       qom-path: string
16639              path to the CPU object in the QOM tree
16640
16641       thread-id: int
16642              ID of the underlying host thread
16643
16644       props: CpuInstanceProperties (optional)
16645              properties  describing  to which node/socket/core/thread virtual
16646              CPU belongs to, provided if supported by board
16647
16648       target: SysEmuTarget
16649              the QEMU system emulation target, which determines  which  addi‐
16650              tional fields will be listed (since 3.0)
16651
16652       The members of CpuInfoS390 when target is "s390x"
16653
16654   Since
16655       2.12
16656
16657   query-cpus-fast (Command)
16658       Returns information about all virtual CPUs.
16659
16660   Returns
16661       list of CpuInfoFast
16662
16663   Since
16664       2.12
16665
16666   Example
16667          -> { "execute": "query-cpus-fast" }
16668          <- { "return": [
16669                  {
16670                      "thread-id": 25627,
16671                      "props": {
16672                          "core-id": 0,
16673                          "thread-id": 0,
16674                          "socket-id": 0
16675                      },
16676                      "qom-path": "/machine/unattached/device[0]",
16677                      "arch":"x86",
16678                      "target":"x86_64",
16679                      "cpu-index": 0
16680                  },
16681                  {
16682                      "thread-id": 25628,
16683                      "props": {
16684                          "core-id": 0,
16685                          "thread-id": 0,
16686                          "socket-id": 1
16687                      },
16688                      "qom-path": "/machine/unattached/device[2]",
16689                      "arch":"x86",
16690                      "target":"x86_64",
16691                      "cpu-index": 1
16692                  }
16693              ]
16694          }
16695
16696   MachineInfo (Object)
16697       Information describing a machine.
16698
16699   Members
16700       name: string
16701              the name of the machine
16702
16703       alias: string (optional)
16704              an alias for the machine name
16705
16706       is-default: boolean (optional)
16707              whether the machine is default
16708
16709       cpu-max: int
16710              maximum number of CPUs supported by the machine type (since 1.5)
16711
16712       hotpluggable-cpus: boolean
16713              cpu hotplug via -device is supported (since 2.7)
16714
16715       numa-mem-supported: boolean
16716              true if '-numa node,mem' option is supported by the machine type
16717              and false otherwise (since 4.1)
16718
16719       deprecated: boolean
16720              if true, the machine type is deprecated and may  be  removed  in
16721              future versions of QEMU according to the QEMU deprecation policy
16722              (since 4.1)
16723
16724       default-cpu-type: string (optional)
16725              default CPU model typename if none is requested via the -cpu ar‐
16726              gument. (since 4.2)
16727
16728       default-ram-id: string (optional)
16729              the default ID of initial RAM memory backend (since 5.2)
16730
16731   Since
16732       1.2
16733
16734   query-machines (Command)
16735       Return a list of supported machines
16736
16737   Returns
16738       a list of MachineInfo
16739
16740   Since
16741       1.2
16742
16743   CurrentMachineParams (Object)
16744       Information describing the running machine parameters.
16745
16746   Members
16747       wakeup-suspend-support: boolean
16748              true if the machine supports wake up from suspend
16749
16750   Since
16751       4.0
16752
16753   query-current-machine (Command)
16754       Return information on the current virtual machine.
16755
16756   Returns
16757       CurrentMachineParams
16758
16759   Since
16760       4.0
16761
16762   TargetInfo (Object)
16763       Information describing the QEMU target.
16764
16765   Members
16766       arch: SysEmuTarget
16767              the target architecture
16768
16769   Since
16770       1.2
16771
16772   query-target (Command)
16773       Return information about the target for this QEMU
16774
16775   Returns
16776       TargetInfo
16777
16778   Since
16779       1.2
16780
16781   UuidInfo (Object)
16782       Guest UUID information (Universally Unique Identifier).
16783
16784   Members
16785       UUID: string
16786              the UUID of the guest
16787
16788   Since
16789       0.14
16790
16791   Notes
16792       If no UUID was specified for the guest, a null UUID is returned.
16793
16794   query-uuid (Command)
16795       Query the guest UUID information.
16796
16797   Returns
16798       The UuidInfo for the guest
16799
16800   Since
16801       0.14
16802
16803   Example
16804          -> { "execute": "query-uuid" }
16805          <- { "return": { "UUID": "550e8400-e29b-41d4-a716-446655440000" } }
16806
16807   GuidInfo (Object)
16808       GUID information.
16809
16810   Members
16811       guid: string
16812              the globally unique identifier
16813
16814   Since
16815       2.9
16816
16817   query-vm-generation-id (Command)
16818       Show Virtual Machine Generation ID
16819
16820   Since
16821       2.9
16822
16823   system_reset (Command)
16824       Performs a hard reset of a guest.
16825
16826   Since
16827       0.14
16828
16829   Example
16830          -> { "execute": "system_reset" }
16831          <- { "return": {} }
16832
16833   system_powerdown (Command)
16834       Requests that a guest perform a powerdown operation.
16835
16836   Since
16837       0.14
16838
16839   Notes
16840       A guest may or may not respond to this command.  This command returning
16841       does not indicate that a guest has accepted the request or that it  has
16842       shut  down.   Many guests will respond to this command by prompting the
16843       user in some way.
16844
16845   Example
16846          -> { "execute": "system_powerdown" }
16847          <- { "return": {} }
16848
16849   system_wakeup (Command)
16850       Wake up guest from suspend. If the guest has wake-up from suspend  sup‐
16851       port  enabled (wakeup-suspend-support flag from query-current-machine),
16852       wake-up guest from suspend if the guest is in SUSPENDED  state.  Return
16853       an error otherwise.
16854
16855   Since
16856       1.1
16857
16858   Returns
16859       nothing.
16860
16861   Note
16862       prior  to  4.0,  this command does nothing in case the guest isn't sus‐
16863       pended.
16864
16865   Example
16866          -> { "execute": "system_wakeup" }
16867          <- { "return": {} }
16868
16869   LostTickPolicy (Enum)
16870       Policy for handling lost ticks in timer devices.  Ticks end up  getting
16871       lost when, for example, the guest is paused.
16872
16873   Values
16874       discard
16875              throw  away  the missed ticks and continue with future injection
16876              normally.  The guest OS will see the timer jump ahead by  a  po‐
16877              tentially quite significant amount all at once, as if the inter‐
16878              vening chunk of time had simply not existed;  needless  to  say,
16879              such  a  sudden  jump can easily confuse a guest OS which is not
16880              specifically prepared to deal with it.  Assuming  the  guest  OS
16881              can deal correctly with the time jump, the time in the guest and
16882              in the host should now match.
16883
16884       delay  continue to deliver ticks at the normal rate.  The guest OS will
16885              not  notice  anything  is  amiss, as from its point of view time
16886              will have continued to flow normally.  The  time  in  the  guest
16887              should  now be behind the time in the host by exactly the amount
16888              of time during which ticks have been missed.
16889
16890       slew   deliver ticks at a higher rate  to  catch  up  with  the  missed
16891              ticks.   The guest OS will not notice anything is amiss, as from
16892              its point of view time will have  continued  to  flow  normally.
16893              Once  the  timer  has  managed  to catch up with all the missing
16894              ticks, the time in the guest and in the host should match.
16895
16896   Since
16897       2.0
16898
16899   inject-nmi (Command)
16900       Injects a Non-Maskable Interrupt into the default CPU (x86/s390) or all
16901       CPUs (ppc64).  The command fails when the guest doesn't support inject‐
16902       ing.
16903
16904   Returns
16905       If successful, nothing
16906
16907   Since
16908       0.14
16909
16910   Note
16911       prior to 2.1, this command was only supported for x86 and s390 VMs
16912
16913   Example
16914          -> { "execute": "inject-nmi" }
16915          <- { "return": {} }
16916
16917   KvmInfo (Object)
16918       Information about support for KVM acceleration
16919
16920   Members
16921       enabled: boolean
16922              true if KVM acceleration is active
16923
16924       present: boolean
16925              true if KVM acceleration is built into this executable
16926
16927   Since
16928       0.14
16929
16930   query-kvm (Command)
16931       Returns information about KVM acceleration
16932
16933   Returns
16934       KvmInfo
16935
16936   Since
16937       0.14
16938
16939   Example
16940          -> { "execute": "query-kvm" }
16941          <- { "return": { "enabled": true, "present": true } }
16942
16943   NumaOptionsType (Enum)
16944   Values
16945       node   NUMA nodes configuration
16946
16947       dist   NUMA distance configuration (since 2.10)
16948
16949       cpu    property based CPU(s) to node mapping (Since: 2.10)
16950
16951       hmat-lb
16952              memory latency and bandwidth information (Since: 5.0)
16953
16954       hmat-cache
16955              memory side cache information (Since: 5.0)
16956
16957   Since
16958       2.1
16959
16960   NumaOptions (Object)
16961       A discriminated record of NUMA options. (for OptsVisitor)
16962
16963   Members
16964       type: NumaOptionsType
16965              Not documented
16966
16967       The members of NumaNodeOptions when type is "node"
16968
16969       The members of NumaDistOptions when type is "dist"
16970
16971       The members of NumaCpuOptions when type is "cpu"
16972
16973       The members of NumaHmatLBOptions when type is "hmat-lb"
16974
16975       The members of NumaHmatCacheOptions when type is "hmat-cache"
16976
16977   Since
16978       2.1
16979
16980   NumaNodeOptions (Object)
16981       Create a guest NUMA node. (for OptsVisitor)
16982
16983   Members
16984       nodeid: int (optional)
16985              NUMA node ID (increase by 1 from 0 if omitted)
16986
16987       cpus: array of int (optional)
16988
16989              VCPUs belonging to this node (assign VCPUS round-robin
16990                     if omitted)
16991
16992       mem: int (optional)
16993              memory size  of  this  node;  mutually  exclusive  with  memdev.
16994              Equally  divide  total memory among nodes if both mem and memdev
16995              are omitted.
16996
16997       memdev: string (optional)
16998              memory backend object.  If specified for one node,  it  must  be
16999              specified for all nodes.
17000
17001       initiator: int (optional)
17002              defined  in ACPI 6.3 Chapter 5.2.27.3 Table 5-145, points to the
17003              nodeid which has the memory controller responsible for this NUMA
17004              node.  This field provides additional information as to the ini‐
17005              tiator node that is closest (as in directly  attached)  to  this
17006              node, and therefore has the best performance (since 5.0)
17007
17008   Since
17009       2.1
17010
17011   NumaDistOptions (Object)
17012       Set the distance between 2 NUMA nodes.
17013
17014   Members
17015       src: int
17016              source NUMA node.
17017
17018       dst: int
17019              destination NUMA node.
17020
17021       val: int
17022              NUMA distance from source node to destination node.  When a node
17023              is unreachable from another node, set the distance between  them
17024              to 255.
17025
17026   Since
17027       2.10
17028
17029   X86CPURegister32 (Enum)
17030       A X86 32-bit register
17031
17032   Values
17033       EAX    Not documented
17034
17035       EBX    Not documented
17036
17037       ECX    Not documented
17038
17039       EDX    Not documented
17040
17041       ESP    Not documented
17042
17043       EBP    Not documented
17044
17045       ESI    Not documented
17046
17047       EDI    Not documented
17048
17049   Since
17050       1.5
17051
17052   X86CPUFeatureWordInfo (Object)
17053       Information about a X86 CPU feature word
17054
17055   Members
17056       cpuid-input-eax: int
17057              Input EAX value for CPUID instruction for that feature word
17058
17059       cpuid-input-ecx: int (optional)
17060              Input ECX value for CPUID instruction for that feature word
17061
17062       cpuid-register: X86CPURegister32
17063              Output register containing the feature bits
17064
17065       features: int
17066              value of output register, containing the feature bits
17067
17068   Since
17069       1.5
17070
17071   DummyForceArrays (Object)
17072       Not  used  by  QMP; hack to let us use X86CPUFeatureWordInfoList inter‐
17073       nally
17074
17075   Members
17076       unused: array of X86CPUFeatureWordInfo
17077              Not documented
17078
17079   Since
17080       2.5
17081
17082   NumaCpuOptions (Object)
17083       Option "-numa cpu" overrides default cpu to node mapping.   It  accepts
17084       the   same   set  of  cpu  properties  as  returned  by  query-hotplug‐
17085       gable-cpus[].props, where node-id could be  used  to  override  default
17086       node mapping.
17087
17088   Members
17089       The members of CpuInstanceProperties
17090
17091   Since
17092       2.10
17093
17094   HmatLBMemoryHierarchy (Enum)
17095       The  memory  hierarchy in the System Locality Latency and Bandwidth In‐
17096       formation Structure of HMAT (Heterogeneous Memory Attribute Table)
17097
17098       For more information about HmatLBMemoryHierarchy, see chapter 5.2.27.4:
17099       Table 5-146: Field "Flags" of ACPI 6.3 spec.
17100
17101   Values
17102       memory the structure represents the memory performance
17103
17104       first-level
17105              first level of memory side cache
17106
17107       second-level
17108              second level of memory side cache
17109
17110       third-level
17111              third level of memory side cache
17112
17113   Since
17114       5.0
17115
17116   HmatLBDataType (Enum)
17117       Data  type  in  the  System  Locality Latency and Bandwidth Information
17118       Structure of HMAT (Heterogeneous Memory Attribute Table)
17119
17120       For more information about HmatLBDataType, see chapter 5.2.27.4:  Table
17121       5-146:  Field "Data Type" of ACPI 6.3 spec.
17122
17123   Values
17124       access-latency
17125              access latency (nanoseconds)
17126
17127       read-latency
17128              read latency (nanoseconds)
17129
17130       write-latency
17131              write latency (nanoseconds)
17132
17133       access-bandwidth
17134              access bandwidth (Bytes per second)
17135
17136       read-bandwidth
17137              read bandwidth (Bytes per second)
17138
17139       write-bandwidth
17140              write bandwidth (Bytes per second)
17141
17142   Since
17143       5.0
17144
17145   NumaHmatLBOptions (Object)
17146       Set  the system locality latency and bandwidth information between Ini‐
17147       tiator and Target proximity Domains.
17148
17149       For more information about NumaHmatLBOptions, see chapter 5.2.27.4: Ta‐
17150       ble 5-146 of ACPI 6.3 spec.
17151
17152   Members
17153       initiator: int
17154              the Initiator Proximity Domain.
17155
17156       target: int
17157              the Target Proximity Domain.
17158
17159       hierarchy: HmatLBMemoryHierarchy
17160              the  Memory  Hierarchy.  Indicates  the performance of memory or
17161              side cache.
17162
17163       data-type: HmatLBDataType
17164              presents the type of data, access/read/write latency or hit  la‐
17165              tency.
17166
17167       latency: int (optional)
17168              the  value of latency from initiator to target proximity domain,
17169              the latency unit is "ns(nanosecond)".
17170
17171       bandwidth: int (optional)
17172              the value of bandwidth between initiator  and  target  proximity
17173              domain, the bandwidth unit is "Bytes per second".
17174
17175   Since
17176       5.0
17177
17178   HmatCacheAssociativity (Enum)
17179       Cache  associativity  in the Memory Side Cache Information Structure of
17180       HMAT
17181
17182       For more information of HmatCacheAssociativity, see  chapter  5.2.27.5:
17183       Table 5-147 of ACPI 6.3 spec.
17184
17185   Values
17186       none
17187
17188              None (no memory side cache in this proximity domain,
17189                     or cache associativity unknown)
17190
17191       direct Direct Mapped
17192
17193       complex
17194              Complex Cache Indexing (implementation specific)
17195
17196   Since
17197       5.0
17198
17199   HmatCacheWritePolicy (Enum)
17200       Cache  write  policy  in the Memory Side Cache Information Structure of
17201       HMAT
17202
17203       For more information of HmatCacheWritePolicy, see chapter 5.2.27.5: Ta‐
17204       ble 5-147: Field "Cache Attributes" of ACPI 6.3 spec.
17205
17206   Values
17207       none   None  (no  memory  side cache in this proximity domain, or cache
17208              write policy unknown)
17209
17210       write-back
17211              Write Back (WB)
17212
17213       write-through
17214              Write Through (WT)
17215
17216   Since
17217       5.0
17218
17219   NumaHmatCacheOptions (Object)
17220       Set the memory side cache information for a given memory domain.
17221
17222       For more information of NumaHmatCacheOptions, see chapter 5.2.27.5: Ta‐
17223       ble 5-147: Field "Cache Attributes" of ACPI 6.3 spec.
17224
17225   Members
17226       node-id: int
17227              the memory proximity domain to which the memory belongs.
17228
17229       size: int
17230              the size of memory side cache in bytes.
17231
17232       level: int
17233              the cache level described in this structure.
17234
17235       associativity: HmatCacheAssociativity
17236              the   cache   associativity,  none/direct-mapped/complex(complex
17237              cache indexing).
17238
17239       policy: HmatCacheWritePolicy
17240              the write policy, none/write-back/write-through.
17241
17242       line: int
17243              the cache Line size in bytes.
17244
17245   Since
17246       5.0
17247
17248   memsave (Command)
17249       Save a portion of guest memory to a file.
17250
17251   Arguments
17252       val: int
17253              the virtual address of the guest to start from
17254
17255       size: int
17256              the size of memory region to save
17257
17258       filename: string
17259              the file to save the memory to as binary data
17260
17261       cpu-index: int (optional)
17262              the index of the virtual CPU to use for translating the  virtual
17263              address (defaults to CPU 0)
17264
17265   Returns
17266       Nothing on success
17267
17268   Since
17269       0.14
17270
17271   Notes
17272       Errors were not reliably returned until 1.1
17273
17274   Example
17275          -> { "execute": "memsave",
17276               "arguments": { "val": 10,
17277                              "size": 100,
17278                              "filename": "/tmp/virtual-mem-dump" } }
17279          <- { "return": {} }
17280
17281   pmemsave (Command)
17282       Save a portion of guest physical memory to a file.
17283
17284   Arguments
17285       val: int
17286              the physical address of the guest to start from
17287
17288       size: int
17289              the size of memory region to save
17290
17291       filename: string
17292              the file to save the memory to as binary data
17293
17294   Returns
17295       Nothing on success
17296
17297   Since
17298       0.14
17299
17300   Notes
17301       Errors were not reliably returned until 1.1
17302
17303   Example
17304          -> { "execute": "pmemsave",
17305               "arguments": { "val": 10,
17306                              "size": 100,
17307                              "filename": "/tmp/physical-mem-dump" } }
17308          <- { "return": {} }
17309
17310   Memdev (Object)
17311       Information about memory backend
17312
17313   Members
17314       id: string (optional)
17315              backend's ID if backend has 'id' property (since 2.9)
17316
17317       size: int
17318              memory backend size
17319
17320       merge: boolean
17321              whether memory merge support is enabled
17322
17323       dump: boolean
17324              whether memory backend's memory is included in a core dump
17325
17326       prealloc: boolean
17327              whether memory was preallocated
17328
17329       share: boolean
17330              whether memory is private to QEMU or shared (since 6.1)
17331
17332       reserve: boolean (optional)
17333              whether  swap  space (or huge pages) was reserved if applicable.
17334              This corresponds to the user configuration and  not  the  actual
17335              behavior  implemented in the OS to perform the reservation.  For
17336              example, Linux will never reserve swap  space  for  shared  file
17337              mappings. (since 6.1)
17338
17339       host-nodes: array of int
17340              host nodes for its memory policy
17341
17342       policy: HostMemPolicy
17343              memory policy of memory backend
17344
17345   Since
17346       2.1
17347
17348   query-memdev (Command)
17349       Returns information for all memory backends.
17350
17351   Returns
17352       a list of Memdev.
17353
17354   Since
17355       2.1
17356
17357   Example
17358          -> { "execute": "query-memdev" }
17359          <- { "return": [
17360                 {
17361                   "id": "mem1",
17362                   "size": 536870912,
17363                   "merge": false,
17364                   "dump": true,
17365                   "prealloc": false,
17366                   "host-nodes": [0, 1],
17367                   "policy": "bind"
17368                 },
17369                 {
17370                   "size": 536870912,
17371                   "merge": false,
17372                   "dump": true,
17373                   "prealloc": true,
17374                   "host-nodes": [2, 3],
17375                   "policy": "preferred"
17376                 }
17377               ]
17378             }
17379
17380   CpuInstanceProperties (Object)
17381       List of properties to be used for hotplugging a CPU instance, it should
17382       be passed by management with device_add command when  a  CPU  is  being
17383       hotplugged.
17384
17385   Members
17386       node-id: int (optional)
17387              NUMA node ID the CPU belongs to
17388
17389       socket-id: int (optional)
17390              socket number within node/board the CPU belongs to
17391
17392       die-id: int (optional)
17393              die number within node/board the CPU belongs to (Since 4.1)
17394
17395       core-id: int (optional)
17396              core number within die the CPU belongs to
17397
17398       thread-id: int (optional)
17399              thread number within core the CPU belongs to
17400
17401   Note
17402       currently  there  are 5 properties that could be present but management
17403       should be prepared to pass through  other  properties  with  device_add
17404       command to allow for future interface extension. This also requires the
17405       filed names to be kept in sync  with  the  properties  passed  to  -de‐
17406       vice/device_add.
17407
17408   Since
17409       2.7
17410
17411   HotpluggableCPU (Object)
17412   Members
17413       type: string
17414              CPU object type for usage with device_add command
17415
17416       props: CpuInstanceProperties
17417              list of properties to be used for hotplugging CPU
17418
17419       vcpus-count: int
17420              number of logical VCPU threads HotpluggableCPU provides
17421
17422       qom-path: string (optional)
17423              link  to existing CPU object if CPU is present or omitted if CPU
17424              is not present.
17425
17426   Since
17427       2.7
17428
17429   query-hotpluggable-cpus (Command)
17430   TODO
17431       Better documentation; currently there is none.
17432
17433   Returns
17434       a list of HotpluggableCPU objects.
17435
17436   Since
17437       2.7
17438
17439   Example
17440          For pseries machine type started with -smp 2,cores=2,maxcpus=4 -cpu POWER8:
17441
17442          -> { "execute": "query-hotpluggable-cpus" }
17443          <- {"return": [
17444               { "props": { "core": 8 }, "type": "POWER8-spapr-cpu-core",
17445                 "vcpus-count": 1 },
17446               { "props": { "core": 0 }, "type": "POWER8-spapr-cpu-core",
17447                 "vcpus-count": 1, "qom-path": "/machine/unattached/device[0]"}
17448             ]}'
17449
17450          For pc machine type started with -smp 1,maxcpus=2:
17451
17452          -> { "execute": "query-hotpluggable-cpus" }
17453          <- {"return": [
17454               {
17455                  "type": "qemu64-x86_64-cpu", "vcpus-count": 1,
17456                  "props": {"core-id": 0, "socket-id": 1, "thread-id": 0}
17457               },
17458               {
17459                  "qom-path": "/machine/unattached/device[0]",
17460                  "type": "qemu64-x86_64-cpu", "vcpus-count": 1,
17461                  "props": {"core-id": 0, "socket-id": 0, "thread-id": 0}
17462               }
17463             ]}
17464
17465          For s390x-virtio-ccw machine type started with -smp 1,maxcpus=2 -cpu qemu
17466          (Since: 2.11):
17467
17468          -> { "execute": "query-hotpluggable-cpus" }
17469          <- {"return": [
17470               {
17471                  "type": "qemu-s390x-cpu", "vcpus-count": 1,
17472                  "props": { "core-id": 1 }
17473               },
17474               {
17475                  "qom-path": "/machine/unattached/device[0]",
17476                  "type": "qemu-s390x-cpu", "vcpus-count": 1,
17477                  "props": { "core-id": 0 }
17478               }
17479             ]}
17480
17481   set-numa-node (Command)
17482       Runtime equivalent of '-numa' CLI  option,  available  at  preconfigure
17483       stage to configure numa mapping before initializing machine.
17484
17485       Since 3.0
17486
17487   Arguments
17488       The members of NumaOptions
17489
17490   balloon (Command)
17491       Request the balloon driver to change its balloon size.
17492
17493   Arguments
17494       value: int
17495              the  target  logical size of the VM in bytes.  We can deduce the
17496              size of the balloon using this formula:
17497                 logical_vm_size = vm_ram_size - balloon_size
17498
17499              From it we have: balloon_size = vm_ram_size - value
17500
17501   Returns
17502       • Nothing on success
17503
17504       • If the balloon driver is enabled but not functional because  the  KVM
17505         kernel module cannot support it, KvmMissingCap
17506
17507       • If no balloon device is present, DeviceNotActive
17508
17509   Notes
17510       This  command just issues a request to the guest.  When it returns, the
17511       balloon size may not have changed.  A guest can change the balloon size
17512       independent of this command.
17513
17514   Since
17515       0.14
17516
17517   Example
17518          -> { "execute": "balloon", "arguments": { "value": 536870912 } }
17519          <- { "return": {} }
17520
17521          With a 2.5GiB guest this command inflated the ballon to 3GiB.
17522
17523   BalloonInfo (Object)
17524       Information about the guest balloon device.
17525
17526   Members
17527       actual: int
17528              the  logical  size  of  the  VM  in  bytes  Formula  used: logi‐
17529              cal_vm_size = vm_ram_size - balloon_size
17530
17531   Since
17532       0.14
17533
17534   query-balloon (Command)
17535       Return information about the balloon device.
17536
17537   Returns
17538BalloonInfo on success
17539
17540       • If the balloon driver is enabled but not functional because  the  KVM
17541         kernel module cannot support it, KvmMissingCap
17542
17543       • If no balloon device is present, DeviceNotActive
17544
17545   Since
17546       0.14
17547
17548   Example
17549          -> { "execute": "query-balloon" }
17550          <- { "return": {
17551                   "actual": 1073741824,
17552                }
17553             }
17554
17555   BALLOON_CHANGE (Event)
17556       Emitted  when the guest changes the actual BALLOON level. This value is
17557       equivalent to the actual field return by the 'query-balloon' command
17558
17559   Arguments
17560       actual: int
17561              the logical  size  of  the  VM  in  bytes  Formula  used:  logi‐
17562              cal_vm_size = vm_ram_size - balloon_size
17563
17564   Note
17565       this event is rate-limited.
17566
17567   Since
17568       1.2
17569
17570   Example
17571          <- { "event": "BALLOON_CHANGE",
17572               "data": { "actual": 944766976 },
17573               "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
17574
17575   MemoryInfo (Object)
17576       Actual memory information in bytes.
17577
17578   Members
17579       base-memory: int
17580              size of "base" memory specified with command line option -m.
17581
17582       plugged-memory: int (optional)
17583              size  of memory that can be hot-unplugged. This field is omitted
17584              if target doesn't support memory hotplug (i.e. CONFIG_MEM_DEVICE
17585              not defined at build time).
17586
17587   Since
17588       2.11
17589
17590   query-memory-size-summary (Command)
17591       Return  the  amount of initially allocated and present hotpluggable (if
17592       enabled) memory in bytes.
17593
17594   Example
17595          -> { "execute": "query-memory-size-summary" }
17596          <- { "return": { "base-memory": 4294967296, "plugged-memory": 0 } }
17597
17598   Since
17599       2.11
17600
17601   PCDIMMDeviceInfo (Object)
17602       PCDIMMDevice state information
17603
17604   Members
17605       id: string (optional)
17606              device's ID
17607
17608       addr: int
17609              physical address, where device is mapped
17610
17611       size: int
17612              size of memory that the device provides
17613
17614       slot: int
17615              slot number at which device is plugged in
17616
17617       node: int
17618              NUMA node number where device is plugged in
17619
17620       memdev: string
17621              memory backend linked with device
17622
17623       hotplugged: boolean
17624              true if device was hotplugged
17625
17626       hotpluggable: boolean
17627              true if device if could be added/removed while machine  is  run‐
17628              ning
17629
17630   Since
17631       2.1
17632
17633   VirtioPMEMDeviceInfo (Object)
17634       VirtioPMEM state information
17635
17636   Members
17637       id: string (optional)
17638              device's ID
17639
17640       memaddr: int
17641              physical address in memory, where device is mapped
17642
17643       size: int
17644              size of memory that the device provides
17645
17646       memdev: string
17647              memory backend linked with device
17648
17649   Since
17650       4.1
17651
17652   VirtioMEMDeviceInfo (Object)
17653       VirtioMEMDevice state information
17654
17655   Members
17656       id: string (optional)
17657              device's ID
17658
17659       memaddr: int
17660              physical address in memory, where device is mapped
17661
17662       requested-size: int
17663              the user requested size of the device
17664
17665       size: int
17666              the (current) size of memory that the device provides
17667
17668       max-size: int
17669              the maximum size of memory that the device can provide
17670
17671       block-size: int
17672              the block size of memory that the device provides
17673
17674       node: int
17675              NUMA node number where device is assigned to
17676
17677       memdev: string
17678              memory backend linked with the region
17679
17680   Since
17681       5.1
17682
17683   MemoryDeviceInfo (Object)
17684       Union containing information about a memory device
17685
17686       nvdimm is included since 2.12. virtio-pmem is included since 4.1.  vir‐
17687       tio-mem is included since 5.1.
17688
17689   Members
17690       type   One of dimm, nvdimm, virtio-pmem, virtio-mem
17691
17692       data: PCDIMMDeviceInfo when type is "dimm"
17693
17694       data: PCDIMMDeviceInfo when type is "nvdimm"
17695
17696       data: VirtioPMEMDeviceInfo when type is "virtio-pmem"
17697
17698       data: VirtioMEMDeviceInfo when type is "virtio-mem"
17699
17700   Since
17701       2.1
17702
17703   query-memory-devices (Command)
17704       Lists available memory devices and their state
17705
17706   Since
17707       2.1
17708
17709   Example
17710          -> { "execute": "query-memory-devices" }
17711          <- { "return": [ { "data":
17712                                { "addr": 5368709120,
17713                                  "hotpluggable": true,
17714                                  "hotplugged": true,
17715                                  "id": "d1",
17716                                  "memdev": "/objects/memX",
17717                                  "node": 0,
17718                                  "size": 1073741824,
17719                                  "slot": 0},
17720                             "type": "dimm"
17721                           } ] }
17722
17723   MEMORY_DEVICE_SIZE_CHANGE (Event)
17724       Emitted when the size of a memory device changes. Only emitted for mem‐
17725       ory  devices that can actually change the size (e.g., virtio-mem due to
17726       guest action).
17727
17728   Arguments
17729       id: string (optional)
17730              device's ID
17731
17732       size: int
17733              the new size of memory that the device provides
17734
17735   Note
17736       this event is rate-limited.
17737
17738   Since
17739       5.1
17740
17741   Example
17742          <- { "event": "MEMORY_DEVICE_SIZE_CHANGE",
17743               "data": { "id": "vm0", "size": 1073741824},
17744               "timestamp": { "seconds": 1588168529, "microseconds": 201316 } }
17745
17746   MEM_UNPLUG_ERROR (Event)
17747       Emitted when memory hot unplug error occurs.
17748
17749   Arguments
17750       device: string
17751              device name
17752
17753       msg: string
17754              Informative message
17755
17756   Since
17757       2.4
17758
17759   Example
17760          <- { "event": "MEM_UNPLUG_ERROR"
17761               "data": { "device": "dimm1",
17762                         "msg": "acpi: device unplug for unsupported device"
17763               },
17764               "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
17765
17766   SMPConfiguration (Object)
17767       Schema for CPU topology configuration.  A missing value lets QEMU  fig‐
17768       ure out a suitable value based on the ones that are provided.
17769
17770   Members
17771       cpus: int (optional)
17772              number of virtual CPUs in the virtual machine
17773
17774       sockets: int (optional)
17775              number of sockets in the CPU topology
17776
17777       dies: int (optional)
17778              number of dies per socket in the CPU topology
17779
17780       cores: int (optional)
17781              number of cores per thread in the CPU topology
17782
17783       threads: int (optional)
17784              number of threads per core in the CPU topology
17785
17786       maxcpus: int (optional)
17787              maximum  number  of hotpluggable virtual CPUs in the virtual ma‐
17788              chine
17789
17790   Since
17791       6.1
17792
17793   CpuModelInfo (Object)
17794       Virtual CPU model.
17795
17796       A CPU model consists of the name of a CPU definition,  to  which  delta
17797       changes  are  applied  (e.g. features added/removed). Most magic values
17798       that an architecture might require should be hidden  behind  the  name.
17799       However, if required, architectures can expose relevant properties.
17800
17801   Members
17802       name: string
17803              the name of the CPU definition the model is based on
17804
17805       props: value (optional)
17806              a dictionary of QOM properties to be applied
17807
17808   Since
17809       2.8
17810
17811   CpuModelExpansionType (Enum)
17812       An enumeration of CPU model expansion types.
17813
17814   Values
17815       static Expand  to  a  static  CPU model, a combination of a static base
17816              model name and property delta changes. As the static base  model
17817              will  never change, the expanded CPU model will be the same, in‐
17818              dependent of QEMU version, machine type,  machine  options,  and
17819              accelerator options.  Therefore, the resulting model can be used
17820              by tooling without having to specify a compatibility  machine  -
17821              e.g. when displaying the "host" model. The static CPU models are
17822              migration-safe.
17823
17824       full   Expand all properties. The produced model is not  guaranteed  to
17825              be migration-safe, but allows tooling to get an insight and work
17826              with model details.
17827
17828   Note
17829       When a non-migration-safe CPU model is expanded in  static  mode,  some
17830       features enabled by the CPU model may be omitted, because they can't be
17831       implemented  by  a  static  CPU  model  definition  (e.g.  cache   info
17832       passthrough and PMU passthrough in x86). If you need an accurate repre‐
17833       sentation of the features enabled by a  non-migration-safe  CPU  model,
17834       use  full.  If you need a static representation that will keep ABI com‐
17835       patibility even when changing QEMU version or machine-type, use  static
17836       (but keep in mind that some features may be omitted).
17837
17838   Since
17839       2.8
17840
17841   CpuModelCompareResult (Enum)
17842       An  enumeration  of CPU model comparison results. The result is usually
17843       calculated using e.g. CPU features or CPU generations.
17844
17845   Values
17846       incompatible
17847              If model A is incompatible to model B, model A is not guaranteed
17848              to run where model B runs and the other way around.
17849
17850       identical
17851              If model A is identical to model B, model A is guaranteed to run
17852              where model B runs and the other way around.
17853
17854       superset
17855              If model A is a superset of model B, model B  is  guaranteed  to
17856              run  where model A runs. There are no guarantees about the other
17857              way.
17858
17859       subset If model A is a subset of model B, model A is guaranteed to  run
17860              where model B runs. There are no guarantees about the other way.
17861
17862   Since
17863       2.8
17864
17865   CpuModelBaselineInfo (Object)
17866       The result of a CPU model baseline.
17867
17868   Members
17869       model: CpuModelInfo
17870              the baselined CpuModelInfo.
17871
17872   Since
17873       2.8
17874
17875   If
17876       defined(TARGET_S390X)
17877
17878   CpuModelCompareInfo (Object)
17879       The result of a CPU model comparison.
17880
17881   Members
17882       result: CpuModelCompareResult
17883              The result of the compare operation.
17884
17885       responsible-properties: array of string
17886              List  of  properties that led to the comparison result not being
17887              identical.
17888       responsible-properties is a list of QOM property names that led to both
17889       CPUs  not  being detected as identical. For identical models, this list
17890       is empty.  If a QOM property is read-only, that means there's no  known
17891       way  to  make  the  CPU  models identical. If the special property name
17892       "type" is included, the models are by definition not identical and can‐
17893       not be made identical.
17894
17895   Since
17896       2.8
17897
17898   If
17899       defined(TARGET_S390X)
17900
17901   query-cpu-model-comparison (Command)
17902       Compares  two CPU models, returning how they compare in a specific con‐
17903       figuration. The results indicates how  both  models  compare  regarding
17904       runnability.  This result can be used by tooling to make decisions if a
17905       certain CPU model will run in a certain configuration or if a  compati‐
17906       ble CPU model has to be created by baselining.
17907
17908       Usually, a CPU model is compared against the maximum possible CPU model
17909       of a certain configuration (e.g. the "host" model for KVM). If that CPU
17910       model is identical or a subset, it will run in that configuration.
17911
17912       The result returned by this command may be affected by:
17913
17914       • QEMU  version:  CPU  models  may look different depending on the QEMU
17915         version.   (Except  for  CPU   models   reported   as   "static"   in
17916         query-cpu-definitions.)
17917
17918       • machine-type:  CPU  model  may  look  different  depending on the ma‐
17919         chine-type.   (Except  for  CPU  models  reported  as   "static"   in
17920         query-cpu-definitions.)
17921
17922       • machine  options  (including accelerator): in some architectures, CPU
17923         models may look different depending on machine  and  accelerator  op‐
17924         tions. (Except for CPU models reported as "static" in query-cpu-defi‐
17925         nitions.)
17926
17927       • "-cpu" arguments and global properties: arguments to the -cpu  option
17928         and  global  properties  may  affect  expansion  of CPU models. Using
17929         query-cpu-model-expansion while using these is not advised.
17930
17931       Some architectures may not support comparing CPU models. s390x supports
17932       comparing CPU models.
17933
17934   Arguments
17935       modela: CpuModelInfo
17936              Not documented
17937
17938       modelb: CpuModelInfo
17939              Not documented
17940
17941   Returns
17942       a CpuModelBaselineInfo. Returns an error if comparing CPU models is not
17943       supported, if a model cannot be used, if a model  contains  an  unknown
17944       cpu definition name, unknown properties or properties with wrong types.
17945
17946   Note
17947       this  command  isn't specific to s390x, but is only implemented on this
17948       architecture currently.
17949
17950   Since
17951       2.8
17952
17953   If
17954       defined(TARGET_S390X)
17955
17956   query-cpu-model-baseline (Command)
17957       Baseline two CPU models, creating a compatible third model. The created
17958       model  will  always be a static, migration-safe CPU model (see "static"
17959       CPU model expansion for details).
17960
17961       This interface can be used by tooling to create a compatible CPU  model
17962       out  two  CPU  models.  The created CPU model will be identical to or a
17963       subset of both CPU models when comparing them. Therefore,  the  created
17964       CPU model is guaranteed to run where the given CPU models run.
17965
17966       The result returned by this command may be affected by:
17967
17968       • QEMU  version:  CPU  models  may look different depending on the QEMU
17969         version.   (Except  for  CPU   models   reported   as   "static"   in
17970         query-cpu-definitions.)
17971
17972       • machine-type:  CPU  model  may  look  different  depending on the ma‐
17973         chine-type.   (Except  for  CPU  models  reported  as   "static"   in
17974         query-cpu-definitions.)
17975
17976       • machine  options  (including accelerator): in some architectures, CPU
17977         models may look different depending on machine  and  accelerator  op‐
17978         tions. (Except for CPU models reported as "static" in query-cpu-defi‐
17979         nitions.)
17980
17981       • "-cpu" arguments and global properties: arguments to the -cpu  option
17982         and  global  properties  may  affect  expansion  of CPU models. Using
17983         query-cpu-model-expansion while using these is not advised.
17984
17985       Some architectures may not support baselining CPU  models.  s390x  sup‐
17986       ports baselining CPU models.
17987
17988   Arguments
17989       modela: CpuModelInfo
17990              Not documented
17991
17992       modelb: CpuModelInfo
17993              Not documented
17994
17995   Returns
17996       a  CpuModelBaselineInfo.  Returns  an error if baselining CPU models is
17997       not supported, if a model cannot be used, if a model  contains  an  un‐
17998       known  cpu definition name, unknown properties or properties with wrong
17999       types.
18000
18001   Note
18002       this command isn't specific to s390x, but is only implemented  on  this
18003       architecture currently.
18004
18005   Since
18006       2.8
18007
18008   If
18009       defined(TARGET_S390X)
18010
18011   CpuModelExpansionInfo (Object)
18012       The result of a cpu model expansion.
18013
18014   Members
18015       model: CpuModelInfo
18016              the expanded CpuModelInfo.
18017
18018   Since
18019       2.8
18020
18021   If
18022       defined(TARGET_S390X) || defined(TARGET_I386) || defined(TARGET_ARM)
18023
18024   query-cpu-model-expansion (Command)
18025       Expands  a  given CPU model (or a combination of CPU model + additional
18026       options) to different granularities, allowing tooling to get an  under‐
18027       standing  what  a specific CPU model looks like in QEMU under a certain
18028       configuration.
18029
18030       This interface can be used to query the "host" CPU model.
18031
18032       The data returned by this command may be affected by:
18033
18034       • QEMU version: CPU models may look different  depending  on  the  QEMU
18035         version.    (Except   for   CPU   models   reported  as  "static"  in
18036         query-cpu-definitions.)
18037
18038       • machine-type: CPU model  may look  different  depending  on  the  ma‐
18039         chine-type.    (Except   for  CPU  models  reported  as  "static"  in
18040         query-cpu-definitions.)
18041
18042       • machine options (including accelerator): in some  architectures,  CPU
18043         models  may  look  different depending on machine and accelerator op‐
18044         tions. (Except for CPU models reported as "static" in query-cpu-defi‐
18045         nitions.)
18046
18047       • "-cpu"  arguments and global properties: arguments to the -cpu option
18048         and global properties may  affect  expansion  of  CPU  models.  Using
18049         query-cpu-model-expansion while using these is not advised.
18050
18051       Some  architectures may not support all expansion types. s390x supports
18052       "full" and "static". Arm only supports "full".
18053
18054   Arguments
18055       type: CpuModelExpansionType
18056              Not documented
18057
18058       model: CpuModelInfo
18059              Not documented
18060
18061   Returns
18062       a CpuModelExpansionInfo. Returns an error if expanding  CPU  models  is
18063       not  supported,  if the model cannot be expanded, if the model contains
18064       an unknown CPU definition name, unknown properties or properties with a
18065       wrong  type.  Also  returns  an  error if an expansion type is not sup‐
18066       ported.
18067
18068   Since
18069       2.8
18070
18071   If
18072       defined(TARGET_S390X) || defined(TARGET_I386) || defined(TARGET_ARM)
18073
18074   CpuDefinitionInfo (Object)
18075       Virtual CPU definition.
18076
18077   Members
18078       name: string
18079              the name of the CPU definition
18080
18081       migration-safe: boolean (optional)
18082              whether a CPU definition can be safely  used  for  migration  in
18083              combination with a QEMU compatibility machine when migrating be‐
18084              tween different QEMU versions and between hosts  with  different
18085              sets  of  (hardware  or software) capabilities. If not provided,
18086              information is not available and callers should not  assume  the
18087              CPU definition to be migration-safe. (since 2.8)
18088
18089       static: boolean
18090              whether a CPU definition is static and will not change depending
18091              on QEMU version, machine type, machine options  and  accelerator
18092              options.  A static model is always migration-safe. (since 2.8)
18093
18094       unavailable-features: array of string (optional)
18095              List  of  properties  that prevent the CPU model from running in
18096              the current host. (since 2.8)
18097
18098       typename: string
18099              Type name that can be used as  argument  to  device-list-proper‐
18100              ties,  to  introspect  properties  configurable  using  -cpu  or
18101              -global.  (since 2.9)
18102
18103       alias-of: string (optional)
18104              Name of CPU model this model is an alias for.  The target of the
18105              CPU  model alias may change depending on the machine type.  Man‐
18106              agement software is supposed to translate CPU model  aliases  in
18107              the  VM  configuration,  because  aliases  may stop being migra‐
18108              tion-safe in the future (since 4.1)
18109
18110       deprecated: boolean
18111              If true, this CPU model is deprecated and may be removed  in  in
18112              some  future  version  of QEMU according to the QEMU deprecation
18113              policy. (since 5.2)
18114       unavailable-features is a list of QOM property names that represent CPU
18115       model  attributes  that prevent the CPU from running.  If the QOM prop‐
18116       erty is read-only, that means there's no known  way  to  make  the  CPU
18117       model  run in the current host. Implementations that choose not to pro‐
18118       vide specific information return the  property  name  "type".   If  the
18119       property is read-write, it means that it MAY be possible to run the CPU
18120       model in the current host if that property is changed. Management soft‐
18121       ware  can  use  it as hints to suggest or choose an alternative for the
18122       user, or just to generate meaningful error messages explaining why  the
18123       CPU model can't be used.  If unavailable-features is an empty list, the
18124       CPU model is runnable using the current host and machine-type.  If  un‐
18125       available-features  is not present, runnability information for the CPU
18126       is not available.
18127
18128   Since
18129       1.2
18130
18131   If
18132       defined(TARGET_PPC) || defined(TARGET_ARM) ||  defined(TARGET_I386)  ||
18133       defined(TARGET_S390X) || defined(TARGET_MIPS)
18134
18135   query-cpu-definitions (Command)
18136       Return a list of supported virtual CPU definitions
18137
18138   Returns
18139       a list of CpuDefInfo
18140
18141   Since
18142       1.2
18143
18144   If
18145       defined(TARGET_PPC)  ||  defined(TARGET_ARM) || defined(TARGET_I386) ||
18146       defined(TARGET_S390X) || defined(TARGET_MIPS)
18147

RECORD/REPLAY

18149   ReplayMode (Enum)
18150       Mode of the replay subsystem.
18151
18152   Values
18153       none   normal execution mode. Replay or record are not enabled.
18154
18155       record record mode. All non-deterministic data is written into the  re‐
18156              play log.
18157
18158       play   replay  mode.  Non-deterministic data required for system execu‐
18159              tion is read from the log.
18160
18161   Since
18162       2.5
18163
18164   ReplayInfo (Object)
18165       Record/replay information.
18166
18167   Members
18168       mode: ReplayMode
18169              current mode.
18170
18171       filename: string (optional)
18172              name of the record/replay log  file.   It  is  present  only  in
18173              record or replay modes, when the log is recorded or replayed.
18174
18175       icount: int
18176              current number of executed instructions.
18177
18178   Since
18179       5.2
18180
18181   query-replay (Command)
18182       Retrieve  the  record/replay information.  It includes current instruc‐
18183       tion count which may be used for replay-break and replay-seek commands.
18184
18185   Returns
18186       record/replay information.
18187
18188   Since
18189       5.2
18190
18191   Example
18192          -> { "execute": "query-replay" }
18193          <- { "return": { "mode": "play", "filename": "log.rr", "icount": 220414 } }
18194
18195   replay-break (Command)
18196       Set replay breakpoint at instruction  count  icount.   Execution  stops
18197       when  the  specified  instruction is reached.  There can be at most one
18198       breakpoint. When breakpoint is set, any  prior  one  is  removed.   The
18199       breakpoint  may  be  set  only in replay mode and only "in the future",
18200       i.e. at instruction counts greater than the current one.   The  current
18201       instruction count can be observed with query-replay.
18202
18203   Arguments
18204       icount: int
18205              instruction count to stop at
18206
18207   Since
18208       5.2
18209
18210   Example
18211          -> { "execute": "replay-break", "data": { "icount": 220414 } }
18212
18213   replay-delete-break (Command)
18214       Remove  replay breakpoint which was set with replay-break.  The command
18215       is ignored when there are no replay breakpoints.
18216
18217   Since
18218       5.2
18219
18220   Example
18221          -> { "execute": "replay-delete-break" }
18222
18223   replay-seek (Command)
18224       Automatically proceed to the instruction count icount,  when  replaying
18225       the execution. The command automatically loads nearest snapshot and re‐
18226       plays the execution to find the desired instruction.  When there is  no
18227       preceding  snapshot  or the execution is not replayed, then the command
18228       fails.  icount for the reference may be obtained with query-replay com‐
18229       mand.
18230
18231   Arguments
18232       icount: int
18233              target instruction count
18234
18235   Since
18236       5.2
18237
18238   Example
18239          -> { "execute": "replay-seek", "data": { "icount": 220414 } }
18240

YANK FEATURE

18242   YankInstanceType (Enum)
18243       An enumeration of yank instance types. See YankInstance for more infor‐
18244       mation.
18245
18246   Values
18247       block-node
18248              Not documented
18249
18250       chardev
18251              Not documented
18252
18253       migration
18254              Not documented
18255
18256   Since
18257       6.0
18258
18259   YankInstanceBlockNode (Object)
18260       Specifies which block graph node to yank. See YankInstance for more in‐
18261       formation.
18262
18263   Members
18264       node-name: string
18265              the name of the block graph node
18266
18267   Since
18268       6.0
18269
18270   YankInstanceChardev (Object)
18271       Specifies which character device to yank. See YankInstance for more in‐
18272       formation.
18273
18274   Members
18275       id: string
18276              the chardev's ID
18277
18278   Since
18279       6.0
18280
18281   YankInstance (Object)
18282       A yank instance can be yanked with the yank qmp command to recover from
18283       a hanging QEMU.
18284
18285       Currently implemented yank instances:
18286
18287              • nbd  block device: Yanking it will shut down the connection to
18288                the nbd server without attempting to reconnect.
18289
18290              • socket chardev:  Yanking  it  will  shut  down  the  connected
18291                socket.
18292
18293              • migration:  Yanking  it  will  shut down all migration connec‐
18294                tions. Unlike migrate_cancel, it will not notify the migration
18295                process,  so  migration  will go into failed state, instead of
18296                cancelled state. yank should be used to recover from hangs.
18297
18298   Members
18299       type: YankInstanceType
18300              Not documented
18301
18302       The members of YankInstanceBlockNode when type is "block-node"
18303
18304       The members of YankInstanceChardev when type is "chardev"
18305
18306   Since
18307       6.0
18308
18309   yank (Command)
18310       Try to recover from hanging QEMU by yanking  the  specified  instances.
18311       See YankInstance for more information.
18312
18313       Takes a list of YankInstance as argument.
18314
18315   Arguments
18316       instances: array of YankInstance
18317              Not documented
18318
18319   Returns
18320       • Nothing on success
18321
18322DeviceNotFound error, if any of the YankInstances doesn't exist
18323
18324   Example
18325          -> { "execute": "yank",
18326               "arguments": {
18327                   "instances": [
18328                        { "type": "block-node",
18329                          "node-name": "nbd0" }
18330                   ] } }
18331          <- { "return": {} }
18332
18333   Since
18334       6.0
18335
18336   query-yank (Command)
18337       Query yank instances. See YankInstance for more information.
18338
18339   Returns
18340       list of YankInstance
18341
18342   Example
18343          -> { "execute": "query-yank" }
18344          <- { "return": [
18345                   { "type": "block-node",
18346                     "node-name": "nbd0" }
18347               ] }
18348
18349   Since
18350       6.0
18351

MISCELLANEA

18353   add_client (Command)
18354       Allow  client connections for VNC, Spice and socket based character de‐
18355       vices to be passed in to QEMU via SCM_RIGHTS.
18356
18357   Arguments
18358       protocol: string
18359              protocol name. Valid names are "vnc", "spice" or the name  of  a
18360              character device (eg. from -chardev id=XXXX)
18361
18362       fdname: string
18363              file descriptor name previously passed via 'getfd' command
18364
18365       skipauth: boolean (optional)
18366              whether  to  skip  authentication.  Only  applies  to  "vnc" and
18367              "spice" protocols
18368
18369       tls: boolean (optional)
18370              whether to perform TLS. Only applies to the "spice" protocol
18371
18372   Returns
18373       nothing on success.
18374
18375   Since
18376       0.14
18377
18378   Example
18379          -> { "execute": "add_client", "arguments": { "protocol": "vnc",
18380                                                       "fdname": "myclient" } }
18381          <- { "return": {} }
18382
18383   NameInfo (Object)
18384       Guest name information.
18385
18386   Members
18387       name: string (optional)
18388              The name of the guest
18389
18390   Since
18391       0.14
18392
18393   query-name (Command)
18394       Return the name information of a guest.
18395
18396   Returns
18397       NameInfo of the guest
18398
18399   Since
18400       0.14
18401
18402   Example
18403          -> { "execute": "query-name" }
18404          <- { "return": { "name": "qemu-name" } }
18405
18406   IOThreadInfo (Object)
18407       Information about an iothread
18408
18409   Members
18410       id: string
18411              the identifier of the iothread
18412
18413       thread-id: int
18414              ID of the underlying host thread
18415
18416       poll-max-ns: int
18417              maximum polling time in ns, 0 means polling is  disabled  (since
18418              2.9)
18419
18420       poll-grow: int
18421              how many ns will be added to polling time, 0 means that it's not
18422              configured (since 2.9)
18423
18424       poll-shrink: int
18425              how many ns will be removed from polling time, 0 means that it's
18426              not configured (since 2.9)
18427
18428       aio-max-batch: int
18429              maximum  number  of  requests  in  a batch for the AIO engine, 0
18430              means that the engine will use its default (since 6.1)
18431
18432   Since
18433       2.0
18434
18435   query-iothreads (Command)
18436       Returns a list of information about each iothread.
18437
18438   Note
18439       this list excludes the QEMU main loop thread, which is not declared us‐
18440       ing  the  -object  iothread command-line option.  It is always the main
18441       thread of the process.
18442
18443   Returns
18444       a list of IOThreadInfo for each iothread
18445
18446   Since
18447       2.0
18448
18449   Example
18450          -> { "execute": "query-iothreads" }
18451          <- { "return": [
18452                   {
18453                      "id":"iothread0",
18454                      "thread-id":3134
18455                   },
18456                   {
18457                      "id":"iothread1",
18458                      "thread-id":3135
18459                   }
18460                ]
18461             }
18462
18463   stop (Command)
18464       Stop all guest VCPU execution.
18465
18466   Since
18467       0.14
18468
18469   Notes
18470       This function will succeed even if the guest is already in the  stopped
18471       state.   In  "inmigrate"  state,  it will ensure that the guest remains
18472       paused once migration finishes, as if the -S option was passed  on  the
18473       command line.
18474
18475   Example
18476          -> { "execute": "stop" }
18477          <- { "return": {} }
18478
18479   cont (Command)
18480       Resume guest VCPU execution.
18481
18482   Since
18483       0.14
18484
18485   Returns
18486       If successful, nothing
18487
18488   Notes
18489       This  command  will succeed if the guest is currently running.  It will
18490       also succeed if the guest is in the "inmigrate" state;  in  this  case,
18491       the  effect of the command is to make sure the guest starts once migra‐
18492       tion finishes, removing the effect of the -S command line option if  it
18493       was passed.
18494
18495   Example
18496          -> { "execute": "cont" }
18497          <- { "return": {} }
18498
18499   x-exit-preconfig (Command)
18500       Exit from "preconfig" state
18501
18502       This  command  makes  QEMU exit the preconfig state and proceed with VM
18503       initialization using configuration data provided on  the  command  line
18504       and via the QMP monitor during the preconfig state. The command is only
18505       available during the preconfig state (i.e. when the --preconfig command
18506       line option was in use).
18507
18508       Since 3.0
18509
18510   Returns
18511       nothing
18512
18513   Example
18514          -> { "execute": "x-exit-preconfig" }
18515          <- { "return": {} }
18516
18517   human-monitor-command (Command)
18518       Execute a command on the human monitor and return the output.
18519
18520   Arguments
18521       command-line: string
18522              the command to execute in the human monitor
18523
18524       cpu-index: int (optional)
18525              The CPU to use for commands that require an implicit CPU
18526
18527   Features
18528       savevm-monitor-nodes
18529              If  present,  HMP  command  savevm  only snapshots monitor-owned
18530              nodes if they have no parents.  This allows the use of  'savevm'
18531              with -blockdev. (since 4.2)
18532
18533   Returns
18534       the output of the command as a string
18535
18536   Since
18537       0.14
18538
18539   Notes
18540       This command only exists as a stop-gap.  Its use is highly discouraged.
18541       The semantics of this command are not guaranteed: this means that  com‐
18542       mand  names,  arguments  and  responses can change or be removed at ANY
18543       time.  Applications that rely on long term stability guarantees  should
18544       NOT use this command.
18545
18546       Known limitations:
18547
18548       • This  command  is  stateless, this means that commands that depend on
18549         state information (such as getfd) might not work
18550
18551       • Commands that prompt the user for data don't currently work
18552
18553   Example
18554          -> { "execute": "human-monitor-command",
18555               "arguments": { "command-line": "info kvm" } }
18556          <- { "return": "kvm support: enabled\r\n" }
18557
18558   getfd (Command)
18559       Receive a file descriptor via SCM rights and assign it a name
18560
18561   Arguments
18562       fdname: string
18563              file descriptor name
18564
18565   Returns
18566       Nothing on success
18567
18568   Since
18569       0.14
18570
18571   Notes
18572       If fdname already exists, the file descriptor assigned to  it  will  be
18573       closed and replaced by the received file descriptor.
18574
18575       The 'closefd' command can be used to explicitly close the file descrip‐
18576       tor when it is no longer needed.
18577
18578   Example
18579          -> { "execute": "getfd", "arguments": { "fdname": "fd1" } }
18580          <- { "return": {} }
18581
18582   closefd (Command)
18583       Close a file descriptor previously passed via SCM rights
18584
18585   Arguments
18586       fdname: string
18587              file descriptor name
18588
18589   Returns
18590       Nothing on success
18591
18592   Since
18593       0.14
18594
18595   Example
18596          -> { "execute": "closefd", "arguments": { "fdname": "fd1" } }
18597          <- { "return": {} }
18598
18599   AddfdInfo (Object)
18600       Information about a file descriptor that was added to an fd set.
18601
18602   Members
18603       fdset-id: int
18604              The ID of the fd set that fd was added to.
18605
18606       fd: int
18607              The file descriptor that was received via SCM rights  and  added
18608              to the fd set.
18609
18610   Since
18611       1.2
18612
18613   add-fd (Command)
18614       Add a file descriptor, that was passed via SCM rights, to an fd set.
18615
18616   Arguments
18617       fdset-id: int (optional)
18618              The ID of the fd set to add the file descriptor to.
18619
18620       opaque: string (optional)
18621              A free-form string that can be used to describe the fd.
18622
18623   Returns
18624AddfdInfo on success
18625
18626       • If file descriptor was not received, FdNotSupplied
18627
18628       • If fdset-id is a negative value, InvalidParameterValue
18629
18630   Notes
18631       The list of fd sets is shared by all monitor connections.
18632
18633       If fdset-id is not specified, a new fd set will be created.
18634
18635   Since
18636       1.2
18637
18638   Example
18639          -> { "execute": "add-fd", "arguments": { "fdset-id": 1 } }
18640          <- { "return": { "fdset-id": 1, "fd": 3 } }
18641
18642   remove-fd (Command)
18643       Remove a file descriptor from an fd set.
18644
18645   Arguments
18646       fdset-id: int
18647              The ID of the fd set that the file descriptor belongs to.
18648
18649       fd: int (optional)
18650              The file descriptor that is to be removed.
18651
18652   Returns
18653       • Nothing on success
18654
18655       • If fdset-id or fd is not found, FdNotFound
18656
18657   Since
18658       1.2
18659
18660   Notes
18661       The list of fd sets is shared by all monitor connections.
18662
18663       If  fd  is  not specified, all file descriptors in fdset-id will be re‐
18664       moved.
18665
18666   Example
18667          -> { "execute": "remove-fd", "arguments": { "fdset-id": 1, "fd": 3 } }
18668          <- { "return": {} }
18669
18670   FdsetFdInfo (Object)
18671       Information about a file descriptor that belongs to an fd set.
18672
18673   Members
18674       fd: int
18675              The file descriptor value.
18676
18677       opaque: string (optional)
18678              A free-form string that can be used to describe the fd.
18679
18680   Since
18681       1.2
18682
18683   FdsetInfo (Object)
18684       Information about an fd set.
18685
18686   Members
18687       fdset-id: int
18688              The ID of the fd set.
18689
18690       fds: array of FdsetFdInfo
18691              A list of file descriptors that belong to this fd set.
18692
18693   Since
18694       1.2
18695
18696   query-fdsets (Command)
18697       Return information describing all fd sets.
18698
18699   Returns
18700       A list of FdsetInfo
18701
18702   Since
18703       1.2
18704
18705   Note
18706       The list of fd sets is shared by all monitor connections.
18707
18708   Example
18709          -> { "execute": "query-fdsets" }
18710          <- { "return": [
18711                 {
18712                   "fds": [
18713                     {
18714                       "fd": 30,
18715                       "opaque": "rdonly:/path/to/file"
18716                     },
18717                     {
18718                       "fd": 24,
18719                       "opaque": "rdwr:/path/to/file"
18720                     }
18721                   ],
18722                   "fdset-id": 1
18723                 },
18724                 {
18725                   "fds": [
18726                     {
18727                       "fd": 28
18728                     },
18729                     {
18730                       "fd": 29
18731                     }
18732                   ],
18733                   "fdset-id": 0
18734                 }
18735               ]
18736             }
18737
18738   CommandLineParameterType (Enum)
18739       Possible types for an option parameter.
18740
18741   Values
18742       string accepts a character string
18743
18744       boolean
18745              accepts "on" or "off"
18746
18747       number accepts a number
18748
18749       size   accepts a number followed by an optional suffix (K)ilo,  (M)ega,
18750              (G)iga, (T)era
18751
18752   Since
18753       1.5
18754
18755   CommandLineParameterInfo (Object)
18756       Details about a single parameter of a command line option.
18757
18758   Members
18759       name: string
18760              parameter name
18761
18762       type: CommandLineParameterType
18763              parameter CommandLineParameterType
18764
18765       help: string (optional)
18766              human readable text string, not suitable for parsing.
18767
18768       default: string (optional)
18769              default value string (since 2.1)
18770
18771   Since
18772       1.5
18773
18774   CommandLineOptionInfo (Object)
18775       Details  about  a  command line option, including its list of parameter
18776       details
18777
18778   Members
18779       option: string
18780              option name
18781
18782       parameters: array of CommandLineParameterInfo
18783              an array of CommandLineParameterInfo
18784
18785   Since
18786       1.5
18787
18788   query-command-line-options (Command)
18789       Query command line option schema.
18790
18791   Arguments
18792       option: string (optional)
18793              option name
18794
18795   Returns
18796       list of CommandLineOptionInfo for all options (or  for  the  given  op‐
18797       tion).  Returns an error if the given option doesn't exist.
18798
18799   Since
18800       1.5
18801
18802   Example
18803          -> { "execute": "query-command-line-options",
18804               "arguments": { "option": "option-rom" } }
18805          <- { "return": [
18806                  {
18807                      "parameters": [
18808                          {
18809                              "name": "romfile",
18810                              "type": "string"
18811                          },
18812                          {
18813                              "name": "bootindex",
18814                              "type": "number"
18815                          }
18816                      ],
18817                      "option": "option-rom"
18818                  }
18819               ]
18820             }
18821
18822   RTC_CHANGE (Event)
18823       Emitted when the guest changes the RTC time.
18824
18825   Arguments
18826       offset: int
18827              offset  between  base RTC clock (as specified by -rtc base), and
18828              new RTC clock value
18829
18830   Note
18831       This event is rate-limited.
18832
18833   Since
18834       0.13
18835
18836   Example
18837          <-   { "event": "RTC_CHANGE",
18838                 "data": { "offset": 78 },
18839                 "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
18840
18841   If
18842       defined(TARGET_ALPHA) || defined(TARGET_ARM) || defined(TARGET_HPPA) ||
18843       defined(TARGET_I386)  || defined(TARGET_MIPS) || defined(TARGET_MIPS64)
18844       ||  defined(TARGET_PPC)  ||   defined(TARGET_PPC64)   ||   defined(TAR‐
18845       GET_S390X) || defined(TARGET_SH4) || defined(TARGET_SPARC)
18846
18847   rtc-reset-reinjection (Command)
18848       This  command will reset the RTC interrupt reinjection backlog.  Can be
18849       used if another mechanism to synchronize guest time is in  effect,  for
18850       example QEMU guest agent's guest-set-time command.
18851
18852   Since
18853       2.1
18854
18855   Example
18856          -> { "execute": "rtc-reset-reinjection" }
18857          <- { "return": {} }
18858
18859   If
18860       defined(TARGET_I386)
18861
18862   SevState (Enum)
18863       An enumeration of SEV state information used during query-sev.
18864
18865   Values
18866       uninit The guest is uninitialized.
18867
18868       launch-update
18869              The guest is currently being launched; plaintext data and regis‐
18870              ter state is being imported.
18871
18872       launch-secret
18873              The guest is currently being launched; ciphertext data is  being
18874              imported.
18875
18876       running
18877              The guest is fully launched or migrated in.
18878
18879       send-update
18880              The guest is currently being migrated out to another machine.
18881
18882       receive-update
18883              The guest is currently being migrated from another machine.
18884
18885   Since
18886       2.12
18887
18888   If
18889       defined(TARGET_I386)
18890
18891   SevInfo (Object)
18892       Information about Secure Encrypted Virtualization (SEV) support
18893
18894   Members
18895       enabled: boolean
18896              true if SEV is active
18897
18898       api-major: int
18899              SEV API major version
18900
18901       api-minor: int
18902              SEV API minor version
18903
18904       build-id: int
18905              SEV FW build id
18906
18907       policy: int
18908              SEV policy value
18909
18910       state: SevState
18911              SEV guest state
18912
18913       handle: int
18914              SEV firmware handle
18915
18916   Since
18917       2.12
18918
18919   If
18920       defined(TARGET_I386)
18921
18922   query-sev (Command)
18923       Returns information about SEV
18924
18925   Returns
18926       SevInfo
18927
18928   Since
18929       2.12
18930
18931   Example
18932          -> { "execute": "query-sev" }
18933          <- { "return": { "enabled": true, "api-major" : 0, "api-minor" : 0,
18934                           "build-id" : 0, "policy" : 0, "state" : "running",
18935                           "handle" : 1 } }
18936
18937   If
18938       defined(TARGET_I386)
18939
18940   SevLaunchMeasureInfo (Object)
18941       SEV Guest Launch measurement information
18942
18943   Members
18944       data: string
18945              the measurement value encoded in base64
18946
18947   Since
18948       2.12
18949
18950   If
18951       defined(TARGET_I386)
18952
18953   query-sev-launch-measure (Command)
18954       Query the SEV guest launch information.
18955
18956   Returns
18957       The SevLaunchMeasureInfo for the guest
18958
18959   Since
18960       2.12
18961
18962   Example
18963          -> { "execute": "query-sev-launch-measure" }
18964          <- { "return": { "data": "4l8LXeNlSPUDlXPJG5966/8%YZ" } }
18965
18966   If
18967       defined(TARGET_I386)
18968
18969   SevCapability (Object)
18970       The  struct  describes capability for a Secure Encrypted Virtualization
18971       feature.
18972
18973   Members
18974       pdh: string
18975              Platform Diffie-Hellman key (base64 encoded)
18976
18977       cert-chain: string
18978              PDH certificate chain (base64 encoded)
18979
18980       cbitpos: int
18981              C-bit location in page table entry
18982
18983       reduced-phys-bits: int
18984              Number of physical Address bit reduction when SEV is enabled
18985
18986   Since
18987       2.12
18988
18989   If
18990       defined(TARGET_I386)
18991
18992   query-sev-capabilities (Command)
18993       This command is used to get the SEV capabilities, and is  supported  on
18994       AMD X86 platforms only.
18995
18996   Returns
18997       SevCapability objects.
18998
18999   Since
19000       2.12
19001
19002   Example
19003          -> { "execute": "query-sev-capabilities" }
19004          <- { "return": { "pdh": "8CCDD8DDD", "cert-chain": "888CCCDDDEE",
19005                           "cbitpos": 47, "reduced-phys-bits": 5}}
19006
19007   If
19008       defined(TARGET_I386)
19009
19010   sev-inject-launch-secret (Command)
19011       This command injects a secret blob into memory of SEV guest.
19012
19013   Arguments
19014       packet-header: string
19015              the launch secret packet header encoded in base64
19016
19017       secret: string
19018              the launch secret data to be injected encoded in base64
19019
19020       gpa: int (optional)
19021              the guest physical address where secret will be injected.
19022
19023   Since
19024       6.0
19025
19026   If
19027       defined(TARGET_I386)
19028
19029   dump-skeys (Command)
19030       Dump guest's storage keys
19031
19032   Arguments
19033       filename: string
19034              the path to the file to dump to
19035       This command is only supported on s390 architecture.
19036
19037   Since
19038       2.5
19039
19040   Example
19041          -> { "execute": "dump-skeys",
19042               "arguments": { "filename": "/tmp/skeys" } }
19043          <- { "return": {} }
19044
19045   If
19046       defined(TARGET_S390X)
19047
19048   GICCapability (Object)
19049       The  struct  describes capability for a specific GIC (Generic Interrupt
19050       Controller) version. These bits are not only decided by QEMU/KVM  soft‐
19051       ware version, but also decided by the hardware that the program is run‐
19052       ning upon.
19053
19054   Members
19055       version: int
19056              version of GIC to be described. Currently, only 2 and 3 are sup‐
19057              ported.
19058
19059       emulated: boolean
19060              whether  current  QEMU/hardware  supports emulated GIC device in
19061              user space.
19062
19063       kernel: boolean
19064              whether current QEMU/hardware supports hardware accelerated  GIC
19065              device in kernel.
19066
19067   Since
19068       2.6
19069
19070   If
19071       defined(TARGET_ARM)
19072
19073   query-gic-capabilities (Command)
19074       This  command  is  ARM-only. It will return a list of GICCapability ob‐
19075       jects that describe its capability bits.
19076
19077   Returns
19078       a list of GICCapability objects.
19079
19080   Since
19081       2.6
19082
19083   Example
19084          -> { "execute": "query-gic-capabilities" }
19085          <- { "return": [{ "version": 2, "emulated": true, "kernel": false },
19086                          { "version": 3, "emulated": false, "kernel": true } ] }
19087
19088   If
19089       defined(TARGET_ARM)
19090
19091   SevAttestationReport (Object)
19092       The struct describes attestation report for a Secure Encrypted Virtual‐
19093       ization feature.
19094
19095   Members
19096       data: string
19097              guest attestation report (base64 encoded)
19098
19099   Since
19100       6.1
19101
19102   If
19103       defined(TARGET_I386)
19104
19105   query-sev-attestation-report (Command)
19106       This  command  is  used  to get the SEV attestation report, and is sup‐
19107       ported on AMD X86 platforms only.
19108
19109   Arguments
19110       mnonce: string
19111              a random 16 bytes value encoded in base64 (it will  be  included
19112              in report)
19113
19114   Returns
19115       SevAttestationReport objects.
19116
19117   Since
19118       6.1
19119
19120   Example
19121          -> { "execute" : "query-sev-attestation-report", "arguments": { "mnonce": "aaaaaaa" } }
19122          <- { "return" : { "data": "aaaaaaaabbbddddd"} }
19123
19124   If
19125       defined(TARGET_I386)
19126

AUDIO

19128   AudiodevPerDirectionOptions (Object)
19129       General  audio  backend  options  that  are  used for both playback and
19130       recording.
19131
19132   Members
19133       mixing-engine: boolean (optional)
19134              use QEMU's mixing engine to mix all streams inside QEMU and con‐
19135              vert  audio  formats when not supported by the backend. When set
19136              to off, fixed-settings must be also off (default on, since 4.2)
19137
19138       fixed-settings: boolean (optional)
19139              use fixed settings for host input/output. When  off,  frequency,
19140              channels and format must not be specified (default true)
19141
19142       frequency: int (optional)
19143              frequency to use when using fixed settings (default 44100)
19144
19145       channels: int (optional)
19146              number of channels when using fixed settings (default 2)
19147
19148       voices: int (optional)
19149              number of voices to use (default 1)
19150
19151       format: AudioFormat (optional)
19152              sample format to use when using fixed settings (default s16)
19153
19154       buffer-length: int (optional)
19155              the buffer length in microseconds
19156
19157   Since
19158       4.0
19159
19160   AudiodevGenericOptions (Object)
19161       Generic driver-specific options.
19162
19163   Members
19164       in: AudiodevPerDirectionOptions (optional)
19165              options of the capture stream
19166
19167       out: AudiodevPerDirectionOptions (optional)
19168              options of the playback stream
19169
19170   Since
19171       4.0
19172
19173   AudiodevAlsaPerDirectionOptions (Object)
19174       Options of the ALSA backend that are used for both playback and record‐
19175       ing.
19176
19177   Members
19178       dev: string (optional)
19179              the name of the ALSA device to use (default 'default')
19180
19181       period-length: int (optional)
19182              the period length in microseconds
19183
19184       try-poll: boolean (optional)
19185              attempt to use poll mode, falling back to non-polling access  on
19186              failure (default true)
19187
19188       The members of AudiodevPerDirectionOptions
19189
19190   Since
19191       4.0
19192
19193   AudiodevAlsaOptions (Object)
19194       Options of the ALSA audio backend.
19195
19196   Members
19197       in: AudiodevAlsaPerDirectionOptions (optional)
19198              options of the capture stream
19199
19200       out: AudiodevAlsaPerDirectionOptions (optional)
19201              options of the playback stream
19202
19203       threshold: int (optional)
19204              set the threshold (in microseconds) when playback starts
19205
19206   Since
19207       4.0
19208
19209   AudiodevCoreaudioPerDirectionOptions (Object)
19210       Options  of  the Core Audio backend that are used for both playback and
19211       recording.
19212
19213   Members
19214       buffer-count: int (optional)
19215              number of buffers
19216
19217       The members of AudiodevPerDirectionOptions
19218
19219   Since
19220       4.0
19221
19222   AudiodevCoreaudioOptions (Object)
19223       Options of the coreaudio audio backend.
19224
19225   Members
19226       in: AudiodevCoreaudioPerDirectionOptions (optional)
19227              options of the capture stream
19228
19229       out: AudiodevCoreaudioPerDirectionOptions (optional)
19230              options of the playback stream
19231
19232   Since
19233       4.0
19234
19235   AudiodevDsoundOptions (Object)
19236       Options of the DirectSound audio backend.
19237
19238   Members
19239       in: AudiodevPerDirectionOptions (optional)
19240              options of the capture stream
19241
19242       out: AudiodevPerDirectionOptions (optional)
19243              options of the playback stream
19244
19245       latency: int (optional)
19246              add extra latency to playback in microseconds (default 10000)
19247
19248   Since
19249       4.0
19250
19251   AudiodevJackPerDirectionOptions (Object)
19252       Options of the JACK backend that are used for both playback and record‐
19253       ing.
19254
19255   Members
19256       server-name: string (optional)
19257              select  from  among several possible concurrent server instances
19258              (default: environment variable $JACK_DEFAULT_SERVER if set, else
19259              "default")
19260
19261       client-name: string (optional)
19262              the client name to use. The server will modify this name to cre‐
19263              ate a unique variant, if needed unless exact-name is  true  (de‐
19264              fault: the guest's name)
19265
19266       connect-ports: string (optional)
19267              if set, a regular expression of JACK client port name(s) to mon‐
19268              itor for and automatically connect to
19269
19270       start-server: boolean (optional)
19271              start a jack server process if one is not already  present  (de‐
19272              fault: false)
19273
19274       exact-name: boolean (optional)
19275              use the exact name requested otherwise JACK automatically gener‐
19276              ates a unique one, if needed (default: false)
19277
19278       The members of AudiodevPerDirectionOptions
19279
19280   Since
19281       5.1
19282
19283   AudiodevJackOptions (Object)
19284       Options of the JACK audio backend.
19285
19286   Members
19287       in: AudiodevJackPerDirectionOptions (optional)
19288              options of the capture stream
19289
19290       out: AudiodevJackPerDirectionOptions (optional)
19291              options of the playback stream
19292
19293   Since
19294       5.1
19295
19296   AudiodevOssPerDirectionOptions (Object)
19297       Options of the OSS backend that are used for both playback and  record‐
19298       ing.
19299
19300   Members
19301       dev: string (optional)
19302              file name of the OSS device (default '/dev/dsp')
19303
19304       buffer-count: int (optional)
19305              number of buffers
19306
19307       try-poll: boolean (optional)
19308              attempt  to use poll mode, falling back to non-polling access on
19309              failure (default true)
19310
19311       The members of AudiodevPerDirectionOptions
19312
19313   Since
19314       4.0
19315
19316   AudiodevOssOptions (Object)
19317       Options of the OSS audio backend.
19318
19319   Members
19320       in: AudiodevOssPerDirectionOptions (optional)
19321              options of the capture stream
19322
19323       out: AudiodevOssPerDirectionOptions (optional)
19324              options of the playback stream
19325
19326       try-mmap: boolean (optional)
19327              try  using  memory-mapped  access,  falling  back  to   non-mem‐
19328              ory-mapped access on failure (default true)
19329
19330       exclusive: boolean (optional)
19331              open device in exclusive mode (vmix won't work) (default false)
19332
19333       dsp-policy: int (optional)
19334              set  the  timing  policy  of the device (between 0 and 10, where
19335              smaller number means smaller latency but higher CPU usage) or -1
19336              to use fragment mode (option ignored on some platforms) (default
19337              5)
19338
19339   Since
19340       4.0
19341
19342   AudiodevPaPerDirectionOptions (Object)
19343       Options of the Pulseaudio backend that are used for both  playback  and
19344       recording.
19345
19346   Members
19347       name: string (optional)
19348              name of the sink/source to use
19349
19350       stream-name: string (optional)
19351              name  of  the PulseAudio stream created by qemu.  Can be used to
19352              identify the stream  in  PulseAudio  when  you  create  multiple
19353              PulseAudio  devices or run multiple qemu instances (default: au‐
19354              diodev's id, since 4.2)
19355
19356       latency: int (optional)
19357              latency you want PulseAudio to achieve in microseconds  (default
19358              15000)
19359
19360       The members of AudiodevPerDirectionOptions
19361
19362   Since
19363       4.0
19364
19365   AudiodevPaOptions (Object)
19366       Options of the PulseAudio audio backend.
19367
19368   Members
19369       in: AudiodevPaPerDirectionOptions (optional)
19370              options of the capture stream
19371
19372       out: AudiodevPaPerDirectionOptions (optional)
19373              options of the playback stream
19374
19375       server: string (optional)
19376              PulseAudio server address (default: let PulseAudio choose)
19377
19378   Since
19379       4.0
19380
19381   AudiodevSdlPerDirectionOptions (Object)
19382       Options  of  the  SDL audio backend that are used for both playback and
19383       recording.
19384
19385   Members
19386       buffer-count: int (optional)
19387              number of buffers (default 4)
19388
19389       The members of AudiodevPerDirectionOptions
19390
19391   Since
19392       6.0
19393
19394   AudiodevSdlOptions (Object)
19395       Options of the SDL audio backend.
19396
19397   Members
19398       in: AudiodevSdlPerDirectionOptions (optional)
19399              options of the recording stream
19400
19401       out: AudiodevSdlPerDirectionOptions (optional)
19402              options of the playback stream
19403
19404   Since
19405       6.0
19406
19407   AudiodevWavOptions (Object)
19408       Options of the wav audio backend.
19409
19410   Members
19411       in: AudiodevPerDirectionOptions (optional)
19412              options of the capture stream
19413
19414       out: AudiodevPerDirectionOptions (optional)
19415              options of the playback stream
19416
19417       path: string (optional)
19418              name of the wav file to record (default 'qemu.wav')
19419
19420   Since
19421       4.0
19422
19423   AudioFormat (Enum)
19424       An enumeration of possible audio formats.
19425
19426   Values
19427       u8     unsigned 8 bit integer
19428
19429       s8     signed 8 bit integer
19430
19431       u16    unsigned 16 bit integer
19432
19433       s16    signed 16 bit integer
19434
19435       u32    unsigned 32 bit integer
19436
19437       s32    signed 32 bit integer
19438
19439       f32    single precision floating-point (since 5.0)
19440
19441   Since
19442       4.0
19443
19444   AudiodevDriver (Enum)
19445       An enumeration of possible audio backend drivers.
19446
19447   Values
19448       jack   JACK audio backend (since 5.1)
19449
19450       none   Not documented
19451
19452       alsa   Not documented
19453
19454       coreaudio
19455              Not documented
19456
19457       dsound Not documented
19458
19459       oss    Not documented
19460
19461       pa     Not documented
19462
19463       sdl    Not documented
19464
19465       spice  Not documented
19466
19467       wav    Not documented
19468
19469   Since
19470       4.0
19471
19472   Audiodev (Object)
19473       Options of an audio backend.
19474
19475   Members
19476       id: string
19477              identifier of the backend
19478
19479       driver: AudiodevDriver
19480              the backend driver to use
19481
19482       timer-period: int (optional)
19483              timer period (in microseconds, 0: use lowest possible)
19484
19485       The members of AudiodevGenericOptions when driver is "none"
19486
19487       The members of AudiodevAlsaOptions when driver is "alsa"
19488
19489       The members of AudiodevCoreaudioOptions when driver is "coreaudio"
19490
19491       The members of AudiodevDsoundOptions when driver is "dsound"
19492
19493       The members of AudiodevJackOptions when driver is "jack"
19494
19495       The members of AudiodevOssOptions when driver is "oss"
19496
19497       The members of AudiodevPaOptions when driver is "pa"
19498
19499       The members of AudiodevSdlOptions when driver is "sdl"
19500
19501       The members of AudiodevGenericOptions when driver is "spice"
19502
19503       The members of AudiodevWavOptions when driver is "wav"
19504
19505   Since
19506       4.0
19507

ACPI

19509   AcpiTableOptions (Object)
19510       Specify an ACPI table on the command line to load.
19511
19512       At most one of file and data can be specified. The list of files speci‐
19513       fied  by  any  one of them is loaded and concatenated in order. If both
19514       are omitted, data is implied.
19515
19516       Other fields / optargs can be used to override fields  of  the  generic
19517       ACPI  table  header; refer to the ACPI specification 5.0, section 5.2.6
19518       System Description Table Header. If a header field is  not  overridden,
19519       then  the  corresponding  value  from the concatenated blob is used (in
19520       case of file), or it is filled in with a hard-coded value (in  case  of
19521       data).
19522
19523       String  fields are copied into the matching ACPI member from lowest ad‐
19524       dress upwards, and silently truncated / NUL-padded to length.
19525
19526   Members
19527       sig: string (optional)
19528              table signature / identifier (4 bytes)
19529
19530       rev: int (optional)
19531              table revision number (dependent on signature, 1 byte)
19532
19533       oem_id: string (optional)
19534              OEM identifier (6 bytes)
19535
19536       oem_table_id: string (optional)
19537              OEM table identifier (8 bytes)
19538
19539       oem_rev: int (optional)
19540              OEM-supplied revision number (4 bytes)
19541
19542       asl_compiler_id: string (optional)
19543              identifier of the utility that created the table (4 bytes)
19544
19545       asl_compiler_rev: int (optional)
19546              revision number of the utility that created the table (4 bytes)
19547
19548       file: string (optional)
19549              colon (:) separated list of pathnames to load and concatenate as
19550              table  data.  The  resultant  binary blob is expected to have an
19551              ACPI table header. At least one file is required. This field ex‐
19552              cludes data.
19553
19554       data: string (optional)
19555              colon (:) separated list of pathnames to load and concatenate as
19556              table data. The resultant binary blob must not have an ACPI  ta‐
19557              ble  header.  At least one file is required. This field excludes
19558              file.
19559
19560   Since
19561       1.5
19562
19563   ACPISlotType (Enum)
19564   Values
19565       DIMM   memory slot
19566
19567       CPU    logical CPU slot (since 2.7)
19568
19569   ACPIOSTInfo (Object)
19570       OSPM Status Indication for a device For description of possible  values
19571       of source and status fields see "_OST (OSPM Status Indication)" chapter
19572       of ACPI5.0 spec.
19573
19574   Members
19575       device: string (optional)
19576              device ID associated with slot
19577
19578       slot: string
19579              slot ID, unique per slot of a given slot-type
19580
19581       slot-type: ACPISlotType
19582              type of the slot
19583
19584       source: int
19585              an integer containing the source event
19586
19587       status: int
19588              an integer containing the status code
19589
19590   Since
19591       2.1
19592
19593   query-acpi-ospm-status (Command)
19594       Return a list of ACPIOSTInfo for devices that support status  reporting
19595       via ACPI _OST method.
19596
19597   Since
19598       2.1
19599
19600   Example
19601          -> { "execute": "query-acpi-ospm-status" }
19602          <- { "return": [ { "device": "d1", "slot": "0", "slot-type": "DIMM", "source": 1, "status": 0},
19603                           { "slot": "1", "slot-type": "DIMM", "source": 0, "status": 0},
19604                           { "slot": "2", "slot-type": "DIMM", "source": 0, "status": 0},
19605                           { "slot": "3", "slot-type": "DIMM", "source": 0, "status": 0}
19606             ]}
19607
19608   ACPI_DEVICE_OST (Event)
19609       Emitted when guest executes ACPI _OST method.
19610
19611   Arguments
19612       info: ACPIOSTInfo
19613              OSPM Status Indication
19614
19615   Since
19616       2.1
19617
19618   Example
19619          <- { "event": "ACPI_DEVICE_OST",
19620               "data": { "device": "d1", "slot": "0",
19621                         "slot-type": "DIMM", "source": 1, "status": 0 } }
19622

PCI

19624   PciMemoryRange (Object)
19625       A PCI device memory region
19626
19627   Members
19628       base: int
19629              the starting address (guest physical)
19630
19631       limit: int
19632              the ending address (guest physical)
19633
19634   Since
19635       0.14
19636
19637   PciMemoryRegion (Object)
19638       Information about a PCI device I/O region.
19639
19640   Members
19641       bar: int
19642              the index of the Base Address Register for this region
19643
19644       type: string
19645
19646              • 'io' if the region is a PIO region
19647
19648              • 'memory' if the region is a MMIO region
19649
19650       size: int
19651              memory size
19652
19653       prefetch: boolean (optional)
19654              if type is 'memory', true if the memory is prefetchable
19655
19656       mem_type_64: boolean (optional)
19657              if type is 'memory', true if the BAR is 64-bit
19658
19659       address: int
19660              Not documented
19661
19662   Since
19663       0.14
19664
19665   PciBusInfo (Object)
19666       Information about a bus of a PCI Bridge device
19667
19668   Members
19669       number: int
19670              primary  bus interface number.  This should be the number of the
19671              bus the device resides on.
19672
19673       secondary: int
19674              secondary bus interface number.  This is the number of the  main
19675              bus for the bridge
19676
19677       subordinate: int
19678              This is the highest number bus that resides below the bridge.
19679
19680       io_range: PciMemoryRange
19681              The PIO range for all devices on this bridge
19682
19683       memory_range: PciMemoryRange
19684              The MMIO range for all devices on this bridge
19685
19686       prefetchable_range: PciMemoryRange
19687              The range of prefetchable MMIO for all devices on this bridge
19688
19689   Since
19690       2.4
19691
19692   PciBridgeInfo (Object)
19693       Information about a PCI Bridge device
19694
19695   Members
19696       bus: PciBusInfo
19697              information about the bus the device resides on
19698
19699       devices: array of PciDeviceInfo (optional)
19700              a list of PciDeviceInfo for each device on this bridge
19701
19702   Since
19703       0.14
19704
19705   PciDeviceClass (Object)
19706       Information about the Class of a PCI device
19707
19708   Members
19709       desc: string (optional)
19710              a string description of the device's class
19711
19712       class: int
19713              the class code of the device
19714
19715   Since
19716       2.4
19717
19718   PciDeviceId (Object)
19719       Information about the Id of a PCI device
19720
19721   Members
19722       device: int
19723              the PCI device id
19724
19725       vendor: int
19726              the PCI vendor id
19727
19728       subsystem: int (optional)
19729              the PCI subsystem id (since 3.1)
19730
19731       subsystem-vendor: int (optional)
19732              the PCI subsystem vendor id (since 3.1)
19733
19734   Since
19735       2.4
19736
19737   PciDeviceInfo (Object)
19738       Information about a PCI device
19739
19740   Members
19741       bus: int
19742              the bus number of the device
19743
19744       slot: int
19745              the slot the device is located in
19746
19747       function: int
19748              the function of the slot used by the device
19749
19750       class_info: PciDeviceClass
19751              the class of the device
19752
19753       id: PciDeviceId
19754              the PCI device id
19755
19756       irq: int (optional)
19757              if an IRQ is assigned to the device, the IRQ number
19758
19759       irq_pin: int
19760              the IRQ pin, zero means no IRQ (since 5.1)
19761
19762       qdev_id: string
19763              the device name of the PCI device
19764
19765       pci_bridge: PciBridgeInfo (optional)
19766              if the device is a PCI bridge, the bridge information
19767
19768       regions: array of PciMemoryRegion
19769              a list of the PCI I/O regions associated with the device
19770
19771   Notes
19772       the  contents  of  class_info.desc  are  not  stable and should only be
19773       treated as informational.
19774
19775   Since
19776       0.14
19777
19778   PciInfo (Object)
19779       Information about a PCI bus
19780
19781   Members
19782       bus: int
19783              the bus index
19784
19785       devices: array of PciDeviceInfo
19786              a list of devices on this bus
19787
19788   Since
19789       0.14
19790
19791   query-pci (Command)
19792       Return information about the PCI bus topology of the guest.
19793
19794   Returns
19795       a list of PciInfo for each PCI  bus.  Each  bus  is  represented  by  a
19796       json-object,  which  has a key with a json-array of all PCI devices at‐
19797       tached to it. Each device is represented by a json-object.
19798
19799   Since
19800       0.14
19801
19802   Example
19803          -> { "execute": "query-pci" }
19804          <- { "return": [
19805                   {
19806                      "bus": 0,
19807                      "devices": [
19808                         {
19809                            "bus": 0,
19810                            "qdev_id": "",
19811                            "slot": 0,
19812                            "class_info": {
19813                               "class": 1536,
19814                               "desc": "Host bridge"
19815                            },
19816                            "id": {
19817                               "device": 32902,
19818                               "vendor": 4663
19819                            },
19820                            "function": 0,
19821                            "regions": [
19822                            ]
19823                         },
19824                         {
19825                            "bus": 0,
19826                            "qdev_id": "",
19827                            "slot": 1,
19828                            "class_info": {
19829                               "class": 1537,
19830                               "desc": "ISA bridge"
19831                            },
19832                            "id": {
19833                               "device": 32902,
19834                               "vendor": 28672
19835                            },
19836                            "function": 0,
19837                            "regions": [
19838                            ]
19839                         },
19840                         {
19841                            "bus": 0,
19842                            "qdev_id": "",
19843                            "slot": 1,
19844                            "class_info": {
19845                               "class": 257,
19846                               "desc": "IDE controller"
19847                            },
19848                            "id": {
19849                               "device": 32902,
19850                               "vendor": 28688
19851                            },
19852                            "function": 1,
19853                            "regions": [
19854                               {
19855                                  "bar": 4,
19856                                  "size": 16,
19857                                  "address": 49152,
19858                                  "type": "io"
19859                               }
19860                            ]
19861                         },
19862                         {
19863                            "bus": 0,
19864                            "qdev_id": "",
19865                            "slot": 2,
19866                            "class_info": {
19867                               "class": 768,
19868                               "desc": "VGA controller"
19869                            },
19870                            "id": {
19871                               "device": 4115,
19872                               "vendor": 184
19873                            },
19874                            "function": 0,
19875                            "regions": [
19876                               {
19877                                  "prefetch": true,
19878                                  "mem_type_64": false,
19879                                  "bar": 0,
19880                                  "size": 33554432,
19881                                  "address": 4026531840,
19882                                  "type": "memory"
19883                               },
19884                               {
19885                                  "prefetch": false,
19886                                  "mem_type_64": false,
19887                                  "bar": 1,
19888                                  "size": 4096,
19889                                  "address": 4060086272,
19890                                  "type": "memory"
19891                               },
19892                               {
19893                                  "prefetch": false,
19894                                  "mem_type_64": false,
19895                                  "bar": 6,
19896                                  "size": 65536,
19897                                  "address": -1,
19898                                  "type": "memory"
19899                               }
19900                            ]
19901                         },
19902                         {
19903                            "bus": 0,
19904                            "qdev_id": "",
19905                            "irq": 11,
19906                            "slot": 4,
19907                            "class_info": {
19908                               "class": 1280,
19909                               "desc": "RAM controller"
19910                            },
19911                            "id": {
19912                               "device": 6900,
19913                               "vendor": 4098
19914                            },
19915                            "function": 0,
19916                            "regions": [
19917                               {
19918                                  "bar": 0,
19919                                  "size": 32,
19920                                  "address": 49280,
19921                                  "type": "io"
19922                               }
19923                            ]
19924                         }
19925                      ]
19926                   }
19927                ]
19928             }
19929
19930   Note
19931       This example has been shortened as the real response is too long.
19932
19934       2021, The QEMU Project Developers
19935
19936
19937
19938
199396.1.0                            Nov 08, 2021                  QEMU-QMP-REF(7)
Impressum