40 ULONG HalpPicVectorRedirect[] = {0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15};
58 NextEntry = ListHead->
Flink;
59 while (NextEntry != ListHead)
68 NextEntry = NextEntry->
Flink;
128 CopiedTable = &CachedTable->
Header;
154 ULONG EntryCount, CurrentEntry;
188 DPRINT1(
"HAL: Failed to map ACPI table.\n");
230 if (!Xsdt)
return NULL;
254 EntryCount = (TableLength -
Offset) /
sizeof(
ULONG);
258 for (CurrentEntry = 0; CurrentEntry < EntryCount; CurrentEntry++)
305 DPRINT1(
"HAL: Failed to map ACPI table.\n");
310 DPRINT(
"Found ACPI table %c%c%c%c at 0x%p\n",
312 (
Header->Signature & 0xFF00) >> 8,
313 (
Header->Signature & 0xFF0000) >> 16,
314 (
Header->Signature & 0xFF000000) >> 24,
320 if (CurrentEntry == EntryCount)
390 DPRINT1(
"Checksum failed on ACPI table %c%c%c%c\n",
435 TableAddress = BiosCopy;
482 if (!SratTable)
return;
494 if (!SratTable)
return;
514 DPRINT1(
"WARNING: Your HAL has specific ACPI hacks to apply!\n");
533 DPRINT1(
"ACPI Boot table found, but not supported!\n");
568 *AcpiMultiNode =
NULL;
573 MultiFunctionAdapter,
576 while (ComponentEntry)
586 Next = ComponentEntry;
589 MultiFunctionAdapter,
597 DPRINT1(
"**** HalpAcpiFindRsdtPhase0: did NOT find RSDT\n");
625 MappedAddress =
NULL;
678 Rsdt = MappedAddress;
682 DPRINT1(
"HAL: Failed to map RSDT\n");
698 if (TableLength != 2)
717 Rsdt = MappedAddress;
721 DPRINT1(
"HAL: Couldn't remap RSDT\n");
731 DPRINT1(
"HAL: Couldn't remap RSDT\n");
741 LoaderExtension = LoaderBlock->Extension;
748 LoaderExtension =
NULL;
755 if (LoaderExtension && (LoaderExtension->
Size >= 0x58))
761 DPRINT1(
"ACPI Table Overrides Not Supported!\n");
782 DPRINT1(
"ACPI Timer at: %Xh (EXT: %d)\n", TimerPort, TimerValExt);
811 DPRINT1(
"HAL: Didn't find the FACP\n");
816 TableLength =
sizeof(
FADT);
835 DPRINT1(
"Your machine has a SRAT, but NUMA/HotPlug are not supported!\n");
881 NextEntry = ListHead->
Flink;
882 while (NextEntry != ListHead)
901 NextEntry = NextEntry->
Flink;
1030 DPRINT(
"Resource list size: %d\n", ListSize);
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 * u
VOID NTAPI HalpAcpiCacheTable(IN PDESCRIPTION_HEADER TableHeader)
#define HalPciTranslateBusAddress
ULONG HalpInvalidAcpiTable
DESCRIPTION_HEADER Header
#define STATUS_INSUFFICIENT_RESOURCES
enum _INTERFACE_TYPE INTERFACE_TYPE
VOID NTAPI HalpAcpiDetectResourceListSize(OUT PULONG ListSize)
DESCRIPTION_HEADER Header
NTSTATUS NTAPI HalpBuildAcpiResourceList(IN PIO_RESOURCE_REQUIREMENTS_LIST ResourceList)
FAST_MUTEX HalpAcpiTableCacheLock
PACPI_BIOS_MULTI_NODE HalpAcpiMultiNode
PDEBUG_PORT_TABLE HalpDebugPortTable
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
ULONG Tables[ANYSIZE_ARRAY]
BOOLEAN NTAPI HalpFindBusAddressTranslation(IN PHYSICAL_ADDRESS BusAddress, IN OUT PULONG AddressSpace, OUT PPHYSICAL_ADDRESS TranslatedAddress, IN OUT PULONG_PTR Context, IN BOOLEAN NextBus)
struct _ACPI_BIOS_MULTI_NODE * PACPI_BIOS_MULTI_NODE
struct _ACPI_BIOS_MULTI_NODE ACPI_BIOS_MULTI_NODE
PVOID NTAPI HalAcpiGetTable(IN PLOADER_PARAMETER_BLOCK LoaderBlock, IN ULONG Signature)
VOID NTAPI HalpBuildAddressMap(VOID)
#define HalAddressToPte(x)
IN PVOID IN PVOID IN USHORT IN USHORT Size
NTSTATUS NTAPI HalpQueryAcpiResourceRequirements(OUT PIO_RESOURCE_REQUIREMENTS_LIST *Requirements)
LIST_ENTRY HalpAcpiTableMatchList
VOID NTAPI HalpInitBusHandlers(VOID)
NTSTATUS NTAPI HalpAssignSlotResources(IN PUNICODE_STRING RegistryPath, IN PUNICODE_STRING DriverClassName, IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT DeviceObject, IN INTERFACE_TYPE BusType, IN ULONG BusNumber, IN ULONG SlotNumber, IN OUT PCM_RESOURCE_LIST *AllocatedResources)
PVOID NTAPI MmMapIoSpace(IN PHYSICAL_ADDRESS PhysicalAddress, IN SIZE_T NumberOfBytes, IN MEMORY_CACHING_TYPE CacheType)
#define InsertTailList(ListHead, Entry)
_Must_inspect_result_ _In_ WDFIORESREQLIST _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIORESLIST * ResourceList
VOID FASTCALL ExReleaseFastMutex(IN PFAST_MUTEX FastMutex)
VOID NTAPI HalpDynamicSystemResourceConfiguration(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
PHARDWARE_PTE HalpPteForFlush
PVOID NTAPI HalpAcpiCopyBiosTable(IN PLOADER_PARAMETER_BLOCK LoaderBlock, IN PDESCRIPTION_HEADER TableHeader)
VOID NTAPI HalpAcpiDetectMachineSpecificActions(IN PLOADER_PARAMETER_BLOCK LoaderBlock, IN PFADT DescriptionTable)
struct _ACPI_E820_ENTRY ACPI_E820_ENTRY
PHYSICAL_ADDRESS Tables[ANYSIZE_ARRAY]
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
PVOID NTAPI HalpMapPhysicalMemory64(IN PHYSICAL_ADDRESS PhysicalAddress, IN ULONG NumberPage)
PHYSICAL_ADDRESS RsdtAddress
VOID NTAPI HalpInitNonBusHandler(VOID)
BOOLEAN NTAPI HalpTranslateBusAddress(IN INTERFACE_TYPE InterfaceType, IN ULONG BusNumber, IN PHYSICAL_ADDRESS BusAddress, IN OUT PULONG AddressSpace, OUT PPHYSICAL_ADDRESS TranslatedAddress)
VOID NTAPI HalpGetNMICrashFlag(VOID)
#define CM_RESOURCE_PORT_16_BIT_DECODE
DESCRIPTION_HEADER Header
VOID NTAPI HalpRegisterPciDebuggingDeviceInfo(VOID)
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
#define ADDRESS_AND_SIZE_TO_SPAN_PAGES(_Va, _Size)
struct _IO_RESOURCE_DESCRIPTOR IO_RESOURCE_DESCRIPTOR
VOID NTAPI HalpInitializePciBus(VOID)
struct _LIST_ENTRY * Flink
PHYSICAL_ADDRESS HalpLowStubPhysicalAddress
PHYSICAL_ADDRESS HalpMaxHotPlugMemoryAddress
VOID NTAPI HalpInitBootTable(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
#define NT_SUCCESS(StatCode)
#define STATUS_NO_SUCH_DEVICE
PWCHAR HalHardwareIdString
DESCRIPTION_HEADER Header
FORCEINLINE VOID ExInitializeFastMutex(_Out_ PFAST_MUTEX FastMutex)
UCHAR CheckSum(LPSTR p, ULONG Len)
NTSTATUS NTAPI HalpAcpiFindRsdtPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock, OUT PACPI_BIOS_MULTI_NODE *AcpiMultiNode)
PBOOT_TABLE HalpSimpleBootFlagTable
#define ExAllocatePoolWithTag(hernya, size, tag)
ULONG NTAPI HalpIs16BitPortDecodeSupported(VOID)
VOID NTAPI HalReportResourceUsage(VOID)
#define BYTES_TO_PAGES(Size)
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS PhysicalAddress
CONFIGURATION_COMPONENT ComponentEntry
VOID NTAPI HaliAcpiTimerInit(IN ULONG TimerPort, IN ULONG TimerValExt)
_Must_inspect_result_ _In_ WDFCMRESLIST List
VOID NTAPI HalpUnmapVirtualAddress(IN PVOID VirtualAddress, IN ULONG NumberPages)
PVOID NTAPI HalpAcpiGetTable(IN PLOADER_PARAMETER_BLOCK LoaderBlock, IN ULONG Signature)
_In_ ULONG _In_ ULONG Offset
NTSTATUS NTAPI HalpAcpiTableCacheInit(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
BOOLEAN HalDisableFirmwareMapper
BOOLEAN HalpProcessedACPIPhase0
PVOID NTAPI HalpAcpiGetTableFromBios(IN PLOADER_PARAMETER_BLOCK LoaderBlock, IN ULONG Signature)
VOID FASTCALL ExAcquireFastMutex(IN PFAST_MUTEX FastMutex)
ULONG HalpPicVectorRedirect[]
#define HalFindBusAddressTranslation
VOID NTAPI HalpInitializePciStubs(VOID)
#define InitializeListHead(ListHead)
VOID NTAPI MmUnmapIoSpace(IN PVOID BaseAddress, IN SIZE_T NumberOfBytes)
#define FIELD_OFFSET(t, f)
NTHALAPI VOID NTAPI HalDisplayString(PUCHAR String)
#define CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE
#define CmResourceTypeInterrupt
VOID NTAPI HalpGetHotPlugMemoryInfo(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
LIST_ENTRY HalpAcpiTableCacheList
_In_ WDFIORESREQLIST RequirementsList
FADT HalpFixedAcpiDescTable
BOOLEAN NTAPI HalpGetDebugPortTable(VOID)
BOOLEAN HalpPhysicalMemoryMayAppearAbove4GB
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define RtlZeroMemory(Destination, Length)
#define HalPciAssignSlotResources
#define RtlCopyMemory(Destination, Source, Length)
#define ExFreePoolWithTag(_P, _T)
NTSTATUS NTAPI HalpSetupAcpiPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
PCONFIGURATION_COMPONENT_DATA NTAPI KeFindConfigurationNextEntry(IN PCONFIGURATION_COMPONENT_DATA Child, IN CONFIGURATION_CLASS Class, IN CONFIGURATION_TYPE Type, IN PULONG ComponentKey OPTIONAL, IN PCONFIGURATION_COMPONENT_DATA *NextLink)
ULONG64 NTAPI HalpAllocPhysicalMemory(IN PLOADER_PARAMETER_BLOCK LoaderBlock, IN ULONG64 MaxAddress, IN PFN_NUMBER PageCount, IN BOOLEAN Aligned)
static const WCHAR Signature[]
VOID NTAPI HalpReportResourceUsage(IN PUNICODE_STRING HalName, IN INTERFACE_TYPE InterfaceType)
VOID NTAPI HalpNumaInitializeStaticConfiguration(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID InterfaceType
VOID NTAPI KeBugCheckEx(_In_ ULONG BugCheckCode, _In_ ULONG_PTR BugCheckParameter1, _In_ ULONG_PTR BugCheckParameter2, _In_ ULONG_PTR BugCheckParameter3, _In_ ULONG_PTR BugCheckParameter4)
#define MACHINE_TYPE_EISA
DESCRIPTION_HEADER Header
PVOID HalpVirtAddrForFlush
PDESCRIPTION_HEADER NTAPI HalpAcpiGetCachedTable(IN ULONG Signature)