ApertureOS
Macros | Functions | Variables
priv_phys_mem_manager.h File Reference
#include "types.h"
Include dependency graph for priv_phys_mem_manager.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define PAGE_SIZE   KB(4)
 
#define MAX_ALLOCS_PERENTRY   ((PAGE_SIZE / sizeof(PhysAllocInfoEntry)) - 1)
 
#define KB4_DIVISOR   5
 
#define KB4_MAX_VAL   32
 
#define KB4_MAX_VAL_L   6
 
#define KB4_MAX_VAL_MASK   (0xFFFFFFFF >> (32 - KB4_MAX_VAL_L))
 
#define I_OFF(i)   ((i % KB4_DIVISOR) * KB4_MAX_VAL_L)
 
#define SET_FREE_BITCOUNT(i, val)
 
#define GET_FREE_BITCOUNT(i)
 
#define DEC_FREE_BITCOUNT(i)   (SET_FREE_BITCOUNT(i, (GET_FREE_BITCOUNT(i) - 1)))
 
#define INC_FREE_BITCOUNT(i)   (SET_FREE_BITCOUNT(i, (GET_FREE_BITCOUNT(i) + 1)))
 

Functions

void MemMan_Initialize ()
 
void * MemMan_Alloc (uint64_t size)
 
void MemMan_Free (void *ptr, uint64_t size)
 
uint64_t MemMan_CalculateBitmapIndex (uint64_t addr, size_t blockSize)
 
void MemMan_MarkUsed (uint64_t addr, uint64_t size)
 
void MemMan_MarkKB4Used (uint64_t addr, uint64_t size)
 

Variables

uint64_t memory_size
 
uint64_t page_count
 
uint32_t * KB4_Blocks_Bitmap
 
uint32_t * KB4_Blocks_FreeBitCount
 
uint64_t KB4_Blocks_Count
 
uint64_t KB4_Blocks_FreeBitCount_EntryNum
 
uint8_t * MB2_Blocks_Bitmap
 
uint32_t MB2_Blocks_Count
 
uint64_t freePageCount
 
uint64_t totalPageCount
 
uint64_t lastNonFullPage
 

Macro Definition Documentation

#define DEC_FREE_BITCOUNT (   i)    (SET_FREE_BITCOUNT(i, (GET_FREE_BITCOUNT(i) - 1)))
#define GET_FREE_BITCOUNT (   i)
Value:
#define I_OFF(i)
Definition: priv_phys_mem_manager.h:18
#define KB4_MAX_VAL_MASK
Definition: priv_phys_mem_manager.h:13
#define KB4_DIVISOR
Definition: priv_phys_mem_manager.h:10
uint32_t * KB4_Blocks_FreeBitCount
Definition: priv_phys_mem_manager.h:15
#define I_OFF (   i)    ((i % KB4_DIVISOR) * KB4_MAX_VAL_L)
#define INC_FREE_BITCOUNT (   i)    (SET_FREE_BITCOUNT(i, (GET_FREE_BITCOUNT(i) + 1)))
#define KB4_DIVISOR   5
#define KB4_MAX_VAL   32
#define KB4_MAX_VAL_L   6
#define KB4_MAX_VAL_MASK   (0xFFFFFFFF >> (32 - KB4_MAX_VAL_L))
#define MAX_ALLOCS_PERENTRY   ((PAGE_SIZE / sizeof(PhysAllocInfoEntry)) - 1)
#define PAGE_SIZE   KB(4)
#define SET_FREE_BITCOUNT (   i,
  val 
)
Value:
~(KB4_MAX_VAL_MASK << I_OFF((i)))) | \
(((val)&KB4_MAX_VAL_MASK) << I_OFF((i))))
#define I_OFF(i)
Definition: priv_phys_mem_manager.h:18
#define KB4_MAX_VAL_MASK
Definition: priv_phys_mem_manager.h:13
#define KB4_DIVISOR
Definition: priv_phys_mem_manager.h:10
uint32_t * KB4_Blocks_FreeBitCount
Definition: priv_phys_mem_manager.h:15

Function Documentation

void* MemMan_Alloc ( uint64_t  size)
uint64_t MemMan_CalculateBitmapIndex ( uint64_t  addr,
size_t  blockSize 
)
void MemMan_Free ( void *  ptr,
uint64_t  size 
)
void MemMan_Initialize ( )
void MemMan_MarkKB4Used ( uint64_t  addr,
uint64_t  size 
)
void MemMan_MarkUsed ( uint64_t  addr,
uint64_t  size 
)

Variable Documentation

uint64_t freePageCount
uint32_t* KB4_Blocks_Bitmap
uint64_t KB4_Blocks_Count
uint32_t * KB4_Blocks_FreeBitCount
uint64_t KB4_Blocks_FreeBitCount_EntryNum
uint64_t lastNonFullPage
uint8_t* MB2_Blocks_Bitmap
uint32_t MB2_Blocks_Count
uint64_t memory_size
uint64_t page_count
uint64_t totalPageCount