diff --git a/src/kernel/memory/pmm.c b/src/kernel/memory/pmm.c new file mode 100644 index 0000000..b17bf9d --- /dev/null +++ b/src/kernel/memory/pmm.c @@ -0,0 +1,13 @@ +#include + +uintptr_t *first = 0; + +void pmm_free(void *c) +{ + first = c; +} + +void *pmm_alloc() +{ + return first; +} diff --git a/src/kernel/memory/pmm.tt b/src/kernel/memory/pmm.tt new file mode 100644 index 0000000..eff76e4 --- /dev/null +++ b/src/kernel/memory/pmm.tt @@ -0,0 +1,15 @@ +// vim: ft=c +#include + +#include "pmm.c" + +struct { + uint8_t data[PAGE_SIZE]; +}__attribute__((packed)) mem[4]; + +TEST(alloc_returns_freed_page) +{ + pmm_free(&mem[0]); + void *a = pmm_alloc(); + ASSERT_EQ_PTR(a, &mem[0]); +}