summaryrefslogtreecommitdiffhomepage
path: root/src/kernel/NeKit/Utils.h
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-11-24 03:02:43 +0100
committerAmlal El Mahrouss <amlal@nekernel.org>2025-11-24 03:02:43 +0100
commit83d870e58457a1d335a1d9b9966a6a1887cc297b (patch)
tree72888f88c7728c82f3f6df1f4f70591de15eab36 /src/kernel/NeKit/Utils.h
parentab37adbacf0f33845804c788b39680cd754752a8 (diff)
feat! breaking changes on kernel sources.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'src/kernel/NeKit/Utils.h')
-rw-r--r--src/kernel/NeKit/Utils.h62
1 files changed, 62 insertions, 0 deletions
diff --git a/src/kernel/NeKit/Utils.h b/src/kernel/NeKit/Utils.h
new file mode 100644
index 00000000..caabd2af
--- /dev/null
+++ b/src/kernel/NeKit/Utils.h
@@ -0,0 +1,62 @@
+/* ========================================
+
+ Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license.
+
+======================================== */
+
+#pragma once
+
+#include <NeKit/Defines.h>
+
+namespace Kernel {
+/// =========================================================== ///
+/// @brief ASCII API
+/// =========================================================== ///
+
+Int rt_copy_memory(const voidPtr src, voidPtr dst, Size len);
+Int rt_move_memory(const voidPtr src, voidPtr dst, Size len);
+voidPtr rt_set_memory(voidPtr dst, UInt32 val, Size len);
+void rt_zero_memory(voidPtr pointer, Size len);
+Int rt_string_cmp(const Char* src, const Char* cmp, Size len);
+const Char* rt_alloc_string(const Char* text);
+Size rt_string_len(const Char* str);
+Size rt_string_len(const Char* str, SizeT _len);
+Boolean rt_to_string(Char* str_out, UInt64 base, Int32 limit);
+Boolean rt_is_newln(Int chr);
+Boolean rt_is_space(Int chr);
+Int32 rt_is_alnum(Int character);
+Int rt_to_uppercase(Int c);
+Int rt_to_lower(Int c);
+voidPtr rt_string_in_string(const Char* in, const Char* needle);
+char* rt_string_has_char(Char* str, Char chr);
+
+/// =========================================================== ///
+/// @brief Safe memory functions API
+/// =========================================================== ///
+
+Int 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);
+
+/// =========================================================== ///
+/// @brief UNICODE API
+/// =========================================================== ///
+
+Int urt_string_cmp(const Utf8Char* src, const Utf8Char* cmp, Size len);
+Void urt_set_memory(const voidPtr src, UInt32 dst, Size len);
+Int urt_copy_memory(const voidPtr src, voidPtr dst, Size len);
+Size urt_string_len(const Utf8Char* str);
+
+/// =========================================================== ///
+/// @brief OpenEncoding API
+/// =========================================================== ///
+
+template <typename CharType = Char>
+inline SizeT oe_string_len(const CharType* str) {
+ if (!str) return 0;
+
+ SizeT len{0};
+
+ while (str[len] != 0) ++len;
+ return len;
+}
+} // namespace Kernel