41 #ifndef _API_FAT_SL_H_
42 #define _API_FAT_SL_H_
47 #if VER_FAT_SL_MAJOR != 5 || VER_FAT_SL_MINOR != 2
48 #error Incompatible FAT_SL version number!
90 #define F_ATTR_ARC 0x20
91 #define F_ATTR_DIR 0x10
92 #define F_ATTR_VOLUME 0x08
93 #define F_ATTR_SYSTEM 0x04
94 #define F_ATTR_HIDDEN 0x02
95 #define F_ATTR_READONLY 0x01
97 #define F_CLUSTER_FREE ( (unsigned long)0x00000000 )
98 #define F_CLUSTER_RESERVED ( (unsigned long)0x0ffffff0 )
99 #define F_CLUSTER_BAD ( (unsigned long)0x0ffffff7 )
100 #define F_CLUSTER_LAST ( (unsigned long)0x0ffffff8 )
101 #define F_CLUSTER_LASTF32R ( (unsigned long)0x0fffffff )
103 #define F_ST_MISSING 0x00000001
104 #define F_ST_CHANGED 0x00000002
105 #define F_ST_WRPROTECT 0x00000004
118 #if F_FILE_CHANGED_EVENT
192 #if F_FS_THREAD_AWARE == 1
224 #if F_FILE_CHANGED_EVENT
228 unsigned char action;
231 unsigned short ctime;
232 unsigned short cdate;
233 unsigned long filesize;
237 typedef void ( *F_FILE_CHANGED_EVENTFUNC )( ST_FILE_CHANGED * fc );
239 extern F_FILE_CHANGED_EVENTFUNC f_filechangedevent;
241 #define f_setfilechangedevent( filechangeevent ) f_filechangedevent = filechangeevent
245 #define FFLAGS_NONE 0x00000000
247 #define FFLAGS_FILE_NAME 0x00000001
248 #define FFLAGS_DIR_NAME 0x00000002
249 #define FFLAGS_NAME 0x00000003
250 #define FFLAGS_ATTRIBUTES 0x00000004
251 #define FFLAGS_SIZE 0x00000008
252 #define FFLAGS_LAST_WRITE 0x00000010
256 #define FACTION_ADDED 0x00000001
257 #define FACTION_REMOVED 0x00000002
258 #define FACTION_MODIFIED 0x00000003
259 #define FACTION_RENAMED_OLD_NAME 0x00000004
260 #define FACTION_RENAMED_NEW_NAME 0x00000005
264 unsigned char fs_init (
void );
267 #define f_initvolume fn_initvolume
268 #define f_delvolume fn_delvolume
275 unsigned char fn_chdir (
const char * dirname );
276 unsigned char fn_mkdir (
const char * dirname );
277 unsigned char fn_rmdir (
const char * dirname );
285 F_FILE *
fn_open (
const char * filename,
const char * mode );
287 long fn_read (
void * buf,
long size,
long _size_t,
F_FILE * filehandle );
289 long fn_write (
const void * buf,
long size,
long _size_t,
F_FILE * filehandle );
291 unsigned char fn_seek (
F_FILE * filehandle,
long offset,
unsigned char whence );
299 unsigned char fn_delete (
const char * filename );
305 unsigned char fn_getcwd (
char * buffer,
unsigned char maxlen,
char root );
312 #if F_FS_THREAD_AWARE == 1
317 unsigned char fr_hardformat (
unsigned char fattype );
318 #define f_hardformat( fattype ) fr_hardformat( fattype )
319 #define f_format( fattype ) fr_hardformat( fattype )
321 unsigned char fr_getcwd (
char * buffer,
unsigned char maxlen,
char root );
322 #define f_getcwd( buffer, maxlen ) fr_getcwd( buffer, maxlen, 1 )
324 unsigned char fr_getfreespace (
F_SPACE * pspace );
325 #define f_getfreespace fr_getfreespace
328 unsigned char fr_chdir (
const char * dirname );
329 #define f_chdir( dirname ) fr_chdir( dirname )
330 unsigned char fr_mkdir (
const char * dirname );
331 #define f_mkdir( dirname ) fr_mkdir( dirname )
332 unsigned char fr_rmdir (
const char * dirname );
333 #define f_rmdir( dirname ) fr_rmdir( dirname )
335 unsigned char fr_findfirst (
const char * filename,
F_FIND * find );
336 unsigned char fr_findnext (
F_FIND * find );
337 #define f_findfirst( filename, find ) fr_findfirst( filename, find )
338 #define f_findnext( find ) fr_findnext( find )
340 long fr_filelength (
const char * filename );
341 #define f_filelength( filename ) fr_filelength( filename )
343 unsigned char fr_close (
F_FILE * filehandle );
344 F_FILE * fr_open (
const char * filename,
const char * mode );
346 long fr_read (
void * buf,
long size,
long _size_t,
F_FILE * filehandle );
348 unsigned char fr_getserial (
unsigned long * );
349 #define f_getserial( serial ) fr_getserial( serial )
351 unsigned char fr_flush (
F_FILE * f );
352 #define f_flush( filehandle ) fr_flush( filehandle )
354 long fr_write (
const void * buf,
long size,
long _size_t,
F_FILE * filehandle );
355 #define f_write( buf, size, _size_t, filehandle ) fr_write( buf, size, _size_t, filehandle )
357 unsigned char fr_seek (
F_FILE * filehandle,
long offset,
unsigned char whence );
358 #define f_seek( filehandle, offset, whence ) fr_seek( filehandle, offset, whence )
360 long fr_tell (
F_FILE * filehandle );
361 #define f_tell( filehandle ) fr_tell( filehandle )
362 int fr_getc (
F_FILE * filehandle );
363 #define f_getc( filehandle ) fr_getc( filehandle )
364 int fr_putc (
int ch,
F_FILE * filehandle );
365 #define f_putc( ch, filehandle ) fr_putc( ch, filehandle )
366 unsigned char fr_rewind (
F_FILE * filehandle );
367 #define f_rewind( filehandle ) fr_rewind( filehandle )
368 unsigned char fr_eof (
F_FILE * filehandle );
369 #define f_eof( filehandle ) fr_eof( filehandle )
371 unsigned char fr_delete (
const char * filename );
372 #define f_delete( filename ) fr_delete( filename )
374 unsigned char fr_seteof (
F_FILE * );
375 #define f_seteof( file ) fr_seteof( file )
377 F_FILE * fr_truncate (
const char *,
long );
378 #define f_truncate( filename, filesize ) fr_truncate( filename, filesize )
380 #define f_close( filehandle ) fr_close( filehandle )
381 #define f_open( filename, mode ) fr_open( filename, mode )
382 #define f_read( buf, size, _size_t, filehandle ) fr_read( buf, size, _size_t, filehandle )
386 #define f_hardformat( fattype ) fn_hardformat( fattype )
387 #define f_format( fattype ) fn_hardformat( fattype )
389 #define f_getcwd( buffer, maxlen ) fn_getcwd( buffer, maxlen, 1 )
392 #define f_getfreespace fn_getfreespace
395 unsigned char fn_chdir (
const char * dirname );
396 #define f_chdir( dirname ) fn_chdir( dirname )
397 unsigned char fn_mkdir (
const char * dirname );
398 #define f_mkdir( dirname ) fn_mkdir( dirname )
399 unsigned char fn_rmdir (
const char * dirname );
400 #define f_rmdir( dirname ) fn_rmdir( dirname )
404 #define f_findfirst( filename, find ) fn_findfirst( filename, find )
405 #define f_findnext( find ) fn_findnext( find )
407 #define f_filelength( filename ) fn_filelength( filename )
409 #define f_getserial( serial ) fn_getserial( serial )
412 #define f_flush( filehandle ) fn_flush( filehandle )
414 #define f_write( buf, size, _size_t, filehandle ) fn_write( buf, size, _size_t, filehandle )
416 #define f_seek( filehandle, offset, whence ) fn_seek( filehandle, offset, whence )
419 #define f_tell( filehandle ) fn_tell( filehandle )
421 #define f_getc( filehandle ) fn_getc( filehandle )
423 #define f_putc( ch, filehandle ) fn_putc( ch, filehandle )
425 #define f_rewind( filehandle ) fn_rewind( filehandle )
427 #define f_eof( filehandle ) fn_eof( filehandle )
429 unsigned char fn_delete (
const char * filename );
430 #define f_delete( filename ) fn_delete( filename )
433 #define f_seteof( file ) fn_seteof( file )
436 #define f_truncate( filename, filesize ) fn_truncate( filename, filesize )
438 #define f_close( filehandle ) fn_close( filehandle )
439 #define f_open( filename, mode ) fn_open( filename, mode )
440 #define f_read( buf, size, _size_t, filehandle ) fn_read( buf, size, _size_t, filehandle )
long fn_read(void *buf, long size, long _size_t, F_FILE *filehandle)
unsigned char fn_chdir(const char *dirname)
long fn_tell(F_FILE *filehandle)
unsigned char fn_getcwd(char *buffer, unsigned char maxlen, char root)
unsigned char fn_hardformat(unsigned char fattype)
unsigned char fn_mkdir(const char *dirname)
unsigned char fs_init(void)
unsigned char fn_eof(F_FILE *filehandle)
unsigned char fn_seek(F_FILE *filehandle, long offset, unsigned char whence)
unsigned char fn_findnext(F_FIND *find)
unsigned char fn_close(F_FILE *filehandle)
F_FILE * fn_open(const char *filename, const char *mode)
unsigned long startcluster
unsigned char fn_findfirst(const char *filename, F_FIND *find)
unsigned char fn_delete(const char *filename)
unsigned char fn_initvolume(F_DRIVERINIT initfunc)
int fn_putc(int ch, F_FILE *filehandle)
int fn_getc(F_FILE *filehandle)
unsigned char fn_rmdir(const char *dirname)
F_DRIVER *(* F_DRIVERINIT)(unsigned long driver_param)
unsigned char fn_delvolume(void)
unsigned char fn_flush(F_FILE *f)
long fn_filelength(const char *filename)
unsigned char fn_seteof(F_FILE *)
F_FILE * fn_truncate(const char *, long)
long fn_write(const void *buf, long size, long _size_t, F_FILE *filehandle)
unsigned char fs_delete(void)
unsigned char fn_rewind(F_FILE *filehandle)
unsigned char fn_getfreespace(F_SPACE *pspace)
unsigned char fn_getserial(unsigned long *)