diff options
Diffstat (limited to 'dev/ZKAKit/HALKit')
| -rw-r--r-- | dev/ZKAKit/HALKit/AMD64/HalDescriptorLoader.cc | 6 | ||||
| -rw-r--r-- | dev/ZKAKit/HALKit/AMD64/HalInterruptAPI.asm | 2 | ||||
| -rw-r--r-- | dev/ZKAKit/HALKit/AMD64/HalKernelMain.cc | 29 | ||||
| -rw-r--r-- | dev/ZKAKit/HALKit/AMD64/Storage/AHCI.cc | 2 | ||||
| -rw-r--r-- | dev/ZKAKit/HALKit/ARM64/HalKernelMain.cc | 12 |
5 files changed, 16 insertions, 35 deletions
diff --git a/dev/ZKAKit/HALKit/AMD64/HalDescriptorLoader.cc b/dev/ZKAKit/HALKit/AMD64/HalDescriptorLoader.cc index 5f7bde36..20177eba 100644 --- a/dev/ZKAKit/HALKit/AMD64/HalDescriptorLoader.cc +++ b/dev/ZKAKit/HALKit/AMD64/HalDescriptorLoader.cc @@ -7,6 +7,8 @@ #include <ArchKit/ArchKit.h> #include <HALKit/AMD64/Processor.h> +#define kPITDefaultTicks (1000U) + namespace Kernel::HAL { namespace Detail @@ -20,7 +22,7 @@ namespace Kernel::HAL STATIC Void hal_enable_pit(UInt16 ticks) noexcept { if (ticks == 0) - ticks = 1000; + ticks = kPITDefaultTicks; // Configure PIT to receieve scheduler interrupts. @@ -82,7 +84,7 @@ namespace Kernel::HAL Void IDTLoader::Load(Register64& idt) { - const Int16 kPITTickForScheduler = 100; + const Int16 kPITTickForScheduler = kPITDefaultTicks; volatile ::Kernel::UIntPtr** ptr_ivt = (volatile ::Kernel::UIntPtr**)idt.Base; diff --git a/dev/ZKAKit/HALKit/AMD64/HalInterruptAPI.asm b/dev/ZKAKit/HALKit/AMD64/HalInterruptAPI.asm index 06066f41..49eb2bd8 100644 --- a/dev/ZKAKit/HALKit/AMD64/HalInterruptAPI.asm +++ b/dev/ZKAKit/HALKit/AMD64/HalInterruptAPI.asm @@ -340,6 +340,8 @@ mp_system_call_handler: o64 sysret hal_load_idt: + cli + lidt [rcx] ; Master PIC initialization diff --git a/dev/ZKAKit/HALKit/AMD64/HalKernelMain.cc b/dev/ZKAKit/HALKit/AMD64/HalKernelMain.cc index 507ce217..a50eab32 100644 --- a/dev/ZKAKit/HALKit/AMD64/HalKernelMain.cc +++ b/dev/ZKAKit/HALKit/AMD64/HalKernelMain.cc @@ -13,19 +13,6 @@ #include <CFKit/Property.h> #include <Modules/FB/Text.h> -namespace Kernel::HAL -{ - /// @brief Gets the system cores using the MADT. - /// @param rsp_ptr The 'RSD PTR' data structure. - EXTERN void mp_get_cores(Kernel::voidPtr rsp_ptr) noexcept; -} // namespace Kernel::HAL - -namespace Kernel -{ - EXTERN UserProcessScheduler* kProcessScheduler; - EXTERN HardwareThreadScheduler* kHardwareThreadScheduler; -} // namespace Kernel - EXTERN_C Kernel::VoidPtr kInterruptVectorTable[]; EXTERN_C Kernel::VoidPtr mp_user_switch_proc; EXTERN_C Kernel::Char mp_user_switch_proc_stack_begin[]; @@ -36,9 +23,6 @@ EXTERN_C void hal_init_platform( { kHandoverHeader = HandoverHeader; - Kernel::kProcessScheduler = nullptr; - Kernel::kHardwareThreadScheduler = nullptr; - if (kHandoverHeader->f_Magic != kHandoverMagic && kHandoverHeader->f_Version != kHandoverVersion) { @@ -81,24 +65,11 @@ EXTERN_C void hal_init_platform( Kernel::ke_stop(RUNTIME_CHECK_BOOTSTRAP); } -EXTERN_C Kernel::Void hal_kernel_server(Kernel::Void) noexcept -{ - while (Yes) - ; -} - EXTERN_C Kernel::Void hal_real_init(Kernel::Void) noexcept { /* Initialize filesystem. */ Kernel::NeFileSystemMgr::Mount(new Kernel::NeFileSystemMgr()); - /* Initialize scheduler. */ - Kernel::UserProcessHelper::InitializeScheduler(); - - const Kernel::Char kKernelServerName[255] = "KernelServer"; - - Kernel::rtl_create_process(&hal_kernel_server, kKernelServerName); - /* Start any cores. */ if (kHandoverHeader->f_HardwareTables.f_MultiProcessingEnabled) Kernel::HAL::mp_get_cores(kHandoverHeader->f_HardwareTables.f_VendorPtr); diff --git a/dev/ZKAKit/HALKit/AMD64/Storage/AHCI.cc b/dev/ZKAKit/HALKit/AMD64/Storage/AHCI.cc index caf7cd7e..b329b705 100644 --- a/dev/ZKAKit/HALKit/AMD64/Storage/AHCI.cc +++ b/dev/ZKAKit/HALKit/AMD64/Storage/AHCI.cc @@ -20,7 +20,7 @@ #include <NewKit/Utils.h> #include <KernelKit/LockDelegate.h> -#define kMaxAhciPoll 100000 +#define kMaxAhciPoll (100000U) #ifdef __AHCI__ enum diff --git a/dev/ZKAKit/HALKit/ARM64/HalKernelMain.cc b/dev/ZKAKit/HALKit/ARM64/HalKernelMain.cc index 95b3a9b0..913853d2 100644 --- a/dev/ZKAKit/HALKit/ARM64/HalKernelMain.cc +++ b/dev/ZKAKit/HALKit/ARM64/HalKernelMain.cc @@ -40,7 +40,13 @@ EXTERN_C void hal_init_platform( /* INITIALIZE BIT MAP. */ /************************************** */ - while (Yes) - { - } + kKernelBitMpSize = kHandoverHeader->f_BitMapSize; + kKernelBitMpStart = reinterpret_cast<Kernel::VoidPtr>( + reinterpret_cast<Kernel::UIntPtr>(kHandoverHeader->f_BitMapStart)); + + Kernel::NeFileSystemMgr::Mount(new Kernel::NeFileSystemMgr()); + + + + while (Yes); } |
