xref: /original-bsd/sys/luna68k/dev/scsivar.h (revision b4c7f1a3)
1945567acSfujita /*
2*b4c7f1a3Sbostic  * Copyright (c) 1990, 1992, 1993
3*b4c7f1a3Sbostic  *	The Regents of the University of California.  All rights reserved.
4945567acSfujita  *
5945567acSfujita  * This code is derived from software contributed to Berkeley by
6945567acSfujita  * Van Jacobson of Lawrence Berkeley Laboratory.
7945567acSfujita  *
8945567acSfujita  * %sccs.include.redist.c%
9945567acSfujita  *
10*b4c7f1a3Sbostic  *	@(#)scsivar.h	8.1 (Berkeley) 06/10/93
11945567acSfujita  */
12945567acSfujita 
13945567acSfujita 
14945567acSfujita struct	scsi_queue {
15945567acSfujita 	struct	scsi_queue *dq_forw;
16945567acSfujita 	struct	scsi_queue *dq_back;
17945567acSfujita 	int	dq_ctlr;
18945567acSfujita 	int	dq_unit;
19945567acSfujita 	int	dq_slave;
20945567acSfujita 	struct	driver *dq_driver;
21945567acSfujita 	int	dq_flags;
22945567acSfujita 	int	dq_imax;
23945567acSfujita 	int	dq_imin;
24945567acSfujita 	int	dq_omax;
25945567acSfujita 	int	dq_omin;
26945567acSfujita 	struct	scsi_fmt_cdb *dq_cdb;
27945567acSfujita 	struct	buf *dq_bp;
28945567acSfujita 	u_char	*dq_xferp;				/* Current Pointor */
29945567acSfujita 	int	dq_xfercnt;				/* Data Counter    */
30945567acSfujita };
31945567acSfujita 
32945567acSfujita /* dq_flags */
33945567acSfujita 
34945567acSfujita #define	DQ_DISCONNECT	0x00000001
35945567acSfujita 
36945567acSfujita struct	scsi_softc {
37945567acSfujita 	struct	hp_ctlr *sc_hc;
38945567acSfujita 	struct	scsi_queue sc_sq;
39945567acSfujita 	struct	scsi_queue sc_wq;
40945567acSfujita 	u_char	*sc_cdb;				/* CDB Buffer Pointor */
41945567acSfujita 	u_char	*sc_buf;				/* Data Buffer Pointor*/
42945567acSfujita 	int	*sc_lock;				/* Lock Flag addres   */
43945567acSfujita 	int	sc_flags;				/* SPC Status Flags   */
44945567acSfujita 	int	sc_phase;				/* Current SCSI Phase */
45945567acSfujita 	int	sc_cdblen;				/* CDB length         */
46945567acSfujita 	int	sc_len;					/* Buffer Length      */
47945567acSfujita 	u_char	sc_stat;
48945567acSfujita 	u_char	sc_msg[7];
49945567acSfujita };
50945567acSfujita 
51945567acSfujita 
52945567acSfujita /* sc_lock  */
53945567acSfujita 
54945567acSfujita #define	SC_IN_PROGRESS		 0
55945567acSfujita #define SC_IO_COMPLETE		 1
56945567acSfujita #define	SC_DISCONNECTED		 2
57945567acSfujita 
58945567acSfujita #define SC_BUSY			-1
59945567acSfujita #define	SC_IO_FAILED		-2
60945567acSfujita #define	SC_DEV_NOT_FOUND	-3
61945567acSfujita #define	SC_IO_TIMEOUT		-4
62945567acSfujita 
63945567acSfujita /* sc_flags */
64945567acSfujita 
65945567acSfujita #define	SC_SEL_TIMEOUT	0x00000001
66