From d2582025dc06e8adb4d69a894e6a83cc7887505e Mon Sep 17 00:00:00 2001 From: Kearwood Gilbert Date: Sat, 15 Aug 2026 15:17:01 -0700 Subject: [PATCH] Added stubs for Heap allocator --- CMakeLists.txt | 2 ++ include/heap.h | 44 +++++++++++++++++++++++++++++++++++ include/mimir.h | 3 ++- src/heap.cpp | 62 +++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 110 insertions(+), 1 deletion(-) create mode 100644 include/heap.h create mode 100644 src/heap.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 6cae0cd..0a3c616 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,12 +9,14 @@ set(PUBLIC_HEADERS include/mimir.h include/arena.h include/block.h + include/heap.h include/util.h ) set(SRCS src/arena.cpp src/block.cpp + src/heap.cpp src/mimir.cpp src/util.cpp ) diff --git a/include/heap.h b/include/heap.h new file mode 100644 index 0000000..e3134f0 --- /dev/null +++ b/include/heap.h @@ -0,0 +1,44 @@ +// +// heap.h +// Kraken Engine / Mimir +// +// Copyright 2026 Kearwood Gilbert. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other materials +// provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY KEARWOOD GILBERT ''AS IS'' AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KEARWOOD GILBERT OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// The views and conclusions contained in the software and documentation are those of the +// authors and should not be interpreted as representing official policies, either expressed +// or implied, of Kearwood Gilbert. +// + +#pragma once + +#include + +namespace mimir { +class Heap +{ +public: + Heap(); + ~Heap(); +}; + +} // namespace mimir diff --git a/include/mimir.h b/include/mimir.h index c924040..c740495 100644 --- a/include/mimir.h +++ b/include/mimir.h @@ -31,8 +31,9 @@ #pragma once -#include "block.h" #include "arena.h" +#include "block.h" +#include "heap.h" #include "util.h" namespace mimir { diff --git a/src/heap.cpp b/src/heap.cpp new file mode 100644 index 0000000..b15e41c --- /dev/null +++ b/src/heap.cpp @@ -0,0 +1,62 @@ +// +// heap.cpp +// Kraken Engine +// +// Copyright 2026 Kearwood Gilbert. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other materials +// provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY KEARWOOD GILBERT ''AS IS'' AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KEARWOOD GILBERT OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// The views and conclusions contained in the software and documentation are those of the +// authors and should not be interpreted as representing official policies, either expressed +// or implied, of Kearwood Gilbert. +// + +#include "../include/mimir.h" +#include "mimir_impl.h" + +#if defined(__unix__) || defined(__APPLE__) || defined(ANDROID) +#include +#include +#include +#include +#endif + +#if defined(_WIN32) || defined(_WIN64) +#include +#include +#endif + +#include +#include +#include +#include + +namespace mimir { + +Heap::Heap() +{ +} + +Heap::~Heap() +{ +} + +} // namespace mimir