|
|
1.1 root 1: /*
2: * msdos common header file
3: * [obtained from mtools -wfj]
4: * how to decipher DOS disk structures in coexisting with DOS
5: */
6:
7: #define MSECTOR_SIZE 512 /* MSDOS sector size in bytes */
8: #define MDIR_SIZE 32 /* MSDOS directory size in bytes */
9: #define MAX_CLUSTER 8192 /* largest cluster size */
10: #define MAX_PATH 128 /* largest MSDOS path length */
11: #define MAX_DIR_SECS 64 /* largest directory (in sectors) */
12:
13: #define NEW 1
14: #define OLD 0
15:
16: struct directory {
17: unsigned char name[8]; /* file name */
18: unsigned char ext[3]; /* file extension */
19: unsigned char attr; /* attribute byte */
20: unsigned char reserved[10]; /* ?? */
21: unsigned char time[2]; /* time stamp */
22: unsigned char date[2]; /* date stamp */
23: unsigned char start[2]; /* starting cluster number */
24: unsigned char size[4]; /* size of the file */
25: };
26:
27: struct bootsector {
28: unsigned char jump[3]; /* Jump to boot code */
29: unsigned char banner[8]; /* OEM name & version */
30: unsigned char secsiz[2]; /* Bytes per sector hopefully 512 */
31: unsigned char clsiz; /* Cluster size in sectors */
32: unsigned char nrsvsect[2]; /* Number of reserved (boot) sectors */
33: unsigned char nfat; /* Number of FAT tables hopefully 2 */
34: unsigned char dirents[2]; /* Number of directory slots */
35: unsigned char psect[2]; /* Total sectors on disk */
36: unsigned char descr; /* Media descriptor=first byte of FAT */
37: unsigned char fatlen[2]; /* Sectors in FAT */
38: unsigned char nsect[2]; /* Sectors/track */
39: unsigned char nheads[2]; /* Heads */
40: unsigned char nhs[4]; /* number of hidden sectors */
41: unsigned char bigsect[4]; /* big total sectors */
42: unsigned char junk[476]; /* who cares? */
43: };
44:
45: /* DOS partition table -- located in boot block */
46:
47: #define DOSBBSECTOR 0 /* DOS boot block relative sector number */
48: #define DOSPARTOFF 446
49: #define NDOSPART 4
50:
51: struct dos_partition {
52: unsigned char dp_flag; /* bootstrap flags */
53: unsigned char dp_shd; /* starting head */
54: unsigned char dp_ssect; /* starting sector */
55: unsigned char dp_scyl; /* starting cylinder */
56: unsigned char dp_typ; /* partition type */
57: #define DOSPTYP_386BSD 0xa5 /* 386BSD partition type */
58: unsigned char dp_ehd; /* end head */
59: unsigned char dp_esect; /* end sector */
60: unsigned char dp_ecyl; /* end cylinder */
61: unsigned long dp_start; /* absolute starting sector number */
62: unsigned long dp_size; /* partition size in sectors */
63: } dos_partitions[NDOSPART];
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.