39 ULONG i, TableCount, HeaderLength;
116 if (HeaderLength >=
sizeof(*
Header))
118 HeaderLength =
sizeof(*Header);
128 if (HeaderLength >=
sizeof(*
Header))
130 HeaderLength =
sizeof(*Header);
138 for (
i = 0;
i < TableCount;
i++)
226 EfiPrintf(
L"Progress Info: %s\r\n", ProgressInfo);
289 if (!(
Table) || !(EntryIndex))
345 while (
Index < NewCount)
348 if (!NewTable[
Index])
359 while (
Index < NewCount)
388 *
Count = 2 * NewCount;
473 Flags = Entry1->Flags;
474 if ((Entry1->Size != Entry2->Size) || (
Flags != Entry2->Flags))
481 ValueMatch = Entry1->Value == Entry2->Value;
486 ValueMatch = (
RtlCompareMemory(Entry1->Value, Entry2->Value, Entry1->Size) ==
639 HashLink = HashLinkHead->
Flink;
640 while (HashLink != HashLinkHead)
659 HashLink = HashLink->
Flink;
754 HashLink = HashLinkHead->
Flink;
755 while (HashLink != HashLinkHead)
768 HashLink = HashLink->
Flink;
793 PartialSum = (
unsigned __int16)PartialSum;
801 PartialSum = (
unsigned __int16)((PartialSum >> 16) + PartialSum);
810 PartialSum = (
unsigned __int16)((PartialSum >> 16) + PartialSum);
819 PartialSum = (
unsigned __int16)PartialSum;
835#if defined(_M_IX86) || defined(_M_X64)
837Archx86IsCpuidSupported (
851 return (((CallerFlags ^
Flags) >> 21) & 1) ^ 1;
860#if defined(_M_IX86) || defined(_M_X64)
876 if ((CpuInfo[0] & 0xFFFFFF00) != 0x80000000)
894 EfiPrintf(
L"BlArchIsCpuIdFunctionSupported not implemented for this platform.\r\n");
906#if defined(_M_IX86) || defined(_M_X64)
910 if (Archx86IsCpuidSupported())
918 EfiPrintf(
L"BlArchGetPerformanceCounter not implemented for this platform.\r\n");
930#if defined(_M_IX86) || defined(_M_X64)
946#if defined(_M_IX86) || defined(_M_X64)
948 CpuInfo.
Ecx = CpuInfo.
Edx;
979 EfiPrintf(
L"BlArchGetCpuVendor not implemented for this platform.\r\n");
int strncmp(const char *String1, const char *String2, ACPI_SIZE Count)
VOID EfiPrintf(_In_ PWCHAR Format,...)
#define BL_UTL_CHECKSUM_USHORT_BUFFER
#define BL_UTL_CHECKSUM_COMPLEMENT
#define BL_UTL_CHECKSUM_UCHAR_BUFFER
PVOID BlMmAllocateHeap(_In_ SIZE_T Size)
NTSTATUS BlMmUnmapVirtualAddressEx(_In_ PVOID VirtualAddress, _In_ ULONGLONG Size)
BOOLEAN(* PBL_HASH_TABLE_COMPARE_FUNCTION)(_In_ struct _BL_HASH_ENTRY *Entry1, _In_ struct _BL_HASH_ENTRY *Entry2)
BOOLEAN(* PBL_TBL_LOOKUP_ROUTINE)(_In_ PVOID Entry, _In_ PVOID Argument1, _In_ PVOID Argument2, _In_ PVOID Argument3, _In_ PVOID Argument4)
NTSTATUS(* PBL_TBL_MAP_ROUTINE)(_In_ PVOID Entry, _In_ ULONG EntryIndex)
#define BL_HT_VALUE_IS_INLINE
NTSTATUS BlMmMapPhysicalAddressEx(_In_ PVOID *VirtualAddress, _In_ ULONG Attributes, _In_ ULONGLONG Size, _In_ PHYSICAL_ADDRESS PhysicalAddress)
#define BL_UTL_CHECKSUM_NEGATE
ULONG(* PBL_HASH_TABLE_HASH_FUNCTION)(_In_ struct _BL_HASH_ENTRY *Entry, _In_ ULONG TableSize)
NTSTATUS BlMmFreeHeap(_In_ PVOID Buffer)
NTSTATUS(* PBL_TBL_SET_ROUTINE)(_In_ PVOID Entry)
NTSTATUS EfipGetRsdt(_Out_ PPHYSICAL_ADDRESS FoundRsdt)
ULONG UtlProgressGranularity
VOID BlArchCpuId(_In_ ULONG Function, _In_ ULONG SubFunction, _Out_ PCPU_INFO Result)
NTSTATUS BlUtlRegisterProgressRoutine(VOID)
NTSTATUS BlHtStore(_In_ ULONG TableId, _In_ PBL_HASH_ENTRY Entry, _In_ PVOID Data, _In_ ULONG DataSize)
ULONG DefaultHashFunction(_In_ PBL_HASH_ENTRY Entry, _In_ ULONG TableSize)
ULONG UtlNextUpdatePercentage
NTSTATUS BlHtCreate(_In_ ULONG Size, _In_ PBL_HASH_TABLE_HASH_FUNCTION HashFunction, _In_ PBL_HASH_TABLE_COMPARE_FUNCTION CompareFunction, _Out_ PULONG Id)
PVOID BlTblFindEntry(_In_ PVOID *Table, _In_ ULONG Count, _Out_ PULONG EntryIndex, _In_ PBL_TBL_LOOKUP_ROUTINE Callback, _In_ PVOID Argument1, _In_ PVOID Argument2, _In_ PVOID Argument3, _In_ PVOID Argument4)
PBL_HASH_TABLE * HtTableArray
PVOID UtlProgressInfoRoutine
BOOLEAN BlArchIsCpuIdFunctionSupported(_In_ ULONG Function)
ULONG BlUtlCheckSum(_In_ ULONG PartialSum, _In_ PUCHAR Buffer, _In_ ULONG Length, _In_ ULONG Flags)
ULONG UtlCurrentPercentComplete
BOOLEAN HtpCompareKeys(_In_ PBL_HASH_ENTRY Entry1, _In_ PBL_HASH_ENTRY Entry2)
PVOID UtlMcUpdateMessageRoutine
NTSTATUS BlUtlInitialize(VOID)
CPU_VENDORS BlArchGetCpuVendor(VOID)
NTSTATUS BlHtLookup(_In_ ULONG TableId, _In_ PBL_HASH_ENTRY Entry, _Out_opt_ PBL_HASH_VALUE *Value)
NTSTATUS BlUtlGetAcpiTable(_Out_ PVOID *TableAddress, _In_ ULONG Signature)
NTSTATUS TblDoNotPurgeEntry(_In_ PVOID Entry)
VOID BmUpdateProgress(_In_ PVOID Unknown, _In_ ULONG Percent, _Out_ PBOOLEAN Completed)
PVOID UtlMcDisplayMessageRoutine
NTSTATUS BlHtDelete(_In_ ULONG TableId, _In_ PBL_HASH_ENTRY Entry)
ULONGLONG BlArchGetPerformanceCounter(VOID)
NTSTATUS BlTblSetEntry(_Inout_ PVOID **Table, _Inout_ PULONG Count, _In_ PVOID Entry, _Out_ PULONG EntryIndex, _In_ PBL_TBL_SET_ROUTINE Callback)
NTSTATUS BlTblMap(_In_ PVOID *Table, _In_ ULONG Count, _In_ PBL_TBL_MAP_ROUTINE MapCallback)
VOID BmUpdateProgressInfo(_In_ PVOID Unknown, _In_ PWCHAR ProgressInfo)
BOOLEAN UtlProgressNeedsInfoUpdate
VOID BlUtlUpdateProgress(_In_ ULONG Percentage, _Out_opt_ PBOOLEAN Completed)
_In_ CDROM_SCAN_FOR_SPECIAL_INFO _In_ PCDROM_SCAN_FOR_SPECIAL_HANDLER Function
#define NT_SUCCESS(StatCode)
static const WCHAR Signature[]
#define RemoveEntryList(Entry)
#define InsertTailList(ListHead, Entry)
#define RtlCompareMemory(s1, s2, l)
#define InitializeListHead(ListHead)
InternalIoctlParams Argument4
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
PPC_QUAL void __cpuid(int CPUInfo[], const int InfoType)
PPC_QUAL unsigned long long __rdtsc(void)
__INTRIN_INLINE void __writeeflags(uintptr_t Value)
__INTRIN_INLINE void __cpuidex(int CPUInfo[4], int InfoType, int ECXValue)
__INTRIN_INLINE uintptr_t __readeflags(void)
_In_ NDIS_STATUS _In_ ULONG _In_ USHORT _In_opt_ PVOID _In_ ULONG DataSize
_In_ ULONG _In_ ULONG _In_ ULONG Length
base of all file and directory entries
struct _LIST_ENTRY * Flink
ULONG Tables[ANYSIZE_ARRAY]
DESCRIPTION_HEADER Header
PHYSICAL_ADDRESS Tables[ANYSIZE_ARRAY]
DESCRIPTION_HEADER Header
#define RtlCopyMemory(Destination, Source, Length)
#define RtlZeroMemory(Destination, Length)
#define CONTAINING_RECORD(address, type, field)
#define STATUS_INVALID_PARAMETER
#define STATUS_UNSUCCESSFUL
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
_Must_inspect_result_ _In_ ULONG Flags
_IRQL_requires_same_ _In_opt_ PVOID Argument1
_Must_inspect_result_ typedef _Out_ PULONG TableSize
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS PhysicalAddress
_In_ BOOLEAN _In_ ULONG _Out_ PULONG HashValue