|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1982, 1990 The Regents of the University of California. ! 3: * All rights reserved. ! 4: * ! 5: * Redistribution is only permitted until one year after the first shipment ! 6: * of 4.4BSD by the Regents. Otherwise, redistribution and use in source and ! 7: * binary forms are permitted provided that: (1) source distributions retain ! 8: * this entire copyright notice and comment, and (2) distributions including ! 9: * binaries display the following acknowledgement: This product includes ! 10: * software developed by the University of California, Berkeley and its ! 11: * contributors'' in the documentation or other materials provided with the ! 12: * distribution and in all advertising materials mentioning features or use ! 13: * of this software. Neither the name of the University nor the names of ! 14: * its contributors may be used to endorse or promote products derived from ! 15: * this software without specific prior written permission. ! 16: * THIS SOFTWARE IS PROVIDED AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED ! 17: * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF ! 18: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 19: * ! 20: * @(#)device.h 7.2 (Berkeley) 5/25/90 ! 21: */ ! 22: ! 23: struct driver { ! 24: int (*d_init)(); ! 25: char *d_name; ! 26: int (*d_start)(); ! 27: int (*d_go)(); ! 28: int (*d_intr)(); ! 29: int (*d_done)(); ! 30: }; ! 31: ! 32: struct hp_ctlr { ! 33: struct driver *hp_driver; ! 34: int hp_unit; ! 35: int hp_alive; ! 36: char *hp_addr; ! 37: int hp_flags; ! 38: int hp_ipl; ! 39: }; ! 40: ! 41: struct hp_device { ! 42: struct driver *hp_driver; ! 43: struct driver *hp_cdriver; ! 44: int hp_unit; ! 45: int hp_ctlr; ! 46: int hp_slave; ! 47: char *hp_addr; ! 48: int hp_dk; ! 49: int hp_flags; ! 50: int hp_alive; ! 51: int hp_ipl; ! 52: }; ! 53: ! 54: struct devqueue { ! 55: struct devqueue *dq_forw; ! 56: struct devqueue *dq_back; ! 57: int dq_ctlr; ! 58: int dq_unit; ! 59: int dq_slave; ! 60: struct driver *dq_driver; ! 61: }; ! 62: ! 63: struct hp_hw { ! 64: char *hw_addr; /* physical address of registers */ ! 65: short hw_sc; /* select code (if applicable) */ ! 66: short hw_type; /* type (defined below) */ ! 67: short hw_id; /* HW returned id */ ! 68: short hw_id2; /* secondary HW id (displays) */ ! 69: char *hw_name; /* HP product name */ ! 70: }; ! 71: ! 72: #define MAX_CTLR 16 /* Totally arbitrary */ ! 73: #define MAXSLAVES 8 /* Currently the HPIB limit */ ! 74: ! 75: #define WILD_CARD_CTLR 0 ! 76: ! 77: /* A controller is a card which can have one or more slaves attached */ ! 78: #define CONTROLLER 0x10 ! 79: #define HPIB 0x16 ! 80: #define SCSI 0x17 ! 81: #define VME 0x18 ! 82: #define FLINK 0x19 ! 83: ! 84: /* Slaves are devices which attach to controllers, e.g. disks, tapes */ ! 85: #define RD 0x2a ! 86: #define PPI 0x2b ! 87: #define CT 0x2c ! 88: ! 89: /* These are not controllers, but may have their own HPIB address */ ! 90: #define BITMAP 1 ! 91: #define NET 2 ! 92: #define FPA 4 ! 93: #define MISC 5 ! 94: #define KEYBOARD 6 ! 95: #define COMMDCA 7 ! 96: #define COMMDCM 8 ! 97: #define COMMDCL 9 ! 98: #define PPORT 10 ! 99: ! 100: #ifdef KERNEL ! 101: extern struct hp_ctlr hp_cinit[]; ! 102: extern struct hp_device hp_dinit[]; ! 103: extern struct hp_hw sc_table[]; ! 104: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.