summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/ArchKit/ArchKit.h
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-05-02 19:38:46 +0200
committerGitHub <noreply@github.com>2025-05-02 19:38:46 +0200
commit997be16e5ac9a68d54882ab69529815860d62955 (patch)
tree19d6129c2d776bb1edc5d4a7325e39ca176c3403 /dev/kernel/ArchKit/ArchKit.h
parent618104e74c195d7508a18450524f8ed7f9af8cc6 (diff)
parentb3b4b1ebdcd6adeac914869017c86d892b7a8ced (diff)
Merge pull request #28 from nekernel-org/dev
0.0.2
Diffstat (limited to 'dev/kernel/ArchKit/ArchKit.h')
-rw-r--r--dev/kernel/ArchKit/ArchKit.h112
1 files changed, 49 insertions, 63 deletions
diff --git a/dev/kernel/ArchKit/ArchKit.h b/dev/kernel/ArchKit/ArchKit.h
index c55f3872..41a36e69 100644
--- a/dev/kernel/ArchKit/ArchKit.h
+++ b/dev/kernel/ArchKit/ArchKit.h
@@ -1,6 +1,6 @@
/* -------------------------------------------
- Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved.
+ Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved.
------------------------------------------- */
@@ -13,8 +13,8 @@
#include <FirmwareKit/Handover.h>
#ifdef __NE_AMD64__
-#include <HALKit/AMD64/Paging.h>
#include <HALKit/AMD64/Hypervisor.h>
+#include <HALKit/AMD64/Paging.h>
#include <HALKit/AMD64/Processor.h>
#elif defined(__NE_POWER64__)
#include <HALKit/POWER/Processor.h>
@@ -26,73 +26,59 @@
#error !!! unknown architecture !!!
#endif
-#define kKernelMaxSystemCalls (512U)
-
-namespace Kernel
-{
- inline SSizeT rt_hash_seed(const Char* seed, int mul)
- {
- SSizeT hash = 0;
-
- for (SSizeT idx = 0; seed[idx] != 0; ++idx)
- {
- hash += seed[idx];
- hash ^= mul;
- }
-
- return hash;
- }
-
- /// @brief write to mapped memory register
- /// @param base the base address.
- /// @param reg the register.
- /// @param value the write to write on it.
- template <typename DataKind>
- inline Void ke_dma_write(UIntPtr base, DataKind reg, DataKind value) noexcept
- {
- *(volatile DataKind*)(base + reg) = value;
- }
-
- /// @brief read from mapped memory register.
- /// @param base base address
- /// @param reg the register.
- /// @return the value inside the register.
- template <typename DataKind>
- inline UInt32 ke_dma_read(UIntPtr base, DataKind reg) noexcept
- {
- return *(volatile DataKind*)(base + reg);
- }
-
- /// @brief Hardware Abstraction Layer
- namespace HAL
- {
- /// @brief Check whether this pointer is a bitmap object.
- /// @param ptr argument to verify.
- /// @param whether successful or not.
- auto mm_is_bitmap(VoidPtr ptr) -> Bool;
- } // namespace HAL
-} // namespace Kernel
+#define kMaxDispatchCallCount (512U)
+
+namespace Kernel {
+inline SSizeT rt_hash_seed(const Char* seed, int mul) {
+ SSizeT hash = 0;
+
+ for (SSizeT idx = 0; seed[idx] != 0; ++idx) {
+ hash += seed[idx];
+ hash ^= mul;
+ }
+
+ return hash;
+}
+
+/// @brief write to mapped memory register
+/// @param base the base address.
+/// @param reg the register.
+/// @param value the write to write on it.
+template <typename DataKind>
+inline Void ke_dma_write(UIntPtr base, DataKind reg, DataKind value) noexcept {
+ *(volatile DataKind*) (base + reg) = value;
+}
+
+/// @brief read from mapped memory register.
+/// @param base base address
+/// @param reg the register.
+/// @return the value inside the register.
+template <typename DataKind>
+inline UInt32 ke_dma_read(UIntPtr base, DataKind reg) noexcept {
+ return *(volatile DataKind*) (base + reg);
+}
+
+/// @brief Hardware Abstraction Layer
+namespace HAL {
+ /// @brief Check whether this pointer is a bitmap object.
+ /// @param ptr argument to verify.
+ /// @param whether successful or not.
+ auto mm_is_bitmap(VoidPtr ptr) -> Bool;
+} // namespace HAL
+} // namespace Kernel
typedef Kernel::Void (*rt_syscall_proc)(Kernel::VoidPtr);
-struct HalSyscallEntry final
-{
- Kernel::Int64 fHash;
- Kernel::Bool fHooked;
- rt_syscall_proc fProc;
+struct HalSyscallEntry final {
+ Kernel::Int64 fHash;
+ Kernel::Bool fHooked;
+ rt_syscall_proc fProc;
- operator bool()
- {
- return fHooked;
- }
+ operator bool() { return fHooked; }
};
-inline Kernel::Array<HalSyscallEntry,
- kKernelMaxSystemCalls>
- kSyscalls;
+inline Kernel::Array<HalSyscallEntry, kMaxDispatchCallCount> kSysCalls;
-inline Kernel::Array<HalSyscallEntry,
- kKernelMaxSystemCalls>
- kKerncalls;
+inline Kernel::Array<HalSyscallEntry, kMaxDispatchCallCount> kKernCalls;
EXTERN_C Kernel::HAL::StackFramePtr mp_get_current_context(Kernel::Int64 pid);