| # -*- 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) | |
| # | |
| # @logtimestamp: true to insert timestamps into logfile | |
| # (default false) (since 11.0) | |
| # | |
| # Since: 2.6 | |
| ## | |
| { 'struct': 'ChardevCommon', | |
| 'data': { '*logfile': 'str', | |
| '*logappend': 'bool', | |
| '*logtimestamp': '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-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. | |
| # (default: 0) (Since: 9.2) | |
| # | |
| # 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-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' } | |
| ## | |
| # @ChardevVCEncoding: | |
| # Character encoding expected from the guest on a virtual console. | |
| # | |
| # @cp437: CP437 (8-bit Extended ASCII / VGA). Every byte maps | |
| # directly to a glyph; suitable for DOS or other guests that | |
| # output raw CP437. | |
| # | |
| # @utf8: UTF-8. Multi-byte sequences are decoded and then mapped | |
| # back to CP437 glyphs for display; unmappable codepoints are | |
| # shown as '?'. Suitable for modern Linux guests. | |
| # | |
| # Since: 11.1 | |
| ## | |
| { 'enum': 'ChardevVCEncoding', | |
| 'data': [ 'cp437', 'utf8' ] } | |
| ## | |
| # @ChardevDBus: | |
| # Configuration info for DBus chardevs. | |
| # | |
| # @name: name of the channel (following docs/spice-port-fqdn.txt) | |
| # | |
| # @encoding: character encoding the guest is expected to use | |
| # (since 11.1) | |
| # | |
| # Since: 7.0 | |
| ## | |
| { 'struct': 'ChardevDBus', | |
| 'data': { 'name': 'str', | |
| '*encoding': 'ChardevVCEncoding' }, | |
| '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 | |
| # | |
| # @encoding: character encoding the guest is expected to use | |
| # (since 11.1) | |
| # | |
| # .. 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', | |
| '*encoding': 'ChardevVCEncoding' }, | |
| '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 | |
| # | |
| # @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 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 | |
| # | |
| # Since: 2.10 | |
| # | |
| # .. qmp-example:: | |
| # | |
| # -> { "execute": "chardev-send-break", "arguments": { "id" : "foo" } } | |
| # <- { "return": {} } | |
| ## | |
| { 'command': 'chardev-send-break', | |
| 'data': { 'id': 'str' } } | |
| ## | |
| # @chardev-window-size-changed: | |
| # | |
| # Notifies a chardev about the current size of the terminal connected | |
| # to this chardev. The information will be forwarded to the guest if | |
| # the chardev is connected to a virtio console device. | |
| # | |
| # The initial size is 0x0, which should be interpreted as an unknown | |
| # size. | |
| # | |
| # Some backends detect the terminal size automatically, in which case | |
| # the size may unpredictably revert to the detected one at any time. | |
| # | |
| # @id: the chardev's ID | |
| # | |
| # @cols: the number of columns | |
| # | |
| # @rows: the number of rows | |
| # | |
| # Since: 11.2 | |
| # | |
| # .. qmp-example:: | |
| # | |
| # -> { "execute": "chardev-window-size-changed", "arguments": { "id": "foo", "cols": 80, "rows": 24 } } | |
| # <- { "return": {} } | |
| ## | |
| { 'command': 'chardev-window-size-changed', | |
| 'data': { 'id': 'str', | |
| 'cols': 'uint16', | |
| 'rows': 'uint16' } } | |
| ## | |
| # @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' } } |