19 #define FS_FAT_ATTR_READ_ONLY 0x01
20 #define FS_FAT_ATTR_HIDDEN 0x02
21 #define FS_FAT_ATTR_SYSTEM 0x04
22 #define FS_FAT_ATTR_VOLUME_ID 0x08
23 #define FS_FAT_ATTR_DIRECTORY 0x10
24 #define FS_FAT_ATTR_ARCHIVE 0x20
26 #define FS_MEDIA_INSERTED 0x01
28 #define FS_MEDIA_PROTECTED 0x02
29 #define FS_MEDIA_INITIALIZED 0x04
30 #define FS_MEDIA_NOCHKMEDIA 0x80
32 #define FS_CONTROL_MEDIA_INIT 0x00
34 #define FS_CONTROL_EMMC_SLEEP 0x01
35 #define FS_CONTROL_EMMC_AWAKE 0x02
37 #define FS_DEVICE_SET_PASSWORD 0x01
39 #define FS_DEVICE_CLR_PASSWORD 0x02
40 #define FS_DEVICE_LOCK_UNLOCK 0x04
41 #define FS_DEVICE_ERASE 0x08
68 typedef enum _fsType {
78 typedef enum _fsDevCtrlCode {
88 typedef struct _fsMediaInfo {
95 typedef struct _fsIOC_Cache {
101 typedef struct _fsCID_Register {
110 #if defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
111 #pragma clang diagnostic push
112 #pragma clang diagnostic ignored "-Wpadded"
123 typedef struct _fsTime {
133 typedef struct _fsFileInfo {
142 typedef struct _fsDriveInfo {
147 #if defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
148 #pragma clang diagnostic pop
198 #ifdef MW_FILESYSTEM_FDELETE_LEGACY
244 extern fsStatus fpwd (
const char *drive,
char *buf, uint32_t len);
275 extern int64_t
ffree (
const char *drive);
289 extern int32_t
fanalyse (
const char *drive);
343 extern fsStatus fvol (
const char *drive,
char *label, uint32_t *serial);
fsStatus fdefrag(const char *drive)
Defragment Embedded Flash drive.
fsStatus fpwd(const char *drive, char *buf, uint32_t len)
Print working directory.
fsStatus fmkdir(const char *path)
Create a directory.
fsStatus fs_ioc_write_sector(int32_t drv_id, uint32_t sect, const uint8_t *buf, uint32_t cnt)
Write sector to media.
File system type is unknown.
Definition: rl_fs.h:70
uint32_t size
Cache Buffer size in bytes.
Definition: rl_fs.h:97
Media error.
Definition: rl_fs.h:58
The directory is not empty.
Definition: rl_fs.h:63
uint16_t year
Year [1980..2107].
Definition: rl_fs.h:129
fsStatus fmedia(const char *drive)
Check if media present on removable drive.
File system type is EFS.
Definition: rl_fs.h:74
uint8_t attrib
Attributes.
Definition: rl_fs.h:137
No file system (volume unformatted)
Definition: rl_fs.h:69
Too many open files.
Definition: rl_fs.h:64
File system type is FAT16.
Definition: rl_fs.h:72
uint16_t fileID
System Identification.
Definition: rl_fs.h:136
uint8_t flags
Operation definition bitmask.
Definition: rl_fs.h:119
Read/write error.
Definition: rl_fs.h:57
fsStatus fs_ioc_read_info(int32_t drv_id, fsMediaInfo *info)
Read media configuration info.
fsStatus fs_get_time(fsTime *time)
Callback function used to provide the current date and time to the File System.
File system type is FAT12.
Definition: rl_fs.h:71
int32_t fanalyse(const char *drive)
Analyse volume and check for file fragmentation.
uint64_t capacity
Drives capacity in bytes.
Definition: rl_fs.h:144
fsStatus finit(const char *drive)
Initialize File System and drive related driver.
fsStatus
File System return codes.
Definition: rl_fs.h:48
fsStatus fs_ioc_read_sector(int32_t drv_id, uint32_t sect, uint8_t *buf, uint32_t cnt)
Read sector from media.
fsStatus fs_ioc_device_ctrl(int32_t drv_id, fsDevCtrlCode code, void *p)
IOC device control access; control code is sent directly to device driver.
fsStatus finfo(const char *drive, fsDriveInfo *info)
Read drive information.
Control Media Device.
Definition: rl_fs.h:80
Unspecified error.
Definition: rl_fs.h:50
Check Media Status.
Definition: rl_fs.h:79
fsStatus funinit(const char *drive)
Uninitialize File System.
uint32_t PSN
Product serial number.
Definition: rl_fs.h:102
uint8_t mon
Month [1..12].
Definition: rl_fs.h:128
Invalid parameter specified.
Definition: rl_fs.h:53
uint8_t MID
Manufacturer ID.
Definition: rl_fs.h:104
int32_t fs_ioc_get_id(const char *drive)
Check if valid drive is specified and return its ID.
fsStatus fchdrive(const char *drive)
Change current drive.
Operation succeeded.
Definition: rl_fs.h:49
Drive information.
Definition: rl_fs.h:142
uint8_t day
Day [1..31].
Definition: rl_fs.h:127
Drive is uninitialized.
Definition: rl_fs.h:56
uint16_t MDT
Manufacturing date.
Definition: rl_fs.h:106
Manage device password protection.
Definition: rl_fs.h:84
File System Time structure.
Definition: rl_fs.h:123
File system type is FAT32.
Definition: rl_fs.h:73
fsStatus fs_ioc_lock(int32_t drv_id)
Lock drive and block media access to the upper layer.
Format Media at low level.
Definition: rl_fs.h:81
uint8_t hr
Hours [0..23].
Definition: rl_fs.h:124
fsType
File System Type.
Definition: rl_fs.h:68
Invalid path specified.
Definition: rl_fs.h:55
fsStatus frmdir(const char *path, const char *options)
Remove a directory.
uint8_t * buffer
Cache Buffer (4 byte aligned)
Definition: rl_fs.h:96
File information data.
Definition: rl_fs.h:133
fsStatus fvol(const char *drive, char *label, uint32_t *serial)
Read volume label and serial number.
fsStatus ffind(const char *pattern, fsFileInfo *info)
Find a file or directory matching search pattern.
Return device serial number.
Definition: rl_fs.h:82
uint8_t min
Minutes [0..59].
Definition: rl_fs.h:125
uint8_t length
Password length in bytes.
Definition: rl_fs.h:118
fsStatus fformat(const char *drive, const char *options)
Format drive.
fsStatus fs_ioc_get_cache(int32_t drv_id, fsIOC_Cache *cache_info)
Return IOC cache buffer information.
Media lock/unlock information structure.
Definition: rl_fs.h:116
int64_t ffree(const char *drive)
Find free space on drive.
Nonexistent drive.
Definition: rl_fs.h:54
fsStatus fs_ioc_unlock(int32_t drv_id)
Unlock drive and allow media access to the upper layer.
fsStatus fchdir(const char *path)
Change working directory.
No free space available.
Definition: rl_fs.h:61
No media, or not initialized.
Definition: rl_fs.h:59
fsStatus fcheck(const char *drive)
Analyse volume and check for allocation errors.
Memory card CID register.
Definition: rl_fs.h:101
fsStatus fattrib(const char *path, const char *attr)
Change file attributes.
uint16_t OID
OEM/Application ID.
Definition: rl_fs.h:103
fsStatus fdelete(const char *path, const char *options)
Delete one or multiple files.
Read Memory Card CID Register.
Definition: rl_fs.h:83
uint8_t sec
Seconds [0..59].
Definition: rl_fs.h:126
uint8_t PRV
Product revision.
Definition: rl_fs.h:105
uint8_t const * password
Password data buffer.
Definition: rl_fs.h:117
fsTime time
Create/Modify Time.
Definition: rl_fs.h:138
fsStatus funmount(const char *drive)
Unmount drive.
Operation not supported.
Definition: rl_fs.h:51
IO Control Cache information.
Definition: rl_fs.h:95
fsStatus fmount(const char *drive)
Mount drive.
Resource access denied.
Definition: rl_fs.h:52
fsDevCtrlCode
Driver DeviceCtrl parameter code.
Definition: rl_fs.h:78
fsType fs_type
Drives file system type.
Definition: rl_fs.h:143
File system is not formatted.
Definition: rl_fs.h:60
Requested file not found.
Definition: rl_fs.h:62
uint32_t size
File size in bytes.
Definition: rl_fs.h:135
fsStatus frename(const char *path, const char *newname)
Rename a file or directory with given path name to a new name.