summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/src
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-10-19 20:06:33 +0200
committerAmlal El Mahrouss <amlal@nekernel.org>2025-10-19 20:06:33 +0200
commit974d5eae785025facb2c0037c4ec3aaca1da7b20 (patch)
treed8f6cb9c132760601f3f6aeee2459017947aff25 /dev/kernel/src
parent3d8a7b189d3deaaaab948fdb71ed7fedcc16e05c (diff)
feat: kernel: disk_swap and network improvements.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/src')
-rw-r--r--dev/kernel/src/AsciiUtils.cc3
-rw-r--r--dev/kernel/src/Network/NetworkDevice.cc2
-rw-r--r--dev/kernel/src/Swap/DiskSwap.cc6
3 files changed, 9 insertions, 2 deletions
diff --git a/dev/kernel/src/AsciiUtils.cc b/dev/kernel/src/AsciiUtils.cc
index cca3a368..8d2f9dc5 100644
--- a/dev/kernel/src/AsciiUtils.cc
+++ b/dev/kernel/src/AsciiUtils.cc
@@ -52,9 +52,12 @@ Int32 rt_copy_memory_safe(const voidPtr src, voidPtr dst, Size len, Size dst_siz
}
return -1;
}
+
auto s = reinterpret_cast<const UInt8*>(src);
auto d = reinterpret_cast<UInt8*>(dst);
+
for (Size i = 0; i < len; ++i) d[i] = s[i];
+
return static_cast<Int>(len);
}
diff --git a/dev/kernel/src/Network/NetworkDevice.cc b/dev/kernel/src/Network/NetworkDevice.cc
index 7f93fa1b..ffdfa53b 100644
--- a/dev/kernel/src/Network/NetworkDevice.cc
+++ b/dev/kernel/src/Network/NetworkDevice.cc
@@ -11,7 +11,7 @@ namespace Kernel {
/// \brief Getter for fNetworkName.
/// \return Network device name.
const Char* NetworkDevice::Name() const {
- return "/devices/net{}";
+ return "/devices/net/net{}";
}
/// \brief Setter for fNetworkName.
diff --git a/dev/kernel/src/Swap/DiskSwap.cc b/dev/kernel/src/Swap/DiskSwap.cc
index 8578450c..b9cfaf77 100644
--- a/dev/kernel/src/Swap/DiskSwap.cc
+++ b/dev/kernel/src/Swap/DiskSwap.cc
@@ -8,6 +8,8 @@
#include <SwapKit/DiskSwap.h>
namespace Kernel {
+static constexpr UInt32 kSwapDiskHeaderMagic = 0x44535750; // 'DSWP'
+
/***********************************************************************************/
/// @brief Write memory chunk onto disk.
/// @param fork_name The swap name to recognize this memory region.
@@ -20,7 +22,7 @@ BOOL DiskSwapInterface::Write(const Char* fork_name, SizeT fork_name_len, SWAP_D
if (*fork_name == 0) return NO;
- if (!data) return NO;
+ if (!data || data->fMagic != kSwapDiskHeaderMagic) return NO;
FileStream file(kSwapPageFilePath, kRestrictWRB);
@@ -52,6 +54,8 @@ SWAP_DISK_HEADER* DiskSwapInterface::Read(const Char* fork_name, SizeT fork_name
VoidPtr blob = file.Read(fork_name, sizeof(SWAP_DISK_HEADER) + data_len);
+ if (!blob || ((SWAP_DISK_HEADER*)blob)->fMagic != kSwapDiskHeaderMagic) return nullptr;
+
return reinterpret_cast<SWAP_DISK_HEADER*>(blob);
}
} // namespace Kernel