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