SyterKit 0.4.0.x
SyterKit is a bare-metal framework
Loading...
Searching...
No Matches
Macros | Functions | Variables
ff.c File Reference
#include <string.h>
#include "ff.h"
#include "diskio.h"
Include dependency graph for ff.c:

Macros

#define MAX_DIR   0x200000 /* Max size of FAT directory */
 
#define MAX_DIR_EX   0x10000000 /* Max size of exFAT directory */
 
#define MAX_FAT12   0xFF5 /* Max FAT12 clusters (differs from specs, but right for real DOS/Windows behavior) */
 
#define MAX_FAT16   0xFFF5 /* Max FAT16 clusters (differs from specs, but right for real DOS/Windows behavior) */
 
#define MAX_FAT32   0x0FFFFFF5 /* Max FAT32 clusters (not specified, practical limit) */
 
#define MAX_EXFAT   0x7FFFFFFD /* Max exFAT clusters (differs from specs, implementation limit) */
 
#define IsUpper(c)   ((c) >= 'A' && (c) <= 'Z')
 
#define IsLower(c)   ((c) >= 'a' && (c) <= 'z')
 
#define IsDigit(c)   ((c) >= '0' && (c) <= '9')
 
#define IsSeparator(c)   ((c) == '/' || (c) == '\\')
 
#define IsTerminator(c)   ((UINT) (c) < (FF_USE_LFN ? ' ' : '!'))
 
#define IsSurrogate(c)   ((c) >= 0xD800 && (c) <= 0xDFFF)
 
#define IsSurrogateH(c)   ((c) >= 0xD800 && (c) <= 0xDBFF)
 
#define IsSurrogateL(c)   ((c) >= 0xDC00 && (c) <= 0xDFFF)
 
#define FA_SEEKEND   0x20 /* Seek to end of the file on file open */
 
#define FA_MODIFIED   0x40 /* File has been modified */
 
#define FA_DIRTY   0x80 /* FIL.buf[] needs to be written-back */
 
#define AM_VOL   0x08 /* Volume label */
 
#define AM_LFN   0x0F /* LFN entry */
 
#define AM_MASK   0x3F /* Mask of defined bits in FAT */
 
#define AM_MASKX   0x37 /* Mask of defined bits in exFAT */
 
#define NSFLAG   11 /* Index of the name status byte */
 
#define NS_LOSS   0x01 /* Out of 8.3 format */
 
#define NS_LFN   0x02 /* Force to create LFN entry */
 
#define NS_LAST   0x04 /* Last segment */
 
#define NS_BODY   0x08 /* Lower case flag (body) */
 
#define NS_EXT   0x10 /* Lower case flag (ext) */
 
#define NS_DOT   0x20 /* Dot entry */
 
#define NS_NOLFN   0x40 /* Do not find LFN */
 
#define NS_NONAME   0x80 /* Not followed */
 
#define ET_BITMAP   0x81 /* Allocation bitmap */
 
#define ET_UPCASE   0x82 /* Up-case table */
 
#define ET_VLABEL   0x83 /* Volume label */
 
#define ET_FILEDIR   0x85 /* File and directory */
 
#define ET_STREAM   0xC0 /* Stream extension */
 
#define ET_FILENAME   0xC1 /* Name extension */
 
#define BS_JmpBoot   0 /* x86 jump instruction (3-byte) */
 
#define BS_OEMName   3 /* OEM name (8-byte) */
 
#define BPB_BytsPerSec   11 /* Sector size [byte] (WORD) */
 
#define BPB_SecPerClus   13 /* Cluster size [sector] (BYTE) */
 
#define BPB_RsvdSecCnt   14 /* Size of reserved area [sector] (WORD) */
 
#define BPB_NumFATs   16 /* Number of FATs (BYTE) */
 
#define BPB_RootEntCnt   17 /* Size of root directory area for FAT [entry] (WORD) */
 
#define BPB_TotSec16   19 /* Volume size (16-bit) [sector] (WORD) */
 
#define BPB_Media   21 /* Media descriptor byte (BYTE) */
 
#define BPB_FATSz16   22 /* FAT size (16-bit) [sector] (WORD) */
 
#define BPB_SecPerTrk   24 /* Number of sectors per track for int13h [sector] (WORD) */
 
#define BPB_NumHeads   26 /* Number of heads for int13h (WORD) */
 
#define BPB_HiddSec   28 /* Volume offset from top of the drive (DWORD) */
 
#define BPB_TotSec32   32 /* Volume size (32-bit) [sector] (DWORD) */
 
#define BS_DrvNum   36 /* Physical drive number for int13h (BYTE) */
 
#define BS_NTres   37 /* WindowsNT error flag (BYTE) */
 
#define BS_BootSig   38 /* Extended boot signature (BYTE) */
 
#define BS_VolID   39 /* Volume serial number (DWORD) */
 
#define BS_VolLab   43 /* Volume label string (8-byte) */
 
#define BS_FilSysType   54 /* Filesystem type string (8-byte) */
 
#define BS_BootCode   62 /* Boot code (448-byte) */
 
#define BS_55AA   510 /* Signature word (WORD) */
 
#define BPB_FATSz32   36 /* FAT32: FAT size [sector] (DWORD) */
 
#define BPB_ExtFlags32   40 /* FAT32: Extended flags (WORD) */
 
#define BPB_FSVer32   42 /* FAT32: Filesystem version (WORD) */
 
#define BPB_RootClus32   44 /* FAT32: Root directory cluster (DWORD) */
 
#define BPB_FSInfo32   48 /* FAT32: Offset of FSINFO sector (WORD) */
 
#define BPB_BkBootSec32   50 /* FAT32: Offset of backup boot sector (WORD) */
 
#define BS_DrvNum32   64 /* FAT32: Physical drive number for int13h (BYTE) */
 
#define BS_NTres32   65 /* FAT32: Error flag (BYTE) */
 
#define BS_BootSig32   66 /* FAT32: Extended boot signature (BYTE) */
 
#define BS_VolID32   67 /* FAT32: Volume serial number (DWORD) */
 
#define BS_VolLab32   71 /* FAT32: Volume label string (8-byte) */
 
#define BS_FilSysType32   82 /* FAT32: Filesystem type string (8-byte) */
 
#define BS_BootCode32   90 /* FAT32: Boot code (420-byte) */
 
#define BPB_ZeroedEx   11 /* exFAT: MBZ field (53-byte) */
 
#define BPB_VolOfsEx   64 /* exFAT: Volume offset from top of the drive [sector] (QWORD) */
 
#define BPB_TotSecEx   72 /* exFAT: Volume size [sector] (QWORD) */
 
#define BPB_FatOfsEx   80 /* exFAT: FAT offset from top of the volume [sector] (DWORD) */
 
#define BPB_FatSzEx   84 /* exFAT: FAT size [sector] (DWORD) */
 
#define BPB_DataOfsEx   88 /* exFAT: Data offset from top of the volume [sector] (DWORD) */
 
#define BPB_NumClusEx   92 /* exFAT: Number of clusters (DWORD) */
 
#define BPB_RootClusEx   96 /* exFAT: Root directory start cluster (DWORD) */
 
#define BPB_VolIDEx   100 /* exFAT: Volume serial number (DWORD) */
 
#define BPB_FSVerEx   104 /* exFAT: Filesystem version (WORD) */
 
#define BPB_VolFlagEx   106 /* exFAT: Volume flags (WORD) */
 
#define BPB_BytsPerSecEx   108 /* exFAT: Log2 of sector size in unit of byte (BYTE) */
 
