summaryrefslogtreecommitdiffhomepage
path: root/DDK
diff options
context:
space:
mode:
authorAmlal <amlal@zka.com>2024-07-20 08:43:16 +0200
committerAmlal <amlal@zka.com>2024-07-20 08:43:16 +0200
commit650fee520f526d9cd5ffa75735bd94d5140dd247 (patch)
tree5967c57a2e754c0f46bccfba40a915a680dcaa10 /DDK
parent81b284cacb03b34ae259c485ac874b02c8ecba69 (diff)
[IMP] See below.
- Revoke OTA flag for now inside bootloader (newosldr #4) - Rework Comm as SCI (System Call Interface) (newoskrnl #3) - Rework and fix some parts of the scheduler (newoskrnl #2) - Return from thread when region is zero (newosldr #1) - Separate allocation functions and c++ runtime from each other. (DDK #5) - Rename kHartStandard to kStandard (newoskrnl #6) Signed-off-by: Amlal <amlal@zka.com>
Diffstat (limited to 'DDK')
-rw-r--r--DDK/KernelAlloc.c (renamed from DDK/KernelStdCxx.cc)14
-rw-r--r--DDK/KernelCxxRt.cxx29
2 files changed, 31 insertions, 12 deletions
diff --git a/DDK/KernelStdCxx.cc b/DDK/KernelAlloc.c
index be5c438d..6f31ae1c 100644
--- a/DDK/KernelStdCxx.cc
+++ b/DDK/KernelAlloc.c
@@ -2,27 +2,17 @@
Copyright ZKA Technologies
- Purpose: Driver C++ Definitions.
+ Purpose: Standard library.
------------------------------------------- */
#include <DDK/KernelStd.h>
-void* operator new(size_t sz)
-{
- return kernelAlloc(sz);
-}
-
-void operator delete(void* ptr) noexcept
-{
- kernelFree(ptr);
-}
-
DK_EXTERN void* kernelAlloc(size_t sz)
{
if (!sz) ++sz;
- auto ptr = kernelCall("NewHeap", 1, &sz, sizeof(size_t));
+ void* ptr = kernelCall("NewHeap", 1, &sz, sizeof(size_t));
kernelCall("ProtectHeap", 1, ptr, sz);
return ptr;
diff --git a/DDK/KernelCxxRt.cxx b/DDK/KernelCxxRt.cxx
new file mode 100644
index 00000000..8a5f4c66
--- /dev/null
+++ b/DDK/KernelCxxRt.cxx
@@ -0,0 +1,29 @@
+/* -------------------------------------------
+
+ Copyright ZKA Technologies
+
+ Purpose: Driver C++ Definitions.
+
+------------------------------------------- */
+
+#include <DDK/KernelStd.h>
+
+void* operator new(size_t sz)
+{
+ return kernelAlloc(sz);
+}
+
+void operator delete(void* ptr)
+{
+ kernelFree(ptr);
+}
+
+void* operator new[](size_t sz)
+{
+ return kernelAlloc(sz);
+}
+
+void operator delete[](void* ptr)
+{
+ kernelFree(ptr);
+}