forked from PoliEcho-holding-org/kern
Full PMM implementation
This commit is contained in:
@@ -40,6 +40,7 @@ typedef char* va_list;
|
||||
#define max(_x, _y) ({ typeof(_x) __x = (_x); typeof(_y) __y = (_y); __x > __y ? __x : __y; })
|
||||
#define ceil(_x, _y) ((((_x) + (_y)) (_y)) * (_y))
|
||||
#define floor(_x, _y) ((_x) - ((_x) % (_y)))
|
||||
#define dceil(_x, _y) (((_x) + (_y) - 1) / (_y))
|
||||
|
||||
/*
|
||||
* Attribute definitions
|
||||
|
||||
@@ -27,6 +27,8 @@ extern uint32_t init_pagedir[1024]; // Defined in entry.s for initial paging
|
||||
extern size_t pag_pageCount;
|
||||
|
||||
int pag_init(void);
|
||||
void pag_registerTempFrame(uint32_t target);
|
||||
uint32_t pag_tempFrame(void);
|
||||
void pag_mapPage(uint32_t vaddr, uint32_t paddr, uint32_t flags);
|
||||
uint32_t pag_umapPage(uint32_t vaddr);
|
||||
void* pag_virtToPhys(uint32_t vaddr);
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
#define PMM_BS 4096 // Block Size
|
||||
#define PMM_BPB 8 // Blocks per byte
|
||||
|
||||
extern int pmm_ready;
|
||||
|
||||
int pmm_init(void);
|
||||
void pmm_initRegion(size_t base, size_t len);
|
||||
void pmm_deinitRegion(size_t base, size_t len);
|
||||
|
||||
Reference in New Issue
Block a user