summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/src/Network
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-11-24 03:02:43 +0100
committerAmlal El Mahrouss <amlal@nekernel.org>2025-11-24 03:02:43 +0100
commit83d870e58457a1d335a1d9b9966a6a1887cc297b (patch)
tree72888f88c7728c82f3f6df1f4f70591de15eab36 /dev/kernel/src/Network
parentab37adbacf0f33845804c788b39680cd754752a8 (diff)
feat! breaking changes on kernel sources.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/src/Network')
-rw-r--r--dev/kernel/src/Network/IPAddress.cc113
-rw-r--r--dev/kernel/src/Network/IPCAddress.cc27
-rw-r--r--dev/kernel/src/Network/IPCMessage.cc129
-rw-r--r--dev/kernel/src/Network/MACAddressGetter.cc13
-rw-r--r--dev/kernel/src/Network/NetworkDevice.cc29
5 files changed, 0 insertions, 311 deletions
diff --git a/dev/kernel/src/Network/IPAddress.cc b/dev/kernel/src/Network/IPAddress.cc
deleted file mode 100644
index 98279979..00000000
--- a/dev/kernel/src/Network/IPAddress.cc
+++ /dev/null
@@ -1,113 +0,0 @@
-/* ========================================
-
- Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license.
-
-======================================== */
-
-#include <NeKit/Utils.h>
-#include <NetworkKit/IP.h>
-
-namespace Kernel {
-UInt8* RawIPAddress::Address() {
- return fAddr;
-}
-
-RawIPAddress::RawIPAddress(UInt8 bytes[4]) {
- rt_copy_memory(bytes, fAddr, 4);
-}
-
-BOOL RawIPAddress::operator==(const RawIPAddress& ipv4) {
- for (Size index = 0; index < 4; ++index) {
- if (ipv4.fAddr[index] != fAddr[index]) return false;
- }
-
- return true;
-}
-
-BOOL RawIPAddress::operator!=(const RawIPAddress& ipv4) {
- for (Size index = 0; index < 4; ++index) {
- if (ipv4.fAddr[index] == fAddr[index]) return false;
- }
-
- return true;
-}
-
-UInt8& RawIPAddress::operator[](const Size& index) {
- kout << "[RawIPAddress::operator[]] Fetching Index...\r";
-
- static UInt8 IP_PLACEHOLDER = '0';
- if (index >= 4) return IP_PLACEHOLDER;
-
- return fAddr[index];
-}
-
-RawIPAddress6::RawIPAddress6(UInt8 bytes[16]) {
- rt_copy_memory(bytes, fAddr, 16);
-}
-
-UInt8& RawIPAddress6::operator[](const Size& index) {
- kout << "[RawIPAddress6::operator[]] Fetching Index...\r";
-
- static UInt8 IP_PLACEHOLDER = '0';
- if (index >= 16) return IP_PLACEHOLDER;
-
- return fAddr[index];
-}
-
-bool RawIPAddress6::operator==(const RawIPAddress6& ipv6) {
- for (SizeT index = 0; index < 16; ++index) {
- if (ipv6.fAddr[index] != fAddr[index]) return false;
- }
-
- return true;
-}
-
-bool RawIPAddress6::operator!=(const RawIPAddress6& ipv6) {
- for (SizeT index = 0; index < 16; ++index) {
- if (ipv6.fAddr[index] == fAddr[index]) return false;
- }
-
- return true;
-}
-
-/// @todo
-ErrorOr<KString> IPFactory::ToKString(Ref<RawIPAddress6>& ipv6) {
- NE_UNUSED(ipv6);
- auto str = KStringBuilder::Construct("");
- return str;
-}
-
-/// @todo
-ErrorOr<KString> IPFactory::ToKString(Ref<RawIPAddress>& ipv4) {
- NE_UNUSED(ipv4);
- auto str = KStringBuilder::Construct("");
- return str;
-}
-
-/// @note Doesn't catch IPs such as 256.999.0.1, UNSAFE!
-bool IPFactory::IpCheckVersion4(const Char* ip) {
- if (!ip) return NO;
-
- Int32 cnter = 0;
- Int32 dot_cnter = 0;
-
- constexpr const auto kIP4DotCharacter = '.';
-
- for (SizeT base = 0; base < rt_string_len(ip); ++base) {
- if (ip[base] == kIP4DotCharacter) {
- cnter = 0;
- ++dot_cnter;
- } else {
- if (ip[base] > '5' || ip[base] < '0') return NO;
- if (!rt_is_alnum(ip[base])) return NO;
- if (cnter == 3) return NO;
-
- ++cnter;
- }
- }
-
- if (dot_cnter != 3) return NO;
-
- return YES;
-}
-} // namespace Kernel
diff --git a/dev/kernel/src/Network/IPCAddress.cc b/dev/kernel/src/Network/IPCAddress.cc
deleted file mode 100644
index 2da5ac0a..00000000
--- a/dev/kernel/src/Network/IPCAddress.cc
+++ /dev/null
@@ -1,27 +0,0 @@
-/* ========================================
-
- Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license.
-
- ======================================== */
-
-#include <KernelKit/KPC.h>
-#include <KernelKit/ProcessScheduler.h>
-#include <NetworkKit/IPC.h>
-
-namespace Kernel {
-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;
-}
-} // namespace Kernel
diff --git a/dev/kernel/src/Network/IPCMessage.cc b/dev/kernel/src/Network/IPCMessage.cc
deleted file mode 100644
index b376b7c8..00000000
--- a/dev/kernel/src/Network/IPCMessage.cc
+++ /dev/null
@@ -1,129 +0,0 @@
-/* ========================================
-
- Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license.
-
-======================================== */
-
-#include <KernelKit/KPC.h>
-#include <KernelKit/ProcessScheduler.h>
-#include <NetworkKit/IPC.h>
-
-namespace Kernel {
-/***********************************************************************************/
-/// @internal internal use for IPC system only.
-/// @brief The internal sanitize function.
-/***********************************************************************************/
-Bool ipc_int_sanitize_packet(IPC_MSG* pckt) {
- auto endian = RTL_ENDIAN(pckt, ((Char*) pckt)[0]);
-
- switch (endian) {
- case Endian::kEndianBig: {
- if (pckt->IpcEndianess == kIPCLittleEndian) goto ipc_check_failed;
-
- break;
- }
- case Endian::kEndianLittle: {
- if (pckt->IpcEndianess == kIPCBigEndian) goto ipc_check_failed;
-
- break;
- }
- case Endian::kEndianMixed: {
- if (pckt->IpcEndianess == kIPCMixedEndian) goto ipc_check_failed;
-
- break;
- }
- default:
- goto ipc_check_failed;
- }
-
- if (pckt->IpcFrom == pckt->IpcTo || pckt->IpcPacketSize > kIPCMsgSize) {
- goto ipc_check_failed;
- }
-
- return pckt->IpcPacketSize > 1 && pckt->IpcHeaderMagic == kIPCHeaderMagic;
-
-ipc_check_failed:
- err_local_get() = kErrorIPC;
- return false;
-}
-
-/***********************************************************************************/
-/// @brief Sanitize packet function
-/// @retval true packet is correct.
-/// @retval false packet is incorrect and process has crashed.
-/***********************************************************************************/
-Bool ipc_sanitize_packet(IPC_MSG* pckt) {
- if (!pckt || !ipc_int_sanitize_packet(pckt)) {
- return false;
- }
-
- return true;
-}
-
-/***********************************************************************************/
-/// @brief Construct packet function
-/// @retval true packet is correct.
-/// @retval false packet is incorrect and process has crashed.
-/***********************************************************************************/
-Bool ipc_construct_packet(_Output IPC_MSG** pckt_in) {
- // don't act if it's not even valid.
- if (!pckt_in) return false;
-
- if (!*pckt_in) *pckt_in = new IPC_MSG();
-
- MUST_PASS(*pckt_in);
-
- if (*pckt_in) {
- const auto endianess = RTL_ENDIAN((*pckt_in), ((Char*) (*pckt_in))[0]);
-
- (*pckt_in)->IpcHeaderMagic = kIPCHeaderMagic;
-
- (*pckt_in)->IpcEndianess = static_cast<UInt8>(endianess);
- (*pckt_in)->IpcPacketSize = sizeof(IPC_MSG);
-
- (*pckt_in)->IpcTo.UserProcessID = 0;
- (*pckt_in)->IpcTo.UserProcessTeam = 0;
-
- (*pckt_in)->IpcFrom.UserProcessID = 0;
- (*pckt_in)->IpcFrom.UserProcessTeam = 0;
-
- (*pckt_in)->IpcLock = kIPCLockFree;
-
- return Yes;
- }
-
- return No;
-}
-
-/***********************************************************************************/
-/// @brief Pass message from **src** to **target**
-/// @param src Source message.
-/// @param target Target message.
-/***********************************************************************************/
-Bool IPC_MSG::Pass(IPC_MSG* src, IPC_MSG* target) noexcept {
- if (src && target && (target != src)) {
- if (src->IpcMsgSz > target->IpcMsgSz) return No;
- if (target->IpcMsgSz > src->IpcMsgSz) return No;
-
- auto timeout = 0U;
-
- const auto kLimitTimeout = 1000000U;
-
- while ((target->IpcLock % kIPCLockUsed) != 0) {
- if (timeout > kLimitTimeout) {
- return No;
- }
- }
-
- ++target->IpcLock;
-
- rt_copy_memory_safe(src->IpcData, target->IpcData, src->IpcMsgSz, kIPCMsgSize);
-
- --target->IpcLock;
-
- return Yes;
- }
-
- return No;
-}
-} // namespace Kernel
diff --git a/dev/kernel/src/Network/MACAddressGetter.cc b/dev/kernel/src/Network/MACAddressGetter.cc
deleted file mode 100644
index 09d82a78..00000000
--- a/dev/kernel/src/Network/MACAddressGetter.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-/* ========================================
-
- Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license.
-
-======================================== */
-
-#include <NetworkKit/MAC.h>
-
-namespace Kernel {
-Array<UInt8, kMACAddrLen>& MacAddressGetter::AsBytes() {
- return this->fMacAddress;
-}
-} // namespace Kernel
diff --git a/dev/kernel/src/Network/NetworkDevice.cc b/dev/kernel/src/Network/NetworkDevice.cc
deleted file mode 100644
index 450c0191..00000000
--- a/dev/kernel/src/Network/NetworkDevice.cc
+++ /dev/null
@@ -1,29 +0,0 @@
-/* ========================================
-
- Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license.
-
-======================================== */
-
-#include <NeKit/Utils.h>
-#include <NetworkKit/NetworkDevice.h>
-
-namespace Kernel {
-/// \brief Getter for fNetworkName.
-/// \return Network device name.
-const Char* NetworkDevice::Name() const {
- return "/devices/net/net{}";
-}
-
-/// \brief Setter for fNetworkName.
-Boolean NetworkDevice::Name(const Char* name) {
- if (name == nullptr) return NO;
-
- if (*name == 0) return NO;
-
- if (rt_string_len(name) > rt_string_len(this->Name())) return NO;
-
- rt_copy_memory((VoidPtr) name, (VoidPtr) this->Name(), rt_string_len(this->Name()));
-
- return YES;
-}
-} // namespace Kernel