Soldered SD Card Arduino Library 1.0.0
Easily read and write files to and form the SD card breakout! A fork of the original SDFat library by Bill Greiman.
Loading...
Searching...
No Matches
FsStructs.h
Go to the documentation of this file.
1
25#ifndef FsStructs_h
26#define FsStructs_h
27#include <stdint.h>
28//-----------------------------------------------------------------------------
29void lbaToMbrChs(uint8_t *chs, uint32_t capacityMB, uint32_t lba);
30//-----------------------------------------------------------------------------
31#if !defined(USE_SIMPLE_LITTLE_ENDIAN) || USE_SIMPLE_LITTLE_ENDIAN
32// assumes CPU is little-endian and handles alignment issues.
33inline uint16_t getLe16(const uint8_t *src)
34{
35 return *reinterpret_cast<const uint16_t *>(src);
36}
37inline uint32_t getLe32(const uint8_t *src)
38{
39 return *reinterpret_cast<const uint32_t *>(src);
40}
41inline uint64_t getLe64(const uint8_t *src)
42{
43 return *reinterpret_cast<const uint64_t *>(src);
44}
45inline void setLe16(uint8_t *dst, uint16_t src)
46{
47 *reinterpret_cast<uint16_t *>(dst) = src;
48}
49
50inline void setLe32(uint8_t *dst, uint32_t src)
51{
52 *reinterpret_cast<uint32_t *>(dst) = src;
53}
54inline void setLe64(uint8_t *dst, uint64_t src)
55{
56 *reinterpret_cast<uint64_t *>(dst) = src;
57}
58#else // USE_SIMPLE_LITTLE_ENDIAN
59inline uint16_t getLe16(const uint8_t *src)
60{
61 return (uint16_t)src[0] << 0 | (uint16_t)src[1] << 8;
62}
63inline uint32_t getLe32(const uint8_t *src)
64{
65 return (uint32_t)src[0] << 0 | (uint32_t)src[1] << 8 | (uint32_t)src[2] << 16 | (uint32_t)src[3] << 24;
66}
67inline uint64_t getLe64(const uint8_t *src)
68{
69 return (uint64_t)src[0] << 0 | (uint64_t)src[1] << 8 | (uint64_t)src[2] << 16 | (uint64_t)src[3] << 24 |
70 (uint64_t)src[4] << 32 | (uint64_t)src[5] << 40 | (uint64_t)src[6] << 48 | (uint64_t)src[7] << 56;
71}
72inline void setLe16(uint8_t *dst, uint16_t src)
73{
74 dst[0] = src >> 0;
75 dst[1] = src >> 8;
76}
77inline void setLe32(uint8_t *dst, uint32_t src)
78{
79 dst[0] = src >> 0;
80 dst[1] = src >> 8;
81 dst[2] = src >> 16;
82 dst[3] = src >> 24;
83}
84inline void setLe64(uint8_t *dst, uint64_t src)
85{
86 dst[0] = src >> 0;
87 dst[1] = src >> 8;
88 dst[2] = src >> 16;
89 dst[3] = src >> 24;
90 dst[4] = src >> 32;
91 dst[5] = src >> 40;
92 dst[6] = src >> 48;
93 dst[7] = src >> 56;
94}
95#endif // USE_SIMPLE_LITTLE_ENDIAN
96//-----------------------------------------------------------------------------
97const uint16_t MBR_SIGNATURE = 0xAA55;
98const uint16_t PBR_SIGNATURE = 0xAA55;
99
100typedef struct mbrPartition
101{
102 uint8_t boot;
103 uint8_t beginCHS[3];
104 uint8_t type;
105 uint8_t endCHS[3];
106 uint8_t relativeSectors[4];
107 uint8_t totalSectors[4];
109//-----------------------------------------------------------------------------
111{
112 uint8_t bootCode[446];
114 uint8_t signature[2];
116//-----------------------------------------------------------------------------
118{
119 uint8_t jmpInstruction[3];
120 char oemName[8];
121 uint8_t bpb[109];
122 uint8_t bootCode[390];
123 uint8_t signature[2];
125//-----------------------------------------------------------------------------
126typedef struct
127{
128 uint8_t type;
129 uint8_t data[31];
131//=============================================================================
132typedef struct
133{
134 uint64_t position;
135 uint32_t cluster;
136} fspos_t;
137//=============================================================================
138const uint8_t EXTENDED_BOOT_SIGNATURE = 0X29;
140{
141 uint8_t bytesPerSector[2];
144 uint8_t fatCount;
146 uint8_t totalSectors16[2];
147 uint8_t mediaType;
148 uint8_t sectorsPerFat16[2];
150 uint8_t headCount[2];
151 uint8_t hidddenSectors[4];
152 uint8_t totalSectors32[4];
153
155 uint8_t extReserved;
158 uint8_t volumeLabel[11];
159 uint8_t volumeType[8];
161//-----------------------------------------------------------------------------
163{
164 uint8_t bytesPerSector[2];
167 uint8_t fatCount;
169 uint8_t totalSectors16[2];
170 uint8_t mediaType;
171 uint8_t sectorsPerFat16[2];
173 uint8_t headCount[2];
174 uint8_t hidddenSectors[4];
175 uint8_t totalSectors32[4];
176
177 uint8_t sectorsPerFat32[4];
178 uint8_t fat32Flags[2];
179 uint8_t fat32Version[2];
183 uint8_t fat32Reserved[12];
184
186 uint8_t extReserved;
189 uint8_t volumeLabel[11];
190 uint8_t volumeType[8];
192//-----------------------------------------------------------------------------
194{
195 uint8_t jmpInstruction[3];
196 char oemName[8];
197 union {
198 uint8_t bpb[109];
202 uint8_t bootCode[390];
203 uint8_t signature[2];
205//-----------------------------------------------------------------------------
206const uint32_t FSINFO_LEAD_SIGNATURE = 0X41615252;
207const uint32_t FSINFO_STRUCT_SIGNATURE = 0x61417272;
208const uint32_t FSINFO_TRAIL_SIGNATURE = 0xAA550000;
209typedef struct FsInfoSector
210{
211 uint8_t leadSignature[4];
212 uint8_t reserved1[480];
213 uint8_t structSignature[4];
214 uint8_t freeCount[4];
215 uint8_t nextFree[4];
216 uint8_t reserved2[12];
217 uint8_t trailSignature[4];
219//-----------------------------------------------------------------------------
221const uint8_t FAT_NAME_DELETED = 0XE5;
223const uint8_t FAT_NAME_FREE = 0X00;
224const uint8_t FAT_ATTRIB_READ_ONLY = 0x01;
225const uint8_t FAT_ATTRIB_HIDDEN = 0x02;
226const uint8_t FAT_ATTRIB_SYSTEM = 0x04;
227const uint8_t FAT_ATTRIB_LABEL = 0x08;
228const uint8_t FAT_ATTRIB_DIRECTORY = 0x10;
229const uint8_t FAT_ATTRIB_ARCHIVE = 0x20;
230const uint8_t FAT_ATTRIB_LONG_NAME = 0X0F;
232const uint8_t FAT_CASE_LC_BASE = 0X08;
234const uint8_t FAT_CASE_LC_EXT = 0X10;
235
236typedef struct
237{
238 uint8_t name[11];
239 uint8_t attributes;
240 uint8_t caseFlags;
242 uint8_t createTime[2];
243 uint8_t createDate[2];
244 uint8_t accessDate[2];
245 uint8_t firstClusterHigh[2];
246 uint8_t modifyTime[2];
247 uint8_t modifyDate[2];
248 uint8_t firstClusterLow[2];
249 uint8_t fileSize[4];
250} DirFat_t;
251
252static inline bool isFileDir(const DirFat_t *dir)
253{
254 return (dir->attributes & (FAT_ATTRIB_DIRECTORY | FAT_ATTRIB_LABEL)) == 0;
255}
256static inline bool isFileOrSubdir(const DirFat_t *dir)
257{
258 return (dir->attributes & FAT_ATTRIB_LABEL) == 0;
259}
260static inline uint8_t isLongName(const DirFat_t *dir)
261{
262 return dir->attributes == FAT_ATTRIB_LONG_NAME;
263}
264static inline bool isSubdir(const DirFat_t *dir)
265{
267}
268//-----------------------------------------------------------------------------
274const uint8_t FAT_ORDER_LAST_LONG_ENTRY = 0X40;
275
276typedef struct
277{
278 uint8_t order;
279 uint8_t unicode1[10];
280 uint8_t attributes;
281 uint8_t mustBeZero1;
282 uint8_t checksum;
283 uint8_t unicode2[12];
284 uint8_t mustBeZero2[2];
285 uint8_t unicode3[4];
286} DirLfn_t;
287//=============================================================================
288inline uint32_t exFatChecksum(uint32_t sum, uint8_t data)
289{
290 return (sum << 31) + (sum >> 1) + data;
291}
292//-----------------------------------------------------------------------------
294{
295 uint8_t mustBeZero[53];
296 uint8_t partitionOffset[8];
297 uint8_t volumeLength[8];
298 uint8_t fatOffset[4];
299 uint8_t fatLength[4];
301 uint8_t clusterCount[4];
305 uint8_t volumeFlags[2];
309 uint8_t driveSelect;
311 uint8_t reserved[7];
313//-----------------------------------------------------------------------------
314typedef struct ExFatBootSector
315{
316 uint8_t jmpInstruction[3];
317 char oemName[8];
319 uint8_t bootCode[390];
320 uint8_t signature[2];
322//-----------------------------------------------------------------------------
323const uint32_t EXFAT_EOC = 0XFFFFFFFF;
324
325const uint8_t EXFAT_TYPE_BITMAP = 0X81;
326typedef struct
327{
328 uint8_t type;
329 uint8_t flags;
330 uint8_t reserved[18];
331 uint8_t firstCluster[4];
332 uint8_t size[8];
334//-----------------------------------------------------------------------------
335const uint8_t EXFAT_TYPE_UPCASE = 0X82;
336typedef struct
337{
338 uint8_t type;
339 uint8_t reserved1[3];
340 uint8_t checksum[4];
341 uint8_t reserved2[12];
342 uint8_t firstCluster[4];
343 uint8_t size[8];
345//-----------------------------------------------------------------------------
346const uint8_t EXFAT_TYPE_LABEL = 0X83;
347typedef struct
348{
349 uint8_t type;
350 uint8_t labelLength;
351 uint8_t unicode[22];
352 uint8_t reserved[8];
353} DirLabel_t;
354//-----------------------------------------------------------------------------
355const uint8_t EXFAT_TYPE_FILE = 0X85;
356const uint8_t EXFAT_ATTRIB_READ_ONLY = 0x01;
357const uint8_t EXFAT_ATTRIB_HIDDEN = 0x02;
358const uint8_t EXFAT_ATTRIB_SYSTEM = 0x04;
359const uint8_t EXFAT_ATTRIB_RESERVED = 0x08;
360const uint8_t EXFAT_ATTRIB_DIRECTORY = 0x10;
361const uint8_t EXFAT_ATTRIB_ARCHIVE = 0x20;
362
363typedef struct
364{
365 uint8_t type;
366 uint8_t setCount;
367 uint8_t setChecksum[2];
368 uint8_t attributes[2];
369 uint8_t reserved1[2];
370 uint8_t createTime[2];
371 uint8_t createDate[2];
372 uint8_t modifyTime[2];
373 uint8_t modifyDate[2];
374 uint8_t accessTime[2];
375 uint8_t accessDate[2];
381 uint8_t reserved2[7];
382} DirFile_t;
383
384const uint8_t EXFAT_TYPE_STREAM = 0XC0;
385const uint8_t EXFAT_FLAG_ALWAYS1 = 0x01;
386const uint8_t EXFAT_FLAG_CONTIGUOUS = 0x02;
387typedef struct
388{
389 uint8_t type;
390 uint8_t flags;
391 uint8_t reserved1;
392 uint8_t nameLength;
393 uint8_t nameHash[2];
394 uint8_t reserved2[2];
395 uint8_t validLength[8];
396 uint8_t reserved3[4];
397 uint8_t firstCluster[4];
398 uint8_t dataLength[8];
400
401const uint8_t EXFAT_TYPE_NAME = 0XC1;
402const uint8_t EXFAT_MAX_NAME_LENGTH = 255;
403typedef struct
404{
405 uint8_t type;
406 uint8_t mustBeZero;
407 uint8_t unicode[30];
408} DirName_t;
409#endif // FsStructs_h
struct FsInfoSector FsInfo_t
uint32_t getLe32(const uint8_t *src)
Definition FsStructs.h:37
const uint8_t FAT_ATTRIB_READ_ONLY
Definition FsStructs.h:224
const uint8_t EXFAT_TYPE_STREAM
Definition FsStructs.h:384
const uint8_t FAT_ATTRIB_SYSTEM
Definition FsStructs.h:226
uint64_t getLe64(const uint8_t *src)
Definition FsStructs.h:41
void setLe32(uint8_t *dst, uint32_t src)
Definition FsStructs.h:50
void setLe16(uint8_t *dst, uint16_t src)
Definition FsStructs.h:45
const uint32_t FSINFO_LEAD_SIGNATURE
Definition FsStructs.h:206
void setLe64(uint8_t *dst, uint64_t src)
Definition FsStructs.h:54
const uint8_t EXFAT_FLAG_CONTIGUOUS
Definition FsStructs.h:386
const uint8_t FAT_ATTRIB_LONG_NAME
Definition FsStructs.h:230
const uint8_t EXFAT_TYPE_UPCASE
Definition FsStructs.h:335
const uint32_t FSINFO_TRAIL_SIGNATURE
Definition FsStructs.h:208
const uint32_t FSINFO_STRUCT_SIGNATURE
Definition FsStructs.h:207
const uint8_t FAT_NAME_FREE
Definition FsStructs.h:223
struct partitionBootSector pbs_t
struct biosParameterBlockExFat BpbExFat_t
static bool isFileDir(const DirFat_t *dir)
Definition FsStructs.h:252
const uint8_t EXFAT_ATTRIB_DIRECTORY
Definition FsStructs.h:360
const uint8_t EXFAT_TYPE_FILE
Definition FsStructs.h:355
uint32_t exFatChecksum(uint32_t sum, uint8_t data)
Definition FsStructs.h:288
const uint8_t EXFAT_MAX_NAME_LENGTH
Definition FsStructs.h:402
const uint8_t EXFAT_ATTRIB_READ_ONLY
Definition FsStructs.h:356
const uint8_t FAT_ATTRIB_LABEL
Definition FsStructs.h:227
static bool isFileOrSubdir(const DirFat_t *dir)
Definition FsStructs.h:256
const uint8_t FAT_CASE_LC_BASE
Definition FsStructs.h:232
const uint8_t EXTENDED_BOOT_SIGNATURE
Definition FsStructs.h:138
uint16_t getLe16(const uint8_t *src)
Definition FsStructs.h:33
const uint8_t FAT_ORDER_LAST_LONG_ENTRY
Definition FsStructs.h:274
struct biosParameterBlockFat32 BpbFat32_t
struct ExFatBootSector ExFatPbs_t
const uint8_t FAT_ATTRIB_ARCHIVE
Definition FsStructs.h:229
struct masterBootRecordSector MbrSector_t
void lbaToMbrChs(uint8_t *chs, uint32_t capacityMB, uint32_t lba)
Definition FsStructs.cpp:28
const uint8_t EXFAT_TYPE_NAME
Definition FsStructs.h:401
const uint16_t MBR_SIGNATURE
Definition FsStructs.h:97
struct mbrPartition MbrPart_t
const uint16_t PBR_SIGNATURE
Definition FsStructs.h:98
const uint8_t FAT_CASE_LC_EXT
Definition FsStructs.h:234
const uint8_t EXFAT_TYPE_LABEL
Definition FsStructs.h:346
const uint8_t EXFAT_ATTRIB_ARCHIVE
Definition FsStructs.h:361
struct partitionBootSectorFat PbsFat_t
static bool isSubdir(const DirFat_t *dir)
Definition FsStructs.h:264
static uint8_t isLongName(const DirFat_t *dir)
Definition FsStructs.h:260
const uint8_t EXFAT_ATTRIB_HIDDEN
Definition FsStructs.h:357
const uint8_t EXFAT_ATTRIB_SYSTEM
Definition FsStructs.h:358
const uint8_t EXFAT_FLAG_ALWAYS1
Definition FsStructs.h:385
const uint8_t FAT_ATTRIB_HIDDEN
Definition FsStructs.h:225
const uint8_t EXFAT_ATTRIB_RESERVED
Definition FsStructs.h:359
const uint8_t EXFAT_TYPE_BITMAP
Definition FsStructs.h:325
const uint32_t EXFAT_EOC
Definition FsStructs.h:323
const uint8_t FAT_NAME_DELETED
Definition FsStructs.h:221
const uint8_t FAT_ATTRIB_DIRECTORY
Definition FsStructs.h:228
struct biosParameterBlockFat16 BpbFat16_t
unsigned char reserved3
Definition SdCardInfo.h:41
unsigned char reserved
Definition SdCardInfo.h:21
unsigned char reserved2
Definition SdCardInfo.h:16
unsigned char reserved1
Definition SdCardInfo.h:1
Definition FsStructs.h:327
uint8_t type
Definition FsStructs.h:328
uint8_t flags
Definition FsStructs.h:329
Definition FsStructs.h:237
uint8_t caseFlags
Definition FsStructs.h:240
uint8_t attributes
Definition FsStructs.h:239
uint8_t createTimeMs
Definition FsStructs.h:241
Definition FsStructs.h:364
uint8_t createTimeMs
Definition FsStructs.h:376
uint8_t type
Definition FsStructs.h:365
uint8_t modifyTimeMs
Definition FsStructs.h:377
uint8_t setCount
Definition FsStructs.h:366
uint8_t createTimezone
Definition FsStructs.h:378
uint8_t accessTimezone
Definition FsStructs.h:380
uint8_t modifyTimezone
Definition FsStructs.h:379
Definition FsStructs.h:127
uint8_t type
Definition FsStructs.h:128
Definition FsStructs.h:348
uint8_t labelLength
Definition FsStructs.h:350
uint8_t type
Definition FsStructs.h:349
Definition FsStructs.h:277
uint8_t mustBeZero1
Definition FsStructs.h:281
uint8_t checksum
Definition FsStructs.h:282
uint8_t attributes
Definition FsStructs.h:280
uint8_t order
Definition FsStructs.h:278
Definition FsStructs.h:404
uint8_t type
Definition FsStructs.h:405
uint8_t mustBeZero
Definition FsStructs.h:406
Definition FsStructs.h:388
uint8_t nameLength
Definition FsStructs.h:392
uint8_t reserved1
Definition FsStructs.h:391
uint8_t type
Definition FsStructs.h:389
uint8_t flags
Definition FsStructs.h:390
Definition FsStructs.h:337
uint8_t type
Definition FsStructs.h:338
Definition FsStructs.h:315
BpbExFat_t bpb
Definition FsStructs.h:318
uint8_t jmpInstruction[3]
Definition FsStructs.h:316
uint8_t signature[2]
Definition FsStructs.h:320
char oemName[8]
Definition FsStructs.h:317
uint8_t bootCode[390]
Definition FsStructs.h:319
Definition FsStructs.h:210
uint8_t nextFree[4]
Definition FsStructs.h:215
uint8_t structSignature[4]
Definition FsStructs.h:213
uint8_t trailSignature[4]
Definition FsStructs.h:217
uint8_t reserved2[12]
Definition FsStructs.h:216
uint8_t freeCount[4]
Definition FsStructs.h:214
uint8_t reserved1[480]
Definition FsStructs.h:212
uint8_t leadSignature[4]
Definition FsStructs.h:211
Definition FsStructs.h:294
uint8_t volumeFlags[2]
Definition FsStructs.h:305
uint8_t numberOfFats
Definition FsStructs.h:308
uint8_t clusterCount[4]
Definition FsStructs.h:301
uint8_t clusterHeapOffset[4]
Definition FsStructs.h:300
uint8_t fileSystemRevision[2]
Definition FsStructs.h:304
uint8_t mustBeZero[53]
Definition FsStructs.h:295
uint8_t volumeSerialNumber[4]
Definition FsStructs.h:303
uint8_t driveSelect
Definition FsStructs.h:309
uint8_t fatOffset[4]
Definition FsStructs.h:298
uint8_t sectorsPerClusterShift
Definition FsStructs.h:307
uint8_t volumeLength[8]
Definition FsStructs.h:297
uint8_t partitionOffset[8]
Definition FsStructs.h:296
uint8_t bytesPerSectorShift
Definition FsStructs.h:306
uint8_t percentInUse
Definition FsStructs.h:310
uint8_t reserved[7]
Definition FsStructs.h:311
uint8_t fatLength[4]
Definition FsStructs.h:299
uint8_t rootDirectoryCluster[4]
Definition FsStructs.h:302
Definition FsStructs.h:140
uint8_t totalSectors32[4]
Definition FsStructs.h:152
uint8_t fatCount
Definition FsStructs.h:144
uint8_t rootDirEntryCount[2]
Definition FsStructs.h:145
uint8_t bytesPerSector[2]
Definition FsStructs.h:141
uint8_t totalSectors16[2]
Definition FsStructs.h:146
uint8_t volumeLabel[11]
Definition FsStructs.h:158
uint8_t extSignature
Definition FsStructs.h:156
uint8_t volumeType[8]
Definition FsStructs.h:159
uint8_t hidddenSectors[4]
Definition FsStructs.h:151
uint8_t sectorsPerFat16[2]
Definition FsStructs.h:148
uint8_t reservedSectorCount[2]
Definition FsStructs.h:143
uint8_t sectorsPerTrtack[2]
Definition FsStructs.h:149
uint8_t extReserved
Definition FsStructs.h:155
uint8_t mediaType
Definition FsStructs.h:147
uint8_t sectorsPerCluster
Definition FsStructs.h:142
uint8_t volumeSerialNumber[4]
Definition FsStructs.h:157
uint8_t physicalDriveNumber
Definition FsStructs.h:154
uint8_t headCount[2]
Definition FsStructs.h:150
Definition FsStructs.h:163
uint8_t totalSectors16[2]
Definition FsStructs.h:169
uint8_t volumeSerialNumber[4]
Definition FsStructs.h:188
uint8_t fat32BackBootSector[2]
Definition FsStructs.h:182
uint8_t sectorsPerCluster
Definition FsStructs.h:165
uint8_t sectorsPerFat32[4]
Definition FsStructs.h:177
uint8_t volumeType[8]
Definition FsStructs.h:190
uint8_t totalSectors32[4]
Definition FsStructs.h:175
uint8_t sectorsPerTrtack[2]
Definition FsStructs.h:172
uint8_t extSignature
Definition FsStructs.h:187
uint8_t sectorsPerFat16[2]
Definition FsStructs.h:171
uint8_t fat32Reserved[12]
Definition FsStructs.h:183
uint8_t fat32RootCluster[4]
Definition FsStructs.h:180
uint8_t extReserved
Definition FsStructs.h:186
uint8_t fat32Version[2]
Definition FsStructs.h:179
uint8_t rootDirEntryCount[2]
Definition FsStructs.h:168
uint8_t reservedSectorCount[2]
Definition FsStructs.h:166
uint8_t fat32FSInfoSector[2]
Definition FsStructs.h:181
uint8_t volumeLabel[11]
Definition FsStructs.h:189
uint8_t hidddenSectors[4]
Definition FsStructs.h:174
uint8_t physicalDriveNumber
Definition FsStructs.h:185
uint8_t bytesPerSector[2]
Definition FsStructs.h:164
uint8_t fatCount
Definition FsStructs.h:167
uint8_t headCount[2]
Definition FsStructs.h:173
uint8_t fat32Flags[2]
Definition FsStructs.h:178
uint8_t mediaType
Definition FsStructs.h:170
Definition FsStructs.h:133
uint32_t cluster
Definition FsStructs.h:135
uint64_t position
Definition FsStructs.h:134
Definition FsStructs.h:111
MbrPart_t part[4]
Definition FsStructs.h:113
uint8_t signature[2]
Definition FsStructs.h:114
uint8_t bootCode[446]
Definition FsStructs.h:112
Definition FsStructs.h:101
uint8_t beginCHS[3]
Definition FsStructs.h:103
uint8_t boot
Definition FsStructs.h:102
uint8_t type
Definition FsStructs.h:104
uint8_t relativeSectors[4]
Definition FsStructs.h:106
uint8_t totalSectors[4]
Definition FsStructs.h:107
uint8_t endCHS[3]
Definition FsStructs.h:105
Definition FsStructs.h:194
uint8_t bootCode[390]
Definition FsStructs.h:202
uint8_t jmpInstruction[3]
Definition FsStructs.h:195
BpbFat32_t bpb32
Definition FsStructs.h:200
uint8_t bpb[109]
Definition FsStructs.h:198
uint8_t signature[2]
Definition FsStructs.h:203
BpbFat16_t bpb16
Definition FsStructs.h:199
char oemName[8]
Definition FsStructs.h:196
Definition FsStructs.h:118
uint8_t bpb[109]
Definition FsStructs.h:121
char oemName[8]
Definition FsStructs.h:120
uint8_t bootCode[390]
Definition FsStructs.h:122
uint8_t signature[2]
Definition FsStructs.h:123
uint8_t jmpInstruction[3]
Definition FsStructs.h:119