summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/HALKit
diff options
context:
space:
mode:
Diffstat (limited to 'dev/kernel/HALKit')
-rw-r--r--dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc8
-rw-r--r--dev/kernel/HALKit/AMD64/HalDebugOutput.cc8
-rw-r--r--dev/kernel/HALKit/AMD64/HalSchedulerCorePrimitives.cc2
-rw-r--r--dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc7
-rw-r--r--dev/kernel/HALKit/AMD64/Storage/PIO+Generic.cc6
-rw-r--r--dev/kernel/HALKit/ARM64/HalCommonAPI.s2
-rw-r--r--dev/kernel/HALKit/ARM64/HalDebugOutput.cc4
-rw-r--r--dev/kernel/HALKit/ARM64/HalKernelPanic.cc1
-rw-r--r--dev/kernel/HALKit/ARM64/HalSchedulerCorePrimitives.cc2
9 files changed, 22 insertions, 18 deletions
diff --git a/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc b/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc
index 3e10d577..24a81af9 100644
--- a/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc
+++ b/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc
@@ -120,7 +120,9 @@ EXTERN_C BOOL mp_register_task(HAL::StackFramePtr stack_frame, ThreadID thrdid)
HardwareThreadScheduler::The()[thrdid].Leak()->Busy(NO);
- sched_jump_to_task(kHWThread[thrdid].mFramePtr);
+ if (!kSMPAware) {
+ sched_jump_to_task(kHWThread[thrdid].mFramePtr);
+ }
return YES;
}
@@ -201,9 +203,9 @@ Void mp_init_cores(VoidPtr vendor_ptr) noexcept {
volatile LAPIC* entry_struct = (volatile LAPIC*) entry_ptr;
if (entry_struct->Flags & 0x1) {
- kAPICLocales[kSMPCount] = entry_struct->ProcessorID;
+ kAPICLocales[kSMPCount] = entry_struct->ProcessorID;
kHWThread[kSMPCount].mThreadID = kAPICLocales[kSMPCount];
-
+
++kSMPCount;
kout << "Kind: LAPIC: ON\r";
diff --git a/dev/kernel/HALKit/AMD64/HalDebugOutput.cc b/dev/kernel/HALKit/AMD64/HalDebugOutput.cc
index b0463eb5..1e9fbab3 100644
--- a/dev/kernel/HALKit/AMD64/HalDebugOutput.cc
+++ b/dev/kernel/HALKit/AMD64/HalDebugOutput.cc
@@ -59,7 +59,7 @@ TerminalDevice::~TerminalDevice() = default;
STATIC SizeT kX = kFontSizeX, kY = kFontSizeY;
-EXTERN_C void ke_utf_io_write(IDeviceObject<const Utf8Char*>* obj, const Utf8Char* bytes) {
+EXTERN_C void ke_utf_io_write(DeviceInterface<const Utf8Char*>* obj, const Utf8Char* bytes) {
NE_UNUSED(bytes);
NE_UNUSED(obj);
@@ -115,7 +115,7 @@ EXTERN_C void ke_utf_io_write(IDeviceObject<const Utf8Char*>* obj, const Utf8Cha
#endif // __DEBUG__
}
-EXTERN_C void ke_io_write(IDeviceObject<const Char*>* obj, const Char* bytes) {
+EXTERN_C void ke_io_write(DeviceInterface<const Char*>* obj, const Char* bytes) {
NE_UNUSED(bytes);
NE_UNUSED(obj);
@@ -171,7 +171,7 @@ EXTERN_C void ke_io_write(IDeviceObject<const Char*>* obj, const Char* bytes) {
#endif // __DEBUG__
}
-EXTERN_C void ke_io_read(IDeviceObject<const Char*>*, const Char* bytes) {
+EXTERN_C void ke_io_read(DeviceInterface<const Char*>*, const Char* bytes) {
NE_UNUSED(bytes);
#ifdef __DEBUG__
@@ -218,7 +218,7 @@ Utf8TerminalDevice::~Utf8TerminalDevice() = default;
Utf8TerminalDevice Utf8TerminalDevice::The() noexcept {
Utf8TerminalDevice out(Kernel::ke_utf_io_write,
- [](IDeviceObject<const Utf8Char*>*, const Utf8Char*) -> Void {});
+ [](DeviceInterface<const Utf8Char*>*, const Utf8Char*) -> Void {});
return out;
}
diff --git a/dev/kernel/HALKit/AMD64/HalSchedulerCorePrimitives.cc b/dev/kernel/HALKit/AMD64/HalSchedulerCorePrimitives.cc
index 0c468e14..1dbce4ac 100644
--- a/dev/kernel/HALKit/AMD64/HalSchedulerCorePrimitives.cc
+++ b/dev/kernel/HALKit/AMD64/HalSchedulerCorePrimitives.cc
@@ -22,7 +22,7 @@ EXTERN_C Void __zka_pure_call(USER_PROCESS* process) {
/// @param stack_ptr the frame pointer.
/***********************************************************************************/
-EXTERN_C Bool hal_check_stack(HAL::StackFramePtr stack_ptr) {
+EXTERN_C Bool hal_check_task(HAL::StackFramePtr stack_ptr) {
if (!stack_ptr) return No;
return stack_ptr->SP != 0 && stack_ptr->IP != 0;
diff --git a/dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc b/dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc
index b30bfc32..cd41480a 100644
--- a/dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc
+++ b/dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc
@@ -546,7 +546,8 @@ namespace Detail {
/// @brief Read AHCI device.
/// @param self device
/// @param mnt mounted disk.
- STATIC Void sk_io_read_ahci(IDeviceObject<MountpointInterface*>* self, MountpointInterface* mnt) {
+ STATIC Void sk_io_read_ahci(DeviceInterface<MountpointInterface*>* self,
+ MountpointInterface* mnt) {
AHCIDeviceInterface* dev = (AHCIDeviceInterface*) self;
err_global_get() = kErrorDisk;
@@ -567,8 +568,8 @@ namespace Detail {
/// @brief Write AHCI device.
/// @param self device
/// @param mnt mounted disk.
- STATIC Void sk_io_write_ahci(IDeviceObject<MountpointInterface*>* self,
- MountpointInterface* mnt) {
+ STATIC Void sk_io_write_ahci(DeviceInterface<MountpointInterface*>* self,
+ MountpointInterface* mnt) {
AHCIDeviceInterface* dev = (AHCIDeviceInterface*) self;
err_global_get() = kErrorDisk;
diff --git a/dev/kernel/HALKit/AMD64/Storage/PIO+Generic.cc b/dev/kernel/HALKit/AMD64/Storage/PIO+Generic.cc
index 99e1c619..6fccbdfa 100644
--- a/dev/kernel/HALKit/AMD64/Storage/PIO+Generic.cc
+++ b/dev/kernel/HALKit/AMD64/Storage/PIO+Generic.cc
@@ -200,7 +200,8 @@ namespace Detail {
/// @brief Read PIO device.
/// @param self device
/// @param mnt mounted disk.
- STATIC Void sk_io_read_pio(IDeviceObject<MountpointInterface*>* self, MountpointInterface* mnt) {
+ STATIC Void sk_io_read_pio(DeviceInterface<MountpointInterface*>* self,
+ MountpointInterface* mnt) {
ATADeviceInterface* dev = (ATADeviceInterface*) self;
err_global_get() = kErrorDisk;
@@ -221,7 +222,8 @@ namespace Detail {
/// @brief Write PIO device.
/// @param self device
/// @param mnt mounted disk.
- STATIC Void sk_io_write_pio(IDeviceObject<MountpointInterface*>* self, MountpointInterface* mnt) {
+ STATIC Void sk_io_write_pio(DeviceInterface<MountpointInterface*>* self,
+ MountpointInterface* mnt) {
ATADeviceInterface* dev = (ATADeviceInterface*) self;
err_global_get() = kErrorDisk;
diff --git a/dev/kernel/HALKit/ARM64/HalCommonAPI.s b/dev/kernel/HALKit/ARM64/HalCommonAPI.s
index e76b6e3f..f0c69368 100644
--- a/dev/kernel/HALKit/ARM64/HalCommonAPI.s
+++ b/dev/kernel/HALKit/ARM64/HalCommonAPI.s
@@ -5,5 +5,5 @@
.global hal_flush_tlb
hal_flush_tlb:
- tlbi
+ tlbi vmalle1
ret
diff --git a/dev/kernel/HALKit/ARM64/HalDebugOutput.cc b/dev/kernel/HALKit/ARM64/HalDebugOutput.cc
index 3c518e2f..64004ac3 100644
--- a/dev/kernel/HALKit/ARM64/HalDebugOutput.cc
+++ b/dev/kernel/HALKit/ARM64/HalDebugOutput.cc
@@ -10,7 +10,7 @@
#include <NeKit/Utils.h>
namespace Kernel {
-EXTERN_C void ke_io_write(IDeviceObject<const Char*>* self, const Char* bytes) {
+EXTERN_C void ke_io_write(DeviceInterface<const Char*>* self, const Char* bytes) {
#ifdef __DEBUG__
if (*bytes == 0) return;
@@ -33,7 +33,7 @@ EXTERN_C void ke_io_write(IDeviceObject<const Char*>* self, const Char* bytes) {
TerminalDevice::~TerminalDevice() = default;
-EXTERN_C void ke_io_read(IDeviceObject<const Char*>* self, const Char* bytes) {
+EXTERN_C void ke_io_read(DeviceInterface<const Char*>* self, const Char* bytes) {
#ifdef __DEBUG__
SizeT index = 0;
diff --git a/dev/kernel/HALKit/ARM64/HalKernelPanic.cc b/dev/kernel/HALKit/ARM64/HalKernelPanic.cc
index 5feb6c75..d70fef00 100644
--- a/dev/kernel/HALKit/ARM64/HalKernelPanic.cc
+++ b/dev/kernel/HALKit/ARM64/HalKernelPanic.cc
@@ -33,7 +33,6 @@ Void ke_panic(const Kernel::Int32& id, const Char* message) {
(Void)(kout << "*** STOP ***\r");
(Void)(kout << "Kernel_Panic_MSG: " << message << kendl);
(Void)(kout << "Kernel_Panic_ID: " << hex_number(id) << kendl);
- (Void)(kout << "Kernel_Panic_CR2: " << hex_number((UIntPtr) hal_read_cr2()) << kendl);
RecoveryFactory::Recover();
}
diff --git a/dev/kernel/HALKit/ARM64/HalSchedulerCorePrimitives.cc b/dev/kernel/HALKit/ARM64/HalSchedulerCorePrimitives.cc
index ee286639..10f95e29 100644
--- a/dev/kernel/HALKit/ARM64/HalSchedulerCorePrimitives.cc
+++ b/dev/kernel/HALKit/ARM64/HalSchedulerCorePrimitives.cc
@@ -22,7 +22,7 @@ EXTERN_C Void __zka_pure_call(USER_PROCESS* process) {
/// @param stack_ptr the frame pointer.
/***********************************************************************************/
-EXTERN_C Bool hal_check_stack(HAL::StackFramePtr stack_ptr) {
+EXTERN_C Bool hal_check_task(HAL::StackFramePtr stack_ptr) {
if (!stack_ptr) return No;
return stack_ptr->SP != 0 && stack_ptr->IP != 0;