#define BPB_SecPerClusEx   109 /* exFAT: Log2 of cluster size in unit of sector (BYTE) */
 
#define BPB_NumFATsEx   110 /* exFAT: Number of FATs (BYTE) */
 
#define BPB_DrvNumEx   111 /* exFAT: Physical drive number for int13h (BYTE) */
 
#define BPB_PercInUseEx   112 /* exFAT: Percent in use (BYTE) */
 
#define BPB_RsvdEx   113 /* exFAT: Reserved (7-byte) */
 
#define BS_BootCodeEx   120 /* exFAT: Boot code (390-byte) */
 
#define DIR_Name   0 /* Short file name (11-byte) */
 
#define DIR_Attr   11 /* Attribute (BYTE) */
 
#define DIR_NTres   12 /* Lower case flag (BYTE) */
 
#define DIR_CrtTime10   13 /* Created time sub-second (BYTE) */
 
#define DIR_CrtTime   14 /* Created time (DWORD) */
 
#define DIR_LstAccDate   18 /* Last accessed date (WORD) */
 
#define DIR_FstClusHI   20 /* Higher 16-bit of first cluster (WORD) */
 
#define DIR_ModTime   22 /* Modified time (DWORD) */
 
#define DIR_FstClusLO   26 /* Lower 16-bit of first cluster (WORD) */
 
#define DIR_FileSize   28 /* File size (DWORD) */
 
#define LDIR_Ord   0 /* LFN: LFN order and LLE flag (BYTE) */
 
#define LDIR_Attr   11 /* LFN: LFN attribute (BYTE) */
 
#define LDIR_Type   12 /* LFN: Entry type (BYTE) */
 
#define LDIR_Chksum   13 /* LFN: Checksum of the SFN (BYTE) */
 
#define LDIR_FstClusLO   26 /* LFN: MBZ field (WORD) */
 
#define XDIR_Type   0 /* exFAT: Type of exFAT directory entry (BYTE) */
 
#define XDIR_NumLabel   1 /* exFAT: Number of volume label characters (BYTE) */
 
#define XDIR_Label   2 /* exFAT: Volume label (11-WORD) */
 
#define XDIR_CaseSum   4 /* exFAT: Sum of case conversion table (DWORD) */
 
#define XDIR_NumSec   1 /* exFAT: Number of secondary entries (BYTE) */
 
#define XDIR_SetSum   2 /* exFAT: Sum of the set of directory entries (WORD) */
 
#define XDIR_Attr   4 /* exFAT: File attribute (WORD) */
 
#define XDIR_CrtTime   8 /* exFAT: Created time (DWORD) */
 
#define XDIR_ModTime   12 /* exFAT: Modified time (DWORD) */
 
#define XDIR_AccTime   16 /* exFAT: Last accessed time (DWORD) */
 
#define XDIR_CrtTime10   20 /* exFAT: Created time subsecond (BYTE) */
 
#define XDIR_ModTime10   21 /* exFAT: Modified time subsecond (BYTE) */
 
#define XDIR_CrtTZ   22 /* exFAT: Created timezone (BYTE) */
 
#define XDIR_ModTZ   23 /* exFAT: Modified timezone (BYTE) */
 
#define XDIR_AccTZ   24 /* exFAT: Last accessed timezone (BYTE) */
 
#define XDIR_GenFlags   33 /* exFAT: General secondary flags (BYTE) */
 
#define XDIR_NumName   35 /* exFAT: Number of file name characters (BYTE) */
 
#define XDIR_NameHash   36 /* exFAT: Hash of file name (WORD) */
 
#define XDIR_ValidFileSize   40 /* exFAT: Valid file size (QWORD) */
 
#define XDIR_FstClus   52 /* exFAT: First cluster of the file data (DWORD) */
 
#define XDIR_FileSize   56 /* exFAT: File/Directory size (QWORD) */
 
#define SZDIRE   32 /* Size of a directory entry */
 
#define DDEM   0xE5 /* Deleted directory entry mark set to DIR_Name[0] */
 
#define RDDEM   0x05 /* Replacement of the character collides with DDEM */
 
#define LLEF   0x40 /* Last long entry flag in LDIR_Ord */
 
#define FSI_LeadSig   0 /* FAT32 FSI: Leading signature (DWORD) */
 
#define FSI_StrucSig   484 /* FAT32 FSI: Structure signature (DWORD) */
 
#define FSI_Free_Count   488 /* FAT32 FSI: Number of free clusters (DWORD) */
 
#define FSI_Nxt_Free   492 /* FAT32 FSI: Last allocated cluster (DWORD) */
 
#define MBR_Table   446 /* MBR: Offset of partition table in the MBR */
 
#define SZ_PTE   16 /* MBR: Size of a partition table entry */
 
#define PTE_Boot   0 /* MBR PTE: Boot indicator */
 
#define PTE_StHead   1 /* MBR PTE: Start head */
 
#define PTE_StSec   2 /* MBR PTE: Start sector */
 
#define PTE_StCyl   3 /* MBR PTE: Start cylinder */
 
#define PTE_System   4 /* MBR PTE: System ID */
 
#define PTE_EdHead   5 /* MBR PTE: End head */
 
#define PTE_EdSec   6 /* MBR PTE: End sector */
 
#define PTE_EdCyl   7 /* MBR PTE: End cylinder */
 
#define PTE_StLba   8 /* MBR PTE: Start in LBA */
 
#define PTE_SizLba   12 /* MBR PTE: Size in LBA */
 
#define GPTH_Sign   0 /* GPT HDR: Signature (8-byte) */
 
#define GPTH_Rev   8 /* GPT HDR: Revision (DWORD) */
 
#define GPTH_Size   12 /* GPT HDR: Header size (DWORD) */
 
#define GPTH_Bcc   16 /* GPT HDR: Header BCC (DWORD) */
 
#define GPTH_CurLba   24 /* GPT HDR: This header LBA (QWORD) */
 
#define GPTH_BakLba   32 /* GPT HDR: Another header LBA (QWORD) */
 
#define GPTH_FstLba   40 /* GPT HDR: First LBA for partition data (QWORD) */
 
#define GPTH_LstLba   48 /* GPT HDR: Last LBA for partition data (QWORD) */
 
#define GPTH_DskGuid   56 /* GPT HDR: Disk GUID (16-byte) */
 
#define GPTH_PtOfs   72 /* GPT HDR: Partition table LBA (QWORD) */
 
#define GPTH_PtNum   80 /* GPT HDR: Number of table entries (DWORD) */
 
#define GPTH_PteSize   84 /* GPT HDR: Size of table entry (DWORD) */
 
#define GPTH_PtBcc   88 /* GPT HDR: Partition table BCC (DWORD) */
 
#define SZ_GPTE   128 /* GPT PTE: Size of partition table entry */
 
#define GPTE_PtGuid   0 /* GPT PTE: Partition type GUID (16-byte) */
 
#define GPTE_UpGuid   16 /* GPT PTE: Partition unique GUID (16-byte) */
 
#define GPTE_FstLba   32 /* GPT PTE: First LBA of partition (QWORD) */
 
#define GPTE_LstLba   40 /* GPT PTE: Last LBA of partition (QWORD) */
 
#define GPTE_Flags   48 /* GPT PTE: Partition flags (QWORD) */
 
#define GPTE_Name   56 /* GPT PTE: Partition name */
 
#define ABORT(fs, res)
 
#define LEAVE_FF(fs, res)   return res
 
#define LD2PD(vol)   (BYTE)(vol) /* Each logical drive is associated with the same physical drive number */
 
