PatchworkOS
Loading...
Searching...
No Matches
pmm.h
Go to the documentation of this file.
1#pragma once
2
3#include <boot/boot_info.h>
4
27void pmm_init(const boot_memory_map_t* map);
28
36void* pmm_alloc(void);
37
51uint64_t pmm_alloc_pages(void** addresses, uint64_t count);
52
66void* pmm_alloc_bitmap(uint64_t count, uintptr_t maxAddr, uint64_t alignment);
67
76void pmm_free(void* address);
77
87void pmm_free_pages(void** addresses, uint64_t count);
88
99
106
113
122
void pmm_init(const boot_memory_map_t *map)
Initializes the Physical Memory Manager.
Definition pmm.c:152
uint64_t pmm_alloc_pages(void **addresses, uint64_t count)
Allocates multiple physical pages.
Definition pmm.c:175
void pmm_free(void *address)
Frees a single physical page.
Definition pmm.c:211
void pmm_free_pages(void **addresses, uint64_t count)
Frees multiple physical pages.
Definition pmm.c:217
void pmm_free_region(void *address, uint64_t count)
Frees a contiguous region of physical pages.
Definition pmm.c:226
uint64_t pmm_free_amount(void)
Retrieves the amount of free physical memory.
Definition pmm.c:238
uint64_t pmm_reserved_amount(void)
Retrieves the amount of reserved physical memory.
Definition pmm.c:244
void * pmm_alloc_bitmap(uint64_t count, uintptr_t maxAddr, uint64_t alignment)
Allocates a contiguous region of physical pages managed by the bitmap.
Definition pmm.c:198
void * pmm_alloc(void)
Allocates a single physical page.
Definition pmm.c:162
uint64_t pmm_total_amount(void)
Retrieves the total amount of physical memory managed by the PMM.
Definition pmm.c:232
static uintptr_t address
Definition hpet.c:12
boot_memory_map_t * map
Definition mem.c:19
static atomic_long count
Definition main.c:9
__UINT64_TYPE__ uint64_t
Definition stdint.h:17
__UINTPTR_TYPE__ uintptr_t
Definition stdint.h:43