Anthony Liguori | e319360 | 2011-09-02 12:34:47 -0500 | [diff] [blame] | 1 | # -*- Mode: Python -*- |
Andrea Bolognani | f7160f3 | 2020-07-29 20:50:24 +0200 | [diff] [blame] | 2 | # vim: filetype=python |
Marc-André Lureau | 4d8bb95 | 2015-07-06 22:13:50 +0200 | [diff] [blame] | 3 | ## |
| 4 | # = Introduction |
Anthony Liguori | e319360 | 2011-09-02 12:34:47 -0500 | [diff] [blame] | 5 | # |
Marc-André Lureau | 4d8bb95 | 2015-07-06 22:13:50 +0200 | [diff] [blame] | 6 | # This document describes all commands currently supported by QMP. |
| 7 | # |
| 8 | # Most of the time their usage is exactly the same as in the user Monitor, this |
| 9 | # means that any other document which also describe commands (the manpage, |
| 10 | # QEMU's manual, etc) can and should be consulted. |
| 11 | # |
| 12 | # QMP has two types of commands: regular and query commands. Regular commands |
| 13 | # usually change the Virtual Machine's state someway, while query commands just |
| 14 | # return information. The sections below are divided accordingly. |
| 15 | # |
| 16 | # It's important to observe that all communication examples are formatted in |
| 17 | # a reader-friendly way, so that they're easier to understand. However, in real |
| 18 | # protocol usage, they're emitted as a single line. |
| 19 | # |
| 20 | # Also, the following notation is used to denote data flow: |
| 21 | # |
| 22 | # Example: |
| 23 | # |
Peter Maydell | a0fcff3 | 2020-09-25 17:23:05 +0100 | [diff] [blame] | 24 | # :: |
| 25 | # |
| 26 | # -> data issued by the Client |
| 27 | # <- Server data response |
Marc-André Lureau | 4d8bb95 | 2015-07-06 22:13:50 +0200 | [diff] [blame] | 28 | # |
Cleber Rosa | cfb41b8 | 2017-07-28 19:46:01 -0300 | [diff] [blame] | 29 | # Please, refer to the QMP specification (docs/interop/qmp-spec.txt) for |
Marc-André Lureau | 4d8bb95 | 2015-07-06 22:13:50 +0200 | [diff] [blame] | 30 | # detailed information on the Server command and response formats. |
| 31 | # |
| 32 | # = Stability Considerations |
| 33 | # |
| 34 | # The current QMP command set (described in this file) may be useful for a |
| 35 | # number of use cases, however it's limited and several commands have bad |
| 36 | # defined semantics, specially with regard to command completion. |
| 37 | # |
| 38 | # These problems are going to be solved incrementally in the next QEMU releases |
| 39 | # and we're going to establish a deprecation policy for badly defined commands. |
| 40 | # |
| 41 | # If you're planning to adopt QMP, please observe the following: |
| 42 | # |
| 43 | # 1. The deprecation policy will take effect and be documented soon, please |
| 44 | # check the documentation of each used command as soon as a new release of |
| 45 | # QEMU is available |
| 46 | # |
| 47 | # 2. DO NOT rely on anything which is not explicit documented |
| 48 | # |
| 49 | # 3. Errors, in special, are not documented. Applications should NOT check |
| 50 | # for specific errors classes or data (it's strongly recommended to only |
| 51 | # check for the "error" key) |
| 52 | # |
| 53 | ## |
Anthony Liguori | 48a32be | 2011-09-02 12:34:48 -0500 | [diff] [blame] | 54 | |
Kevin Wolf | 9a9f909 | 2020-02-24 15:30:03 +0100 | [diff] [blame] | 55 | { 'include': 'pragma.json' } |
Markus Armbruster | 1554a8f | 2017-03-15 13:56:54 +0100 | [diff] [blame] | 56 | |
Markus Armbruster | fb0bc83 | 2018-02-26 13:48:58 -0600 | [diff] [blame] | 57 | # Documentation generated with qapi-gen.py is in source order, with |
Markus Armbruster | 211e506 | 2017-08-24 21:13:53 +0200 | [diff] [blame] | 58 | # included sub-schemas inserted at the first include directive |
| 59 | # (subsequent include directives have no effect). To get a sane and |
| 60 | # stable order, it's best to include each sub-schema just once, or |
Markus Armbruster | eb815e2 | 2018-02-11 10:36:05 +0100 | [diff] [blame] | 61 | # include it first right here. |
Markus Armbruster | 211e506 | 2017-08-24 21:13:53 +0200 | [diff] [blame] | 62 | |
Markus Armbruster | abb3d37 | 2019-08-12 07:23:33 +0200 | [diff] [blame] | 63 | { 'include': 'error.json' } |
Markus Armbruster | eb815e2 | 2018-02-11 10:36:05 +0100 | [diff] [blame] | 64 | { 'include': 'common.json' } |
| 65 | { 'include': 'sockets.json' } |
| 66 | { 'include': 'run-state.json' } |
| 67 | { 'include': 'crypto.json' } |
| 68 | { 'include': 'block.json' } |
Kevin Wolf | 5daa6bf | 2020-09-24 17:26:48 +0200 | [diff] [blame] | 69 | { 'include': 'block-export.json' } |
Markus Armbruster | eb815e2 | 2018-02-11 10:36:05 +0100 | [diff] [blame] | 70 | { 'include': 'char.json' } |
Markus Armbruster | d06b747 | 2019-06-19 22:10:47 +0200 | [diff] [blame] | 71 | { 'include': 'dump.json' } |
Kevin Wolf | bf42508 | 2018-05-16 16:03:10 +0200 | [diff] [blame] | 72 | { 'include': 'job.json' } |
Markus Armbruster | eb815e2 | 2018-02-11 10:36:05 +0100 | [diff] [blame] | 73 | { 'include': 'net.json' } |
Yuval Shaia | 4a5c990 | 2018-12-21 16:40:24 +0200 | [diff] [blame] | 74 | { 'include': 'rdma.json' } |
Markus Armbruster | eb815e2 | 2018-02-11 10:36:05 +0100 | [diff] [blame] | 75 | { 'include': 'rocker.json' } |
| 76 | { 'include': 'tpm.json' } |
| 77 | { 'include': 'ui.json' } |
Daniel P. Berrange | c8c9988 | 2015-10-21 14:54:59 +0100 | [diff] [blame] | 78 | { 'include': 'authz.json' } |
Markus Armbruster | eb815e2 | 2018-02-11 10:36:05 +0100 | [diff] [blame] | 79 | { 'include': 'migration.json' } |
| 80 | { 'include': 'transaction.json' } |
| 81 | { 'include': 'trace.json' } |
Markus Armbruster | 6dd7547 | 2021-03-18 16:55:10 +0100 | [diff] [blame] | 82 | { 'include': 'compat.json' } |
Kevin Wolf | fa4dcf5 | 2020-01-29 11:22:37 +0100 | [diff] [blame] | 83 | { 'include': 'control.json' } |
Markus Armbruster | eb815e2 | 2018-02-11 10:36:05 +0100 | [diff] [blame] | 84 | { 'include': 'introspect.json' } |
Markus Armbruster | c577ff6 | 2019-06-19 22:10:37 +0200 | [diff] [blame] | 85 | { 'include': 'qom.json' } |
| 86 | { 'include': 'qdev.json' } |
Markus Armbruster | 8ac25c8 | 2019-06-19 22:10:41 +0200 | [diff] [blame] | 87 | { 'include': 'machine.json' } |
Markus Armbruster | 7f7b4e7 | 2019-06-19 22:10:45 +0200 | [diff] [blame] | 88 | { 'include': 'machine-target.json' } |
Pavel Dovgalyuk | 43d7e1d | 2020-10-03 20:13:14 +0300 | [diff] [blame] | 89 | { 'include': 'replay.json' } |
Lukas Straub | 5018605 | 2020-12-28 16:08:41 +0100 | [diff] [blame] | 90 | { 'include': 'yank.json' } |
Markus Armbruster | eb815e2 | 2018-02-11 10:36:05 +0100 | [diff] [blame] | 91 | { 'include': 'misc.json' } |
Markus Armbruster | b0227cd | 2019-06-19 22:10:46 +0200 | [diff] [blame] | 92 | { 'include': 'misc-target.json' } |
Kővágó, Zoltán | 8c3a7d0 | 2019-03-08 23:34:12 +0100 | [diff] [blame] | 93 | { 'include': 'audio.json' } |
Philippe Mathieu-Daudé | 27c9188 | 2020-09-13 21:53:47 +0200 | [diff] [blame] | 94 | { 'include': 'acpi.json' } |
Philippe Mathieu-Daudé | 61c7f98 | 2020-09-13 21:53:48 +0200 | [diff] [blame] | 95 | { 'include': 'pci.json' } |