2026-02-08 23:51:37 +00:00
|
|
|
#ifndef KMEMORY_H
|
|
|
|
|
#define KMEMORY_H
|
|
|
|
|
|
2026-02-09 02:21:48 +00:00
|
|
|
#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;
|
|
|
|
|
|
2026-02-08 23:51:37 +00:00
|
|
|
void page_init();
|
|
|
|
|
void page_free(void *addr);
|
2026-02-09 00:13:00 +00:00
|
|
|
void *page_alloc();
|
2026-02-09 02:21:48 +00:00
|
|
|
void *kmalloc(size_t size);
|
|
|
|
|
void kfree(void *ptr);
|
|
|
|
|
void kcoalesce(HeapHeader *header);
|
|
|
|
|
void test_memory_integrity();
|
2026-02-08 23:51:37 +00:00
|
|
|
|
|
|
|
|
#endif
|