diff options
Diffstat (limited to 'dev/kernel/src/Swap')
| -rw-r--r-- | dev/kernel/src/Swap/DiskSwap.cc | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/dev/kernel/src/Swap/DiskSwap.cc b/dev/kernel/src/Swap/DiskSwap.cc deleted file mode 100644 index f0fa5915..00000000 --- a/dev/kernel/src/Swap/DiskSwap.cc +++ /dev/null @@ -1,64 +0,0 @@ -/* ======================================== - - Copyright (C) 2024-2025 Amlal El Mahrouss , licensed under the Apache 2.0 license. - -======================================== */ - -#include <KernelKit/FileMgr.h> -#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. -/// @param fork_name_len length of fork name. -/// @param data the data packet. -/// @return Whether the swap was written to disk, or not. -/***********************************************************************************/ -BOOL DiskSwapInterface::Write(const Char* fork_name, SizeT fork_name_len, SWAP_DISK_HEADER* data) { - if (!fork_name || !fork_name_len) return NO; - - if (*fork_name == 0) return NO; - - if (!data || data->fMagic != kSwapDiskHeaderMagic) return NO; - - FileStream file(kSwapPageFilePath, kRestrictWRB); - - ErrorOr<Int64> ret = file.Write(fork_name, data, sizeof(SWAP_DISK_HEADER) + data->fBlobSz); - - if (ret.Error()) return NO; - - return YES; -} - -/***********************************************************************************/ -/// @brief Read memory chunk from disk. -/// @param fork_name The swap name to recognize this memory region. -/// @param fork_name_len length of fork name. -/// @param data the data packet length. -/// @return Whether the swap was fetched to disk, or not. -/***********************************************************************************/ -SWAP_DISK_HEADER* DiskSwapInterface::Read(const Char* fork_name, SizeT fork_name_len, - SizeT data_len) { - if (!fork_name || !fork_name_len) return nullptr; - - if (*fork_name == 0) return nullptr; - - if (data_len > kSwapBlockMaxSize) return nullptr; - - if (data_len == 0) return nullptr; - - FileStream file(kSwapPageFilePath, kRestrictRB); - - VoidPtr blob = file.Read(fork_name, sizeof(SWAP_DISK_HEADER) + data_len); - - if (!blob || ((SWAP_DISK_HEADER*) blob)->fMagic != kSwapDiskHeaderMagic) { - if (blob) mm_free_ptr(blob); - return nullptr; - } - - return reinterpret_cast<SWAP_DISK_HEADER*>(blob); -} -} // namespace Kernel |
