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/ACPIFactoryInterface.cc | 5 +++++ dev/Kernel/src/FS/NeFS.cc | 8 ++++---- 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 ++++++++++---------- 6 files changed, 67 insertions(+), 14 deletions(-) create mode 100644 dev/Kernel/src/Network/MACAddressGetter.cc (limited to 'dev/Kernel/src') diff --git a/dev/Kernel/src/ACPIFactoryInterface.cc b/dev/Kernel/src/ACPIFactoryInterface.cc index 56f450ef..eaa97052 100644 --- a/dev/Kernel/src/ACPIFactoryInterface.cc +++ b/dev/Kernel/src/ACPIFactoryInterface.cc @@ -93,4 +93,9 @@ namespace NeOS return chr == 0; } + + ErrorOr ACPIFactoryInterface::operator[](const Char* signature) + { + return this->Find(signature); + } } // namespace NeOS diff --git a/dev/Kernel/src/FS/NeFS.cc b/dev/Kernel/src/FS/NeFS.cc index 88f83020..45fc15fa 100644 --- a/dev/Kernel/src/FS/NeFS.cc +++ b/dev/Kernel/src/FS/NeFS.cc @@ -159,19 +159,19 @@ _Output BOOL NeFileSystemParser::CreateFork(_Input NEFS_FORK_STRUCT& the_fork) } /***********************************************************************************/ -/// @brief Find fork inside New filesystem. +/// @brief Find fork inside filesystem. /// @param catalog the catalog. /// @param name the fork name. -/// @return the fork. +/// @return the newly found fork. /***********************************************************************************/ _Output NEFS_FORK_STRUCT* NeFileSystemParser::FindFork(_Input NEFS_CATALOG_STRUCT* catalog, _Input const Char* name, - Boolean isDataFork) + _Input Boolean is_data) { auto& drive = kMountpoint.A(); NEFS_FORK_STRUCT* the_fork = nullptr; - Lba lba = isDataFork ? catalog->DataFork : catalog->ResourceFork; + Lba lba = is_data ? catalog->DataFork : catalog->ResourceFork; while (lba != 0) { 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