29#error Wrong configuration file (ffconf.h).
42#define LD2PD(vol) (VolToPart[vol].pd)
43#define LD2PT(vol) (VolToPart[vol].pt)
46#define LD2PD(vol) (BYTE)(vol)
57#error _LFN_UNICODE must be 0 at non-LFN cfg.
62#define _TEXT(x) L ## x
245#define f_eof(fp) ((int)((fp)->fptr == (fp)->fsize))
246#define f_error(fp) ((fp)->err)
247#define f_tell(fp) ((fp)->fptr)
248#define f_size(fp) ((fp)->fsize)
249#define f_rewind(fp) f_lseek((fp), 0)
250#define f_rewinddir(dp) f_readdir((dp), 0)
263#if !_FS_READONLY && !_FS_NORTC
272void* ff_memalloc (
UINT msize);
273void ff_memfree (
void* mblock);
280int ff_req_grant (
_SYNC_t sobj);
281void ff_rel_grant (
_SYNC_t sobj);
282int ff_del_syncobj (
_SYNC_t sobj);
295#define FA_OPEN_EXISTING 0x00
299#define FA_CREATE_NEW 0x04
300#define FA_CREATE_ALWAYS 0x08
301#define FA_OPEN_ALWAYS 0x10
302#define FA__WRITTEN 0x20
303#define FA__DIRTY 0x40
327#define CREATE_LINKMAP 0xFFFFFFFF
335#define LD_WORD(ptr) (WORD)(*(WORD*)(BYTE*)(ptr))
336#define LD_DWORD(ptr) (DWORD)(*(DWORD*)(BYTE*)(ptr))
337#define ST_WORD(ptr,val) *(WORD*)(BYTE*)(ptr)=(WORD)(val)
338#define ST_DWORD(ptr,val) *(DWORD*)(BYTE*)(ptr)=(DWORD)(val)
340#define LD_WORD(ptr) (WORD)(((WORD)*((BYTE*)(ptr)+1)<<8)|(WORD)*(BYTE*)(ptr))
341#define LD_DWORD(ptr) (DWORD)(((DWORD)*((BYTE*)(ptr)+3)<<24)|((DWORD)*((BYTE*)(ptr)+2)<<16)|((WORD)*((BYTE*)(ptr)+1)<<8)|*(BYTE*)(ptr))
342#define ST_WORD(ptr,val) *(BYTE*)(ptr)=(BYTE)(val); *((BYTE*)(ptr)+1)=(BYTE)((WORD)(val)>>8)
343#define ST_DWORD(ptr,val) *(BYTE*)(ptr)=(BYTE)(val); *((BYTE*)(ptr)+1)=(BYTE)((WORD)(val)>>8); *((BYTE*)(ptr)+2)=(BYTE)((DWORD)(val)>>16); *((BYTE*)(ptr)+3)=(BYTE)((DWORD)(val)>>24)
static unsigned char buff[32768]
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)
TCHAR * f_gets(TCHAR *buff, int len, FIL *fp)
FRESULT f_mkdir(const TCHAR *path)
int f_printf(FIL *fp, const TCHAR *str,...)
FRESULT f_chdir(const TCHAR *path)
FRESULT f_lseek(FIL *fp, DWORD ofs)
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_mkfs(const TCHAR *path, BYTE sfd, UINT au)
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)
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)
FRESULT f_getcwd(TCHAR *buff, UINT len)
int f_putc(TCHAR c, FIL *fp)
WCHAR ff_convert(WCHAR chr, UINT dir)
FRESULT f_write(FIL *fp, const void *buff, UINT btw, UINT *bw)
FRESULT f_fdisk(BYTE pdrv, const DWORD szt[], void *work)
FRESULT f_open(FIL *fp, const TCHAR *path, BYTE mode)
WCHAR ff_wtoupper(WCHAR chr)
GLenum GLuint GLenum GLsizei const GLchar * buf
struct _PARTITION PARTITION
static const WCHAR label[]