os/include/kernel/heap.h

30 lines
552 B
C
Raw Normal View History

2024-08-10 03:49:28 +02:00
#include <stddef.h>
#include <stdbool.h>
#include <stdint.h>
extern struct Heap_Metadata global_heap;
2025-07-02 13:35:14 +02:00
#ifndef __Heap_Metadata
#define __Heap_Metadata
2024-08-10 03:49:28 +02:00
struct Heap_Metadata {
struct Heap_Block* start;
size_t size;
};
2025-07-02 13:35:14 +02:00
#endif
2024-08-10 03:49:28 +02:00
2025-07-02 13:35:14 +02:00
#ifndef __Heap_Block
#define __Heap_Block
2024-08-10 03:49:28 +02:00
struct Heap_Block {
struct Heap_Block* next;
size_t size;
bool used;
void* data;
};
2025-07-02 13:35:14 +02:00
#endif
2024-08-10 03:49:28 +02:00
void heap_init();
void* malloc(size_t size);
2025-07-01 12:48:05 +02:00
void* alloc_page(size_t num_pages, struct Heap_Block** ptr);
2024-08-10 03:49:28 +02:00
void free(void *ptr);
2025-07-01 12:48:05 +02:00
void free_page(struct Heap_Block *ptr);