#define LD2PT(vol)   0 /* Auto partition search */
 
#define SS(fs)   ((UINT) FF_MAX_SS) /* Fixed sector size */
 
#define GET_FATTIME()   get_fattime()
 
#define TBL_CT437
 
#define TBL_CT720
 
#define TBL_CT737
 
#define TBL_CT771
 
#define TBL_CT775
 
#define TBL_CT850
 
#define TBL_CT852
 
#define TBL_CT855
 
#define TBL_CT857
 
#define TBL_CT860
 
#define TBL_CT861
 
#define TBL_CT862
 
#define TBL_CT863
 
#define TBL_CT864
 
#define TBL_CT865
 
#define TBL_CT866
 
#define TBL_CT869
 
#define TBL_DC932    { 0x81, 0x9F, 0xE0, 0xFC, 0x40, 0x7E, 0x80, 0xFC, 0x00, 0x00 }
 
#define TBL_DC936    { 0x81, 0xFE, 0x00, 0x00, 0x40, 0x7E, 0x80, 0xFE, 0x00, 0x00 }
 
#define TBL_DC949    { 0x81, 0xFE, 0x00, 0x00, 0x41, 0x5A, 0x61, 0x7A, 0x81, 0xFE }
 
#define TBL_DC950    { 0x81, 0xFE, 0x00, 0x00, 0x40, 0x7E, 0xA1, 0xFE, 0x00, 0x00 }
 
#define MERGE_2STR(a, b)   a##b
 
#define MKCVTBL(hd, cp)   MERGE_2STR(hd, cp)
 
#define DEF_NAMBUF
 
#define INIT_NAMBUF(fs)
 
#define FREE_NAMBUF()
 
#define LEAVE_MKFS(res)   return res
 
#define CODEPAGE   CodePage
 
#define DIR_READ_FILE(dp)   dir_read(dp, 0)
 
#define DIR_READ_LABEL(dp)   dir_read(dp, 1)
 

Functions

static WORD ld_word (const BYTE *ptr)
 
static DWORD ld_dword (const BYTE *ptr)
 
static void st_word (BYTE *ptr, WORD val)
 
static void st_dword (BYTE *ptr, DWORD val)
 
static int dbc_1st (BYTE c)
 
static int dbc_2nd (BYTE c)
 
static FRESULT sync_window (FATFS *fs)
 
static FRESULT move_window (FATFS *fs, LBA_t sect)
 
static FRESULT sync_fs (FATFS *fs)
 
static LBA_t clst2sect (FATFS *fs, DWORD clst)
 
static DWORD get_fat (FFOBJID *obj, DWORD clst)
 
static FRESULT put_fat (FATFS *fs, DWORD clst, DWORD val)
 
static FRESULT remove_chain (FFOBJID *obj, DWORD clst, DWORD pclst)
 
static DWORD create_chain (FFOBJID *obj, DWORD clst)
 
static FRESULT dir_clear (FATFS *fs, DWORD clst)
 
static FRESULT dir_sdi (DIR *dp, DWORD ofs)
 
static FRESULT dir_next (DIR *dp, int stretch)
 
static FRESULT dir_alloc (DIR *dp, UINT n_ent)
 
static DWORD ld_clust (FATFS *fs, const BYTE *dir)
 
static void st_clust (FATFS *fs, BYTE *dir, DWORD cl)
 
static FRESULT dir_read (DIR *dp, int vol)
 
static FRESULT dir_find (DIR *dp)
 
static FRESULT dir_register (DIR *dp)
 
static FRESULT dir_remove (DIR *dp)
 
static void get_fileinfo (DIR *dp, FILINFO *fno)
 
static FRESULT create_name (DIR *dp, const TCHAR **path)
 
static FRESULT follow_path (DIR *dp, const TCHAR *path)
 
static int get_ldnumber (const TCHAR **path)
 
static UINT check_fs (FATFS *fs, LBA_t sect)
 
static UINT find_volume (FATFS *fs, UINT part)
 
static FRESULT mount_volume (const TCHAR **path, FATFS **rfs, BYTE mode)
 
static FRESULT validate (FFOBJID *obj, FATFS **rfs)
 
FRESULT f_mount (FATFS *fs, const TCHAR *path, BYTE opt)
 
FRESULT f_open (FIL *fp, const TCHAR *path, BYTE mode)
 
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_sync (FIL *fp)
 
FRESULT f_close (FIL *fp)
 
FRESULT f_lseek (FIL *fp, FSIZE_t ofs)
 
FRESULT f_opendir (DIR *dp, const TCHAR *path)
 
FRESULT f_closedir (DIR *dp)
 
FRESULT f_readdir (DIR *dp, FILINFO *fno)
 
FRESULT f_stat (const TCHAR *path, FILINFO *fno)
 
FRESULT f_getfree (const TCHAR *path, DWORD *nclst, FATFS **fatfs)
 
FRESULT f_truncate (FIL *fp)
 
FRESULT f_unlink (const TCHAR *path)
 
FRESULT f_mkdir (const TCHAR *path)
 
FRESULT f_rename (const TCHAR *path_old, const TCHAR *path_new)
 
FRESULT f_setcp (WORD cp)
 

Variables

static FATFSFatFs [FF_VOLUMES]
 
static WORD Fsid
 
static WORD CodePage
 
static const BYTEExCvt
 
static const BYTEDbcTbl
 
static const BYTE Ct437 [] = TBL_CT437
 
static const BYTE Ct720 [] = TBL_CT720
 
static const BYTE Ct737 [] = TBL_CT737
 
static const BYTE Ct771 [] = TBL_CT771
 
static const BYTE Ct775 [] = TBL_CT775
 
static const BYTE Ct850 [] = TBL_CT850
 
static const BYTE Ct852 [] = TBL_CT852
 
static const BYTE Ct855 [] = TBL_CT855
 
static const BYTE Ct857 [] = TBL_CT857
 
static const BYTE Ct860 [] = TBL_CT860
 
static const BYTE Ct861 [] = TBL_CT861
 
static const BYTE Ct862 [] = TBL_CT862
 
static const BYTE Ct863 [] = TBL_CT863
 
static const BYTE Ct864 [] = TBL_CT864
 
static const BYTE Ct865 [] = TBL_CT865
 
static const BYTE Ct866 [] = TBL_CT866
 
static const BYTE Ct869 [] = TBL_CT869
 
static const BYTE Dc932 [] = TBL_DC932
 
static const BYTE Dc936 [] = TBL_DC936
 
static const BYTE Dc949 [] = TBL_DC949
 
static const BYTE Dc950 [] = TBL_DC950
 

Macro Definition Documentation

◆ ABORT

#define ABORT (   fs,
  res 
)
Value:
{ \
fp->err = (BYTE) (res); \
LEAVE_FF(fs, res); \
}
unsigned char BYTE
Definition ff.h:57

◆ AM_LFN

#define AM_LFN   0x0F /* LFN entry */

◆ AM_MASK

#define AM_MASK   0x3F /* Mask of defined bits in FAT */

◆ AM_MASKX

#define AM_MASKX   0x37 /* Mask of defined bits in exFAT */

◆ AM_VOL

#define AM_VOL   0x08 /* Volume label */

◆ BPB_BkBootSec32

#define BPB_BkBootSec32   50 /* FAT32: Offset of backup boot sector (WORD) */

◆ BPB_BytsPerSec

#define BPB_BytsPerSec   11 /* Sector size [byte] (WORD) */

◆ BPB_BytsPerSecEx

#define BPB_BytsPerSecEx   108 /* exFAT: Log2 of sector size in unit of byte (BYTE) */

◆ BPB_DataOfsEx

#define BPB_DataOfsEx   88 /* exFAT: Data offset from top of the volume [sector] (DWORD) */

◆ BPB_DrvNumEx

#define BPB_DrvNumEx   111 /* exFAT: Physical drive number for int13h (BYTE) */

◆ BPB_ExtFlags32

#define BPB_ExtFlags32   40 /* FAT32: Extended flags (WORD) */

◆ BPB_FatOfsEx

#define BPB_FatOfsEx   80 /* exFAT: FAT offset from top of the volume [sector] (DWORD) */

◆ BPB_FATSz16

#define BPB_FATSz16   22 /* FAT size (16-bit) [sector] (WORD) */

◆ BPB_FATSz32

#define BPB_FATSz32   36 /* FAT32: FAT size [sector] (DWORD) */

◆ BPB_FatSzEx

#define BPB_FatSzEx   84 /* exFAT: FAT size [sector] (DWORD) */

◆ BPB_FSInfo32

#define BPB_FSInfo32   48 /* FAT32: Offset of FSINFO sector (WORD) */

◆ BPB_FSVer32

#define BPB_FSVer32   42 /* FAT32: Filesystem version (WORD) */

◆ BPB_FSVerEx

#define BPB_FSVerEx   104 /* exFAT: Filesystem version (WORD) */

◆ BPB_HiddSec

#define BPB_HiddSec   28 /* Volume offset from top of the drive (DWORD) */

◆ BPB_Media

#define BPB_Media   21 /* Media descriptor byte (BYTE) */

◆ BPB_NumClusEx

#define BPB_NumClusEx   92 /* exFAT: Number of clusters (DWORD) */

◆ BPB_NumFATs

#define BPB_NumFATs   16 /* Number of FATs (BYTE) */

◆ BPB_NumFATsEx

#define BPB_NumFATsEx   110 /* exFAT: Number of FATs (BYTE) */

◆ BPB_NumHeads

#define BPB_NumHeads   26 /* Number of heads for int13h (WORD) */

◆ BPB_PercInUseEx

#define BPB_PercInUseEx   112 /* exFAT: Percent in use (BYTE) */

◆ BPB_RootClus32

#define BPB_RootClus32   44 /* FAT32: Root directory cluster (DWORD) */

◆ BPB_RootClusEx

#define BPB_RootClusEx   96 /* exFAT: Root directory start cluster (DWORD) */

◆ BPB_RootEntCnt

#define BPB_RootEntCnt   17 /* Size of root directory area for FAT [entry] (WORD) */

◆ BPB_RsvdEx

#define BPB_RsvdEx   113 /* exFAT: Reserved (7-byte) */

◆ BPB_RsvdSecCnt

#define BPB_RsvdSecCnt   14 /* Size of reserved area [sector] (WORD) */

◆ BPB_SecPerClus

#define BPB_SecPerClus   13 /* Cluster size [sector] (BYTE) */

◆ BPB_SecPerClusEx

#define BPB_SecPerClusEx   109 /* exFAT: Log2 of cluster size in unit of sector (BYTE) */

◆ BPB_SecPerTrk

#define BPB_SecPerTrk   24 /* Number of sectors per track for int13h [sector] (WORD) */

◆ BPB_TotSec16

#define BPB_TotSec16   19 /* Volume size (16-bit) [sector] (WORD) */

◆ BPB_TotSec32

#define BPB_TotSec32   32 /* Volume size (32-bit) [sector] (DWORD) */

◆ BPB_TotSecEx

#define BPB_TotSecEx   72 /* exFAT: Volume size [sector] (QWORD) */

◆ BPB_VolFlagEx

#define BPB_VolFlagEx   106 /* exFAT: Volume flags (WORD) */

◆ BPB_VolIDEx

#define BPB_VolIDEx   100 /* exFAT: Volume serial number (DWORD) */

◆ BPB_VolOfsEx

#define BPB_VolOfsEx   64 /* exFAT: Volume offset from top of the drive [sector] (QWORD) */

◆ BPB_ZeroedEx

#define BPB_ZeroedEx   11 /* exFAT: MBZ field (53-byte) */

◆ BS_55AA

#define BS_55AA   510 /* Signature word (WORD) */

◆ BS_BootCode

#define BS_BootCode   62 /* Boot code (448-byte) */

◆ BS_BootCode32

#define BS_BootCode32   90 /* FAT32: Boot code (420-byte) */

◆ BS_BootCodeEx

#define BS_BootCodeEx   120 /* exFAT: Boot code (390-byte) */

◆ BS_BootSig

#define BS_BootSig   38 /* Extended boot signature (BYTE) */

◆ BS_BootSig32

#define BS_BootSig32   66 /* FAT32: Extended boot signature (BYTE) */

◆ BS_DrvNum

#define BS_DrvNum   36 /* Physical drive number for int13h (BYTE) */

◆ BS_DrvNum32

#define BS_DrvNum32   64 /* FAT32: Physical drive number for int13h (BYTE) */

◆ BS_FilSysType

#define BS_FilSysType   54 /* Filesystem type string (8-byte) */

◆ BS_FilSysType32

#define BS_FilSysType32   82 /* FAT32: Filesystem type string (8-byte) */

◆ BS_JmpBoot

#define BS_JmpBoot   0 /* x86 jump instruction (3-byte) */

◆ BS_NTres

#define BS_NTres   37 /* WindowsNT error flag (BYTE) */

◆ BS_NTres32

#define BS_NTres32   65 /* FAT32: Error flag (BYTE) */

◆ BS_OEMName

#define BS_OEMName   3 /* OEM name (8-byte) */

◆ BS_VolID

#define BS_VolID   39 /* Volume serial number (DWORD) */

◆ BS_VolID32

#define BS_VolID32   67 /* FAT32: Volume serial number (DWORD) */

◆ BS_VolLab

#define BS_VolLab   43 /* Volume label string (8-byte) */

◆ BS_VolLab32

#define BS_VolLab32   71 /* FAT32: Volume label string (8-byte) */

◆ CODEPAGE

#define CODEPAGE   CodePage

◆ DDEM

#define DDEM   0xE5 /* Deleted directory entry mark set to DIR_Name[0] */

◆ DEF_NAMBUF

#define DEF_NAMBUF

◆ DIR_Attr

#define DIR_Attr   11 /* Attribute (BYTE) */

◆ DIR_CrtTime

#define DIR_CrtTime   14 /* Created time (DWORD) */

◆ DIR_CrtTime10

#define DIR_CrtTime10   13 /* Created time sub-second (BYTE) */

◆ DIR_FileSize

#define DIR_FileSize   28 /* File size (DWORD) */

◆ DIR_FstClusHI

#define DIR_FstClusHI   20 /* Higher 16-bit of first cluster (WORD) */

◆ DIR_FstClusLO

#define DIR_FstClusLO   26 /* Lower 16-bit of first cluster (WORD) */

◆ DIR_LstAccDate

#define DIR_LstAccDate   18 /* Last accessed date (WORD) */

◆ DIR_ModTime

#define DIR_ModTime   22 /* Modified time (DWORD) */

◆ DIR_Name

#define DIR_Name   0 /* Short file name (11-byte) */

◆ DIR_NTres

#define DIR_NTres   12 /* Lower case flag (BYTE) */

◆ DIR_READ_FILE

#define DIR_READ_FILE (   dp)    dir_read(dp, 0)

◆ DIR_READ_LABEL

#define DIR_READ_LABEL (   dp)    dir_read(dp, 1)

◆ ET_BITMAP

#define ET_BITMAP   0x81 /* Allocation bitmap */

◆ ET_FILEDIR

#define ET_FILEDIR   0x85 /* File and directory */

◆ ET_FILENAME

#define ET_FILENAME   0xC1 /* Name extension */

◆ ET_STREAM

#define ET_STREAM   0xC0 /* Stream extension */

◆ ET_UPCASE

#define ET_UPCASE   0x82 /* Up-case table */

◆ ET_VLABEL

#define ET_VLABEL   0x83 /* Volume label */

◆ FA_DIRTY

#define FA_DIRTY   0x80 /* FIL.buf[] needs to be written-back */

◆ FA_MODIFIED

#define FA_MODIFIED   0x40 /* File has been modified */

◆ FA_SEEKEND

#define FA_SEEKEND   0x20 /* Seek to end of the file on file open */

◆ FREE_NAMBUF

#define FREE_NAMBUF ( )

◆ FSI_Free_Count

#define FSI_Free_Count   488 /* FAT32 FSI: Number of free clusters (DWORD) */

◆ FSI_LeadSig

#define FSI_LeadSig   0 /* FAT32 FSI: Leading signature (DWORD) */

◆ FSI_Nxt_Free

#define FSI_Nxt_Free   492 /* FAT32 FSI: Last allocated cluster (DWORD) */

◆ FSI_StrucSig

#define FSI_StrucSig   484 /* FAT32 FSI: Structure signature (DWORD) */

◆ GET_FATTIME

#define GET_FATTIME ( )    get_fattime()

◆ GPTE_Flags

#define GPTE_Flags   48 /* GPT PTE: Partition flags (QWORD) */

◆ GPTE_FstLba

#define GPTE_FstLba   32 /* GPT PTE: First LBA of partition (QWORD) */

◆ GPTE_LstLba

#define GPTE_LstLba   40 /* GPT PTE: Last LBA of partition (QWORD) */

◆ GPTE_Name

#define GPTE_Name   56 /* GPT PTE: Partition name */

◆ GPTE_PtGuid

#define GPTE_PtGuid   0 /* GPT PTE: Partition type GUID (16-byte) */

◆ GPTE_UpGuid

#define GPTE_UpGuid   16 /* GPT PTE: Partition unique GUID (16-byte) */

◆ GPTH_BakLba

#define GPTH_BakLba   32 /* GPT HDR: Another header LBA (QWORD) */

◆ GPTH_Bcc

#define GPTH_Bcc   16 /* GPT HDR: Header BCC (DWORD) */

◆ GPTH_CurLba

#define GPTH_CurLba   24 /* GPT HDR: This header LBA (QWORD) */

◆ GPTH_DskGuid

#define GPTH_DskGuid   56 /* GPT HDR: Disk GUID (16-byte) */

◆ GPTH_FstLba

#define GPTH_FstLba   40 /* GPT HDR: First LBA for partition data (QWORD) */

◆ GPTH_LstLba

#define GPTH_LstLba   48 /* GPT HDR: Last LBA for partition data (QWORD) */

◆ GPTH_PtBcc

#define GPTH_PtBcc   88 /* GPT HDR: Partition table BCC (DWORD) */

◆ GPTH_PteSize

#define GPTH_PteSize   84 /* GPT HDR: Size of table entry (DWORD) */

◆ GPTH_PtNum

#define GPTH_PtNum   80 /* GPT HDR: Number of table entries (DWORD) */

◆ GPTH_PtOfs

#define GPTH_PtOfs   72 /* GPT HDR: Partition table LBA (QWORD) */

◆ GPTH_Rev

#define GPTH_Rev   8 /* GPT HDR: Revision (DWORD) */

◆ GPTH_Sign

#define GPTH_Sign   0 /* GPT HDR: Signature (8-byte) */

◆ GPTH_Size

#define GPTH_Size   12 /* GPT HDR: Header size (DWORD) */

◆ INIT_NAMBUF

#define INIT_NAMBUF (   fs)

◆ IsDigit

#define IsDigit (   c)    ((c) >= '0' && (c) <= '9')

◆ IsLower

#define IsLower (   c)    ((c) >= 'a' && (c) <= 'z')

◆ IsSeparator

#define IsSeparator (   c)    ((c) == '/' || (c) == '\\')

◆ IsSurrogate

#define IsSurrogate (   c)    ((c) >= 0xD800 && (c) <= 0xDFFF)

◆ IsSurrogateH

#define IsSurrogateH (   c)    ((c) >= 0xD800 && (c) <= 0xDBFF)

◆ IsSurrogateL

#define IsSurrogateL (   c)    ((c) >= 0xDC00 && (c) <= 0xDFFF)

◆ IsTerminator

#define IsTerminator (   c)    ((UINT) (c) < (FF_USE_LFN ? ' ' : '!'))

◆ IsUpper

#define IsUpper (   c)    ((c) >= 'A' && (c) <= 'Z')

◆ LD2PD

#define LD2PD (   vol)    (BYTE)(vol) /* Each logical drive is associated with the same physical drive number */

◆ LD2PT

#define LD2PT (   vol)    0 /* Auto partition search */

◆ LDIR_Attr

#define LDIR_Attr   11 /* LFN: LFN attribute (BYTE) */

◆ LDIR_Chksum

#define LDIR_Chksum   13 /* LFN: Checksum of the SFN (BYTE) */

◆ LDIR_FstClusLO

#define LDIR_FstClusLO   26 /* LFN: MBZ field (WORD) */

◆ LDIR_Ord

#define LDIR_Ord   0 /* LFN: LFN order and LLE flag (BYTE) */

◆ LDIR_Type

#define LDIR_Type   12 /* LFN: Entry type (BYTE) */

◆ LEAVE_FF

#define LEAVE_FF (   fs,
  res 
)    return res

◆ LEAVE_MKFS

#define LEAVE_MKFS (   res)    return res

◆ LLEF

#define LLEF   0x40 /* Last long entry flag in LDIR_Ord */

◆ MAX_DIR

#define MAX_DIR   0x200000 /* Max size of FAT directory */

◆ MAX_DIR_EX

#define MAX_DIR_EX   0x10000000 /* Max size of exFAT directory */

◆ MAX_EXFAT

#define MAX_EXFAT   0x7FFFFFFD /* Max exFAT clusters (differs from specs, implementation limit) */

◆ MAX_FAT12

#define MAX_FAT12   0xFF5 /* Max FAT12 clusters (differs from specs, but right for real DOS/Windows behavior) */

◆ MAX_FAT16

#define MAX_FAT16   0xFFF5 /* Max FAT16 clusters (differs from specs, but right for real DOS/Windows behavior) */

◆ MAX_FAT32

#define MAX_FAT32   0x0FFFFFF5 /* Max FAT32 clusters (not specified, practical limit) */

◆ MBR_Table

#define MBR_Table   446 /* MBR: Offset of partition table in the MBR */

◆ MERGE_2STR

#define MERGE_2STR (   a,
 
)    a##b

◆ MKCVTBL

#define MKCVTBL (   hd,
  cp 
)    MERGE_2STR(hd, cp)

◆ NS_BODY

#define NS_BODY   0x08 /* Lower case flag (body) */

◆ NS_DOT

#define NS_DOT   0x20 /* Dot entry */

◆ NS_EXT

#define NS_EXT   0x10 /* Lower case flag (ext) */

◆ NS_LAST

#define NS_LAST   0x04 /* Last segment */

◆ NS_LFN

#define NS_LFN   0x02 /* Force to create LFN entry */

