Go to the source code of this file.
|
| | BITMAP_CREATE_ONE (bitmap, CONFIG_PMM_BITMAP_MAX_ADDR/PAGE_SIZE) |
| |
| static bool | pmm_is_mem_avail (EFI_MEMORY_TYPE type) |
| |
| static void | pmm_stack_push (pfn_t pfn) |
| |
| static pfn_t | pmm_stack_pop (void) |
| |
| static pfn_t | pmm_bitmap_set (size_t count, pfn_t maxPfn, pfn_t alignPfn) |
| |
| static void | pmm_bitmap_clear (pfn_t pfn, size_t pageAmount) |
| |
| static void | pmm_free_unlocked (pfn_t pfn) |
| |
| static void | pmm_free_region_unlocked (pfn_t pfn, size_t count) |
| |
| static void | pmm_detect_memory (const boot_memory_map_t *map) |
| |
| static void | pmm_init_refs (const boot_memory_map_t *map) |
| |
| static void | pmm_load_memory (const boot_memory_map_t *map) |
| |
| void | pmm_init (void) |
| | Read the boot info memory map and initialize the PMM.
|
| |
| pfn_t | pmm_alloc (void) |
| | Allocate a single page of physical memory.
|
| |
| uint64_t | pmm_alloc_pages (pfn_t *pfns, size_t count) |
| | Allocate multiple pages of physical memory.
|
| |
| pfn_t | pmm_alloc_bitmap (size_t count, pfn_t maxPfn, pfn_t alignPfn) |
| | Allocate a contiguous region of physical memory using the bitmap.
|
| |
| void | pmm_free (pfn_t pfn) |
| | Free a single page of physical memory.
|
| |
| void | pmm_free_pages (pfn_t *pfns, size_t count) |
| | Free multiple pages of physical memory.
|
| |
| void | pmm_free_region (pfn_t pfn, size_t count) |
| | Free a contiguous region of physical memory.
|
| |
| uint64_t | pmm_ref_inc (pfn_t pfn, size_t count) |
| | Increment the reference count of a physical region.
|
| |
| size_t | pmm_total_pages (void) |
| | Get the total number of physical pages.
|
| |
| size_t | pmm_avail_pages (void) |
| | Get the number of available physical pages.
|
| |
| size_t | pmm_used_pages (void) |
| | Get the number of used physical pages.
|
| |
◆ BITMAP_CREATE_ONE()
◆ pmm_is_mem_avail()
| static bool pmm_is_mem_avail |
( |
EFI_MEMORY_TYPE |
type | ) |
|
|
static |
Definition at line 51 of file pmm.c.
◆ pmm_stack_push()
| static void pmm_stack_push |
( |
pfn_t |
pfn | ) |
|
|
inlinestatic |
Definition at line 71 of file pmm.c.
◆ pmm_stack_pop()
| static pfn_t pmm_stack_pop |
( |
void |
| ) |
|
|
inlinestatic |
Definition at line 86 of file pmm.c.
◆ pmm_bitmap_set()
◆ pmm_bitmap_clear()
| static void pmm_bitmap_clear |
( |
pfn_t |
pfn, |
|
|
size_t |
pageAmount |
|
) |
| |
|
inlinestatic |
◆ pmm_free_unlocked()
| static void pmm_free_unlocked |
( |
pfn_t |
pfn | ) |
|
|
static |
◆ pmm_free_region_unlocked()
| static void pmm_free_region_unlocked |
( |
pfn_t |
pfn, |
|
|
size_t |
count |
|
) |
| |
|
static |
◆ pmm_detect_memory()
◆ pmm_init_refs()
◆ pmm_load_memory()
◆ efiMemTypeToString
| const char* efiMemTypeToString[] |
|
static |
Initial value:= {
"reserved",
"loader code",
"loader data",
"boot services code",
"boot services data",
"runtime services code",
"runtime services data",
"conventional",
"unusable",
"acpi reclaim",
"acpi memory nvs",
"io",
"io port space",
"pal code",
"persistent",
}
Definition at line 20 of file pmm.c.
◆ pages
Definition at line 38 of file pmm.c.
◆ stack
Definition at line 40 of file pmm.c.
◆ location
Definition at line 41 of file pmm.c.
◆ highest
Definition at line 45 of file pmm.c.
◆ total
Definition at line 46 of file pmm.c.
◆ avail
Definition at line 47 of file pmm.c.
◆ lock
Definition at line 49 of file pmm.c.