summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/HALKit/AMD64/PCI
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-04-02 08:14:36 +0200
committerGitHub <noreply@github.com>2025-04-02 08:14:36 +0200
commit5129ac16ddd5fb8362eb2fbd123e28d2b3e4c90f (patch)
tree2fde230004e377f734983484f8e12fb0414a1668 /dev/kernel/HALKit/AMD64/PCI
parent25dd194903b3ccfe4461fe189a04d902da93ac8f (diff)
parent6c7e5ebc003a0bc4f98c23a8f9754b273a6e3a28 (diff)
Merge pull request #7 from amlel-el-mahrouss/dev
boot/net: rename Boot.S files, clarify EEPROM implication, and prep UDP read
Diffstat (limited to 'dev/kernel/HALKit/AMD64/PCI')
-rw-r--r--dev/kernel/HALKit/AMD64/PCI/DMA.cc22
1 files changed, 10 insertions, 12 deletions
diff --git a/dev/kernel/HALKit/AMD64/PCI/DMA.cc b/dev/kernel/HALKit/AMD64/PCI/DMA.cc
index 747fab94..33cff13e 100644
--- a/dev/kernel/HALKit/AMD64/PCI/DMA.cc
+++ b/dev/kernel/HALKit/AMD64/PCI/DMA.cc
@@ -5,6 +5,7 @@
------------------------------------------- */
#include <KernelKit/PCI/DMA.h>
+#include <ArchKit/ArchKit.h>
namespace Kernel
{
@@ -26,37 +27,34 @@ namespace Kernel
if (offset == 0)
return false;
- kout << "[DMAWrapper::IsIn] Checking offset..\n";
+ kout << "[DMAWrapper::IsIn] Checking offset...\r";
return reinterpret_cast<UIntPtr>(this->fAddress) >= offset;
}
bool DMAWrapper::Write(const UIntPtr& bit, const UInt32& offset)
{
- kout << "[DMAWrapper::Read] Checking this->fAddress..\n";
+ kout << "[DMAWrapper::Read] Checking this->fAddress...\r";
if (!this->fAddress)
return false;
- kout << "[DMAWrapper::Write] Writing at address..\n";
+ kout << "[DMAWrapper::Write] Writing at address: " << hex_number(reinterpret_cast<UIntPtr>(this->fAddress) + offset) << kendl;
- auto addr =
- (volatile UIntPtr*)(reinterpret_cast<UIntPtr>(this->fAddress) + offset);
- *addr = bit;
+ ke_dma_write<UInt32>(reinterpret_cast<UIntPtr>(this->fAddress), offset, bit);
return true;
}
UIntPtr DMAWrapper::Read(const UInt32& offset)
{
- kout << "[DMAWrapper::Read] Checking this->fAddress..\n";
+ kout << "[DMAWrapper::Read] Checking this->fAddress...\r";
if (!this->fAddress)
- return 0;
+ return ~0;
- kout << "[DMAWrapper::Read] Reading this->fAddress..\n";
+ kout << "[DMAWrapper::Write] Writing at address: " << hex_number(reinterpret_cast<UIntPtr>(this->fAddress) + offset) << kendl;
- return *(volatile UIntPtr*)(reinterpret_cast<UIntPtr>(this->fAddress) + offset);
- ;
+ return ke_dma_read<UInt32>(reinterpret_cast<UIntPtr>(this->fAddress), offset);
}
UIntPtr DMAWrapper::operator[](const UIntPtr& offset)
@@ -70,7 +68,7 @@ namespace Kernel
return {};
OwnPtr<IOBuf<Char*>> dmaOwnPtr =
- make_ptr<IOBuf<Char*>, char*>(reinterpret_cast<char*>(dma->fAddress));
+ mm_make_own_ptr<IOBuf<Char*>, char*>(reinterpret_cast<char*>(dma->fAddress));
if (!dmaOwnPtr)
return {};