summaryrefslogtreecommitdiffhomepage
path: root/dev/ddk/src
diff options
context:
space:
mode:
authorAmlal <amlal@nekernel.org>2025-08-13 23:56:41 +0200
committerAmlal <amlal@nekernel.org>2025-08-13 23:56:41 +0200
commitbb432453ab609ca7e8dc8e991775329d10a29e7b (patch)
treecea449ab68c412e6bd33ef4aedf8c912b55b3ade /dev/ddk/src
parentd720fa31aaf728b63c95575843f42a575c63765f (diff)
feat! Breaking changes in the DDK.
Signed-off-by: Amlal <amlal@nekernel.org>
Diffstat (limited to 'dev/ddk/src')
-rw-r--r--dev/ddk/src/ddk_abi_cxx.cc (renamed from dev/ddk/src/ddk_rt_cxx.cc)6
-rw-r--r--dev/ddk/src/ddk_alloc.c6
-rw-r--r--dev/ddk/src/ddk_dev.c8
-rw-r--r--dev/ddk/src/ddk_io.c4
-rw-r--r--dev/ddk/src/ddk_kernel_call.c23
-rw-r--r--dev/ddk/src/ddk_kernel_call_dispatch.S4
-rw-r--r--dev/ddk/src/ddk_str.c4
-rw-r--r--dev/ddk/src/ddk_ver.c4
8 files changed, 31 insertions, 28 deletions
diff --git a/dev/ddk/src/ddk_rt_cxx.cc b/dev/ddk/src/ddk_abi_cxx.cc
index 3d57e2b9..fc590c0e 100644
--- a/dev/ddk/src/ddk_rt_cxx.cc
+++ b/dev/ddk/src/ddk_abi_cxx.cc
@@ -1,12 +1,14 @@
/* -------------------------------------------
+ DDK
Copyright Amlal El Mahrouss.
- Purpose: DDK C++ runtime.
+ Author: Amlal El Mahrouss
+ Purpose: DDK C++ ABI.
------------------------------------------- */
-#include <DDKKit/ddk.h>
+#include <DriverKit/ddk.h>
void* operator new(size_t sz) {
return ::kalloc(sz);
diff --git a/dev/ddk/src/ddk_alloc.c b/dev/ddk/src/ddk_alloc.c
index 0b428b15..08527f4d 100644
--- a/dev/ddk/src/ddk_alloc.c
+++ b/dev/ddk/src/ddk_alloc.c
@@ -6,7 +6,7 @@
------------------------------------------- */
-#include <DDKKit/ddk.h>
+#include <DriverKit/ddk.h>
/**
\brief Allocates a new heap on the Kernel's side.
@@ -16,7 +16,7 @@
DDK_EXTERN void* kalloc(size_t sz) {
if (!sz) ++sz;
- void* ptr = ke_call("mm_alloc_ptr", 1, &sz, sizeof(size_t));
+ void* ptr = ke_call_dispatch("mm_alloc_ptr", 1, &sz, sizeof(size_t));
return ptr;
}
@@ -28,5 +28,5 @@ DDK_EXTERN void* kalloc(size_t sz) {
DDK_EXTERN void kfree(void* ptr) {
if (!ptr) return;
- ke_call("mm_free_ptr", 1, ptr, 0);
+ ke_call_dispatch("mm_free_ptr", 1, ptr, 0);
}
diff --git a/dev/ddk/src/ddk_dev.c b/dev/ddk/src/ddk_dev.c
index 4cd7dcdd..32ec2442 100644
--- a/dev/ddk/src/ddk_dev.c
+++ b/dev/ddk/src/ddk_dev.c
@@ -6,14 +6,14 @@
------------------------------------------- */
-#include <DDKKit/dev.h>
-#include <DDKKit/str.h>
+#include <DriverKit/dev.h>
+#include <DriverKit/str.h>
/// @brief Open a new binary device from path.
DDK_EXTERN DDK_DEVICE_PTR open(const char* devicePath) {
if (!devicePath) return nil;
- return ke_call("dk_open_dev", 1, (void*) devicePath, kstrlen(devicePath));
+ return ke_call_dispatch("dk_open_dev", 1, (void*) devicePath, kstrlen(devicePath));
}
/// @brief Close any device.
@@ -21,6 +21,6 @@ DDK_EXTERN DDK_DEVICE_PTR open(const char* devicePath) {
DDK_EXTERN BOOL close(DDK_DEVICE_PTR device) {
if (!device) return NO;
- ke_call("dk_close_dev", 1, device, sizeof(DDK_DEVICE));
+ ke_call_dispatch("dk_close_dev", 1, device, sizeof(DDK_DEVICE));
return YES;
}
diff --git a/dev/ddk/src/ddk_io.c b/dev/ddk/src/ddk_io.c
index ba6d4e55..c6cdd457 100644
--- a/dev/ddk/src/ddk_io.c
+++ b/dev/ddk/src/ddk_io.c
@@ -6,14 +6,14 @@
------------------------------------------- */
-#include <DDKKit/io.h>
+#include <DriverKit/io.h>
DDK_EXTERN void kputc(const char ch) {
char assembled[2] = {0};
assembled[0] = ch;
assembled[1] = 0;
- ke_call("ke_put_string", 1, assembled, 1);
+ ke_call_dispatch("ke_put_string", 1, assembled, 1);
}
/// @brief print string to UART.
diff --git a/dev/ddk/src/ddk_kernel_call.c b/dev/ddk/src/ddk_kernel_call.c
index 10f31e18..95d2e577 100644
--- a/dev/ddk/src/ddk_kernel_call.c
+++ b/dev/ddk/src/ddk_kernel_call.c
@@ -1,36 +1,37 @@
/* -------------------------------------------
+ DDK
Copyright Amlal El Mahrouss.
- Purpose: DDK Kernel call.
+ Author: Amlal El Mahrouss
+ Purpose: DDK kernel dispatch system.
------------------------------------------- */
-#include <DDKKit/ddk.h>
+#include <DriverKit/ddk.h>
#include <stdarg.h>
/// @brief this is an internal call, do not use it.
-DDK_EXTERN ATTRIBUTE(naked) void* ke_call_dispatch(const char* name, int32_t cnt, void* data,
+DDK_EXTERN ATTRIBUTE(naked) void* __ke_call_dispatch(const char* name, int32_t cnt, void* data,
size_t sz);
-/// @brief Interupt Kernel and call it's RPC.
+/// @brief Interrupt Kernel and call it's RPC.
/// @param KernelRpcName RPC name
/// @param cnt number of elements in **data** pointer.
/// @param data data pointer.
/// @param sz The size of the whole data pointer.
/// @retval void* Kernel call was successful.
/// @retval nil Kernel call failed, call KernelLastError(void)
-DDK_EXTERN void* ke_call(const char* name, int32_t cnt, void* data, size_t sz) {
- if (!name || *name == 0 || cnt == 0) return nil;
-
- return ke_call_dispatch(name, cnt, data, sz);
+DDK_EXTERN void* ke_call_dispatch(const char* name, int32_t cnt, void* data, size_t sz) {
+ if (name == nil || *name == 0 || data == nil || cnt == 0) return nil;
+ return __ke_call_dispatch(name, cnt, data, sz);
}
/// @brief Add system call.
/// @param slot system call slot
/// @param slotFn, syscall slot.
DDK_EXTERN void ke_set_syscall(const int slot, void (*slotFn)(void* a0)) {
- ke_call("ke_set_syscall", slot, slotFn, 1);
+ ke_call_dispatch("ke_set_syscall", slot, slotFn, 1);
}
/// @brief Get a Kernel object.
@@ -39,7 +40,7 @@ DDK_EXTERN void ke_set_syscall(const int slot, void (*slotFn)(void* a0)) {
/// @return Object manifest.
DDK_EXTERN struct DDK_OBJECT_MANIFEST* ke_get_obj(const int slot, const char* name) {
struct DDK_OBJECT_MANIFEST* manifest =
- (struct DDK_OBJECT_MANIFEST*) ke_call("cfkit_get_kobj", slot, (void*) name, 1);
+ (struct DDK_OBJECT_MANIFEST*) ke_call_dispatch("cfkit_get_kobj", slot, (void*) name, 1);
if (!manifest) return nil;
@@ -52,5 +53,5 @@ DDK_EXTERN struct DDK_OBJECT_MANIFEST* ke_get_obj(const int slot, const char* na
/// @param ddk_pr pointer to a object's DDK_OBJECT_MANIFEST.
/// @return property's object.
DDK_EXTERN void* ke_set_obj(const int slot, const struct DDK_OBJECT_MANIFEST* ddk_pr) {
- return ke_call("cfkit_set_kobj", slot, (void*) ddk_pr, 1);
+ return ke_call_dispatch("cfkit_set_kobj", slot, (void*) ddk_pr, 1);
}
diff --git a/dev/ddk/src/ddk_kernel_call_dispatch.S b/dev/ddk/src/ddk_kernel_call_dispatch.S
index 9b32d0c2..c66d9d49 100644
--- a/dev/ddk/src/ddk_kernel_call_dispatch.S
+++ b/dev/ddk/src/ddk_kernel_call_dispatch.S
@@ -3,7 +3,7 @@
compiler: gnu
*/
-.globl ke_call_dispatch
+.globl __ke_call_dispatch
.text
@@ -13,7 +13,7 @@
#if defined(__DDK_AMD64__)
/* args rcx, rdx, r8, r9 */
-ke_call_dispatch:
+__ke_call_dispatch:
int $0x33
ret
diff --git a/dev/ddk/src/ddk_str.c b/dev/ddk/src/ddk_str.c
index d50a5d03..514cddc7 100644
--- a/dev/ddk/src/ddk_str.c
+++ b/dev/ddk/src/ddk_str.c
@@ -2,11 +2,11 @@
Copyright Amlal El Mahrouss.
- Purpose: DDK Strings.
+ Purpose: DDK String API.
------------------------------------------- */
-#include <DDKKit/str.h>
+#include <DriverKit/str.h>
DDK_EXTERN size_t kstrlen(const char* in) {
if (in == nil) return 0;
diff --git a/dev/ddk/src/ddk_ver.c b/dev/ddk/src/ddk_ver.c
index 41c6c612..9be3134e 100644
--- a/dev/ddk/src/ddk_ver.c
+++ b/dev/ddk/src/ddk_ver.c
@@ -2,11 +2,11 @@
Copyright Amlal El Mahrouss.
- Purpose: DDK version symbols.
+ Purpose: DDK version system.
------------------------------------------- */
-#include <DDKKit/ddk.h>
+#include <DriverKit/ddk.h>
#ifndef kDDKVersionHighest
#define kDDKVersionHighest 1