40#define FAT_ATTRIBUTE_MASK 0x3F
41#define FAT_ATTRIBUTE_READ_ONLY 0x01
42#define FAT_ATTRIBUTE_HIDDEN 0x02
43#define FAT_ATTRIBUTE_SYSTEM 0x04
44#define FAT_ATTRIBUTE_VOLUME 0x08
45#define FAT_ATTRIBUTE_DIRECTORY 0x10
46#define FAT_ATTRIBUTE_ARCHIVE 0x20
47#define FAT_ATTRIBUTE_LONG_NAME 0x0F
49#define FAT_EOC_MARK 0xFFFFFFF8
50#define FAT_BAD_CLUSTER 0xFFFFFFF7
56#define FAT_IS_EOC(clust) ((((uint32_t)(clust)) & 0x0FFFFFFF) >= (FAT_EOC_MARK & 0x0FFFFFFF))
110#pragma pack (push, 1)
144#define FSTYPE_FAT12 1
145#define FSTYPE_FAT16 2
146#define FSTYPE_FAT32 3
196extern void FatToDOSFilename(
const char* filename,
char* fname,
unsigned int fname_length);
uint16_t FatFormatTime()
Definition Fat.cpp:675
uint64_t FatClusterToSector32(FatFS *fs, uint64_t cluster)
Definition Fat.cpp:62
void FatToDOSFilename(const char *filename, char *fname, unsigned int fname_length)
Definition Fat.cpp:73
AuVFSNode * FatLocateDir(AuVFSNode *fsys, const char *dir)
Definition Fat.cpp:425
uint8_t FatCheckDotCount(char *filename)
Definition Fat.cpp:127
AuVFSNode * FatOpen(AuVFSNode *fsys, char *filename)
Definition Fat.cpp:490
AuVFSNode * FatInitialise(AuVDisk *vdisk, char *mountpoint)
Definition Fat.cpp:585
void FatFromDosToFilename(char *filename, char *dirfname)
Definition Fat.cpp:140
void FatClearCluster(AuVFSNode *node, uint32_t cluster)
Definition Fat.cpp:272
void FatAllocCluster(AuVFSNode *fsys, int position, uint32_t n_value)
Definition Fat.cpp:238
AuVFSNode * FatLocateSubDir(AuVFSNode *fsys, AuVFSNode *kfile, const char *filename)
Definition Fat.cpp:365
uint32_t FatReadFAT(AuVFSNode *node, uint64_t cluster_index)
Definition Fat.cpp:168
uint32_t FatFindFreeCluster(AuVFSNode *node)
Definition Fat.cpp:193
uint8_t FatCalculateCheckSum(uint8_t *filename)
Definition Fat.cpp:114
uint16_t FatFormatDate()
Definition Fat.cpp:668
unsigned int uint32_t
Definition acefiex.h:163
unsigned char uint8_t
Definition acefiex.h:161
COMPILER_DEPENDENT_UINT64 uint64_t
Definition acefiex.h:165
unsigned short int uint16_t
Definition acefiex.h:162
void int node
Definition kthread.h:31
uint8_t num_fats
Definition Fat.h:69
uint8_t media_type
Definition Fat.h:72
uint16_t falgs
Definition Fat.h:90
uint16_t sectors_per_track
Definition Fat.h:74
uint16_t bytes_per_sector
Definition Fat.h:66
uint16_t fs_info_sect
Definition Fat.h:93
uint16_t fat_version
Definition Fat.h:91
uint32_t hidden_sectors
Definition Fat.h:76
uint32_t sect_per_fat32
Definition Fat.h:89
char sys_id[8]
Definition Fat.h:85
uint8_t signature
Definition Fat.h:82
uint8_t drive_number
Definition Fat.h:96
uint8_t jmp[3]
Definition Fat.h:64
uint8_t flagsWinNT
Definition Fat.h:97
uint16_t backup_boot_sect
Definition Fat.h:94
uint8_t drive_num
Definition Fat.h:80
char oemid[8]
Definition Fat.h:65
uint8_t WinNtFlags
Definition Fat.h:81
uint32_t root_dir_cluster
Definition Fat.h:92
struct _FAT_BPB_::@57::@59 FAT32
struct _FAT_BPB_::@57::@58 FAT16
uint32_t vol_serial_num
Definition Fat.h:83
uint16_t heads
Definition Fat.h:75
uint16_t sectors_per_fat
Definition Fat.h:73
union _FAT_BPB_::@57 info
uint16_t num_dir_entries
Definition Fat.h:70
uint8_t sectors_per_cluster
Definition Fat.h:67
uint16_t reserved_sectors
Definition Fat.h:68
uint32_t large_sector_count
Definition Fat.h:77
uint16_t total_sectors_short
Definition Fat.h:71
uint8_t reserved[12]
Definition Fat.h:95
char vol_label[11]
Definition Fat.h:84
unsigned long __FatBeginLBA
Definition Fat.h:154
unsigned char * __RootDirCache
Definition Fat.h:161
unsigned int __LastIndexSector
Definition Fat.h:162
unsigned long __ClusterBeginLBA
Definition Fat.h:155
unsigned long __RootSector
Definition Fat.h:158
unsigned char __SectorPerCluster
Definition Fat.h:156
uint8_t fatType
Definition Fat.h:153
size_t cluster_sz_in_bytes
Definition Fat.h:165
uint16_t __BytesPerSector
Definition Fat.h:164
unsigned int __LastIndexInFat
Definition Fat.h:163
AuVDisk * vdisk
Definition Fat.h:151
FatBPB * bpb
Definition Fat.h:150
unsigned int __SectorPerFAT32
Definition Fat.h:159
unsigned int __TotalClusters
Definition Fat.h:160
unsigned int __RootDirFirstCluster
Definition Fat.h:157
char oemid[8]
Definition Fat.h:152
void * _scratchBuffer
Definition Fat.h:166
uint16_t date_last_accessed
Definition Fat.h:119
uint16_t first_cluster_hi_bytes
Definition Fat.h:120
uint8_t reserved
Definition Fat.h:115
uint8_t filename[11]
Definition Fat.h:113
uint32_t file_size
Definition Fat.h:124
uint16_t date_created
Definition Fat.h:118
uint16_t last_wrt_date
Definition Fat.h:122
uint8_t attrib
Definition Fat.h:114
uint16_t time_created
Definition Fat.h:117
uint16_t first_cluster
Definition Fat.h:123
uint16_t last_wrt_time
Definition Fat.h:121
uint8_t time_created_ms
Definition Fat.h:116
uint8_t checkSum
Definition Fat.h:137
uint8_t type
Definition Fat.h:136
uint8_t attrib
Definition Fat.h:135
uint8_t nameOne[10]
Definition Fat.h:134
uint8_t nameTwo[12]
Definition Fat.h:138
uint8_t nameThree[4]
Definition Fat.h:140
uint8_t order
Definition Fat.h:133
uint16_t FstClusterLo
Definition Fat.h:139