xref: /openbmc/qemu/qapi/common.json (revision 1be82d89)
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# @PCIELinkSpeed:
132#
133# An enumeration of PCIe link speeds in units of GT/s
134#
135# @2_5: 2.5GT/s
136#
137# @5: 5.0GT/s
138#
139# @8: 8.0GT/s
140#
141# @16: 16.0GT/s
142#
143# Since: 4.0
144##
145{ 'enum': 'PCIELinkSpeed',
146  'data': [ '2_5', '5', '8', '16' ] }
147
148##
149# @PCIELinkWidth:
150#
151# An enumeration of PCIe link width
152#
153# @1: x1
154#
155# @2: x2
156#
157# @4: x4
158#
159# @8: x8
160#
161# @12: x12
162#
163# @16: x16
164#
165# @32: x32
166#
167# Since: 4.0
168##
169{ 'enum': 'PCIELinkWidth',
170  'data': [ '1', '2', '4', '8', '12', '16', '32' ] }
171
172##
173# @SysEmuTarget:
174#
175# The comprehensive enumeration of QEMU system emulation ("softmmu")
176# targets. Run "./configure --help" in the project root directory, and
177# look for the *-softmmu targets near the "--target-list" option. The
178# individual target constants are not documented here, for the time
179# being.
180#
181# Notes: The resulting QMP strings can be appended to the "qemu-system-"
182#        prefix to produce the corresponding QEMU executable name. This
183#        is true even for "qemu-system-x86_64".
184#
185# ppcemb: dropped in 3.1
186#
187# Since: 3.0
188##
189{ 'enum' : 'SysEmuTarget',
190  'data' : [ 'aarch64', 'alpha', 'arm', 'cris', 'hppa', 'i386', 'lm32',
191             'm68k', 'microblaze', 'microblazeel', 'mips', 'mips64',
192             'mips64el', 'mipsel', 'moxie', 'nios2', 'or1k', 'ppc',
193             'ppc64', 'riscv32', 'riscv64', 's390x', 'sh4',
194             'sh4eb', 'sparc', 'sparc64', 'tricore', 'unicore32',
195             'x86_64', 'xtensa', 'xtensaeb' ] }
196