18 #define FS_FAT_ATTR_READ_ONLY 0x01
19 #define FS_FAT_ATTR_HIDDEN 0x02
20 #define FS_FAT_ATTR_SYSTEM 0x04
21 #define FS_FAT_ATTR_VOLUME_ID 0x08
22 #define FS_FAT_ATTR_DIRECTORY 0x10
23 #define FS_FAT_ATTR_ARCHIVE 0x20
25 #define FS_MEDIA_INSERTED 0x01
27 #define FS_MEDIA_PROTECTED 0x02
28 #define FS_MEDIA_INITIALIZED 0x04
29 #define FS_MEDIA_NOCHKMEDIA 0x80
31 #define FS_CONTROL_MEDIA_INIT 0x00
33 #define FS_CONTROL_EMMC_SLEEP 0x01
34 #define FS_CONTROL_EMMC_AWAKE 0x02
36 #define FS_DEVICE_SET_PASSWORD 0x01
38 #define FS_DEVICE_CLR_PASSWORD 0x02
39 #define FS_DEVICE_LOCK_UNLOCK 0x04
40 #define FS_DEVICE_ERASE 0x08
67 typedef enum _fsType {
77 typedef enum _fsDevCtrlCode {
87 typedef struct _fsMediaInfo {
94 typedef struct _fsIOC_Cache {
100 typedef struct _fsCID_Register {
109 #if defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
110 #pragma clang diagnostic push
111 #pragma clang diagnostic ignored "-Wpadded"
122 typedef struct _fsTime {
132 typedef struct _fsFileInfo {
141 typedef struct _fsDriveInfo {
146 #if defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
147 #pragma clang diagnostic pop
199 #ifdef MW_FILESYSTEM_FDELETE_LEGACY
245 extern fsStatus fpwd (
const char *drive,
char *buf, uint32_t len);
276 extern int64_t
ffree (
const char *drive);
290 extern int32_t
fanalyse (
const char *drive);
345 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:69
uint32_t size
Cache Buffer size in bytes.
Definition: rl_fs.h:96
Media error.
Definition: rl_fs.h:57
The directory is not empty.
Definition: rl_fs.h:62
uint16_t year
Year [1980..2107].
Definition: rl_fs.h:128
fsStatus fmedia(const char *drive)
Check if media present on removable drive.
File system type is EFS.
Definition: rl_fs.h:73
uint8_t attrib
Attributes.
Definition: rl_fs.h:136
No file system (volume unformatted)
Definition: rl_fs.h:68
Too many open files.
Definition: rl_fs.h:63
File system type is FAT16.
Definition: rl_fs.h:71
uint16_t fileID
System Identification.
Definition: rl_fs.h:135
uint8_t flags
Operation definition bitmask.
Definition: rl_fs.h:118
Read/write error.
Definition: rl_fs.h:56
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:70
int32_t fanalyse(const char *drive)
Analyse volume and check for file fragmentation.
uint64_t capacity
Drives capacity in bytes.
Definition: rl_fs.h:143
fsStatus finit(const char *drive)
Initialize File System and drive related driver.
fsStatus
File System return codes.
Definition: rl_fs.h:47
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:79
Unspecified error.
Definition: rl_fs.h:49
Check Media Status.
Definition: rl_fs.h:78
fsStatus funinit(const char *drive)
Uninitialize File System.
uint32_t PSN
Product serial number.
Definition: rl_fs.h:101
uint8_t mon
Month [1..12].
Definition: rl_fs.h:127
Invalid parameter specified.
Definition: rl_fs.h:52
uint8_t MID
Manufacturer ID.
Definition: rl_fs.h:103
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:48
Drive information.
Definition: rl_fs.h:141
uint8_t day
Day [1..31].
Definition: rl_fs.h:126
Drive is uninitialized.
Definition: rl_fs.h:55
uint16_t MDT
Manufacturing date.
Definition: rl_fs.h:105
Manage device password protection.
Definition: rl_fs.h:83
File System Time structure.
Definition: rl_fs.h:122
File system type is FAT32.
Definition: rl_fs.h:72
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:80
uint8_t hr
Hours [0..23].
Definition: rl_fs.h:123
fsType
File System Type.
Definition: rl_fs.h:67
Invalid path specified.
Definition: rl_fs.h:54
fsStatus frmdir(const char *path, const char *options)
Remove a directory.
uint8_t * buffer
Cache Buffer (4 byte aligned)
Definition: rl_fs.h:95
File information data.
Definition: rl_fs.h:132
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:81
uint8_t min
Minutes [0..59].
Definition: rl_fs.h:124
uint8_t length
Password length in bytes.
Definition: rl_fs.h:117
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:115
int64_t ffree(const char *drive)
Find free space on drive.
Nonexistent drive.
Definition: rl_fs.h:53
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:60
No media, or not initialized.
Definition: rl_fs.h:58
fsStatus fcheck(const char *drive)
Analyse volume and check for allocation errors.
Memory card CID register.
Definition: rl_fs.h:100
fsStatus fattrib(const char *path, const char *attr)
Change file attributes.
uint16_t OID
OEM/Application ID.
Definition: rl_fs.h:102
fsStatus fdelete(const char *path, const char *options)
Delete one or multiple files.
Read Memory Card CID Register.
Definition: rl_fs.h:82
uint8_t sec
Seconds [0..59].
Definition: rl_fs.h:125
uint8_t PRV
Product revision.
Definition: rl_fs.h:104
uint8_t const * password
Password data buffer.
Definition: rl_fs.h:116
fsTime time
Create/Modify Time.
Definition: rl_fs.h:137
fsStatus funmount(const char *drive)
Unmount drive.
Operation not supported.
Definition: rl_fs.h:50
IO Control Cache information.
Definition: rl_fs.h:94
fsStatus fmount(const char *drive)
Mount drive.
Resource access denied.
Definition: rl_fs.h:51
fsDevCtrlCode
Driver DeviceCtrl parameter code.
Definition: rl_fs.h:77
fsType fs_type
Drives file system type.
Definition: rl_fs.h:142
File system is not formatted.
Definition: rl_fs.h:59
Requested file not found.
Definition: rl_fs.h:61
uint32_t size
File size in bytes.
Definition: rl_fs.h:134
fsStatus frename(const char *path, const char *newname)
Rename a file or directory with given path name to a new name.