blob: 6ffc7a378905b49d818aaf71cf7984f8a58777db [file] [log] [blame]
Benoît Canetd34bda72014-06-05 13:45:29 +02001# -*- Mode: Python -*-
Andrea Bolognanif7160f32020-07-29 20:50:24 +02002# vim: filetype=python
Marc-André Lureaud3a48372017-01-13 15:41:23 +01003
4##
Markus Armbrusterf5cf31c2017-08-24 21:14:08 +02005# = Common data types
Marc-André Lureaud3a48372017-01-13 15:41:23 +01006##
Benoît Canetd34bda72014-06-05 13:45:29 +02007
8##
Markus Armbruster2031c132017-08-24 21:14:06 +02009# @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##
Marc-André Lureau5072f7b2016-11-17 19:54:55 +040023# @OnOffAuto:
Don Slutzd1048be2014-11-21 11:18:52 -050024#
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' ] }
Matt Gingell32c18a22015-11-16 10:03:06 -080037
38##
Marc-André Lureau5072f7b2016-11-17 19:54:55 +040039# @OnOffSplit:
Matt Gingell32c18a22015-11-16 10:03:06 -080040#
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' ] }
Markus Armbrustera2ff5a42017-08-24 21:13:56 +020053
54##
Markus Armbruster48685a82017-08-24 21:14:01 +020055# @StrOrNull:
56#
57# This is a string value or the explicit lack of a string (null
58# pointer in C). Intended for cases when 'optional absent' already
59# has a different meaning.
60#
61# @s: the string value
Markus Armbrustera937b6a2023-04-28 12:54:29 +020062#
Markus Armbruster48685a82017-08-24 21:14:01 +020063# @n: no string value
64#
65# Since: 2.10
66##
67{ 'alternate': 'StrOrNull',
68 'data': { 's': 'str',
69 'n': 'null' } }
Alex Williamsonc3bbbdb2018-02-06 11:08:26 -070070
71##
72# @OffAutoPCIBAR:
73#
74# An enumeration of options for specifying a PCI BAR
75#
76# @off: The specified feature is disabled
77#
78# @auto: The PCI BAR for the feature is automatically selected
79#
80# @bar0: PCI BAR0 is used for the feature
81#
82# @bar1: PCI BAR1 is used for the feature
83#
84# @bar2: PCI BAR2 is used for the feature
85#
86# @bar3: PCI BAR3 is used for the feature
87#
88# @bar4: PCI BAR4 is used for the feature
89#
90# @bar5: PCI BAR5 is used for the feature
91#
92# Since: 2.12
93##
94{ 'enum': 'OffAutoPCIBAR',
95 'data': [ 'off', 'auto', 'bar0', 'bar1', 'bar2', 'bar3', 'bar4', 'bar5' ] }
Laszlo Ersek9a801c72018-04-27 21:28:49 +020096
97##
Alex Williamson4695a2c2018-12-12 12:39:08 -070098# @PCIELinkSpeed:
99#
100# An enumeration of PCIe link speeds in units of GT/s
101#
102# @2_5: 2.5GT/s
103#
104# @5: 5.0GT/s
105#
106# @8: 8.0GT/s
107#
108# @16: 16.0GT/s
109#
Michael S. Tsirkin1bdef7a2024-03-13 02:43:46 -0400110# @32: 32.0GT/s (since 9.0)
Lukas Stocknerc08da862024-02-15 02:23:26 +0100111#
Michael S. Tsirkin1bdef7a2024-03-13 02:43:46 -0400112# @64: 64.0GT/s (since 9.0)
Lukas Stocknerc08da862024-02-15 02:23:26 +0100113#
Alex Williamson4695a2c2018-12-12 12:39:08 -0700114# Since: 4.0
115##
116{ 'enum': 'PCIELinkSpeed',
Lukas Stocknerc08da862024-02-15 02:23:26 +0100117 'data': [ '2_5', '5', '8', '16', '32', '64' ] }
Alex Williamson4695a2c2018-12-12 12:39:08 -0700118
119##
120# @PCIELinkWidth:
121#
122# An enumeration of PCIe link width
123#
124# @1: x1
125#
126# @2: x2
127#
128# @4: x4
129#
130# @8: x8
131#
132# @12: x12
133#
134# @16: x16
135#
136# @32: x32
137#
138# Since: 4.0
139##
140{ 'enum': 'PCIELinkWidth',
141 'data': [ '1', '2', '4', '8', '12', '16', '32' ] }
Kevin Wolf913d9062020-10-20 12:47:58 +0200142
143##
144# @HostMemPolicy:
145#
146# Host memory policy types
147#
148# @default: restore default policy, remove any nondefault policy
149#
150# @preferred: set the preferred host nodes for allocation
151#
Markus Armbrustera937b6a2023-04-28 12:54:29 +0200152# @bind: a strict policy that restricts memory allocation to the host
153# nodes specified
Kevin Wolf913d9062020-10-20 12:47:58 +0200154#
Markus Armbrustera937b6a2023-04-28 12:54:29 +0200155# @interleave: memory allocations are interleaved across the set of
156# host nodes specified
Kevin Wolf913d9062020-10-20 12:47:58 +0200157#
158# Since: 2.1
159##
160{ 'enum': 'HostMemPolicy',
161 'data': [ 'default', 'preferred', 'bind', 'interleave' ] }
Kevin Wolf1156a672020-10-20 12:47:58 +0200162
163##
164# @NetFilterDirection:
165#
Markus Armbrustera937b6a2023-04-28 12:54:29 +0200166# Indicates whether a netfilter is attached to a netdev's transmit
167# queue or receive queue or both.
Kevin Wolf1156a672020-10-20 12:47:58 +0200168#
169# @all: the filter is attached both to the receive and the transmit
Markus Armbrustera937b6a2023-04-28 12:54:29 +0200170# queue of the netdev (default).
Kevin Wolf1156a672020-10-20 12:47:58 +0200171#
172# @rx: the filter is attached to the receive queue of the netdev,
Markus Armbrustera937b6a2023-04-28 12:54:29 +0200173# where it will receive packets sent to the netdev.
Kevin Wolf1156a672020-10-20 12:47:58 +0200174#
175# @tx: the filter is attached to the transmit queue of the netdev,
Markus Armbrustera937b6a2023-04-28 12:54:29 +0200176# where it will receive packets sent by the netdev.
Kevin Wolf1156a672020-10-20 12:47:58 +0200177#
178# Since: 2.5
179##
180{ 'enum': 'NetFilterDirection',
181 'data': [ 'all', 'rx', 'tx' ] }
Kevin Wolf30e863e2020-10-20 12:47:58 +0200182
183##
184# @GrabToggleKeys:
185#
Markus Armbrusteree438002024-09-11 13:25:39 +0200186# Key combinations to toggle input-linux between host and guest.
187#
188# @ctrl-ctrl: left and right control key
189#
190# @alt-alt: left and right alt key
191#
192# @shift-shift: left and right shift key
193#
194# @meta-meta: left and right meta key
195#
196# @scrolllock: scroll lock key
197#
198# @ctrl-scrolllock: either control key and scroll lock key
Kevin Wolf30e863e2020-10-20 12:47:58 +0200199#
200# Since: 4.0
Kevin Wolf30e863e2020-10-20 12:47:58 +0200201##
202{ 'enum': 'GrabToggleKeys',
203 'data': [ 'ctrl-ctrl', 'alt-alt', 'shift-shift','meta-meta', 'scrolllock',
204 'ctrl-scrolllock' ] }
Daniel P. Berrangéf9429c62021-10-08 15:09:00 +0100205
206##
207# @HumanReadableText:
208#
209# @human-readable-text: Formatted output intended for humans.
210#
211# Since: 6.2
Daniel P. Berrangéf9429c62021-10-08 15:09:00 +0100212##
213{ 'struct': 'HumanReadableText',
214 'data': { 'human-readable-text': 'str' } }