xref: /qemu/qapi/acpi.json (revision 138ca49a)
1# -*- Mode: Python -*-
2# vim: filetype=python
3#
4# This work is licensed under the terms of the GNU GPL, version 2 or later.
5# See the COPYING file in the top-level directory.
6# SPDX-License-Identifier: GPL-2.0-or-later
7
8##
9# = ACPI
10##
11
12##
13# @AcpiTableOptions:
14#
15# Specify an ACPI table on the command line to load.
16#
17# At most one of @file and @data can be specified. The list of files specified
18# by any one of them is loaded and concatenated in order. If both are omitted,
19# @data is implied.
20#
21# Other fields / optargs can be used to override fields of the generic ACPI
22# table header; refer to the ACPI specification 5.0, section 5.2.6 System
23# Description Table Header. If a header field is not overridden, then the
24# corresponding value from the concatenated blob is used (in case of @file), or
25# it is filled in with a hard-coded value (in case of @data).
26#
27# String fields are copied into the matching ACPI member from lowest address
28# upwards, and silently truncated / NUL-padded to length.
29#
30# @sig: table signature / identifier (4 bytes)
31#
32# @rev: table revision number (dependent on signature, 1 byte)
33#
34# @oem_id: OEM identifier (6 bytes)
35#
36# @oem_table_id: OEM table identifier (8 bytes)
37#
38# @oem_rev: OEM-supplied revision number (4 bytes)
39#
40# @asl_compiler_id: identifier of the utility that created the table
41#                   (4 bytes)
42#
43# @asl_compiler_rev: revision number of the utility that created the
44#                    table (4 bytes)
45#
46# @file: colon (:) separated list of pathnames to load and
47#        concatenate as table data. The resultant binary blob is expected to
48#        have an ACPI table header. At least one file is required. This field
49#        excludes @data.
50#
51# @data: colon (:) separated list of pathnames to load and
52#        concatenate as table data. The resultant binary blob must not have an
53#        ACPI table header. At least one file is required. This field excludes
54#        @file.
55#
56# Since: 1.5
57##
58{ 'struct': 'AcpiTableOptions',
59  'data': {
60    '*sig':               'str',
61    '*rev':               'uint8',
62    '*oem_id':            'str',
63    '*oem_table_id':      'str',
64    '*oem_rev':           'uint32',
65    '*asl_compiler_id':   'str',
66    '*asl_compiler_rev':  'uint32',
67    '*file':              'str',
68    '*data':              'str' }}
69
70##
71# @ACPISlotType:
72#
73# @DIMM: memory slot
74# @CPU: logical CPU slot (since 2.7)
75##
76{ 'enum': 'ACPISlotType', 'data': [ 'DIMM', 'CPU' ] }
77
78##
79# @ACPIOSTInfo:
80#
81# OSPM Status Indication for a device
82# For description of possible values of @source and @status fields
83# see "_OST (OSPM Status Indication)" chapter of ACPI5.0 spec.
84#
85# @device: device ID associated with slot
86#
87# @slot: slot ID, unique per slot of a given @slot-type
88#
89# @slot-type: type of the slot
90#
91# @source: an integer containing the source event
92#
93# @status: an integer containing the status code
94#
95# Since: 2.1
96##
97{ 'struct': 'ACPIOSTInfo',
98  'data'  : { '*device': 'str',
99              'slot': 'str',
100              'slot-type': 'ACPISlotType',
101              'source': 'int',
102              'status': 'int' } }
103
104##
105# @query-acpi-ospm-status:
106#
107# Return a list of ACPIOSTInfo for devices that support status
108# reporting via ACPI _OST method.
109#
110# Since: 2.1
111#
112# Example:
113#
114# -> { "execute": "query-acpi-ospm-status" }
115# <- { "return": [ { "device": "d1", "slot": "0", "slot-type": "DIMM", "source": 1, "status": 0},
116#                  { "slot": "1", "slot-type": "DIMM", "source": 0, "status": 0},
117#                  { "slot": "2", "slot-type": "DIMM", "source": 0, "status": 0},
118#                  { "slot": "3", "slot-type": "DIMM", "source": 0, "status": 0}
119#    ]}
120#
121##
122{ 'command': 'query-acpi-ospm-status', 'returns': ['ACPIOSTInfo'] }
123
124##
125# @ACPI_DEVICE_OST:
126#
127# Emitted when guest executes ACPI _OST method.
128#
129# @info: OSPM Status Indication
130#
131# Since: 2.1
132#
133# Example:
134#
135# <- { "event": "ACPI_DEVICE_OST",
136#      "data": { "device": "d1", "slot": "0",
137#                "slot-type": "DIMM", "source": 1, "status": 0 } }
138#
139##
140{ 'event': 'ACPI_DEVICE_OST',
141     'data': { 'info': 'ACPIOSTInfo' } }
142