-
-
Notifications
You must be signed in to change notification settings - Fork 81
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Takes care of retrieving a FsStorage object for any FAT eMMC BIS partition, mounting it via FatFs and creating a virtual devoptab device that can be used to carry out FS operations. All write operations have been stubbed, disabled or ifdef'd out of the code. Other changes include: * cert: update code to use the new BIS storage interface. * defines: remove BIS_SYSTEM_PARTITION_MOUNT_NAME macro. * devoptab: slightly improve macros. * devoptab: add operation table for FatFs devices. * devoptab: add rodev_fstat(). * devoptab: add devoptabMountFatFsDevice(). * fatfs: update diskio code to use the new BIS storage interface. * fatfs: update configuration. * save: update code to use regular C I/O calls instead of FatFs calls. * tik: update code to use the new BIS storage interface. * utils: remove eMMC BIS System partition (un)mount code.
- Loading branch information
1 parent
160236c
commit 596928a
Showing
19 changed files
with
1,138 additions
and
291 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
/* | ||
* bis_storage.h | ||
* | ||
* Copyright (c) 2020-2024, DarkMatterCore <[email protected]>. | ||
* | ||
* This file is part of nxdumptool (https://github.com/DarkMatterCore/nxdumptool). | ||
* | ||
* nxdumptool is free software: you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License as published by | ||
* the Free Software Foundation, either version 3 of the License, or | ||
* (at your option) any later version. | ||
* | ||
* nxdumptool is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* along with this program. If not, see <https://www.gnu.org/licenses/>. | ||
*/ | ||
|
||
#pragma once | ||
|
||
#ifndef __BIS_STORAGE_H__ | ||
#define __BIS_STORAGE_H__ | ||
|
||
#ifdef __cplusplus | ||
extern "C" { | ||
#endif | ||
|
||
/// Mounts an eMMC BIS partition using its ID and provides a pointer to a string that holds its mount name, which can be used to carry out FS operations. | ||
/// Only eMMC BIS partition IDs `CalibrationFile` (28) through `System` (31) are supported. | ||
bool bisStorageMountPartition(u8 bis_partition_id, const char **out_mount_name); | ||
|
||
/// Unmounts a previously mounted eMMC BIS partition. | ||
/// Only eMMC BIS partition IDs `CalibrationFile` (28) through `System` (31) are supported. | ||
void bisStorageUnmountPartition(u8 bis_partition_id); | ||
|
||
/// Unmounts all previously mounted eMMC BIS partitions. | ||
void bisStorageUnmountAllPartitions(void); | ||
|
||
/// Returns a pointer to a FsStorage object that matches the provided FatFs drive number, or NULL if it hasn't been mounted. | ||
/// Only used by FatFs's diskio operations. | ||
FsStorage *bisStorageGetFsStorageByFatFsDriveNumber(u8 drive_number); | ||
|
||
/// (Un)locks the BIS storage mutex. Can be used to block other threads and prevent them from altering the internal status of this interface. | ||
/// Use with caution. | ||
void bisStorageControlMutex(bool lock); | ||
|
||
#ifdef __cplusplus | ||
} | ||
#endif | ||
|
||
#endif /* __BIS_STORAGE_H__ */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.