◆ NS_LOSS

#define NS_LOSS   0x01 /* Out of 8.3 format */

◆ NS_NOLFN

#define NS_NOLFN   0x40 /* Do not find LFN */

◆ NS_NONAME

#define NS_NONAME   0x80 /* Not followed */

◆ NSFLAG

#define NSFLAG   11 /* Index of the name status byte */

◆ PTE_Boot

#define PTE_Boot   0 /* MBR PTE: Boot indicator */

◆ PTE_EdCyl

#define PTE_EdCyl   7 /* MBR PTE: End cylinder */

◆ PTE_EdHead

#define PTE_EdHead   5 /* MBR PTE: End head */

◆ PTE_EdSec

#define PTE_EdSec   6 /* MBR PTE: End sector */

◆ PTE_SizLba

#define PTE_SizLba   12 /* MBR PTE: Size in LBA */

◆ PTE_StCyl

#define PTE_StCyl   3 /* MBR PTE: Start cylinder */

◆ PTE_StHead

#define PTE_StHead   1 /* MBR PTE: Start head */

◆ PTE_StLba

#define PTE_StLba   8 /* MBR PTE: Start in LBA */

◆ PTE_StSec

#define PTE_StSec   2 /* MBR PTE: Start sector */

◆ PTE_System

#define PTE_System   4 /* MBR PTE: System ID */

◆ RDDEM

#define RDDEM   0x05 /* Replacement of the character collides with DDEM */

◆ SS

#define SS (   fs)    ((UINT) FF_MAX_SS) /* Fixed sector size */

◆ SZ_GPTE

#define SZ_GPTE   128 /* GPT PTE: Size of partition table entry */

◆ SZ_PTE

#define SZ_PTE   16 /* MBR: Size of a partition table entry */

◆ SZDIRE

#define SZDIRE   32 /* Size of a directory entry */

◆ TBL_CT437

#define TBL_CT437
Value:
{ \
0x80, 0x9A, 0x45, 0x41, 0x8E, 0x41, 0x8F, 0x80, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x8E, 0x8F, 0x90, 0x92, 0x92, 0x4F, 0x99, 0x4F, 0x55, 0x55, 0x59, 0x99, 0x9A, 0x9B, \
0x9C, 0x9D, 0x9E, 0x9F, 0x41, 0x49, 0x4F, 0x55, 0xA5, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, \
0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, \
0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, \
0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF \
}

◆ TBL_CT720

#define TBL_CT720
Value:
{ \
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, \
0x9C, 0x9D, 0x9E, 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, \
0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, \
0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, \
0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF \
}

◆ TBL_CT737

#define TBL_CT737
Value:
{ \
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x92, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x80, 0x81, 0x82, 0x83, \
0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0xAA, 0x92, 0x93, 0x94, 0x95, 0x96, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, \
0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, \
0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0x97, 0xEA, 0xEB, 0xEC, 0xE4, 0xED, 0xEE, 0xEF, 0xF5, 0xF0, 0xEA, 0xEB, 0xEC, \
0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF \
}

◆ TBL_CT771

#define TBL_CT771
Value:
{ \
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, \
0x9C, 0x9D, 0x9E, 0x9F, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, \
0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, \
0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDC, 0xDE, 0xDE, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, \
0x9D, 0x9E, 0x9F, 0xF0, 0xF0, 0xF2, 0xF2, 0xF4, 0xF4, 0xF6, 0xF6, 0xF8, 0xF8, 0xFA, 0xFA, 0xFC, 0xFC, 0xFE, 0xFF \
}

◆ TBL_CT775

#define TBL_CT775
Value:
{ \
0x80, 0x9A, 0x91, 0xA0, 0x8E, 0x95, 0x8F, 0x80, 0xAD, 0xED, 0x8A, 0x8A, 0xA1, 0x8D, 0x8E, 0x8F, 0x90, 0x92, 0x92, 0xE2, 0x99, 0x95, 0x96, 0x97, 0x97, 0x99, 0x9A, 0x9D, \
0x9C, 0x9D, 0x9E, 0x9F, 0xA0, 0xA1, 0xE0, 0xA3, 0xA3, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, \
0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xB5, 0xB6, \
0xB7, 0xB8, 0xBD, 0xBE, 0xC6, 0xC7, 0xA5, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE5, 0xE5, 0xE6, 0xE3, 0xE8, 0xE8, 0xEA, 0xEA, 0xEE, \
0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF \
}

◆ TBL_CT850

#define TBL_CT850
Value:
{ \
0x43, 0x55, 0x45, 0x41, 0x41, 0x41, 0x41, 0x43, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x41, 0x41, 0x45, 0x92, 0x92, 0x4F, 0x4F, 0x4F, 0x55, 0x55, 0x59, 0x4F, 0x55, 0x4F, \
0x9C, 0x4F, 0x9E, 0x9F, 0x41, 0x49, 0x4F, 0x55, 0xA5, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0x41, 0x41, \
0x41, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0x41, 0x41, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD1, 0xD1, \
0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0x49, 0xDF, 0x4F, 0xE1, 0x4F, 0x4F, 0x4F, 0x4F, 0xE6, 0xE8, 0xE8, 0x55, 0x55, 0x55, 0x59, \
0x59, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF \
}

◆ TBL_CT852

#define TBL_CT852
Value:
{ \
0x80, 0x9A, 0x90, 0xB6, 0x8E, 0xDE, 0x8F, 0x80, 0x9D, 0xD3, 0x8A, 0x8A, 0xD7, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x91, 0xE2, 0x99, 0x95, 0x95, 0x97, 0x97, 0x99, 0x9A, 0x9B, \
0x9B, 0x9D, 0x9E, 0xAC, 0xB5, 0xD6, 0xE0, 0xE9, 0xA4, 0xA4, 0xA6, 0xA6, 0xA8, 0xA8, 0xAA, 0x8D, 0xAC, 0xB8, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, \
0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBD, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC6, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD1, 0xD1, \
0xD2, 0xD3, 0xD2, 0xD5, 0xD6, 0xD7, 0xB7, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE3, 0xD5, 0xE6, 0xE6, 0xE8, 0xE9, 0xE8, 0xEB, 0xED, \
0xED, 0xDD, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xEB, 0xFC, 0xFC, 0xFE, 0xFF \
}

◆ TBL_CT855

#define TBL_CT855
Value:
{ \
0x81, 0x81, 0x83, 0x83, 0x85, 0x85, 0x87, 0x87, 0x89, 0x89, 0x8B, 0x8B, 0x8D, 0x8D, 0x8F, 0x8F, 0x91, 0x91, 0x93, 0x93, 0x95, 0x95, 0x97, 0x97, 0x99, 0x99, 0x9B, 0x9B, \
0x9D, 0x9D, 0x9F, 0x9F, 0xA1, 0xA1, 0xA3, 0xA3, 0xA5, 0xA5, 0xA7, 0xA7, 0xA9, 0xA9, 0xAB, 0xAB, 0xAD, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB6, 0xB6, \
0xB8, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBE, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC7, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD1, 0xD1, \
0xD3, 0xD3, 0xD5, 0xD5, 0xD7, 0xD7, 0xDD, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xE0, 0xDF, 0xE0, 0xE2, 0xE2, 0xE4, 0xE4, 0xE6, 0xE6, 0xE8, 0xE8, 0xEA, 0xEA, 0xEC, 0xEC, \
0xEE, 0xEE, 0xEF, 0xF0, 0xF2, 0xF2, 0xF4, 0xF4, 0xF6, 0xF6, 0xF8, 0xF8, 0xFA, 0xFA, 0xFC, 0xFC, 0xFD, 0xFE, 0xFF \
}

