diff --git a/Include/Aurora/IO/Net/IDatagramServer.hpp b/Include/Aurora/IO/Net/IDatagramServer.hpp index b5557454..a0f97aff 100644 --- a/Include/Aurora/IO/Net/IDatagramServer.hpp +++ b/Include/Aurora/IO/Net/IDatagramServer.hpp @@ -12,7 +12,7 @@ namespace Aurora::IO::Net struct IDatagramServer : virtual ISocketBase { virtual void SendPacket(const NetEndpoint &destination, - const AuSPtr &pPacketData, + const AuMemoryViewRead &packetData, const AuSPtr> &pCalback) = 0; virtual AuSPtr GetDatagramDriver() = 0; diff --git a/Source/IO/FS/Async.Linux.hpp b/Source/IO/FS/Async.Linux.hpp index b78bc925..06b26fc5 100644 --- a/Source/IO/FS/Async.Linux.hpp +++ b/Source/IO/FS/Async.Linux.hpp @@ -55,8 +55,8 @@ namespace Aurora::IO::FS bool Init(const AuSPtr &handle); - bool StartRead(AuUInt64 offset, const AuSPtr &memoryView) override; - bool StartWrite(AuUInt64 offset, const AuSPtr &memoryView) override; + bool StartRead(AuUInt64 offset, const AuMemoryViewWrite &memoryView) override; + bool StartWrite(AuUInt64 offset, const AuMemoryViewRead &memoryView) override; bool Complete() override; diff --git a/Source/IO/Net/AuNetDatagramServer.cpp b/Source/IO/Net/AuNetDatagramServer.cpp index 071268a2..bbe1182e 100644 --- a/Source/IO/Net/AuNetDatagramServer.cpp +++ b/Source/IO/Net/AuNetDatagramServer.cpp @@ -52,14 +52,14 @@ namespace Aurora::IO::Net } void DatagramServer::SendPacket(const NetEndpoint &destination, - const AuSPtr &pPacketData, + const AuMemoryViewRead &packetData, const AuSPtr> &pCalback2) { AuSPtr pCallback; if (pCalback2) { - pCallback = AuMakeShared([uSourceLength = pPacketData->length, + pCallback = AuMakeShared([uSourceLength = packetData.length, pCalback2 = AuSPtr>(pCalback2)](AuUInt64 uOffset, AuUInt32 uLength) { if (uSourceLength != uLength) @@ -99,7 +99,7 @@ namespace Aurora::IO::Net pTransaction->SetCallback(pCallback); - if (!pTransaction->StartWrite(0, pPacketData)) + if (!pTransaction->StartWrite(0, packetData)) { NetError error; NetError_SetCurrent(error); diff --git a/Source/IO/Net/AuNetDatagramServer.hpp b/Source/IO/Net/AuNetDatagramServer.hpp index ad058641..6fab98f0 100644 --- a/Source/IO/Net/AuNetDatagramServer.hpp +++ b/Source/IO/Net/AuNetDatagramServer.hpp @@ -14,7 +14,7 @@ namespace Aurora::IO::Net struct DatagramServer : virtual SocketServerImpl, virtual IDatagramServer { void SendPacket(const NetEndpoint &destination, - const AuSPtr &pPacketData, + const AuMemoryViewRead &pPacketData, const AuSPtr> &pCalback) override; DatagramServer(struct NetInterface *pInterface, diff --git a/Source/IO/UNIX/IOSubmit.Linux.cpp b/Source/IO/UNIX/IOSubmit.Linux.cpp index dd8c6985..25a4a218 100644 --- a/Source/IO/UNIX/IOSubmit.Linux.cpp +++ b/Source/IO/UNIX/IOSubmit.Linux.cpp @@ -52,8 +52,8 @@ namespace Aurora::IO::UNIX pinSelf = this->pin_; pinMem = this->memPin_; - auto cp1 = context->readView; - auto cp2 = context->writeView; + auto cp1 = this->readView; + auto cp2 = this->writeView; if (AuExchange(this->bIsReadPending, false)) { diff --git a/Source/IO/UNIX/IOSubmit.Linux.hpp b/Source/IO/UNIX/IOSubmit.Linux.hpp index 4cd38dc3..ca6766d1 100644 --- a/Source/IO/UNIX/IOSubmit.Linux.hpp +++ b/Source/IO/UNIX/IOSubmit.Linux.hpp @@ -25,8 +25,8 @@ namespace Aurora::IO::UNIX bool LIOS_Cancel(); bool HasState(); - void SetMemory(const AuSPtr &view); - void SetMemory(const AuSPtr &view); + void SetMemory(const AuMemoryViewRead &view); + void SetMemory(const AuMemoryViewWrite &view); AuUInt64 GetData(); AuUInt64 GetBuf(); @@ -47,6 +47,8 @@ namespace Aurora::IO::UNIX // TODO: AuSPtr pin_; AuSPtr memPin_; + AuMemoryViewRead readView; + AuMemoryViewWrite writeView; private: AuUInt64 dataPtr_ {}; AuUInt dataLen_ {};