diff options
Diffstat (limited to 'DDK')
| -rw-r--r-- | DDK/KernelAlloc.c (renamed from DDK/KernelStdCxx.cc) | 14 | ||||
| -rw-r--r-- | DDK/KernelCxxRt.cxx | 29 |
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); +} |
