aboutsummaryrefslogtreecommitdiff
path: root/include/hw
diff options
context:
space:
mode:
Diffstat (limited to 'include/hw')
-rw-r--r--include/hw/acpi/acpi-defs.h29
-rw-r--r--include/hw/i386/apic_internal.h3
-rw-r--r--include/hw/i386/pc.h2
3 files changed, 33 insertions, 1 deletions
diff --git a/include/hw/acpi/acpi-defs.h b/include/hw/acpi/acpi-defs.h
index 90a5353..d1d1d61 100644
--- a/include/hw/acpi/acpi-defs.h
+++ b/include/hw/acpi/acpi-defs.h
@@ -343,6 +343,24 @@ struct AcpiMadtLocalNmi {
} QEMU_PACKED;
typedef struct AcpiMadtLocalNmi AcpiMadtLocalNmi;
+struct AcpiMadtProcessorX2Apic {
+ ACPI_SUB_HEADER_DEF
+ uint16_t reserved;
+ uint32_t x2apic_id; /* Processor's local x2APIC ID */
+ uint32_t flags;
+ uint32_t uid; /* Processor object _UID */
+} QEMU_PACKED;
+typedef struct AcpiMadtProcessorX2Apic AcpiMadtProcessorX2Apic;
+
+struct AcpiMadtLocalX2ApicNmi {
+ ACPI_SUB_HEADER_DEF
+ uint16_t flags; /* MPS INTI flags */
+ uint32_t uid; /* Processor object _UID */
+ uint8_t lint; /* Local APIC LINT# */
+ uint8_t reserved[3]; /* Local APIC LINT# */
+} QEMU_PACKED;
+typedef struct AcpiMadtLocalX2ApicNmi AcpiMadtLocalX2ApicNmi;
+
struct AcpiMadtGenericInterrupt {
ACPI_SUB_HEADER_DEF
uint16_t reserved;
@@ -485,6 +503,17 @@ struct AcpiSratProcessorAffinity
} QEMU_PACKED;
typedef struct AcpiSratProcessorAffinity AcpiSratProcessorAffinity;
+struct AcpiSratProcessorX2ApicAffinity {
+ ACPI_SUB_HEADER_DEF
+ uint16_t reserved;
+ uint32_t proximity_domain;
+ uint32_t x2apic_id;
+ uint32_t flags;
+ uint32_t clk_domain;
+ uint32_t reserved2;
+} QEMU_PACKED;
+typedef struct AcpiSratProcessorX2ApicAffinity AcpiSratProcessorX2ApicAffinity;
+
struct AcpiSratMemoryAffinity
{
ACPI_SUB_HEADER_DEF
diff --git a/include/hw/i386/apic_internal.h b/include/hw/i386/apic_internal.h
index cdd11fb..1209eb4 100644
--- a/include/hw/i386/apic_internal.h
+++ b/include/hw/i386/apic_internal.h
@@ -160,7 +160,8 @@ struct APICCommonState {
MemoryRegion io_memory;
X86CPU *cpu;
uint32_t apicbase;
- uint8_t id;
+ uint8_t id; /* legacy APIC ID */
+ uint32_t initial_apic_id;
uint8_t version;
uint8_t arb_id;
uint8_t tpr;
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index b16c448..17fff80 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -37,6 +37,7 @@
/**
* PCMachineState:
* @acpi_dev: link to ACPI PM device that performs ACPI hotplug handling
+ * @boot_cpus_le: number of present VCPUs, referenced by 'etc/boot-cpus' fw_cfg
*/
struct PCMachineState {
/*< private >*/
@@ -69,6 +70,7 @@ struct PCMachineState {
bool apic_xrupt_override;
unsigned apic_id_limit;
CPUArchIdList *possible_cpus;
+ uint16_t boot_cpus_le;
/* NUMA information: */
uint64_t numa_nodes;