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

INTRODUCTION

1183       This document describes all commands currently supported by QMP.
1184
1185       Most of the time their usage is exactly the same as in the  user  Moni‐
1186       tor,  this  means  that any other document which also describe commands
1187       (the manpage, QEMU's manual, etc) can and should be consulted.
1188
1189       QMP has two types of commands: regular and query commands. Regular com‐
1190       mands  usually  change the Virtual Machine's state someway, while query
1191       commands just return information. The sections below  are  divided  ac‐
1192       cordingly.
1193
1194       It's important to observe that all communication examples are formatted
1195       in a reader-friendly way, so that they're easier  to  understand.  How‐
1196       ever, in real protocol usage, they're emitted as a single line.
1197
1198       Also, the following notation is used to denote data flow:
1199
1200       Example:
1201
1202          -> data issued by the Client
1203          <- Server data response
1204
1205       Please,  refer to the QMP specification (docs/interop/qmp-spec.txt) for
1206       detailed information on the Server command and response formats.
1207

STABILITY CONSIDERATIONS

1209       The current QMP command set (described in this file) may be useful  for
1210       a  number  of use cases, however it's limited and several commands have
1211       bad defined semantics, specially with regard to command completion.
1212
1213       These problems are going to be solved incrementally in  the  next  QEMU
1214       releases  and  we're  going to establish a deprecation policy for badly
1215       defined commands.
1216
1217       If you're planning to adopt QMP, please observe the following:
1218
1219          1. The deprecation policy will take effect and be  documented  soon,
1220             please  check the documentation of each used command as soon as a
1221             new release of QEMU is available
1222
1223          2. DO NOT rely on anything which is not explicit documented
1224
1225          3. Errors, in special, are not documented. Applications  should  NOT
1226             check  for  specific errors classes or data (it's strongly recom‐
1227             mended to only check for the "error" key)
1228

QMP ERRORS

1230   QapiErrorClass (Enum)
1231       QEMU error classes
1232
1233   Values
1234       GenericError
1235              this is used for errors that  don't  require  a  specific  error
1236              class. This should be the default case for most errors
1237
1238       CommandNotFound
1239              the requested command has not been found
1240
1241       DeviceNotActive
1242              a device has failed to be become active
1243
1244       DeviceNotFound
1245              the requested device has not been found
1246
1247       KVMMissingCap
1248              the  requested  operation  can't be fulfilled because a required
1249              KVM capability is missing
1250
1251   Since
1252       1.2
1253

COMMON DATA TYPES

1255   IoOperationType (Enum)
1256       An enumeration of the I/O operation types
1257
1258   Values
1259       read   read operation
1260
1261       write  write operation
1262
1263   Since
1264       2.1
1265
1266   OnOffAuto (Enum)
1267       An enumeration of three options: on, off, and auto
1268
1269   Values
1270       auto   QEMU selects the value between on and off
1271
1272       on     Enabled
1273
1274       off    Disabled
1275
1276   Since
1277       2.2
1278
1279   OnOffSplit (Enum)
1280       An enumeration of three values: on, off, and split
1281
1282   Values
1283       on     Enabled
1284
1285       off    Disabled
1286
1287       split  Mixed
1288
1289   Since
1290       2.6
1291
1292   String (Object)
1293       A fat type wrapping 'str', to be embedded in lists.
1294
1295   Members
1296       str: string
1297              Not documented
1298
1299   Since
1300       1.2
1301
1302   StrOrNull (Alternate)
1303       This is a string value or the explicit lack of a string  (null  pointer
1304       in C).  Intended for cases when 'optional absent' already has a differ‐
1305       ent meaning.
1306
1307   Members
1308       s: string
1309              the string value
1310
1311       n: null
1312              no string value
1313
1314   Since
1315       2.10
1316
1317   OffAutoPCIBAR (Enum)
1318       An enumeration of options for specifying a PCI BAR
1319
1320   Values
1321       off    The specified feature is disabled
1322
1323       auto   The PCI BAR for the feature is automatically selected
1324
1325       bar0   PCI BAR0 is used for the feature
1326
1327       bar1   PCI BAR1 is used for the feature
1328
1329       bar2   PCI BAR2 is used for the feature
1330
1331       bar3   PCI BAR3 is used for the feature
1332
1333       bar4   PCI BAR4 is used for the feature
1334
1335       bar5   PCI BAR5 is used for the feature
1336
1337   Since
1338       2.12
1339
1340   PCIELinkSpeed (Enum)
1341       An enumeration of PCIe link speeds in units of GT/s
1342
1343   Values
1344       2_5    2.5GT/s
1345
1346       5      5.0GT/s
1347
1348       8      8.0GT/s
1349
1350       16     16.0GT/s
1351
1352   Since
1353       4.0
1354
1355   PCIELinkWidth (Enum)
1356       An enumeration of PCIe link width
1357
1358   Values
1359       1      x1
1360
1361       2      x2
1362
1363       4      x4
1364
1365       8      x8
1366
1367       12     x12
1368
1369       16     x16
1370
1371       32     x32
1372
1373   Since
1374       4.0
1375
1376   HostMemPolicy (Enum)
1377       Host memory policy types
1378
1379   Values
1380       default
1381              restore default policy, remove any nondefault policy
1382
1383       preferred
1384              set the preferred host nodes for allocation
1385
1386       bind   a strict policy that restricts memory  allocation  to  the  host
1387              nodes specified
1388
1389       interleave
1390              memory  allocations are interleaved across the set of host nodes
1391              specified
1392
1393   Since
1394       2.1
1395
1396   NetFilterDirection (Enum)
1397       Indicates whether a netfilter is attached to a netdev's transmit  queue
1398       or receive queue or both.
1399
1400   Values
1401       all    the  filter  is  attached  both  to the receive and the transmit
1402              queue of the netdev (default).
1403
1404       rx     the filter is attached to the receive queue of the netdev, where
1405              it will receive packets sent to the netdev.
1406
1407       tx     the  filter  is  attached  to  the transmit queue of the netdev,
1408              where it will receive packets sent by the netdev.
1409
1410   Since
1411       2.5
1412
1413   GrabToggleKeys (Enum)
1414       Keys to toggle input-linux between host and guest.
1415
1416   Values
1417       ctrl-ctrl
1418              Not documented
1419
1420       alt-alt
1421              Not documented
1422
1423       shift-shift
1424              Not documented
1425
1426       meta-meta
1427              Not documented
1428
1429       scrolllock
1430              Not documented
1431
1432       ctrl-scrolllock
1433              Not documented
1434
1435   Since
1436       4.0
1437
1438   HumanReadableText (Object)
1439   Members
1440       human-readable-text: string
1441              Formatted output intended for humans.
1442
1443   Since
1444       6.2
1445

SOCKET DATA TYPES

1447   NetworkAddressFamily (Enum)
1448       The network address family
1449
1450   Values
1451       ipv4   IPV4 family
1452
1453       ipv6   IPV6 family
1454
1455       unix   unix socket
1456
1457       vsock  vsock family (since 2.8)
1458
1459       unknown
1460              otherwise
1461
1462   Since
1463       2.1
1464
1465   InetSocketAddressBase (Object)
1466   Members
1467       host: string
1468              host part of the address
1469
1470       port: string
1471              port part of the address
1472
1473   InetSocketAddress (Object)
1474       Captures a socket address or address range in the Internet namespace.
1475
1476   Members
1477       numeric: boolean (optional)
1478              true if the host/port are guaranteed to  be  numeric,  false  if
1479              name  resolution should be attempted. Defaults to false.  (Since
1480              2.9)
1481
1482       to: int (optional)
1483              If present, this is range of possible addresses, with  port  be‐
1484              tween port and to.
1485
1486       ipv4: boolean (optional)
1487              whether to accept IPv4 addresses, default try both IPv4 and IPv6
1488
1489       ipv6: boolean (optional)
1490              whether to accept IPv6 addresses, default try both IPv4 and IPv6
1491
1492       keep-alive: boolean (optional)
1493              enable  keep-alive when connecting to this socket. Not supported
1494              for passive sockets. (Since 4.2)
1495
1496       mptcp: boolean (optional) (If: HAVE_IPPROTO_MPTCP)
1497              enable multi-path TCP. (Since 6.1)
1498
1499       The members of InetSocketAddressBase
1500
1501   Since
1502       1.3
1503
1504   UnixSocketAddress (Object)
1505       Captures a socket address in the local ("Unix socket") namespace.
1506
1507   Members
1508       path: string
1509              filesystem path to use
1510
1511       abstract: boolean (optional) (If: CONFIG_LINUX)
1512              if true, this is a Linux abstract socket address.  path will  be
1513              prefixed  by a null byte, and optionally padded with null bytes.
1514              Defaults to false.  (Since 5.1)
1515
1516       tight: boolean (optional) (If: CONFIG_LINUX)
1517              if false, pad an abstract socket address with enough null  bytes
1518              to make it fill struct sockaddr_un member sun_path.  Defaults to
1519              true.  (Since 5.1)
1520
1521   Since
1522       1.3
1523
1524   VsockSocketAddress (Object)
1525       Captures a socket address in the vsock namespace.
1526
1527   Members
1528       cid: string
1529              unique host identifier
1530
1531       port: string
1532              port
1533
1534   Note
1535       string types are used to allow for possible future hostname or  service
1536       resolution support.
1537
1538   Since
1539       2.8
1540
1541   InetSocketAddressWrapper (Object)
1542   Members
1543       data: InetSocketAddress
1544              Not documented
1545
1546   Since
1547       1.3
1548
1549   UnixSocketAddressWrapper (Object)
1550   Members
1551       data: UnixSocketAddress
1552              Not documented
1553
1554   Since
1555       1.3
1556
1557   VsockSocketAddressWrapper (Object)
1558   Members
1559       data: VsockSocketAddress
1560              Not documented
1561
1562   Since
1563       2.8
1564
1565   StringWrapper (Object)
1566   Members
1567       data: String
1568              Not documented
1569
1570   Since
1571       1.3
1572
1573   SocketAddressLegacy (Object)
1574       Captures  the address of a socket, which could also be a named file de‐
1575       scriptor
1576
1577   Members
1578       type: SocketAddressType
1579              Not documented
1580
1581       The members of InetSocketAddressWrapper when type is "inet"
1582
1583       The members of UnixSocketAddressWrapper when type is "unix"
1584
1585       The members of VsockSocketAddressWrapper when type is "vsock"
1586
1587       The members of StringWrapper when type is "fd"
1588
1589   Note
1590       This type is deprecated in favor of SocketAddress.  The difference  be‐
1591       tween  SocketAddressLegacy  and SocketAddress is that the latter is has
1592       fewer {} on the wire.
1593
1594   Since
1595       1.3
1596
1597   SocketAddressType (Enum)
1598       Available SocketAddress types
1599
1600   Values
1601       inet   Internet address
1602
1603       unix   Unix domain socket
1604
1605       vsock  VMCI address
1606
1607       fd     decimal is for file descriptor number, otherwise a file descrip‐
1608              tor  name.  Named file descriptors are permitted in monitor com‐
1609              mands, in combination with the 'getfd' command. Decimal file de‐
1610              scriptors  are  permitted  at startup or other contexts where no
1611              monitor context is active.
1612
1613   Since
1614       2.9
1615
1616   SocketAddress (Object)
1617       Captures the address of a socket, which could also be a named file  de‐
1618       scriptor
1619
1620   Members
1621       type: SocketAddressType
1622              Transport type
1623
1624       The members of InetSocketAddress when type is "inet"
1625
1626       The members of UnixSocketAddress when type is "unix"
1627
1628       The members of VsockSocketAddress when type is "vsock"
1629
1630       The members of String when type is "fd"
1631
1632   Since
1633       2.9
1634

VM RUN STATE

1636   RunState (Enum)
1637       An enumeration of VM run states.
1638
1639   Values
1640       debug  QEMU is running on a debugger
1641
1642       finish-migrate
1643              guest is paused to finish the migration process
1644
1645       inmigrate
1646              guest  is  paused  waiting for an incoming migration.  Note that
1647              this state does not tell whether the machine will start  at  the
1648              end  of  the migration.  This depends on the command-line -S op‐
1649              tion and any invocation of 'stop' or 'cont'  that  has  happened
1650              since QEMU was started.
1651
1652       internal-error
1653              An  internal error that prevents further guest execution has oc‐
1654              curred
1655
1656       io-error
1657              the last IOP has failed and the device is configured to pause on
1658              I/O errors
1659
1660       paused guest has been paused via the 'stop' command
1661
1662       postmigrate
1663              guest is paused following a successful 'migrate'
1664
1665       prelaunch
1666              QEMU was started with -S and guest has not started
1667
1668       restore-vm
1669              guest is paused to restore VM state
1670
1671       running
1672              guest is actively running
1673
1674       save-vm
1675              guest is paused to save the VM state
1676
1677       shutdown
1678              guest is shut down (and -no-shutdown is in use)
1679
1680       suspended
1681              guest is suspended (ACPI S3)
1682
1683       watchdog
1684              the  watchdog  action  is configured to pause and has been trig‐
1685              gered
1686
1687       guest-panicked
1688              guest has been panicked as a result of guest OS panic
1689
1690       colo   guest is paused to save/restore VM state under colo  checkpoint,
1691              VM can not get into this state unless colo capability is enabled
1692              for migration. (since 2.8)
1693
1694   ShutdownCause (Enum)
1695       An enumeration of reasons for a Shutdown.
1696
1697   Values
1698       none   No shutdown request pending
1699
1700       host-error
1701              An error prevents further use of guest
1702
1703       host-qmp-quit
1704              Reaction to the QMP command 'quit'
1705
1706       host-qmp-system-reset
1707              Reaction to the QMP command 'system_reset'
1708
1709       host-signal
1710              Reaction to a signal, such as SIGINT
1711
1712       host-ui
1713              Reaction to a UI event, like window close
1714
1715       guest-shutdown
1716              Guest shutdown/suspend request, via ACPI or other  hardware-spe‐
1717              cific means
1718
1719       guest-reset
1720              Guest reset request, and command line turns that into a shutdown
1721
1722       guest-panic
1723              Guest panicked, and command line turns that into a shutdown
1724
1725       subsystem-reset
1726              Partial guest reset that does not trigger QMP events and ignores
1727              --no-reboot. This is useful for sanitizing  hypercalls  on  s390
1728              that are used during kexec/kdump/boot
1729
1730   StatusInfo (Object)
1731       Information about VCPU run state
1732
1733   Members
1734       running: boolean
1735              true if all VCPUs are runnable, false if not runnable
1736
1737       singlestep: boolean
1738              true if VCPUs are in single-step mode
1739
1740       status: RunState
1741              the virtual machine RunState
1742
1743   Since
1744       0.14
1745
1746   Notes
1747       singlestep is enabled through the GDB stub
1748
1749   query-status (Command)
1750       Query the run status of all VCPUs
1751
1752   Returns
1753       StatusInfo reflecting all VCPUs
1754
1755   Since
1756       0.14
1757
1758   Example
1759          -> { "execute": "query-status" }
1760          <- { "return": { "running": true,
1761                           "singlestep": false,
1762                           "status": "running" } }
1763
1764   SHUTDOWN (Event)
1765       Emitted when the virtual machine has shut down, indicating that qemu is
1766       about to exit.
1767
1768   Arguments
1769       guest: boolean
1770              If true, the shutdown was triggered by a guest request (such  as
1771              a  guest-initiated  ACPI shutdown request or other hardware-spe‐
1772              cific action) rather than a host request (such as sending qemu a
1773              SIGINT). (since 2.10)
1774
1775       reason: ShutdownCause
1776              The ShutdownCause which resulted in the SHUTDOWN. (since 4.0)
1777
1778   Note
1779       If the command-line option "-no-shutdown" has been specified, qemu will
1780       not exit, and a STOP event will eventually follow the SHUTDOWN event
1781
1782   Since
1783       0.12
1784
1785   Example
1786          <- { "event": "SHUTDOWN",
1787               "data": { "guest": true, "reason": "guest-shutdown" },
1788               "timestamp": { "seconds": 1267040730, "microseconds": 682951 } }
1789
1790   POWERDOWN (Event)
1791       Emitted when the virtual machine is powered down through the power con‐
1792       trol system, such as via ACPI.
1793
1794   Since
1795       0.12
1796
1797   Example
1798          <- { "event": "POWERDOWN",
1799               "timestamp": { "seconds": 1267040730, "microseconds": 682951 } }
1800
1801   RESET (Event)
1802       Emitted when the virtual machine is reset
1803
1804   Arguments
1805       guest: boolean
1806              If  true,  the reset was triggered by a guest request (such as a
1807              guest-initiated ACPI reboot request or  other  hardware-specific
1808              action) rather than a host request (such as the QMP command sys‐
1809              tem_reset).  (since 2.10)
1810
1811       reason: ShutdownCause
1812              The ShutdownCause of the RESET. (since 4.0)
1813
1814   Since
1815       0.12
1816
1817   Example
1818          <- { "event": "RESET",
1819               "data": { "guest": false, "reason": "guest-reset" },
1820               "timestamp": { "seconds": 1267041653, "microseconds": 9518 } }
1821
1822   STOP (Event)
1823       Emitted when the virtual machine is stopped
1824
1825   Since
1826       0.12
1827
1828   Example
1829          <- { "event": "STOP",
1830               "timestamp": { "seconds": 1267041730, "microseconds": 281295 } }
1831
1832   RESUME (Event)
1833       Emitted when the virtual machine resumes execution
1834
1835   Since
1836       0.12
1837
1838   Example
1839          <- { "event": "RESUME",
1840               "timestamp": { "seconds": 1271770767, "microseconds": 582542 } }
1841
1842   SUSPEND (Event)
1843       Emitted when guest enters a hardware suspension state, for example,  S3
1844       state, which is sometimes called standby state
1845
1846   Since
1847       1.1
1848
1849   Example
1850          <- { "event": "SUSPEND",
1851               "timestamp": { "seconds": 1344456160, "microseconds": 309119 } }
1852
1853   SUSPEND_DISK (Event)
1854       Emitted  when  guest enters a hardware suspension state with data saved
1855       on disk, for example, S4 state, which  is  sometimes  called  hibernate
1856       state
1857
1858   Note
1859       QEMU shuts down (similar to event SHUTDOWN) when entering this state
1860
1861   Since
1862       1.2
1863
1864   Example
1865          <-   { "event": "SUSPEND_DISK",
1866                 "timestamp": { "seconds": 1344456160, "microseconds": 309119 } }
1867
1868   WAKEUP (Event)
1869       Emitted when the guest has woken up from suspend state and is running
1870
1871   Since
1872       1.1
1873
1874   Example
1875          <- { "event": "WAKEUP",
1876               "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
1877
1878   WATCHDOG (Event)
1879       Emitted when the watchdog device's timer is expired
1880
1881   Arguments
1882       action: WatchdogAction
1883              action that has been taken
1884
1885   Note
1886       If action is "reset", "shutdown", or "pause" the WATCHDOG event is fol‐
1887       lowed respectively by the RESET, SHUTDOWN, or STOP events
1888
1889   Note
1890       This event is rate-limited.
1891
1892   Since
1893       0.13
1894
1895   Example
1896          <- { "event": "WATCHDOG",
1897               "data": { "action": "reset" },
1898               "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
1899
1900   WatchdogAction (Enum)
1901       An enumeration of the actions taken when the watchdog device's timer is
1902       expired
1903
1904   Values
1905       reset  system resets
1906
1907       shutdown
1908              system  shutdown,  note  that  it is similar to powerdown, which
1909              tries to set to system status and notify guest
1910
1911       poweroff
1912              system poweroff, the emulator program exits
1913
1914       pause  system pauses, similar to stop
1915
1916       debug  system enters debug state
1917
1918       none   nothing is done
1919
1920       inject-nmi
1921              a non-maskable interrupt is injected into the  first  VCPU  (all
1922              VCPUS on x86) (since 2.4)
1923
1924   Since
1925       2.1
1926
1927   RebootAction (Enum)
1928       Possible QEMU actions upon guest reboot
1929
1930   Values
1931       reset  Reset the VM
1932
1933       shutdown
1934              Shutdown the VM and exit, according to the shutdown action
1935
1936   Since
1937       6.0
1938
1939   ShutdownAction (Enum)
1940       Possible QEMU actions upon guest shutdown
1941
1942   Values
1943       poweroff
1944              Shutdown the VM and exit
1945
1946       pause  pause the VM#
1947
1948   Since
1949       6.0
1950
1951   PanicAction (Enum)
1952   Values
1953       none   Continue VM execution
1954
1955       pause  Pause the VM
1956
1957       shutdown
1958              Shutdown the VM and exit, according to the shutdown action
1959
1960   Since
1961       6.0
1962
1963   watchdog-set-action (Command)
1964       Set watchdog action
1965
1966   Arguments
1967       action: WatchdogAction
1968              Not documented
1969
1970   Since
1971       2.11
1972
1973   set-action (Command)
1974       Set the actions that will be taken by the emulator in response to guest
1975       events.
1976
1977   Arguments
1978       reboot: RebootAction (optional)
1979              RebootAction action taken on guest reboot.
1980
1981       shutdown: ShutdownAction (optional)
1982              ShutdownAction action taken on guest shutdown.
1983
1984       panic: PanicAction (optional)
1985              PanicAction action taken on guest panic.
1986
1987       watchdog: WatchdogAction (optional)
1988              WatchdogAction action taken when watchdog timer expires .
1989
1990   Returns
1991       Nothing on success.
1992
1993   Since
1994       6.0
1995
1996   Example
1997          -> { "execute": "set-action",
1998               "arguments": { "reboot": "shutdown",
1999                              "shutdown" : "pause",
2000                              "panic": "pause",
2001                              "watchdog": "inject-nmi" } }
2002          <- { "return": {} }
2003
2004   GUEST_PANICKED (Event)
2005       Emitted when guest OS panic is detected
2006
2007   Arguments
2008       action: GuestPanicAction
2009              action that has been taken, currently always "pause"
2010
2011       info: GuestPanicInformation (optional)
2012              information about a panic (since 2.9)
2013
2014   Since
2015       1.5
2016
2017   Example
2018          <- { "event": "GUEST_PANICKED",
2019               "data": { "action": "pause" },
2020               "timestamp": { "seconds": 1648245231, "microseconds": 900001 } }
2021
2022   GUEST_CRASHLOADED (Event)
2023       Emitted when guest OS crash loaded is detected
2024
2025   Arguments
2026       action: GuestPanicAction
2027              action that has been taken, currently always "run"
2028
2029       info: GuestPanicInformation (optional)
2030              information about a panic
2031
2032   Since
2033       5.0
2034
2035   Example
2036          <- { "event": "GUEST_CRASHLOADED",
2037               "data": { "action": "run" },
2038               "timestamp": { "seconds": 1648245259, "microseconds": 893771 } }
2039
2040   GuestPanicAction (Enum)
2041       An enumeration of the actions taken when guest OS panic is detected
2042
2043   Values
2044       pause  system pauses
2045
2046       poweroff
2047              Not documented
2048
2049       run    Not documented
2050
2051   Since
2052       2.1 (poweroff since 2.8, run since 5.0)
2053
2054   GuestPanicInformationType (Enum)
2055       An enumeration of the guest panic information types
2056
2057   Values
2058       hyper-v
2059              hyper-v guest panic information type
2060
2061       s390   s390 guest panic information type (Since: 2.12)
2062
2063   Since
2064       2.9
2065
2066   GuestPanicInformation (Object)
2067       Information about a guest panic
2068
2069   Members
2070       type: GuestPanicInformationType
2071              Crash type that defines the hypervisor specific information
2072
2073       The members of GuestPanicInformationHyperV when type is "hyper-v"
2074
2075       The members of GuestPanicInformationS390 when type is "s390"
2076
2077   Since
2078       2.9
2079
2080   GuestPanicInformationHyperV (Object)
2081       Hyper-V specific guest panic information (HV crash MSRs)
2082
2083   Members
2084       arg1: int
2085              Not documented
2086
2087       arg2: int
2088              Not documented
2089
2090       arg3: int
2091              Not documented
2092
2093       arg4: int
2094              Not documented
2095
2096       arg5: int
2097              Not documented
2098
2099   Since
2100       2.9
2101
2102   S390CrashReason (Enum)
2103       Reason why the CPU is in a crashed state.
2104
2105   Values
2106       unknown
2107              no crash reason was set
2108
2109       disabled-wait
2110              the CPU has entered a disabled wait state
2111
2112       extint-loop
2113              clock comparator or cpu timer interrupt with new PSW enabled for
2114              external interrupts
2115
2116       pgmint-loop
2117              program interrupt with BAD new PSW
2118
2119       opint-loop
2120              operation  exception  interrupt with invalid code at the program
2121              interrupt new PSW
2122
2123   Since
2124       2.12
2125
2126   GuestPanicInformationS390 (Object)
2127       S390 specific guest panic information (PSW)
2128
2129   Members
2130       core: int
2131              core id of the CPU that crashed
2132
2133       psw-mask: int
2134              control fields of guest PSW
2135
2136       psw-addr: int
2137              guest instruction address
2138
2139       reason: S390CrashReason
2140              guest crash reason
2141
2142   Since
2143       2.12
2144
2145   MEMORY_FAILURE (Event)
2146       Emitted when a memory failure occurs on host side.
2147
2148   Arguments
2149       recipient: MemoryFailureRecipient
2150              recipient is defined as MemoryFailureRecipient.
2151
2152       action: MemoryFailureAction
2153              action that has been taken. action is defined as  MemoryFailure‐
2154              Action.
2155
2156       flags: MemoryFailureFlags
2157              flags  for MemoryFailureAction. action is defined as MemoryFail‐
2158              ureFlags.
2159
2160   Since
2161       5.2
2162
2163   Example
2164          <- { "event": "MEMORY_FAILURE",
2165               "data": { "recipient": "hypervisor",
2166                         "action": "fatal",
2167                         "flags": { "action-required": false,
2168                                    "recursive": false } },
2169               "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
2170
2171   MemoryFailureRecipient (Enum)
2172       Hardware memory failure occurs, handled by recipient.
2173
2174   Values
2175       hypervisor
2176              memory failure at QEMU process address space.  (none guest  mem‐
2177              ory, but used by QEMU itself).
2178
2179       guest  memory failure at guest memory,
2180
2181   Since
2182       5.2
2183
2184   MemoryFailureAction (Enum)
2185       Actions taken by QEMU in response to a hardware memory failure.
2186
2187   Values
2188       ignore the memory failure could be ignored.  This will only be the case
2189              for action-optional failures.
2190
2191       inject memory failure occurred in guest memory, the guest  enabled  MCE
2192              handling mechanism, and QEMU could inject the MCE into the guest
2193              successfully.
2194
2195       fatal  the failure is unrecoverable.  This occurs  for  action-required
2196              failures if the recipient is the hypervisor; QEMU will exit.
2197
2198       reset  the  failure  is  unrecoverable but confined to the guest.  This
2199              occurs if the recipient is a guest guest which is not  ready  to
2200              handle memory failures.
2201
2202   Since
2203       5.2
2204
2205   MemoryFailureFlags (Object)
2206       Additional information on memory failures.
2207
2208   Members
2209       action-required: boolean
2210              whether  a memory failure event is action-required or action-op‐
2211              tional (e.g. a failure during memory scrub).
2212
2213       recursive: boolean
2214              whether the failure occurred  while  the  previous  failure  was
2215              still in progress.
2216
2217   Since
2218       5.2
2219

CRYPTOGRAPHY

2221   QCryptoTLSCredsEndpoint (Enum)
2222       The  type of network endpoint that will be using the credentials.  Most
2223       types of credential require different setup / structures  depending  on
2224       whether they will be used in a server versus a client.
2225
2226   Values
2227       client the network endpoint is acting as the client
2228
2229       server the network endpoint is acting as the server
2230
2231   Since
2232       2.5
2233
2234   QCryptoSecretFormat (Enum)
2235       The data format that the secret is provided in
2236
2237   Values
2238       raw    raw  bytes.  When encoded in JSON only valid UTF-8 sequences can
2239              be used
2240
2241       base64 arbitrary base64 encoded binary data
2242
2243   Since
2244       2.6
2245
2246   QCryptoHashAlgorithm (Enum)
2247       The supported algorithms for computing content digests
2248
2249   Values
2250       md5    MD5. Should not be used in any new code, legacy compat only
2251
2252       sha1   SHA-1. Should not be used in any new code, legacy compat only
2253
2254       sha224 SHA-224. (since 2.7)
2255
2256       sha256 SHA-256. Current recommended strong hash.
2257
2258       sha384 SHA-384. (since 2.7)
2259
2260       sha512 SHA-512. (since 2.7)
2261
2262       ripemd160
2263              RIPEMD-160. (since 2.7)
2264
2265   Since
2266       2.6
2267
2268   QCryptoCipherAlgorithm (Enum)
2269       The supported algorithms for content encryption ciphers
2270
2271   Values
2272       aes-128
2273              AES with 128 bit / 16 byte keys
2274
2275       aes-192
2276              AES with 192 bit / 24 byte keys
2277
2278       aes-256
2279              AES with 256 bit / 32 byte keys
2280
2281       des    DES with 56 bit / 8 byte keys. Do not use except in VNC.  (since
2282              6.1)
2283
2284       3des   3DES(EDE) with 192 bit / 24 byte keys (since 2.9)
2285
2286       cast5-128
2287              Cast5 with 128 bit / 16 byte keys
2288
2289       serpent-128
2290              Serpent with 128 bit / 16 byte keys
2291
2292       serpent-192
2293              Serpent with 192 bit / 24 byte keys
2294
2295       serpent-256
2296              Serpent with 256 bit / 32 byte keys
2297
2298       twofish-128
2299              Twofish with 128 bit / 16 byte keys
2300
2301       twofish-192
2302              Twofish with 192 bit / 24 byte keys
2303
2304       twofish-256
2305              Twofish with 256 bit / 32 byte keys
2306
2307   Since
2308       2.6
2309
2310   QCryptoCipherMode (Enum)
2311       The supported modes for content encryption ciphers
2312
2313   Values
2314       ecb    Electronic Code Book
2315
2316       cbc    Cipher Block Chaining
2317
2318       xts    XEX with tweaked code book and ciphertext stealing
2319
2320       ctr    Counter (Since 2.8)
2321
2322   Since
2323       2.6
2324
2325   QCryptoIVGenAlgorithm (Enum)
2326       The supported algorithms for generating initialization vectors for full
2327       disk encryption. The 'plain' generator should not  be  used  for  disks
2328       with  sector  numbers larger than 2^32, except where compatibility with
2329       pre-existing Linux dm-crypt volumes is required.
2330
2331   Values
2332       plain  64-bit sector number truncated to 32-bits
2333
2334       plain64
2335              64-bit sector number
2336
2337       essiv  64-bit sector number encrypted with a hash of the encryption key
2338
2339   Since
2340       2.6
2341
2342   QCryptoBlockFormat (Enum)
2343       The supported full disk encryption formats
2344
2345   Values
2346       qcow   QCow/QCow2 built-in AES-CBC encryption. Use only for  liberating
2347              data from old images.
2348
2349       luks   LUKS encryption format. Recommended for new images
2350
2351   Since
2352       2.6
2353
2354   QCryptoBlockOptionsBase (Object)
2355       The common options that apply to all full disk encryption formats
2356
2357   Members
2358       format: QCryptoBlockFormat
2359              the encryption format
2360
2361   Since
2362       2.6
2363
2364   QCryptoBlockOptionsQCow (Object)
2365       The options that apply to QCow/QCow2 AES-CBC encryption format
2366
2367   Members
2368       key-secret: string (optional)
2369              the  ID  of a QCryptoSecret object providing the decryption key.
2370              Mandatory except when probing image for metadata only.
2371
2372   Since
2373       2.6
2374
2375   QCryptoBlockOptionsLUKS (Object)
2376       The options that apply to LUKS encryption format
2377
2378   Members
2379       key-secret: string (optional)
2380              the ID of a QCryptoSecret object providing the  decryption  key.
2381              Mandatory except when probing image for metadata only.
2382
2383   Since
2384       2.6
2385
2386   QCryptoBlockCreateOptionsLUKS (Object)
2387       The options that apply to LUKS encryption format initialization
2388
2389   Members
2390       cipher-alg: QCryptoCipherAlgorithm (optional)
2391              the  cipher  algorithm for data encryption Currently defaults to
2392              'aes-256'.
2393
2394       cipher-mode: QCryptoCipherMode (optional)
2395              the cipher mode for data encryption Currently defaults to 'xts'
2396
2397       ivgen-alg: QCryptoIVGenAlgorithm (optional)
2398              the  initialization  vector  generator  Currently  defaults   to
2399              'plain64'
2400
2401       ivgen-hash-alg: QCryptoHashAlgorithm (optional)
2402              the  initialization  vector generator hash Currently defaults to
2403              'sha256'
2404
2405       hash-alg: QCryptoHashAlgorithm (optional)
2406              the master key hash algorithm Currently defaults to 'sha256'
2407
2408       iter-time: int (optional)
2409              number of milliseconds to spend in PBKDF passphrase  processing.
2410              Currently defaults to 2000. (since 2.8)
2411
2412       The members of QCryptoBlockOptionsLUKS
2413
2414   Since
2415       2.6
2416
2417   QCryptoBlockOpenOptions (Object)
2418       The  options that are available for all encryption formats when opening
2419       an existing volume
2420
2421   Members
2422       The members of QCryptoBlockOptionsBase
2423
2424       The members of QCryptoBlockOptionsQCow when format is "qcow"
2425
2426       The members of QCryptoBlockOptionsLUKS when format is "luks"
2427
2428   Since
2429       2.6
2430
2431   QCryptoBlockCreateOptions (Object)
2432       The options that are available for all encryption formats when initial‐
2433       izing a new volume
2434
2435   Members
2436       The members of QCryptoBlockOptionsBase
2437
2438       The members of QCryptoBlockOptionsQCow when format is "qcow"
2439
2440       The members of QCryptoBlockCreateOptionsLUKS when format is "luks"
2441
2442   Since
2443       2.6
2444
2445   QCryptoBlockInfoBase (Object)
2446       The common information that applies to all full disk encryption formats
2447
2448   Members
2449       format: QCryptoBlockFormat
2450              the encryption format
2451
2452   Since
2453       2.7
2454
2455   QCryptoBlockInfoLUKSSlot (Object)
2456       Information about the LUKS block encryption key slot options
2457
2458   Members
2459       active: boolean
2460              whether the key slot is currently in use
2461
2462       key-offset: int
2463              offset to the key material in bytes
2464
2465       iters: int (optional)
2466              number of PBKDF2 iterations for key material
2467
2468       stripes: int (optional)
2469              number of stripes for splitting key material
2470
2471   Since
2472       2.7
2473
2474   QCryptoBlockInfoLUKS (Object)
2475       Information about the LUKS block encryption options
2476
2477   Members
2478       cipher-alg: QCryptoCipherAlgorithm
2479              the cipher algorithm for data encryption
2480
2481       cipher-mode: QCryptoCipherMode
2482              the cipher mode for data encryption
2483
2484       ivgen-alg: QCryptoIVGenAlgorithm
2485              the initialization vector generator
2486
2487       ivgen-hash-alg: QCryptoHashAlgorithm (optional)
2488              the initialization vector generator hash
2489
2490       hash-alg: QCryptoHashAlgorithm
2491              the master key hash algorithm
2492
2493       payload-offset: int
2494              offset to the payload data in bytes
2495
2496       master-key-iters: int
2497              number of PBKDF2 iterations for key material
2498
2499       uuid: string
2500              unique identifier for the volume
2501
2502       slots: array of QCryptoBlockInfoLUKSSlot
2503              information about each key slot
2504
2505   Since
2506       2.7
2507
2508   QCryptoBlockInfo (Object)
2509       Information about the block encryption options
2510
2511   Members
2512       The members of QCryptoBlockInfoBase
2513
2514       The members of QCryptoBlockInfoLUKS when format is "luks"
2515
2516   Since
2517       2.7
2518
2519   QCryptoBlockLUKSKeyslotState (Enum)
2520       Defines state of keyslots that are affected by the update
2521
2522   Values
2523       active The slots contain the given password and marked as active
2524
2525       inactive
2526              The slots are erased (contain garbage) and marked as inactive
2527
2528   Since
2529       5.1
2530
2531   QCryptoBlockAmendOptionsLUKS (Object)
2532       This struct defines the update parameters that activate/de-activate set
2533       of keyslots
2534
2535   Members
2536       state: QCryptoBlockLUKSKeyslotState
2537              the desired state of the keyslots
2538
2539       new-secret: string (optional)
2540              The ID of a QCryptoSecret object providing the  password  to  be
2541              written into added active keyslots
2542
2543       old-secret: string (optional)
2544              Optional  (for  deactivation  only) If given will deactivate all
2545              keyslots that match password located in QCryptoSecret with  this
2546              ID
2547
2548       iter-time: int (optional)
2549              Optional  (for  activation only) Number of milliseconds to spend
2550              in PBKDF passphrase processing for the newly activated  keyslot.
2551              Currently defaults to 2000.
2552
2553       keyslot: int (optional)
2554              Optional. ID of the keyslot to activate/deactivate.  For keyslot
2555              activation, keyslot should not be active already (this is unsafe
2556              to  update an active keyslot), but possible if 'force' parameter
2557              is given.  If keyslot is not given, first free keyslot  will  be
2558              written.
2559
2560              For  keyslot  deactivation,  this  parameter specifies the exact
2561              keyslot to deactivate
2562
2563       secret: string (optional)
2564              Optional. The ID of a QCryptoSecret object providing  the  pass‐
2565              word  to  use  to  retrieve current master key.  Defaults to the
2566              same secret that was used to open the image
2567       Since 5.1
2568
2569   QCryptoBlockAmendOptions (Object)
2570       The options that are available for all encryption formats when amending
2571       encryption settings
2572
2573   Members
2574       The members of QCryptoBlockOptionsBase
2575
2576       The members of QCryptoBlockAmendOptionsLUKS when format is "luks"
2577
2578   Since
2579       5.1
2580
2581   SecretCommonProperties (Object)
2582       Properties for objects of classes derived from secret-common.
2583
2584   Members
2585       loaded: boolean (optional)
2586              if true, the secret is loaded immediately when applying this op‐
2587              tion and will probably fail when  processing  the  next  option.
2588              Don't use; only provided for compatibility. (default: false)
2589
2590       format: QCryptoSecretFormat (optional)
2591              the data format that the secret is provided in (default: raw)
2592
2593       keyid: string (optional)
2594              the  name  of  another secret that should be used to decrypt the
2595              provided data. If not present, the data is assumed to  be  unen‐
2596              crypted.
2597
2598       iv: string (optional)
2599              the  random  initialization  vector  used for encryption of this
2600              particular secret. Should be a base64 encrypted  string  of  the
2601              16-byte IV. Mandatory if keyid is given. Ignored if keyid is ab‐
2602              sent.
2603
2604   Features
2605       deprecated
2606              Member loaded is deprecated.  Setting true doesn't  make  sense,
2607              and false is already the default.
2608
2609   Since
2610       2.6
2611
2612   SecretProperties (Object)
2613       Properties for secret objects.
2614
2615       Either data or file must be provided, but not both.
2616
2617   Members
2618       data: string (optional)
2619              the associated with the secret from
2620
2621       file: string (optional)
2622              the filename to load the data associated with the secret from
2623
2624       The members of SecretCommonProperties
2625
2626   Since
2627       2.6
2628
2629   SecretKeyringProperties (Object)
2630       Properties for secret_keyring objects.
2631
2632   Members
2633       serial: int
2634              serial number that identifies a key to get from the kernel
2635
2636       The members of SecretCommonProperties
2637
2638   Since
2639       5.1
2640
2641   TlsCredsProperties (Object)
2642       Properties for objects of classes derived from tls-creds.
2643
2644   Members
2645       verify-peer: boolean (optional)
2646              if true the peer credentials will be verified once the handshake
2647              is completed.  This is a no-op for anonymous  credentials.  (de‐
2648              fault: true)
2649
2650       dir: string (optional)
2651              the path of the directory that contains the credential files
2652
2653       endpoint: QCryptoTLSCredsEndpoint (optional)
2654              whether  the QEMU network backend that uses the credentials will
2655              be acting as a client or as a server (default: client)
2656
2657       priority: string (optional)
2658              a     gnutls     priority     string     as     described     at
2659              https://gnutls.org/manual/html_node/Priority-Strings.html
2660
2661   Since
2662       2.5
2663
2664   TlsCredsAnonProperties (Object)
2665       Properties for tls-creds-anon objects.
2666
2667   Members
2668       loaded: boolean (optional)
2669              if  true,  the  credentials are loaded immediately when applying
2670              this option and will ignore options that  are  processed  later.
2671              Don't use; only provided for compatibility. (default: false)
2672
2673       The members of TlsCredsProperties
2674
2675   Features
2676       deprecated
2677              Member  loaded  is deprecated.  Setting true doesn't make sense,
2678              and false is already the default.
2679
2680   Since
2681       2.5
2682
2683   TlsCredsPskProperties (Object)
2684       Properties for tls-creds-psk objects.
2685
2686   Members
2687       loaded: boolean (optional)
2688              if true, the credentials are loaded  immediately  when  applying
2689              this  option  and  will ignore options that are processed later.
2690              Don't use; only provided for compatibility. (default: false)
2691
2692       username: string (optional)
2693              the username which will be sent  to  the  server.   For  clients
2694              only.  If absent, "qemu" is sent and the property will read back
2695              as an empty string.
2696
2697       The members of TlsCredsProperties
2698
2699   Features
2700       deprecated
2701              Member loaded is deprecated.  Setting true doesn't  make  sense,
2702              and false is already the default.
2703
2704   Since
2705       3.0
2706
2707   TlsCredsX509Properties (Object)
2708       Properties for tls-creds-x509 objects.
2709
2710   Members
2711       loaded: boolean (optional)
2712              if  true,  the  credentials are loaded immediately when applying
2713              this option and will ignore options that  are  processed  later.
2714              Don't use; only provided for compatibility. (default: false)
2715
2716       sanity-check: boolean (optional)
2717              if true, perform some sanity checks before using the credentials
2718              (default: true)
2719
2720       passwordid: string (optional)
2721              For the server-key.pem and client-key.pem  files  which  contain
2722              sensitive  private keys, it is possible to use an encrypted ver‐
2723              sion by providing the passwordid parameter.  This  provides  the
2724              ID of a previously created secret object containing the password
2725              for decryption.
2726
2727       The members of TlsCredsProperties
2728
2729   Features
2730       deprecated
2731              Member loaded is deprecated.  Setting true doesn't  make  sense,
2732              and false is already the default.
2733
2734   Since
2735       2.5
2736

BLOCK DEVICES

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

CHARACTER DEVICES

9618   ChardevInfo (Object)
9619       Information about a character device.
9620
9621   Members
9622       label: string
9623              the label of the character device
9624
9625       filename: string
9626              the filename of the character device
9627
9628       frontend-open: boolean
9629              shows whether the frontend device attached to this backend  (eg.
9630              with  the  chardev=... option) is in open or closed state (since
9631              2.1)
9632
9633   Notes
9634       filename is encoded using the QEMU command line character device encod‐
9635       ing.  See the QEMU man page for details.
9636
9637   Since
9638       0.14
9639
9640   query-chardev (Command)
9641       Returns information about current character devices.
9642
9643   Returns
9644       a list of ChardevInfo
9645
9646   Since
9647       0.14
9648
9649   Example
9650          -> { "execute": "query-chardev" }
9651          <- {
9652                "return": [
9653                   {
9654                      "label": "charchannel0",
9655                      "filename": "unix:/var/lib/libvirt/qemu/seabios.rhel6.agent,server=on",
9656                      "frontend-open": false
9657                   },
9658                   {
9659                      "label": "charmonitor",
9660                      "filename": "unix:/var/lib/libvirt/qemu/seabios.rhel6.monitor,server=on",
9661                      "frontend-open": true
9662                   },
9663                   {
9664                      "label": "charserial0",
9665                      "filename": "pty:/dev/pts/2",
9666                      "frontend-open": true
9667                   }
9668                ]
9669             }
9670
9671   ChardevBackendInfo (Object)
9672       Information about a character device backend
9673
9674   Members
9675       name: string
9676              The backend name
9677
9678   Since
9679       2.0
9680
9681   query-chardev-backends (Command)
9682       Returns information about character device backends.
9683
9684   Returns
9685       a list of ChardevBackendInfo
9686
9687   Since
9688       2.0
9689
9690   Example
9691          -> { "execute": "query-chardev-backends" }
9692          <- {
9693                "return":[
9694                   {
9695                      "name":"udp"
9696                   },
9697                   {
9698                      "name":"tcp"
9699                   },
9700                   {
9701                      "name":"unix"
9702                   },
9703                   {
9704                      "name":"spiceport"
9705                   }
9706                ]
9707             }
9708
9709   DataFormat (Enum)
9710       An enumeration of data format.
9711
9712   Values
9713       utf8   Data is a UTF-8 string (RFC 3629)
9714
9715       base64 Data is Base64 encoded binary (RFC 3548)
9716
9717   Since
9718       1.4
9719
9720   ringbuf-write (Command)
9721       Write to a ring buffer character device.
9722
9723   Arguments
9724       device: string
9725              the ring buffer character device name
9726
9727       data: string
9728              data to write
9729
9730       format: DataFormat (optional)
9731              data encoding (default 'utf8').
9732
9733              • base64: data must be base64 encoded text.  Its binary decoding
9734                gets written.
9735
9736              • utf8: data's UTF-8 encoding is written
9737
9738              • data itself is always Unicode regardless of format,  like  any
9739                other string.
9740
9741   Returns
9742       Nothing on success
9743
9744   Since
9745       1.4
9746
9747   Example
9748          -> { "execute": "ringbuf-write",
9749               "arguments": { "device": "foo",
9750                              "data": "abcdefgh",
9751                              "format": "utf8" } }
9752          <- { "return": {} }
9753
9754   ringbuf-read (Command)
9755       Read from a ring buffer character device.
9756
9757   Arguments
9758       device: string
9759              the ring buffer character device name
9760
9761       size: int
9762              how many bytes to read at most
9763
9764       format: DataFormat (optional)
9765              data encoding (default 'utf8').
9766
9767              • base64: the data read is returned in base64 encoding.
9768
9769              • utf8:  the  data read is interpreted as UTF-8.  Bug: can screw
9770                up when the buffer contains invalid UTF-8 sequences, NUL char‐
9771                acters,  after  the  ring  buffer  lost data, and when reading
9772                stops because the size limit is reached.
9773
9774              • The return value is always Unicode regardless of format,  like
9775                any other string.
9776
9777   Returns
9778       data read from the device
9779
9780   Since
9781       1.4
9782
9783   Example
9784          -> { "execute": "ringbuf-read",
9785               "arguments": { "device": "foo",
9786                              "size": 1000,
9787                              "format": "utf8" } }
9788          <- { "return": "abcdefgh" }
9789
9790   ChardevCommon (Object)
9791       Configuration shared across all chardev backends
9792
9793   Members
9794       logfile: string (optional)
9795              The name of a logfile to save output
9796
9797       logappend: boolean (optional)
9798              true  to  append  instead of truncate (default to false to trun‐
9799              cate)
9800
9801   Since
9802       2.6
9803
9804   ChardevFile (Object)
9805       Configuration info for file chardevs.
9806
9807   Members
9808       in: string (optional)
9809              The name of the input file
9810
9811       out: string
9812              The name of the output file
9813
9814       append: boolean (optional)
9815              Open the file in append mode (default false to truncate)  (Since
9816              2.6)
9817
9818       The members of ChardevCommon
9819
9820   Since
9821       1.4
9822
9823   ChardevHostdev (Object)
9824       Configuration info for device and pipe chardevs.
9825
9826   Members
9827       device: string
9828              The  name of the special file for the device, i.e. /dev/ttyS0 on
9829              Unix or COM1: on Windows
9830
9831       The members of ChardevCommon
9832
9833   Since
9834       1.4
9835
9836   ChardevSocket (Object)
9837       Configuration info for (stream) socket chardevs.
9838
9839   Members
9840       addr: SocketAddressLegacy
9841              socket  address  to  listen  on  (server=true)  or  connect   to
9842              (server=false)
9843
9844       tls-creds: string (optional)
9845              the ID of the TLS credentials object (since 2.6)
9846
9847       tls-authz: string (optional)
9848              the  ID  of  the  QAuthZ  authorization object against which the
9849              client's x509 distinguished name will be validated. This  object
9850              is only resolved at time of use, so can be deleted and recreated
9851              on the fly while the chardev server is active.  If  missing,  it
9852              will default to denying access (since 4.0)
9853
9854       server: boolean (optional)
9855              create server socket (default: true)
9856
9857       wait: boolean (optional)
9858              wait for incoming connection on server sockets (default: false).
9859              Silently ignored with server: false.  This use is deprecated.
9860
9861       nodelay: boolean (optional)
9862              set TCP_NODELAY socket option (default: false)
9863
9864       telnet: boolean (optional)
9865              enable telnet protocol on server sockets (default: false)
9866
9867       tn3270: boolean (optional)
9868              enable  tn3270  protocol  on  server  sockets  (default:  false)
9869              (Since: 2.10)
9870
9871       websocket: boolean (optional)
9872              enable  websocket  protocol  on  server sockets (default: false)
9873              (Since: 3.1)
9874
9875       reconnect: int (optional)
9876              For a client socket, if a socket is disconnected, then attempt a
9877              reconnect  after  the  given number of seconds.  Setting this to
9878              zero disables this function. (default: 0) (Since: 2.2)
9879
9880       The members of ChardevCommon
9881
9882   Since
9883       1.4
9884
9885   ChardevUdp (Object)
9886       Configuration info for datagram socket chardevs.
9887
9888   Members
9889       remote: SocketAddressLegacy
9890              remote address
9891
9892       local: SocketAddressLegacy (optional)
9893              local address
9894
9895       The members of ChardevCommon
9896
9897   Since
9898       1.5
9899
9900   ChardevMux (Object)
9901       Configuration info for mux chardevs.
9902
9903   Members
9904       chardev: string
9905              name of the base chardev.
9906
9907       The members of ChardevCommon
9908
9909   Since
9910       1.5
9911
9912   ChardevStdio (Object)
9913       Configuration info for stdio chardevs.
9914
9915   Members
9916       signal: boolean (optional)
9917              Allow signals (such as SIGINT triggered by ^C) be  delivered  to
9918              qemu.  Default: true.
9919
9920       The members of ChardevCommon
9921
9922   Since
9923       1.5
9924
9925   ChardevSpiceChannel (Object)
9926       Configuration info for spice vm channel chardevs.
9927
9928   Members
9929       type: string
9930              kind of channel (for example vdagent).
9931
9932       The members of ChardevCommon
9933
9934   Since
9935       1.5
9936
9937   If
9938       CONFIG_SPICE
9939
9940   ChardevSpicePort (Object)
9941       Configuration info for spice port chardevs.
9942
9943   Members
9944       fqdn: string
9945              name of the channel (see docs/spice-port-fqdn.txt)
9946
9947       The members of ChardevCommon
9948
9949   Since
9950       1.5
9951
9952   If
9953       CONFIG_SPICE
9954
9955   ChardevDBus (Object)
9956       Configuration info for DBus chardevs.
9957
9958   Members
9959       name: string
9960              name of the channel (following docs/spice-port-fqdn.txt)
9961
9962       The members of ChardevCommon
9963
9964   Since
9965       7.0
9966
9967   If
9968       CONFIG_DBUS_DISPLAY
9969
9970   ChardevVC (Object)
9971       Configuration info for virtual console chardevs.
9972
9973   Members
9974       width: int (optional)
9975              console width,  in pixels
9976
9977       height: int (optional)
9978              console height, in pixels
9979
9980       cols: int (optional)
9981              console width,  in chars
9982
9983       rows: int (optional)
9984              console height, in chars
9985
9986       The members of ChardevCommon
9987
9988   Since
9989       1.5
9990
9991   ChardevRingbuf (Object)
9992       Configuration info for ring buffer chardevs.
9993
9994   Members
9995       size: int (optional)
9996              ring buffer size, must be power of two, default is 65536
9997
9998       The members of ChardevCommon
9999
10000   Since
10001       1.5
10002
10003   ChardevQemuVDAgent (Object)
10004       Configuration info for qemu vdagent implementation.
10005
10006   Members
10007       mouse: boolean (optional)
10008              enable/disable mouse, default is enabled.
10009
10010       clipboard: boolean (optional)
10011              enable/disable clipboard, default is disabled.
10012
10013       The members of ChardevCommon
10014
10015   Since
10016       6.1
10017
10018   If
10019       CONFIG_SPICE_PROTOCOL
10020
10021   ChardevBackendKind (Enum)
10022   Values
10023       pipe   Since 1.5
10024
10025       udp    Since 1.5
10026
10027       mux    Since 1.5
10028
10029       msmouse
10030              Since 1.5
10031
10032       wctablet
10033              Since 2.9
10034
10035       braille
10036              Since 1.5
10037
10038       testdev
10039              Since 2.2
10040
10041       stdio  Since 1.5
10042
10043       console
10044              Since 1.5
10045
10046       spicevmc (If: CONFIG_SPICE)
10047              Since 1.5
10048
10049       spiceport (If: CONFIG_SPICE)
10050              Since 1.5
10051
10052       qemu-vdagent (If: CONFIG_SPICE_PROTOCOL)
10053              Since 6.1
10054
10055       dbus (If: CONFIG_DBUS_DISPLAY)
10056              Since 7.0
10057
10058       vc     v1.5
10059
10060       ringbuf
10061              Since 1.6
10062
10063       memory Since 1.5
10064
10065       file   Not documented
10066
10067       serial Not documented
10068
10069       parallel
10070              Not documented
10071
10072       socket Not documented
10073
10074       pty    Not documented
10075
10076       null   Not documented
10077
10078   Since
10079       1.4
10080
10081   ChardevFileWrapper (Object)
10082   Members
10083       data: ChardevFile
10084              Not documented
10085
10086   Since
10087       1.4
10088
10089   ChardevHostdevWrapper (Object)
10090   Members
10091       data: ChardevHostdev
10092              Not documented
10093
10094   Since
10095       1.4
10096
10097   ChardevSocketWrapper (Object)
10098   Members
10099       data: ChardevSocket
10100              Not documented
10101
10102   Since
10103       1.4
10104
10105   ChardevUdpWrapper (Object)
10106   Members
10107       data: ChardevUdp
10108              Not documented
10109
10110   Since
10111       1.5
10112
10113   ChardevCommonWrapper (Object)
10114   Members
10115       data: ChardevCommon
10116              Not documented
10117
10118   Since
10119       2.6
10120
10121   ChardevMuxWrapper (Object)
10122   Members
10123       data: ChardevMux
10124              Not documented
10125
10126   Since
10127       1.5
10128
10129   ChardevStdioWrapper (Object)
10130   Members
10131       data: ChardevStdio
10132              Not documented
10133
10134   Since
10135       1.5
10136
10137   ChardevSpiceChannelWrapper (Object)
10138   Members
10139       data: ChardevSpiceChannel
10140              Not documented
10141
10142   Since
10143       1.5
10144
10145   If
10146       CONFIG_SPICE
10147
10148   ChardevSpicePortWrapper (Object)
10149   Members
10150       data: ChardevSpicePort
10151              Not documented
10152
10153   Since
10154       1.5
10155
10156   If
10157       CONFIG_SPICE
10158
10159   ChardevQemuVDAgentWrapper (Object)
10160   Members
10161       data: ChardevQemuVDAgent
10162              Not documented
10163
10164   Since
10165       6.1
10166
10167   If
10168       CONFIG_SPICE_PROTOCOL
10169
10170   ChardevDBusWrapper (Object)
10171   Members
10172       data: ChardevDBus
10173              Not documented
10174
10175   Since
10176       7.0
10177
10178   If
10179       CONFIG_DBUS_DISPLAY
10180
10181   ChardevVCWrapper (Object)
10182   Members
10183       data: ChardevVC
10184              Not documented
10185
10186   Since
10187       1.5
10188
10189   ChardevRingbufWrapper (Object)
10190   Members
10191       data: ChardevRingbuf
10192              Not documented
10193
10194   Since
10195       1.5
10196
10197   ChardevBackend (Object)
10198       Configuration info for the new chardev backend.
10199
10200   Members
10201       type: ChardevBackendKind
10202              Not documented
10203
10204       The members of ChardevFileWrapper when type is "file"
10205
10206       The members of ChardevHostdevWrapper when type is "serial"
10207
10208       The members of ChardevHostdevWrapper when type is "parallel"
10209
10210       The members of ChardevHostdevWrapper when type is "pipe"
10211
10212       The members of ChardevSocketWrapper when type is "socket"
10213
10214       The members of ChardevUdpWrapper when type is "udp"
10215
10216       The members of ChardevCommonWrapper when type is "pty"
10217
10218       The members of ChardevCommonWrapper when type is "null"
10219
10220       The members of ChardevMuxWrapper when type is "mux"
10221
10222       The members of ChardevCommonWrapper when type is "msmouse"
10223
10224       The members of ChardevCommonWrapper when type is "wctablet"
10225
10226       The members of ChardevCommonWrapper when type is "braille"
10227
10228       The members of ChardevCommonWrapper when type is "testdev"
10229
10230       The members of ChardevStdioWrapper when type is "stdio"
10231
10232       The members of ChardevCommonWrapper when type is "console"
10233
10234       The  members of ChardevSpiceChannelWrapper when type is "spicevmc" (If:
10235       CONFIG_SPICE)
10236
10237       The members of ChardevSpicePortWrapper when type  is  "spiceport"  (If:
10238       CONFIG_SPICE)
10239
10240       The  members  of  ChardevQemuVDAgentWrapper when type is "qemu-vdagent"
10241       (If: CONFIG_SPICE_PROTOCOL)
10242
10243       The members  of  ChardevDBusWrapper  when  type  is  "dbus"  (If:  CON‐
10244       FIG_DBUS_DISPLAY)
10245
10246       The members of ChardevVCWrapper when type is "vc"
10247
10248       The members of ChardevRingbufWrapper when type is "ringbuf"
10249
10250       The members of ChardevRingbufWrapper when type is "memory"
10251
10252   Since
10253       1.4
10254
10255   ChardevReturn (Object)
10256       Return info about the chardev backend just created.
10257
10258   Members
10259       pty: string (optional)
10260              name  of the slave pseudoterminal device, present if and only if
10261              a chardev of type 'pty' was created
10262
10263   Since
10264       1.4
10265
10266   chardev-add (Command)
10267       Add a character device backend
10268
10269   Arguments
10270       id: string
10271              the chardev's ID, must be unique
10272
10273       backend: ChardevBackend
10274              backend type and parameters
10275
10276   Returns
10277       ChardevReturn.
10278
10279   Since
10280       1.4
10281
10282   Example
10283          -> { "execute" : "chardev-add",
10284               "arguments" : { "id" : "foo",
10285                               "backend" : { "type" : "null", "data" : {} } } }
10286          <- { "return": {} }
10287
10288          -> { "execute" : "chardev-add",
10289               "arguments" : { "id" : "bar",
10290                               "backend" : { "type" : "file",
10291                                             "data" : { "out" : "/tmp/bar.log" } } } }
10292          <- { "return": {} }
10293
10294          -> { "execute" : "chardev-add",
10295               "arguments" : { "id" : "baz",
10296                               "backend" : { "type" : "pty", "data" : {} } } }
10297          <- { "return": { "pty" : "/dev/pty/42" } }
10298
10299   chardev-change (Command)
10300       Change a character device backend
10301
10302   Arguments
10303       id: string
10304              the chardev's ID, must exist
10305
10306       backend: ChardevBackend
10307              new backend type and parameters
10308
10309   Returns
10310       ChardevReturn.
10311
10312   Since
10313       2.10
10314
10315   Example
10316          -> { "execute" : "chardev-change",
10317               "arguments" : { "id" : "baz",
10318                               "backend" : { "type" : "pty", "data" : {} } } }
10319          <- { "return": { "pty" : "/dev/pty/42" } }
10320
10321          -> {"execute" : "chardev-change",
10322              "arguments" : {
10323                  "id" : "charchannel2",
10324                  "backend" : {
10325                      "type" : "socket",
10326                      "data" : {
10327                          "addr" : {
10328                              "type" : "unix" ,
10329                              "data" : {
10330                                  "path" : "/tmp/charchannel2.socket"
10331                              }
10332                           },
10333                           "server" : true,
10334                           "wait" : false }}}}
10335          <- {"return": {}}
10336
10337   chardev-remove (Command)
10338       Remove a character device backend
10339
10340   Arguments
10341       id: string
10342              the chardev's ID, must exist and not be in use
10343
10344   Returns
10345       Nothing on success
10346
10347   Since
10348       1.4
10349
10350   Example
10351          -> { "execute": "chardev-remove", "arguments": { "id" : "foo" } }
10352          <- { "return": {} }
10353
10354   chardev-send-break (Command)
10355       Send a break to a character device
10356
10357   Arguments
10358       id: string
10359              the chardev's ID, must exist
10360
10361   Returns
10362       Nothing on success
10363
10364   Since
10365       2.10
10366
10367   Example
10368          -> { "execute": "chardev-send-break", "arguments": { "id" : "foo" } }
10369          <- { "return": {} }
10370
10371   VSERPORT_CHANGE (Event)
10372       Emitted when the guest opens or closes a virtio-serial port.
10373
10374   Arguments
10375       id: string
10376              device identifier of the virtio-serial port
10377
10378       open: boolean
10379              true if the guest has opened the virtio-serial port
10380
10381   Note
10382       This event is rate-limited.
10383
10384   Since
10385       2.1
10386
10387   Example
10388          <- { "event": "VSERPORT_CHANGE",
10389               "data": { "id": "channel0", "open": true },
10390               "timestamp": { "seconds": 1401385907, "microseconds": 422329 } }
10391

DUMP GUEST MEMORY

10393   DumpGuestMemoryFormat (Enum)
10394       An enumeration of guest-memory-dump's format.
10395
10396   Values
10397       elf    elf format
10398
10399       kdump-zlib
10400              kdump-compressed format with zlib-compressed
10401
10402       kdump-lzo
10403              kdump-compressed format with lzo-compressed
10404
10405       kdump-snappy
10406              kdump-compressed format with snappy-compressed
10407
10408       win-dmp
10409              Windows full crashdump format, can be used instead of  ELF  con‐
10410              verting (since 2.13)
10411
10412   Since
10413       2.0
10414
10415   dump-guest-memory (Command)
10416       Dump  guest's  memory to vmcore. It is a synchronous operation that can
10417       take very long depending on the amount of guest memory.
10418
10419   Arguments
10420       paging: boolean
10421              if true, do paging to get guest's memory  mapping.  This  allows
10422              using gdb to process the core file.
10423
10424              IMPORTANT:  this option can make QEMU allocate several gigabytes
10425              of RAM. This can happen for a large guest, or a malicious  guest
10426              pretending to be large.
10427
10428              Also, paging=true has the following limitations:
10429
10430                 1. The  guest may be in a catastrophic state or can have cor‐
10431                    rupted memory, which cannot be trusted
10432
10433                 2. The guest can be in real-mode even if paging  is  enabled.
10434                    For  example, the guest uses ACPI to sleep, and ACPI sleep
10435                    state goes in real-mode
10436
10437                 3. Currently only supported on i386 and x86_64.
10438
10439       protocol: string
10440              the filename or file descriptor of  the  vmcore.  The  supported
10441              protocols are:
10442
10443              1. file:  the  protocol  starts  with "file:", and the following
10444                 string is the file's path.
10445
10446              2. fd: the protocol starts with "fd:", and the following  string
10447                 is the fd's name.
10448
10449       detach: boolean (optional)
10450              if true, QMP will return immediately rather than waiting for the
10451              dump to finish. The user can track progress using  "query-dump".
10452              (since 2.6).
10453
10454       begin: int (optional)
10455              if specified, the starting physical address.
10456
10457       length: int (optional)
10458              if  specified,  the  memory size, in bytes. If you don't want to
10459              dump all guest's memory, please  specify  the  start  begin  and
10460              length
10461
10462       format: DumpGuestMemoryFormat (optional)
10463              if  specified, the format of guest memory dump. But non-elf for‐
10464              mat is conflict with paging and filter, ie.  paging,  begin  and
10465              length is not allowed to be specified with non-elf format at the
10466              same time (since 2.0)
10467
10468   Note
10469       All boolean arguments default to false
10470
10471   Returns
10472       nothing on success
10473
10474   Since
10475       1.2
10476
10477   Example
10478          -> { "execute": "dump-guest-memory",
10479               "arguments": { "paging": false, "protocol": "fd:dump" } }
10480          <- { "return": {} }
10481
10482   DumpStatus (Enum)
10483       Describe the status of a long-running background guest memory dump.
10484
10485   Values
10486       none   no dump-guest-memory has started yet.
10487
10488       active there is one dump running in background.
10489
10490       completed
10491              the last dump has finished successfully.
10492
10493       failed the last dump has failed.
10494
10495   Since
10496       2.6
10497
10498   DumpQueryResult (Object)
10499       The result format for 'query-dump'.
10500
10501   Members
10502       status: DumpStatus
10503              enum of DumpStatus, which shows current dump status
10504
10505       completed: int
10506              bytes written in latest dump (uncompressed)
10507
10508       total: int
10509              total bytes to be written in latest dump (uncompressed)
10510
10511   Since
10512       2.6
10513
10514   query-dump (Command)
10515       Query latest dump status.
10516
10517   Returns
10518       A DumpStatus object showing the dump status.
10519
10520   Since
10521       2.6
10522
10523   Example
10524          -> { "execute": "query-dump" }
10525          <- { "return": { "status": "active", "completed": 1024000,
10526                           "total": 2048000 } }
10527
10528   DUMP_COMPLETED (Event)
10529       Emitted when background dump has completed
10530
10531   Arguments
10532       result: DumpQueryResult
10533              final dump status
10534
10535       error: string (optional)
10536              human-readable error string  that  provides  hint  on  why  dump
10537              failed. Only presents on failure. The user should not try to in‐
10538              terpret the error string.
10539
10540   Since
10541       2.6
10542
10543   Example
10544          <- { "event": "DUMP_COMPLETED",
10545               "data": { "result": { "total": 1090650112, "status": "completed",
10546                                     "completed": 1090650112 } },
10547               "timestamp": { "seconds": 1648244171, "microseconds": 950316 } }
10548
10549   DumpGuestMemoryCapability (Object)
10550       A list of the available formats for dump-guest-memory
10551
10552   Members
10553       formats: array of DumpGuestMemoryFormat
10554              Not documented
10555
10556   Since
10557       2.0
10558
10559   query-dump-guest-memory-capability (Command)
10560       Returns the available formats for dump-guest-memory
10561
10562   Returns
10563       A  DumpGuestMemoryCapability  object  listing  available  formats   for
10564       dump-guest-memory
10565
10566   Since
10567       2.0
10568
10569   Example
10570          -> { "execute": "query-dump-guest-memory-capability" }
10571          <- { "return": { "formats":
10572                           ["elf", "kdump-zlib", "kdump-lzo", "kdump-snappy"] }
10573

NET DEVICES

10575   set_link (Command)
10576       Sets the link status of a virtual network adapter.
10577
10578   Arguments
10579       name: string
10580              the device name of the virtual network adapter
10581
10582       up: boolean
10583              true to set the link status to be up
10584
10585   Returns
10586       Nothing  on  success  If name is not a valid network device, DeviceNot‐
10587       Found
10588
10589   Since
10590       0.14
10591
10592   Notes
10593       Not all network adapters support setting  link  status.   This  command
10594       will  succeed  even if the network adapter does not support link status
10595       notification.
10596
10597   Example
10598          -> { "execute": "set_link",
10599               "arguments": { "name": "e1000.0", "up": false } }
10600          <- { "return": {} }
10601
10602   netdev_add (Command)
10603       Add a network backend.
10604
10605       Additional arguments depend on the type.
10606
10607   Arguments
10608       The members of Netdev
10609
10610   Since
10611       0.14
10612
10613   Returns
10614       Nothing on success If type is not a valid network  backend,  DeviceNot‐
10615       Found
10616
10617   Example
10618          -> { "execute": "netdev_add",
10619               "arguments": { "type": "user", "id": "netdev1",
10620                              "dnssearch": [ { "str": "example.org" } ] } }
10621          <- { "return": {} }
10622
10623   netdev_del (Command)
10624       Remove a network backend.
10625
10626   Arguments
10627       id: string
10628              the name of the network backend to remove
10629
10630   Returns
10631       Nothing on success If id is not a valid network backend, DeviceNotFound
10632
10633   Since
10634       0.14
10635
10636   Example
10637          -> { "execute": "netdev_del", "arguments": { "id": "netdev1" } }
10638          <- { "return": {} }
10639
10640   NetLegacyNicOptions (Object)
10641       Create a new Network Interface Card.
10642
10643   Members
10644       netdev: string (optional)
10645              id of -netdev to connect to
10646
10647       macaddr: string (optional)
10648              MAC address
10649
10650       model: string (optional)
10651              device model (e1000, rtl8139, virtio etc.)
10652
10653       addr: string (optional)
10654              PCI device address
10655
10656       vectors: int (optional)
10657              number of MSI-x vectors, 0 to disable MSI-X
10658
10659   Since
10660       1.2
10661
10662   NetdevUserOptions (Object)
10663       Use  the user mode network stack which requires no administrator privi‐
10664       lege to run.
10665
10666   Members
10667       hostname: string (optional)
10668              client hostname reported by the builtin DHCP server
10669
10670       restrict: boolean (optional)
10671              isolate the guest from the host
10672
10673       ipv4: boolean (optional)
10674              whether to support IPv4, default true for enabled (since 2.6)
10675
10676       ipv6: boolean (optional)
10677              whether to support IPv6, default true for enabled (since 2.6)
10678
10679       ip: string (optional)
10680              legacy parameter, use net= instead
10681
10682       net: string (optional)
10683              IP network  address  that  the  guest  will  see,  in  the  form
10684              addr[/netmask] The netmask is optional, and can be either in the
10685              form a.b.c.d or as a number of valid top-most bits.  Default  is
10686              10.0.2.0/24.
10687
10688       host: string (optional)
10689              guest-visible address of the host
10690
10691       tftp: string (optional)
10692              root directory of the built-in TFTP server
10693
10694       bootfile: string (optional)
10695              BOOTP filename, for use with tftp=
10696
10697       dhcpstart: string (optional)
10698              the first of the 16 IPs the built-in DHCP server can assign
10699
10700       dns: string (optional)
10701              guest-visible address of the virtual nameserver
10702
10703       dnssearch: array of String (optional)
10704              list  of  DNS  suffixes  to search, passed as DHCP option to the
10705              guest
10706
10707       domainname: string (optional)
10708              guest-visible domain name of the virtual nameserver (since 3.0)
10709
10710       ipv6-prefix: string (optional)
10711              IPv6 network prefix (default is fec0::) (since 2.6). The network
10712              prefix is given in the usual hexadecimal IPv6 address notation.
10713
10714       ipv6-prefixlen: int (optional)
10715              IPv6 network prefix length (default is 64) (since 2.6)
10716
10717       ipv6-host: string (optional)
10718              guest-visible IPv6 address of the host (since 2.6)
10719
10720       ipv6-dns: string (optional)
10721              guest-visible IPv6 address of the virtual nameserver (since 2.6)
10722
10723       smb: string (optional)
10724              root directory of the built-in SMB server
10725
10726       smbserver: string (optional)
10727              IP address of the built-in SMB server
10728
10729       hostfwd: array of String (optional)
10730              redirect incoming TCP or UDP host connections to guest endpoints
10731
10732       guestfwd: array of String (optional)
10733              forward guest TCP connections
10734
10735       tftp-server-name: string (optional)
10736              RFC2132 "TFTP server name" string (Since 3.1)
10737
10738   Since
10739       1.2
10740
10741   NetdevTapOptions (Object)
10742       Used to configure a host TAP network interface backend.
10743
10744   Members
10745       ifname: string (optional)
10746              interface name
10747
10748       fd: string (optional)
10749              file descriptor of an already opened tap
10750
10751       fds: string (optional)
10752              multiple  file  descriptors of already opened multiqueue capable
10753              tap
10754
10755       script: string (optional)
10756              script to initialize the interface
10757
10758       downscript: string (optional)
10759              script to shut down the interface
10760
10761       br: string (optional)
10762              bridge name (since 2.8)
10763
10764       helper: string (optional)
10765              command to execute to configure bridge
10766
10767       sndbuf: int (optional)
10768              send buffer limit. Understands [TGMKkb] suffixes.
10769
10770       vnet_hdr: boolean (optional)
10771              enable the IFF_VNET_HDR flag on the tap interface
10772
10773       vhost: boolean (optional)
10774              enable vhost-net network accelerator
10775
10776       vhostfd: string (optional)
10777              file descriptor of an already opened vhost net device
10778
10779       vhostfds: string (optional)
10780              file descriptors of multiple already opened vhost net devices
10781
10782       vhostforce: boolean (optional)
10783              vhost on for non-MSIX virtio guests
10784
10785       queues: int (optional)
10786              number of queues to be created for multiqueue capable tap
10787
10788       poll-us: int (optional)
10789              maximum number of microseconds  that  could  be  spent  on  busy
10790              polling for tap (since 2.7)
10791
10792   Since
10793       1.2
10794
10795   NetdevSocketOptions (Object)
10796       Socket  netdevs  are  used to establish a network connection to another
10797       QEMU virtual machine via a TCP socket.
10798
10799   Members
10800       fd: string (optional)
10801              file descriptor of an already opened socket
10802
10803       listen: string (optional)
10804              port number, and optional hostname, to listen on
10805
10806       connect: string (optional)
10807              port number, and optional hostname, to connect to
10808
10809       mcast: string (optional)
10810              UDP multicast address and port number
10811
10812       localaddr: string (optional)
10813              source address and port for multicast and udp packets
10814
10815       udp: string (optional)
10816              UDP unicast address and port number
10817
10818   Since
10819       1.2
10820
10821   NetdevL2TPv3Options (Object)
10822       Configure an Ethernet over L2TPv3 tunnel.
10823
10824   Members
10825       src: string
10826              source address
10827
10828       dst: string
10829              destination address
10830
10831       srcport: string (optional)
10832              source port - mandatory for udp, optional for ip
10833
10834       dstport: string (optional)
10835              destination port - mandatory for udp, optional for ip
10836
10837       ipv6: boolean (optional)
10838              force the use of ipv6
10839
10840       udp: boolean (optional)
10841              use the udp version of l2tpv3 encapsulation
10842
10843       cookie64: boolean (optional)
10844              use 64 bit coookies
10845
10846       counter: boolean (optional)
10847              have sequence counter
10848
10849       pincounter: boolean (optional)
10850              pin sequence counter to zero - workaround for buggy  implementa‐
10851              tions or networks with packet reorder
10852
10853       txcookie: int (optional)
10854              32 or 64 bit transmit cookie
10855
10856       rxcookie: int (optional)
10857              32 or 64 bit receive cookie
10858
10859       txsession: int
10860              32 bit transmit session
10861
10862       rxsession: int (optional)
10863              32  bit receive session - if not specified set to the same value
10864              as transmit
10865
10866       offset: int (optional)
10867              additional offset - allows the insertion of additional  applica‐
10868              tion-specific data before the packet payload
10869
10870   Since
10871       2.1
10872
10873   NetdevVdeOptions (Object)
10874       Connect to a vde switch running on the host.
10875
10876   Members
10877       sock: string (optional)
10878              socket path
10879
10880       port: int (optional)
10881              port number
10882
10883       group: string (optional)
10884              group owner of socket
10885
10886       mode: int (optional)
10887              permissions for socket
10888
10889   Since
10890       1.2
10891
10892   NetdevBridgeOptions (Object)
10893       Connect a host TAP network interface to a host bridge device.
10894
10895   Members
10896       br: string (optional)
10897              bridge name
10898
10899       helper: string (optional)
10900              command to execute to configure bridge
10901
10902   Since
10903       1.2
10904
10905   NetdevHubPortOptions (Object)
10906       Connect two or more net clients through a software hub.
10907
10908   Members
10909       hubid: int
10910              hub identifier number
10911
10912       netdev: string (optional)
10913              used to connect hub to a netdev instead of a device (since 2.12)
10914
10915   Since
10916       1.2
10917
10918   NetdevNetmapOptions (Object)
10919       Connect a client to a netmap-enabled NIC or to a VALE switch port
10920
10921   Members
10922       ifname: string
10923              Either  the  name  of an existing network interface supported by
10924              netmap, or the name of a VALE port (created on the fly).  A VALE
10925              port  name  is  in the form 'valeXXX:YYY', where XXX and YYY are
10926              non-negative integers. XXX identifies a switch and  YYY  identi‐
10927              fies  a  port  of the switch. VALE ports having the same XXX are
10928              therefore connected to the same switch.
10929
10930       devname: string (optional)
10931              path of the netmap device (default: '/dev/netmap').
10932
10933   Since
10934       2.0
10935
10936   NetdevVhostUserOptions (Object)
10937       Vhost-user network backend
10938
10939   Members
10940       chardev: string
10941              name of a unix socket chardev
10942
10943       vhostforce: boolean (optional)
10944              vhost on for non-MSIX virtio guests (default: false).
10945
10946       queues: int (optional)
10947              number of queues to be created for  multiqueue  vhost-user  (de‐
10948              fault: 1) (Since 2.5)
10949
10950   Since
10951       2.1
10952
10953   NetdevVhostVDPAOptions (Object)
10954       Vhost-vdpa network backend
10955
10956       vDPA  device  is  a device that uses a datapath which complies with the
10957       virtio specifications with a vendor specific control path.
10958
10959   Members
10960       vhostdev: string (optional)
10961              path of vhost-vdpa device (default:'/dev/vhost-vdpa-0')
10962
10963       queues: int (optional)
10964              number of queues to be created for  multiqueue  vhost-vdpa  (de‐
10965              fault: 1)
10966
10967   Since
10968       5.1
10969
10970   NetClientDriver (Enum)
10971       Available netdev drivers.
10972
10973   Values
10974       none   Not documented
10975
10976       nic    Not documented
10977
10978       user   Not documented
10979
10980       tap    Not documented
10981
10982       l2tpv3 Not documented
10983
10984       socket Not documented
10985
10986       vde    Not documented
10987
10988       bridge Not documented
10989
10990       hubport
10991              Not documented
10992
10993       netmap Not documented
10994
10995       vhost-user
10996              Not documented
10997
10998       vhost-vdpa
10999              Not documented
11000
11001   Since
11002       2.7
11003
11004       vhost-vdpa since 5.1
11005
11006   Netdev (Object)
11007       Captures the configuration of a network device.
11008
11009   Members
11010       id: string
11011              identifier for monitor commands.
11012
11013       type: NetClientDriver
11014              Specify the driver used for interpreting remaining arguments.
11015
11016       The members of NetLegacyNicOptions when type is "nic"
11017
11018       The members of NetdevUserOptions when type is "user"
11019
11020       The members of NetdevTapOptions when type is "tap"
11021
11022       The members of NetdevL2TPv3Options when type is "l2tpv3"
11023
11024       The members of NetdevSocketOptions when type is "socket"
11025
11026       The members of NetdevVdeOptions when type is "vde"
11027
11028       The members of NetdevBridgeOptions when type is "bridge"
11029
11030       The members of NetdevHubPortOptions when type is "hubport"
11031
11032       The members of NetdevNetmapOptions when type is "netmap"
11033
11034       The members of NetdevVhostUserOptions when type is "vhost-user"
11035
11036       The members of NetdevVhostVDPAOptions when type is "vhost-vdpa"
11037
11038   Since
11039       1.2
11040
11041       'l2tpv3' - since 2.1
11042
11043   RxState (Enum)
11044       Packets receiving state
11045
11046   Values
11047       normal filter assigned packets according to the mac-table
11048
11049       none   don't receive any assigned packet
11050
11051       all    receive all assigned packets
11052
11053   Since
11054       1.6
11055
11056   RxFilterInfo (Object)
11057       Rx-filter information for a NIC.
11058
11059   Members
11060       name: string
11061              net client name
11062
11063       promiscuous: boolean
11064              whether promiscuous mode is enabled
11065
11066       multicast: RxState
11067              multicast receive state
11068
11069       unicast: RxState
11070              unicast receive state
11071
11072       vlan: RxState
11073              vlan receive state (Since 2.0)
11074
11075       broadcast-allowed: boolean
11076              whether to receive broadcast
11077
11078       multicast-overflow: boolean
11079              multicast table is overflowed or not
11080
11081       unicast-overflow: boolean
11082              unicast table is overflowed or not
11083
11084       main-mac: string
11085              the main macaddr string
11086
11087       vlan-table: array of int
11088              a list of active vlan id
11089
11090       unicast-table: array of string
11091              a list of unicast macaddr string
11092
11093       multicast-table: array of string
11094              a list of multicast macaddr string
11095
11096   Since
11097       1.6
11098
11099   query-rx-filter (Command)
11100       Return rx-filter information for all NICs (or for the given NIC).
11101
11102   Arguments
11103       name: string (optional)
11104              net client name
11105
11106   Returns
11107       list  of  RxFilterInfo for all NICs (or for the given NIC).  Returns an
11108       error if the given name doesn't exist, or  given  NIC  doesn't  support
11109       rx-filter querying, or given net client isn't a NIC.
11110
11111   Since
11112       1.6
11113
11114   Example
11115          -> { "execute": "query-rx-filter", "arguments": { "name": "vnet0" } }
11116          <- { "return": [
11117                  {
11118                      "promiscuous": true,
11119                      "name": "vnet0",
11120                      "main-mac": "52:54:00:12:34:56",
11121                      "unicast": "normal",
11122                      "vlan": "normal",
11123                      "vlan-table": [
11124                          4,
11125                          0
11126                      ],
11127                      "unicast-table": [
11128                      ],
11129                      "multicast": "normal",
11130                      "multicast-overflow": false,
11131                      "unicast-overflow": false,
11132                      "multicast-table": [
11133                          "01:00:5e:00:00:01",
11134                          "33:33:00:00:00:01",
11135                          "33:33:ff:12:34:56"
11136                      ],
11137                      "broadcast-allowed": false
11138                  }
11139                ]
11140             }
11141
11142   NIC_RX_FILTER_CHANGED (Event)
11143       Emitted once until the 'query-rx-filter' command is executed, the first
11144       event will always be emitted
11145
11146   Arguments
11147       name: string (optional)
11148              net client name
11149
11150       path: string
11151              device path
11152
11153   Since
11154       1.6
11155
11156   Example
11157          <- { "event": "NIC_RX_FILTER_CHANGED",
11158               "data": { "name": "vnet0",
11159                         "path": "/machine/peripheral/vnet0/virtio-backend" },
11160               "timestamp": { "seconds": 1368697518, "microseconds": 326866 } }
11161             }
11162
11163   AnnounceParameters (Object)
11164       Parameters for self-announce timers
11165
11166   Members
11167       initial: int
11168              Initial delay (in ms) before sending  the  first  GARP/RARP  an‐
11169              nouncement
11170
11171       max: int
11172              Maximum delay (in ms) between GARP/RARP announcement packets
11173
11174       rounds: int
11175              Number of self-announcement attempts
11176
11177       step: int
11178              Delay increase (in ms) after each self-announcement attempt
11179
11180       interfaces: array of string (optional)
11181              An  optional  list  of  interface names, which restricts the an‐
11182              nouncement to the listed interfaces. (Since 4.1)
11183
11184       id: string (optional)
11185              A name to be used to identify an instance of announce-timers and
11186              to  allow  it to modified later.  Not for use as part of the mi‐
11187              gration parameters. (Since 4.1)
11188
11189   Since
11190       4.0
11191
11192   announce-self (Command)
11193       Trigger generation of broadcast RARP frames to update network switches.
11194       This can be useful when network bonds fail-over the active slave.
11195
11196   Arguments
11197       The members of AnnounceParameters
11198
11199   Example
11200          -> { "execute": "announce-self",
11201               "arguments": {
11202                   "initial": 50, "max": 550, "rounds": 10, "step": 50,
11203                   "interfaces": ["vn2", "vn3"], "id": "bob" } }
11204          <- { "return": {} }
11205
11206   Since
11207       4.0
11208
11209   FAILOVER_NEGOTIATED (Event)
11210       Emitted  when  VIRTIO_NET_F_STANDBY was enabled during feature negotia‐
11211       tion.  Failover primary devices which were hidden (not hotplugged  when
11212       requested)  before will now be hotplugged by the virtio-net standby de‐
11213       vice.
11214
11215   Arguments
11216       device-id: string
11217              QEMU device id of the unplugged device
11218
11219   Since
11220       4.2
11221
11222   Example
11223          <- { "event": "FAILOVER_NEGOTIATED",
11224               "data": { "device-id": "net1" },
11225               "timestamp": { "seconds": 1368697518, "microseconds": 326866 } }
11226

RDMA DEVICE

11228   RDMA_GID_STATUS_CHANGED (Event)
11229       Emitted when guest driver adds/deletes GID to/from device
11230
11231   Arguments
11232       netdev: string
11233              RoCE Network Device name
11234
11235       gid-status: boolean
11236              Add or delete indication
11237
11238       subnet-prefix: int
11239              Subnet Prefix
11240
11241       interface-id: int
11242              Not documented
11243       interface-id : Interface ID
11244
11245   Since
11246       4.0
11247
11248   Example
11249          <- {"timestamp": {"seconds": 1541579657, "microseconds": 986760},
11250              "event": "RDMA_GID_STATUS_CHANGED",
11251              "data":
11252                  {"netdev": "bridge0",
11253                  "interface-id": 15880512517475447892,
11254                  "gid-status": true,
11255                  "subnet-prefix": 33022}}
11256

ROCKER SWITCH DEVICE

11258   RockerSwitch (Object)
11259       Rocker switch information.
11260
11261   Members
11262       name: string
11263              switch name
11264
11265       id: int
11266              switch ID
11267
11268       ports: int
11269              number of front-panel ports
11270
11271   Since
11272       2.4
11273
11274   query-rocker (Command)
11275       Return rocker switch information.
11276
11277   Arguments
11278       name: string
11279              Not documented
11280
11281   Returns
11282       Rocker information
11283
11284   Since
11285       2.4
11286
11287   Example
11288          -> { "execute": "query-rocker", "arguments": { "name": "sw1" } }
11289          <- { "return": {"name": "sw1", "ports": 2, "id": 1327446905938}}
11290
11291   RockerPortDuplex (Enum)
11292       An eumeration of port duplex states.
11293
11294   Values
11295       half   half duplex
11296
11297       full   full duplex
11298
11299   Since
11300       2.4
11301
11302   RockerPortAutoneg (Enum)
11303       An eumeration of port autoneg states.
11304
11305   Values
11306       off    autoneg is off
11307
11308       on     autoneg is on
11309
11310   Since
11311       2.4
11312
11313   RockerPort (Object)
11314       Rocker switch port information.
11315
11316   Members
11317       name: string
11318              port name
11319
11320       enabled: boolean
11321              port is enabled for I/O
11322
11323       link-up: boolean
11324              physical link is UP on port
11325
11326       speed: int
11327              port link speed in Mbps
11328
11329       duplex: RockerPortDuplex
11330              port link duplex
11331
11332       autoneg: RockerPortAutoneg
11333              port link autoneg
11334
11335   Since
11336       2.4
11337
11338   query-rocker-ports (Command)
11339       Return rocker switch port information.
11340
11341   Arguments
11342       name: string
11343              Not documented
11344
11345   Returns
11346       a list of RockerPort information
11347
11348   Since
11349       2.4
11350
11351   Example
11352          -> { "execute": "query-rocker-ports", "arguments": { "name": "sw1" } }
11353          <- { "return": [ {"duplex": "full", "enabled": true, "name": "sw1.1",
11354                            "autoneg": "off", "link-up": true, "speed": 10000},
11355                           {"duplex": "full", "enabled": true, "name": "sw1.2",
11356                            "autoneg": "off", "link-up": true, "speed": 10000}
11357             ]}
11358
11359   RockerOfDpaFlowKey (Object)
11360       Rocker switch OF-DPA flow key
11361
11362   Members
11363       priority: int
11364              key priority, 0 being lowest priority
11365
11366       tbl-id: int
11367              flow table ID
11368
11369       in-pport: int (optional)
11370              physical input port
11371
11372       tunnel-id: int (optional)
11373              tunnel ID
11374
11375       vlan-id: int (optional)
11376              VLAN ID
11377
11378       eth-type: int (optional)
11379              Ethernet header type
11380
11381       eth-src: string (optional)
11382              Ethernet header source MAC address
11383
11384       eth-dst: string (optional)
11385              Ethernet header destination MAC address
11386
11387       ip-proto: int (optional)
11388              IP Header protocol field
11389
11390       ip-tos: int (optional)
11391              IP header TOS field
11392
11393       ip-dst: string (optional)
11394              IP header destination address
11395
11396   Note
11397       optional members may or may not appear in the  flow  key  depending  if
11398       they're relevant to the flow key.
11399
11400   Since
11401       2.4
11402
11403   RockerOfDpaFlowMask (Object)
11404       Rocker switch OF-DPA flow mask
11405
11406   Members
11407       in-pport: int (optional)
11408              physical input port
11409
11410       tunnel-id: int (optional)
11411              tunnel ID
11412
11413       vlan-id: int (optional)
11414              VLAN ID
11415
11416       eth-src: string (optional)
11417              Ethernet header source MAC address
11418
11419       eth-dst: string (optional)
11420              Ethernet header destination MAC address
11421
11422       ip-proto: int (optional)
11423              IP Header protocol field
11424
11425       ip-tos: int (optional)
11426              IP header TOS field
11427
11428   Note
11429       optional  members  may  or may not appear in the flow mask depending if
11430       they're relevant to the flow mask.
11431
11432   Since
11433       2.4
11434
11435   RockerOfDpaFlowAction (Object)
11436       Rocker switch OF-DPA flow action
11437
11438   Members
11439       goto-tbl: int (optional)
11440              next table ID
11441
11442       group-id: int (optional)
11443              group ID
11444
11445       tunnel-lport: int (optional)
11446              tunnel logical port ID
11447
11448       vlan-id: int (optional)
11449              VLAN ID
11450
11451       new-vlan-id: int (optional)
11452              new VLAN ID
11453
11454       out-pport: int (optional)
11455              physical output port
11456
11457   Note
11458       optional members may or may not appear in the flow action depending  if
11459       they're relevant to the flow action.
11460
11461   Since
11462       2.4
11463
11464   RockerOfDpaFlow (Object)
11465       Rocker switch OF-DPA flow
11466
11467   Members
11468       cookie: int
11469              flow unique cookie ID
11470
11471       hits: int
11472              count of matches (hits) on flow
11473
11474       key: RockerOfDpaFlowKey
11475              flow key
11476
11477       mask: RockerOfDpaFlowMask
11478              flow mask
11479
11480       action: RockerOfDpaFlowAction
11481              flow action
11482
11483   Since
11484       2.4
11485
11486   query-rocker-of-dpa-flows (Command)
11487       Return rocker OF-DPA flow information.
11488
11489   Arguments
11490       name: string
11491              switch name
11492
11493       tbl-id: int (optional)
11494              flow  table ID.  If tbl-id is not specified, returns flow infor‐
11495              mation for all tables.
11496
11497   Returns
11498       rocker OF-DPA flow information
11499
11500   Since
11501       2.4
11502
11503   Example
11504          -> { "execute": "query-rocker-of-dpa-flows",
11505               "arguments": { "name": "sw1" } }
11506          <- { "return": [ {"key": {"in-pport": 0, "priority": 1, "tbl-id": 0},
11507                            "hits": 138,
11508                            "cookie": 0,
11509                            "action": {"goto-tbl": 10},
11510                            "mask": {"in-pport": 4294901760}
11511                           },
11512                           {...more...},
11513             ]}
11514
11515   RockerOfDpaGroup (Object)
11516       Rocker switch OF-DPA group
11517
11518   Members
11519       id: int
11520              group unique ID
11521
11522       type: int
11523              group type
11524
11525       vlan-id: int (optional)
11526              VLAN ID
11527
11528       pport: int (optional)
11529              physical port number
11530
11531       index: int (optional)
11532              group index, unique with group type
11533
11534       out-pport: int (optional)
11535              output physical port number
11536
11537       group-id: int (optional)
11538              next group ID
11539
11540       set-vlan-id: int (optional)
11541              VLAN ID to set
11542
11543       pop-vlan: int (optional)
11544              pop VLAN headr from packet
11545
11546       group-ids: array of int (optional)
11547              list of next group IDs
11548
11549       set-eth-src: string (optional)
11550              set source MAC address in Ethernet header
11551
11552       set-eth-dst: string (optional)
11553              set destination MAC address in Ethernet header
11554
11555       ttl-check: int (optional)
11556              perform TTL check
11557
11558   Note
11559       optional members may or may  not  appear  in  the  group  depending  if
11560       they're relevant to the group type.
11561
11562   Since
11563       2.4
11564
11565   query-rocker-of-dpa-groups (Command)
11566       Return rocker OF-DPA group information.
11567
11568   Arguments
11569       name: string
11570              switch name
11571
11572       type: int (optional)
11573              group type.  If type is not specified, returns group information
11574              for all group types.
11575
11576   Returns
11577       rocker OF-DPA group information
11578
11579   Since
11580       2.4
11581
11582   Example
11583          -> { "execute": "query-rocker-of-dpa-groups",
11584               "arguments": { "name": "sw1" } }
11585          <- { "return": [ {"type": 0, "out-pport": 2,
11586                            "pport": 2, "vlan-id": 3841,
11587                            "pop-vlan": 1, "id": 251723778},
11588                           {"type": 0, "out-pport": 0,
11589                            "pport": 0, "vlan-id": 3841,
11590                            "pop-vlan": 1, "id": 251723776},
11591                           {"type": 0, "out-pport": 1,
11592                            "pport": 1, "vlan-id": 3840,
11593                            "pop-vlan": 1, "id": 251658241},
11594                           {"type": 0, "out-pport": 0,
11595                            "pport": 0, "vlan-id": 3840,
11596                            "pop-vlan": 1, "id": 251658240}
11597             ]}
11598

TPM (TRUSTED PLATFORM MODULE) DEVICES

11600   TpmModel (Enum)
11601       An enumeration of TPM models
11602
11603   Values
11604       tpm-tis
11605              TPM TIS model
11606
11607       tpm-crb
11608              TPM CRB model (since 2.12)
11609
11610       tpm-spapr
11611              TPM SPAPR model (since 5.0)
11612
11613   Since
11614       1.5
11615
11616   If
11617       CONFIG_TPM
11618
11619   query-tpm-models (Command)
11620       Return a list of supported TPM models
11621
11622   Returns
11623       a list of TpmModel
11624
11625   Since
11626       1.5
11627
11628   Example
11629          -> { "execute": "query-tpm-models" }
11630          <- { "return": [ "tpm-tis", "tpm-crb", "tpm-spapr" ] }
11631
11632   If
11633       CONFIG_TPM
11634
11635   TpmType (Enum)
11636       An enumeration of TPM types
11637
11638   Values
11639       passthrough
11640              TPM passthrough type
11641
11642       emulator
11643              Software Emulator TPM type Since: 2.11
11644
11645   Since
11646       1.5
11647
11648   If
11649       CONFIG_TPM
11650
11651   query-tpm-types (Command)
11652       Return a list of supported TPM types
11653
11654   Returns
11655       a list of TpmType
11656
11657   Since
11658       1.5
11659
11660   Example
11661          -> { "execute": "query-tpm-types" }
11662          <- { "return": [ "passthrough", "emulator" ] }
11663
11664   If
11665       CONFIG_TPM
11666
11667   TPMPassthroughOptions (Object)
11668       Information about the TPM passthrough type
11669
11670   Members
11671       path: string (optional)
11672              string describing the path used for accessing the TPM device
11673
11674       cancel-path: string (optional)
11675              string showing the TPM's sysfs cancel file for  cancellation  of
11676              TPM commands while they are executing
11677
11678   Since
11679       1.5
11680
11681   If
11682       CONFIG_TPM
11683
11684   TPMEmulatorOptions (Object)
11685       Information about the TPM emulator type
11686
11687   Members
11688       chardev: string
11689              Name of a unix socket chardev
11690
11691   Since
11692       2.11
11693
11694   If
11695       CONFIG_TPM
11696
11697   TPMPassthroughOptionsWrapper (Object)
11698   Members
11699       data: TPMPassthroughOptions
11700              Not documented
11701
11702   Since
11703       1.5
11704
11705   If
11706       CONFIG_TPM
11707
11708   TPMEmulatorOptionsWrapper (Object)
11709   Members
11710       data: TPMEmulatorOptions
11711              Not documented
11712
11713   Since
11714       2.11
11715
11716   If
11717       CONFIG_TPM
11718
11719   TpmTypeOptions (Object)
11720       A union referencing different TPM backend types' configuration options
11721
11722   Members
11723       type: TpmType
11724
11725              • 'passthrough'   The   configuration   options   for   the  TPM
11726                passthrough type
11727
11728              • 'emulator' The configuration options for TPM emulator  backend
11729                type
11730
11731       The members of TPMPassthroughOptionsWrapper when type is "passthrough"
11732
11733       The members of TPMEmulatorOptionsWrapper when type is "emulator"
11734
11735   Since
11736       1.5
11737
11738   If
11739       CONFIG_TPM
11740
11741   TPMInfo (Object)
11742       Information about the TPM
11743
11744   Members
11745       id: string
11746              The Id of the TPM
11747
11748       model: TpmModel
11749              The TPM frontend model
11750
11751       options: TpmTypeOptions
11752              The TPM (backend) type configuration options
11753
11754   Since
11755       1.5
11756
11757   If
11758       CONFIG_TPM
11759
11760   query-tpm (Command)
11761       Return information about the TPM device
11762
11763   Returns
11764       TPMInfo on success
11765
11766   Since
11767       1.5
11768
11769   Example
11770          -> { "execute": "query-tpm" }
11771          <- { "return":
11772               [
11773                 { "model": "tpm-tis",
11774                   "options":
11775                     { "type": "passthrough",
11776                       "data":
11777                         { "cancel-path": "/sys/class/misc/tpm0/device/cancel",
11778                           "path": "/dev/tpm0"
11779                         }
11780                     },
11781                   "id": "tpm0"
11782                 }
11783               ]
11784             }
11785
11786   If
11787       CONFIG_TPM
11788

REMOTE DESKTOP

11790   DisplayProtocol (Enum)
11791       Display protocols which support changing password options.
11792
11793   Values
11794       vnc    Not documented
11795
11796       spice  Not documented
11797
11798   Since
11799       7.0
11800
11801   SetPasswordAction (Enum)
11802       An  action  to  take on changing a password on a connection with active
11803       clients.
11804
11805   Values
11806       keep   maintain existing clients
11807
11808       fail   fail the command if clients are connected
11809
11810       disconnect
11811              disconnect existing clients
11812
11813   Since
11814       7.0
11815
11816   SetPasswordOptions (Object)
11817       Options for set_password.
11818
11819   Members
11820       protocol: DisplayProtocol
11821
11822              • 'vnc' to modify the VNC server password
11823
11824              • 'spice' to modify the Spice server password
11825
11826       password: string
11827              the new password
11828
11829       connected: SetPasswordAction (optional)
11830              How to handle existing clients when changing  the  password.  If
11831              nothing  is specified, defaults to 'keep'.  For VNC, only 'keep'
11832              is currently implemented.
11833
11834       The members of SetPasswordOptionsVnc when protocol is "vnc"
11835
11836   Since
11837       7.0
11838
11839   SetPasswordOptionsVnc (Object)
11840       Options for set_password specific to the VNC procotol.
11841
11842   Members
11843       display: string (optional)
11844              The id of the display where the password should be changed.  De‐
11845              faults to the first.
11846
11847   Since
11848       7.0
11849
11850   set_password (Command)
11851       Set the password of a remote display server.
11852
11853   Arguments
11854       The members of SetPasswordOptions
11855
11856   Returns
11857       • Nothing on success
11858
11859       • If Spice is not enabled, DeviceNotFound
11860
11861   Since
11862       0.14
11863
11864   Example
11865          -> { "execute": "set_password", "arguments": { "protocol": "vnc",
11866                                                         "password": "secret" } }
11867          <- { "return": {} }
11868
11869   ExpirePasswordOptions (Object)
11870       General options for expire_password.
11871
11872   Members
11873       protocol: DisplayProtocol
11874
11875              • 'vnc' to modify the VNC server expiration
11876
11877              • 'spice' to modify the Spice server expiration
11878
11879       time: string
11880              when to expire the password.
11881
11882              • 'now' to expire the password immediately
11883
11884              • 'never' to cancel password expiration
11885
11886              • '+INT' where INT is the number of seconds from now (integer)
11887
11888              • 'INT' where INT is the absolute time in seconds
11889
11890       The members of ExpirePasswordOptionsVnc when protocol is "vnc"
11891
11892   Notes
11893       Time is relative to the server and currently there is no way to coordi‐
11894       nate server time with client time.  It is not recommended  to  use  the
11895       absolute  time version of the time parameter unless you're sure you are
11896       on the same machine as the QEMU instance.
11897
11898   Since
11899       7.0
11900
11901   ExpirePasswordOptionsVnc (Object)
11902       Options for expire_password specific to the VNC procotol.
11903
11904   Members
11905       display: string (optional)
11906              The id of the display where the expiration  should  be  changed.
11907              Defaults to the first.
11908
11909   Since
11910       7.0
11911
11912   expire_password (Command)
11913       Expire the password of a remote display server.
11914
11915   Arguments
11916       The members of ExpirePasswordOptions
11917
11918   Returns
11919       • Nothing on success
11920
11921       • If protocol is 'spice' and Spice is not active, DeviceNotFound
11922
11923   Since
11924       0.14
11925
11926   Example
11927          -> { "execute": "expire_password", "arguments": { "protocol": "vnc",
11928                                                            "time": "+60" } }
11929          <- { "return": {} }
11930
11931   screendump (Command)
11932       Write a PPM of the VGA screen to a file.
11933
11934   Arguments
11935       filename: string
11936              the path of a new PPM file to store the image
11937
11938       device: string (optional)
11939              ID  of the display device that should be dumped. If this parame‐
11940              ter is missing, the primary display will be used. (Since 2.12)
11941
11942       head: int (optional)
11943              head to use in case the device supports multiple heads. If  this
11944              parameter  is  missing, head #0 will be used. Also note that the
11945              head can only be specified in conjunction with  the  device  ID.
11946              (Since 2.12)
11947
11948   Returns
11949       Nothing on success
11950
11951   Since
11952       0.14
11953
11954   Example
11955          -> { "execute": "screendump",
11956               "arguments": { "filename": "/tmp/image" } }
11957          <- { "return": {} }
11958
11959   Spice
11960   SpiceBasicInfo (Object)
11961       The basic information for SPICE network connection
11962
11963   Members
11964       host: string
11965              IP address
11966
11967       port: string
11968              port number
11969
11970       family: NetworkAddressFamily
11971              address family
11972
11973   Since
11974       2.1
11975
11976   If
11977       CONFIG_SPICE
11978
11979   SpiceServerInfo (Object)
11980       Information about a SPICE server
11981
11982   Members
11983       auth: string (optional)
11984              authentication method
11985
11986       The members of SpiceBasicInfo
11987
11988   Since
11989       2.1
11990
11991   If
11992       CONFIG_SPICE
11993
11994   SpiceChannel (Object)
11995       Information about a SPICE client channel.
11996
11997   Members
11998       connection-id: int
11999              SPICE  connection  id number.  All channels with the same id be‐
12000              long to the same SPICE session.
12001
12002       channel-type: int
12003              SPICE channel type number.  "1" is  the  main  control  channel,
12004              filter for this one if you want to track spice sessions only
12005
12006       channel-id: int
12007              SPICE  channel  ID number.  Usually "0", might be different when
12008              multiple channels of the same type exist, such as multiple  dis‐
12009              play channels in a multihead setup
12010
12011       tls: boolean
12012              true if the channel is encrypted, false otherwise.
12013
12014       The members of SpiceBasicInfo
12015
12016   Since
12017       0.14
12018
12019   If
12020       CONFIG_SPICE
12021
12022   SpiceQueryMouseMode (Enum)
12023       An enumeration of Spice mouse states.
12024
12025   Values
12026       client Mouse cursor position is determined by the client.
12027
12028       server Mouse cursor position is determined by the server.
12029
12030       unknown
12031              No  information  is available about mouse mode used by the spice
12032              server.
12033
12034   Note
12035       spice/enums.h has a SpiceMouseMode already, hence the name.
12036
12037   Since
12038       1.1
12039
12040   If
12041       CONFIG_SPICE
12042
12043   SpiceInfo (Object)
12044       Information about the SPICE session.
12045
12046   Members
12047       enabled: boolean
12048              true if the SPICE server is enabled, false otherwise
12049
12050       migrated: boolean
12051              true if the last guest migration completed and  spice  migration
12052              had completed as well. false otherwise. (since 1.4)
12053
12054       host: string (optional)
12055              The  hostname the SPICE server is bound to.  This depends on the
12056              name resolution on the host and may be an IP address.
12057
12058       port: int (optional)
12059              The SPICE server's port number.
12060
12061       compiled-version: string (optional)
12062              SPICE server version.
12063
12064       tls-port: int (optional)
12065              The SPICE server's TLS port number.
12066
12067       auth: string (optional)
12068              the current authentication type used by the server
12069
12070              • 'none'  if no authentication is being used
12071
12072              • 'spice' uses SASL or direct TLS authentication,  depending  on
12073                command line options
12074
12075       mouse-mode: SpiceQueryMouseMode
12076              The  mode  in which the mouse cursor is displayed currently. Can
12077              be determined by the client or the server, or unknown  if  spice
12078              server doesn't provide this information. (since: 1.1)
12079
12080       channels: array of SpiceChannel (optional)
12081              a list of SpiceChannel for each active spice channel
12082
12083   Since
12084       0.14
12085
12086   If
12087       CONFIG_SPICE
12088
12089   query-spice (Command)
12090       Returns information about the current SPICE server
12091
12092   Returns
12093       SpiceInfo
12094
12095   Since
12096       0.14
12097
12098   Example
12099          -> { "execute": "query-spice" }
12100          <- { "return": {
12101                   "enabled": true,
12102                   "auth": "spice",
12103                   "port": 5920,
12104                   "migrated":false,
12105                   "tls-port": 5921,
12106                   "host": "0.0.0.0",
12107                   "mouse-mode":"client",
12108                   "channels": [
12109                      {
12110                         "port": "54924",
12111                         "family": "ipv4",
12112                         "channel-type": 1,
12113                         "connection-id": 1804289383,
12114                         "host": "127.0.0.1",
12115                         "channel-id": 0,
12116                         "tls": true
12117                      },
12118                      {
12119                         "port": "36710",
12120                         "family": "ipv4",
12121                         "channel-type": 4,
12122                         "connection-id": 1804289383,
12123                         "host": "127.0.0.1",
12124                         "channel-id": 0,
12125                         "tls": false
12126                      },
12127                      [ ... more channels follow ... ]
12128                   ]
12129                }
12130             }
12131
12132   If
12133       CONFIG_SPICE
12134
12135   SPICE_CONNECTED (Event)
12136       Emitted when a SPICE client establishes a connection
12137
12138   Arguments
12139       server: SpiceBasicInfo
12140              server information
12141
12142       client: SpiceBasicInfo
12143              client information
12144
12145   Since
12146       0.14
12147
12148   Example
12149          <- { "timestamp": {"seconds": 1290688046, "microseconds": 388707},
12150               "event": "SPICE_CONNECTED",
12151               "data": {
12152                 "server": { "port": "5920", "family": "ipv4", "host": "127.0.0.1"},
12153                 "client": {"port": "52873", "family": "ipv4", "host": "127.0.0.1"}
12154             }}
12155
12156   If
12157       CONFIG_SPICE
12158
12159   SPICE_INITIALIZED (Event)
12160       Emitted after initial handshake and authentication takes place (if any)
12161       and the SPICE channel is up and running
12162
12163   Arguments
12164       server: SpiceServerInfo
12165              server information
12166
12167       client: SpiceChannel
12168              client information
12169
12170   Since
12171       0.14
12172
12173   Example
12174          <- { "timestamp": {"seconds": 1290688046, "microseconds": 417172},
12175               "event": "SPICE_INITIALIZED",
12176               "data": {"server": {"auth": "spice", "port": "5921",
12177                                   "family": "ipv4", "host": "127.0.0.1"},
12178                        "client": {"port": "49004", "family": "ipv4", "channel-type": 3,
12179                                   "connection-id": 1804289383, "host": "127.0.0.1",
12180                                   "channel-id": 0, "tls": true}
12181             }}
12182
12183   If
12184       CONFIG_SPICE
12185
12186   SPICE_DISCONNECTED (Event)
12187       Emitted when the SPICE connection is closed
12188
12189   Arguments
12190       server: SpiceBasicInfo
12191              server information
12192
12193       client: SpiceBasicInfo
12194              client information
12195
12196   Since
12197       0.14
12198
12199   Example
12200          <- { "timestamp": {"seconds": 1290688046, "microseconds": 388707},
12201               "event": "SPICE_DISCONNECTED",
12202               "data": {
12203                 "server": { "port": "5920", "family": "ipv4", "host": "127.0.0.1"},
12204                 "client": {"port": "52873", "family": "ipv4", "host": "127.0.0.1"}
12205             }}
12206
12207   If
12208       CONFIG_SPICE
12209
12210   SPICE_MIGRATE_COMPLETED (Event)
12211       Emitted when SPICE migration has completed
12212
12213   Since
12214       1.3
12215
12216   Example
12217          <- { "timestamp": {"seconds": 1290688046, "microseconds": 417172},
12218               "event": "SPICE_MIGRATE_COMPLETED" }
12219
12220   If
12221       CONFIG_SPICE
12222
12223   VNC
12224   VncBasicInfo (Object)
12225       The basic information for vnc network connection
12226
12227   Members
12228       host: string
12229              IP address
12230
12231       service: string
12232              The service name of the vnc port. This may depend  on  the  host
12233              system's service database so symbolic names should not be relied
12234              on.
12235
12236       family: NetworkAddressFamily
12237              address family
12238
12239       websocket: boolean
12240              true in case the socket is a websocket (since 2.3).
12241
12242   Since
12243       2.1
12244
12245   If
12246       CONFIG_VNC
12247
12248   VncServerInfo (Object)
12249       The network connection information for server
12250
12251   Members
12252       auth: string (optional)
12253              authentication method used for  the  plain  (non-websocket)  VNC
12254              server
12255
12256       The members of VncBasicInfo
12257
12258   Since
12259       2.1
12260
12261   If
12262       CONFIG_VNC
12263
12264   VncClientInfo (Object)
12265       Information about a connected VNC client.
12266
12267   Members
12268       x509_dname: string (optional)
12269              If  x509 authentication is in use, the Distinguished Name of the
12270              client.
12271
12272       sasl_username: string (optional)
12273              If SASL authentication is in use, the SASL username used for au‐
12274              thentication.
12275
12276       The members of VncBasicInfo
12277
12278   Since
12279       0.14
12280
12281   If
12282       CONFIG_VNC
12283
12284   VncInfo (Object)
12285       Information about the VNC session.
12286
12287   Members
12288       enabled: boolean
12289              true if the VNC server is enabled, false otherwise
12290
12291       host: string (optional)
12292              The  hostname  the  VNC server is bound to.  This depends on the
12293              name resolution on the host and may be an IP address.
12294
12295       family: NetworkAddressFamily (optional)
12296
12297              • 'ipv6' if the host is listening for IPv6 connections
12298
12299              • 'ipv4' if the host is listening for IPv4 connections
12300
12301              • 'unix' if the host is listening on a unix domain socket
12302
12303              • 'unknown' otherwise
12304
12305       service: string (optional)
12306              The service name of the server's port.  This may depends on  the
12307              host  system's  service database so symbolic names should not be
12308              relied on.
12309
12310       auth: string (optional)
12311              the current authentication type used by the server
12312
12313              • 'none' if no authentication is being used
12314
12315              • 'vnc' if VNC authentication is being used
12316
12317              • 'vencrypt+plain' if VEncrypt is used with plain text authenti‐
12318                cation
12319
12320              • 'vencrypt+tls+none'  if  VEncrypt  is used with TLS and no au‐
12321                thentication
12322
12323              • 'vencrypt+tls+vnc' if VEncrypt is used with TLS  and  VNC  au‐
12324                thentication
12325
12326              • 'vencrypt+tls+plain'  if  VEncrypt  is used with TLS and plain
12327                text auth
12328
12329              • 'vencrypt+x509+none' if VEncrypt is used with x509 and no auth
12330
12331              • 'vencrypt+x509+vnc' if VEncrypt is used with x509 and VNC auth
12332
12333              • 'vencrypt+x509+plain' if VEncrypt is used with x509 and  plain
12334                text auth
12335
12336              • 'vencrypt+tls+sasl' if VEncrypt is used with TLS and SASL auth
12337
12338              • 'vencrypt+x509+sasl'  if  VEncrypt  is used with x509 and SASL
12339                auth
12340
12341       clients: array of VncClientInfo (optional)
12342              a list of VncClientInfo of all currently connected clients
12343
12344   Since
12345       0.14
12346
12347   If
12348       CONFIG_VNC
12349
12350   VncPrimaryAuth (Enum)
12351       vnc primary authentication method.
12352
12353   Values
12354       none   Not documented
12355
12356       vnc    Not documented
12357
12358       ra2    Not documented
12359
12360       ra2ne  Not documented
12361
12362       tight  Not documented
12363
12364       ultra  Not documented
12365
12366       tls    Not documented
12367
12368       vencrypt
12369              Not documented
12370
12371       sasl   Not documented
12372
12373   Since
12374       2.3
12375
12376   If
12377       CONFIG_VNC
12378
12379   VncVencryptSubAuth (Enum)
12380       vnc sub authentication method with vencrypt.
12381
12382   Values
12383       plain  Not documented
12384
12385       tls-none
12386              Not documented
12387
12388       x509-none
12389              Not documented
12390
12391       tls-vnc
12392              Not documented
12393
12394       x509-vnc
12395              Not documented
12396
12397       tls-plain
12398              Not documented
12399
12400       x509-plain
12401              Not documented
12402
12403       tls-sasl
12404              Not documented
12405
12406       x509-sasl
12407              Not documented
12408
12409   Since
12410       2.3
12411
12412   If
12413       CONFIG_VNC
12414
12415   VncServerInfo2 (Object)
12416       The network connection information for server
12417
12418   Members
12419       auth: VncPrimaryAuth
12420              The current authentication type used by the servers
12421
12422       vencrypt: VncVencryptSubAuth (optional)
12423              The vencrypt sub authentication type used by the  servers,  only
12424              specified in case auth == vencrypt.
12425
12426       The members of VncBasicInfo
12427
12428   Since
12429       2.9
12430
12431   If
12432       CONFIG_VNC
12433
12434   VncInfo2 (Object)
12435       Information about a vnc server
12436
12437   Members
12438       id: string
12439              vnc server name.
12440
12441       server: array of VncServerInfo2
12442              A  list  of VncBasincInfo describing all listening sockets.  The
12443              list can be empty (in case the vnc server is disabled).  It also
12444              may  have  multiple  entries:  normal + websocket, possibly also
12445              ipv4 + ipv6 in the future.
12446
12447       clients: array of VncClientInfo
12448              A list of VncClientInfo of all currently connected clients.  The
12449              list can be empty, for obvious reasons.
12450
12451       auth: VncPrimaryAuth
12452              The  current  authentication  type  used  by  the non-websockets
12453              servers
12454
12455       vencrypt: VncVencryptSubAuth (optional)
12456              The vencrypt authentication type used by the servers, only spec‐
12457              ified in case auth == vencrypt.
12458
12459       display: string (optional)
12460              The display device the vnc server is linked to.
12461
12462   Since
12463       2.3
12464
12465   If
12466       CONFIG_VNC
12467
12468   query-vnc (Command)
12469       Returns information about the current VNC server
12470
12471   Returns
12472       VncInfo
12473
12474   Since
12475       0.14
12476
12477   Example
12478          -> { "execute": "query-vnc" }
12479          <- { "return": {
12480                   "enabled":true,
12481                   "host":"0.0.0.0",
12482                   "service":"50402",
12483                   "auth":"vnc",
12484                   "family":"ipv4",
12485                   "clients":[
12486                      {
12487                         "host":"127.0.0.1",
12488                         "service":"50401",
12489                         "family":"ipv4"
12490                         "websocket":false,
12491                      }
12492                   ]
12493                }
12494             }
12495
12496   If
12497       CONFIG_VNC
12498
12499   query-vnc-servers (Command)
12500       Returns a list of vnc servers.  The list can be empty.
12501
12502   Returns
12503       a list of VncInfo2
12504
12505   Since
12506       2.3
12507
12508   If
12509       CONFIG_VNC
12510
12511   change-vnc-password (Command)
12512       Change the VNC server password.
12513
12514   Arguments
12515       password: string
12516              the new password to use with VNC authentication
12517
12518   Since
12519       1.1
12520
12521   Notes
12522       An  empty  password  in this command will set the password to the empty
12523       string.  Existing clients are unaffected by executing this command.
12524
12525   If
12526       CONFIG_VNC
12527
12528   VNC_CONNECTED (Event)
12529       Emitted when a VNC client establishes a connection
12530
12531   Arguments
12532       server: VncServerInfo
12533              server information
12534
12535       client: VncBasicInfo
12536              client information
12537
12538   Note
12539       This event is emitted before any authentication takes place,  thus  the
12540       authentication ID is not provided
12541
12542   Since
12543       0.13
12544
12545   Example
12546          <- { "event": "VNC_CONNECTED",
12547               "data": {
12548                     "server": { "auth": "sasl", "family": "ipv4", "websocket": false,
12549                                 "service": "5901", "host": "0.0.0.0" },
12550                     "client": { "family": "ipv4", "service": "58425",
12551                                 "host": "127.0.0.1", "websocket": false } },
12552               "timestamp": { "seconds": 1262976601, "microseconds": 975795 } }
12553
12554   If
12555       CONFIG_VNC
12556
12557   VNC_INITIALIZED (Event)
12558       Emitted  after  authentication takes place (if any) and the VNC session
12559       is made active
12560
12561   Arguments
12562       server: VncServerInfo
12563              server information
12564
12565       client: VncClientInfo
12566              client information
12567
12568   Since
12569       0.13
12570
12571   Example
12572          <-  { "event": "VNC_INITIALIZED",
12573                "data": {
12574                     "server": { "auth": "sasl", "family": "ipv4", "websocket": false,
12575                                 "service": "5901", "host": "0.0.0.0"},
12576                     "client": { "family": "ipv4", "service": "46089", "websocket": false,
12577                                 "host": "127.0.0.1", "sasl_username": "luiz" } },
12578                "timestamp": { "seconds": 1263475302, "microseconds": 150772 } }
12579
12580   If
12581       CONFIG_VNC
12582
12583   VNC_DISCONNECTED (Event)
12584       Emitted when the connection is closed
12585
12586   Arguments
12587       server: VncServerInfo
12588              server information
12589
12590       client: VncClientInfo
12591              client information
12592
12593   Since
12594       0.13
12595
12596   Example
12597          <- { "event": "VNC_DISCONNECTED",
12598               "data": {
12599                     "server": { "auth": "sasl", "family": "ipv4", "websocket": false,
12600                                 "service": "5901", "host": "0.0.0.0" },
12601                     "client": { "family": "ipv4", "service": "58425", "websocket": false,
12602                                 "host": "127.0.0.1", "sasl_username": "luiz" } },
12603               "timestamp": { "seconds": 1262976601, "microseconds": 975795 } }
12604
12605   If
12606       CONFIG_VNC
12607

INPUT

12609   MouseInfo (Object)
12610       Information about a mouse device.
12611
12612   Members
12613       name: string
12614              the name of the mouse device
12615
12616       index: int
12617              the index of the mouse device
12618
12619       current: boolean
12620              true if this device is currently receiving mouse events
12621
12622       absolute: boolean
12623              true if this device supports absolute coordinates as input
12624
12625   Since
12626       0.14
12627
12628   query-mice (Command)
12629       Returns information about each active mouse device
12630
12631   Returns
12632       a list of MouseInfo for each device
12633
12634   Since
12635       0.14
12636
12637   Example
12638          -> { "execute": "query-mice" }
12639          <- { "return": [
12640                   {
12641                      "name":"QEMU Microsoft Mouse",
12642                      "index":0,
12643                      "current":false,
12644                      "absolute":false
12645                   },
12646                   {
12647                      "name":"QEMU PS/2 Mouse",
12648                      "index":1,
12649                      "current":true,
12650                      "absolute":true
12651                   }
12652                ]
12653             }
12654
12655   QKeyCode (Enum)
12656       An enumeration of key name.
12657
12658       This is used by the send-key command.
12659
12660   Values
12661       unmapped
12662              since 2.0
12663
12664       pause  since 2.0
12665
12666       ro     since 2.4
12667
12668       kp_comma
12669              since 2.4
12670
12671       kp_equals
12672              since 2.6
12673
12674       power  since 2.6
12675
12676       hiragana
12677              since 2.9
12678
12679       henkan since 2.9
12680
12681       yen    since 2.9
12682
12683       sleep  since 2.10
12684
12685       wake   since 2.10
12686
12687       audionext
12688              since 2.10
12689
12690       audioprev
12691              since 2.10
12692
12693       audiostop
12694              since 2.10
12695
12696       audioplay
12697              since 2.10
12698
12699       audiomute
12700              since 2.10
12701
12702       volumeup
12703              since 2.10
12704
12705       volumedown
12706              since 2.10
12707
12708       mediaselect
12709              since 2.10
12710
12711       mail   since 2.10
12712
12713       calculator
12714              since 2.10
12715
12716       computer
12717              since 2.10
12718
12719       ac_home
12720              since 2.10
12721
12722       ac_back
12723              since 2.10
12724
12725       ac_forward
12726              since 2.10
12727
12728       ac_refresh
12729              since 2.10
12730
12731       ac_bookmarks
12732              since 2.10
12733
12734       muhenkan
12735              since 2.12
12736
12737       katakanahiragana
12738              since 2.12
12739
12740       lang1  since 6.1
12741
12742       lang2  since 6.1
12743
12744       shift  Not documented
12745
12746       shift_r
12747              Not documented
12748
12749       alt    Not documented
12750
12751       alt_r  Not documented
12752
12753       ctrl   Not documented
12754
12755       ctrl_r Not documented
12756
12757       menu   Not documented
12758
12759       esc    Not documented
12760
12761       1      Not documented
12762
12763       2      Not documented
12764
12765       3      Not documented
12766
12767       4      Not documented
12768
12769       5      Not documented
12770
12771       6      Not documented
12772
12773       7      Not documented
12774
12775       8      Not documented
12776
12777       9      Not documented
12778
12779       0      Not documented
12780
12781       minus  Not documented
12782
12783       equal  Not documented
12784
12785       backspace
12786              Not documented
12787
12788       tab    Not documented
12789
12790       q      Not documented
12791
12792       w      Not documented
12793
12794       e      Not documented
12795
12796       r      Not documented
12797
12798       t      Not documented
12799
12800       y      Not documented
12801
12802       u      Not documented
12803
12804       i      Not documented
12805
12806       o      Not documented
12807
12808       p      Not documented
12809
12810       bracket_left
12811              Not documented
12812
12813       bracket_right
12814              Not documented
12815
12816       ret    Not documented
12817
12818       a      Not documented
12819
12820       s      Not documented
12821
12822       d      Not documented
12823
12824       f      Not documented
12825
12826       g      Not documented
12827
12828       h      Not documented
12829
12830       j      Not documented
12831
12832       k      Not documented
12833
12834       l      Not documented
12835
12836       semicolon
12837              Not documented
12838
12839       apostrophe
12840              Not documented
12841
12842       grave_accent
12843              Not documented
12844
12845       backslash
12846              Not documented
12847
12848       z      Not documented
12849
12850       x      Not documented
12851
12852       c      Not documented
12853
12854       v      Not documented
12855
12856       b      Not documented
12857
12858       n      Not documented
12859
12860       m      Not documented
12861
12862       comma  Not documented
12863
12864       dot    Not documented
12865
12866       slash  Not documented
12867
12868       asterisk
12869              Not documented
12870
12871       spc    Not documented
12872
12873       caps_lock
12874              Not documented
12875
12876       f1     Not documented
12877
12878       f2     Not documented
12879
12880       f3     Not documented
12881
12882       f4     Not documented
12883
12884       f5     Not documented
12885
12886       f6     Not documented
12887
12888       f7     Not documented
12889
12890       f8     Not documented
12891
12892       f9     Not documented
12893
12894       f10    Not documented
12895
12896       num_lock
12897              Not documented
12898
12899       scroll_lock
12900              Not documented
12901
12902       kp_divide
12903              Not documented
12904
12905       kp_multiply
12906              Not documented
12907
12908       kp_subtract
12909              Not documented
12910
12911       kp_add Not documented
12912
12913       kp_enter
12914              Not documented
12915
12916       kp_decimal
12917              Not documented
12918
12919       sysrq  Not documented
12920
12921       kp_0   Not documented
12922
12923       kp_1   Not documented
12924
12925       kp_2   Not documented
12926
12927       kp_3   Not documented
12928
12929       kp_4   Not documented
12930
12931       kp_5   Not documented
12932
12933       kp_6   Not documented
12934
12935       kp_7   Not documented
12936
12937       kp_8   Not documented
12938
12939       kp_9   Not documented
12940
12941       less   Not documented
12942
12943       f11    Not documented
12944
12945       f12    Not documented
12946
12947       print  Not documented
12948
12949       home   Not documented
12950
12951       pgup   Not documented
12952
12953       pgdn   Not documented
12954
12955       end    Not documented
12956
12957       left   Not documented
12958
12959       up     Not documented
12960
12961       down   Not documented
12962
12963       right  Not documented
12964
12965       insert Not documented
12966
12967       delete Not documented
12968
12969       stop   Not documented
12970
12971       again  Not documented
12972
12973       props  Not documented
12974
12975       undo   Not documented
12976
12977       front  Not documented
12978
12979       copy   Not documented
12980
12981       open   Not documented
12982
12983       paste  Not documented
12984
12985       find   Not documented
12986
12987       cut    Not documented
12988
12989       lf     Not documented
12990
12991       help   Not documented
12992
12993       meta_l Not documented
12994
12995       meta_r Not documented
12996
12997       compose
12998              Not documented
12999       'sysrq' was mistakenly added to hack  around  the  fact  that  the  ps2
13000       driver  was not generating correct scancodes sequences when 'alt+print'
13001       was pressed. This flaw is now fixed and the 'sysrq' key serves no  fur‐
13002       ther  purpose. Any further use of 'sysrq' will be transparently changed
13003       to 'print', so they are effectively synonyms.
13004
13005   Since
13006       1.3
13007
13008   KeyValueKind (Enum)
13009   Values
13010       number Not documented
13011
13012       qcode  Not documented
13013
13014   Since
13015       1.3
13016
13017   IntWrapper (Object)
13018   Members
13019       data: int
13020              Not documented
13021
13022   Since
13023       1.3
13024
13025   QKeyCodeWrapper (Object)
13026   Members
13027       data: QKeyCode
13028              Not documented
13029
13030   Since
13031       1.3
13032
13033   KeyValue (Object)
13034       Represents a keyboard key.
13035
13036   Members
13037       type: KeyValueKind
13038              Not documented
13039
13040       The members of IntWrapper when type is "number"
13041
13042       The members of QKeyCodeWrapper when type is "qcode"
13043
13044   Since
13045       1.3
13046
13047   send-key (Command)
13048       Send keys to guest.
13049
13050   Arguments
13051       keys: array of KeyValue
13052              An array of KeyValue elements. All KeyValues in this  array  are
13053              simultaneously  sent  to  the  guest. A KeyValue.number value is
13054              sent directly to the guest, while KeyValue.qcode must be a valid
13055              QKeyCode value
13056
13057       hold-time: int (optional)
13058              time to delay key up events, milliseconds. Defaults to 100
13059
13060   Returns
13061       • Nothing on success
13062
13063       • If key is unknown or redundant, InvalidParameter
13064
13065   Since
13066       1.3
13067
13068   Example
13069          -> { "execute": "send-key",
13070               "arguments": { "keys": [ { "type": "qcode", "data": "ctrl" },
13071                                        { "type": "qcode", "data": "alt" },
13072                                        { "type": "qcode", "data": "delete" } ] } }
13073          <- { "return": {} }
13074
13075   InputButton (Enum)
13076       Button of a pointer input device (mouse, tablet).
13077
13078   Values
13079       side   front side button of a 5-button mouse (since 2.9)
13080
13081       extra  rear side button of a 5-button mouse (since 2.9)
13082
13083       left   Not documented
13084
13085       middle Not documented
13086
13087       right  Not documented
13088
13089       wheel-up
13090              Not documented
13091
13092       wheel-down
13093              Not documented
13094
13095       wheel-left
13096              Not documented
13097
13098       wheel-right
13099              Not documented
13100
13101   Since
13102       2.0
13103
13104   InputAxis (Enum)
13105       Position axis of a pointer input device (mouse, tablet).
13106
13107   Values
13108       x      Not documented
13109
13110       y      Not documented
13111
13112   Since
13113       2.0
13114
13115   InputKeyEvent (Object)
13116       Keyboard input event.
13117
13118   Members
13119       key: KeyValue
13120              Which key this event is for.
13121
13122       down: boolean
13123              True for key-down and false for key-up events.
13124
13125   Since
13126       2.0
13127
13128   InputBtnEvent (Object)
13129       Pointer button input event.
13130
13131   Members
13132       button: InputButton
13133              Which button this event is for.
13134
13135       down: boolean
13136              True for key-down and false for key-up events.
13137
13138   Since
13139       2.0
13140
13141   InputMoveEvent (Object)
13142       Pointer motion input event.
13143
13144   Members
13145       axis: InputAxis
13146              Which axis is referenced by value.
13147
13148       value: int
13149              Pointer position.  For absolute coordinates the valid range is 0
13150              -> 0x7ffff
13151
13152   Since
13153       2.0
13154
13155   InputEventKind (Enum)
13156   Values
13157       key    Not documented
13158
13159       btn    Not documented
13160
13161       rel    Not documented
13162
13163       abs    Not documented
13164
13165   Since
13166       2.0
13167
13168   InputKeyEventWrapper (Object)
13169   Members
13170       data: InputKeyEvent
13171              Not documented
13172
13173   Since
13174       2.0
13175
13176   InputBtnEventWrapper (Object)
13177   Members
13178       data: InputBtnEvent
13179              Not documented
13180
13181   Since
13182       2.0
13183
13184   InputMoveEventWrapper (Object)
13185   Members
13186       data: InputMoveEvent
13187              Not documented
13188
13189   Since
13190       2.0
13191
13192   InputEvent (Object)
13193       Input event union.
13194
13195   Members
13196       type: InputEventKind
13197              the input type, one of:
13198
13199              • 'key': Input event of Keyboard
13200
13201              • 'btn': Input event of pointer buttons
13202
13203              • 'rel': Input event of relative pointer motion
13204
13205              • 'abs': Input event of absolute pointer motion
13206
13207       The members of InputKeyEventWrapper when type is "key"
13208
13209       The members of InputBtnEventWrapper when type is "btn"
13210
13211       The members of InputMoveEventWrapper when type is "rel"
13212
13213       The members of InputMoveEventWrapper when type is "abs"
13214
13215   Since
13216       2.0
13217
13218   input-send-event (Command)
13219       Send input event(s) to guest.
13220
13221       The device and head parameters can be used to send the input  event  to
13222       specific  input  devices in case (a) multiple input devices of the same
13223       kind are added to the virtual machine and (b) you have configured input
13224       routing  (see docs/multiseat.txt) for those input devices.  The parame‐
13225       ters work exactly like the device and head properties of input devices.
13226       If  device  is  missing, only devices that have no input routing config
13227       are admissible.  If device is specified, both input  devices  with  and
13228       without  input  routing  config  are admissible, but devices with input
13229       routing config take precedence.
13230
13231   Arguments
13232       device: string (optional)
13233              display device to send event(s) to.
13234
13235       head: int (optional)
13236              head to send event(s) to, in case the  display  device  supports
13237              multiple scanouts.
13238
13239       events: array of InputEvent
13240              List of InputEvent union.
13241
13242   Returns
13243       Nothing on success.
13244
13245   Since
13246       2.6
13247
13248   Note
13249       The  consoles  are visible in the qom tree, under /backend/console[$in‐
13250       dex]. They have a device link and head property, so it is  possible  to
13251       map which console belongs to which device and display.
13252
13253   Example
13254          1. Press left mouse button.
13255
13256          -> { "execute": "input-send-event",
13257              "arguments": { "device": "video0",
13258                             "events": [ { "type": "btn",
13259                             "data" : { "down": true, "button": "left" } } ] } }
13260          <- { "return": {} }
13261
13262          -> { "execute": "input-send-event",
13263              "arguments": { "device": "video0",
13264                             "events": [ { "type": "btn",
13265                             "data" : { "down": false, "button": "left" } } ] } }
13266          <- { "return": {} }
13267
13268          2. Press ctrl-alt-del.
13269
13270          -> { "execute": "input-send-event",
13271               "arguments": { "events": [
13272                  { "type": "key", "data" : { "down": true,
13273                    "key": {"type": "qcode", "data": "ctrl" } } },
13274                  { "type": "key", "data" : { "down": true,
13275                    "key": {"type": "qcode", "data": "alt" } } },
13276                  { "type": "key", "data" : { "down": true,
13277                    "key": {"type": "qcode", "data": "delete" } } } ] } }
13278          <- { "return": {} }
13279
13280          3. Move mouse pointer to absolute coordinates (20000, 400).
13281
13282          -> { "execute": "input-send-event" ,
13283            "arguments": { "events": [
13284                         { "type": "abs", "data" : { "axis": "x", "value" : 20000 } },
13285                         { "type": "abs", "data" : { "axis": "y", "value" : 400 } } ] } }
13286          <- { "return": {} }
13287
13288   DisplayGTK (Object)
13289       GTK display options.
13290
13291   Members
13292       grab-on-hover: boolean (optional)
13293              Grab keyboard input on mouse hover.
13294
13295       zoom-to-fit: boolean (optional)
13296              Zoom guest display to fit into the host window.  When turned off
13297              the host window will be resized instead.  In  case  the  display
13298              device  can notify the guest on window resizes (virtio-gpu) this
13299              will default to "on", assuming the guest will resize the display
13300              to  match the window size then.  Otherwise it defaults to "off".
13301              Since 3.1
13302
13303   Since
13304       2.12
13305
13306   DisplayEGLHeadless (Object)
13307       EGL headless display options.
13308
13309   Members
13310       rendernode: string (optional)
13311              Which DRM render node should  be  used.  Default  is  the  first
13312              available node on the host.
13313
13314   Since
13315       3.1
13316
13317   DisplayDBus (Object)
13318       DBus display options.
13319
13320   Members
13321       addr: string (optional)
13322              The D-Bus bus address (default to the session bus).
13323
13324       rendernode: string (optional)
13325              Which  DRM  render  node  should  be  used. Default is the first
13326              available node on the host.
13327
13328       p2p: boolean (optional)
13329              Whether  to  use  peer-to-peer  connections  (accepted   through
13330              add_client).
13331
13332       audiodev: string (optional)
13333              Use the specified DBus audiodev to export audio.
13334
13335   Since
13336       7.0
13337
13338   DisplayGLMode (Enum)
13339       Display OpenGL mode.
13340
13341   Values
13342       off    Disable OpenGL (default).
13343
13344       on     Use  OpenGL,  pick  context type automatically.  Would better be
13345              named 'auto' but is called 'on' for backward compatibility  with
13346              bool type.
13347
13348       core   Use OpenGL with Core (desktop) Context.
13349
13350       es     Use OpenGL with ES (embedded systems) Context.
13351
13352   Since
13353       3.0
13354
13355   DisplayCurses (Object)
13356       Curses display options.
13357
13358   Members
13359       charset: string (optional)
13360              Font charset used by guest (default: CP437).
13361
13362   Since
13363       4.0
13364
13365   DisplayCocoa (Object)
13366       Cocoa display options.
13367
13368   Members
13369       left-command-key: boolean (optional)
13370              Enable/disable  forwarding  of left command key to guest. Allows
13371              command-tab window switching on the host  without  sending  this
13372              key to the guest when "off". Defaults to "on"
13373
13374       full-grab: boolean (optional)
13375              Capture  all key presses, including system combos. This requires
13376              accessibility permissions, since it performs a  global  grab  on
13377              key          events.          (default:         off)         See
13378              https://support.apple.com/en-in/guide/mac-help/mh32356/mac
13379
13380       swap-opt-cmd: boolean (optional)
13381              Swap the Option and Command keys so that their key  codes  match
13382              their  position  on non-Mac keyboards and you can use Meta/Super
13383              and Alt where you expect them. (default: off)
13384
13385   Since
13386       7.0
13387
13388   DisplayType (Enum)
13389       Display (user interface) type.
13390
13391   Values
13392       default
13393              The default user interface, selecting from the  first  available
13394              of gtk, sdl, cocoa, and vnc.
13395
13396       none   No  user interface or video output display. The guest will still
13397              see an emulated graphics card, but its output will not  be  dis‐
13398              played to the QEMU user.
13399
13400       gtk (If: CONFIG_GTK)
13401              The GTK user interface.
13402
13403       sdl (If: CONFIG_SDL)
13404              The SDL user interface.
13405
13406       egl-headless (If: CONFIG_OPENGL and CONFIG_GBM)
13407              No  user interface, offload GL operations to a local DRI device.
13408              Graphical display need to be paired with VNC  or  Spice.  (Since
13409              3.1)
13410
13411       curses (If: CONFIG_CURSES)
13412              Display  video  output  via  curses.  For graphics device models
13413              which support a text mode, QEMU can display this output using  a
13414              curses/ncurses interface. Nothing is displayed when the graphics
13415              device is in graphical mode or if the graphics device  does  not
13416              support  a  text mode. Generally only the VGA device models sup‐
13417              port text mode.
13418
13419       cocoa (If: CONFIG_COCOA)
13420              The Cocoa user interface.
13421
13422       spice-app (If: CONFIG_SPICE)
13423              Set up a Spice server and run the default associated application
13424              to  connect  to  it. The server will redirect the serial console
13425              and QEMU monitors. (Since 4.0)
13426
13427       dbus (If: CONFIG_DBUS_DISPLAY)
13428              Start a D-Bus service for the display. (Since 7.0)
13429
13430   Since
13431       2.12
13432
13433   DisplayOptions (Object)
13434       Display (user interface) options.
13435
13436   Members
13437       type: DisplayType
13438              Which DisplayType qemu should use.
13439
13440       full-screen: boolean (optional)
13441              Start user interface in fullscreen mode (default: off).
13442
13443       window-close: boolean (optional)
13444              Allow to quit qemu with window close button (default: on).
13445
13446       show-cursor: boolean (optional)
13447              Force showing the mouse cursor (default: off).  (since: 5.0)
13448
13449       gl: DisplayGLMode (optional)
13450              Enable OpenGL support (default: off).
13451
13452       The members of DisplayGTK when type is "gtk" (If: CONFIG_GTK)
13453
13454       The members of DisplayCocoa when type is "cocoa" (If: CONFIG_COCOA)
13455
13456       The members of DisplayCurses when type is "curses" (If: CONFIG_CURSES)
13457
13458       The members of DisplayEGLHeadless when type is "egl-headless" (If: CON‐
13459       FIG_OPENGL and CONFIG_GBM)
13460
13461       The  members  of  DisplayDBus when type is "dbus" (If: CONFIG_DBUS_DIS‐
13462       PLAY)
13463
13464   Since
13465       2.12
13466
13467   query-display-options (Command)
13468       Returns information about display configuration
13469
13470   Returns
13471       DisplayOptions
13472
13473   Since
13474       3.1
13475
13476   DisplayReloadType (Enum)
13477       Available DisplayReload types.
13478
13479   Values
13480       vnc    VNC display
13481
13482   Since
13483       6.0
13484
13485   DisplayReloadOptionsVNC (Object)
13486       Specify the VNC reload options.
13487
13488   Members
13489       tls-certs: boolean (optional)
13490              reload tls certs or not.
13491
13492   Since
13493       6.0
13494
13495   DisplayReloadOptions (Object)
13496       Options of the display configuration reload.
13497
13498   Members
13499       type: DisplayReloadType
13500              Specify the display type.
13501
13502       The members of DisplayReloadOptionsVNC when type is "vnc"
13503
13504   Since
13505       6.0
13506
13507   display-reload (Command)
13508       Reload display configuration.
13509
13510   Arguments
13511       The members of DisplayReloadOptions
13512
13513   Returns
13514       Nothing on success.
13515
13516   Since
13517       6.0
13518
13519   Example
13520          -> { "execute": "display-reload",
13521               "arguments": { "type": "vnc", "tls-certs": true  } }
13522          <- { "return": {} }
13523

USER AUTHORIZATION

13525   QAuthZListPolicy (Enum)
13526       The authorization policy result
13527
13528   Values
13529       deny   deny access
13530
13531       allow  allow access
13532
13533   Since
13534       4.0
13535
13536   QAuthZListFormat (Enum)
13537       The authorization policy match format
13538
13539   Values
13540       exact  an exact string match
13541
13542       glob   string with ? and * shell wildcard support
13543
13544   Since
13545       4.0
13546
13547   QAuthZListRule (Object)
13548       A single authorization rule.
13549
13550   Members
13551       match: string
13552              a string or glob to match against a user identity
13553
13554       policy: QAuthZListPolicy
13555              the result to return if match evaluates to true
13556
13557       format: QAuthZListFormat (optional)
13558              the format of the match rule (default 'exact')
13559
13560   Since
13561       4.0
13562
13563   AuthZListProperties (Object)
13564       Properties for authz-list objects.
13565
13566   Members
13567       policy: QAuthZListPolicy (optional)
13568              Default policy to apply when no rule matches (default: deny)
13569
13570       rules: array of QAuthZListRule (optional)
13571              Authorization rules based on matching user
13572
13573   Since
13574       4.0
13575
13576   AuthZListFileProperties (Object)
13577       Properties for authz-listfile objects.
13578
13579   Members
13580       filename: string
13581              File name to load the configuration from. The file must  contain
13582              valid JSON for AuthZListProperties.
13583
13584       refresh: boolean (optional)
13585              If  true,  inotify  is  used  to monitor the file, automatically
13586              reloading changes. If an error occurs during reloading, all  au‐
13587              thorizations  will  fail  until  the  file  is next successfully
13588              loaded. (default: true if the binary was built with  CONFIG_INO‐
13589              TIFY1, false otherwise)
13590
13591   Since
13592       4.0
13593
13594   AuthZPAMProperties (Object)
13595       Properties for authz-pam objects.
13596
13597   Members
13598       service: string
13599              PAM service name to use for authorization
13600
13601   Since
13602       4.0
13603
13604   AuthZSimpleProperties (Object)
13605       Properties for authz-simple objects.
13606
13607   Members
13608       identity: string
13609              Identifies  the  allowed user. Its format depends on the network
13610              service that authorization object is associated with. For autho‐
13611              rizing  based on TLS x509 certificates, the identity must be the
13612              x509 distinguished name.
13613
13614   Since
13615       4.0
13616

MIGRATION

13618   MigrationStats (Object)
13619       Detailed migration status.
13620
13621   Members
13622       transferred: int
13623              amount of bytes already transferred to the target VM
13624
13625       remaining: int
13626              amount of bytes remaining to be transferred to the target VM
13627
13628       total: int
13629              total amount of bytes involved in the migration process
13630
13631       duplicate: int
13632              number of duplicate (zero) pages (since 1.2)
13633
13634       skipped: int
13635              number of skipped zero pages (since 1.5)
13636
13637       normal: int
13638              number of normal pages (since 1.2)
13639
13640       normal-bytes: int
13641              number of normal bytes sent (since 1.2)
13642
13643       dirty-pages-rate: int
13644              number of pages dirtied by second by the guest (since 1.3)
13645
13646       mbps: number
13647              throughput in megabits/sec. (since 1.6)
13648
13649       dirty-sync-count: int
13650              number of times that dirty ram was synchronized (since 2.1)
13651
13652       postcopy-requests: int
13653              The number of page requests received from the destination (since
13654              2.7)
13655
13656       page-size: int
13657              The  number of bytes per page for the various page-based statis‐
13658              tics (since 2.10)
13659
13660       multifd-bytes: int
13661              The number of bytes sent through multifd (since 3.0)
13662
13663       pages-per-second: int
13664              the number of memory pages transferred per second (Since 4.0)
13665
13666       precopy-bytes: int
13667              The number of bytes sent in the pre-copy phase (since 7.0).
13668
13669       downtime-bytes: int
13670              The number of bytes sent while the guest is paused (since 7.0).
13671
13672       postcopy-bytes: int
13673              The number of bytes sent during the post-copy phase (since 7.0).
13674
13675   Since
13676       0.14
13677
13678   XBZRLECacheStats (Object)
13679       Detailed XBZRLE migration cache statistics
13680
13681   Members
13682       cache-size: int
13683              XBZRLE cache size
13684
13685       bytes: int
13686              amount of bytes already transferred to the target VM
13687
13688       pages: int
13689              amount of pages transferred to the target VM
13690
13691       cache-miss: int
13692              number of cache miss
13693
13694       cache-miss-rate: number
13695              rate of cache miss (since 2.1)
13696
13697       encoding-rate: number
13698              rate of encoded bytes (since 5.1)
13699
13700       overflow: int
13701              number of overflows
13702
13703   Since
13704       1.2
13705
13706   CompressionStats (Object)
13707       Detailed migration compression statistics
13708
13709   Members
13710       pages: int
13711              amount of pages compressed and transferred to the target VM
13712
13713       busy: int
13714              count of times that no free thread  was  available  to  compress
13715              data
13716
13717       busy-rate: number
13718              rate of thread busy
13719
13720       compressed-size: int
13721              amount of bytes after compression
13722
13723       compression-rate: number
13724              rate of compressed size
13725
13726   Since
13727       3.1
13728
13729   MigrationStatus (Enum)
13730       An enumeration of migration status.
13731
13732   Values
13733       none   no migration has ever happened.
13734
13735       setup  migration process has been initiated.
13736
13737       cancelling
13738              in the process of cancelling migration.
13739
13740       cancelled
13741              cancelling migration is finished.
13742
13743       active in the process of doing migration.
13744
13745       postcopy-active
13746              like active, but now in postcopy mode. (since 2.5)
13747
13748       postcopy-paused
13749              during postcopy but paused. (since 3.0)
13750
13751       postcopy-recover
13752              trying to recover from a paused postcopy. (since 3.0)
13753
13754       completed
13755              migration is finished.
13756
13757       failed some error occurred during migration process.
13758
13759       colo   VM  is  in  the  process of fault tolerance, VM can not get into
13760              this state unless colo  capability  is  enabled  for  migration.
13761              (since 2.8)
13762
13763       pre-switchover
13764              Paused before device serialisation. (since 2.11)
13765
13766       device During  device serialisation when pause-before-switchover is en‐
13767              abled (since 2.11)
13768
13769       wait-unplug
13770              wait for device unplug request by  guest  OS  to  be  completed.
13771              (since 4.2)
13772
13773   Since
13774       2.3
13775
13776   VfioStats (Object)
13777       Detailed VFIO devices migration statistics
13778
13779   Members
13780       transferred: int
13781              amount of bytes transferred to the target VM by VFIO devices
13782
13783   Since
13784       5.2
13785
13786   MigrationInfo (Object)
13787       Information about current migration process.
13788
13789   Members
13790       status: MigrationStatus (optional)
13791              MigrationStatus  describing  the  current  migration status.  If
13792              this field is not returned, no migration process has been initi‐
13793              ated
13794
13795       ram: MigrationStats (optional)
13796              MigrationStats  containing  detailed  migration status, only re‐
13797              turned if status is 'active' or 'completed'(since 1.2)
13798
13799       disk: MigrationStats (optional)
13800              MigrationStats containing detailed disk migration  status,  only
13801              returned if status is 'active' and it is a block migration
13802
13803       xbzrle-cache: XBZRLECacheStats (optional)
13804              XBZRLECacheStats  containing  detailed  XBZRLE migration statis‐
13805              tics, only returned if XBZRLE feature is on and status  is  'ac‐
13806              tive' or 'completed' (since 1.2)
13807
13808       total-time: int (optional)
13809              total amount of milliseconds since migration started.  If migra‐
13810              tion has ended, it returns the total migration time. (since 1.2)
13811
13812       downtime: int (optional)
13813              only present when migration finishes correctly total downtime in
13814              milliseconds for the guest.  (since 1.3)
13815
13816       expected-downtime: int (optional)
13817              only present while migration is active expected downtime in mil‐
13818              liseconds for the guest in last walk of the dirty bitmap. (since
13819              1.3)
13820
13821       setup-time: int (optional)
13822              amount of setup time in milliseconds before the iterations begin
13823              but after the QMP command is issued. This is designed to provide
13824              an accounting of any activities (such as RDMA pinning) which may
13825              be expensive, but do not actually occur during the iterative mi‐
13826              gration rounds themselves. (since 1.6)
13827
13828       cpu-throttle-percentage: int (optional)
13829              percentage  of  time  guest  cpus  are  being  throttled  during
13830              auto-converge. This  is  only  present  when  auto-converge  has
13831              started throttling guest cpus. (Since 2.7)
13832
13833       error-desc: string (optional)
13834              the  human  readable  error  description  string, when status is
13835              'failed'. Clients should not attempt to parse the error strings.
13836              (Since 2.7)
13837
13838       postcopy-blocktime: int (optional)
13839              total  time  when all vCPU were blocked during postcopy live mi‐
13840              gration. This is only present when the postcopy-blocktime migra‐
13841              tion capability is enabled. (Since 3.0)
13842
13843       postcopy-vcpu-blocktime: array of int (optional)
13844              list  of  the postcopy blocktime per vCPU.  This is only present
13845              when the postcopy-blocktime  migration  capability  is  enabled.
13846              (Since 3.0)
13847
13848       compression: CompressionStats (optional)
13849              migration  compression  statistics, only returned if compression
13850              feature is on and status is 'active' or 'completed' (Since 3.1)
13851
13852       socket-address: array of SocketAddress (optional)
13853              Only used for tcp, to know what the real port is (Since 4.0)
13854
13855       vfio: VfioStats (optional)
13856              VfioStats containing detailed VFIO devices migration statistics,
13857              only  returned if VFIO device is present, migration is supported
13858              by all VFIO devices and status is 'active' or 'completed' (since
13859              5.2)
13860
13861       blocked-reasons: array of string (optional)
13862              A list of reasons an outgoing migration is blocked.  Present and
13863              non-empty when migration is blocked.  (since 6.0)
13864
13865   Since
13866       0.14
13867
13868   query-migrate (Command)
13869       Returns information about current migration process.  If  migration  is
13870       active  there will be another json-object with RAM migration status and
13871       if block migration is active another one with block migration status.
13872
13873   Returns
13874       MigrationInfo
13875
13876   Since
13877       0.14
13878
13879   Example
13880          1. Before the first migration
13881
13882          -> { "execute": "query-migrate" }
13883          <- { "return": {} }
13884
13885          2. Migration is done and has succeeded
13886
13887          -> { "execute": "query-migrate" }
13888          <- { "return": {
13889                  "status": "completed",
13890                  "total-time":12345,
13891                  "setup-time":12345,
13892                  "downtime":12345,
13893                  "ram":{
13894                    "transferred":123,
13895                    "remaining":123,
13896                    "total":246,
13897                    "duplicate":123,
13898                    "normal":123,
13899                    "normal-bytes":123456,
13900                    "dirty-sync-count":15
13901                  }
13902               }
13903             }
13904
13905          3. Migration is done and has failed
13906
13907          -> { "execute": "query-migrate" }
13908          <- { "return": { "status": "failed" } }
13909
13910          4. Migration is being performed and is not a block migration:
13911
13912          -> { "execute": "query-migrate" }
13913          <- {
13914                "return":{
13915                   "status":"active",
13916                   "total-time":12345,
13917                   "setup-time":12345,
13918                   "expected-downtime":12345,
13919                   "ram":{
13920                      "transferred":123,
13921                      "remaining":123,
13922                      "total":246,
13923                      "duplicate":123,
13924                      "normal":123,
13925                      "normal-bytes":123456,
13926                      "dirty-sync-count":15
13927                   }
13928                }
13929             }
13930
13931          5. Migration is being performed and is a block migration:
13932
13933          -> { "execute": "query-migrate" }
13934          <- {
13935                "return":{
13936                   "status":"active",
13937                   "total-time":12345,
13938                   "setup-time":12345,
13939                   "expected-downtime":12345,
13940                   "ram":{
13941                      "total":1057024,
13942                      "remaining":1053304,
13943                      "transferred":3720,
13944                      "duplicate":123,
13945                      "normal":123,
13946                      "normal-bytes":123456,
13947                      "dirty-sync-count":15
13948                   },
13949                   "disk":{
13950                      "total":20971520,
13951                      "remaining":20880384,
13952                      "transferred":91136
13953                   }
13954                }
13955             }
13956
13957          6. Migration is being performed and XBZRLE is active:
13958
13959          -> { "execute": "query-migrate" }
13960          <- {
13961                "return":{
13962                   "status":"active",
13963                   "total-time":12345,
13964                   "setup-time":12345,
13965                   "expected-downtime":12345,
13966                   "ram":{
13967                      "total":1057024,
13968                      "remaining":1053304,
13969                      "transferred":3720,
13970                      "duplicate":10,
13971                      "normal":3333,
13972                      "normal-bytes":3412992,
13973                      "dirty-sync-count":15
13974                   },
13975                   "xbzrle-cache":{
13976                      "cache-size":67108864,
13977                      "bytes":20971520,
13978                      "pages":2444343,
13979                      "cache-miss":2244,
13980                      "cache-miss-rate":0.123,
13981                      "encoding-rate":80.1,
13982                      "overflow":34434
13983                   }
13984                }
13985             }
13986
13987   MigrationCapability (Enum)
13988       Migration capabilities enumeration
13989
13990   Values
13991       xbzrle Migration supports xbzrle (Xor Based Zero Run Length  Encoding).
13992              This feature allows us to minimize migration traffic for certain
13993              work loads, by sending compressed difference of the pages
13994
13995       rdma-pin-all
13996              Controls whether or  not  the  entire  VM  memory  footprint  is
13997              mlock()'d  on  demand or all at once. Refer to docs/rdma.txt for
13998              usage.  Disabled by default. (since 2.0)
13999
14000       zero-blocks
14001              During storage migration encode blocks  of  zeroes  efficiently.
14002              This  essentially saves 1MB of zeroes per block on the wire. En‐
14003              abling requires source and target VM to support this feature. To
14004              enable  it  is sufficient to enable the capability on the source
14005              VM. The feature is disabled by default. (since 1.6)
14006
14007       compress
14008              Use multiple compression threads to accelerate  live  migration.
14009              This  feature can help to reduce the migration traffic, by send‐
14010              ing compressed pages. Please note that if  compress  and  xbzrle
14011              are  both  on, compress only takes effect in the ram bulk stage,
14012              after that, it will be disabled and only  xbzrle  takes  effect,
14013              this can help to minimize migration traffic. The feature is dis‐
14014              abled by default.  (since 2.4 )
14015
14016       events generate events for each migration state change (since 2.4 )
14017
14018       auto-converge
14019              If enabled, QEMU will automatically throttle down the  guest  to
14020              speed up convergence of RAM migration. (since 1.6)
14021
14022       postcopy-ram
14023              Start  executing  on  the migration target before all of RAM has
14024              been migrated, pulling the remaining pages along as needed.  The
14025              capacity must have the same setting on both source and target or
14026              migration will not even start. NOTE: If the migration fails dur‐
14027              ing postcopy the VM will fail.  (since 2.6)
14028
14029       x-colo If enabled, migration will never end, and the state of the VM on
14030              the primary side will be migrated continuously to the VM on sec‐
14031              ondary  side,  this process is called COarse-Grain LOck Stepping
14032              (COLO) for Non-stop Service. (since 2.8)
14033
14034       release-ram
14035              if enabled, qemu will free the migrated ram pages on the  source
14036              during postcopy-ram migration. (since 2.9)
14037
14038       block  If enabled, QEMU will also migrate the contents of all block de‐
14039              vices.  Default is disabled.  A possible alternative uses mirror
14040              jobs  to  a  builtin NBD server on the destination, which offers
14041              more flexibility.  (Since 2.10)
14042
14043       return-path
14044              If enabled, migration will use the return path even for precopy.
14045              (since 2.10)
14046
14047       pause-before-switchover
14048              Pause outgoing migration before serialising device state and be‐
14049              fore disabling block IO (since 2.11)
14050
14051       multifd
14052              Use more than one fd for migration (since 4.0)
14053
14054       dirty-bitmaps
14055              If enabled, QEMU will migrate named dirty bitmaps.  (since 2.12)
14056
14057       postcopy-blocktime
14058              Calculate downtime for postcopy live migration (since 3.0)
14059
14060       late-block-activate
14061              If enabled, the destination will not activate block devices (and
14062              thus  take  locks)  immediately at the end of migration.  (since
14063              3.0)
14064
14065       x-ignore-shared
14066              If enabled, QEMU will not migrate shared memory (since 4.0)
14067
14068       validate-uuid
14069              Send the UUID of the source to allow the destination  to  ensure
14070              it is the same. (since 4.2)
14071
14072       background-snapshot
14073              If  enabled,  the  migration stream will be a snapshot of the VM
14074              exactly at the point when the migration procedure starts. The VM
14075              RAM is saved with running VM.  (since 6.0)
14076
14077   Features
14078       unstable
14079              Members x-colo and x-ignore-shared are experimental.
14080
14081   Since
14082       1.2
14083
14084   MigrationCapabilityStatus (Object)
14085       Migration capability information
14086
14087   Members
14088       capability: MigrationCapability
14089              capability enum
14090
14091       state: boolean
14092              capability state bool
14093
14094   Since
14095       1.2
14096
14097   migrate-set-capabilities (Command)
14098       Enable/Disable the following migration capabilities (like xbzrle)
14099
14100   Arguments
14101       capabilities: array of MigrationCapabilityStatus
14102              json array of capability modifications to make
14103
14104   Since
14105       1.2
14106
14107   Example
14108          -> { "execute": "migrate-set-capabilities" , "arguments":
14109               { "capabilities": [ { "capability": "xbzrle", "state": true } ] } }
14110
14111   query-migrate-capabilities (Command)
14112       Returns information about the current migration capabilities status
14113
14114   Returns
14115       MigrationCapabilitiesStatus
14116
14117   Since
14118       1.2
14119
14120   Example
14121          -> { "execute": "query-migrate-capabilities" }
14122          <- { "return": [
14123                {"state": false, "capability": "xbzrle"},
14124                {"state": false, "capability": "rdma-pin-all"},
14125                {"state": false, "capability": "auto-converge"},
14126                {"state": false, "capability": "zero-blocks"},
14127                {"state": false, "capability": "compress"},
14128                {"state": true, "capability": "events"},
14129                {"state": false, "capability": "postcopy-ram"},
14130                {"state": false, "capability": "x-colo"}
14131             ]}
14132
14133   MultiFDCompression (Enum)
14134       An enumeration of multifd compression methods.
14135
14136   Values
14137       none   no compression.
14138
14139       zlib   use zlib compression method.
14140
14141       zstd (If: CONFIG_ZSTD)
14142              use zstd compression method.
14143
14144   Since
14145       5.0
14146
14147   BitmapMigrationBitmapAliasTransform (Object)
14148   Members
14149       persistent: boolean (optional)
14150              If  present, the bitmap will be made persistent or transient de‐
14151              pending on this parameter.
14152
14153   Since
14154       6.0
14155
14156   BitmapMigrationBitmapAlias (Object)
14157   Members
14158       name: string
14159              The name of the bitmap.
14160
14161       alias: string
14162              An alias name for migration (for example the bitmap name on  the
14163              opposite site).
14164
14165       transform: BitmapMigrationBitmapAliasTransform (optional)
14166              Allows the modification of the migrated bitmap.  (since 6.0)
14167
14168   Since
14169       5.2
14170
14171   BitmapMigrationNodeAlias (Object)
14172       Maps a block node name and the bitmaps it has to aliases for dirty bit‐
14173       map migration.
14174
14175   Members
14176       node-name: string
14177              A block node name.
14178
14179       alias: string
14180              An alias block node name for migration  (for  example  the  node
14181              name on the opposite site).
14182
14183       bitmaps: array of BitmapMigrationBitmapAlias
14184              Mappings for the bitmaps on this node.
14185
14186   Since
14187       5.2
14188
14189   MigrationParameter (Enum)
14190       Migration parameters enumeration
14191
14192   Values
14193       announce-initial
14194              Initial  delay  (in  milliseconds)  before sending the first an‐
14195              nounce (Since 4.0)
14196
14197       announce-max
14198              Maximum delay (in milliseconds) between packets in the announce‐
14199              ment (Since 4.0)
14200
14201       announce-rounds
14202              Number of self-announce packets sent after migration (Since 4.0)
14203
14204       announce-step
14205              Increase  in  delay (in milliseconds) between subsequent packets
14206              in the announcement (Since 4.0)
14207
14208       compress-level
14209              Set the compression level to be used in live migration, the com‐
14210              pression  level  is an integer between 0 and 9, where 0 means no
14211              compression, 1 means the best compression  speed,  and  9  means
14212              best compression ratio which will consume more CPU.
14213
14214       compress-threads
14215              Set  compression  thread count to be used in live migration, the
14216              compression thread count is an integer between 1 and 255.
14217
14218       compress-wait-thread
14219              Controls behavior when all  compression  threads  are  currently
14220              busy.  If  true (default), wait for a free compression thread to
14221              become available; otherwise, send the page uncompressed.  (Since
14222              3.1)
14223
14224       decompress-threads
14225              Set decompression thread count to be used in live migration, the
14226              decompression thread count is an integer between 1 and 255. Usu‐
14227              ally,  decompression is at least 4 times as fast as compression,
14228              so set the decompress-threads to the number about  1/4  of  com‐
14229              press-threads is adequate.
14230
14231       throttle-trigger-threshold
14232              The ratio of bytes_dirty_period and bytes_xfer_period to trigger
14233              throttling. It is expressed as percentage.  The default value is
14234              50. (Since 5.0)
14235
14236       cpu-throttle-initial
14237              Initial  percentage of time guest cpus are throttled when migra‐
14238              tion auto-converge is activated. The default value is 20. (Since
14239              2.7)
14240
14241       cpu-throttle-increment
14242              throttle  percentage  increase  each  time auto-converge detects
14243              that migration is not making progress. The default value is  10.
14244              (Since 2.7)
14245
14246       cpu-throttle-tailslow
14247              Make  CPU  throttling  slower at tail stage At the tail stage of
14248              throttling, the Guest is very sensitive to CPU percentage  while
14249              the  cpu-throttle -increment is excessive usually at tail stage.
14250              If this parameter is true, we will compute the  ideal  CPU  per‐
14251              centage used by the Guest, which may exactly make the dirty rate
14252              match the dirty rate threshold. Then we will  choose  a  smaller
14253              throttle increment between the one specified by cpu-throttle-in‐
14254              crement and the one generated by ideal CPU  percentage.   There‐
14255              fore,  it is compatible to traditional throttling, meanwhile the
14256              throttle increment won't be excessive at tail  stage.   The  de‐
14257              fault value is false. (Since 5.1)
14258
14259       tls-creds
14260              ID  of  the 'tls-creds' object that provides credentials for es‐
14261              tablishing a TLS connection over the migration data channel.  On
14262              the  outgoing side of the migration, the credentials must be for
14263              a 'client' endpoint, while for the incoming side the credentials
14264              must  be  for  a 'server' endpoint. Setting this will enable TLS
14265              for all migrations. The default is unset, resulting in unsecured
14266              migration at the QEMU level. (Since 2.7)
14267
14268       tls-hostname
14269              hostname  of the target host for the migration. This is required
14270              when using x509 based TLS credentials and the migration URI does
14271              not  already  include  a  hostname.  For example if using fd: or
14272              exec: based migration, the hostname must be provided so that the
14273              server's x509 certificate identity can be validated. (Since 2.7)
14274
14275       tls-authz
14276              ID  of  the 'authz' object subclass that provides access control
14277              checking of the TLS x509 certificate distinguished  name.   This
14278              object  is  only  resolved at time of use, so can be deleted and
14279              recreated on the fly while the migration server is  active.   If
14280              missing, it will default to denying access (Since 4.0)
14281
14282       max-bandwidth
14283              to  set  maximum speed for migration. maximum speed in bytes per
14284              second. (Since 2.8)
14285
14286       downtime-limit
14287              set maximum tolerated downtime for migration.  maximum  downtime
14288              in milliseconds (Since 2.8)
14289
14290       x-checkpoint-delay
14291              The  delay time (in ms) between two COLO checkpoints in periodic
14292              mode. (Since 2.8)
14293
14294       block-incremental
14295              Affects how much storage is migrated when  the  block  migration
14296              capability  is  enabled.  When false, the entire storage backing
14297              chain is migrated into a flattened  image  at  the  destination;
14298              when  true, only the active qcow2 layer is migrated and the des‐
14299              tination must already have access to the same backing  chain  as
14300              was used on the source.  (since 2.10)
14301
14302       multifd-channels
14303              Number of channels used to migrate data in parallel. This is the
14304              same number that the number of sockets used for migration.   The
14305              default value is 2 (since 4.0)
14306
14307       xbzrle-cache-size
14308              cache  size  to  be  used by XBZRLE migration.  It needs to be a
14309              multiple of the target page size and a power of 2 (Since 2.11)
14310
14311       max-postcopy-bandwidth
14312              Background transfer bandwidth during postcopy.   Defaults  to  0
14313              (unlimited).  In bytes per second.  (Since 3.0)
14314
14315       max-cpu-throttle
14316              maximum cpu throttle percentage.  Defaults to 99. (Since 3.1)
14317
14318       multifd-compression
14319              Which compression method to use.  Defaults to none. (Since 5.0)
14320
14321       multifd-zlib-level
14322              Set the compression level to be used in live migration, the com‐
14323              pression level is an integer between 0 and 9, where 0  means  no
14324              compression,  1  means  the  best compression speed, and 9 means
14325              best compression ratio which will consume more CPU.  Defaults to
14326              1. (Since 5.0)
14327
14328       multifd-zstd-level
14329              Set the compression level to be used in live migration, the com‐
14330              pression level is an integer between 0 and 20, where 0 means  no
14331              compression,  1  means  the best compression speed, and 20 means
14332              best compression ratio which will consume more CPU.  Defaults to
14333              1. (Since 5.0)
14334
14335       block-bitmap-mapping
14336              Maps  block nodes and bitmaps on them to aliases for the purpose
14337              of dirty bitmap migration.  Such aliases may for example be  the
14338              corresponding  names  on the opposite site.  The mapping must be
14339              one-to-one, but not necessarily complete:  On  the  source,  un‐
14340              mapped  bitmaps  and  all  bitmaps on unmapped nodes will be ig‐
14341              nored.  On the destination, encountering an  unmapped  alias  in
14342              the  incoming  migration stream will result in a report, and all
14343              further bitmap migration data will then be discarded.  Note that
14344              the destination does not know about bitmaps it does not receive,
14345              so there is no limitation or requirement regarding the number of
14346              bitmaps  received, or how they are named, or on which nodes they
14347              are placed.  By default (when  this  parameter  has  never  been
14348              set),  bitmap  names are mapped to themselves.  Nodes are mapped
14349              to their block device name if there is one, and  to  their  node
14350              name otherwise. (Since 5.2)
14351
14352   Features
14353       unstable
14354              Member x-checkpoint-delay is experimental.
14355
14356   Since
14357       2.4
14358
14359   MigrateSetParameters (Object)
14360   Members
14361       announce-initial: int (optional)
14362              Initial  delay  (in  milliseconds)  before sending the first an‐
14363              nounce (Since 4.0)
14364
14365       announce-max: int (optional)
14366              Maximum delay (in milliseconds) between packets in the announce‐
14367              ment (Since 4.0)
14368
14369       announce-rounds: int (optional)
14370              Number of self-announce packets sent after migration (Since 4.0)
14371
14372       announce-step: int (optional)
14373              Increase  in  delay (in milliseconds) between subsequent packets
14374              in the announcement (Since 4.0)
14375
14376       compress-level: int (optional)
14377              compression level
14378
14379       compress-threads: int (optional)
14380              compression thread count
14381
14382       compress-wait-thread: boolean (optional)
14383              Controls behavior when all  compression  threads  are  currently
14384              busy.  If  true (default), wait for a free compression thread to
14385              become available; otherwise, send the page uncompressed.  (Since
14386              3.1)
14387
14388       decompress-threads: int (optional)
14389              decompression thread count
14390
14391       throttle-trigger-threshold: int (optional)
14392              The ratio of bytes_dirty_period and bytes_xfer_period to trigger
14393              throttling. It is expressed as percentage.  The default value is
14394              50. (Since 5.0)
14395
14396       cpu-throttle-initial: int (optional)
14397              Initial  percentage of time guest cpus are throttled when migra‐
14398              tion auto-converge is  activated.   The  default  value  is  20.
14399              (Since 2.7)
14400
14401       cpu-throttle-increment: int (optional)
14402              throttle  percentage  increase  each  time auto-converge detects
14403              that migration is not making progress. The default value is  10.
14404              (Since 2.7)
14405
14406       cpu-throttle-tailslow: boolean (optional)
14407              Make  CPU  throttling  slower at tail stage At the tail stage of
14408              throttling, the Guest is very sensitive to CPU percentage  while
14409              the  cpu-throttle -increment is excessive usually at tail stage.
14410              If this parameter is true, we will compute the  ideal  CPU  per‐
14411              centage used by the Guest, which may exactly make the dirty rate
14412              match the dirty rate threshold. Then we will  choose  a  smaller
14413              throttle increment between the one specified by cpu-throttle-in‐
14414              crement and the one generated by ideal CPU  percentage.   There‐
14415              fore,  it is compatible to traditional throttling, meanwhile the
14416              throttle increment won't be excessive at tail  stage.   The  de‐
14417              fault value is false. (Since 5.1)
14418
14419       tls-creds: StrOrNull (optional)
14420              ID  of  the 'tls-creds' object that provides credentials for es‐
14421              tablishing a TLS connection over the migration data channel.  On
14422              the  outgoing side of the migration, the credentials must be for
14423              a 'client' endpoint, while for the incoming side the credentials
14424              must  be  for  a  'server' endpoint. Setting this to a non-empty
14425              string enables TLS for all migrations.  An  empty  string  means
14426              that  QEMU  will  use plain text mode for migration, rather than
14427              TLS (Since 2.9) Previously (since 2.7),  this  was  reported  by
14428              omitting tls-creds instead.
14429
14430       tls-hostname: StrOrNull (optional)
14431              hostname  of the target host for the migration. This is required
14432              when using x509 based TLS credentials and the migration URI does
14433              not  already  include  a  hostname.  For example if using fd: or
14434              exec: based migration, the hostname must be provided so that the
14435              server's x509 certificate identity can be validated. (Since 2.7)
14436              An empty string means that QEMU will use the hostname associated
14437              with  the  migration  URI, if any. (Since 2.9) Previously (since
14438              2.7), this was reported by omitting tls-hostname instead.
14439
14440       max-bandwidth: int (optional)
14441              to set maximum speed for migration. maximum speed in  bytes  per
14442              second. (Since 2.8)
14443
14444       downtime-limit: int (optional)
14445              set  maximum  tolerated downtime for migration. maximum downtime
14446              in milliseconds (Since 2.8)
14447
14448       x-checkpoint-delay: int (optional)
14449              the delay time between two COLO checkpoints. (Since 2.8)
14450
14451       block-incremental: boolean (optional)
14452              Affects how much storage is migrated when  the  block  migration
14453              capability  is  enabled.  When false, the entire storage backing
14454              chain is migrated into a flattened  image  at  the  destination;
14455              when  true, only the active qcow2 layer is migrated and the des‐
14456              tination must already have access to the same backing  chain  as
14457              was used on the source.  (since 2.10)
14458
14459       multifd-channels: int (optional)
14460              Number of channels used to migrate data in parallel. This is the
14461              same number that the number of sockets used for migration.   The
14462              default value is 2 (since 4.0)
14463
14464       xbzrle-cache-size: int (optional)
14465              cache  size  to  be  used by XBZRLE migration.  It needs to be a
14466              multiple of the target page size and a power of 2 (Since 2.11)
14467
14468       max-postcopy-bandwidth: int (optional)
14469              Background transfer bandwidth during postcopy.   Defaults  to  0
14470              (unlimited).  In bytes per second.  (Since 3.0)
14471
14472       max-cpu-throttle: int (optional)
14473              maximum  cpu  throttle  percentage.   The  default  value is 99.
14474              (Since 3.1)
14475
14476       multifd-compression: MultiFDCompression (optional)
14477              Which compression method to use.  Defaults to none. (Since 5.0)
14478
14479       multifd-zlib-level: int (optional)
14480              Set the compression level to be used in live migration, the com‐
14481              pression  level  is an integer between 0 and 9, where 0 means no
14482              compression, 1 means the best compression  speed,  and  9  means
14483              best compression ratio which will consume more CPU.  Defaults to
14484              1. (Since 5.0)
14485
14486       multifd-zstd-level: int (optional)
14487              Set the compression level to be used in live migration, the com‐
14488              pression  level is an integer between 0 and 20, where 0 means no
14489              compression, 1 means the best compression speed,  and  20  means
14490              best compression ratio which will consume more CPU.  Defaults to
14491              1. (Since 5.0)
14492
14493       block-bitmap-mapping: array of BitmapMigrationNodeAlias (optional)
14494              Maps block nodes and bitmaps on them to aliases for the  purpose
14495              of  dirty bitmap migration.  Such aliases may for example be the
14496              corresponding names on the opposite site.  The mapping  must  be
14497              one-to-one,  but  not  necessarily  complete: On the source, un‐
14498              mapped bitmaps and all bitmaps on unmapped  nodes  will  be  ig‐
14499              nored.   On  the  destination, encountering an unmapped alias in
14500              the incoming migration stream will result in a report,  and  all
14501              further bitmap migration data will then be discarded.  Note that
14502              the destination does not know about bitmaps it does not receive,
14503              so there is no limitation or requirement regarding the number of
14504              bitmaps received, or how they are named, or on which nodes  they
14505              are  placed.   By  default  (when  this parameter has never been
14506              set), bitmap names are mapped to themselves.  Nodes  are  mapped
14507              to  their  block  device name if there is one, and to their node
14508              name otherwise. (Since 5.2)
14509
14510       tls-authz: StrOrNull (optional)
14511              Not documented
14512
14513   Features
14514       unstable
14515              Member x-checkpoint-delay is experimental.
14516
14517   Since
14518       2.4
14519
14520   migrate-set-parameters (Command)
14521       Set various migration parameters.
14522
14523   Arguments
14524       The members of MigrateSetParameters
14525
14526   Since
14527       2.4
14528
14529   Example
14530          -> { "execute": "migrate-set-parameters" ,
14531               "arguments": { "compress-level": 1 } }
14532
14533   MigrationParameters (Object)
14534       The optional members aren't actually optional.
14535
14536   Members
14537       announce-initial: int (optional)
14538              Initial delay (in milliseconds) before  sending  the  first  an‐
14539              nounce (Since 4.0)
14540
14541       announce-max: int (optional)
14542              Maximum delay (in milliseconds) between packets in the announce‐
14543              ment (Since 4.0)
14544
14545       announce-rounds: int (optional)
14546              Number of self-announce packets sent after migration (Since 4.0)
14547
14548       announce-step: int (optional)
14549              Increase in delay (in milliseconds) between  subsequent  packets
14550              in the announcement (Since 4.0)
14551
14552       compress-level: int (optional)
14553              compression level
14554
14555       compress-threads: int (optional)
14556              compression thread count
14557
14558       compress-wait-thread: boolean (optional)
14559              Controls  behavior  when  all  compression threads are currently
14560              busy. If true (default), wait for a free compression  thread  to
14561              become  available; otherwise, send the page uncompressed. (Since
14562              3.1)
14563
14564       decompress-threads: int (optional)
14565              decompression thread count
14566
14567       throttle-trigger-threshold: int (optional)
14568              The ratio of bytes_dirty_period and bytes_xfer_period to trigger
14569              throttling. It is expressed as percentage.  The default value is
14570              50. (Since 5.0)
14571
14572       cpu-throttle-initial: int (optional)
14573              Initial percentage of time guest cpus are throttled when  migra‐
14574              tion auto-converge is activated.  (Since 2.7)
14575
14576       cpu-throttle-increment: int (optional)
14577              throttle  percentage  increase  each  time auto-converge detects
14578              that migration is not making progress. (Since 2.7)
14579
14580       cpu-throttle-tailslow: boolean (optional)
14581              Make CPU throttling slower at tail stage At the  tail  stage  of
14582              throttling,  the Guest is very sensitive to CPU percentage while
14583              the cpu-throttle -increment is excessive usually at tail  stage.
14584              If  this  parameter  is true, we will compute the ideal CPU per‐
14585              centage used by the Guest, which may exactly make the dirty rate
14586              match  the  dirty  rate threshold. Then we will choose a smaller
14587              throttle increment between the one specified by cpu-throttle-in‐
14588              crement  and  the one generated by ideal CPU percentage.  There‐
14589              fore, it is compatible to traditional throttling, meanwhile  the
14590              throttle  increment  won't  be excessive at tail stage.  The de‐
14591              fault value is false. (Since 5.1)
14592
14593       tls-creds: string (optional)
14594              ID of the 'tls-creds' object that provides credentials  for  es‐
14595              tablishing  a TLS connection over the migration data channel. On
14596              the outgoing side of the migration, the credentials must be  for
14597              a 'client' endpoint, while for the incoming side the credentials
14598              must be for a 'server' endpoint.  An  empty  string  means  that
14599              QEMU  will  use  plain  text mode for migration, rather than TLS
14600              (Since 2.7) Note: 2.8 reports this  by  omitting  tls-creds  in‐
14601              stead.
14602
14603       tls-hostname: string (optional)
14604              hostname  of the target host for the migration. This is required
14605              when using x509 based TLS credentials and the migration URI does
14606              not  already  include  a  hostname.  For example if using fd: or
14607              exec: based migration, the hostname must be provided so that the
14608              server's x509 certificate identity can be validated. (Since 2.7)
14609              An empty string means that QEMU will use the hostname associated
14610              with  the  migration  URI, if any. (Since 2.9) Note: 2.8 reports
14611              this by omitting tls-hostname instead.
14612
14613       tls-authz: string (optional)
14614              ID of the 'authz' object subclass that provides  access  control
14615              checking  of the TLS x509 certificate distinguished name. (Since
14616              4.0)
14617
14618       max-bandwidth: int (optional)
14619              to set maximum speed for migration. maximum speed in  bytes  per
14620              second. (Since 2.8)
14621
14622       downtime-limit: int (optional)
14623              set  maximum  tolerated downtime for migration. maximum downtime
14624              in milliseconds (Since 2.8)
14625
14626       x-checkpoint-delay: int (optional)
14627              the delay time between two COLO checkpoints. (Since 2.8)
14628
14629       block-incremental: boolean (optional)
14630              Affects how much storage is migrated when  the  block  migration
14631              capability  is  enabled.  When false, the entire storage backing
14632              chain is migrated into a flattened  image  at  the  destination;
14633              when  true, only the active qcow2 layer is migrated and the des‐
14634              tination must already have access to the same backing  chain  as
14635              was used on the source.  (since 2.10)
14636
14637       multifd-channels: int (optional)
14638              Number of channels used to migrate data in parallel. This is the
14639              same number that the number of sockets used for migration.   The
14640              default value is 2 (since 4.0)
14641
14642       xbzrle-cache-size: int (optional)
14643              cache  size  to  be  used by XBZRLE migration.  It needs to be a
14644              multiple of the target page size and a power of 2 (Since 2.11)
14645
14646       max-postcopy-bandwidth: int (optional)
14647              Background transfer bandwidth during postcopy.   Defaults  to  0
14648              (unlimited).  In bytes per second.  (Since 3.0)
14649
14650       max-cpu-throttle: int (optional)
14651              maximum cpu throttle percentage.  Defaults to 99.  (Since 3.1)
14652
14653       multifd-compression: MultiFDCompression (optional)
14654              Which compression method to use.  Defaults to none. (Since 5.0)
14655
14656       multifd-zlib-level: int (optional)
14657              Set the compression level to be used in live migration, the com‐
14658              pression level is an integer between 0 and 9, where 0  means  no
14659              compression,  1  means  the  best compression speed, and 9 means
14660              best compression ratio which will consume more CPU.  Defaults to
14661              1. (Since 5.0)
14662
14663       multifd-zstd-level: int (optional)
14664              Set the compression level to be used in live migration, the com‐
14665              pression level is an integer between 0 and 20, where 0 means  no
14666              compression,  1  means  the best compression speed, and 20 means
14667              best compression ratio which will consume more CPU.  Defaults to
14668              1. (Since 5.0)
14669
14670       block-bitmap-mapping: array of BitmapMigrationNodeAlias (optional)
14671              Maps  block nodes and bitmaps on them to aliases for the purpose
14672              of dirty bitmap migration.  Such aliases may for example be  the
14673              corresponding  names  on the opposite site.  The mapping must be
14674              one-to-one, but not necessarily complete:  On  the  source,  un‐
14675              mapped  bitmaps  and  all  bitmaps on unmapped nodes will be ig‐
14676              nored.  On the destination, encountering an  unmapped  alias  in
14677              the  incoming  migration stream will result in a report, and all
14678              further bitmap migration data will then be discarded.  Note that
14679              the destination does not know about bitmaps it does not receive,
14680              so there is no limitation or requirement regarding the number of
14681              bitmaps  received, or how they are named, or on which nodes they
14682              are placed.  By default (when  this  parameter  has  never  been
14683              set),  bitmap  names are mapped to themselves.  Nodes are mapped
14684              to their block device name if there is one, and  to  their  node
14685              name otherwise. (Since 5.2)
14686
14687   Features
14688       unstable
14689              Member x-checkpoint-delay is experimental.
14690
14691   Since
14692       2.4
14693
14694   query-migrate-parameters (Command)
14695       Returns information about the current migration parameters
14696
14697   Returns
14698       MigrationParameters
14699
14700   Since
14701       2.4
14702
14703   Example
14704          -> { "execute": "query-migrate-parameters" }
14705          <- { "return": {
14706                   "decompress-threads": 2,
14707                   "cpu-throttle-increment": 10,
14708                   "compress-threads": 8,
14709                   "compress-level": 1,
14710                   "cpu-throttle-initial": 20,
14711                   "max-bandwidth": 33554432,
14712                   "downtime-limit": 300
14713                }
14714             }
14715
14716   client_migrate_info (Command)
14717       Set  migration  information  for remote display.  This makes the server
14718       ask the client to automatically reconnect using the new parameters once
14719       migration finished successfully.  Only implemented for SPICE.
14720
14721   Arguments
14722       protocol: string
14723              must be "spice"
14724
14725       hostname: string
14726              migration target hostname
14727
14728       port: int (optional)
14729              spice tcp port for plaintext channels
14730
14731       tls-port: int (optional)
14732              spice tcp port for tls-secured channels
14733
14734       cert-subject: string (optional)
14735              server certificate subject
14736
14737   Since
14738       0.14
14739
14740   Example
14741          -> { "execute": "client_migrate_info",
14742               "arguments": { "protocol": "spice",
14743                              "hostname": "virt42.lab.kraxel.org",
14744                              "port": 1234 } }
14745          <- { "return": {} }
14746
14747   migrate-start-postcopy (Command)
14748       Followup  to  a  migration  command to switch the migration to postcopy
14749       mode.  The postcopy-ram capability must be set on both source and  des‐
14750       tination before the original migration command.
14751
14752   Since
14753       2.5
14754
14755   Example
14756          -> { "execute": "migrate-start-postcopy" }
14757          <- { "return": {} }
14758
14759   MIGRATION (Event)
14760       Emitted when a migration event happens
14761
14762   Arguments
14763       status: MigrationStatus
14764              MigrationStatus describing the current migration status.
14765
14766   Since
14767       2.4
14768
14769   Example
14770          <- {"timestamp": {"seconds": 1432121972, "microseconds": 744001},
14771              "event": "MIGRATION",
14772              "data": {"status": "completed"} }
14773
14774   MIGRATION_PASS (Event)
14775       Emitted  from  the source side of a migration at the start of each pass
14776       (when it syncs the dirty bitmap)
14777
14778   Arguments
14779       pass: int
14780              An incrementing count (starting at 1 on the first pass)
14781
14782   Since
14783       2.6
14784
14785   Example
14786          { "timestamp": {"seconds": 1449669631, "microseconds": 239225},
14787            "event": "MIGRATION_PASS", "data": {"pass": 2} }
14788
14789   COLOMessage (Enum)
14790       The message transmission between Primary side and Secondary side.
14791
14792   Values
14793       checkpoint-ready
14794              Secondary VM (SVM) is ready for checkpointing
14795
14796       checkpoint-request
14797              Primary VM (PVM) tells SVM to prepare for checkpointing
14798
14799       checkpoint-reply
14800              SVM gets PVM's checkpoint request
14801
14802       vmstate-send
14803              VM's state will be sent by PVM.
14804
14805       vmstate-size
14806              The total size of VMstate.
14807
14808       vmstate-received
14809              VM's state has been received by SVM.
14810
14811       vmstate-loaded
14812              VM's state has been loaded by SVM.
14813
14814   Since
14815       2.8
14816
14817   COLOMode (Enum)
14818       The COLO current mode.
14819
14820   Values
14821       none   COLO is disabled.
14822
14823       primary
14824              COLO node in primary side.
14825
14826       secondary
14827              COLO node in slave side.
14828
14829   Since
14830       2.8
14831
14832   FailoverStatus (Enum)
14833       An enumeration of COLO failover status
14834
14835   Values
14836       none   no failover has ever happened
14837
14838       require
14839              got failover requirement but not handled
14840
14841       active in the process of doing failover
14842
14843       completed
14844              finish the process of failover
14845
14846       relaunch
14847              restart the failover process, from 'none' -> 'completed'  (Since
14848              2.9)
14849
14850   Since
14851       2.8
14852
14853   COLO_EXIT (Event)
14854       Emitted  when  VM finishes COLO mode due to some errors happening or at
14855       the request of users.
14856
14857   Arguments
14858       mode: COLOMode
14859              report COLO mode when COLO exited.
14860
14861       reason: COLOExitReason
14862              describes the reason for the COLO exit.
14863
14864   Since
14865       3.1
14866
14867   Example
14868          <- { "timestamp": {"seconds": 2032141960, "microseconds": 417172},
14869               "event": "COLO_EXIT", "data": {"mode": "primary", "reason": "request" } }
14870
14871   COLOExitReason (Enum)
14872       The reason for a COLO exit.
14873
14874   Values
14875       none   failover has never happened. This state does not  occur  in  the
14876              COLO_EXIT   event,   and  is  only  visible  in  the  result  of
14877              query-colo-status.
14878
14879       request
14880              COLO exit is due to an external request.
14881
14882       error  COLO exit is due to an internal error.
14883
14884       processing
14885              COLO is currently handling a failover (since 4.0).
14886
14887   Since
14888       3.1
14889
14890   x-colo-lost-heartbeat (Command)
14891       Tell qemu that heartbeat is lost, request it to do takeover procedures.
14892       If  this  command  is  sent to the PVM, the Primary side will exit COLO
14893       mode.  If sent to the Secondary, the Secondary side will  run  failover
14894       work, then takes over server operation to become the service VM.
14895
14896   Features
14897       unstable
14898              This command is experimental.
14899
14900   Since
14901       2.8
14902
14903   Example
14904          -> { "execute": "x-colo-lost-heartbeat" }
14905          <- { "return": {} }
14906
14907   migrate_cancel (Command)
14908       Cancel the current executing migration process.
14909
14910   Returns
14911       nothing on success
14912
14913   Notes
14914       This command succeeds even if there is no migration process running.
14915
14916   Since
14917       0.14
14918
14919   Example
14920          -> { "execute": "migrate_cancel" }
14921          <- { "return": {} }
14922
14923   migrate-continue (Command)
14924       Continue migration when it's in a paused state.
14925
14926   Arguments
14927       state: MigrationStatus
14928              The state the migration is currently expected to be in
14929
14930   Returns
14931       nothing on success
14932
14933   Since
14934       2.11
14935
14936   Example
14937          -> { "execute": "migrate-continue" , "arguments":
14938               { "state": "pre-switchover" } }
14939          <- { "return": {} }
14940
14941   migrate (Command)
14942       Migrates the current running guest to another Virtual Machine.
14943
14944   Arguments
14945       uri: string
14946              the Uniform Resource Identifier of the destination VM
14947
14948       blk: boolean (optional)
14949              do block migration (full disk copy)
14950
14951       inc: boolean (optional)
14952              incremental disk copy migration
14953
14954       detach: boolean (optional)
14955              this  argument  exists only for compatibility reasons and is ig‐
14956              nored by QEMU
14957
14958       resume: boolean (optional)
14959              resume one paused migration, default "off". (since 3.0)
14960
14961   Returns
14962       nothing on success
14963
14964   Since
14965       0.14
14966
14967   Notes
14968       1. The 'query-migrate' command should  be  used  to  check  migration's
14969          progress and final result (this information is provided by the 'sta‐
14970          tus' member)
14971
14972       2. All boolean arguments default to false
14973
14974       3. The user Monitor's "detach" argument is invalid in  QMP  and  should
14975          not be used
14976
14977   Example
14978          -> { "execute": "migrate", "arguments": { "uri": "tcp:0:4446" } }
14979          <- { "return": {} }
14980
14981   migrate-incoming (Command)
14982       Start  an incoming migration, the qemu must have been started with -in‐
14983       coming defer
14984
14985   Arguments
14986       uri: string
14987              The Uniform Resource Identifier identifying the  source  or  ad‐
14988              dress to listen on
14989
14990   Returns
14991       nothing on success
14992
14993   Since
14994       2.3
14995
14996   Notes
14997       1. It's  a  bad  idea to use a string for the uri, but it needs to stay
14998          compatible with -incoming and the format of the uri is  already  ex‐
14999          posed above libvirt.
15000
15001       2. QEMU  must be started with -incoming defer to allow migrate-incoming
15002          to be used.
15003
15004       3. The uri format is the same as for -incoming
15005
15006   Example
15007          -> { "execute": "migrate-incoming",
15008               "arguments": { "uri": "tcp::4446" } }
15009          <- { "return": {} }
15010
15011   xen-save-devices-state (Command)
15012       Save the state of all devices to file. The RAM and the block devices of
15013       the VM are not saved by this command.
15014
15015   Arguments
15016       filename: string
15017              the file to save the state of the devices to as binary data. See
15018              xen-save-devices-state.txt for a description of the binary  for‐
15019              mat.
15020
15021       live: boolean (optional)
15022              Optional argument to ask QEMU to treat this command as part of a
15023              live migration. Default to true. (since 2.11)
15024
15025   Returns
15026       Nothing on success
15027
15028   Since
15029       1.1
15030
15031   Example
15032          -> { "execute": "xen-save-devices-state",
15033               "arguments": { "filename": "/tmp/save" } }
15034          <- { "return": {} }
15035
15036   xen-set-global-dirty-log (Command)
15037       Enable or disable the global dirty log mode.
15038
15039   Arguments
15040       enable: boolean
15041              true to enable, false to disable.
15042
15043   Returns
15044       nothing
15045
15046   Since
15047       1.3
15048
15049   Example
15050          -> { "execute": "xen-set-global-dirty-log",
15051               "arguments": { "enable": true } }
15052          <- { "return": {} }
15053
15054   xen-load-devices-state (Command)
15055       Load the state of all devices from file. The RAM and the block  devices
15056       of the VM are not loaded by this command.
15057
15058   Arguments
15059       filename: string
15060              the  file  to load the state of the devices from as binary data.
15061              See xen-save-devices-state.txt for a description of  the  binary
15062              format.
15063
15064   Since
15065       2.7
15066
15067   Example
15068          -> { "execute": "xen-load-devices-state",
15069               "arguments": { "filename": "/tmp/resume" } }
15070          <- { "return": {} }
15071
15072   xen-set-replication (Command)
15073       Enable or disable replication.
15074
15075   Arguments
15076       enable: boolean
15077              true to enable, false to disable.
15078
15079       primary: boolean
15080              true for primary or false for secondary.
15081
15082       failover: boolean (optional)
15083              true  to  do failover, false to stop. but cannot be specified if
15084              'enable' is true. default value is false.
15085
15086   Returns
15087       nothing.
15088
15089   Example
15090          -> { "execute": "xen-set-replication",
15091               "arguments": {"enable": true, "primary": false} }
15092          <- { "return": {} }
15093
15094   Since
15095       2.9
15096
15097   If
15098       CONFIG_REPLICATION
15099
15100   ReplicationStatus (Object)
15101       The result format for 'query-xen-replication-status'.
15102
15103   Members
15104       error: boolean
15105              true if an error happened, false if replication is normal.
15106
15107       desc: string (optional)
15108              the human readable  error  description  string,  when  error  is
15109              'true'.
15110
15111   Since
15112       2.9
15113
15114   If
15115       CONFIG_REPLICATION
15116
15117   query-xen-replication-status (Command)
15118       Query replication status while the vm is running.
15119
15120   Returns
15121       A ReplicationResult object showing the status.
15122
15123   Example
15124          -> { "execute": "query-xen-replication-status" }
15125          <- { "return": { "error": false } }
15126
15127   Since
15128       2.9
15129
15130   If
15131       CONFIG_REPLICATION
15132
15133   xen-colo-do-checkpoint (Command)
15134       Xen uses this command to notify replication to trigger a checkpoint.
15135
15136   Returns
15137       nothing.
15138
15139   Example
15140          -> { "execute": "xen-colo-do-checkpoint" }
15141          <- { "return": {} }
15142
15143   Since
15144       2.9
15145
15146   If
15147       CONFIG_REPLICATION
15148
15149   COLOStatus (Object)
15150       The result format for 'query-colo-status'.
15151
15152   Members
15153       mode: COLOMode
15154              COLO  running  mode.  If COLO is running, this field will return
15155              'primary' or 'secondary'.
15156
15157       last-mode: COLOMode
15158              COLO last running mode. If COLO is running, this field will  re‐
15159              turn  same like mode field, after failover we can use this field
15160              to get last colo mode. (since 4.0)
15161
15162       reason: COLOExitReason
15163              describes the reason for the COLO exit.
15164
15165   Since
15166       3.1
15167
15168   query-colo-status (Command)
15169       Query COLO status while the vm is running.
15170
15171   Returns
15172       A COLOStatus object showing the status.
15173
15174   Example
15175          -> { "execute": "query-colo-status" }
15176          <- { "return": { "mode": "primary", "last-mode": "none", "reason": "request" } }
15177
15178   Since
15179       3.1
15180
15181   migrate-recover (Command)
15182       Provide a recovery migration stream URI.
15183
15184   Arguments
15185       uri: string
15186              the URI to be used for the recovery of migration stream.
15187
15188   Returns
15189       nothing.
15190
15191   Example
15192          -> { "execute": "migrate-recover",
15193               "arguments": { "uri": "tcp:192.168.1.200:12345" } }
15194          <- { "return": {} }
15195
15196   Since
15197       3.0
15198
15199   migrate-pause (Command)
15200       Pause a migration.  Currently it only supports postcopy.
15201
15202   Returns
15203       nothing.
15204
15205   Example
15206          -> { "execute": "migrate-pause" }
15207          <- { "return": {} }
15208
15209   Since
15210       3.0
15211
15212   UNPLUG_PRIMARY (Event)
15213       Emitted from source  side  of  a  migration  when  migration  state  is
15214       WAIT_UNPLUG.  Device  was  unplugged by guest operating system.  Device
15215       resources in QEMU are kept on standby to be able to re-plug it in  case
15216       of migration failure.
15217
15218   Arguments
15219       device-id: string
15220              QEMU device id of the unplugged device
15221
15222   Since
15223       4.2
15224
15225   Example
15226          <- { "event": "UNPLUG_PRIMARY",
15227               "data": { "device-id": "hostdev0" },
15228               "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
15229
15230   DirtyRateVcpu (Object)
15231       Dirty rate of vcpu.
15232
15233   Members
15234       id: int
15235              vcpu index.
15236
15237       dirty-rate: int
15238              dirty rate.
15239
15240   Since
15241       6.2
15242
15243   DirtyRateStatus (Enum)
15244       An enumeration of dirtyrate status.
15245
15246   Values
15247       unstarted
15248              the dirtyrate thread has not been started.
15249
15250       measuring
15251              the dirtyrate thread is measuring.
15252
15253       measured
15254              the dirtyrate thread has measured and results are available.
15255
15256   Since
15257       5.2
15258
15259   DirtyRateMeasureMode (Enum)
15260       An enumeration of mode of measuring dirtyrate.
15261
15262   Values
15263       page-sampling
15264              calculate dirtyrate by sampling pages.
15265
15266       dirty-ring
15267              calculate dirtyrate by dirty ring.
15268
15269       dirty-bitmap
15270              calculate dirtyrate by dirty bitmap.
15271
15272   Since
15273       6.2
15274
15275   DirtyRateInfo (Object)
15276       Information about current dirty page rate of vm.
15277
15278   Members
15279       dirty-rate: int (optional)
15280              an  estimate  of the dirty page rate of the VM in units of MB/s,
15281              present only when estimating the rate has completed.
15282
15283       status: DirtyRateStatus
15284              status containing dirtyrate query status includes 'unstarted' or
15285              'measuring' or 'measured'
15286
15287       start-time: int
15288              start time in units of second for calculation
15289
15290       calc-time: int
15291              time in units of second for sample dirty pages
15292
15293       sample-pages: int
15294              page  count  per  GB for sample dirty pages the default value is
15295              512 (since 6.1)
15296
15297       mode: DirtyRateMeasureMode
15298              mode  containing  method   of   calculate   dirtyrate   includes
15299              'page-sampling' and 'dirty-ring' (Since 6.2)
15300
15301       vcpu-dirty-rate: array of DirtyRateVcpu (optional)
15302              dirtyrate for each vcpu if dirty-ring mode specified (Since 6.2)
15303
15304   Since
15305       5.2
15306
15307   calc-dirty-rate (Command)
15308       start calculating dirty page rate for vm
15309
15310   Arguments
15311       calc-time: int
15312              time in units of second for sample dirty pages
15313
15314       sample-pages: int (optional)
15315              page  count  per  GB for sample dirty pages the default value is
15316              512 (since 6.1)
15317
15318       mode: DirtyRateMeasureMode (optional)
15319              mechanism of calculating dirtyrate includes 'page-sampling'  and
15320              'dirty-ring' (Since 6.1)
15321
15322   Since
15323       5.2
15324
15325   Example
15326          {"execute": "calc-dirty-rate", "arguments": {"calc-time": 1,
15327                                                         'sample-pages': 512} }
15328
15329   query-dirty-rate (Command)
15330       query dirty page rate in units of MB/s for vm
15331
15332   Since
15333       5.2
15334
15335   snapshot-save (Command)
15336       Save a VM snapshot
15337
15338   Arguments
15339       job-id: string
15340              identifier for the newly created job
15341
15342       tag: string
15343              name of the snapshot to create
15344
15345       vmstate: string
15346              block device node name to save vmstate to
15347
15348       devices: array of string
15349              list of block device node names to save a snapshot to
15350       Applications  should not assume that the snapshot save is complete when
15351       this command returns. The job commands / events must be used to  deter‐
15352       mine completion and to fetch details of any errors that arise.
15353
15354       Note that execution of the guest CPUs may be stopped during the time it
15355       takes to save the snapshot. A future version of QEMU  may  ensure  CPUs
15356       are executing continuously.
15357
15358       It  is strongly recommended that devices contain all writable block de‐
15359       vice nodes if a consistent snapshot is required.
15360
15361       If tag already exists, an error will be reported
15362
15363   Returns
15364       nothing
15365
15366   Example
15367          -> { "execute": "snapshot-save",
15368               "arguments": {
15369                  "job-id": "snapsave0",
15370                  "tag": "my-snap",
15371                  "vmstate": "disk0",
15372                  "devices": ["disk0", "disk1"]
15373               }
15374             }
15375          <- { "return": { } }
15376          <- {"event": "JOB_STATUS_CHANGE",
15377              "data": {"status": "created", "id": "snapsave0"}}
15378          <- {"event": "JOB_STATUS_CHANGE",
15379              "data": {"status": "running", "id": "snapsave0"}}
15380          <- {"event": "STOP"}
15381          <- {"event": "RESUME"}
15382          <- {"event": "JOB_STATUS_CHANGE",
15383              "data": {"status": "waiting", "id": "snapsave0"}}
15384          <- {"event": "JOB_STATUS_CHANGE",
15385              "data": {"status": "pending", "id": "snapsave0"}}
15386          <- {"event": "JOB_STATUS_CHANGE",
15387              "data": {"status": "concluded", "id": "snapsave0"}}
15388          -> {"execute": "query-jobs"}
15389          <- {"return": [{"current-progress": 1,
15390                          "status": "concluded",
15391                          "total-progress": 1,
15392                          "type": "snapshot-save",
15393                          "id": "snapsave0"}]}
15394
15395   Since
15396       6.0
15397
15398   snapshot-load (Command)
15399       Load a VM snapshot
15400
15401   Arguments
15402       job-id: string
15403              identifier for the newly created job
15404
15405       tag: string
15406              name of the snapshot to load.
15407
15408       vmstate: string
15409              block device node name to load vmstate from
15410
15411       devices: array of string
15412              list of block device node names to load a snapshot from
15413       Applications should not assume that the snapshot load is complete  when
15414       this  command returns. The job commands / events must be used to deter‐
15415       mine completion and to fetch details of any errors that arise.
15416
15417       Note that execution of the guest CPUs will be stopped during  the  time
15418       it takes to load the snapshot.
15419
15420       It  is strongly recommended that devices contain all writable block de‐
15421       vice nodes that can have changed since the original snapshot-save  com‐
15422       mand execution.
15423
15424   Returns
15425       nothing
15426
15427   Example
15428          -> { "execute": "snapshot-load",
15429               "arguments": {
15430                  "job-id": "snapload0",
15431                  "tag": "my-snap",
15432                  "vmstate": "disk0",
15433                  "devices": ["disk0", "disk1"]
15434               }
15435             }
15436          <- { "return": { } }
15437          <- {"event": "JOB_STATUS_CHANGE",
15438              "data": {"status": "created", "id": "snapload0"}}
15439          <- {"event": "JOB_STATUS_CHANGE",
15440              "data": {"status": "running", "id": "snapload0"}}
15441          <- {"event": "STOP"}
15442          <- {"event": "RESUME"}
15443          <- {"event": "JOB_STATUS_CHANGE",
15444              "data": {"status": "waiting", "id": "snapload0"}}
15445          <- {"event": "JOB_STATUS_CHANGE",
15446              "data": {"status": "pending", "id": "snapload0"}}
15447          <- {"event": "JOB_STATUS_CHANGE",
15448              "data": {"status": "concluded", "id": "snapload0"}}
15449          -> {"execute": "query-jobs"}
15450          <- {"return": [{"current-progress": 1,
15451                          "status": "concluded",
15452                          "total-progress": 1,
15453                          "type": "snapshot-load",
15454                          "id": "snapload0"}]}
15455
15456   Since
15457       6.0
15458
15459   snapshot-delete (Command)
15460       Delete a VM snapshot
15461
15462   Arguments
15463       job-id: string
15464              identifier for the newly created job
15465
15466       tag: string
15467              name of the snapshot to delete.
15468
15469       devices: array of string
15470              list of block device node names to delete a snapshot from
15471       Applications  should  not  assume  that the snapshot delete is complete
15472       when this command returns. The job commands / events must  be  used  to
15473       determine completion and to fetch details of any errors that arise.
15474
15475   Returns
15476       nothing
15477
15478   Example
15479          -> { "execute": "snapshot-delete",
15480               "arguments": {
15481                  "job-id": "snapdelete0",
15482                  "tag": "my-snap",
15483                  "devices": ["disk0", "disk1"]
15484               }
15485             }
15486          <- { "return": { } }
15487          <- {"event": "JOB_STATUS_CHANGE",
15488              "data": {"status": "created", "id": "snapdelete0"}}
15489          <- {"event": "JOB_STATUS_CHANGE",
15490              "data": {"status": "running", "id": "snapdelete0"}}
15491          <- {"event": "JOB_STATUS_CHANGE",
15492              "data": {"status": "waiting", "id": "snapdelete0"}}
15493          <- {"event": "JOB_STATUS_CHANGE",
15494              "data": {"status": "pending", "id": "snapdelete0"}}
15495          <- {"event": "JOB_STATUS_CHANGE",
15496              "data": {"status": "concluded", "id": "snapdelete0"}}
15497          -> {"execute": "query-jobs"}
15498          <- {"return": [{"current-progress": 1,
15499                          "status": "concluded",
15500                          "total-progress": 1,
15501                          "type": "snapshot-delete",
15502                          "id": "snapdelete0"}]}
15503
15504   Since
15505       6.0
15506

TRANSACTIONS

15508   Abort (Object)
15509       This action can be used to test transaction failure.
15510
15511   Since
15512       1.6
15513
15514   ActionCompletionMode (Enum)
15515       An enumeration of Transactional completion modes.
15516
15517   Values
15518       individual
15519              Do  not  attempt to cancel any other Actions if any Actions fail
15520              after the Transaction request succeeds.  All  Actions  that  can
15521              complete  successfully  will  do  so  without waiting on others.
15522              This is the default.
15523
15524       grouped
15525              If any Action fails after the Transaction succeeds,  cancel  all
15526              Actions.  Actions do not complete until all Actions are ready to
15527              complete. May be rejected by Actions that do  not  support  this
15528              completion mode.
15529
15530   Since
15531       2.5
15532
15533   TransactionActionKind (Enum)
15534   Values
15535       abort  Since 1.6
15536
15537       block-dirty-bitmap-add
15538              Since 2.5
15539
15540       block-dirty-bitmap-remove
15541              Since 4.2
15542
15543       block-dirty-bitmap-clear
15544              Since 2.5
15545
15546       block-dirty-bitmap-enable
15547              Since 4.0
15548
15549       block-dirty-bitmap-disable
15550              Since 4.0
15551
15552       block-dirty-bitmap-merge
15553              Since 4.0
15554
15555       blockdev-backup
15556              Since 2.3
15557
15558       blockdev-snapshot
15559              Since 2.5
15560
15561       blockdev-snapshot-internal-sync
15562              Since 1.7
15563
15564       blockdev-snapshot-sync
15565              since 1.1
15566
15567       drive-backup
15568              Since 1.6
15569
15570   Features
15571       deprecated
15572              Member  drive-backup  is deprecated.  Use member blockdev-backup
15573              instead.
15574
15575   Since
15576       1.1
15577
15578   AbortWrapper (Object)
15579   Members
15580       data: Abort
15581              Not documented
15582
15583   Since
15584       1.6
15585
15586   BlockDirtyBitmapAddWrapper (Object)
15587   Members
15588       data: BlockDirtyBitmapAdd
15589              Not documented
15590
15591   Since
15592       2.5
15593
15594   BlockDirtyBitmapWrapper (Object)
15595   Members
15596       data: BlockDirtyBitmap
15597              Not documented
15598
15599   Since
15600       2.5
15601
15602   BlockDirtyBitmapMergeWrapper (Object)
15603   Members
15604       data: BlockDirtyBitmapMerge
15605              Not documented
15606
15607   Since
15608       4.0
15609
15610   BlockdevBackupWrapper (Object)
15611   Members
15612       data: BlockdevBackup
15613              Not documented
15614
15615   Since
15616       2.3
15617
15618   BlockdevSnapshotWrapper (Object)
15619   Members
15620       data: BlockdevSnapshot
15621              Not documented
15622
15623   Since
15624       2.5
15625
15626   BlockdevSnapshotInternalWrapper (Object)
15627   Members
15628       data: BlockdevSnapshotInternal
15629              Not documented
15630
15631   Since
15632       1.7
15633
15634   BlockdevSnapshotSyncWrapper (Object)
15635   Members
15636       data: BlockdevSnapshotSync
15637              Not documented
15638
15639   Since
15640       1.1
15641
15642   DriveBackupWrapper (Object)
15643   Members
15644       data: DriveBackup
15645              Not documented
15646
15647   Since
15648       1.6
15649
15650   TransactionAction (Object)
15651       A discriminated record of operations that can be performed with  trans‐
15652       action.
15653
15654   Members
15655       type: TransactionActionKind
15656              Not documented
15657
15658       The members of AbortWrapper when type is "abort"
15659
15660       The    members    of    BlockDirtyBitmapAddWrapper    when    type   is
15661       "block-dirty-bitmap-add"
15662
15663       The members of BlockDirtyBitmapWrapper when type  is  "block-dirty-bit‐
15664       map-remove"
15665
15666       The  members  of BlockDirtyBitmapWrapper when type is "block-dirty-bit‐
15667       map-clear"
15668
15669       The members of BlockDirtyBitmapWrapper when type  is  "block-dirty-bit‐
15670       map-enable"
15671
15672       The  members  of BlockDirtyBitmapWrapper when type is "block-dirty-bit‐
15673       map-disable"
15674
15675       The   members   of   BlockDirtyBitmapMergeWrapper    when    type    is
15676       "block-dirty-bitmap-merge"
15677
15678       The members of BlockdevBackupWrapper when type is "blockdev-backup"
15679
15680       The members of BlockdevSnapshotWrapper when type is "blockdev-snapshot"
15681
15682       The  members  of  BlockdevSnapshotInternalWrapper  when type is "block‐
15683       dev-snapshot-internal-sync"
15684
15685       The members of BlockdevSnapshotSyncWrapper when type is "blockdev-snap‐
15686       shot-sync"
15687
15688       The members of DriveBackupWrapper when type is "drive-backup"
15689
15690   Since
15691       1.1
15692
15693   TransactionProperties (Object)
15694       Optional arguments to modify the behavior of a Transaction.
15695
15696   Members
15697       completion-mode: ActionCompletionMode (optional)
15698              Controls  how  jobs launched asynchronously by Actions will com‐
15699              plete or fail as a group.  See ActionCompletionMode for details.
15700
15701   Since
15702       2.5
15703
15704   transaction (Command)
15705       Executes a number of transactionable QMP commands  atomically.  If  any
15706       operation  fails,  then the entire set of actions will be abandoned and
15707       the appropriate error returned.
15708
15709       For external snapshots, the dictionary contains the device, the file to
15710       use  for  the new snapshot, and the format.  The default format, if not
15711       specified, is qcow2.
15712
15713       Each new snapshot defaults to being created by QEMU  (wiping  any  con‐
15714       tents  if the file already exists), but it is also possible to reuse an
15715       externally-created file.  In the latter case, you  should  ensure  that
15716       the  new image file has the same contents as the current one; QEMU can‐
15717       not perform any meaningful check.  Typically this is achieved by  using
15718       the current image file as the backing file for the new image.
15719
15720       On failure, the original disks pre-snapshot attempt will be used.
15721
15722       For  internal  snapshots,  the  dictionary  contains the device and the
15723       snapshot's name.  If an internal snapshot matching name already exists,
15724       the  request will be rejected.  Only some image formats support it, for
15725       example, qcow2, and rbd,
15726
15727       On failure, qemu will try delete the newly created internal snapshot in
15728       the  transaction.   When  an I/O error occurs during deletion, the user
15729       needs to fix it later with qemu-img or other command.
15730
15731   Arguments
15732       actions: array of TransactionAction
15733              List of TransactionAction; information needed for the respective
15734              operations.
15735
15736       properties: TransactionProperties (optional)
15737              structure  of additional options to control the execution of the
15738              transaction. See TransactionProperties for additional detail.
15739
15740   Returns
15741       nothing on success
15742
15743       Errors depend on the operations of the transaction
15744
15745   Note
15746       The transaction aborts on the first failure.  Therefore, there will  be
15747       information  on  only  one failed operation returned in an error condi‐
15748       tion, and subsequent actions will not have been attempted.
15749
15750   Since
15751       1.1
15752
15753   Example
15754          -> { "execute": "transaction",
15755               "arguments": { "actions": [
15756                   { "type": "blockdev-snapshot-sync", "data" : { "device": "ide-hd0",
15757                                               "snapshot-file": "/some/place/my-image",
15758                                               "format": "qcow2" } },
15759                   { "type": "blockdev-snapshot-sync", "data" : { "node-name": "myfile",
15760                                               "snapshot-file": "/some/place/my-image2",
15761                                               "snapshot-node-name": "node3432",
15762                                               "mode": "existing",
15763                                               "format": "qcow2" } },
15764                   { "type": "blockdev-snapshot-sync", "data" : { "device": "ide-hd1",
15765                                               "snapshot-file": "/some/place/my-image2",
15766                                               "mode": "existing",
15767                                               "format": "qcow2" } },
15768                   { "type": "blockdev-snapshot-internal-sync", "data" : {
15769                                               "device": "ide-hd2",
15770                                               "name": "snapshot0" } } ] } }
15771          <- { "return": {} }
15772

TRACING

15774   TraceEventState (Enum)
15775       State of a tracing event.
15776
15777   Values
15778       unavailable
15779              The event is statically disabled.
15780
15781       disabled
15782              The event is dynamically disabled.
15783
15784       enabled
15785              The event is dynamically enabled.
15786
15787   Since
15788       2.2
15789
15790   TraceEventInfo (Object)
15791       Information of a tracing event.
15792
15793   Members
15794       name: string
15795              Event name.
15796
15797       state: TraceEventState
15798              Tracing state.
15799
15800       vcpu: boolean
15801              Whether this is a per-vCPU event (since 2.7).
15802       An  event  is  per-vCPU  if  it  has  the  "vcpu"   property   in   the
15803       "trace-events" files.
15804
15805   Since
15806       2.2
15807
15808   trace-event-get-state (Command)
15809       Query the state of events.
15810
15811   Arguments
15812       name: string
15813              Event name pattern (case-sensitive glob).
15814
15815       vcpu: int (optional)
15816              The vCPU to query (any by default; since 2.7).
15817
15818   Returns
15819       a list of TraceEventInfo for the matching events
15820
15821       An event is returned if:
15822
15823       • its name matches the name pattern, and
15824
15825       • if vcpu is given, the event has the "vcpu" property.
15826
15827       Therefore,  if  vcpu  is  given, the operation will only match per-vCPU
15828       events, returning their state on the specified vCPU. Special  case:  if
15829       name  is  an exact match, vcpu is given and the event does not have the
15830       "vcpu" property, an error is returned.
15831
15832   Since
15833       2.2
15834
15835   Example
15836          -> { "execute": "trace-event-get-state",
15837               "arguments": { "name": "qemu_memalign" } }
15838          <- { "return": [ { "name": "qemu_memalign", "state": "disabled", "vcpu": false } ] }
15839
15840   trace-event-set-state (Command)
15841       Set the dynamic tracing state of events.
15842
15843   Arguments
15844       name: string
15845              Event name pattern (case-sensitive glob).
15846
15847       enable: boolean
15848              Whether to enable tracing.
15849
15850       ignore-unavailable: boolean (optional)
15851              Do not match unavailable events with name.
15852
15853       vcpu: int (optional)
15854              The vCPU to act upon (all by default; since 2.7).
15855       An event's state is modified if: - its name matches the  name  pattern,
15856       and - if vcpu is given, the event has the "vcpu" property.
15857
15858       Therefore,  if  vcpu  is  given, the operation will only match per-vCPU
15859       events, setting their state on the specified  vCPU.  Special  case:  if
15860       name  is  an exact match, vcpu is given and the event does not have the
15861       "vcpu" property, an error is returned.
15862
15863   Since
15864       2.2
15865
15866   Example
15867          -> { "execute": "trace-event-set-state",
15868               "arguments": { "name": "qemu_memalign", "enable": true } }
15869          <- { "return": {} }
15870

COMPATIBILITY POLICY

15872   CompatPolicyInput (Enum)
15873       Policy for handling "funny" input.
15874
15875   Values
15876       accept Accept silently
15877
15878       reject Reject with an error
15879
15880       crash  abort() the process
15881
15882   Since
15883       6.0
15884
15885   CompatPolicyOutput (Enum)
15886       Policy for handling "funny" output.
15887
15888   Values
15889       accept Pass on unchanged
15890
15891       hide   Filter out
15892
15893   Since
15894       6.0
15895
15896   CompatPolicy (Object)
15897       Policy for handling deprecated management interfaces.
15898
15899       This is intended for testing users of the management interfaces.
15900
15901       Limitation: covers only syntactic aspects of  QMP,  i.e.  stuff  tagged
15902       with  feature 'deprecated'.  We may want to extend it to cover semantic
15903       aspects and CLI.
15904
15905       Limitation: deprecated-output policy hide is not implemented  for  enu‐
15906       meration values.  They behave the same as with policy accept.
15907
15908   Members
15909       deprecated-input: CompatPolicyInput (optional)
15910              how to handle deprecated input (default 'accept')
15911
15912       deprecated-output: CompatPolicyOutput (optional)
15913              how to handle deprecated output (default 'accept')
15914
15915       unstable-input: CompatPolicyInput (optional)
15916              how to handle unstable input (default 'accept') (since 6.2)
15917
15918       unstable-output: CompatPolicyOutput (optional)
15919              how to handle unstable output (default 'accept') (since 6.2)
15920
15921   Since
15922       6.0
15923

QMP MONITOR CONTROL

15925   qmp_capabilities (Command)
15926       Enable QMP capabilities.
15927
15928       Arguments:
15929
15930   Arguments
15931       enable: array of QMPCapability (optional)
15932              An  optional list of QMPCapability values to enable.  The client
15933              must not enable any capability that is not mentioned in the  QMP
15934              greeting message.  If the field is not provided, it means no QMP
15935              capabilities will be enabled.  (since 2.12)
15936
15937   Example
15938          -> { "execute": "qmp_capabilities",
15939               "arguments": { "enable": [ "oob" ] } }
15940          <- { "return": {} }
15941
15942   Notes
15943       This command is valid exactly when first connecting: it must be  issued
15944       before any other command will be accepted, and will fail once the moni‐
15945       tor is accepting other commands. (see qemu docs/interop/qmp-spec.txt)
15946
15947       The QMP client needs to explicitly enable QMP  capabilities,  otherwise
15948       all the QMP capabilities will be turned off by default.
15949
15950   Since
15951       0.13
15952
15953   QMPCapability (Enum)
15954       Enumeration of capabilities to be advertised during initial client con‐
15955       nection, used for agreeing on particular QMP extension behaviors.
15956
15957   Values
15958       oob    QMP ability to support out-of-band requests.  (Please  refer  to
15959              qmp-spec.txt for more information on OOB)
15960
15961   Since
15962       2.12
15963
15964   VersionTriple (Object)
15965       A three-part version number.
15966
15967   Members
15968       major: int
15969              The major version number.
15970
15971       minor: int
15972              The minor version number.
15973
15974       micro: int
15975              The micro version number.
15976
15977   Since
15978       2.4
15979
15980   VersionInfo (Object)
15981       A description of QEMU's version.
15982
15983   Members
15984       qemu: VersionTriple
15985              The  version of QEMU.  By current convention, a micro version of
15986              50 signifies a development branch.  A micro version greater than
15987              or  equal to 90 signifies a release candidate for the next minor
15988              version.  A micro version of less than 50 signifies a stable re‐
15989              lease.
15990
15991       package: string
15992              QEMU  will always set this field to an empty string.  Downstream
15993              versions of QEMU should set this to a non-empty string.  The ex‐
15994              act  format  depends  on the downstream however it highly recom‐
15995              mended that a unique name is used.
15996
15997   Since
15998       0.14
15999
16000   query-version (Command)
16001       Returns the current version of QEMU.
16002
16003   Returns
16004       A VersionInfo object describing the current version of QEMU.
16005
16006   Since
16007       0.14
16008
16009   Example
16010          -> { "execute": "query-version" }
16011          <- {
16012                "return":{
16013                   "qemu":{
16014                      "major":0,
16015                      "minor":11,
16016                      "micro":5
16017                   },
16018                   "package":""
16019                }
16020             }
16021
16022   CommandInfo (Object)
16023       Information about a QMP command
16024
16025   Members
16026       name: string
16027              The command name
16028
16029   Since
16030       0.14
16031
16032   query-commands (Command)
16033       Return a list of supported QMP commands by this server
16034
16035   Returns
16036       A list of CommandInfo for all supported commands
16037
16038   Since
16039       0.14
16040
16041   Example
16042          -> { "execute": "query-commands" }
16043          <- {
16044               "return":[
16045                  {
16046                     "name":"query-balloon"
16047                  },
16048                  {
16049                     "name":"system_powerdown"
16050                  }
16051               ]
16052             }
16053
16054   Note
16055       This example has been shortened as the real response is too long.
16056
16057   quit (Command)
16058       This command will cause the QEMU process to exit gracefully.  While ev‐
16059       ery  attempt  is made to send the QMP response before terminating, this
16060       is not guaranteed.  When using this interface, a  premature  EOF  would
16061       not be unexpected.
16062
16063   Since
16064       0.14
16065
16066   Example
16067          -> { "execute": "quit" }
16068          <- { "return": {} }
16069
16070   MonitorMode (Enum)
16071       An enumeration of monitor modes.
16072
16073   Values
16074       readline
16075              HMP monitor (human-oriented command line interface)
16076
16077       control
16078              QMP monitor (JSON-based machine interface)
16079
16080   Since
16081       5.0
16082
16083   MonitorOptions (Object)
16084       Options to be used for adding a new monitor.
16085
16086   Members
16087       id: string (optional)
16088              Name of the monitor
16089
16090       mode: MonitorMode (optional)
16091              Selects the monitor mode (default: readline in the system emula‐
16092              tor, control in qemu-storage-daemon)
16093
16094       pretty: boolean (optional)
16095              Enables pretty printing (QMP only)
16096
16097       chardev: string
16098              Name of a character device to expose the monitor on
16099
16100   Since
16101       5.0
16102

QMP INTROSPECTION

16104   query-qmp-schema (Command)
16105       Command query-qmp-schema exposes the  QMP  wire  ABI  as  an  array  of
16106       SchemaInfo.   This lets QMP clients figure out what commands and events
16107       are available in this QEMU, and their parameters and results.
16108
16109       However, the SchemaInfo can't reflect all the  rules  and  restrictions
16110       that  apply  to QMP.  It's interface introspection (figuring out what's
16111       there), not interface specification.  The specification is in the  QAPI
16112       schema.
16113
16114       Furthermore, while we strive to keep the QMP wire format backwards-com‐
16115       patible across qemu versions, the introspection output is  not  guaran‐
16116       teed  to have the same stability.  For example, one version of qemu may
16117       list an object member as an optional non-variant, while  another  lists
16118       the  same  member  only through the object's variants; or the type of a
16119       member may change from a generic string into a specific  enum  or  from
16120       one  specific  type  into  an alternate that includes the original type
16121       alongside something else.
16122
16123   Returns
16124       array of SchemaInfo, where each element describes an entity in the ABI:
16125       command, event, type, ...
16126
16127       The  order of the various SchemaInfo is unspecified; however, all names
16128       are guaranteed to be unique (no name will be duplicated with  different
16129       meta-types).
16130
16131   Note
16132       the  QAPI  schema  is  also used to help define internal interfaces, by
16133       defining QAPI types.  These are not part  of  the  QMP  wire  ABI,  and
16134       therefore not returned by this command.
16135
16136   Since
16137       2.5
16138
16139   SchemaMetaType (Enum)
16140       This is a SchemaInfo's meta type, i.e. the kind of entity it describes.
16141
16142   Values
16143       builtin
16144              a predefined type such as 'int' or 'bool'.
16145
16146       enum   an enumeration type
16147
16148       array  an array type
16149
16150       object an object type (struct or union)
16151
16152       alternate
16153              an alternate type
16154
16155       command
16156              a QMP command
16157
16158       event  a QMP event
16159
16160   Since
16161       2.5
16162
16163   SchemaInfo (Object)
16164   Members
16165       name: string
16166              the  entity's  name, inherited from base.  The SchemaInfo is al‐
16167              ways referenced by this name.  Commands and events have the name
16168              defined  in  the  QAPI  schema.  Unlike command and event names,
16169              type names are not part of the  wire  ABI.   Consequently,  type
16170              names  are  meaningless  strings  here,  although they are still
16171              guaranteed unique regardless of meta-type.
16172
16173       meta-type: SchemaMetaType
16174              the entity's meta type, inherited from base.
16175
16176       features: array of string (optional)
16177              names of features associated with the entity, in  no  particular
16178              order.   (since  4.1 for object types, 4.2 for commands, 5.0 for
16179              the rest)
16180
16181       The members of SchemaInfoBuiltin when meta-type is "builtin"
16182
16183       The members of SchemaInfoEnum when meta-type is "enum"
16184
16185       The members of SchemaInfoArray when meta-type is "array"
16186
16187       The members of SchemaInfoObject when meta-type is "object"
16188
16189       The members of SchemaInfoAlternate when meta-type is "alternate"
16190
16191       The members of SchemaInfoCommand when meta-type is "command"
16192
16193       The members of SchemaInfoEvent when meta-type is "event"
16194       Additional members depend on the value of meta-type.
16195
16196   Since
16197       2.5
16198
16199   SchemaInfoBuiltin (Object)
16200       Additional SchemaInfo members for meta-type 'builtin'.
16201
16202   Members
16203       json-type: JSONType
16204              the JSON type used for this type on the wire.
16205
16206   Since
16207       2.5
16208
16209   JSONType (Enum)
16210       The four primitive and two structured types according to RFC 8259  sec‐
16211       tion  1,  plus  'int'  (split  off 'number'), plus the obvious top type
16212       'value'.
16213
16214   Values
16215       string Not documented
16216
16217       number Not documented
16218
16219       int    Not documented
16220
16221       boolean
16222              Not documented
16223
16224       null   Not documented
16225
16226       object Not documented
16227
16228       array  Not documented
16229
16230       value  Not documented
16231
16232   Since
16233       2.5
16234
16235   SchemaInfoEnum (Object)
16236       Additional SchemaInfo members for meta-type 'enum'.
16237
16238   Members
16239       members: array of SchemaInfoEnumMember
16240              the enum type's members, in no particular order (since 6.2).
16241
16242       values: array of string
16243              the enumeration type's member names,  in  no  particular  order.
16244              Redundant with members.  Just for backward compatibility.
16245
16246   Features
16247       deprecated
16248              Member values is deprecated.  Use members instead.
16249       Values of this type are JSON string on the wire.
16250
16251   Since
16252       2.5
16253
16254   SchemaInfoEnumMember (Object)
16255       An object member.
16256
16257   Members
16258       name: string
16259              the member's name, as defined in the QAPI schema.
16260
16261       features: array of string (optional)
16262              names  of  features associated with the member, in no particular
16263              order.
16264
16265   Since
16266       6.2
16267
16268   SchemaInfoArray (Object)
16269       Additional SchemaInfo members for meta-type 'array'.
16270
16271   Members
16272       element-type: string
16273              the array type's element type.
16274       Values of this type are JSON array on the wire.
16275
16276   Since
16277       2.5
16278
16279   SchemaInfoObject (Object)
16280       Additional SchemaInfo members for meta-type 'object'.
16281
16282   Members
16283       members: array of SchemaInfoObjectMember
16284              the object type's (non-variant) members, in no particular order.
16285
16286       tag: string (optional)
16287              the name of the member serving as type tag.  An element of  mem‐
16288              bers with this name must exist.
16289
16290       variants: array of SchemaInfoObjectVariant (optional)
16291              variant members, i.e. additional members that depend on the type
16292              tag's value.  Present exactly when tag is present.  The variants
16293              are  in  no particular order, and may even differ from the order
16294              of the values of the enum type of the tag.
16295       Values of this type are JSON object on the wire.
16296
16297   Since
16298       2.5
16299
16300   SchemaInfoObjectMember (Object)
16301       An object member.
16302
16303   Members
16304       name: string
16305              the member's name, as defined in the QAPI schema.
16306
16307       type: string
16308              the name of the member's type.
16309
16310       default: value (optional)
16311              default when used as command parameter.  If absent, the  parame‐
16312              ter  is mandatory.  If present, the value must be null.  The pa‐
16313              rameter is optional, and behavior when it's missing is not spec‐
16314              ified  here.  Future extension: if present and non-null, the pa‐
16315              rameter is optional, and defaults to this value.
16316
16317       features: array of string (optional)
16318              names of features associated with the member, in  no  particular
16319              order.  (since 5.0)
16320
16321   Since
16322       2.5
16323
16324   SchemaInfoObjectVariant (Object)
16325       The variant members for a value of the type tag.
16326
16327   Members
16328       case: string
16329              a value of the type tag.
16330
16331       type: string
16332              the  name  of  the object type that provides the variant members
16333              when the type tag has value case.
16334
16335   Since
16336       2.5
16337
16338   SchemaInfoAlternate (Object)
16339       Additional SchemaInfo members for meta-type 'alternate'.
16340
16341   Members
16342       members: array of SchemaInfoAlternateMember
16343              the alternate type's members, in no particular order.  The  mem‐
16344              bers'     wire    encoding    is    distinct,    see    docs/de‐
16345              vel/qapi-code-gen.txt section Alternate types.
16346       On the wire, this can be any of the members.
16347
16348   Since
16349       2.5
16350
16351   SchemaInfoAlternateMember (Object)
16352       An alternate member.
16353
16354   Members
16355       type: string
16356              the name of the member's type.
16357
16358   Since
16359       2.5
16360
16361   SchemaInfoCommand (Object)
16362       Additional SchemaInfo members for meta-type 'command'.
16363
16364   Members
16365       arg-type: string
16366              the name of the object type that provides the command's  parame‐
16367              ters.
16368
16369       ret-type: string
16370              the name of the command's result type.
16371
16372       allow-oob: boolean (optional)
16373              whether  the  command  allows out-of-band execution, defaults to
16374              false (Since: 2.12)
16375
16376   TODO
16377       success-response (currently irrelevant, because it's QGA, not QMP)
16378
16379   Since
16380       2.5
16381
16382   SchemaInfoEvent (Object)
16383       Additional SchemaInfo members for meta-type 'event'.
16384
16385   Members
16386       arg-type: string
16387              the name of the object type that provides  the  event's  parame‐
16388              ters.
16389
16390   Since
16391       2.5
16392

QEMU OBJECT MODEL (QOM)

16394   ObjectPropertyInfo (Object)
16395   Members
16396       name: string
16397              the name of the property
16398
16399       type: string
16400              the  type  of  the property.  This will typically come in one of
16401              four forms:
16402
16403              1. A primitive type such as 'u8', 'u16', 'bool', 'str', or 'dou‐
16404                 ble'.  These types are mapped to the appropriate JSON type.
16405
16406              2. A  child type in the form 'child<subtype>' where subtype is a
16407                 qdev device type name.  Child properties create the  composi‐
16408                 tion tree.
16409
16410              3. A  link  type  in the form 'link<subtype>' where subtype is a
16411                 qdev device type name.  Link properties form the device model
16412                 graph.
16413
16414       description: string (optional)
16415              if specified, the description of the property.
16416
16417       default-value: value (optional)
16418              the default value, if any (since 5.0)
16419
16420   Since
16421       1.2
16422
16423   qom-list (Command)
16424       This  command  will list any properties of a object given a path in the
16425       object model.
16426
16427   Arguments
16428       path: string
16429              the path within the object model.  See qom-get for a description
16430              of this parameter.
16431
16432   Returns
16433       a  list  of  ObjectPropertyInfo that describe the properties of the ob‐
16434       ject.
16435
16436   Since
16437       1.2
16438
16439   Example
16440          -> { "execute": "qom-list",
16441               "arguments": { "path": "/chardevs" } }
16442          <- { "return": [ { "name": "type", "type": "string" },
16443                           { "name": "parallel0", "type": "child<chardev-vc>" },
16444                           { "name": "serial0", "type": "child<chardev-vc>" },
16445                           { "name": "mon0", "type": "child<chardev-stdio>" } ] }
16446
16447   qom-get (Command)
16448       This command will get a property from a object model  path  and  return
16449       the value.
16450
16451   Arguments
16452       path: string
16453              The  path  within the object model.  There are two forms of sup‐
16454              ported paths--absolute and partial paths.
16455
16456              Absolute paths are derived from the root object and  can  follow
16457              child<>  or  link<>  properties.   Since  they can follow link<>
16458              properties, they can be arbitrarily long.  Absolute  paths  look
16459              like absolute filenames and are prefixed  with a leading slash.
16460
16461              Partial  paths  look like relative filenames.  They do not begin
16462              with a prefix.  The matching rules for partial paths are  subtle
16463              but  designed to make specifying objects easy.  At each level of
16464              the composition tree, the partial path is matched as an absolute
16465              path.   The  first  match is not returned.  At least two matches
16466              are searched for.  A successful result is only returned if  only
16467              one  match is found.  If more than one match is found, a flag is
16468              return to indicate that the match was ambiguous.
16469
16470       property: string
16471              The property name to read
16472
16473   Returns
16474       The property value.  The type depends on the property type. child<> and
16475       link<> properties are returned as #str pathnames.  All integer property
16476       types (u8, u16, etc) are returned as #int.
16477
16478   Since
16479       1.2
16480
16481   Example
16482          1. Use absolute path
16483
16484          -> { "execute": "qom-get",
16485               "arguments": { "path": "/machine/unattached/device[0]",
16486                              "property": "hotplugged" } }
16487          <- { "return": false }
16488
16489          2. Use partial path
16490
16491          -> { "execute": "qom-get",
16492               "arguments": { "path": "unattached/sysbus",
16493                              "property": "type" } }
16494          <- { "return": "System" }
16495
16496   qom-set (Command)
16497       This command will set a property from a object model path.
16498
16499   Arguments
16500       path: string
16501              see qom-get for a description of this parameter
16502
16503       property: string
16504              the property name to set
16505
16506       value: value
16507              a value who's type is appropriate for the  property  type.   See
16508              qom-get for a description of type mapping.
16509
16510   Since
16511       1.2
16512
16513   Example
16514          -> { "execute": "qom-set",
16515               "arguments": { "path": "/machine",
16516                              "property": "graphics",
16517                              "value": false } }
16518          <- { "return": {} }
16519
16520   ObjectTypeInfo (Object)
16521       This structure describes a search result from qom-list-types
16522
16523   Members
16524       name: string
16525              the type name found in the search
16526
16527       abstract: boolean (optional)
16528              the  type is abstract and can't be directly instantiated.  Omit‐
16529              ted if false. (since 2.10)
16530
16531       parent: string (optional)
16532              Name of parent type, if any (since 2.10)
16533
16534   Since
16535       1.1
16536
16537   qom-list-types (Command)
16538       This command will return a list of types given search parameters
16539
16540   Arguments
16541       implements: string (optional)
16542              if specified, only return types that implement this type name
16543
16544       abstract: boolean (optional)
16545              if true, include abstract types in the results
16546
16547   Returns
16548       a list of ObjectTypeInfo or an empty list if no results are found
16549
16550   Since
16551       1.1
16552
16553   qom-list-properties (Command)
16554       List properties associated with a QOM object.
16555
16556   Arguments
16557       typename: string
16558              the type name of an object
16559
16560   Note
16561       objects can create properties at runtime, for example to describe links
16562       between  different devices and/or objects. These properties are not in‐
16563       cluded in the output of this command.
16564
16565   Returns
16566       a list of ObjectPropertyInfo describing object properties
16567
16568   Since
16569       2.12
16570
16571   CanHostSocketcanProperties (Object)
16572       Properties for can-host-socketcan objects.
16573
16574   Members
16575       if: string
16576              interface name of the host system CAN bus to connect to
16577
16578       canbus: string
16579              object ID of the can-bus object to connect to the host interface
16580
16581   Since
16582       2.12
16583
16584   ColoCompareProperties (Object)
16585       Properties for colo-compare objects.
16586
16587   Members
16588       primary_in: string
16589              name of the character device backend to use for the primary  in‐
16590              put (incoming packets are redirected to outdev)
16591
16592       secondary_in: string
16593              name  of the character device backend to use for secondary input
16594              (incoming packets are only compared to the input  on  primary_in
16595              and then dropped)
16596
16597       outdev: string
16598              name of the character device backend to use for output
16599
16600       iothread: string
16601              name of the iothread to run in
16602
16603       notify_dev: string (optional)
16604              name  of  the character device backend to be used to communicate
16605              with the remote colo-frame (only for Xen COLO)
16606
16607       compare_timeout: int (optional)
16608              the maximum time to hold a packet from primary_in for comparison
16609              with  an  incoming  packet  on secondary_in in milliseconds (de‐
16610              fault: 3000)
16611
16612       expired_scan_cycle: int (optional)
16613              the interval at which colo-compare checks whether  packets  from
16614              primary have timed out, in milliseconds (default: 3000)
16615
16616       max_queue_size: int (optional)
16617              the maximum number of packets to keep in the queue for comparing
16618              with incoming packets from secondary_in.  If the queue  is  full
16619              and  additional packets are received, the additional packets are
16620              dropped. (default: 1024)
16621
16622       vnet_hdr_support: boolean (optional)
16623              if true, vnet header support is enabled (default: false)
16624
16625   Since
16626       2.8
16627
16628   CryptodevBackendProperties (Object)
16629       Properties for cryptodev-backend and cryptodev-backend-builtin objects.
16630
16631   Members
16632       queues: int (optional)
16633              the number of queues for  the  cryptodev  backend.  Ignored  for
16634              cryptodev-backend  and  must be 1 for cryptodev-backend-builtin.
16635              (default: 1)
16636
16637   Since
16638       2.8
16639
16640   CryptodevVhostUserProperties (Object)
16641       Properties for cryptodev-vhost-user objects.
16642
16643   Members
16644       chardev: string
16645              the name of a Unix domain socket character device that  connects
16646              to the vhost-user server
16647
16648       The members of CryptodevBackendProperties
16649
16650   Since
16651       2.12
16652
16653   DBusVMStateProperties (Object)
16654       Properties for dbus-vmstate objects.
16655
16656   Members
16657       addr: string
16658              the name of the DBus bus to connect to
16659
16660       id-list: string (optional)
16661              a  comma separated list of DBus IDs of helpers whose data should
16662              be included in the VM state on migration
16663
16664   Since
16665       5.0
16666
16667   NetfilterInsert (Enum)
16668       Indicates where to insert a netfilter relative to a given other filter.
16669
16670   Values
16671       before insert before the specified filter
16672
16673       behind insert behind the specified filter
16674
16675   Since
16676       5.0
16677
16678   NetfilterProperties (Object)
16679       Properties for objects of classes derived from netfilter.
16680
16681   Members
16682       netdev: string
16683              id of the network device backend to filter
16684
16685       queue: NetFilterDirection (optional)
16686              indicates which queue(s) to filter (default: all)
16687
16688       status: string (optional)
16689              indicates whether the  filter  is  enabled  ("on")  or  disabled
16690              ("off") (default: "on")
16691
16692       position: string (optional)
16693              specifies  where  the  filter  should  be inserted in the filter
16694              list.  "head" means the filter is inserted at the  head  of  the
16695              filter list, before any existing filters.  "tail" means the fil‐
16696              ter is inserted at the tail of the filter list, behind  any  ex‐
16697              isting  filters  (default).   "id=<id>"  means the filter is in‐
16698              serted before or behind the filter specified by <id>,  depending
16699              on the insert property.  (default: "tail")
16700
16701       insert: NetfilterInsert (optional)
16702              where to insert the filter relative to the filter given in posi‐
16703              tion.  Ignored if position is "head" or  "tail".  (default:  be‐
16704              hind)
16705
16706   Since
16707       2.5
16708
16709   FilterBufferProperties (Object)
16710       Properties for filter-buffer objects.
16711
16712   Members
16713       interval: int
16714              a  non-zero  interval  in microseconds.  All packets arriving in
16715              the given interval are delayed until the end of the interval.
16716
16717       The members of NetfilterProperties
16718
16719   Since
16720       2.5
16721
16722   FilterDumpProperties (Object)
16723       Properties for filter-dump objects.
16724
16725   Members
16726       file: string
16727              the filename where the dumped packets should be stored
16728
16729       maxlen: int (optional)
16730              maximum number of bytes in a packet that  are  stored  (default:
16731              65536)
16732
16733       The members of NetfilterProperties
16734
16735   Since
16736       2.5
16737
16738   FilterMirrorProperties (Object)
16739       Properties for filter-mirror objects.
16740
16741   Members
16742       outdev: string
16743              the  name  of  a  character device backend to which all incoming
16744              packets are mirrored
16745
16746       vnet_hdr_support: boolean (optional)
16747              if true, vnet header support is enabled (default: false)
16748
16749       The members of NetfilterProperties
16750
16751   Since
16752       2.6
16753
16754   FilterRedirectorProperties (Object)
16755       Properties for filter-redirector objects.
16756
16757       At least one of indev or outdev must be present.  If both are  present,
16758       they must not refer to the same character device backend.
16759
16760   Members
16761       indev: string (optional)
16762              the  name  of  a character device backend from which packets are
16763              received and redirected to the filtered network device
16764
16765       outdev: string (optional)
16766              the name of a character device backend  to  which  all  incoming
16767              packets are redirected
16768
16769       vnet_hdr_support: boolean (optional)
16770              if true, vnet header support is enabled (default: false)
16771
16772       The members of NetfilterProperties
16773
16774   Since
16775       2.6
16776
16777   FilterRewriterProperties (Object)
16778       Properties for filter-rewriter objects.
16779
16780   Members
16781       vnet_hdr_support: boolean (optional)
16782              if true, vnet header support is enabled (default: false)
16783
16784       The members of NetfilterProperties
16785
16786   Since
16787       2.8
16788
16789   InputBarrierProperties (Object)
16790       Properties for input-barrier objects.
16791
16792   Members
16793       name: string
16794              the  screen  name  as  declared  in  the screens section of bar‐
16795              rier.conf
16796
16797       server: string (optional)
16798              hostname of the Barrier server (default: "localhost")
16799
16800       port: string (optional)
16801              TCP port of the Barrier server (default: "24800")
16802
16803       x-origin: string (optional)
16804              x coordinate of the leftmost pixel on the guest screen (default:
16805              "0")
16806
16807       y-origin: string (optional)
16808              y  coordinate of the topmost pixel on the guest screen (default:
16809              "0")
16810
16811       width: string (optional)
16812              the width of secondary screen in pixels (default: "1920")
16813
16814       height: string (optional)
16815              the height of secondary screen in pixels (default: "1080")
16816
16817   Since
16818       4.2
16819
16820   InputLinuxProperties (Object)
16821       Properties for input-linux objects.
16822
16823   Members
16824       evdev: string
16825              the path of the host evdev device to use
16826
16827       grab_all: boolean (optional)
16828              if true, grab is toggled for all devices (e.g. both keyboard and
16829              mouse) instead of just one device (default: false)
16830
16831       repeat: boolean (optional)
16832              enables auto-repeat events (default: false)
16833
16834       grab-toggle: GrabToggleKeys (optional)
16835              the  key  or  key combination that toggles device grab (default:
16836              ctrl-ctrl)
16837
16838   Since
16839       2.6
16840
16841   IothreadProperties (Object)
16842       Properties for iothread objects.
16843
16844   Members
16845       poll-max-ns: int (optional)
16846              the maximum number of nanoseconds to busy wait  for  events.   0
16847              means polling is disabled (default: 32768 on POSIX hosts, 0 oth‐
16848              erwise)
16849
16850       poll-grow: int (optional)
16851              the multiplier used to increase the polling time when the  algo‐
16852              rithm  detects  it  is  missing  events  due to not polling long
16853              enough. 0 selects a default behaviour (default: 0)
16854
16855       poll-shrink: int (optional)
16856              the divisor used to decrease the polling time when the algorithm
16857              detects  it  is  spending  too long polling without encountering
16858              events. 0 selects a default behaviour (default: 0)
16859
16860       aio-max-batch: int (optional)
16861              maximum number of requests in a batch  for  the  AIO  engine,  0
16862              means  that  the  engine  will use its default (default:0, since
16863              6.1)
16864
16865   Since
16866       2.0
16867
16868   MemoryBackendProperties (Object)
16869       Properties for objects of classes derived from memory-backend.
16870
16871   Members
16872       merge: boolean (optional)
16873              if true, mark the memory as mergeable (default  depends  on  the
16874              machine type)
16875
16876       dump: boolean (optional)
16877              if  true,  include  the memory in core dumps (default depends on
16878              the machine type)
16879
16880       host-nodes: array of int (optional)
16881              the list of NUMA host nodes to bind the memory to
16882
16883       policy: HostMemPolicy (optional)
16884              the NUMA policy (default: 'default')
16885
16886       prealloc: boolean (optional)
16887              if true, preallocate memory (default: false)
16888
16889       prealloc-threads: int (optional)
16890              number of CPU threads to use for prealloc (default: 1)
16891
16892       share: boolean (optional)
16893              if false, the memory is private to QEMU; if true, it  is  shared
16894              (default: false)
16895
16896       reserve: boolean (optional)
16897              if  true,  reserve swap space (or huge pages) if applicable (de‐
16898              fault: true) (since 6.1)
16899
16900       size: int
16901              size of the memory region in bytes
16902
16903       x-use-canonical-path-for-ramblock-id: boolean (optional)
16904              if true, the canoncial path is  used  for  ramblock-id.  Disable
16905              this  for  4.0  machine  types  or older to allow migration with
16906              newer QEMU versions.  (default: false generally,  but  true  for
16907              machine types <= 4.0)
16908
16909   Note
16910       prealloc=true  and  reserve=false  cannot be set at the same time. With
16911       reserve=true, the behavior depends on the operating system:  for  exam‐
16912       ple, Linux will not reserve swap space for shared file mappings -- "not
16913       applicable". In contrast, reserve=false will bail out if it  cannot  be
16914       configured accordingly.
16915
16916   Since
16917       2.1
16918
16919   MemoryBackendFileProperties (Object)
16920       Properties for memory-backend-file objects.
16921
16922   Members
16923       align: int (optional)
16924              the  base  address  alignment  when QEMU mmap(2)s mem-path. Some
16925              backend stores specified by mem-path require an  alignment  dif‐
16926              ferent  than  the  default one used by QEMU, e.g. the device DAX
16927              /dev/dax0.0 requires 2M alignment rather than 4K. In such cases,
16928              users can specify the required alignment via this option.  0 se‐
16929              lects a default alignment (currently the page  size).  (default:
16930              0)
16931
16932       discard-data: boolean (optional)
16933              if  true, the file contents can be destroyed when QEMU exits, to
16934              avoid unnecessarily flushing data to the backing file. Note that
16935              discard-data is only an optimization, and QEMU might not discard
16936              file contents if it aborts unexpectedly or is  terminated  using
16937              SIGKILL. (default: false)
16938
16939       mem-path: string
16940              the path to either a shared memory or huge page filesystem mount
16941
16942       pmem: boolean (optional) (If: CONFIG_LIBPMEM)
16943              specifies  whether  the backing file specified by mem-path is in
16944              host persistent memory that can be accessed using the  SNIA  NVM
16945              programming model (e.g. Intel NVDIMM).
16946
16947       readonly: boolean (optional)
16948              if  true,  the backing file is opened read-only; if false, it is
16949              opened read-write. (default: false)
16950
16951       The members of MemoryBackendProperties
16952
16953   Since
16954       2.1
16955
16956   MemoryBackendMemfdProperties (Object)
16957       Properties for memory-backend-memfd objects.
16958
16959       The share boolean option is true by default with memfd.
16960
16961   Members
16962       hugetlb: boolean (optional)
16963              if true, the  file  to  be  created  resides  in  the  hugetlbfs
16964              filesystem (default: false)
16965
16966       hugetlbsize: int (optional)
16967              the  hugetlb  page size on systems that support multiple hugetlb
16968              page sizes (it must be a power of 2 value supported by the  sys‐
16969              tem).  0  selects a default page size. This option is ignored if
16970              hugetlb is false. (default: 0)
16971
16972       seal: boolean (optional)
16973              if true, create a sealed-file, which will block further resizing
16974              of the memory (default: true)
16975
16976       The members of MemoryBackendProperties
16977
16978   Since
16979       2.12
16980
16981   MemoryBackendEpcProperties (Object)
16982       Properties for memory-backend-epc objects.
16983
16984       The share boolean option is true by default with epc
16985
16986       The merge boolean option is false by default with epc
16987
16988       The dump boolean option is false by default with epc
16989
16990   Members
16991       The members of MemoryBackendProperties
16992
16993   Since
16994       6.2
16995
16996   PrManagerHelperProperties (Object)
16997       Properties for pr-manager-helper objects.
16998
16999   Members
17000       path: string
17001              the  path to a Unix domain socket for connecting to the external
17002              helper
17003
17004   Since
17005       2.11
17006
17007   QtestProperties (Object)
17008       Properties for qtest objects.
17009
17010   Members
17011       chardev: string
17012              the chardev to be used to receive qtest commands on.
17013
17014       log: string (optional)
17015              the path to a log file
17016
17017   Since
17018       6.0
17019
17020   RemoteObjectProperties (Object)
17021       Properties for x-remote-object objects.
17022
17023   Members
17024       fd: string
17025              file descriptor name previously passed via 'getfd' command
17026
17027       devid: string
17028              the id of the device to be associated with the file descriptor
17029
17030   Since
17031       6.0
17032
17033   RngProperties (Object)
17034       Properties for objects of classes derived from rng.
17035
17036   Members
17037       opened: boolean (optional)
17038              if true, the device is opened immediately when applying this op‐
17039              tion  and  will  probably  fail when processing the next option.
17040              Don't use; only provided for compatibility. (default: false)
17041
17042   Features
17043       deprecated
17044              Member opened is deprecated.  Setting true doesn't  make  sense,
17045              and false is already the default.
17046
17047   Since
17048       1.3
17049
17050   RngEgdProperties (Object)
17051       Properties for rng-egd objects.
17052
17053   Members
17054       chardev: string
17055              the name of a character device backend that provides the connec‐
17056              tion to the RNG daemon
17057
17058       The members of RngProperties
17059
17060   Since
17061       1.3
17062
17063   RngRandomProperties (Object)
17064       Properties for rng-random objects.
17065
17066   Members
17067       filename: string (optional)
17068              the filename of the device on the host to  obtain  entropy  from
17069              (default: "/dev/urandom")
17070
17071       The members of RngProperties
17072
17073   Since
17074       1.3
17075
17076   SevGuestProperties (Object)
17077       Properties for sev-guest objects.
17078
17079   Members
17080       sev-device: string (optional)
17081              SEV device to use (default: "/dev/sev")
17082
17083       dh-cert-file: string (optional)
17084              guest owners DH certificate (encoded with base64)
17085
17086       session-file: string (optional)
17087              guest owners session parameters (encoded with base64)
17088
17089       policy: int (optional)
17090              SEV policy value (default: 0x1)
17091
17092       handle: int (optional)
17093              SEV firmware handle (default: 0)
17094
17095       cbitpos: int (optional)
17096              C-bit location in page table entry (default: 0)
17097
17098       reduced-phys-bits: int
17099              number  of  bits  in  physical addresses that become unavailable
17100              when SEV is enabled
17101
17102       kernel-hashes: boolean (optional)
17103              if true, add hashes of  kernel/initrd/cmdline  to  a  designated
17104              guest  firmware  page  for  measured boot with -kernel (default:
17105              false) (since 6.2)
17106
17107   Since
17108       2.12
17109
17110   ObjectType (Enum)
17111   Values
17112       authz-list
17113              Not documented
17114
17115       authz-listfile
17116              Not documented
17117
17118       authz-pam
17119              Not documented
17120
17121       authz-simple
17122              Not documented
17123
17124       can-bus
17125              Not documented
17126
17127       can-host-socketcan (If: CONFIG_LINUX)
17128              Not documented
17129
17130       colo-compare
17131              Not documented
17132
17133       cryptodev-backend
17134              Not documented
17135
17136       cryptodev-backend-builtin
17137              Not documented
17138
17139       cryptodev-vhost-user (If: CONFIG_VHOST_CRYPTO)
17140              Not documented
17141
17142       dbus-vmstate
17143              Not documented
17144
17145       filter-buffer
17146              Not documented
17147
17148       filter-dump
17149              Not documented
17150
17151       filter-mirror
17152              Not documented
17153
17154       filter-redirector
17155              Not documented
17156
17157       filter-replay
17158              Not documented
17159
17160       filter-rewriter
17161              Not documented
17162
17163       input-barrier
17164              Not documented
17165
17166       input-linux (If: CONFIG_LINUX)
17167              Not documented
17168
17169       iothread
17170              Not documented
17171
17172       memory-backend-epc (If: CONFIG_LINUX)
17173              Not documented
17174
17175       memory-backend-file
17176              Not documented
17177
17178       memory-backend-memfd (If: CONFIG_LINUX)
17179              Not documented
17180
17181       memory-backend-ram
17182              Not documented
17183
17184       pef-guest
17185              Not documented
17186
17187       pr-manager-helper (If: CONFIG_LINUX)
17188              Not documented
17189
17190       qtest  Not documented
17191
17192       rng-builtin
17193              Not documented
17194
17195       rng-egd
17196              Not documented
17197
17198       rng-random (If: CONFIG_POSIX)
17199              Not documented
17200
17201       secret Not documented
17202
17203       secret_keyring (If: CONFIG_SECRET_KEYRING)
17204              Not documented
17205
17206       sev-guest
17207              Not documented
17208
17209       s390-pv-guest
17210              Not documented
17211
17212       throttle-group
17213              Not documented
17214
17215       tls-creds-anon
17216              Not documented
17217
17218       tls-creds-psk
17219              Not documented
17220
17221       tls-creds-x509
17222              Not documented
17223
17224       tls-cipher-suites
17225              Not documented
17226
17227       x-remote-object
17228              Not documented
17229
17230   Features
17231       unstable
17232              Member x-remote-object is experimental.
17233
17234   Since
17235       6.0
17236
17237   ObjectOptions (Object)
17238       Describes the options of a user creatable QOM object.
17239
17240   Members
17241       qom-type: ObjectType
17242              the class name for the object to be created
17243
17244       id: string
17245              the name of the new object
17246
17247       The members of AuthZListProperties when qom-type is "authz-list"
17248
17249       The members of AuthZListFileProperties when  qom-type  is  "authz-list‐
17250       file"
17251
17252       The members of AuthZPAMProperties when qom-type is "authz-pam"
17253
17254       The members of AuthZSimpleProperties when qom-type is "authz-simple"
17255
17256       The    members   of   CanHostSocketcanProperties   when   qom-type   is
17257       "can-host-socketcan" (If: CONFIG_LINUX)
17258
17259       The members of ColoCompareProperties when qom-type is "colo-compare"
17260
17261       The members  of  CryptodevBackendProperties  when  qom-type  is  "cryp‐
17262       todev-backend"
17263
17264       The  members  of  CryptodevBackendProperties  when  qom-type  is "cryp‐
17265       todev-backend-builtin"
17266
17267       The members of CryptodevVhostUserProperties  when  qom-type  is  "cryp‐
17268       todev-vhost-user" (If: CONFIG_VHOST_CRYPTO)
17269
17270       The members of DBusVMStateProperties when qom-type is "dbus-vmstate"
17271
17272       The members of FilterBufferProperties when qom-type is "filter-buffer"
17273
17274       The members of FilterDumpProperties when qom-type is "filter-dump"
17275
17276       The members of FilterMirrorProperties when qom-type is "filter-mirror"
17277
17278       The  members  of  FilterRedirectorProperties  when  qom-type  is  "fil‐
17279       ter-redirector"
17280
17281       The members of NetfilterProperties when qom-type is "filter-replay"
17282
17283       The  members  of  FilterRewriterProperties  when  qom-type   is   "fil‐
17284       ter-rewriter"
17285
17286       The members of InputBarrierProperties when qom-type is "input-barrier"
17287
17288       The members of InputLinuxProperties when qom-type is "input-linux" (If:
17289       CONFIG_LINUX)
17290
17291       The members of IothreadProperties when qom-type is "iothread"
17292
17293       The  members  of  MemoryBackendEpcProperties  when  qom-type  is  "mem‐
17294       ory-backend-epc" (If: CONFIG_LINUX)
17295
17296       The  members  of  MemoryBackendFileProperties  when  qom-type  is "mem‐
17297       ory-backend-file"
17298
17299       The members of  MemoryBackendMemfdProperties  when  qom-type  is  "mem‐
17300       ory-backend-memfd" (If: CONFIG_LINUX)
17301
17302       The  members  of MemoryBackendProperties when qom-type is "memory-back‐
17303       end-ram"
17304
17305       The members of  PrManagerHelperProperties  when  qom-type  is  "pr-man‐
17306       ager-helper" (If: CONFIG_LINUX)
17307
17308       The members of QtestProperties when qom-type is "qtest"
17309
17310       The members of RngProperties when qom-type is "rng-builtin"
17311
17312       The members of RngEgdProperties when qom-type is "rng-egd"
17313
17314       The  members  of RngRandomProperties when qom-type is "rng-random" (If:
17315       CONFIG_POSIX)
17316
17317       The members of SecretProperties when qom-type is "secret"
17318
17319       The  members  of  SecretKeyringProperties   when   qom-type   is   "se‐
17320       cret_keyring" (If: CONFIG_SECRET_KEYRING)
17321
17322       The members of SevGuestProperties when qom-type is "sev-guest"
17323
17324       The   members  of  ThrottleGroupProperties  when  qom-type  is  "throt‐
17325       tle-group"
17326
17327       The members of TlsCredsAnonProperties when qom-type is "tls-creds-anon"
17328
17329       The members of TlsCredsPskProperties when qom-type is "tls-creds-psk"
17330
17331       The members of TlsCredsX509Properties when qom-type is "tls-creds-x509"
17332
17333       The members of TlsCredsProperties when qom-type is "tls-cipher-suites"
17334
17335       The members of RemoteObjectProperties when  qom-type  is  "x-remote-ob‐
17336       ject"
17337
17338   Since
17339       6.0
17340
17341   object-add (Command)
17342       Create a QOM object.
17343
17344   Arguments
17345       The members of ObjectOptions
17346
17347   Returns
17348       Nothing on success Error if qom-type is not a valid class name
17349
17350   Since
17351       2.0
17352
17353   Example
17354          -> { "execute": "object-add",
17355               "arguments": { "qom-type": "rng-random", "id": "rng1",
17356                              "filename": "/dev/hwrng" } }
17357          <- { "return": {} }
17358
17359   object-del (Command)
17360       Remove a QOM object.
17361
17362   Arguments
17363       id: string
17364              the name of the QOM object to remove
17365
17366   Returns
17367       Nothing on success Error if id is not a valid id for a QOM object
17368
17369   Since
17370       2.0
17371
17372   Example
17373          -> { "execute": "object-del", "arguments": { "id": "rng1" } }
17374          <- { "return": {} }
17375

DEVICE INFRASTRUCTURE (QDEV)

17377   device-list-properties (Command)
17378       List properties associated with a device.
17379
17380   Arguments
17381       typename: string
17382              the type name of a device
17383
17384   Returns
17385       a list of ObjectPropertyInfo describing a devices properties
17386
17387   Note
17388       objects can create properties at runtime, for example to describe links
17389       between different devices and/or objects. These properties are not  in‐
17390       cluded in the output of this command.
17391
17392   Since
17393       1.2
17394
17395   device_add (Command)
17396       Add a device.
17397
17398   Arguments
17399       driver: string
17400              the name of the new device's driver
17401
17402       bus: string (optional)
17403              the device's parent bus (device tree path)
17404
17405       id: string (optional)
17406              the device's ID, must be unique
17407
17408   Features
17409       json-cli
17410              If present, the "-device" command line option supports JSON syn‐
17411              tax with a structure identical to the arguments of this command.
17412
17413       json-cli-hotplug
17414              If present, the "-device" command line option supports JSON syn‐
17415              tax without the reference counting leak that broke hot-unplug
17416
17417   Notes
17418       Additional arguments depend on the type.
17419
17420       1. For  detailed  information  about  this command, please refer to the
17421          'docs/qdev-device-use.txt' file.
17422
17423       2. It's possible to list device properties by  running  QEMU  with  the
17424          "-device DEVICE,help" command-line argument, where DEVICE is the de‐
17425          vice's name
17426
17427   Example
17428          -> { "execute": "device_add",
17429               "arguments": { "driver": "e1000", "id": "net1",
17430                              "bus": "pci.0",
17431                              "mac": "52:54:00:12:34:56" } }
17432          <- { "return": {} }
17433
17434   TODO
17435       This command effectively bypasses QAPI completely  due  to  its  "addi‐
17436       tional arguments" business.  It shouldn't have been added to the schema
17437       in this form.  It should be qapified properly, or replaced by  a  prop‐
17438       erly qapified command.
17439
17440   Since
17441       0.13
17442
17443   device_del (Command)
17444       Remove a device from a guest
17445
17446   Arguments
17447       id: string
17448              the device's ID or QOM path
17449
17450   Returns
17451       Nothing on success If id is not a valid device, DeviceNotFound
17452
17453   Notes
17454       When  this  command  completes,  the device may not be removed from the
17455       guest.  Hot removal is an operation that  requires  guest  cooperation.
17456       This  command  merely  requests  that  the  guest begin the hot removal
17457       process.  Completion of the device removal process is signaled  with  a
17458       DEVICE_DELETED  event.  Guest reset will automatically complete removal
17459       for all devices.  If a guest-side error in the hot removal  process  is
17460       detected,  the device will not be removed and a DEVICE_UNPLUG_GUEST_ER‐
17461       ROR event is sent.  Some errors cannot be detected.
17462
17463   Since
17464       0.14
17465
17466   Example
17467          -> { "execute": "device_del",
17468               "arguments": { "id": "net1" } }
17469          <- { "return": {} }
17470
17471          -> { "execute": "device_del",
17472               "arguments": { "id": "/machine/peripheral-anon/device[0]" } }
17473          <- { "return": {} }
17474
17475   DEVICE_DELETED (Event)
17476       Emitted whenever the device removal completion is acknowledged  by  the
17477       guest.   At this point, it's safe to reuse the specified device ID. De‐
17478       vice removal can be initiated by the guest or by HMP/QMP commands.
17479
17480   Arguments
17481       device: string (optional)
17482              the device's ID if it has one
17483
17484       path: string
17485              the device's QOM path
17486
17487   Since
17488       1.5
17489
17490   Example
17491          <- { "event": "DEVICE_DELETED",
17492               "data": { "device": "virtio-net-pci-0",
17493                         "path": "/machine/peripheral/virtio-net-pci-0" },
17494               "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
17495
17496   DEVICE_UNPLUG_GUEST_ERROR (Event)
17497       Emitted when a device hot unplug fails due to a guest reported error.
17498
17499   Arguments
17500       device: string (optional)
17501              the device's ID if it has one
17502
17503       path: string
17504              the device's QOM path
17505
17506   Since
17507       6.2
17508
17509   Example
17510          <- { "event": "DEVICE_UNPLUG_GUEST_ERROR"
17511               "data": { "device": "core1",
17512                         "path": "/machine/peripheral/core1" },
17513               },
17514               "timestamp": { "seconds": 1615570772, "microseconds": 202844 } }
17515

MACHINES

17517   SysEmuTarget (Enum)
17518       The comprehensive enumeration of QEMU system emulation ("softmmu") tar‐
17519       gets.  Run "./configure --help" in the project root directory, and look
17520       for the *-softmmu targets near the "--target-list" option. The individ‐
17521       ual target constants are not documented here, for the time being.
17522
17523   Values
17524       rx     since 5.0
17525
17526       avr    since 5.1
17527
17528       aarch64
17529              Not documented
17530
17531       alpha  Not documented
17532
17533       arm    Not documented
17534
17535       cris   Not documented
17536
17537       hppa   Not documented
17538
17539       i386   Not documented
17540
17541       m68k   Not documented
17542
17543       microblaze
17544              Not documented
17545
17546       microblazeel
17547              Not documented
17548
17549       mips   Not documented
17550
17551       mips64 Not documented
17552
17553       mips64el
17554              Not documented
17555
17556       mipsel Not documented
17557
17558       nios2  Not documented
17559
17560       or1k   Not documented
17561
17562       ppc    Not documented
17563
17564       ppc64  Not documented
17565
17566       riscv32
17567              Not documented
17568
17569       riscv64
17570              Not documented
17571
17572       s390x  Not documented
17573
17574       sh4    Not documented
17575
17576       sh4eb  Not documented
17577
17578       sparc  Not documented
17579
17580       sparc64
17581              Not documented
17582
17583       tricore
17584              Not documented
17585
17586       x86_64 Not documented
17587
17588       xtensa Not documented
17589
17590       xtensaeb
17591              Not documented
17592
17593   Notes
17594       The  resulting QMP strings can be appended to the "qemu-system-" prefix
17595       to produce the corresponding QEMU executable name. This  is  true  even
17596       for "qemu-system-x86_64".
17597
17598   Since
17599       3.0
17600
17601   CpuS390State (Enum)
17602       An enumeration of cpu states that can be assumed by a virtual S390 CPU
17603
17604   Values
17605       uninitialized
17606              Not documented
17607
17608       stopped
17609              Not documented
17610
17611       check-stop
17612              Not documented
17613
17614       operating
17615              Not documented
17616
17617       load   Not documented
17618
17619   Since
17620       2.12
17621
17622   CpuInfoS390 (Object)
17623       Additional information about a virtual S390 CPU
17624
17625   Members
17626       cpu-state: CpuS390State
17627              the virtual CPU's state
17628
17629   Since
17630       2.12
17631
17632   CpuInfoFast (Object)
17633       Information about a virtual CPU
17634
17635   Members
17636       cpu-index: int
17637              index of the virtual CPU
17638
17639       qom-path: string
17640              path to the CPU object in the QOM tree
17641
17642       thread-id: int
17643              ID of the underlying host thread
17644
17645       props: CpuInstanceProperties (optional)
17646              properties  describing  to which node/socket/core/thread virtual
17647              CPU belongs to, provided if supported by board
17648
17649       target: SysEmuTarget
17650              the QEMU system emulation target, which determines  which  addi‐
17651              tional fields will be listed (since 3.0)
17652
17653       The members of CpuInfoS390 when target is "s390x"
17654
17655   Since
17656       2.12
17657
17658   query-cpus-fast (Command)
17659       Returns information about all virtual CPUs.
17660
17661   Returns
17662       list of CpuInfoFast
17663
17664   Since
17665       2.12
17666
17667   Example
17668          -> { "execute": "query-cpus-fast" }
17669          <- { "return": [
17670                  {
17671                      "thread-id": 25627,
17672                      "props": {
17673                          "core-id": 0,
17674                          "thread-id": 0,
17675                          "socket-id": 0
17676                      },
17677                      "qom-path": "/machine/unattached/device[0]",
17678                      "target":"x86_64",
17679                      "cpu-index": 0
17680                  },
17681                  {
17682                      "thread-id": 25628,
17683                      "props": {
17684                          "core-id": 0,
17685                          "thread-id": 0,
17686                          "socket-id": 1
17687                      },
17688                      "qom-path": "/machine/unattached/device[2]",
17689                      "target":"x86_64",
17690                      "cpu-index": 1
17691                  }
17692              ]
17693          }
17694
17695   MachineInfo (Object)
17696       Information describing a machine.
17697
17698   Members
17699       name: string
17700              the name of the machine
17701
17702       alias: string (optional)
17703              an alias for the machine name
17704
17705       is-default: boolean (optional)
17706              whether the machine is default
17707
17708       cpu-max: int
17709              maximum number of CPUs supported by the machine type (since 1.5)
17710
17711       hotpluggable-cpus: boolean
17712              cpu hotplug via -device is supported (since 2.7)
17713
17714       numa-mem-supported: boolean
17715              true if '-numa node,mem' option is supported by the machine type
17716              and false otherwise (since 4.1)
17717
17718       deprecated: boolean
17719              if true, the machine type is deprecated and may  be  removed  in
17720              future versions of QEMU according to the QEMU deprecation policy
17721              (since 4.1)
17722
17723       default-cpu-type: string (optional)
17724              default CPU model typename if none is requested via the -cpu ar‐
17725              gument. (since 4.2)
17726
17727       default-ram-id: string (optional)
17728              the default ID of initial RAM memory backend (since 5.2)
17729
17730   Since
17731       1.2
17732
17733   query-machines (Command)
17734       Return a list of supported machines
17735
17736   Returns
17737       a list of MachineInfo
17738
17739   Since
17740       1.2
17741
17742   CurrentMachineParams (Object)
17743       Information describing the running machine parameters.
17744
17745   Members
17746       wakeup-suspend-support: boolean
17747              true if the machine supports wake up from suspend
17748
17749   Since
17750       4.0
17751
17752   query-current-machine (Command)
17753       Return information on the current virtual machine.
17754
17755   Returns
17756       CurrentMachineParams
17757
17758   Since
17759       4.0
17760
17761   TargetInfo (Object)
17762       Information describing the QEMU target.
17763
17764   Members
17765       arch: SysEmuTarget
17766              the target architecture
17767
17768   Since
17769       1.2
17770
17771   query-target (Command)
17772       Return information about the target for this QEMU
17773
17774   Returns
17775       TargetInfo
17776
17777   Since
17778       1.2
17779
17780   UuidInfo (Object)
17781       Guest UUID information (Universally Unique Identifier).
17782
17783   Members
17784       UUID: string
17785              the UUID of the guest
17786
17787   Since
17788       0.14
17789
17790   Notes
17791       If no UUID was specified for the guest, a null UUID is returned.
17792
17793   query-uuid (Command)
17794       Query the guest UUID information.
17795
17796   Returns
17797       The UuidInfo for the guest
17798
17799   Since
17800       0.14
17801
17802   Example
17803          -> { "execute": "query-uuid" }
17804          <- { "return": { "UUID": "550e8400-e29b-41d4-a716-446655440000" } }
17805
17806   GuidInfo (Object)
17807       GUID information.
17808
17809   Members
17810       guid: string
17811              the globally unique identifier
17812
17813   Since
17814       2.9
17815
17816   query-vm-generation-id (Command)
17817       Show Virtual Machine Generation ID
17818
17819   Since
17820       2.9
17821
17822   system_reset (Command)
17823       Performs a hard reset of a guest.
17824
17825   Since
17826       0.14
17827
17828   Example
17829          -> { "execute": "system_reset" }
17830          <- { "return": {} }
17831
17832   system_powerdown (Command)
17833       Requests that a guest perform a powerdown operation.
17834
17835   Since
17836       0.14
17837
17838   Notes
17839       A guest may or may not respond to this command.  This command returning
17840       does not indicate that a guest has accepted the request or that it  has
17841       shut  down.   Many guests will respond to this command by prompting the
17842       user in some way.
17843
17844   Example
17845          -> { "execute": "system_powerdown" }
17846          <- { "return": {} }
17847
17848   system_wakeup (Command)
17849       Wake up guest from suspend. If the guest has wake-up from suspend  sup‐
17850       port  enabled (wakeup-suspend-support flag from query-current-machine),
17851       wake-up guest from suspend if the guest is in SUSPENDED  state.  Return
17852       an error otherwise.
17853
17854   Since
17855       1.1
17856
17857   Returns
17858       nothing.
17859
17860   Note
17861       prior  to  4.0,  this command does nothing in case the guest isn't sus‐
17862       pended.
17863
17864   Example
17865          -> { "execute": "system_wakeup" }
17866          <- { "return": {} }
17867
17868   LostTickPolicy (Enum)
17869       Policy for handling lost ticks in timer devices.  Ticks end up  getting
17870       lost when, for example, the guest is paused.
17871
17872   Values
17873       discard
17874              throw  away  the missed ticks and continue with future injection
17875              normally.  The guest OS will see the timer jump ahead by  a  po‐
17876              tentially quite significant amount all at once, as if the inter‐
17877              vening chunk of time had simply not existed;  needless  to  say,
17878              such  a  sudden  jump can easily confuse a guest OS which is not
17879              specifically prepared to deal with it.  Assuming  the  guest  OS
17880              can deal correctly with the time jump, the time in the guest and
17881              in the host should now match.
17882
17883       delay  continue to deliver ticks at the normal rate.  The guest OS will
17884              not  notice  anything  is  amiss, as from its point of view time
17885              will have continued to flow normally.  The  time  in  the  guest
17886              should  now be behind the time in the host by exactly the amount
17887              of time during which ticks have been missed.
17888
17889       slew   deliver ticks at a higher rate  to  catch  up  with  the  missed
17890              ticks.   The guest OS will not notice anything is amiss, as from
17891              its point of view time will have  continued  to  flow  normally.
17892              Once  the  timer  has  managed  to catch up with all the missing
17893              ticks, the time in the guest and in the host should match.
17894
17895   Since
17896       2.0
17897
17898   inject-nmi (Command)
17899       Injects a Non-Maskable Interrupt into the default CPU (x86/s390) or all
17900       CPUs (ppc64).  The command fails when the guest doesn't support inject‐
17901       ing.
17902
17903   Returns
17904       If successful, nothing
17905
17906   Since
17907       0.14
17908
17909   Note
17910       prior to 2.1, this command was only supported for x86 and s390 VMs
17911
17912   Example
17913          -> { "execute": "inject-nmi" }
17914          <- { "return": {} }
17915
17916   KvmInfo (Object)
17917       Information about support for KVM acceleration
17918
17919   Members
17920       enabled: boolean
17921              true if KVM acceleration is active
17922
17923       present: boolean
17924              true if KVM acceleration is built into this executable
17925
17926   Since
17927       0.14
17928
17929   query-kvm (Command)
17930       Returns information about KVM acceleration
17931
17932   Returns
17933       KvmInfo
17934
17935   Since
17936       0.14
17937
17938   Example
17939          -> { "execute": "query-kvm" }
17940          <- { "return": { "enabled": true, "present": true } }
17941
17942   NumaOptionsType (Enum)
17943   Values
17944       node   NUMA nodes configuration
17945
17946       dist   NUMA distance configuration (since 2.10)
17947
17948       cpu    property based CPU(s) to node mapping (Since: 2.10)
17949
17950       hmat-lb
17951              memory latency and bandwidth information (Since: 5.0)
17952
17953       hmat-cache
17954              memory side cache information (Since: 5.0)
17955
17956   Since
17957       2.1
17958
17959   NumaOptions (Object)
17960       A discriminated record of NUMA options. (for OptsVisitor)
17961
17962   Members
17963       type: NumaOptionsType
17964              Not documented
17965
17966       The members of NumaNodeOptions when type is "node"
17967
17968       The members of NumaDistOptions when type is "dist"
17969
17970       The members of NumaCpuOptions when type is "cpu"
17971
17972       The members of NumaHmatLBOptions when type is "hmat-lb"
17973
17974       The members of NumaHmatCacheOptions when type is "hmat-cache"
17975
17976   Since
17977       2.1
17978
17979   NumaNodeOptions (Object)
17980       Create a guest NUMA node. (for OptsVisitor)
17981
17982   Members
17983       nodeid: int (optional)
17984              NUMA node ID (increase by 1 from 0 if omitted)
17985
17986       cpus: array of int (optional)
17987
17988              VCPUs belonging to this node (assign VCPUS round-robin
17989                     if omitted)
17990
17991       mem: int (optional)
17992              memory size  of  this  node;  mutually  exclusive  with  memdev.
17993              Equally  divide  total memory among nodes if both mem and memdev
17994              are omitted.
17995
17996       memdev: string (optional)
17997              memory backend object.  If specified for one node,  it  must  be
17998              specified for all nodes.
17999
18000       initiator: int (optional)
18001              defined  in ACPI 6.3 Chapter 5.2.27.3 Table 5-145, points to the
18002              nodeid which has the memory controller responsible for this NUMA
18003              node.  This field provides additional information as to the ini‐
18004              tiator node that is closest (as in directly  attached)  to  this
18005              node, and therefore has the best performance (since 5.0)
18006
18007   Since
18008       2.1
18009
18010   NumaDistOptions (Object)
18011       Set the distance between 2 NUMA nodes.
18012
18013   Members
18014       src: int
18015              source NUMA node.
18016
18017       dst: int
18018              destination NUMA node.
18019
18020       val: int
18021              NUMA distance from source node to destination node.  When a node
18022              is unreachable from another node, set the distance between  them
18023              to 255.
18024
18025   Since
18026       2.10
18027
18028   X86CPURegister32 (Enum)
18029       A X86 32-bit register
18030
18031   Values
18032       EAX    Not documented
18033
18034       EBX    Not documented
18035
18036       ECX    Not documented
18037
18038       EDX    Not documented
18039
18040       ESP    Not documented
18041
18042       EBP    Not documented
18043
18044       ESI    Not documented
18045
18046       EDI    Not documented
18047
18048   Since
18049       1.5
18050
18051   X86CPUFeatureWordInfo (Object)
18052       Information about a X86 CPU feature word
18053
18054   Members
18055       cpuid-input-eax: int
18056              Input EAX value for CPUID instruction for that feature word
18057
18058       cpuid-input-ecx: int (optional)
18059              Input ECX value for CPUID instruction for that feature word
18060
18061       cpuid-register: X86CPURegister32
18062              Output register containing the feature bits
18063
18064       features: int
18065              value of output register, containing the feature bits
18066
18067   Since
18068       1.5
18069
18070   DummyForceArrays (Object)
18071       Not  used  by  QMP; hack to let us use X86CPUFeatureWordInfoList inter‐
18072       nally
18073
18074   Members
18075       unused: array of X86CPUFeatureWordInfo
18076              Not documented
18077
18078   Since
18079       2.5
18080
18081   NumaCpuOptions (Object)
18082       Option "-numa cpu" overrides default cpu to node mapping.   It  accepts
18083       the   same   set  of  cpu  properties  as  returned  by  query-hotplug‐
18084       gable-cpus[].props, where node-id could be  used  to  override  default
18085       node mapping.
18086
18087   Members
18088       The members of CpuInstanceProperties
18089
18090   Since
18091       2.10
18092
18093   HmatLBMemoryHierarchy (Enum)
18094       The  memory  hierarchy in the System Locality Latency and Bandwidth In‐
18095       formation Structure of HMAT (Heterogeneous Memory Attribute Table)
18096
18097       For more information about HmatLBMemoryHierarchy, see chapter 5.2.27.4:
18098       Table 5-146: Field "Flags" of ACPI 6.3 spec.
18099
18100   Values
18101       memory the structure represents the memory performance
18102
18103       first-level
18104              first level of memory side cache
18105
18106       second-level
18107              second level of memory side cache
18108
18109       third-level
18110              third level of memory side cache
18111
18112   Since
18113       5.0
18114
18115   HmatLBDataType (Enum)
18116       Data  type  in  the  System  Locality Latency and Bandwidth Information
18117       Structure of HMAT (Heterogeneous Memory Attribute Table)
18118
18119       For more information about HmatLBDataType, see chapter 5.2.27.4:  Table
18120       5-146:  Field "Data Type" of ACPI 6.3 spec.
18121
18122   Values
18123       access-latency
18124              access latency (nanoseconds)
18125
18126       read-latency
18127              read latency (nanoseconds)
18128
18129       write-latency
18130              write latency (nanoseconds)
18131
18132       access-bandwidth
18133              access bandwidth (Bytes per second)
18134
18135       read-bandwidth
18136              read bandwidth (Bytes per second)
18137
18138       write-bandwidth
18139              write bandwidth (Bytes per second)
18140
18141   Since
18142       5.0
18143
18144   NumaHmatLBOptions (Object)
18145       Set  the system locality latency and bandwidth information between Ini‐
18146       tiator and Target proximity Domains.
18147
18148       For more information about NumaHmatLBOptions, see chapter 5.2.27.4: Ta‐
18149       ble 5-146 of ACPI 6.3 spec.
18150
18151   Members
18152       initiator: int
18153              the Initiator Proximity Domain.
18154
18155       target: int
18156              the Target Proximity Domain.
18157
18158       hierarchy: HmatLBMemoryHierarchy
18159              the  Memory  Hierarchy.  Indicates  the performance of memory or
18160              side cache.
18161
18162       data-type: HmatLBDataType
18163              presents the type of data, access/read/write latency or hit  la‐
18164              tency.
18165
18166       latency: int (optional)
18167              the  value of latency from initiator to target proximity domain,
18168              the latency unit is "ns(nanosecond)".
18169
18170       bandwidth: int (optional)
18171              the value of bandwidth between initiator  and  target  proximity
18172              domain, the bandwidth unit is "Bytes per second".
18173
18174   Since
18175       5.0
18176
18177   HmatCacheAssociativity (Enum)
18178       Cache  associativity  in the Memory Side Cache Information Structure of
18179       HMAT
18180
18181       For more information of HmatCacheAssociativity, see  chapter  5.2.27.5:
18182       Table 5-147 of ACPI 6.3 spec.
18183
18184   Values
18185       none
18186
18187              None (no memory side cache in this proximity domain,
18188                     or cache associativity unknown)
18189
18190       direct Direct Mapped
18191
18192       complex
18193              Complex Cache Indexing (implementation specific)
18194
18195   Since
18196       5.0
18197
18198   HmatCacheWritePolicy (Enum)
18199       Cache  write  policy  in the Memory Side Cache Information Structure of
18200       HMAT
18201
18202       For more information of HmatCacheWritePolicy, see chapter 5.2.27.5: Ta‐
18203       ble 5-147: Field "Cache Attributes" of ACPI 6.3 spec.
18204
18205   Values
18206       none   None  (no  memory  side cache in this proximity domain, or cache
18207              write policy unknown)
18208
18209       write-back
18210              Write Back (WB)
18211
18212       write-through
18213              Write Through (WT)
18214
18215   Since
18216       5.0
18217
18218   NumaHmatCacheOptions (Object)
18219       Set the memory side cache information for a given memory domain.
18220
18221       For more information of NumaHmatCacheOptions, see chapter 5.2.27.5: Ta‐
18222       ble 5-147: Field "Cache Attributes" of ACPI 6.3 spec.
18223
18224   Members
18225       node-id: int
18226              the memory proximity domain to which the memory belongs.
18227
18228       size: int
18229              the size of memory side cache in bytes.
18230
18231       level: int
18232              the cache level described in this structure.
18233
18234       associativity: HmatCacheAssociativity
18235              the   cache   associativity,  none/direct-mapped/complex(complex
18236              cache indexing).
18237
18238       policy: HmatCacheWritePolicy
18239              the write policy, none/write-back/write-through.
18240
18241       line: int
18242              the cache Line size in bytes.
18243
18244   Since
18245       5.0
18246
18247   memsave (Command)
18248       Save a portion of guest memory to a file.
18249
18250   Arguments
18251       val: int
18252              the virtual address of the guest to start from
18253
18254       size: int
18255              the size of memory region to save
18256
18257       filename: string
18258              the file to save the memory to as binary data
18259
18260       cpu-index: int (optional)
18261              the index of the virtual CPU to use for translating the  virtual
18262              address (defaults to CPU 0)
18263
18264   Returns
18265       Nothing on success
18266
18267   Since
18268       0.14
18269
18270   Notes
18271       Errors were not reliably returned until 1.1
18272
18273   Example
18274          -> { "execute": "memsave",
18275               "arguments": { "val": 10,
18276                              "size": 100,
18277                              "filename": "/tmp/virtual-mem-dump" } }
18278          <- { "return": {} }
18279
18280   pmemsave (Command)
18281       Save a portion of guest physical memory to a file.
18282
18283   Arguments
18284       val: int
18285              the physical address of the guest to start from
18286
18287       size: int
18288              the size of memory region to save
18289
18290       filename: string
18291              the file to save the memory to as binary data
18292
18293   Returns
18294       Nothing on success
18295
18296   Since
18297       0.14
18298
18299   Notes
18300       Errors were not reliably returned until 1.1
18301
18302   Example
18303          -> { "execute": "pmemsave",
18304               "arguments": { "val": 10,
18305                              "size": 100,
18306                              "filename": "/tmp/physical-mem-dump" } }
18307          <- { "return": {} }
18308
18309   Memdev (Object)
18310       Information about memory backend
18311
18312   Members
18313       id: string (optional)
18314              backend's ID if backend has 'id' property (since 2.9)
18315
18316       size: int
18317              memory backend size
18318
18319       merge: boolean
18320              whether memory merge support is enabled
18321
18322       dump: boolean
18323              whether memory backend's memory is included in a core dump
18324
18325       prealloc: boolean
18326              whether memory was preallocated
18327
18328       share: boolean
18329              whether memory is private to QEMU or shared (since 6.1)
18330
18331       reserve: boolean (optional)
18332              whether  swap  space (or huge pages) was reserved if applicable.
18333              This corresponds to the user configuration and  not  the  actual
18334              behavior  implemented in the OS to perform the reservation.  For
18335              example, Linux will never reserve swap  space  for  shared  file
18336              mappings. (since 6.1)
18337
18338       host-nodes: array of int
18339              host nodes for its memory policy
18340
18341       policy: HostMemPolicy
18342              memory policy of memory backend
18343
18344   Since
18345       2.1
18346
18347   query-memdev (Command)
18348       Returns information for all memory backends.
18349
18350   Returns
18351       a list of Memdev.
18352
18353   Since
18354       2.1
18355
18356   Example
18357          -> { "execute": "query-memdev" }
18358          <- { "return": [
18359                 {
18360                   "id": "mem1",
18361                   "size": 536870912,
18362                   "merge": false,
18363                   "dump": true,
18364                   "prealloc": false,
18365                   "share": false,
18366                   "host-nodes": [0, 1],
18367                   "policy": "bind"
18368                 },
18369                 {
18370                   "size": 536870912,
18371                   "merge": false,
18372                   "dump": true,
18373                   "prealloc": true,
18374                   "share": false,
18375                   "host-nodes": [2, 3],
18376                   "policy": "preferred"
18377                 }
18378               ]
18379             }
18380
18381   CpuInstanceProperties (Object)
18382       List of properties to be used for hotplugging a CPU instance, it should
18383       be passed by management with device_add command when  a  CPU  is  being
18384       hotplugged.
18385
18386   Members
18387       node-id: int (optional)
18388              NUMA node ID the CPU belongs to
18389
18390       socket-id: int (optional)
18391              socket number within node/board the CPU belongs to
18392
18393       die-id: int (optional)
18394              die number within socket the CPU belongs to (since 4.1)
18395
18396       core-id: int (optional)
18397              core number within die the CPU belongs to
18398
18399       thread-id: int (optional)
18400              thread number within core the CPU belongs to
18401
18402   Note
18403       currently  there  are 5 properties that could be present but management
18404       should be prepared to pass through  other  properties  with  device_add
18405       command to allow for future interface extension. This also requires the
18406       filed names to be kept in sync  with  the  properties  passed  to  -de‐
18407       vice/device_add.
18408
18409   Since
18410       2.7
18411
18412   HotpluggableCPU (Object)
18413   Members
18414       type: string
18415              CPU object type for usage with device_add command
18416
18417       props: CpuInstanceProperties
18418              list of properties to be used for hotplugging CPU
18419
18420       vcpus-count: int
18421              number of logical VCPU threads HotpluggableCPU provides
18422
18423       qom-path: string (optional)
18424              link  to existing CPU object if CPU is present or omitted if CPU
18425              is not present.
18426
18427   Since
18428       2.7
18429
18430   query-hotpluggable-cpus (Command)
18431   TODO
18432       Better documentation; currently there is none.
18433
18434   Returns
18435       a list of HotpluggableCPU objects.
18436
18437   Since
18438       2.7
18439
18440   Example
18441          For pseries machine type started with -smp 2,cores=2,maxcpus=4 -cpu POWER8:
18442
18443          -> { "execute": "query-hotpluggable-cpus" }
18444          <- {"return": [
18445               { "props": { "core": 8 }, "type": "POWER8-spapr-cpu-core",
18446                 "vcpus-count": 1 },
18447               { "props": { "core": 0 }, "type": "POWER8-spapr-cpu-core",
18448                 "vcpus-count": 1, "qom-path": "/machine/unattached/device[0]"}
18449             ]}'
18450
18451          For pc machine type started with -smp 1,maxcpus=2:
18452
18453          -> { "execute": "query-hotpluggable-cpus" }
18454          <- {"return": [
18455               {
18456                  "type": "qemu64-x86_64-cpu", "vcpus-count": 1,
18457                  "props": {"core-id": 0, "socket-id": 1, "thread-id": 0}
18458               },
18459               {
18460                  "qom-path": "/machine/unattached/device[0]",
18461                  "type": "qemu64-x86_64-cpu", "vcpus-count": 1,
18462                  "props": {"core-id": 0, "socket-id": 0, "thread-id": 0}
18463               }
18464             ]}
18465
18466          For s390x-virtio-ccw machine type started with -smp 1,maxcpus=2 -cpu qemu
18467          (Since: 2.11):
18468
18469          -> { "execute": "query-hotpluggable-cpus" }
18470          <- {"return": [
18471               {
18472                  "type": "qemu-s390x-cpu", "vcpus-count": 1,
18473                  "props": { "core-id": 1 }
18474               },
18475               {
18476                  "qom-path": "/machine/unattached/device[0]",
18477                  "type": "qemu-s390x-cpu", "vcpus-count": 1,
18478                  "props": { "core-id": 0 }
18479               }
18480             ]}
18481
18482   set-numa-node (Command)
18483       Runtime equivalent of '-numa' CLI  option,  available  at  preconfigure
18484       stage to configure numa mapping before initializing machine.
18485
18486       Since 3.0
18487
18488   Arguments
18489       The members of NumaOptions
18490
18491   balloon (Command)
18492       Request the balloon driver to change its balloon size.
18493
18494   Arguments
18495       value: int
18496              the  target  logical size of the VM in bytes.  We can deduce the
18497              size of the balloon using this formula:
18498                 logical_vm_size = vm_ram_size - balloon_size
18499
18500              From it we have: balloon_size = vm_ram_size - value
18501
18502   Returns
18503       • Nothing on success
18504
18505       • If the balloon driver is enabled but not functional because  the  KVM
18506         kernel module cannot support it, KvmMissingCap
18507
18508       • If no balloon device is present, DeviceNotActive
18509
18510   Notes
18511       This  command just issues a request to the guest.  When it returns, the
18512       balloon size may not have changed.  A guest can change the balloon size
18513       independent of this command.
18514
18515   Since
18516       0.14
18517
18518   Example
18519          -> { "execute": "balloon", "arguments": { "value": 536870912 } }
18520          <- { "return": {} }
18521
18522          With a 2.5GiB guest this command inflated the ballon to 3GiB.
18523
18524   BalloonInfo (Object)
18525       Information about the guest balloon device.
18526
18527   Members
18528       actual: int
18529              the  logical  size  of  the  VM  in  bytes  Formula  used: logi‐
18530              cal_vm_size = vm_ram_size - balloon_size
18531
18532   Since
18533       0.14
18534
18535   query-balloon (Command)
18536       Return information about the balloon device.
18537
18538   Returns
18539BalloonInfo on success
18540
18541       • If the balloon driver is enabled but not functional because  the  KVM
18542         kernel module cannot support it, KvmMissingCap
18543
18544       • If no balloon device is present, DeviceNotActive
18545
18546   Since
18547       0.14
18548
18549   Example
18550          -> { "execute": "query-balloon" }
18551          <- { "return": {
18552                   "actual": 1073741824,
18553                }
18554             }
18555
18556   BALLOON_CHANGE (Event)
18557       Emitted  when the guest changes the actual BALLOON level. This value is
18558       equivalent to the actual field return by the 'query-balloon' command
18559
18560   Arguments
18561       actual: int
18562              the logical  size  of  the  VM  in  bytes  Formula  used:  logi‐
18563              cal_vm_size = vm_ram_size - balloon_size
18564
18565   Note
18566       this event is rate-limited.
18567
18568   Since
18569       1.2
18570
18571   Example
18572          <- { "event": "BALLOON_CHANGE",
18573               "data": { "actual": 944766976 },
18574               "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
18575
18576   MemoryInfo (Object)
18577       Actual memory information in bytes.
18578
18579   Members
18580       base-memory: int
18581              size of "base" memory specified with command line option -m.
18582
18583       plugged-memory: int (optional)
18584              size  of memory that can be hot-unplugged. This field is omitted
18585              if target doesn't support memory hotplug (i.e. CONFIG_MEM_DEVICE
18586              not defined at build time).
18587
18588   Since
18589       2.11
18590
18591   query-memory-size-summary (Command)
18592       Return  the  amount of initially allocated and present hotpluggable (if
18593       enabled) memory in bytes.
18594
18595   Example
18596          -> { "execute": "query-memory-size-summary" }
18597          <- { "return": { "base-memory": 4294967296, "plugged-memory": 0 } }
18598
18599   Since
18600       2.11
18601
18602   PCDIMMDeviceInfo (Object)
18603       PCDIMMDevice state information
18604
18605   Members
18606       id: string (optional)
18607              device's ID
18608
18609       addr: int
18610              physical address, where device is mapped
18611
18612       size: int
18613              size of memory that the device provides
18614
18615       slot: int
18616              slot number at which device is plugged in
18617
18618       node: int
18619              NUMA node number where device is plugged in
18620
18621       memdev: string
18622              memory backend linked with device
18623
18624       hotplugged: boolean
18625              true if device was hotplugged
18626
18627       hotpluggable: boolean
18628              true if device if could be added/removed while machine  is  run‐
18629              ning
18630
18631   Since
18632       2.1
18633
18634   VirtioPMEMDeviceInfo (Object)
18635       VirtioPMEM state information
18636
18637   Members
18638       id: string (optional)
18639              device's ID
18640
18641       memaddr: int
18642              physical address in memory, where device is mapped
18643
18644       size: int
18645              size of memory that the device provides
18646
18647       memdev: string
18648              memory backend linked with device
18649
18650   Since
18651       4.1
18652
18653   VirtioMEMDeviceInfo (Object)
18654       VirtioMEMDevice state information
18655
18656   Members
18657       id: string (optional)
18658              device's ID
18659
18660       memaddr: int
18661              physical address in memory, where device is mapped
18662
18663       requested-size: int
18664              the user requested size of the device
18665
18666       size: int
18667              the (current) size of memory that the device provides
18668
18669       max-size: int
18670              the maximum size of memory that the device can provide
18671
18672       block-size: int
18673              the block size of memory that the device provides
18674
18675       node: int
18676              NUMA node number where device is assigned to
18677
18678       memdev: string
18679              memory backend linked with the region
18680
18681   Since
18682       5.1
18683
18684   SgxEPCDeviceInfo (Object)
18685       Sgx EPC state information
18686
18687   Members
18688       id: string (optional)
18689              device's ID
18690
18691       memaddr: int
18692              physical address in memory, where device is mapped
18693
18694       size: int
18695              size of memory that the device provides
18696
18697       memdev: string
18698              memory backend linked with device
18699
18700       node: int
18701              the numa node (Since: 7.0)
18702
18703   Since
18704       6.2
18705
18706   MemoryDeviceInfoKind (Enum)
18707   Values
18708       dimm   Not documented
18709
18710       nvdimm Not documented
18711
18712       virtio-pmem
18713              Not documented
18714
18715       virtio-mem
18716              Not documented
18717
18718       sgx-epc
18719              Not documented
18720
18721   Since
18722       2.1
18723
18724   PCDIMMDeviceInfoWrapper (Object)
18725   Members
18726       data: PCDIMMDeviceInfo
18727              Not documented
18728
18729   Since
18730       2.1
18731
18732   VirtioPMEMDeviceInfoWrapper (Object)
18733   Members
18734       data: VirtioPMEMDeviceInfo
18735              Not documented
18736
18737   Since
18738       2.1
18739
18740   VirtioMEMDeviceInfoWrapper (Object)
18741   Members
18742       data: VirtioMEMDeviceInfo
18743              Not documented
18744
18745   Since
18746       2.1
18747
18748   SgxEPCDeviceInfoWrapper (Object)
18749   Members
18750       data: SgxEPCDeviceInfo
18751              Not documented
18752
18753   Since
18754       6.2
18755
18756   MemoryDeviceInfo (Object)
18757       Union containing information about a memory device
18758
18759       nvdimm is included since 2.12. virtio-pmem is included since 4.1.  vir‐
18760       tio-mem is included since 5.1. sgx-epc is included since 6.2.
18761
18762   Members
18763       type: MemoryDeviceInfoKind
18764              Not documented
18765
18766       The members of PCDIMMDeviceInfoWrapper when type is "dimm"
18767
18768       The members of PCDIMMDeviceInfoWrapper when type is "nvdimm"
18769
18770       The members of VirtioPMEMDeviceInfoWrapper when type is "virtio-pmem"
18771
18772       The members of VirtioMEMDeviceInfoWrapper when type is "virtio-mem"
18773
18774       The members of SgxEPCDeviceInfoWrapper when type is "sgx-epc"
18775
18776   Since
18777       2.1
18778
18779   SgxEPC (Object)
18780       Sgx EPC cmdline information
18781
18782   Members
18783       memdev: string
18784              memory backend linked with device
18785
18786       node: int
18787              the numa node (Since: 7.0)
18788
18789   Since
18790       6.2
18791
18792   SgxEPCProperties (Object)
18793       SGX properties of machine types.
18794
18795   Members
18796       sgx-epc: array of SgxEPC
18797              list of ids of memory-backend-epc objects.
18798
18799   Since
18800       6.2
18801
18802   query-memory-devices (Command)
18803       Lists available memory devices and their state
18804
18805   Since
18806       2.1
18807
18808   Example
18809          -> { "execute": "query-memory-devices" }
18810          <- { "return": [ { "data":
18811                                { "addr": 5368709120,
18812                                  "hotpluggable": true,
18813                                  "hotplugged": true,
18814                                  "id": "d1",
18815                                  "memdev": "/objects/memX",
18816                                  "node": 0,
18817                                  "size": 1073741824,
18818                                  "slot": 0},
18819                             "type": "dimm"
18820                           } ] }
18821
18822   MEMORY_DEVICE_SIZE_CHANGE (Event)
18823       Emitted when the size of a memory device changes. Only emitted for mem‐
18824       ory  devices that can actually change the size (e.g., virtio-mem due to
18825       guest action).
18826
18827   Arguments
18828       id: string (optional)
18829              device's ID
18830
18831       size: int
18832              the new size of memory that the device provides
18833
18834       qom-path: string
18835              path to the device object in the QOM tree (since 6.2)
18836
18837   Note
18838       this event is rate-limited.
18839
18840   Since
18841       5.1
18842
18843   Example
18844          <- { "event": "MEMORY_DEVICE_SIZE_CHANGE",
18845               "data": { "id": "vm0", "size": 1073741824,
18846                         "qom-path": "/machine/unattached/device[2]" },
18847               "timestamp": { "seconds": 1588168529, "microseconds": 201316 } }
18848
18849   MEM_UNPLUG_ERROR (Event)
18850       Emitted when memory hot unplug error occurs.
18851
18852   Arguments
18853       device: string
18854              device name
18855
18856       msg: string
18857              Informative message
18858
18859   Features
18860       deprecated
18861              This event is deprecated. Use DEVICE_UNPLUG_GUEST_ERROR instead.
18862
18863   Since
18864       2.4
18865
18866   Example
18867          <- { "event": "MEM_UNPLUG_ERROR"
18868               "data": { "device": "dimm1",
18869                         "msg": "acpi: device unplug for unsupported device"
18870               },
18871               "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
18872
18873   SMPConfiguration (Object)
18874       Schema for CPU topology configuration.  A missing value lets QEMU  fig‐
18875       ure out a suitable value based on the ones that are provided.
18876
18877   Members
18878       cpus: int (optional)
18879              number of virtual CPUs in the virtual machine
18880
18881       sockets: int (optional)
18882              number of sockets in the CPU topology
18883
18884       dies: int (optional)
18885              number of dies per socket in the CPU topology
18886
18887       clusters: int (optional)
18888              number of clusters per die in the CPU topology (since 7.0)
18889
18890       cores: int (optional)
18891              number of cores per cluster in the CPU topology
18892
18893       threads: int (optional)
18894              number of threads per core in the CPU topology
18895
18896       maxcpus: int (optional)
18897              maximum  number  of hotpluggable virtual CPUs in the virtual ma‐
18898              chine
18899
18900   Since
18901       6.1
18902
18903   x-query-irq (Command)
18904       Query interrupt statistics
18905
18906   Features
18907       unstable
18908              This command is meant for debugging.
18909
18910   Returns
18911       interrupt statistics
18912
18913   Since
18914       6.2
18915
18916   x-query-jit (Command)
18917       Query TCG compiler statistics
18918
18919   Features
18920       unstable
18921              This command is meant for debugging.
18922
18923   Returns
18924       TCG compiler statistics
18925
18926   Since
18927       6.2
18928
18929   If
18930       CONFIG_TCG
18931
18932   x-query-numa (Command)
18933       Query NUMA topology information
18934
18935   Features
18936       unstable
18937              This command is meant for debugging.
18938
18939   Returns
18940       topology information
18941
18942   Since
18943       6.2
18944
18945   x-query-opcount (Command)
18946       Query TCG opcode counters
18947
18948   Features
18949       unstable
18950              This command is meant for debugging.
18951
18952   Returns
18953       TCG opcode counters
18954
18955   Since
18956       6.2
18957
18958   If
18959       CONFIG_TCG
18960
18961   x-query-profile (Command)
18962       Query TCG profiling information
18963
18964   Features
18965       unstable
18966              This command is meant for debugging.
18967
18968   Returns
18969       profile information
18970
18971   Since
18972       6.2
18973
18974   If
18975       CONFIG_TCG
18976
18977   x-query-ramblock (Command)
18978       Query system ramblock information
18979
18980   Features
18981       unstable
18982              This command is meant for debugging.
18983
18984   Returns
18985       system ramblock information
18986
18987   Since
18988       6.2
18989
18990   x-query-rdma (Command)
18991       Query RDMA state
18992
18993   Features
18994       unstable
18995              This command is meant for debugging.
18996
18997   Returns
18998       RDMA state
18999
19000   Since
19001       6.2
19002
19003   x-query-roms (Command)
19004       Query information on the registered ROMS
19005
19006   Features
19007       unstable
19008              This command is meant for debugging.
19009
19010   Returns
19011       registered ROMs
19012
19013   Since
19014       6.2
19015
19016   x-query-usb (Command)
19017       Query information on the USB devices
19018
19019   Features
19020       unstable
19021              This command is meant for debugging.
19022
19023   Returns
19024       USB device information
19025
19026   Since
19027       6.2
19028
19029   SmbiosEntryPointType (Enum)
19030   Values
19031       32     SMBIOS version 2.1 (32-bit) Entry Point
19032
19033       64     SMBIOS version 3.0 (64-bit) Entry Point
19034
19035   Since
19036       7.0
19037
19038   CpuModelInfo (Object)
19039       Virtual CPU model.
19040
19041       A CPU model consists of the name of a CPU definition,  to  which  delta
19042       changes  are  applied  (e.g. features added/removed). Most magic values
19043       that an architecture might require should be hidden  behind  the  name.
19044       However, if required, architectures can expose relevant properties.
19045
19046   Members
19047       name: string
19048              the name of the CPU definition the model is based on
19049
19050       props: value (optional)
19051              a dictionary of QOM properties to be applied
19052
19053   Since
19054       2.8
19055
19056   CpuModelExpansionType (Enum)
19057       An enumeration of CPU model expansion types.
19058
19059   Values
19060       static Expand  to  a  static  CPU model, a combination of a static base
19061              model name and property delta changes. As the static base  model
19062              will  never change, the expanded CPU model will be the same, in‐
19063              dependent of QEMU version, machine type,  machine  options,  and
19064              accelerator options.  Therefore, the resulting model can be used
19065              by tooling without having to specify a compatibility  machine  -
19066              e.g. when displaying the "host" model. The static CPU models are
19067              migration-safe.
19068
19069       full   Expand all properties. The produced model is not  guaranteed  to
19070              be migration-safe, but allows tooling to get an insight and work
19071              with model details.
19072
19073   Note
19074       When a non-migration-safe CPU model is expanded in  static  mode,  some
19075       features enabled by the CPU model may be omitted, because they can't be
19076       implemented  by  a  static  CPU  model  definition  (e.g.  cache   info
19077       passthrough and PMU passthrough in x86). If you need an accurate repre‐
19078       sentation of the features enabled by a  non-migration-safe  CPU  model,
19079       use  full.  If you need a static representation that will keep ABI com‐
19080       patibility even when changing QEMU version or machine-type, use  static
19081       (but keep in mind that some features may be omitted).
19082
19083   Since
19084       2.8
19085
19086   CpuModelCompareResult (Enum)
19087       An  enumeration  of CPU model comparison results. The result is usually
19088       calculated using e.g. CPU features or CPU generations.
19089
19090   Values
19091       incompatible
19092              If model A is incompatible to model B, model A is not guaranteed
19093              to run where model B runs and the other way around.
19094
19095       identical
19096              If model A is identical to model B, model A is guaranteed to run
19097              where model B runs and the other way around.
19098
19099       superset
19100              If model A is a superset of model B, model B  is  guaranteed  to
19101              run  where model A runs. There are no guarantees about the other
19102              way.
19103
19104       subset If model A is a subset of model B, model A is guaranteed to  run
19105              where model B runs. There are no guarantees about the other way.
19106
19107   Since
19108       2.8
19109
19110   CpuModelBaselineInfo (Object)
19111       The result of a CPU model baseline.
19112
19113   Members
19114       model: CpuModelInfo
19115              the baselined CpuModelInfo.
19116
19117   Since
19118       2.8
19119
19120   If
19121       TARGET_S390X
19122
19123   CpuModelCompareInfo (Object)
19124       The result of a CPU model comparison.
19125
19126   Members
19127       result: CpuModelCompareResult
19128              The result of the compare operation.
19129
19130       responsible-properties: array of string
19131              List  of  properties that led to the comparison result not being
19132              identical.
19133       responsible-properties is a list of QOM property names that led to both
19134       CPUs  not  being detected as identical. For identical models, this list
19135       is empty.  If a QOM property is read-only, that means there's no  known
19136       way  to  make  the  CPU  models identical. If the special property name
19137       "type" is included, the models are by definition not identical and can‐
19138       not be made identical.
19139
19140   Since
19141       2.8
19142
19143   If
19144       TARGET_S390X
19145
19146   query-cpu-model-comparison (Command)
19147       Compares  two CPU models, returning how they compare in a specific con‐
19148       figuration. The results indicates how  both  models  compare  regarding
19149       runnability.  This result can be used by tooling to make decisions if a
19150       certain CPU model will run in a certain configuration or if a  compati‐
19151       ble CPU model has to be created by baselining.
19152
19153       Usually, a CPU model is compared against the maximum possible CPU model
19154       of a certain configuration (e.g. the "host" model for KVM). If that CPU
19155       model is identical or a subset, it will run in that configuration.
19156
19157       The result returned by this command may be affected by:
19158
19159       • QEMU  version:  CPU  models  may look different depending on the QEMU
19160         version.   (Except  for  CPU   models   reported   as   "static"   in
19161         query-cpu-definitions.)
19162
19163       • machine-type:  CPU  model  may  look  different  depending on the ma‐
19164         chine-type.   (Except  for  CPU  models  reported  as   "static"   in
19165         query-cpu-definitions.)
19166
19167       • machine  options  (including accelerator): in some architectures, CPU
19168         models may look different depending on machine  and  accelerator  op‐
19169         tions. (Except for CPU models reported as "static" in query-cpu-defi‐
19170         nitions.)
19171
19172       • "-cpu" arguments and global properties: arguments to the -cpu  option
19173         and  global  properties  may  affect  expansion  of CPU models. Using
19174         query-cpu-model-expansion while using these is not advised.
19175
19176       Some architectures may not support comparing CPU models. s390x supports
19177       comparing CPU models.
19178
19179   Arguments
19180       modela: CpuModelInfo
19181              Not documented
19182
19183       modelb: CpuModelInfo
19184              Not documented
19185
19186   Returns
19187       a CpuModelBaselineInfo. Returns an error if comparing CPU models is not
19188       supported, if a model cannot be used, if a model  contains  an  unknown
19189       cpu definition name, unknown properties or properties with wrong types.
19190
19191   Note
19192       this  command  isn't specific to s390x, but is only implemented on this
19193       architecture currently.
19194
19195   Since
19196       2.8
19197
19198   If
19199       TARGET_S390X
19200
19201   query-cpu-model-baseline (Command)
19202       Baseline two CPU models, creating a compatible third model. The created
19203       model  will  always be a static, migration-safe CPU model (see "static"
19204       CPU model expansion for details).
19205
19206       This interface can be used by tooling to create a compatible CPU  model
19207       out  two  CPU  models.  The created CPU model will be identical to or a
19208       subset of both CPU models when comparing them. Therefore,  the  created
19209       CPU model is guaranteed to run where the given CPU models run.
19210
19211       The result returned by this command may be affected by:
19212
19213       • QEMU  version:  CPU  models  may look different depending on the QEMU
19214         version.   (Except  for  CPU   models   reported   as   "static"   in
19215         query-cpu-definitions.)
19216
19217       • machine-type:  CPU  model  may  look  different  depending on the ma‐
19218         chine-type.   (Except  for  CPU  models  reported  as   "static"   in
19219         query-cpu-definitions.)
19220
19221       • machine  options  (including accelerator): in some architectures, CPU
19222         models may look different depending on machine  and  accelerator  op‐
19223         tions. (Except for CPU models reported as "static" in query-cpu-defi‐
19224         nitions.)
19225
19226       • "-cpu" arguments and global properties: arguments to the -cpu  option
19227         and  global  properties  may  affect  expansion  of CPU models. Using
19228         query-cpu-model-expansion while using these is not advised.
19229
19230       Some architectures may not support baselining CPU  models.  s390x  sup‐
19231       ports baselining CPU models.
19232
19233   Arguments
19234       modela: CpuModelInfo
19235              Not documented
19236
19237       modelb: CpuModelInfo
19238              Not documented
19239
19240   Returns
19241       a  CpuModelBaselineInfo.  Returns  an error if baselining CPU models is
19242       not supported, if a model cannot be used, if a model  contains  an  un‐
19243       known  cpu definition name, unknown properties or properties with wrong
19244       types.
19245
19246   Note
19247       this command isn't specific to s390x, but is only implemented  on  this
19248       architecture currently.
19249
19250   Since
19251       2.8
19252
19253   If
19254       TARGET_S390X
19255
19256   CpuModelExpansionInfo (Object)
19257       The result of a cpu model expansion.
19258
19259   Members
19260       model: CpuModelInfo
19261              the expanded CpuModelInfo.
19262
19263   Since
19264       2.8
19265
19266   If
19267       TARGET_S390X or TARGET_I386 or TARGET_ARM
19268
19269   query-cpu-model-expansion (Command)
19270       Expands  a  given CPU model (or a combination of CPU model + additional
19271       options) to different granularities, allowing tooling to get an  under‐
19272       standing  what  a specific CPU model looks like in QEMU under a certain
19273       configuration.
19274
19275       This interface can be used to query the "host" CPU model.
19276
19277       The data returned by this command may be affected by:
19278
19279       • QEMU version: CPU models may look different  depending  on  the  QEMU
19280         version.    (Except   for   CPU   models   reported  as  "static"  in
19281         query-cpu-definitions.)
19282
19283       • machine-type: CPU model  may look  different  depending  on  the  ma‐
19284         chine-type.    (Except   for  CPU  models  reported  as  "static"  in
19285         query-cpu-definitions.)
19286
19287       • machine options (including accelerator): in some  architectures,  CPU
19288         models  may  look  different depending on machine and accelerator op‐
19289         tions. (Except for CPU models reported as "static" in query-cpu-defi‐
19290         nitions.)
19291
19292       • "-cpu"  arguments and global properties: arguments to the -cpu option
19293         and global properties may  affect  expansion  of  CPU  models.  Using
19294         query-cpu-model-expansion while using these is not advised.
19295
19296       Some  architectures may not support all expansion types. s390x supports
19297       "full" and "static". Arm only supports "full".
19298
19299   Arguments
19300       type: CpuModelExpansionType
19301              Not documented
19302
19303       model: CpuModelInfo
19304              Not documented
19305
19306   Returns
19307       a CpuModelExpansionInfo. Returns an error if expanding  CPU  models  is
19308       not  supported,  if the model cannot be expanded, if the model contains
19309       an unknown CPU definition name, unknown properties or properties with a
19310       wrong  type.  Also  returns  an  error if an expansion type is not sup‐
19311       ported.
19312
19313   Since
19314       2.8
19315
19316   If
19317       TARGET_S390X or TARGET_I386 or TARGET_ARM
19318
19319   CpuDefinitionInfo (Object)
19320       Virtual CPU definition.
19321
19322   Members
19323       name: string
19324              the name of the CPU definition
19325
19326       migration-safe: boolean (optional)
19327              whether a CPU definition can be safely  used  for  migration  in
19328              combination with a QEMU compatibility machine when migrating be‐
19329              tween different QEMU versions and between hosts  with  different
19330              sets  of  (hardware  or software) capabilities. If not provided,
19331              information is not available and callers should not  assume  the
19332              CPU definition to be migration-safe. (since 2.8)
19333
19334       static: boolean
19335              whether a CPU definition is static and will not change depending
19336              on QEMU version, machine type, machine options  and  accelerator
19337              options.  A static model is always migration-safe. (since 2.8)
19338
19339       unavailable-features: array of string (optional)
19340              List  of  properties  that prevent the CPU model from running in
19341              the current host. (since 2.8)
19342
19343       typename: string
19344              Type name that can be used as  argument  to  device-list-proper‐
19345              ties,  to  introspect  properties  configurable  using  -cpu  or
19346              -global.  (since 2.9)
19347
19348       alias-of: string (optional)
19349              Name of CPU model this model is an alias for.  The target of the
19350              CPU  model alias may change depending on the machine type.  Man‐
19351              agement software is supposed to translate CPU model  aliases  in
19352              the  VM  configuration,  because  aliases  may stop being migra‐
19353              tion-safe in the future (since 4.1)
19354
19355       deprecated: boolean
19356              If true, this CPU model is deprecated and may be removed  in  in
19357              some  future  version  of QEMU according to the QEMU deprecation
19358              policy. (since 5.2)
19359       unavailable-features is a list of QOM property names that represent CPU
19360       model  attributes  that prevent the CPU from running.  If the QOM prop‐
19361       erty is read-only, that means there's no known  way  to  make  the  CPU
19362       model  run in the current host. Implementations that choose not to pro‐
19363       vide specific information return the  property  name  "type".   If  the
19364       property is read-write, it means that it MAY be possible to run the CPU
19365       model in the current host if that property is changed. Management soft‐
19366       ware  can  use  it as hints to suggest or choose an alternative for the
19367       user, or just to generate meaningful error messages explaining why  the
19368       CPU model can't be used.  If unavailable-features is an empty list, the
19369       CPU model is runnable using the current host and machine-type.  If  un‐
19370       available-features  is not present, runnability information for the CPU
19371       is not available.
19372
19373   Since
19374       1.2
19375
19376   If
19377       TARGET_PPC or TARGET_ARM or TARGET_I386 or TARGET_S390X or TARGET_MIPS
19378
19379   query-cpu-definitions (Command)
19380       Return a list of supported virtual CPU definitions
19381
19382   Returns
19383       a list of CpuDefInfo
19384
19385   Since
19386       1.2
19387
19388   If
19389       TARGET_PPC or TARGET_ARM or TARGET_I386 or TARGET_S390X or TARGET_MIPS
19390

RECORD/REPLAY

19392   ReplayMode (Enum)
19393       Mode of the replay subsystem.
19394
19395   Values
19396       none   normal execution mode. Replay or record are not enabled.
19397
19398       record record mode. All non-deterministic data is written into the  re‐
19399              play log.
19400
19401       play   replay  mode.  Non-deterministic data required for system execu‐
19402              tion is read from the log.
19403
19404   Since
19405       2.5
19406
19407   ReplayInfo (Object)
19408       Record/replay information.
19409
19410   Members
19411       mode: ReplayMode
19412              current mode.
19413
19414       filename: string (optional)
19415              name of the record/replay log  file.   It  is  present  only  in
19416              record or replay modes, when the log is recorded or replayed.
19417
19418       icount: int
19419              current number of executed instructions.
19420
19421   Since
19422       5.2
19423
19424   query-replay (Command)
19425       Retrieve  the  record/replay information.  It includes current instruc‐
19426       tion count which may be used for replay-break and replay-seek commands.
19427
19428   Returns
19429       record/replay information.
19430
19431   Since
19432       5.2
19433
19434   Example
19435          -> { "execute": "query-replay" }
19436          <- { "return": { "mode": "play", "filename": "log.rr", "icount": 220414 } }
19437
19438   replay-break (Command)
19439       Set replay breakpoint at instruction  count  icount.   Execution  stops
19440       when  the  specified  instruction is reached.  There can be at most one
19441       breakpoint. When breakpoint is set, any  prior  one  is  removed.   The
19442       breakpoint  may  be  set  only in replay mode and only "in the future",
19443       i.e. at instruction counts greater than the current one.   The  current
19444       instruction count can be observed with query-replay.
19445
19446   Arguments
19447       icount: int
19448              instruction count to stop at
19449
19450   Since
19451       5.2
19452
19453   Example
19454          -> { "execute": "replay-break", "arguments": { "icount": 220414 } }
19455
19456   replay-delete-break (Command)
19457       Remove  replay breakpoint which was set with replay-break.  The command
19458       is ignored when there are no replay breakpoints.
19459
19460   Since
19461       5.2
19462
19463   Example
19464          -> { "execute": "replay-delete-break" }
19465
19466   replay-seek (Command)
19467       Automatically proceed to the instruction count icount,  when  replaying
19468       the execution. The command automatically loads nearest snapshot and re‐
19469       plays the execution to find the desired instruction.  When there is  no
19470       preceding  snapshot  or the execution is not replayed, then the command
19471       fails.  icount for the reference may be obtained with query-replay com‐
19472       mand.
19473
19474   Arguments
19475       icount: int
19476              target instruction count
19477
19478   Since
19479       5.2
19480
19481   Example
19482          -> { "execute": "replay-seek", "arguments": { "icount": 220414 } }
19483

YANK FEATURE

19485   YankInstanceType (Enum)
19486       An enumeration of yank instance types. See YankInstance for more infor‐
19487       mation.
19488
19489   Values
19490       block-node
19491              Not documented
19492
19493       chardev
19494              Not documented
19495
19496       migration
19497              Not documented
19498
19499   Since
19500       6.0
19501
19502   YankInstanceBlockNode (Object)
19503       Specifies which block graph node to yank. See YankInstance for more in‐
19504       formation.
19505
19506   Members
19507       node-name: string
19508              the name of the block graph node
19509
19510   Since
19511       6.0
19512
19513   YankInstanceChardev (Object)
19514       Specifies which character device to yank. See YankInstance for more in‐
19515       formation.
19516
19517   Members
19518       id: string
19519              the chardev's ID
19520
19521   Since
19522       6.0
19523
19524   YankInstance (Object)
19525       A yank instance can be yanked with the yank qmp command to recover from
19526       a hanging QEMU.
19527
19528       Currently implemented yank instances:
19529
19530              • nbd  block device: Yanking it will shut down the connection to
19531                the nbd server without attempting to reconnect.
19532
19533              • socket chardev:  Yanking  it  will  shut  down  the  connected
19534                socket.
19535
19536              • migration:  Yanking  it  will  shut down all migration connec‐
19537                tions. Unlike migrate_cancel, it will not notify the migration
19538                process,  so  migration  will go into failed state, instead of
19539                cancelled state. yank should be used to recover from hangs.
19540
19541   Members
19542       type: YankInstanceType
19543              Not documented
19544
19545       The members of YankInstanceBlockNode when type is "block-node"
19546
19547       The members of YankInstanceChardev when type is "chardev"
19548
19549   Since
19550       6.0
19551
19552   yank (Command)
19553       Try to recover from hanging QEMU by yanking  the  specified  instances.
19554       See YankInstance for more information.
19555
19556       Takes a list of YankInstance as argument.
19557
19558   Arguments
19559       instances: array of YankInstance
19560              Not documented
19561
19562   Returns
19563       • Nothing on success
19564
19565DeviceNotFound error, if any of the YankInstances doesn't exist
19566
19567   Example
19568          -> { "execute": "yank",
19569               "arguments": {
19570                   "instances": [
19571                        { "type": "block-node",
19572                          "node-name": "nbd0" }
19573                   ] } }
19574          <- { "return": {} }
19575
19576   Since
19577       6.0
19578
19579   query-yank (Command)
19580       Query yank instances. See YankInstance for more information.
19581
19582   Returns
19583       list of YankInstance
19584
19585   Example
19586          -> { "execute": "query-yank" }
19587          <- { "return": [
19588                   { "type": "block-node",
19589                     "node-name": "nbd0" }
19590               ] }
19591
19592   Since
19593       6.0
19594

MISCELLANEA

19596   add_client (Command)
19597       Allow  client connections for VNC, Spice and socket based character de‐
19598       vices to be passed in to QEMU via SCM_RIGHTS.
19599
19600   Arguments
19601       protocol: string
19602              protocol name. Valid names are "vnc", "spice", "dbus-display" or
19603              the name of a character device (eg. from -chardev id=XXXX)
19604
19605       fdname: string
19606              file descriptor name previously passed via 'getfd' command
19607
19608       skipauth: boolean (optional)
19609              whether  to  skip  authentication.  Only  applies  to  "vnc" and
19610              "spice" protocols
19611
19612       tls: boolean (optional)
19613              whether to perform TLS. Only applies to the "spice" protocol
19614
19615   Returns
19616       nothing on success.
19617
19618   Since
19619       0.14
19620
19621   Example
19622          -> { "execute": "add_client", "arguments": { "protocol": "vnc",
19623                                                       "fdname": "myclient" } }
19624          <- { "return": {} }
19625
19626   NameInfo (Object)
19627       Guest name information.
19628
19629   Members
19630       name: string (optional)
19631              The name of the guest
19632
19633   Since
19634       0.14
19635
19636   query-name (Command)
19637       Return the name information of a guest.
19638
19639   Returns
19640       NameInfo of the guest
19641
19642   Since
19643       0.14
19644
19645   Example
19646          -> { "execute": "query-name" }
19647          <- { "return": { "name": "qemu-name" } }
19648
19649   IOThreadInfo (Object)
19650       Information about an iothread
19651
19652   Members
19653       id: string
19654              the identifier of the iothread
19655
19656       thread-id: int
19657              ID of the underlying host thread
19658
19659       poll-max-ns: int
19660              maximum polling time in ns, 0 means polling is  disabled  (since
19661              2.9)
19662
19663       poll-grow: int
19664              how many ns will be added to polling time, 0 means that it's not
19665              configured (since 2.9)
19666
19667       poll-shrink: int
19668              how many ns will be removed from polling time, 0 means that it's
19669              not configured (since 2.9)
19670
19671       aio-max-batch: int
19672              maximum  number  of  requests  in  a batch for the AIO engine, 0
19673              means that the engine will use its default (since 6.1)
19674
19675   Since
19676       2.0
19677
19678   query-iothreads (Command)
19679       Returns a list of information about each iothread.
19680
19681   Note
19682       this list excludes the QEMU main loop thread, which is not declared us‐
19683       ing  the  -object  iothread command-line option.  It is always the main
19684       thread of the process.
19685
19686   Returns
19687       a list of IOThreadInfo for each iothread
19688
19689   Since
19690       2.0
19691
19692   Example
19693          -> { "execute": "query-iothreads" }
19694          <- { "return": [
19695                   {
19696                      "id":"iothread0",
19697                      "thread-id":3134
19698                   },
19699                   {
19700                      "id":"iothread1",
19701                      "thread-id":3135
19702                   }
19703                ]
19704             }
19705
19706   stop (Command)
19707       Stop all guest VCPU execution.
19708
19709   Since
19710       0.14
19711
19712   Notes
19713       This function will succeed even if the guest is already in the  stopped
19714       state.   In  "inmigrate"  state,  it will ensure that the guest remains
19715       paused once migration finishes, as if the -S option was passed  on  the
19716       command line.
19717
19718   Example
19719          -> { "execute": "stop" }
19720          <- { "return": {} }
19721
19722   cont (Command)
19723       Resume guest VCPU execution.
19724
19725   Since
19726       0.14
19727
19728   Returns
19729       If successful, nothing
19730
19731   Notes
19732       This  command  will succeed if the guest is currently running.  It will
19733       also succeed if the guest is in the "inmigrate" state;  in  this  case,
19734       the  effect of the command is to make sure the guest starts once migra‐
19735       tion finishes, removing the effect of the -S command line option if  it
19736       was passed.
19737
19738   Example
19739          -> { "execute": "cont" }
19740          <- { "return": {} }
19741
19742   x-exit-preconfig (Command)
19743       Exit from "preconfig" state
19744
19745       This  command  makes  QEMU exit the preconfig state and proceed with VM
19746       initialization using configuration data provided on  the  command  line
19747       and via the QMP monitor during the preconfig state. The command is only
19748       available during the preconfig state (i.e. when the --preconfig command
19749       line option was in use).
19750
19751   Features
19752       unstable
19753              This command is experimental.
19754       Since 3.0
19755
19756   Returns
19757       nothing
19758
19759   Example
19760          -> { "execute": "x-exit-preconfig" }
19761          <- { "return": {} }
19762
19763   human-monitor-command (Command)
19764       Execute a command on the human monitor and return the output.
19765
19766   Arguments
19767       command-line: string
19768              the command to execute in the human monitor
19769
19770       cpu-index: int (optional)
19771              The CPU to use for commands that require an implicit CPU
19772
19773   Features
19774       savevm-monitor-nodes
19775              If  present,  HMP  command  savevm  only snapshots monitor-owned
19776              nodes if they have no parents.  This allows the use of  'savevm'
19777              with -blockdev. (since 4.2)
19778
19779   Returns
19780       the output of the command as a string
19781
19782   Since
19783       0.14
19784
19785   Notes
19786       This command only exists as a stop-gap.  Its use is highly discouraged.
19787       The semantics of this command are not guaranteed: this means that  com‐
19788       mand  names,  arguments  and  responses can change or be removed at ANY
19789       time.  Applications that rely on long term stability guarantees  should
19790       NOT use this command.
19791
19792       Known limitations:
19793
19794       • This  command  is  stateless, this means that commands that depend on
19795         state information (such as getfd) might not work
19796
19797       • Commands that prompt the user for data don't currently work
19798
19799   Example
19800          -> { "execute": "human-monitor-command",
19801               "arguments": { "command-line": "info kvm" } }
19802          <- { "return": "kvm support: enabled\r\n" }
19803
19804   getfd (Command)
19805       Receive a file descriptor via SCM rights and assign it a name
19806
19807   Arguments
19808       fdname: string
19809              file descriptor name
19810
19811   Returns
19812       Nothing on success
19813
19814   Since
19815       0.14
19816
19817   Notes
19818       If fdname already exists, the file descriptor assigned to  it  will  be
19819       closed and replaced by the received file descriptor.
19820
19821       The 'closefd' command can be used to explicitly close the file descrip‐
19822       tor when it is no longer needed.
19823
19824   Example
19825          -> { "execute": "getfd", "arguments": { "fdname": "fd1" } }
19826          <- { "return": {} }
19827
19828   closefd (Command)
19829       Close a file descriptor previously passed via SCM rights
19830
19831   Arguments
19832       fdname: string
19833              file descriptor name
19834
19835   Returns
19836       Nothing on success
19837
19838   Since
19839       0.14
19840
19841   Example
19842          -> { "execute": "closefd", "arguments": { "fdname": "fd1" } }
19843          <- { "return": {} }
19844
19845   AddfdInfo (Object)
19846       Information about a file descriptor that was added to an fd set.
19847
19848   Members
19849       fdset-id: int
19850              The ID of the fd set that fd was added to.
19851
19852       fd: int
19853              The file descriptor that was received via SCM rights  and  added
19854              to the fd set.
19855
19856   Since
19857       1.2
19858
19859   add-fd (Command)
19860       Add a file descriptor, that was passed via SCM rights, to an fd set.
19861
19862   Arguments
19863       fdset-id: int (optional)
19864              The ID of the fd set to add the file descriptor to.
19865
19866       opaque: string (optional)
19867              A free-form string that can be used to describe the fd.
19868
19869   Returns
19870AddfdInfo on success
19871
19872       • If file descriptor was not received, FdNotSupplied
19873
19874       • If fdset-id is a negative value, InvalidParameterValue
19875
19876   Notes
19877       The list of fd sets is shared by all monitor connections.
19878
19879       If fdset-id is not specified, a new fd set will be created.
19880
19881   Since
19882       1.2
19883
19884   Example
19885          -> { "execute": "add-fd", "arguments": { "fdset-id": 1 } }
19886          <- { "return": { "fdset-id": 1, "fd": 3 } }
19887
19888   remove-fd (Command)
19889       Remove a file descriptor from an fd set.
19890
19891   Arguments
19892       fdset-id: int
19893              The ID of the fd set that the file descriptor belongs to.
19894
19895       fd: int (optional)
19896              The file descriptor that is to be removed.
19897
19898   Returns
19899       • Nothing on success
19900
19901       • If fdset-id or fd is not found, FdNotFound
19902
19903   Since
19904       1.2
19905
19906   Notes
19907       The list of fd sets is shared by all monitor connections.
19908
19909       If  fd  is  not specified, all file descriptors in fdset-id will be re‐
19910       moved.
19911
19912   Example
19913          -> { "execute": "remove-fd", "arguments": { "fdset-id": 1, "fd": 3 } }
19914          <- { "return": {} }
19915
19916   FdsetFdInfo (Object)
19917       Information about a file descriptor that belongs to an fd set.
19918
19919   Members
19920       fd: int
19921              The file descriptor value.
19922
19923       opaque: string (optional)
19924              A free-form string that can be used to describe the fd.
19925
19926   Since
19927       1.2
19928
19929   FdsetInfo (Object)
19930       Information about an fd set.
19931
19932   Members
19933       fdset-id: int
19934              The ID of the fd set.
19935
19936       fds: array of FdsetFdInfo
19937              A list of file descriptors that belong to this fd set.
19938
19939   Since
19940       1.2
19941
19942   query-fdsets (Command)
19943       Return information describing all fd sets.
19944
19945   Returns
19946       A list of FdsetInfo
19947
19948   Since
19949       1.2
19950
19951   Note
19952       The list of fd sets is shared by all monitor connections.
19953
19954   Example
19955          -> { "execute": "query-fdsets" }
19956          <- { "return": [
19957                 {
19958                   "fds": [
19959                     {
19960                       "fd": 30,
19961                       "opaque": "rdonly:/path/to/file"
19962                     },
19963                     {
19964                       "fd": 24,
19965                       "opaque": "rdwr:/path/to/file"
19966                     }
19967                   ],
19968                   "fdset-id": 1
19969                 },
19970                 {
19971                   "fds": [
19972                     {
19973                       "fd": 28
19974                     },
19975                     {
19976                       "fd": 29
19977                     }
19978                   ],
19979                   "fdset-id": 0
19980                 }
19981               ]
19982             }
19983
19984   CommandLineParameterType (Enum)
19985       Possible types for an option parameter.
19986
19987   Values
19988       string accepts a character string
19989
19990       boolean
19991              accepts "on" or "off"
19992
19993       number accepts a number
19994
19995       size   accepts a number followed by an optional suffix (K)ilo,  (M)ega,
19996              (G)iga, (T)era
19997
19998   Since
19999       1.5
20000
20001   CommandLineParameterInfo (Object)
20002       Details about a single parameter of a command line option.
20003
20004   Members
20005       name: string
20006              parameter name
20007
20008       type: CommandLineParameterType
20009              parameter CommandLineParameterType
20010
20011       help: string (optional)
20012              human readable text string, not suitable for parsing.
20013
20014       default: string (optional)
20015              default value string (since 2.1)
20016
20017   Since
20018       1.5
20019
20020   CommandLineOptionInfo (Object)
20021       Details  about  a  command line option, including its list of parameter
20022       details
20023
20024   Members
20025       option: string
20026              option name
20027
20028       parameters: array of CommandLineParameterInfo
20029              an array of CommandLineParameterInfo
20030
20031   Since
20032       1.5
20033
20034   query-command-line-options (Command)
20035       Query command line option schema.
20036
20037   Arguments
20038       option: string (optional)
20039              option name
20040
20041   Returns
20042       list of CommandLineOptionInfo for all options (or  for  the  given  op‐
20043       tion).  Returns an error if the given option doesn't exist.
20044
20045   Since
20046       1.5
20047
20048   Example
20049          -> { "execute": "query-command-line-options",
20050               "arguments": { "option": "option-rom" } }
20051          <- { "return": [
20052                  {
20053                      "parameters": [
20054                          {
20055                              "name": "romfile",
20056                              "type": "string"
20057                          },
20058                          {
20059                              "name": "bootindex",
20060                              "type": "number"
20061                          }
20062                      ],
20063                      "option": "option-rom"
20064                  }
20065               ]
20066             }
20067
20068   RTC_CHANGE (Event)
20069       Emitted when the guest changes the RTC time.
20070
20071   Arguments
20072       offset: int
20073              offset  in  seconds between base RTC clock (as specified by -rtc
20074              base), and new RTC clock value
20075
20076       qom-path: string
20077              path to the RTC object in the QOM tree
20078
20079   Note
20080       This event is rate-limited.  It is not guaranteed that the RTC  in  the
20081       system  implements  this  event,  or even that the system has an RTC at
20082       all.
20083
20084   Since
20085       0.13
20086
20087   Example
20088          <-   { "event": "RTC_CHANGE",
20089                 "data": { "offset": 78 },
20090                 "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
20091
20092   rtc-reset-reinjection (Command)
20093       This command will reset the RTC interrupt reinjection backlog.  Can  be
20094       used  if  another mechanism to synchronize guest time is in effect, for
20095       example QEMU guest agent's guest-set-time command.
20096
20097   Since
20098       2.1
20099
20100   Example
20101          -> { "execute": "rtc-reset-reinjection" }
20102          <- { "return": {} }
20103
20104   If
20105       TARGET_I386
20106
20107   SevState (Enum)
20108       An enumeration of SEV state information used during query-sev.
20109
20110   Values
20111       uninit The guest is uninitialized.
20112
20113       launch-update
20114              The guest is currently being launched; plaintext data and regis‐
20115              ter state is being imported.
20116
20117       launch-secret
20118              The  guest is currently being launched; ciphertext data is being
20119              imported.
20120
20121       running
20122              The guest is fully launched or migrated in.
20123
20124       send-update
20125              The guest is currently being migrated out to another machine.
20126
20127       receive-update
20128              The guest is currently being migrated from another machine.
20129
20130   Since
20131       2.12
20132
20133   If
20134       TARGET_I386
20135
20136   SevInfo (Object)
20137       Information about Secure Encrypted Virtualization (SEV) support
20138
20139   Members
20140       enabled: boolean
20141              true if SEV is active
20142
20143       api-major: int
20144              SEV API major version
20145
20146       api-minor: int
20147              SEV API minor version
20148
20149       build-id: int
20150              SEV FW build id
20151
20152       policy: int
20153              SEV policy value
20154
20155       state: SevState
20156              SEV guest state
20157
20158       handle: int
20159              SEV firmware handle
20160
20161   Since
20162       2.12
20163
20164   If
20165       TARGET_I386
20166
20167   query-sev (Command)
20168       Returns information about SEV
20169
20170   Returns
20171       SevInfo
20172
20173   Since
20174       2.12
20175
20176   Example
20177          -> { "execute": "query-sev" }
20178          <- { "return": { "enabled": true, "api-major" : 0, "api-minor" : 0,
20179                           "build-id" : 0, "policy" : 0, "state" : "running",
20180                           "handle" : 1 } }
20181
20182   If
20183       TARGET_I386
20184
20185   SevLaunchMeasureInfo (Object)
20186       SEV Guest Launch measurement information
20187
20188   Members
20189       data: string
20190              the measurement value encoded in base64
20191
20192   Since
20193       2.12
20194
20195   If
20196       TARGET_I386
20197
20198   query-sev-launch-measure (Command)
20199       Query the SEV guest launch information.
20200
20201   Returns
20202       The SevLaunchMeasureInfo for the guest
20203
20204   Since
20205       2.12
20206
20207   Example
20208          -> { "execute": "query-sev-launch-measure" }
20209          <- { "return": { "data": "4l8LXeNlSPUDlXPJG5966/8%YZ" } }
20210
20211   If
20212       TARGET_I386
20213
20214   SevCapability (Object)
20215       The struct describes capability for a Secure  Encrypted  Virtualization
20216       feature.
20217
20218   Members
20219       pdh: string
20220              Platform Diffie-Hellman key (base64 encoded)
20221
20222       cert-chain: string
20223              PDH certificate chain (base64 encoded)
20224
20225       cbitpos: int
20226              C-bit location in page table entry
20227
20228       reduced-phys-bits: int
20229              Number of physical Address bit reduction when SEV is enabled
20230
20231   Since
20232       2.12
20233
20234   If
20235       TARGET_I386
20236
20237   query-sev-capabilities (Command)
20238       This  command  is used to get the SEV capabilities, and is supported on
20239       AMD X86 platforms only.
20240
20241   Returns
20242       SevCapability objects.
20243
20244   Since
20245       2.12
20246
20247   Example
20248          -> { "execute": "query-sev-capabilities" }
20249          <- { "return": { "pdh": "8CCDD8DDD", "cert-chain": "888CCCDDDEE",
20250                           "cbitpos": 47, "reduced-phys-bits": 5}}
20251
20252   If
20253       TARGET_I386
20254
20255   sev-inject-launch-secret (Command)
20256       This command injects a secret blob into memory of SEV guest.
20257
20258   Arguments
20259       packet-header: string
20260              the launch secret packet header encoded in base64
20261
20262       secret: string
20263              the launch secret data to be injected encoded in base64
20264
20265       gpa: int (optional)
20266              the guest physical address where secret will be injected.
20267
20268   Since
20269       6.0
20270
20271   If
20272       TARGET_I386
20273
20274   SevAttestationReport (Object)
20275       The struct describes attestation report for a Secure Encrypted Virtual‐
20276       ization feature.
20277
20278   Members
20279       data: string
20280              guest attestation report (base64 encoded)
20281
20282   Since
20283       6.1
20284
20285   If
20286       TARGET_I386
20287
20288   query-sev-attestation-report (Command)
20289       This  command  is  used  to get the SEV attestation report, and is sup‐
20290       ported on AMD X86 platforms only.
20291
20292   Arguments
20293       mnonce: string
20294              a random 16 bytes value encoded in base64 (it will  be  included
20295              in report)
20296
20297   Returns
20298       SevAttestationReport objects.
20299
20300   Since
20301       6.1
20302
20303   Example
20304          -> { "execute" : "query-sev-attestation-report",
20305                           "arguments": { "mnonce": "aaaaaaa" } }
20306          <- { "return" : { "data": "aaaaaaaabbbddddd"} }
20307
20308   If
20309       TARGET_I386
20310
20311   dump-skeys (Command)
20312       Dump guest's storage keys
20313
20314   Arguments
20315       filename: string
20316              the path to the file to dump to
20317       This command is only supported on s390 architecture.
20318
20319   Since
20320       2.5
20321
20322   Example
20323          -> { "execute": "dump-skeys",
20324               "arguments": { "filename": "/tmp/skeys" } }
20325          <- { "return": {} }
20326
20327   If
20328       TARGET_S390X
20329
20330   GICCapability (Object)
20331       The  struct  describes capability for a specific GIC (Generic Interrupt
20332       Controller) version. These bits are not only decided by QEMU/KVM  soft‐
20333       ware version, but also decided by the hardware that the program is run‐
20334       ning upon.
20335
20336   Members
20337       version: int
20338              version of GIC to be described. Currently, only 2 and 3 are sup‐
20339              ported.
20340
20341       emulated: boolean
20342              whether  current  QEMU/hardware  supports emulated GIC device in
20343              user space.
20344
20345       kernel: boolean
20346              whether current QEMU/hardware supports hardware accelerated  GIC
20347              device in kernel.
20348
20349   Since
20350       2.6
20351
20352   If
20353       TARGET_ARM
20354
20355   query-gic-capabilities (Command)
20356       This  command  is  ARM-only. It will return a list of GICCapability ob‐
20357       jects that describe its capability bits.
20358
20359   Returns
20360       a list of GICCapability objects.
20361
20362   Since
20363       2.6
20364
20365   Example
20366          -> { "execute": "query-gic-capabilities" }
20367          <- { "return": [{ "version": 2, "emulated": true, "kernel": false },
20368                          { "version": 3, "emulated": false, "kernel": true } ] }
20369
20370   If
20371       TARGET_ARM
20372
20373   SGXEPCSection (Object)
20374       Information about intel SGX EPC section info
20375
20376   Members
20377       node: int
20378              the numa node
20379
20380       size: int
20381              the size of EPC section
20382
20383   Since
20384       7.0
20385
20386   SGXInfo (Object)
20387       Information about intel Safe Guard eXtension (SGX) support
20388
20389   Members
20390       sgx: boolean
20391              true if SGX is supported
20392
20393       sgx1: boolean
20394              true if SGX1 is supported
20395
20396       sgx2: boolean
20397              true if SGX2 is supported
20398
20399       flc: boolean
20400              true if FLC is supported
20401
20402       section-size: int
20403              The EPC section size for guest Redundant  with  sections.   Just
20404              for backward compatibility.
20405
20406       sections: array of SGXEPCSection
20407              The EPC sections info for guest (Since: 7.0)
20408
20409   Features
20410       deprecated
20411              Member section-size is deprecated.  Use sections instead.
20412
20413   Since
20414       6.2
20415
20416   If
20417       TARGET_I386
20418
20419   query-sgx (Command)
20420       Returns information about SGX
20421
20422   Returns
20423       SGXInfo
20424
20425   Since
20426       6.2
20427
20428   Example
20429          -> { "execute": "query-sgx" }
20430          <- { "return": { "sgx": true, "sgx1" : true, "sgx2" : true,
20431                           "flc": true,  "section-size" : 96468992,
20432                           "sections": [{"node": 0, "size": 67108864},
20433                           {"node": 1, "size": 29360128}]} }
20434
20435   If
20436       TARGET_I386
20437
20438   query-sgx-capabilities (Command)
20439       Returns information from host SGX capabilities
20440
20441   Returns
20442       SGXInfo
20443
20444   Since
20445       6.2
20446
20447   Example
20448          -> { "execute": "query-sgx-capabilities" }
20449          <- { "return": { "sgx": true, "sgx1" : true, "sgx2" : true,
20450                           "flc": true, "section-size" : 96468992,
20451                           "section" : [{"node": 0, "size": 67108864},
20452                           {"node": 1, "size": 29360128}]} }
20453
20454   If
20455       TARGET_I386
20456

AUDIO

20458   AudiodevPerDirectionOptions (Object)
20459       General  audio  backend  options  that  are  used for both playback and
20460       recording.
20461
20462   Members
20463       mixing-engine: boolean (optional)
20464              use QEMU's mixing engine to mix all streams inside QEMU and con‐
20465              vert  audio  formats when not supported by the backend. When set
20466              to off, fixed-settings must be also off (default on, since 4.2)
20467
20468       fixed-settings: boolean (optional)
20469              use fixed settings for host input/output. When  off,  frequency,
20470              channels and format must not be specified (default true)
20471
20472       frequency: int (optional)
20473              frequency to use when using fixed settings (default 44100)
20474
20475       channels: int (optional)
20476              number of channels when using fixed settings (default 2)
20477
20478       voices: int (optional)
20479              number of voices to use (default 1)
20480
20481       format: AudioFormat (optional)
20482              sample format to use when using fixed settings (default s16)
20483
20484       buffer-length: int (optional)
20485              the buffer length in microseconds
20486
20487   Since
20488       4.0
20489
20490   AudiodevGenericOptions (Object)
20491       Generic driver-specific options.
20492
20493   Members
20494       in: AudiodevPerDirectionOptions (optional)
20495              options of the capture stream
20496
20497       out: AudiodevPerDirectionOptions (optional)
20498              options of the playback stream
20499
20500   Since
20501       4.0
20502
20503   AudiodevAlsaPerDirectionOptions (Object)
20504       Options of the ALSA backend that are used for both playback and record‐
20505       ing.
20506
20507   Members
20508       dev: string (optional)
20509              the name of the ALSA device to use (default 'default')
20510
20511       period-length: int (optional)
20512              the period length in microseconds
20513
20514       try-poll: boolean (optional)
20515              attempt to use poll mode, falling back to non-polling access  on
20516              failure (default true)
20517
20518       The members of AudiodevPerDirectionOptions
20519
20520   Since
20521       4.0
20522
20523   AudiodevAlsaOptions (Object)
20524       Options of the ALSA audio backend.
20525
20526   Members
20527       in: AudiodevAlsaPerDirectionOptions (optional)
20528              options of the capture stream
20529
20530       out: AudiodevAlsaPerDirectionOptions (optional)
20531              options of the playback stream
20532
20533       threshold: int (optional)
20534              set the threshold (in microseconds) when playback starts
20535
20536   Since
20537       4.0
20538
20539   AudiodevCoreaudioPerDirectionOptions (Object)
20540       Options  of  the Core Audio backend that are used for both playback and
20541       recording.
20542
20543   Members
20544       buffer-count: int (optional)
20545              number of buffers
20546
20547       The members of AudiodevPerDirectionOptions
20548
20549   Since
20550       4.0
20551
20552   AudiodevCoreaudioOptions (Object)
20553       Options of the coreaudio audio backend.
20554
20555   Members
20556       in: AudiodevCoreaudioPerDirectionOptions (optional)
20557              options of the capture stream
20558
20559       out: AudiodevCoreaudioPerDirectionOptions (optional)
20560              options of the playback stream
20561
20562   Since
20563       4.0
20564
20565   AudiodevDsoundOptions (Object)
20566       Options of the DirectSound audio backend.
20567
20568   Members
20569       in: AudiodevPerDirectionOptions (optional)
20570              options of the capture stream
20571
20572       out: AudiodevPerDirectionOptions (optional)
20573              options of the playback stream
20574
20575       latency: int (optional)
20576              add extra latency to playback in microseconds (default 10000)
20577
20578   Since
20579       4.0
20580
20581   AudiodevJackPerDirectionOptions (Object)
20582       Options of the JACK backend that are used for both playback and record‐
20583       ing.
20584
20585   Members
20586       server-name: string (optional)
20587              select  from  among several possible concurrent server instances
20588              (default: environment variable $JACK_DEFAULT_SERVER if set, else
20589              "default")
20590
20591       client-name: string (optional)
20592              the client name to use. The server will modify this name to cre‐
20593              ate a unique variant, if needed unless exact-name is  true  (de‐
20594              fault: the guest's name)
20595
20596       connect-ports: string (optional)
20597              if set, a regular expression of JACK client port name(s) to mon‐
20598              itor for and automatically connect to
20599
20600       start-server: boolean (optional)
20601              start a jack server process if one is not already  present  (de‐
20602              fault: false)
20603
20604       exact-name: boolean (optional)
20605              use the exact name requested otherwise JACK automatically gener‐
20606              ates a unique one, if needed (default: false)
20607
20608       The members of AudiodevPerDirectionOptions
20609
20610   Since
20611       5.1
20612
20613   AudiodevJackOptions (Object)
20614       Options of the JACK audio backend.
20615
20616   Members
20617       in: AudiodevJackPerDirectionOptions (optional)
20618              options of the capture stream
20619
20620       out: AudiodevJackPerDirectionOptions (optional)
20621              options of the playback stream
20622
20623   Since
20624       5.1
20625
20626   AudiodevOssPerDirectionOptions (Object)
20627       Options of the OSS backend that are used for both playback and  record‐
20628       ing.
20629
20630   Members
20631       dev: string (optional)
20632              file name of the OSS device (default '/dev/dsp')
20633
20634       buffer-count: int (optional)
20635              number of buffers
20636
20637       try-poll: boolean (optional)
20638              attempt  to use poll mode, falling back to non-polling access on
20639              failure (default true)
20640
20641       The members of AudiodevPerDirectionOptions
20642
20643   Since
20644       4.0
20645
20646   AudiodevOssOptions (Object)
20647       Options of the OSS audio backend.
20648
20649   Members
20650       in: AudiodevOssPerDirectionOptions (optional)
20651              options of the capture stream
20652
20653       out: AudiodevOssPerDirectionOptions (optional)
20654              options of the playback stream
20655
20656       try-mmap: boolean (optional)
20657              try  using  memory-mapped  access,  falling  back  to   non-mem‐
20658              ory-mapped access on failure (default true)
20659
20660       exclusive: boolean (optional)
20661              open device in exclusive mode (vmix won't work) (default false)
20662
20663       dsp-policy: int (optional)
20664              set  the  timing  policy  of the device (between 0 and 10, where
20665              smaller number means smaller latency but higher CPU usage) or -1
20666              to use fragment mode (option ignored on some platforms) (default
20667              5)
20668
20669   Since
20670       4.0
20671
20672   AudiodevPaPerDirectionOptions (Object)
20673       Options of the Pulseaudio backend that are used for both  playback  and
20674       recording.
20675
20676   Members
20677       name: string (optional)
20678              name of the sink/source to use
20679
20680       stream-name: string (optional)
20681              name  of  the PulseAudio stream created by qemu.  Can be used to
20682              identify the stream  in  PulseAudio  when  you  create  multiple
20683              PulseAudio  devices or run multiple qemu instances (default: au‐
20684              diodev's id, since 4.2)
20685
20686       latency: int (optional)
20687              latency you want PulseAudio to achieve in microseconds  (default
20688              15000)
20689
20690       The members of AudiodevPerDirectionOptions
20691
20692   Since
20693       4.0
20694
20695   AudiodevPaOptions (Object)
20696       Options of the PulseAudio audio backend.
20697
20698   Members
20699       in: AudiodevPaPerDirectionOptions (optional)
20700              options of the capture stream
20701
20702       out: AudiodevPaPerDirectionOptions (optional)
20703              options of the playback stream
20704
20705       server: string (optional)
20706              PulseAudio server address (default: let PulseAudio choose)
20707
20708   Since
20709       4.0
20710
20711   AudiodevSdlPerDirectionOptions (Object)
20712       Options  of  the  SDL audio backend that are used for both playback and
20713       recording.
20714
20715   Members
20716       buffer-count: int (optional)
20717              number of buffers (default 4)
20718
20719       The members of AudiodevPerDirectionOptions
20720
20721   Since
20722       6.0
20723
20724   AudiodevSdlOptions (Object)
20725       Options of the SDL audio backend.
20726
20727   Members
20728       in: AudiodevSdlPerDirectionOptions (optional)
20729              options of the recording stream
20730
20731       out: AudiodevSdlPerDirectionOptions (optional)
20732              options of the playback stream
20733
20734   Since
20735       6.0
20736
20737   AudiodevWavOptions (Object)
20738       Options of the wav audio backend.
20739
20740   Members
20741       in: AudiodevPerDirectionOptions (optional)
20742              options of the capture stream
20743
20744       out: AudiodevPerDirectionOptions (optional)
20745              options of the playback stream
20746
20747       path: string (optional)
20748              name of the wav file to record (default 'qemu.wav')
20749
20750   Since
20751       4.0
20752
20753   AudioFormat (Enum)
20754       An enumeration of possible audio formats.
20755
20756   Values
20757       u8     unsigned 8 bit integer
20758
20759       s8     signed 8 bit integer
20760
20761       u16    unsigned 16 bit integer
20762
20763       s16    signed 16 bit integer
20764
20765       u32    unsigned 32 bit integer
20766
20767       s32    signed 32 bit integer
20768
20769       f32    single precision floating-point (since 5.0)
20770
20771   Since
20772       4.0
20773
20774   AudiodevDriver (Enum)
20775       An enumeration of possible audio backend drivers.
20776
20777   Values
20778       jack   JACK audio backend (since 5.1)
20779
20780       none   Not documented
20781
20782       alsa   Not documented
20783
20784       coreaudio
20785              Not documented
20786
20787       dbus   Not documented
20788
20789       dsound Not documented
20790
20791       oss    Not documented
20792
20793       pa     Not documented
20794
20795       sdl    Not documented
20796
20797       spice  Not documented
20798
20799       wav    Not documented
20800
20801   Since
20802       4.0
20803
20804   Audiodev (Object)
20805       Options of an audio backend.
20806
20807   Members
20808       id: string
20809              identifier of the backend
20810
20811       driver: AudiodevDriver
20812              the backend driver to use
20813
20814       timer-period: int (optional)
20815              timer period (in microseconds, 0: use lowest possible)
20816
20817       The members of AudiodevGenericOptions when driver is "none"
20818
20819       The members of AudiodevAlsaOptions when driver is "alsa"
20820
20821       The members of AudiodevCoreaudioOptions when driver is "coreaudio"
20822
20823       The members of AudiodevGenericOptions when driver is "dbus"
20824
20825       The members of AudiodevDsoundOptions when driver is "dsound"
20826
20827       The members of AudiodevJackOptions when driver is "jack"
20828
20829       The members of AudiodevOssOptions when driver is "oss"
20830
20831       The members of AudiodevPaOptions when driver is "pa"
20832
20833       The members of AudiodevSdlOptions when driver is "sdl"
20834
20835       The members of AudiodevGenericOptions when driver is "spice"
20836
20837       The members of AudiodevWavOptions when driver is "wav"
20838
20839   Since
20840       4.0
20841

ACPI

20843   AcpiTableOptions (Object)
20844       Specify an ACPI table on the command line to load.
20845
20846       At most one of file and data can be specified. The list of files speci‐
20847       fied  by  any  one of them is loaded and concatenated in order. If both
20848       are omitted, data is implied.
20849
20850       Other fields / optargs can be used to override fields  of  the  generic
20851       ACPI  table  header; refer to the ACPI specification 5.0, section 5.2.6
20852       System Description Table Header. If a header field is  not  overridden,
20853       then  the  corresponding  value  from the concatenated blob is used (in
20854       case of file), or it is filled in with a hard-coded value (in  case  of
20855       data).
20856
20857       String  fields are copied into the matching ACPI member from lowest ad‐
20858       dress upwards, and silently truncated / NUL-padded to length.
20859
20860   Members
20861       sig: string (optional)
20862              table signature / identifier (4 bytes)
20863
20864       rev: int (optional)
20865              table revision number (dependent on signature, 1 byte)
20866
20867       oem_id: string (optional)
20868              OEM identifier (6 bytes)
20869
20870       oem_table_id: string (optional)
20871              OEM table identifier (8 bytes)
20872
20873       oem_rev: int (optional)
20874              OEM-supplied revision number (4 bytes)
20875
20876       asl_compiler_id: string (optional)
20877              identifier of the utility that created the table (4 bytes)
20878
20879       asl_compiler_rev: int (optional)
20880              revision number of the utility that created the table (4 bytes)
20881
20882       file: string (optional)
20883              colon (:) separated list of pathnames to load and concatenate as
20884              table  data.  The  resultant  binary blob is expected to have an
20885              ACPI table header. At least one file is required. This field ex‐
20886              cludes data.
20887
20888       data: string (optional)
20889              colon (:) separated list of pathnames to load and concatenate as
20890              table data. The resultant binary blob must not have an ACPI  ta‐
20891              ble  header.  At least one file is required. This field excludes
20892              file.
20893
20894   Since
20895       1.5
20896
20897   ACPISlotType (Enum)
20898   Values
20899       DIMM   memory slot
20900
20901       CPU    logical CPU slot (since 2.7)
20902
20903   ACPIOSTInfo (Object)
20904       OSPM Status Indication for a device For description of possible  values
20905       of source and status fields see "_OST (OSPM Status Indication)" chapter
20906       of ACPI5.0 spec.
20907
20908   Members
20909       device: string (optional)
20910              device ID associated with slot
20911
20912       slot: string
20913              slot ID, unique per slot of a given slot-type
20914
20915       slot-type: ACPISlotType
20916              type of the slot
20917
20918       source: int
20919              an integer containing the source event
20920
20921       status: int
20922              an integer containing the status code
20923
20924   Since
20925       2.1
20926
20927   query-acpi-ospm-status (Command)
20928       Return a list of ACPIOSTInfo for devices that support status  reporting
20929       via ACPI _OST method.
20930
20931   Since
20932       2.1
20933
20934   Example
20935          -> { "execute": "query-acpi-ospm-status" }
20936          <- { "return": [ { "device": "d1", "slot": "0", "slot-type": "DIMM", "source": 1, "status": 0},
20937                           { "slot": "1", "slot-type": "DIMM", "source": 0, "status": 0},
20938                           { "slot": "2", "slot-type": "DIMM", "source": 0, "status": 0},
20939                           { "slot": "3", "slot-type": "DIMM", "source": 0, "status": 0}
20940             ]}
20941
20942   ACPI_DEVICE_OST (Event)
20943       Emitted when guest executes ACPI _OST method.
20944
20945   Arguments
20946       info: ACPIOSTInfo
20947              OSPM Status Indication
20948
20949   Since
20950       2.1
20951
20952   Example
20953          <- { "event": "ACPI_DEVICE_OST",
20954               "data": { "info": { "device": "d1", "slot": "0",
20955                                   "slot-type": "DIMM", "source": 1, "status": 0 } },
20956               "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
20957

PCI

20959   PciMemoryRange (Object)
20960       A PCI device memory region
20961
20962   Members
20963       base: int
20964              the starting address (guest physical)
20965
20966       limit: int
20967              the ending address (guest physical)
20968
20969   Since
20970       0.14
20971
20972   PciMemoryRegion (Object)
20973       Information about a PCI device I/O region.
20974
20975   Members
20976       bar: int
20977              the index of the Base Address Register for this region
20978
20979       type: string
20980
20981              • 'io' if the region is a PIO region
20982
20983              • 'memory' if the region is a MMIO region
20984
20985       size: int
20986              memory size
20987
20988       prefetch: boolean (optional)
20989              if type is 'memory', true if the memory is prefetchable
20990
20991       mem_type_64: boolean (optional)
20992              if type is 'memory', true if the BAR is 64-bit
20993
20994       address: int
20995              Not documented
20996
20997   Since
20998       0.14
20999
21000   PciBusInfo (Object)
21001       Information about a bus of a PCI Bridge device
21002
21003   Members
21004       number: int
21005              primary  bus interface number.  This should be the number of the
21006              bus the device resides on.
21007
21008       secondary: int
21009              secondary bus interface number.  This is the number of the  main
21010              bus for the bridge
21011
21012       subordinate: int
21013              This is the highest number bus that resides below the bridge.
21014
21015       io_range: PciMemoryRange
21016              The PIO range for all devices on this bridge
21017
21018       memory_range: PciMemoryRange
21019              The MMIO range for all devices on this bridge
21020
21021       prefetchable_range: PciMemoryRange
21022              The range of prefetchable MMIO for all devices on this bridge
21023
21024   Since
21025       2.4
21026
21027   PciBridgeInfo (Object)
21028       Information about a PCI Bridge device
21029
21030   Members
21031       bus: PciBusInfo
21032              information about the bus the device resides on
21033
21034       devices: array of PciDeviceInfo (optional)
21035              a list of PciDeviceInfo for each device on this bridge
21036
21037   Since
21038       0.14
21039
21040   PciDeviceClass (Object)
21041       Information about the Class of a PCI device
21042
21043   Members
21044       desc: string (optional)
21045              a string description of the device's class
21046
21047       class: int
21048              the class code of the device
21049
21050   Since
21051       2.4
21052
21053   PciDeviceId (Object)
21054       Information about the Id of a PCI device
21055
21056   Members
21057       device: int
21058              the PCI device id
21059
21060       vendor: int
21061              the PCI vendor id
21062
21063       subsystem: int (optional)
21064              the PCI subsystem id (since 3.1)
21065
21066       subsystem-vendor: int (optional)
21067              the PCI subsystem vendor id (since 3.1)
21068
21069   Since
21070       2.4
21071
21072   PciDeviceInfo (Object)
21073       Information about a PCI device
21074
21075   Members
21076       bus: int
21077              the bus number of the device
21078
21079       slot: int
21080              the slot the device is located in
21081
21082       function: int
21083              the function of the slot used by the device
21084
21085       class_info: PciDeviceClass
21086              the class of the device
21087
21088       id: PciDeviceId
21089              the PCI device id
21090
21091       irq: int (optional)
21092              if an IRQ is assigned to the device, the IRQ number
21093
21094       irq_pin: int
21095              the IRQ pin, zero means no IRQ (since 5.1)
21096
21097       qdev_id: string
21098              the device name of the PCI device
21099
21100       pci_bridge: PciBridgeInfo (optional)
21101              if the device is a PCI bridge, the bridge information
21102
21103       regions: array of PciMemoryRegion
21104              a list of the PCI I/O regions associated with the device
21105
21106   Notes
21107       the  contents  of  class_info.desc  are  not  stable and should only be
21108       treated as informational.
21109
21110   Since
21111       0.14
21112
21113   PciInfo (Object)
21114       Information about a PCI bus
21115
21116   Members
21117       bus: int
21118              the bus index
21119
21120       devices: array of PciDeviceInfo
21121              a list of devices on this bus
21122
21123   Since
21124       0.14
21125
21126   query-pci (Command)
21127       Return information about the PCI bus topology of the guest.
21128
21129   Returns
21130       a list of PciInfo for each PCI  bus.  Each  bus  is  represented  by  a
21131       json-object,  which  has a key with a json-array of all PCI devices at‐
21132       tached to it. Each device is represented by a json-object.
21133
21134   Since
21135       0.14
21136
21137   Example
21138          -> { "execute": "query-pci" }
21139          <- { "return": [
21140                   {
21141                      "bus": 0,
21142                      "devices": [
21143                         {
21144                            "bus": 0,
21145                            "qdev_id": "",
21146                            "slot": 0,
21147                            "class_info": {
21148                               "class": 1536,
21149                               "desc": "Host bridge"
21150                            },
21151                            "id": {
21152                               "device": 32902,
21153                               "vendor": 4663
21154                            },
21155                            "function": 0,
21156                            "regions": [
21157                            ]
21158                         },
21159                         {
21160                            "bus": 0,
21161                            "qdev_id": "",
21162                            "slot": 1,
21163                            "class_info": {
21164                               "class": 1537,
21165                               "desc": "ISA bridge"
21166                            },
21167                            "id": {
21168                               "device": 32902,
21169                               "vendor": 28672
21170                            },
21171                            "function": 0,
21172                            "regions": [
21173                            ]
21174                         },
21175                         {
21176                            "bus": 0,
21177                            "qdev_id": "",
21178                            "slot": 1,
21179                            "class_info": {
21180                               "class": 257,
21181                               "desc": "IDE controller"
21182                            },
21183                            "id": {
21184                               "device": 32902,
21185                               "vendor": 28688
21186                            },
21187                            "function": 1,
21188                            "regions": [
21189                               {
21190                                  "bar": 4,
21191                                  "size": 16,
21192                                  "address": 49152,
21193                                  "type": "io"
21194                               }
21195                            ]
21196                         },
21197                         {
21198                            "bus": 0,
21199                            "qdev_id": "",
21200                            "slot": 2,
21201                            "class_info": {
21202                               "class": 768,
21203                               "desc": "VGA controller"
21204                            },
21205                            "id": {
21206                               "device": 4115,
21207                               "vendor": 184
21208                            },
21209                            "function": 0,
21210                            "regions": [
21211                               {
21212                                  "prefetch": true,
21213                                  "mem_type_64": false,
21214                                  "bar": 0,
21215                                  "size": 33554432,
21216                                  "address": 4026531840,
21217                                  "type": "memory"
21218                               },
21219                               {
21220                                  "prefetch": false,
21221                                  "mem_type_64": false,
21222                                  "bar": 1,
21223                                  "size": 4096,
21224                                  "address": 4060086272,
21225                                  "type": "memory"
21226                               },
21227                               {
21228                                  "prefetch": false,
21229                                  "mem_type_64": false,
21230                                  "bar": 6,
21231                                  "size": 65536,
21232                                  "address": -1,
21233                                  "type": "memory"
21234                               }
21235                            ]
21236                         },
21237                         {
21238                            "bus": 0,
21239                            "qdev_id": "",
21240                            "irq": 11,
21241                            "slot": 4,
21242                            "class_info": {
21243                               "class": 1280,
21244                               "desc": "RAM controller"
21245                            },
21246                            "id": {
21247                               "device": 6900,
21248                               "vendor": 4098
21249                            },
21250                            "function": 0,
21251                            "regions": [
21252                               {
21253                                  "bar": 0,
21254                                  "size": 32,
21255                                  "address": 49280,
21256                                  "type": "io"
21257                               }
21258                            ]
21259                         }
21260                      ]
21261                   }
21262                ]
21263             }
21264
21265   Note
21266       This example has been shortened as the real response is too long.
21267
21269       2023, The QEMU Project Developers
21270
21271
21272
21273
212747.0.0                            Jan 19, 2023                  QEMU-QMP-REF(7)
Impressum