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