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