diff options
| author | Amlal <amlalelmahrouss@icloud.com> | 2024-09-05 19:13:02 +0000 |
|---|---|---|
| committer | Amlal <amlalelmahrouss@icloud.com> | 2024-09-05 19:13:02 +0000 |
| commit | 621e814da6d5005ade8a1fe3f378a363db559cf7 (patch) | |
| tree | 438f1337c0eb2ae83cf3d409c29848d396be08b2 /dev/ZKA/NewKit | |
| parent | cc9ce57cac59bd443e2319e3b8f427172b93f7da (diff) | |
| parent | 3b60a1e87ab02a1b72d8bb9f7392780899d5a0d7 (diff) | |
Merged in major-refactor (pull request #19)
Major refactor
Diffstat (limited to 'dev/ZKA/NewKit')
| -rw-r--r-- | dev/ZKA/NewKit/KernelCheck.hxx | 3 | ||||
| -rw-r--r-- | dev/ZKA/NewKit/Macros.hxx | 23 | ||||
| -rw-r--r-- | dev/ZKA/NewKit/PageAllocator.hxx | 3 | ||||
| -rw-r--r-- | dev/ZKA/NewKit/PageMgr.hxx (renamed from dev/ZKA/NewKit/PageManager.hxx) | 22 | ||||
| -rw-r--r-- | dev/ZKA/NewKit/Pmm.hxx | 8 | ||||
| -rw-r--r-- | dev/ZKA/NewKit/Ref.hxx | 2 |
6 files changed, 35 insertions, 26 deletions
diff --git a/dev/ZKA/NewKit/KernelCheck.hxx b/dev/ZKA/NewKit/KernelCheck.hxx index 58a76acb..8797ff86 100644 --- a/dev/ZKA/NewKit/KernelCheck.hxx +++ b/dev/ZKA/NewKit/KernelCheck.hxx @@ -20,7 +20,7 @@ namespace Kernel Kernel::ke_runtime_check(EXPR, FILE, STRINGIFY(LINE)) #ifdef __DEBUG__ -#define MUST_PASS(EXPR) __MUST_PASS(EXPR, __FILE__, __LINE__) +#define MUST_PASS(EXPR) __MUST_PASS((EXPR), __FILE__, __LINE__) #define assert(EXPR) MUST_PASS(EXPR, RUNTIME_CHECK_EXPRESSION) #else #define MUST_PASS(EXPR) (Kernel::Void)(EXPR) @@ -43,6 +43,7 @@ enum RUNTIME_CHECK RUNTIME_CHECK_BOOTSTRAP, RUNTIME_CHECK_UNEXCPECTED, RUNTIME_CHECK_FILESYSTEM, + RUNTIME_CHECK_VIRTUAL_OUT_OF_MEM, RUNTIME_CHECK_COUNT, }; diff --git a/dev/ZKA/NewKit/Macros.hxx b/dev/ZKA/NewKit/Macros.hxx index 153b8c45..b20ddb8a 100644 --- a/dev/ZKA/NewKit/Macros.hxx +++ b/dev/ZKA/NewKit/Macros.hxx @@ -7,31 +7,31 @@ #pragma once #ifndef KIB -#define KIB(X) ((X) / 1024) +#define KIB(X) (Kernel::UInt64)((X) / 1024) #endif #ifndef kib_cast -#define kib_cast(X) ((X)*1024) +#define kib_cast(X) (Kernel::UInt64)((X)*1024) #endif #ifndef MIB -#define MIB(X) ((Kernel::UInt64)KIB(X) / 1024) +#define MIB(X) (Kernel::UInt64)((Kernel::UInt64)KIB(X) / 1024) #endif #ifndef mib_cast -#define mib_cast(X) ((Kernel::UInt64)kib_cast(X) * 1024) +#define mib_cast(X) (Kernel::UInt64)((Kernel::UInt64)kib_cast(X) * 1024) #endif #ifndef GIB -#define GIB(X) ((Kernel::UInt64)MIB(X) / 1024) +#define GIB(X) (Kernel::UInt64)((Kernel::UInt64)MIB(X) / 1024) #endif #ifndef gib_cast -#define gib_cast(X) ((Kernel::UInt64)mib_cast(X) * 1024) +#define gib_cast(X) (Kernel::UInt64)((Kernel::UInt64)mib_cast(X) * 1024) #endif #ifndef TIB -#define TIB(X) ((Kernel::UInt64)GIB(X) / 1024) +#define TIB(X) (Kernel::UInt64)((Kernel::UInt64)GIB(X) / 1024) #endif #ifndef tib_cast @@ -94,7 +94,7 @@ #define CANT_REACH() __builtin_unreachable() #endif -#define kBadPtr 0xFBFBFBFBFBFBFBFB +#define kInvalidAddress 0xFBFBFBFBFBFBFBFB #define kBadAddress 0x00000000000000 #define kMaxAddr 0xFFFFFFFFFFFFFFFF #define kPathLen 255 @@ -119,3 +119,10 @@ /// @brief The main system driver. #define kSysDrv "\\System\\startup.sys" + +/// @brief The main font file. +#define kSysTTF "\\System\\urbanist.ttf" + +/// @brief The main kernel file. +#define kSysChime "\\System\\startup.wav" + diff --git a/dev/ZKA/NewKit/PageAllocator.hxx b/dev/ZKA/NewKit/PageAllocator.hxx index b485e722..5b19c0c2 100644 --- a/dev/ZKA/NewKit/PageAllocator.hxx +++ b/dev/ZKA/NewKit/PageAllocator.hxx @@ -7,13 +7,12 @@ #pragma once #include <NewKit/Defines.hxx> -#include <NewKit/PageManager.hxx> +#include <NewKit/PageMgr.hxx> namespace Kernel { namespace Detail { - VoidPtr create_page_wrapper(Boolean rw, Boolean user, SizeT pageSz); void exec_disable(UIntPtr addr); bool page_disable(UIntPtr addr); } // namespace Detail diff --git a/dev/ZKA/NewKit/PageManager.hxx b/dev/ZKA/NewKit/PageMgr.hxx index 249c0cc9..1f6b5021 100644 --- a/dev/ZKA/NewKit/PageManager.hxx +++ b/dev/ZKA/NewKit/PageMgr.hxx @@ -15,7 +15,7 @@ namespace Kernel { - class PageManager; + class PageMgr; class PTEWrapper final { @@ -31,7 +31,9 @@ namespace Kernel const UIntPtr VirtualAddress(); void NoExecute(const bool enable = false); - const bool& NoExecute(); + const Bool& NoExecute(); + + operator bool() { return fVirtAddr; } bool Reclaim(); bool Shareable(); @@ -50,25 +52,25 @@ namespace Kernel Boolean fAccessed; private: - friend class PageManager; + friend class PageMgr; friend class Pmm; }; - struct PageManager final + struct PageMgr final { public: - PageManager() = default; - ~PageManager() = default; + PageMgr() = default; + ~PageMgr() = default; - PageManager& operator=(const PageManager&) = default; - PageManager(const PageManager&) = default; + PageMgr& operator=(const PageMgr&) = default; + PageMgr(const PageMgr&) = default; public: PTEWrapper Request(Boolean Rw, Boolean User, Boolean ExecDisable, SizeT Sz); - bool Free(Ref<PTEWrapper*>& wrapper); + bool Free(Ref<PTEWrapper>& wrapper); private: - void FlushTLB(UIntPtr VirtAddr); + void FlushTLB(); private: friend PTEWrapper; diff --git a/dev/ZKA/NewKit/Pmm.hxx b/dev/ZKA/NewKit/Pmm.hxx index 111b3044..cdf498d9 100644 --- a/dev/ZKA/NewKit/Pmm.hxx +++ b/dev/ZKA/NewKit/Pmm.hxx @@ -7,7 +7,7 @@ #pragma once -#include <NewKit/PageManager.hxx> +#include <NewKit/PageMgr.hxx> #include <NewKit/Ref.hxx> namespace Kernel @@ -33,12 +33,12 @@ namespace Kernel Boolean ToggleShare(Ref<PTEWrapper> refPage, Boolean enable = true); /// @brief Get the page manager of this. - Ref<PageManager>& Leak() + Ref<PageMgr>& Leak() { - return fPageManager; + return fPageMgr; } private: - Ref<PageManager> fPageManager; + Ref<PageMgr> fPageMgr; }; } // namespace Kernel diff --git a/dev/ZKA/NewKit/Ref.hxx b/dev/ZKA/NewKit/Ref.hxx index 977c353a..7f5167c2 100644 --- a/dev/ZKA/NewKit/Ref.hxx +++ b/dev/ZKA/NewKit/Ref.hxx @@ -84,7 +84,7 @@ namespace Kernel NonNullRef(T* ref) : fRef(ref, true) { - MUST_PASS(ref != nullptr); + MUST_PASS(ref); } Ref<T>& operator->() |
