NetBSD/sys/arch/amiga/dev/scsivar.h
mw bdb2629d63 Integrate recent changes done to the amiga branch. Includes support
for the '40.
Support for more scsi controllers (zeus, magnum)
Support for more tapes (in st.c)
New custom chip console code integrated.
1994-01-26 21:05:34 +00:00

83 lines
3.1 KiB
C

/*
* Copyright (c) 1990 The Regents of the University of California.
* All rights reserved.
*
* This code is derived from software contributed to Berkeley by
* Van Jacobson of Lawrence Berkeley Laboratory.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* @(#)scsivar.h 7.1 (Berkeley) 5/8/90
*/
struct scsi_softc {
struct amiga_ctlr *sc_ac;
struct devqueue sc_dq;
struct devqueue sc_sq;
dmareq_t dmareq;
dmafree_t dmafree;
dmago_t dmago;
dmanext_t dmanext;
dmastop_t dmastop;
char *dmabuffer;
char *dmausrbuf;
u_long dmausrlen;
u_char sc_flags;
u_long sc_clock_freq;
/* one for each target */
struct syncpar {
u_char state;
u_char period, offset;
} sc_sync[8];
u_char sc_scsi_addr;
u_char sc_stat[2];
u_char sc_msg[7];
};
/* sc_flags */
#define SCSI_IO 0x80 /* DMA I/O in progress */
#define SCSI_ALIVE 0x01 /* controller initialized */
#ifdef DEBUG
#define SCSI_PAD 0x02 /* 'padded' transfer in progress */
#endif
#define SCSI_SELECTED 0x04 /* bus is in selected state. Needed for
correct abort procedure. */
#define SCSI_DMA24 0x10 /* controller can only DMA to ZorroII
address space */
#define SCSI_READ24 0x20 /* DMA input needs to be copied from
ZorroII buffer to real buffer */
/* sync states */
#define SYNC_START 0 /* no sync handshake started */
#define SYNC_SENT 1 /* we sent sync request, no answer yet */
#define SYNC_DONE 2 /* target accepted our (or inferior) settings,
or it rejected the request and we stay async */