[BACK]Return to scivar.h CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / arch / amiga / dev

Annotation of src/sys/arch/amiga/dev/scivar.h, Revision 1.12.10.2

1.12.10.2! bouyer      1: /*     $NetBSD$        */
1.4       cgd         2:
1.1       chopps      3: /*
                      4:  * Copyright (c) 1990 The Regents of the University of California.
                      5:  * All rights reserved.
                      6:  *
                      7:  * This code is derived from software contributed to Berkeley by
                      8:  * Van Jacobson of Lawrence Berkeley Laboratory.
                      9:  *
                     10:  * Redistribution and use in source and binary forms, with or without
                     11:  * modification, are permitted provided that the following conditions
                     12:  * are met:
                     13:  * 1. Redistributions of source code must retain the above copyright
                     14:  *    notice, this list of conditions and the following disclaimer.
                     15:  * 2. Redistributions in binary form must reproduce the above copyright
                     16:  *    notice, this list of conditions and the following disclaimer in the
                     17:  *    documentation and/or other materials provided with the distribution.
                     18:  * 3. All advertising materials mentioning features or use of this software
                     19:  *    must display the following acknowledgement:
                     20:  *     This product includes software developed by the University of
                     21:  *     California, Berkeley and its contributors.
                     22:  * 4. Neither the name of the University nor the names of its contributors
                     23:  *    may be used to endorse or promote products derived from this software
                     24:  *    without specific prior written permission.
                     25:  *
                     26:  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
                     27:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
                     28:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
                     29:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
                     30:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
                     31:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
                     32:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     33:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     34:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     35:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     36:  * SUCH DAMAGE.
                     37:  *
                     38:  *     @(#)scivar.h    7.1 (Berkeley) 5/8/90
                     39:  */
1.3       chopps     40: #ifndef _SCIVAR_H_
                     41: #define _SCIVAR_H_
                     42:
1.9       veego      43: struct sci_softc;
1.1       chopps     44:
                     45: struct sci_softc {
1.3       chopps     46:        struct  device sc_dev;
1.6       chopps     47:        struct  isr sc_isr;
1.12      thorpej    48:        struct  scsipi_adapter sc_adapter;
1.12.10.1  bouyer     49:        struct  scsipi_channel sc_channel;
1.11      bouyer     50:        struct  scsipi_xfer *sc_xs;     /* transfer from high level code */
1.1       chopps     51:
1.2       chopps     52:        volatile u_char *sci_data;      /* r: Current data */
                     53:        volatile u_char *sci_odata;     /* w: Out data */
                     54:        volatile u_char *sci_icmd;      /* rw: Initiator command */
                     55:        volatile u_char *sci_mode;      /* rw: Mode */
                     56:        volatile u_char *sci_tcmd;      /* rw: Target command */
                     57:        volatile u_char *sci_bus_csr;   /* r: Bus Status */
                     58:        volatile u_char *sci_sel_enb;   /* w: Select enable */
                     59:        volatile u_char *sci_csr;       /* r: Status */
                     60:        volatile u_char *sci_dma_send;  /* w: Start dma send data */
                     61:        volatile u_char *sci_idata;     /* r: Input data */
                     62:        volatile u_char *sci_trecv;     /* w: Start dma receive, target */
                     63:        volatile u_char *sci_iack;      /* r: Interrupt Acknowledge */
                     64:        volatile u_char *sci_irecv;     /* w: Start dma receive, initiator */
1.1       chopps     65:
1.9       veego      66:        /* psuedo DMA transfer */
1.10      mhitch     67:        int     (*dma_xfer_in) __P((struct sci_softc *, int, u_char *, int));
1.9       veego      68:        /* psuedo DMA transfer */
1.10      mhitch     69:        int     (*dma_xfer_out) __P((struct sci_softc *, int, u_char *, int));
1.1       chopps     70:        u_char  sc_flags;
                     71:        u_char  sc_lun;
                     72:        /* one for each target */
                     73:        struct syncpar {
                     74:          u_char state;
                     75:          u_char period, offset;
                     76:        } sc_sync[8];
                     77:        u_char  sc_slave;
                     78:        u_char  sc_scsi_addr;
                     79:        u_char  sc_stat[2];
                     80:        u_char  sc_msg[8];
                     81: };
                     82:
                     83: /* sc_flags */
                     84: #define        SCI_IO          0x80    /* DMA I/O in progress */
                     85: #define        SCI_ALIVE       0x01    /* controller initialized */
                     86: #define SCI_SELECTED   0x04    /* bus is in selected state. Needed for
                     87:                                   correct abort procedure. */
                     88:
                     89: /* sync states */
                     90: #define SYNC_START     0       /* no sync handshake started */
                     91: #define SYNC_SENT      1       /* we sent sync request, no answer yet */
                     92: #define SYNC_DONE      2       /* target accepted our (or inferior) settings,
