xref: /openbmc/qemu/qapi/common.json (revision 9247378df2b16f427ae858787f84a55b073446b1)
1d34bda71SBenoît Canet# -*- Mode: Python -*-
2f7160f32SAndrea Bolognani# vim: filetype=python
3d3a48372SMarc-André Lureau
4d3a48372SMarc-André Lureau##
5f5cf31c5SMarkus Armbruster# = Common data types
6d3a48372SMarc-André Lureau##
7d34bda71SBenoît Canet
8d34bda71SBenoît Canet##
92031c133SMarkus Armbruster# @IoOperationType:
102031c133SMarkus Armbruster#
112031c133SMarkus Armbruster# An enumeration of the I/O operation types
122031c133SMarkus Armbruster#
132031c133SMarkus Armbruster# @read: read operation
142031c133SMarkus Armbruster#
152031c133SMarkus Armbruster# @write: write operation
162031c133SMarkus Armbruster#
172031c133SMarkus Armbruster# Since: 2.1
182031c133SMarkus Armbruster##
192031c133SMarkus Armbruster{ 'enum': 'IoOperationType',
202031c133SMarkus Armbruster  'data': [ 'read', 'write' ] }
212031c133SMarkus Armbruster
222031c133SMarkus Armbruster##
235072f7b3SMarc-André Lureau# @OnOffAuto:
24d1048befSDon Slutz#
25d1048befSDon Slutz# An enumeration of three options: on, off, and auto
26d1048befSDon Slutz#
27d1048befSDon Slutz# @auto: QEMU selects the value between on and off
28d1048befSDon Slutz#
29d1048befSDon Slutz# @on: Enabled
30d1048befSDon Slutz#
31d1048befSDon Slutz# @off: Disabled
32d1048befSDon Slutz#
33d1048befSDon Slutz# Since: 2.2
34d1048befSDon Slutz##
35d1048befSDon Slutz{ 'enum': 'OnOffAuto',
36d1048befSDon Slutz  'data': [ 'auto', 'on', 'off' ] }
3732c18a2dSMatt Gingell
3832c18a2dSMatt Gingell##
395072f7b3SMarc-André Lureau# @OnOffSplit:
4032c18a2dSMatt Gingell#
4132c18a2dSMatt Gingell# An enumeration of three values: on, off, and split
4232c18a2dSMatt Gingell#
4332c18a2dSMatt Gingell# @on: Enabled
4432c18a2dSMatt Gingell#
4532c18a2dSMatt Gingell# @off: Disabled
4632c18a2dSMatt Gingell#
4732c18a2dSMatt Gingell# @split: Mixed
4832c18a2dSMatt Gingell#
4932c18a2dSMatt Gingell# Since: 2.6
5032c18a2dSMatt Gingell##
5132c18a2dSMatt Gingell{ 'enum': 'OnOffSplit',
5232c18a2dSMatt Gingell  'data': [ 'on', 'off', 'split' ] }
53a2ff5a48SMarkus Armbruster
54a2ff5a48SMarkus Armbruster##
5548685a8eSMarkus Armbruster# @StrOrNull:
5648685a8eSMarkus Armbruster#
5748685a8eSMarkus Armbruster# This is a string value or the explicit lack of a string (null
5848685a8eSMarkus Armbruster# pointer in C).  Intended for cases when 'optional absent' already
5948685a8eSMarkus Armbruster# has a different meaning.
6048685a8eSMarkus Armbruster#
6148685a8eSMarkus Armbruster# @s: the string value
62a937b6aaSMarkus Armbruster#
6348685a8eSMarkus Armbruster# @n: no string value
6448685a8eSMarkus Armbruster#
6548685a8eSMarkus Armbruster# Since: 2.10
6648685a8eSMarkus Armbruster##
6748685a8eSMarkus Armbruster{ 'alternate': 'StrOrNull',
6848685a8eSMarkus Armbruster  'data': { 's': 'str',
6948685a8eSMarkus Armbruster            'n': 'null' } }
70c3bbbdbfSAlex Williamson
71c3bbbdbfSAlex Williamson##
72c3bbbdbfSAlex Williamson# @OffAutoPCIBAR:
73c3bbbdbfSAlex Williamson#
74c3bbbdbfSAlex Williamson# An enumeration of options for specifying a PCI BAR
75c3bbbdbfSAlex Williamson#
76c3bbbdbfSAlex Williamson# @off: The specified feature is disabled
77c3bbbdbfSAlex Williamson#
78c3bbbdbfSAlex Williamson# @auto: The PCI BAR for the feature is automatically selected
79c3bbbdbfSAlex Williamson#
80c3bbbdbfSAlex Williamson# @bar0: PCI BAR0 is used for the feature
81c3bbbdbfSAlex Williamson#
82c3bbbdbfSAlex Williamson# @bar1: PCI BAR1 is used for the feature
83c3bbbdbfSAlex Williamson#
84c3bbbdbfSAlex Williamson# @bar2: PCI BAR2 is used for the feature
85c3bbbdbfSAlex Williamson#
86c3bbbdbfSAlex Williamson# @bar3: PCI BAR3 is used for the feature
87c3bbbdbfSAlex Williamson#
88c3bbbdbfSAlex Williamson# @bar4: PCI BAR4 is used for the feature
89c3bbbdbfSAlex Williamson#
90c3bbbdbfSAlex Williamson# @bar5: PCI BAR5 is used for the feature
91c3bbbdbfSAlex Williamson#
92c3bbbdbfSAlex Williamson# Since: 2.12
93c3bbbdbfSAlex Williamson##
94c3bbbdbfSAlex Williamson{ 'enum': 'OffAutoPCIBAR',
95c3bbbdbfSAlex Williamson  'data': [ 'off', 'auto', 'bar0', 'bar1', 'bar2', 'bar3', 'bar4', 'bar5' ] }
969a801c7dSLaszlo Ersek
979a801c7dSLaszlo Ersek##
984695a2c5SAlex Williamson# @PCIELinkSpeed:
994695a2c5SAlex Williamson#
1004695a2c5SAlex Williamson# An enumeration of PCIe link speeds in units of GT/s
1014695a2c5SAlex Williamson#
1024695a2c5SAlex Williamson# @2_5: 2.5GT/s
1034695a2c5SAlex Williamson#
1044695a2c5SAlex Williamson# @5: 5.0GT/s
1054695a2c5SAlex Williamson#
1064695a2c5SAlex Williamson# @8: 8.0GT/s
1074695a2c5SAlex Williamson#
1084695a2c5SAlex Williamson# @16: 16.0GT/s
1094695a2c5SAlex Williamson#
1101bdef7a6SMichael S. Tsirkin# @32: 32.0GT/s (since 9.0)
111c08da86dSLukas Stockner#
1121bdef7a6SMichael S. Tsirkin# @64: 64.0GT/s (since 9.0)
113c08da86dSLukas Stockner#
1144695a2c5SAlex Williamson# Since: 4.0
1154695a2c5SAlex Williamson##
1164695a2c5SAlex Williamson{ 'enum': 'PCIELinkSpeed',
117c08da86dSLukas Stockner  'data': [ '2_5', '5', '8', '16', '32', '64' ] }
1184695a2c5SAlex Williamson
1194695a2c5SAlex Williamson##
1204695a2c5SAlex Williamson# @PCIELinkWidth:
1214695a2c5SAlex Williamson#
1224695a2c5SAlex Williamson# An enumeration of PCIe link width
1234695a2c5SAlex Williamson#
1244695a2c5SAlex Williamson# @1: x1
1254695a2c5SAlex Williamson#
1264695a2c5SAlex Williamson# @2: x2
1274695a2c5SAlex Williamson#
1284695a2c5SAlex Williamson# @4: x4
1294695a2c5SAlex Williamson#
1304695a2c5SAlex Williamson# @8: x8
1314695a2c5SAlex Williamson#
1324695a2c5SAlex Williamson# @12: x12
1334695a2c5SAlex Williamson#
1344695a2c5SAlex Williamson# @16: x16
1354695a2c5SAlex Williamson#
1364695a2c5SAlex Williamson# @32: x32
1374695a2c5SAlex Williamson#
1384695a2c5SAlex Williamson# Since: 4.0
1394695a2c5SAlex Williamson##
1404695a2c5SAlex Williamson{ 'enum': 'PCIELinkWidth',
1414695a2c5SAlex Williamson  'data': [ '1', '2', '4', '8', '12', '16', '32' ] }
142913d9063SKevin Wolf
143913d9063SKevin Wolf##
144913d9063SKevin Wolf# @HostMemPolicy:
145913d9063SKevin Wolf#
146913d9063SKevin Wolf# Host memory policy types
147913d9063SKevin Wolf#
148913d9063SKevin Wolf# @default: restore default policy, remove any nondefault policy
149913d9063SKevin Wolf#
150913d9063SKevin Wolf# @preferred: set the preferred host nodes for allocation
151913d9063SKevin Wolf#
152a937b6aaSMarkus Armbruster# @bind: a strict policy that restricts memory allocation to the host
153a937b6aaSMarkus Armbruster#     nodes specified
154913d9063SKevin Wolf#
155a937b6aaSMarkus Armbruster# @interleave: memory allocations are interleaved across the set of
156a937b6aaSMarkus Armbruster#     host nodes specified
157913d9063SKevin Wolf#
158913d9063SKevin Wolf# Since: 2.1
159913d9063SKevin Wolf##
160913d9063SKevin Wolf{ 'enum': 'HostMemPolicy',
161913d9063SKevin Wolf  'data': [ 'default', 'preferred', 'bind', 'interleave' ] }
1621156a675SKevin Wolf
1631156a675SKevin Wolf##
1641156a675SKevin Wolf# @NetFilterDirection:
1651156a675SKevin Wolf#
166a937b6aaSMarkus Armbruster# Indicates whether a netfilter is attached to a netdev's transmit
167a937b6aaSMarkus Armbruster# queue or receive queue or both.
1681156a675SKevin Wolf#
1691156a675SKevin Wolf# @all: the filter is attached both to the receive and the transmit
1701156a675SKevin Wolf#     queue of the netdev (default).
1711156a675SKevin Wolf#
1721156a675SKevin Wolf# @rx: the filter is attached to the receive queue of the netdev,
1731156a675SKevin Wolf#     where it will receive packets sent to the netdev.
1741156a675SKevin Wolf#
1751156a675SKevin Wolf# @tx: the filter is attached to the transmit queue of the netdev,
1761156a675SKevin Wolf#     where it will receive packets sent by the netdev.
1771156a675SKevin Wolf#
1781156a675SKevin Wolf# Since: 2.5
1791156a675SKevin Wolf##
1801156a675SKevin Wolf{ 'enum': 'NetFilterDirection',
1811156a675SKevin Wolf  'data': [ 'all', 'rx', 'tx' ] }
18230e863e5SKevin Wolf
18330e863e5SKevin Wolf##
18430e863e5SKevin Wolf# @GrabToggleKeys:
18530e863e5SKevin Wolf#
186*ee43800dSMarkus Armbruster# Key combinations to toggle input-linux between host and guest.
187*ee43800dSMarkus Armbruster#
188*ee43800dSMarkus Armbruster# @ctrl-ctrl: left and right control key
189*ee43800dSMarkus Armbruster#
190*ee43800dSMarkus Armbruster# @alt-alt: left and right alt key
191*ee43800dSMarkus Armbruster#
192*ee43800dSMarkus Armbruster# @shift-shift: left and right shift key
193*ee43800dSMarkus Armbruster#
194*ee43800dSMarkus Armbruster# @meta-meta: left and right meta key
195*ee43800dSMarkus Armbruster#
196*ee43800dSMarkus Armbruster# @scrolllock: scroll lock key
197*ee43800dSMarkus Armbruster#
198*ee43800dSMarkus Armbruster# @ctrl-scrolllock: either control key and scroll lock key
19930e863e5SKevin Wolf#
20030e863e5SKevin Wolf# Since: 4.0
20130e863e5SKevin Wolf##
20230e863e5SKevin Wolf{ 'enum': 'GrabToggleKeys',
20330e863e5SKevin Wolf  'data': [ 'ctrl-ctrl', 'alt-alt', 'shift-shift','meta-meta', 'scrolllock',
20430e863e5SKevin Wolf            'ctrl-scrolllock' ] }
205f9429c67SDaniel P. Berrangé
206f9429c67SDaniel P. Berrangé##
207f9429c67SDaniel P. Berrangé# @HumanReadableText:
208f9429c67SDaniel P. Berrangé#
209f9429c67SDaniel P. Berrangé# @human-readable-text: Formatted output intended for humans.
210f9429c67SDaniel P. Berrangé#
211f9429c67SDaniel P. Berrangé# Since: 6.2
212f9429c67SDaniel P. Berrangé##
213f9429c67SDaniel P. Berrangé{ 'struct': 'HumanReadableText',
214f9429c67SDaniel P. Berrangé  'data': { 'human-readable-text': 'str' } }
215