From 4afdeade47b4295e49b9d65ae26fa218e2fd81dd Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Wed, 8 Oct 2025 21:50:05 +0200 Subject: feat: libSystem: new version of libSystem. --- dev/libSystem/src/VerifyCalls.cc | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 dev/libSystem/src/VerifyCalls.cc (limited to 'dev/libSystem/src/VerifyCalls.cc') diff --git a/dev/libSystem/src/VerifyCalls.cc b/dev/libSystem/src/VerifyCalls.cc new file mode 100644 index 00000000..fb38c682 --- /dev/null +++ b/dev/libSystem/src/VerifyCalls.cc @@ -0,0 +1,17 @@ +/* ------------------------------------------- + + Copyright (C) 2025, Amlal El Mahrouss, all rights reserved. + +------------------------------------------- */ + +#include +#include + +using namespace LibSystem; + +IMPORT_C Void _rtl_assert(Bool expr, const Char* origin) { + if (!expr) { + PrintOut(nullptr, "Assertion failed: %s\r", origin); + libsys_syscall_arg_1(SYSCALL_HASH("_rtl_debug_break")); + } +} \ No newline at end of file -- cgit v1.2.3 From bcc74b466240a3df8a4750e2a5a60a3748d6b3d7 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Wed, 8 Oct 2025 21:51:20 +0200 Subject: fix: libSystem: return JAIL correctly and fix missing macro in JailCalls.cc Signed-off-by: Amlal El Mahrouss --- dev/libSystem/src/JailCalls.cc | 2 +- dev/libSystem/src/VerifyCalls.cc | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'dev/libSystem/src/VerifyCalls.cc') diff --git a/dev/libSystem/src/JailCalls.cc b/dev/libSystem/src/JailCalls.cc index 32192a13..85796e9f 100644 --- a/dev/libSystem/src/JailCalls.cc +++ b/dev/libSystem/src/JailCalls.cc @@ -13,5 +13,5 @@ using namespace LibSystem; IMPORT_C struct JAIL* JailGetCurrent(Void) { - (struct JAIL*)libsys_syscall_arg_1(SYSCALL_HASH("JailGetCurrent")); + return (struct JAIL*)libsys_syscall_arg_1(SYSCALL_HASH("JailGetCurrent")); } \ No newline at end of file diff --git a/dev/libSystem/src/VerifyCalls.cc b/dev/libSystem/src/VerifyCalls.cc index fb38c682..83617ae0 100644 --- a/dev/libSystem/src/VerifyCalls.cc +++ b/dev/libSystem/src/VerifyCalls.cc @@ -6,6 +6,7 @@ #include #include +#include using namespace LibSystem; -- cgit v1.2.3 From 212c57ea05bf918dc26fe8864ad617f2f6259cea Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Fri, 10 Oct 2025 10:30:38 +0200 Subject: feat: kernel: dispatch structures have two new methods. Signed-off-by: Amlal El Mahrouss --- dev/kernel/ArchKit/ArchKit.h | 6 ++++++ dev/kernel/CFKit/GUIDWrapper.h | 5 ++--- dev/kernel/src/UserMgr.cc | 2 +- dev/kernel/src/UserProcessScheduler.cc | 1 - dev/libSystem/src/JailCalls.cc | 4 ++-- dev/libSystem/src/VerifyCalls.cc | 2 +- 6 files changed, 12 insertions(+), 8 deletions(-) (limited to 'dev/libSystem/src/VerifyCalls.cc') diff --git a/dev/kernel/ArchKit/ArchKit.h b/dev/kernel/ArchKit/ArchKit.h index 2042bded..9c45b6bb 100644 --- a/dev/kernel/ArchKit/ArchKit.h +++ b/dev/kernel/ArchKit/ArchKit.h @@ -75,6 +75,9 @@ struct HAL_DISPATCH_ENTRY final { Kernel::Bool fHooked; rt_syscall_proc fProc; + BOOL IsKernCall() { return NO; } + BOOL IsSysCall() { return YES; } + operator bool() { return fHooked; } }; @@ -86,6 +89,9 @@ struct HAL_KERNEL_DISPATCH_ENTRY final { Kernel::Bool fHooked; rt_kerncall_proc fProc; + BOOL IsKernCall() { return YES; } + BOOL IsSysCall() { return NO; } + operator bool() { return fHooked; } }; diff --git a/dev/kernel/CFKit/GUIDWrapper.h b/dev/kernel/CFKit/GUIDWrapper.h index 05cb4754..14a96fde 100644 --- a/dev/kernel/CFKit/GUIDWrapper.h +++ b/dev/kernel/CFKit/GUIDWrapper.h @@ -16,7 +16,7 @@ /// @brief eXtended Resource Namespace namespace Kernel::CF::XRN { -union GUIDSequence { +union GUIDSequence final { alignas(8) UShort fU8[16]; alignas(8) UShort fU16[8]; alignas(8) UInt fU32[4]; @@ -36,8 +36,7 @@ class GUID final { ~GUID() = default; public: - GUID& operator=(const GUID&) = default; - GUID(const GUID&) = default; + NE_COPY_DEFAULT(GUID) public: GUIDSequence& operator->() noexcept { return fUUID; } diff --git a/dev/kernel/src/UserMgr.cc b/dev/kernel/src/UserMgr.cc index 9db1ca4d..5ee2aa33 100644 --- a/dev/kernel/src/UserMgr.cc +++ b/dev/kernel/src/UserMgr.cc @@ -39,7 +39,7 @@ namespace Detail { kout << "user_fnv_generator: Hashing user password...\r"; const UInt64 kFnvOffsetBasis = 0xcbf29ce484222325ULL; - const UInt64 fFnvPrime = 0x100000001b3ULL; + const UInt64 fFnvPrime = 0x100000001b3ULL; UInt64 hash = kFnvOffsetBasis; diff --git a/dev/kernel/src/UserProcessScheduler.cc b/dev/kernel/src/UserProcessScheduler.cc index ad6263c8..af54799e 100644 --- a/dev/kernel/src/UserProcessScheduler.cc +++ b/dev/kernel/src/UserProcessScheduler.cc @@ -21,7 +21,6 @@ #include #include #include -#include #include ///! BUGS: 0 diff --git a/dev/libSystem/src/JailCalls.cc b/dev/libSystem/src/JailCalls.cc index 85796e9f..5cb47bb5 100644 --- a/dev/libSystem/src/JailCalls.cc +++ b/dev/libSystem/src/JailCalls.cc @@ -5,13 +5,13 @@ ------------------------------------------- */ #include +#include #include #include -#include #include using namespace LibSystem; IMPORT_C struct JAIL* JailGetCurrent(Void) { - return (struct JAIL*)libsys_syscall_arg_1(SYSCALL_HASH("JailGetCurrent")); + return (struct JAIL*) libsys_syscall_arg_1(SYSCALL_HASH("JailGetCurrent")); } \ No newline at end of file diff --git a/dev/libSystem/src/VerifyCalls.cc b/dev/libSystem/src/VerifyCalls.cc index 83617ae0..078f921b 100644 --- a/dev/libSystem/src/VerifyCalls.cc +++ b/dev/libSystem/src/VerifyCalls.cc @@ -5,8 +5,8 @@ ------------------------------------------- */ #include -#include #include +#include using namespace LibSystem; -- cgit v1.2.3