summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/src
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-11-19 09:36:24 +0100
committerGitHub <noreply@github.com>2025-11-19 09:36:24 +0100
commit31439688ca75387b4cec4c28d609dafc13c464eb (patch)
tree74cafe9b5590a211dd2c04226332065c706ff58a /dev/kernel/src
parent4fdc70b676fbed322ba09bc7fb886f3b87245baa (diff)
parent92a98b1b45192125562c5b90fc7d02317f94016e (diff)
Merge pull request #75 from nekernel-org/dev
feat: kernel: new CRuntimeOverrides file, and documentation
Diffstat (limited to 'dev/kernel/src')
-rw-r--r--dev/kernel/src/AsciiUtils.cc30
-rw-r--r--dev/kernel/src/CRuntimeOverrides.cc27
2 files changed, 34 insertions, 23 deletions
diff --git a/dev/kernel/src/AsciiUtils.cc b/dev/kernel/src/AsciiUtils.cc
index aed11e94..94011d20 100644
--- a/dev/kernel/src/AsciiUtils.cc
+++ b/dev/kernel/src/AsciiUtils.cc
@@ -98,23 +98,23 @@ Int32 rt_copy_memory(const voidPtr src, voidPtr dst, Size len) {
return static_cast<Int>(len);
}
-Int32 rt_to_uppercase(Int32 ch) {
+Int32 rt_to_uppercase(Int ch) {
return (ch >= 'a' && ch <= 'z') ? ch - 0x20 : ch;
}
-Int32 rt_to_lower(Int32 ch) {
+Int32 rt_to_lower(Int ch) {
return (ch >= 'A' && ch <= 'Z') ? ch + 0x20 : ch;
}
-Int32 rt_is_alnum(Int32 ch) {
+Int32 rt_is_alnum(Int ch) {
return (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') || (ch >= '0' && ch <= '9');
}
-Boolean rt_is_space(Char ch) {
+Boolean rt_is_space(Int ch) {
return ch == ' ';
}
-Boolean rt_is_newln(Char ch) {
+Boolean rt_is_newln(Int ch) {
return ch == '\n';
}
@@ -124,7 +124,8 @@ Char rt_to_char(UInt64 value, Int32 base) {
}
Bool rt_to_string(Char* str, UInt64 value, Int32 base) {
-#ifdef __NE_AMD64__
+ if (!str || base < 2 || base > 16) return NO;
+
Int i = 0;
do {
str[i++] = rt_to_char(value, base);
@@ -139,8 +140,6 @@ Bool rt_to_string(Char* str, UInt64 value, Int32 base) {
}
return YES;
-#endif
- return NO;
}
VoidPtr rt_string_in_string(const Char* haystack, const Char* needle) {
@@ -163,19 +162,4 @@ Char* rt_string_has_char(Char* str, Char ch) {
while (*str && *str != ch) ++str;
return (*str == ch) ? str : nullptr;
}
-
-EXTERN_C void* memset(void* dst, int c, long long unsigned int len) {
- return Kernel::rt_set_memory_safe(dst, c, static_cast<Size>(len), static_cast<Size>(len));
-}
-
-EXTERN_C void* memcpy(void* dst, const void* src, long long unsigned int len) {
- Kernel::rt_copy_memory_safe(const_cast<void*>(src), dst, static_cast<Size>(len),
- static_cast<Size>(len));
- return dst;
-}
-
-EXTERN_C Int32 strcmp(const char* a, const char* b) {
- return Kernel::rt_string_cmp(a, b, rt_string_len(a));
-}
-
} // namespace Kernel
diff --git a/dev/kernel/src/CRuntimeOverrides.cc b/dev/kernel/src/CRuntimeOverrides.cc
new file mode 100644
index 00000000..49b1d49d
--- /dev/null
+++ b/dev/kernel/src/CRuntimeOverrides.cc
@@ -0,0 +1,27 @@
+/* -------------------------------------------
+
+ Copyright (C) 2025, Amlal El Mahrouss, licensed under the Apache 2.0 license.
+
+------------------------------------------- */
+
+#include <NeKit/Utils.h>
+
+using namespace Kernel;
+
+/// =========================================================== ///
+/// @brief C Standard Library overrides. ///
+/// =========================================================== ///
+
+EXTERN_C void* memset(void* dst, int c, long long unsigned int len) {
+ return Kernel::rt_set_memory_safe(dst, c, static_cast<Size>(len), static_cast<Size>(len));
+}
+
+EXTERN_C void* memcpy(void* dst, const void* src, long long unsigned int len) {
+ Kernel::rt_copy_memory_safe(const_cast<void*>(src), dst, static_cast<Size>(len),
+ static_cast<Size>(len));
+ return dst;
+}
+
+EXTERN_C Int32 strcmp(const char* a, const char* b) {
+ return Kernel::rt_string_cmp(a, b, rt_string_len(a));
+}