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