Arduino FatFS
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
fatfs::FatFs Class Reference
Main » ff

API for FatFS See http://elm-chan.org/fsw/ff/00index_e.html. More...

#include <ff.h>

Collaboration diagram for fatfs::FatFs:
Collaboration graph
[legend]

Public Member Functions

 FatFs (IO &io)
 Constructor which is providing the io driver.
 
void setDriver (IO &io)
 
IOgetDriver ()
 
FRESULT f_open (FIL *fp, const TCHAR *path, BYTE mode)
 
FRESULT f_close (FIL *fp)
 
FRESULT f_read (FIL *fp, void *buff, UINT btr, UINT *br)
 
FRESULT f_write (FIL *fp, const void *buff, UINT btw, UINT *bw)
 
FRESULT f_lseek (FIL *fp, FSIZE_t ofs)
 
FRESULT f_truncate (FIL *fp)
 
FRESULT f_sync (FIL *fp)
 
FRESULT f_opendir (DIR *dp, const TCHAR *path)
 
FRESULT f_closedir (DIR *dp)
 
FRESULT f_readdir (DIR *dp, FILINFO *fno)
 
FRESULT f_findfirst (DIR *dp, FILINFO *fno, const TCHAR *path, const TCHAR *pattern)
 
FRESULT f_findnext (DIR *dp, FILINFO *fno)
 
FRESULT f_mkdir (const TCHAR *path)
 
FRESULT f_unlink (const TCHAR *path)
 
FRESULT f_rename (const TCHAR *path_old, const TCHAR *path_new)
 
FRESULT f_stat (const TCHAR *path, FILINFO *fno)
 
FRESULT f_chmod (const TCHAR *path, BYTE attr, BYTE mask)
 
FRESULT f_utime (const TCHAR *path, const FILINFO *fno)
 
FRESULT f_chdir (const TCHAR *path)
 
FRESULT f_chdrive (const TCHAR *path)
 
FRESULT f_getcwd (TCHAR *buff, UINT len)
 
FRESULT f_getfree (const TCHAR *path, DWORD *nclst, FATFS **fatfs)
 
FRESULT f_getlabel (const TCHAR *path, TCHAR *label, DWORD *vsn)
 
FRESULT f_setlabel (const TCHAR *label)
 
FRESULT f_forward (FIL *fp, UINT(*func)(const BYTE *, UINT), UINT btf, UINT *bf)
 
FRESULT f_expand (FIL *fp, FSIZE_t fsz, BYTE opt)
 
FRESULT f_mount (FATFS *fs, const TCHAR *path, BYTE opt)
 
FRESULT f_mkfs (const TCHAR *path, const MKFS_PARM *opt, void *work, UINT len)
 
FRESULT f_fdisk (BYTE pdrv, const LBA_t ptbl[], void *work)
 
FRESULT f_setcp (WORD cp)
 
int f_putc (TCHAR c, FIL *fp)
 
int f_puts (const TCHAR *str, FIL *cp)
 
int f_printf (FIL *fp, const TCHAR *str,...)
 
TCHAR * f_gets (TCHAR *buff, int len, FIL *fp)
 
bool f_eof (FIL *fp)
 
BYTE f_error (FIL *fp)
 
FSIZE_t f_tell (FIL *fp)
 
FSIZE_t f_size (FIL *fp)
 
FRESULT f_rewind (FIL *fp)
 
FRESULT f_rewinddir (DIR *dp)
 
FRESULT f_rmdir (const TCHAR *path)
 
FRESULT f_unmount (const TCHAR *path)
 

Protected Member Functions

void flush (putbuff *pb)
 
void putc_bfd (putbuff *pb, TCHAR c)
 
int putc_flush (putbuff *pb)
 
FRESULT validate (FFOBJID *obj, FATFS **rfs)
 
FRESULT sync_window (FATFS *fs)
 
FRESULT move_window (FATFS *fs, LBA_t sect)
 
FRESULT sync_fs (FATFS *fs)
 
DWORD get_fat (FFOBJID *obj, DWORD clst)
 
FRESULT put_fat (FATFS *fs, DWORD clst, DWORD val)
 
DWORD find_bitmap (FATFS *fs, DWORD clst, DWORD ncl)
 
FRESULT remove_chain (FFOBJID *obj, DWORD clst, DWORD pclst)
 
DWORD create_chain (FFOBJID *obj, DWORD clst)
 