◆ TBL_CT857

#define TBL_CT857
Value:
{ \
0x80, 0x9A, 0x90, 0xB6, 0x8E, 0xB7, 0x8F, 0x80, 0xD2, 0xD3, 0xD4, 0xD8, 0xD7, 0x49, 0x8E, 0x8F, 0x90, 0x92, 0x92, 0xE2, 0x99, 0xE3, 0xEA, 0xEB, 0x98, 0x99, 0x9A, 0x9D, \
0x9C, 0x9D, 0x9E, 0x9E, 0xB5, 0xD6, 0xE0, 0xE9, 0xA5, 0xA5, 0xA6, 0xA6, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, \
0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC7, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, \
0xD2, 0xD3, 0xD4, 0x49, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE5, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xDE, \
0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF \
}

◆ TBL_CT860

#define TBL_CT860
Value:
{ \
0x80, 0x9A, 0x90, 0x8F, 0x8E, 0x91, 0x86, 0x80, 0x89, 0x89, 0x92, 0x8B, 0x8C, 0x98, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x8C, 0x99, 0xA9, 0x96, 0x9D, 0x98, 0x99, 0x9A, 0x9B, \
0x9C, 0x9D, 0x9E, 0x9F, 0x86, 0x8B, 0x9F, 0x96, 0xA5, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, \
0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, \
0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, \
0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF \
}

◆ TBL_CT861

#define TBL_CT861
Value:
{ \
0x80, 0x9A, 0x90, 0x41, 0x8E, 0x41, 0x8F, 0x80, 0x45, 0x45, 0x45, 0x8B, 0x8B, 0x8D, 0x8E, 0x8F, 0x90, 0x92, 0x92, 0x4F, 0x99, 0x8D, 0x55, 0x97, 0x97, 0x99, 0x9A, 0x9D, \
0x9C, 0x9D, 0x9E, 0x9F, 0xA4, 0xA5, 0xA6, 0xA7, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, \
0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, \
0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, \
0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF \
}

◆ TBL_CT862

#define TBL_CT862
Value:
{ \
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, \
0x9C, 0x9D, 0x9E, 0x9F, 0x41, 0x49, 0x4F, 0x55, 0xA5, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, \
0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, \
0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, \
0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF \
}

◆ TBL_CT863

#define TBL_CT863
Value:
{ \
0x43, 0x55, 0x45, 0x41, 0x41, 0x41, 0x86, 0x43, 0x45, 0x45, 0x45, 0x49, 0x49, 0x8D, 0x41, 0x8F, 0x45, 0x45, 0x45, 0x4F, 0x45, 0x49, 0x55, 0x55, 0x98, 0x4F, 0x55, 0x9B, \
0x9C, 0x55, 0x55, 0x9F, 0xA0, 0xA1, 0x4F, 0x55, 0xA4, 0xA5, 0xA6, 0xA7, 0x49, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, \
0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, \
0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, \
0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF \
}

◆ TBL_CT864

#define TBL_CT864
Value:
{ \
0x80, 0x9A, 0x45, 0x41, 0x8E, 0x41, 0x8F, 0x80, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x8E, 0x8F, 0x90, 0x92, 0x92, 0x4F, 0x99, 0x4F, 0x55, 0x55, 0x59, 0x99, 0x9A, 0x9B, \
0x9C, 0x9D, 0x9E, 0x9F, 0x41, 0x49, 0x4F, 0x55, 0xA5, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, \
0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, \
0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, \
0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF \
}

◆ TBL_CT865

#define TBL_CT865
Value:
{ \
0x80, 0x9A, 0x90, 0x41, 0x8E, 0x41, 0x8F, 0x80, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x8E, 0x8F, 0x90, 0x92, 0x92, 0x4F, 0x99, 0x4F, 0x55, 0x55, 0x59, 0x99, 0x9A, 0x9B, \
0x9C, 0x9D, 0x9E, 0x9F, 0x41, 0x49, 0x4F, 0x55, 0xA5, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, \
0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, \
0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, \
0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF \
}

◆ TBL_CT866

#define TBL_CT866
Value:
{ \
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, \
0x9C, 0x9D, 0x9E, 0x9F, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, \
0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, \
0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, \
0x9D, 0x9E, 0x9F, 0xF0, 0xF0, 0xF2, 0xF2, 0xF4, 0xF4, 0xF6, 0xF6, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF \
}

◆ TBL_CT869

#define TBL_CT869
Value:
{ \
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x86, \
0x9C, 0x8D, 0x8F, 0x90, 0x91, 0x90, 0x92, 0x95, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, \
0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, \
0xD2, 0xD3, 0xD4, 0xD5, 0xA4, 0xA5, 0xA6, 0xD9, 0xDA, 0xDB, 0xDC, 0xA7, 0xA8, 0xDF, 0xA9, 0xAA, 0xAC, 0xAD, 0xB5, 0xB6, 0xB7, 0xB8, 0xBD, 0xBE, 0xC6, 0xC7, 0xCF, \
0xCF, 0xD0, 0xEF, 0xF0, 0xF1, 0xD1, 0xD2, 0xD3, 0xF5, 0xD4, 0xF7, 0xF8, 0xF9, 0xD5, 0x96, 0x95, 0x98, 0xFE, 0xFF \
}

◆ TBL_DC932

#define TBL_DC932    { 0x81, 0x9F, 0xE0, 0xFC, 0x40, 0x7E, 0x80, 0xFC, 0x00, 0x00 }

◆ TBL_DC936

#define TBL_DC936    { 0x81, 0xFE, 0x00, 0x00, 0x40, 0x7E, 0x80, 0xFE, 0x00, 0x00 }

◆ TBL_DC949

#define TBL_DC949    { 0x81, 0xFE, 0x00, 0x00, 0x41, 0x5A, 0x61, 0x7A, 0x81, 0xFE }

◆ TBL_DC950

#define TBL_DC950    { 0x81, 0xFE, 0x00, 0x00, 0x40, 0x7E, 0xA1, 0xFE, 0x00, 0x00 }

◆ XDIR_AccTime

#define XDIR_AccTime   16 /* exFAT: Last accessed time (DWORD) */

◆ XDIR_AccTZ

#define XDIR_AccTZ   24 /* exFAT: Last accessed timezone (BYTE) */

◆ XDIR_Attr

#define XDIR_Attr   4 /* exFAT: File attribute (WORD) */

◆ XDIR_CaseSum

#define XDIR_CaseSum   4 /* exFAT: Sum of case conversion table (DWORD) */

◆ XDIR_CrtTime

#define XDIR_CrtTime   8 /* exFAT: Created time (DWORD) */

◆ XDIR_CrtTime10

#define XDIR_CrtTime10   20 /* exFAT: Created time subsecond (BYTE) */

◆ XDIR_CrtTZ

#define XDIR_CrtTZ   22 /* exFAT: Created timezone (BYTE) */

◆ XDIR_FileSize

#define XDIR_FileSize   56 /* exFAT: File/Directory size (QWORD) */

◆ XDIR_FstClus

#define XDIR_FstClus   52 /* exFAT: First cluster of the file data (DWORD) */

◆ XDIR_GenFlags

#define XDIR_GenFlags   33 /* exFAT: General secondary flags (BYTE) */

◆ XDIR_Label

#define XDIR_Label   2 /* exFAT: Volume label (11-WORD) */

◆ XDIR_ModTime

#define XDIR_ModTime   12 /* exFAT: Modified time (DWORD) */

