Started BlpMmDestroy(), MmMdDestroy(), MmPaDestroy(), EfiSetWatchdogTimer(), EfiOpenProtocol(), EfiConInExSetState(), and BlDestroyLibrary(). Completed BlpFwInitialize(). Improved InitializeLibrary().
124 lines
2.0 KiB
C
124 lines
2.0 KiB
C
/*++
|
|
|
|
Copyright (c) 2024, Quinn Stephens.
|
|
Provided under the BSD 3-Clause license.
|
|
|
|
Module Name:
|
|
|
|
mm.h
|
|
|
|
Abstract:
|
|
|
|
Boot memory manager definitions.
|
|
|
|
--*/
|
|
|
|
#ifndef _MM_H
|
|
#define _MM_H
|
|
|
|
#include "bootlib.h"
|
|
|
|
#define MDL_OPERATION_FLAGS_TRUNCATE 0x00000002
|
|
#define MDL_OPERATION_FLAGS_PHYSICAL 0x40000000
|
|
#define MDL_OPERATION_FLAGS_VIRTUAL 0x80000000
|
|
|
|
extern ULONG MmTranslationType;
|
|
|
|
NTSTATUS
|
|
MmFwGetMemoryMap (
|
|
IN OUT PMEMORY_DESCRIPTOR_LIST Mdl,
|
|
IN ULONG Flags
|
|
);
|
|
|
|
BOOLEAN
|
|
MmMdpHasPrecedence (
|
|
IN MEMORY_TYPE A,
|
|
IN MEMORY_TYPE B
|
|
);
|
|
|
|
BOOLEAN
|
|
MmMdpTruncateDescriptor (
|
|
IN PMEMORY_DESCRIPTOR_LIST Mdl,
|
|
IN PMEMORY_DESCRIPTOR Descriptor,
|
|
IN ULONG Flags
|
|
);
|
|
|
|
NTSTATUS
|
|
MmMdAddDescriptorToList (
|
|
IN PMEMORY_DESCRIPTOR_LIST Mdl,
|
|
IN PMEMORY_DESCRIPTOR Descriptor,
|
|
IN ULONG Flags
|
|
);
|
|
|
|
VOID
|
|
MmMdRemoveDescriptorFromList (
|
|
IN PMEMORY_DESCRIPTOR_LIST Mdl,
|
|
IN PMEMORY_DESCRIPTOR Descriptor
|
|
);
|
|
|
|
PMEMORY_DESCRIPTOR
|
|
MmMdFindDescriptorFromMdl (
|
|
IN PMEMORY_DESCRIPTOR_LIST Mdl,
|
|
IN ULONGLONG Page,
|
|
IN ULONG Flags
|
|
);
|
|
|
|
NTSTATUS
|
|
MmMdRemoveRegionFromMdlEx (
|
|
IN PMEMORY_DESCRIPTOR_LIST Mdl,
|
|
IN ULONGLONG FirstPage,
|
|
IN ULONGLONG PageCount,
|
|
IN ULONG Flags,
|
|
OUT PMEMORY_DESCRIPTOR_LIST Unused
|
|
);
|
|
|
|
NTSTATUS
|
|
MmMdRemoveRegionFromMdl (
|
|
IN PMEMORY_DESCRIPTOR_LIST Mdl,
|
|
IN ULONGLONG RemoveStart,
|
|
IN ULONGLONG PageCount,
|
|
IN ULONG Flags
|
|
);
|
|
|
|
NTSTATUS
|
|
MmMdFreeDescriptor (
|
|
IN PMEMORY_DESCRIPTOR Descriptor
|
|
);
|
|
|
|
VOID
|
|
MmMdFreeList (
|
|
IN PMEMORY_DESCRIPTOR_LIST Mdl
|
|
);
|
|
|
|
PMEMORY_DESCRIPTOR
|
|
MmMdInitDescriptor (
|
|
IN ULONGLONG FirstPage,
|
|
IN ULONGLONG MappedFirstPage,
|
|
IN ULONGLONG PageCount,
|
|
IN ULONG Attributes,
|
|
IN MEMORY_TYPE Type
|
|
);
|
|
|
|
NTSTATUS
|
|
MmMdDestroy (
|
|
);
|
|
|
|
VOID
|
|
MmMdInitialize (
|
|
IN ULONG Unused,
|
|
IN PBOOT_LIBRARY_PARAMETERS LibraryParameters
|
|
);
|
|
|
|
NTSTATUS
|
|
MmPaDestroy (
|
|
IN ULONG Stage
|
|
);
|
|
|
|
NTSTATUS
|
|
MmPaInitialize (
|
|
IN PBOOT_MEMORY_INFO MemoryInfo,
|
|
IN ULONG MinimumAllocation
|
|
);
|
|
|
|
#endif
|