FRESULT dir_clear (FATFS *fs, DWORD clst)
 
FRESULT dir_sdi (DIR *dp, DWORD ofs)
 
FRESULT dir_next (DIR *dp, int stretch)
 
FRESULT dir_alloc (DIR *dp, UINT nent)
 
FRESULT dir_read (DIR *dp, int vol)
 
FRESULT dir_find (DIR *dp)
 
FRESULT dir_register (DIR *dp)
 
FRESULT dir_remove (DIR *dp)
 
FRESULT follow_path (DIR *dp, const TCHAR *path)
 
UINT check_fs (FATFS *fs, LBA_t sect)
 
UINT find_volume (FATFS *fs, UINT part)
 
FRESULT mount_volume (const TCHAR **path, FATFS **rfs, BYTE mode)
 
int cmp_lfn (const WCHAR *lfnbuf, BYTE *dir)
 
int pick_lfn (WCHAR *lfnbuf, BYTE *dir)
 
void put_lfn (const WCHAR *lfn, BYTE *dir, BYTE ord, BYTE sum)
 
FRESULT create_partition (BYTE drv, const LBA_t plst[], UINT sys, BYTE *buf)
 
FRESULT change_bitmap (FATFS *fs, DWORD clst, DWORD ncl, int bv)
 
FRESULT fill_first_frag (FFOBJID *obj)
 
FRESULT fill_last_frag (FFOBJID *obj, DWORD lcl, DWORD term)
 
FRESULT load_xdir (DIR *dp)
 
FRESULT load_obj_xdir (DIR *dp, const FFOBJID *obj)
 
FRESULT store_xdir (DIR *)
 
FRESULT chk_lock (DIR *dp, int acc)
 
int enq_lock (void)
 
UINT inc_lock (DIR *dp, int acc)
 
FRESULT dec_lock (UINT i)
 
void clear_lock (FATFS *fs)
 

Protected Attributes

IOp_io = nullptr
 
FATFSFatFsDir [FF_VOLUMES]
 
WORD Fsid
 
const BYTE LfnOfs [13]
 
WCHAR LfnBuf [FF_MAX_LFN+1]
 

Detailed Description

API for FatFS See http://elm-chan.org/fsw/ff/00index_e.html.

Member Function Documentation

◆ clear_lock()

void fatfs::FatFs::clear_lock ( FATFS fs)
protected

Dynamic memory allocation

◆ f_chdir()

FRESULT fatfs::FatFs::f_chdir ( const TCHAR *  path)

Change current directory

◆ f_chdrive()

FRESULT fatfs::FatFs::f_chdrive ( const TCHAR *  path)

Change current drive

◆ f_chmod()

FRESULT fatfs::FatFs::f_chmod ( const TCHAR *  path,
BYTE  attr,
BYTE  mask 
)

Change attribute of a file/dir

◆ f_close()

FRESULT fatfs::FatFs::f_close ( FIL fp)

Close an open file object

◆ f_closedir()

FRESULT fatfs::FatFs::f_closedir ( DIR dp)

Close an open directory

◆ f_expand()

FRESULT fatfs::FatFs::f_expand ( FIL fp,
FSIZE_t  fsz,
BYTE  opt 
)

Allocate a contiguous block to the file

◆ f_fdisk()

FRESULT fatfs::FatFs::f_fdisk ( BYTE  pdrv,
const LBA_t  ptbl[],
void *  work 
)

Divide a physical drive into some partitions

◆ f_findfirst()

FRESULT fatfs::FatFs::f_findfirst ( DIR dp,
FILINFO fno,
const TCHAR *  path,
const TCHAR *  pattern 
)

Find first file

◆ f_findnext()

FRESULT fatfs::FatFs::f_findnext ( DIR dp,
FILINFO fno 
)

Find next file

◆ f_forward()

FRESULT fatfs::FatFs::f_forward ( FIL fp,
UINT(*)(const BYTE *, UINT)  func,
UINT  btf,
UINT *  bf 
)

Forward data to the stream

◆ f_getcwd()

FRESULT fatfs::FatFs::f_getcwd ( TCHAR *  buff,
UINT  len 
)

Get current directory

◆ f_getfree()

FRESULT fatfs::FatFs::f_getfree ( const TCHAR *  path,
DWORD *  nclst,
FATFS **  fatfs 
)