◆ XDIR_ModTime10

#define XDIR_ModTime10   21 /* exFAT: Modified time subsecond (BYTE) */

◆ XDIR_ModTZ

#define XDIR_ModTZ   23 /* exFAT: Modified timezone (BYTE) */

◆ XDIR_NameHash

#define XDIR_NameHash   36 /* exFAT: Hash of file name (WORD) */

◆ XDIR_NumLabel

#define XDIR_NumLabel   1 /* exFAT: Number of volume label characters (BYTE) */

◆ XDIR_NumName

#define XDIR_NumName   35 /* exFAT: Number of file name characters (BYTE) */

◆ XDIR_NumSec

#define XDIR_NumSec   1 /* exFAT: Number of secondary entries (BYTE) */

◆ XDIR_SetSum

#define XDIR_SetSum   2 /* exFAT: Sum of the set of directory entries (WORD) */

◆ XDIR_Type

#define XDIR_Type   0 /* exFAT: Type of exFAT directory entry (BYTE) */

◆ XDIR_ValidFileSize

#define XDIR_ValidFileSize   40 /* exFAT: Valid file size (QWORD) */

Function Documentation

◆ check_fs()

static UINT check_fs ( FATFS fs,
LBA_t  sect 
)
static

◆ clst2sect()

static LBA_t clst2sect ( FATFS fs,
DWORD  clst 
)
static

◆ create_chain()

static DWORD create_chain ( FFOBJID obj,
DWORD  clst 
)
static

◆ create_name()

static FRESULT create_name ( DIR dp,
const TCHAR **  path 
)
static

◆ dbc_1st()

static int dbc_1st ( BYTE  c)
static

◆ dbc_2nd()

static int dbc_2nd ( BYTE  c)
static

◆ dir_alloc()

static FRESULT dir_alloc ( DIR dp,
UINT  n_ent 
)
static

◆ dir_clear()

static FRESULT dir_clear ( FATFS fs,
DWORD  clst 
)
static

◆ dir_find()

static FRESULT dir_find ( DIR dp)
static

◆ dir_next()

static FRESULT dir_next ( DIR dp,
int  stretch 
)
static

◆ dir_read()

static FRESULT dir_read ( DIR dp,
int  vol 
)
static

◆ dir_register()

static FRESULT dir_register ( DIR dp)
static

◆ dir_remove()

static FRESULT dir_remove ( DIR dp)
static

◆ dir_sdi()

static FRESULT dir_sdi ( DIR dp,
DWORD  ofs 
)
static

◆ f_close()

FRESULT f_close ( FIL fp)

◆ f_closedir()

FRESULT f_closedir ( DIR dp)

◆ f_getfree()

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

◆ f_lseek()

FRESULT f_lseek ( FIL fp,
FSIZE_t  ofs 
)

◆ f_mkdir()

FRESULT f_mkdir ( const TCHAR path)

◆ f_mount()

FRESULT f_mount ( FATFS fs,
const TCHAR path,
BYTE  opt 
)

◆ f_open()

FRESULT f_open ( FIL fp,
const TCHAR path,
BYTE  mode 
)

◆ f_opendir()

FRESULT f_opendir ( DIR dp,
const TCHAR path 
)

◆ f_read()

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

◆ f_readdir()

FRESULT f_readdir ( DIR dp,
FILINFO fno 
)

◆ f_rename()

FRESULT f_rename ( const TCHAR path_old,
const TCHAR path_new 
)

◆ f_setcp()

FRESULT f_setcp ( WORD  cp)

◆ f_stat()

FRESULT f_stat ( const TCHAR path,
FILINFO fno 
)

◆ f_sync()

FRESULT f_sync ( FIL fp)

◆ f_truncate()

FRESULT f_truncate ( FIL fp)

◆ f_unlink()

FRESULT f_unlink ( const TCHAR path)

◆ f_write()

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

◆ find_volume()

static UINT find_volume ( FATFS fs,
UINT  part 
)
static

◆ follow_path()

static FRESULT follow_path ( DIR dp,
const TCHAR path 
)
static

◆ get_fat()

static DWORD get_fat ( FFOBJID obj,
DWORD  clst 
)
static

◆ get_fileinfo()

static void get_fileinfo ( DIR dp,
FILINFO fno 
)
static

◆ get_ldnumber()

static int get_ldnumber ( const TCHAR **  path)
static

◆ ld_clust()

static DWORD ld_clust ( FATFS fs,
const BYTE dir 
)
static

◆ ld_dword()

static DWORD ld_dword ( const BYTE ptr)
static

◆ ld_word()

static WORD ld_word ( const BYTE ptr)
static

◆ mount_volume()

static FRESULT mount_volume ( const TCHAR **  path,
FATFS **  rfs,
BYTE  mode 
)
static

◆ move_window()

static FRESULT move_window ( FATFS fs,
LBA_t  sect 
)
static

◆ put_fat()

static FRESULT put_fat ( FATFS fs,
DWORD  clst,
DWORD  val 
)
static

◆ remove_chain()

static FRESULT remove_chain ( FFOBJID obj,
DWORD  clst,
DWORD  pclst 
)
static

◆ st_clust()

static void st_clust ( FATFS fs,
BYTE dir,
DWORD  cl 
)
static

◆ st_dword()

static void st_dword ( BYTE ptr,
DWORD  val 
)
static

◆ st_word()

static void st_word ( BYTE ptr,
WORD  val 
)
static

◆ sync_fs()

static FRESULT sync_fs ( FATFS fs)
static

◆ sync_window()

static FRESULT sync_window ( FATFS fs)
static

◆ validate()

static FRESULT validate ( FFOBJID obj,
FATFS **  rfs 
)
static

Variable Documentation

◆ CodePage

WORD CodePage
static

◆ Ct437

const BYTE Ct437[] = TBL_CT437
static

◆ Ct720

const BYTE Ct720[] = TBL_CT720
static

◆ Ct737

const BYTE Ct737[] = TBL_CT737
static

◆ Ct771

const BYTE Ct771[] = TBL_CT771
static

◆ Ct775

const BYTE Ct775[] = TBL_CT775
static

◆ Ct850

const BYTE Ct850[] = TBL_CT850
static

◆ Ct852

const BYTE Ct852[] = TBL_CT852
static

◆ Ct855

const BYTE Ct855[] = TBL_CT855
static

◆ Ct857

const BYTE Ct857[] = TBL_CT857
static

◆ Ct860

const BYTE Ct860[] = TBL_CT860
static

◆ Ct861

const BYTE Ct861[] = TBL_CT861
static

◆ Ct862

const BYTE Ct862[] = TBL_CT862
static

◆ Ct863

const BYTE Ct863[] = TBL_CT863
static

◆ Ct864

const BYTE Ct864[] = TBL_CT864
static

◆ Ct865

const BYTE Ct865[] = TBL_CT865
static

◆ Ct866

const BYTE Ct866[] = TBL_CT866
static

◆ Ct869

const BYTE Ct869[] = TBL_CT869
static

◆ DbcTbl

const BYTE* DbcTbl
static

◆ Dc932

const BYTE Dc932[] = TBL_DC932
static

◆ Dc936

const BYTE Dc936[] = TBL_DC936
static

◆ Dc949

const BYTE Dc949[] = TBL_DC949
static

◆ Dc950

const BYTE Dc950[] = TBL_DC950
static

◆ ExCvt

const BYTE* ExCvt
static

◆ FatFs

FATFS* FatFs[FF_VOLUMES]
static

◆ Fsid

WORD Fsid
static