summaryrefslogtreecommitdiffhomepage
path: root/Private/NewKit/UserHeap.hpp
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-01-29 18:17:47 +0100
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-01-29 18:18:59 +0100
commit65254486efff0fd1bb78a48ff90b7713a5ce539f (patch)
tree20ce02c12a74ba9e6cd382bf9c1f09a0c611cb4d /Private/NewKit/UserHeap.hpp
parentf03986937db0b927da4b10554801e18e4dc7c43f (diff)
Kernel: Update TODO.
Src: Refactorings according to clang-format. Meta: Update specification. Public: Remove useless UIKit. Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'Private/NewKit/UserHeap.hpp')
-rw-r--r--Private/NewKit/UserHeap.hpp47
1 files changed, 47 insertions, 0 deletions
diff --git a/Private/NewKit/UserHeap.hpp b/Private/NewKit/UserHeap.hpp
new file mode 100644
index 00000000..71a93f6b
--- /dev/null
+++ b/Private/NewKit/UserHeap.hpp
@@ -0,0 +1,47 @@
+/*
+ * ========================================================
+ *
+ * hCore
+ * Copyright 2024 Mahrouss Logic, all rights reserved.
+ *
+ * ========================================================
+ */
+
+#pragma once
+
+#include <NewKit/Array.hpp>
+#include <NewKit/ArrayList.hpp>
+#include <NewKit/ErrorOr.hpp>
+#include <NewKit/PageManager.hpp>
+#include <NewKit/Pmm.hpp>
+#include <NewKit/Ref.hpp>
+
+// last-rev 5/11/23
+// file: pool.hpp
+// description: memory pool for user programs.
+
+#define kPoolMaxSz 4096
+#define kPoolMag 0x5500A1
+
+namespace hCore
+{
+ enum
+ {
+ kPoolHypervisor = 0x2,
+ kPoolShared = 0x4,
+ kPoolUser = 0x6,
+ kPoolRw = 0x8,
+ };
+
+ struct HeapHeader final
+ {
+ UInt32 Magic;
+ Int32 Flags;
+ Boolean Free;
+ UIntPtr Pad;
+ };
+
+ VoidPtr pool_new_ptr(Int32 flags);
+ Int32 pool_free_ptr(voidPtr pointer);
+ Boolean pool_ptr_exists(UIntPtr thePool, UIntPtr thePtr, SizeT theLimit);
+} // namespace hCore