X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/ae23ad2227bd97df4b464937b1dd54a0f3702148..1fe5f5eb5378a47bf0f3451762743c162e40faad:/lunaix-os/includes/hal/acpi/acpi.h diff --git a/lunaix-os/includes/hal/acpi/acpi.h b/lunaix-os/includes/hal/acpi/acpi.h index 453e9f4..de44d3a 100644 --- a/lunaix-os/includes/hal/acpi/acpi.h +++ b/lunaix-os/includes/hal/acpi/acpi.h @@ -1,40 +1,44 @@ #ifndef __LUNAIX_ACPI_ACPI_H #define __LUNAIX_ACPI_ACPI_H -#include #include -#include +#include -#include "sdt.h" -#include "madt.h" #include "fadt.h" +#include "madt.h" +#include "mcfg.h" +#include "sdt.h" // * for quick conversion from a table name into ACPI favoured signature // * use `echo | xxd -eg4` -#define ACPI_RSDP_SIG_L 0x20445352 // 'RSD ' -#define ACPI_RSDP_SIG_H 0x20525450 // 'PTR ' +#define ACPI_RSDP_SIG_L 0x20445352 // 'RSD ' +#define ACPI_RSDP_SIG_H 0x20525450 // 'PTR ' + +#define ACPI_MADT_SIG 0x43495041 // 'APIC' +#define ACPI_FADT_SIG 0x50434146 // 'FACP' Notice that it is not 'FADT'. -#define ACPI_MADT_SIG 0x43495041 // 'APIC' -#define ACPI_FADT_SIG 0x50434146 // 'FACP' Notice that it is not 'FADT'. +// 'MCFG' (Not part of ACPI standard. See PCI Firmware Spec.) +#define ACPI_MCFG_SIG 0x4746434d -typedef struct { - uint32_t signature_l; - uint32_t signature_h; - uint8_t chksum; +typedef struct +{ + u32_t signature_l; + u32_t signature_h; + u8_t chksum; char oem_id[6]; // Revision - uint8_t rev; + u8_t rev; acpi_rsdt_t* rsdt; - uint32_t length; + u32_t length; acpi_sdthdr_t* xsdt; - uint8_t x_chksum; - char reserved[3]; // Reserved field + u8_t x_chksum; + char reserved[3]; // Reserved field } __attribute__((packed)) acpi_rsdp_t; /** * @brief Main TOC of ACPI tables, provide hassle-free access of ACPI info. - * + * */ typedef struct { @@ -42,12 +46,16 @@ typedef struct char oem_id[7]; acpi_madt_toc_t madt; acpi_fadt_t fadt; + struct acpi_mcfg_toc mcfg; } acpi_context; int -acpi_init(multiboot_info_t* mb_info); +acpi_init(); acpi_context* acpi_get_context(); +u8_t +acpi_gsimap(u8_t old_irq); + #endif /* __LUNAIX_ACPI_ACPI_H */