23 #define FAT_MAX_PATH 260
28 unsigned char jump[3];
30 unsigned char sectorSize[2];
31 unsigned char clusterSize;
32 unsigned char resSectors[2];
33 unsigned char fatCount;
34 unsigned char rootSize[2];
35 unsigned char sectorCountO[2];
36 unsigned char mediaDesc;
37 unsigned char fatSize[2];
38 unsigned char trackSize[2];
39 unsigned char headCount[2];
40 unsigned char hiddenCountL[2];
42 unsigned char hiddenCountH[2];
43 unsigned char sectorCount[4];
46 unsigned char driveNumber;
47 unsigned char reserved;
48 unsigned char signature;
49 unsigned char serialNumber[4];
51 unsigned char volumeLabel[11];
52 unsigned char fatId[8];
58 unsigned char jump[3];
60 unsigned char sectorSize[2];
61 unsigned char clusterSize;
62 unsigned char resSectors[2];
63 unsigned char fatCount;
64 unsigned char rootSize[2];
65 unsigned char sectorCountO[2];
66 unsigned char mediaDesc;
67 unsigned char fatSize[2];
68 unsigned char trackSize[2];
69 unsigned char headCount[2];
70 unsigned char hiddenCountL[2];
72 unsigned char hiddenCountH[2];
73 unsigned char sectorCount[4];
76 unsigned char fatSize32[4];
77 unsigned char fatStatus[2];
79 unsigned char revision[2];
80 unsigned char rootDirCluster[4];
81 unsigned char fsInfoSector[2];
82 unsigned char bootSectorCopy[2];
83 unsigned char reserved1[12];
85 unsigned char reserved2;
86 unsigned char signature;
87 unsigned char serialNumber[4];
89 unsigned char volumeLabel[11];
90 unsigned char fatId[8];
91 unsigned char machineCode[8];
92 unsigned char bootSignature[2];
98 unsigned char name[8];
102 unsigned char reservedNT;
103 unsigned char seconds;
104 unsigned char timeCreate[2];
105 unsigned char dateCreate[2];
106 unsigned char dateAccess[2];
107 unsigned char clusterH[2];
109 unsigned char timeWrite[2];
110 unsigned char dateWrite[2];
111 unsigned char clusterL[2];
112 unsigned char size[4];
121 unsigned char entrySeq;
122 unsigned char name1[10];
125 unsigned char reserved1;
126 unsigned char checksum;
127 unsigned char name2[12];
129 unsigned char reserved2[2];
130 unsigned char name3[4];
142 char name[FAT_MAX_NAME];
145 unsigned int cluster;
149 static USBHD_INLINE
unsigned int fat_cluster2sector(
fat_bpb *partBpb,
unsigned int cluster)
151 return partBpb->dataStart + (partBpb->clusterSize * (cluster - 2));
154 extern unsigned int fat_getClusterRecord12(
const unsigned char *buf,
int type);
156 extern int fat_getDirentrySectorData(
fat_driver *fatd,
unsigned int *startCluster,
unsigned int *startSector,
unsigned int *dirSector);
157 extern void fat_invalidateLastChainResult(
fat_driver *fatd);
158 extern void fat_getClusterAtFilePos(
fat_driver *fatd,
fat_dir *fatDir,
unsigned int filePos,
unsigned int *cluster,
unsigned int *clusterPos);