os/include/kernel/heap.h
2025-07-02 13:35:14 +02:00

30 lines
552 B
C

#include <stddef.h>
#include <stdbool.h>
#include <stdint.h>
extern struct Heap_Metadata global_heap;
#ifndef __Heap_Metadata
#define __Heap_Metadata
struct Heap_Metadata {
struct Heap_Block* start;
size_t size;
};
#endif
#ifndef __Heap_Block
#define __Heap_Block
struct Heap_Block {
struct Heap_Block* next;
size_t size;
bool used;
void* data;
};
#endif
void heap_init();
void* malloc(size_t size);
void* alloc_page(size_t num_pages, struct Heap_Block** ptr);
void free(void *ptr);
void free_page(struct Heap_Block *ptr);