|
|
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.