␊ |
#define ACPI_TABLE_LIST_FULL_NON_RESERVED MAX_ACPI_TABLE + 1␊ |
␊ |
#define ULONG_MAX_32 4294967295UL␊ |
//#define ULONG_MAX_32 4294967295UL␊ |
␊ |
#define __RES(s, u)␉␉␉␉␉␉␉␉␉␉␉␉\␊ |
inline unsigned u␉␉␉␉␉␉␉␉␉␉\␊ |
|
␉␉U64 ptr = xsdt->TableOffsetEntry[index];␊ |
␉␉␊ |
␉␉{␉␉␉␉␊ |
␉␉␉if (ptr > ULONG_MAX_32)␊ |
␉␉␉if (ptr > ULONG_MAX)␊ |
␉␉␉{␊ |
#if DEBUG_ACPI␉␉␉␉␉␉␊ |
␉␉␉␉printf("Warning xsdt->TableOffsetEntry[%d]: Beyond addressable memory in this CPU mode, ignored !!!\n",index);␊ |
|
{␊ |
// Process sub-tables with Type as 4: Local APIC NMI␊ |
ACPI_MADT_LOCAL_APIC_NMI *nmi = current;␊ |
current = nmi + 1; ␊ |
current = nmi + 1; ␊ |
␊ |
if (!(nmi->IntiFlags & ACPI_MADT_ENABLED))␊ |
continue;␊ |
␊ |
if (LOCAL_APIC_NMI_CNT >= nb_cpu)␊ |
continue; ␊ |
␊ |
|
ACPI_MADT_LOCAL_SAPIC *sapic = current;␊ |
current = sapic + 1; ␊ |
␊ |
if (!(sapic->LapicFlags & ACPI_MADT_ENABLED))␊ |
continue;␊ |
␊ |
if (LOCAL_SAPIC_CNT >= nb_cpu)␊ |
continue; ␊ |
␊ |
|
ACPI_MADT_INTERRUPT_SOURCE *intsrc = current;␊ |
current = intsrc + 1; ␊ |
␊ |
if (!(intsrc->IntiFlags & ACPI_MADT_ENABLED))␊ |
continue;␊ |
␊ |
if (INT_SRC_CNT >= nb_cpu)␊ |
continue; ␊ |
␊ |
|
␉{␉␉␉␉␊ |
MadtPointer = (ACPI_TABLE_MADT *)madt_file;␊ |
␊ |
new_table_list[new_table_index] = 0ul; // This way, the non-patched table will not be added in our new rsdt/xsdt table list // note: for now we don't patch this table␉␉␉␊ |
new_table_list[new_table_index] = 0ul; // This way, the non-patched table will not be added in our new rsdt/xsdt table list ␉␉␉␊ |
␉} ␊ |
else␊ |
{␊ |
|
␉␉␉U64 ptr = xsdt->TableOffsetEntry[index];␊ |
␉␉␉␊ |
␉␉␉{␉␉␉␉␊ |
␉␉␉␉if (ptr > ULONG_MAX_32)␊ |
␉␉␉␉if (ptr > ULONG_MAX)␊ |
␉␉␉␉{␊ |
#if DEBUG_ACPI␉␉␉␉␉␉␊ |
␉␉␉␉␉printf("Warning xsdt->TableOffsetEntry[%d]: Beyond addressable memory in this CPU mode, ignored !!!\n",index);␊ |