xref: /openbmc/qemu/qapi/common.json (revision 8f3cd250)
1# -*- Mode: Python -*-
2
3##
4# = Common data types
5##
6
7##
8# @QapiErrorClass:
9#
10# QEMU error classes
11#
12# @GenericError: this is used for errors that don't require a specific error
13#                class. This should be the default case for most errors
14#
15# @CommandNotFound: the requested command has not been found
16#
17# @DeviceNotActive: a device has failed to be become active
18#
19# @DeviceNotFound: the requested device has not been found
20#
21# @KVMMissingCap: the requested operation can't be fulfilled because a
22#                 required KVM capability is missing
23#
24# Since: 1.2
25##
26{ 'enum': 'QapiErrorClass',
27  # Keep this in sync with ErrorClass in error.h
28  'data': [ 'GenericError', 'CommandNotFound',
29            'DeviceNotActive', 'DeviceNotFound', 'KVMMissingCap' ] }
30
31##
32# @IoOperationType:
33#
34# An enumeration of the I/O operation types
35#
36# @read: read operation
37#
38# @write: write operation
39#
40# Since: 2.1
41##
42{ 'enum': 'IoOperationType',
43  'data': [ 'read', 'write' ] }
44
45##
46# @OnOffAuto:
47#
48# An enumeration of three options: on, off, and auto
49#
50# @auto: QEMU selects the value between on and off
51#
52# @on: Enabled
53#
54# @off: Disabled
55#
56# Since: 2.2
57##
58{ 'enum': 'OnOffAuto',
59  'data': [ 'auto', 'on', 'off' ] }
60
61##
62# @OnOffSplit:
63#
64# An enumeration of three values: on, off, and split
65#
66# @on: Enabled
67#
68# @off: Disabled
69#
70# @split: Mixed
71#
72# Since: 2.6
73##
74{ 'enum': 'OnOffSplit',
75  'data': [ 'on', 'off', 'split' ] }
76
77##
78# @String:
79#
80# A fat type wrapping 'str', to be embedded in lists.
81#
82# Since: 1.2
83##
84{ 'struct': 'String',
85  'data': {
86    'str': 'str' } }
87
88##
89# @StrOrNull:
90#
91# This is a string value or the explicit lack of a string (null
92# pointer in C).  Intended for cases when 'optional absent' already
93# has a different meaning.
94#
95# @s: the string value
96# @n: no string value
97#
98# Since: 2.10
99##
100{ 'alternate': 'StrOrNull',
101  'data': { 's': 'str',
102            'n': 'null' } }
103
104##
105# @OffAutoPCIBAR:
106#
107# An enumeration of options for specifying a PCI BAR
108#
109# @off: The specified feature is disabled
110#
111# @auto: The PCI BAR for the feature is automatically selected
112#
113# @bar0: PCI BAR0 is used for the feature
114#
115# @bar1: PCI BAR1 is used for the feature
116#
117# @bar2: PCI BAR2 is used for the feature
118#
119# @bar3: PCI BAR3 is used for the feature
120#
121# @bar4: PCI BAR4 is used for the feature
122#
123# @bar5: PCI BAR5 is used for the feature
124#
125# Since: 2.12
126##
127{ 'enum': 'OffAutoPCIBAR',
128  'data': [ 'off', 'auto', 'bar0', 'bar1', 'bar2', 'bar3', 'bar4', 'bar5' ] }
129
130##
131# @SysEmuTarget:
132#
133# The comprehensive enumeration of QEMU system emulation ("softmmu")
134# targets. Run "./configure --help" in the project root directory, and
135# look for the *-softmmu targets near the "--target-list" option. The
136# individual target constants are not documented here, for the time
137# being.
138#
139# Notes: The resulting QMP strings can be appended to the "qemu-system-"
140#        prefix to produce the corresponding QEMU executable name. This
141#        is true even for "qemu-system-x86_64".
142#
143# ppcemb: dropped in 3.1
144#
145# Since: 3.0
146##
147{ 'enum' : 'SysEmuTarget',
148  'data' : [ 'aarch64', 'alpha', 'arm', 'cris', 'hppa', 'i386', 'lm32',
149             'm68k', 'microblaze', 'microblazeel', 'mips', 'mips64',
150             'mips64el', 'mipsel', 'moxie', 'nios2', 'or1k', 'ppc',
151             'ppc64', 'riscv32', 'riscv64', 's390x', 'sh4',
152             'sh4eb', 'sparc', 'sparc64', 'tricore', 'unicore32',
153             'x86_64', 'xtensa', 'xtensaeb' ] }
154