From d7ede77b3e13bc985e1b320249948434040c73a8 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Mon, 15 Sep 2025 16:37:13 +0200 Subject: feat: kernel: type fixes. Signed-off-by: Amlal El Mahrouss --- dev/kernel/src/AsciiUtils.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'dev/kernel/src/AsciiUtils.cc') diff --git a/dev/kernel/src/AsciiUtils.cc b/dev/kernel/src/AsciiUtils.cc index 24e4e220..30773d91 100644 --- a/dev/kernel/src/AsciiUtils.cc +++ b/dev/kernel/src/AsciiUtils.cc @@ -45,7 +45,7 @@ const Char* rt_alloc_string(const Char* src) { return buffer; } -Int rt_copy_memory_safe(const voidPtr src, voidPtr dst, Size len, Size dst_size) { +Int32 rt_copy_memory_safe(const voidPtr src, voidPtr dst, Size len, Size dst_size) { if (!src || !dst || len > dst_size) { if (dst && dst_size) { rt_set_memory_safe(dst, 0, dst_size, dst_size); @@ -85,7 +85,7 @@ rt_set_memory(voidPtr src, UInt32 value, Size len) { #ifdef __NE_ENFORCE_DEPRECATED_WARNINGS [[deprecated("Use rt_copy_memory_safe instead")]] #endif -Int rt_copy_memory(const voidPtr src, voidPtr dst, Size len) { +Int32 rt_copy_memory(const voidPtr src, voidPtr dst, Size len) { if (!src || !dst) return -1; auto s = reinterpret_cast(src); auto d = reinterpret_cast(dst); @@ -135,7 +135,7 @@ Bool rt_to_string(Char* str, UInt64 value, Int32 base) { str[i - j - 1] = tmp; } #endif - return true; + return false; } VoidPtr rt_string_in_string(const Char* haystack, const Char* needle) { @@ -166,7 +166,7 @@ EXTERN_C void* memcpy(void* dst, const void* src, long long unsigned int len) { return dst; } -EXTERN_C Kernel::Int32 strcmp(const char* a, const char* b) { +EXTERN_C Int32 strcmp(const char* a, const char* b) { return Kernel::rt_string_cmp(a, b, rt_string_len(a)); } -- cgit v1.2.3 From dfd6aca50dd2349e828afadc0183419e8e4d0acd Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Tue, 16 Sep 2025 10:07:23 +0200 Subject: feat: kernel/AsciiUtils: use correct type `Int32` instead of `Int` Signed-off-by: Amlal El Mahrouss --- dev/kernel/src/AsciiUtils.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'dev/kernel/src/AsciiUtils.cc') diff --git a/dev/kernel/src/AsciiUtils.cc b/dev/kernel/src/AsciiUtils.cc index 30773d91..920a5b75 100644 --- a/dev/kernel/src/AsciiUtils.cc +++ b/dev/kernel/src/AsciiUtils.cc @@ -8,7 +8,7 @@ namespace Kernel { -Int rt_copy_memory_safe(const voidPtr src, voidPtr dst, Size len, Size dst_size); +Int32 rt_copy_memory_safe(const voidPtr src, voidPtr dst, Size len, Size dst_size); voidPtr rt_set_memory_safe(voidPtr dst, UInt32 value, Size len, Size dst_size); Int32 rt_string_cmp(const Char* src, const Char* cmp, Size size) { -- cgit v1.2.3 From a461a1b5a568087ea4991cb3af2300dd6f8ef90e Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Fri, 19 Sep 2025 10:22:54 +0200 Subject: feat: kernel && libDDK: `DDK` and `kernel` improvements. what: - Hardened `AsciiUtils` and `libDDK` Signed-off-by: Amlal El Mahrouss --- dev/kernel/src/AsciiUtils.cc | 9 +++++++-- dev/libDDK/src/ddk_dev.c | 4 ++-- dev/libDDK/src/ddk_io.c | 8 ++++++-- dev/libDDK/src/ddk_str.c | 2 ++ 4 files changed, 17 insertions(+), 6 deletions(-) (limited to 'dev/kernel/src/AsciiUtils.cc') diff --git a/dev/kernel/src/AsciiUtils.cc b/dev/kernel/src/AsciiUtils.cc index 920a5b75..cca3a368 100644 --- a/dev/kernel/src/AsciiUtils.cc +++ b/dev/kernel/src/AsciiUtils.cc @@ -8,7 +8,7 @@ namespace Kernel { -Int32 rt_copy_memory_safe(const voidPtr src, voidPtr dst, Size len, Size dst_size); +Int32 rt_copy_memory_safe(const voidPtr src, voidPtr dst, Size len, Size dst_size); voidPtr rt_set_memory_safe(voidPtr dst, UInt32 value, Size len, Size dst_size); Int32 rt_string_cmp(const Char* src, const Char* cmp, Size size) { @@ -134,11 +134,15 @@ Bool rt_to_string(Char* str, UInt64 value, Int32 base) { str[j] = str[i - j - 1]; str[i - j - 1] = tmp; } + + return YES; #endif - return false; + return NO; } VoidPtr rt_string_in_string(const Char* haystack, const Char* needle) { + if (!haystack || !needle) return nullptr; + SizeT needle_len = rt_string_len(needle); SizeT hay_len = rt_string_len(haystack); @@ -152,6 +156,7 @@ VoidPtr rt_string_in_string(const Char* haystack, const Char* needle) { } Char* rt_string_has_char(Char* str, Char ch) { + if (!str) return nullptr; while (*str && *str != ch) ++str; return (*str == ch) ? str : nullptr; } diff --git a/dev/libDDK/src/ddk_dev.c b/dev/libDDK/src/ddk_dev.c index 32ec2442..d20684aa 100644 --- a/dev/libDDK/src/ddk_dev.c +++ b/dev/libDDK/src/ddk_dev.c @@ -11,7 +11,7 @@ /// @brief Open a new binary device from path. DDK_EXTERN DDK_DEVICE_PTR open(const char* devicePath) { - if (!devicePath) return nil; + if (nil == devicePath) return nil; return ke_call_dispatch("dk_open_dev", 1, (void*) devicePath, kstrlen(devicePath)); } @@ -19,7 +19,7 @@ DDK_EXTERN DDK_DEVICE_PTR open(const char* devicePath) { /// @brief Close any device. /// @param device valid device. DDK_EXTERN BOOL close(DDK_DEVICE_PTR device) { - if (!device) return NO; + if (nil == device) return NO; ke_call_dispatch("dk_close_dev", 1, device, sizeof(DDK_DEVICE)); return YES; diff --git a/dev/libDDK/src/ddk_io.c b/dev/libDDK/src/ddk_io.c index c6cdd457..825e82a7 100644 --- a/dev/libDDK/src/ddk_io.c +++ b/dev/libDDK/src/ddk_io.c @@ -1,7 +1,9 @@ /* ------------------------------------------- - Copyright Amlal El Mahrouss. + libDDK. + Copyright 2025 - Amlal El Mahrouss and NeKernel contributors. + File: ddk_io.c Purpose: DDK Text I/O. ------------------------------------------- */ @@ -9,6 +11,8 @@ #include DDK_EXTERN void kputc(const char ch) { + if (!ch) return; + char assembled[2] = {0}; assembled[0] = ch; assembled[1] = 0; @@ -19,7 +23,7 @@ DDK_EXTERN void kputc(const char ch) { /// @brief print string to UART. /// @param message UART to transmit. DDK_EXTERN void kprint(const char* message) { - if (!message) return; + if (nil == message) return; if (*message == 0) return; size_t index = 0; diff --git a/dev/libDDK/src/ddk_str.c b/dev/libDDK/src/ddk_str.c index 514cddc7..1e2fde19 100644 --- a/dev/libDDK/src/ddk_str.c +++ b/dev/libDDK/src/ddk_str.c @@ -23,6 +23,8 @@ DDK_EXTERN size_t kstrlen(const char* in) { } DDK_EXTERN int kstrncpy(char* dst, const char* src, size_t len) { + if (nil == dst || nil == src) return 0; + size_t index = 0; while (index != len) { -- cgit v1.2.3