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 | # |
Markus Armbruster | a937b6a | 2023-04-28 12:54:29 +0200 | [diff] [blame] | 8 | # Most of the time their usage is exactly the same as in the user |
| 9 | # Monitor, this means that any other document which also describe |
| 10 | # commands (the manpage, QEMU's manual, etc) can and should be |
| 11 | # consulted. |
Marc-André Lureau | 4d8bb95 | 2015-07-06 22:13:50 +0200 | [diff] [blame] | 12 | # |
Markus Armbruster | a937b6a | 2023-04-28 12:54:29 +0200 | [diff] [blame] | 13 | # QMP has two types of commands: regular and query commands. Regular |
| 14 | # commands usually change the Virtual Machine's state someway, while |
| 15 | # query commands just return information. The sections below are |
| 16 | # divided accordingly. |
Marc-André Lureau | 4d8bb95 | 2015-07-06 22:13:50 +0200 | [diff] [blame] | 17 | # |
Markus Armbruster | a937b6a | 2023-04-28 12:54:29 +0200 | [diff] [blame] | 18 | # It's important to observe that all communication examples are |
| 19 | # formatted in a reader-friendly way, so that they're easier to |
| 20 | # understand. However, in real protocol usage, they're emitted as a |
| 21 | # single line. |
Marc-André Lureau | 4d8bb95 | 2015-07-06 22:13:50 +0200 | [diff] [blame] | 22 | # |
| 23 | # Also, the following notation is used to denote data flow: |
| 24 | # |
| 25 | # Example: |
| 26 | # |
Peter Maydell | a0fcff3 | 2020-09-25 17:23:05 +0100 | [diff] [blame] | 27 | # :: |
| 28 | # |
| 29 | # -> data issued by the Client |
| 30 | # <- Server data response |
Marc-André Lureau | 4d8bb95 | 2015-07-06 22:13:50 +0200 | [diff] [blame] | 31 | # |
Peter Maydell | d565725 | 2023-05-15 17:22:43 +0100 | [diff] [blame] | 32 | # Please refer to the |
| 33 | # :doc:`QEMU Machine Protocol Specification </interop/qmp-spec>` |
Markus Armbruster | a937b6a | 2023-04-28 12:54:29 +0200 | [diff] [blame] | 34 | # for detailed information on the Server command and response formats. |
Marc-André Lureau | 4d8bb95 | 2015-07-06 22:13:50 +0200 | [diff] [blame] | 35 | ## |
Anthony Liguori | 48a32be | 2011-09-02 12:34:48 -0500 | [diff] [blame] | 36 | |
Kevin Wolf | 9a9f909 | 2020-02-24 15:30:03 +0100 | [diff] [blame] | 37 | { 'include': 'pragma.json' } |
Markus Armbruster | 1554a8f | 2017-03-15 13:56:54 +0100 | [diff] [blame] | 38 | |
Markus Armbruster | fb0bc83 | 2018-02-26 13:48:58 -0600 | [diff] [blame] | 39 | # Documentation generated with qapi-gen.py is in source order, with |
Markus Armbruster | 211e506 | 2017-08-24 21:13:53 +0200 | [diff] [blame] | 40 | # included sub-schemas inserted at the first include directive |
| 41 | # (subsequent include directives have no effect). To get a sane and |
| 42 | # 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] | 43 | # include it first right here. |
Markus Armbruster | 211e506 | 2017-08-24 21:13:53 +0200 | [diff] [blame] | 44 | |
Markus Armbruster | abb3d37 | 2019-08-12 07:23:33 +0200 | [diff] [blame] | 45 | { 'include': 'error.json' } |
Markus Armbruster | eb815e2 | 2018-02-11 10:36:05 +0100 | [diff] [blame] | 46 | { 'include': 'common.json' } |
| 47 | { 'include': 'sockets.json' } |
| 48 | { 'include': 'run-state.json' } |
| 49 | { 'include': 'crypto.json' } |
Markus Armbruster | 4622c70 | 2023-04-25 08:42:23 +0200 | [diff] [blame] | 50 | { 'include': 'job.json' } |
Markus Armbruster | eb815e2 | 2018-02-11 10:36:05 +0100 | [diff] [blame] | 51 | { 'include': 'block.json' } |
Kevin Wolf | 5daa6bf | 2020-09-24 17:26:48 +0200 | [diff] [blame] | 52 | { 'include': 'block-export.json' } |
Markus Armbruster | eb815e2 | 2018-02-11 10:36:05 +0100 | [diff] [blame] | 53 | { 'include': 'char.json' } |
Markus Armbruster | d06b747 | 2019-06-19 22:10:47 +0200 | [diff] [blame] | 54 | { 'include': 'dump.json' } |
Markus Armbruster | eb815e2 | 2018-02-11 10:36:05 +0100 | [diff] [blame] | 55 | { 'include': 'net.json' } |
Yuval Shaia | 4a5c990 | 2018-12-21 16:40:24 +0200 | [diff] [blame] | 56 | { 'include': 'rdma.json' } |
Markus Armbruster | eb815e2 | 2018-02-11 10:36:05 +0100 | [diff] [blame] | 57 | { 'include': 'rocker.json' } |
| 58 | { 'include': 'tpm.json' } |
| 59 | { 'include': 'ui.json' } |
Daniel P. Berrange | c8c9988 | 2015-10-21 14:54:59 +0100 | [diff] [blame] | 60 | { 'include': 'authz.json' } |
Markus Armbruster | eb815e2 | 2018-02-11 10:36:05 +0100 | [diff] [blame] | 61 | { 'include': 'migration.json' } |
| 62 | { 'include': 'transaction.json' } |
| 63 | { 'include': 'trace.json' } |
Markus Armbruster | 6dd7547 | 2021-03-18 16:55:10 +0100 | [diff] [blame] | 64 | { 'include': 'compat.json' } |
Kevin Wolf | fa4dcf5 | 2020-01-29 11:22:37 +0100 | [diff] [blame] | 65 | { 'include': 'control.json' } |
Markus Armbruster | eb815e2 | 2018-02-11 10:36:05 +0100 | [diff] [blame] | 66 | { 'include': 'introspect.json' } |
Markus Armbruster | c577ff6 | 2019-06-19 22:10:37 +0200 | [diff] [blame] | 67 | { 'include': 'qom.json' } |
| 68 | { 'include': 'qdev.json' } |
Markus Armbruster | 8ac25c8 | 2019-06-19 22:10:41 +0200 | [diff] [blame] | 69 | { 'include': 'machine.json' } |
Markus Armbruster | 7f7b4e7 | 2019-06-19 22:10:45 +0200 | [diff] [blame] | 70 | { 'include': 'machine-target.json' } |
Pavel Dovgalyuk | 43d7e1d | 2020-10-03 20:13:14 +0300 | [diff] [blame] | 71 | { 'include': 'replay.json' } |
Lukas Straub | 5018605 | 2020-12-28 16:08:41 +0100 | [diff] [blame] | 72 | { 'include': 'yank.json' } |
Markus Armbruster | eb815e2 | 2018-02-11 10:36:05 +0100 | [diff] [blame] | 73 | { 'include': 'misc.json' } |
Markus Armbruster | b0227cd | 2019-06-19 22:10:46 +0200 | [diff] [blame] | 74 | { 'include': 'misc-target.json' } |
Kővágó, Zoltán | 8c3a7d0 | 2019-03-08 23:34:12 +0100 | [diff] [blame] | 75 | { 'include': 'audio.json' } |
Philippe Mathieu-Daudé | 27c9188 | 2020-09-13 21:53:47 +0200 | [diff] [blame] | 76 | { 'include': 'acpi.json' } |
Philippe Mathieu-Daudé | 61c7f98 | 2020-09-13 21:53:48 +0200 | [diff] [blame] | 77 | { 'include': 'pci.json' } |
Mark Kanda | b9f88dc | 2022-02-15 09:04:31 -0600 | [diff] [blame] | 78 | { 'include': 'stats.json' } |
Laurent Vivier | a5ebce3 | 2022-08-11 08:24:39 -0400 | [diff] [blame] | 79 | { 'include': 'virtio.json' } |
zhenwei pi | 14c9fd1 | 2023-03-01 18:58:36 +0800 | [diff] [blame] | 80 | { 'include': 'cryptodev.json' } |
Jonathan Cameron | 415442a | 2023-03-02 13:37:09 +0000 | [diff] [blame] | 81 | { 'include': 'cxl.json' } |