Deleted Added
full compact
aic7xxx.seq (25005) aic7xxx.seq (25123)
1/*+M***********************************************************************
2 *Adaptec 274x/284x/294x device driver for Linux and FreeBSD.
3 *
4 *Copyright (c) 1994 John Aycock
5 * The University of Calgary Department of Computer Science.
6 * All rights reserved.
7 *
8 *FreeBSD, Twin, Wide, 2 command per target support, tagged queuing,

--- 23 unchanged lines hidden (view full) ---

32 *FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
33 *DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
34 *OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
35 *HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
36 *LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
37 *OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
38 *SUCH DAMAGE.
39 *
1/*+M***********************************************************************
2 *Adaptec 274x/284x/294x device driver for Linux and FreeBSD.
3 *
4 *Copyright (c) 1994 John Aycock
5 * The University of Calgary Department of Computer Science.
6 * All rights reserved.
7 *
8 *FreeBSD, Twin, Wide, 2 command per target support, tagged queuing,

--- 23 unchanged lines hidden (view full) ---

32 *FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
33 *DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
34 *OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
35 *HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
36 *LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
37 *OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
38 *SUCH DAMAGE.
39 *
40 * $Id: aic7xxx.seq,v 1.71 1997/04/14 02:26:59 gibbs Exp $
40 * $Id: aic7xxx.seq,v 1.72 1997/04/18 16:31:55 gibbs Exp $
41 *
42 *-M************************************************************************/
43
44#include <dev/aic7xxx/aic7xxx.reg>
45#include <scsi/scsi_message.h>
46
47/*
48 * A few words on the waiting SCB list:

--- 926 unchanged lines hidden (view full) ---

975/*
976 * We didn't find it. If we're paging, pull an SCB and DMA down the
977 * one we want. If we aren't paging or the SCB we dma down has the
978 * abort flag set, return not found.
979 */
980 mov ALLZEROS call get_free_or_disc_scb;
981 mvi DMAPARAMS, HDMAEN|DIRECTION|FIFORESET;
982 mov ARG_1 call dma_scb;
41 *
42 *-M************************************************************************/
43
44#include <dev/aic7xxx/aic7xxx.reg>
45#include <scsi/scsi_message.h>
46
47/*
48 * A few words on the waiting SCB list:

--- 926 unchanged lines hidden (view full) ---

975/*
976 * We didn't find it. If we're paging, pull an SCB and DMA down the
977 * one we want. If we aren't paging or the SCB we dma down has the
978 * abort flag set, return not found.
979 */
980 mov ALLZEROS call get_free_or_disc_scb;
981 mvi DMAPARAMS, HDMAEN|DIRECTION|FIFORESET;
982 mov ARG_1 call dma_scb;
983 test SCB_RESID_SGCNT, 0xff jz . + 2;
984 or SCB_CONTROL, MUST_DMAUP_SCB;
983 test SCB_CONTROL, ABORT_SCB jz return;
984find_error:
985 mvi SINDEX, SCB_LIST_NULL ret;
986foundSCB:
987 test SCB_CONTROL, ABORT_SCB jnz find_error;
988rem_scb_from_disc_list:
989/* Remove this SCB from the disconnection list */
990 cmp SCB_NEXT,SCB_LIST_NULL je unlink_prev;

--- 121 unchanged lines hidden (view full) ---

1112 mvi SINDEX, SCB_LIST_NULL ret;
1113dequeue_disc_scb:
1114 mov SCBPTR, DISCONNECTED_SCBH;
1115/*
1116 * If we have a residual, then we are in the middle of some I/O
1117 * and we have to send this SCB back up to the kernel so that the
1118 * saved data pointers and residual information isn't lost.
1119 */
985 test SCB_CONTROL, ABORT_SCB jz return;
986find_error:
987 mvi SINDEX, SCB_LIST_NULL ret;
988foundSCB:
989 test SCB_CONTROL, ABORT_SCB jnz find_error;
990rem_scb_from_disc_list:
991/* Remove this SCB from the disconnection list */
992 cmp SCB_NEXT,SCB_LIST_NULL je unlink_prev;

--- 121 unchanged lines hidden (view full) ---

1114 mvi SINDEX, SCB_LIST_NULL ret;
1115dequeue_disc_scb:
1116 mov SCBPTR, DISCONNECTED_SCBH;
1117/*
1118 * If we have a residual, then we are in the middle of some I/O
1119 * and we have to send this SCB back up to the kernel so that the
1120 * saved data pointers and residual information isn't lost.
1121 */
1122 test SCB_CONTROL, MUST_DMAUP_SCB jz . + 3;
1123 and SCB_CONTROL, ~MUST_DMAUP_SCB;
1124 jmp dma_up_scb;
1120 test SCB_RESID_SGCNT,0xff jnz dma_up_scb;
1121 cmp SCB_LINKED_NEXT, SCB_LIST_NULL je unlink_disc_scb;
1122dma_up_scb:
1123 mvi DMAPARAMS, FIFORESET;
1124 mov SCB_TAG call dma_scb;
1125unlink_disc_scb:
1126 /* jmp instead of call since we want to return anyway */
1127 mov SCBPTR jmp rem_scb_from_disc_list;

--- 18 unchanged lines hidden ---
1125 test SCB_RESID_SGCNT,0xff jnz dma_up_scb;
1126 cmp SCB_LINKED_NEXT, SCB_LIST_NULL je unlink_disc_scb;
1127dma_up_scb:
1128 mvi DMAPARAMS, FIFORESET;
1129 mov SCB_TAG call dma_scb;
1130unlink_disc_scb:
1131 /* jmp instead of call since we want to return anyway */
1132 mov SCBPTR jmp rem_scb_from_disc_list;

--- 18 unchanged lines hidden ---