xref: /openbmc/qemu/qapi/common.json (revision a2ff5a48)
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# @DeviceNotActive: a device has failed to be become active
18d34bda71SBenoît Canet#
19d34bda71SBenoît Canet# @DeviceNotFound: the requested device has not been found
20d34bda71SBenoît Canet#
21d34bda71SBenoît Canet# @KVMMissingCap: the requested operation can't be fulfilled because a
22d34bda71SBenoît Canet#                 required KVM capability is missing
23d34bda71SBenoît Canet#
24d34bda71SBenoît Canet# Since: 1.2
25d34bda71SBenoît Canet##
26f22a28b8SEric Blake{ 'enum': 'QapiErrorClass',
27f22a28b8SEric Blake  # Keep this in sync with ErrorClass in error.h
28c01c214bSDaniel P. Berrange  'data': [ 'GenericError', 'CommandNotFound',
29d34bda71SBenoît Canet            'DeviceNotActive', 'DeviceNotFound', 'KVMMissingCap' ] }
30d34bda71SBenoît Canet
31d34bda71SBenoît Canet##
325072f7b3SMarc-André Lureau# @VersionTriple:
334752cdbbSEric Blake#
344752cdbbSEric Blake# A three-part version number.
354752cdbbSEric Blake#
364d5c8bc4SMarc-André Lureau# @major:  The major version number.
374752cdbbSEric Blake#
384d5c8bc4SMarc-André Lureau# @minor:  The minor version number.
394752cdbbSEric Blake#
404d5c8bc4SMarc-André Lureau# @micro:  The micro version number.
414752cdbbSEric Blake#
424752cdbbSEric Blake# Since: 2.4
434752cdbbSEric Blake##
444752cdbbSEric Blake{ 'struct': 'VersionTriple',
454752cdbbSEric Blake  'data': {'major': 'int', 'minor': 'int', 'micro': 'int'} }
464752cdbbSEric Blake
474752cdbbSEric Blake
484752cdbbSEric Blake##
49d34bda71SBenoît Canet# @VersionInfo:
50d34bda71SBenoît Canet#
51d34bda71SBenoît Canet# A description of QEMU's version.
52d34bda71SBenoît Canet#
534752cdbbSEric Blake# @qemu:        The version of QEMU.  By current convention, a micro
54d34bda71SBenoît Canet#               version of 50 signifies a development branch.  A micro version
55d34bda71SBenoît Canet#               greater than or equal to 90 signifies a release candidate for
56d34bda71SBenoît Canet#               the next minor version.  A micro version of less than 50
57d34bda71SBenoît Canet#               signifies a stable release.
58d34bda71SBenoît Canet#
59d34bda71SBenoît Canet# @package:     QEMU will always set this field to an empty string.  Downstream
60d34bda71SBenoît Canet#               versions of QEMU should set this to a non-empty string.  The
61d34bda71SBenoît Canet#               exact format depends on the downstream however it highly
62d34bda71SBenoît Canet#               recommended that a unique name is used.
63d34bda71SBenoît Canet#
64d34bda71SBenoît Canet# Since: 0.14.0
65d34bda71SBenoît Canet##
66895a2a80SEric Blake{ 'struct': 'VersionInfo',
674752cdbbSEric Blake  'data': {'qemu': 'VersionTriple', 'package': 'str'} }
68d34bda71SBenoît Canet
69d34bda71SBenoît Canet##
70d34bda71SBenoît Canet# @query-version:
71d34bda71SBenoît Canet#
72d34bda71SBenoît Canet# Returns the current version of QEMU.
73d34bda71SBenoît Canet#
74d34bda71SBenoît Canet# Returns:  A @VersionInfo object describing the current version of QEMU.
75d34bda71SBenoît Canet#
76d34bda71SBenoît Canet# Since: 0.14.0
77dd746afbSMarc-André Lureau#
78dd746afbSMarc-André Lureau# Example:
79dd746afbSMarc-André Lureau#
80dd746afbSMarc-André Lureau# -> { "execute": "query-version" }
81dd746afbSMarc-André Lureau# <- {
82dd746afbSMarc-André Lureau#       "return":{
83dd746afbSMarc-André Lureau#          "qemu":{
84dd746afbSMarc-André Lureau#             "major":0,
85dd746afbSMarc-André Lureau#             "minor":11,
86dd746afbSMarc-André Lureau#             "micro":5
87dd746afbSMarc-André Lureau#          },
88dd746afbSMarc-André Lureau#          "package":""
89dd746afbSMarc-André Lureau#       }
90dd746afbSMarc-André Lureau#    }
91dd746afbSMarc-André Lureau#
92d34bda71SBenoît Canet##
93d34bda71SBenoît Canet{ 'command': 'query-version', 'returns': 'VersionInfo' }
94d34bda71SBenoît Canet
95d34bda71SBenoît Canet##
96d34bda71SBenoît Canet# @CommandInfo:
97d34bda71SBenoît Canet#
98d34bda71SBenoît Canet# Information about a QMP command
99d34bda71SBenoît Canet#
100d34bda71SBenoît Canet# @name: The command name
101d34bda71SBenoît Canet#
102d34bda71SBenoît Canet# Since: 0.14.0
103d34bda71SBenoît Canet##
104895a2a80SEric Blake{ 'struct': 'CommandInfo', 'data': {'name': 'str'} }
105d34bda71SBenoît Canet
106d34bda71SBenoît Canet##
107d34bda71SBenoît Canet# @query-commands:
108d34bda71SBenoît Canet#
109d34bda71SBenoît Canet# Return a list of supported QMP commands by this server
110d34bda71SBenoît Canet#
111d34bda71SBenoît Canet# Returns: A list of @CommandInfo for all supported commands
112d34bda71SBenoît Canet#
113d34bda71SBenoît Canet# Since: 0.14.0
1148b0ffce4SMarc-André Lureau#
1158b0ffce4SMarc-André Lureau# Example:
1168b0ffce4SMarc-André Lureau#
1178b0ffce4SMarc-André Lureau# -> { "execute": "query-commands" }
1188b0ffce4SMarc-André Lureau# <- {
1198b0ffce4SMarc-André Lureau#      "return":[
1208b0ffce4SMarc-André Lureau#         {
1218b0ffce4SMarc-André Lureau#            "name":"query-balloon"
1228b0ffce4SMarc-André Lureau#         },
1238b0ffce4SMarc-André Lureau#         {
1248b0ffce4SMarc-André Lureau#            "name":"system_powerdown"
1258b0ffce4SMarc-André Lureau#         }
1268b0ffce4SMarc-André Lureau#      ]
1278b0ffce4SMarc-André Lureau#    }
1288b0ffce4SMarc-André Lureau#
1298b0ffce4SMarc-André Lureau# Note: This example has been shortened as the real response is too long.
1308b0ffce4SMarc-André Lureau#
131d34bda71SBenoît Canet##
132d34bda71SBenoît Canet{ 'command': 'query-commands', 'returns': ['CommandInfo'] }
133d34bda71SBenoît Canet
134d1048befSDon Slutz##
1355072f7b3SMarc-André Lureau# @OnOffAuto:
136d1048befSDon Slutz#
137d1048befSDon Slutz# An enumeration of three options: on, off, and auto
138d1048befSDon Slutz#
139d1048befSDon Slutz# @auto: QEMU selects the value between on and off
140d1048befSDon Slutz#
141d1048befSDon Slutz# @on: Enabled
142d1048befSDon Slutz#
143d1048befSDon Slutz# @off: Disabled
144d1048befSDon Slutz#
145d1048befSDon Slutz# Since: 2.2
146d1048befSDon Slutz##
147d1048befSDon Slutz{ 'enum': 'OnOffAuto',
148d1048befSDon Slutz  'data': [ 'auto', 'on', 'off' ] }
14932c18a2dSMatt Gingell
15032c18a2dSMatt Gingell##
1515072f7b3SMarc-André Lureau# @OnOffSplit:
15232c18a2dSMatt Gingell#
15332c18a2dSMatt Gingell# An enumeration of three values: on, off, and split
15432c18a2dSMatt Gingell#
15532c18a2dSMatt Gingell# @on: Enabled
15632c18a2dSMatt Gingell#
15732c18a2dSMatt Gingell# @off: Disabled
15832c18a2dSMatt Gingell#
15932c18a2dSMatt Gingell# @split: Mixed
16032c18a2dSMatt Gingell#
16132c18a2dSMatt Gingell# Since: 2.6
16232c18a2dSMatt Gingell##
16332c18a2dSMatt Gingell{ 'enum': 'OnOffSplit',
16432c18a2dSMatt Gingell  'data': [ 'on', 'off', 'split' ] }
165*a2ff5a48SMarkus Armbruster
166*a2ff5a48SMarkus Armbruster##
167*a2ff5a48SMarkus Armbruster# @String:
168*a2ff5a48SMarkus Armbruster#
169*a2ff5a48SMarkus Armbruster# A fat type wrapping 'str', to be embedded in lists.
170*a2ff5a48SMarkus Armbruster#
171*a2ff5a48SMarkus Armbruster# Since: 1.2
172*a2ff5a48SMarkus Armbruster##
173*a2ff5a48SMarkus Armbruster{ 'struct': 'String',
174*a2ff5a48SMarkus Armbruster  'data': {
175*a2ff5a48SMarkus Armbruster    'str': 'str' } }
176