diff options
| author | Amlal <amlalelmahrouss@icloud.com> | 2024-12-12 11:31:43 +0100 |
|---|---|---|
| committer | Amlal <amlalelmahrouss@icloud.com> | 2024-12-12 11:31:43 +0100 |
| commit | 51860741562f2486a5134dae60311919bcf13785 (patch) | |
| tree | 2f03a875bc9877fed4da21753f522b8849421921 /dev | |
| parent | 71ea4e60ed0b30590a48fde31a74b05e3dd14196 (diff) | |
FIX: Fix build and other fixes.
Signed-off-by: Amlal <amlalelmahrouss@icloud.com>
Diffstat (limited to 'dev')
| -rw-r--r-- | dev/Modules/FB/KWindow.h | 3 | ||||
| -rw-r--r-- | dev/ZBAKit/src/HEL/AMD64/BootMain.cc | 4 | ||||
| -rw-r--r-- | dev/ZKAKit/HALKit/AMD64/HalKernelMain.cc | 14 | ||||
| -rw-r--r-- | dev/ZKAKit/HALKit/ARM64/HalKernelMain.cc | 11 | ||||
| -rw-r--r-- | dev/ZKAKit/NetworkKit/IPC.h | 2 | ||||
| -rw-r--r-- | dev/ZKAKit/src/KernelMain.cc | 86 |
6 files changed, 49 insertions, 71 deletions
diff --git a/dev/Modules/FB/KWindow.h b/dev/Modules/FB/KWindow.h index d49f2d45..06cdd62e 100644 --- a/dev/Modules/FB/KWindow.h +++ b/dev/Modules/FB/KWindow.h @@ -134,8 +134,7 @@ namespace CG inline SizeT CGDrawWindowList(ML_WINDOW_STRUCT** wnd, SizeT wnd_cnt) { - if (wnd_cnt == 0 || - !wnd) + if (!wnd_cnt) return 0; SizeT cnt = 0; diff --git a/dev/ZBAKit/src/HEL/AMD64/BootMain.cc b/dev/ZBAKit/src/HEL/AMD64/BootMain.cc index f6f5d85c..204d3d3a 100644 --- a/dev/ZBAKit/src/HEL/AMD64/BootMain.cc +++ b/dev/ZBAKit/src/HEL/AMD64/BootMain.cc @@ -24,11 +24,11 @@ #endif // !kMachineModel #ifndef kExpectedWidth -#define kExpectedWidth 1280 +#define kExpectedWidth 1920 #endif #ifndef kExpectedHeight -#define kExpectedHeight 720 +#define kExpectedHeight 1080 #endif /** Graphics related. */ diff --git a/dev/ZKAKit/HALKit/AMD64/HalKernelMain.cc b/dev/ZKAKit/HALKit/AMD64/HalKernelMain.cc index c903c269..68b46d0f 100644 --- a/dev/ZKAKit/HALKit/AMD64/HalKernelMain.cc +++ b/dev/ZKAKit/HALKit/AMD64/HalKernelMain.cc @@ -11,6 +11,7 @@ #include <Modules/ACPI/ACPIFactoryInterface.h> #include <NetworkKit/IPC.h> #include <CFKit/Property.h> +#include <Modules/FB/KWindow.h> #include <Modules/FB/Text.h> EXTERN_C Kernel::VoidPtr kInterruptVectorTable[]; @@ -20,7 +21,7 @@ EXTERN_C Kernel::Char mp_user_switch_proc_stack_begin[]; EXTERN_C Kernel::MainKind __CTOR_LIST__[]; EXTERN_C Kernel::VoidPtr __DTOR_LIST__; -EXTERN_C Kernel::Void ke_dll_entrypoint(Kernel::Void); +EXTERN_C Kernel::Void gsh_dll_main(Kernel::Void); STATIC Kernel::Void hal_init_cxx_ctors() { @@ -83,12 +84,9 @@ EXTERN_C void hal_init_platform( EXTERN_C Kernel::Void hal_real_init(Kernel::Void) noexcept { - Kernel::rtl_create_process(ke_dll_entrypoint, "Kernel System"); + CG::CGDrawBackground(); - /* Initialize filesystem. */ - Kernel::NeFileSystemMgr::Mount(new Kernel::NeFileSystemMgr()); - - /* Load interrupts and start SMP. */ + Kernel::rtl_create_process(gsh_dll_main, "GSh"); if (kHandoverHeader->f_HardwareTables.f_MultiProcessingEnabled) Kernel::HAL::mp_get_cores(kHandoverHeader->f_HardwareTables.f_VendorPtr); @@ -99,5 +97,7 @@ EXTERN_C Kernel::Void hal_real_init(Kernel::Void) noexcept Kernel::HAL::IDTLoader idt_loader; idt_loader.Load(idt_reg); - Kernel::ke_stop(RUNTIME_CHECK_BOOTSTRAP); + while (YES) + { + } } diff --git a/dev/ZKAKit/HALKit/ARM64/HalKernelMain.cc b/dev/ZKAKit/HALKit/ARM64/HalKernelMain.cc index 85b67291..e1479c40 100644 --- a/dev/ZKAKit/HALKit/ARM64/HalKernelMain.cc +++ b/dev/ZKAKit/HALKit/ARM64/HalKernelMain.cc @@ -15,10 +15,11 @@ #include <KernelKit/CodeMgr.h> #include <Modules/ACPI/ACPIFactoryInterface.h> #include <NetworkKit/IPC.h> +#include <Modules/FB/KWindow.h> #include <CFKit/Property.h> Kernel::Void hal_real_init(Kernel::Void) noexcept; -EXTERN_C Kernel::Void ke_dll_entrypoint(Kernel::Void); +EXTERN_C Kernel::Void gsh_dll_main(Kernel::Void); EXTERN_C void hal_init_platform( Kernel::HEL::BootInfoHeader* handover_hdr) @@ -46,7 +47,11 @@ EXTERN_C void hal_init_platform( /// @note do initialize the interrupts after it. - Kernel::rtl_create_process(ke_dll_entrypoint, "Kernel System"); + CG::CGDrawBackground(); - Kernel::ke_stop(RUNTIME_CHECK_BOOTSTRAP); + Kernel::rtl_create_process(gsh_dll_main, "GSh"); + + while (YES) + { + } } diff --git a/dev/ZKAKit/NetworkKit/IPC.h b/dev/ZKAKit/NetworkKit/IPC.h index 1e443015..35e7c3e2 100644 --- a/dev/ZKAKit/NetworkKit/IPC.h +++ b/dev/ZKAKit/NetworkKit/IPC.h @@ -13,7 +13,7 @@ #include <NewKit/Defines.h> #include <NewKit/KString.h> #include <HintKit/CompilerHint.h> -#include <CompressKit/RLE.h> +#include <CompressKit/API.h> /// @file IPC.h /// @brief IPC comm. protocol. diff --git a/dev/ZKAKit/src/KernelMain.cc b/dev/ZKAKit/src/KernelMain.cc index 11147a82..6832cd9d 100644 --- a/dev/ZKAKit/src/KernelMain.cc +++ b/dev/ZKAKit/src/KernelMain.cc @@ -25,19 +25,6 @@ #include <Modules/FB/KWindow.h> #include <KernelKit/Timer.h> -/***********************************************************************************/ -/* Returns kernel's version. */ -/***********************************************************************************/ - -EXTERN Kernel::Property cKernelVersion; - -/***********************************************************************************/ -/* This is an external C symbol. */ -/***********************************************************************************/ - -EXTERN_C Kernel::Void _hal_init_mouse(); -EXTERN_C Kernel::Boolean _hal_draw_mouse(); - STATIC CG::ML_WINDOW_STRUCT* kKernelWnd = nullptr; namespace Kernel::Detail @@ -49,34 +36,21 @@ namespace Kernel::Detail public: /// @brief wizard constructor. - explicit FilesystemInstaller() + FilesystemInstaller() { - if (Kernel::IFilesystemMgr::GetMounted()) - { - CG::CGDrawStringToWnd(kKernelWnd, "MinOSKrnl: No need to allocate a NewFS filesystem here...", 10, 10, RGB(0, 0, 0)); - fNeFS = reinterpret_cast<Kernel::NeFileSystemMgr*>(Kernel::IFilesystemMgr::GetMounted()); - } - else - { - CG::CGDrawStringToWnd(kKernelWnd, "MinOSKrnl: Allocating a NewFS filesystem here...", 10, 10, RGB(0, 0, 0)); + fNeFS = (Kernel::NeFileSystemMgr*)Kernel::IFilesystemMgr::GetMounted(); - // Mounts a NewFS from main drive. - fNeFS = new Kernel::NeFileSystemMgr(); - - Kernel::IFilesystemMgr::Mount(fNeFS); - } - - if (fNeFS->GetParser()) + if (fNeFS && fNeFS->GetParser()) { - constexpr auto cFolderInfo = "META-INF"; - const auto cDirCount = 7; - const char* cDirStr[cDirCount] = { + constexpr auto kFolderInfo = "META-INF"; + const auto kFolderCount = 7; + const char* kFolderStr[kFolderCount] = { "/Boot/", "/System/", "/Support/", "/Applications/", "/Users/", "/Library/", "/Mount/"}; - for (Kernel::SizeT dirIndx = 0UL; dirIndx < cDirCount; ++dirIndx) + for (Kernel::SizeT dirIndx = 0UL; dirIndx < kFolderCount; ++dirIndx) { - auto catalogDir = fNeFS->GetParser()->GetCatalog(cDirStr[dirIndx]); + auto catalogDir = fNeFS->GetParser()->GetCatalog(kFolderStr[dirIndx]); if (catalogDir) { @@ -88,15 +62,15 @@ namespace Kernel::Detail continue; } - catalogDir = fNeFS->GetParser()->CreateCatalog(cDirStr[dirIndx], 0, + catalogDir = fNeFS->GetParser()->CreateCatalog(kFolderStr[dirIndx], 0, kNeFSCatalogKindDir); NFS_FORK_STRUCT theFork{0}; - const Kernel::Char* cSrcName = cFolderInfo; + const Kernel::Char* kSrcFolderName = kFolderInfo; - Kernel::rt_copy_memory((Kernel::VoidPtr)(cSrcName), theFork.ForkName, - Kernel::rt_string_len(cSrcName)); + Kernel::rt_copy_memory((Kernel::VoidPtr)(kSrcFolderName), theFork.ForkName, + Kernel::rt_string_len(kSrcFolderName)); Kernel::rt_copy_memory((Kernel::VoidPtr)(catalogDir->Name), theFork.CatalogName, @@ -114,7 +88,7 @@ namespace Kernel::Detail "system</p>\r<p>Volume Type: Zeta</p>\r"; metadataFolder += "<p>Path: "; - metadataFolder += cDirStr[dirIndx]; + metadataFolder += kFolderStr[dirIndx]; metadataFolder += "</p>\r"; const Kernel::SizeT metadataSz = kNeFSSectorSz; @@ -123,7 +97,7 @@ namespace Kernel::Detail fNeFS->GetParser()->WriteCatalog( catalogDir, true, (Kernel::VoidPtr)(metadataFolder.CData()), - metadataSz, cFolderInfo); + metadataSz, kFolderInfo); CG::CGDrawStringToWnd(kKernelWnd, "MinOSKrnl: Catalog has been created...", 10 + (10 * (dirIndx + 1)), 10, RGB(0, 0, 0)); @@ -136,7 +110,7 @@ namespace Kernel::Detail NFS_CATALOG_STRUCT* catalogDisk = this->fNeFS->GetParser()->GetCatalog(kSysPage); - const Kernel::Char* cSrcName = "8K_SYS_PAGE_KERNEL"; + const Kernel::Char* kSrcFolderName = "8K_SYS_PAGE_KERNEL"; if (catalogDisk) { @@ -149,8 +123,8 @@ namespace Kernel::Detail NFS_FORK_STRUCT theDiskFork{0}; - Kernel::rt_copy_memory((Kernel::VoidPtr)(cSrcName), theDiskFork.ForkName, - Kernel::rt_string_len(cSrcName)); + Kernel::rt_copy_memory((Kernel::VoidPtr)(kSrcFolderName), theDiskFork.ForkName, + Kernel::rt_string_len(kSrcFolderName)); Kernel::rt_copy_memory((Kernel::VoidPtr)(catalogDisk->Name), theDiskFork.CatalogName, @@ -185,23 +159,23 @@ namespace Kernel::Detail /// @brief Application entrypoint. /// @param Void /// @return Void -EXTERN_C Kernel::Void ke_dll_entrypoint(Kernel::Void) +EXTERN_C Kernel::Void gsh_dll_main(Kernel::Void) { - CG::CGDrawBackground(); + Kernel::IFilesystemMgr::Mount(new Kernel::NeFileSystemMgr()); + Kernel::Detail::FilesystemInstaller installer; - kKernelWnd = nullptr; - kKernelWnd = CG::CGCreateWindow(CG::kWndFlagWindow, "ZKA Operating System Kernel Log", "Window", 20, 20, CG::UIAccessibilty::The().Height() - 20, CG::UIAccessibilty::The().Width() - 20); - - kKernelWnd->w_sub_type = CG::kWndFlagCloseControlSelect; - kKernelWnd->w_x = 10; - kKernelWnd->w_y = 10; + CG::CGDrawBackground(); - kKernelWnd->w_needs_repaint = Yes; + kKernelWnd = CG::CGCreateWindow(CG::kWndFlagWindow, "ZKA | System Build: " KERNEL_VERSION, "Window", 20, 20, 800, 600); - CG::CGDrawWindowList(&kKernelWnd, 1); + if (kKernelWnd) + { + kKernelWnd->w_sub_type = CG::kWndFlagCloseControlSelect; + kKernelWnd->w_x = 10; + kKernelWnd->w_y = 10; - /// Now run kernel loop, until no process are running. - Kernel::Detail::FilesystemInstaller(); // automatic filesystem creation. + kKernelWnd->w_needs_repaint = Yes; - CG::CGDrawBackground(); + CG::CGDrawWindowList(&kKernelWnd, 1); + } } |
