blob: 4912b9744e690aec65fbc7ee06dbe5f9799172e2 [file] [log] [blame]
Anthony Liguorie3193602011-09-02 12:34:47 -05001# -*- Mode: Python -*-
Andrea Bolognanif7160f32020-07-29 20:50:24 +02002# vim: filetype=python
Marc-André Lureau4d8bb952015-07-06 22:13:50 +02003##
4# = Introduction
Anthony Liguorie3193602011-09-02 12:34:47 -05005#
Marc-André Lureau4d8bb952015-07-06 22:13:50 +02006# 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 Maydella0fcff32020-09-25 17:23:05 +010024# ::
25#
26# -> data issued by the Client
27# <- Server data response
Marc-André Lureau4d8bb952015-07-06 22:13:50 +020028#
Cleber Rosacfb41b82017-07-28 19:46:01 -030029# Please, refer to the QMP specification (docs/interop/qmp-spec.txt) for
Marc-André Lureau4d8bb952015-07-06 22:13:50 +020030# 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 Liguori48a32be2011-09-02 12:34:48 -050054
Kevin Wolf9a9f9092020-02-24 15:30:03 +010055{ 'include': 'pragma.json' }
Markus Armbruster1554a8f2017-03-15 13:56:54 +010056
Markus Armbrusterfb0bc832018-02-26 13:48:58 -060057# Documentation generated with qapi-gen.py is in source order, with
Markus Armbruster211e5062017-08-24 21:13:53 +020058# 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 Armbrustereb815e22018-02-11 10:36:05 +010061# include it first right here.
Markus Armbruster211e5062017-08-24 21:13:53 +020062
Markus Armbrusterabb3d372019-08-12 07:23:33 +020063{ 'include': 'error.json' }
Markus Armbrustereb815e22018-02-11 10:36:05 +010064{ 'include': 'common.json' }
65{ 'include': 'sockets.json' }
66{ 'include': 'run-state.json' }
67{ 'include': 'crypto.json' }
68{ 'include': 'block.json' }
Kevin Wolf5daa6bf2020-09-24 17:26:48 +020069{ 'include': 'block-export.json' }
Markus Armbrustereb815e22018-02-11 10:36:05 +010070{ 'include': 'char.json' }
Markus Armbrusterd06b7472019-06-19 22:10:47 +020071{ 'include': 'dump.json' }
Kevin Wolfbf425082018-05-16 16:03:10 +020072{ 'include': 'job.json' }
Markus Armbrustereb815e22018-02-11 10:36:05 +010073{ 'include': 'net.json' }
Yuval Shaia4a5c9902018-12-21 16:40:24 +020074{ 'include': 'rdma.json' }
Markus Armbrustereb815e22018-02-11 10:36:05 +010075{ 'include': 'rocker.json' }
76{ 'include': 'tpm.json' }
77{ 'include': 'ui.json' }
Daniel P. Berrangec8c99882015-10-21 14:54:59 +010078{ 'include': 'authz.json' }
Markus Armbrustereb815e22018-02-11 10:36:05 +010079{ 'include': 'migration.json' }
80{ 'include': 'transaction.json' }
81{ 'include': 'trace.json' }
Markus Armbruster6dd75472021-03-18 16:55:10 +010082{ 'include': 'compat.json' }
Kevin Wolffa4dcf52020-01-29 11:22:37 +010083{ 'include': 'control.json' }
Markus Armbrustereb815e22018-02-11 10:36:05 +010084{ 'include': 'introspect.json' }
Markus Armbrusterc577ff62019-06-19 22:10:37 +020085{ 'include': 'qom.json' }
86{ 'include': 'qdev.json' }
Markus Armbruster8ac25c82019-06-19 22:10:41 +020087{ 'include': 'machine.json' }
Markus Armbruster7f7b4e72019-06-19 22:10:45 +020088{ 'include': 'machine-target.json' }
Pavel Dovgalyuk43d7e1d2020-10-03 20:13:14 +030089{ 'include': 'replay.json' }
Lukas Straub50186052020-12-28 16:08:41 +010090{ 'include': 'yank.json' }
Markus Armbrustereb815e22018-02-11 10:36:05 +010091{ 'include': 'misc.json' }
Markus Armbrusterb0227cd2019-06-19 22:10:46 +020092{ 'include': 'misc-target.json' }
Kővágó, Zoltán8c3a7d02019-03-08 23:34:12 +010093{ 'include': 'audio.json' }
Philippe Mathieu-Daudé27c91882020-09-13 21:53:47 +020094{ 'include': 'acpi.json' }
Philippe Mathieu-Daudé61c7f982020-09-13 21:53:48 +020095{ 'include': 'pci.json' }