28 #error Wrong configuration file (ffconf.h).
40 extern PARTITION VolToPart[];
41 #define LD2PD(vol) (VolToPart[vol].pd)
42 #define LD2PT(vol) (VolToPart[vol].pt)
45 #define LD2PD(vol) (vol)
56 #error _LFN_UNICODE must be 0 in non-LFN cfg.
61 #define _TEXT(x) L ## x
196 FR_TOO_MANY_OPEN_FILES,
205 FRESULT f_mount (BYTE, FATFS*);
206 FRESULT f_open (FIL*,
const TCHAR*, BYTE);
207 FRESULT f_read (FIL*,
void*, UINT, UINT*);
208 FRESULT f_lseek (FIL*, DWORD);
209 FRESULT f_close (FIL*);
210 FRESULT f_opendir (DIR*,
const TCHAR*);
211 FRESULT f_readdir (DIR*, FILINFO*);
212 FRESULT f_stat (
const TCHAR*, FILINFO*);
213 FRESULT f_write (FIL*,
const void*, UINT, UINT*);
214 FRESULT f_getfree (
const TCHAR*, DWORD*, FATFS**);
215 FRESULT f_truncate (FIL*);
216 FRESULT f_sync (FIL*);
217 FRESULT f_unlink (
const TCHAR*);
218 FRESULT f_mkdir (
const TCHAR*);
219 FRESULT f_chmod (
const TCHAR*, BYTE, BYTE);
220 FRESULT f_utime (
const TCHAR*,
const FILINFO*);
221 FRESULT f_rename (
const TCHAR*,
const TCHAR*);
222 FRESULT f_chdrive (BYTE);
223 FRESULT f_chdir (
const TCHAR*);
224 FRESULT f_getcwd (TCHAR*, UINT);
225 FRESULT f_forward (FIL*, UINT(*)(
const BYTE*,UINT), UINT, UINT*);
226 FRESULT f_mkfs (BYTE, BYTE, UINT);
227 FRESULT f_fdisk (BYTE,
const DWORD[],
void*);
228 int f_putc (TCHAR, FIL*);
229 int f_puts (
const TCHAR*, FIL*);
230 int f_printf (FIL*,
const TCHAR*, ...);
231 TCHAR* f_gets (TCHAR*,
int, FIL*);
233 #define f_eof(fp) (((fp)->fptr == (fp)->fsize) ? 1 : 0)
234 #define f_error(fp) (((fp)->flag & FA__ERROR) ? 1 : 0)
235 #define f_tell(fp) ((fp)->fptr)
236 #define f_size(fp) ((fp)->fsize)
250 DWORD get_fattime (
void);
255 WCHAR ff_convert (WCHAR, UINT);
256 WCHAR ff_wtoupper (WCHAR);
258 void* ff_memalloc (UINT);
259 void ff_memfree (
void*);
265 int ff_cre_syncobj (BYTE, _SYNC_t*);
266 int ff_req_grant (_SYNC_t);
267 void ff_rel_grant (_SYNC_t);
268 int ff_del_syncobj (_SYNC_t);
281 #define FA_OPEN_EXISTING 0x00
282 #define FA__ERROR 0x80
285 #define FA_WRITE 0x02
286 #define FA_CREATE_NEW 0x04
287 #define FA_CREATE_ALWAYS 0x08
288 #define FA_OPEN_ALWAYS 0x10
289 #define FA__WRITTEN 0x20
290 #define FA__DIRTY 0x40
314 #define CREATE_LINKMAP 0xFFFFFFFF
321 #if _WORD_ACCESS == 1
322 #define LD_WORD(ptr) (WORD)(*(WORD*)(BYTE*)(ptr))
323 #define LD_DWORD(ptr) (DWORD)(*(DWORD*)(BYTE*)(ptr))
324 #define ST_WORD(ptr,val) *(WORD*)(BYTE*)(ptr)=(WORD)(val)
325 #define ST_DWORD(ptr,val) *(DWORD*)(BYTE*)(ptr)=(DWORD)(val)
327 #define LD_WORD(ptr) (WORD)(((WORD)*((BYTE*)(ptr)+1)<<8)|(WORD)*(BYTE*)(ptr))
328 #define LD_DWORD(ptr) (DWORD)(((DWORD)*((BYTE*)(ptr)+3)<<24)|((DWORD)*((BYTE*)(ptr)+2)<<16)|((WORD)*((BYTE*)(ptr)+1)<<8)|*(BYTE*)(ptr))
329 #define ST_WORD(ptr,val) *(BYTE*)(ptr)=(BYTE)(val); *((BYTE*)(ptr)+1)=(BYTE)((WORD)(val)>>8)
330 #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)