 0b806c2360
			
		
	
	
		0b806c2360
		
			
		
	
	
	
	
		
			
			* Storage: count opened files * Storage: sd mount * Storage: prompt to mount SD card if not mounted * F18: update API * F18: update API version * Fix logger naming scheme * Storage: storage_files_count -> storage_open_files_count Co-authored-by: あく <alleteam@gmail.com>
		
			
				
	
	
		
			157 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			157 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #pragma once
 | |
| #include <furi.h>
 | |
| #include <toolbox/api_lock.h>
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| typedef struct {
 | |
|     File* file;
 | |
|     const char* path;
 | |
|     FS_AccessMode access_mode;
 | |
|     FS_OpenMode open_mode;
 | |
|     FuriThreadId thread_id;
 | |
| } SADataFOpen;
 | |
| 
 | |
| typedef struct {
 | |
|     File* file;
 | |
|     void* buff;
 | |
|     uint16_t bytes_to_read;
 | |
| } SADataFRead;
 | |
| 
 | |
| typedef struct {
 | |
|     File* file;
 | |
|     const void* buff;
 | |
|     uint16_t bytes_to_write;
 | |
| } SADataFWrite;
 | |
| 
 | |
| typedef struct {
 | |
|     File* file;
 | |
|     uint32_t offset;
 | |
|     bool from_start;
 | |
| } SADataFSeek;
 | |
| 
 | |
| typedef struct {
 | |
|     File* file;
 | |
|     const char* path;
 | |
|     FuriThreadId thread_id;
 | |
| } SADataDOpen;
 | |
| 
 | |
| typedef struct {
 | |
|     File* file;
 | |
|     FileInfo* fileinfo;
 | |
|     char* name;
 | |
|     uint16_t name_length;
 | |
| } SADataDRead;
 | |
| 
 | |
| typedef struct {
 | |
|     const char* path;
 | |
|     uint32_t* timestamp;
 | |
|     FuriThreadId thread_id;
 | |
| } SADataCTimestamp;
 | |
| 
 | |
| typedef struct {
 | |
|     const char* path;
 | |
|     FileInfo* fileinfo;
 | |
|     FuriThreadId thread_id;
 | |
| } SADataCStat;
 | |
| 
 | |
| typedef struct {
 | |
|     const char* fs_path;
 | |
|     uint64_t* total_space;
 | |
|     uint64_t* free_space;
 | |
|     FuriThreadId thread_id;
 | |
| } SADataCFSInfo;
 | |
| 
 | |
| typedef struct {
 | |
|     FuriString* path;
 | |
|     FuriThreadId thread_id;
 | |
| } SADataCResolvePath;
 | |
| 
 | |
| typedef struct {
 | |
|     uint32_t id;
 | |
| } SADataError;
 | |
| 
 | |
| typedef struct {
 | |
|     const char* path;
 | |
|     FuriThreadId thread_id;
 | |
| } SADataPath;
 | |
| 
 | |
| typedef struct {
 | |
|     File* file;
 | |
| } SADataFile;
 | |
| 
 | |
| typedef struct {
 | |
|     SDInfo* info;
 | |
| } SAInfo;
 | |
| 
 | |
| typedef union {
 | |
|     SADataFOpen fopen;
 | |
|     SADataFRead fread;
 | |
|     SADataFWrite fwrite;
 | |
|     SADataFSeek fseek;
 | |
| 
 | |
|     SADataDOpen dopen;
 | |
|     SADataDRead dread;
 | |
| 
 | |
|     SADataCTimestamp ctimestamp;
 | |
|     SADataCStat cstat;
 | |
|     SADataCFSInfo cfsinfo;
 | |
|     SADataCResolvePath cresolvepath;
 | |
| 
 | |
|     SADataError error;
 | |
| 
 | |
|     SADataFile file;
 | |
|     SADataPath path;
 | |
| 
 | |
|     SAInfo sdinfo;
 | |
| } SAData;
 | |
| 
 | |
| typedef union {
 | |
|     bool bool_value;
 | |
|     uint16_t uint16_value;
 | |
|     uint64_t uint64_value;
 | |
|     FS_Error error_value;
 | |
|     const char* cstring_value;
 | |
| } SAReturn;
 | |
| 
 | |
| typedef enum {
 | |
|     StorageCommandFileOpen,
 | |
|     StorageCommandFileClose,
 | |
|     StorageCommandFileRead,
 | |
|     StorageCommandFileWrite,
 | |
|     StorageCommandFileSeek,
 | |
|     StorageCommandFileTell,
 | |
|     StorageCommandFileTruncate,
 | |
|     StorageCommandFileSize,
 | |
|     StorageCommandFileSync,
 | |
|     StorageCommandFileEof,
 | |
|     StorageCommandDirOpen,
 | |
|     StorageCommandDirClose,
 | |
|     StorageCommandDirRead,
 | |
|     StorageCommandDirRewind,
 | |
|     StorageCommandCommonTimestamp,
 | |
|     StorageCommandCommonStat,
 | |
|     StorageCommandCommonRemove,
 | |
|     StorageCommandCommonMkDir,
 | |
|     StorageCommandCommonFSInfo,
 | |
|     StorageCommandSDFormat,
 | |
|     StorageCommandSDUnmount,
 | |
|     StorageCommandSDInfo,
 | |
|     StorageCommandSDStatus,
 | |
|     StorageCommandCommonResolvePath,
 | |
|     StorageCommandSDMount,
 | |
| } StorageCommand;
 | |
| 
 | |
| typedef struct {
 | |
|     FuriApiLock lock;
 | |
|     StorageCommand command;
 | |
|     SAData* data;
 | |
|     SAReturn* return_data;
 | |
| } StorageMessage;
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 |