From 776fd87862ed851bae1f1a3293831e69439412b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Lov=C3=A9n?= Date: Thu, 21 Dec 2017 15:00:35 +0100 Subject: [PATCH] PMM - alloc returns freed page --- src/kernel/memory/pmm.c | 13 +++++++++++++ src/kernel/memory/pmm.tt | 15 +++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 src/kernel/memory/pmm.c create mode 100644 src/kernel/memory/pmm.tt 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]); +}