matos/core/mem.h
2020-08-28 22:40:21 +02:00

23 lines
494 B
C

#pragma once
#include "stdarg.h"
#include "types.h"
#define PAGE_SHIFT 12U
#define PAGE_SIZE (1U << PAGE_SHIFT)
// Defined in linker.ld script
extern uint32_t __ld_kernel_begin;
extern uint32_t __ld_kernel_end;
struct mem_desc {
paddr_t phy_addr;
long ref;
struct mem_desc *next, *prev;
};
int memSetup(paddr_t upperMem, paddr_t *lastUsed);
paddr_t allocPhyPage(uint nbPage);
int unrefPhyPage(paddr_t addr);
int refPhyPage(paddr_t addr);
unsigned long getNbAllocatedPage(void);