xref: /openbmc/qemu/qapi/common.json (revision 8b0ffce4)
1d34bda71SBenoît Canet# -*- Mode: Python -*-
2d3a48372SMarc-André Lureau
3d3a48372SMarc-André Lureau##
4d3a48372SMarc-André Lureau# = QAPI common definitions
5d3a48372SMarc-André Lureau##
6d34bda71SBenoît Canet
7d34bda71SBenoît Canet##
85072f7b3SMarc-André Lureau# @QapiErrorClass:
9d34bda71SBenoît Canet#
10d34bda71SBenoît Canet# QEMU error classes
11d34bda71SBenoît Canet#
12d34bda71SBenoît Canet# @GenericError: this is used for errors that don't require a specific error
13d34bda71SBenoît Canet#                class. This should be the default case for most errors
14d34bda71SBenoît Canet#
15d34bda71SBenoît Canet# @CommandNotFound: the requested command has not been found
16d34bda71SBenoît Canet#
17d34bda71SBenoît Canet# @DeviceEncrypted: the requested operation can't be fulfilled because the
18d34bda71SBenoît Canet#                   selected device is encrypted
19d34bda71SBenoît Canet#
20d34bda71SBenoît Canet# @DeviceNotActive: a device has failed to be become active
21d34bda71SBenoît Canet#
22d34bda71SBenoît Canet# @DeviceNotFound: the requested device has not been found
23d34bda71SBenoît Canet#
24d34bda71SBenoît Canet# @KVMMissingCap: the requested operation can't be fulfilled because a
25d34bda71SBenoît Canet#                 required KVM capability is missing
26d34bda71SBenoît Canet#
27d34bda71SBenoît Canet# Since: 1.2
28d34bda71SBenoît Canet##
29f22a28b8SEric Blake{ 'enum': 'QapiErrorClass',
30f22a28b8SEric Blake  # Keep this in sync with ErrorClass in error.h
31d34bda71SBenoît Canet  'data': [ 'GenericError', 'CommandNotFound', 'DeviceEncrypted',
32d34bda71SBenoît Canet            'DeviceNotActive', 'DeviceNotFound', 'KVMMissingCap' ] }
33d34bda71SBenoît Canet
34d34bda71SBenoît Canet##
355072f7b3SMarc-André Lureau# @VersionTriple:
364752cdbbSEric Blake#
374752cdbbSEric Blake# A three-part version number.
384752cdbbSEric Blake#
394d5c8bc4SMarc-André Lureau# @major:  The major version number.
404752cdbbSEric Blake#
414d5c8bc4SMarc-André Lureau# @minor:  The minor version number.
424752cdbbSEric Blake#
434d5c8bc4SMarc-André Lureau# @micro:  The micro version number.
444752cdbbSEric Blake#
454752cdbbSEric Blake# Since: 2.4
464752cdbbSEric Blake##
474752cdbbSEric Blake{ 'struct': 'VersionTriple',
484752cdbbSEric Blake  'data': {'major': 'int', 'minor': 'int', 'micro': 'int'} }
494752cdbbSEric Blake
504752cdbbSEric Blake
514752cdbbSEric Blake##
52d34bda71SBenoît Canet# @VersionInfo:
53d34bda71SBenoît Canet#
54d34bda71SBenoît Canet# A description of QEMU's version.
55d34bda71SBenoît Canet#
564752cdbbSEric Blake# @qemu:        The version of QEMU.  By current convention, a micro
57d34bda71SBenoît Canet#               version of 50 signifies a development branch.  A micro version
58d34bda71SBenoît Canet#               greater than or equal to 90 signifies a release candidate for
59d34bda71SBenoît Canet#               the next minor version.  A micro version of less than 50
60d34bda71SBenoît Canet#               signifies a stable release.
61d34bda71SBenoît Canet#
62d34bda71SBenoît Canet# @package:     QEMU will always set this field to an empty string.  Downstream
63d34bda71SBenoît Canet#               versions of QEMU should set this to a non-empty string.  The
64d34bda71SBenoît Canet#               exact format depends on the downstream however it highly
65d34bda71SBenoît Canet#               recommended that a unique name is used.
66d34bda71SBenoît Canet#
67d34bda71SBenoît Canet# Since: 0.14.0
68d34bda71SBenoît Canet##
69895a2a80SEric Blake{ 'struct': 'VersionInfo',
704752cdbbSEric Blake  'data': {'qemu': 'VersionTriple', 'package': 'str'} }
71d34bda71SBenoît Canet
72d34bda71SBenoît Canet##
73d34bda71SBenoît Canet# @query-version:
74d34bda71SBenoît Canet#
75d34bda71SBenoît Canet# Returns the current version of QEMU.
76d34bda71SBenoît Canet#
77d34bda71SBenoît Canet# Returns:  A @VersionInfo object describing the current version of QEMU.
78d34bda71SBenoît Canet#
79d34bda71SBenoît Canet# Since: 0.14.0
80dd746afbSMarc-André Lureau#
81dd746afbSMarc-André Lureau# Example:
82dd746afbSMarc-André Lureau#
83dd746afbSMarc-André Lureau# -> { "execute": "query-version" }
84dd746afbSMarc-André Lureau# <- {
85dd746afbSMarc-André Lureau#       "return":{
86dd746afbSMarc-André Lureau#          "qemu":{
87dd746afbSMarc-André Lureau#             "major":0,
88dd746afbSMarc-André Lureau#             "minor":11,
89dd746afbSMarc-André Lureau#             "micro":5
90dd746afbSMarc-André Lureau#          },
91dd746afbSMarc-André Lureau#          "package":""
92dd746afbSMarc-André Lureau#       }
93dd746afbSMarc-André Lureau#    }
94dd746afbSMarc-André Lureau#
95d34bda71SBenoît Canet##
96d34bda71SBenoît Canet{ 'command': 'query-version', 'returns': 'VersionInfo' }
97d34bda71SBenoît Canet
98d34bda71SBenoît Canet##
99d34bda71SBenoît Canet# @CommandInfo:
100d34bda71SBenoît Canet#
101d34bda71SBenoît Canet# Information about a QMP command
102d34bda71SBenoît Canet#
103d34bda71SBenoît Canet# @name: The command name
104d34bda71SBenoît Canet#
105d34bda71SBenoît Canet# Since: 0.14.0
106d34bda71SBenoît Canet##
107895a2a80SEric Blake{ 'struct': 'CommandInfo', 'data': {'name': 'str'} }
108d34bda71SBenoît Canet
109d34bda71SBenoît Canet##
110d34bda71SBenoît Canet# @query-commands:
111d34bda71SBenoît Canet#
112d34bda71SBenoît Canet# Return a list of supported QMP commands by this server
113d34bda71SBenoît Canet#
114d34bda71SBenoît Canet# Returns: A list of @CommandInfo for all supported commands
115d34bda71SBenoît Canet#
116d34bda71SBenoît Canet# Since: 0.14.0
117*8b0ffce4SMarc-André Lureau#
118*8b0ffce4SMarc-André Lureau# Example:
119*8b0ffce4SMarc-André Lureau#
120*8b0ffce4SMarc-André Lureau# -> { "execute": "query-commands" }
121*8b0ffce4SMarc-André Lureau# <- {
122*8b0ffce4SMarc-André Lureau#      "return":[
123*8b0ffce4SMarc-André Lureau#         {
124*8b0ffce4SMarc-André Lureau#            "name":"query-balloon"
125*8b0ffce4SMarc-André Lureau#         },
126*8b0ffce4SMarc-André Lureau#         {
127*8b0ffce4SMarc-André Lureau#            "name":"system_powerdown"
128*8b0ffce4SMarc-André Lureau#         }
129*8b0ffce4SMarc-André Lureau#      ]
130*8b0ffce4SMarc-André Lureau#    }
131*8b0ffce4SMarc-André Lureau#
132*8b0ffce4SMarc-André Lureau# Note: This example has been shortened as the real response is too long.
133*8b0ffce4SMarc-André Lureau#
134d34bda71SBenoît Canet##
135d34bda71SBenoît Canet{ 'command': 'query-commands', 'returns': ['CommandInfo'] }
136d34bda71SBenoît Canet
137d1048befSDon Slutz##
1385072f7b3SMarc-André Lureau# @OnOffAuto:
139d1048befSDon Slutz#
140d1048befSDon Slutz# An enumeration of three options: on, off, and auto
141d1048befSDon Slutz#
142d1048befSDon Slutz# @auto: QEMU selects the value between on and off
143d1048befSDon Slutz#
144d1048befSDon Slutz# @on: Enabled
145d1048befSDon Slutz#
146d1048befSDon Slutz# @off: Disabled
147d1048befSDon Slutz#
148d1048befSDon Slutz# Since: 2.2
149d1048befSDon Slutz##
150d1048befSDon Slutz{ 'enum': 'OnOffAuto',
151d1048befSDon Slutz  'data': [ 'auto', 'on', 'off' ] }
15232c18a2dSMatt Gingell
15332c18a2dSMatt Gingell##
1545072f7b3SMarc-André Lureau# @OnOffSplit:
15532c18a2dSMatt Gingell#
15632c18a2dSMatt Gingell# An enumeration of three values: on, off, and split
15732c18a2dSMatt Gingell#
15832c18a2dSMatt Gingell# @on: Enabled
15932c18a2dSMatt Gingell#
16032c18a2dSMatt Gingell# @off: Disabled
16132c18a2dSMatt Gingell#
16232c18a2dSMatt Gingell# @split: Mixed
16332c18a2dSMatt Gingell#
16432c18a2dSMatt Gingell# Since: 2.6
16532c18a2dSMatt Gingell##
16632c18a2dSMatt Gingell{ 'enum': 'OnOffSplit',
16732c18a2dSMatt Gingell  'data': [ 'on', 'off', 'split' ] }
168