diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-08-18 21:39:29 +0200 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-08-18 21:39:29 +0200 |
| commit | da70596895d8135e08f8caac6978117697b4c021 (patch) | |
| tree | 2516785b5434df8453687f05dc8dd877438901ab /dev/DDK/KernelAlloc.c | |
| parent | 005de79004c9d30e64bdee6e14e06f9d47d1f2ab (diff) | |
[REFACTOR]
Improved project structure.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/DDK/KernelAlloc.c')
| -rw-r--r-- | dev/DDK/KernelAlloc.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/dev/DDK/KernelAlloc.c b/dev/DDK/KernelAlloc.c new file mode 100644 index 00000000..76d26ee8 --- /dev/null +++ b/dev/DDK/KernelAlloc.c @@ -0,0 +1,34 @@ +/* ------------------------------------------- + + Copyright ZKA Technologies. + + Purpose: DDK allocator. + +------------------------------------------- */ + +#include <DDKit/KernelStd.h> + +/** + \brief Allocates a new heap on the kernel's side. + \param sz the size of the heap block. + \return the newly allocated pointer. +*/ +DK_EXTERN void* kernelAlloc(size_t sz) +{ + if (!sz) ++sz; + + void* ptr = kernelCall("NewHeap", 1, &sz, sizeof(size_t)); + + return ptr; +} + +/** + \brief Frees a pointer from the heap. + \param ptr the pointer to free. +*/ +DK_EXTERN void kernelFree(void* ptr) +{ + if (!ptr) return; + + kernelCall("DeleteHeap", 1, ptr, 0); +} |
