# -*- Mode: Python -*- # vim: filetype=python # ## # = QMP monitor control ## ## # @qmp_capabilities: # # Enable QMP capabilities. # # Arguments: # # @enable: An optional list of QMPCapability values to enable. The # client must not enable any capability that is not mentioned in # the QMP greeting message. If the field is not provided, it # means no QMP capabilities will be enabled. (since 2.12) # # Example: # # -> { "execute": "qmp_capabilities", # "arguments": { "enable": [ "oob" ] } } # <- { "return": {} } # # Notes: This command is valid exactly when first connecting: it must # be issued before any other command will be accepted, and will # fail once the monitor is accepting other commands. (see qemu # docs/interop/qmp-spec.txt) # # The QMP client needs to explicitly enable QMP capabilities, # otherwise all the QMP capabilities will be turned off by # default. # # Since: 0.13 ## { 'command': 'qmp_capabilities', 'data': { '*enable': [ 'QMPCapability' ] }, 'allow-preconfig': true } ## # @QMPCapability: # # Enumeration of capabilities to be advertised during initial client # connection, used for agreeing on particular QMP extension behaviors. # # @oob: QMP ability to support out-of-band requests. (Please refer to # qmp-spec.txt for more information on OOB) # # Since: 2.12 ## { 'enum': 'QMPCapability', 'data': [ 'oob' ] } ## # @VersionTriple: # # A three-part version number. # # @major: The major version number. # # @minor: The minor version number. # # @micro: The micro version number. # # Since: 2.4 ## { 'struct': 'VersionTriple', 'data': {'major': 'int', 'minor': 'int', 'micro': 'int'} } ## # @VersionInfo: # # A description of QEMU's version. # # @qemu: The version of QEMU. By current convention, a micro version # of 50 signifies a development branch. A micro version greater # than or equal to 90 signifies a release candidate for the next # minor version. A micro version of less than 50 signifies a # stable release. # # @package: QEMU will always set this field to an empty string. # Downstream versions of QEMU should set this to a non-empty # string. The exact format depends on the downstream however it # highly recommended that a unique name is used. # # Since: 0.14 ## { 'struct': 'VersionInfo', 'data': {'qemu': 'VersionTriple', 'package': 'str'} } ## # @query-version: # # Returns the current version of QEMU. # # Returns: A @VersionInfo object describing the current version of # QEMU. # # Since: 0.14 # # Example: # # -> { "execute": "query-version" } # <- { # "return":{ # "qemu":{ # "major":0, # "minor":11, # "micro":5 # }, # "package":"" # } # } ## { 'command': 'query-version', 'returns': 'VersionInfo', 'allow-preconfig': true } ## # @CommandInfo: # # Information about a QMP command # # @name: The command name # # Since: 0.14 ## { 'struct': 'CommandInfo', 'data': {'name': 'str'} } ## # @query-commands: # # Return a list of supported QMP commands by this server # # Returns: A list of @CommandInfo for all supported commands # # Since: 0.14 # # Example: # # -> { "execute": "query-commands" } # <- { # "return":[ # { # "name":"query-balloon" # }, # { # "name":"system_powerdown" # } # ] # } # # Note: This example has been shortened as the real response is too # long. ## { 'command': 'query-commands', 'returns': ['CommandInfo'], 'allow-preconfig': true } ## # @quit: # # This command will cause the QEMU process to exit gracefully. While # every attempt is made to send the QMP response before terminating, # this is not guaranteed. When using this interface, a premature EOF # would not be unexpected. # # Since: 0.14 # # Example: # # -> { "execute": "quit" } # <- { "return": {} } ## { 'command': 'quit', 'allow-preconfig': true } ## # @MonitorMode: # # An enumeration of monitor modes. # # @readline: HMP monitor (human-oriented command line interface) # # @control: QMP monitor (JSON-based machine interface) # # Since: 5.0 ## { 'enum': 'MonitorMode', 'data': [ 'readline', 'control' ] } ## # @MonitorOptions: # # Options to be used for adding a new monitor. # # @id: Name of the monitor # # @mode: Selects the monitor mode (default: readline in the system # emulator, control in qemu-storage-daemon) # # @pretty: Enables pretty printing (QMP only) # # @chardev: Name of a character device to expose the monitor on # # Since: 5.0 ## { 'struct': 'MonitorOptions', 'data': { '*id': 'str', '*mode': 'MonitorMode', '*pretty': 'bool', 'chardev': 'str' } }