|
|
1.1 root 1: /* $Header: /usr/src/sys/i8086/sys/RCS/me.h,v 1.1 88/03/24 17:48:28 src Exp $ */
2: #ifndef ME_H
3: #define ME_H
4: /*
5: * Maynard Hard Disk Controller
6: *
7: * $Log: /usr/src/sys/i8086/sys/RCS/me.h,v $
8: * Revision 1.1 88/03/24 17:48:28 src
9: * Initial revision
10: *
11: * /usr/src/sys/RCS/hd.h,v 1.2 84/06/29 18:02:04
12: */
13:
14: /*
15: * Hard disk (configurable) parameters
16: */
17: #define TBLOCK ((daddr_t) 0)
18: #define TBOFF 0x1A0 /* Disk offset: hd_parm */
19: #define SDEV 0x80 /* Special drive access */
20: #define NPARTN 4 /* 4 partitions/drive */
21: #define PARTN(dev) (dev & 3)
22: #define DRIVE(dev) ((dev & 0177) / NPARTN)
23: #define SYS_DOS 1 /* System Flag: MS-DOS */
24: #define SYS_COH 2 /* Coherent*/
25: typedef unsigned char uchar;
26:
27: /*
28: * Parameters as resident on hard disk
29: */
30: struct hd_parm {
31: uchar hd_vol_id[16]; /* volume id */
32: struct hd_config_s { /* Drive configuration */
33: uchar hdc_cyls_h, hdc_cyls_l; /* # cylinders */
34: uchar hdc_heads; /* # heads */
35: uchar hdc_rwcc_h, hdc_rwcc_l; /* cyl #, reduced write */
36: uchar hdc_wpcc_h, hdc_wpcc_l; /* cyl #, write precomp */
37: uchar hdc_eccl; /* ecc length */
38: uchar hdc_step; /* Stepper option */
39: uchar hdc_nspt; /* # sectors/track */
40: uchar hdc_ship_h, hdc_ship_l; /* Shipping zone cyl */
41: uchar hdc_fill[2];
42: } hd_config;
43: struct hd_partn_s { /* Partition description*/
44: uchar hdp_boot; /* Boot indicator (0x80)*/
45: uchar hdp_bhd,hdp_bsec,hdp_bcyl; /* Begin hd,sec,cyl */
46: uchar hdp_sys; /* System Indicator */
47: uchar hdp_ehd,hdp_esec,hdp_ecyl; /* Ending hd,sec,cyl */
48: /* WARNING: Big Endians have to modify following decl */
49: daddr_t hdp_base; /* Base blk # for part */
50: daddr_t hdp_size; /* # blks in partition */
51: } hd_partn[NPARTN];
52: uchar hd_sig[2];
53: };
54:
55: /*
56: * Parameter subset as resident in memory
57: */
58: struct d_parm {
59: daddr_t d_size; /* Maximum blk# in SDEV */
60: struct hd_config_s d_cfg;
61: struct d_partn_s {
62: daddr_t p_base; /* Base blk # for part */
63: daddr_t p_size; /* # blks in partition */
64: } d_partn[NPARTN];
65: uchar d_init;
66: };
67:
68: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.