xref: /openbmc/qemu/qapi/common.json (revision 0d70c5aa1bbfb0f5099d53d6e084337a8246cc0c)
1# -*- Mode: Python -*-
2# vim: filetype=python
3
4##
5# *****************
6# Common data types
7# *****************
8##
9
10##
11# @IoOperationType:
12#
13# An enumeration of the I/O operation types
14#
15# @read: read operation
16#
17# @write: write operation
18#
19# Since: 2.1
20##
21{ 'enum': 'IoOperationType',
22  'data': [ 'read', 'write' ] }
23
24##
25# @OnOffAuto:
26#
27# An enumeration of three options: on, off, and auto
28#
29# @auto: QEMU selects the value between on and off
30#
31# @on: Enabled
32#
33# @off: Disabled
34#
35# Since: 2.2
36##
37{ 'enum': 'OnOffAuto',
38  'data': [ 'auto', 'on', 'off' ] }
39
40##
41# @OnOffSplit:
42#
43# An enumeration of three values: on, off, and split
44#
45# @on: Enabled
46#
47# @off: Disabled
48#
49# @split: Mixed
50#
51# Since: 2.6
52##
53{ 'enum': 'OnOffSplit',
54  'data': [ 'on', 'off', 'split' ] }
55
56##
57# @StrOrNull:
58#
59# This is a string value or the explicit lack of a string (null
60# pointer in C).  Intended for cases when 'optional absent' already
61# has a different meaning.
62#
63# @s: the string value
64#
65# @n: no string value
66#
67# Since: 2.10
68##
69{ 'alternate': 'StrOrNull',
70  'data': { 's': 'str',
71            'n': 'null' } }
72
73##
74# @OffAutoPCIBAR:
75#
76# An enumeration of options for specifying a PCI BAR
77#
78# @off: The specified feature is disabled
79#
80# @auto: The PCI BAR for the feature is automatically selected
81#
82# @bar0: PCI BAR0 is used for the feature
83#
84# @bar1: PCI BAR1 is used for the feature
85#
86# @bar2: PCI BAR2 is used for the feature
87#
88# @bar3: PCI BAR3 is used for the feature
89#
90# @bar4: PCI BAR4 is used for the feature
91#
92# @bar5: PCI BAR5 is used for the feature
93#
94# Since: 2.12
95##
96{ 'enum': 'OffAutoPCIBAR',
97  'data': [ 'off', 'auto', 'bar0', 'bar1', 'bar2', 'bar3', 'bar4', 'bar5' ] }
98
99##
100# @PCIELinkSpeed:
101#
102# An enumeration of PCIe link speeds in units of GT/s
103#
104# @2_5: 2.5GT/s
105#
106# @5: 5.0GT/s
107#
108# @8: 8.0GT/s
109#
110# @16: 16.0GT/s
111#
112# @32: 32.0GT/s (since 9.0)
113#
114# @64: 64.0GT/s (since 9.0)
115#
116# Since: 4.0
117##
118{ 'enum': 'PCIELinkSpeed',
119  'data': [ '2_5', '5', '8', '16', '32', '64' ] }
120
121##
122# @PCIELinkWidth:
123#
124# An enumeration of PCIe link width
125#
126# @1: x1
127#
128# @2: x2
129#
130# @4: x4
131#
132# @8: x8
133#
134# @12: x12
135#
136# @16: x16
137#
138# @32: x32
139#
140# Since: 4.0
141##
142{ 'enum': 'PCIELinkWidth',
143  'data': [ '1', '2', '4', '8', '12', '16', '32' ] }
144
145##
146# @HostMemPolicy:
147#
148# Host memory policy types
149#
150# @default: restore default policy, remove any nondefault policy
151#
152# @preferred: set the preferred host nodes for allocation
153#
154# @bind: a strict policy that restricts memory allocation to the host
155#     nodes specified
156#
157# @interleave: memory allocations are interleaved across the set of
158#     host nodes specified
159#
160# Since: 2.1
161##
162{ 'enum': 'HostMemPolicy',
163  'data': [ 'default', 'preferred', 'bind', 'interleave' ] }
164
165##
166# @NetFilterDirection:
167#
168# Indicates whether a netfilter is attached to a netdev's transmit
169# queue or receive queue or both.
170#
171# @all: the filter is attached both to the receive and the transmit
172#     queue of the netdev (default).
173#
174# @rx: the filter is attached to the receive queue of the netdev,
175#     where it will receive packets sent to the netdev.
176#
177# @tx: the filter is attached to the transmit queue of the netdev,
178#     where it will receive packets sent by the netdev.
179#
180# Since: 2.5
181##
182{ 'enum': 'NetFilterDirection',
183  'data': [ 'all', 'rx', 'tx' ] }
184
185##
186# @GrabToggleKeys:
187#
188# Key combinations to toggle input-linux between host and guest.
189#
190# @ctrl-ctrl: left and right control key
191#
192# @alt-alt: left and right alt key
193#
194# @shift-shift: left and right shift key
195#
196# @meta-meta: left and right meta key
197#
198# @scrolllock: scroll lock key
199#
200# @ctrl-scrolllock: either control key and scroll lock key
201#
202# Since: 4.0
203##
204{ 'enum': 'GrabToggleKeys',
205  'data': [ 'ctrl-ctrl', 'alt-alt', 'shift-shift','meta-meta', 'scrolllock',
206            'ctrl-scrolllock' ] }
207
208##
209# @HumanReadableText:
210#
211# @human-readable-text: Formatted output intended for humans.
212#
213# Since: 6.2
214##
215{ 'struct': 'HumanReadableText',
216  'data': { 'human-readable-text': 'str' } }
217
218##
219# @EndianMode:
220#
221# @unspecified: Endianness not specified
222#
223# @little: Little endianness
224#
225# @big: Big endianness
226#
227# Since: 10.0
228##
229{ 'enum': 'EndianMode',
230  'data': [ 'unspecified', 'little', 'big' ] }
231