ApertureOS
Macros | Typedefs | Enumerations | Functions
virt_mem_manager.h File Reference
#include "types.h"
Include dependency graph for virt_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_DIR_STORAGE_POOL_SIZE   MB(18)
 
#define MEMIO_TOP_BASE   0xF0000000
 
#define VIRTUALIZE_HIGHER_MEM_OFFSET(a)   (((uint32_t)a - 0xF0000000) + 0x10000000)
 

Typedefs

typedef uint64_t * VirtMemMan_Instance
 

Enumerations

enum  MEM_TYPES { MEM_TYPE_UC = 2, MEM_TYPE_WB = 0, MEM_TYPE_WT = 1, MEM_TYPE_WC = 3 }
 
enum  MEM_ACCESS_PERMS { MEM_WRITE = 2, MEM_READ = 4, MEM_EXEC = 1 }
 
enum  MEM_SECURITY_PERMS { MEM_KERNEL = 0, MEM_USER = 1 }
 

Functions

void virtMemMan_Setup (void)
 
VirtMemMan_Instance virtMemMan_SetCurrent (VirtMemMan_Instance instance)
 
VirtMemMan_Instance virtMemMan_GetCurrent (void)
 
VirtMemMan_Instance virtMemMan_CreateInstance (void)
 
void virtMemMan_Fork (VirtMemMan_Instance dst, VirtMemMan_Instance src)
 
void virtMemMan_ForkCurrent (VirtMemMan_Instance dst)
 
void * virtMemMan_FindEmptyAddress (size_t size, MEM_SECURITY_PERMS privLevel)
 
uint32_t virtMemMan_Map (uint32_t v_address, uint64_t phys_address, size_t size, MEM_TYPES type, MEM_ACCESS_PERMS perms, MEM_SECURITY_PERMS privLevel)
 
void virtMemMan_UnMap (void *v_address, size_t size)
 
void virtMemMan_FreeInstance (VirtMemMan_Instance inst)
 
uint64_t virtMemMan_GetPhysAddress (void *virt_addr)
 
uint64_t virtMemMan_GetPhysAddressInst (VirtMemMan_Instance curInstance_virt, void *virt_addr)
 
void * virtMemMan_FindEmptyAddressInst (VirtMemMan_Instance curInstance_virt, size_t size, MEM_SECURITY_PERMS privLevel)
 
uint32_t virtMemMan_MapInst (VirtMemMan_Instance curInstance_virt, uint32_t v_address, uint64_t phys_address, size_t size, MEM_TYPES type, MEM_ACCESS_PERMS perms, MEM_SECURITY_PERMS privLevel)
 
void virtMemMan_UnMapInst (VirtMemMan_Instance curInstance_virt, void *v_address, size_t size)
 

Macro Definition Documentation

#define MEMIO_TOP_BASE   0xF0000000
#define PAGE_DIR_STORAGE_POOL_SIZE   MB(18)
#define VIRTUALIZE_HIGHER_MEM_OFFSET (   a)    (((uint32_t)a - 0xF0000000) + 0x10000000)

Typedef Documentation

typedef uint64_t* VirtMemMan_Instance

Enumeration Type Documentation

Enumerator
MEM_WRITE 
MEM_READ 
MEM_EXEC 
Enumerator
MEM_KERNEL 
MEM_USER 
enum MEM_TYPES
Enumerator
MEM_TYPE_UC 
MEM_TYPE_WB 
MEM_TYPE_WT 
MEM_TYPE_WC 

Function Documentation

VirtMemMan_Instance virtMemMan_CreateInstance ( void  )
void* virtMemMan_FindEmptyAddress ( size_t  size,
MEM_SECURITY_PERMS  privLevel 
)
void* virtMemMan_FindEmptyAddressInst ( VirtMemMan_Instance  curInstance_virt,
size_t  size,
MEM_SECURITY_PERMS  privLevel 
)
void virtMemMan_Fork ( VirtMemMan_Instance  dst,
VirtMemMan_Instance  src 
)
void virtMemMan_ForkCurrent ( VirtMemMan_Instance  dst)
void virtMemMan_FreeInstance ( VirtMemMan_Instance  inst)
VirtMemMan_Instance virtMemMan_GetCurrent ( void  )
uint64_t virtMemMan_GetPhysAddress ( void *  virt_addr)
uint64_t virtMemMan_GetPhysAddressInst ( VirtMemMan_Instance  curInstance_virt,
void *  virt_addr 
)
uint32_t virtMemMan_Map ( uint32_t  v_address,
uint64_t  phys_address,
size_t  size,
MEM_TYPES  type,
MEM_ACCESS_PERMS  perms,
MEM_SECURITY_PERMS  privLevel 
)
uint32_t virtMemMan_MapInst ( VirtMemMan_Instance  curInstance_virt,
uint32_t  v_address,
uint64_t  phys_address,
size_t  size,
MEM_TYPES  type,
MEM_ACCESS_PERMS  perms,
MEM_SECURITY_PERMS  privLevel 
)
VirtMemMan_Instance virtMemMan_SetCurrent ( VirtMemMan_Instance  instance)
void virtMemMan_Setup ( void  )
void virtMemMan_UnMap ( void *  v_address,
size_t  size 
)
void virtMemMan_UnMapInst ( VirtMemMan_Instance  curInstance_virt,
void *  v_address,
size_t  size 
)