X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/45e1f8b055043e54be35462852ab6649d634da7c..28c176b668c841a3b7fb093faccf0efa39257603:/lunaix-os/includes/hal/acpi/madt.h diff --git a/lunaix-os/includes/hal/acpi/madt.h b/lunaix-os/includes/hal/acpi/madt.h index 538e521..c12ab28 100644 --- a/lunaix-os/includes/hal/acpi/madt.h +++ b/lunaix-os/includes/hal/acpi/madt.h @@ -16,6 +16,7 @@ typedef struct u8_t type; u8_t length; } ACPI_TABLE_PACKED acpi_ics_hdr_t; +#define __acpi_ics_hdr(acpi_ptr) ((acpi_ics_hdr_t*)__ptr(acpi_ptr)) /** * @brief ACPI Processor Local APIC Structure (PLAS) @@ -30,6 +31,7 @@ typedef struct u8_t apic_id; u32_t flags; } ACPI_TABLE_PACKED acpi_apic_t; +#define __acpi_apic(acpi_ptr) ((acpi_apic_t*)__ptr(acpi_ptr)) /** * @brief ACPI IO APIC Structure (IOAS) @@ -48,6 +50,7 @@ typedef struct // for a slave IOAPIC) u32_t gis_offset; } ACPI_TABLE_PACKED acpi_ioapic_t; +#define __acpi_ioapic(acpi_ptr) ((acpi_ioapic_t*)__ptr(acpi_ptr)) /** * @brief ACPI Interrupt Source Override (INTSO) @@ -69,18 +72,20 @@ typedef struct u32_t gsi; u16_t flags; } ACPI_TABLE_PACKED acpi_intso_t; +#define __acpi_intso(acpi_ptr) ((acpi_intso_t*)__ptr(acpi_ptr)) typedef struct { acpi_sdthdr_t header; - void* apic_addr; + u32_t apic_addr; u32_t flags; // Here is a bunch of packed ICS reside here back-to-back. } ACPI_TABLE_PACKED acpi_madt_t; +#define __acpi_madt(acpi_ptr) ((acpi_madt_t*)__ptr(acpi_ptr)) typedef struct { - void* apic_addr; + u32_t apic_addr; acpi_apic_t* apic; acpi_ioapic_t* ioapic; acpi_intso_t** irq_exception;