diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-09-28 15:01:25 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-28 15:01:25 +0200 |
| commit | 10cba024ce2038e9e94f60729b6ad30055c12fc6 (patch) | |
| tree | a7b706349a1fcefc2490acb624a023d010c03f7d /dev/kernel/KernelKit/FileMgr.h | |
| parent | 78bd706f8703d0c5cce7c8a66e4668ed28532e07 (diff) | |
| parent | 84a7325b22f1f90c0c719a2ec8ba131263e1208c (diff) | |
Merge pull request #67 from nekernel-org/ext2-dev
merge: `ext2-dev` into `dev`
Diffstat (limited to 'dev/kernel/KernelKit/FileMgr.h')
| -rw-r--r-- | dev/kernel/KernelKit/FileMgr.h | 48 |
1 files changed, 47 insertions, 1 deletions
diff --git a/dev/kernel/KernelKit/FileMgr.h b/dev/kernel/KernelKit/FileMgr.h index f925a96c..bad6cf85 100644 --- a/dev/kernel/KernelKit/FileMgr.h +++ b/dev/kernel/KernelKit/FileMgr.h @@ -27,7 +27,7 @@ /// @author Amlal El Mahrouss (amlal@nekernel.org) //! Include filesystems that NeKernel supports. -#include <FSKit/Ext2.h> +#include <FSKit/Ext2+IFS.h> #include <FSKit/HeFS.h> #include <FSKit/NeFS.h> @@ -177,6 +177,52 @@ class NeFileSystemMgr final : public IFilesystemMgr { #endif // ifdef __FSKIT_INCLUDES_NEFS__ +#ifdef __FSKIT_INCLUDES_EXT2__ +/** + * @brief Based of IFilesystemMgr, takes care of managing NeFS + * disks. + */ +class Ext2FileSystemMgr final : public IFilesystemMgr { + public: + explicit Ext2FileSystemMgr(); + ~Ext2FileSystemMgr() override; + + public: + NE_COPY_DEFAULT(Ext2FileSystemMgr) + + public: + NodePtr Create(const Char* path) override; + NodePtr CreateAlias(const Char* path) override; + NodePtr CreateDirectory(const Char* path) override; + NodePtr CreateSwapFile(const Char* path) override; + + public: + bool Remove(_Input const Char* path) override; + NodePtr Open(_Input const Char* path, _Input const Char* r) override; + Void Write(_Input NodePtr node, _Input VoidPtr data, _Input Int32 flags, + _Input SizeT sz) override; + VoidPtr Read(_Input NodePtr node, _Input Int32 flags, _Input SizeT sz) override; + bool Seek(_Input NodePtr node, _Input SizeT off) override; + SizeT Tell(_Input NodePtr node) override; + bool Rewind(_Input NodePtr node) override; + + Void Write(_Input const Char* name, _Input NodePtr node, _Input VoidPtr data, _Input Int32 flags, + _Input SizeT size) override; + + _Output VoidPtr Read(_Input const Char* name, _Input NodePtr node, _Input Int32 flags, + _Input SizeT sz) override; + + public: + /// @brief Get NeFS parser class. + /// @return The filesystem parser class. + Ext2FileSystemParser* GetParser() noexcept; + + private: + Ext2FileSystemParser* mParser{nullptr}; +}; + +#endif // ifdef __FSKIT_INCLUDES_EXT2__ + #ifdef __FSKIT_INCLUDES_HEFS__ /** * @brief Based of IFilesystemMgr, takes care of managing NeFS |
