1 #ifndef ACPI_DEV_INTERFACE_H
2 #define ACPI_DEV_INTERFACE_H
4 #include "qom/object.h"
5 #include "qapi-types.h"
7 /* These values are part of guest ABI, and can not be changed */
9 ACPI_PCI_HOTPLUG_STATUS = 2,
10 ACPI_CPU_HOTPLUG_STATUS = 4,
11 ACPI_MEMORY_HOTPLUG_STATUS = 8,
12 } AcpiEventStatusBits;
14 #define TYPE_ACPI_DEVICE_IF "acpi-device-interface"
16 #define ACPI_DEVICE_IF_CLASS(klass) \
17 OBJECT_CLASS_CHECK(AcpiDeviceIfClass, (klass), \
19 #define ACPI_DEVICE_IF_GET_CLASS(obj) \
20 OBJECT_GET_CLASS(AcpiDeviceIfClass, (obj), \
22 #define ACPI_DEVICE_IF(obj) \
23 INTERFACE_CHECK(AcpiDeviceIf, (obj), \
27 typedef struct AcpiDeviceIf {
32 void acpi_send_event(DeviceState *dev, AcpiEventStatusBits event);
37 * ospm_status: returns status of ACPI device objects, reported
38 * via _OST method if device supports it.
39 * send_event: inject a specified event into guest
41 * Interface is designed for providing unified interface
42 * to generic ACPI functionality that could be used without
43 * knowledge about internals of actual device that implements
46 typedef struct AcpiDeviceIfClass {
48 InterfaceClass parent_class;
51 void (*ospm_status)(AcpiDeviceIf *adev, ACPIOSTInfoList ***list);
52 void (*send_event)(AcpiDeviceIf *adev, AcpiEventStatusBits ev);