summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/HALKit
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-04-11 17:51:19 +0200
committerAmlal El Mahrouss <amlal@nekernel.org>2025-04-11 17:51:19 +0200
commitc3856eddb5a8146751dac82ad1ba4433f5ca6d6d (patch)
treea74bdf6f87d07a24496effbc157f74d379d25007 /dev/kernel/HALKit
parent9da6a352ecf70a1f5be99058a880b20db1b57940 (diff)
tweak kernel, boot: use -Wall, -Werror, -Wpedantic now.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/HALKit')
-rw-r--r--dev/kernel/HALKit/AMD64/HalACPIFactoryInterface.cc2
-rw-r--r--dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc7
-rw-r--r--dev/kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc46
-rw-r--r--dev/kernel/HALKit/AMD64/HalDebugOutput.cc10
-rw-r--r--dev/kernel/HALKit/AMD64/HalDescriptorLoader.cc41
-rw-r--r--dev/kernel/HALKit/AMD64/HalKernelMain.cc4
-rw-r--r--dev/kernel/HALKit/AMD64/HalKernelPanic.cc17
-rw-r--r--dev/kernel/HALKit/AMD64/HalPagingMgrAMD64.cc13
-rw-r--r--dev/kernel/HALKit/AMD64/HalSchedulerCorePrimitivesAMD64.cc3
-rw-r--r--dev/kernel/HALKit/AMD64/HalTimerAMD64.cc2
-rw-r--r--dev/kernel/HALKit/AMD64/PCI/DMA.cc10
-rw-r--r--dev/kernel/HALKit/AMD64/Paging.h2
-rw-r--r--dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc13
-rw-r--r--dev/kernel/HALKit/AMD64/Storage/PIO+Generic.cc5
-rw-r--r--dev/kernel/HALKit/ARM64/HalApplicationProcessor.cc2
-rw-r--r--dev/kernel/HALKit/ARM64/HalKernelPanic.cc4
16 files changed, 88 insertions, 93 deletions
diff --git a/dev/kernel/HALKit/AMD64/HalACPIFactoryInterface.cc b/dev/kernel/HALKit/AMD64/HalACPIFactoryInterface.cc
index 711fc78a..2430da07 100644
--- a/dev/kernel/HALKit/AMD64/HalACPIFactoryInterface.cc
+++ b/dev/kernel/HALKit/AMD64/HalACPIFactoryInterface.cc
@@ -89,7 +89,6 @@ namespace Kernel
Bool ACPIFactoryInterface::Shutdown()
{
- failed_to_shutdown:
return NO;
}
@@ -97,7 +96,6 @@ namespace Kernel
/// @return nothing it's a reboot.
Void ACPIFactoryInterface::Reboot()
{
- failed_to_reboot:
asm volatile(".intel_syntax noprefix; "
"rt_reset_hardware:; "
"cli; "
diff --git a/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc b/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc
index c7e639e4..43888f3b 100644
--- a/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc
+++ b/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc
@@ -103,7 +103,7 @@ namespace Kernel::HAL
UInt32 AcpiID;
} LApic;
};
- } List[]; // Records List
+ } List[1]; // Records List
};
///////////////////////////////////////////////////////////////////////////////////////
@@ -215,7 +215,6 @@ namespace Kernel::HAL
kSMPInterrupt = 0;
kSMPCount = 0;
- UInt32 eax, edx;
kout << "SMP: Starting APs...\r";
kApicBaseAddress = kMADTBlock->Address;
@@ -242,7 +241,7 @@ namespace Kernel::HAL
break;
kAPICLocales[kSMPCount] = kMADTBlock->List[kSMPCount].LAPIC.ProcessorID;
- kout << "SMP: APIC ID: " << number(kAPICLocales[kSMPCount]) << kendl;
+ (void)(kout << "SMP: APIC ID: " << number(kAPICLocales[kSMPCount]) << kendl);
// I'll just make the AP start from scratch here.
@@ -265,7 +264,7 @@ namespace Kernel::HAL
++index;
}
- kout << "SMP: number of APs: " << number(kSMPCount) << kendl;
+ (void)(kout << "SMP: number of APs: " << number(kSMPCount) << kendl);
// Kernel is now SMP aware.
// That means that the scheduler is now available (on MP Kernels)
diff --git a/dev/kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc b/dev/kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc
index 7de5bb0b..7209fd06 100644
--- a/dev/kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc
+++ b/dev/kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc
@@ -22,13 +22,13 @@ EXTERN_C void idt_handle_gpf(Kernel::UIntPtr rsp)
kIsScheduling = NO;
- kout << "Kernel: General Protection Fault.\r";
+ Kernel::kout << "Kernel: General Protection Fault.\r";
process.Leak().ProcessSignal.SignalArg = rsp;
process.Leak().ProcessSignal.SignalID = SIGKILL;
process.Leak().ProcessSignal.PreviousStatus = process.Leak().Status;
- kout << "Kernel: SIGKILL status.\r";
+ Kernel::kout << "Kernel: SIGKILL status.\r";
process.Leak().Status = Kernel::ProcessStatusKind::kKilled;
@@ -46,8 +46,8 @@ EXTERN_C void idt_handle_pf(Kernel::UIntPtr rsp)
kIsScheduling = NO;
- kout << "Kernel: Page Fault.\r";
- kout << "Kernel: SIGKILL\r";
+ Kernel::kout << "Kernel: Page Fault.\r";
+ Kernel::kout << "Kernel: SIGKILL\r";
process.Leak().ProcessSignal.SignalArg = rsp;
process.Leak().ProcessSignal.SignalID = SIGKILL;
@@ -66,6 +66,8 @@ namespace Kernel::Detail
/// @brief Handle scheduler interrupt.
EXTERN_C void idt_handle_scheduler(Kernel::UIntPtr rsp)
{
+ NE_UNUSED(rsp);
+
static Kernel::Int64 try_count_before_brute = Kernel::Detail::kTimeoutCount;
while (kIsScheduling)
@@ -95,13 +97,13 @@ EXTERN_C void idt_handle_math(Kernel::UIntPtr rsp)
kIsScheduling = NO;
- kout << "Kernel: Math error (division by zero?).\r";
+ Kernel::kout << "Kernel: Math error (division by zero?).\r";
process.Leak().ProcessSignal.SignalArg = rsp;
process.Leak().ProcessSignal.SignalID = SIGKILL;
process.Leak().ProcessSignal.PreviousStatus = process.Leak().Status;
- kout << "Kernel: SIGKILL status.\r";
+ Kernel::kout << "Kernel: SIGKILL status.\r";
process.Leak().Status = Kernel::ProcessStatusKind::kKilled;
@@ -119,13 +121,13 @@ EXTERN_C void idt_handle_generic(Kernel::UIntPtr rsp)
kIsScheduling = NO;
- kout << "Kernel: Generic Process Fault.\r";
+ Kernel::kout << "Kernel: Generic Process Fault.\r";
process.Leak().ProcessSignal.SignalArg = rsp;
process.Leak().ProcessSignal.SignalID = SIGKILL;
process.Leak().ProcessSignal.PreviousStatus = process.Leak().Status;
- kout << "Kernel: SIGKILL status.\r";
+ Kernel::kout << "Kernel: SIGKILL status.\r";
process.Leak().Status = Kernel::ProcessStatusKind::kKilled;
@@ -138,7 +140,7 @@ EXTERN_C Kernel::Void idt_handle_breakpoint(Kernel::UIntPtr rip)
if (process.Leak().Status != Kernel::ProcessStatusKind::kRunning)
{
- kout << "Kernel: SIGTRAP\r";
+ Kernel::kout << "Kernel: SIGTRAP\r";
while (YES)
;
@@ -146,15 +148,15 @@ EXTERN_C Kernel::Void idt_handle_breakpoint(Kernel::UIntPtr rip)
kIsScheduling = NO;
- kout << "Kernel: Process RIP: " << Kernel::hex_number(rip) << kendl;
- kout << "Kernel: SIGTRAP\r";
+ (void)(Kernel::kout << "Kernel: Process RIP: " << Kernel::hex_number(rip) << Kernel::kendl);
+ Kernel::kout << "Kernel: SIGTRAP\r";
process.Leak().ProcessSignal.SignalArg = rip;
process.Leak().ProcessSignal.SignalID = SIGTRAP;
process.Leak().ProcessSignal.PreviousStatus = process.Leak().Status;
- kout << "Kernel: SIGTRAP status.\r";
+ Kernel::kout << "Kernel: SIGTRAP status.\r";
process.Leak().Status = Kernel::ProcessStatusKind::kFrozen;
}
@@ -170,13 +172,13 @@ EXTERN_C void idt_handle_ud(Kernel::UIntPtr rsp)
kIsScheduling = NO;
- kout << "Kernel: Undefined Opcode.\r";
+ Kernel::kout << "Kernel: Undefined Opcode.\r";
process.Leak().ProcessSignal.SignalArg = rsp;
process.Leak().ProcessSignal.SignalID = SIGKILL;
process.Leak().ProcessSignal.PreviousStatus = process.Leak().Status;
- kout << "Kernel: SIGKILL status.\r";
+ Kernel::kout << "Kernel: SIGKILL status.\r";
process.Leak().Status = Kernel::ProcessStatusKind::kKilled;
@@ -190,7 +192,7 @@ EXTERN_C Kernel::Void hal_system_call_enter(Kernel::UIntPtr rcx_syscall_index, K
{
if (rcx_syscall_index < kSyscalls.Count())
{
- kout << "syscall: Enter Syscall.\r";
+ Kernel::kout << "syscall: Enter Syscall.\r";
if (kSyscalls[rcx_syscall_index].fHooked)
{
@@ -200,15 +202,15 @@ EXTERN_C Kernel::Void hal_system_call_enter(Kernel::UIntPtr rcx_syscall_index, K
}
else
{
- kout << "syscall: syscall isn't valid at all! (is nullptr)\r";
+ Kernel::kout << "syscall: syscall isn't valid at all! (is nullptr)\r";
}
}
else
{
- kout << "syscall: syscall isn't hooked at all! (is set to false)\r";
+ Kernel::kout << "syscall: syscall isn't hooked at all! (is set to false)\r";
}
- kout << "syscall: Exit Syscall.\r";
+ Kernel::kout << "syscall: Exit Syscall.\r";
}
}
@@ -219,7 +221,7 @@ EXTERN_C Kernel::Void hal_kernel_call_enter(Kernel::UIntPtr rcx_kerncall_index,
{
if (rcx_kerncall_index < kKerncalls.Count())
{
- kout << "kerncall: Enter Kernel Call List.\r";
+ Kernel::kout << "kerncall: Enter Kernel Call List.\r";
if (kKerncalls[rcx_kerncall_index].fHooked)
{
@@ -229,14 +231,14 @@ EXTERN_C Kernel::Void hal_kernel_call_enter(Kernel::UIntPtr rcx_kerncall_index,
}
else
{
- kout << "kerncall: Kernel call isn't valid at all! (is nullptr)\r";
+ Kernel::kout << "kerncall: Kernel call isn't valid at all! (is nullptr)\r";
}
}
else
{
- kout << "kerncall: Kernel call isn't hooked at all! (is set to false)\r";
+ Kernel::kout << "kerncall: Kernel call isn't hooked at all! (is set to false)\r";
}
- kout << "kerncall: Exit Kernel Call List.\r";
+ Kernel::kout << "kerncall: Exit Kernel Call List.\r";
}
}
diff --git a/dev/kernel/HALKit/AMD64/HalDebugOutput.cc b/dev/kernel/HALKit/AMD64/HalDebugOutput.cc
index e79b6b09..0ee7eef0 100644
--- a/dev/kernel/HALKit/AMD64/HalDebugOutput.cc
+++ b/dev/kernel/HALKit/AMD64/HalDebugOutput.cc
@@ -65,6 +65,8 @@ namespace Kernel
EXTERN_C void ke_io_write(IDeviceObject<const Char*>* obj, const Char* bytes)
{
+ NE_UNUSED(obj);
+
#ifdef __DEBUG__
Detail::hal_serial_init<Detail::kPort>();
@@ -82,7 +84,7 @@ namespace Kernel
index = 0;
len = rt_string_len(bytes, 256U);
- static int x = kFontSizeX, y = kFontSizeY;
+ static SizeT x = kFontSizeX, y = kFontSizeY;
static BOOL not_important = YES;
@@ -123,12 +125,8 @@ namespace Kernel
{
y = kFontSizeY;
- fb_init();
-
FBDrawInRegion(fb_get_clear_clr(), FB::FBAccessibilty::Height(), FB::FBAccessibilty::Width(),
0, 0);
-
- fb_clear();
}
++index;
@@ -183,7 +181,7 @@ namespace Kernel
TerminalDevice TerminalDevice::The() noexcept
{
- TerminalDevice out(Kernel::ke_io_write, Kernel::ke_io_read);
+ static TerminalDevice out(Kernel::ke_io_write, Kernel::ke_io_read);
return out;
}
diff --git a/dev/kernel/HALKit/AMD64/HalDescriptorLoader.cc b/dev/kernel/HALKit/AMD64/HalDescriptorLoader.cc
index 96276964..ddfc49b6 100644
--- a/dev/kernel/HALKit/AMD64/HalDescriptorLoader.cc
+++ b/dev/kernel/HALKit/AMD64/HalDescriptorLoader.cc
@@ -17,26 +17,8 @@ namespace Kernel::HAL
STATIC ::Kernel::Detail::AMD64::InterruptDescriptorAMD64
kInterruptVectorTable[kKernelIdtSize] = {};
- STATIC void hal_set_irq_mask(UInt8 irql);
- STATIC void hal_clear_irq_mask(UInt8 irql);
-
- STATIC Void hal_enable_pit(UInt16 ticks) noexcept
- {
- if (ticks == 0)
- ticks = kPITDefaultTicks;
-
- // Configure PIT to receieve scheduler interrupts.
-
- UInt16 kPITCommDivisor = kPITFrequency / ticks; // 100 Hz.
-
- HAL::rt_out8(kPITControlPort, 0x36); // Command to PIT
- HAL::rt_out8(kPITChannel0Port, kPITCommDivisor & 0xFF); // Send low byte
- HAL::rt_out8(kPITChannel0Port, (kPITCommDivisor >> 8) & 0xFF); // Send high byte
-
- hal_clear_irq_mask(32);
- }
-
- STATIC void hal_set_irq_mask(UInt8 irql)
+#if 0
+ STATIC void hal_set_irq_mask(UInt8 irql) [[maybe_unused]]
{
UInt16 port;
UInt8 value;
@@ -54,8 +36,9 @@ namespace Kernel::HAL
value = rt_in8(port) | (1 << irql);
rt_out8(port, value);
}
+#endif // make gcc shut up
- STATIC void hal_clear_irq_mask(UInt8 irql)
+ STATIC void hal_clear_irq_mask(UInt8 irql) [[maybe_unused]]
{
UInt16 port;
UInt8 value;
@@ -73,6 +56,22 @@ namespace Kernel::HAL
value = rt_in8(port) & ~(1 << irql);
rt_out8(port, value);
}
+
+ STATIC Void hal_enable_pit(UInt16 ticks) noexcept
+ {
+ if (ticks == 0)
+ ticks = kPITDefaultTicks;
+
+ // Configure PIT to receieve scheduler interrupts.
+
+ UInt16 kPITCommDivisor = kPITFrequency / ticks; // 100 Hz.
+
+ HAL::rt_out8(kPITControlPort, 0x36); // Command to PIT
+ HAL::rt_out8(kPITChannel0Port, kPITCommDivisor & 0xFF); // Send low byte
+ HAL::rt_out8(kPITChannel0Port, (kPITCommDivisor >> 8) & 0xFF); // Send high byte
+
+ hal_clear_irq_mask(32);
+ }
} // namespace Detail
/// @brief Loads the provided Global Descriptor Table.
diff --git a/dev/kernel/HALKit/AMD64/HalKernelMain.cc b/dev/kernel/HALKit/AMD64/HalKernelMain.cc
index 0d58bb8a..cc346b5c 100644
--- a/dev/kernel/HALKit/AMD64/HalKernelMain.cc
+++ b/dev/kernel/HALKit/AMD64/HalKernelMain.cc
@@ -96,7 +96,7 @@ EXTERN_C Kernel::Void hal_real_init(Kernel::Void) noexcept
{
kEndTim = hal_rdtsc_fn();
- kout << "Boot Time: " << Kernel::number(kEndTim - kStartTim) << kendl;
+ (void)(Kernel::kout << "Boot Time: " << Kernel::number(kEndTim - kStartTim) << Kernel::kendl);
Kernel::NeFS::fs_init_nefs();
@@ -110,7 +110,7 @@ EXTERN_C Kernel::Void hal_real_init(Kernel::Void) noexcept
kEndTim = hal_rdtsc_fn();
- kout << "Init Time: " << Kernel::number(kEndTim - kStartTim) << kendl;
+ (void)(Kernel::kout << "Init Time: " << Kernel::number(kEndTim - kStartTim) << Kernel::kendl);
idt_loader.Load(idt_reg);
diff --git a/dev/kernel/HALKit/AMD64/HalKernelPanic.cc b/dev/kernel/HALKit/AMD64/HalKernelPanic.cc
index 3703692c..2641f058 100644
--- a/dev/kernel/HALKit/AMD64/HalKernelPanic.cc
+++ b/dev/kernel/HALKit/AMD64/HalKernelPanic.cc
@@ -33,16 +33,9 @@ namespace Kernel
/***********************************************************************************/
Void ke_panic(const Kernel::Int32& id, const Char* message)
{
- fb_init();
-
- auto panic_text = RGB(0xff, 0xff, 0xff);
-
- auto y = 10;
- auto x = 10;
-
- kout << "Kernel_Panic_MSG: " << message << kendl;
- kout << "Kernel_Panic_ID: " << hex_number(id) << kendl;
- kout << "Kernel_Panic_CR2: " << hex_number((UIntPtr)hal_read_cr2()) << kendl;
+ (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();
}
@@ -59,8 +52,8 @@ namespace Kernel
{
if (!expr)
{
- kout << "Kernel_Panic_File: " << file << kendl;
- kout << "Kernel_Panic_Line: " << line << kendl;
+ (void)(kout << "Kernel_Panic_File: " << file << kendl);
+ (void)(kout << "Kernel_Panic_Line: " << line << kendl);
ke_panic(RUNTIME_CHECK_FAILED, file); // Runtime Check failed
}
diff --git a/dev/kernel/HALKit/AMD64/HalPagingMgrAMD64.cc b/dev/kernel/HALKit/AMD64/HalPagingMgrAMD64.cc
index bb7274b5..8bd98923 100644
--- a/dev/kernel/HALKit/AMD64/HalPagingMgrAMD64.cc
+++ b/dev/kernel/HALKit/AMD64/HalPagingMgrAMD64.cc
@@ -40,11 +40,11 @@ namespace Kernel::HAL
/***********************************************************************************/
STATIC Void mmi_page_status(Detail::PTE* pte)
{
- kout << (pte->Present ? "Present" : "Not Present") << kendl;
- kout << (pte->Wr ? "W/R" : "Not W/R") << kendl;
- kout << (pte->Nx ? "NX" : "Not NX") << kendl;
- kout << (pte->User ? "User" : "Not User") << kendl;
- kout << (pte->Pcd ? "Not Cached" : "Cached") << kendl;
+ (void)(kout << (pte->Present ? "Present" : "Not Present") << kendl);
+ (void)(kout << (pte->Wr ? "W/R" : "Not W/R") << kendl);
+ (void)(kout << (pte->Nx ? "NX" : "Not NX") << kendl);
+ (void)(kout << (pte->User ? "User" : "Not User") << kendl);
+ (void)(kout << (pte->Pcd ? "Not Cached" : "Cached") << kendl);
}
/***********************************************************************************/
@@ -143,6 +143,9 @@ namespace Kernel::HAL
pte->Nx = !!(flags & kMMFlagsNX);
pte->Pcd = !(flags & kMMFlagsUncached);
+ if (physical_address)
+ pte->PhysicalAddress = (UIntPtr)physical_address;
+
hal_invl_tlb(virtual_address);
mmi_page_status(pte);
diff --git a/dev/kernel/HALKit/AMD64/HalSchedulerCorePrimitivesAMD64.cc b/dev/kernel/HALKit/AMD64/HalSchedulerCorePrimitivesAMD64.cc
index fafb29e9..dea3b3d4 100644
--- a/dev/kernel/HALKit/AMD64/HalSchedulerCorePrimitivesAMD64.cc
+++ b/dev/kernel/HALKit/AMD64/HalSchedulerCorePrimitivesAMD64.cc
@@ -37,6 +37,7 @@ namespace Kernel
/// Wakes up thread from the hang state.
Void mp_wakeup_thread(HAL::StackFrame* stack)
{
+ NE_UNUSED(stack);
Kernel::UserProcessHelper::StartScheduling();
}
@@ -44,6 +45,8 @@ namespace Kernel
/// hooks and hangs thread to prevent code from executing.
Void mp_hang_thread(HAL::StackFrame* stack)
{
+ NE_UNUSED(stack);
+
while (Yes)
{
/* Nothing to do, code is spinning */
diff --git a/dev/kernel/HALKit/AMD64/HalTimerAMD64.cc b/dev/kernel/HALKit/AMD64/HalTimerAMD64.cc
index 2cb23716..01be2be5 100644
--- a/dev/kernel/HALKit/AMD64/HalTimerAMD64.cc
+++ b/dev/kernel/HALKit/AMD64/HalTimerAMD64.cc
@@ -53,7 +53,7 @@ HardwareTimer::HardwareTimer(Int64 ms)
auto hpet = (Detail::HPET_BLOCK*)power.Find("HPET").Leak().Leak();
MUST_PASS(hpet);
- fDigitalTimer = (IntPtr*)hpet->address.Address;
+ fDigitalTimer = (UIntPtr*)hpet->address.Address;
}
HardwareTimer::~HardwareTimer()
diff --git a/dev/kernel/HALKit/AMD64/PCI/DMA.cc b/dev/kernel/HALKit/AMD64/PCI/DMA.cc
index 33cff13e..4a63625e 100644
--- a/dev/kernel/HALKit/AMD64/PCI/DMA.cc
+++ b/dev/kernel/HALKit/AMD64/PCI/DMA.cc
@@ -31,14 +31,14 @@ namespace Kernel
return reinterpret_cast<UIntPtr>(this->fAddress) >= offset;
}
- bool DMAWrapper::Write(const UIntPtr& bit, const UInt32& offset)
+ bool DMAWrapper::Write(UIntPtr& bit, const UInt32& offset)
{
kout << "[DMAWrapper::Read] Checking this->fAddress...\r";
if (!this->fAddress)
return false;
- kout << "[DMAWrapper::Write] Writing at address: " << hex_number(reinterpret_cast<UIntPtr>(this->fAddress) + offset) << kendl;
+ (void)(kout << "[DMAWrapper::Write] Writing at address: " << hex_number(reinterpret_cast<UIntPtr>(this->fAddress) + offset) << kendl);
ke_dma_write<UInt32>(reinterpret_cast<UIntPtr>(this->fAddress), offset, bit);
@@ -52,12 +52,12 @@ namespace Kernel
if (!this->fAddress)
return ~0;
- kout << "[DMAWrapper::Write] Writing at address: " << hex_number(reinterpret_cast<UIntPtr>(this->fAddress) + offset) << kendl;
+ (void)(kout << "[DMAWrapper::Write] Writing at address: " << hex_number(reinterpret_cast<UIntPtr>(this->fAddress) + offset) << kendl);
- return ke_dma_read<UInt32>(reinterpret_cast<UIntPtr>(this->fAddress), offset);
+ return (UIntPtr)ke_dma_read<UInt32>(reinterpret_cast<UIntPtr>(this->fAddress), offset);
}
- UIntPtr DMAWrapper::operator[](const UIntPtr& offset)
+ UIntPtr DMAWrapper::operator[](UIntPtr& offset)
{
return this->Read(offset);
}
diff --git a/dev/kernel/HALKit/AMD64/Paging.h b/dev/kernel/HALKit/AMD64/Paging.h
index 6299d9b4..da90a71a 100644
--- a/dev/kernel/HALKit/AMD64/Paging.h
+++ b/dev/kernel/HALKit/AMD64/Paging.h
@@ -65,7 +65,7 @@ namespace Kernel::HAL
} // namespace Detail
- auto mm_alloc_bitmap(Boolean wr, Boolean user, SizeT size, Bool is_page, const SizeT pad = 0) -> VoidPtr;
+ auto mm_alloc_bitmap(Boolean wr, Boolean user, SizeT size, Bool is_page, SizeT pad = 0) -> VoidPtr;
auto mm_free_bitmap(VoidPtr page_ptr) -> Bool;
} // namespace Kernel::HAL
diff --git a/dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc b/dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc
index a1a9a164..f0893e2d 100644
--- a/dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc
+++ b/dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc
@@ -76,7 +76,7 @@ namespace AHCI::Detail
UIntPtr addr = (UIntPtr)address;
- UIntPtr aligned_addr = (addr + alignement - 1) & ~alignement - 1;
+ UIntPtr aligned_addr = (addr + alignement - 1) & (~alignement - 1);
return (RetType*)aligned_addr;
}
@@ -107,6 +107,8 @@ STATIC Void drv_compute_disk_ahci() noexcept
else
kSATASectorCount = lba48_sectors;
+ (Void)(kout << "Device: " << kCurrentDiskModel << kendl);
+
delete[] identify_data;
identify_data = nullptr;
}
@@ -141,7 +143,7 @@ STATIC Void drv_std_input_output_ahci(UInt64 lba, UInt8* buffer, SizeT sector_sz
slot = drv_find_cmd_slot_ahci(&kSATAHba->Ports[kSATAIndex]);
- if (slot == ~0)
+ if (slot == ~0UL)
{
err_global_get() = kErrorDisk;
return;
@@ -166,11 +168,8 @@ STATIC Void drv_std_input_output_ahci(UInt64 lba, UInt8* buffer, SizeT sector_sz
/// check for command header.
MUST_PASS(command_header);
- /// 4kb per PRD.
- constexpr const UInt32 kMaxPRDSize = kib_cast(4);
-
- command_header->Cfl = sizeof(FisRegH2D) / sizeof(UInt32);
- command_header->Write = Write;
+ command_header->Struc.Cfl = sizeof(FisRegH2D) / sizeof(UInt32);
+ command_header->Struc.Write = Write;
command_header->Prdtl = 1;
auto ctba_phys = ((UInt64)command_header->Ctbau << 32) | command_header->Ctba;
diff --git a/dev/kernel/HALKit/AMD64/Storage/PIO+Generic.cc b/dev/kernel/HALKit/AMD64/Storage/PIO+Generic.cc
index fc608e94..cc8c92d8 100644
--- a/dev/kernel/HALKit/AMD64/Storage/PIO+Generic.cc
+++ b/dev/kernel/HALKit/AMD64/Storage/PIO+Generic.cc
@@ -28,7 +28,6 @@ using namespace Kernel::HAL;
#define kATADataLen 256
STATIC Boolean kATADetected = false;
-STATIC Int32 kATADeviceType = kATADeviceCount;
STATIC UInt16 kATAIdentifyData[kATADataLen] = {0};
STATIC Char kATADiskModel[50] = {"GENERIC PIO"};
@@ -67,6 +66,8 @@ Boolean drv_pio_std_init(UInt16 Bus, UInt8 Drive, UInt16& OutBus, UInt8& OutMast
{
UInt16 IO = Bus;
+ NE_UNUSED(Drive);
+
drv_pio_std_select(IO);
// Bus init, NEIN bit.
@@ -107,7 +108,7 @@ ATAInit_Retry:
kATADiskModel[40] = '\0';
- kout << "Drive Model: " << kATADiskModel << kendl;
+ (void)(kout << "Drive Model: " << kATADiskModel << kendl);
return true;
}
diff --git a/dev/kernel/HALKit/ARM64/HalApplicationProcessor.cc b/dev/kernel/HALKit/ARM64/HalApplicationProcessor.cc
index 8ad16c57..1553b2ed 100644
--- a/dev/kernel/HALKit/ARM64/HalApplicationProcessor.cc
+++ b/dev/kernel/HALKit/ARM64/HalApplicationProcessor.cc
@@ -93,7 +93,7 @@ namespace Kernel
const UInt16 kInterruptScheduler = 0x20;
- kout << "Handling interrupt for AP: " << interrupt << kendl;
+ (void)(kout << "Handling interrupt for AP: " << interrupt << kendl);
switch (interrupt)
{
diff --git a/dev/kernel/HALKit/ARM64/HalKernelPanic.cc b/dev/kernel/HALKit/ARM64/HalKernelPanic.cc
index 1e008c0f..1c88ccc6 100644
--- a/dev/kernel/HALKit/ARM64/HalKernelPanic.cc
+++ b/dev/kernel/HALKit/ARM64/HalKernelPanic.cc
@@ -71,8 +71,8 @@ namespace Kernel
{
if (!expr)
{
- kout << "FAILED: FILE: " << file << kendl;
- kout << "FAILED: LINE: " << line << kendl;
+ (void)(kout << "FAILED: FILE: " << file << kendl);
+ (void)(kout << "FAILED: LINE: " << line << kendl);
ke_panic(RUNTIME_CHECK_FAILED, file); // Runtime Check failed
}