40ULONG 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)
383 CheckSum += *CurrentByte;
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;
576 while (ComponentEntry)
586 Next = ComponentEntry;
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: %lXh (EXT: %lu)\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;
1031 DPRINT(
"Resource list size: %lu\n", ListSize);
VOID NTAPI HalpInitializePciStubs(VOID)
BOOLEAN NTAPI HalpTranslateBusAddress(IN INTERFACE_TYPE InterfaceType, IN ULONG BusNumber, IN PHYSICAL_ADDRESS BusAddress, IN OUT PULONG AddressSpace, OUT PPHYSICAL_ADDRESS TranslatedAddress)
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)
BOOLEAN NTAPI HalpFindBusAddressTranslation(IN PHYSICAL_ADDRESS BusAddress, IN OUT PULONG AddressSpace, OUT PPHYSICAL_ADDRESS TranslatedAddress, IN OUT PULONG_PTR Context, IN BOOLEAN NextBus)
while(CdLookupNextInitialFileDirent(IrpContext, Fcb, FileContext))
#define NT_SUCCESS(StatCode)
static const WCHAR Signature[]
#define InsertTailList(ListHead, Entry)
#define ExAllocatePoolWithTag(hernya, size, tag)
#define InitializeListHead(ListHead)
VOID FASTCALL ExAcquireFastMutex(IN PFAST_MUTEX FastMutex)
VOID FASTCALL ExReleaseFastMutex(IN PFAST_MUTEX FastMutex)
VOID NTAPI HalpReportResourceUsage(IN PUNICODE_STRING HalName, IN INTERFACE_TYPE InterfaceType)
VOID NTAPI HalpUnmapVirtualAddress(IN PVOID VirtualAddress, IN PFN_COUNT PageCount)
PVOID NTAPI HalpMapPhysicalMemory64(IN PHYSICAL_ADDRESS PhysicalAddress, IN PFN_COUNT PageCount)
ULONG64 NTAPI HalpAllocPhysicalMemory(IN PLOADER_PARAMETER_BLOCK LoaderBlock, IN ULONG64 MaxAddress, IN PFN_NUMBER PageCount, IN BOOLEAN Aligned)
VOID NTAPI HalpGetNMICrashFlag(VOID)
ULONG NTAPI HalpIs16BitPortDecodeSupported(VOID)
PVOID NTAPI HalpAcpiGetTable(IN PLOADER_PARAMETER_BLOCK LoaderBlock, IN ULONG Signature)
NTSTATUS NTAPI HalpBuildAcpiResourceList(IN PIO_RESOURCE_REQUIREMENTS_LIST ResourceList)
VOID NTAPI HalpDynamicSystemResourceConfiguration(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
VOID NTAPI HalpBuildAddressMap(VOID)
PHYSICAL_ADDRESS HalpMaxHotPlugMemoryAddress
VOID NTAPI HalpAcpiDetectMachineSpecificActions(IN PLOADER_PARAMETER_BLOCK LoaderBlock, IN PFADT DescriptionTable)
VOID NTAPI HalpInitializePciBus(VOID)
VOID NTAPI HalpInitNonBusHandler(VOID)
VOID NTAPI HalpAcpiCacheTable(IN PDESCRIPTION_HEADER TableHeader)
LIST_ENTRY HalpAcpiTableCacheList
PACPI_BIOS_MULTI_NODE HalpAcpiMultiNode
VOID NTAPI HalpInitBootTable(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
PHARDWARE_PTE HalpPteForFlush
VOID NTAPI HalpInitBusHandlers(VOID)
NTSTATUS NTAPI HalpSetupAcpiPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
VOID NTAPI HalReportResourceUsage(VOID)
BOOLEAN HalpPhysicalMemoryMayAppearAbove4GB
PVOID HalpVirtAddrForFlush
BOOLEAN HalpProcessedACPIPhase0
PDEBUG_PORT_TABLE HalpDebugPortTable
BOOLEAN HalDisableFirmwareMapper
PBOOT_TABLE HalpSimpleBootFlagTable
FADT HalpFixedAcpiDescTable
LIST_ENTRY HalpAcpiTableMatchList
ULONG HalpPicVectorRedirect[]
FAST_MUTEX HalpAcpiTableCacheLock
VOID NTAPI HalpAcpiDetectResourceListSize(OUT PULONG ListSize)
VOID NTAPI HaliAcpiTimerInit(IN ULONG TimerPort, IN ULONG TimerValExt)
VOID NTAPI HalpNumaInitializeStaticConfiguration(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
BOOLEAN NTAPI HalpGetDebugPortTable(VOID)
ULONG HalpInvalidAcpiTable
PVOID NTAPI HalpAcpiCopyBiosTable(IN PLOADER_PARAMETER_BLOCK LoaderBlock, IN PDESCRIPTION_HEADER TableHeader)
PVOID NTAPI HalAcpiGetTable(IN PLOADER_PARAMETER_BLOCK LoaderBlock, IN ULONG Signature)
PDESCRIPTION_HEADER NTAPI HalpAcpiGetCachedTable(IN ULONG Signature)
NTSTATUS NTAPI HalpAcpiFindRsdtPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock, OUT PACPI_BIOS_MULTI_NODE *AcpiMultiNode)
VOID NTAPI HalpGetHotPlugMemoryInfo(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
PHYSICAL_ADDRESS HalpLowStubPhysicalAddress
NTSTATUS NTAPI HalpAcpiTableCacheInit(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
PVOID NTAPI HalpAcpiGetTableFromBios(IN PLOADER_PARAMETER_BLOCK LoaderBlock, IN ULONG Signature)
PWCHAR HalHardwareIdString
NTSTATUS NTAPI HalpQueryAcpiResourceRequirements(OUT PIO_RESOURCE_REQUIREMENTS_LIST *Requirements)
#define HALP_LOW_STUB_SIZE_IN_PAGES
#define HalAddressToPte(x)
enum _INTERFACE_TYPE INTERFACE_TYPE
#define CmResourceTypeInterrupt
NTHALAPI VOID NTAPI HalDisplayString(PUCHAR String)
VOID NTAPI MmUnmapIoSpace(IN PVOID BaseAddress, IN SIZE_T NumberOfBytes)
PVOID NTAPI MmMapIoSpace(IN PHYSICAL_ADDRESS PhysicalAddress, IN SIZE_T NumberOfBytes, IN MEMORY_CACHING_TYPE CacheType)
VOID NTAPI HalpRegisterPciDebuggingDeviceInfo(VOID)
#define ExFreePoolWithTag(_P, _T)
#define MACHINE_TYPE_EISA
#define CM_RESOURCE_PORT_16_BIT_DECODE
#define CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE
#define HalFindBusAddressTranslation
#define HalPciTranslateBusAddress
#define HalPciAssignSlotResources
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
_In_ ULONG _In_ ULONG Offset
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)
VOID NTAPI KeBugCheckEx(_In_ ULONG BugCheckCode, _In_ ULONG_PTR BugCheckParameter1, _In_ ULONG_PTR BugCheckParameter2, _In_ ULONG_PTR BugCheckParameter3, _In_ ULONG_PTR BugCheckParameter4)
struct _IO_RESOURCE_DESCRIPTOR IO_RESOURCE_DESCRIPTOR
struct _ACPI_BIOS_MULTI_NODE * PACPI_BIOS_MULTI_NODE
struct _ACPI_E820_ENTRY ACPI_E820_ENTRY
struct _ACPI_BIOS_MULTI_NODE ACPI_BIOS_MULTI_NODE
PHYSICAL_ADDRESS RsdtAddress
DESCRIPTION_HEADER Header
DESCRIPTION_HEADER Header
CONFIGURATION_COMPONENT ComponentEntry
DESCRIPTION_HEADER Header
struct _LIST_ENTRY * Flink
ULONG Tables[ANYSIZE_ARRAY]
DESCRIPTION_HEADER Header
PHYSICAL_ADDRESS Tables[ANYSIZE_ARRAY]
DESCRIPTION_HEADER Header
#define FIELD_OFFSET(t, f)
#define RtlCopyMemory(Destination, Source, Length)
#define RtlZeroMemory(Destination, Length)
#define CONTAINING_RECORD(address, type, field)
#define STATUS_NO_SUCH_DEVICE
#define STATUS_INSUFFICIENT_RESOURCES
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID InterfaceType
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
_Must_inspect_result_ _In_ WDFIORESREQLIST _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIORESLIST * ResourceList
_In_ WDFIORESREQLIST RequirementsList
_Must_inspect_result_ _In_ WDFCMRESLIST List
FORCEINLINE VOID ExInitializeFastMutex(_Out_ PFAST_MUTEX FastMutex)
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS PhysicalAddress
#define BYTES_TO_PAGES(Size)
#define ADDRESS_AND_SIZE_TO_SPAN_PAGES(_Va, _Size)