Get number of free clusters on the drive

◆ f_getlabel()

FRESULT fatfs::FatFs::f_getlabel ( const TCHAR *  path,
TCHAR *  label,
DWORD *  vsn 
)

Get volume label

◆ f_gets()

TCHAR * fatfs::FatFs::f_gets ( TCHAR *  buff,
int  len,
FIL fp 
)

Get a string from the file

◆ f_lseek()

FRESULT fatfs::FatFs::f_lseek ( FIL fp,
FSIZE_t  ofs 
)

Move file pointer of the file object

◆ f_mkdir()

FRESULT fatfs::FatFs::f_mkdir ( const TCHAR *  path)

Create a sub directory

◆ f_mkfs()

FRESULT fatfs::FatFs::f_mkfs ( const TCHAR *  path,
const MKFS_PARM opt,
void *  work,
UINT  len 
)

Create a FAT volume

◆ f_mount()

FRESULT fatfs::FatFs::f_mount ( FATFS fs,
const TCHAR *  path,
BYTE  opt 
)

Mount/Unmount a logical drive

◆ f_open()

FRESULT fatfs::FatFs::f_open ( FIL fp,
const TCHAR *  path,
BYTE  mode 
)

Open or create a file

◆ f_opendir()

FRESULT fatfs::FatFs::f_opendir ( DIR dp,
const TCHAR *  path 
)

Open a directory

◆ f_printf()

int fatfs::FatFs::f_printf ( FIL fp,
const TCHAR *  str,
  ... 
)

Put a formatted string to the file

◆ f_putc()

int fatfs::FatFs::f_putc ( TCHAR  c,
FIL fp 
)

Put a character to the file

◆ f_puts()

int fatfs::FatFs::f_puts ( const TCHAR *  str,
FIL cp 
)

Put a string to the file

◆ f_read()

FRESULT fatfs::FatFs::f_read ( FIL fp,
void *  buff,
UINT  btr,
UINT *  br 
)

Read data from the file

◆ f_readdir()

FRESULT fatfs::FatFs::f_readdir ( DIR dp,
FILINFO fno 
)

Read a directory item

◆ f_rename()

FRESULT fatfs::FatFs::f_rename ( const TCHAR *  path_old,
const TCHAR *  path_new 
)

Rename/Move a file or directory

◆ f_setcp()

FRESULT fatfs::FatFs::f_setcp ( WORD  cp)

Set current code page

◆ f_setlabel()

FRESULT fatfs::FatFs::f_setlabel ( const TCHAR *  label)

Set volume label

◆ f_stat()

FRESULT fatfs::FatFs::f_stat ( const TCHAR *  path,
FILINFO fno 
)

Get file status

◆ f_sync()

FRESULT fatfs::FatFs::f_sync ( FIL fp)

Flush cached data of the writing file

◆ f_truncate()

FRESULT fatfs::FatFs::f_truncate ( FIL fp)

Truncate the file

◆ f_unlink()

FRESULT fatfs::FatFs::f_unlink ( const TCHAR *  path)

Delete an existing file or directory

◆ f_utime()

FRESULT fatfs::FatFs::f_utime ( const TCHAR *  path,
const FILINFO fno 
)

Change timestamp of a file/dir

◆ f_write()

FRESULT fatfs::FatFs::f_write ( FIL fp,
const void *  buff,
UINT  btw,
UINT *  bw 
)

Write data to the file

◆ getDriver()

IO* fatfs::FatFs::getDriver ( )
inline

FatFs module application interface

Member Data Documentation

◆ FatFsDir

FATFS* fatfs::FatFs::FatFsDir[FF_VOLUMES]
protected

Pointer to the filesystem objects (logical drives)

◆ Fsid

WORD fatfs::FatFs::Fsid
protected

Filesystem mount ID

◆ LfnBuf

WCHAR fatfs::FatFs::LfnBuf[FF_MAX_LFN+1]
protected

LFN working buffer

◆ LfnOfs

const BYTE fatfs::FatFs::LfnOfs[13]
protected
Initial value:
= {
1, 3, 5, 7, 9, 14, 16,
18, 20, 22, 24, 28, 30}

< Non-LFN configuration

< LFN configurations FAT: Offset of LFN characters in the directory entry

◆ p_io

IO* fatfs::FatFs::p_io = nullptr
protected

< Sync functions


The documentation for this class was generated from the following files: