2010-09-13 23:26:00 +08:00
|
|
|
QMP Supported Commands
|
|
|
|
----------------------
|
|
|
|
|
|
|
|
This document describes all commands currently supported by QMP.
|
|
|
|
|
|
|
|
Most of the time their usage is exactly the same as in the user Monitor, this
|
|
|
|
means that any other document which also describe commands (the manpage,
|
|
|
|
QEMU's manual, etc) can and should be consulted.
|
|
|
|
|
|
|
|
QMP has two types of commands: regular and query commands. Regular commands
|
|
|
|
usually change the Virtual Machine's state someway, while query commands just
|
|
|
|
return information. The sections below are divided accordingly.
|
|
|
|
|
|
|
|
It's important to observe that all communication examples are formatted in
|
|
|
|
a reader-friendly way, so that they're easier to understand. However, in real
|
|
|
|
protocol usage, they're emitted as a single line.
|
|
|
|
|
|
|
|
Also, the following notation is used to denote data flow:
|
|
|
|
|
|
|
|
-> data issued by the Client
|
|
|
|
<- Server data response
|
|
|
|
|
2016-10-06 23:10:00 +08:00
|
|
|
Please, refer to the QMP specification (docs/qmp-spec.txt) for detailed
|
2010-09-13 23:26:00 +08:00
|
|
|
information on the Server command and response formats.
|
|
|
|
|
|
|
|
NOTE: This document is temporary and will be replaced soon.
|
|
|
|
|
|
|
|
1. Stability Considerations
|
|
|
|
===========================
|
|
|
|
|
|
|
|
The current QMP command set (described in this file) may be useful for a
|
|
|
|
number of use cases, however it's limited and several commands have bad
|
|
|
|
defined semantics, specially with regard to command completion.
|
|
|
|
|
|
|
|
These problems are going to be solved incrementally in the next QEMU releases
|
|
|
|
and we're going to establish a deprecation policy for badly defined commands.
|
|
|
|
|
|
|
|
If you're planning to adopt QMP, please observe the following:
|
|
|
|
|
2011-07-27 14:32:56 +08:00
|
|
|
1. The deprecation policy will take effect and be documented soon, please
|
2010-09-13 23:26:00 +08:00
|
|
|
check the documentation of each used command as soon as a new release of
|
|
|
|
QEMU is available
|
|
|
|
|
|
|
|
2. DO NOT rely on anything which is not explicit documented
|
|
|
|
|
|
|
|
3. Errors, in special, are not documented. Applications should NOT check
|
|
|
|
for specific errors classes or data (it's strongly recommended to only
|
|
|
|
check for the "error" key)
|
|
|
|
|
|
|
|
2. Regular Commands
|
|
|
|
===================
|
|
|
|
|
|
|
|
Server's responses in the examples below are always a success response, please
|
|
|
|
refer to the QMP specification for more details on error responses.
|
|
|
|
|
|
|
|
device_add
|
|
|
|
----------
|
|
|
|
|
|
|
|
Add a device.
|
|
|
|
|
|
|
|
Arguments:
|
|
|
|
|
|
|
|
- "driver": the name of the new device's driver (json-string)
|
|
|
|
- "bus": the device's parent bus (device tree path, json-string, optional)
|
|
|
|
- "id": the device's ID, must be unique (json-string)
|
|
|
|
- device properties
|
|
|
|
|
|
|
|
Example:
|
|
|
|
|
|
|
|
-> { "execute": "device_add", "arguments": { "driver": "e1000", "id": "net1" } }
|
|
|
|
<- { "return": {} }
|
|
|
|
|
|
|
|
Notes:
|
|
|
|
|
|
|
|
(1) For detailed information about this command, please refer to the
|
|
|
|
'docs/qdev-device-use.txt' file.
|
|
|
|
|
|
|
|
(2) It's possible to list device properties by running QEMU with the
|
|
|
|
"-device DEVICE,\?" command-line argument, where DEVICE is the device's name
|