matos/core/mem.h

23 lines
439 B
C
Raw Normal View History

2018-08-06 18:41:45 +02:00
#pragma once
#include "stdarg.h"
2018-08-06 18:41:45 +02:00
#define PAGE_SHIFT 12
#define PAGE_SIZE (1 << PAGE_SHIFT)
// Defined in linker.ld script
extern uint32_t __ld_kernel_begin;
extern uint32_t __ld_kernel_end;
struct mem_desc{
unsigned long phy_addr;
unsigned long ref;
2018-08-09 22:19:34 +02:00
struct mem_desc *next, *prev;
2018-08-06 18:41:45 +02:00
};
2018-11-08 22:08:27 +01:00
int memSetup(unsigned long upper_mem);
2018-11-09 17:07:39 +01:00
unsigned long allocPhyPage(void);
int unrefPhyPage(unsigned long addr);
int refPhyPage(unsigned long addr);