diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-11-19 09:33:29 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-11-19 09:33:29 +0100 |
| commit | 92a98b1b45192125562c5b90fc7d02317f94016e (patch) | |
| tree | 74cafe9b5590a211dd2c04226332065c706ff58a /dev/kernel/src | |
| parent | f29e7e30fde2b994c86024659b41f56b64dce911 (diff) | |
feat: kernel: new CRuntimeOverrides file, and documentation
improvements.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/src')
| -rw-r--r-- | dev/kernel/src/AsciiUtils.cc | 30 | ||||
| -rw-r--r-- | dev/kernel/src/CRuntimeOverrides.cc | 27 |
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)); +} |
