From 15ea32dbcddccb396c9b59382138ca8c06cacce8 Mon Sep 17 00:00:00 2001 From: Curle Date: Thu, 15 Jul 2021 22:25:19 +0100 Subject: [PATCH] Add filesystem header --- inc/kernel/filesystem/filesystem.h | 33 ++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 inc/kernel/filesystem/filesystem.h diff --git a/inc/kernel/filesystem/filesystem.h b/inc/kernel/filesystem/filesystem.h new file mode 100644 index 0000000..c43547e --- /dev/null +++ b/inc/kernel/filesystem/filesystem.h @@ -0,0 +1,33 @@ +#pragma once +#include +#include +#include + +/************************ + *** Team Kitty, 2021 *** + *** Chroma *** + ***********************/ + +/** + * @brief Abstract base class for filesystem implementations. + * ! Do not instantiate! + */ + +class FileSystem { +public: + virtual void Init(size_t Sector, size_t Size) = 0; + virtual const char* GetName() = 0; + + /*********** File Manipulation***********/ + virtual size_t GetFileSize(const char* FilePath) = 0; + virtual bool FileExists(const char* FilePath) = 0; + + virtual uint8_t* Read(const char* FilePath) = 0; + virtual size_t ReadIntoBuffer(const char* FilePath, size_t Offset, size_t Length, uint8_t* Target) = 0; + + virtual size_t Write(const char* FilePath, uint8_t* Data) = 0; + virtual size_t WriteFromBuffer(const char* FilePath, size_t Offset, size_t Length, uint8_t* Buffer) = 0; + +private: + ticketlock_t Lock; +}; \ No newline at end of file