46 NextEntry = ListHead->
Flink;
61 NextEntry = NextEntry->
Flink;
67 if (NextEntry == ListHead)
135 EfiPrintf(
L"Need to handle reserved allocation: %llx %llx\r\n",
143 NextEntry = NextEntry->
Flink;
183 EfiPrintf(
L"Persistent bad page list not supported\r\n");
200 PVOID MappingAddress;
204 UCHAR CacheAttributes;
365 if (FoundBasePage < BasePage)
368 PageOffset = BasePage - FoundBasePage;
388 PageOffset =
EndPage - BasePage;
436 MappedPage += AddPages;
437 BasePage += AddPages;
553 if ((TranslationType >
BlPae) || (LibraryParameters->TranslationType >
BlPae))
556 EfiPrintf(
L"Invalid translation types present\r\n");
569 LibraryParameters->MinimumAllocationCount);
589 LibraryParameters->TranslationType);
597 LibraryParameters->HeapAllocationAttributes);
613 if (LibraryParameters->DescriptorCount > 512)
616 EfiPrintf(
L"Warning: too many descriptors\r\n");
629 LibraryParameters->TranslationType);
NTSTATUS BlMmRemoveBadMemory(VOID)
#define BL_MM_INCLUDE_PERSISTENT_MEMORY
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
NTSTATUS EfiStall(_In_ ULONG StallTime)
FORCEINLINE VOID MmMdInitializeListHead(_In_ PBL_MEMORY_DESCRIPTOR_LIST List)
#define STATUS_INVALID_PARAMETER
BL_MEMORY_DESCRIPTOR_LIST MmMdlMappedAllocated
NTSTATUS TrpGenerateMappingTracker(_In_ PVOID VirtualAddress, _In_ ULONG Flags, _In_ LARGE_INTEGER PhysicalAddress, _In_ ULONGLONG Size)
BOOLEAN MmArchTranslateVirtualAddress(_In_ PVOID VirtualAddress, _Out_opt_ PPHYSICAL_ADDRESS PhysicalAddress, _Out_opt_ PULONG CachingFlags)
NTSTATUS MmHaInitialize(_In_ ULONG HeapSize, _In_ ULONG HeapAttributes)
BL_TRANSLATION_TYPE MmTranslationType
NTSTATUS MmMdAddDescriptorToList(_In_ PBL_MEMORY_DESCRIPTOR_LIST MdList, _In_ PBL_MEMORY_DESCRIPTOR MemoryDescriptor, _In_ ULONG Flags)
IN PVOID IN PVOID IN USHORT IN USHORT Size
NTSTATUS MmSelectMappingAddress(_Out_ PVOID *MappingAddress, _In_ PVOID PreferredAddress, _In_ ULONGLONG Size, _In_ ULONG AllocationAttributes, _In_ ULONG Flags, _In_ PHYSICAL_ADDRESS PhysicalAddress)
#define BL_MM_REMOVE_PHYSICAL_REGION_FLAG
#define BL_MM_REMOVE_VIRTUAL_REGION_FLAG
#define InsertTailList(ListHead, Entry)
BL_MEMORY_DESCRIPTOR_LIST MmMdlReservedAllocated
#define BL_MM_ADD_DESCRIPTOR_COALESCE_FLAG
_In_opt_ PSECURITY_DESCRIPTOR _Out_ PSECURITY_DESCRIPTOR * NewDescriptor
_Must_inspect_result_ FORCEINLINE BOOLEAN IsListEmpty(_In_ const LIST_ENTRY *ListHead)
NTSTATUS MmArchInitialize(_In_ ULONG Phase, _In_ PBL_MEMORY_DATA MemoryData, _In_ BL_TRANSLATION_TYPE TranslationType, _In_ BL_TRANSLATION_TYPE RequestedTranslationType)
#define BL_MM_INCLUDE_RESERVED_ALLOCATED
int WINAPI EndPage(_In_ HDC)
enum _BL_TRANSLATION_TYPE BL_TRANSLATION_TYPE
NTSTATUS MmMdRemoveRegionFromMdlEx(__in PBL_MEMORY_DESCRIPTOR_LIST MdList, __in ULONG Flags, __in ULONGLONG BasePage, __in ULONGLONG PageCount, __in PBL_MEMORY_DESCRIPTOR_LIST NewMdList)
BL_LOADED_APPLICATION_ENTRY BlpApplicationEntry
NTSTATUS MmTrInitialize(VOID)
ULONG MmDescriptorCallTreeCount
return STATUS_NOT_IMPLEMENTED
VOID MmMdRemoveDescriptorFromList(_In_ PBL_MEMORY_DESCRIPTOR_LIST MdList, _In_ PBL_MEMORY_DESCRIPTOR Entry)
NTSTATUS BlGetBootOptionBoolean(_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PBOOLEAN Value)
_Must_inspect_result_ _In_ WDFDMATRANSACTION _In_ PFN_WDF_PROGRAM_DMA _In_ WDF_DMA_DIRECTION _In_ PMDL _In_ PVOID VirtualAddress
NTSTATUS BlpGetBootOptionIntegerList(_In_ PBL_BCD_OPTION List, _In_ ULONG Type, _Out_ PULONGLONG *Value, _Out_ PULONGLONG Count, _In_ BOOLEAN NoCopy)
PBL_MEMORY_DESCRIPTOR MmMdInitByteGranularDescriptor(_In_ ULONG Flags, _In_ BL_MEMORY_TYPE Type, _In_ ULONGLONG BasePage, _In_ ULONGLONG VirtualPage, _In_ ULONGLONG PageCount)
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)
struct _LIST_ENTRY * Flink
_Must_inspect_result_ _In_ ULONG Flags
#define NT_SUCCESS(StatCode)
NTSTATUS MmBaInitialize(VOID)
NTSTATUS BlMmUnmapVirtualAddressEx(_In_ PVOID VirtualAddress, _In_ ULONGLONG Size)
BL_TRANSLATION_TYPE MmOriginalTranslationType
NTSTATUS BlpMmInitialize(_In_ PBL_MEMORY_DATA MemoryData, _In_ BL_TRANSLATION_TYPE TranslationType, _In_ PBL_LIBRARY_PARAMETERS LibraryParameters)
VOID MmMdFreeGlobalDescriptors(VOID)
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS PhysicalAddress
NTSTATUS BlMmMapPhysicalAddressEx(_In_ PVOID *VirtualAddress, _In_ ULONG Flags, _In_ ULONGLONG Size, _In_ PHYSICAL_ADDRESS PhysicalAddress)
_Must_inspect_result_ _In_ WDFCMRESLIST List
#define BL_MM_INCLUDE_UNMAPPED_ALLOCATED
#define BL_MM_INCLUDE_UNMAPPED_UNALLOCATED
NTSTATUS MmUnmapVirtualAddress(_Inout_ PVOID *VirtualAddress, _Inout_ PULONGLONG Size)
BL_MEMORY_DESCRIPTOR_LIST MmMdlUnmappedUnallocated
PBL_MEMORY_DESCRIPTOR MmMdFindDescriptor(_In_ ULONG WhichList, _In_ ULONG Flags, _In_ ULONGLONG Page)
NTSTATUS MmPaInitialize(_In_ PBL_MEMORY_DATA MemoryData, _In_ ULONG MinimumPages)
VOID MmMdInitialize(_In_ ULONG Phase, _In_ PBL_LIBRARY_PARAMETERS LibraryParameters)
BL_MEMORY_DESCRIPTOR_LIST MmMdlMappingTrackers
VOID EfiPrintf(_In_ PWCHAR Format,...)
BL_MEMORY_DESCRIPTOR_LIST MmMdlPersistentMemory
_Must_inspect_result_ _Outptr_result_bytebuffer_ ViewSize PVOID * MappedBase
__GNU_EXTENSION typedef unsigned __int64 * PULONGLONG
BL_MEMORY_DESCRIPTOR_LIST MmMdlUnmappedAllocated
NTSTATUS MmMapPhysicalAddress(_Inout_ PPHYSICAL_ADDRESS PhysicalAddressPtr, _Inout_ PVOID *VirtualAddressPtr, _Inout_ PULONGLONG SizePtr, _In_ ULONG CacheAttributes)
#define RtlZeroMemory(Destination, Length)
BL_MEMORY_DESCRIPTOR_LIST MmMdlMappedUnallocated
BL_MEMORY_DESCRIPTOR_LIST MmMdlFreeVirtual
BOOLEAN BlMmTranslateVirtualAddress(_In_ PVOID VirtualAddress, _Out_ PPHYSICAL_ADDRESS PhysicalAddress)