]> git.proxmox.com Git - mirror_qemu.git/blame - qapi/machine.json
Deprecate C virtiofsd
[mirror_qemu.git] / qapi / machine.json
CommitLineData
8ac25c84 1# -*- Mode: Python -*-
f7160f32 2# vim: filetype=python
8ac25c84
MA
3#
4# This work is licensed under the terms of the GNU GPL, version 2 or later.
5# See the COPYING file in the top-level directory.
6
7##
8# = Machines
9##
10
913d9063
KW
11{ 'include': 'common.json' }
12
ffaee83b
MA
13##
14# @SysEmuTarget:
15#
16# The comprehensive enumeration of QEMU system emulation ("softmmu")
17# targets. Run "./configure --help" in the project root directory, and
44e12af7 18# look for the \*-softmmu targets near the "--target-list" option. The
ffaee83b
MA
19# individual target constants are not documented here, for the time
20# being.
21#
c8c35e5f 22# @rx: since 5.0
42f3ff00 23# @avr: since 5.1
c8c35e5f 24#
ffaee83b
MA
25# Notes: The resulting QMP strings can be appended to the "qemu-system-"
26# prefix to produce the corresponding QEMU executable name. This
27# is true even for "qemu-system-x86_64".
28#
ffaee83b
MA
29# Since: 3.0
30##
31{ 'enum' : 'SysEmuTarget',
9d49bcf6 32 'data' : [ 'aarch64', 'alpha', 'arm', 'avr', 'cris', 'hppa', 'i386',
ffaee83b 33 'm68k', 'microblaze', 'microblazeel', 'mips', 'mips64',
875bb7e3 34 'mips64el', 'mipsel', 'nios2', 'or1k', 'ppc',
c8c35e5f 35 'ppc64', 'riscv32', 'riscv64', 'rx', 's390x', 'sh4',
43692239 36 'sh4eb', 'sparc', 'sparc64', 'tricore',
ffaee83b 37 'x86_64', 'xtensa', 'xtensaeb' ] }
8ac25c84 38
8ac25c84
MA
39##
40# @CpuS390State:
41#
42# An enumeration of cpu states that can be assumed by a virtual
43# S390 CPU
44#
45# Since: 2.12
46##
47{ 'enum': 'CpuS390State',
48 'prefix': 'S390_CPU_STATE',
49 'data': [ 'uninitialized', 'stopped', 'check-stop', 'operating', 'load' ] }
50
51##
52# @CpuInfoS390:
53#
54# Additional information about a virtual S390 CPU
55#
56# @cpu-state: the virtual CPU's state
57#
58# Since: 2.12
59##
60{ 'struct': 'CpuInfoS390', 'data': { 'cpu-state': 'CpuS390State' } }
61
8ac25c84
MA
62##
63# @CpuInfoFast:
64#
65# Information about a virtual CPU
66#
67# @cpu-index: index of the virtual CPU
68#
69# @qom-path: path to the CPU object in the QOM tree
70#
71# @thread-id: ID of the underlying host thread
72#
73# @props: properties describing to which node/socket/core/thread
74# virtual CPU belongs to, provided if supported by board
75#
8ac25c84
MA
76# @target: the QEMU system emulation target, which determines which
77# additional fields will be listed (since 3.0)
78#
79# Since: 2.12
80#
81##
82{ 'union' : 'CpuInfoFast',
83 'base' : { 'cpu-index' : 'int',
84 'qom-path' : 'str',
85 'thread-id' : 'int',
86 '*props' : 'CpuInstanceProperties',
8ac25c84
MA
87 'target' : 'SysEmuTarget' },
88 'discriminator' : 'target',
89 'data' : { 's390x' : 'CpuInfoS390' } }
90
91##
92# @query-cpus-fast:
93#
8af54b91 94# Returns information about all virtual CPUs.
8ac25c84
MA
95#
96# Returns: list of @CpuInfoFast
97#
98# Since: 2.12
99#
100# Example:
101#
102# -> { "execute": "query-cpus-fast" }
103# <- { "return": [
104# {
105# "thread-id": 25627,
106# "props": {
107# "core-id": 0,
108# "thread-id": 0,
109# "socket-id": 0
110# },
111# "qom-path": "/machine/unattached/device[0]",
112# "arch":"x86",
113# "target":"x86_64",
114# "cpu-index": 0
115# },
116# {
117# "thread-id": 25628,
118# "props": {
119# "core-id": 0,
120# "thread-id": 0,
121# "socket-id": 1
122# },
123# "qom-path": "/machine/unattached/device[2]",
124# "arch":"x86",
125# "target":"x86_64",
126# "cpu-index": 1
127# }
128# ]
129# }
130##
131{ 'command': 'query-cpus-fast', 'returns': [ 'CpuInfoFast' ] }
132
8ac25c84
MA
133##
134# @MachineInfo:
135#
136# Information describing a machine.
137#
138# @name: the name of the machine
139#
140# @alias: an alias for the machine name
141#
142# @is-default: whether the machine is default
143#
144# @cpu-max: maximum number of CPUs supported by the machine type
9bc6e893 145# (since 1.5)
8ac25c84 146#
9bc6e893 147# @hotpluggable-cpus: cpu hotplug via -device is supported (since 2.7)
8ac25c84 148#
cd5ff833
IM
149# @numa-mem-supported: true if '-numa node,mem' option is supported by
150# the machine type and false otherwise (since 4.1)
151#
79974027
EH
152# @deprecated: if true, the machine type is deprecated and may be removed
153# in future versions of QEMU according to the QEMU deprecation
9bc6e893 154# policy (since 4.1)
79974027 155#
04109957
DB
156# @default-cpu-type: default CPU model typename if none is requested via
157# the -cpu argument. (since 4.2)
158#
c5566005
MP
159# @default-ram-id: the default ID of initial RAM memory backend (since 5.2)
160#
9bc6e893 161# Since: 1.2
8ac25c84
MA
162##
163{ 'struct': 'MachineInfo',
164 'data': { 'name': 'str', '*alias': 'str',
165 '*is-default': 'bool', 'cpu-max': 'int',
79974027 166 'hotpluggable-cpus': 'bool', 'numa-mem-supported': 'bool',
c5566005
MP
167 'deprecated': 'bool', '*default-cpu-type': 'str',
168 '*default-ram-id': 'str' } }
8ac25c84
MA
169
170##
171# @query-machines:
172#
173# Return a list of supported machines
174#
175# Returns: a list of MachineInfo
176#
9bc6e893 177# Since: 1.2
8ac25c84
MA
178##
179{ 'command': 'query-machines', 'returns': ['MachineInfo'] }
180
181##
182# @CurrentMachineParams:
183#
184# Information describing the running machine parameters.
185#
186# @wakeup-suspend-support: true if the machine supports wake up from
187# suspend
188#
189# Since: 4.0
190##
191{ 'struct': 'CurrentMachineParams',
192 'data': { 'wakeup-suspend-support': 'bool'} }
193
194##
195# @query-current-machine:
196#
197# Return information on the current virtual machine.
198#
199# Returns: CurrentMachineParams
200#
201# Since: 4.0
202##
203{ 'command': 'query-current-machine', 'returns': 'CurrentMachineParams' }
204
ffaee83b
MA
205##
206# @TargetInfo:
207#
208# Information describing the QEMU target.
209#
210# @arch: the target architecture
211#
9bc6e893 212# Since: 1.2
ffaee83b
MA
213##
214{ 'struct': 'TargetInfo',
215 'data': { 'arch': 'SysEmuTarget' } }
216
217##
218# @query-target:
219#
220# Return information about the target for this QEMU
221#
222# Returns: TargetInfo
223#
9bc6e893 224# Since: 1.2
ffaee83b
MA
225##
226{ 'command': 'query-target', 'returns': 'TargetInfo' }
227
f68c0147
PMD
228##
229# @UuidInfo:
230#
231# Guest UUID information (Universally Unique Identifier).
232#
233# @UUID: the UUID of the guest
234#
9bc6e893 235# Since: 0.14
f68c0147
PMD
236#
237# Notes: If no UUID was specified for the guest, a null UUID is returned.
238##
239{ 'struct': 'UuidInfo', 'data': {'UUID': 'str'} }
240
241##
242# @query-uuid:
243#
244# Query the guest UUID information.
245#
246# Returns: The @UuidInfo for the guest
247#
9bc6e893 248# Since: 0.14
f68c0147
PMD
249#
250# Example:
251#
252# -> { "execute": "query-uuid" }
253# <- { "return": { "UUID": "550e8400-e29b-41d4-a716-446655440000" } }
254#
255##
256{ 'command': 'query-uuid', 'returns': 'UuidInfo', 'allow-preconfig': true }
257
db0f08df
PMD
258##
259# @GuidInfo:
260#
261# GUID information.
262#
263# @guid: the globally unique identifier
264#
265# Since: 2.9
266##
267{ 'struct': 'GuidInfo', 'data': {'guid': 'str'} }
268
269##
270# @query-vm-generation-id:
271#
272# Show Virtual Machine Generation ID
273#
274# Since: 2.9
275##
276{ 'command': 'query-vm-generation-id', 'returns': 'GuidInfo' }
277
90f8c0f9
PMD
278##
279# @system_reset:
280#
281# Performs a hard reset of a guest.
282#
9bc6e893 283# Since: 0.14
90f8c0f9
PMD
284#
285# Example:
286#
287# -> { "execute": "system_reset" }
288# <- { "return": {} }
289#
290##
291{ 'command': 'system_reset' }
292
293##
294# @system_powerdown:
295#
296# Requests that a guest perform a powerdown operation.
297#
9bc6e893 298# Since: 0.14
90f8c0f9
PMD
299#
300# Notes: A guest may or may not respond to this command. This command
301# returning does not indicate that a guest has accepted the request or
302# that it has shut down. Many guests will respond to this command by
303# prompting the user in some way.
304# Example:
305#
306# -> { "execute": "system_powerdown" }
307# <- { "return": {} }
308#
309##
310{ 'command': 'system_powerdown' }
311
312##
313# @system_wakeup:
314#
315# Wake up guest from suspend. If the guest has wake-up from suspend
316# support enabled (wakeup-suspend-support flag from
317# query-current-machine), wake-up guest from suspend if the guest is
318# in SUSPENDED state. Return an error otherwise.
319#
320# Since: 1.1
321#
322# Returns: nothing.
323#
324# Note: prior to 4.0, this command does nothing in case the guest
325# isn't suspended.
326#
327# Example:
328#
329# -> { "execute": "system_wakeup" }
330# <- { "return": {} }
331#
332##
333{ 'command': 'system_wakeup' }
334
8dc007d3
PMD
335##
336# @LostTickPolicy:
337#
338# Policy for handling lost ticks in timer devices. Ticks end up getting
339# lost when, for example, the guest is paused.
340#
341# @discard: throw away the missed ticks and continue with future injection
342# normally. The guest OS will see the timer jump ahead by a
343# potentially quite significant amount all at once, as if the
344# intervening chunk of time had simply not existed; needless to
345# say, such a sudden jump can easily confuse a guest OS which is
346# not specifically prepared to deal with it. Assuming the guest
347# OS can deal correctly with the time jump, the time in the guest
348# and in the host should now match.
349#
350# @delay: continue to deliver ticks at the normal rate. The guest OS will
351# not notice anything is amiss, as from its point of view time will
352# have continued to flow normally. The time in the guest should now
353# be behind the time in the host by exactly the amount of time during
354# which ticks have been missed.
355#
356# @slew: deliver ticks at a higher rate to catch up with the missed ticks.
357# The guest OS will not notice anything is amiss, as from its point
358# of view time will have continued to flow normally. Once the timer
359# has managed to catch up with all the missing ticks, the time in
360# the guest and in the host should match.
361#
362# Since: 2.0
363##
364{ 'enum': 'LostTickPolicy',
365 'data': ['discard', 'delay', 'slew' ] }
366
df7a1f48
PMD
367##
368# @inject-nmi:
369#
370# Injects a Non-Maskable Interrupt into the default CPU (x86/s390) or all CPUs (ppc64).
371# The command fails when the guest doesn't support injecting.
372#
373# Returns: If successful, nothing
374#
9bc6e893 375# Since: 0.14
df7a1f48
PMD
376#
377# Note: prior to 2.1, this command was only supported for x86 and s390 VMs
378#
379# Example:
380#
381# -> { "execute": "inject-nmi" }
382# <- { "return": {} }
383#
384##
385{ 'command': 'inject-nmi' }
386
81dddc1b
PMD
387##
388# @KvmInfo:
389#
390# Information about support for KVM acceleration
391#
392# @enabled: true if KVM acceleration is active
393#
394# @present: true if KVM acceleration is built into this executable
395#
9bc6e893 396# Since: 0.14
81dddc1b
PMD
397##
398{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool'} }
399
400##
401# @query-kvm:
402#
403# Returns information about KVM acceleration
404#
405# Returns: @KvmInfo
406#
9bc6e893 407# Since: 0.14
81dddc1b
PMD
408#
409# Example:
410#
411# -> { "execute": "query-kvm" }
412# <- { "return": { "enabled": true, "present": true } }
413#
414##
415{ 'command': 'query-kvm', 'returns': 'KvmInfo' }
416
8ac25c84
MA
417##
418# @NumaOptionsType:
419#
420# @node: NUMA nodes configuration
421#
422# @dist: NUMA distance configuration (since 2.10)
423#
424# @cpu: property based CPU(s) to node mapping (Since: 2.10)
425#
9b12dfa0
LJ
426# @hmat-lb: memory latency and bandwidth information (Since: 5.0)
427#
c412a48d
LJ
428# @hmat-cache: memory side cache information (Since: 5.0)
429#
8ac25c84
MA
430# Since: 2.1
431##
432{ 'enum': 'NumaOptionsType',
c412a48d 433 'data': [ 'node', 'dist', 'cpu', 'hmat-lb', 'hmat-cache' ] }
8ac25c84
MA
434
435##
436# @NumaOptions:
437#
438# A discriminated record of NUMA options. (for OptsVisitor)
439#
440# Since: 2.1
441##
442{ 'union': 'NumaOptions',
443 'base': { 'type': 'NumaOptionsType' },
444 'discriminator': 'type',
445 'data': {
446 'node': 'NumaNodeOptions',
447 'dist': 'NumaDistOptions',
9b12dfa0 448 'cpu': 'NumaCpuOptions',
c412a48d
LJ
449 'hmat-lb': 'NumaHmatLBOptions',
450 'hmat-cache': 'NumaHmatCacheOptions' }}
8ac25c84
MA
451
452##
453# @NumaNodeOptions:
454#
455# Create a guest NUMA node. (for OptsVisitor)
456#
457# @nodeid: NUMA node ID (increase by 1 from 0 if omitted)
458#
459# @cpus: VCPUs belonging to this node (assign VCPUS round-robin
460# if omitted)
461#
462# @mem: memory size of this node; mutually exclusive with @memdev.
463# Equally divide total memory among nodes if both @mem and @memdev are
464# omitted.
465#
466# @memdev: memory backend object. If specified for one node,
467# it must be specified for all nodes.
468#
244b3f44
TX
469# @initiator: defined in ACPI 6.3 Chapter 5.2.27.3 Table 5-145,
470# points to the nodeid which has the memory controller
471# responsible for this NUMA node. This field provides
472# additional information as to the initiator node that
473# is closest (as in directly attached) to this node, and
474# therefore has the best performance (since 5.0)
475#
8ac25c84
MA
476# Since: 2.1
477##
478{ 'struct': 'NumaNodeOptions',
479 'data': {
480 '*nodeid': 'uint16',
481 '*cpus': ['uint16'],
482 '*mem': 'size',
244b3f44
TX
483 '*memdev': 'str',
484 '*initiator': 'uint16' }}
8ac25c84
MA
485
486##
487# @NumaDistOptions:
488#
489# Set the distance between 2 NUMA nodes.
490#
491# @src: source NUMA node.
492#
493# @dst: destination NUMA node.
494#
495# @val: NUMA distance from source node to destination node.
496# When a node is unreachable from another node, set the distance
497# between them to 255.
498#
499# Since: 2.10
500##
501{ 'struct': 'NumaDistOptions',
502 'data': {
503 'src': 'uint16',
504 'dst': 'uint16',
505 'val': 'uint8' }}
506
507##
508# @X86CPURegister32:
509#
510# A X86 32-bit register
511#
512# Since: 1.5
513##
514{ 'enum': 'X86CPURegister32',
515 'data': [ 'EAX', 'EBX', 'ECX', 'EDX', 'ESP', 'EBP', 'ESI', 'EDI' ] }
516
517##
518# @X86CPUFeatureWordInfo:
519#
520# Information about a X86 CPU feature word
521#
522# @cpuid-input-eax: Input EAX value for CPUID instruction for that feature word
523#
524# @cpuid-input-ecx: Input ECX value for CPUID instruction for that
525# feature word
526#
527# @cpuid-register: Output register containing the feature bits
528#
529# @features: value of output register, containing the feature bits
530#
531# Since: 1.5
532##
533{ 'struct': 'X86CPUFeatureWordInfo',
534 'data': { 'cpuid-input-eax': 'int',
535 '*cpuid-input-ecx': 'int',
536 'cpuid-register': 'X86CPURegister32',
537 'features': 'int' } }
538
539##
540# @DummyForceArrays:
541#
542# Not used by QMP; hack to let us use X86CPUFeatureWordInfoList internally
543#
544# Since: 2.5
545##
546{ 'struct': 'DummyForceArrays',
547 'data': { 'unused': ['X86CPUFeatureWordInfo'] } }
548
549##
550# @NumaCpuOptions:
551#
552# Option "-numa cpu" overrides default cpu to node mapping.
553# It accepts the same set of cpu properties as returned by
554# query-hotpluggable-cpus[].props, where node-id could be used to
555# override default node mapping.
556#
557# Since: 2.10
558##
559{ 'struct': 'NumaCpuOptions',
560 'base': 'CpuInstanceProperties',
561 'data' : {} }
562
9b12dfa0
LJ
563##
564# @HmatLBMemoryHierarchy:
565#
566# The memory hierarchy in the System Locality Latency and Bandwidth
567# Information Structure of HMAT (Heterogeneous Memory Attribute Table)
568#
569# For more information about @HmatLBMemoryHierarchy, see chapter
570# 5.2.27.4: Table 5-146: Field "Flags" of ACPI 6.3 spec.
571#
572# @memory: the structure represents the memory performance
573#
574# @first-level: first level of memory side cache
575#
576# @second-level: second level of memory side cache
577#
578# @third-level: third level of memory side cache
579#
580# Since: 5.0
581##
582{ 'enum': 'HmatLBMemoryHierarchy',
583 'data': [ 'memory', 'first-level', 'second-level', 'third-level' ] }
584
585##
586# @HmatLBDataType:
587#
588# Data type in the System Locality Latency and Bandwidth
589# Information Structure of HMAT (Heterogeneous Memory Attribute Table)
590#
591# For more information about @HmatLBDataType, see chapter
592# 5.2.27.4: Table 5-146: Field "Data Type" of ACPI 6.3 spec.
593#
594# @access-latency: access latency (nanoseconds)
595#
596# @read-latency: read latency (nanoseconds)
597#
598# @write-latency: write latency (nanoseconds)
599#
600# @access-bandwidth: access bandwidth (Bytes per second)
601#
602# @read-bandwidth: read bandwidth (Bytes per second)
603#
604# @write-bandwidth: write bandwidth (Bytes per second)
605#
606# Since: 5.0
607##
608{ 'enum': 'HmatLBDataType',
609 'data': [ 'access-latency', 'read-latency', 'write-latency',
610 'access-bandwidth', 'read-bandwidth', 'write-bandwidth' ] }
611
612##
613# @NumaHmatLBOptions:
614#
615# Set the system locality latency and bandwidth information
616# between Initiator and Target proximity Domains.
617#
618# For more information about @NumaHmatLBOptions, see chapter
619# 5.2.27.4: Table 5-146 of ACPI 6.3 spec.
620#
621# @initiator: the Initiator Proximity Domain.
622#
623# @target: the Target Proximity Domain.
624#
625# @hierarchy: the Memory Hierarchy. Indicates the performance
626# of memory or side cache.
627#
628# @data-type: presents the type of data, access/read/write
629# latency or hit latency.
630#
631# @latency: the value of latency from @initiator to @target
632# proximity domain, the latency unit is "ns(nanosecond)".
633#
634# @bandwidth: the value of bandwidth between @initiator and @target
635# proximity domain, the bandwidth unit is
636# "Bytes per second".
637#
638# Since: 5.0
639##
640{ 'struct': 'NumaHmatLBOptions',
641 'data': {
642 'initiator': 'uint16',
643 'target': 'uint16',
644 'hierarchy': 'HmatLBMemoryHierarchy',
645 'data-type': 'HmatLBDataType',
646 '*latency': 'uint64',
647 '*bandwidth': 'size' }}
648
c412a48d
LJ
649##
650# @HmatCacheAssociativity:
651#
652# Cache associativity in the Memory Side Cache Information Structure
653# of HMAT
654#
655# For more information of @HmatCacheAssociativity, see chapter
656# 5.2.27.5: Table 5-147 of ACPI 6.3 spec.
657#
658# @none: None (no memory side cache in this proximity domain,
659# or cache associativity unknown)
660#
661# @direct: Direct Mapped
662#
663# @complex: Complex Cache Indexing (implementation specific)
664#
665# Since: 5.0
666##
667{ 'enum': 'HmatCacheAssociativity',
668 'data': [ 'none', 'direct', 'complex' ] }
669
670##
671# @HmatCacheWritePolicy:
672#
673# Cache write policy in the Memory Side Cache Information Structure
674# of HMAT
675#
676# For more information of @HmatCacheWritePolicy, see chapter
677# 5.2.27.5: Table 5-147: Field "Cache Attributes" of ACPI 6.3 spec.
678#
679# @none: None (no memory side cache in this proximity domain,
26ec4e53 680# or cache write policy unknown)
c412a48d
LJ
681#
682# @write-back: Write Back (WB)
683#
684# @write-through: Write Through (WT)
685#
686# Since: 5.0
687##
688{ 'enum': 'HmatCacheWritePolicy',
689 'data': [ 'none', 'write-back', 'write-through' ] }
690
691##
692# @NumaHmatCacheOptions:
693#
694# Set the memory side cache information for a given memory domain.
695#
696# For more information of @NumaHmatCacheOptions, see chapter
697# 5.2.27.5: Table 5-147: Field "Cache Attributes" of ACPI 6.3 spec.
698#
699# @node-id: the memory proximity domain to which the memory belongs.
700#
701# @size: the size of memory side cache in bytes.
702#
703# @level: the cache level described in this structure.
704#
705# @associativity: the cache associativity,
26ec4e53 706# none/direct-mapped/complex(complex cache indexing).
c412a48d
LJ
707#
708# @policy: the write policy, none/write-back/write-through.
709#
710# @line: the cache Line size in bytes.
711#
712# Since: 5.0
713##
714{ 'struct': 'NumaHmatCacheOptions',
715 'data': {
716 'node-id': 'uint32',
717 'size': 'size',
718 'level': 'uint8',
719 'associativity': 'HmatCacheAssociativity',
720 'policy': 'HmatCacheWritePolicy',
721 'line': 'uint16' }}
722
d4130cbf
PMD
723##
724# @memsave:
725#
726# Save a portion of guest memory to a file.
727#
728# @val: the virtual address of the guest to start from
729#
730# @size: the size of memory region to save
731#
732# @filename: the file to save the memory to as binary data
733#
734# @cpu-index: the index of the virtual CPU to use for translating the
735# virtual address (defaults to CPU 0)
736#
737# Returns: Nothing on success
738#
9bc6e893 739# Since: 0.14
d4130cbf
PMD
740#
741# Notes: Errors were not reliably returned until 1.1
742#
743# Example:
744#
745# -> { "execute": "memsave",
746# "arguments": { "val": 10,
747# "size": 100,
748# "filename": "/tmp/virtual-mem-dump" } }
749# <- { "return": {} }
750#
751##
752{ 'command': 'memsave',
753 'data': {'val': 'int', 'size': 'int', 'filename': 'str', '*cpu-index': 'int'} }
754
755##
756# @pmemsave:
757#
758# Save a portion of guest physical memory to a file.
759#
760# @val: the physical address of the guest to start from
761#
762# @size: the size of memory region to save
763#
764# @filename: the file to save the memory to as binary data
765#
766# Returns: Nothing on success
767#
9bc6e893 768# Since: 0.14
d4130cbf
PMD
769#
770# Notes: Errors were not reliably returned until 1.1
771#
772# Example:
773#
774# -> { "execute": "pmemsave",
775# "arguments": { "val": 10,
776# "size": 100,
777# "filename": "/tmp/physical-mem-dump" } }
778# <- { "return": {} }
779#
780##
781{ 'command': 'pmemsave',
782 'data': {'val': 'int', 'size': 'int', 'filename': 'str'} }
783
8ac25c84
MA
784##
785# @Memdev:
786#
787# Information about memory backend
788#
789# @id: backend's ID if backend has 'id' property (since 2.9)
790#
791# @size: memory backend size
792#
157cfaf9 793# @merge: whether memory merge support is enabled
8ac25c84 794#
157cfaf9 795# @dump: whether memory backend's memory is included in a core dump
8ac25c84 796#
157cfaf9 797# @prealloc: whether memory was preallocated
8ac25c84 798#
d300fc54
DH
799# @share: whether memory is private to QEMU or shared (since 6.1)
800#
69647f9d
DH
801# @reserve: whether swap space (or huge pages) was reserved if applicable.
802# This corresponds to the user configuration and not the actual
803# behavior implemented in the OS to perform the reservation.
804# For example, Linux will never reserve swap space for shared
805# file mappings. (since 6.1)
806#
8ac25c84
MA
807# @host-nodes: host nodes for its memory policy
808#
809# @policy: memory policy of memory backend
810#
811# Since: 2.1
812##
813{ 'struct': 'Memdev',
814 'data': {
815 '*id': 'str',
816 'size': 'size',
817 'merge': 'bool',
818 'dump': 'bool',
819 'prealloc': 'bool',
d300fc54 820 'share': 'bool',
69647f9d 821 '*reserve': 'bool',
8ac25c84
MA
822 'host-nodes': ['uint16'],
823 'policy': 'HostMemPolicy' }}
824
825##
826# @query-memdev:
827#
828# Returns information for all memory backends.
829#
830# Returns: a list of @Memdev.
831#
832# Since: 2.1
833#
834# Example:
835#
836# -> { "execute": "query-memdev" }
837# <- { "return": [
838# {
839# "id": "mem1",
840# "size": 536870912,
841# "merge": false,
842# "dump": true,
843# "prealloc": false,
844# "host-nodes": [0, 1],
845# "policy": "bind"
846# },
847# {
848# "size": 536870912,
849# "merge": false,
850# "dump": true,
851# "prealloc": true,
852# "host-nodes": [2, 3],
853# "policy": "preferred"
854# }
855# ]
856# }
857#
858##
859{ 'command': 'query-memdev', 'returns': ['Memdev'], 'allow-preconfig': true }
860
861##
862# @CpuInstanceProperties:
863#
864# List of properties to be used for hotplugging a CPU instance,
865# it should be passed by management with device_add command when
866# a CPU is being hotplugged.
867#
868# @node-id: NUMA node ID the CPU belongs to
869# @socket-id: socket number within node/board the CPU belongs to
226fad73 870# @die-id: die number within socket the CPU belongs to (since 4.1)
6ac3f1e7
PM
871# @core-id: core number within die the CPU belongs to
872# @thread-id: thread number within core the CPU belongs to
8ac25c84 873#
176d2cda 874# Note: currently there are 5 properties that could be present
26ec4e53
PM
875# but management should be prepared to pass through other
876# properties with device_add command to allow for future
877# interface extension. This also requires the filed names to be kept in
878# sync with the properties passed to -device/device_add.
8ac25c84
MA
879#
880# Since: 2.7
881##
882{ 'struct': 'CpuInstanceProperties',
883 'data': { '*node-id': 'int',
884 '*socket-id': 'int',
176d2cda 885 '*die-id': 'int',
8ac25c84
MA
886 '*core-id': 'int',
887 '*thread-id': 'int'
888 }
889}
890
891##
892# @HotpluggableCPU:
893#
894# @type: CPU object type for usage with device_add command
895# @props: list of properties to be used for hotplugging CPU
896# @vcpus-count: number of logical VCPU threads @HotpluggableCPU provides
897# @qom-path: link to existing CPU object if CPU is present or
898# omitted if CPU is not present.
899#
900# Since: 2.7
901##
902{ 'struct': 'HotpluggableCPU',
903 'data': { 'type': 'str',
904 'vcpus-count': 'int',
905 'props': 'CpuInstanceProperties',
906 '*qom-path': 'str'
907 }
908}
909
910##
911# @query-hotpluggable-cpus:
912#
913# TODO: Better documentation; currently there is none.
914#
915# Returns: a list of HotpluggableCPU objects.
916#
917# Since: 2.7
918#
919# Example:
920#
921# For pseries machine type started with -smp 2,cores=2,maxcpus=4 -cpu POWER8:
922#
923# -> { "execute": "query-hotpluggable-cpus" }
924# <- {"return": [
925# { "props": { "core": 8 }, "type": "POWER8-spapr-cpu-core",
926# "vcpus-count": 1 },
927# { "props": { "core": 0 }, "type": "POWER8-spapr-cpu-core",
928# "vcpus-count": 1, "qom-path": "/machine/unattached/device[0]"}
929# ]}'
930#
931# For pc machine type started with -smp 1,maxcpus=2:
932#
933# -> { "execute": "query-hotpluggable-cpus" }
934# <- {"return": [
935# {
936# "type": "qemu64-x86_64-cpu", "vcpus-count": 1,
937# "props": {"core-id": 0, "socket-id": 1, "thread-id": 0}
938# },
939# {
940# "qom-path": "/machine/unattached/device[0]",
941# "type": "qemu64-x86_64-cpu", "vcpus-count": 1,
942# "props": {"core-id": 0, "socket-id": 0, "thread-id": 0}
943# }
944# ]}
945#
946# For s390x-virtio-ccw machine type started with -smp 1,maxcpus=2 -cpu qemu
947# (Since: 2.11):
948#
949# -> { "execute": "query-hotpluggable-cpus" }
950# <- {"return": [
951# {
952# "type": "qemu-s390x-cpu", "vcpus-count": 1,
953# "props": { "core-id": 1 }
954# },
955# {
956# "qom-path": "/machine/unattached/device[0]",
957# "type": "qemu-s390x-cpu", "vcpus-count": 1,
958# "props": { "core-id": 0 }
959# }
960# ]}
961#
962##
963{ 'command': 'query-hotpluggable-cpus', 'returns': ['HotpluggableCPU'],
964 'allow-preconfig': true }
965
966##
967# @set-numa-node:
968#
969# Runtime equivalent of '-numa' CLI option, available at
970# preconfigure stage to configure numa mapping before initializing
971# machine.
972#
973# Since 3.0
974##
975{ 'command': 'set-numa-node', 'boxed': true,
976 'data': 'NumaOptions',
977 'allow-preconfig': true
978}
a83e24ba
PMD
979
980##
981# @balloon:
982#
983# Request the balloon driver to change its balloon size.
984#
826bd069 985# @value: the target logical size of the VM in bytes.
a83e24ba 986# We can deduce the size of the balloon using this formula:
826bd069 987#
a83e24ba 988# logical_vm_size = vm_ram_size - balloon_size
826bd069 989#
a83e24ba
PMD
990# From it we have: balloon_size = vm_ram_size - @value
991#
992# Returns: - Nothing on success
993# - If the balloon driver is enabled but not functional because the KVM
994# kernel module cannot support it, KvmMissingCap
995# - If no balloon device is present, DeviceNotActive
996#
997# Notes: This command just issues a request to the guest. When it returns,
998# the balloon size may not have changed. A guest can change the balloon
999# size independent of this command.
1000#
9bc6e893 1001# Since: 0.14
a83e24ba
PMD
1002#
1003# Example:
1004#
1005# -> { "execute": "balloon", "arguments": { "value": 536870912 } }
1006# <- { "return": {} }
1007#
1008# With a 2.5GiB guest this command inflated the ballon to 3GiB.
1009#
1010##
1011{ 'command': 'balloon', 'data': {'value': 'int'} }
1012
1013##
1014# @BalloonInfo:
1015#
1016# Information about the guest balloon device.
1017#
1018# @actual: the logical size of the VM in bytes
1019# Formula used: logical_vm_size = vm_ram_size - balloon_size
1020#
9bc6e893 1021# Since: 0.14
a83e24ba
PMD
1022#
1023##
1024{ 'struct': 'BalloonInfo', 'data': {'actual': 'int' } }
1025
1026##
1027# @query-balloon:
1028#
1029# Return information about the balloon device.
1030#
1031# Returns: - @BalloonInfo on success
1032# - If the balloon driver is enabled but not functional because the KVM
1033# kernel module cannot support it, KvmMissingCap
1034# - If no balloon device is present, DeviceNotActive
1035#
9bc6e893 1036# Since: 0.14
a83e24ba
PMD
1037#
1038# Example:
1039#
1040# -> { "execute": "query-balloon" }
1041# <- { "return": {
1042# "actual": 1073741824,
1043# }
1044# }
1045#
1046##
1047{ 'command': 'query-balloon', 'returns': 'BalloonInfo' }
1048
1049##
1050# @BALLOON_CHANGE:
1051#
1052# Emitted when the guest changes the actual BALLOON level. This value is
1053# equivalent to the @actual field return by the 'query-balloon' command
1054#
1055# @actual: the logical size of the VM in bytes
1056# Formula used: logical_vm_size = vm_ram_size - balloon_size
1057#
1058# Note: this event is rate-limited.
1059#
1060# Since: 1.2
1061#
1062# Example:
1063#
1064# <- { "event": "BALLOON_CHANGE",
1065# "data": { "actual": 944766976 },
1066# "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
1067#
1068##
1069{ 'event': 'BALLOON_CHANGE',
1070 'data': { 'actual': 'int' } }
b495ec6c
PMD
1071
1072##
1073# @MemoryInfo:
1074#
1075# Actual memory information in bytes.
1076#
1077# @base-memory: size of "base" memory specified with command line
1078# option -m.
1079#
1080# @plugged-memory: size of memory that can be hot-unplugged. This field
1081# is omitted if target doesn't support memory hotplug
1082# (i.e. CONFIG_MEM_DEVICE not defined at build time).
1083#
9bc6e893 1084# Since: 2.11
b495ec6c
PMD
1085##
1086{ 'struct': 'MemoryInfo',
1087 'data' : { 'base-memory': 'size', '*plugged-memory': 'size' } }
1088
1089##
1090# @query-memory-size-summary:
1091#
1092# Return the amount of initially allocated and present hotpluggable (if
1093# enabled) memory in bytes.
1094#
1095# Example:
1096#
1097# -> { "execute": "query-memory-size-summary" }
1098# <- { "return": { "base-memory": 4294967296, "plugged-memory": 0 } }
1099#
9bc6e893 1100# Since: 2.11
b495ec6c
PMD
1101##
1102{ 'command': 'query-memory-size-summary', 'returns': 'MemoryInfo' }
1103
1104##
1105# @PCDIMMDeviceInfo:
1106#
1107# PCDIMMDevice state information
1108#
1109# @id: device's ID
1110#
1111# @addr: physical address, where device is mapped
1112#
1113# @size: size of memory that the device provides
1114#
1115# @slot: slot number at which device is plugged in
1116#
1117# @node: NUMA node number where device is plugged in
1118#
1119# @memdev: memory backend linked with device
1120#
1121# @hotplugged: true if device was hotplugged
1122#
1123# @hotpluggable: true if device if could be added/removed while machine is running
1124#
1125# Since: 2.1
1126##
1127{ 'struct': 'PCDIMMDeviceInfo',
1128 'data': { '*id': 'str',
1129 'addr': 'int',
1130 'size': 'int',
1131 'slot': 'int',
1132 'node': 'int',
1133 'memdev': 'str',
1134 'hotplugged': 'bool',
1135 'hotpluggable': 'bool'
1136 }
1137}
1138
1139##
1140# @VirtioPMEMDeviceInfo:
1141#
1142# VirtioPMEM state information
1143#
1144# @id: device's ID
1145#
1146# @memaddr: physical address in memory, where device is mapped
1147#
1148# @size: size of memory that the device provides
1149#
1150# @memdev: memory backend linked with device
1151#
1152# Since: 4.1
1153##
1154{ 'struct': 'VirtioPMEMDeviceInfo',
1155 'data': { '*id': 'str',
1156 'memaddr': 'size',
1157 'size': 'size',
1158 'memdev': 'str'
1159 }
1160}
1161
1162##
1163# @VirtioMEMDeviceInfo:
1164#
1165# VirtioMEMDevice state information
1166#
1167# @id: device's ID
1168#
1169# @memaddr: physical address in memory, where device is mapped
1170#
1171# @requested-size: the user requested size of the device
1172#
1173# @size: the (current) size of memory that the device provides
1174#
1175# @max-size: the maximum size of memory that the device can provide
1176#
1177# @block-size: the block size of memory that the device provides
1178#
1179# @node: NUMA node number where device is assigned to
1180#
1181# @memdev: memory backend linked with the region
1182#
1183# Since: 5.1
1184##
1185{ 'struct': 'VirtioMEMDeviceInfo',
1186 'data': { '*id': 'str',
1187 'memaddr': 'size',
1188 'requested-size': 'size',
1189 'size': 'size',
1190 'max-size': 'size',
1191 'block-size': 'size',
1192 'node': 'int',
1193 'memdev': 'str'
1194 }
1195}
1196
a7c565a9
YZ
1197##
1198# @SgxEPCDeviceInfo:
1199#
1200# Sgx EPC state information
1201#
1202# @id: device's ID
1203#
1204# @memaddr: physical address in memory, where device is mapped
1205#
1206# @size: size of memory that the device provides
1207#
1208# @memdev: memory backend linked with device
1209#
a66bd91f 1210# @node: the numa node (Since: 7.0)
11058123 1211#
a7c565a9
YZ
1212# Since: 6.2
1213##
1214{ 'struct': 'SgxEPCDeviceInfo',
1215 'data': { '*id': 'str',
1216 'memaddr': 'size',
1217 'size': 'size',
11058123 1218 'node': 'int',
a7c565a9
YZ
1219 'memdev': 'str'
1220 }
1221}
1222
db6a252b
MA
1223##
1224# @MemoryDeviceInfoKind:
1225#
1226# Since: 2.1
1227##
1228{ 'enum': 'MemoryDeviceInfoKind',
a7c565a9 1229 'data': [ 'dimm', 'nvdimm', 'virtio-pmem', 'virtio-mem', 'sgx-epc' ] }
db6a252b
MA
1230
1231##
1232# @PCDIMMDeviceInfoWrapper:
1233#
1234# Since: 2.1
1235##
1236{ 'struct': 'PCDIMMDeviceInfoWrapper',
1237 'data': { 'data': 'PCDIMMDeviceInfo' } }
1238
1239##
1240# @VirtioPMEMDeviceInfoWrapper:
1241#
1242# Since: 2.1
1243##
1244{ 'struct': 'VirtioPMEMDeviceInfoWrapper',
1245 'data': { 'data': 'VirtioPMEMDeviceInfo' } }
1246
1247##
1248# @VirtioMEMDeviceInfoWrapper:
1249#
1250# Since: 2.1
1251##
1252{ 'struct': 'VirtioMEMDeviceInfoWrapper',
1253 'data': { 'data': 'VirtioMEMDeviceInfo' } }
1254
a7c565a9
YZ
1255##
1256# @SgxEPCDeviceInfoWrapper:
1257#
1258# Since: 6.2
1259##
1260{ 'struct': 'SgxEPCDeviceInfoWrapper',
1261 'data': { 'data': 'SgxEPCDeviceInfo' } }
1262
b495ec6c
PMD
1263##
1264# @MemoryDeviceInfo:
1265#
1266# Union containing information about a memory device
1267#
1268# nvdimm is included since 2.12. virtio-pmem is included since 4.1.
a7c565a9 1269# virtio-mem is included since 5.1. sgx-epc is included since 6.2.
b495ec6c
PMD
1270#
1271# Since: 2.1
1272##
1273{ 'union': 'MemoryDeviceInfo',
db6a252b
MA
1274 'base': { 'type': 'MemoryDeviceInfoKind' },
1275 'discriminator': 'type',
1276 'data': { 'dimm': 'PCDIMMDeviceInfoWrapper',
1277 'nvdimm': 'PCDIMMDeviceInfoWrapper',
1278 'virtio-pmem': 'VirtioPMEMDeviceInfoWrapper',
a7c565a9
YZ
1279 'virtio-mem': 'VirtioMEMDeviceInfoWrapper',
1280 'sgx-epc': 'SgxEPCDeviceInfoWrapper'
b495ec6c
PMD
1281 }
1282}
1283
dfce81f1
SC
1284##
1285# @SgxEPC:
1286#
1287# Sgx EPC cmdline information
1288#
1289# @memdev: memory backend linked with device
1290#
a66bd91f 1291# @node: the numa node (Since: 7.0)
11058123 1292#
dfce81f1
SC
1293# Since: 6.2
1294##
1295{ 'struct': 'SgxEPC',
11058123
YZ
1296 'data': { 'memdev': 'str',
1297 'node': 'int'
1298 }
1299}
dfce81f1
SC
1300
1301##
1302# @SgxEPCProperties:
1303#
1304# SGX properties of machine types.
1305#
1306# @sgx-epc: list of ids of memory-backend-epc objects.
1307#
1308# Since: 6.2
1309##
1310{ 'struct': 'SgxEPCProperties',
1311 'data': { 'sgx-epc': ['SgxEPC'] }
1312}
1313
b495ec6c
PMD
1314##
1315# @query-memory-devices:
1316#
1317# Lists available memory devices and their state
1318#
1319# Since: 2.1
1320#
1321# Example:
1322#
1323# -> { "execute": "query-memory-devices" }
1324# <- { "return": [ { "data":
1325# { "addr": 5368709120,
1326# "hotpluggable": true,
1327# "hotplugged": true,
1328# "id": "d1",
1329# "memdev": "/objects/memX",
1330# "node": 0,
1331# "size": 1073741824,
1332# "slot": 0},
1333# "type": "dimm"
1334# } ] }
1335#
1336##
1337{ 'command': 'query-memory-devices', 'returns': ['MemoryDeviceInfo'] }
1338
1339##
1340# @MEMORY_DEVICE_SIZE_CHANGE:
1341#
1342# Emitted when the size of a memory device changes. Only emitted for memory
1343# devices that can actually change the size (e.g., virtio-mem due to guest
1344# action).
1345#
1346# @id: device's ID
d89dd28f 1347#
b495ec6c
PMD
1348# @size: the new size of memory that the device provides
1349#
d89dd28f
DH
1350# @qom-path: path to the device object in the QOM tree (since 6.2)
1351#
b495ec6c
PMD
1352# Note: this event is rate-limited.
1353#
1354# Since: 5.1
1355#
1356# Example:
1357#
1358# <- { "event": "MEMORY_DEVICE_SIZE_CHANGE",
1359# "data": { "id": "vm0", "size": 1073741824},
1360# "timestamp": { "seconds": 1588168529, "microseconds": 201316 } }
1361#
1362##
1363{ 'event': 'MEMORY_DEVICE_SIZE_CHANGE',
d89dd28f 1364 'data': { '*id': 'str', 'size': 'size', 'qom-path' : 'str'} }
b495ec6c
PMD
1365
1366
1367##
1368# @MEM_UNPLUG_ERROR:
1369#
1370# Emitted when memory hot unplug error occurs.
1371#
1372# @device: device name
1373#
1374# @msg: Informative message
1375#
d43f1670
DHB
1376# Features:
1377# @deprecated: This event is deprecated. Use @DEVICE_UNPLUG_GUEST_ERROR
1378# instead.
1379#
b495ec6c
PMD
1380# Since: 2.4
1381#
1382# Example:
1383#
1384# <- { "event": "MEM_UNPLUG_ERROR"
1385# "data": { "device": "dimm1",
1386# "msg": "acpi: device unplug for unsupported device"
1387# },
1388# "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
1389#
1390##
1391{ 'event': 'MEM_UNPLUG_ERROR',
d43f1670
DHB
1392 'data': { 'device': 'str', 'msg': 'str' },
1393 'features': ['deprecated'] }
1e63fe68
PB
1394
1395##
1396# @SMPConfiguration:
1397#
0572edc5 1398# Schema for CPU topology configuration. A missing value lets
1e63fe68
PB
1399# QEMU figure out a suitable value based on the ones that are provided.
1400#
1401# @cpus: number of virtual CPUs in the virtual machine
1402#
1403# @sockets: number of sockets in the CPU topology
1404#
1405# @dies: number of dies per socket in the CPU topology
1406#
864c3b5c
YW
1407# @clusters: number of clusters per die in the CPU topology (since 7.0)
1408#
1409# @cores: number of cores per cluster in the CPU topology
1e63fe68
PB
1410#
1411# @threads: number of threads per core in the CPU topology
1412#
1413# @maxcpus: maximum number of hotpluggable virtual CPUs in the virtual machine
1414#
1415# Since: 6.1
1416##
1417{ 'struct': 'SMPConfiguration', 'data': {
1418 '*cpus': 'int',
1419 '*sockets': 'int',
1420 '*dies': 'int',
864c3b5c 1421 '*clusters': 'int',
1e63fe68
PB
1422 '*cores': 'int',
1423 '*threads': 'int',
1424 '*maxcpus': 'int' } }
dd98234c 1425
91f2fa70
DB
1426##
1427# @x-query-irq:
1428#
1429# Query interrupt statistics
1430#
8c0bae5a
MA
1431# Features:
1432# @unstable: This command is meant for debugging.
1433#
91f2fa70
DB
1434# Returns: interrupt statistics
1435#
1436# Since: 6.2
1437##
1438{ 'command': 'x-query-irq',
8c0bae5a
MA
1439 'returns': 'HumanReadableText',
1440 'features': [ 'unstable' ] }
91f2fa70 1441
3a841ab5
DB
1442##
1443# @x-query-jit:
1444#
1445# Query TCG compiler statistics
1446#
8c0bae5a
MA
1447# Features:
1448# @unstable: This command is meant for debugging.
1449#
3a841ab5
DB
1450# Returns: TCG compiler statistics
1451#
1452# Since: 6.2
1453##
1454{ 'command': 'x-query-jit',
1455 'returns': 'HumanReadableText',
8c0bae5a
MA
1456 'if': 'CONFIG_TCG',
1457 'features': [ 'unstable' ] }
3a841ab5 1458
1b8ae799
DB
1459##
1460# @x-query-numa:
1461#
1462# Query NUMA topology information
1463#
8c0bae5a
MA
1464# Features:
1465# @unstable: This command is meant for debugging.
1466#
1b8ae799
DB
1467# Returns: topology information
1468#
1469# Since: 6.2
1470##
1471{ 'command': 'x-query-numa',
8c0bae5a
MA
1472 'returns': 'HumanReadableText',
1473 'features': [ 'unstable' ] }
1b8ae799 1474
b6a7f3e0
DB
1475##
1476# @x-query-opcount:
1477#
1478# Query TCG opcode counters
1479#
8c0bae5a
MA
1480# Features:
1481# @unstable: This command is meant for debugging.
1482#
b6a7f3e0
DB
1483# Returns: TCG opcode counters
1484#
1485# Since: 6.2
1486##
1487{ 'command': 'x-query-opcount',
1488 'returns': 'HumanReadableText',
8c0bae5a
MA
1489 'if': 'CONFIG_TCG',
1490 'features': [ 'unstable' ] }
b6a7f3e0 1491
37087fde
DB
1492##
1493# @x-query-profile:
1494#
1495# Query TCG profiling information
1496#
8c0bae5a
MA
1497# Features:
1498# @unstable: This command is meant for debugging.
1499#
37087fde
DB
1500# Returns: profile information
1501#
1502# Since: 6.2
1503##
1504{ 'command': 'x-query-profile',
8c0bae5a 1505 'returns': 'HumanReadableText',
92e28c03 1506 'if': 'CONFIG_TCG',
8c0bae5a 1507 'features': [ 'unstable' ] }
37087fde 1508
ca411b7c
DB
1509##
1510# @x-query-ramblock:
1511#
1512# Query system ramblock information
1513#
8c0bae5a
MA
1514# Features:
1515# @unstable: This command is meant for debugging.
1516#
ca411b7c
DB
1517# Returns: system ramblock information
1518#
1519# Since: 6.2
1520##
1521{ 'command': 'x-query-ramblock',
8c0bae5a
MA
1522 'returns': 'HumanReadableText',
1523 'features': [ 'unstable' ] }
ca411b7c 1524
8dbbca5c
DB
1525##
1526# @x-query-rdma:
1527#
1528# Query RDMA state
1529#
8c0bae5a
MA
1530# Features:
1531# @unstable: This command is meant for debugging.
1532#
8dbbca5c
DB
1533# Returns: RDMA state
1534#
1535# Since: 6.2
1536##
1537{ 'command': 'x-query-rdma',
8c0bae5a
MA
1538 'returns': 'HumanReadableText',
1539 'features': [ 'unstable' ] }
8dbbca5c 1540
dd98234c
DB
1541##
1542# @x-query-roms:
1543#
1544# Query information on the registered ROMS
1545#
8c0bae5a
MA
1546# Features:
1547# @unstable: This command is meant for debugging.
1548#
dd98234c
DB
1549# Returns: registered ROMs
1550#
1551# Since: 6.2
1552##
1553{ 'command': 'x-query-roms',
8c0bae5a
MA
1554 'returns': 'HumanReadableText',
1555 'features': [ 'unstable' ] }
fc309207
DB
1556
1557##
1558# @x-query-usb:
1559#
1560# Query information on the USB devices
1561#
8c0bae5a
MA
1562# Features:
1563# @unstable: This command is meant for debugging.
1564#
fc309207
DB
1565# Returns: USB device information
1566#
1567# Since: 6.2
1568##
1569{ 'command': 'x-query-usb',
8c0bae5a
MA
1570 'returns': 'HumanReadableText',
1571 'features': [ 'unstable' ] }
bdf54a9a
EH
1572
1573##
1574# @SmbiosEntryPointType:
1575#
1576# @32: SMBIOS version 2.1 (32-bit) Entry Point
1577#
1578# @64: SMBIOS version 3.0 (64-bit) Entry Point
1579#
1580# Since: 7.0
1581##
1582{ 'enum': 'SmbiosEntryPointType',
1583 'data': [ '32', '64' ] }