Merge remote-tracking branch 'remotes/rth/tags/pull-tcg-20210921' into staging
[qemu.git] / qapi / acpi.json
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' } }