summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/HALKit
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-04-19 08:40:12 +0200
committerGitHub <noreply@github.com>2025-04-19 08:40:12 +0200
commitf87797692777540eede1d4739199b444bd15340a (patch)
tree646ae3f61ebcd3f83c888912c5f72efc0a8c25b0 /dev/kernel/HALKit
parentee1edba85ea13627871e1ed005931bd502b86ab8 (diff)
parent1740a0dff822d7666b8c1f056b6c411ef6b0f9fd (diff)
NeKernel: 0.0.10.0.1-release
# NeKernel: 0.0.1 ## Features (not all included): - New extended File System. - Kernel and Bootloader (NeKernel and BootZ) - Process Scheduler. - NeKernel's Preferred Executable Format. - SysChk. - Explicit Partition Map scheme. #### NOTE: The GPT scheme is in WiP! Please run NeKernel on QEMU!
Diffstat (limited to 'dev/kernel/HALKit')
-rw-r--r--dev/kernel/HALKit/AMD64/HalKernelMain.cc17
-rw-r--r--dev/kernel/HALKit/AMD64/Processor.h14
-rw-r--r--dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc3
-rw-r--r--dev/kernel/HALKit/AMD64/Storage/PIO+Generic.cc3
-rw-r--r--dev/kernel/HALKit/ARM64/Processor.h2
5 files changed, 18 insertions, 21 deletions
diff --git a/dev/kernel/HALKit/AMD64/HalKernelMain.cc b/dev/kernel/HALKit/AMD64/HalKernelMain.cc
index b716279d..7f3d4137 100644
--- a/dev/kernel/HALKit/AMD64/HalKernelMain.cc
+++ b/dev/kernel/HALKit/AMD64/HalKernelMain.cc
@@ -4,7 +4,6 @@
------------------------------------------- */
-#include "modules/CoreGfx/CoreGfx.h"
#include <StorageKit/AHCI.h>
#include <ArchKit/ArchKit.h>
#include <KernelKit/ProcessScheduler.h>
@@ -15,16 +14,15 @@
#include <CFKit/Property.h>
#include <modules/CoreGfx/TextGfx.h>
#include <KernelKit/Timer.h>
-
+#include <modules/CoreGfx/CoreWindow.h>
#include <FirmwareKit/EFI/API.h>
#include <FirmwareKit/EFI/EFI.h>
-
EXTERN_C Kernel::VoidPtr kInterruptVectorTable[];
EXTERN_C Kernel::VoidPtr mp_user_switch_proc;
EXTERN_C Kernel::Char mp_user_switch_proc_stack_begin[];
-STATIC Kernel::Void hal_init_scheduler_team()
+STATIC Kernel::Void hal_pre_init_scheduler()
{
for (Kernel::SizeT i = 0U; i < Kernel::UserProcessScheduler::The().CurrentTeam().AsArray().Count(); ++i)
{
@@ -47,13 +45,9 @@ EXTERN_C Int32 hal_init_platform(
FB::fb_clear_video();
- (Void)(Kernel::kout << "Welcome to NeKernel.\r");
-
fw_init_efi((EfiSystemTable*)handover_hdr->f_FirmwareCustomTables[1]);
Boot::ExitBootServices(handover_hdr->f_HardwareTables.f_ImageKey, handover_hdr->f_HardwareTables.f_ImageHandle);
- hal_init_scheduler_team();
-
/************************************** */
/* INITIALIZE BIT MAP. */
/************************************** */
@@ -92,6 +86,8 @@ EXTERN_C Int32 hal_init_platform(
EXTERN_C Kernel::Void hal_real_init(Kernel::Void) noexcept
{
+ hal_pre_init_scheduler();
+
Kernel::NeFS::fs_init_nefs();
Kernel::HAL::mp_init_cores(kHandoverHeader->f_HardwareTables.f_VendorPtr);
@@ -103,5 +99,8 @@ EXTERN_C Kernel::Void hal_real_init(Kernel::Void) noexcept
idt_loader.Load(idt_reg);
- dbg_break_point();
+ while (YES)
+ {
+ ;
+ }
}
diff --git a/dev/kernel/HALKit/AMD64/Processor.h b/dev/kernel/HALKit/AMD64/Processor.h
index b813e1d9..f2e9c2ea 100644
--- a/dev/kernel/HALKit/AMD64/Processor.h
+++ b/dev/kernel/HALKit/AMD64/Processor.h
@@ -68,13 +68,13 @@ namespace Kernel::HAL
/// @brief Memory Manager mapping flags.
enum
{
- kMMFlagsInvalid = 1 << 0,
- kMMFlagsPresent = 1 << 1,
- kMMFlagsWr = 1 << 2,
- kMMFlagsUser = 1 << 3,
- kMMFlagsNX = 1 << 4,
- kMMFlagsPCD = 1 << 5,
- kMMFlagsCount = 4,
+ kMMFlagsInvalid = 1 << 0,
+ kMMFlagsPresent = 1 << 1,
+ kMMFlagsWr = 1 << 2,
+ kMMFlagsUser = 1 << 3,
+ kMMFlagsNX = 1 << 4,
+ kMMFlagsPCD = 1 << 5,
+ kMMFlagsCount = 4,
};
struct PACKED Register64 final
diff --git a/dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc b/dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc
index 9c8f95bc..08fd02ab 100644
--- a/dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc
+++ b/dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc
@@ -479,8 +479,7 @@ namespace Kernel
return ErrorOr<AHCIDeviceInterface>(kErrorDisk);
AHCIDeviceInterface device(Detail::sk_io_read_ahci,
- Detail::sk_io_write_ahci,
- nullptr);
+ Detail::sk_io_write_ahci);
device.SetPortsImplemented(kSATAPortsImplemented);
device.SetIndex(drv_index);
diff --git a/dev/kernel/HALKit/AMD64/Storage/PIO+Generic.cc b/dev/kernel/HALKit/AMD64/Storage/PIO+Generic.cc
index cc8c92d8..257dd5c8 100644
--- a/dev/kernel/HALKit/AMD64/Storage/PIO+Generic.cc
+++ b/dev/kernel/HALKit/AMD64/Storage/PIO+Generic.cc
@@ -252,8 +252,7 @@ namespace Kernel
{
/// here we don't check if we probed ATA, since we'd need to grab IO after that.
ATADeviceInterface device(Detail::sk_io_read_pio,
- Detail::sk_io_write_pio,
- nullptr);
+ Detail::sk_io_write_pio);
device.SetIndex(drv_index);
diff --git a/dev/kernel/HALKit/ARM64/Processor.h b/dev/kernel/HALKit/ARM64/Processor.h
index 4cead7ea..3a04bed1 100644
--- a/dev/kernel/HALKit/ARM64/Processor.h
+++ b/dev/kernel/HALKit/ARM64/Processor.h
@@ -28,7 +28,7 @@ namespace Kernel::HAL
kMMFlagsWr = 1 << 1,
kMMFlagsUser = 1 << 2,
kMMFlagsNX = 1 << 3,
- kMMFlagsPCD = 1 << 4,
+ kMMFlagsPCD = 1 << 4,
kMMFlagsCount = 4,
};