diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2025-03-11 08:10:55 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2025-03-11 08:10:55 +0100 |
| commit | 0a2760d8a5ce09ae77cfc097ece4100579164f9d (patch) | |
| tree | 38be73d31c13aa0ac3a7883dfd22cc2b8208dbb9 /dev/Kernel/src | |
| parent | c6d9cc48540b380583fc2bb8fcfe59a9113d0e19 (diff) | |
Many AHCI improvements and IPC tweaks.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/Kernel/src')
| -rw-r--r-- | dev/Kernel/src/ACPIFactoryInterface.cc | 5 | ||||
| -rw-r--r-- | dev/Kernel/src/FS/NeFS.cc | 8 | ||||
| -rw-r--r-- | dev/Kernel/src/Network/IPCAddr.cc | 18 | ||||
| -rw-r--r-- | dev/Kernel/src/Network/IPCMsg.cc | 15 | ||||
| -rw-r--r-- | dev/Kernel/src/Network/MACAddressGetter.cc | 15 | ||||
| -rw-r--r-- | dev/Kernel/src/Network/NetworkDevice.cc | 20 |
6 files changed, 67 insertions, 14 deletions
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<voidPtr> 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 <NetworkKit/MAC.h> + +namespace NeOS +{ + Array<WideChar, kMACAddrLen>& 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 |
