Merge from vendor branch BIND:
[dragonfly.git] / sys / dev / disk / ncv / ncr53c500var.h
1 /*      $FreeBSD: src/sys/dev/ncv/ncr53c500var.h,v 1.1.2.4 2001/12/17 13:30:18 non Exp $        */
2 /*      $DragonFly: src/sys/dev/disk/ncv/ncr53c500var.h,v 1.4 2004/02/12 00:00:15 dillon Exp $  */
3 /*      $NecBSD: ncr53c500var.h,v 1.11.18.1 2001/06/08 06:27:45 honda Exp $     */
4 /*      $NetBSD$        */
5
6 /*
7  * [NetBSD for NEC PC-98 series]
8  *  Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000, 2001
9  *      NetBSD/pc98 porting staff. All rights reserved.
10  *  Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000, 2001
11  *      Naofumi HONDA. All rights reserved.
12  * 
13  *  Redistribution and use in source and binary forms, with or without
14  *  modification, are permitted provided that the following conditions
15  *  are met:
16  *  1. Redistributions of source code must retain the above copyright
17  *     notice, this list of conditions and the following disclaimer.
18  *  2. Redistributions in binary form must reproduce the above copyright
19  *     notice, this list of conditions and the following disclaimer in the
20  *     documentation and/or other materials provided with the distribution.
21  *  3. The name of the author may not be used to endorse or promote products
22  *     derived from this software without specific prior written permission.
23  * 
24  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
25  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
26  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27  * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
28  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
29  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
30  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
32  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
33  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34  * POSSIBILITY OF SUCH DAMAGE.
35  */
36
37 #ifndef _NCR53C500VAR_H_
38 #define _NCR53C500VAR_H_
39
40 /*****************************************************************
41  * Host adapter structure
42  *****************************************************************/
43 struct ncv_softc {
44         struct scsi_low_softc sc_sclow;         /* generic data */
45
46 #ifdef  __NetBSD__
47         bus_space_tag_t sc_iot;
48         bus_space_tag_t sc_memt;
49         bus_space_handle_t sc_ioh;
50
51         void *sc_ih;
52 #endif  /* __NetBSD__ */
53
54 #ifdef  __DragonFly__
55         bus_space_tag_t sc_iot;
56         bus_space_tag_t sc_memt;
57         bus_space_handle_t sc_ioh;
58
59         int port_rid;
60         int port_rid_dmy;
61         int irq_rid;
62         int mem_rid;
63         struct resource *port_res;
64         struct resource *port_res_dmy;
65         struct resource *irq_res;
66         struct resource *mem_res;
67
68         void *ncv_intrhand;
69 #endif  /* __DragonFly__ */
70
71         int sc_tmaxcnt;
72         int sc_selstop;                 /* sel atn stop asserted */
73         int sc_compseq;                 /* completion seq cmd asserted */
74         int sc_sdatalen;                /* start datalen */
75         int sc_tdatalen;                /* temp xfer data len */
76
77         struct ncv_hw sc_hw;            /* hardware register images */
78 };
79
80 /*****************************************************************
81  * Lun information 
82  *****************************************************************/
83 struct ncv_targ_info {
84         struct targ_info nti_ti;
85         
86         u_int8_t nti_reg_cfg3;          /* cfg3 images per lun */
87         u_int8_t nti_reg_offset;        /* synch offset register per lun */
88         u_int8_t nti_reg_period;        /* synch period register per lun */
89 };
90
91 /*****************************************************************
92  * Proto
93  *****************************************************************/
94 int ncvprobesubr (bus_space_tag_t, bus_space_handle_t ioh, u_int, int);
95 void ncvattachsubr (struct ncv_softc *);
96 int ncvprint (void *, const char *);
97 int ncvintr (void *);
98
99 #if     defined(i386)
100 #define SOFT_INTR_REQUIRED(slp) (softintr((slp)->sl_irq))
101 #else   /* !i386 */
102 #define SOFT_INTR_REQUIRED(slp)
103 #endif  /* !i386 */
104 #endif  /* !_NCR53C500VAR_H_ */