[BOOT:MM] Begin work on memory manager
This commit is contained in:
@@ -21,6 +21,8 @@ Abstract:
|
||||
|
||||
typedef struct {
|
||||
ULONG Flags;
|
||||
ULONG TranslationType;
|
||||
ULONG MinimumPageAllocation;
|
||||
} BOOT_LIBRARY_PARAMETERS, *PBOOT_LIBRARY_PARAMETERS;
|
||||
|
||||
VOID
|
||||
@@ -61,6 +63,13 @@ BlpFwInitialize (
|
||||
IN PBOOT_FIRMWARE_DATA FirmwareData
|
||||
);
|
||||
|
||||
NTSTATUS
|
||||
BlpMmInitialize (
|
||||
IN PBOOT_MEMORY_INFO MemoryInfo,
|
||||
IN ULONG TranslationType,
|
||||
IN PBOOT_LIBRARY_PARAMETERS LibraryParameters
|
||||
);
|
||||
|
||||
NTSTATUS
|
||||
BlInitializeLibrary (
|
||||
IN PBOOT_INPUT_PARAMETERS InputParameters,
|
||||
|
@@ -28,17 +28,18 @@ Abstract:
|
||||
#define BOOT_MACHINE_TYPE IMAGE_FILE_MACHINE_I386
|
||||
#endif
|
||||
|
||||
//
|
||||
// No address translation.
|
||||
//
|
||||
#define BOOT_TRANSLATION_TYPE 0
|
||||
|
||||
//
|
||||
// Use EFI page size.
|
||||
//
|
||||
#define PAGE_SIZE EFI_PAGE_SIZE
|
||||
#define PAGE_SHIFT EFI_PAGE_SHIFT
|
||||
|
||||
//
|
||||
// Address translation types.
|
||||
//
|
||||
#define BOOT_TRANSLATION_TYPE_NONE 0
|
||||
#define BOOT_TRANSLATION_TYPE_MAX 1
|
||||
|
||||
#define BOOT_INPUT_PARAMETERS_SIGNATURE 0x50504120544f4f42 /* "BOOT APP" */
|
||||
#define BOOT_INPUT_PARAMETERS_VERSION 2
|
||||
|
||||
@@ -122,6 +123,19 @@ typedef struct {
|
||||
ULONG Type;
|
||||
} BOOT_MEMORY_DESCRIPTOR, *PBOOT_MEMORY_DESCRIPTOR;
|
||||
|
||||
typedef enum {
|
||||
MDL_TYPE_PHYSICAL,
|
||||
MDL_TYPE_VIRTUAL
|
||||
} BOOT_MEMORY_DESCRIPTOR_LIST_TYPE;
|
||||
|
||||
typedef struct {
|
||||
LIST_ENTRY ListEntry;
|
||||
|
||||
PVOID Head;
|
||||
PVOID Current;
|
||||
BOOT_MEMORY_DESCRIPTOR_LIST_TYPE Type;
|
||||
} BOOT_MEMORY_DESCRIPTOR_LIST, *PBOOT_MEMORY_DESCRIPTOR_LIST;
|
||||
|
||||
#define BOOT_FIRMWARE_DATA_VERSION 2
|
||||
|
||||
typedef struct {
|
||||
@@ -240,6 +254,10 @@ typedef struct {
|
||||
};
|
||||
} BOOT_DEVICE, *PBOOT_DEVICE;
|
||||
|
||||
#define BCDE_DATA_FORMAT_MASK 0x0F000000
|
||||
|
||||
#define BCDE_DATA_FORMAT_DEVICE 1
|
||||
|
||||
typedef enum {
|
||||
BCDE_DATA_TYPE_APPLICATION_DEVICE = 0x11000001,
|
||||
BCDE_DATA_TYPE_APPLICATION_PATH = 0x22000002
|
||||
|
27
BOOT/ENVIRON/INC/mm.h
Normal file
27
BOOT/ENVIRON/INC/mm.h
Normal file
@@ -0,0 +1,27 @@
|
||||
/*++
|
||||
|
||||
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"
|
||||
|
||||
NTSTATUS
|
||||
MmPaInitialize (
|
||||
IN PBOOT_MEMORY_INFO MemoryInfo,
|
||||
IN ULONG MinimumAllocation
|
||||
);
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user