control.json (4763B)
1 # -*- Mode: Python -*- 2 # vim: filetype=python 3 # 4 5 ## 6 # = QMP monitor control 7 ## 8 9 ## 10 # @qmp_capabilities: 11 # 12 # Enable QMP capabilities. 13 # 14 # Arguments: 15 # 16 # @enable: An optional list of QMPCapability values to enable. The 17 # client must not enable any capability that is not 18 # mentioned in the QMP greeting message. If the field is not 19 # provided, it means no QMP capabilities will be enabled. 20 # (since 2.12) 21 # 22 # Example: 23 # 24 # -> { "execute": "qmp_capabilities", 25 # "arguments": { "enable": [ "oob" ] } } 26 # <- { "return": {} } 27 # 28 # Notes: This command is valid exactly when first connecting: it must be 29 # issued before any other command will be accepted, and will fail once the 30 # monitor is accepting other commands. (see qemu docs/interop/qmp-spec.txt) 31 # 32 # The QMP client needs to explicitly enable QMP capabilities, otherwise 33 # all the QMP capabilities will be turned off by default. 34 # 35 # Since: 0.13 36 ## 37 { 'command': 'qmp_capabilities', 38 'data': { '*enable': [ 'QMPCapability' ] }, 39 'allow-preconfig': true } 40 41 ## 42 # @QMPCapability: 43 # 44 # Enumeration of capabilities to be advertised during initial client 45 # connection, used for agreeing on particular QMP extension behaviors. 46 # 47 # @oob: QMP ability to support out-of-band requests. 48 # (Please refer to qmp-spec.txt for more information on OOB) 49 # 50 # Since: 2.12 51 ## 52 { 'enum': 'QMPCapability', 53 'data': [ 'oob' ] } 54 55 ## 56 # @VersionTriple: 57 # 58 # A three-part version number. 59 # 60 # @major: The major version number. 61 # 62 # @minor: The minor version number. 63 # 64 # @micro: The micro version number. 65 # 66 # Since: 2.4 67 ## 68 { 'struct': 'VersionTriple', 69 'data': {'major': 'int', 'minor': 'int', 'micro': 'int'} } 70 71 ## 72 # @VersionInfo: 73 # 74 # A description of QEMU's version. 75 # 76 # @qemu: The version of QEMU. By current convention, a micro 77 # version of 50 signifies a development branch. A micro version 78 # greater than or equal to 90 signifies a release candidate for 79 # the next minor version. A micro version of less than 50 80 # signifies a stable release. 81 # 82 # @package: QEMU will always set this field to an empty string. Downstream 83 # versions of QEMU should set this to a non-empty string. The 84 # exact format depends on the downstream however it highly 85 # recommended that a unique name is used. 86 # 87 # Since: 0.14 88 ## 89 { 'struct': 'VersionInfo', 90 'data': {'qemu': 'VersionTriple', 'package': 'str'} } 91 92 ## 93 # @query-version: 94 # 95 # Returns the current version of QEMU. 96 # 97 # Returns: A @VersionInfo object describing the current version of QEMU. 98 # 99 # Since: 0.14 100 # 101 # Example: 102 # 103 # -> { "execute": "query-version" } 104 # <- { 105 # "return":{ 106 # "qemu":{ 107 # "major":0, 108 # "minor":11, 109 # "micro":5 110 # }, 111 # "package":"" 112 # } 113 # } 114 # 115 ## 116 { 'command': 'query-version', 'returns': 'VersionInfo', 117 'allow-preconfig': true } 118 119 ## 120 # @CommandInfo: 121 # 122 # Information about a QMP command 123 # 124 # @name: The command name 125 # 126 # Since: 0.14 127 ## 128 { 'struct': 'CommandInfo', 'data': {'name': 'str'} } 129 130 ## 131 # @query-commands: 132 # 133 # Return a list of supported QMP commands by this server 134 # 135 # Returns: A list of @CommandInfo for all supported commands 136 # 137 # Since: 0.14 138 # 139 # Example: 140 # 141 # -> { "execute": "query-commands" } 142 # <- { 143 # "return":[ 144 # { 145 # "name":"query-balloon" 146 # }, 147 # { 148 # "name":"system_powerdown" 149 # } 150 # ] 151 # } 152 # 153 # Note: This example has been shortened as the real response is too long. 154 # 155 ## 156 { 'command': 'query-commands', 'returns': ['CommandInfo'], 157 'allow-preconfig': true } 158 159 ## 160 # @quit: 161 # 162 # This command will cause the QEMU process to exit gracefully. While every 163 # attempt is made to send the QMP response before terminating, this is not 164 # guaranteed. When using this interface, a premature EOF would not be 165 # unexpected. 166 # 167 # Since: 0.14 168 # 169 # Example: 170 # 171 # -> { "execute": "quit" } 172 # <- { "return": {} } 173 ## 174 { 'command': 'quit', 175 'allow-preconfig': true } 176 177 ## 178 # @MonitorMode: 179 # 180 # An enumeration of monitor modes. 181 # 182 # @readline: HMP monitor (human-oriented command line interface) 183 # 184 # @control: QMP monitor (JSON-based machine interface) 185 # 186 # Since: 5.0 187 ## 188 { 'enum': 'MonitorMode', 'data': [ 'readline', 'control' ] } 189 190 ## 191 # @MonitorOptions: 192 # 193 # Options to be used for adding a new monitor. 194 # 195 # @id: Name of the monitor 196 # 197 # @mode: Selects the monitor mode (default: readline in the system 198 # emulator, control in qemu-storage-daemon) 199 # 200 # @pretty: Enables pretty printing (QMP only) 201 # 202 # @chardev: Name of a character device to expose the monitor on 203 # 204 # Since: 5.0 205 ## 206 { 'struct': 'MonitorOptions', 207 'data': { 208 '*id': 'str', 209 '*mode': 'MonitorMode', 210 '*pretty': 'bool', 211 'chardev': 'str' 212 } }