]> git.proxmox.com Git - mirror_qemu.git/blame - qapi/misc.json
Tweak a few "Parameter 'NAME' expects THING" error message
[mirror_qemu.git] / qapi / misc.json
CommitLineData
112ed241 1# -*- Mode: Python -*-
f7160f32 2# vim: filetype=python
112ed241
MA
3#
4
5##
6# = Miscellanea
7##
8
b47aa7b3
LE
9{ 'include': 'common.json' }
10
112ed241
MA
11##
12# @add_client:
13#
14# Allow client connections for VNC, Spice and socket based
15# character devices to be passed in to QEMU via SCM_RIGHTS.
16#
17# @protocol: protocol name. Valid names are "vnc", "spice" or the
18# name of a character device (eg. from -chardev id=XXXX)
19#
20# @fdname: file descriptor name previously passed via 'getfd' command
21#
22# @skipauth: whether to skip authentication. Only applies
23# to "vnc" and "spice" protocols
24#
25# @tls: whether to perform TLS. Only applies to the "spice"
26# protocol
27#
28# Returns: nothing on success.
29#
30# Since: 0.14.0
31#
32# Example:
33#
34# -> { "execute": "add_client", "arguments": { "protocol": "vnc",
35# "fdname": "myclient" } }
36# <- { "return": {} }
37#
38##
39{ 'command': 'add_client',
40 'data': { 'protocol': 'str', 'fdname': 'str', '*skipauth': 'bool',
41 '*tls': 'bool' } }
42
43##
44# @NameInfo:
45#
46# Guest name information.
47#
48# @name: The name of the guest
49#
50# Since: 0.14.0
51##
52{ 'struct': 'NameInfo', 'data': {'*name': 'str'} }
53
54##
55# @query-name:
56#
57# Return the name information of a guest.
58#
59# Returns: @NameInfo of the guest
60#
61# Since: 0.14.0
62#
63# Example:
64#
65# -> { "execute": "query-name" }
66# <- { "return": { "name": "qemu-name" } }
67#
68##
a87706c8 69{ 'command': 'query-name', 'returns': 'NameInfo', 'allow-preconfig': true }
112ed241 70
112ed241
MA
71##
72# @IOThreadInfo:
73#
74# Information about an iothread
75#
76# @id: the identifier of the iothread
77#
78# @thread-id: ID of the underlying host thread
79#
80# @poll-max-ns: maximum polling time in ns, 0 means polling is disabled
81# (since 2.9)
82#
83# @poll-grow: how many ns will be added to polling time, 0 means that it's not
84# configured (since 2.9)
85#
86# @poll-shrink: how many ns will be removed from polling time, 0 means that
87# it's not configured (since 2.9)
88#
89# Since: 2.0
90##
91{ 'struct': 'IOThreadInfo',
92 'data': {'id': 'str',
93 'thread-id': 'int',
94 'poll-max-ns': 'int',
95 'poll-grow': 'int',
96 'poll-shrink': 'int' } }
97
98##
99# @query-iothreads:
100#
101# Returns a list of information about each iothread.
102#
103# Note: this list excludes the QEMU main loop thread, which is not declared
26ec4e53
PM
104# using the -object iothread command-line option. It is always the main thread
105# of the process.
112ed241
MA
106#
107# Returns: a list of @IOThreadInfo for each iothread
108#
109# Since: 2.0
110#
111# Example:
112#
113# -> { "execute": "query-iothreads" }
114# <- { "return": [
115# {
116# "id":"iothread0",
117# "thread-id":3134
118# },
119# {
120# "id":"iothread1",
121# "thread-id":3135
122# }
123# ]
124# }
125#
126##
a87706c8
IM
127{ 'command': 'query-iothreads', 'returns': ['IOThreadInfo'],
128 'allow-preconfig': true }
112ed241 129
112ed241
MA
130##
131# @stop:
132#
133# Stop all guest VCPU execution.
134#
135# Since: 0.14.0
136#
26ec4e53
PM
137# Notes: This function will succeed even if the guest is already in the stopped
138# state. In "inmigrate" state, it will ensure that the guest
139# remains paused once migration finishes, as if the -S option was
140# passed on the command line.
112ed241
MA
141#
142# Example:
143#
144# -> { "execute": "stop" }
145# <- { "return": {} }
146#
147##
148{ 'command': 'stop' }
149
112ed241
MA
150##
151# @cont:
152#
153# Resume guest VCPU execution.
154#
155# Since: 0.14.0
156#
157# Returns: If successful, nothing
158#
26ec4e53
PM
159# Notes: This command will succeed if the guest is currently running. It
160# will also succeed if the guest is in the "inmigrate" state; in
161# this case, the effect of the command is to make sure the guest
162# starts once migration finishes, removing the effect of the -S
163# command line option if it was passed.
112ed241
MA
164#
165# Example:
166#
167# -> { "execute": "cont" }
168# <- { "return": {} }
169#
170##
171{ 'command': 'cont' }
172
047f7038 173##
361ac948 174# @x-exit-preconfig:
047f7038
IM
175#
176# Exit from "preconfig" state
177#
178# This command makes QEMU exit the preconfig state and proceed with
179# VM initialization using configuration data provided on the command line
180# and via the QMP monitor during the preconfig state. The command is only
181# available during the preconfig state (i.e. when the --preconfig command
182# line option was in use).
183#
184# Since 3.0
185#
186# Returns: nothing
187#
188# Example:
189#
361ac948 190# -> { "execute": "x-exit-preconfig" }
047f7038
IM
191# <- { "return": {} }
192#
193##
361ac948 194{ 'command': 'x-exit-preconfig', 'allow-preconfig': true }
047f7038 195
112ed241
MA
196##
197# @human-monitor-command:
198#
199# Execute a command on the human monitor and return the output.
200#
201# @command-line: the command to execute in the human monitor
202#
203# @cpu-index: The CPU to use for commands that require an implicit CPU
204#
5f76a7aa
PK
205# Features:
206# @savevm-monitor-nodes: If present, HMP command savevm only snapshots
207# monitor-owned nodes if they have no parents.
208# This allows the use of 'savevm' with
209# -blockdev. (since 4.2)
210#
112ed241
MA
211# Returns: the output of the command as a string
212#
213# Since: 0.14.0
214#
215# Notes: This command only exists as a stop-gap. Its use is highly
216# discouraged. The semantics of this command are not
217# guaranteed: this means that command names, arguments and
218# responses can change or be removed at ANY time. Applications
219# that rely on long term stability guarantees should NOT
220# use this command.
221#
222# Known limitations:
223#
224# * This command is stateless, this means that commands that depend
225# on state information (such as getfd) might not work
226#
227# * Commands that prompt the user for data don't currently work
228#
229# Example:
230#
231# -> { "execute": "human-monitor-command",
232# "arguments": { "command-line": "info kvm" } }
233# <- { "return": "kvm support: enabled\r\n" }
234#
235##
236{ 'command': 'human-monitor-command',
237 'data': {'command-line': 'str', '*cpu-index': 'int'},
5f76a7aa
PK
238 'returns': 'str',
239 'features': [ 'savevm-monitor-nodes' ] }
112ed241 240
112ed241
MA
241##
242# @change:
243#
244# This command is multiple commands multiplexed together.
245#
246# @device: This is normally the name of a block device but it may also be 'vnc'.
247# when it's 'vnc', then sub command depends on @target
248#
249# @target: If @device is a block device, then this is the new filename.
250# If @device is 'vnc', then if the value 'password' selects the vnc
251# change password command. Otherwise, this specifies a new server URI
252# address to listen to for VNC connections.
253#
26ec4e53
PM
254# @arg: If @device is a block device, then this is an optional format to open
255# the device with.
256# If @device is 'vnc' and @target is 'password', this is the new VNC
257# password to set. See change-vnc-password for additional notes.
112ed241 258#
df4097ae
MA
259# Features:
260# @deprecated: This command is deprecated. For changing block
b2f1c13c
PM
261# devices, use 'blockdev-change-medium' instead; for changing VNC
262# parameters, use 'change-vnc-password' instead.
df4097ae 263#
e050e426
PM
264# Returns: - Nothing on success.
265# - If @device is not a valid block device, DeviceNotFound
112ed241 266#
112ed241
MA
267# Since: 0.14.0
268#
269# Example:
270#
271# 1. Change a removable medium
272#
273# -> { "execute": "change",
274# "arguments": { "device": "ide1-cd0",
275# "target": "/srv/images/Fedora-12-x86_64-DVD.iso" } }
276# <- { "return": {} }
277#
278# 2. Change VNC password
279#
280# -> { "execute": "change",
281# "arguments": { "device": "vnc", "target": "password",
282# "arg": "foobar1" } }
283# <- { "return": {} }
284#
285##
286{ 'command': 'change',
df4097ae
MA
287 'data': {'device': 'str', 'target': 'str', '*arg': 'str'},
288 'features': [ 'deprecated' ] }
112ed241 289
112ed241
MA
290##
291# @getfd:
292#
293# Receive a file descriptor via SCM rights and assign it a name
294#
295# @fdname: file descriptor name
296#
297# Returns: Nothing on success
298#
299# Since: 0.14.0
300#
301# Notes: If @fdname already exists, the file descriptor assigned to
302# it will be closed and replaced by the received file
303# descriptor.
304#
305# The 'closefd' command can be used to explicitly close the
306# file descriptor when it is no longer needed.
307#
308# Example:
309#
310# -> { "execute": "getfd", "arguments": { "fdname": "fd1" } }
311# <- { "return": {} }
312#
313##
314{ 'command': 'getfd', 'data': {'fdname': 'str'} }
315
316##
317# @closefd:
318#
319# Close a file descriptor previously passed via SCM rights
320#
321# @fdname: file descriptor name
322#
323# Returns: Nothing on success
324#
325# Since: 0.14.0
326#
327# Example:
328#
329# -> { "execute": "closefd", "arguments": { "fdname": "fd1" } }
330# <- { "return": {} }
331#
332##
333{ 'command': 'closefd', 'data': {'fdname': 'str'} }
334
112ed241
MA
335##
336# @AddfdInfo:
337#
338# Information about a file descriptor that was added to an fd set.
339#
340# @fdset-id: The ID of the fd set that @fd was added to.
341#
342# @fd: The file descriptor that was received via SCM rights and
343# added to the fd set.
344#
345# Since: 1.2.0
346##
347{ 'struct': 'AddfdInfo', 'data': {'fdset-id': 'int', 'fd': 'int'} }
348
349##
350# @add-fd:
351#
352# Add a file descriptor, that was passed via SCM rights, to an fd set.
353#
354# @fdset-id: The ID of the fd set to add the file descriptor to.
355#
356# @opaque: A free-form string that can be used to describe the fd.
357#
e050e426
PM
358# Returns: - @AddfdInfo on success
359# - If file descriptor was not received, FdNotSupplied
360# - If @fdset-id is a negative value, InvalidParameterValue
112ed241
MA
361#
362# Notes: The list of fd sets is shared by all monitor connections.
363#
364# If @fdset-id is not specified, a new fd set will be created.
365#
366# Since: 1.2.0
367#
368# Example:
369#
370# -> { "execute": "add-fd", "arguments": { "fdset-id": 1 } }
371# <- { "return": { "fdset-id": 1, "fd": 3 } }
372#
373##
b0ddeba2
MAL
374{ 'command': 'add-fd',
375 'data': { '*fdset-id': 'int',
376 '*opaque': 'str' },
112ed241
MA
377 'returns': 'AddfdInfo' }
378
379##
380# @remove-fd:
381#
382# Remove a file descriptor from an fd set.
383#
384# @fdset-id: The ID of the fd set that the file descriptor belongs to.
385#
386# @fd: The file descriptor that is to be removed.
387#
e050e426
PM
388# Returns: - Nothing on success
389# - If @fdset-id or @fd is not found, FdNotFound
112ed241
MA
390#
391# Since: 1.2.0
392#
393# Notes: The list of fd sets is shared by all monitor connections.
394#
395# If @fd is not specified, all file descriptors in @fdset-id
396# will be removed.
397#
398# Example:
399#
400# -> { "execute": "remove-fd", "arguments": { "fdset-id": 1, "fd": 3 } }
401# <- { "return": {} }
402#
403##
404{ 'command': 'remove-fd', 'data': {'fdset-id': 'int', '*fd': 'int'} }
405
406##
407# @FdsetFdInfo:
408#
409# Information about a file descriptor that belongs to an fd set.
410#
411# @fd: The file descriptor value.
412#
413# @opaque: A free-form string that can be used to describe the fd.
414#
415# Since: 1.2.0
416##
417{ 'struct': 'FdsetFdInfo',
418 'data': {'fd': 'int', '*opaque': 'str'} }
419
420##
421# @FdsetInfo:
422#
423# Information about an fd set.
424#
425# @fdset-id: The ID of the fd set.
426#
427# @fds: A list of file descriptors that belong to this fd set.
428#
429# Since: 1.2.0
430##
431{ 'struct': 'FdsetInfo',
432 'data': {'fdset-id': 'int', 'fds': ['FdsetFdInfo']} }
433
434##
435# @query-fdsets:
436#
437# Return information describing all fd sets.
438#
439# Returns: A list of @FdsetInfo
440#
441# Since: 1.2.0
442#
443# Note: The list of fd sets is shared by all monitor connections.
444#
445# Example:
446#
447# -> { "execute": "query-fdsets" }
448# <- { "return": [
449# {
450# "fds": [
451# {
452# "fd": 30,
453# "opaque": "rdonly:/path/to/file"
454# },
455# {
456# "fd": 24,
457# "opaque": "rdwr:/path/to/file"
458# }
459# ],
460# "fdset-id": 1
461# },
462# {
463# "fds": [
464# {
465# "fd": 28
466# },
467# {
468# "fd": 29
469# }
470# ],
471# "fdset-id": 0
472# }
473# ]
474# }
475#
476##
477{ 'command': 'query-fdsets', 'returns': ['FdsetInfo'] }
478
112ed241
MA
479##
480# @CommandLineParameterType:
481#
482# Possible types for an option parameter.
483#
484# @string: accepts a character string
485#
486# @boolean: accepts "on" or "off"
487#
488# @number: accepts a number
489#
490# @size: accepts a number followed by an optional suffix (K)ilo,
491# (M)ega, (G)iga, (T)era
492#
493# Since: 1.5
494##
495{ 'enum': 'CommandLineParameterType',
496 'data': ['string', 'boolean', 'number', 'size'] }
497
498##
499# @CommandLineParameterInfo:
500#
501# Details about a single parameter of a command line option.
502#
503# @name: parameter name
504#
505# @type: parameter @CommandLineParameterType
506#
507# @help: human readable text string, not suitable for parsing.
508#
509# @default: default value string (since 2.1)
510#
511# Since: 1.5
512##
513{ 'struct': 'CommandLineParameterInfo',
514 'data': { 'name': 'str',
515 'type': 'CommandLineParameterType',
516 '*help': 'str',
517 '*default': 'str' } }
518
519##
520# @CommandLineOptionInfo:
521#
522# Details about a command line option, including its list of parameter details
523#
524# @option: option name
525#
526# @parameters: an array of @CommandLineParameterInfo
527#
528# Since: 1.5
529##
530{ 'struct': 'CommandLineOptionInfo',
531 'data': { 'option': 'str', 'parameters': ['CommandLineParameterInfo'] } }
532
533##
534# @query-command-line-options:
535#
536# Query command line option schema.
537#
538# @option: option name
539#
540# Returns: list of @CommandLineOptionInfo for all options (or for the given
541# @option). Returns an error if the given @option doesn't exist.
542#
543# Since: 1.5
544#
545# Example:
546#
547# -> { "execute": "query-command-line-options",
548# "arguments": { "option": "option-rom" } }
549# <- { "return": [
550# {
551# "parameters": [
552# {
553# "name": "romfile",
554# "type": "string"
555# },
556# {
557# "name": "bootindex",
558# "type": "number"
559# }
560# ],
561# "option": "option-rom"
562# }
563# ]
564# }
565#
566##
b0ddeba2
MAL
567{'command': 'query-command-line-options',
568 'data': { '*option': 'str' },
d6fe3d02
IM
569 'returns': ['CommandLineOptionInfo'],
570 'allow-preconfig': true }