summaryrefslogtreecommitdiffhomepage
path: root/Private/HALKit
diff options
context:
space:
mode:
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.cxx21
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);
}