23#define FF_DEFINED 86631
31#if FF_DEFINED != FFCONF_DEF
32#error Wrong configuration file (ffconf.h).
41typedef unsigned __int64 QWORD;
43#define isnan(v) _isnan(v)
44#define isinf(v) (!_finite(v))
46#elif (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__cplusplus)
49typedef unsigned int UINT;
50typedef unsigned char BYTE;
60typedef unsigned short WORD;
70#error exFAT feature wants C99 or later
80#error exFAT needs to be enabled when enable 64-bit LBA
90#if FF_USE_LFN && FF_LFN_UNICODE == 1
93#define _TEXT(x) L ## x
94#elif FF_USE_LFN && FF_LFN_UNICODE == 2
97#define _TEXT(x) u8 ## x
98#elif FF_USE_LFN && FF_LFN_UNICODE == 3
101#define _TEXT(x) U ## x
102#elif FF_USE_LFN && (FF_LFN_UNICODE < 0 || FF_LFN_UNICODE > 3)
103#error Wrong FF_LFN_UNICODE setting
114#if FF_MULTI_PARTITION
119extern PARTITION VolToPart[];
123#ifndef FF_VOLUME_STRS
141#if FF_MAX_SS != FF_MIN_SS
339#define f_eof(fp) ((int)((fp)->fptr == (fp)->obj.objsize))
340#define f_error(fp) ((fp)->err)
341#define f_tell(fp) ((fp)->fptr)
342#define f_size(fp) ((fp)->obj.objsize)
343#define f_rewind(fp) f_lseek((fp), 0)
344#define f_rewinddir(dp) f_readdir((dp), 0)
345#define f_rmdir(path) f_unlink(path)
346#define f_unmount(path) f_mount(0, path, 0)
355#if !FF_FS_READONLY && !FF_FS_NORTC
356DWORD get_fattime (
void);
388#define FA_OPEN_EXISTING 0x00
389#define FA_CREATE_NEW 0x04
390#define FA_CREATE_ALWAYS 0x08
391#define FA_OPEN_ALWAYS 0x10
392#define FA_OPEN_APPEND 0x30
395#define CREATE_LINKMAP ((FSIZE_t)0 - 1)
unsigned long long uint64_t
FRESULT f_findnext(DIR *dp, FILINFO *fno)
FRESULT f_getfree(const TCHAR *path, DWORD *nclst, FATFS **fatfs)
FRESULT f_chdrive(const TCHAR *path)
FRESULT f_mount(FATFS *fs, const TCHAR *path, BYTE opt)
FRESULT f_unlink(const TCHAR *path)
FRESULT f_expand(FIL *fp, FSIZE_t fsz, BYTE opt)
TCHAR * f_gets(TCHAR *buff, int len, FIL *fp)
FRESULT f_mkdir(const TCHAR *path)
int f_printf(FIL *fp, const TCHAR *str,...)
WCHAR ff_oem2uni(WCHAR oem, WORD cp)
FRESULT f_chdir(const TCHAR *path)
FRESULT f_truncate(FIL *fp)
int f_puts(const TCHAR *str, FIL *cp)
FRESULT f_forward(FIL *fp, UINT(*func)(const BYTE *, UINT), UINT btf, UINT *bf)
FRESULT f_findfirst(DIR *dp, FILINFO *fno, const TCHAR *path, const TCHAR *pattern)
FRESULT f_fdisk(BYTE pdrv, const LBA_t ptbl[], void *work)
WCHAR ff_uni2oem(DWORD uni, WORD cp)
FRESULT f_lseek(FIL *fp, FSIZE_t ofs)
FRESULT f_mkfs(const TCHAR *path, const MKFS_PARM *opt, void *work, UINT len)
FRESULT f_chmod(const TCHAR *path, BYTE attr, BYTE mask)
FRESULT f_rename(const TCHAR *path_old, const TCHAR *path_new)
FRESULT f_setlabel(const TCHAR *label)
FRESULT f_utime(const TCHAR *path, const FILINFO *fno)
FRESULT f_readdir(DIR *dp, FILINFO *fno)
FRESULT f_closedir(DIR *dp)
FRESULT f_opendir(DIR *dp, const TCHAR *path)
void ff_memfree(void *mblock)
FRESULT f_stat(const TCHAR *path, FILINFO *fno)
FRESULT f_read(FIL *fp, void *buff, UINT btr, UINT *br)
FRESULT f_getlabel(const TCHAR *path, TCHAR *label, DWORD *vsn)
DWORD ff_wtoupper(DWORD uni)
FRESULT f_getcwd(TCHAR *buff, UINT len)
int f_putc(TCHAR c, FIL *fp)
void * ff_memalloc(UINT msize)
FRESULT f_write(FIL *fp, const void *buff, UINT btw, UINT *bw)
FRESULT f_open(FIL *fp, const TCHAR *path, BYTE mode)