summaryrefslogtreecommitdiffhomepage
path: root/dev
diff options
context:
space:
mode:
authorAmlal <amlalelmahrouss@icloud.com>2024-12-12 11:31:43 +0100
committerAmlal <amlalelmahrouss@icloud.com>2024-12-12 11:31:43 +0100
commit51860741562f2486a5134dae60311919bcf13785 (patch)
tree2f03a875bc9877fed4da21753f522b8849421921 /dev
parent71ea4e60ed0b30590a48fde31a74b05e3dd14196 (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.h3
-rw-r--r--dev/ZBAKit/src/HEL/AMD64/BootMain.cc4
-rw-r--r--dev/ZKAKit/HALKit/AMD64/HalKernelMain.cc14
-rw-r--r--dev/ZKAKit/HALKit/ARM64/HalKernelMain.cc11
-rw-r--r--dev/ZKAKit/NetworkKit/IPC.h2
-rw-r--r--dev/ZKAKit/src/KernelMain.cc86
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);
+ }
}