This repository has been archived on 2025-02-26. You can view files and clone it, but cannot push or open issues or pull requests.
hilbert-os/euler/source/std/cstdlib.cpp

19 lines
386 B
C++

#include <euler/heap.hpp>
#include <cstdlib>
extern "C" [[noreturn]] void abort() noexcept {
//TODO
while (1)
;
}
extern "C" void *malloc(size_t size) {
size_t *block = (size_t *)euler::heap::get_block(size + 8);
*block = size;
return block + 1;
}
extern "C" void free(void *ptr) {
size_t *block = (size_t *)ptr - 1;
euler::heap::return_block(block, *block + 8);
}