summaryrefslogtreecommitdiffhomepage
path: root/dev
diff options
context:
space:
mode:
Diffstat (limited to 'dev')
-rw-r--r--dev/kernel/KernelKit/ThreadLocalStorage.h4
-rw-r--r--dev/kernel/NeKit/Utils.h4
-rw-r--r--dev/kernel/src/AsciiUtils.cc (renamed from dev/kernel/src/Utils.cc)0
-rw-r--r--dev/kernel/src/ThreadLocalStorage.cc21
-rw-r--r--dev/open_msg/script/window.msg6
-rw-r--r--dev/open_msg/script/window_client.json7
6 files changed, 18 insertions, 24 deletions
diff --git a/dev/kernel/KernelKit/ThreadLocalStorage.h b/dev/kernel/KernelKit/ThreadLocalStorage.h
index 6c764221..35c17db0 100644
--- a/dev/kernel/KernelKit/ThreadLocalStorage.h
+++ b/dev/kernel/KernelKit/ThreadLocalStorage.h
@@ -27,8 +27,8 @@ struct THREAD_INFORMATION_BLOCK;
/// @brief Thread Information Block.
/// Located in GS on AMD64, other architectures have their own stuff. (64x0, 32x0, ARM64)
struct PACKED THREAD_INFORMATION_BLOCK final {
- Kernel::Char Cookie[kTLSCookieLen]{0}; //! Thread magic number.
- Kernel::VoidPtr Record{nullptr}; //! Thread information record.
+ Kernel::Char Cookie[kTLSCookieLen]{0}; //! Thread Magic Number.
+ Kernel::VoidPtr UserData{nullptr}; //! Thread Information Record (User defined canary structure)
};
///! @brief Cookie Sanity check.
diff --git a/dev/kernel/NeKit/Utils.h b/dev/kernel/NeKit/Utils.h
index cdfcfe56..43526fc8 100644
--- a/dev/kernel/NeKit/Utils.h
+++ b/dev/kernel/NeKit/Utils.h
@@ -10,6 +10,8 @@
#include <NeKit/Defines.h>
namespace Kernel {
+/// 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);
@@ -27,6 +29,8 @@ 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);
+/// UNICODE API
+
Int urt_string_cmp(const Char* src, const Char* 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);
diff --git a/dev/kernel/src/Utils.cc b/dev/kernel/src/AsciiUtils.cc
index 087b6d5f..087b6d5f 100644
--- a/dev/kernel/src/Utils.cc
+++ b/dev/kernel/src/AsciiUtils.cc
diff --git a/dev/kernel/src/ThreadLocalStorage.cc b/dev/kernel/src/ThreadLocalStorage.cc
index ec315ddf..88fefee4 100644
--- a/dev/kernel/src/ThreadLocalStorage.cc
+++ b/dev/kernel/src/ThreadLocalStorage.cc
@@ -15,7 +15,7 @@
/***********************************************************************************/
/// @bugs: 0
/// @file ThreadLocalStorage.cc
-/// @brief Process Thread Local Storage.
+/// @brief NeKernel Thread Local Storage.
/***********************************************************************************/
using namespace Kernel;
@@ -27,15 +27,10 @@ using namespace Kernel;
*/
Boolean tls_check_tib(THREAD_INFORMATION_BLOCK* tib_ptr) {
- if (!tib_ptr || !tib_ptr->Record) return false;
+ if (!tib_ptr) return false;
- ICodec encoder;
- const Char* tib_as_bytes = encoder.AsBytes<THREAD_INFORMATION_BLOCK*>(tib_ptr);
-
- kout << "TLS: Validating the TIB...\r";
-
- return tib_as_bytes[kCookieMag0Idx] == kCookieMag0 &&
- tib_as_bytes[kCookieMag1Idx] == kCookieMag1 && tib_as_bytes[kCookieMag2Idx] == kCookieMag2;
+ return tib_ptr->Cookie[kCookieMag0Idx] == kCookieMag0 &&
+ tib_ptr->Cookie[kCookieMag1Idx] == kCookieMag1 && tib_ptr->Cookie[kCookieMag2Idx] == kCookieMag2;
}
/**
@@ -51,11 +46,5 @@ EXTERN_C Bool tls_check_syscall_impl(Kernel::VoidPtr tib_ptr) noexcept {
THREAD_INFORMATION_BLOCK* tib = reinterpret_cast<THREAD_INFORMATION_BLOCK*>(tib_ptr);
- if (!tls_check_tib(tib)) {
- kout << "TLS: Failed because of an invalid TIB...\r";
- return No;
- }
-
- kout << "TLS Pass.\r";
- return Yes;
+ return tls_check_tib(tib);
}
diff --git a/dev/open_msg/script/window.msg b/dev/open_msg/script/window.msg
deleted file mode 100644
index 77d6ef69..00000000
--- a/dev/open_msg/script/window.msg
+++ /dev/null
@@ -1,6 +0,0 @@
-(window
- :id 1
- :pos (x 100 y 100)
- :size (w 300 h 200)
- :title "My App"
- :on-click (lambda () (log "Clicked!"))) \ No newline at end of file
diff --git a/dev/open_msg/script/window_client.json b/dev/open_msg/script/window_client.json
new file mode 100644
index 00000000..4c8a21ba
--- /dev/null
+++ b/dev/open_msg/script/window_client.json
@@ -0,0 +1,7 @@
+{
+ "id": 1,
+ "pos": { "x": 100, "y": 100 },
+ "size": { "w": 300, "h": 200 },
+ "title": "Window Client",
+ "on-click": "_OnClickCSymbol"
+} \ No newline at end of file