cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

acpi_dev_interface.h (1946B)


      1#ifndef ACPI_DEV_INTERFACE_H
      2#define ACPI_DEV_INTERFACE_H
      3
      4#include "qapi/qapi-types-acpi.h"
      5#include "qom/object.h"
      6#include "hw/boards.h"
      7#include "hw/qdev-core.h"
      8
      9/* These values are part of guest ABI, and can not be changed */
     10typedef enum {
     11    ACPI_PCI_HOTPLUG_STATUS = 2,
     12    ACPI_CPU_HOTPLUG_STATUS = 4,
     13    ACPI_MEMORY_HOTPLUG_STATUS = 8,
     14    ACPI_NVDIMM_HOTPLUG_STATUS = 16,
     15    ACPI_VMGENID_CHANGE_STATUS = 32,
     16    ACPI_POWER_DOWN_STATUS = 64,
     17} AcpiEventStatusBits;
     18
     19#define TYPE_ACPI_DEVICE_IF "acpi-device-interface"
     20
     21typedef struct AcpiDeviceIfClass AcpiDeviceIfClass;
     22DECLARE_CLASS_CHECKERS(AcpiDeviceIfClass, ACPI_DEVICE_IF,
     23                       TYPE_ACPI_DEVICE_IF)
     24#define ACPI_DEVICE_IF(obj) \
     25     INTERFACE_CHECK(AcpiDeviceIf, (obj), \
     26                     TYPE_ACPI_DEVICE_IF)
     27
     28typedef struct AcpiDeviceIf AcpiDeviceIf;
     29
     30void acpi_send_event(DeviceState *dev, AcpiEventStatusBits event);
     31
     32/**
     33 * AcpiDeviceIfClass:
     34 *
     35 * ospm_status: returns status of ACPI device objects, reported
     36 *              via _OST method if device supports it.
     37 * send_event: inject a specified event into guest
     38 * madt_cpu: fills @entry with Interrupt Controller Structure
     39 *           for CPU indexed by @uid in @apic_ids array,
     40 *           returned structure types are:
     41 *           0 - Local APIC, 9 - Local x2APIC, 0xB - GICC
     42 *
     43 * Interface is designed for providing unified interface
     44 * to generic ACPI functionality that could be used without
     45 * knowledge about internals of actual device that implements
     46 * ACPI interface.
     47 */
     48struct AcpiDeviceIfClass {
     49    /* <private> */
     50    InterfaceClass parent_class;
     51
     52    /* <public> */
     53    void (*ospm_status)(AcpiDeviceIf *adev, ACPIOSTInfoList ***list);
     54    void (*send_event)(AcpiDeviceIf *adev, AcpiEventStatusBits ev);
     55    void (*madt_cpu)(AcpiDeviceIf *adev, int uid,
     56                     const CPUArchIdList *apic_ids, GArray *entry,
     57                     bool force_enabled);
     58};
     59#endif