30,15 → 30,8 |
#define __MADT_H__ |
|
#include <arch/acpi/acpi.h> |
#include <arch/smp/apic.h> |
|
/* Multiple APIC Description Table */ |
struct acpi_madt { |
struct acpi_sdt_header header; |
__u32 l_apic_address; |
__u32 flags; |
__u8 apic_strucure[]; |
} __attribute__ ((packed)); |
|
#define MADT_L_APIC 0 |
#define MADT_IO_APIC 1 |
#define MADT_INTR_SRC_OVRD 2 |
51,11 → 44,23 |
#define MADT_RESERVED_SKIP_BEGIN 9 |
#define MADT_RESERVED_SKIP_END 127 |
#define MADT_RESERVED_OEM_BEGIN 128 |
#define MADT_RESERVED_OEM_END 255 |
|
struct madt_l_apic { |
struct madt_apic_header { |
__u8 type; |
__u8 length; |
} __attribute__ ((packed)); |
|
|
/* Multiple APIC Description Table */ |
struct acpi_madt { |
struct acpi_sdt_header header; |
__u32 l_apic_address; |
__u32 flags; |
struct madt_apic_header apic_header[]; |
} __attribute__ ((packed)); |
|
struct madt_l_apic { |
struct madt_apic_header header; |
__u8 acpi_id; |
__u8 apic_id; |
__u32 flags; |
62,8 → 67,7 |
} __attribute__ ((packed)); |
|
struct madt_io_apic { |
__u8 type; |
__u8 length; |
struct madt_apic_header header; |
__u8 io_apic_id; |
__u8 reserved; |
__u32 io_apic_address; |
71,8 → 75,7 |
} __attribute__ ((packed)); |
|
struct madt_intr_src_ovrd { |
__u8 type; |
__u8 length; |
struct madt_apic_header header; |
__u8 bus; |
__u8 source; |
__u32 global_intr; |
80,15 → 83,13 |
} __attribute__ ((packed)); |
|
struct madt_nmi_src { |
__u8 type; |
__u8 length; |
struct madt_apic_header header; |
__u16 flags; |
__u32 global_intr; |
} __attribute__ ((packed)); |
|
struct madt_l_apic_nmi { |
__u8 type; |
__u8 length; |
struct madt_apic_header header; |
__u8 acpi_id; |
__u16 flags; |
__u8 l_apic_lint; |
95,15 → 96,13 |
} __attribute__ ((packed)); |
|
struct madt_l_apic_addr_ovrd { |
__u8 type; |
__u8 length; |
struct madt_apic_header header; |
__u16 reserved; |
__u64 l_apic_address; |
} __attribute__ ((packed)); |
|
struct madt_io_sapic { |
__u8 type; |
__u8 length; |
struct madt_apic_header header; |
__u8 io_apic_id; |
__u8 reserved; |
__u32 global_intr_base; |
111,8 → 110,7 |
} __attribute__ ((packed)); |
|
struct madt_l_sapic { |
__u8 type; |
__u8 length; |
struct madt_apic_header header; |
__u8 acpi_id; |
__u8 sapic_id; |
__u8 sapic_eid; |
123,8 → 121,7 |
} __attribute__ ((packed)); |
|
struct madt_platform_intr_src { |
__u8 type; |
__u8 length; |
struct madt_apic_header header; |
__u16 flags; |
__u8 intr_type; |
__u8 processor_id; |
136,4 → 133,6 |
|
extern struct acpi_madt *acpi_madt; |
|
extern void acpi_madt_parse(void); |
|
#endif /* __MADT_H__ */ |