[BOOT] More header stuff
This commit is contained in:
parent
b63d80d5c9
commit
72f7e5057c
@ -109,9 +109,39 @@ typedef struct {
|
||||
ULONG BasePageOffset;
|
||||
} BOOT_MEMORY_INFO, *PBOOT_MEMORY_INFO;
|
||||
|
||||
#define MEMORY_ATTRIBUTE_CACHE_WB 0x08
|
||||
/* Memory descriptor caching attributes */
|
||||
#define MEMORY_ATTRIBUTE_UC 0x0000000000000001
|
||||
#define MEMORY_ATTRIBUTE_WC 0x0000000000000002
|
||||
#define MEMORY_ATTRIBUTE_WT 0x0000000000000004
|
||||
#define MEMORY_ATTRIBUTE_WB 0x0000000000000008
|
||||
#define MEMORY_ATTRIBUTE_UCE 0x0000000000000010
|
||||
|
||||
#define MEMORY_TYPE_BOOT_APPLICATION 0xd0000002
|
||||
/* Memory descriptor protection attributes */
|
||||
#define MEMORY_ATTRIBUTE_WP 0x000000000000100
|
||||
#define MEMORY_ATTRIBUTE_RP 0x000000000000200
|
||||
#define MEMORY_ATTRIBUTE_XP 0x000000000000400
|
||||
|
||||
/* Memory descriptor location attributes */
|
||||
#define MEMORY_ATTRIBUTE_BELOW_1MIB 0x80000
|
||||
|
||||
/* Memory descriptor runtime mapping attributes */
|
||||
#define MEMORY_ATTRIBUTE_RUNTIME 0x1000000
|
||||
|
||||
typedef enum {
|
||||
MEMORY_TYPE_BOOT_APPLICATION = 0xD0000002,
|
||||
MEMORY_TYPE_FREE = 0xF0000001,
|
||||
MEMORY_TYPE_UNUSABLE = 0xF0000002,
|
||||
MEMORY_TYPE_RESERVED = 0xF0000003,
|
||||
MEMORY_TYPE_BOOT_SERVICES = 0xF0000004,
|
||||
MEMORY_TYPE_RUNTIME_SERVICES_CODE = 0xF0000006,
|
||||
MEMORY_TYPE_PERSISTENT = 0xF0000007,
|
||||
MEMORY_TYPE_ACPI_RECLAIM = 0xF0000008,
|
||||
MEMORY_TYPE_ACPI_NVS = 0xF0000009,
|
||||
MEMORY_TYPE_MMIO = 0xF000000A,
|
||||
MEMORY_TYPE_MMIO_PORT_SPACE = 0xF000000B,
|
||||
MEMORY_TYPE_PAL_CODE = 0xF000000C,
|
||||
MEMORY_TYPE_RUNTIME_SERVICES_DATA = 0xF000000E
|
||||
} MEMORY_TYPE;
|
||||
|
||||
typedef struct {
|
||||
LIST_ENTRY ListEntry;
|
||||
|
@ -123,6 +123,16 @@ EFI_STATUS
|
||||
IN UINTN Pages
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_GET_MEMORY_MAP) (
|
||||
IN OUT UINTN *MemoryMapSize,
|
||||
IN OUT EFI_MEMORY_DESCRIPTOR *MemoryMap,
|
||||
IN OUT UINTN *MapKey,
|
||||
IN OUT UINTN *DescriptorSize,
|
||||
IN OUT UINT32 *DescriptorVersion
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_HANDLE_PROTOCOL) (
|
||||
@ -139,7 +149,7 @@ typedef struct _EFI_BOOT_SERVICES {
|
||||
|
||||
EFI_ALLOCATE_PAGES AllocatePages;
|
||||
EFI_FREE_PAGES FreePages;
|
||||
EFI_HANDLE GetMemoryMap;
|
||||
EFI_GET_MEMORY_MAP GetMemoryMap;
|
||||
EFI_HANDLE AllocatePool;
|
||||
EFI_HANDLE FreePool;
|
||||
|
||||
|
@ -30,4 +30,9 @@ EfiGetEfiStatusCode (
|
||||
IN NTSTATUS Status
|
||||
);
|
||||
|
||||
NTSTATUS
|
||||
EfiGetNtStatusCode (
|
||||
IN EFI_STATUS Status
|
||||
);
|
||||
|
||||
#endif
|
||||
|
@ -24,6 +24,13 @@ MmFwGetMemoryMap (
|
||||
IN ULONG Flags
|
||||
);
|
||||
|
||||
NTSTATUS
|
||||
MmMdAddDescriptorToList (
|
||||
IN PMEMORY_DESCRIPTOR_LIST Mdl,
|
||||
IN PMEMORY_DESCRIPTOR Descriptor,
|
||||
IN ULONG Flags
|
||||
);
|
||||
|
||||
VOID
|
||||
MmMdRemoveDescriptorFromList (
|
||||
IN PMEMORY_DESCRIPTOR_LIST Mdl,
|
||||
@ -40,6 +47,15 @@ MmMdFreeList (
|
||||
IN PMEMORY_DESCRIPTOR_LIST Mdl
|
||||
);
|
||||
|
||||
PMEMORY_DESCRIPTOR
|
||||
MmMdInitDescriptor (
|
||||
IN ULONGLONG BasePage,
|
||||
IN ULONGLONG MappedBasePage,
|
||||
IN ULONGLONG PageCount,
|
||||
IN ULONG Attributes,
|
||||
IN MEMORY_TYPE Type
|
||||
);
|
||||
|
||||
VOID
|
||||
MmMdInitialize (
|
||||
IN ULONG Unused,
|
||||
|
Loading…
Reference in New Issue
Block a user