diff options
| author | Amlal <amlal@nekernel.org> | 2025-08-13 16:06:38 +0200 |
|---|---|---|
| committer | Amlal <amlal@nekernel.org> | 2025-08-13 16:08:24 +0200 |
| commit | d720fa31aaf728b63c95575843f42a575c63765f (patch) | |
| tree | 1ea3c661f72e7ecf908002413c9a566affd57770 /dev/kernel | |
| parent | 0de2622525d0044a955d040147ae64a928f029c1 (diff) | |
feat: DmaPool: remove useless casts and increment size if zero.
feat: Generic+Basic+RTL8139: fix warning on rsp.
Signed-off-by: Amlal <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel')
| -rw-r--r-- | dev/kernel/DmaKit/DmaPool.h | 11 | ||||
| -rw-r--r-- | dev/kernel/HALKit/AMD64/Network/Generic+Basic+RTL8139.cc | 7 |
2 files changed, 13 insertions, 5 deletions
diff --git a/dev/kernel/DmaKit/DmaPool.h b/dev/kernel/DmaKit/DmaPool.h index ada8299e..db12eb25 100644 --- a/dev/kernel/DmaKit/DmaPool.h +++ b/dev/kernel/DmaKit/DmaPool.h @@ -23,7 +23,12 @@ #define kNeDMAPoolSize (0x1000000) #endif +#ifdef __GNUC__ #define kNeDMABestAlign __BIGGEST_ALIGNMENT__ +#else +#define kNeDMABestAlign (8) +#endif + namespace Kernel { /// @brief DMA pool base pointer, here we're sure that AHCI or whatever tricky standard sees it. @@ -37,7 +42,7 @@ inline const UInt8* kDmaPoolEnd = (UInt8*) (kNeDMAPoolStart + kNeDMAPoolSize); /***********************************************************************************/ inline VoidPtr rtl_dma_alloc(SizeT size, SizeT align) { if (!size) { - return nullptr; + ++size; } /// Check alignement according to architecture. @@ -69,7 +74,7 @@ inline VoidPtr rtl_dma_alloc(SizeT size, SizeT align) { inline Void rtl_dma_free(SizeT size) { if (!size) return; - auto ptr = (UInt8*) (kDmaPoolPtr - size); + auto ptr = (kDmaPoolPtr - size); if (!ptr || ptr < (UInt8*) kNeDMAPoolStart) { err_global_get() = kErrorDmaExhausted; @@ -98,4 +103,4 @@ inline Void rtl_dma_flush(VoidPtr ptr, SizeT size_buffer) { HAL::mm_memory_fence((VoidPtr) ((UInt8*) ptr + buf_idx)); } } -} // namespace Kernel
\ No newline at end of file +} // namespace Kernel diff --git a/dev/kernel/HALKit/AMD64/Network/Generic+Basic+RTL8139.cc b/dev/kernel/HALKit/AMD64/Network/Generic+Basic+RTL8139.cc index bf0731c6..be27915a 100644 --- a/dev/kernel/HALKit/AMD64/Network/Generic+Basic+RTL8139.cc +++ b/dev/kernel/HALKit/AMD64/Network/Generic+Basic+RTL8139.cc @@ -66,11 +66,14 @@ EXTERN_C BOOL rtl_init_nic_rtl8139(UInt16 io_base) noexcept { /***********************************************************************************/ /// @brief RTL8139 I/O interrupt handler. +/// @param rsp stack pointer. /// @note This function is called when the device interrupts to retrieve network data. /***********************************************************************************/ EXTERN_C Void rtl_rtl8139_interrupt_handler(UIntPtr rsp) { - if (kRTLIOBase == 0xFFFF) return; + if (kRTLIOBase == 0xFFFF || kRTLIOBase == 0) return; + + NE_UNUSED(rsp); UInt16 status = rt_in16(kRTLIOBase + 0x3E); rt_out16(kRTLIOBase + 0x3E, status); @@ -123,4 +126,4 @@ EXTERN_C BOOL rtl_rtl8139_set_upper_layer(UInt8* layer) { kRXUpperLayer = layer; return YES; -}
\ No newline at end of file +} |
