adding kmalloc and memory management
This commit is contained in:
parent
6aca680609
commit
3270717168
3 changed files with 126 additions and 22 deletions
|
|
@ -1,8 +1,26 @@
|
|||
#ifndef KMEMORY_H
|
||||
#define KMEMORY_H
|
||||
|
||||
#define PAGE_SIZE 4096
|
||||
|
||||
typedef struct Page {
|
||||
struct Page *next;
|
||||
} Page;
|
||||
|
||||
typedef struct HeapHeader {
|
||||
size_t size;
|
||||
int is_free;
|
||||
struct HeapHeader *next;
|
||||
} HeapHeader;
|
||||
|
||||
static struct Page *free_list = NULL;
|
||||
|
||||
void page_init();
|
||||
void page_free(void *addr);
|
||||
void *page_alloc();
|
||||
void *kmalloc(size_t size);
|
||||
void kfree(void *ptr);
|
||||
void kcoalesce(HeapHeader *header);
|
||||
void test_memory_integrity();
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue