diff options
Diffstat (limited to 'dev/kernel/HALKit')
| -rw-r--r-- | dev/kernel/HALKit/AMD64/HalCommonAPI.asm | 7 | ||||
| -rw-r--r-- | dev/kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc | 6 | ||||
| -rw-r--r-- | dev/kernel/HALKit/AMD64/HalKernelMain.cc | 8 |
3 files changed, 10 insertions, 11 deletions
diff --git a/dev/kernel/HALKit/AMD64/HalCommonAPI.asm b/dev/kernel/HALKit/AMD64/HalCommonAPI.asm index 432f79d3..a04aeb95 100644 --- a/dev/kernel/HALKit/AMD64/HalCommonAPI.asm +++ b/dev/kernel/HALKit/AMD64/HalCommonAPI.asm @@ -99,12 +99,13 @@ sched_jump_to_task: mov r15, [rcx + 0x48] mov rax, [rcx + 0x00] - mov rsp, [rcx + 0x08] ; SP + mov rsp, [rcx + 0x08] jmp rax + int 3 ;; Never continue here. -global rtl_ne_task +global sched_idle_task -rtl_ne_task: +sched_idle_task: jmp $ ret
\ No newline at end of file diff --git a/dev/kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc b/dev/kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc index 00c206f0..7e2b8957 100644 --- a/dev/kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc +++ b/dev/kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc @@ -20,11 +20,11 @@ STATIC BOOL kIsRunning = NO; STATIC void hal_idt_send_eoi(UInt8 vector) { ((volatile UInt32*) kApicBaseAddress)[0xB0 / 4] = 0; - if (vector >= 0x20 && vector <= 0x2F) { + if (vector >= kPICCommand && vector <= 0x2F) { if (vector >= 0x28) { - Kernel::HAL::rt_out8(0xA0, 0x20); + Kernel::HAL::rt_out8(kPIC2Command, kPICCommand); } - Kernel::HAL::rt_out8(0x20, 0x20); + Kernel::HAL::rt_out8(kPICCommand, kPICCommand); } kIsRunning = NO; diff --git a/dev/kernel/HALKit/AMD64/HalKernelMain.cc b/dev/kernel/HALKit/AMD64/HalKernelMain.cc index 00dafc7b..581af60a 100644 --- a/dev/kernel/HALKit/AMD64/HalKernelMain.cc +++ b/dev/kernel/HALKit/AMD64/HalKernelMain.cc @@ -103,12 +103,10 @@ EXTERN_C Int32 hal_init_platform(Kernel::HEL::BootInfoHeader* handover_hdr) { return kEfiFail; } -EXTERN_C void rtl_ne_task(void); - EXTERN_C Kernel::Void hal_real_init(Kernel::Void) noexcept { - Kernel::rtl_create_user_process(rtl_ne_task, "MgmtSrv"); - Kernel::rtl_create_user_process(rtl_ne_task, "LaunchSrv"); - Kernel::rtl_create_user_process(rtl_ne_task, "SecSrv"); + Kernel::rtl_create_user_process(sched_idle_task, "MgmtSrv"); //! Mgmt command server. + Kernel::rtl_create_user_process(sched_idle_task, "LaunchSrv"); //! launchd + Kernel::rtl_create_user_process(sched_idle_task, "SecSrv"); //! Login Server Kernel::HAL::mp_init_cores(kHandoverHeader->f_HardwareTables.f_VendorPtr); |
