| 1 |
typedef struct fat16_s |
|---|
| 2 |
{ |
|---|
| 3 |
unsigned char BS_DrvNum __attribute__((packed)); |
|---|
| 4 |
unsigned char BS_Reserved1 __attribute__((packed)); |
|---|
| 5 |
unsigned char BS_BootSig __attribute__((packed)); |
|---|
| 6 |
|
|---|
| 7 |
unsigned long BS_VolID __attribute__((packed)); |
|---|
| 8 |
unsigned char BS_VolLab[11] __attribute__((packed)); |
|---|
| 9 |
unsigned char BS_FilSysType[8] __attribute__((packed)); |
|---|
| 10 |
|
|---|
| 11 |
unsigned char BootCode[510-62] __attribute__((packed)); |
|---|
| 12 |
|
|---|
| 13 |
unsigned short BS_Signature __attribute__((packed)); |
|---|
| 14 |
} FAT16; |
|---|
| 15 |
|
|---|
| 16 |
typedef struct fat32_s |
|---|
| 17 |
{ |
|---|
| 18 |
unsigned long BPB_FATSz32 __attribute__((packed)); |
|---|
| 19 |
unsigned short BPB_ExtFlags __attribute__((packed)); |
|---|
| 20 |
unsigned short BPB_FSVer __attribute__((packed)); |
|---|
| 21 |
unsigned long BPB_RootClus __attribute__((packed)); |
|---|
| 22 |
unsigned short BPB_FSInfo __attribute__((packed)); |
|---|
| 23 |
unsigned short BPB_BkBootSec __attribute__((packed)); |
|---|
| 24 |
unsigned char BPB_Reserved[12] __attribute__((packed)); |
|---|
| 25 |
|
|---|
| 26 |
unsigned char BS_DrvNum __attribute__((packed)); |
|---|
| 27 |
unsigned char BS_Reserved1 __attribute__((packed)); |
|---|
| 28 |
unsigned char BS_BootSig __attribute__((packed)); |
|---|
| 29 |
|
|---|
| 30 |
unsigned long BS_VolID __attribute__((packed)); |
|---|
| 31 |
unsigned char BS_VolLab[11] __attribute__((packed)); |
|---|
| 32 |
unsigned char BS_FilSysType[8] __attribute__((packed)); |
|---|
| 33 |
|
|---|
| 34 |
unsigned char BootCode[510-90] __attribute__((packed)); |
|---|
| 35 |
|
|---|
| 36 |
unsigned short BS_Signature __attribute__((packed)); |
|---|
| 37 |
} FAT32; |
|---|
| 38 |
|
|---|
| 39 |
typedef struct fat_s |
|---|
| 40 |
{ |
|---|
| 41 |
unsigned char BS_jmpBoot[3] __attribute__((packed)); |
|---|
| 42 |
unsigned char BS_OEMName[8] __attribute__((packed)); |
|---|
| 43 |
|
|---|
| 44 |
unsigned short BPB_BytsPerSec __attribute__((packed)); |
|---|
| 45 |
unsigned char BPB_SecPerClus __attribute__((packed)); |
|---|
| 46 |
unsigned short BPB_RsvdSecCnt __attribute__((packed)); |
|---|
| 47 |
unsigned char BPB_NumFATs __attribute__((packed)); |
|---|
| 48 |
unsigned short BPB_RootEntCnt __attribute__((packed)); |
|---|
| 49 |
unsigned short BPB_TotSec16 __attribute__((packed)); |
|---|
| 50 |
unsigned char BPB_Media __attribute__((packed)); |
|---|
| 51 |
unsigned short BPB_FATSz16 __attribute__((packed)); |
|---|
| 52 |
unsigned short BPB_SecPerTrk __attribute__((packed)); |
|---|
| 53 |
unsigned short BPB_NumHeads __attribute__((packed)); |
|---|
| 54 |
unsigned long BPB_HiddSec __attribute__((packed)); |
|---|
| 55 |
unsigned long BPB_TotSec32 __attribute__((packed)); |
|---|
| 56 |
|
|---|
| 57 |
union |
|---|
| 58 |
{ |
|---|
| 59 |
FAT16 fat16; |
|---|
| 60 |
FAT32 fat32; |
|---|
| 61 |
} fat_type ; |
|---|
| 62 |
|
|---|
| 63 |
} FAT; |
|---|
| 64 |
|
|---|