23 #define DPRINT01 DPRINT1
24 #define DPRINT00 DPRINT
27 #define DPRINT01 __noop
28 #define DPRINT00 __noop
30 #define DPRINT01(...) do { if(0) { DbgPrint(__VA_ARGS__); } } while(0)
31 #define DPRINT00(...) do { if(0) { DbgPrint(__VA_ARGS__); } } while(0)
40#define LAPIC_FLAG_ENABLED 0x00000001
41#define LAPIC_FLAG_ONLINE_CAPABLE 0x00000002
92 DPRINT01(
"ACPI_MADT_MULTIPLE_APIC support is UNIMPLEMENTED\n");
105 DPRINT00(
" MadtTable %p, subtables %p - %p\n", MadtTable, AcpiHeader, (
PVOID)TableEnd);
107 while ((
ULONG_PTR)(AcpiHeader + 1) <= TableEnd)
109 if (AcpiHeader->
Length <
sizeof(*AcpiHeader))
111 DPRINT01(
"Length is too short: %p, %u\n", AcpiHeader, AcpiHeader->
Length);
117 DPRINT01(
"Length mismatch: %p, %u, %p\n",
122 switch (AcpiHeader->
Type)
128 if (AcpiHeader->
Length !=
sizeof(*LocalApic))
130 DPRINT01(
"Type/Length mismatch: %p, %u\n", AcpiHeader, AcpiHeader->
Length);
134 DPRINT00(
" Local Apic, Processor %lu: ProcessorId %u, Id %u, LapicFlags %08X\n",
146 DPRINT00(
" Skipped: array is full\n");
164 if (AcpiHeader->
Length !=
sizeof(*IoApic))
166 DPRINT01(
"Type/Length mismatch: %p, %u\n", AcpiHeader, AcpiHeader->
Length);
170 DPRINT00(
" Io Apic: Id %u, Address %08X, GlobalIrqBase %08X\n",
176 DPRINT01(
"Id duplication: %p, %u\n", IoApic, IoApic->
Id);
193 if (AcpiHeader->
Length !=
sizeof(*InterruptOverride))
195 DPRINT01(
"Type/Length mismatch: %p, %u\n", AcpiHeader, AcpiHeader->
Length);
199 DPRINT00(
" Interrupt Override: Bus %u, SourceIrq %u, GlobalIrq %08X, IntiFlags %04X / UNIMPLEMENTED\n",
203 if (InterruptOverride->
Bus != 0)
205 DPRINT01(
"Invalid Bus: %p, %u\n", InterruptOverride, InterruptOverride->
Bus);
214 DPRINT01(
"Invalid SourceIrq: %p, %u\n",
215 InterruptOverride, InterruptOverride->
SourceIrq);
228 DPRINT01(
" UNIMPLEMENTED: Type %u, Length %u\n",
239 DPRINT01(
"Length mismatch: %p, %p, %p\n", MadtTable, AcpiHeader, (
PVOID)TableEnd);
253 DPRINT1(
" Processor %lu: ProcessorId %u, LapicId %u, ProcessorStarted %u, BSPCheck %u, ProcessorPrcb %p\n",
@ ACPI_MADT_TYPE_INTERRUPT_OVERRIDE
@ ACPI_MADT_TYPE_LOCAL_APIC
#define ACPI_MADT_PCAT_COMPAT
#define ACPI_MADT_DUAL_PIC
#define MAXIMUM_PROCESSORS
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
ULONG HalpPicVectorRedirect[]
PVOID NTAPI HalAcpiGetTable(IN PLOADER_PARAMETER_BLOCK LoaderBlock, IN ULONG Signature)
VOID HalpParseApicTables(_In_ PLOADER_PARAMETER_BLOCK LoaderBlock)
VOID HalpPrintApicTables(VOID)
HALP_APIC_INFO_TABLE HalpApicInfoTable
static PROCESSOR_IDENTITY HalpStaticProcessorIdentity[MAXIMUM_PROCESSORS]
const PPROCESSOR_IDENTITY HalpProcessorIdentity
#define LAPIC_FLAG_ENABLED
#define LAPIC_FLAG_ONLINE_CAPABLE
#define HALP_APIC_MODE_LEGACY
ULONG IoApicPA[HALP_APIC_INFO_TABLE_IOAPIC_NUMBER]
ULONG IoApicIrqBase[HALP_APIC_INFO_TABLE_IOAPIC_NUMBER]