1: /*
   2:  * Copyright (c) 1982, 1986 Regents of the University of California.
   3:  * All rights reserved.  The Berkeley software License Agreement
   4:  * specifies the terms and conditions for redistribution.
   5:  *
   6:  *	@(#)hpreg.h	7.1 (Berkeley) 6/5/86
   7:  */
   8: 
   9: struct hpdevice
  10: {
  11:     int hpcs1;      /* control and status register 1 */
  12:     int hpds;       /* drive status */
  13:     int hper1;      /* error register 1 */
  14:     int hpmr;       /* maintenance */
  15:     int hpas;       /* attention summary */
  16:     int hpda;       /* desired address register */
  17:     int hpdt;       /* drive type */
  18:     int hpla;       /* look ahead */
  19:     int hpsn;       /* serial number */
  20:     int hpof;       /* offset register */
  21:     int hpdc;       /* desired cylinder address register */
  22:     int hpcc;       /* current cylinder */
  23: #define hphr    hpcc        /* holding register */
  24: /* on an rp drive, mr2 is called er2 and er2 is called er3 */
  25: /* we use rm terminology here */
  26:     int hpmr2;      /* maintenance register 2 */
  27:     int hper2;      /* error register 2 */
  28:     int hpec1;      /* burst error bit position */
  29:     int hpec2;      /* burst error bit pattern */
  30: };
  31: 
  32: /* hpcs1 */
  33: #define HP_SC   0100000     /* special condition */
  34: #define HP_TRE  0040000     /* transfer error */
  35: #define HP_DVA  0004000     /* drive available */
  36: #define HP_RDY  0000200     /* controller ready */
  37: #define HP_IE   0000100     /* interrupt enable */
  38: /* bits 5-1 are the command */
  39: #define HP_GO   0000001
  40: 
  41: /* commands */
  42: #define HP_NOP      000     /* no operation */
  43: #define HP_UNLOAD   002     /* offline drive */
  44: #define HP_SEEK     004     /* seek */
  45: #define HP_RECAL    006     /* recalibrate */
  46: #define HP_DCLR     010     /* drive clear */
  47: #define HP_RELEASE  012     /* release */
  48: #define HP_OFFSET   014     /* offset */
  49: #define HP_RTC      016     /* return to centerline */
  50: #define HP_PRESET   020     /* read-in preset */
  51: #define HP_PACK     022     /* pack acknowledge */
  52: #define HP_SEARCH   030     /* search */
  53: #define HP_DIAGNOSE 034     /* diagnose drive */
  54: #define HP_WCDATA   050     /* write check data */
  55: #define HP_WCHDR    052     /* write check header and data */
  56: #define HP_WCOM     060     /* write data */
  57: #define HP_WHDR     062     /* write header */
  58: #define HP_WTRACKD  064     /* write track descriptor */
  59: #define HP_RCOM     070     /* read data */
  60: #define HP_RHDR     072     /* read header and data */
  61: #define HP_RTRACKD  074     /* read track descriptor */
  62: 
  63: /* hpds */
  64: #define HPDS_ATA    0100000     /* attention active */
  65: #define HPDS_ERR    0040000     /* composite drive error */
  66: #define HPDS_PIP    0020000     /* positioning in progress */
  67: #define HPDS_MOL    0010000     /* medium on line */
  68: #define HPDS_WRL    0004000     /* write locked */
  69: #define HPDS_LST    0002000     /* last sector transferred */
  70: #define HPDS_PGM    0001000     /* programmable */
  71: #define HPDS_DPR    0000400     /* drive present */
  72: #define HPDS_DRY    0000200     /* drive ready */
  73: #define HPDS_VV     0000100     /* volume valid */
  74: /* bits 1-5 are spare */
  75: #define HPDS_OM     0000001     /* offset mode */
  76: 
  77: #define HPDS_DREADY (HPDS_DPR|HPDS_DRY|HPDS_MOL|HPDS_VV)
  78: #define HPDS_BITS \
  79: "\10\20ATA\17ERR\16PIP\15MOL\14WRL\13LST\12PGM\11DPR\10DRY\7VV\1OM"
  80: 
  81: /* hper1 */
  82: #define HPER1_DCK   0100000     /* data check */
  83: #define HPER1_UNS   0040000     /* drive unsafe */
  84: #define HPER1_OPI   0020000     /* operation incomplete */
  85: #define HPER1_DTE   0010000     /* drive timing error */
  86: #define HPER1_WLE   0004000     /* write lock error */
  87: #define HPER1_IAE   0002000     /* invalid address error */
  88: #define HPER1_AOE   0001000     /* address overflow error */
  89: #define HPER1_HCRC  0000400     /* header crc error */
  90: #define HPER1_HCE   0000200     /* header compare error */
  91: #define HPER1_ECH   0000100     /* ecc hard error */
  92: #define HPER1_WCF   0000040     /* write clock fail */
  93: #define HPER1_FER   0000020     /* format error */
  94: #define HPER1_PAR   0000010     /* parity error */
  95: #define HPER1_RMR   0000004     /* register modification refused */
  96: #define HPER1_ILR   0000002     /* illegal register */
  97: #define HPER1_ILF   0000001     /* illegal function */
  98: 
  99: #define HPER1_BITS \
 100: "\10\20DCK\17UNS\16OPI\15DTE\14WLE\13IAE\12AOE\11HCRC\10HCE\
 101: \7ECH\6WCF\5FER\4PAR\3RMR\2ILR\1ILF"
 102: #define HPER1_HARD    \
 103:     (HPER1_WLE|HPER1_IAE|HPER1_AOE|\
 104:      HPER1_FER|HPER1_RMR|HPER1_ILR|HPER1_ILF)
 105: 
 106: /* hper2 */
 107: #define HPER2_BSE   0100000     /* bad sector error */
 108: #define HPER2_SKI   0040000     /* seek incomplete */
 109: #define HPER2_OPE   0020000     /* operator plug error */
 110: #define HPER2_IVC   0010000     /* invalid command */
 111: #define HPER2_LSC   0004000     /* loss of system clock */
 112: #define HPER2_LBC   0002000     /* loss of bit check */
 113: #define HPER2_DVC   0000200     /* device check */
 114: #define HPER2_SSE   0000040     /* skip sector error (rm80) */
 115: #define HPER2_DPE   0000010     /* data parity error */
 116: 
 117: #define HPER2_BITS \
 118: "\10\20BSE\17SKI\16OPE\15IVC\14LSC\13LBC\10DVC\6SSE\4DPE"
 119: #define HPER2_HARD    (HPER2_OPE)
 120: 
 121: /* hpof */
 122: #define HPOF_CMO    0100000     /* command modifier */
 123: #define HPOF_MTD    0040000     /* move track descriptor */
 124: #define HPOF_FMT22  0010000     /* 16 bit format */
 125: #define HPOF_ECI    0004000     /* ecc inhibit */
 126: #define HPOF_HCI    0002000     /* header compare inhibit */
 127: #define HPOF_SSEI   0001000     /* skip sector inhibit */
 128: 
 129: #define HPOF_P400   020     /*  +400 uinches */
 130: #define HPOF_M400   0220        /*  -400 uinches */
 131: #define HPOF_P800   040     /*  +800 uinches */
 132: #define HPOF_M800   0240        /*  -800 uinches */
 133: #define HPOF_P1200  060     /* +1200 uinches */
 134: #define HPOF_M1200  0260        /* -1200 uinches */
 135: 
 136: /* hphr (alias hpcc) commands */
 137: #define HPHR_MAXCYL 0x8017      /* maximum cylinder address */
 138: #define HPHR_MAXTRAK    0x8018      /* maximum track address */
 139: #define HPHR_MAXSECT    0x8019      /* maximum sector address */
 140: #define HPHR_FMTENABLE  0xffff      /* enable format command in cs1 */
 141: 
 142: /* hpmr */
 143: #define HPMR_SZ     0174000     /* ML11 system size */
 144: #define HPMR_ARRTYP 0002000     /* ML11 array type */
 145: #define HPMR_TRT    0001400     /* ML11 transfer rate */
 146: 
 147: /*
 148:  * Systems Industries kludge: use value in
 149:  * the serial # register to figure out real drive type.
 150:  */
 151: #define SIMB_MB 0xff00      /* model byte value */
 152: #define SIMB_S6 0x2000      /* switch s6 */
 153: #define SIMB_LU 0x0007      /* logical unit (should = drive #) */
 154: 
 155: #define SI9775D 0x0700      /* 9775 direct */
 156: #define SI9775M 0x0e00      /* 9775 mapped */
 157: #define SI9730D 0x0b00      /* 9730 direct */
 158: #define SI9730M 0x0d00      /* 9730 mapped */
 159: #define SI9766  0x0300      /* 9766 */
 160: #define SI9762  0x0100      /* 9762 */
 161: #define SICAPD  0x0500      /* Capricorn direct */
 162: #define SICAPN  0x0400      /* Capricorn mapped */
 163: #define SI9751D 0x0f00      /* Eagle direct */
 164: 
 165: #define SIRM03  0x8000      /* RM03 indication */
 166: #define SIRM05  0x0000      /* RM05 pseudo-indication */

