-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstruct.h
More file actions
58 lines (58 loc) · 2.91 KB
/
struct.h
File metadata and controls
58 lines (58 loc) · 2.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <stdint.h>
#pragma pack(push,1)
typedef struct _BootEntry {
unsigned char BS_jmpBoot[3]; /* Assembly instruction to jump to boot code */
unsigned char BS_OEMName[8]; /* OEM Name in ASCII */
unsigned short BPB_BytsPerSec; /* Bytes per sector. Allowed values include 512,
1024, 2048, and 4096 */
unsigned char BPB_SecPerClus; /* Sectors per cluster (data unit). Allowed values
are powers of 2, but the cluster size must be 32KB
or smaller */
unsigned short BPB_RsvdSecCnt; /* Size in sectors of the reserved area */
unsigned char BPB_NumFATs; /* Number of FATs */
unsigned short BPB_RootEntCnt; /* Maximum number of files in the root directory for
FAT12 and FAT16. This is 0 for FAT32 */
unsigned short BPB_TotSec16; /* 16-bit value of number of sectors in file system */
unsigned char BPB_Media; /* Media type */
unsigned short BPB_FATSz16; /* 16-bit size in sectors of each FAT for FAT12 and
FAT16. For FAT32, this field is 0 */
unsigned short BPB_SecPerTrk; /* Sectors per track of storage device */
unsigned short BPB_NumHeads; /* Number of heads in storage device */
uint32_t BPB_HiddSec; /* Number of sectors before the start of partition */
uint32_t BPB_TotSec32; /* 32-bit value of number of sectors in file system.
Either this value or the 16-bit value above must be
0 */
uint32_t BPB_FATSz32; /* 32-bit size in sectors of one FAT */
unsigned short BPB_ExtFlags; /* A flag for FAT */
unsigned short BPB_FSVer; /* The major and minor version number */
uint32_t BPB_RootClus; /* Cluster where the root directory can be
found */
unsigned short BPB_FSInfo; /* Sector where FSINFO structure can be
found */
unsigned short BPB_BkBootSec; /* Sector where backup copy of boot sector is
located */
unsigned char BPB_Reserved[12]; /* Reserved */
unsigned char BS_DrvNum; /* BIOS INT13h drive number */
unsigned char BS_Reserved1; /* Not used */
unsigned char BS_BootSig; /* Extended boot signature to identify if the
next three values are valid */
uint32_t BS_VolID; /* Volume serial number */
unsigned char BS_VolLab[11]; /* Volume label in ASCII. User defines when
creating the file system */
unsigned char BS_FilSysType[8]; /* File system type label in ASCII */
} BootEntry;
typedef struct _DirEntry
{unsigned char DIR_Name[11]; /* File name */
unsigned char DIR_Attr; /* File attributes */
unsigned char DIR_NTRes; /* Reserved */
unsigned char DIR_CrtTimeTenth; /* Created time (tenths of second) */
unsigned short DIR_CrtTime; /* Created time (hours, minutes, seconds) */
unsigned short DIR_CrtDate; /* Created day */
unsigned short DIR_LstAccDate; /* Accessed day */
unsigned short DIR_FstClusHI; /* High 2 bytes of the first cluster address */
unsigned short DIR_WrtTime; /* Written time (hours, minutes, seconds */
unsigned short DIR_WrtDate; /* Written day */
unsigned short DIR_FstClusLO; /* Low 2 bytes of the first cluster address */
uint32_t DIR_FileSize; /* File size in bytes. (0 for directories) */
} DirEntry;
#pragma pack(pop)