summaryrefslogtreecommitdiffhomepage
path: root/DDK/KernelCall.c
diff options
context:
space:
mode:
authorAmlal <amlal@zka.com>2024-07-12 01:03:21 +0200
committerAmlal <amlal@zka.com>2024-07-12 01:03:21 +0200
commita268a7d3551523fb82b1495808f3ea2516b6fdaa (patch)
tree0a7fab583aafca52bccf5bac143517f559b3a247 /DDK/KernelCall.c
parent0a076b2bcc21d4fc94b83569e1b5198f9e4acd0b (diff)
[IMP && FIX] Various patches and implementations.
Most importantly: - JSON parser. Signed-off-by: Amlal <amlal@zka.com>
Diffstat (limited to 'DDK/KernelCall.c')
-rw-r--r--DDK/KernelCall.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/DDK/KernelCall.c b/DDK/KernelCall.c
index 911027f5..18d544ef 100644
--- a/DDK/KernelCall.c
+++ b/DDK/KernelCall.c
@@ -10,26 +10,27 @@
#include <stdarg.h>
/// @brief this is an internal call, do not use it.
-DK_EXTERN __attribute__((naked)) void* __kernelDispatchCall(const char* name, int32_t cnt, void* data, size_t sz);
-
-/// @brief Call kernel (interrupt 0x33)
-/// @param kernelRpcName
-/// @param cnt number of elements in **dat**
-/// @param dat data ptr
-/// @param sz sz of whole data ptr.
-/// @return result of call
+DK_EXTERN __attribute__((naked)) void* __kernelCallDispatch(const char* name, int32_t cnt, void* data, size_t sz);
+
+/// @brief Interupt kernel
+/// @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)
DK_EXTERN void* kernelCall(const char* kernelRpcName, int32_t cnt, void* data, size_t sz)
{
if (!kernelRpcName || cnt == 0)
return nil;
- return __kernelDispatchCall(kernelRpcName, cnt, data, sz);
+ return __kernelCallDispatch(kernelRpcName, cnt, data, sz);
}
-/// @brief add system call.
+/// @brief Add system call.
/// @param slot system call slot
/// @param slotFn, syscall slot.
DK_EXTERN void kernelAddSyscall(const int slot, void (*slotFn)(void* a0))
{
kernelCall("AddSyscall", slot, slotFn, 0);
-} \ No newline at end of file
+}