Store pertinent ACPI table pointers

This commit is contained in:
Josh Holtrop 2023-09-17 11:22:58 -04:00
parent 3412d9ece9
commit fa4de31aa4

View File

@ -9,7 +9,7 @@ import hulk.memory;
struct Acpi
{
static uint signature(string s)
private static uint signature(string s)
{
return s[0] | (s[1] << 8) | (s[2] << 16) | (s[3] << 24);
}
@ -111,7 +111,11 @@ struct Acpi
}
}
public static __gshared ulong apic_address;
public __gshared ulong apic_address;
public __gshared MADT * madt;
public __gshared MCFG * mcfg;
public static void initialize(ulong acpi_xsdt_phys)
{
@ -148,11 +152,13 @@ struct Acpi
(signature >> 24u) & 0xFFu);
if (signature == APIC_SIGNATURE)
{
(cast(MADT *)address).initialize();
madt = cast(MADT *)address;
madt.initialize();
}
else if (signature == MCFG_SIGNATURE)
{
(cast(MCFG *)address).initialize();
mcfg = cast(MCFG *)address;
mcfg.initialize();
}
}
}