diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-04-11 17:51:19 +0200 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-04-11 17:51:19 +0200 |
| commit | c3856eddb5a8146751dac82ad1ba4433f5ca6d6d (patch) | |
| tree | a74bdf6f87d07a24496effbc157f74d379d25007 /dev/kernel/HALKit/AMD64 | |
| parent | 9da6a352ecf70a1f5be99058a880b20db1b57940 (diff) | |
tweak kernel, boot: use -Wall, -Werror, -Wpedantic now.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/HALKit/AMD64')
| -rw-r--r-- | dev/kernel/HALKit/AMD64/HalACPIFactoryInterface.cc | 2 | ||||
| -rw-r--r-- | dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc | 7 | ||||
| -rw-r--r-- | dev/kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc | 46 | ||||
| -rw-r--r-- | dev/kernel/HALKit/AMD64/HalDebugOutput.cc | 10 | ||||
| -rw-r--r-- | dev/kernel/HALKit/AMD64/HalDescriptorLoader.cc | 41 | ||||
| -rw-r--r-- | dev/kernel/HALKit/AMD64/HalKernelMain.cc | 4 | ||||
| -rw-r--r-- | dev/kernel/HALKit/AMD64/HalKernelPanic.cc | 17 | ||||
| -rw-r--r-- | dev/kernel/HALKit/AMD64/HalPagingMgrAMD64.cc | 13 | ||||
| -rw-r--r-- | dev/kernel/HALKit/AMD64/HalSchedulerCorePrimitivesAMD64.cc | 3 | ||||
| -rw-r--r-- | dev/kernel/HALKit/AMD64/HalTimerAMD64.cc | 2 | ||||
| -rw-r--r-- | dev/kernel/HALKit/AMD64/PCI/DMA.cc | 10 | ||||
| -rw-r--r-- | dev/kernel/HALKit/AMD64/Paging.h | 2 | ||||
| -rw-r--r-- | dev/kernel/HALKit/AMD64/Storage/AHCI+Generic.cc | 13 | ||||
| -rw-r--r-- | dev/kernel/HALKit/AMD64/Storage/PIO+Generic.cc | 5 |
14 files changed, 85 insertions, 90 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; } |
