From 0a2760d8a5ce09ae77cfc097ece4100579164f9d Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Tue, 11 Mar 2025 08:10:55 +0100 Subject: Many AHCI improvements and IPC tweaks. Signed-off-by: Amlal El Mahrouss --- dev/Kernel/src/Network/IPCAddr.cc | 18 ++++++++++++++++++ dev/Kernel/src/Network/IPCMsg.cc | 15 +++++++++++++++ dev/Kernel/src/Network/MACAddressGetter.cc | 15 +++++++++++++++ dev/Kernel/src/Network/NetworkDevice.cc | 20 ++++++++++---------- 4 files changed, 58 insertions(+), 10 deletions(-) create mode 100644 dev/Kernel/src/Network/MACAddressGetter.cc (limited to 'dev/Kernel/src/Network') diff --git a/dev/Kernel/src/Network/IPCAddr.cc b/dev/Kernel/src/Network/IPCAddr.cc index 3acb2943..f18d9e42 100644 --- a/dev/Kernel/src/Network/IPCAddr.cc +++ b/dev/Kernel/src/Network/IPCAddr.cc @@ -10,5 +10,23 @@ namespace NeOS { + bool IPC_ADDR::operator==(const IPC_ADDR& addr) noexcept + { + return addr.UserProcessID == this->UserProcessID && addr.UserProcessTeam == this->UserProcessTeam; + } + bool IPC_ADDR::operator==(IPC_ADDR& addr) noexcept + { + return addr.UserProcessID == this->UserProcessID && addr.UserProcessTeam == this->UserProcessTeam; + } + + bool IPC_ADDR::operator!=(const IPC_ADDR& addr) noexcept + { + return addr.UserProcessID != this->UserProcessID || addr.UserProcessTeam != this->UserProcessTeam; + } + + bool IPC_ADDR::operator!=(IPC_ADDR& addr) noexcept + { + return addr.UserProcessID != this->UserProcessID || addr.UserProcessTeam != this->UserProcessTeam; + } } diff --git a/dev/Kernel/src/Network/IPCMsg.cc b/dev/Kernel/src/Network/IPCMsg.cc index 04f1114b..42bbd293 100644 --- a/dev/Kernel/src/Network/IPCMsg.cc +++ b/dev/Kernel/src/Network/IPCMsg.cc @@ -101,4 +101,19 @@ namespace NeOS return No; } + + Bool IPC_MSG::Pass(IPC_MSG* self, IPC_MSG* target) noexcept + { + if (self && target && (target == self)) + { + if (self->IpcMsgSz > target->IpcMsgSz) + return No; + + rt_copy_memory(self->IpcData, target->IpcData, self->IpcMsgSz); + + return Yes; + } + + return No; + } } // namespace NeOS diff --git a/dev/Kernel/src/Network/MACAddressGetter.cc b/dev/Kernel/src/Network/MACAddressGetter.cc new file mode 100644 index 00000000..47d3350f --- /dev/null +++ b/dev/Kernel/src/Network/MACAddressGetter.cc @@ -0,0 +1,15 @@ +/* ------------------------------------------- + + Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved. + +------------------------------------------- */ + +#include + +namespace NeOS +{ + Array& MacAddressGetter::AsBytes() + { + return this->fMacAddress; + } +} // namespace NeOS diff --git a/dev/Kernel/src/Network/NetworkDevice.cc b/dev/Kernel/src/Network/NetworkDevice.cc index 94d494da..f2971265 100644 --- a/dev/Kernel/src/Network/NetworkDevice.cc +++ b/dev/Kernel/src/Network/NetworkDevice.cc @@ -16,20 +16,20 @@ namespace NeOS } /// \brief Setter for fNetworkName. - Boolean NetworkDevice::Name(const Char* strView) + Boolean NetworkDevice::Name(const Char* devnam) { - if (strView == nullptr) - return false; + if (devnam == nullptr) + return NO; - if (*strView == 0) - return false; + if (*devnam == 0) + return NO; - if (rt_string_len(strView) > cNetworkNameLen) - return false; + if (rt_string_len(devnam) > cNetworkNameLen) + return NO; - rt_copy_memory((VoidPtr)strView, - (VoidPtr)this->fNetworkName, rt_string_len(strView)); + rt_copy_memory((VoidPtr)devnam, + (VoidPtr)this->fNetworkName, rt_string_len(devnam)); - return true; + return YES; } } // namespace NeOS -- cgit v1.2.3