diff options
| author | Amlal <amlal.elmahrouss@icloud.com> | 2025-01-18 09:44:38 +0100 |
|---|---|---|
| committer | Amlal <amlal.elmahrouss@icloud.com> | 2025-01-18 09:44:38 +0100 |
| commit | a45807be431556c175ac8494cfcc6b7572ac6686 (patch) | |
| tree | 7533b378db00b84d1e17d2991d7714bb114c98b4 /dev | |
| parent | 68a2172e20ebf34098de71464668239d9064eeb8 (diff) | |
ADD: SwapDisk class has been patched and FileStream class too.
ADD: Patch amd64 makefile, make sure to include src/System/ in build.
Signed-off-by: Amlal <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev')
| -rw-r--r-- | dev/Kernel/KernelKit/FileMgr.h | 7 | ||||
| -rw-r--r-- | dev/Kernel/SystemKit/SwapDisk.h | 16 | ||||
| -rw-r--r-- | dev/Kernel/amd64-desktop.make | 2 | ||||
| -rw-r--r-- | dev/Kernel/src/System/SwapDisk.cc | 46 | ||||
| -rw-r--r-- | dev/Kernel/src/System/SwapDiskDelegate.cc | 46 |
5 files changed, 59 insertions, 58 deletions
diff --git a/dev/Kernel/KernelKit/FileMgr.h b/dev/Kernel/KernelKit/FileMgr.h index d4dfd814..f735e8c3 100644 --- a/dev/Kernel/KernelKit/FileMgr.h +++ b/dev/Kernel/KernelKit/FileMgr.h @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024, t& Labs, all rights reserved. + Copyright (C) 2024-2025, MediaSwirl Labs, all rights reserved. File: FileMgr.h Purpose: Kernel file manager. @@ -14,6 +14,7 @@ 31/01/24: Update documentation (amlel) 05/07/24: NeFS support, and fork support, updated constants and specs as well. + 18/01/25: Patches to FileStream class. ------------------------------------------- */ @@ -192,7 +193,7 @@ namespace Kernel #endif // ifdef __FSKIT_INCLUDES_NEFS__ /** - * Usable FileStream + * FileStream class. * @tparam Encoding file encoding (char, wchar_t...) * @tparam FSClass Filesystem contract who takes care of it. */ @@ -246,7 +247,7 @@ namespace Kernel if (man) { - man->Write(name, fFile, data, len); + man->Write(name, fFile, data, 0, len); return ErrorOr<Int64>(0); } diff --git a/dev/Kernel/SystemKit/SwapDisk.h b/dev/Kernel/SystemKit/SwapDisk.h index 06d613dc..07d3cb73 100644 --- a/dev/Kernel/SystemKit/SwapDisk.h +++ b/dev/Kernel/SystemKit/SwapDisk.h @@ -1,7 +1,7 @@ /* ------------------------------------------- - Copyright (C) 2024, t& Labs, all rights reserved. + Copyright (C) 2024-2025 MediaSwirl Labs, all rights reserved. ------------------------------------------- */ @@ -10,8 +10,8 @@ #include <NewKit/Defines.h> #include <CompilerKit/CompilerKit.h> -#define kSwapMgrBlockMaxSize (mib_cast(16)) -#define kSwapMgrPageFile "/System/pagefile.sys" +#define kSwapBlockMaxSize (mib_cast(16)) +#define kSwapPageFile "/boot/pagefile.sys" /// @file SwapDisk.h /// @brief Virtual memory swap disk. @@ -19,15 +19,15 @@ namespace Kernel { /// @brief This class is a disk swap delegate for any data. available as a syscall too. - class SwapDiskDelegate final + class SwapDisk final { public: - explicit SwapDiskDelegate() = default; - ~SwapDiskDelegate() = default; + explicit SwapDisk() = default; + ~SwapDisk() = default; - ZKA_COPY_DEFAULT(SwapDiskDelegate); + ZKA_COPY_DEFAULT(SwapDisk); BOOL Write(const Char* fork_name, const SizeT fork_name_len, VoidPtr data, const SizeT data_len); VoidPtr Read(const Char* fork_name, const SizeT fork_name_len, const SizeT data_len); }; -} // namespace Kernel
\ No newline at end of file +} // namespace Kernel diff --git a/dev/Kernel/amd64-desktop.make b/dev/Kernel/amd64-desktop.make index 74ae9138..03997e6e 100644 --- a/dev/Kernel/amd64-desktop.make +++ b/dev/Kernel/amd64-desktop.make @@ -61,7 +61,7 @@ newos-amd64-epm: clean $(CC) $(CCFLAGS) $(DISK_DRV) $(DEBUG_MACRO) $(wildcard src/*.cc) \ $(wildcard src/FS/*.cc) $(wildcard HALKit/AMD64/Storage/*.cc) \ $(wildcard HALKit/AMD64/PCI/*.cc) $(wildcard src/Network/*.cc) $(wildcard src/Storage/*.cc) \ - $(wildcard HALKit/AMD64/*.cc) $(wildcard src/WS/*.cc) \ + $(wildcard HALKit/AMD64/*.cc) $(wildcard src/System/*.cc) \ $(wildcard HALKit/AMD64/*.s) $(ASM) $(ASMFLAGS) HALKit/AMD64/HalInterruptAPI.asm $(ASM) $(ASMFLAGS) HALKit/AMD64/HalCommonAPI.asm diff --git a/dev/Kernel/src/System/SwapDisk.cc b/dev/Kernel/src/System/SwapDisk.cc new file mode 100644 index 00000000..ce80ce66 --- /dev/null +++ b/dev/Kernel/src/System/SwapDisk.cc @@ -0,0 +1,46 @@ +/* ------------------------------------------- + + Copyright (C) 2024-2025 MediaSwirl Labs, all rights reserved. + +------------------------------------------- */ + +#include <SystemKit/SwapDisk.h> +#include <KernelKit/FileMgr.h> + +namespace Kernel +{ + BOOL SwapDisk::Write(const Char* fork_name, const SizeT fork_name_len, VoidPtr data, const SizeT data_len) + { + if (!fork_name || !fork_name_len) + return NO; + + if (data_len > kSwapBlockMaxSize) + return NO; + + if (!data) + return NO; + + FileStream file(kSwapPageFile, "wb"); + + auto ret = file.Write(fork_name, data, data_len); + + if (ret.Error()) + return NO; + + return YES; + } + + VoidPtr SwapDisk::Read(const Char* fork_name, const SizeT fork_name_len, const SizeT data_len) + { + if (!fork_name || !fork_name_len) + return nullptr; + + if (data_len > kSwapBlockMaxSize) + return nullptr; + + FileStream file(kSwapPageFile, "rb"); + + VoidPtr blob = file.Read(fork_name, data_len); + return blob; + } +} // namespace Kernel diff --git a/dev/Kernel/src/System/SwapDiskDelegate.cc b/dev/Kernel/src/System/SwapDiskDelegate.cc deleted file mode 100644 index a736b90f..00000000 --- a/dev/Kernel/src/System/SwapDiskDelegate.cc +++ /dev/null @@ -1,46 +0,0 @@ -/* ------------------------------------------- - - Copyright (C) 2024, t& Labs, all rights reserved. - -------------------------------------------- */ - -#include <SystemKit/Swap.h> -#include <KernelKit/FileMgr.h> - -namespace Kernel -{ - BOOL SwapDiskDelegate::Write(const Char* fork_name, const SizeT fork_name_len, VoidPtr data, const SizeT data_len) - { - if (!fork_name || !fork_name_len) - return NO; - - if (data_len > kSwapMgrBlockMaxSize) - return NO; - - if (!data) - return NO; - - FileStream file(kSwapMgrPageFile, "wb"); - - if (file.Write(fork_name, data, data_len).Error()) - { - return NO; - } - - return YES; - } - - VoidPtr SwapDiskDelegate::Read(const Char* fork_name, const SizeT fork_name_len, const SizeT data_len) - { - if (!fork_name || !fork_name_len) - return nullptr; - - if (data_len > mib_cast(16)) - return nullptr; - - FileStream file(kSwapMgrPageFile, "rb"); - - voidPtr blob = file.Read(fork_name, data_len); - return blob; - } -} // namespace Kernel
\ No newline at end of file |
