Merge tag 'v9.0.0-rc3'
[qemu/ar7.git] / qapi / acpi.json
blobaa4dbe579430408e7ef791a0d1555c4ba52599ad
1 # -*- Mode: Python -*-
2 # vim: filetype=python
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
8 ##
9 # = ACPI
13 # @AcpiTableOptions:
15 # Specify an ACPI table on the command line to load.
17 # At most one of @file and @data can be specified.  The list of files
18 # specified by any one of them is loaded and concatenated in order.
19 # If both are omitted, @data is implied.
21 # Other fields / optargs can be used to override fields of the generic
22 # ACPI table header; refer to the ACPI specification 5.0, section
23 # 5.2.6 System Description Table Header.  If a header field is not
24 # overridden, then the corresponding value from the concatenated blob
25 # is used (in case of @file), or it is filled in with a hard-coded
26 # value (in case of @data).
28 # String fields are copied into the matching ACPI member from lowest
29 # address upwards, and silently truncated / NUL-padded to length.
31 # @sig: table signature / identifier (4 bytes)
33 # @rev: table revision number (dependent on signature, 1 byte)
35 # @oem_id: OEM identifier (6 bytes)
37 # @oem_table_id: OEM table identifier (8 bytes)
39 # @oem_rev: OEM-supplied revision number (4 bytes)
41 # @asl_compiler_id: identifier of the utility that created the table
42 #     (4 bytes)
44 # @asl_compiler_rev: revision number of the utility that created the
45 #     table (4 bytes)
47 # @file: colon (:) separated list of pathnames to load and concatenate
48 #     as table data.  The resultant binary blob is expected to have an
49 #     ACPI table header.  At least one file is required.  This field
50 #     excludes @data.
52 # @data: colon (:) separated list of pathnames to load and concatenate
53 #     as table data.  The resultant binary blob must not have an ACPI
54 #     table header.  At least one file is required.  This field
55 #     excludes @file.
57 # Since: 1.5
59 { 'struct': 'AcpiTableOptions',
60   'data': {
61     '*sig':               'str',
62     '*rev':               'uint8',
63     '*oem_id':            'str',
64     '*oem_table_id':      'str',
65     '*oem_rev':           'uint32',
66     '*asl_compiler_id':   'str',
67     '*asl_compiler_rev':  'uint32',
68     '*file':              'str',
69     '*data':              'str' }}
72 # @ACPISlotType:
74 # @DIMM: memory slot
76 # @CPU: logical CPU slot (since 2.7)
78 { 'enum': 'ACPISlotType', 'data': [ 'DIMM', 'CPU' ] }
81 # @ACPIOSTInfo:
83 # OSPM Status Indication for a device For description of possible
84 # values of @source and @status fields see "_OST (OSPM Status
85 # Indication)" chapter of ACPI5.0 spec.
87 # @device: device ID associated with slot
89 # @slot: slot ID, unique per slot of a given @slot-type
91 # @slot-type: type of the slot
93 # @source: an integer containing the source event
95 # @status: an integer containing the status code
97 # Since: 2.1
99 { 'struct': 'ACPIOSTInfo',
100   'data'  : { '*device': 'str',
101               'slot': 'str',
102               'slot-type': 'ACPISlotType',
103               'source': 'int',
104               'status': 'int' } }
107 # @query-acpi-ospm-status:
109 # Return a list of ACPIOSTInfo for devices that support status
110 # reporting via ACPI _OST method.
112 # Since: 2.1
114 # Example:
116 #     -> { "execute": "query-acpi-ospm-status" }
117 #     <- { "return": [ { "device": "d1", "slot": "0", "slot-type": "DIMM", "source": 1, "status": 0},
118 #                      { "slot": "1", "slot-type": "DIMM", "source": 0, "status": 0},
119 #                      { "slot": "2", "slot-type": "DIMM", "source": 0, "status": 0},
120 #                      { "slot": "3", "slot-type": "DIMM", "source": 0, "status": 0}
121 #        ]}
123 { 'command': 'query-acpi-ospm-status', 'returns': ['ACPIOSTInfo'] }
126 # @ACPI_DEVICE_OST:
128 # Emitted when guest executes ACPI _OST method.
130 # @info: OSPM Status Indication
132 # Since: 2.1
134 # Example:
136 #     <- { "event": "ACPI_DEVICE_OST",
137 #          "data": { "info": { "device": "d1", "slot": "0",
138 #                              "slot-type": "DIMM", "source": 1, "status": 0 } },
139 #          "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
141 { 'event': 'ACPI_DEVICE_OST',
142      'data': { 'info': 'ACPIOSTInfo' } }