summaryrefslogtreecommitdiffhomepage
path: root/dev/Kernel
diff options
context:
space:
mode:
authorAmlal <amlal.elmahrouss@icloud.com>2025-01-18 09:44:38 +0100
committerAmlal <amlal.elmahrouss@icloud.com>2025-01-18 09:44:38 +0100
commita45807be431556c175ac8494cfcc6b7572ac6686 (patch)
tree7533b378db00b84d1e17d2991d7714bb114c98b4 /dev/Kernel
parent68a2172e20ebf34098de71464668239d9064eeb8 (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/Kernel')
-rw-r--r--dev/Kernel/KernelKit/FileMgr.h7
-rw-r--r--dev/Kernel/SystemKit/SwapDisk.h16
-rw-r--r--dev/Kernel/amd64-desktop.make2
-rw-r--r--dev/Kernel/src/System/SwapDisk.cc46
-rw-r--r--dev/Kernel/src/System/SwapDiskDelegate.cc46
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