Defined struct's

hpdevice defined in line 9; used 50 times

Defined macros

HPDS_ATA defined in line 64; never used
HPDS_BITS defined in line 78; used 3 times
HPDS_DPR defined in line 71; used 1 times
  • in line 77
HPDS_DREADY defined in line 77; used 2 times
HPDS_DRY defined in line 72; used 6 times
HPDS_ERR defined in line 65; used 5 times
HPDS_LST defined in line 69; never used
HPDS_MOL defined in line 67; used 1 times
  • in line 77
HPDS_OM defined in line 75; never used
HPDS_PGM defined in line 70; never used
HPDS_PIP defined in line 66; used 1 times
HPDS_VV defined in line 73; used 5 times
HPDS_WRL defined in line 68; never used
HPER1_AOE defined in line 88; used 1 times
HPER1_DCK defined in line 82; used 6 times
HPER1_DTE defined in line 85; never used
HPER1_ECH defined in line 91; used 4 times
HPER1_FER defined in line 93; used 5 times
HPER1_HARD defined in line 102; used 2 times
HPER1_HCE defined in line 90; used 2 times
HPER1_HCRC defined in line 89; used 3 times
HPER1_IAE defined in line 87; used 1 times
HPER1_ILF defined in line 97; used 1 times
HPER1_ILR defined in line 96; used 1 times
HPER1_OPI defined in line 84; never used
HPER1_PAR defined in line 94; never used
HPER1_RMR defined in line 95; used 1 times
HPER1_UNS defined in line 83; never used
HPER1_WCF defined in line 92; never used
HPER1_WLE defined in line 86; used 3 times
HPER2_BITS defined in line 117; used 5 times
HPER2_BSE defined in line 107; used 4 times
HPER2_DPE defined in line 115; never used
HPER2_DVC defined in line 113; never used
HPER2_HARD defined in line 119; used 2 times
HPER2_IVC defined in line 110; never used
HPER2_LBC defined in line 112; never used
HPER2_LSC defined in line 111; never used
HPER2_OPE defined in line 109; used 1 times
HPER2_SKI defined in line 108; never used
HPER2_SSE defined in line 114; used 2 times
HPHR_FMTENABLE defined in line 140; never used
HPHR_MAXCYL defined in line 137; used 2 times
HPHR_MAXSECT defined in line 139; used 2 times
HPHR_MAXTRAK defined in line 138; used 2 times
HPMR_ARRTYP defined in line 144; used 1 times
HPMR_SZ defined in line 143; used 1 times
HPMR_TRT defined in line 145; used 1 times
HPOF_CMO defined in line 122; never used
HPOF_ECI defined in line 125; never used
HPOF_FMT22 defined in line 124; used 10 times
HPOF_HCI defined in line 126; never used
HPOF_M1200 defined in line 134; used 4 times
HPOF_M400 defined in line 130; used 4 times
HPOF_M800 defined in line 132; used 4 times
HPOF_MTD defined in line 123; never used
HPOF_P1200 defined in line 133; used 4 times
HPOF_P400 defined in line 129; used 4 times
HPOF_P800 defined in line 131; used 4 times
HPOF_SSEI defined in line 127; used 8 times
HP_DIAGNOSE defined in line 53; never used
HP_DVA defined in line 35; used 1 times
HP_GO defined in line 39; used 41 times
HP_IE defined in line 37; never used
HP_NOP defined in line 42; used 6 times
HP_OFFSET defined in line 48; used 2 times
HP_PACK defined in line 51; never used
HP_PRESET defined in line 50; used 6 times
HP_RCOM defined in line 59; used 1 times
HP_RDY defined in line 36; never used
HP_RECAL defined in line 45; used 2 times
HP_RELEASE defined in line 47; used 1 times
HP_RHDR defined in line 60; used 2 times
HP_RTC defined in line 49; used 2 times
HP_RTRACKD defined in line 61; never used
HP_SC defined in line 33; never used
HP_SEARCH defined in line 52; used 1 times
HP_SEEK defined in line 44; used 3 times
HP_TRE defined in line 34; never used
HP_UNLOAD defined in line 43; never used
HP_WCDATA defined in line 54; used 1 times
HP_WCHDR defined in line 55; used 1 times
HP_WCOM defined in line 56; used 2 times
HP_WHDR defined in line 57; used 2 times
HP_WTRACKD defined in line 58; never used
SI9730D defined in line 157; never used
SI9730M defined in line 158; never used
SI9751D defined in line 163; never used
SI9762 defined in line 160; never used
SI9766 defined in line 159; never used
SI9775D defined in line 155; never used
SI9775M defined in line 156; never used
SICAPD defined in line 161; never used
SICAPN defined in line 162; never used
SIMB_LU defined in line 153; used 2 times
SIMB_MB defined in line 151; used 2 times
SIMB_S6 defined in line 152; used 2 times
SIRM03 defined in line 165; used 2 times
SIRM05 defined in line 166; used 2 times
hphr defined in line 23; used 12 times

Usage of this include

Last modified: 1986-06-05
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1613
Valid CSS Valid XHTML 1.0 Strict