diff options
| author | Amlal EL Mahrouss <amlalelmahrouss@icloud.com> | 2024-07-28 06:15:54 +0200 |
|---|---|---|
| committer | Amlal EL Mahrouss <amlalelmahrouss@icloud.com> | 2024-07-28 06:15:54 +0200 |
| commit | 3feb5cb72e3e422e804098e2fdcb0bd3e7961627 (patch) | |
| tree | 26c65a3b0cd1a2eb9f6cb5683778a703afcd38e5 | |
| parent | 8fdf00bfb70b111b49de003a46940c9ee8187295 (diff) | |
[FIX] Kernel\Sources\GUIDWizard.cxx: Fixed and implemented cf_make_sequence correctly.
[REFACTOR] Kernel\Sources\PEFSharedObject.cxx Replace rt_library_free with rt_library_fini.
[REFACTOR] SimpleHAL\Main.c: Replace SampleDriver with SampleHAL.
Signed-off-by: Amlal EL Mahrouss <amlalelmahrouss@icloud.com>
| -rw-r--r-- | Kernel/CFKit/GUIDWizard.hpp | 4 | ||||
| -rw-r--r-- | Kernel/HALKit/AMD64/HalDebugOutput.cxx | 4 | ||||
| -rw-r--r-- | Kernel/HALKit/POWER/HalSerialPort.cxx | 2 | ||||
| -rw-r--r-- | Kernel/KernelKit/SMPManager.hpp | 3 | ||||
| -rw-r--r-- | Kernel/Sources/GUIDWizard.cxx | 19 | ||||
| -rw-r--r-- | Kernel/Sources/PEFSharedObject.cxx | 42 | ||||
| -rw-r--r-- | Samples/SampleHAL/Main.c | 8 |
7 files changed, 46 insertions, 36 deletions
diff --git a/Kernel/CFKit/GUIDWizard.hpp b/Kernel/CFKit/GUIDWizard.hpp index 59e83153..609b0d46 100644 --- a/Kernel/CFKit/GUIDWizard.hpp +++ b/Kernel/CFKit/GUIDWizard.hpp @@ -17,6 +17,6 @@ namespace Kernel::XRN::Version1 { - Ref<GUIDSequence*> make_sequence(const ArrayList<UShort>& seq); - ErrorOr<Ref<Kernel::StringView>> try_guid_to_string(Ref<GUIDSequence*>& guid); + Ref<GUIDSequence*> cf_make_sequence(const ArrayList<UInt32>& seq); + ErrorOr<Ref<Kernel::StringView>> cf_try_guid_to_string(Ref<GUIDSequence*>& guid); } // namespace Kernel::XRN::Version1 diff --git a/Kernel/HALKit/AMD64/HalDebugOutput.cxx b/Kernel/HALKit/AMD64/HalDebugOutput.cxx index c652aa80..9e3dfcd8 100644 --- a/Kernel/HALKit/AMD64/HalDebugOutput.cxx +++ b/Kernel/HALKit/AMD64/HalDebugOutput.cxx @@ -74,10 +74,10 @@ namespace Kernel Detail::kState = kStateTransmit; SizeT index = 0; - SizeT len = rt_string_len(bytes, 256); + SizeT len = rt_string_len(bytes, 0); const auto cColor = "\x1b[1;32m"; - SizeT lenClr = rt_string_len(cColor, 256); + SizeT lenClr = rt_string_len(cColor, 0); while (index < lenClr) { diff --git a/Kernel/HALKit/POWER/HalSerialPort.cxx b/Kernel/HALKit/POWER/HalSerialPort.cxx index 70197256..3c62824b 100644 --- a/Kernel/HALKit/POWER/HalSerialPort.cxx +++ b/Kernel/HALKit/POWER/HalSerialPort.cxx @@ -17,7 +17,7 @@ void ke_io_write(const Char* bytes) return; SizeT index = 0; - SizeT len = rt_string_len(bytes, 256); + SizeT len = rt_string_len(bytes, 0); while (index < len) { diff --git a/Kernel/KernelKit/SMPManager.hpp b/Kernel/KernelKit/SMPManager.hpp index cb6b7884..a7af05d9 100644 --- a/Kernel/KernelKit/SMPManager.hpp +++ b/Kernel/KernelKit/SMPManager.hpp @@ -11,8 +11,7 @@ #include <CompilerKit/CompilerKit.hxx> #include <NewKit/Ref.hxx> -// Last Rev -// Sat Feb 24 CET 2024 +/// @note Last Rev Sun 28 Jul CET 2024 #define kMaxHarts 8 diff --git a/Kernel/Sources/GUIDWizard.cxx b/Kernel/Sources/GUIDWizard.cxx index 71488096..b65c73a8 100644 --- a/Kernel/Sources/GUIDWizard.cxx +++ b/Kernel/Sources/GUIDWizard.cxx @@ -19,24 +19,31 @@ namespace Kernel::XRN::Version1 { - auto make_sequence(const ArrayList<UShort>& uuidSeq) -> Ref<GUIDSequence*> + auto cf_make_sequence(const ArrayList<UInt32>& uuidSeq) -> Ref<GUIDSequence*> { GUIDSequence* seq = new GUIDSequence(); MUST_PASS(seq); Ref<GUIDSequence*> sequenceReference{seq, true}; - sequenceReference->fMs1 |= uuidSeq[0]; - sequenceReference->fMs2 |= uuidSeq[1]; - sequenceReference->fMs3 |= uuidSeq[2]; - sequenceReference->fMs3 |= uuidSeq[3]; + sequenceReference->fMs1 = uuidSeq[0]; + sequenceReference->fMs2 = uuidSeq[1]; + sequenceReference->fMs3 = uuidSeq[2]; + sequenceReference->fMs4[0] = uuidSeq[3]; + sequenceReference->fMs4[1] = uuidSeq[4]; + sequenceReference->fMs4[2] = uuidSeq[5]; + sequenceReference->fMs4[3] = uuidSeq[6]; + sequenceReference->fMs4[4] = uuidSeq[7]; + sequenceReference->fMs4[5] = uuidSeq[8]; + sequenceReference->fMs4[6] = uuidSeq[9]; + sequenceReference->fMs4[7] = uuidSeq[10]; return sequenceReference; } // @brief Tries to make a guid out of a string. // This function is not complete for now - auto try_guid_to_string(Ref<GUIDSequence*>& seq) -> ErrorOr<Ref<StringView>> + auto cf_try_guid_to_string(Ref<GUIDSequence*>& seq) -> ErrorOr<Ref<StringView>> { Char buf[kUUIDSize]; diff --git a/Kernel/Sources/PEFSharedObject.cxx b/Kernel/Sources/PEFSharedObject.cxx index a5928f1b..dccb9d12 100644 --- a/Kernel/Sources/PEFSharedObject.cxx +++ b/Kernel/Sources/PEFSharedObject.cxx @@ -18,66 +18,69 @@ Revision History: - 01/02/24: Rework shared library ABI, except a rt_library_init and - rt_library_free (amlel) 15/02/24: Breaking changes, changed the name of the + 01/02/24: Rework shared sharedObj ABI, except a rt_library_init and + rt_library_fini (amlel) 15/02/24: Breaking changes, changed the name of the routines. (amlel) + 07/28/24: Replace rt_library_free with rt_library_fini + ------------------------------------------- */ using namespace Kernel; /***********************************************************************************/ -/// @file SharedObjectRT.cxx -/// @brief Shared Object runtime. +/// @file PEFSharedObjectRT.cxx +/// @brief PEF's shared object runtime. /***********************************************************************************/ /***********************************************************************************/ -/* @brief Library runtime initializer. */ +/** @brief Library initializer. */ /***********************************************************************************/ EXTERN_C SharedObjectPtr rt_library_init(void) { - SharedObjectPtr library = tls_new_class<SharedObject>(); + SharedObjectPtr sharedObj = tls_new_class<SharedObject>(); - if (!library) + if (!sharedObj) { ProcessScheduler::The().Leak().TheCurrent().Leak().Crash(); return nullptr; } - library->Mount(tls_new_class<SharedObject::SharedObjectTrait>()); + sharedObj->Mount(tls_new_class<SharedObject::SharedObjectTrait>()); - if (!library->Get()) + if (!sharedObj->Get()) { ProcessScheduler::The().Leak().TheCurrent().Leak().Crash(); return nullptr; } - library->Get()->fImageObject = + sharedObj->Get()->fImageObject = ProcessScheduler::The().Leak().TheCurrent().Leak().Image; - if (!library->Get()->fImageObject) + if (!sharedObj->Get()->fImageObject) { ProcessScheduler::The().Leak().TheCurrent().Leak().Crash(); return nullptr; } - library->Get()->fImageEntrypointOffset = - library->Load<VoidPtr>(kPefStart, rt_string_len(kPefStart, 0), kPefCode); + sharedObj->Get()->fImageEntrypointOffset = + sharedObj->Load<VoidPtr>(kPefStart, rt_string_len(kPefStart, 0), kPefCode); - return library; + return sharedObj; } /***********************************************************************************/ -/* @brief Ends the library. */ -/* @note Please check if the lib got freed! */ -/* @param SharedObjectPtr the library to free. */ +/** @brief Frees the sharedObj. */ +/** @note Please check if the lib got freed! */ +/** @param lib The sharedObj to free. */ +/** @param successful Reports if successful or not. */ /***********************************************************************************/ -EXTERN_C Void rt_library_free(SharedObjectPtr lib, bool* successful) +EXTERN_C Void rt_library_fini(SharedObjectPtr lib, bool* successful) { MUST_PASS(successful); @@ -97,9 +100,10 @@ EXTERN_C Void rt_library_free(SharedObjectPtr lib, bool* successful) } /***********************************************************************************/ - /// @brief Unimplemented function (crashes by default) /// @param +/***********************************************************************************/ + EXTERN_C void __mh_purecall(void) { kcout << "newoskrnl: unimplemented symbol!\r"; diff --git a/Samples/SampleHAL/Main.c b/Samples/SampleHAL/Main.c index 6b54742f..9d1510ea 100644 --- a/Samples/SampleHAL/Main.c +++ b/Samples/SampleHAL/Main.c @@ -7,14 +7,14 @@ #include <DDK/KernelString.h> #include <DDK/KernelPrint.h> -int __ImageStart(void) +int __at_enter(void) { - kernelPrintStr("SampleDriver: Starting up...\r"); + kernelPrintStr("SampleHAL: Starting up...\r"); return 0; } -int __ImageEnd(void) +int __at_exit(void) { - kernelPrintStr("SampleDriver: Shutting down...\r"); + kernelPrintStr("SampleHAL: Shutting down...\r"); return 0; } |
