22 lines
464 B
C
22 lines
464 B
C
#pragma once
|
|
#include "paging.h"
|
|
#include "stdarg.h"
|
|
|
|
/* Pure Virtual Memory Allocation */
|
|
|
|
// areaAlloc map vmem to phy pages
|
|
#define AREA_PHY_MAP (1<<0)
|
|
|
|
struct memArea {
|
|
vaddr_t startAddr;
|
|
uint nbPages;
|
|
|
|
struct memArea *next;
|
|
struct memArea *prev;
|
|
};
|
|
|
|
void areaInit(vaddr_t firstMemUsed, vaddr_t lastUsed);
|
|
vaddr_t areaAlloc(unsigned int nbPages, uint32_t flags);
|
|
int areaFree(vaddr_t addr);
|
|
int areaAdd(vaddr_t addr, uint nbPages, int isFree);
|