提交 52bbff77 编写于 作者: L Luiz Capitulino

QMP: Update README file

Drop unneeded info, fix some of the examples and rename QEMU Monitor
Protocol to QEMU Machine Protocol.
Signed-off-by: NLuiz Capitulino <lcapitulino@redhat.com>
Reviewed-by: NEric Blake <eblake@redhat.com>
上级 7537fe04
QEMU Monitor Protocol QEMU Machine Protocol
===================== =====================
Introduction Introduction
------------- ------------
The QEMU Monitor Protocol (QMP) allows applications to communicate with The QEMU Machine Protocol (QMP) allows applications to operate a
QEMU's Monitor. QEMU instance.
QMP is JSON[1] based and currently has the following features: QMP is JSON[1] based and features the following:
- Lightweight, text-based, easy to parse data format - Lightweight, text-based, easy to parse data format
- Asynchronous messages support (ie. events) - Asynchronous messages support (ie. events)
...@@ -15,37 +15,28 @@ QMP is JSON[1] based and currently has the following features: ...@@ -15,37 +15,28 @@ QMP is JSON[1] based and currently has the following features:
For detailed information on QMP's usage, please, refer to the following files: For detailed information on QMP's usage, please, refer to the following files:
o qmp-spec.txt QEMU Monitor Protocol current specification o qmp-spec.txt QEMU Machine Protocol current specification
o qmp-commands.txt QMP supported commands (auto-generated at build-time) o qmp-commands.txt QMP supported commands (auto-generated at build-time)
o qmp-events.txt List of available asynchronous events o qmp-events.txt List of available asynchronous events
There is also a simple Python script called 'qmp-shell' available.
IMPORTANT: It's strongly recommended to read the 'Stability Considerations'
section in the qmp-commands.txt file before making any serious use of QMP.
[1] http://www.json.org [1] http://www.json.org
Usage Usage
----- -----
To enable QMP, you need a QEMU monitor instance in "control mode". There are You can use the -qmp option to enable QMP. For example, the following
two ways of doing this. makes QMP available on localhost port 4444:
The simplest one is using the '-qmp' command-line option. The following $ qemu [...] -qmp tcp:localhost:4444,server,nowait
example makes QMP available on localhost port 4444:
$ qemu [...] -qmp tcp:localhost:4444,server However, for more flexibility and to make use of more options, the -mon
command-line option should be used. For instance, the following example
creates one HMP instance (human monitor) on stdio and one QMP instance
on localhost port 4444:
However, in order to have more complex combinations, like multiple monitors, $ qemu [...] -chardev stdio,id=mon0 -mon chardev=mon0,mode=readline \
the '-mon' command-line option should be used along with the '-chardev' one. -chardev socket,id=mon1,host=localhost,port=4444,server,nowait \
For instance, the following example creates one user monitor on stdio and one -mon chardev=mon1,mode=control,pretty=on
QMP monitor on localhost port 4444.
$ qemu [...] -chardev stdio,id=mon0 -mon chardev=mon0,mode=readline \
-chardev socket,id=mon1,host=localhost,port=4444,server \
-mon chardev=mon1,mode=control
Please, refer to QEMU's manpage for more information. Please, refer to QEMU's manpage for more information.
...@@ -58,31 +49,39 @@ $ telnet localhost 4444 ...@@ -58,31 +49,39 @@ $ telnet localhost 4444
Trying 127.0.0.1... Trying 127.0.0.1...
Connected to localhost. Connected to localhost.
Escape character is '^]'. Escape character is '^]'.
{"QMP": {"version": {"qemu": {"micro": 50, "minor": 13, "major": 0}, "package": ""}, "capabilities": []}} {
{ "execute": "qmp_capabilities" } "QMP": {
{"return": {}} "version": {
{ "execute": "query-version" } "qemu": {
{"return": {"qemu": {"micro": 50, "minor": 13, "major": 0}, "package": ""}} "micro": 50,
"minor": 6,
Development Process "major": 1
------------------- },
"package": ""
},
"capabilities": [
]
}
}
When changing QMP's interface (by adding new commands, events or modifying { "execute": "qmp_capabilities" }
existing ones) it's mandatory to update the relevant documentation, which is {
one (or more) of the files listed in the 'Introduction' section*. "return": {
}
Also, it's strongly recommended to send the documentation patch first, before }
doing any code change. This is so because:
{ "execute": "query-status" }
1. Avoids the code dictating the interface {
"return": {
2. Review can improve your interface. Letting that happen before "status": "prelaunch",
you implement it can save you work. "singlestep": false,
"running": false
* The qmp-commands.txt file is generated from the qmp-commands.hx one, which }
is the file that should be edited. }
Homepage Please, refer to the qapi-schema.json file for a complete command reference.
--------
QMP wiki page
-------------
http://wiki.qemu.org/QMP http://wiki.qemu.org/QMP
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册