fat_descriptor
struct fat_descriptor *fat = NULL;
static int checksize(struct fat_descriptor *, u_char *, struct dosDirEntry *);
static int readDosDirSection(struct fat_descriptor *, struct dosDirEntry *);
handleDirTree(struct fat_descriptor *fat)
reconnect(struct fat_descriptor *fat, cl_t head, size_t length)
resetDosDirSection(struct fat_descriptor *fat)
delete(struct fat_descriptor *fat, cl_t startcl,
removede(struct fat_descriptor *fat, u_char *start,
checksize(struct fat_descriptor *fat, u_char *p, struct dosDirEntry *dir)
check_subdirectory(struct fat_descriptor *fat, struct dosDirEntry *dir)
readDosDirSection(struct fat_descriptor *fat, struct dosDirEntry *dir)
static int delete(struct fat_descriptor *, cl_t, int, cl_t, int, int);
static int removede(struct fat_descriptor *, u_char *, u_char *,
cl_t fat_allocate_cluster(struct fat_descriptor *fat);
struct bootblock* fat_get_boot(struct fat_descriptor *);
int fat_get_fd(struct fat_descriptor *);
bool fat_is_valid_cl(struct fat_descriptor *, cl_t);
int readfat(int, struct bootblock *, struct fat_descriptor **);
int writefat(struct fat_descriptor *);
int resetDosDirSection(struct fat_descriptor *);
int handleDirTree(struct fat_descriptor *);
int checkchain(struct fat_descriptor *, cl_t, size_t *);
int checklost(struct fat_descriptor *);
int reconnect(struct fat_descriptor *, cl_t, size_t);
void clearchain(struct fat_descriptor *, cl_t);
struct fat_descriptor;
int cleardirty(struct fat_descriptor *);
void fat_clear_cl_head(struct fat_descriptor *, cl_t);
bool fat_is_cl_head(struct fat_descriptor *, cl_t);
cl_t fat_get_cl_next(struct fat_descriptor *, cl_t);
int fat_set_cl_next(struct fat_descriptor *, cl_t, cl_t);
checkchain(struct fat_descriptor *fat, cl_t head, size_t *chainsize)
clearchain(struct fat_descriptor *fat, cl_t head)
copyfat(struct fat_descriptor *fat, int n)
writefat(struct fat_descriptor *fat)
checklost(struct fat_descriptor *fat)
cl_t (*get)(struct fat_descriptor *, cl_t);
int (*set)(struct fat_descriptor *, cl_t, cl_t);
fat_clear_cl_head(struct fat_descriptor *fat, cl_t cl)
fat_is_cl_head(struct fat_descriptor *fat, cl_t cl)
fat_is_cl_head_in_range(struct fat_descriptor *fat, cl_t cl)
fat_get_head_count(struct fat_descriptor *fat)
fat_get_fat12_ptr(struct fat_descriptor *fat, cl_t cl)
fat_get_fat12_next(struct fat_descriptor *fat, cl_t cl)
fat_set_fat12_next(struct fat_descriptor *fat, cl_t cl, cl_t nextcl)
fat_get_fat16_ptr(struct fat_descriptor *fat, cl_t cl)
fat_get_fat16_next(struct fat_descriptor *fat, cl_t cl)
fat_set_fat16_next(struct fat_descriptor *fat, cl_t cl, cl_t nextcl)
fat_get_fat32_ptr(struct fat_descriptor *fat, cl_t cl)
fat_get_fat32_next(struct fat_descriptor *fat, cl_t cl)
fat_set_fat32_next(struct fat_descriptor *fat, cl_t cl, cl_t nextcl)
fat_get_iosize(struct fat_descriptor *fat, off_t address)
fat_flush_fat32_cache_entry(struct fat_descriptor *fat,
fat_get_fat32_cache_entry(struct fat_descriptor *fat, off_t addr,
fat_get_fat32_cached_ptr(struct fat_descriptor *fat, cl_t cl, bool writing)
fat_get_fat32_cached_next(struct fat_descriptor *fat, cl_t cl)
fat_set_fat32_cached_next(struct fat_descriptor *fat, cl_t cl, cl_t nextcl)
cl_t fat_get_cl_next(struct fat_descriptor *fat, cl_t cl)
int fat_set_cl_next(struct fat_descriptor *fat, cl_t cl, cl_t nextcl)
static int _readfat(struct fat_descriptor *);
boot_of_(struct fat_descriptor *fat) {
fat_get_boot(struct fat_descriptor *fat) {
static inline struct bootblock* boot_of_(struct fat_descriptor *);
fd_of_(struct fat_descriptor *fat)
fat_get_fd(struct fat_descriptor * fat)
static inline int fd_of_(struct fat_descriptor *);
fat_is_valid_cl(struct fat_descriptor *fat, cl_t cl)
static inline bool valid_cl(struct fat_descriptor *, cl_t);
valid_cl(struct fat_descriptor *fat, cl_t cl)
cleardirty(struct fat_descriptor *fat)
_readfat(struct fat_descriptor *fat)
releasefat(struct fat_descriptor *fat)
readfat(int fs, struct bootblock *boot, struct fat_descriptor **fp)
struct fat_descriptor *fat;
fat = calloc(1, sizeof(struct fat_descriptor));