xref: /openbmc/qemu/qapi/qapi-schema.json (revision 5e437d3c)
1# -*- Mode: Python -*-
2# vim: filetype=python
3##
4# = Introduction
5#
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#
24# ::
25#
26#   -> data issued by the Client
27#   <- Server data response
28#
29# Please, refer to the QMP specification (docs/interop/qmp-spec.txt) for
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##
54
55{ 'include': 'pragma.json' }
56
57# Documentation generated with qapi-gen.py is in source order, with
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
61# include it first right here.
62
63{ 'include': 'error.json' }
64{ 'include': 'common.json' }
65{ 'include': 'sockets.json' }
66{ 'include': 'run-state.json' }
67{ 'include': 'crypto.json' }
68{ 'include': 'block.json' }
69{ 'include': 'block-export.json' }
70{ 'include': 'char.json' }
71{ 'include': 'dump.json' }
72{ 'include': 'job.json' }
73{ 'include': 'net.json' }
74{ 'include': 'rdma.json' }
75{ 'include': 'rocker.json' }
76{ 'include': 'tpm.json' }
77{ 'include': 'ui.json' }
78{ 'include': 'authz.json' }
79{ 'include': 'migration.json' }
80{ 'include': 'transaction.json' }
81{ 'include': 'trace.json' }
82{ 'include': 'compat.json' }
83{ 'include': 'control.json' }
84{ 'include': 'introspect.json' }
85{ 'include': 'qom.json' }
86{ 'include': 'qdev.json' }
87{ 'include': 'machine.json' }
88{ 'include': 'machine-target.json' }
89{ 'include': 'replay.json' }
90{ 'include': 'yank.json' }
91{ 'include': 'misc.json' }
92{ 'include': 'misc-target.json' }
93{ 'include': 'audio.json' }
94{ 'include': 'acpi.json' }
95{ 'include': 'pci.json' }
96