xref: /original-bsd/sys/luna68k/stand/device.h (revision 28a62f4d)
1c07d497bSakito /*
2c07d497bSakito  * Copyright (c) 1992 OMRON Corporation.
3*28a62f4dSbostic  * Copyright (c) 1992, 1993
4*28a62f4dSbostic  *	The Regents of the University of California.  All rights reserved.
5c07d497bSakito  *
6c07d497bSakito  * This code is derived from software contributed to Berkeley by
7c07d497bSakito  * OMRON Corporation.
8c07d497bSakito  *
9c07d497bSakito  * %sccs.include.redist.c%
10c07d497bSakito  *
11*28a62f4dSbostic  *	@(#)device.h	8.1 (Berkeley) 06/10/93
12c07d497bSakito  */
13c07d497bSakito 
14c07d497bSakito struct driver {
15c07d497bSakito 	int	(*d_init)();
16c07d497bSakito 	char	*d_name;
17c07d497bSakito 	int	(*d_start)();
18c07d497bSakito 	int	(*d_go)();
19c07d497bSakito 	int	(*d_intr)();
20c07d497bSakito 	int	(*d_done)();
21c07d497bSakito };
22c07d497bSakito 
23c07d497bSakito struct hp_ctlr {
24c07d497bSakito 	struct driver	*hp_driver;
25c07d497bSakito 	int		hp_unit;
26c07d497bSakito 	int		hp_alive;
27c07d497bSakito 	char		*hp_addr;
28c07d497bSakito 	int		hp_flags;
29c07d497bSakito 	int		hp_ipl;
30c07d497bSakito };
31c07d497bSakito 
32c07d497bSakito struct hp_device {
33c07d497bSakito 	struct driver	*hp_driver;
34c07d497bSakito 	struct driver	*hp_cdriver;
35c07d497bSakito 	int		hp_unit;
36c07d497bSakito 	int		hp_ctlr;
37c07d497bSakito 	int		hp_slave;
38c07d497bSakito 	char		*hp_addr;
39c07d497bSakito 	int		hp_dk;
40c07d497bSakito 	int		hp_flags;
41c07d497bSakito 	int		hp_alive;
42c07d497bSakito 	int		hp_ipl;
43c07d497bSakito };
44c07d497bSakito 
45c07d497bSakito struct	devqueue {
46c07d497bSakito 	struct	devqueue *dq_forw;
47c07d497bSakito 	struct	devqueue *dq_back;
48c07d497bSakito 	int	dq_ctlr;
49c07d497bSakito 	int	dq_unit;
50c07d497bSakito 	int	dq_slave;
51c07d497bSakito 	struct	driver *dq_driver;
52c07d497bSakito };
53c07d497bSakito 
54c07d497bSakito struct hp_hw {
55c07d497bSakito 	char	*hw_addr;	/* physical address of registers */
56c07d497bSakito 	short	hw_sc;		/* select code (if applicable) */
57c07d497bSakito 	short	hw_type;	/* type (defined below) */
58c07d497bSakito 	short	hw_id;		/* HW returned id */
59c07d497bSakito 	short	hw_id2;		/* secondary HW id (displays) */
60c07d497bSakito 	char	*hw_name;	/* HP product name */
61c07d497bSakito };
62c07d497bSakito 
63c07d497bSakito #define	MAX_CTLR	16	/* Totally arbitrary */
64c07d497bSakito #define	MAXSLAVES	8	/* Currently the HPIB limit */
65c07d497bSakito 
66c07d497bSakito #define	WILD_CARD_CTLR	0
67c07d497bSakito 
68c07d497bSakito /* A controller is a card which can have one or more slaves attached */
69c07d497bSakito #define	CONTROLLER	0x10
70c07d497bSakito #define	HPIB		0x16
71c07d497bSakito #define	SCSI		0x17
72c07d497bSakito #define	VME		0x18
73c07d497bSakito #define	FLINK		0x19
74c07d497bSakito 
75c07d497bSakito /* Slaves are devices which attach to controllers, e.g. disks, tapes */
76c07d497bSakito #define	RD		0x2a
77c07d497bSakito #define	PPI		0x2b
78c07d497bSakito #define	CT		0x2c
79c07d497bSakito 
80c07d497bSakito /* These are not controllers, but may have their own HPIB address */
81c07d497bSakito #define	BITMAP		1
82c07d497bSakito #define	NET		2
83c07d497bSakito #define	FPA		4
84c07d497bSakito #define	MISC		5
85c07d497bSakito #define	KEYBOARD	6
86c07d497bSakito #define	COMMDCA		7
87c07d497bSakito #define	COMMDCM		8
88c07d497bSakito #define	COMMDCL		9
89c07d497bSakito #define	PPORT		10
90c07d497bSakito #define	SIO		11
91c07d497bSakito 
92c07d497bSakito #ifdef KERNEL
93c07d497bSakito extern struct hp_ctlr	hp_cinit[];
94c07d497bSakito extern struct hp_device	hp_dinit[];
95c07d497bSakito extern struct hp_hw	sc_table[];
96c07d497bSakito #endif
97