qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

cpu.h (2000B)


      1 /*
      2  * QEMU ACPI hotplug utilities
      3  *
      4  * Copyright (C) 2016 Red Hat Inc
      5  *
      6  * Authors:
      7  *   Igor Mammedov <imammedo@redhat.com>
      8  *
      9  * This work is licensed under the terms of the GNU GPL, version 2 or later.
     10  * See the COPYING file in the top-level directory.
     11  */
     12 #ifndef ACPI_CPU_H
     13 #define ACPI_CPU_H
     14 
     15 #include "hw/qdev-core.h"
     16 #include "hw/acpi/acpi.h"
     17 #include "hw/acpi/aml-build.h"
     18 #include "hw/hotplug.h"
     19 
     20 typedef struct AcpiCpuStatus {
     21     struct CPUState *cpu;
     22     uint64_t arch_id;
     23     bool is_inserting;
     24     bool is_removing;
     25     bool fw_remove;
     26     uint32_t ost_event;
     27     uint32_t ost_status;
     28 } AcpiCpuStatus;
     29 
     30 typedef struct CPUHotplugState {
     31     MemoryRegion ctrl_reg;
     32     uint32_t selector;
     33     uint8_t command;
     34     uint32_t dev_count;
     35     AcpiCpuStatus *devs;
     36 } CPUHotplugState;
     37 
     38 void acpi_cpu_plug_cb(HotplugHandler *hotplug_dev,
     39                       CPUHotplugState *cpu_st, DeviceState *dev, Error **errp);
     40 
     41 void acpi_cpu_unplug_request_cb(HotplugHandler *hotplug_dev,
     42                                 CPUHotplugState *cpu_st,
     43                                 DeviceState *dev, Error **errp);
     44 
     45 void acpi_cpu_unplug_cb(CPUHotplugState *cpu_st,
     46                         DeviceState *dev, Error **errp);
     47 
     48 void cpu_hotplug_hw_init(MemoryRegion *as, Object *owner,
     49                          CPUHotplugState *state, hwaddr base_addr);
     50 
     51 typedef struct CPUHotplugFeatures {
     52     bool acpi_1_compatible;
     53     bool has_legacy_cphp;
     54     bool fw_unplugs_cpu;
     55     const char *smi_path;
     56 } CPUHotplugFeatures;
     57 
     58 void build_cpus_aml(Aml *table, MachineState *machine, CPUHotplugFeatures opts,
     59                     hwaddr io_base,
     60                     const char *res_root,
     61                     const char *event_handler_method);
     62 
     63 void acpi_cpu_ospm_status(CPUHotplugState *cpu_st, ACPIOSTInfoList ***list);
     64 
     65 extern const VMStateDescription vmstate_cpu_hotplug;
     66 #define VMSTATE_CPU_HOTPLUG(cpuhp, state) \
     67     VMSTATE_STRUCT(cpuhp, state, 1, \
     68                    vmstate_cpu_hotplug, CPUHotplugState)
     69 
     70 #endif