|
XenevaOS
|
#include <Mm/pmmngr.h>#include <Mm/vmmngr.h>#include <Hal/AA64/aa64lowlevel.h>#include <Sync/spinlock.h>#include <efi.h>#include <aucon.h>#include <string.h>#include <stdint.h>#include <_null.h>
Classes | |
| struct | PmmPageDesc |
| struct | PmmRange |
| struct | LBMemoryRegion |
Macros | |
| #define | PAGE_SHIFT 12 |
| #define | PAGE_SIZE (1ULL << PAGE_SHIFT) |
| #define | PMM_MAX_ORDER 32 |
| #define | PMM_MAX_REGIONS 128 |
| #define | PMM_MAX_RESERVATIONS 1024 |
| #define | PMM_NO_PAGE UINT64_MAX |
Typedefs | |
| typedef struct PmmPageDesc | PmmPageDesc |
| typedef struct PmmRange | PmmRange |
| typedef struct LBMemoryRegion | LBMemoryRegion |
Enumerations | |
| enum | PmmPageState { PMM_PAGE_UNMANAGED , PMM_PAGE_RESERVED , PMM_PAGE_FREE_HEAD , PMM_PAGE_FREE_TAIL , PMM_PAGE_ALLOC_HEAD , PMM_PAGE_ALLOC_TAIL } |
Functions | |
| bool | AuPmmngrValidate (void) |
| void | AuPmmngrInitialize (KERNEL_BOOT_INFO *info) |
| uint64_t | AuPmmngrAllocPages (uint32_t pages, uint32_t alignment, uint64_t ceiling, uint8_t type) |
| uint64_t | AuPmmngrAllocPage (uint8_t type) |
| bool | AuPmmngrReleasePage (uint64_t phys) |
| bool | AuPmmngrReleasePages (uint64_t phys) |
| bool | AuPmmngrRetainPage (uint64_t phys) |
| uint16_t | AuPmmngrPageRefcount (uint64_t phys) |
| bool | AuPmmngrSetBackingBlock (uint64_t phys, int64_t block) |
| int64_t | AuPmmngrGetBackingBlock (uint64_t phys) |
| void | AuPmmngrGetStats (AuPmmStats *stats) |
| bool | AuPmmngrAllocCheck (uint64_t address) |
| uint64_t | P2V (uint64_t addr) |
| P2V – Physical to Virtual conversion. | |
| uint64_t | V2P (uint64_t addr) |
| V2P – Virtual to Physical conversion. | |
| void | AuPmmngrMoveHigher (void) |
| AuPmmngrMoveHigher – moves the kernel to higher half of memory. | |
| void | AuPmmngrDebugInfo (void) |
| #define PAGE_SHIFT 12 |
ARM64 region-aware buddy physical-memory manager.
| #define PAGE_SIZE (1ULL << PAGE_SHIFT) |
| #define PMM_MAX_ORDER 32 |
| #define PMM_MAX_REGIONS 128 |
| #define PMM_MAX_RESERVATIONS 1024 |
| #define PMM_NO_PAGE UINT64_MAX |
| typedef struct LBMemoryRegion LBMemoryRegion |
| typedef struct PmmPageDesc PmmPageDesc |
| enum PmmPageState |
| void AuPmmngrDebugInfo | ( | void | ) |
| void AuPmmngrGetStats | ( | AuPmmStats * | stats | ) |
| void AuPmmngrInitialize | ( | KERNEL_BOOT_INFO * | info | ) |
| void AuPmmngrMoveHigher | ( | void | ) |
AuPmmngrMoveHigher – moves the kernel to higher half of memory.
| bool AuPmmngrValidate | ( | void | ) |
P2V – Physical to Virtual conversion.
| addr | – Address to convert |