blob: 6594afba3129168defbc97f13d69b3b1ae9b9234 [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#
Markus Armbrustera937b6a2023-04-28 12:54:29 +02008# 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é Lureau4d8bb952015-07-06 22:13:50 +020012#
Markus Armbrustera937b6a2023-04-28 12:54:29 +020013# 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é Lureau4d8bb952015-07-06 22:13:50 +020017#
Markus Armbrustera937b6a2023-04-28 12:54:29 +020018# 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é Lureau4d8bb952015-07-06 22:13:50 +020022#
23# Also, the following notation is used to denote data flow:
24#
25# Example:
26#
Peter Maydella0fcff32020-09-25 17:23:05 +010027# ::
28#
29# -> data issued by the Client
30# <- Server data response
Marc-André Lureau4d8bb952015-07-06 22:13:50 +020031#
Peter Maydelld5657252023-05-15 17:22:43 +010032# Please refer to the
33# :doc:`QEMU Machine Protocol Specification </interop/qmp-spec>`
Markus Armbrustera937b6a2023-04-28 12:54:29 +020034# for detailed information on the Server command and response formats.
Marc-André Lureau4d8bb952015-07-06 22:13:50 +020035##
Anthony Liguori48a32be2011-09-02 12:34:48 -050036
Kevin Wolf9a9f9092020-02-24 15:30:03 +010037{ 'include': 'pragma.json' }
Markus Armbruster1554a8f2017-03-15 13:56:54 +010038
Markus Armbrusterfb0bc832018-02-26 13:48:58 -060039# Documentation generated with qapi-gen.py is in source order, with
Markus Armbruster211e5062017-08-24 21:13:53 +020040# 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 Armbrustereb815e22018-02-11 10:36:05 +010043# include it first right here.
Markus Armbruster211e5062017-08-24 21:13:53 +020044
Markus Armbrusterabb3d372019-08-12 07:23:33 +020045{ 'include': 'error.json' }
Markus Armbrustereb815e22018-02-11 10:36:05 +010046{ 'include': 'common.json' }
47{ 'include': 'sockets.json' }
48{ 'include': 'run-state.json' }
49{ 'include': 'crypto.json' }
Markus Armbruster4622c702023-04-25 08:42:23 +020050{ 'include': 'job.json' }
Markus Armbrustereb815e22018-02-11 10:36:05 +010051{ 'include': 'block.json' }
Kevin Wolf5daa6bf2020-09-24 17:26:48 +020052{ 'include': 'block-export.json' }
Markus Armbrustereb815e22018-02-11 10:36:05 +010053{ 'include': 'char.json' }
Markus Armbrusterd06b7472019-06-19 22:10:47 +020054{ 'include': 'dump.json' }
Markus Armbrustereb815e22018-02-11 10:36:05 +010055{ 'include': 'net.json' }
Yuval Shaia4a5c9902018-12-21 16:40:24 +020056{ 'include': 'rdma.json' }
Markus Armbrustereb815e22018-02-11 10:36:05 +010057{ 'include': 'rocker.json' }
58{ 'include': 'tpm.json' }
59{ 'include': 'ui.json' }
Daniel P. Berrangec8c99882015-10-21 14:54:59 +010060{ 'include': 'authz.json' }
Markus Armbrustereb815e22018-02-11 10:36:05 +010061{ 'include': 'migration.json' }
62{ 'include': 'transaction.json' }
63{ 'include': 'trace.json' }
Markus Armbruster6dd75472021-03-18 16:55:10 +010064{ 'include': 'compat.json' }
Kevin Wolffa4dcf52020-01-29 11:22:37 +010065{ 'include': 'control.json' }
Markus Armbrustereb815e22018-02-11 10:36:05 +010066{ 'include': 'introspect.json' }
Markus Armbrusterc577ff62019-06-19 22:10:37 +020067{ 'include': 'qom.json' }
68{ 'include': 'qdev.json' }
Markus Armbruster8ac25c82019-06-19 22:10:41 +020069{ 'include': 'machine.json' }
Markus Armbruster7f7b4e72019-06-19 22:10:45 +020070{ 'include': 'machine-target.json' }
Pavel Dovgalyuk43d7e1d2020-10-03 20:13:14 +030071{ 'include': 'replay.json' }
Lukas Straub50186052020-12-28 16:08:41 +010072{ 'include': 'yank.json' }
Markus Armbrustereb815e22018-02-11 10:36:05 +010073{ 'include': 'misc.json' }
Markus Armbrusterb0227cd2019-06-19 22:10:46 +020074{ 'include': 'misc-target.json' }
Kővágó, Zoltán8c3a7d02019-03-08 23:34:12 +010075{ 'include': 'audio.json' }
Philippe Mathieu-Daudé27c91882020-09-13 21:53:47 +020076{ 'include': 'acpi.json' }
Philippe Mathieu-Daudé61c7f982020-09-13 21:53:48 +020077{ 'include': 'pci.json' }
Mark Kandab9f88dc2022-02-15 09:04:31 -060078{ 'include': 'stats.json' }
Laurent Viviera5ebce32022-08-11 08:24:39 -040079{ 'include': 'virtio.json' }
zhenwei pi14c9fd12023-03-01 18:58:36 +080080{ 'include': 'cryptodev.json' }
Jonathan Cameron415442a2023-03-02 13:37:09 +000081{ 'include': 'cxl.json' }