diff options
| author | Amlal EL Mahrouss <amlal@softwarelabs.com> | 2024-06-14 23:46:50 +0200 |
|---|---|---|
| committer | Amlal EL Mahrouss <amlal@softwarelabs.com> | 2024-06-14 23:46:50 +0200 |
| commit | a7091202dab1d4a3fcfa15ecb0f1f0b2c28d0957 (patch) | |
| tree | 4a183bf23e9387acbf84914a97dc72584ecee220 /Kernel | |
| parent | 058fec6d8ef07a0c1c5f4408ef84b92c6badf3ec (diff) | |
MHR-31: Working on SMP for ARM64, implementing HAL for ARM64 based Zeta
machines.
Signed-off-by: Amlal EL Mahrouss <amlal@softwarelabs.com>
Diffstat (limited to 'Kernel')
| -rw-r--r-- | Kernel/FSKit/FAT32.hxx | 12 | ||||
| -rw-r--r-- | Kernel/FSKit/IndexableProperty.hxx | 3 | ||||
| -rw-r--r-- | Kernel/HALKit/ARM64/Hart.hxx | 13 | ||||
| -rw-r--r-- | Kernel/HALKit/ARM64/MBCI/.keepme | 0 | ||||
| -rw-r--r-- | Kernel/HALKit/POWER/Hart.hxx | 6 | ||||
| -rw-r--r-- | Kernel/HALKit/RISCV/Hart.hxx | 6 |
6 files changed, 39 insertions, 1 deletions
diff --git a/Kernel/FSKit/FAT32.hxx b/Kernel/FSKit/FAT32.hxx new file mode 100644 index 00000000..4aa0fc2b --- /dev/null +++ b/Kernel/FSKit/FAT32.hxx @@ -0,0 +1,12 @@ +/* -------------------------------------------
+
+ Copyright Zeta Electronics Corporation
+
+------------------------------------------- */
+
+#pragma once
+
+#include <NewKit/Defines.hpp>
+
+/// @file FAT32.hxx
+/// @brief FAT32 support.
\ No newline at end of file diff --git a/Kernel/FSKit/IndexableProperty.hxx b/Kernel/FSKit/IndexableProperty.hxx index ef742a8e..91b90903 100644 --- a/Kernel/FSKit/IndexableProperty.hxx +++ b/Kernel/FSKit/IndexableProperty.hxx @@ -28,9 +28,10 @@ namespace NewOS { public: explicit IndexableProperty() - : Property(StringBuilder::Construct("IndexableProperty").Leak().Leak()) + : Property(StringBuilder::Construct("Indexable").Leak().Leak()) { } + ~IndexableProperty() override = default; NEWOS_COPY_DEFAULT(IndexableProperty); diff --git a/Kernel/HALKit/ARM64/Hart.hxx b/Kernel/HALKit/ARM64/Hart.hxx index 0146ad8c..bc35c3f5 100644 --- a/Kernel/HALKit/ARM64/Hart.hxx +++ b/Kernel/HALKit/ARM64/Hart.hxx @@ -5,3 +5,16 @@ ------------------------------------------- */
#pragma once
+
+#include <NewKit/Defines.hpp>
+
+/// @file HALKit\ARM64\Hart.hxx
+/// @brief ARM64 hardware thread concept.
+
+typedef NewOS::Int32 Arm64HartType;
+
+/// @brief Set PC to specific hart.
+/// @param hart the hart
+/// @param epc the pc.
+/// @return
+EXTERN_C NewOS::Void hal_switch_to_hart(Arm64HartType hart, NewOS::VoidPtr epc);
\ No newline at end of file diff --git a/Kernel/HALKit/ARM64/MBCI/.keepme b/Kernel/HALKit/ARM64/MBCI/.keepme new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/Kernel/HALKit/ARM64/MBCI/.keepme diff --git a/Kernel/HALKit/POWER/Hart.hxx b/Kernel/HALKit/POWER/Hart.hxx index 4e4a281b..10066048 100644 --- a/Kernel/HALKit/POWER/Hart.hxx +++ b/Kernel/HALKit/POWER/Hart.hxx @@ -26,3 +26,9 @@ typedef struct HalHardwareThread NewOS::UInt32 fPageFlags; PPCHartType fIdentNumber; } HalHardwareThread; + +/// @brief Set PC to specific hart. +/// @param hart the hart +/// @param epc the pc. +/// @return +EXTERN_C NewOS::Void hal_switch_to_hart(HalHardwareThread* hart, NewOS::VoidPtr epc);
\ No newline at end of file diff --git a/Kernel/HALKit/RISCV/Hart.hxx b/Kernel/HALKit/RISCV/Hart.hxx index 17ec84a1..ba56b7c9 100644 --- a/Kernel/HALKit/RISCV/Hart.hxx +++ b/Kernel/HALKit/RISCV/Hart.hxx @@ -16,3 +16,9 @@ #include <NewKit/Defines.hpp> typedef NewOS::Int32 Rv64HartType; + +/// @brief Set PC to specific hart. +/// @param hart the hart +/// @param epc the pc. +/// @return +EXTERN_C NewOS::Void hal_switch_to_hart(Rv64HartType hart, NewOS::VoidPtr epc);
\ No newline at end of file |
