summaryrefslogtreecommitdiffhomepage
path: root/Private/FSKit
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@el-mahrouss-logic.com>2024-04-02 07:04:53 +0200
committerAmlal El Mahrouss <amlal@el-mahrouss-logic.com>2024-04-02 07:04:53 +0200
commitf0811b1e200293c5ccc387d866d0ad49a41bba17 (patch)
treea31adbc1d14465e08088a98f1b4b8ebd0936db16 /Private/FSKit
parentd445096b8403ad0bdbf0095c50f66ba01fde9f33 (diff)
Kernel: New commit, see below.
- Implement FileManager's NewFilesystemManager. - Add ATA-DMA and ATA-PIO APIs. - Add the two raw call (fs_newfs_read_raw, fs_newfs_write_raw) to the NewFS API. - Add kPRDTTransferStatus to tell if PRD is in use. Signed-off-by: Amlal El Mahrouss <amlal@el-mahrouss-logic.com>
Diffstat (limited to 'Private/FSKit')
-rw-r--r--Private/FSKit/NewFS.hxx40
1 files changed, 33 insertions, 7 deletions
diff --git a/Private/FSKit/NewFS.hxx b/Private/FSKit/NewFS.hxx
index 6b852f73..10e5e1e7 100644
--- a/Private/FSKit/NewFS.hxx
+++ b/Private/FSKit/NewFS.hxx
@@ -171,9 +171,9 @@ class NewFSParser {
HCORE_COPY_DEFAULT(NewFSParser);
public:
- virtual _Output NewFork* CreateFork(_Input NewCatalog* catalog, _Input NewFork& theFork) = 0;
+ virtual _Output NewFork* CreateFork(_Input NewCatalog* catalog, _Input NewFork& theFork) = 0;
- virtual _Output NewFork* FindFork(_Input NewCatalog* catalog, _Input const Char* name) = 0;
+ virtual _Output NewFork* FindFork(_Input NewCatalog* catalog, _Input const Char* name) = 0;
virtual _Output Void RemoveFork(_Input NewFork* fork) = 0;
@@ -198,8 +198,18 @@ class NewFSParser {
virtual bool WriteCatalog(_Input _Output NewCatalog* catalog,
voidPtr data) = 0;
+ virtual VoidPtr ReadCatalog(_Input _Output NewCatalog* catalog,
+ SizeT dataSz) = 0;
+
+ virtual bool Seek(_Input _Output NewCatalog* catalog,
+ SizeT off) = 0;
+
+ virtual SizeT Tell(_Input _Output NewCatalog* catalog) = 0;
+
virtual bool RemoveCatalog(_Input _Output NewCatalog* catalog) = 0;
+ virtual bool CloseCatalog(_InOut NewCatalog* catalog) = 0;
+
/// @brief Make a EPM+NewFS drive out of the disk.
/// @param drive The drive to write on.
/// @return If it was sucessful, see DbgLastError().
@@ -217,11 +227,27 @@ class NewFilesystemHelper final {
static const char* UpDir();
static const char Separator();
};
-} // namespace NewOS
enum {
- kNewFSPartGPT,
- kNewFSPartEPM,
- kNewFSPartUDF,
- kNewFSPartCount,
+ kHCFSSubDriveA,
+ kHCFSSubDriveB,
+ kHCFSSubDriveC,
+ kHCFSSubDriveD,
+ kHCFSSubDriveInvalid,
+ kHCFSSubDriveCount,
};
+
+/// @brief Write to newfs disk.
+/// @param Mnt mounted interface.
+/// @param DrvTrait drive info
+/// @param DrvIndex drive index.
+/// @return
+Int32 fs_newfs_write_raw(MountpointInterface* Mnt, DriveTrait& DrvTrait, Int32 DrvIndex);
+
+/// @brief Read from newfs disk.
+/// @param Mnt mounted interface.
+/// @param DrvTrait drive info
+/// @param DrvIndex drive index.
+/// @return
+Int32 fs_newfs_read_raw(MountpointInterface* Mnt, DriveTrait& DrvTrait, Int32 DrvIndex);
+} // namespace NewOS