1 <!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
4 <meta http-equiv=
"Content-Type" content=
"text/html; charset=iso-8859-1">
5 <meta http-equiv=
"Content-Style-Type" content=
"text/css">
6 <link rel=
"up" title=
"FatFs" href=
"../00index_e.html">
7 <link rel=
"alternate" hreflang=
"ja" title=
"Japanese" href=
"../ja/sfatfs.html">
8 <link rel=
"stylesheet" href=
"../css_e.css" type=
"text/css" media=
"screen" title=
"ELM Default">
9 <title>FatFs - FATFS
</title>
16 <p>The
<tt>FATFS
</tt> structure (file system object) holds dynamic work area of individual logical drives. It is given by application program and registerd/unregisterd to the FatFs module with
<tt>f_mount
</tt> function. Initialization is done on first API call after
<tt>f_mount
</tt> function or media change. Application program must not modify any member in this structure, or any data on the FAT volume can be collapsed.
</p>
18 <span class=
"k">typedef
</span> <span class=
"k">struct
</span> {
19 BYTE fs_type;
<span class=
"c">/* File system type (
0, FS_FAT12, FS_FAT16, FS_FAT32 or FS_EXFAT) */
</span>
20 BYTE drv;
<span class=
"c">/* Physical drive number */
</span>
21 BYTE n_fats;
<span class=
"c">/* Number of FAT copies (
1,
2) */
</span>
22 BYTE wflag;
<span class=
"c">/* win[] flag (b0:win[] is dirty) */
</span>
23 BYTE fsi_flag;
<span class=
"c">/* FSINFO flags (b7:Disabled, b0:Dirty) */
</span>
24 WORD id;
<span class=
"c">/* File system mount ID */
</span>
25 WORD n_rootdir;
<span class=
"c">/* Number of root directory entries (FAT12/
16) */
</span>
26 WORD csize;
<span class=
"c">/* Sectors per cluster */
</span>
27 <span class=
"k">#if
</span> _MAX_SS != _MIN_SS
28 WORD ssize;
<span class=
"c">/* Sector size (
512,
1024,
2048 or
4096) */
</span>
29 <span class=
"k">#endif
</span>
30 <span class=
"k">#if _FS_EXFAT
</span>
31 BYTE* dirbuf;
<span class=
"c">/* Directory entry block scratchpad buffer */
</span>
32 <span class=
"k">#endif
</span>
33 <span class=
"k">#if
</span> _FS_REENTRANT
34 _SYNC_t sobj;
<span class=
"c">/* Identifier of sync object */
</span>
35 <span class=
"k">#endif
</span>
36 <span class=
"k">#if
</span> !_FS_READONLY
37 DWORD last_clust;
<span class=
"c">/* FSINFO: Last allocated cluster (
0xFFFFFFFF if invalid) */
</span>
38 DWORD free_clust;
<span class=
"c">/* FSINFO: Number of free clusters (
0xFFFFFFFF if invalid) */
</span>
39 <span class=
"k">#endif
</span>
40 <span class=
"k">#if
</span> _FS_RPATH
41 DWORD cdir;
<span class=
"c">/* Cluster number of current directory (
0:root) */
</span>
42 <span class=
"k">#if _FS_EXFAT
</span>
43 DWORD cdc_scl;
<span class=
"c">/* Containing directory start cluster (invalid when cdir is
0) */
</span>
44 DWORD cdc_size;
<span class=
"c">/* b31-b8:Size of containing directory, b7-b0: Chain status */
</span>
45 DWORD cdc_ofs;
<span class=
"c">/* Offset in the containing directory (invalid when cdir is
0) */
</span>
46 <span class=
"k">#endif
</span>
47 <span class=
"k">#endif
</span>
48 DWORD n_fatent;
<span class=
"c">/* Number of FAT entries (Number of clusters +
2) */
</span>
49 DWORD fsize;
<span class=
"c">/* Sectors per FAT */
</span>
50 DWORD volbase;
<span class=
"c">/* Volume base LBA */
</span>
51 DWORD fatbase;
<span class=
"c">/* FAT base LBA */
</span>
52 DWORD dirbase;
<span class=
"c">/* Root directory base (LBA|Cluster) */
</span>
53 DWORD database;
<span class=
"c">/* Data base LBA */
</span>
54 DWORD winsect;
<span class=
"c">/* Sector LBA appearing in the win[] */
</span>
55 BYTE win[_MAX_SS];
<span class=
"c">/* Disk access window for directory, FAT (and file data at tiny cfg) */
</span>
60 <p class=
"foot"><a href=
"../00index_e.html">Return
</a></p>