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)
49#define PMM_OWNER_KERNEL 0
56#ifdef __XENEVA_DEBUG_ALLOC__
64#define PMM_INVALID_PHYS UINT64_MAX
105#define AuPmmngrAllocPage(type) ((uint64_t)AuPmmngrAlloc())
106#define AuPmmngrAllocPages(pages, alignment, ceiling, type) \
107 ((uint64_t)AuPmmngrAllocBlocks((int)(pages)))
108#define AuPmmngrReleasePage(physaddr) \
109 (AuPmmngrFree((void*)(uint64_t)(physaddr)), true)
#define AU_EXTERN
Definition aurora.h:54
#define AU_EXPORT
Definition aurora.h:40
uint8_t flags
Definition virtio.h:0
int int32_t
Definition acefiex.h:160
unsigned int uint32_t
Definition acefiex.h:163
COMPILER_DEPENDENT_INT64 int64_t
Definition acefiex.h:164
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
size_t pages
Definition audrv.c:83
void AuPmmngrReleasePages(void)
AuProcess * owner
Definition netproxy.c:38
void AuPmmngrGetStats(AuPmmStats *stats)
Definition pmmngr.c:840
bool AuPmmngrSetBackingBlock(uint64_t phys, int64_t block)
Definition pmmngr.c:814
int64_t AuPmmngrGetBackingBlock(uint64_t phys)
Definition pmmngr.c:828
bool AuPmmngrRetainPage(uint64_t phys)
Definition pmmngr.c:789
uint16_t AuPmmngrPageRefcount(uint64_t phys)
Definition pmmngr.c:804
bool AuPmmngrValidate(void)
Definition pmmngr.c:345
void AuPmmngrInitialize(KERNEL_BOOT_INFO *info)
Definition pmmngr.cpp:136
AU_EXTERN AU_EXPORT uint64_t AuPmmngrAllocPagesForOwner(uint32_t pages, uint32_t alignment_pages, uint64_t max_phys_inclusive, uint8_t page_type, int32_t owner)
Definition pmmngr.c:629
uint64_t AuPmmngrGetUsedMem()
struct _au_pmm_stats_ AuPmmStats
struct _au_page_desc_ AuPageDesc
AuPageDesc * AuPmmngrGetPageDesc(uint64_t physaddr)
AU_EXTERN AU_EXPORT void * AuPmmngrAlloc()
Definition pmmngr.cpp:209
AU_EXTERN AU_EXPORT void AuPmmngrFreeBlocks(void *Addr, int Count)
Definition pmmngr.cpp:258
uint64_t AuPmmngrGetFreeMem()
Definition pmmngr.cpp:301
#define AuPmmngrReleasePage(physaddr)
Definition pmmngr.h:108
void AuPmmngrSetPageType(uint64_t physaddr, uint8_t flags)
void AuPmmOwnerTeardownCheck(int32_t owner, const char *tag)
Definition pmmngr.c:675
#define AuPmmngrAllocPages(pages, alignment, ceiling, type)
Definition pmmngr.h:106
AU_EXTERN AU_EXPORT uint64_t AuPmmOwnerPages(int32_t owner)
Definition pmmngr.c:661
void AuPmmngrAddRefcount(uint64_t physaddr, uint16_t count)
uint16_t AuPmmngrGetRefcount(uint64_t physaddr)
AU_EXTERN AU_EXPORT void * AuPmmngrAllocBlocks(int num)
Definition pmmngr.cpp:229
void AuPmmngrMoveHigher()
AuPmmngrMoveHigher – moves the kernel to higher half of memory.
Definition pmmngr.cpp:292
uint64_t AuPmmngrGetTotalMem()
Definition pmmngr.cpp:309
AU_EXTERN AU_EXPORT uint64_t AuPmmngrAllocPageForOwner(uint8_t page_type, int32_t owner)
Definition pmmngr.c:655
AU_EXTERN AU_EXPORT void AuPmmngrFree(void *Address)
Definition pmmngr.cpp:241
#define AuPmmngrAllocPage(type)
Definition pmmngr.h:105
uint64_t phys_addr
Definition pmmngr.h:88
uint16_t refcount
Definition pmmngr.h:89
uint8_t page_type
Definition pmmngr.h:91
uint64_t last_accessed
Definition pmmngr.h:90
int64_t diskblock
Definition pmmngr.h:92
uint64_t managed_pages
Definition pmmngr.h:67
uint64_t reserved_pages
Definition pmmngr.h:70
uint64_t unmanaged_pages
Definition pmmngr.h:71
uint64_t allocated_pages
Definition pmmngr.h:69
uint64_t free_pages
Definition pmmngr.h:68