summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAmlal EL Mahrouss <amlalelmahrouss@icloud.com>2024-07-28 06:15:54 +0200
committerAmlal EL Mahrouss <amlalelmahrouss@icloud.com>2024-07-28 06:15:54 +0200
commit3feb5cb72e3e422e804098e2fdcb0bd3e7961627 (patch)
tree26c65a3b0cd1a2eb9f6cb5683778a703afcd38e5
parent8fdf00bfb70b111b49de003a46940c9ee8187295 (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.hpp4
-rw-r--r--Kernel/HALKit/AMD64/HalDebugOutput.cxx4
-rw-r--r--Kernel/HALKit/POWER/HalSerialPort.cxx2
-rw-r--r--Kernel/KernelKit/SMPManager.hpp3
-rw-r--r--Kernel/Sources/GUIDWizard.cxx19
-rw-r--r--Kernel/Sources/PEFSharedObject.cxx42
-rw-r--r--Samples/SampleHAL/Main.c8
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;
}