mirror of
https://github.com/qemu/qemu.git
synced 2025-09-26 16:12:25 +00:00

The new qapidoc.py can generate "Returns" statements with type information just fine, so we can remove it from the source where it doesn't add anything particularly novel or helpful and just repeats the type info. This patch is fairly "gentle" and doesn't aggressively touch other "Returns" lines that could be rephrased to omit repeating type information; it only removes lines that appear appropriate to wholly remove. To help facilitate auto-generated placement, a few doc blocks have a "TODO:" line inserted to help the placement algorithm differentiate the introductory paragraph(s) from the rest of the documentation. The auto-generated returns are in the exact same spot, except for query-migrationthreads, query-machines, and x-query-virtio-queue-element. These auto-generation moves to a better spot. Signed-off-by: John Snow <jsnow@redhat.com> Message-ID: <20250711051045.51110-4-jsnow@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> [Two more Returns: removed, commit message amended to explain auto-generated returns generated into a different spot] Signed-off-by: Markus Armbruster <armbru@redhat.com>
899 lines
20 KiB
Python
899 lines
20 KiB
Python
# -*- Mode: Python -*-
|
|
# vim: filetype=python
|
|
#
|
|
|
|
##
|
|
# *****************
|
|
# Character devices
|
|
# *****************
|
|
##
|
|
|
|
{ 'include': 'sockets.json' }
|
|
|
|
##
|
|
# @ChardevInfo:
|
|
#
|
|
# Information about a character device.
|
|
#
|
|
# @label: the label of the character device
|
|
#
|
|
# @filename: the filename of the character device
|
|
#
|
|
# @frontend-open: shows whether the frontend device attached to this
|
|
# backend (e.g. with the chardev=... option) is in open or closed
|
|
# state (since 2.1)
|
|
#
|
|
# .. note:: @filename is encoded using the QEMU command line character
|
|
# device encoding. See the QEMU man page for details.
|
|
#
|
|
# Since: 0.14
|
|
##
|
|
{ 'struct': 'ChardevInfo',
|
|
'data': { 'label': 'str',
|
|
'filename': 'str',
|
|
'frontend-open': 'bool' } }
|
|
|
|
##
|
|
# @query-chardev:
|
|
#
|
|
# Return information about current character devices.
|
|
#
|
|
# Since: 0.14
|
|
#
|
|
# .. qmp-example::
|
|
#
|
|
# -> { "execute": "query-chardev" }
|
|
# <- {
|
|
# "return": [
|
|
# {
|
|
# "label": "charchannel0",
|
|
# "filename": "unix:/var/lib/libvirt/qemu/seabios.rhel6.agent,server=on",
|
|
# "frontend-open": false
|
|
# },
|
|
# {
|
|
# "label": "charmonitor",
|
|
# "filename": "unix:/var/lib/libvirt/qemu/seabios.rhel6.monitor,server=on",
|
|
# "frontend-open": true
|
|
# },
|
|
# {
|
|
# "label": "charserial0",
|
|
# "filename": "pty:/dev/pts/2",
|
|
# "frontend-open": true
|
|
# }
|
|
# ]
|
|
# }
|
|
##
|
|
{ 'command': 'query-chardev', 'returns': ['ChardevInfo'],
|
|
'allow-preconfig': true }
|
|
|
|
##
|
|
# @ChardevBackendInfo:
|
|
#
|
|
# Information about a character device backend
|
|
#
|
|
# @name: The backend name
|
|
#
|
|
# Since: 2.0
|
|
##
|
|
{ 'struct': 'ChardevBackendInfo', 'data': {'name': 'str'} }
|
|
|
|
##
|
|
# @query-chardev-backends:
|
|
#
|
|
# Return information about character device backends.
|
|
#
|
|
# Since: 2.0
|
|
#
|
|
# .. qmp-example::
|
|
#
|
|
# -> { "execute": "query-chardev-backends" }
|
|
# <- {
|
|
# "return":[
|
|
# {
|
|
# "name":"udp"
|
|
# },
|
|
# {
|
|
# "name":"tcp"
|
|
# },
|
|
# {
|
|
# "name":"unix"
|
|
# },
|
|
# {
|
|
# "name":"spiceport"
|
|
# }
|
|
# ]
|
|
# }
|
|
##
|
|
{ 'command': 'query-chardev-backends', 'returns': ['ChardevBackendInfo'] }
|
|
|
|
##
|
|
# @DataFormat:
|
|
#
|
|
# An enumeration of data format.
|
|
#
|
|
# @utf8: Data is a UTF-8 string (RFC 3629)
|
|
#
|
|
# @base64: Data is Base64 encoded binary (RFC 3548)
|
|
#
|
|
# Since: 1.4
|
|
##
|
|
{ 'enum': 'DataFormat',
|
|
'data': [ 'utf8', 'base64' ] }
|
|
|
|
##
|
|
# @ringbuf-write:
|
|
#
|
|
# Write to a ring buffer character device.
|
|
#
|
|
# @device: the ring buffer character device name
|
|
#
|
|
# @data: data to write
|
|
#
|
|
# @format: data encoding (default 'utf8').
|
|
#
|
|
# - base64: data must be base64 encoded text. Its binary decoding
|
|
# gets written.
|
|
# - utf8: data's UTF-8 encoding is written
|
|
# - data itself is always Unicode regardless of format, like any
|
|
# other string.
|
|
#
|
|
# Since: 1.4
|
|
#
|
|
# .. qmp-example::
|
|
#
|
|
# -> { "execute": "ringbuf-write",
|
|
# "arguments": { "device": "foo",
|
|
# "data": "abcdefgh",
|
|
# "format": "utf8" } }
|
|
# <- { "return": {} }
|
|
##
|
|
{ 'command': 'ringbuf-write',
|
|
'data': { 'device': 'str',
|
|
'data': 'str',
|
|
'*format': 'DataFormat'} }
|
|
|
|
##
|
|
# @ringbuf-read:
|
|
#
|
|
# Read from a ring buffer character device.
|
|
#
|
|
# @device: the ring buffer character device name
|
|
#
|
|
# @size: how many bytes to read at most
|
|
#
|
|
# @format: data encoding (default 'utf8').
|
|
#
|
|
# - base64: the data read is returned in base64 encoding.
|
|
# - utf8: the data read is interpreted as UTF-8.
|
|
# Bug: can screw up when the buffer contains invalid UTF-8
|
|
# sequences, NUL characters, after the ring buffer lost data,
|
|
# and when reading stops because the size limit is reached.
|
|
# - The return value is always Unicode regardless of format, like
|
|
# any other string.
|
|
#
|
|
# Returns: data read from the device
|
|
#
|
|
# Since: 1.4
|
|
#
|
|
# .. qmp-example::
|
|
#
|
|
# -> { "execute": "ringbuf-read",
|
|
# "arguments": { "device": "foo",
|
|
# "size": 1000,
|
|
# "format": "utf8" } }
|
|
# <- { "return": "abcdefgh" }
|
|
##
|
|
{ 'command': 'ringbuf-read',
|
|
'data': {'device': 'str', 'size': 'int', '*format': 'DataFormat'},
|
|
'returns': 'str' }
|
|
|
|
##
|
|
# @ChardevCommon:
|
|
#
|
|
# Configuration shared across all chardev backends
|
|
#
|
|
# @logfile: The name of a logfile to save output
|
|
#
|
|
# @logappend: true to append instead of truncate (default to false to
|
|
# truncate)
|
|
#
|
|
# Since: 2.6
|
|
##
|
|
{ 'struct': 'ChardevCommon',
|
|
'data': { '*logfile': 'str',
|
|
'*logappend': 'bool' } }
|
|
|
|
##
|
|
# @ChardevFile:
|
|
#
|
|
# Configuration info for file chardevs.
|
|
#
|
|
# @in: The name of the input file
|
|
#
|
|
# @out: The name of the output file
|
|
#
|
|
# @append: Open the file in append mode (default false to truncate)
|
|
# (Since 2.6)
|
|
#
|
|
# Since: 1.4
|
|
##
|
|
{ 'struct': 'ChardevFile',
|
|
'data': { '*in': 'str',
|
|
'out': 'str',
|
|
'*append': 'bool' },
|
|
'base': 'ChardevCommon' }
|
|
|
|
##
|
|
# @ChardevHostdev:
|
|
#
|
|
# Configuration info for device and pipe chardevs.
|
|
#
|
|
# @device: The name of the special file for the device, i.e.
|
|
# /dev/ttyS0 on Unix or COM1: on Windows
|
|
#
|
|
# Since: 1.4
|
|
##
|
|
{ 'struct': 'ChardevHostdev',
|
|
'data': { 'device': 'str' },
|
|
'base': 'ChardevCommon' }
|
|
|
|
##
|
|
# @ChardevSocket:
|
|
#
|
|
# Configuration info for (stream) socket chardevs.
|
|
#
|
|
# @addr: socket address to listen on (server=true) or connect to
|
|
# (server=false)
|
|
#
|
|
# @tls-creds: the ID of the TLS credentials object (since 2.6)
|
|
#
|
|
# @tls-authz: the ID of the QAuthZ authorization object against which
|
|
# the client's x509 distinguished name will be validated. This
|
|
# object is only resolved at time of use, so can be deleted and
|
|
# recreated on the fly while the chardev server is active. If
|
|
# missing, it will default to denying access (since 4.0)
|
|
#
|
|
# @server: create server socket (default: true)
|
|
#
|
|
# @wait: wait for incoming connection on server sockets (default:
|
|
# false). Silently ignored with server: false. This use is
|
|
# deprecated.
|
|
#
|
|
# @nodelay: set TCP_NODELAY socket option (default: false)
|
|
#
|
|
# @telnet: enable telnet protocol on server sockets (default: false)
|
|
#
|
|
# @tn3270: enable tn3270 protocol on server sockets (default: false)
|
|
# (Since: 2.10)
|
|
#
|
|
# @websocket: enable websocket protocol on server sockets
|
|
# (default: false) (Since: 3.1)
|
|
#
|
|
# @reconnect: For a client socket, if a socket is disconnected, then
|
|
# attempt a reconnect after the given number of seconds. Setting
|
|
# this to zero disables this function. The use of this member is
|
|
# deprecated, use @reconnect-ms instead. (default: 0) (Since: 2.2)
|
|
#
|
|
# @reconnect-ms: For a client socket, if a socket is disconnected,
|
|
# then attempt a reconnect after the given number of milliseconds.
|
|
# Setting this to zero disables this function. This member is
|
|
# mutually exclusive with @reconnect.
|
|
# (default: 0) (Since: 9.2)
|
|
#
|
|
# Features:
|
|
#
|
|
# @deprecated: Member @reconnect is deprecated. Use @reconnect-ms
|
|
# instead.
|
|
#
|
|
# Since: 1.4
|
|
##
|
|
{ 'struct': 'ChardevSocket',
|
|
'data': { 'addr': 'SocketAddressLegacy',
|
|
'*tls-creds': 'str',
|
|
'*tls-authz' : 'str',
|
|
'*server': 'bool',
|
|
'*wait': 'bool',
|
|
'*nodelay': 'bool',
|
|
'*telnet': 'bool',
|
|
'*tn3270': 'bool',
|
|
'*websocket': 'bool',
|
|
'*reconnect': { 'type': 'int', 'features': [ 'deprecated' ] },
|
|
'*reconnect-ms': 'int' },
|
|
'base': 'ChardevCommon' }
|
|
|
|
##
|
|
# @ChardevUdp:
|
|
#
|
|
# Configuration info for datagram socket chardevs.
|
|
#
|
|
# @remote: remote address
|
|
#
|
|
# @local: local address
|
|
#
|
|
# Since: 1.5
|
|
##
|
|
{ 'struct': 'ChardevUdp',
|
|
'data': { 'remote': 'SocketAddressLegacy',
|
|
'*local': 'SocketAddressLegacy' },
|
|
'base': 'ChardevCommon' }
|
|
|
|
##
|
|
# @ChardevMux:
|
|
#
|
|
# Configuration info for mux chardevs.
|
|
#
|
|
# @chardev: name of the base chardev.
|
|
#
|
|
# Since: 1.5
|
|
##
|
|
{ 'struct': 'ChardevMux',
|
|
'data': { 'chardev': 'str' },
|
|
'base': 'ChardevCommon' }
|
|
|
|
##
|
|
# @ChardevHub:
|
|
#
|
|
# Configuration info for hub chardevs.
|
|
#
|
|
# @chardevs: IDs to be added to this hub (maximum 4 devices).
|
|
#
|
|
# Since: 10.0
|
|
##
|
|
{ 'struct': 'ChardevHub',
|
|
'data': { 'chardevs': ['str'] },
|
|
'base': 'ChardevCommon' }
|
|
|
|
##
|
|
# @ChardevStdio:
|
|
#
|
|
# Configuration info for stdio chardevs.
|
|
#
|
|
# @signal: Allow signals (such as SIGINT triggered by ^C) be delivered
|
|
# to QEMU. Default: true.
|
|
#
|
|
# Since: 1.5
|
|
##
|
|
{ 'struct': 'ChardevStdio',
|
|
'data': { '*signal': 'bool' },
|
|
'base': 'ChardevCommon' }
|
|
|
|
##
|
|
# @ChardevSpiceChannel:
|
|
#
|
|
# Configuration info for spice vm channel chardevs.
|
|
#
|
|
# @type: kind of channel (for example vdagent).
|
|
#
|
|
# Since: 1.5
|
|
##
|
|
{ 'struct': 'ChardevSpiceChannel',
|
|
'data': { 'type': 'str' },
|
|
'base': 'ChardevCommon',
|
|
'if': 'CONFIG_SPICE' }
|
|
|
|
##
|
|
# @ChardevSpicePort:
|
|
#
|
|
# Configuration info for spice port chardevs.
|
|
#
|
|
# @fqdn: name of the channel (see docs/spice-port-fqdn.txt)
|
|
#
|
|
# Since: 1.5
|
|
##
|
|
{ 'struct': 'ChardevSpicePort',
|
|
'data': { 'fqdn': 'str' },
|
|
'base': 'ChardevCommon',
|
|
'if': 'CONFIG_SPICE' }
|
|
|
|
##
|
|
# @ChardevDBus:
|
|
#
|
|
# Configuration info for DBus chardevs.
|
|
#
|
|
# @name: name of the channel (following docs/spice-port-fqdn.txt)
|
|
#
|
|
# Since: 7.0
|
|
##
|
|
{ 'struct': 'ChardevDBus',
|
|
'data': { 'name': 'str' },
|
|
'base': 'ChardevCommon',
|
|
'if': 'CONFIG_DBUS_DISPLAY' }
|
|
|
|
##
|
|
# @ChardevVC:
|
|
#
|
|
# Configuration info for virtual console chardevs.
|
|
#
|
|
# @width: console width, in pixels
|
|
#
|
|
# @height: console height, in pixels
|
|
#
|
|
# @cols: console width, in chars
|
|
#
|
|
# @rows: console height, in chars
|
|
#
|
|
# .. note:: The options are only effective when the VNC or SDL
|
|
# graphical display backend is active. They are ignored with the
|
|
# GTK, Spice, VNC and D-Bus display backends.
|
|
#
|
|
# Since: 1.5
|
|
##
|
|
{ 'struct': 'ChardevVC',
|
|
'data': { '*width': 'int',
|
|
'*height': 'int',
|
|
'*cols': 'int',
|
|
'*rows': 'int' },
|
|
'base': 'ChardevCommon' }
|
|
|
|
##
|
|
# @ChardevRingbuf:
|
|
#
|
|
# Configuration info for ring buffer chardevs.
|
|
#
|
|
# @size: ring buffer size, must be power of two, default is 65536
|
|
#
|
|
# Since: 1.5
|
|
##
|
|
{ 'struct': 'ChardevRingbuf',
|
|
'data': { '*size': 'int' },
|
|
'base': 'ChardevCommon' }
|
|
|
|
##
|
|
# @ChardevQemuVDAgent:
|
|
#
|
|
# Configuration info for QEMU vdagent implementation.
|
|
#
|
|
# @mouse: enable/disable mouse, default is enabled.
|
|
#
|
|
# @clipboard: enable/disable clipboard, default is disabled.
|
|
#
|
|
# Since: 6.1
|
|
##
|
|
{ 'struct': 'ChardevQemuVDAgent',
|
|
'data': { '*mouse': 'bool',
|
|
'*clipboard': 'bool' },
|
|
'base': 'ChardevCommon',
|
|
'if': 'CONFIG_SPICE_PROTOCOL' }
|
|
|
|
##
|
|
# @ChardevPty:
|
|
#
|
|
# Configuration info for pty implementation.
|
|
#
|
|
# @path: optional path to create a symbolic link that points to the
|
|
# allocated PTY
|
|
#
|
|
# Since: 9.2
|
|
##
|
|
{ 'struct': 'ChardevPty',
|
|
'data': { '*path': 'str' },
|
|
'base': 'ChardevCommon' }
|
|
|
|
##
|
|
# @ChardevBackendKind:
|
|
#
|
|
# @file: regular files
|
|
#
|
|
# @serial: serial host device
|
|
#
|
|
# @parallel: parallel host device
|
|
#
|
|
# @pipe: pipes (since 1.5)
|
|
#
|
|
# @socket: stream socket
|
|
#
|
|
# @udp: datagram socket (since 1.5)
|
|
#
|
|
# @pty: pseudo-terminal
|
|
#
|
|
# @null: provides no input, throws away output
|
|
#
|
|
# @mux: (since 1.5)
|
|
#
|
|
# @hub: (since 10.0)
|
|
#
|
|
# @msmouse: emulated Microsoft serial mouse (since 1.5)
|
|
#
|
|
# @wctablet: emulated Wacom Penpartner serial tablet (since 2.9)
|
|
#
|
|
# @braille: Baum Braille device (since 1.5)
|
|
#
|
|
# @testdev: device for test-suite control (since 2.2)
|
|
#
|
|
# @stdio: standard I/O (since 1.5)
|
|
#
|
|
# @console: Windows console (since 1.5)
|
|
#
|
|
# @spicevmc: spice vm channel (since 1.5)
|
|
#
|
|
# @spiceport: Spice port channel (since 1.5)
|
|
#
|
|
# @qemu-vdagent: Spice vdagent (since 6.1)
|
|
#
|
|
# @dbus: D-Bus channel (since 7.0)
|
|
#
|
|
# @vc: virtual console (since 1.5)
|
|
#
|
|
# @ringbuf: memory ring buffer (since 1.6)
|
|
#
|
|
# @memory: synonym for @ringbuf (since 1.5)
|
|
#
|
|
# Features:
|
|
#
|
|
# @deprecated: Member @memory is deprecated. Use @ringbuf instead.
|
|
#
|
|
# Since: 1.4
|
|
##
|
|
{ 'enum': 'ChardevBackendKind',
|
|
'data': [ 'file',
|
|
{ 'name': 'serial', 'if': 'HAVE_CHARDEV_SERIAL' },
|
|
{ 'name': 'parallel', 'if': 'HAVE_CHARDEV_PARALLEL' },
|
|
'pipe',
|
|
'socket',
|
|
'udp',
|
|
'pty',
|
|
'null',
|
|
'mux',
|
|
'hub',
|
|
'msmouse',
|
|
'wctablet',
|
|
{ 'name': 'braille', 'if': 'CONFIG_BRLAPI' },
|
|
'testdev',
|
|
'stdio',
|
|
{ 'name': 'console', 'if': 'CONFIG_WIN32' },
|
|
{ 'name': 'spicevmc', 'if': 'CONFIG_SPICE' },
|
|
{ 'name': 'spiceport', 'if': 'CONFIG_SPICE' },
|
|
{ 'name': 'qemu-vdagent', 'if': 'CONFIG_SPICE_PROTOCOL' },
|
|
{ 'name': 'dbus', 'if': 'CONFIG_DBUS_DISPLAY' },
|
|
'vc',
|
|
'ringbuf',
|
|
{ 'name': 'memory', 'features': [ 'deprecated' ] } ] }
|
|
|
|
##
|
|
# @ChardevFileWrapper:
|
|
#
|
|
# @data: Configuration info for file chardevs
|
|
#
|
|
# Since: 1.4
|
|
##
|
|
{ 'struct': 'ChardevFileWrapper',
|
|
'data': { 'data': 'ChardevFile' } }
|
|
|
|
##
|
|
# @ChardevHostdevWrapper:
|
|
#
|
|
# @data: Configuration info for device and pipe chardevs
|
|
#
|
|
# Since: 1.4
|
|
##
|
|
{ 'struct': 'ChardevHostdevWrapper',
|
|
'data': { 'data': 'ChardevHostdev' } }
|
|
|
|
##
|
|
# @ChardevSocketWrapper:
|
|
#
|
|
# @data: Configuration info for (stream) socket chardevs
|
|
#
|
|
# Since: 1.4
|
|
##
|
|
{ 'struct': 'ChardevSocketWrapper',
|
|
'data': { 'data': 'ChardevSocket' } }
|
|
|
|
##
|
|
# @ChardevUdpWrapper:
|
|
#
|
|
# @data: Configuration info for datagram socket chardevs
|
|
#
|
|
# Since: 1.5
|
|
##
|
|
{ 'struct': 'ChardevUdpWrapper',
|
|
'data': { 'data': 'ChardevUdp' } }
|
|
|
|
##
|
|
# @ChardevCommonWrapper:
|
|
#
|
|
# @data: Configuration shared across all chardev backends
|
|
#
|
|
# Since: 2.6
|
|
##
|
|
{ 'struct': 'ChardevCommonWrapper',
|
|
'data': { 'data': 'ChardevCommon' } }
|
|
|
|
##
|
|
# @ChardevMuxWrapper:
|
|
#
|
|
# @data: Configuration info for mux chardevs
|
|
#
|
|
# Since: 1.5
|
|
##
|
|
{ 'struct': 'ChardevMuxWrapper',
|
|
'data': { 'data': 'ChardevMux' } }
|
|
|
|
##
|
|
# @ChardevHubWrapper:
|
|
#
|
|
# @data: Configuration info for hub chardevs
|
|
#
|
|
# Since: 10.0
|
|
##
|
|
{ 'struct': 'ChardevHubWrapper',
|
|
'data': { 'data': 'ChardevHub' } }
|
|
|
|
##
|
|
# @ChardevStdioWrapper:
|
|
#
|
|
# @data: Configuration info for stdio chardevs
|
|
#
|
|
# Since: 1.5
|
|
##
|
|
{ 'struct': 'ChardevStdioWrapper',
|
|
'data': { 'data': 'ChardevStdio' } }
|
|
|
|
##
|
|
# @ChardevSpiceChannelWrapper:
|
|
#
|
|
# @data: Configuration info for spice vm channel chardevs
|
|
#
|
|
# Since: 1.5
|
|
##
|
|
{ 'struct': 'ChardevSpiceChannelWrapper',
|
|
'data': { 'data': 'ChardevSpiceChannel' },
|
|
'if': 'CONFIG_SPICE' }
|
|
|
|
##
|
|
# @ChardevSpicePortWrapper:
|
|
#
|
|
# @data: Configuration info for spice port chardevs
|
|
#
|
|
# Since: 1.5
|
|
##
|
|
{ 'struct': 'ChardevSpicePortWrapper',
|
|
'data': { 'data': 'ChardevSpicePort' },
|
|
'if': 'CONFIG_SPICE' }
|
|
|
|
##
|
|
# @ChardevQemuVDAgentWrapper:
|
|
#
|
|
# @data: Configuration info for QEMU vdagent implementation
|
|
#
|
|
# Since: 6.1
|
|
##
|
|
{ 'struct': 'ChardevQemuVDAgentWrapper',
|
|
'data': { 'data': 'ChardevQemuVDAgent' },
|
|
'if': 'CONFIG_SPICE_PROTOCOL' }
|
|
|
|
##
|
|
# @ChardevDBusWrapper:
|
|
#
|
|
# @data: Configuration info for DBus chardevs
|
|
#
|
|
# Since: 7.0
|
|
##
|
|
{ 'struct': 'ChardevDBusWrapper',
|
|
'data': { 'data': 'ChardevDBus' },
|
|
'if': 'CONFIG_DBUS_DISPLAY' }
|
|
|
|
##
|
|
# @ChardevVCWrapper:
|
|
#
|
|
# @data: Configuration info for virtual console chardevs
|
|
#
|
|
# Since: 1.5
|
|
##
|
|
{ 'struct': 'ChardevVCWrapper',
|
|
'data': { 'data': 'ChardevVC' } }
|
|
|
|
##
|
|
# @ChardevRingbufWrapper:
|
|
#
|
|
# @data: Configuration info for ring buffer chardevs
|
|
#
|
|
# Since: 1.5
|
|
##
|
|
{ 'struct': 'ChardevRingbufWrapper',
|
|
'data': { 'data': 'ChardevRingbuf' } }
|
|
|
|
|
|
##
|
|
# @ChardevPtyWrapper:
|
|
#
|
|
# @data: Configuration info for pty chardevs
|
|
#
|
|
# Since: 9.2
|
|
##
|
|
{ 'struct': 'ChardevPtyWrapper',
|
|
'data': { 'data': 'ChardevPty' } }
|
|
|
|
##
|
|
# @ChardevBackend:
|
|
#
|
|
# Configuration info for the new chardev backend.
|
|
#
|
|
# @type: backend type
|
|
#
|
|
# Since: 1.4
|
|
##
|
|
{ 'union': 'ChardevBackend',
|
|
'base': { 'type': 'ChardevBackendKind' },
|
|
'discriminator': 'type',
|
|
'data': { 'file': 'ChardevFileWrapper',
|
|
'serial': { 'type': 'ChardevHostdevWrapper',
|
|
'if': 'HAVE_CHARDEV_SERIAL' },
|
|
'parallel': { 'type': 'ChardevHostdevWrapper',
|
|
'if': 'HAVE_CHARDEV_PARALLEL' },
|
|
'pipe': 'ChardevHostdevWrapper',
|
|
'socket': 'ChardevSocketWrapper',
|
|
'udp': 'ChardevUdpWrapper',
|
|
'pty': 'ChardevPtyWrapper',
|
|
'null': 'ChardevCommonWrapper',
|
|
'mux': 'ChardevMuxWrapper',
|
|
'hub': 'ChardevHubWrapper',
|
|
'msmouse': 'ChardevCommonWrapper',
|
|
'wctablet': 'ChardevCommonWrapper',
|
|
'braille': { 'type': 'ChardevCommonWrapper',
|
|
'if': 'CONFIG_BRLAPI' },
|
|
'testdev': 'ChardevCommonWrapper',
|
|
'stdio': 'ChardevStdioWrapper',
|
|
'console': { 'type': 'ChardevCommonWrapper',
|
|
'if': 'CONFIG_WIN32' },
|
|
'spicevmc': { 'type': 'ChardevSpiceChannelWrapper',
|
|
'if': 'CONFIG_SPICE' },
|
|
'spiceport': { 'type': 'ChardevSpicePortWrapper',
|
|
'if': 'CONFIG_SPICE' },
|
|
'qemu-vdagent': { 'type': 'ChardevQemuVDAgentWrapper',
|
|
'if': 'CONFIG_SPICE_PROTOCOL' },
|
|
'dbus': { 'type': 'ChardevDBusWrapper',
|
|
'if': 'CONFIG_DBUS_DISPLAY' },
|
|
'vc': 'ChardevVCWrapper',
|
|
'ringbuf': 'ChardevRingbufWrapper',
|
|
'memory': 'ChardevRingbufWrapper' } }
|
|
|
|
##
|
|
# @ChardevReturn:
|
|
#
|
|
# Return info about the chardev backend just created.
|
|
#
|
|
# @pty: name of the slave pseudoterminal device, present if and only
|
|
# if a chardev of type 'pty' was created
|
|
#
|
|
# Since: 1.4
|
|
##
|
|
{ 'struct' : 'ChardevReturn',
|
|
'data': { '*pty': 'str' } }
|
|
|
|
##
|
|
# @chardev-add:
|
|
#
|
|
# Add a character device backend
|
|
#
|
|
# @id: the chardev's ID, must be unique
|
|
#
|
|
# @backend: backend type and parameters
|
|
#
|
|
# Since: 1.4
|
|
#
|
|
# .. qmp-example::
|
|
#
|
|
# -> { "execute" : "chardev-add",
|
|
# "arguments" : { "id" : "foo",
|
|
# "backend" : { "type" : "null", "data" : {} } } }
|
|
# <- { "return": {} }
|
|
#
|
|
# .. qmp-example::
|
|
#
|
|
# -> { "execute" : "chardev-add",
|
|
# "arguments" : { "id" : "bar",
|
|
# "backend" : { "type" : "file",
|
|
# "data" : { "out" : "/tmp/bar.log" } } } }
|
|
# <- { "return": {} }
|
|
#
|
|
# .. qmp-example::
|
|
#
|
|
# -> { "execute" : "chardev-add",
|
|
# "arguments" : { "id" : "baz",
|
|
# "backend" : { "type" : "pty", "data" : {} } } }
|
|
# <- { "return": { "pty" : "/dev/pty/42" } }
|
|
##
|
|
{ 'command': 'chardev-add',
|
|
'data': { 'id': 'str',
|
|
'backend': 'ChardevBackend' },
|
|
'returns': 'ChardevReturn' }
|
|
|
|
##
|
|
# @chardev-change:
|
|
#
|
|
# Change a character device backend
|
|
#
|
|
# @id: the chardev's ID, must exist
|
|
#
|
|
# @backend: new backend type and parameters
|
|
#
|
|
# Since: 2.10
|
|
#
|
|
# .. qmp-example::
|
|
#
|
|
# -> { "execute" : "chardev-change",
|
|
# "arguments" : { "id" : "baz",
|
|
# "backend" : { "type" : "pty", "data" : {} } } }
|
|
# <- { "return": { "pty" : "/dev/pty/42" } }
|
|
#
|
|
# .. qmp-example::
|
|
#
|
|
# -> {"execute" : "chardev-change",
|
|
# "arguments" : {
|
|
# "id" : "charchannel2",
|
|
# "backend" : {
|
|
# "type" : "socket",
|
|
# "data" : {
|
|
# "addr" : {
|
|
# "type" : "unix" ,
|
|
# "data" : {
|
|
# "path" : "/tmp/charchannel2.socket"
|
|
# }
|
|
# },
|
|
# "server" : true,
|
|
# "wait" : false }}}}
|
|
# <- {"return": {}}
|
|
##
|
|
{ 'command': 'chardev-change',
|
|
'data': { 'id': 'str',
|
|
'backend': 'ChardevBackend' },
|
|
'returns': 'ChardevReturn' }
|
|
|
|
##
|
|
# @chardev-remove:
|
|
#
|
|
# Remove a character device backend
|
|
#
|
|
# @id: the chardev's ID, must exist and not be in use
|
|
#
|
|
# Since: 1.4
|
|
#
|
|
# .. qmp-example::
|
|
#
|
|
# -> { "execute": "chardev-remove", "arguments": { "id" : "foo" } }
|
|
# <- { "return": {} }
|
|
##
|
|
{ 'command': 'chardev-remove',
|
|
'data': { 'id': 'str' } }
|
|
|
|
##
|
|
# @chardev-send-break:
|
|
#
|
|
# Send a break to a character device
|
|
#
|
|
# @id: the chardev's ID, must exist
|
|
#
|
|
# Since: 2.10
|
|
#
|
|
# .. qmp-example::
|
|
#
|
|
# -> { "execute": "chardev-send-break", "arguments": { "id" : "foo" } }
|
|
# <- { "return": {} }
|
|
##
|
|
{ 'command': 'chardev-send-break',
|
|
'data': { 'id': 'str' } }
|
|
|
|
##
|
|
# @VSERPORT_CHANGE:
|
|
#
|
|
# Emitted when the guest opens or closes a virtio-serial port.
|
|
#
|
|
# @id: device identifier of the virtio-serial port
|
|
#
|
|
# @open: true if the guest has opened the virtio-serial port
|
|
#
|
|
# .. note:: This event is rate-limited.
|
|
#
|
|
# Since: 2.1
|
|
#
|
|
# .. qmp-example::
|
|
#
|
|
# <- { "event": "VSERPORT_CHANGE",
|
|
# "data": { "id": "channel0", "open": true },
|
|
# "timestamp": { "seconds": 1401385907, "microseconds": 422329 } }
|
|
##
|
|
{ 'event': 'VSERPORT_CHANGE',
|
|
'data': { 'id': 'str',
|
|
'open': 'bool' } }
|