diff options
| author | Amlal El Mahrouss <amlal@el-mahrouss-logic.com> | 2024-04-02 07:04:53 +0200 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@el-mahrouss-logic.com> | 2024-04-02 07:04:53 +0200 |
| commit | f0811b1e200293c5ccc387d866d0ad49a41bba17 (patch) | |
| tree | a31adbc1d14465e08088a98f1b4b8ebd0936db16 /Private/FSKit | |
| parent | d445096b8403ad0bdbf0095c50f66ba01fde9f33 (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.hxx | 40 |
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 |
