diff options
| author | Amlal El Mahrouss <amlal@el-mahrouss-logic.com> | 2024-03-24 09:36:47 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@el-mahrouss-logic.com> | 2024-03-24 09:36:47 +0100 |
| commit | c1c1c7cb8ec2518b746804ecc2be9e0613fe685f (patch) | |
| tree | 2c43f6637c9de551ad695a4d149dd66e0d6a18b7 /Private/HALKit | |
| parent | 09383c793fe953da6441902b4f66b1382df46738 (diff) | |
Kernel: Add CRC32 check inside the kernel's heap,
Handover: Rename f_VendorTable to f_RsdPtr and f_SmBios.
Signed-off-by: Amlal El Mahrouss <amlal@el-mahrouss-logic.com>
Diffstat (limited to 'Private/HALKit')
| -rw-r--r-- | Private/HALKit/AMD64/HalInterruptAPI.asm (renamed from Private/HALKit/AMD64/HalInterruptRouting.asm) | 12 | ||||
| -rw-r--r-- | Private/HALKit/AMD64/HalKernelMain.cxx | 21 |
2 files changed, 15 insertions, 18 deletions
diff --git a/Private/HALKit/AMD64/HalInterruptRouting.asm b/Private/HALKit/AMD64/HalInterruptAPI.asm index c00ce375..b62d2151 100644 --- a/Private/HALKit/AMD64/HalInterruptRouting.asm +++ b/Private/HALKit/AMD64/HalInterruptAPI.asm @@ -3,7 +3,7 @@ ;; * ;; * Copyright Mahrouss Logic, all rights reserved. ;; * -;; * File: HalInterruptRouting.asm +;; * File: HalInterruptAPI.asm ;; * Purpose: Interrupt routing, redirect raw interrupts into their handlers. ;; * ;; * --------------------------------------------------- @@ -129,13 +129,6 @@ IntNormal 49 __HCR_INT_50: cli - push rax - - mov rcx, kSystemCallLabel - call ke_io_print - - pop rax - sti iretq @@ -198,6 +191,3 @@ kInterruptVectorTable: dq __HCR_INT_%+i %assign i i+1 %endrep - -kSystemCallLabel: - db "NewKernel.exe: SystemCall: Enter SCM.", 0xa, 0xd, 0
\ No newline at end of file diff --git a/Private/HALKit/AMD64/HalKernelMain.cxx b/Private/HALKit/AMD64/HalKernelMain.cxx index 90a09556..10a0fe09 100644 --- a/Private/HALKit/AMD64/HalKernelMain.cxx +++ b/Private/HALKit/AMD64/HalKernelMain.cxx @@ -17,7 +17,7 @@ #include <KernelKit/UserHeap.hpp> #include <NewKit/Json.hpp> -///! @brief Disk contains HCore files. +///! @brief Disk already contains an installation. #define kInstalledMedia 0xDD EXTERN_C HCore::VoidPtr kInterruptVectorTable[]; @@ -70,26 +70,33 @@ EXTERN_C void RuntimeMain( /// END POST /// Mounts a NewFS block. - HCore::FilesystemManagerInterface::Mount(new HCore::NewFilesystemManager()); - HCore::ke_delete_ke_heap(HCore::FilesystemManagerInterface::Unmount()); + HCore::NewFilesystemManager* newFS = new HCore::NewFilesystemManager(); + HCore::ke_protect_ke_heap(newFS); + + HCore::FilesystemManagerInterface::Mount(newFS); /// We already have an install of HCore. if (HandoverHeader->f_Bootloader == kInstalledMedia) { ToolboxInitRsrc(); - ToolboxDrawRsrc(MahroussLogic, MAHROUSSLOGIC_HEIGHT, MAHROUSSLOGIC_WIDTH, - ((kHandoverHeader->f_GOP.f_Width - MAHROUSSLOGIC_WIDTH) / 2), - ((kHandoverHeader->f_GOP.f_Height - MAHROUSSLOGIC_HEIGHT) / 2)); + ToolboxDrawRsrc( + MahroussLogic, MAHROUSSLOGIC_HEIGHT, MAHROUSSLOGIC_WIDTH, + ((kHandoverHeader->f_GOP.f_Width - MAHROUSSLOGIC_WIDTH) / 2), + ((kHandoverHeader->f_GOP.f_Height - MAHROUSSLOGIC_HEIGHT) / 2)); ToolboxClearRsrc(); + + TOOLBOX_LOOP() {} } else { /// TODO: Install hcore on host. _hal_init_mouse(); - ToolboxDrawZone(kClearClr, kHandoverHeader->f_GOP.f_Height, kHandoverHeader->f_GOP.f_Width, 0, 0); + ToolboxDrawZone(kClearClr, kHandoverHeader->f_GOP.f_Height, + kHandoverHeader->f_GOP.f_Width, 0, 0); TOOLBOX_LOOP() { _hal_draw_mouse(); } } + HCore::ke_delete_ke_heap(newFS); HCore::ke_stop(RUNTIME_CHECK_BOOTSTRAP); } |
