## FATFS

The `FATFS` structure holds dynamic work area of the logical drive and a file. It is given by application program and registerd/unregisterd to the Petit FatFs module with pf_mount function. There is no member that can be changed by application programs.

    typedef struct {
        BYTE    fs_type;     /* FAT sub type */
        BYTE    csize;       /* Number of sectors per cluster */
        BYTE    flag;        /* File status flags */
        BYTE    pad1;
        WORD    n_rootdir;   /* Number of root directory entries (0 on FAT32) */
        CLUST   n_fatent;    /* Number of FAT entries (= number of clusters + 2) */
        DWORD   fatbase;     /* FAT start sector */
        DWORD   dirbase;     /* Root directory start sector (Cluster# on FAT32) */
        DWORD   database;    /* Data start sector */
        DWORD   fptr;        /* File read/write pointer */
        DWORD   fsize;       /* File size */
        CLUST   org_clust;   /* File start cluster */
        CLUST   curr_clust;  /* File current cluster */
        DWORD   dsect;       /* File current data sector */
    } FATFS;

Return