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=utf-8">
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 (filesystem 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 of the structure is done by volume mount process whenever necessary. Application program
<em>must not
</em> modify any member in this structure, or the FAT volume will be collapsed.
</p>
18 <span class=
"k">typedef
</span> <span class=
"k">struct
</span> {
19 BYTE fs_type;
<span class=
"c">/* FAT type (
0, FS_FAT12, FS_FAT16, FS_FAT32 or FS_EXFAT) */
</span>
20 BYTE pdrv;
<span class=
"c">/* Hosting physical drive of this volume */
</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">/* Volume 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> FF_MAX_SS != FF_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
</span> FF_FS_EXFAT
31 BYTE* dirbuf;
<span class=
"c">/* Directory entry block scratchpad buffer */
</span>
32 <span class=
"k">#endif
</span>
33 <span class=
"k">#if
</span> FF_FS_REENTRANT
34 FF_SYNC_t sobj;
<span class=
"c">/* Identifier of sync object */
</span>
35 <span class=
"k">#endif
</span>
36 <span class=
"k">#if
</span> !FF_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> FF_FS_RPATH
41 DWORD cdir;
<span class=
"c">/* Cluster number of current directory (
0:root) */
</span>
42 <span class=
"k">#if
</span> FF_FS_EXFAT
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 LBA_t volbase;
<span class=
"c">/* Volume base LBA */
</span>
51 LBA_t fatbase;
<span class=
"c">/* FAT base LBA */
</span>
52 LBA_t dirbase;
<span class=
"c">/* Root directory base (LBA|Cluster) */
</span>
53 LBA_t database;
<span class=
"c">/* Data base LBA */
</span>
54 LBA_t winsect;
<span class=
"c">/* Sector LBA appearing in the win[] */
</span>
55 BYTE win[FF_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>