XenevaOS
Loading...
Searching...
No Matches
pmmngr.h
Go to the documentation of this file.
1
32#ifndef __PMMNGR_H__
33#define __PMMNGR_H__
34
35#include <aurora.h>
36
37
38#define AURORA_PAGE_KERNEL (1ULL<<0)
39#define AURORA_PAGE_SHM (1ULL<<1)
40#define AURORA_PAGE_DMA (1ULL<<2)
41#define AURORA_PAGE_NORMAL (1ULL << 3)
52
58extern void AuPmmngrInitialize(KERNEL_BOOT_INFO *info);
59
65
72
78
84AU_EXTERN AU_EXPORT void AuPmmngrFreeBlocks(void* Addr, int Count);
85
91
97
102extern void AuPmmngrMoveHigher();
103
109
115
123extern void AuPmmngrAddRefcount(uint64_t physaddr, uint16_t count);
124
132extern uint16_t AuPmmngrGetRefcount(uint64_t physaddr);
133
139extern AuPageDesc* AuPmmngrGetPageDesc(uint64_t physaddr);
140
146extern void AuPmmngrSetPageType(uint64_t physaddr, uint8_t flags);
147#endif
#define AU_EXTERN
Definition aurora.h:50
#define AU_EXPORT
Definition aurora.h:38
unsigned char uint8_t
Definition acefiex.h:161
COMPILER_DEPENDENT_UINT64 uint64_t
Definition acefiex.h:165
unsigned short int uint16_t
Definition acefiex.h:162
ACPI_PHYSICAL_ADDRESS Address
Definition acpixf.h:637
void AuPmmngrInitialize(KERNEL_BOOT_INFO *info)
AuPmmngrInitialise – initialise the physical memory manager.
Definition pmmngr.cpp:136
struct _au_page_desc_ AuPageDesc
AuPageDesc * AuPmmngrGetPageDesc(uint64_t physaddr)
AuPmmngrGetPageDesc – return the correct page descriptor of given physical address.
Definition pmmngr.c:463
AU_EXTERN AU_EXPORT void * AuPmmngrAlloc()
AuPmmngrAlloc – Allocate a single physical page frame and return it to the caller.
Definition pmmngr.cpp:209
AU_EXTERN AU_EXPORT void AuPmmngrFreeBlocks(void *Addr, int Count)
AuPmmngrFreeBlocks – Free multiple page frames.
Definition pmmngr.cpp:258
AU_EXTERN AU_EXPORT uint64_t P2V(uint64_t addr)
P2V – Physical to Virtual conversion.
Definition pmmngr.cpp:270
uint64_t AuPmmngrGetFreeMem()
AuPmmngrGetFreeMem – returns the total free amount of RAM.
Definition pmmngr.cpp:301
void AuPmmngrSetPageType(uint64_t physaddr, uint8_t flags)
AuPmmngrSetPageType – set page type.
Definition pmmngr.c:472
void AuPmmngrAddRefcount(uint64_t physaddr, uint16_t count)
AuPmmngrAddRefcount – increment reference count of given page.
Definition pmmngr.c:443
uint16_t AuPmmngrGetRefcount(uint64_t physaddr)
AuPmmngrGetRefcount – returns the number of reference count for given physical address.
Definition pmmngr.c:454
AU_EXTERN AU_EXPORT void * AuPmmngrAllocBlocks(int num)
AuPmmngrAllocBlocks – Allocate multiple physical page frames and return the first page pointer to the...
Definition pmmngr.cpp:229
void AuPmmngrMoveHigher()
AuPmmngrMoveHigher – moves the kernel to higher half of memory.
Definition pmmngr.cpp:292
uint64_t AuPmmngrGetTotalMem()
AuPmmngrGetTotalMem – returns the total amount of RAM.
Definition pmmngr.cpp:309
AU_EXTERN AU_EXPORT uint64_t V2P(uint64_t vaddr)
V2P – Virtual to Physical conversion.
Definition pmmngr.cpp:281
AU_EXTERN AU_EXPORT void AuPmmngrFree(void *Address)
AuPmmngrFree – Free a physical page frame.
Definition pmmngr.cpp:241
Definition aurora.h:100
Definition pmmngr.h:46
uint64_t phys_addr
Definition pmmngr.h:47
uint16_t refcount
Definition pmmngr.h:48
uint8_t page_type
Definition pmmngr.h:50
uint64_t last_accessed
Definition pmmngr.h:49