#ifndef ALLOC_H #define ALLOC_H #include <stdint.h> #include <lib/task/task.h> typedef enum MemoryState { FREE = 0, IN_USE = 1 } MemoryState; typedef struct MemoryBlock { struct MemoryBlock* last; struct MemoryBlock* next; MemoryState state; uint32_t size; Task* task; } MemoryBlock; extern void initMemoryAllocation(uint32_t kernelEnd); extern void* malloc(uint32_t size); extern void* mallocTask(uint32_t size, Task* task); extern void free(void* location); extern void printMemoryStack(); extern void freeTaskAllocations(Task* task); extern Task* getCurrentTask(); #endif