1.9       veego      93:                                   or it rejected the request and we stay async */
1.3       chopps     94:
                     95: #define        PHASE           0x07            /* mask for psns/pctl phase */
                     96: #define        DATA_OUT_PHASE  0x00
                     97: #define        DATA_IN_PHASE   0x01
                     98: #define        CMD_PHASE       0x02
                     99: #define        STATUS_PHASE    0x03
                    100: #define        BUS_FREE_PHASE  0x04
                    101: #define        ARB_SEL_PHASE   0x05    /* Fuji chip combines arbitration with sel. */
                    102: #define        MESG_OUT_PHASE  0x06
                    103: #define        MESG_IN_PHASE   0x07
                    104:
                    105: #define        MSG_CMD_COMPLETE        0x00
                    106: #define MSG_EXT_MESSAGE                0x01
                    107: #define        MSG_SAVE_DATA_PTR       0x02
                    108: #define        MSG_RESTORE_PTR         0x03
                    109: #define        MSG_DISCONNECT          0x04
                    110: #define        MSG_INIT_DETECT_ERROR   0x05
                    111: #define        MSG_ABORT               0x06
                    112: #define        MSG_REJECT              0x07
                    113: #define        MSG_NOOP                0x08
                    114: #define        MSG_PARITY_ERROR        0x09
                    115: #define        MSG_BUS_DEVICE_RESET    0x0C
                    116: #define        MSG_IDENTIFY            0x80
                    117: #define        MSG_IDENTIFY_DR         0xc0    /* (disconnect/reconnect allowed) */
                    118: #define        MSG_SYNC_REQ            0x01
                    119:
                    120:
                    121: #define        STS_CHECKCOND   0x02    /* Check Condition (ie., read sense) */
                    122: #define        STS_CONDMET     0x04    /* Condition Met (ie., search worked) */
                    123: #define        STS_BUSY        0x08
                    124: #define        STS_INTERMED    0x10    /* Intermediate status sent */
                    125: #define        STS_EXT         0x80    /* Extended status valid */
                    126:
                    127: /*
1.8       mycroft   128:  * XXXX
1.3       chopps    129:  */
                    130: struct scsi_fmt_cdb {
                    131:        int len;                /* cdb length (in bytes) */
                    132:        u_char cdb[28];         /* cdb to use on next read/write */
                    133: };
                    134:
                    135: struct buf;
1.11      bouyer    136: struct scsipi_xfer;
1.3       chopps    137:
1.9       veego     138: void sci_minphys __P((struct buf *));
1.12.10.1  bouyer    139: void sci_scsipi_request __P((struct scsipi_channel *, scsipi_adapter_req_t, void *));
1.9       veego     140: void scireset __P((struct sci_softc *));
1.3       chopps    141:
                    142: #endif /* _SCIVAR_H_ */

CVSweb <webmaster@jp.NetBSD.org>