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