Home | History | Annotate | Line # | Download | only in ic
isp_library.c revision 1.2.12.3
      1  1.2.12.3  yamt /* $NetBSD: isp_library.c,v 1.2.12.3 2008/03/17 09:14:42 yamt Exp $ */
      2  1.2.12.2  yamt /*
      3  1.2.12.2  yamt  * Copyright (c) 2006-2007 by Matthew Jacob
      4  1.2.12.2  yamt  * All rights reserved.
      5  1.2.12.2  yamt  *
      6  1.2.12.2  yamt  * Redistribution and use in source and binary forms, with or without
      7  1.2.12.2  yamt  * modification, are permitted provided that the following conditions
      8  1.2.12.2  yamt  * are met:
      9  1.2.12.2  yamt  *
     10  1.2.12.2  yamt  * 1. Redistributions of source code must retain the above copyright
     11  1.2.12.2  yamt  *    notice, this list of conditions and the following disclaimer.
     12  1.2.12.2  yamt  * 2. Redistributions in binary form must reproduce the above copyright
     13  1.2.12.2  yamt  *    notice, this list of conditions and the following disclaimer in the
     14  1.2.12.2  yamt  *    documentation and/or other materials provided with the distribution.
     15  1.2.12.2  yamt  *
     16  1.2.12.2  yamt  * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
     17  1.2.12.2  yamt  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     18  1.2.12.2  yamt  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     19  1.2.12.2  yamt  * ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
     20  1.2.12.2  yamt  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     21  1.2.12.2  yamt  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     22  1.2.12.2  yamt  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     23  1.2.12.2  yamt  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     24  1.2.12.2  yamt  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     25  1.2.12.2  yamt  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     26  1.2.12.2  yamt  * SUCH DAMAGE.
     27  1.2.12.2  yamt  */
     28  1.2.12.2  yamt /*
     29  1.2.12.2  yamt  * Qlogic Host Adapter Internal Library Functions
     30  1.2.12.2  yamt  */
     31  1.2.12.2  yamt #ifdef	__NetBSD__
     32  1.2.12.2  yamt #include <sys/cdefs.h>
     33  1.2.12.3  yamt __KERNEL_RCSID(0, "$NetBSD: isp_library.c,v 1.2.12.3 2008/03/17 09:14:42 yamt Exp $");
     34  1.2.12.2  yamt #include <dev/ic/isp_netbsd.h>
     35  1.2.12.2  yamt #endif
     36  1.2.12.2  yamt #ifdef	__FreeBSD__
     37  1.2.12.2  yamt #include <sys/cdefs.h>
     38  1.2.12.2  yamt __FBSDID("$FreeBSD$");
     39  1.2.12.2  yamt #include <dev/isp/isp_freebsd.h>
     40  1.2.12.2  yamt #endif
     41  1.2.12.2  yamt #ifdef	__OpenBSD__
     42  1.2.12.2  yamt #include <dev/ic/isp_openbsd.h>
     43  1.2.12.2  yamt #endif
     44  1.2.12.2  yamt #ifdef	__linux__
     45  1.2.12.2  yamt #include "isp_linux.h"
     46  1.2.12.2  yamt #endif
     47  1.2.12.2  yamt #ifdef	__svr4__
     48  1.2.12.2  yamt #include "isp_solaris.h"
     49  1.2.12.2  yamt #endif
     50  1.2.12.2  yamt 
     51  1.2.12.3  yamt const char *isp_class3_roles[4] = {
     52  1.2.12.3  yamt     "None", "Target", "Initiator", "Target/Initiator"
     53  1.2.12.3  yamt };
     54  1.2.12.3  yamt 
     55  1.2.12.2  yamt int
     56  1.2.12.2  yamt isp_save_xs(ispsoftc_t *isp, XS_T *xs, uint32_t *handlep)
     57  1.2.12.2  yamt {
     58  1.2.12.2  yamt 	uint16_t i, j;
     59  1.2.12.2  yamt 
     60  1.2.12.2  yamt 	for (j = isp->isp_lasthdls, i = 0; i < isp->isp_maxcmds; i++) {
     61  1.2.12.2  yamt 		if (isp->isp_xflist[j] == NULL) {
     62  1.2.12.2  yamt 			break;
     63  1.2.12.2  yamt 		}
     64  1.2.12.2  yamt 		if (++j == isp->isp_maxcmds) {
     65  1.2.12.2  yamt 			j = 0;
     66  1.2.12.2  yamt 		}
     67  1.2.12.2  yamt 	}
     68  1.2.12.2  yamt 	if (i == isp->isp_maxcmds) {
     69  1.2.12.2  yamt 		return (-1);
     70  1.2.12.2  yamt 	}
     71  1.2.12.2  yamt 	isp->isp_xflist[j] = xs;
     72  1.2.12.2  yamt 	*handlep = j+1;
     73  1.2.12.2  yamt 	if (++j == isp->isp_maxcmds) {
     74  1.2.12.2  yamt 		j = 0;
     75  1.2.12.2  yamt 	}
     76  1.2.12.2  yamt 	isp->isp_lasthdls = (uint32_t)j;
     77  1.2.12.2  yamt 	return (0);
     78  1.2.12.2  yamt }
     79  1.2.12.2  yamt 
     80  1.2.12.2  yamt XS_T *
     81  1.2.12.2  yamt isp_find_xs(ispsoftc_t *isp, uint32_t handle)
     82  1.2.12.2  yamt {
     83  1.2.12.2  yamt 	if (handle < 1 || handle > (uint32_t) isp->isp_maxcmds) {
     84  1.2.12.2  yamt 		return (NULL);
     85  1.2.12.2  yamt 	} else {
     86  1.2.12.2  yamt 		return (isp->isp_xflist[handle - 1]);
     87  1.2.12.2  yamt 	}
     88  1.2.12.2  yamt }
     89  1.2.12.2  yamt 
     90  1.2.12.2  yamt uint32_t
     91  1.2.12.2  yamt isp_find_handle(ispsoftc_t *isp, XS_T *xs)
     92  1.2.12.2  yamt {
     93  1.2.12.2  yamt 	uint16_t i;
     94  1.2.12.2  yamt 	if (xs != NULL) {
     95  1.2.12.2  yamt 		for (i = 0; i < isp->isp_maxcmds; i++) {
     96  1.2.12.2  yamt 			if (isp->isp_xflist[i] == xs) {
     97  1.2.12.2  yamt 				return ((uint32_t) (i+1));
     98  1.2.12.2  yamt 			}
     99  1.2.12.2  yamt 		}
    100  1.2.12.2  yamt 	}
    101  1.2.12.2  yamt 	return (0);
    102  1.2.12.2  yamt }
    103  1.2.12.2  yamt 
    104  1.2.12.2  yamt uint32_t
    105  1.2.12.2  yamt isp_handle_index(uint32_t handle)
    106  1.2.12.2  yamt {
    107  1.2.12.2  yamt 	return (handle - 1);
    108  1.2.12.2  yamt }
    109  1.2.12.2  yamt 
    110  1.2.12.2  yamt void
    111  1.2.12.2  yamt isp_destroy_handle(ispsoftc_t *isp, uint32_t handle)
    112  1.2.12.2  yamt {
    113  1.2.12.2  yamt 	if (handle > 0 && handle <= (uint32_t) isp->isp_maxcmds) {
    114  1.2.12.2  yamt 		isp->isp_xflist[handle - 1] = NULL;
    115  1.2.12.2  yamt 	}
    116  1.2.12.2  yamt }
    117  1.2.12.2  yamt 
    118  1.2.12.2  yamt int
    119  1.2.12.2  yamt isp_getrqentry(ispsoftc_t *isp, uint32_t *iptrp,
    120  1.2.12.2  yamt     uint32_t *optrp, void **resultp)
    121  1.2.12.2  yamt {
    122  1.2.12.2  yamt 	volatile uint32_t iptr, optr;
    123  1.2.12.2  yamt 
    124  1.2.12.2  yamt 	optr = isp->isp_reqodx = ISP_READ(isp, isp->isp_rqstoutrp);
    125  1.2.12.2  yamt 	iptr = isp->isp_reqidx;
    126  1.2.12.2  yamt 	*resultp = ISP_QUEUE_ENTRY(isp->isp_rquest, iptr);
    127  1.2.12.2  yamt 	iptr = ISP_NXT_QENTRY(iptr, RQUEST_QUEUE_LEN(isp));
    128  1.2.12.2  yamt 	if (iptr == optr) {
    129  1.2.12.2  yamt 		return (1);
    130  1.2.12.2  yamt 	}
    131  1.2.12.2  yamt 	if (optrp)
    132  1.2.12.2  yamt 		*optrp = optr;
    133  1.2.12.2  yamt 	if (iptrp)
    134  1.2.12.2  yamt 		*iptrp = iptr;
    135  1.2.12.2  yamt 	return (0);
    136  1.2.12.2  yamt }
    137  1.2.12.2  yamt 
    138  1.2.12.2  yamt #define	TBA	(4 * (((QENTRY_LEN >> 2) * 3) + 1) + 1)
    139  1.2.12.2  yamt void
    140  1.2.12.2  yamt isp_print_qentry(ispsoftc_t *isp, char *msg, int idx, void *arg)
    141  1.2.12.2  yamt {
    142  1.2.12.2  yamt 	char buf[TBA];
    143  1.2.12.2  yamt 	int amt, i, j;
    144  1.2.12.2  yamt 	uint8_t *ptr = arg;
    145  1.2.12.2  yamt 
    146  1.2.12.2  yamt 	isp_prt(isp, ISP_LOGALL, "%s index %d=>", msg, idx);
    147  1.2.12.2  yamt 	for (buf[0] = 0, amt = i = 0; i < 4; i++) {
    148  1.2.12.2  yamt 		buf[0] = 0;
    149  1.2.12.2  yamt 		SNPRINTF(buf, TBA, "  ");
    150  1.2.12.2  yamt 		for (j = 0; j < (QENTRY_LEN >> 2); j++) {
    151  1.2.12.2  yamt 			SNPRINTF(buf, TBA, "%s %02x", buf, ptr[amt++] & 0xff);
    152  1.2.12.2  yamt 		}
    153  1.2.12.2  yamt 		isp_prt(isp, ISP_LOGALL, buf);
    154  1.2.12.2  yamt 	}
    155  1.2.12.2  yamt }
    156  1.2.12.2  yamt 
    157  1.2.12.2  yamt void
    158  1.2.12.2  yamt isp_print_bytes(ispsoftc_t *isp, const char *msg, int amt, void *arg)
    159  1.2.12.2  yamt {
    160  1.2.12.2  yamt 	char buf[128];
    161  1.2.12.2  yamt 	uint8_t *ptr = arg;
    162  1.2.12.2  yamt 	int off;
    163  1.2.12.2  yamt 
    164  1.2.12.2  yamt 	if (msg)
    165  1.2.12.2  yamt 		isp_prt(isp, ISP_LOGALL, "%s:", msg);
    166  1.2.12.2  yamt 	off = 0;
    167  1.2.12.2  yamt 	buf[0] = 0;
    168  1.2.12.2  yamt 	while (off < amt) {
    169  1.2.12.2  yamt 		int j, to;
    170  1.2.12.2  yamt 		to = off;
    171  1.2.12.2  yamt 		for (j = 0; j < 16; j++) {
    172  1.2.12.2  yamt 			SNPRINTF(buf, 128, "%s %02x", buf, ptr[off++] & 0xff);
    173  1.2.12.2  yamt 			if (off == amt)
    174  1.2.12.2  yamt 				break;
    175  1.2.12.2  yamt 		}
    176  1.2.12.2  yamt 		isp_prt(isp, ISP_LOGALL, "0x%08x:%s", to, buf);
    177  1.2.12.2  yamt 		buf[0] = 0;
    178  1.2.12.2  yamt 	}
    179  1.2.12.2  yamt }
    180  1.2.12.2  yamt 
    181  1.2.12.2  yamt /*
    182  1.2.12.2  yamt  * Do the common path to try and ensure that link is up, we've scanned
    183  1.2.12.2  yamt  * the fabric (if we're on a fabric), and that we've synchronized this
    184  1.2.12.2  yamt  * all with our own database and done the appropriate logins.
    185  1.2.12.2  yamt  *
    186  1.2.12.2  yamt  * We repeatedly check for firmware state and loop state after each
    187  1.2.12.2  yamt  * action because things may have changed while we were doing this.
    188  1.2.12.2  yamt  * Any failure or change of state causes us to return a nonzero value.
    189  1.2.12.2  yamt  *
    190  1.2.12.2  yamt  * We assume we enter here with any locks held.
    191  1.2.12.2  yamt  */
    192  1.2.12.2  yamt 
    193  1.2.12.2  yamt int
    194  1.2.12.3  yamt isp_fc_runstate(ispsoftc_t *isp, int chan, int tval)
    195  1.2.12.2  yamt {
    196  1.2.12.2  yamt 	fcparam *fcp;
    197  1.2.12.2  yamt 
    198  1.2.12.3  yamt 	fcp = FCPARAM(isp, chan);
    199  1.2.12.3  yamt         if (fcp->role == ISP_ROLE_NONE) {
    200  1.2.12.2  yamt 		return (0);
    201  1.2.12.2  yamt 	}
    202  1.2.12.2  yamt 	if (fcp->isp_fwstate < FW_READY ||
    203  1.2.12.2  yamt 	    fcp->isp_loopstate < LOOP_PDB_RCVD) {
    204  1.2.12.3  yamt 		if (isp_control(isp, ISPCTL_FCLINK_TEST, chan, tval) != 0) {
    205  1.2.12.2  yamt 			isp_prt(isp, ISP_LOGSANCFG,
    206  1.2.12.3  yamt 			    "isp_fc_runstate: linktest failed for channel %d",
    207  1.2.12.3  yamt 			    chan);
    208  1.2.12.2  yamt 			return (-1);
    209  1.2.12.2  yamt 		}
    210  1.2.12.2  yamt 		if (fcp->isp_fwstate != FW_READY ||
    211  1.2.12.2  yamt 		    fcp->isp_loopstate < LOOP_PDB_RCVD) {
    212  1.2.12.2  yamt 			isp_prt(isp, ISP_LOGSANCFG,
    213  1.2.12.3  yamt 			    "isp_fc_runstate: f/w not ready for channel %d",
    214  1.2.12.3  yamt 			    chan);
    215  1.2.12.2  yamt 			return (-1);
    216  1.2.12.2  yamt 		}
    217  1.2.12.2  yamt 	}
    218  1.2.12.3  yamt 
    219  1.2.12.3  yamt 	if ((fcp->role & ISP_ROLE_INITIATOR) == 0) {
    220  1.2.12.2  yamt 		return (0);
    221  1.2.12.2  yamt 	}
    222  1.2.12.3  yamt 
    223  1.2.12.3  yamt 	if (isp_control(isp, ISPCTL_SCAN_LOOP, chan) != 0) {
    224  1.2.12.2  yamt 		isp_prt(isp, ISP_LOGSANCFG,
    225  1.2.12.3  yamt 		    "isp_fc_runstate: scan loop fails on channel %d", chan);
    226  1.2.12.2  yamt 		return (LOOP_PDB_RCVD);
    227  1.2.12.2  yamt 	}
    228  1.2.12.3  yamt 	if (isp_control(isp, ISPCTL_SCAN_FABRIC, chan) != 0) {
    229  1.2.12.2  yamt 		isp_prt(isp, ISP_LOGSANCFG,
    230  1.2.12.3  yamt 		    "isp_fc_runstate: scan fabric fails on channel %d", chan);
    231  1.2.12.2  yamt 		return (LOOP_LSCAN_DONE);
    232  1.2.12.2  yamt 	}
    233  1.2.12.3  yamt 	if (isp_control(isp, ISPCTL_PDB_SYNC, chan) != 0) {
    234  1.2.12.3  yamt 		isp_prt(isp, ISP_LOGSANCFG,
    235  1.2.12.3  yamt 		    "isp_fc_runstate: pdb_sync fails on channel %d", chan);
    236  1.2.12.2  yamt 		return (LOOP_FSCAN_DONE);
    237  1.2.12.2  yamt 	}
    238  1.2.12.2  yamt 	if (fcp->isp_fwstate != FW_READY || fcp->isp_loopstate != LOOP_READY) {
    239  1.2.12.2  yamt 		isp_prt(isp, ISP_LOGSANCFG,
    240  1.2.12.3  yamt 		    "isp_fc_runstate: f/w not ready again on channel %d", chan);
    241  1.2.12.2  yamt 		return (-1);
    242  1.2.12.2  yamt 	}
    243  1.2.12.2  yamt 	return (0);
    244  1.2.12.2  yamt }
    245  1.2.12.2  yamt 
    246  1.2.12.2  yamt /*
    247  1.2.12.3  yamt  * Fibre Channel Support routines
    248  1.2.12.2  yamt  */
    249  1.2.12.2  yamt void
    250  1.2.12.3  yamt isp_dump_portdb(ispsoftc_t *isp, int chan)
    251  1.2.12.2  yamt {
    252  1.2.12.3  yamt 	fcparam *fcp = FCPARAM(isp, chan);
    253  1.2.12.2  yamt 	int i;
    254  1.2.12.2  yamt 
    255  1.2.12.2  yamt 	for (i = 0; i < MAX_FC_TARG; i++) {
    256  1.2.12.2  yamt 		char mb[4];
    257  1.2.12.2  yamt 		const char *dbs[8] = {
    258  1.2.12.2  yamt 			"NIL ",
    259  1.2.12.2  yamt 			"PROB",
    260  1.2.12.2  yamt 			"DEAD",
    261  1.2.12.2  yamt 			"CHGD",
    262  1.2.12.2  yamt 			"NEW ",
    263  1.2.12.2  yamt 			"PVLD",
    264  1.2.12.2  yamt 			"ZOMB",
    265  1.2.12.2  yamt 			"VLD "
    266  1.2.12.2  yamt 		};
    267  1.2.12.2  yamt 		const char *roles[4] = {
    268  1.2.12.2  yamt 			" UNK", " TGT", " INI", "TINI"
    269  1.2.12.2  yamt 		};
    270  1.2.12.2  yamt 		fcportdb_t *lp = &fcp->portdb[i];
    271  1.2.12.2  yamt 
    272  1.2.12.2  yamt 		if (lp->state == FC_PORTDB_STATE_NIL) {
    273  1.2.12.2  yamt 			continue;
    274  1.2.12.2  yamt 		}
    275  1.2.12.2  yamt 		if (lp->ini_map_idx) {
    276  1.2.12.2  yamt 			SNPRINTF(mb, sizeof (mb), "%3d",
    277  1.2.12.2  yamt 			    ((int) lp->ini_map_idx) - 1);
    278  1.2.12.2  yamt 		} else {
    279  1.2.12.2  yamt 			SNPRINTF(mb, sizeof (mb), "---");
    280  1.2.12.2  yamt 		}
    281  1.2.12.3  yamt 		isp_prt(isp, ISP_LOGALL, "Chan %d [%d]: hdl 0x%x %s al%d tgt %s"
    282  1.2.12.3  yamt 		    " %s 0x%06x =>%s 0x%06x; WWNN 0x%08x%08x WWPN 0x%08x%08x",
    283  1.2.12.3  yamt 		    chan, i, lp->handle, dbs[lp->state], lp->autologin, mb,
    284  1.2.12.2  yamt 		    roles[lp->roles], lp->portid,
    285  1.2.12.2  yamt 		    roles[lp->new_roles], lp->new_portid,
    286  1.2.12.2  yamt 		    (uint32_t) (lp->node_wwn >> 32),
    287  1.2.12.2  yamt 		    (uint32_t) (lp->node_wwn),
    288  1.2.12.2  yamt 		    (uint32_t) (lp->port_wwn >> 32),
    289  1.2.12.2  yamt 		    (uint32_t) (lp->port_wwn));
    290  1.2.12.2  yamt 	}
    291  1.2.12.2  yamt }
    292  1.2.12.2  yamt 
    293  1.2.12.2  yamt void
    294  1.2.12.2  yamt isp_shutdown(ispsoftc_t *isp)
    295  1.2.12.2  yamt {
    296  1.2.12.2  yamt 	if (IS_FC(isp)) {
    297  1.2.12.2  yamt 		if (IS_24XX(isp)) {
    298  1.2.12.2  yamt 			ISP_WRITE(isp, BIU2400_ICR, 0);
    299  1.2.12.2  yamt 			ISP_WRITE(isp, BIU2400_HCCR, HCCR_2400_CMD_PAUSE);
    300  1.2.12.2  yamt 		} else {
    301  1.2.12.2  yamt 			ISP_WRITE(isp, BIU_ICR, 0);
    302  1.2.12.2  yamt 			ISP_WRITE(isp, HCCR, HCCR_CMD_PAUSE);
    303  1.2.12.2  yamt 			ISP_WRITE(isp, BIU2100_CSR, BIU2100_FPM0_REGS);
    304  1.2.12.2  yamt 			ISP_WRITE(isp, FPM_DIAG_CONFIG, FPM_SOFT_RESET);
    305  1.2.12.2  yamt 			ISP_WRITE(isp, BIU2100_CSR, BIU2100_FB_REGS);
    306  1.2.12.2  yamt 			ISP_WRITE(isp, FBM_CMD, FBMCMD_FIFO_RESET_ALL);
    307  1.2.12.2  yamt 			ISP_WRITE(isp, BIU2100_CSR, BIU2100_RISC_REGS);
    308  1.2.12.2  yamt 		}
    309  1.2.12.2  yamt 	} else {
    310  1.2.12.2  yamt 		ISP_WRITE(isp, BIU_ICR, 0);
    311  1.2.12.2  yamt 		ISP_WRITE(isp, HCCR, HCCR_CMD_PAUSE);
    312  1.2.12.2  yamt 	}
    313  1.2.12.2  yamt }
    314  1.2.12.2  yamt 
    315  1.2.12.2  yamt /*
    316  1.2.12.2  yamt  * Functions to move stuff to a form that the QLogic RISC engine understands
    317  1.2.12.2  yamt  * and functions to move stuff back to a form the processor understands.
    318  1.2.12.2  yamt  *
    319  1.2.12.2  yamt  * Each platform is required to provide the 8, 16 and 32 bit
    320  1.2.12.2  yamt  * swizzle and unswizzle macros (ISP_IOX{PUT|GET}_{8,16,32})
    321  1.2.12.2  yamt  *
    322  1.2.12.2  yamt  * The assumption is that swizzling and unswizzling is mostly done 'in place'
    323  1.2.12.2  yamt  * (with a few exceptions for efficiency).
    324  1.2.12.2  yamt  */
    325  1.2.12.2  yamt 
    326  1.2.12.2  yamt #define	ISP_IS_SBUS(isp)	\
    327  1.2.12.2  yamt 	(ISP_SBUS_SUPPORTED && (isp)->isp_bustype == ISP_BT_SBUS)
    328  1.2.12.2  yamt 
    329  1.2.12.2  yamt #define	ASIZE(x)	(sizeof (x) / sizeof (x[0]))
    330  1.2.12.2  yamt /*
    331  1.2.12.2  yamt  * Swizzle/Copy Functions
    332  1.2.12.2  yamt  */
    333  1.2.12.2  yamt void
    334  1.2.12.2  yamt isp_put_hdr(ispsoftc_t *isp, isphdr_t *hpsrc, isphdr_t *hpdst)
    335  1.2.12.2  yamt {
    336  1.2.12.2  yamt 	if (ISP_IS_SBUS(isp)) {
    337  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, hpsrc->rqs_entry_type,
    338  1.2.12.2  yamt 		    &hpdst->rqs_entry_count);
    339  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, hpsrc->rqs_entry_count,
    340  1.2.12.2  yamt 		    &hpdst->rqs_entry_type);
    341  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, hpsrc->rqs_seqno,
    342  1.2.12.2  yamt 		    &hpdst->rqs_flags);
    343  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, hpsrc->rqs_flags,
    344  1.2.12.2  yamt 		    &hpdst->rqs_seqno);
    345  1.2.12.2  yamt 	} else {
    346  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, hpsrc->rqs_entry_type,
    347  1.2.12.2  yamt 		    &hpdst->rqs_entry_type);
    348  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, hpsrc->rqs_entry_count,
    349  1.2.12.2  yamt 		    &hpdst->rqs_entry_count);
    350  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, hpsrc->rqs_seqno,
    351  1.2.12.2  yamt 		    &hpdst->rqs_seqno);
    352  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, hpsrc->rqs_flags,
    353  1.2.12.2  yamt 		    &hpdst->rqs_flags);
    354  1.2.12.2  yamt 	}
    355  1.2.12.2  yamt }
    356  1.2.12.2  yamt 
    357  1.2.12.2  yamt void
    358  1.2.12.2  yamt isp_get_hdr(ispsoftc_t *isp, isphdr_t *hpsrc, isphdr_t *hpdst)
    359  1.2.12.2  yamt {
    360  1.2.12.2  yamt 	if (ISP_IS_SBUS(isp)) {
    361  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &hpsrc->rqs_entry_type,
    362  1.2.12.2  yamt 		    hpdst->rqs_entry_count);
    363  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &hpsrc->rqs_entry_count,
    364  1.2.12.2  yamt 		    hpdst->rqs_entry_type);
    365  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &hpsrc->rqs_seqno,
    366  1.2.12.2  yamt 		    hpdst->rqs_flags);
    367  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &hpsrc->rqs_flags,
    368  1.2.12.2  yamt 		    hpdst->rqs_seqno);
    369  1.2.12.2  yamt 	} else {
    370  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &hpsrc->rqs_entry_type,
    371  1.2.12.2  yamt 		    hpdst->rqs_entry_type);
    372  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &hpsrc->rqs_entry_count,
    373  1.2.12.2  yamt 		    hpdst->rqs_entry_count);
    374  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &hpsrc->rqs_seqno,
    375  1.2.12.2  yamt 		    hpdst->rqs_seqno);
    376  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &hpsrc->rqs_flags,
    377  1.2.12.2  yamt 		    hpdst->rqs_flags);
    378  1.2.12.2  yamt 	}
    379  1.2.12.2  yamt }
    380  1.2.12.2  yamt 
    381  1.2.12.2  yamt int
    382  1.2.12.2  yamt isp_get_response_type(ispsoftc_t *isp, isphdr_t *hp)
    383  1.2.12.2  yamt {
    384  1.2.12.2  yamt 	uint8_t type;
    385  1.2.12.2  yamt 	if (ISP_IS_SBUS(isp)) {
    386  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &hp->rqs_entry_count, type);
    387  1.2.12.2  yamt 	} else {
    388  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &hp->rqs_entry_type, type);
    389  1.2.12.2  yamt 	}
    390  1.2.12.2  yamt 	return ((int)type);
    391  1.2.12.2  yamt }
    392  1.2.12.2  yamt 
    393  1.2.12.2  yamt void
    394  1.2.12.2  yamt isp_put_request(ispsoftc_t *isp, ispreq_t *rqsrc, ispreq_t *rqdst)
    395  1.2.12.2  yamt {
    396  1.2.12.2  yamt 	int i;
    397  1.2.12.2  yamt 	isp_put_hdr(isp, &rqsrc->req_header, &rqdst->req_header);
    398  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, rqsrc->req_handle, &rqdst->req_handle);
    399  1.2.12.2  yamt 	if (ISP_IS_SBUS(isp)) {
    400  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, rqsrc->req_lun_trn, &rqdst->req_target);
    401  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, rqsrc->req_target, &rqdst->req_lun_trn);
    402  1.2.12.2  yamt 	} else {
    403  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, rqsrc->req_lun_trn, &rqdst->req_lun_trn);
    404  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, rqsrc->req_target, &rqdst->req_target);
    405  1.2.12.2  yamt 	}
    406  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, rqsrc->req_cdblen, &rqdst->req_cdblen);
    407  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, rqsrc->req_flags, &rqdst->req_flags);
    408  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, rqsrc->req_time, &rqdst->req_time);
    409  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, rqsrc->req_seg_count, &rqdst->req_seg_count);
    410  1.2.12.2  yamt 	for (i = 0; i < ASIZE(rqsrc->req_cdb); i++) {
    411  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, rqsrc->req_cdb[i], &rqdst->req_cdb[i]);
    412  1.2.12.2  yamt 	}
    413  1.2.12.2  yamt 	for (i = 0; i < ISP_RQDSEG; i++) {
    414  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, rqsrc->req_dataseg[i].ds_base,
    415  1.2.12.2  yamt 		    &rqdst->req_dataseg[i].ds_base);
    416  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, rqsrc->req_dataseg[i].ds_count,
    417  1.2.12.2  yamt 		    &rqdst->req_dataseg[i].ds_count);
    418  1.2.12.2  yamt 	}
    419  1.2.12.2  yamt }
    420  1.2.12.2  yamt 
    421  1.2.12.2  yamt void
    422  1.2.12.2  yamt isp_put_marker(ispsoftc_t *isp, isp_marker_t *src, isp_marker_t *dst)
    423  1.2.12.2  yamt {
    424  1.2.12.2  yamt 	int i;
    425  1.2.12.2  yamt 	isp_put_hdr(isp, &src->mrk_header, &dst->mrk_header);
    426  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->mrk_handle, &dst->mrk_handle);
    427  1.2.12.2  yamt 	if (ISP_IS_SBUS(isp)) {
    428  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->mrk_reserved0, &dst->mrk_target);
    429  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->mrk_target, &dst->mrk_reserved0);
    430  1.2.12.2  yamt 	} else {
    431  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->mrk_reserved0, &dst->mrk_reserved0);
    432  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->mrk_target, &dst->mrk_target);
    433  1.2.12.2  yamt 	}
    434  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->mrk_modifier, &dst->mrk_modifier);
    435  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->mrk_flags, &dst->mrk_flags);
    436  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->mrk_lun, &dst->mrk_lun);
    437  1.2.12.2  yamt 	for (i = 0; i < ASIZE(src->mrk_reserved1); i++) {
    438  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->mrk_reserved1[i],
    439  1.2.12.2  yamt 		    &dst->mrk_reserved1[i]);
    440  1.2.12.2  yamt 	}
    441  1.2.12.2  yamt }
    442  1.2.12.2  yamt 
    443  1.2.12.2  yamt void
    444  1.2.12.2  yamt isp_put_marker_24xx(ispsoftc_t *isp,
    445  1.2.12.2  yamt     isp_marker_24xx_t *src, isp_marker_24xx_t *dst)
    446  1.2.12.2  yamt {
    447  1.2.12.2  yamt 	int i;
    448  1.2.12.2  yamt 	isp_put_hdr(isp, &src->mrk_header, &dst->mrk_header);
    449  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->mrk_handle, &dst->mrk_handle);
    450  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->mrk_nphdl, &dst->mrk_nphdl);
    451  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->mrk_modifier, &dst->mrk_modifier);
    452  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->mrk_reserved0, &dst->mrk_reserved0);
    453  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->mrk_reserved1, &dst->mrk_reserved1);
    454  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->mrk_vphdl, &dst->mrk_vphdl);
    455  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->mrk_reserved2, &dst->mrk_reserved2);
    456  1.2.12.2  yamt 	for (i = 0; i < ASIZE(src->mrk_lun); i++) {
    457  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->mrk_lun[i], &dst->mrk_lun[i]);
    458  1.2.12.2  yamt 	}
    459  1.2.12.2  yamt 	for (i = 0; i < ASIZE(src->mrk_reserved3); i++) {
    460  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->mrk_reserved3[i],
    461  1.2.12.2  yamt 		    &dst->mrk_reserved3[i]);
    462  1.2.12.2  yamt 	}
    463  1.2.12.2  yamt }
    464  1.2.12.2  yamt 
    465  1.2.12.2  yamt void
    466  1.2.12.2  yamt isp_put_request_t2(ispsoftc_t *isp, ispreqt2_t *src, ispreqt2_t *dst)
    467  1.2.12.2  yamt {
    468  1.2.12.2  yamt 	int i;
    469  1.2.12.2  yamt 	isp_put_hdr(isp, &src->req_header, &dst->req_header);
    470  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->req_handle, &dst->req_handle);
    471  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->req_lun_trn, &dst->req_lun_trn);
    472  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->req_target, &dst->req_target);
    473  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_scclun, &dst->req_scclun);
    474  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_flags,  &dst->req_flags);
    475  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_reserved, &dst->req_reserved);
    476  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_time, &dst->req_time);
    477  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_seg_count, &dst->req_seg_count);
    478  1.2.12.2  yamt 	for (i = 0; i < ASIZE(src->req_cdb); i++) {
    479  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->req_cdb[i], &dst->req_cdb[i]);
    480  1.2.12.2  yamt 	}
    481  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->req_totalcnt, &dst->req_totalcnt);
    482  1.2.12.2  yamt 	for (i = 0; i < ISP_RQDSEG_T2; i++) {
    483  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->req_dataseg[i].ds_base,
    484  1.2.12.2  yamt 		    &dst->req_dataseg[i].ds_base);
    485  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->req_dataseg[i].ds_count,
    486  1.2.12.2  yamt 		    &dst->req_dataseg[i].ds_count);
    487  1.2.12.2  yamt 	}
    488  1.2.12.2  yamt }
    489  1.2.12.2  yamt 
    490  1.2.12.2  yamt void
    491  1.2.12.2  yamt isp_put_request_t2e(ispsoftc_t *isp, ispreqt2e_t *src, ispreqt2e_t *dst)
    492  1.2.12.2  yamt {
    493  1.2.12.2  yamt 	int i;
    494  1.2.12.2  yamt 	isp_put_hdr(isp, &src->req_header, &dst->req_header);
    495  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->req_handle, &dst->req_handle);
    496  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_target, &dst->req_target);
    497  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_scclun, &dst->req_scclun);
    498  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_flags,  &dst->req_flags);
    499  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_reserved, &dst->req_reserved);
    500  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_time, &dst->req_time);
    501  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_seg_count, &dst->req_seg_count);
    502  1.2.12.2  yamt 	for (i = 0; i < ASIZE(src->req_cdb); i++) {
    503  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->req_cdb[i], &dst->req_cdb[i]);
    504  1.2.12.2  yamt 	}
    505  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->req_totalcnt, &dst->req_totalcnt);
    506  1.2.12.2  yamt 	for (i = 0; i < ISP_RQDSEG_T2; i++) {
    507  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->req_dataseg[i].ds_base,
    508  1.2.12.2  yamt 		    &dst->req_dataseg[i].ds_base);
    509  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->req_dataseg[i].ds_count,
    510  1.2.12.2  yamt 		    &dst->req_dataseg[i].ds_count);
    511  1.2.12.2  yamt 	}
    512  1.2.12.2  yamt }
    513  1.2.12.2  yamt 
    514  1.2.12.2  yamt void
    515  1.2.12.2  yamt isp_put_request_t3(ispsoftc_t *isp, ispreqt3_t *src, ispreqt3_t *dst)
    516  1.2.12.2  yamt {
    517  1.2.12.2  yamt 	int i;
    518  1.2.12.2  yamt 	isp_put_hdr(isp, &src->req_header, &dst->req_header);
    519  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->req_handle, &dst->req_handle);
    520  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->req_lun_trn, &dst->req_lun_trn);
    521  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->req_target, &dst->req_target);
    522  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_scclun, &dst->req_scclun);
    523  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_flags,  &dst->req_flags);
    524  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_reserved, &dst->req_reserved);
    525  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_time, &dst->req_time);
    526  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_seg_count, &dst->req_seg_count);
    527  1.2.12.2  yamt 	for (i = 0; i < ASIZE(src->req_cdb); i++) {
    528  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->req_cdb[i], &dst->req_cdb[i]);
    529  1.2.12.2  yamt 	}
    530  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->req_totalcnt, &dst->req_totalcnt);
    531  1.2.12.2  yamt 	for (i = 0; i < ISP_RQDSEG_T3; i++) {
    532  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->req_dataseg[i].ds_base,
    533  1.2.12.2  yamt 		    &dst->req_dataseg[i].ds_base);
    534  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->req_dataseg[i].ds_basehi,
    535  1.2.12.2  yamt 		    &dst->req_dataseg[i].ds_basehi);
    536  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->req_dataseg[i].ds_count,
    537  1.2.12.2  yamt 		    &dst->req_dataseg[i].ds_count);
    538  1.2.12.2  yamt 	}
    539  1.2.12.2  yamt }
    540  1.2.12.2  yamt 
    541  1.2.12.2  yamt void
    542  1.2.12.2  yamt isp_put_request_t3e(ispsoftc_t *isp, ispreqt3e_t *src, ispreqt3e_t *dst)
    543  1.2.12.2  yamt {
    544  1.2.12.2  yamt 	int i;
    545  1.2.12.2  yamt 	isp_put_hdr(isp, &src->req_header, &dst->req_header);
    546  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->req_handle, &dst->req_handle);
    547  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_target, &dst->req_target);
    548  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_scclun, &dst->req_scclun);
    549  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_flags,  &dst->req_flags);
    550  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_reserved, &dst->req_reserved);
    551  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_time, &dst->req_time);
    552  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_seg_count, &dst->req_seg_count);
    553  1.2.12.2  yamt 	for (i = 0; i < ASIZE(src->req_cdb); i++) {
    554  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->req_cdb[i], &dst->req_cdb[i]);
    555  1.2.12.2  yamt 	}
    556  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->req_totalcnt, &dst->req_totalcnt);
    557  1.2.12.2  yamt 	for (i = 0; i < ISP_RQDSEG_T3; i++) {
    558  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->req_dataseg[i].ds_base,
    559  1.2.12.2  yamt 		    &dst->req_dataseg[i].ds_base);
    560  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->req_dataseg[i].ds_basehi,
    561  1.2.12.2  yamt 		    &dst->req_dataseg[i].ds_basehi);
    562  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->req_dataseg[i].ds_count,
    563  1.2.12.2  yamt 		    &dst->req_dataseg[i].ds_count);
    564  1.2.12.2  yamt 	}
    565  1.2.12.2  yamt }
    566  1.2.12.2  yamt 
    567  1.2.12.2  yamt void
    568  1.2.12.2  yamt isp_put_extended_request(ispsoftc_t *isp, ispextreq_t *src, ispextreq_t *dst)
    569  1.2.12.2  yamt {
    570  1.2.12.2  yamt 	int i;
    571  1.2.12.2  yamt 	isp_put_hdr(isp, &src->req_header, &dst->req_header);
    572  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->req_handle, &dst->req_handle);
    573  1.2.12.2  yamt 	if (ISP_IS_SBUS(isp)) {
    574  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->req_lun_trn, &dst->req_target);
    575  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->req_target, &dst->req_lun_trn);
    576  1.2.12.2  yamt 	} else {
    577  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->req_lun_trn, &dst->req_lun_trn);
    578  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->req_target, &dst->req_target);
    579  1.2.12.2  yamt 	}
    580  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_cdblen, &dst->req_cdblen);
    581  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_flags, &dst->req_flags);
    582  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_time, &dst->req_time);
    583  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_seg_count, &dst->req_seg_count);
    584  1.2.12.2  yamt 	for (i = 0; i < ASIZE(src->req_cdb); i++) {
    585  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->req_cdb[i], &dst->req_cdb[i]);
    586  1.2.12.2  yamt 	}
    587  1.2.12.2  yamt }
    588  1.2.12.2  yamt 
    589  1.2.12.2  yamt void
    590  1.2.12.2  yamt isp_put_request_t7(ispsoftc_t *isp, ispreqt7_t *src, ispreqt7_t *dst)
    591  1.2.12.2  yamt {
    592  1.2.12.2  yamt 	int i;
    593  1.2.12.2  yamt 	uint32_t *a, *b;
    594  1.2.12.2  yamt 
    595  1.2.12.2  yamt 	isp_put_hdr(isp, &src->req_header, &dst->req_header);
    596  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->req_handle, &dst->req_handle);
    597  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_nphdl, &dst->req_nphdl);
    598  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_time, &dst->req_time);
    599  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_seg_count, &dst->req_seg_count);
    600  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_reserved, &dst->req_reserved);
    601  1.2.12.2  yamt 	a = (uint32_t *) src->req_lun;
    602  1.2.12.2  yamt 	b = (uint32_t *) dst->req_lun;
    603  1.2.12.2  yamt 	for (i = 0; i < (ASIZE(src->req_lun) >> 2); i++ ) {
    604  1.2.12.2  yamt 		*b++ = ISP_SWAP32(isp, *a++);
    605  1.2.12.2  yamt 	}
    606  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->req_alen_datadir, &dst->req_alen_datadir);
    607  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->req_task_management, &dst->req_task_management);
    608  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->req_task_attribute, &dst->req_task_attribute);
    609  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->req_crn, &dst->req_crn);
    610  1.2.12.2  yamt 	a = (uint32_t *) src->req_cdb;
    611  1.2.12.2  yamt 	b = (uint32_t *) dst->req_cdb;
    612  1.2.12.2  yamt 	for (i = 0; i < (ASIZE(src->req_cdb) >> 2); i++) {
    613  1.2.12.2  yamt 		*b++ = ISP_SWAP32(isp, *a++);
    614  1.2.12.2  yamt 	}
    615  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->req_dl, &dst->req_dl);
    616  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->req_tidlo, &dst->req_tidlo);
    617  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->req_tidhi, &dst->req_tidhi);
    618  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->req_vpidx, &dst->req_vpidx);
    619  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->req_dataseg.ds_base,
    620  1.2.12.2  yamt 	    &dst->req_dataseg.ds_base);
    621  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->req_dataseg.ds_basehi,
    622  1.2.12.2  yamt 	    &dst->req_dataseg.ds_basehi);
    623  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->req_dataseg.ds_count,
    624  1.2.12.2  yamt 	    &dst->req_dataseg.ds_count);
    625  1.2.12.2  yamt }
    626  1.2.12.2  yamt 
    627  1.2.12.2  yamt void
    628  1.2.12.3  yamt isp_put_24xx_tmf(ispsoftc_t *isp, isp24xx_tmf_t *src, isp24xx_tmf_t *dst)
    629  1.2.12.3  yamt {
    630  1.2.12.3  yamt 	int i;
    631  1.2.12.3  yamt 	uint32_t *a, *b;
    632  1.2.12.3  yamt 
    633  1.2.12.3  yamt 	isp_put_hdr(isp, &src->tmf_header, &dst->tmf_header);
    634  1.2.12.3  yamt 	ISP_IOXPUT_32(isp, src->tmf_handle, &dst->tmf_handle);
    635  1.2.12.3  yamt 	ISP_IOXPUT_16(isp, src->tmf_nphdl, &dst->tmf_nphdl);
    636  1.2.12.3  yamt 	ISP_IOXPUT_16(isp, src->tmf_delay, &dst->tmf_delay);
    637  1.2.12.3  yamt 	ISP_IOXPUT_16(isp, src->tmf_timeout, &dst->tmf_timeout);
    638  1.2.12.3  yamt 	for (i = 0; i < ASIZE(src->tmf_reserved0); i++) {
    639  1.2.12.3  yamt 		ISP_IOXPUT_8(isp, src->tmf_reserved0[i],
    640  1.2.12.3  yamt 		    &dst->tmf_reserved0[i]);
    641  1.2.12.3  yamt 	}
    642  1.2.12.3  yamt 	a = (uint32_t *) src->tmf_lun;
    643  1.2.12.3  yamt 	b = (uint32_t *) dst->tmf_lun;
    644  1.2.12.3  yamt 	for (i = 0; i < (ASIZE(src->tmf_lun) >> 2); i++ ) {
    645  1.2.12.3  yamt 		*b++ = ISP_SWAP32(isp, *a++);
    646  1.2.12.3  yamt 	}
    647  1.2.12.3  yamt 	ISP_IOXPUT_32(isp, src->tmf_flags, &dst->tmf_flags);
    648  1.2.12.3  yamt 	for (i = 0; i < ASIZE(src->tmf_reserved1); i++) {
    649  1.2.12.3  yamt 		ISP_IOXPUT_8(isp, src->tmf_reserved1[i],
    650  1.2.12.3  yamt 		    &dst->tmf_reserved1[i]);
    651  1.2.12.3  yamt 	}
    652  1.2.12.3  yamt 	ISP_IOXPUT_16(isp, src->tmf_tidlo, &dst->tmf_tidlo);
    653  1.2.12.3  yamt 	ISP_IOXPUT_8(isp, src->tmf_tidhi, &dst->tmf_tidhi);
    654  1.2.12.3  yamt 	ISP_IOXPUT_8(isp, src->tmf_vpidx, &dst->tmf_vpidx);
    655  1.2.12.3  yamt 	for (i = 0; i < ASIZE(src->tmf_reserved2); i++) {
    656  1.2.12.3  yamt 		ISP_IOXPUT_8(isp, src->tmf_reserved2[i],
    657  1.2.12.3  yamt 		    &dst->tmf_reserved2[i]);
    658  1.2.12.3  yamt 	}
    659  1.2.12.3  yamt }
    660  1.2.12.3  yamt 
    661  1.2.12.3  yamt void
    662  1.2.12.2  yamt isp_put_24xx_abrt(ispsoftc_t *isp, isp24xx_abrt_t *src, isp24xx_abrt_t *dst)
    663  1.2.12.2  yamt {
    664  1.2.12.2  yamt 	int i;
    665  1.2.12.2  yamt 	isp_put_hdr(isp, &src->abrt_header, &dst->abrt_header);
    666  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->abrt_handle, &dst->abrt_handle);
    667  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->abrt_nphdl, &dst->abrt_nphdl);
    668  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->abrt_options, &dst->abrt_options);
    669  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->abrt_cmd_handle, &dst->abrt_cmd_handle);
    670  1.2.12.2  yamt 	for (i = 0; i < ASIZE(src->abrt_reserved); i++) {
    671  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->abrt_reserved[i],
    672  1.2.12.2  yamt 		    &dst->abrt_reserved[i]);
    673  1.2.12.2  yamt 	}
    674  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->abrt_tidlo, &dst->abrt_tidlo);
    675  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->abrt_tidhi, &dst->abrt_tidhi);
    676  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->abrt_vpidx, &dst->abrt_vpidx);
    677  1.2.12.2  yamt 	for (i = 0; i < ASIZE(src->abrt_reserved1); i++) {
    678  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->abrt_reserved1[i],
    679  1.2.12.2  yamt 		    &dst->abrt_reserved1[i]);
    680  1.2.12.2  yamt 	}
    681  1.2.12.2  yamt }
    682  1.2.12.2  yamt 
    683  1.2.12.2  yamt void
    684  1.2.12.2  yamt isp_put_cont_req(ispsoftc_t *isp, ispcontreq_t *src, ispcontreq_t *dst)
    685  1.2.12.2  yamt {
    686  1.2.12.2  yamt 	int i;
    687  1.2.12.2  yamt 	isp_put_hdr(isp, &src->req_header, &dst->req_header);
    688  1.2.12.2  yamt 	for (i = 0; i < ISP_CDSEG; i++) {
    689  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->req_dataseg[i].ds_base,
    690  1.2.12.2  yamt 		    &dst->req_dataseg[i].ds_base);
    691  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->req_dataseg[i].ds_count,
    692  1.2.12.2  yamt 		    &dst->req_dataseg[i].ds_count);
    693  1.2.12.2  yamt 	}
    694  1.2.12.2  yamt }
    695  1.2.12.2  yamt 
    696  1.2.12.2  yamt void
    697  1.2.12.2  yamt isp_put_cont64_req(ispsoftc_t *isp, ispcontreq64_t *src, ispcontreq64_t *dst)
    698  1.2.12.2  yamt {
    699  1.2.12.2  yamt 	int i;
    700  1.2.12.2  yamt 	isp_put_hdr(isp, &src->req_header, &dst->req_header);
    701  1.2.12.2  yamt 	for (i = 0; i < ISP_CDSEG64; i++) {
    702  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->req_dataseg[i].ds_base,
    703  1.2.12.2  yamt 		    &dst->req_dataseg[i].ds_base);
    704  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->req_dataseg[i].ds_basehi,
    705  1.2.12.2  yamt 		    &dst->req_dataseg[i].ds_basehi);
    706  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->req_dataseg[i].ds_count,
    707  1.2.12.2  yamt 		    &dst->req_dataseg[i].ds_count);
    708  1.2.12.2  yamt 	}
    709  1.2.12.2  yamt }
    710  1.2.12.2  yamt 
    711  1.2.12.2  yamt void
    712  1.2.12.2  yamt isp_get_response(ispsoftc_t *isp, ispstatusreq_t *src, ispstatusreq_t *dst)
    713  1.2.12.2  yamt {
    714  1.2.12.2  yamt 	int i;
    715  1.2.12.2  yamt 	isp_get_hdr(isp, &src->req_header, &dst->req_header);
    716  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->req_handle, dst->req_handle);
    717  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->req_scsi_status, dst->req_scsi_status);
    718  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->req_completion_status,
    719  1.2.12.2  yamt 	    dst->req_completion_status);
    720  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->req_state_flags, dst->req_state_flags);
    721  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->req_status_flags, dst->req_status_flags);
    722  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->req_time, dst->req_time);
    723  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->req_sense_len, dst->req_sense_len);
    724  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->req_resid, dst->req_resid);
    725  1.2.12.2  yamt 	for (i = 0; i < 8; i++) {
    726  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->req_response[i],
    727  1.2.12.2  yamt 		    dst->req_response[i]);
    728  1.2.12.2  yamt 	}
    729  1.2.12.2  yamt 	for (i = 0; i < 32; i++) {
    730  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->req_sense_data[i],
    731  1.2.12.2  yamt 		    dst->req_sense_data[i]);
    732  1.2.12.2  yamt 	}
    733  1.2.12.2  yamt }
    734  1.2.12.2  yamt 
    735  1.2.12.2  yamt void
    736  1.2.12.2  yamt isp_get_24xx_response(ispsoftc_t *isp, isp24xx_statusreq_t *src,
    737  1.2.12.2  yamt     isp24xx_statusreq_t *dst)
    738  1.2.12.2  yamt {
    739  1.2.12.2  yamt 	int i;
    740  1.2.12.2  yamt 	uint32_t *s, *d;
    741  1.2.12.2  yamt 
    742  1.2.12.2  yamt 	isp_get_hdr(isp, &src->req_header, &dst->req_header);
    743  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->req_handle, dst->req_handle);
    744  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->req_completion_status,
    745  1.2.12.2  yamt 	    dst->req_completion_status);
    746  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->req_oxid, dst->req_oxid);
    747  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->req_resid, dst->req_resid);
    748  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->req_reserved0, dst->req_reserved0);
    749  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->req_state_flags, dst->req_state_flags);
    750  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->req_reserved1, dst->req_reserved1);
    751  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->req_scsi_status, dst->req_scsi_status);
    752  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->req_fcp_residual, dst->req_fcp_residual);
    753  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->req_sense_len, dst->req_sense_len);
    754  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->req_response_len, dst->req_response_len);
    755  1.2.12.2  yamt 	s = (uint32_t *)src->req_rsp_sense;
    756  1.2.12.2  yamt 	d = (uint32_t *)dst->req_rsp_sense;
    757  1.2.12.2  yamt 	for (i = 0; i < (ASIZE(src->req_rsp_sense) >> 2); i++) {
    758  1.2.12.2  yamt 		d[i] = ISP_SWAP32(isp, s[i]);
    759  1.2.12.2  yamt 	}
    760  1.2.12.2  yamt }
    761  1.2.12.2  yamt 
    762  1.2.12.2  yamt void
    763  1.2.12.2  yamt isp_get_24xx_abrt(ispsoftc_t *isp, isp24xx_abrt_t *src, isp24xx_abrt_t *dst)
    764  1.2.12.2  yamt {
    765  1.2.12.2  yamt 	int i;
    766  1.2.12.2  yamt 	isp_get_hdr(isp, &src->abrt_header, &dst->abrt_header);
    767  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->abrt_handle, dst->abrt_handle);
    768  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->abrt_nphdl, dst->abrt_nphdl);
    769  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->abrt_options, dst->abrt_options);
    770  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->abrt_cmd_handle, dst->abrt_cmd_handle);
    771  1.2.12.2  yamt 	for (i = 0; i < ASIZE(src->abrt_reserved); i++) {
    772  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->abrt_reserved[i],
    773  1.2.12.2  yamt 		    dst->abrt_reserved[i]);
    774  1.2.12.2  yamt 	}
    775  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->abrt_tidlo, dst->abrt_tidlo);
    776  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->abrt_tidhi, dst->abrt_tidhi);
    777  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->abrt_vpidx, dst->abrt_vpidx);
    778  1.2.12.2  yamt 	for (i = 0; i < ASIZE(src->abrt_reserved1); i++) {
    779  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->abrt_reserved1[i],
    780  1.2.12.2  yamt 		    dst->abrt_reserved1[i]);
    781  1.2.12.2  yamt 	}
    782  1.2.12.2  yamt }
    783  1.2.12.2  yamt 
    784  1.2.12.2  yamt 
    785  1.2.12.2  yamt void
    786  1.2.12.2  yamt isp_get_rio2(ispsoftc_t *isp, isp_rio2_t *r2src, isp_rio2_t *r2dst)
    787  1.2.12.2  yamt {
    788  1.2.12.2  yamt 	int i;
    789  1.2.12.2  yamt 	isp_get_hdr(isp, &r2src->req_header, &r2dst->req_header);
    790  1.2.12.2  yamt 	if (r2dst->req_header.rqs_seqno > 30) {
    791  1.2.12.2  yamt 		r2dst->req_header.rqs_seqno = 30;
    792  1.2.12.2  yamt 	}
    793  1.2.12.2  yamt 	for (i = 0; i < r2dst->req_header.rqs_seqno; i++) {
    794  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &r2src->req_handles[i],
    795  1.2.12.2  yamt 		    r2dst->req_handles[i]);
    796  1.2.12.2  yamt 	}
    797  1.2.12.2  yamt 	while (i < 30) {
    798  1.2.12.2  yamt 		r2dst->req_handles[i++] = 0;
    799  1.2.12.2  yamt 	}
    800  1.2.12.2  yamt }
    801  1.2.12.2  yamt 
    802  1.2.12.2  yamt void
    803  1.2.12.2  yamt isp_put_icb(ispsoftc_t *isp, isp_icb_t *src, isp_icb_t *dst)
    804  1.2.12.2  yamt {
    805  1.2.12.2  yamt 	int i;
    806  1.2.12.2  yamt 	if (ISP_IS_SBUS(isp)) {
    807  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->icb_version, &dst->icb_reserved0);
    808  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->icb_reserved0, &dst->icb_version);
    809  1.2.12.2  yamt 	} else {
    810  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->icb_version, &dst->icb_version);
    811  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->icb_reserved0, &dst->icb_reserved0);
    812  1.2.12.2  yamt 	}
    813  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_fwoptions, &dst->icb_fwoptions);
    814  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_maxfrmlen, &dst->icb_maxfrmlen);
    815  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_maxalloc, &dst->icb_maxalloc);
    816  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_execthrottle, &dst->icb_execthrottle);
    817  1.2.12.2  yamt 	if (ISP_IS_SBUS(isp)) {
    818  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->icb_retry_count, &dst->icb_retry_delay);
    819  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->icb_retry_delay, &dst->icb_retry_count);
    820  1.2.12.2  yamt 	} else {
    821  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->icb_retry_count, &dst->icb_retry_count);
    822  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->icb_retry_delay, &dst->icb_retry_delay);
    823  1.2.12.2  yamt 	}
    824  1.2.12.2  yamt 	for (i = 0; i < 8; i++) {
    825  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->icb_portname[i], &dst->icb_portname[i]);
    826  1.2.12.2  yamt 	}
    827  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_hardaddr, &dst->icb_hardaddr);
    828  1.2.12.2  yamt 	if (ISP_IS_SBUS(isp)) {
    829  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->icb_iqdevtype, &dst->icb_logintime);
    830  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->icb_logintime, &dst->icb_iqdevtype);
    831  1.2.12.2  yamt 	} else {
    832  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->icb_iqdevtype, &dst->icb_iqdevtype);
    833  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->icb_logintime, &dst->icb_logintime);
    834  1.2.12.2  yamt 	}
    835  1.2.12.2  yamt 	for (i = 0; i < 8; i++) {
    836  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->icb_nodename[i], &dst->icb_nodename[i]);
    837  1.2.12.2  yamt 	}
    838  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_rqstout, &dst->icb_rqstout);
    839  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_rspnsin, &dst->icb_rspnsin);
    840  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_rqstqlen, &dst->icb_rqstqlen);
    841  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_rsltqlen, &dst->icb_rsltqlen);
    842  1.2.12.2  yamt 	for (i = 0; i < 4; i++) {
    843  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->icb_rqstaddr[i], &dst->icb_rqstaddr[i]);
    844  1.2.12.2  yamt 	}
    845  1.2.12.2  yamt 	for (i = 0; i < 4; i++) {
    846  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->icb_respaddr[i], &dst->icb_respaddr[i]);
    847  1.2.12.2  yamt 	}
    848  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_lunenables, &dst->icb_lunenables);
    849  1.2.12.2  yamt 	if (ISP_IS_SBUS(isp)) {
    850  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->icb_ccnt, &dst->icb_icnt);
    851  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->icb_icnt, &dst->icb_ccnt);
    852  1.2.12.2  yamt 	} else {
    853  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->icb_ccnt, &dst->icb_ccnt);
    854  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->icb_icnt, &dst->icb_icnt);
    855  1.2.12.2  yamt 	}
    856  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_lunetimeout, &dst->icb_lunetimeout);
    857  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_reserved1, &dst->icb_reserved1);
    858  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_xfwoptions, &dst->icb_xfwoptions);
    859  1.2.12.2  yamt 	if (ISP_IS_SBUS(isp)) {
    860  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->icb_racctimer, &dst->icb_idelaytimer);
    861  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->icb_idelaytimer, &dst->icb_racctimer);
    862  1.2.12.2  yamt 	} else {
    863  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->icb_racctimer, &dst->icb_racctimer);
    864  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->icb_idelaytimer, &dst->icb_idelaytimer);
    865  1.2.12.2  yamt 	}
    866  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_zfwoptions, &dst->icb_zfwoptions);
    867  1.2.12.2  yamt }
    868  1.2.12.2  yamt 
    869  1.2.12.2  yamt void
    870  1.2.12.2  yamt isp_put_icb_2400(ispsoftc_t *isp, isp_icb_2400_t *src, isp_icb_2400_t *dst)
    871  1.2.12.2  yamt {
    872  1.2.12.2  yamt 	int i;
    873  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_version, &dst->icb_version);
    874  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_reserved0, &dst->icb_reserved0);
    875  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_maxfrmlen, &dst->icb_maxfrmlen);
    876  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_execthrottle, &dst->icb_execthrottle);
    877  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_xchgcnt, &dst->icb_xchgcnt);
    878  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_hardaddr, &dst->icb_hardaddr);
    879  1.2.12.2  yamt 	for (i = 0; i < 8; i++) {
    880  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->icb_portname[i], &dst->icb_portname[i]);
    881  1.2.12.2  yamt 	}
    882  1.2.12.2  yamt 	for (i = 0; i < 8; i++) {
    883  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->icb_nodename[i], &dst->icb_nodename[i]);
    884  1.2.12.2  yamt 	}
    885  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_rspnsin, &dst->icb_rspnsin);
    886  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_rqstout, &dst->icb_rqstout);
    887  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_retry_count, &dst->icb_retry_count);
    888  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_priout, &dst->icb_priout);
    889  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_rsltqlen, &dst->icb_rsltqlen);
    890  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_rqstqlen, &dst->icb_rqstqlen);
    891  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_ldn_nols, &dst->icb_ldn_nols);
    892  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_prqstqlen, &dst->icb_prqstqlen);
    893  1.2.12.2  yamt 	for (i = 0; i < 4; i++) {
    894  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->icb_rqstaddr[i], &dst->icb_rqstaddr[i]);
    895  1.2.12.2  yamt 	}
    896  1.2.12.2  yamt 	for (i = 0; i < 4; i++) {
    897  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->icb_respaddr[i], &dst->icb_respaddr[i]);
    898  1.2.12.2  yamt 	}
    899  1.2.12.2  yamt 	for (i = 0; i < 4; i++) {
    900  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->icb_priaddr[i], &dst->icb_priaddr[i]);
    901  1.2.12.2  yamt 	}
    902  1.2.12.2  yamt 	for (i = 0; i < 4; i++) {
    903  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->icb_reserved1[i],
    904  1.2.12.2  yamt 		    &dst->icb_reserved1[i]);
    905  1.2.12.2  yamt 	}
    906  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_atio_in, &dst->icb_atio_in);
    907  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_atioqlen, &dst->icb_atioqlen);
    908  1.2.12.2  yamt 	for (i = 0; i < 4; i++) {
    909  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->icb_atioqaddr[i],
    910  1.2.12.2  yamt 		    &dst->icb_atioqaddr[i]);
    911  1.2.12.2  yamt 	}
    912  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_idelaytimer, &dst->icb_idelaytimer);
    913  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->icb_logintime, &dst->icb_logintime);
    914  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->icb_fwoptions1, &dst->icb_fwoptions1);
    915  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->icb_fwoptions2, &dst->icb_fwoptions2);
    916  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->icb_fwoptions3, &dst->icb_fwoptions3);
    917  1.2.12.2  yamt 	for (i = 0; i < 12; i++) {
    918  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->icb_reserved2[i],
    919  1.2.12.2  yamt 		    &dst->icb_reserved2[i]);
    920  1.2.12.2  yamt 	}
    921  1.2.12.2  yamt }
    922  1.2.12.2  yamt 
    923  1.2.12.2  yamt void
    924  1.2.12.3  yamt isp_put_icb_2400_vpinfo(ispsoftc_t *isp, isp_icb_2400_vpinfo_t *src, isp_icb_2400_vpinfo_t *dst)
    925  1.2.12.3  yamt {
    926  1.2.12.3  yamt 	ISP_IOXPUT_16(isp, src->vp_count, &dst->vp_count);
    927  1.2.12.3  yamt 	ISP_IOXPUT_16(isp, src->vp_global_options, &dst->vp_global_options);
    928  1.2.12.3  yamt }
    929  1.2.12.3  yamt 
    930  1.2.12.3  yamt void
    931  1.2.12.3  yamt isp_put_vp_port_info(ispsoftc_t *isp, vp_port_info_t *src, vp_port_info_t *dst)
    932  1.2.12.3  yamt {
    933  1.2.12.3  yamt 	int i;
    934  1.2.12.3  yamt 	ISP_IOXPUT_16(isp, src->vp_port_status, &dst->vp_port_status);
    935  1.2.12.3  yamt 	ISP_IOXPUT_8(isp, src->vp_port_options, &dst->vp_port_options);
    936  1.2.12.3  yamt 	ISP_IOXPUT_8(isp, src->vp_port_loopid, &dst->vp_port_loopid);
    937  1.2.12.3  yamt 	for (i = 0; i < 8; i++) {
    938  1.2.12.3  yamt 		ISP_IOXPUT_8(isp, src->vp_port_portname[i], &dst->vp_port_portname[i]);
    939  1.2.12.3  yamt 	}
    940  1.2.12.3  yamt 	for (i = 0; i < 8; i++) {
    941  1.2.12.3  yamt 		ISP_IOXPUT_8(isp, src->vp_port_nodename[i], &dst->vp_port_nodename[i]);
    942  1.2.12.3  yamt 	}
    943  1.2.12.3  yamt 	/* we never *put* portid_lo/portid_hi */
    944  1.2.12.3  yamt }
    945  1.2.12.3  yamt 
    946  1.2.12.3  yamt void
    947  1.2.12.3  yamt isp_get_vp_port_info(ispsoftc_t *isp, vp_port_info_t *src, vp_port_info_t *dst)
    948  1.2.12.3  yamt {
    949  1.2.12.3  yamt 	int i;
    950  1.2.12.3  yamt 	ISP_IOXGET_16(isp, &src->vp_port_status, dst->vp_port_status);
    951  1.2.12.3  yamt 	ISP_IOXGET_8(isp, &src->vp_port_options, dst->vp_port_options);
    952  1.2.12.3  yamt 	ISP_IOXGET_8(isp, &src->vp_port_loopid, dst->vp_port_loopid);
    953  1.2.12.3  yamt 	for (i = 0; i < ASIZE(src->vp_port_portname); i++) {
    954  1.2.12.3  yamt 		ISP_IOXGET_8(isp, &src->vp_port_portname[i], dst->vp_port_portname[i]);
    955  1.2.12.3  yamt 	}
    956  1.2.12.3  yamt 	for (i = 0; i < ASIZE(src->vp_port_nodename); i++) {
    957  1.2.12.3  yamt 		ISP_IOXGET_8(isp, &src->vp_port_nodename[i], dst->vp_port_nodename[i]);
    958  1.2.12.3  yamt 	}
    959  1.2.12.3  yamt 	ISP_IOXGET_16(isp, &src->vp_port_portid_lo, dst->vp_port_portid_lo);
    960  1.2.12.3  yamt 	ISP_IOXGET_16(isp, &src->vp_port_portid_hi, dst->vp_port_portid_hi);
    961  1.2.12.3  yamt }
    962  1.2.12.3  yamt 
    963  1.2.12.3  yamt void
    964  1.2.12.3  yamt isp_put_vp_ctrl_info(ispsoftc_t *isp, vp_ctrl_info_t *src, vp_ctrl_info_t *dst)
    965  1.2.12.3  yamt {
    966  1.2.12.3  yamt 	int i;
    967  1.2.12.3  yamt 	isp_put_hdr(isp, &src->vp_ctrl_hdr, &dst->vp_ctrl_hdr);
    968  1.2.12.3  yamt 	ISP_IOXPUT_32(isp, src->vp_ctrl_handle, &dst->vp_ctrl_handle);
    969  1.2.12.3  yamt 	ISP_IOXPUT_16(isp, src->vp_ctrl_index_fail, &dst->vp_ctrl_index_fail);
    970  1.2.12.3  yamt 	ISP_IOXPUT_16(isp, src->vp_ctrl_status, &dst->vp_ctrl_status);
    971  1.2.12.3  yamt 	ISP_IOXPUT_16(isp, src->vp_ctrl_command, &dst->vp_ctrl_command);
    972  1.2.12.3  yamt 	ISP_IOXPUT_16(isp, src->vp_ctrl_vp_count, &dst->vp_ctrl_vp_count);
    973  1.2.12.3  yamt 	for (i = 0; i < ASIZE(src->vp_ctrl_idmap); i++) {
    974  1.2.12.3  yamt 		ISP_IOXPUT_16(isp, src->vp_ctrl_idmap[i], &dst->vp_ctrl_idmap[i]);
    975  1.2.12.3  yamt 	}
    976  1.2.12.3  yamt 	for (i = 0; i < ASIZE(src->vp_ctrl_reserved); i++) {
    977  1.2.12.3  yamt 		ISP_IOXPUT_8(isp, src->vp_ctrl_idmap[i], &dst->vp_ctrl_idmap[i]);
    978  1.2.12.3  yamt 	}
    979  1.2.12.3  yamt }
    980  1.2.12.3  yamt 
    981  1.2.12.3  yamt void
    982  1.2.12.3  yamt isp_get_vp_ctrl_info(ispsoftc_t *isp, vp_ctrl_info_t *src, vp_ctrl_info_t *dst)
    983  1.2.12.3  yamt {
    984  1.2.12.3  yamt 	int i;
    985  1.2.12.3  yamt 	isp_get_hdr(isp, &src->vp_ctrl_hdr, &dst->vp_ctrl_hdr);
    986  1.2.12.3  yamt 	ISP_IOXGET_32(isp, &src->vp_ctrl_handle, dst->vp_ctrl_handle);
    987  1.2.12.3  yamt 	ISP_IOXGET_16(isp, &src->vp_ctrl_index_fail, dst->vp_ctrl_index_fail);
    988  1.2.12.3  yamt 	ISP_IOXGET_16(isp, &src->vp_ctrl_status, dst->vp_ctrl_status);
    989  1.2.12.3  yamt 	ISP_IOXGET_16(isp, &src->vp_ctrl_command, dst->vp_ctrl_command);
    990  1.2.12.3  yamt 	ISP_IOXGET_16(isp, &src->vp_ctrl_vp_count, dst->vp_ctrl_vp_count);
    991  1.2.12.3  yamt 	for (i = 0; i < ASIZE(src->vp_ctrl_idmap); i++) {
    992  1.2.12.3  yamt 		ISP_IOXGET_16(isp, &src->vp_ctrl_idmap[i], dst->vp_ctrl_idmap[i]);
    993  1.2.12.3  yamt 	}
    994  1.2.12.3  yamt 	for (i = 0; i < ASIZE(src->vp_ctrl_reserved); i++) {
    995  1.2.12.3  yamt 		ISP_IOXGET_8(isp, &src->vp_ctrl_reserved[i], dst->vp_ctrl_reserved[i]);
    996  1.2.12.3  yamt 	}
    997  1.2.12.3  yamt }
    998  1.2.12.3  yamt 
    999  1.2.12.3  yamt void
   1000  1.2.12.3  yamt isp_put_vp_modify(ispsoftc_t *isp, vp_modify_t *src, vp_modify_t *dst)
   1001  1.2.12.3  yamt {
   1002  1.2.12.3  yamt 	int i, j;
   1003  1.2.12.3  yamt 	isp_put_hdr(isp, &src->vp_mod_hdr, &dst->vp_mod_hdr);
   1004  1.2.12.3  yamt 	ISP_IOXPUT_32(isp, src->vp_mod_hdl, &dst->vp_mod_hdl);
   1005  1.2.12.3  yamt 	ISP_IOXPUT_16(isp, src->vp_mod_reserved0, &dst->vp_mod_reserved0);
   1006  1.2.12.3  yamt 	ISP_IOXPUT_16(isp, src->vp_mod_status, &dst->vp_mod_status);
   1007  1.2.12.3  yamt 	ISP_IOXPUT_8(isp, src->vp_mod_cmd, &dst->vp_mod_cmd);
   1008  1.2.12.3  yamt 	ISP_IOXPUT_8(isp, src->vp_mod_cnt, &dst->vp_mod_cnt);
   1009  1.2.12.3  yamt 	ISP_IOXPUT_8(isp, src->vp_mod_idx0, &dst->vp_mod_idx0);
   1010  1.2.12.3  yamt 	ISP_IOXPUT_8(isp, src->vp_mod_idx1, &dst->vp_mod_idx1);
   1011  1.2.12.3  yamt 	for (i = 0; i < ASIZE(src->vp_mod_ports); i++) {
   1012  1.2.12.3  yamt 		ISP_IOXPUT_8(isp, src->vp_mod_ports[i].options, &dst->vp_mod_ports[i].options);
   1013  1.2.12.3  yamt 		ISP_IOXPUT_8(isp, src->vp_mod_ports[i].loopid, &dst->vp_mod_ports[i].loopid);
   1014  1.2.12.3  yamt 		ISP_IOXPUT_16(isp, src->vp_mod_ports[i].reserved1, &dst->vp_mod_ports[i].reserved1);
   1015  1.2.12.3  yamt 		for (j = 0; j < ASIZE(src->vp_mod_ports[i].wwpn); j++) {
   1016  1.2.12.3  yamt 			ISP_IOXPUT_8(isp, src->vp_mod_ports[i].wwpn[j], &dst->vp_mod_ports[i].wwpn[j]);
   1017  1.2.12.3  yamt 		}
   1018  1.2.12.3  yamt 		for (j = 0; j < ASIZE(src->vp_mod_ports[i].wwnn); j++) {
   1019  1.2.12.3  yamt 			ISP_IOXPUT_8(isp, src->vp_mod_ports[i].wwnn[j], &dst->vp_mod_ports[i].wwnn[j]);
   1020  1.2.12.3  yamt 		}
   1021  1.2.12.3  yamt 	}
   1022  1.2.12.3  yamt 	for (i = 0; i < ASIZE(src->vp_mod_reserved2); i++) {
   1023  1.2.12.3  yamt 		ISP_IOXPUT_8(isp, src->vp_mod_reserved2[i], &dst->vp_mod_reserved2[i]);
   1024  1.2.12.3  yamt 	}
   1025  1.2.12.3  yamt }
   1026  1.2.12.3  yamt 
   1027  1.2.12.3  yamt void
   1028  1.2.12.3  yamt isp_get_vp_modify(ispsoftc_t *isp, vp_modify_t *src, vp_modify_t *dst)
   1029  1.2.12.3  yamt {
   1030  1.2.12.3  yamt 	int i, j;
   1031  1.2.12.3  yamt 	isp_get_hdr(isp, &src->vp_mod_hdr, &dst->vp_mod_hdr);
   1032  1.2.12.3  yamt 	ISP_IOXGET_32(isp, &src->vp_mod_hdl, dst->vp_mod_hdl);
   1033  1.2.12.3  yamt 	ISP_IOXGET_16(isp, &src->vp_mod_reserved0, dst->vp_mod_reserved0);
   1034  1.2.12.3  yamt 	ISP_IOXGET_16(isp, &src->vp_mod_status, dst->vp_mod_status);
   1035  1.2.12.3  yamt 	ISP_IOXGET_8(isp, &src->vp_mod_cmd, dst->vp_mod_cmd);
   1036  1.2.12.3  yamt 	ISP_IOXGET_8(isp, &src->vp_mod_cnt, dst->vp_mod_cnt);
   1037  1.2.12.3  yamt 	ISP_IOXGET_8(isp, &src->vp_mod_idx0, dst->vp_mod_idx0);
   1038  1.2.12.3  yamt 	ISP_IOXGET_8(isp, &src->vp_mod_idx1, dst->vp_mod_idx1);
   1039  1.2.12.3  yamt 	for (i = 0; i < ASIZE(src->vp_mod_ports); i++) {
   1040  1.2.12.3  yamt 		ISP_IOXGET_8(isp, &src->vp_mod_ports[i].options, dst->vp_mod_ports[i].options);
   1041  1.2.12.3  yamt 		ISP_IOXGET_8(isp, &src->vp_mod_ports[i].loopid, dst->vp_mod_ports[i].loopid);
   1042  1.2.12.3  yamt 		ISP_IOXGET_16(isp, &src->vp_mod_ports[i].reserved1, dst->vp_mod_ports[i].reserved1);
   1043  1.2.12.3  yamt 		for (j = 0; j < ASIZE(src->vp_mod_ports[i].wwpn); j++) {
   1044  1.2.12.3  yamt 			ISP_IOXGET_8(isp, &src->vp_mod_ports[i].wwpn[j], dst->vp_mod_ports[i].wwpn[j]);
   1045  1.2.12.3  yamt 		}
   1046  1.2.12.3  yamt 		for (j = 0; j < ASIZE(src->vp_mod_ports[i].wwnn); j++) {
   1047  1.2.12.3  yamt 			ISP_IOXGET_8(isp, &src->vp_mod_ports[i].wwnn[j], dst->vp_mod_ports[i].wwnn[j]);
   1048  1.2.12.3  yamt 		}
   1049  1.2.12.3  yamt 	}
   1050  1.2.12.3  yamt 	for (i = 0; i < ASIZE(src->vp_mod_reserved2); i++) {
   1051  1.2.12.3  yamt 		ISP_IOXGET_8(isp, &src->vp_mod_reserved2[i], dst->vp_mod_reserved2[i]);
   1052  1.2.12.3  yamt 	}
   1053  1.2.12.3  yamt }
   1054  1.2.12.3  yamt 
   1055  1.2.12.3  yamt void
   1056  1.2.12.2  yamt isp_get_pdb_21xx(ispsoftc_t *isp, isp_pdb_21xx_t *src, isp_pdb_21xx_t *dst)
   1057  1.2.12.2  yamt {
   1058  1.2.12.2  yamt 	int i;
   1059  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_options, dst->pdb_options);
   1060  1.2.12.2  yamt         ISP_IOXGET_8(isp, &src->pdb_mstate, dst->pdb_mstate);
   1061  1.2.12.2  yamt         ISP_IOXGET_8(isp, &src->pdb_sstate, dst->pdb_sstate);
   1062  1.2.12.2  yamt 	for (i = 0; i < 4; i++) {
   1063  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->pdb_hardaddr_bits[i],
   1064  1.2.12.2  yamt 		    dst->pdb_hardaddr_bits[i]);
   1065  1.2.12.2  yamt 	}
   1066  1.2.12.2  yamt 	for (i = 0; i < 4; i++) {
   1067  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->pdb_portid_bits[i],
   1068  1.2.12.2  yamt 		    dst->pdb_portid_bits[i]);
   1069  1.2.12.2  yamt 	}
   1070  1.2.12.2  yamt 	for (i = 0; i < 8; i++) {
   1071  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->pdb_nodename[i], dst->pdb_nodename[i]);
   1072  1.2.12.2  yamt 	}
   1073  1.2.12.2  yamt 	for (i = 0; i < 8; i++) {
   1074  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->pdb_portname[i], dst->pdb_portname[i]);
   1075  1.2.12.2  yamt 	}
   1076  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_execthrottle, dst->pdb_execthrottle);
   1077  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_exec_count, dst->pdb_exec_count);
   1078  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->pdb_retry_count, dst->pdb_retry_count);
   1079  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->pdb_retry_delay, dst->pdb_retry_delay);
   1080  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_resalloc, dst->pdb_resalloc);
   1081  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_curalloc, dst->pdb_curalloc);
   1082  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_qhead, dst->pdb_qhead);
   1083  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_qtail, dst->pdb_qtail);
   1084  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_tl_next, dst->pdb_tl_next);
   1085  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_tl_last, dst->pdb_tl_last);
   1086  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_features, dst->pdb_features);
   1087  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_pconcurrnt, dst->pdb_pconcurrnt);
   1088  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_roi, dst->pdb_roi);
   1089  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->pdb_target, dst->pdb_target);
   1090  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->pdb_initiator, dst->pdb_initiator);
   1091  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_rdsiz, dst->pdb_rdsiz);
   1092  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_ncseq, dst->pdb_ncseq);
   1093  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_noseq, dst->pdb_noseq);
   1094  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_labrtflg, dst->pdb_labrtflg);
   1095  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_lstopflg, dst->pdb_lstopflg);
   1096  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_sqhead, dst->pdb_sqhead);
   1097  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_sqtail, dst->pdb_sqtail);
   1098  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_ptimer, dst->pdb_ptimer);
   1099  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_nxt_seqid, dst->pdb_nxt_seqid);
   1100  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_fcount, dst->pdb_fcount);
   1101  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_prli_len, dst->pdb_prli_len);
   1102  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_prli_svc0, dst->pdb_prli_svc0);
   1103  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_prli_svc3, dst->pdb_prli_svc3);
   1104  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_loopid, dst->pdb_loopid);
   1105  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_il_ptr, dst->pdb_il_ptr);
   1106  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_sl_ptr, dst->pdb_sl_ptr);
   1107  1.2.12.2  yamt }
   1108  1.2.12.2  yamt 
   1109  1.2.12.2  yamt void
   1110  1.2.12.2  yamt isp_get_pdb_24xx(ispsoftc_t *isp, isp_pdb_24xx_t *src, isp_pdb_24xx_t *dst)
   1111  1.2.12.2  yamt {
   1112  1.2.12.2  yamt 	int i;
   1113  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_flags, dst->pdb_flags);
   1114  1.2.12.2  yamt         ISP_IOXGET_8(isp, &src->pdb_curstate, dst->pdb_curstate);
   1115  1.2.12.2  yamt         ISP_IOXGET_8(isp, &src->pdb_laststate, dst->pdb_laststate);
   1116  1.2.12.2  yamt 	for (i = 0; i < 4; i++) {
   1117  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->pdb_hardaddr_bits[i],
   1118  1.2.12.2  yamt 		    dst->pdb_hardaddr_bits[i]);
   1119  1.2.12.2  yamt 	}
   1120  1.2.12.2  yamt 	for (i = 0; i < 4; i++) {
   1121  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->pdb_portid_bits[i],
   1122  1.2.12.2  yamt 		    dst->pdb_portid_bits[i]);
   1123  1.2.12.2  yamt 	}
   1124  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_retry_timer, dst->pdb_retry_timer);
   1125  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_handle, dst->pdb_handle);
   1126  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_rcv_dsize, dst->pdb_rcv_dsize);
   1127  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_reserved0, dst->pdb_reserved0);
   1128  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_prli_svc0, dst->pdb_prli_svc0);
   1129  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->pdb_prli_svc3, dst->pdb_prli_svc3);
   1130  1.2.12.2  yamt 	for (i = 0; i < 8; i++) {
   1131  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->pdb_nodename[i], dst->pdb_nodename[i]);
   1132  1.2.12.2  yamt 	}
   1133  1.2.12.2  yamt 	for (i = 0; i < 8; i++) {
   1134  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->pdb_portname[i], dst->pdb_portname[i]);
   1135  1.2.12.2  yamt 	}
   1136  1.2.12.2  yamt 	for (i = 0; i < 24; i++) {
   1137  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->pdb_reserved1[i],
   1138  1.2.12.2  yamt 		    dst->pdb_reserved1[i]);
   1139  1.2.12.2  yamt 	}
   1140  1.2.12.2  yamt }
   1141  1.2.12.2  yamt 
   1142  1.2.12.2  yamt /*
   1143  1.2.12.2  yamt  * PLOGI/LOGO IOCB canonicalization
   1144  1.2.12.2  yamt  */
   1145  1.2.12.2  yamt 
   1146  1.2.12.2  yamt void
   1147  1.2.12.2  yamt isp_get_plogx(ispsoftc_t *isp, isp_plogx_t *src, isp_plogx_t *dst)
   1148  1.2.12.2  yamt {
   1149  1.2.12.2  yamt 	int i;
   1150  1.2.12.2  yamt 	isp_get_hdr(isp, &src->plogx_header, &dst->plogx_header);
   1151  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->plogx_handle, dst->plogx_handle);
   1152  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->plogx_status, dst->plogx_status);
   1153  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->plogx_nphdl, dst->plogx_nphdl);
   1154  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->plogx_flags, dst->plogx_flags);
   1155  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->plogx_vphdl, dst->plogx_vphdl);
   1156  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->plogx_portlo, dst->plogx_portlo);
   1157  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->plogx_rspsz_porthi, dst->plogx_rspsz_porthi);
   1158  1.2.12.2  yamt 	for (i = 0; i < 11; i++) {
   1159  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &src->plogx_ioparm[i].lo16,
   1160  1.2.12.2  yamt 		    dst->plogx_ioparm[i].lo16);
   1161  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &src->plogx_ioparm[i].hi16,
   1162  1.2.12.2  yamt 		    dst->plogx_ioparm[i].hi16);
   1163  1.2.12.2  yamt 	}
   1164  1.2.12.2  yamt }
   1165  1.2.12.2  yamt 
   1166  1.2.12.2  yamt void
   1167  1.2.12.2  yamt isp_put_plogx(ispsoftc_t *isp, isp_plogx_t *src, isp_plogx_t *dst)
   1168  1.2.12.2  yamt {
   1169  1.2.12.2  yamt 	int i;
   1170  1.2.12.2  yamt 	isp_put_hdr(isp, &src->plogx_header, &dst->plogx_header);
   1171  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->plogx_handle, &dst->plogx_handle);
   1172  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->plogx_status, &dst->plogx_status);
   1173  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->plogx_nphdl, &dst->plogx_nphdl);
   1174  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->plogx_flags, &dst->plogx_flags);
   1175  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->plogx_vphdl, &dst->plogx_vphdl);
   1176  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->plogx_portlo, &dst->plogx_portlo);
   1177  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->plogx_rspsz_porthi, &dst->plogx_rspsz_porthi);
   1178  1.2.12.2  yamt 	for (i = 0; i < 11; i++) {
   1179  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->plogx_ioparm[i].lo16,
   1180  1.2.12.2  yamt 		    &dst->plogx_ioparm[i].lo16);
   1181  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->plogx_ioparm[i].hi16,
   1182  1.2.12.2  yamt 		    &dst->plogx_ioparm[i].hi16);
   1183  1.2.12.2  yamt 	}
   1184  1.2.12.2  yamt }
   1185  1.2.12.2  yamt 
   1186  1.2.12.2  yamt /*
   1187  1.2.12.3  yamt  * Report ID canonicalization
   1188  1.2.12.3  yamt  */
   1189  1.2.12.3  yamt void
   1190  1.2.12.3  yamt isp_get_ridacq(ispsoftc_t *isp, isp_ridacq_t *src, isp_ridacq_t *dst)
   1191  1.2.12.3  yamt {
   1192  1.2.12.3  yamt 	int i;
   1193  1.2.12.3  yamt 	isp_get_hdr(isp, &src->ridacq_hdr, &dst->ridacq_hdr);
   1194  1.2.12.3  yamt 	ISP_IOXGET_32(isp, &src->ridacq_handle, dst->ridacq_handle);
   1195  1.2.12.3  yamt 	ISP_IOXGET_16(isp, &src->ridacq_vp_port_lo, dst->ridacq_vp_port_lo);
   1196  1.2.12.3  yamt 	ISP_IOXGET_8(isp, &src->ridacq_vp_port_hi, dst->ridacq_vp_port_hi);
   1197  1.2.12.3  yamt 	ISP_IOXGET_8(isp, &src->ridacq_format, dst->ridacq_format);
   1198  1.2.12.3  yamt 	for (i = 0; i < sizeof (src->ridacq_map) / sizeof (src->ridacq_map[0]);
   1199  1.2.12.3  yamt 	    i++) {
   1200  1.2.12.3  yamt 		ISP_IOXGET_16(isp, &src->ridacq_map[i], dst->ridacq_map[i]);
   1201  1.2.12.3  yamt 	}
   1202  1.2.12.3  yamt 	for (i = 0; i < sizeof (src->ridacq_reserved1) /
   1203  1.2.12.3  yamt 	    sizeof (src->ridacq_reserved1[0]); i++) {
   1204  1.2.12.3  yamt 		ISP_IOXGET_16(isp, &src->ridacq_reserved1[i],
   1205  1.2.12.3  yamt 		    dst->ridacq_reserved1[i]);
   1206  1.2.12.3  yamt 	}
   1207  1.2.12.3  yamt 	if (dst->ridacq_format == 0) {
   1208  1.2.12.3  yamt 		ISP_IOXGET_8(isp, &src->un.type0.ridacq_vp_acquired,
   1209  1.2.12.3  yamt 		    dst->un.type0.ridacq_vp_acquired);
   1210  1.2.12.3  yamt 		ISP_IOXGET_8(isp, &src->un.type0.ridacq_vp_setup,
   1211  1.2.12.3  yamt 		    dst->un.type0.ridacq_vp_setup);
   1212  1.2.12.3  yamt 		ISP_IOXGET_16(isp, &src->un.type0.ridacq_reserved0,
   1213  1.2.12.3  yamt 		    dst->un.type0.ridacq_reserved0);
   1214  1.2.12.3  yamt 	} else if (dst->ridacq_format == 1) {
   1215  1.2.12.3  yamt 		ISP_IOXGET_16(isp, &src->un.type1.ridacq_vp_count,
   1216  1.2.12.3  yamt 		    dst->un.type1.ridacq_vp_count);
   1217  1.2.12.3  yamt 		ISP_IOXGET_8(isp, &src->un.type1.ridacq_vp_index,
   1218  1.2.12.3  yamt 		    dst->un.type1.ridacq_vp_index);
   1219  1.2.12.3  yamt 		ISP_IOXGET_8(isp, &src->un.type1.ridacq_vp_status,
   1220  1.2.12.3  yamt 		    dst->un.type1.ridacq_vp_status);
   1221  1.2.12.3  yamt 	} else {
   1222  1.2.12.3  yamt 		MEMZERO(&dst->un, sizeof (dst->un));
   1223  1.2.12.3  yamt 	}
   1224  1.2.12.3  yamt }
   1225  1.2.12.3  yamt 
   1226  1.2.12.3  yamt 
   1227  1.2.12.3  yamt /*
   1228  1.2.12.2  yamt  * CT Passthru canonicalization
   1229  1.2.12.2  yamt  */
   1230  1.2.12.2  yamt void
   1231  1.2.12.2  yamt isp_get_ct_pt(ispsoftc_t *isp, isp_ct_pt_t *src, isp_ct_pt_t *dst)
   1232  1.2.12.2  yamt {
   1233  1.2.12.2  yamt 	int i;
   1234  1.2.12.2  yamt 
   1235  1.2.12.2  yamt 	isp_get_hdr(isp, &src->ctp_header, &dst->ctp_header);
   1236  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->ctp_handle, dst->ctp_handle);
   1237  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ctp_status, dst->ctp_status);
   1238  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ctp_nphdl, dst->ctp_nphdl);
   1239  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ctp_cmd_cnt, dst->ctp_cmd_cnt);
   1240  1.2.12.3  yamt 	ISP_IOXGET_8(isp, &src->ctp_vpidx, dst->ctp_vpidx);
   1241  1.2.12.3  yamt 	ISP_IOXGET_8(isp, &src->ctp_reserved0, dst->ctp_reserved0);
   1242  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ctp_time, dst->ctp_time);
   1243  1.2.12.3  yamt 	ISP_IOXGET_16(isp, &src->ctp_reserved1, dst->ctp_reserved1);
   1244  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ctp_rsp_cnt, dst->ctp_rsp_cnt);
   1245  1.2.12.2  yamt 	for (i = 0; i < 5; i++) {
   1246  1.2.12.3  yamt 		ISP_IOXGET_16(isp, &src->ctp_reserved2[i],
   1247  1.2.12.3  yamt 		    dst->ctp_reserved2[i]);
   1248  1.2.12.2  yamt 	}
   1249  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->ctp_rsp_bcnt, dst->ctp_rsp_bcnt);
   1250  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->ctp_cmd_bcnt, dst->ctp_cmd_bcnt);
   1251  1.2.12.2  yamt 	for (i = 0; i < 2; i++) {
   1252  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->ctp_dataseg[i].ds_base,
   1253  1.2.12.2  yamt 		    dst->ctp_dataseg[i].ds_base);
   1254  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->ctp_dataseg[i].ds_basehi,
   1255  1.2.12.2  yamt 		    dst->ctp_dataseg[i].ds_basehi);
   1256  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->ctp_dataseg[i].ds_count,
   1257  1.2.12.2  yamt 		    dst->ctp_dataseg[i].ds_count);
   1258  1.2.12.2  yamt 	}
   1259  1.2.12.2  yamt }
   1260  1.2.12.2  yamt 
   1261  1.2.12.2  yamt void
   1262  1.2.12.2  yamt isp_get_ms(ispsoftc_t *isp, isp_ms_t *src, isp_ms_t *dst)
   1263  1.2.12.2  yamt {
   1264  1.2.12.2  yamt 	int i;
   1265  1.2.12.2  yamt 
   1266  1.2.12.2  yamt 	isp_get_hdr(isp, &src->ms_header, &dst->ms_header);
   1267  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->ms_handle, dst->ms_handle);
   1268  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ms_nphdl, dst->ms_nphdl);
   1269  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ms_status, dst->ms_status);
   1270  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ms_flags, dst->ms_flags);
   1271  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ms_reserved1, dst->ms_reserved1);
   1272  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ms_time, dst->ms_time);
   1273  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ms_cmd_cnt, dst->ms_cmd_cnt);
   1274  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ms_tot_cnt, dst->ms_tot_cnt);
   1275  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->ms_type, dst->ms_type);
   1276  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->ms_r_ctl, dst->ms_r_ctl);
   1277  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ms_rxid, dst->ms_rxid);
   1278  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ms_reserved2, dst->ms_reserved2);
   1279  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->ms_rsp_bcnt, dst->ms_rsp_bcnt);
   1280  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->ms_cmd_bcnt, dst->ms_cmd_bcnt);
   1281  1.2.12.2  yamt 	for (i = 0; i < 2; i++) {
   1282  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->ms_dataseg[i].ds_base,
   1283  1.2.12.2  yamt 		    dst->ms_dataseg[i].ds_base);
   1284  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->ms_dataseg[i].ds_basehi,
   1285  1.2.12.2  yamt 		    dst->ms_dataseg[i].ds_basehi);
   1286  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->ms_dataseg[i].ds_count,
   1287  1.2.12.2  yamt 		    dst->ms_dataseg[i].ds_count);
   1288  1.2.12.2  yamt 	}
   1289  1.2.12.2  yamt }
   1290  1.2.12.2  yamt 
   1291  1.2.12.2  yamt void
   1292  1.2.12.2  yamt isp_put_ct_pt(ispsoftc_t *isp, isp_ct_pt_t *src, isp_ct_pt_t *dst)
   1293  1.2.12.2  yamt {
   1294  1.2.12.2  yamt 	int i;
   1295  1.2.12.2  yamt 
   1296  1.2.12.2  yamt 	isp_put_hdr(isp, &src->ctp_header, &dst->ctp_header);
   1297  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->ctp_handle, &dst->ctp_handle);
   1298  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ctp_status, &dst->ctp_status);
   1299  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ctp_nphdl, &dst->ctp_nphdl);
   1300  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ctp_cmd_cnt, &dst->ctp_cmd_cnt);
   1301  1.2.12.3  yamt 	ISP_IOXPUT_8(isp, src->ctp_vpidx, &dst->ctp_vpidx);
   1302  1.2.12.3  yamt 	ISP_IOXPUT_8(isp, src->ctp_reserved0, &dst->ctp_reserved0);
   1303  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ctp_time, &dst->ctp_time);
   1304  1.2.12.3  yamt 	ISP_IOXPUT_16(isp, src->ctp_reserved1, &dst->ctp_reserved1);
   1305  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ctp_rsp_cnt, &dst->ctp_rsp_cnt);
   1306  1.2.12.2  yamt 	for (i = 0; i < 5; i++) {
   1307  1.2.12.3  yamt 		ISP_IOXPUT_16(isp, src->ctp_reserved2[i],
   1308  1.2.12.3  yamt 		    &dst->ctp_reserved2[i]);
   1309  1.2.12.2  yamt 	}
   1310  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->ctp_rsp_bcnt, &dst->ctp_rsp_bcnt);
   1311  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->ctp_cmd_bcnt, &dst->ctp_cmd_bcnt);
   1312  1.2.12.2  yamt 	for (i = 0; i < 2; i++) {
   1313  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->ctp_dataseg[i].ds_base,
   1314  1.2.12.2  yamt 		    &dst->ctp_dataseg[i].ds_base);
   1315  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->ctp_dataseg[i].ds_basehi,
   1316  1.2.12.2  yamt 		    &dst->ctp_dataseg[i].ds_basehi);
   1317  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->ctp_dataseg[i].ds_count,
   1318  1.2.12.2  yamt 		    &dst->ctp_dataseg[i].ds_count);
   1319  1.2.12.2  yamt 	}
   1320  1.2.12.2  yamt }
   1321  1.2.12.2  yamt 
   1322  1.2.12.2  yamt void
   1323  1.2.12.2  yamt isp_put_ms(ispsoftc_t *isp, isp_ms_t *src, isp_ms_t *dst)
   1324  1.2.12.2  yamt {
   1325  1.2.12.2  yamt 	int i;
   1326  1.2.12.2  yamt 
   1327  1.2.12.2  yamt 	isp_put_hdr(isp, &src->ms_header, &dst->ms_header);
   1328  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->ms_handle, &dst->ms_handle);
   1329  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ms_nphdl, &dst->ms_nphdl);
   1330  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ms_status, &dst->ms_status);
   1331  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ms_flags, &dst->ms_flags);
   1332  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ms_reserved1, &dst->ms_reserved1);
   1333  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ms_time, &dst->ms_time);
   1334  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ms_cmd_cnt, &dst->ms_cmd_cnt);
   1335  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ms_tot_cnt, &dst->ms_tot_cnt);
   1336  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->ms_type, &dst->ms_type);
   1337  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->ms_r_ctl, &dst->ms_r_ctl);
   1338  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ms_rxid, &dst->ms_rxid);
   1339  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ms_reserved2, &dst->ms_reserved2);
   1340  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->ms_rsp_bcnt, &dst->ms_rsp_bcnt);
   1341  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->ms_cmd_bcnt, &dst->ms_cmd_bcnt);
   1342  1.2.12.2  yamt 	for (i = 0; i < 2; i++) {
   1343  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->ms_dataseg[i].ds_base,
   1344  1.2.12.2  yamt 		    &dst->ms_dataseg[i].ds_base);
   1345  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->ms_dataseg[i].ds_basehi,
   1346  1.2.12.2  yamt 		    &dst->ms_dataseg[i].ds_basehi);
   1347  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->ms_dataseg[i].ds_count,
   1348  1.2.12.2  yamt 		    &dst->ms_dataseg[i].ds_count);
   1349  1.2.12.2  yamt 	}
   1350  1.2.12.2  yamt }
   1351  1.2.12.2  yamt 
   1352  1.2.12.2  yamt /*
   1353  1.2.12.2  yamt  * Generic SNS request - not particularly useful since the per-command data
   1354  1.2.12.2  yamt  * isn't always 16 bit words.
   1355  1.2.12.2  yamt  */
   1356  1.2.12.2  yamt void
   1357  1.2.12.2  yamt isp_put_sns_request(ispsoftc_t *isp, sns_screq_t *src, sns_screq_t *dst)
   1358  1.2.12.2  yamt {
   1359  1.2.12.2  yamt 	int i, nw = (int) src->snscb_sblen;
   1360  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->snscb_rblen, &dst->snscb_rblen);
   1361  1.2.12.2  yamt 	for (i = 0; i < 4; i++) {
   1362  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->snscb_addr[i], &dst->snscb_addr[i]);
   1363  1.2.12.2  yamt 	}
   1364  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->snscb_sblen, &dst->snscb_sblen);
   1365  1.2.12.2  yamt 	for (i = 0; i < nw; i++) {
   1366  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->snscb_data[i], &dst->snscb_data[i]);
   1367  1.2.12.2  yamt 	}
   1368  1.2.12.2  yamt 
   1369  1.2.12.2  yamt }
   1370  1.2.12.2  yamt 
   1371  1.2.12.2  yamt void
   1372  1.2.12.2  yamt isp_put_gid_ft_request(ispsoftc_t *isp, sns_gid_ft_req_t *src,
   1373  1.2.12.2  yamt     sns_gid_ft_req_t *dst)
   1374  1.2.12.2  yamt {
   1375  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->snscb_rblen, &dst->snscb_rblen);
   1376  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->snscb_reserved0, &dst->snscb_reserved0);
   1377  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->snscb_addr[0], &dst->snscb_addr[0]);
   1378  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->snscb_addr[1], &dst->snscb_addr[1]);
   1379  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->snscb_addr[2], &dst->snscb_addr[2]);
   1380  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->snscb_addr[3], &dst->snscb_addr[3]);
   1381  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->snscb_sblen, &dst->snscb_sblen);
   1382  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->snscb_reserved1, &dst->snscb_reserved1);
   1383  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->snscb_cmd, &dst->snscb_cmd);
   1384  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->snscb_mword_div_2, &dst->snscb_mword_div_2);
   1385  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->snscb_reserved3, &dst->snscb_reserved3);
   1386  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->snscb_fc4_type, &dst->snscb_fc4_type);
   1387  1.2.12.2  yamt }
   1388  1.2.12.2  yamt 
   1389  1.2.12.2  yamt void
   1390  1.2.12.2  yamt isp_put_gxn_id_request(ispsoftc_t *isp, sns_gxn_id_req_t *src,
   1391  1.2.12.2  yamt     sns_gxn_id_req_t *dst)
   1392  1.2.12.2  yamt {
   1393  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->snscb_rblen, &dst->snscb_rblen);
   1394  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->snscb_reserved0, &dst->snscb_reserved0);
   1395  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->snscb_addr[0], &dst->snscb_addr[0]);
   1396  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->snscb_addr[1], &dst->snscb_addr[1]);
   1397  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->snscb_addr[2], &dst->snscb_addr[2]);
   1398  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->snscb_addr[3], &dst->snscb_addr[3]);
   1399  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->snscb_sblen, &dst->snscb_sblen);
   1400  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->snscb_reserved1, &dst->snscb_reserved1);
   1401  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->snscb_cmd, &dst->snscb_cmd);
   1402  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->snscb_reserved2, &dst->snscb_reserved2);
   1403  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->snscb_reserved3, &dst->snscb_reserved3);
   1404  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->snscb_portid, &dst->snscb_portid);
   1405  1.2.12.2  yamt }
   1406  1.2.12.2  yamt 
   1407  1.2.12.2  yamt /*
   1408  1.2.12.2  yamt  * Generic SNS response - not particularly useful since the per-command data
   1409  1.2.12.2  yamt  * isn't always 16 bit words.
   1410  1.2.12.2  yamt  */
   1411  1.2.12.2  yamt void
   1412  1.2.12.2  yamt isp_get_sns_response(ispsoftc_t *isp, sns_scrsp_t *src,
   1413  1.2.12.2  yamt     sns_scrsp_t *dst, int nwords)
   1414  1.2.12.2  yamt {
   1415  1.2.12.2  yamt 	int i;
   1416  1.2.12.2  yamt 	isp_get_ct_hdr(isp, &src->snscb_cthdr, &dst->snscb_cthdr);
   1417  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->snscb_port_type, dst->snscb_port_type);
   1418  1.2.12.2  yamt 	for (i = 0; i < 3; i++) {
   1419  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->snscb_port_id[i],
   1420  1.2.12.2  yamt 		    dst->snscb_port_id[i]);
   1421  1.2.12.2  yamt 	}
   1422  1.2.12.2  yamt 	for (i = 0; i < 8; i++) {
   1423  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->snscb_portname[i],
   1424  1.2.12.2  yamt 		    dst->snscb_portname[i]);
   1425  1.2.12.2  yamt 	}
   1426  1.2.12.2  yamt 	for (i = 0; i < nwords; i++) {
   1427  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &src->snscb_data[i], dst->snscb_data[i]);
   1428  1.2.12.2  yamt 	}
   1429  1.2.12.2  yamt }
   1430  1.2.12.2  yamt 
   1431  1.2.12.2  yamt void
   1432  1.2.12.2  yamt isp_get_gid_ft_response(ispsoftc_t *isp, sns_gid_ft_rsp_t *src,
   1433  1.2.12.2  yamt     sns_gid_ft_rsp_t *dst, int nwords)
   1434  1.2.12.2  yamt {
   1435  1.2.12.2  yamt 	int i;
   1436  1.2.12.2  yamt 	isp_get_ct_hdr(isp, &src->snscb_cthdr, &dst->snscb_cthdr);
   1437  1.2.12.2  yamt 	for (i = 0; i < nwords; i++) {
   1438  1.2.12.2  yamt 		int j;
   1439  1.2.12.2  yamt 		ISP_IOXGET_8(isp,
   1440  1.2.12.2  yamt 		    &src->snscb_ports[i].control,
   1441  1.2.12.2  yamt 		    dst->snscb_ports[i].control);
   1442  1.2.12.2  yamt 		for (j = 0; j < 3; j++) {
   1443  1.2.12.2  yamt 			ISP_IOXGET_8(isp,
   1444  1.2.12.2  yamt 			    &src->snscb_ports[i].portid[j],
   1445  1.2.12.2  yamt 			    dst->snscb_ports[i].portid[j]);
   1446  1.2.12.2  yamt 		}
   1447  1.2.12.2  yamt 		if (dst->snscb_ports[i].control & 0x80) {
   1448  1.2.12.2  yamt 			break;
   1449  1.2.12.2  yamt 		}
   1450  1.2.12.2  yamt 	}
   1451  1.2.12.2  yamt }
   1452  1.2.12.2  yamt 
   1453  1.2.12.2  yamt void
   1454  1.2.12.2  yamt isp_get_gxn_id_response(ispsoftc_t *isp, sns_gxn_id_rsp_t *src,
   1455  1.2.12.2  yamt     sns_gxn_id_rsp_t *dst)
   1456  1.2.12.2  yamt {
   1457  1.2.12.2  yamt 	int i;
   1458  1.2.12.2  yamt 	isp_get_ct_hdr(isp, &src->snscb_cthdr, &dst->snscb_cthdr);
   1459  1.2.12.2  yamt 	for (i = 0; i < 8; i++)
   1460  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->snscb_wwn[i], dst->snscb_wwn[i]);
   1461  1.2.12.2  yamt }
   1462  1.2.12.2  yamt 
   1463  1.2.12.2  yamt void
   1464  1.2.12.2  yamt isp_get_gff_id_response(ispsoftc_t *isp, sns_gff_id_rsp_t *src,
   1465  1.2.12.2  yamt     sns_gff_id_rsp_t *dst)
   1466  1.2.12.2  yamt {
   1467  1.2.12.2  yamt 	int i;
   1468  1.2.12.2  yamt 	isp_get_ct_hdr(isp, &src->snscb_cthdr, &dst->snscb_cthdr);
   1469  1.2.12.2  yamt 	for (i = 0; i < 32; i++) {
   1470  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->snscb_fc4_features[i],
   1471  1.2.12.2  yamt 		    dst->snscb_fc4_features[i]);
   1472  1.2.12.2  yamt 	}
   1473  1.2.12.2  yamt }
   1474  1.2.12.2  yamt 
   1475  1.2.12.2  yamt void
   1476  1.2.12.2  yamt isp_get_ga_nxt_response(ispsoftc_t *isp, sns_ga_nxt_rsp_t *src,
   1477  1.2.12.2  yamt     sns_ga_nxt_rsp_t *dst)
   1478  1.2.12.2  yamt {
   1479  1.2.12.2  yamt 	int i;
   1480  1.2.12.2  yamt 	isp_get_ct_hdr(isp, &src->snscb_cthdr, &dst->snscb_cthdr);
   1481  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->snscb_port_type, dst->snscb_port_type);
   1482  1.2.12.2  yamt 	for (i = 0; i < 3; i++) {
   1483  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->snscb_port_id[i],
   1484  1.2.12.2  yamt 		    dst->snscb_port_id[i]);
   1485  1.2.12.2  yamt 	}
   1486  1.2.12.2  yamt 	for (i = 0; i < 8; i++) {
   1487  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->snscb_portname[i],
   1488  1.2.12.2  yamt 		    dst->snscb_portname[i]);
   1489  1.2.12.2  yamt 	}
   1490  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->snscb_pnlen, dst->snscb_pnlen);
   1491  1.2.12.2  yamt 	for (i = 0; i < 255; i++) {
   1492  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->snscb_pname[i], dst->snscb_pname[i]);
   1493  1.2.12.2  yamt 	}
   1494  1.2.12.2  yamt 	for (i = 0; i < 8; i++) {
   1495  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->snscb_nodename[i],
   1496  1.2.12.2  yamt 		    dst->snscb_nodename[i]);
   1497  1.2.12.2  yamt 	}
   1498  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->snscb_nnlen, dst->snscb_nnlen);
   1499  1.2.12.2  yamt 	for (i = 0; i < 255; i++) {
   1500  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->snscb_nname[i], dst->snscb_nname[i]);
   1501  1.2.12.2  yamt 	}
   1502  1.2.12.2  yamt 	for (i = 0; i < 8; i++) {
   1503  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->snscb_ipassoc[i],
   1504  1.2.12.2  yamt 		    dst->snscb_ipassoc[i]);
   1505  1.2.12.2  yamt 	}
   1506  1.2.12.2  yamt 	for (i = 0; i < 16; i++) {
   1507  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->snscb_ipaddr[i], dst->snscb_ipaddr[i]);
   1508  1.2.12.2  yamt 	}
   1509  1.2.12.2  yamt 	for (i = 0; i < 4; i++) {
   1510  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->snscb_svc_class[i],
   1511  1.2.12.2  yamt 		    dst->snscb_svc_class[i]);
   1512  1.2.12.2  yamt 	}
   1513  1.2.12.2  yamt 	for (i = 0; i < 32; i++) {
   1514  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->snscb_fc4_types[i],
   1515  1.2.12.2  yamt 		    dst->snscb_fc4_types[i]);
   1516  1.2.12.2  yamt 	}
   1517  1.2.12.2  yamt 	for (i = 0; i < 8; i++) {
   1518  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->snscb_fpname[i], dst->snscb_fpname[i]);
   1519  1.2.12.2  yamt 	}
   1520  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->snscb_reserved, dst->snscb_reserved);
   1521  1.2.12.2  yamt 	for (i = 0; i < 3; i++) {
   1522  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->snscb_hardaddr[i],
   1523  1.2.12.2  yamt 		    dst->snscb_hardaddr[i]);
   1524  1.2.12.2  yamt 	}
   1525  1.2.12.2  yamt }
   1526  1.2.12.2  yamt 
   1527  1.2.12.2  yamt void
   1528  1.2.12.2  yamt isp_get_els(ispsoftc_t *isp, els_t *src, els_t *dst)
   1529  1.2.12.2  yamt {
   1530  1.2.12.2  yamt 	int i;
   1531  1.2.12.2  yamt 
   1532  1.2.12.2  yamt 	isp_get_hdr(isp, &src->els_hdr, &dst->els_hdr);
   1533  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->els_handle, dst->els_handle);
   1534  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->els_status, dst->els_status);
   1535  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->els_nphdl, dst->els_nphdl);
   1536  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->els_xmit_dsd_count, dst->els_xmit_dsd_count);
   1537  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->els_vphdl, dst->els_vphdl);
   1538  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->els_sof, dst->els_sof);
   1539  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->els_rxid, dst->els_rxid);
   1540  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->els_recv_dsd_count, dst->els_recv_dsd_count);
   1541  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->els_opcode, dst->els_opcode);
   1542  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->els_reserved2, dst->els_reserved1);
   1543  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->els_did_lo, dst->els_did_lo);
   1544  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->els_did_mid, dst->els_did_mid);
   1545  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->els_did_hi, dst->els_did_hi);
   1546  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->els_reserved2, dst->els_reserved2);
   1547  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->els_reserved3, dst->els_reserved3);
   1548  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->els_ctl_flags, dst->els_ctl_flags);
   1549  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->els_bytecnt, dst->els_bytecnt);
   1550  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->els_subcode1, dst->els_subcode1);
   1551  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->els_subcode2, dst->els_subcode2);
   1552  1.2.12.2  yamt 	for (i = 0; i < 20; i++) {
   1553  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->els_reserved4[i],
   1554  1.2.12.2  yamt 		    dst->els_reserved4[i]);
   1555  1.2.12.2  yamt 	}
   1556  1.2.12.2  yamt }
   1557  1.2.12.2  yamt 
   1558  1.2.12.2  yamt void
   1559  1.2.12.2  yamt isp_put_els(ispsoftc_t *isp, els_t *src, els_t *dst)
   1560  1.2.12.2  yamt {
   1561  1.2.12.2  yamt 	isp_put_hdr(isp, &src->els_hdr, &dst->els_hdr);
   1562  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->els_handle, &dst->els_handle);
   1563  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->els_status, &dst->els_status);
   1564  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->els_nphdl, &dst->els_nphdl);
   1565  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->els_xmit_dsd_count, &dst->els_xmit_dsd_count);
   1566  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->els_vphdl, &dst->els_vphdl);
   1567  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->els_sof, &dst->els_sof);
   1568  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->els_rxid, &dst->els_rxid);
   1569  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->els_recv_dsd_count, &dst->els_recv_dsd_count);
   1570  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->els_opcode, &dst->els_opcode);
   1571  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->els_reserved2, &dst->els_reserved1);
   1572  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->els_did_lo, &dst->els_did_lo);
   1573  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->els_did_mid, &dst->els_did_mid);
   1574  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->els_did_hi, &dst->els_did_hi);
   1575  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->els_reserved2, &dst->els_reserved2);
   1576  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->els_reserved3, &dst->els_reserved3);
   1577  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->els_ctl_flags, &dst->els_ctl_flags);
   1578  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->els_recv_bytecnt, &dst->els_recv_bytecnt);
   1579  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->els_xmit_bytecnt, &dst->els_xmit_bytecnt);
   1580  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->els_xmit_dsd_length, &dst->els_xmit_dsd_length);
   1581  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->els_xmit_dsd_a1500, &dst->els_xmit_dsd_a1500);
   1582  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->els_xmit_dsd_a3116, &dst->els_xmit_dsd_a3116);
   1583  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->els_xmit_dsd_a4732, &dst->els_xmit_dsd_a4732);
   1584  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->els_xmit_dsd_a6348, &dst->els_xmit_dsd_a6348);
   1585  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->els_recv_dsd_length, &dst->els_recv_dsd_length);
   1586  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->els_recv_dsd_a1500, &dst->els_recv_dsd_a1500);
   1587  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->els_recv_dsd_a3116, &dst->els_recv_dsd_a3116);
   1588  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->els_recv_dsd_a4732, &dst->els_recv_dsd_a4732);
   1589  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->els_recv_dsd_a6348, &dst->els_recv_dsd_a6348);
   1590  1.2.12.2  yamt }
   1591  1.2.12.2  yamt 
   1592  1.2.12.2  yamt /*
   1593  1.2.12.2  yamt  * FC Structure Canonicalization
   1594  1.2.12.2  yamt  */
   1595  1.2.12.2  yamt 
   1596  1.2.12.2  yamt void
   1597  1.2.12.2  yamt isp_get_fc_hdr(ispsoftc_t *isp, fc_hdr_t *src, fc_hdr_t *dst)
   1598  1.2.12.2  yamt {
   1599  1.2.12.2  yamt         ISP_IOZGET_8(isp, &src->r_ctl, dst->r_ctl);
   1600  1.2.12.2  yamt         ISP_IOZGET_8(isp, &src->d_id[0], dst->d_id[0]);
   1601  1.2.12.2  yamt         ISP_IOZGET_8(isp, &src->d_id[1], dst->d_id[1]);
   1602  1.2.12.2  yamt         ISP_IOZGET_8(isp, &src->d_id[2], dst->d_id[2]);
   1603  1.2.12.2  yamt         ISP_IOZGET_8(isp, &src->cs_ctl, dst->cs_ctl);
   1604  1.2.12.2  yamt         ISP_IOZGET_8(isp, &src->s_id[0], dst->s_id[0]);
   1605  1.2.12.2  yamt         ISP_IOZGET_8(isp, &src->s_id[1], dst->s_id[1]);
   1606  1.2.12.2  yamt         ISP_IOZGET_8(isp, &src->s_id[2], dst->s_id[2]);
   1607  1.2.12.2  yamt         ISP_IOZGET_8(isp, &src->type, dst->type);
   1608  1.2.12.2  yamt         ISP_IOZGET_8(isp, &src->f_ctl, dst->f_ctl);
   1609  1.2.12.2  yamt         ISP_IOZGET_8(isp, &src->seq_id, dst->seq_id);
   1610  1.2.12.2  yamt         ISP_IOZGET_8(isp, &src->df_ctl, dst->df_ctl);
   1611  1.2.12.2  yamt         ISP_IOZGET_16(isp, &src->seq_cnt, dst->seq_cnt);
   1612  1.2.12.2  yamt         ISP_IOZGET_32(isp, &src->ox_id, dst->parameter);
   1613  1.2.12.2  yamt         dst->ox_id = dst->parameter;
   1614  1.2.12.2  yamt         dst->rx_id = dst->parameter >> 16;
   1615  1.2.12.2  yamt         ISP_IOZGET_32(isp, &src->parameter, dst->parameter);
   1616  1.2.12.2  yamt }
   1617  1.2.12.2  yamt 
   1618  1.2.12.2  yamt void
   1619  1.2.12.2  yamt isp_get_fcp_cmnd_iu(ispsoftc_t *isp, fcp_cmnd_iu_t *src, fcp_cmnd_iu_t *dst)
   1620  1.2.12.2  yamt {
   1621  1.2.12.2  yamt 	int i;
   1622  1.2.12.2  yamt 
   1623  1.2.12.2  yamt 	for (i = 0; i < 8; i++) {
   1624  1.2.12.2  yamt 		ISP_IOZGET_8(isp, &src->fcp_cmnd_lun[i], dst->fcp_cmnd_lun[i]);
   1625  1.2.12.2  yamt 	}
   1626  1.2.12.2  yamt         ISP_IOZGET_8(isp, &src->fcp_cmnd_crn, dst->fcp_cmnd_crn);
   1627  1.2.12.2  yamt         ISP_IOZGET_8(isp, &src->fcp_cmnd_task_attribute,
   1628  1.2.12.2  yamt 	    dst->fcp_cmnd_task_attribute);
   1629  1.2.12.2  yamt         ISP_IOZGET_8(isp, &src->fcp_cmnd_task_management,
   1630  1.2.12.2  yamt 	    dst->fcp_cmnd_task_management);
   1631  1.2.12.2  yamt         ISP_IOZGET_8(isp, &src->fcp_cmnd_alen_datadir,
   1632  1.2.12.2  yamt 	    dst->fcp_cmnd_alen_datadir);
   1633  1.2.12.2  yamt 	for (i = 0; i < 16; i++) {
   1634  1.2.12.2  yamt 		ISP_IOZGET_8(isp, &src->cdb_dl.sf.fcp_cmnd_cdb[i],
   1635  1.2.12.2  yamt 		    dst->cdb_dl.sf.fcp_cmnd_cdb[i]);
   1636  1.2.12.2  yamt 	}
   1637  1.2.12.2  yamt 	ISP_IOZGET_32(isp, &src->cdb_dl.sf.fcp_cmnd_dl,
   1638  1.2.12.2  yamt 	    dst->cdb_dl.sf.fcp_cmnd_dl);
   1639  1.2.12.2  yamt }
   1640  1.2.12.2  yamt 
   1641  1.2.12.2  yamt void
   1642  1.2.12.2  yamt isp_put_rft_id(ispsoftc_t *isp, rft_id_t *src, rft_id_t *dst)
   1643  1.2.12.2  yamt {
   1644  1.2.12.2  yamt 	int i;
   1645  1.2.12.2  yamt 	isp_put_ct_hdr(isp, &src->rftid_hdr, &dst->rftid_hdr);
   1646  1.2.12.2  yamt 	ISP_IOZPUT_8(isp, src->rftid_reserved, &dst->rftid_reserved);
   1647  1.2.12.2  yamt 	for (i = 0; i < 3; i++) {
   1648  1.2.12.2  yamt 		ISP_IOZPUT_8(isp, src->rftid_portid[i], &dst->rftid_portid[i]);
   1649  1.2.12.2  yamt 	}
   1650  1.2.12.2  yamt 	for (i = 0; i < 8; i++) {
   1651  1.2.12.2  yamt 		ISP_IOZPUT_32(isp, src->rftid_fc4types[i],
   1652  1.2.12.2  yamt 		    &dst->rftid_fc4types[i]);
   1653  1.2.12.2  yamt 	}
   1654  1.2.12.2  yamt }
   1655  1.2.12.2  yamt 
   1656  1.2.12.2  yamt void
   1657  1.2.12.2  yamt isp_get_ct_hdr(ispsoftc_t *isp, ct_hdr_t *src, ct_hdr_t *dst)
   1658  1.2.12.2  yamt {
   1659  1.2.12.2  yamt 	ISP_IOZGET_8(isp, &src->ct_revision, dst->ct_revision);
   1660  1.2.12.2  yamt 	ISP_IOZGET_8(isp, &src->ct_in_id[0], dst->ct_in_id[0]);
   1661  1.2.12.2  yamt 	ISP_IOZGET_8(isp, &src->ct_in_id[1], dst->ct_in_id[1]);
   1662  1.2.12.2  yamt 	ISP_IOZGET_8(isp, &src->ct_in_id[2], dst->ct_in_id[2]);
   1663  1.2.12.2  yamt 	ISP_IOZGET_8(isp, &src->ct_fcs_type, dst->ct_fcs_type);
   1664  1.2.12.2  yamt 	ISP_IOZGET_8(isp, &src->ct_fcs_subtype, dst->ct_fcs_subtype);
   1665  1.2.12.2  yamt 	ISP_IOZGET_8(isp, &src->ct_options, dst->ct_options);
   1666  1.2.12.2  yamt 	ISP_IOZGET_8(isp, &src->ct_reserved0, dst->ct_reserved0);
   1667  1.2.12.2  yamt 	ISP_IOZGET_16(isp, &src->ct_cmd_resp, dst->ct_cmd_resp);
   1668  1.2.12.2  yamt 	ISP_IOZGET_16(isp, &src->ct_bcnt_resid, dst->ct_bcnt_resid);
   1669  1.2.12.2  yamt 	ISP_IOZGET_8(isp, &src->ct_reserved1, dst->ct_reserved1);
   1670  1.2.12.2  yamt 	ISP_IOZGET_8(isp, &src->ct_reason, dst->ct_reason);
   1671  1.2.12.2  yamt 	ISP_IOZGET_8(isp, &src->ct_explanation, dst->ct_explanation);
   1672  1.2.12.2  yamt 	ISP_IOZGET_8(isp, &src->ct_vunique, dst->ct_vunique);
   1673  1.2.12.2  yamt }
   1674  1.2.12.2  yamt 
   1675  1.2.12.2  yamt void
   1676  1.2.12.2  yamt isp_put_ct_hdr(ispsoftc_t *isp, ct_hdr_t *src, ct_hdr_t *dst)
   1677  1.2.12.2  yamt {
   1678  1.2.12.2  yamt 	ISP_IOZPUT_8(isp, src->ct_revision, &dst->ct_revision);
   1679  1.2.12.2  yamt 	ISP_IOZPUT_8(isp, src->ct_in_id[0], &dst->ct_in_id[0]);
   1680  1.2.12.2  yamt 	ISP_IOZPUT_8(isp, src->ct_in_id[1], &dst->ct_in_id[1]);
   1681  1.2.12.2  yamt 	ISP_IOZPUT_8(isp, src->ct_in_id[2], &dst->ct_in_id[2]);
   1682  1.2.12.2  yamt 	ISP_IOZPUT_8(isp, src->ct_fcs_type, &dst->ct_fcs_type);
   1683  1.2.12.2  yamt 	ISP_IOZPUT_8(isp, src->ct_fcs_subtype, &dst->ct_fcs_subtype);
   1684  1.2.12.2  yamt 	ISP_IOZPUT_8(isp, src->ct_options, &dst->ct_options);
   1685  1.2.12.2  yamt 	ISP_IOZPUT_8(isp, src->ct_reserved0, &dst->ct_reserved0);
   1686  1.2.12.2  yamt 	ISP_IOZPUT_16(isp, src->ct_cmd_resp, &dst->ct_cmd_resp);
   1687  1.2.12.2  yamt 	ISP_IOZPUT_16(isp, src->ct_bcnt_resid, &dst->ct_bcnt_resid);
   1688  1.2.12.2  yamt 	ISP_IOZPUT_8(isp, src->ct_reserved1, &dst->ct_reserved1);
   1689  1.2.12.2  yamt 	ISP_IOZPUT_8(isp, src->ct_reason, &dst->ct_reason);
   1690  1.2.12.2  yamt 	ISP_IOZPUT_8(isp, src->ct_explanation, &dst->ct_explanation);
   1691  1.2.12.2  yamt 	ISP_IOZPUT_8(isp, src->ct_vunique, &dst->ct_vunique);
   1692  1.2.12.2  yamt }
   1693  1.2.12.2  yamt 
   1694  1.2.12.2  yamt #ifdef	ISP_TARGET_MODE
   1695  1.2.12.2  yamt int
   1696  1.2.12.2  yamt isp_save_xs_tgt(ispsoftc_t *isp, void *xs, uint32_t *handlep)
   1697  1.2.12.2  yamt {
   1698  1.2.12.2  yamt 	int i;
   1699  1.2.12.2  yamt 
   1700  1.2.12.2  yamt 	for (i = 0; i < (int) isp->isp_maxcmds; i++) {
   1701  1.2.12.2  yamt 		if (isp->isp_tgtlist[i] == NULL) {
   1702  1.2.12.2  yamt 			break;
   1703  1.2.12.2  yamt 		}
   1704  1.2.12.2  yamt 	}
   1705  1.2.12.2  yamt 	if (i == isp->isp_maxcmds) {
   1706  1.2.12.2  yamt 		return (-1);
   1707  1.2.12.2  yamt 	}
   1708  1.2.12.2  yamt 	isp->isp_tgtlist[i] = xs;
   1709  1.2.12.2  yamt 	*handlep = (i+1) | 0x8000;
   1710  1.2.12.2  yamt 	return (0);
   1711  1.2.12.2  yamt }
   1712  1.2.12.2  yamt 
   1713  1.2.12.2  yamt void *
   1714  1.2.12.2  yamt isp_find_xs_tgt(ispsoftc_t *isp, uint32_t handle)
   1715  1.2.12.2  yamt {
   1716  1.2.12.2  yamt 	if (handle == 0 || IS_TARGET_HANDLE(handle) == 0 ||
   1717  1.2.12.2  yamt 	    (handle & ISP_HANDLE_MASK) > isp->isp_maxcmds) {
   1718  1.2.12.2  yamt 		isp_prt(isp, ISP_LOGERR, "bad handle in isp_find_xs_tgt");
   1719  1.2.12.2  yamt 		return (NULL);
   1720  1.2.12.2  yamt 	} else {
   1721  1.2.12.2  yamt 		return (isp->isp_tgtlist[(handle & ISP_HANDLE_MASK) - 1]);
   1722  1.2.12.2  yamt 	}
   1723  1.2.12.2  yamt }
   1724  1.2.12.2  yamt 
   1725  1.2.12.2  yamt uint32_t
   1726  1.2.12.2  yamt isp_find_tgt_handle(ispsoftc_t *isp, void *xs)
   1727  1.2.12.2  yamt {
   1728  1.2.12.2  yamt 	int i;
   1729  1.2.12.2  yamt 	if (xs != NULL) {
   1730  1.2.12.2  yamt 		for (i = 0; i < isp->isp_maxcmds; i++) {
   1731  1.2.12.2  yamt 			if (isp->isp_tgtlist[i] == xs) {
   1732  1.2.12.2  yamt 				return ((i+1) & ISP_HANDLE_MASK);
   1733  1.2.12.2  yamt 			}
   1734  1.2.12.2  yamt 		}
   1735  1.2.12.2  yamt 	}
   1736  1.2.12.2  yamt 	return (0);
   1737  1.2.12.2  yamt }
   1738  1.2.12.2  yamt 
   1739  1.2.12.2  yamt void
   1740  1.2.12.2  yamt isp_destroy_tgt_handle(ispsoftc_t *isp, uint32_t handle)
   1741  1.2.12.2  yamt {
   1742  1.2.12.2  yamt 	if (handle == 0 || IS_TARGET_HANDLE(handle) == 0 ||
   1743  1.2.12.2  yamt 	    (handle & ISP_HANDLE_MASK) > isp->isp_maxcmds) {
   1744  1.2.12.2  yamt 		isp_prt(isp, ISP_LOGERR,
   1745  1.2.12.2  yamt 		    "bad handle in isp_destroy_tgt_handle");
   1746  1.2.12.2  yamt 	} else {
   1747  1.2.12.2  yamt 		isp->isp_tgtlist[(handle & ISP_HANDLE_MASK) - 1] = NULL;
   1748  1.2.12.2  yamt 	}
   1749  1.2.12.2  yamt }
   1750  1.2.12.2  yamt 
   1751  1.2.12.2  yamt void
   1752  1.2.12.2  yamt isp_put_atio(ispsoftc_t *isp, at_entry_t *src, at_entry_t *dst)
   1753  1.2.12.2  yamt {
   1754  1.2.12.2  yamt 	int i;
   1755  1.2.12.2  yamt 	isp_put_hdr(isp, &src->at_header, &dst->at_header);
   1756  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->at_reserved, &dst->at_reserved);
   1757  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->at_handle, &dst->at_handle);
   1758  1.2.12.2  yamt 	if (ISP_IS_SBUS(isp)) {
   1759  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->at_lun, &dst->at_iid);
   1760  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->at_iid, &dst->at_lun);
   1761  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->at_cdblen, &dst->at_tgt);
   1762  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->at_tgt, &dst->at_cdblen);
   1763  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->at_status, &dst->at_scsi_status);
   1764  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->at_scsi_status, &dst->at_status);
   1765  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->at_tag_val, &dst->at_tag_type);
   1766  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->at_tag_type, &dst->at_tag_val);
   1767  1.2.12.2  yamt 	} else {
   1768  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->at_lun, &dst->at_lun);
   1769  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->at_iid, &dst->at_iid);
   1770  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->at_cdblen, &dst->at_cdblen);
   1771  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->at_tgt, &dst->at_tgt);
   1772  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->at_status, &dst->at_status);
   1773  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->at_scsi_status,
   1774  1.2.12.2  yamt 		    &dst->at_scsi_status);
   1775  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->at_tag_val, &dst->at_tag_val);
   1776  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->at_tag_type, &dst->at_tag_type);
   1777  1.2.12.2  yamt 	}
   1778  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->at_flags, &dst->at_flags);
   1779  1.2.12.2  yamt 	for (i = 0; i < ATIO_CDBLEN; i++) {
   1780  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->at_cdb[i], &dst->at_cdb[i]);
   1781  1.2.12.2  yamt 	}
   1782  1.2.12.2  yamt 	for (i = 0; i < QLTM_SENSELEN; i++) {
   1783  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->at_sense[i], &dst->at_sense[i]);
   1784  1.2.12.2  yamt 	}
   1785  1.2.12.2  yamt }
   1786  1.2.12.2  yamt 
   1787  1.2.12.2  yamt void
   1788  1.2.12.2  yamt isp_get_atio(ispsoftc_t *isp, at_entry_t *src, at_entry_t *dst)
   1789  1.2.12.2  yamt {
   1790  1.2.12.2  yamt 	int i;
   1791  1.2.12.2  yamt 	isp_get_hdr(isp, &src->at_header, &dst->at_header);
   1792  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->at_reserved, dst->at_reserved);
   1793  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->at_handle, dst->at_handle);
   1794  1.2.12.2  yamt 	if (ISP_IS_SBUS(isp)) {
   1795  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->at_lun, dst->at_iid);
   1796  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->at_iid, dst->at_lun);
   1797  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->at_cdblen, dst->at_tgt);
   1798  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->at_tgt, dst->at_cdblen);
   1799  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->at_status, dst->at_scsi_status);
   1800  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->at_scsi_status, dst->at_status);
   1801  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->at_tag_val, dst->at_tag_type);
   1802  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->at_tag_type, dst->at_tag_val);
   1803  1.2.12.2  yamt 	} else {
   1804  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->at_lun, dst->at_lun);
   1805  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->at_iid, dst->at_iid);
   1806  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->at_cdblen, dst->at_cdblen);
   1807  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->at_tgt, dst->at_tgt);
   1808  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->at_status, dst->at_status);
   1809  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->at_scsi_status,
   1810  1.2.12.2  yamt 		    dst->at_scsi_status);
   1811  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->at_tag_val, dst->at_tag_val);
   1812  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->at_tag_type, dst->at_tag_type);
   1813  1.2.12.2  yamt 	}
   1814  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->at_flags, dst->at_flags);
   1815  1.2.12.2  yamt 	for (i = 0; i < ATIO_CDBLEN; i++) {
   1816  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->at_cdb[i], dst->at_cdb[i]);
   1817  1.2.12.2  yamt 	}
   1818  1.2.12.2  yamt 	for (i = 0; i < QLTM_SENSELEN; i++) {
   1819  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->at_sense[i], dst->at_sense[i]);
   1820  1.2.12.2  yamt 	}
   1821  1.2.12.2  yamt }
   1822  1.2.12.2  yamt 
   1823  1.2.12.2  yamt void
   1824  1.2.12.2  yamt isp_put_atio2(ispsoftc_t *isp, at2_entry_t *src, at2_entry_t *dst)
   1825  1.2.12.2  yamt {
   1826  1.2.12.2  yamt 	int i;
   1827  1.2.12.2  yamt 	isp_put_hdr(isp, &src->at_header, &dst->at_header);
   1828  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->at_reserved, &dst->at_reserved);
   1829  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->at_lun, &dst->at_lun);
   1830  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->at_iid, &dst->at_iid);
   1831  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->at_rxid, &dst->at_rxid);
   1832  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->at_flags, &dst->at_flags);
   1833  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->at_status, &dst->at_status);
   1834  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->at_crn, &dst->at_crn);
   1835  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->at_taskcodes, &dst->at_taskcodes);
   1836  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->at_taskflags, &dst->at_taskflags);
   1837  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->at_execodes, &dst->at_execodes);
   1838  1.2.12.2  yamt 	for (i = 0; i < ATIO2_CDBLEN; i++) {
   1839  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->at_cdb[i], &dst->at_cdb[i]);
   1840  1.2.12.2  yamt 	}
   1841  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->at_datalen, &dst->at_datalen);
   1842  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->at_scclun, &dst->at_scclun);
   1843  1.2.12.2  yamt 	for (i = 0; i < 4; i++) {
   1844  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->at_wwpn[i], &dst->at_wwpn[i]);
   1845  1.2.12.2  yamt 	}
   1846  1.2.12.2  yamt 	for (i = 0; i < 6; i++) {
   1847  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->at_reserved2[i],
   1848  1.2.12.2  yamt 		    &dst->at_reserved2[i]);
   1849  1.2.12.2  yamt 	}
   1850  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->at_oxid, &dst->at_oxid);
   1851  1.2.12.2  yamt }
   1852  1.2.12.2  yamt 
   1853  1.2.12.2  yamt void
   1854  1.2.12.2  yamt isp_put_atio2e(ispsoftc_t *isp, at2e_entry_t *src, at2e_entry_t *dst)
   1855  1.2.12.2  yamt {
   1856  1.2.12.2  yamt 	int i;
   1857  1.2.12.2  yamt 	isp_put_hdr(isp, &src->at_header, &dst->at_header);
   1858  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->at_reserved, &dst->at_reserved);
   1859  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->at_iid, &dst->at_iid);
   1860  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->at_rxid, &dst->at_rxid);
   1861  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->at_flags, &dst->at_flags);
   1862  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->at_status, &dst->at_status);
   1863  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->at_crn, &dst->at_crn);
   1864  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->at_taskcodes, &dst->at_taskcodes);
   1865  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->at_taskflags, &dst->at_taskflags);
   1866  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->at_execodes, &dst->at_execodes);
   1867  1.2.12.2  yamt 	for (i = 0; i < ATIO2_CDBLEN; i++) {
   1868  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->at_cdb[i], &dst->at_cdb[i]);
   1869  1.2.12.2  yamt 	}
   1870  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->at_datalen, &dst->at_datalen);
   1871  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->at_scclun, &dst->at_scclun);
   1872  1.2.12.2  yamt 	for (i = 0; i < 4; i++) {
   1873  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->at_wwpn[i], &dst->at_wwpn[i]);
   1874  1.2.12.2  yamt 	}
   1875  1.2.12.2  yamt 	for (i = 0; i < 6; i++) {
   1876  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->at_reserved2[i],
   1877  1.2.12.2  yamt 		    &dst->at_reserved2[i]);
   1878  1.2.12.2  yamt 	}
   1879  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->at_oxid, &dst->at_oxid);
   1880  1.2.12.2  yamt }
   1881  1.2.12.2  yamt 
   1882  1.2.12.2  yamt void
   1883  1.2.12.2  yamt isp_get_atio2(ispsoftc_t *isp, at2_entry_t *src, at2_entry_t *dst)
   1884  1.2.12.2  yamt {
   1885  1.2.12.2  yamt 	int i;
   1886  1.2.12.2  yamt 	isp_get_hdr(isp, &src->at_header, &dst->at_header);
   1887  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->at_reserved, dst->at_reserved);
   1888  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->at_lun, dst->at_lun);
   1889  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->at_iid, dst->at_iid);
   1890  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->at_rxid, dst->at_rxid);
   1891  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->at_flags, dst->at_flags);
   1892  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->at_status, dst->at_status);
   1893  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->at_crn, dst->at_crn);
   1894  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->at_taskcodes, dst->at_taskcodes);
   1895  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->at_taskflags, dst->at_taskflags);
   1896  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->at_execodes, dst->at_execodes);
   1897  1.2.12.2  yamt 	for (i = 0; i < ATIO2_CDBLEN; i++) {
   1898  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->at_cdb[i], dst->at_cdb[i]);
   1899  1.2.12.2  yamt 	}
   1900  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->at_datalen, dst->at_datalen);
   1901  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->at_scclun, dst->at_scclun);
   1902  1.2.12.2  yamt 	for (i = 0; i < 4; i++) {
   1903  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &src->at_wwpn[i], dst->at_wwpn[i]);
   1904  1.2.12.2  yamt 	}
   1905  1.2.12.2  yamt 	for (i = 0; i < 6; i++) {
   1906  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &src->at_reserved2[i],
   1907  1.2.12.2  yamt 		    dst->at_reserved2[i]);
   1908  1.2.12.2  yamt 	}
   1909  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->at_oxid, dst->at_oxid);
   1910  1.2.12.2  yamt }
   1911  1.2.12.2  yamt 
   1912  1.2.12.2  yamt void
   1913  1.2.12.2  yamt isp_get_atio2e(ispsoftc_t *isp, at2e_entry_t *src, at2e_entry_t *dst)
   1914  1.2.12.2  yamt {
   1915  1.2.12.2  yamt 	int i;
   1916  1.2.12.2  yamt 	isp_get_hdr(isp, &src->at_header, &dst->at_header);
   1917  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->at_reserved, dst->at_reserved);
   1918  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->at_iid, dst->at_iid);
   1919  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->at_rxid, dst->at_rxid);
   1920  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->at_flags, dst->at_flags);
   1921  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->at_status, dst->at_status);
   1922  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->at_crn, dst->at_crn);
   1923  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->at_taskcodes, dst->at_taskcodes);
   1924  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->at_taskflags, dst->at_taskflags);
   1925  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->at_execodes, dst->at_execodes);
   1926  1.2.12.2  yamt 	for (i = 0; i < ATIO2_CDBLEN; i++) {
   1927  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->at_cdb[i], dst->at_cdb[i]);
   1928  1.2.12.2  yamt 	}
   1929  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->at_datalen, dst->at_datalen);
   1930  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->at_scclun, dst->at_scclun);
   1931  1.2.12.2  yamt 	for (i = 0; i < 4; i++) {
   1932  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &src->at_wwpn[i], dst->at_wwpn[i]);
   1933  1.2.12.2  yamt 	}
   1934  1.2.12.2  yamt 	for (i = 0; i < 6; i++) {
   1935  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &src->at_reserved2[i],
   1936  1.2.12.2  yamt 		    dst->at_reserved2[i]);
   1937  1.2.12.2  yamt 	}
   1938  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->at_oxid, dst->at_oxid);
   1939  1.2.12.2  yamt }
   1940  1.2.12.2  yamt 
   1941  1.2.12.2  yamt void
   1942  1.2.12.2  yamt isp_get_atio7(ispsoftc_t *isp, at7_entry_t *src, at7_entry_t *dst)
   1943  1.2.12.2  yamt {
   1944  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->at_type, dst->at_type);
   1945  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->at_count, dst->at_count);
   1946  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->at_ta_len, dst->at_ta_len);
   1947  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->at_rxid, dst->at_rxid);
   1948  1.2.12.2  yamt 	isp_get_fc_hdr(isp, &src->at_hdr, &dst->at_hdr);
   1949  1.2.12.2  yamt 	isp_get_fcp_cmnd_iu(isp, &src->at_cmnd, &dst->at_cmnd);
   1950  1.2.12.2  yamt }
   1951  1.2.12.2  yamt 
   1952  1.2.12.2  yamt void
   1953  1.2.12.2  yamt isp_put_ctio(ispsoftc_t *isp, ct_entry_t *src, ct_entry_t *dst)
   1954  1.2.12.2  yamt {
   1955  1.2.12.2  yamt 	int i;
   1956  1.2.12.2  yamt 	isp_put_hdr(isp, &src->ct_header, &dst->ct_header);
   1957  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ct_syshandle, &dst->ct_syshandle);
   1958  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ct_fwhandle, &dst->ct_fwhandle);
   1959  1.2.12.2  yamt 	if (ISP_IS_SBUS(isp)) {
   1960  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->ct_iid, &dst->ct_lun);
   1961  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->ct_lun, &dst->ct_iid);
   1962  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->ct_tgt, &dst->ct_reserved2);
   1963  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->ct_reserved2, &dst->ct_tgt);
   1964  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->ct_status, &dst->ct_scsi_status);
   1965  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->ct_scsi_status, &dst->ct_status);
   1966  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->ct_tag_type, &dst->ct_tag_val);
   1967  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->ct_tag_val, &dst->ct_tag_type);
   1968  1.2.12.2  yamt 	} else {
   1969  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->ct_iid, &dst->ct_iid);
   1970  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->ct_lun, &dst->ct_lun);
   1971  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->ct_tgt, &dst->ct_tgt);
   1972  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->ct_reserved2, &dst->ct_reserved2);
   1973  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->ct_scsi_status,
   1974  1.2.12.2  yamt 		    &dst->ct_scsi_status);
   1975  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->ct_status, &dst->ct_status);
   1976  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->ct_tag_type, &dst->ct_tag_type);
   1977  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->ct_tag_val, &dst->ct_tag_val);
   1978  1.2.12.2  yamt 	}
   1979  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->ct_flags, &dst->ct_flags);
   1980  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->ct_xfrlen, &dst->ct_xfrlen);
   1981  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->ct_resid, &dst->ct_resid);
   1982  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ct_timeout, &dst->ct_timeout);
   1983  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ct_seg_count, &dst->ct_seg_count);
   1984  1.2.12.2  yamt 	for (i = 0; i < ISP_RQDSEG; i++) {
   1985  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->ct_dataseg[i].ds_base,
   1986  1.2.12.2  yamt 		    &dst->ct_dataseg[i].ds_base);
   1987  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->ct_dataseg[i].ds_count,
   1988  1.2.12.2  yamt 		    &dst->ct_dataseg[i].ds_count);
   1989  1.2.12.2  yamt 	}
   1990  1.2.12.2  yamt }
   1991  1.2.12.2  yamt 
   1992  1.2.12.2  yamt void
   1993  1.2.12.2  yamt isp_get_ctio(ispsoftc_t *isp, ct_entry_t *src, ct_entry_t *dst)
   1994  1.2.12.2  yamt {
   1995  1.2.12.2  yamt 	int i;
   1996  1.2.12.2  yamt 	isp_get_hdr(isp, &src->ct_header, &dst->ct_header);
   1997  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ct_syshandle, dst->ct_syshandle);
   1998  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ct_fwhandle, dst->ct_fwhandle);
   1999  1.2.12.2  yamt 	if (ISP_IS_SBUS(isp)) {
   2000  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->ct_lun, dst->ct_iid);
   2001  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->ct_iid, dst->ct_lun);
   2002  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->ct_reserved2, dst->ct_tgt);
   2003  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->ct_tgt, dst->ct_reserved2);
   2004  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->ct_status, dst->ct_scsi_status);
   2005  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->ct_scsi_status, dst->ct_status);
   2006  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->ct_tag_val, dst->ct_tag_type);
   2007  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->ct_tag_type, dst->ct_tag_val);
   2008  1.2.12.2  yamt 	} else {
   2009  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->ct_lun, dst->ct_lun);
   2010  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->ct_iid, dst->ct_iid);
   2011  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->ct_reserved2, dst->ct_reserved2);
   2012  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->ct_tgt, dst->ct_tgt);
   2013  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->ct_status, dst->ct_status);
   2014  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->ct_scsi_status,
   2015  1.2.12.2  yamt 		    dst->ct_scsi_status);
   2016  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->ct_tag_val, dst->ct_tag_val);
   2017  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->ct_tag_type, dst->ct_tag_type);
   2018  1.2.12.2  yamt 	}
   2019  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->ct_flags, dst->ct_flags);
   2020  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->ct_xfrlen, dst->ct_xfrlen);
   2021  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->ct_resid, dst->ct_resid);
   2022  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ct_timeout, dst->ct_timeout);
   2023  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ct_seg_count, dst->ct_seg_count);
   2024  1.2.12.2  yamt 	for (i = 0; i < ISP_RQDSEG; i++) {
   2025  1.2.12.2  yamt 		ISP_IOXGET_32(isp,
   2026  1.2.12.2  yamt 		    &src->ct_dataseg[i].ds_base,
   2027  1.2.12.2  yamt 		    dst->ct_dataseg[i].ds_base);
   2028  1.2.12.2  yamt 		ISP_IOXGET_32(isp,
   2029  1.2.12.2  yamt 		    &src->ct_dataseg[i].ds_count,
   2030  1.2.12.2  yamt 		    dst->ct_dataseg[i].ds_count);
   2031  1.2.12.2  yamt 	}
   2032  1.2.12.2  yamt }
   2033  1.2.12.2  yamt 
   2034  1.2.12.2  yamt void
   2035  1.2.12.2  yamt isp_put_ctio2(ispsoftc_t *isp, ct2_entry_t *src, ct2_entry_t *dst)
   2036  1.2.12.2  yamt {
   2037  1.2.12.2  yamt 	int i;
   2038  1.2.12.2  yamt 	isp_put_hdr(isp, &src->ct_header, &dst->ct_header);
   2039  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->ct_syshandle, &dst->ct_syshandle);
   2040  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->ct_lun, &dst->ct_lun);
   2041  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->ct_iid, &dst->ct_iid);
   2042  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ct_rxid, &dst->ct_rxid);
   2043  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ct_flags, &dst->ct_flags);
   2044  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ct_timeout, &dst->ct_timeout);
   2045  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ct_seg_count, &dst->ct_seg_count);
   2046  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->ct_resid, &dst->ct_resid);
   2047  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->ct_reloff, &dst->ct_reloff);
   2048  1.2.12.2  yamt 	if ((src->ct_flags & CT2_FLAG_MMASK) == CT2_FLAG_MODE0) {
   2049  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->rsp.m0._reserved,
   2050  1.2.12.2  yamt 		    &dst->rsp.m0._reserved);
   2051  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->rsp.m0._reserved2,
   2052  1.2.12.2  yamt 		    &dst->rsp.m0._reserved2);
   2053  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->rsp.m0.ct_scsi_status,
   2054  1.2.12.2  yamt 		    &dst->rsp.m0.ct_scsi_status);
   2055  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->rsp.m0.ct_xfrlen,
   2056  1.2.12.2  yamt 		    &dst->rsp.m0.ct_xfrlen);
   2057  1.2.12.2  yamt 		if (src->ct_header.rqs_entry_type == RQSTYPE_CTIO2) {
   2058  1.2.12.2  yamt 			for (i = 0; i < ISP_RQDSEG_T2; i++) {
   2059  1.2.12.2  yamt 				ISP_IOXPUT_32(isp,
   2060  1.2.12.2  yamt 				    src->rsp.m0.u.ct_dataseg[i].ds_base,
   2061  1.2.12.2  yamt 				    &dst->rsp.m0.u.ct_dataseg[i].ds_base);
   2062  1.2.12.2  yamt 				ISP_IOXPUT_32(isp,
   2063  1.2.12.2  yamt 				    src->rsp.m0.u.ct_dataseg[i].ds_count,
   2064  1.2.12.2  yamt 				    &dst->rsp.m0.u.ct_dataseg[i].ds_count);
   2065  1.2.12.2  yamt 			}
   2066  1.2.12.2  yamt 		} else if (src->ct_header.rqs_entry_type == RQSTYPE_CTIO3) {
   2067  1.2.12.2  yamt 			for (i = 0; i < ISP_RQDSEG_T3; i++) {
   2068  1.2.12.2  yamt 				ISP_IOXPUT_32(isp,
   2069  1.2.12.2  yamt 				    src->rsp.m0.u.ct_dataseg64[i].ds_base,
   2070  1.2.12.2  yamt 				    &dst->rsp.m0.u.ct_dataseg64[i].ds_base);
   2071  1.2.12.2  yamt 				ISP_IOXPUT_32(isp,
   2072  1.2.12.2  yamt 				    src->rsp.m0.u.ct_dataseg64[i].ds_basehi,
   2073  1.2.12.2  yamt 				    &dst->rsp.m0.u.ct_dataseg64[i].ds_basehi);
   2074  1.2.12.2  yamt 				ISP_IOXPUT_32(isp,
   2075  1.2.12.2  yamt 				    src->rsp.m0.u.ct_dataseg64[i].ds_count,
   2076  1.2.12.2  yamt 				    &dst->rsp.m0.u.ct_dataseg64[i].ds_count);
   2077  1.2.12.2  yamt 			}
   2078  1.2.12.2  yamt 		} else if (src->ct_header.rqs_entry_type == RQSTYPE_CTIO4) {
   2079  1.2.12.2  yamt 			ISP_IOXPUT_16(isp, src->rsp.m0.u.ct_dslist.ds_type,
   2080  1.2.12.2  yamt 			    &dst->rsp.m0.u.ct_dslist.ds_type);
   2081  1.2.12.2  yamt 			ISP_IOXPUT_32(isp, src->rsp.m0.u.ct_dslist.ds_segment,
   2082  1.2.12.2  yamt 			    &dst->rsp.m0.u.ct_dslist.ds_segment);
   2083  1.2.12.2  yamt 			ISP_IOXPUT_32(isp, src->rsp.m0.u.ct_dslist.ds_base,
   2084  1.2.12.2  yamt 			    &dst->rsp.m0.u.ct_dslist.ds_base);
   2085  1.2.12.2  yamt 		}
   2086  1.2.12.2  yamt 	} else if ((src->ct_flags & CT2_FLAG_MMASK) == CT2_FLAG_MODE1) {
   2087  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->rsp.m1._reserved,
   2088  1.2.12.2  yamt 		    &dst->rsp.m1._reserved);
   2089  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->rsp.m1._reserved2,
   2090  1.2.12.2  yamt 		    &dst->rsp.m1._reserved2);
   2091  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->rsp.m1.ct_senselen,
   2092  1.2.12.2  yamt 		    &dst->rsp.m1.ct_senselen);
   2093  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->rsp.m1.ct_scsi_status,
   2094  1.2.12.2  yamt 		    &dst->rsp.m1.ct_scsi_status);
   2095  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->rsp.m1.ct_resplen,
   2096  1.2.12.2  yamt 		    &dst->rsp.m1.ct_resplen);
   2097  1.2.12.2  yamt 		for (i = 0; i < MAXRESPLEN; i++) {
   2098  1.2.12.2  yamt 			ISP_IOXPUT_8(isp, src->rsp.m1.ct_resp[i],
   2099  1.2.12.2  yamt 			    &dst->rsp.m1.ct_resp[i]);
   2100  1.2.12.2  yamt 		}
   2101  1.2.12.2  yamt 	} else {
   2102  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->rsp.m2._reserved,
   2103  1.2.12.2  yamt 		    &dst->rsp.m2._reserved);
   2104  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->rsp.m2._reserved2,
   2105  1.2.12.2  yamt 		    &dst->rsp.m2._reserved2);
   2106  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->rsp.m2._reserved3,
   2107  1.2.12.2  yamt 		    &dst->rsp.m2._reserved3);
   2108  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->rsp.m2.ct_datalen,
   2109  1.2.12.2  yamt 		    &dst->rsp.m2.ct_datalen);
   2110  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->rsp.m2.ct_fcp_rsp_iudata.ds_base,
   2111  1.2.12.2  yamt 		    &dst->rsp.m2.ct_fcp_rsp_iudata.ds_base);
   2112  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->rsp.m2.ct_fcp_rsp_iudata.ds_count,
   2113  1.2.12.2  yamt 		    &dst->rsp.m2.ct_fcp_rsp_iudata.ds_count);
   2114  1.2.12.2  yamt 	}
   2115  1.2.12.2  yamt }
   2116  1.2.12.2  yamt 
   2117  1.2.12.2  yamt void
   2118  1.2.12.2  yamt isp_put_ctio2e(ispsoftc_t *isp, ct2e_entry_t *src, ct2e_entry_t *dst)
   2119  1.2.12.2  yamt {
   2120  1.2.12.2  yamt 	int i;
   2121  1.2.12.2  yamt 	isp_put_hdr(isp, &src->ct_header, &dst->ct_header);
   2122  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->ct_syshandle, &dst->ct_syshandle);
   2123  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ct_iid, &dst->ct_iid);
   2124  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ct_rxid, &dst->ct_rxid);
   2125  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ct_flags, &dst->ct_flags);
   2126  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ct_timeout, &dst->ct_timeout);
   2127  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ct_seg_count, &dst->ct_seg_count);
   2128  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->ct_resid, &dst->ct_resid);
   2129  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->ct_reloff, &dst->ct_reloff);
   2130  1.2.12.2  yamt 	if ((src->ct_flags & CT2_FLAG_MMASK) == CT2_FLAG_MODE0) {
   2131  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->rsp.m0._reserved,
   2132  1.2.12.2  yamt 		    &dst->rsp.m0._reserved);
   2133  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->rsp.m0._reserved2,
   2134  1.2.12.2  yamt 		    &dst->rsp.m0._reserved2);
   2135  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->rsp.m0.ct_scsi_status,
   2136  1.2.12.2  yamt 		    &dst->rsp.m0.ct_scsi_status);
   2137  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->rsp.m0.ct_xfrlen,
   2138  1.2.12.2  yamt 		    &dst->rsp.m0.ct_xfrlen);
   2139  1.2.12.2  yamt 		if (src->ct_header.rqs_entry_type == RQSTYPE_CTIO2) {
   2140  1.2.12.2  yamt 			for (i = 0; i < ISP_RQDSEG_T2; i++) {
   2141  1.2.12.2  yamt 				ISP_IOXPUT_32(isp,
   2142  1.2.12.2  yamt 				    src->rsp.m0.u.ct_dataseg[i].ds_base,
   2143  1.2.12.2  yamt 				    &dst->rsp.m0.u.ct_dataseg[i].ds_base);
   2144  1.2.12.2  yamt 				ISP_IOXPUT_32(isp,
   2145  1.2.12.2  yamt 				    src->rsp.m0.u.ct_dataseg[i].ds_count,
   2146  1.2.12.2  yamt 				    &dst->rsp.m0.u.ct_dataseg[i].ds_count);
   2147  1.2.12.2  yamt 			}
   2148  1.2.12.2  yamt 		} else if (src->ct_header.rqs_entry_type == RQSTYPE_CTIO3) {
   2149  1.2.12.2  yamt 			for (i = 0; i < ISP_RQDSEG_T3; i++) {
   2150  1.2.12.2  yamt 				ISP_IOXPUT_32(isp,
   2151  1.2.12.2  yamt 				    src->rsp.m0.u.ct_dataseg64[i].ds_base,
   2152  1.2.12.2  yamt 				    &dst->rsp.m0.u.ct_dataseg64[i].ds_base);
   2153  1.2.12.2  yamt 				ISP_IOXPUT_32(isp,
   2154  1.2.12.2  yamt 				    src->rsp.m0.u.ct_dataseg64[i].ds_basehi,
   2155  1.2.12.2  yamt 				    &dst->rsp.m0.u.ct_dataseg64[i].ds_basehi);
   2156  1.2.12.2  yamt 				ISP_IOXPUT_32(isp,
   2157  1.2.12.2  yamt 				    src->rsp.m0.u.ct_dataseg64[i].ds_count,
   2158  1.2.12.2  yamt 				    &dst->rsp.m0.u.ct_dataseg64[i].ds_count);
   2159  1.2.12.2  yamt 			}
   2160  1.2.12.2  yamt 		} else if (src->ct_header.rqs_entry_type == RQSTYPE_CTIO4) {
   2161  1.2.12.2  yamt 			ISP_IOXPUT_16(isp, src->rsp.m0.u.ct_dslist.ds_type,
   2162  1.2.12.2  yamt 			    &dst->rsp.m0.u.ct_dslist.ds_type);
   2163  1.2.12.2  yamt 			ISP_IOXPUT_32(isp, src->rsp.m0.u.ct_dslist.ds_segment,
   2164  1.2.12.2  yamt 			    &dst->rsp.m0.u.ct_dslist.ds_segment);
   2165  1.2.12.2  yamt 			ISP_IOXPUT_32(isp, src->rsp.m0.u.ct_dslist.ds_base,
   2166  1.2.12.2  yamt 			    &dst->rsp.m0.u.ct_dslist.ds_base);
   2167  1.2.12.2  yamt 		}
   2168  1.2.12.2  yamt 	} else if ((src->ct_flags & CT2_FLAG_MMASK) == CT2_FLAG_MODE1) {
   2169  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->rsp.m1._reserved,
   2170  1.2.12.2  yamt 		    &dst->rsp.m1._reserved);
   2171  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->rsp.m1._reserved2,
   2172  1.2.12.2  yamt 		    &dst->rsp.m1._reserved2);
   2173  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->rsp.m1.ct_senselen,
   2174  1.2.12.2  yamt 		    &dst->rsp.m1.ct_senselen);
   2175  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->rsp.m1.ct_scsi_status,
   2176  1.2.12.2  yamt 		    &dst->rsp.m1.ct_scsi_status);
   2177  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->rsp.m1.ct_resplen,
   2178  1.2.12.2  yamt 		    &dst->rsp.m1.ct_resplen);
   2179  1.2.12.2  yamt 		for (i = 0; i < MAXRESPLEN; i++) {
   2180  1.2.12.2  yamt 			ISP_IOXPUT_8(isp, src->rsp.m1.ct_resp[i],
   2181  1.2.12.2  yamt 			    &dst->rsp.m1.ct_resp[i]);
   2182  1.2.12.2  yamt 		}
   2183  1.2.12.2  yamt 	} else {
   2184  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->rsp.m2._reserved,
   2185  1.2.12.2  yamt 		    &dst->rsp.m2._reserved);
   2186  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->rsp.m2._reserved2,
   2187  1.2.12.2  yamt 		    &dst->rsp.m2._reserved2);
   2188  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->rsp.m2._reserved3,
   2189  1.2.12.2  yamt 		    &dst->rsp.m2._reserved3);
   2190  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->rsp.m2.ct_datalen,
   2191  1.2.12.2  yamt 		    &dst->rsp.m2.ct_datalen);
   2192  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->rsp.m2.ct_fcp_rsp_iudata.ds_base,
   2193  1.2.12.2  yamt 		    &dst->rsp.m2.ct_fcp_rsp_iudata.ds_base);
   2194  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->rsp.m2.ct_fcp_rsp_iudata.ds_count,
   2195  1.2.12.2  yamt 		    &dst->rsp.m2.ct_fcp_rsp_iudata.ds_count);
   2196  1.2.12.2  yamt 	}
   2197  1.2.12.2  yamt }
   2198  1.2.12.2  yamt 
   2199  1.2.12.2  yamt void
   2200  1.2.12.2  yamt isp_put_ctio7(ispsoftc_t *isp, ct7_entry_t *src, ct7_entry_t *dst)
   2201  1.2.12.2  yamt {
   2202  1.2.12.2  yamt 	int i;
   2203  1.2.12.2  yamt 
   2204  1.2.12.2  yamt 	isp_put_hdr(isp, &src->ct_header, &dst->ct_header);
   2205  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->ct_syshandle, &dst->ct_syshandle);
   2206  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ct_nphdl, &dst->ct_nphdl);
   2207  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ct_timeout, &dst->ct_timeout);
   2208  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ct_seg_count, &dst->ct_seg_count);
   2209  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->ct_vpindex, &dst->ct_vpindex);
   2210  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->ct_xflags, &dst->ct_xflags);
   2211  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ct_iid_lo, &dst->ct_iid_lo);
   2212  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->ct_iid_hi, &dst->ct_iid_hi);
   2213  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->ct_reserved, &dst->ct_reserved);
   2214  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->ct_rxid, &dst->ct_rxid);
   2215  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ct_senselen, &dst->ct_senselen);
   2216  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ct_flags, &dst->ct_flags);
   2217  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->ct_resid, &dst->ct_resid);
   2218  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ct_oxid, &dst->ct_oxid);
   2219  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->ct_scsi_status, &dst->ct_scsi_status);
   2220  1.2.12.2  yamt 	if ((dst->ct_flags & CT7_FLAG_MMASK) == CT7_FLAG_MODE0) {
   2221  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->rsp.m0.reloff, &dst->rsp.m0.reloff);
   2222  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->rsp.m0.reserved0,
   2223  1.2.12.2  yamt 		    &dst->rsp.m0.reserved0);
   2224  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->rsp.m0.ct_xfrlen,
   2225  1.2.12.2  yamt 		    &dst->rsp.m0.ct_xfrlen);
   2226  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->rsp.m0.reserved1,
   2227  1.2.12.2  yamt 		    &dst->rsp.m0.reserved1);
   2228  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->rsp.m0.ds.ds_base,
   2229  1.2.12.2  yamt 		    &dst->rsp.m0.ds.ds_base);
   2230  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->rsp.m0.ds.ds_basehi,
   2231  1.2.12.2  yamt 		    &dst->rsp.m0.ds.ds_basehi);
   2232  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->rsp.m0.ds.ds_count,
   2233  1.2.12.2  yamt 		    &dst->rsp.m0.ds.ds_count);
   2234  1.2.12.2  yamt 	} else if ((dst->ct_flags & CT7_FLAG_MMASK) == CT7_FLAG_MODE1) {
   2235  1.2.12.3  yamt 		uint32_t *a, *b;
   2236  1.2.12.3  yamt 
   2237  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->rsp.m1.ct_resplen,
   2238  1.2.12.2  yamt 		    &dst->rsp.m1.ct_resplen);
   2239  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->rsp.m1.reserved, &dst->rsp.m1.reserved);
   2240  1.2.12.3  yamt 		a = (uint32_t *) src->rsp.m1.ct_resp;
   2241  1.2.12.3  yamt 		b = (uint32_t *) dst->rsp.m1.ct_resp;
   2242  1.2.12.3  yamt 		for (i = 0; i < (ASIZE(src->rsp.m1.ct_resp) >> 2); i++) {
   2243  1.2.12.3  yamt 			*b++ = ISP_SWAP32(isp, *a++);
   2244  1.2.12.2  yamt 		}
   2245  1.2.12.2  yamt 	} else {
   2246  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->rsp.m2.reserved0,
   2247  1.2.12.2  yamt 		    &dst->rsp.m2.reserved0);
   2248  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->rsp.m2.ct_datalen,
   2249  1.2.12.2  yamt 		    &dst->rsp.m2.ct_datalen);
   2250  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->rsp.m2.reserved1,
   2251  1.2.12.2  yamt 		    &dst->rsp.m2.reserved1);
   2252  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->rsp.m2.ct_fcp_rsp_iudata.ds_base,
   2253  1.2.12.2  yamt 		    &dst->rsp.m2.ct_fcp_rsp_iudata.ds_base);
   2254  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->rsp.m2.ct_fcp_rsp_iudata.ds_basehi,
   2255  1.2.12.2  yamt 		    &dst->rsp.m2.ct_fcp_rsp_iudata.ds_basehi);
   2256  1.2.12.2  yamt 		ISP_IOXPUT_32(isp, src->rsp.m2.ct_fcp_rsp_iudata.ds_count,
   2257  1.2.12.2  yamt 		    &dst->rsp.m2.ct_fcp_rsp_iudata.ds_count);
   2258  1.2.12.2  yamt 	}
   2259  1.2.12.2  yamt }
   2260  1.2.12.2  yamt 
   2261  1.2.12.2  yamt 
   2262  1.2.12.2  yamt void
   2263  1.2.12.2  yamt isp_get_ctio2(ispsoftc_t *isp, ct2_entry_t *src, ct2_entry_t *dst)
   2264  1.2.12.2  yamt {
   2265  1.2.12.2  yamt 	int i;
   2266  1.2.12.2  yamt 
   2267  1.2.12.2  yamt 	isp_get_hdr(isp, &src->ct_header, &dst->ct_header);
   2268  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->ct_syshandle, dst->ct_syshandle);
   2269  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->ct_lun, dst->ct_lun);
   2270  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->ct_iid, dst->ct_iid);
   2271  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ct_rxid, dst->ct_rxid);
   2272  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ct_flags, dst->ct_flags);
   2273  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ct_status, dst->ct_status);
   2274  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ct_timeout, dst->ct_timeout);
   2275  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ct_seg_count, dst->ct_seg_count);
   2276  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->ct_reloff, dst->ct_reloff);
   2277  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->ct_resid, dst->ct_resid);
   2278  1.2.12.2  yamt 	if ((dst->ct_flags & CT2_FLAG_MMASK) == CT2_FLAG_MODE0) {
   2279  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->rsp.m0._reserved,
   2280  1.2.12.2  yamt 		    dst->rsp.m0._reserved);
   2281  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &src->rsp.m0._reserved2,
   2282  1.2.12.2  yamt 		    dst->rsp.m0._reserved2);
   2283  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &src->rsp.m0.ct_scsi_status,
   2284  1.2.12.2  yamt 		    dst->rsp.m0.ct_scsi_status);
   2285  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->rsp.m0.ct_xfrlen,
   2286  1.2.12.2  yamt 		    dst->rsp.m0.ct_xfrlen);
   2287  1.2.12.2  yamt 		if (dst->ct_header.rqs_entry_type == RQSTYPE_CTIO2) {
   2288  1.2.12.2  yamt 			for (i = 0; i < ISP_RQDSEG_T2; i++) {
   2289  1.2.12.2  yamt 				ISP_IOXGET_32(isp,
   2290  1.2.12.2  yamt 				    &src->rsp.m0.u.ct_dataseg[i].ds_base,
   2291  1.2.12.2  yamt 				    dst->rsp.m0.u.ct_dataseg[i].ds_base);
   2292  1.2.12.2  yamt 				ISP_IOXGET_32(isp,
   2293  1.2.12.2  yamt 				    &src->rsp.m0.u.ct_dataseg[i].ds_count,
   2294  1.2.12.2  yamt 				    dst->rsp.m0.u.ct_dataseg[i].ds_count);
   2295  1.2.12.2  yamt 			}
   2296  1.2.12.2  yamt 		} else if (dst->ct_header.rqs_entry_type == RQSTYPE_CTIO3) {
   2297  1.2.12.2  yamt 			for (i = 0; i < ISP_RQDSEG_T3; i++) {
   2298  1.2.12.2  yamt 				ISP_IOXGET_32(isp,
   2299  1.2.12.2  yamt 				    &src->rsp.m0.u.ct_dataseg64[i].ds_base,
   2300  1.2.12.2  yamt 				    dst->rsp.m0.u.ct_dataseg64[i].ds_base);
   2301  1.2.12.2  yamt 				ISP_IOXGET_32(isp,
   2302  1.2.12.2  yamt 				    &src->rsp.m0.u.ct_dataseg64[i].ds_basehi,
   2303  1.2.12.2  yamt 				    dst->rsp.m0.u.ct_dataseg64[i].ds_basehi);
   2304  1.2.12.2  yamt 				ISP_IOXGET_32(isp,
   2305  1.2.12.2  yamt 				    &src->rsp.m0.u.ct_dataseg64[i].ds_count,
   2306  1.2.12.2  yamt 				    dst->rsp.m0.u.ct_dataseg64[i].ds_count);
   2307  1.2.12.2  yamt 			}
   2308  1.2.12.2  yamt 		} else if (dst->ct_header.rqs_entry_type == RQSTYPE_CTIO4) {
   2309  1.2.12.2  yamt 			ISP_IOXGET_16(isp, &src->rsp.m0.u.ct_dslist.ds_type,
   2310  1.2.12.2  yamt 			    dst->rsp.m0.u.ct_dslist.ds_type);
   2311  1.2.12.2  yamt 			ISP_IOXGET_32(isp, &src->rsp.m0.u.ct_dslist.ds_segment,
   2312  1.2.12.2  yamt 			    dst->rsp.m0.u.ct_dslist.ds_segment);
   2313  1.2.12.2  yamt 			ISP_IOXGET_32(isp, &src->rsp.m0.u.ct_dslist.ds_base,
   2314  1.2.12.2  yamt 			    dst->rsp.m0.u.ct_dslist.ds_base);
   2315  1.2.12.2  yamt 		}
   2316  1.2.12.2  yamt 	} else if ((dst->ct_flags & CT2_FLAG_MMASK) == CT2_FLAG_MODE1) {
   2317  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &src->rsp.m1._reserved,
   2318  1.2.12.2  yamt 		    dst->rsp.m1._reserved);
   2319  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &src->rsp.m1._reserved2,
   2320  1.2.12.2  yamt 		    dst->rsp.m1._reserved2);
   2321  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &src->rsp.m1.ct_senselen,
   2322  1.2.12.2  yamt 		    dst->rsp.m1.ct_senselen);
   2323  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &src->rsp.m1.ct_scsi_status,
   2324  1.2.12.2  yamt 		    dst->rsp.m1.ct_scsi_status);
   2325  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &src->rsp.m1.ct_resplen,
   2326  1.2.12.2  yamt 		    dst->rsp.m1.ct_resplen);
   2327  1.2.12.2  yamt 		for (i = 0; i < MAXRESPLEN; i++) {
   2328  1.2.12.2  yamt 			ISP_IOXGET_8(isp, &src->rsp.m1.ct_resp[i],
   2329  1.2.12.2  yamt 			    dst->rsp.m1.ct_resp[i]);
   2330  1.2.12.2  yamt 		}
   2331  1.2.12.2  yamt 	} else {
   2332  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->rsp.m2._reserved,
   2333  1.2.12.2  yamt 		    dst->rsp.m2._reserved);
   2334  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &src->rsp.m2._reserved2,
   2335  1.2.12.2  yamt 		    dst->rsp.m2._reserved2);
   2336  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &src->rsp.m2._reserved3,
   2337  1.2.12.2  yamt 		    dst->rsp.m2._reserved3);
   2338  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->rsp.m2.ct_datalen,
   2339  1.2.12.2  yamt 		    dst->rsp.m2.ct_datalen);
   2340  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->rsp.m2.ct_fcp_rsp_iudata.ds_base,
   2341  1.2.12.2  yamt 		    dst->rsp.m2.ct_fcp_rsp_iudata.ds_base);
   2342  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->rsp.m2.ct_fcp_rsp_iudata.ds_count,
   2343  1.2.12.2  yamt 		    dst->rsp.m2.ct_fcp_rsp_iudata.ds_count);
   2344  1.2.12.2  yamt 	}
   2345  1.2.12.2  yamt }
   2346  1.2.12.2  yamt 
   2347  1.2.12.2  yamt void
   2348  1.2.12.2  yamt isp_get_ctio2e(ispsoftc_t *isp, ct2e_entry_t *src, ct2e_entry_t *dst)
   2349  1.2.12.2  yamt {
   2350  1.2.12.2  yamt 	int i;
   2351  1.2.12.2  yamt 
   2352  1.2.12.2  yamt 	isp_get_hdr(isp, &src->ct_header, &dst->ct_header);
   2353  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->ct_syshandle, dst->ct_syshandle);
   2354  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ct_iid, dst->ct_iid);
   2355  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ct_rxid, dst->ct_rxid);
   2356  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ct_flags, dst->ct_flags);
   2357  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ct_status, dst->ct_status);
   2358  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ct_timeout, dst->ct_timeout);
   2359  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ct_seg_count, dst->ct_seg_count);
   2360  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->ct_reloff, dst->ct_reloff);
   2361  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->ct_resid, dst->ct_resid);
   2362  1.2.12.2  yamt 	if ((dst->ct_flags & CT2_FLAG_MMASK) == CT2_FLAG_MODE0) {
   2363  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->rsp.m0._reserved,
   2364  1.2.12.2  yamt 		    dst->rsp.m0._reserved);
   2365  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &src->rsp.m0._reserved2,
   2366  1.2.12.2  yamt 		    dst->rsp.m0._reserved2);
   2367  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &src->rsp.m0.ct_scsi_status,
   2368  1.2.12.2  yamt 		    dst->rsp.m0.ct_scsi_status);
   2369  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->rsp.m0.ct_xfrlen,
   2370  1.2.12.2  yamt 		    dst->rsp.m0.ct_xfrlen);
   2371  1.2.12.2  yamt 		if (src->ct_header.rqs_entry_type == RQSTYPE_CTIO2) {
   2372  1.2.12.2  yamt 			for (i = 0; i < ISP_RQDSEG_T2; i++) {
   2373  1.2.12.2  yamt 				ISP_IOXGET_32(isp,
   2374  1.2.12.2  yamt 				    &src->rsp.m0.u.ct_dataseg[i].ds_base,
   2375  1.2.12.2  yamt 				    dst->rsp.m0.u.ct_dataseg[i].ds_base);
   2376  1.2.12.2  yamt 				ISP_IOXGET_32(isp,
   2377  1.2.12.2  yamt 				    &src->rsp.m0.u.ct_dataseg[i].ds_count,
   2378  1.2.12.2  yamt 				    dst->rsp.m0.u.ct_dataseg[i].ds_count);
   2379  1.2.12.2  yamt 			}
   2380  1.2.12.2  yamt 		} else if (dst->ct_header.rqs_entry_type == RQSTYPE_CTIO3) {
   2381  1.2.12.2  yamt 			for (i = 0; i < ISP_RQDSEG_T3; i++) {
   2382  1.2.12.2  yamt 				ISP_IOXGET_32(isp,
   2383  1.2.12.2  yamt 				    &src->rsp.m0.u.ct_dataseg64[i].ds_base,
   2384  1.2.12.2  yamt 				    dst->rsp.m0.u.ct_dataseg64[i].ds_base);
   2385  1.2.12.2  yamt 				ISP_IOXGET_32(isp,
   2386  1.2.12.2  yamt 				    &src->rsp.m0.u.ct_dataseg64[i].ds_basehi,
   2387  1.2.12.2  yamt 				    dst->rsp.m0.u.ct_dataseg64[i].ds_basehi);
   2388  1.2.12.2  yamt 				ISP_IOXGET_32(isp,
   2389  1.2.12.2  yamt 				    &src->rsp.m0.u.ct_dataseg64[i].ds_count,
   2390  1.2.12.2  yamt 				    dst->rsp.m0.u.ct_dataseg64[i].ds_count);
   2391  1.2.12.2  yamt 			}
   2392  1.2.12.2  yamt 		} else if (dst->ct_header.rqs_entry_type == RQSTYPE_CTIO4) {
   2393  1.2.12.2  yamt 			ISP_IOXGET_16(isp, &src->rsp.m0.u.ct_dslist.ds_type,
   2394  1.2.12.2  yamt 			    dst->rsp.m0.u.ct_dslist.ds_type);
   2395  1.2.12.2  yamt 			ISP_IOXGET_32(isp, &src->rsp.m0.u.ct_dslist.ds_segment,
   2396  1.2.12.2  yamt 			    dst->rsp.m0.u.ct_dslist.ds_segment);
   2397  1.2.12.2  yamt 			ISP_IOXGET_32(isp, &src->rsp.m0.u.ct_dslist.ds_base,
   2398  1.2.12.2  yamt 			    dst->rsp.m0.u.ct_dslist.ds_base);
   2399  1.2.12.2  yamt 		}
   2400  1.2.12.2  yamt 	} else if ((dst->ct_flags & CT2_FLAG_MMASK) == CT2_FLAG_MODE1) {
   2401  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &src->rsp.m1._reserved,
   2402  1.2.12.2  yamt 		    dst->rsp.m1._reserved);
   2403  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &src->rsp.m1._reserved2,
   2404  1.2.12.2  yamt 		    dst->rsp.m1._reserved2);
   2405  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &src->rsp.m1.ct_senselen,
   2406  1.2.12.2  yamt 		    dst->rsp.m1.ct_senselen);
   2407  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &src->rsp.m1.ct_scsi_status,
   2408  1.2.12.2  yamt 		    dst->rsp.m1.ct_scsi_status);
   2409  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &src->rsp.m1.ct_resplen,
   2410  1.2.12.2  yamt 		    dst->rsp.m1.ct_resplen);
   2411  1.2.12.2  yamt 		for (i = 0; i < MAXRESPLEN; i++) {
   2412  1.2.12.2  yamt 			ISP_IOXGET_8(isp, &src->rsp.m1.ct_resp[i],
   2413  1.2.12.2  yamt 			    dst->rsp.m1.ct_resp[i]);
   2414  1.2.12.2  yamt 		}
   2415  1.2.12.2  yamt 	} else {
   2416  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->rsp.m2._reserved,
   2417  1.2.12.2  yamt 		    dst->rsp.m2._reserved);
   2418  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &src->rsp.m2._reserved2,
   2419  1.2.12.2  yamt 		    dst->rsp.m2._reserved2);
   2420  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &src->rsp.m2._reserved3,
   2421  1.2.12.2  yamt 		    dst->rsp.m2._reserved3);
   2422  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->rsp.m2.ct_datalen,
   2423  1.2.12.2  yamt 		    dst->rsp.m2.ct_datalen);
   2424  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->rsp.m2.ct_fcp_rsp_iudata.ds_base,
   2425  1.2.12.2  yamt 		    dst->rsp.m2.ct_fcp_rsp_iudata.ds_base);
   2426  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->rsp.m2.ct_fcp_rsp_iudata.ds_count,
   2427  1.2.12.2  yamt 		    dst->rsp.m2.ct_fcp_rsp_iudata.ds_count);
   2428  1.2.12.2  yamt 	}
   2429  1.2.12.2  yamt }
   2430  1.2.12.2  yamt 
   2431  1.2.12.2  yamt void
   2432  1.2.12.2  yamt isp_get_ctio7(ispsoftc_t *isp, ct7_entry_t *src, ct7_entry_t *dst)
   2433  1.2.12.2  yamt {
   2434  1.2.12.2  yamt 	int i;
   2435  1.2.12.2  yamt 
   2436  1.2.12.2  yamt 	isp_get_hdr(isp, &src->ct_header, &dst->ct_header);
   2437  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->ct_syshandle, dst->ct_syshandle);
   2438  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ct_nphdl, dst->ct_nphdl);
   2439  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ct_timeout, dst->ct_timeout);
   2440  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ct_seg_count, dst->ct_seg_count);
   2441  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->ct_vpindex, dst->ct_vpindex);
   2442  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->ct_xflags, dst->ct_xflags);
   2443  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ct_iid_lo, dst->ct_iid_lo);
   2444  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->ct_iid_hi, dst->ct_iid_hi);
   2445  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->ct_reserved, dst->ct_reserved);
   2446  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->ct_rxid, dst->ct_rxid);
   2447  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ct_senselen, dst->ct_senselen);
   2448  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ct_flags, dst->ct_flags);
   2449  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->ct_resid, dst->ct_resid);
   2450  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ct_oxid, dst->ct_oxid);
   2451  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->ct_scsi_status, dst->ct_scsi_status);
   2452  1.2.12.2  yamt 	if ((dst->ct_flags & CT7_FLAG_MMASK) == CT7_FLAG_MODE0) {
   2453  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->rsp.m0.reloff, dst->rsp.m0.reloff);
   2454  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->rsp.m0.reserved0,
   2455  1.2.12.2  yamt 		    dst->rsp.m0.reserved0);
   2456  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->rsp.m0.ct_xfrlen,
   2457  1.2.12.2  yamt 		    dst->rsp.m0.ct_xfrlen);
   2458  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->rsp.m0.reserved1,
   2459  1.2.12.2  yamt 		    dst->rsp.m0.reserved1);
   2460  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->rsp.m0.ds.ds_base,
   2461  1.2.12.2  yamt 		    dst->rsp.m0.ds.ds_base);
   2462  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->rsp.m0.ds.ds_basehi,
   2463  1.2.12.2  yamt 		    dst->rsp.m0.ds.ds_basehi);
   2464  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->rsp.m0.ds.ds_count,
   2465  1.2.12.2  yamt 		    dst->rsp.m0.ds.ds_count);
   2466  1.2.12.2  yamt 	} else if ((dst->ct_flags & CT7_FLAG_MMASK) == CT7_FLAG_MODE1) {
   2467  1.2.12.3  yamt 		uint32_t *a, *b;
   2468  1.2.12.3  yamt 
   2469  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &src->rsp.m1.ct_resplen,
   2470  1.2.12.2  yamt 		    dst->rsp.m1.ct_resplen);
   2471  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &src->rsp.m1.reserved, dst->rsp.m1.reserved);
   2472  1.2.12.3  yamt 		a = (uint32_t *) src->rsp.m1.ct_resp;
   2473  1.2.12.3  yamt 		b = (uint32_t *) dst->rsp.m1.ct_resp;
   2474  1.2.12.2  yamt 		for (i = 0; i < MAXRESPLEN_24XX; i++) {
   2475  1.2.12.2  yamt 			ISP_IOXGET_8(isp, &src->rsp.m1.ct_resp[i],
   2476  1.2.12.2  yamt 			    dst->rsp.m1.ct_resp[i]);
   2477  1.2.12.2  yamt 		}
   2478  1.2.12.3  yamt 		for (i = 0; i < (ASIZE(src->rsp.m1.ct_resp) >> 2); i++) {
   2479  1.2.12.3  yamt 			*b++ = ISP_SWAP32(isp, *a++);
   2480  1.2.12.3  yamt 		}
   2481  1.2.12.2  yamt 	} else {
   2482  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->rsp.m2.reserved0,
   2483  1.2.12.2  yamt 		    dst->rsp.m2.reserved0);
   2484  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->rsp.m2.ct_datalen,
   2485  1.2.12.2  yamt 		    dst->rsp.m2.ct_datalen);
   2486  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->rsp.m2.reserved1,
   2487  1.2.12.2  yamt 		    dst->rsp.m2.reserved1);
   2488  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->rsp.m2.ct_fcp_rsp_iudata.ds_base,
   2489  1.2.12.2  yamt 		    dst->rsp.m2.ct_fcp_rsp_iudata.ds_base);
   2490  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->rsp.m2.ct_fcp_rsp_iudata.ds_basehi,
   2491  1.2.12.2  yamt 		    dst->rsp.m2.ct_fcp_rsp_iudata.ds_basehi);
   2492  1.2.12.2  yamt 		ISP_IOXGET_32(isp, &src->rsp.m2.ct_fcp_rsp_iudata.ds_count,
   2493  1.2.12.2  yamt 		    dst->rsp.m2.ct_fcp_rsp_iudata.ds_count);
   2494  1.2.12.2  yamt 	}
   2495  1.2.12.2  yamt }
   2496  1.2.12.2  yamt 
   2497  1.2.12.2  yamt void
   2498  1.2.12.2  yamt isp_put_enable_lun(ispsoftc_t *isp, lun_entry_t *lesrc, lun_entry_t *ledst)
   2499  1.2.12.2  yamt {
   2500  1.2.12.2  yamt 	int i;
   2501  1.2.12.2  yamt 	isp_put_hdr(isp, &lesrc->le_header, &ledst->le_header);
   2502  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, lesrc->le_reserved, &ledst->le_reserved);
   2503  1.2.12.2  yamt 	if (ISP_IS_SBUS(isp)) {
   2504  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, lesrc->le_lun, &ledst->le_rsvd);
   2505  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, lesrc->le_rsvd, &ledst->le_lun);
   2506  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, lesrc->le_ops, &ledst->le_tgt);
   2507  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, lesrc->le_tgt, &ledst->le_ops);
   2508  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, lesrc->le_status, &ledst->le_reserved2);
   2509  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, lesrc->le_reserved2, &ledst->le_status);
   2510  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, lesrc->le_cmd_count, &ledst->le_in_count);
   2511  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, lesrc->le_in_count, &ledst->le_cmd_count);
   2512  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, lesrc->le_cdb6len, &ledst->le_cdb7len);
   2513  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, lesrc->le_cdb7len, &ledst->le_cdb6len);
   2514  1.2.12.2  yamt 	} else {
   2515  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, lesrc->le_lun, &ledst->le_lun);
   2516  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, lesrc->le_rsvd, &ledst->le_rsvd);
   2517  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, lesrc->le_ops, &ledst->le_ops);
   2518  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, lesrc->le_tgt, &ledst->le_tgt);
   2519  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, lesrc->le_status, &ledst->le_status);
   2520  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, lesrc->le_reserved2, &ledst->le_reserved2);
   2521  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, lesrc->le_cmd_count, &ledst->le_cmd_count);
   2522  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, lesrc->le_in_count, &ledst->le_in_count);
   2523  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, lesrc->le_cdb6len, &ledst->le_cdb6len);
   2524  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, lesrc->le_cdb7len, &ledst->le_cdb7len);
   2525  1.2.12.2  yamt 	}
   2526  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, lesrc->le_flags, &ledst->le_flags);
   2527  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, lesrc->le_timeout, &ledst->le_timeout);
   2528  1.2.12.2  yamt 	for (i = 0; i < 20; i++) {
   2529  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, lesrc->le_reserved3[i],
   2530  1.2.12.2  yamt 		    &ledst->le_reserved3[i]);
   2531  1.2.12.2  yamt 	}
   2532  1.2.12.2  yamt }
   2533  1.2.12.2  yamt 
   2534  1.2.12.2  yamt void
   2535  1.2.12.2  yamt isp_get_enable_lun(ispsoftc_t *isp, lun_entry_t *lesrc, lun_entry_t *ledst)
   2536  1.2.12.2  yamt {
   2537  1.2.12.2  yamt 	int i;
   2538  1.2.12.2  yamt 	isp_get_hdr(isp, &lesrc->le_header, &ledst->le_header);
   2539  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &lesrc->le_reserved, ledst->le_reserved);
   2540  1.2.12.2  yamt 	if (ISP_IS_SBUS(isp)) {
   2541  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &lesrc->le_lun, ledst->le_rsvd);
   2542  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &lesrc->le_rsvd, ledst->le_lun);
   2543  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &lesrc->le_ops, ledst->le_tgt);
   2544  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &lesrc->le_tgt, ledst->le_ops);
   2545  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &lesrc->le_status, ledst->le_reserved2);
   2546  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &lesrc->le_reserved2, ledst->le_status);
   2547  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &lesrc->le_cmd_count, ledst->le_in_count);
   2548  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &lesrc->le_in_count, ledst->le_cmd_count);
   2549  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &lesrc->le_cdb6len, ledst->le_cdb7len);
   2550  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &lesrc->le_cdb7len, ledst->le_cdb6len);
   2551  1.2.12.2  yamt 	} else {
   2552  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &lesrc->le_lun, ledst->le_lun);
   2553  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &lesrc->le_rsvd, ledst->le_rsvd);
   2554  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &lesrc->le_ops, ledst->le_ops);
   2555  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &lesrc->le_tgt, ledst->le_tgt);
   2556  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &lesrc->le_status, ledst->le_status);
   2557  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &lesrc->le_reserved2, ledst->le_reserved2);
   2558  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &lesrc->le_cmd_count, ledst->le_cmd_count);
   2559  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &lesrc->le_in_count, ledst->le_in_count);
   2560  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &lesrc->le_cdb6len, ledst->le_cdb6len);
   2561  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &lesrc->le_cdb7len, ledst->le_cdb7len);
   2562  1.2.12.2  yamt 	}
   2563  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &lesrc->le_flags, ledst->le_flags);
   2564  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &lesrc->le_timeout, ledst->le_timeout);
   2565  1.2.12.2  yamt 	for (i = 0; i < 20; i++) {
   2566  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &lesrc->le_reserved3[i],
   2567  1.2.12.2  yamt 		    ledst->le_reserved3[i]);
   2568  1.2.12.2  yamt 	}
   2569  1.2.12.2  yamt }
   2570  1.2.12.2  yamt 
   2571  1.2.12.2  yamt void
   2572  1.2.12.2  yamt isp_put_notify(ispsoftc_t *isp, in_entry_t *src, in_entry_t *dst)
   2573  1.2.12.2  yamt {
   2574  1.2.12.2  yamt 	int i;
   2575  1.2.12.2  yamt 	isp_put_hdr(isp, &src->in_header, &dst->in_header);
   2576  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->in_reserved, &dst->in_reserved);
   2577  1.2.12.2  yamt 	if (ISP_IS_SBUS(isp)) {
   2578  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->in_lun, &dst->in_iid);
   2579  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->in_iid, &dst->in_lun);
   2580  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->in_reserved2, &dst->in_tgt);
   2581  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->in_tgt, &dst->in_reserved2);
   2582  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->in_status, &dst->in_rsvd2);
   2583  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->in_rsvd2, &dst->in_status);
   2584  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->in_tag_val, &dst->in_tag_type);
   2585  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->in_tag_type, &dst->in_tag_val);
   2586  1.2.12.2  yamt 	} else {
   2587  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->in_lun, &dst->in_lun);
   2588  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->in_iid, &dst->in_iid);
   2589  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->in_reserved2, &dst->in_reserved2);
   2590  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->in_tgt, &dst->in_tgt);
   2591  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->in_status, &dst->in_status);
   2592  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->in_rsvd2, &dst->in_rsvd2);
   2593  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->in_tag_val, &dst->in_tag_val);
   2594  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->in_tag_type, &dst->in_tag_type);
   2595  1.2.12.2  yamt 	}
   2596  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->in_flags, &dst->in_flags);
   2597  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->in_seqid, &dst->in_seqid);
   2598  1.2.12.2  yamt 	for (i = 0; i < IN_MSGLEN; i++) {
   2599  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->in_msg[i], &dst->in_msg[i]);
   2600  1.2.12.2  yamt 	}
   2601  1.2.12.2  yamt 	for (i = 0; i < IN_RSVDLEN; i++) {
   2602  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->in_reserved3[i],
   2603  1.2.12.2  yamt 		    &dst->in_reserved3[i]);
   2604  1.2.12.2  yamt 	}
   2605  1.2.12.2  yamt 	for (i = 0; i < QLTM_SENSELEN; i++) {
   2606  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->in_sense[i],
   2607  1.2.12.2  yamt 		    &dst->in_sense[i]);
   2608  1.2.12.2  yamt 	}
   2609  1.2.12.2  yamt }
   2610  1.2.12.2  yamt 
   2611  1.2.12.2  yamt void
   2612  1.2.12.2  yamt isp_get_notify(ispsoftc_t *isp, in_entry_t *src, in_entry_t *dst)
   2613  1.2.12.2  yamt {
   2614  1.2.12.2  yamt 	int i;
   2615  1.2.12.2  yamt 	isp_get_hdr(isp, &src->in_header, &dst->in_header);
   2616  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->in_reserved, dst->in_reserved);
   2617  1.2.12.2  yamt 	if (ISP_IS_SBUS(isp)) {
   2618  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->in_lun, dst->in_iid);
   2619  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->in_iid, dst->in_lun);
   2620  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->in_reserved2, dst->in_tgt);
   2621  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->in_tgt, dst->in_reserved2);
   2622  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->in_status, dst->in_rsvd2);
   2623  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->in_rsvd2, dst->in_status);
   2624  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->in_tag_val, dst->in_tag_type);
   2625  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->in_tag_type, dst->in_tag_val);
   2626  1.2.12.2  yamt 	} else {
   2627  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->in_lun, dst->in_lun);
   2628  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->in_iid, dst->in_iid);
   2629  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->in_reserved2, dst->in_reserved2);
   2630  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->in_tgt, dst->in_tgt);
   2631  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->in_status, dst->in_status);
   2632  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->in_rsvd2, dst->in_rsvd2);
   2633  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->in_tag_val, dst->in_tag_val);
   2634  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->in_tag_type, dst->in_tag_type);
   2635  1.2.12.2  yamt 	}
   2636  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->in_flags, dst->in_flags);
   2637  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->in_seqid, dst->in_seqid);
   2638  1.2.12.2  yamt 	for (i = 0; i < IN_MSGLEN; i++) {
   2639  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->in_msg[i], dst->in_msg[i]);
   2640  1.2.12.2  yamt 	}
   2641  1.2.12.2  yamt 	for (i = 0; i < IN_RSVDLEN; i++) {
   2642  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->in_reserved3[i],
   2643  1.2.12.2  yamt 		    dst->in_reserved3[i]);
   2644  1.2.12.2  yamt 	}
   2645  1.2.12.2  yamt 	for (i = 0; i < QLTM_SENSELEN; i++) {
   2646  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->in_sense[i],
   2647  1.2.12.2  yamt 		    dst->in_sense[i]);
   2648  1.2.12.2  yamt 	}
   2649  1.2.12.2  yamt }
   2650  1.2.12.2  yamt 
   2651  1.2.12.2  yamt void
   2652  1.2.12.2  yamt isp_put_notify_fc(ispsoftc_t *isp, in_fcentry_t *src,
   2653  1.2.12.2  yamt     in_fcentry_t *dst)
   2654  1.2.12.2  yamt {
   2655  1.2.12.2  yamt 	isp_put_hdr(isp, &src->in_header, &dst->in_header);
   2656  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->in_reserved, &dst->in_reserved);
   2657  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->in_lun, &dst->in_lun);
   2658  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->in_iid, &dst->in_iid);
   2659  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->in_scclun, &dst->in_scclun);
   2660  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->in_reserved2, &dst->in_reserved2);
   2661  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->in_status, &dst->in_status);
   2662  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->in_task_flags, &dst->in_task_flags);
   2663  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->in_seqid, &dst->in_seqid);
   2664  1.2.12.2  yamt }
   2665  1.2.12.2  yamt 
   2666  1.2.12.2  yamt void
   2667  1.2.12.2  yamt isp_put_notify_fc_e(ispsoftc_t *isp, in_fcentry_e_t *src,
   2668  1.2.12.2  yamt     in_fcentry_e_t *dst)
   2669  1.2.12.2  yamt {
   2670  1.2.12.2  yamt 	isp_put_hdr(isp, &src->in_header, &dst->in_header);
   2671  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->in_reserved, &dst->in_reserved);
   2672  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->in_iid, &dst->in_iid);
   2673  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->in_scclun, &dst->in_scclun);
   2674  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->in_reserved2, &dst->in_reserved2);
   2675  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->in_status, &dst->in_status);
   2676  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->in_task_flags, &dst->in_task_flags);
   2677  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->in_seqid, &dst->in_seqid);
   2678  1.2.12.2  yamt }
   2679  1.2.12.2  yamt 
   2680  1.2.12.2  yamt void
   2681  1.2.12.2  yamt isp_put_notify_24xx(ispsoftc_t *isp, in_fcentry_24xx_t *src,
   2682  1.2.12.2  yamt     in_fcentry_24xx_t *dst)
   2683  1.2.12.2  yamt {
   2684  1.2.12.2  yamt 	int i;
   2685  1.2.12.2  yamt 
   2686  1.2.12.2  yamt 	isp_put_hdr(isp, &src->in_header, &dst->in_header);
   2687  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->in_reserved, &dst->in_reserved);
   2688  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->in_nphdl, &dst->in_nphdl);
   2689  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->in_reserved1, &dst->in_reserved1);
   2690  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->in_flags, &dst->in_flags);
   2691  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->in_srr_rxid, &dst->in_srr_rxid);
   2692  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->in_status, &dst->in_status);
   2693  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->in_status_subcode, &dst->in_status_subcode);
   2694  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->in_reserved2, &dst->in_reserved2);
   2695  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->in_rxid, &dst->in_rxid);
   2696  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->in_srr_reloff_hi, &dst->in_srr_reloff_hi);
   2697  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->in_srr_reloff_lo, &dst->in_srr_reloff_lo);
   2698  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->in_srr_iu, &dst->in_srr_iu);
   2699  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->in_srr_oxid, &dst->in_srr_oxid);
   2700  1.2.12.3  yamt 	ISP_IOXPUT_16(isp, src->in_nport_id_hi, &dst->in_nport_id_hi);
   2701  1.2.12.3  yamt 	ISP_IOXPUT_8(isp, src->in_nport_id_lo, &dst->in_nport_id_lo);
   2702  1.2.12.3  yamt 	ISP_IOXPUT_8(isp, src->in_reserved3, &dst->in_reserved3);
   2703  1.2.12.3  yamt 	ISP_IOXPUT_16(isp, src->in_np_handle, &dst->in_np_handle);
   2704  1.2.12.3  yamt 	for (i = 0; i < ASIZE(src->in_reserved4); i++) {
   2705  1.2.12.3  yamt 		ISP_IOXPUT_8(isp, src->in_reserved4[i], &dst->in_reserved4[i]);
   2706  1.2.12.2  yamt 	}
   2707  1.2.12.3  yamt 	ISP_IOXPUT_8(isp, src->in_reserved5, &dst->in_reserved5);
   2708  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->in_vpindex, &dst->in_vpindex);
   2709  1.2.12.3  yamt 	ISP_IOXPUT_32(isp, src->in_reserved6, &dst->in_reserved6);
   2710  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->in_portid_lo, &dst->in_portid_lo);
   2711  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->in_portid_hi, &dst->in_portid_hi);
   2712  1.2.12.3  yamt 	ISP_IOXPUT_8(isp, src->in_reserved7, &dst->in_reserved7);
   2713  1.2.12.3  yamt 	ISP_IOXPUT_16(isp, src->in_reserved8, &dst->in_reserved8);
   2714  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->in_oxid, &dst->in_oxid);
   2715  1.2.12.2  yamt }
   2716  1.2.12.2  yamt 
   2717  1.2.12.2  yamt void
   2718  1.2.12.2  yamt isp_get_notify_fc(ispsoftc_t *isp, in_fcentry_t *src,
   2719  1.2.12.2  yamt     in_fcentry_t *dst)
   2720  1.2.12.2  yamt {
   2721  1.2.12.2  yamt 	isp_get_hdr(isp, &src->in_header, &dst->in_header);
   2722  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->in_reserved, dst->in_reserved);
   2723  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->in_lun, dst->in_lun);
   2724  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->in_iid, dst->in_iid);
   2725  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->in_scclun, dst->in_scclun);
   2726  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->in_reserved2, dst->in_reserved2);
   2727  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->in_status, dst->in_status);
   2728  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->in_task_flags, dst->in_task_flags);
   2729  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->in_seqid, dst->in_seqid);
   2730  1.2.12.2  yamt }
   2731  1.2.12.2  yamt 
   2732  1.2.12.2  yamt void
   2733  1.2.12.2  yamt isp_get_notify_fc_e(ispsoftc_t *isp, in_fcentry_e_t *src,
   2734  1.2.12.2  yamt     in_fcentry_e_t *dst)
   2735  1.2.12.2  yamt {
   2736  1.2.12.2  yamt 	isp_get_hdr(isp, &src->in_header, &dst->in_header);
   2737  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->in_reserved, dst->in_reserved);
   2738  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->in_iid, dst->in_iid);
   2739  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->in_scclun, dst->in_scclun);
   2740  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->in_reserved2, dst->in_reserved2);
   2741  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->in_status, dst->in_status);
   2742  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->in_task_flags, dst->in_task_flags);
   2743  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->in_seqid, dst->in_seqid);
   2744  1.2.12.2  yamt }
   2745  1.2.12.2  yamt 
   2746  1.2.12.2  yamt void
   2747  1.2.12.2  yamt isp_get_notify_24xx(ispsoftc_t *isp, in_fcentry_24xx_t *src,
   2748  1.2.12.2  yamt     in_fcentry_24xx_t *dst)
   2749  1.2.12.2  yamt {
   2750  1.2.12.2  yamt 	int i;
   2751  1.2.12.2  yamt 
   2752  1.2.12.2  yamt 	isp_get_hdr(isp, &src->in_header, &dst->in_header);
   2753  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->in_reserved, dst->in_reserved);
   2754  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->in_nphdl, dst->in_nphdl);
   2755  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->in_reserved1, dst->in_reserved1);
   2756  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->in_flags, dst->in_flags);
   2757  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->in_srr_rxid, dst->in_srr_rxid);
   2758  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->in_status, dst->in_status);
   2759  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->in_status_subcode, dst->in_status_subcode);
   2760  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->in_reserved2, dst->in_reserved2);
   2761  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->in_rxid, dst->in_rxid);
   2762  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->in_srr_reloff_hi, dst->in_srr_reloff_hi);
   2763  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->in_srr_reloff_lo, dst->in_srr_reloff_lo);
   2764  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->in_srr_iu, dst->in_srr_iu);
   2765  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->in_srr_oxid, dst->in_srr_oxid);
   2766  1.2.12.3  yamt 	ISP_IOXGET_16(isp, &src->in_nport_id_hi, dst->in_nport_id_hi);
   2767  1.2.12.3  yamt 	ISP_IOXGET_8(isp, &src->in_nport_id_lo, dst->in_nport_id_lo);
   2768  1.2.12.3  yamt 	ISP_IOXGET_8(isp, &src->in_reserved3, dst->in_reserved3);
   2769  1.2.12.3  yamt 	ISP_IOXGET_16(isp, &src->in_np_handle, dst->in_np_handle);
   2770  1.2.12.3  yamt 	for (i = 0; i < ASIZE(src->in_reserved4); i++) {
   2771  1.2.12.3  yamt 		ISP_IOXGET_8(isp, &src->in_reserved4[i], dst->in_reserved4[i]);
   2772  1.2.12.2  yamt 	}
   2773  1.2.12.3  yamt 	ISP_IOXGET_8(isp, &src->in_reserved5, dst->in_reserved5);
   2774  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->in_vpindex, dst->in_vpindex);
   2775  1.2.12.3  yamt 	ISP_IOXGET_32(isp, &src->in_reserved6, dst->in_reserved6);
   2776  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->in_portid_lo, dst->in_portid_lo);
   2777  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->in_portid_hi, dst->in_portid_hi);
   2778  1.2.12.3  yamt 	ISP_IOXGET_8(isp, &src->in_reserved7, dst->in_reserved7);
   2779  1.2.12.3  yamt 	ISP_IOXGET_16(isp, &src->in_reserved8, dst->in_reserved8);
   2780  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->in_oxid, dst->in_oxid);
   2781  1.2.12.2  yamt }
   2782  1.2.12.2  yamt 
   2783  1.2.12.2  yamt void
   2784  1.2.12.2  yamt isp_put_notify_ack(ispsoftc_t *isp, na_entry_t *src,  na_entry_t *dst)
   2785  1.2.12.2  yamt {
   2786  1.2.12.2  yamt 	int i;
   2787  1.2.12.2  yamt 	isp_put_hdr(isp, &src->na_header, &dst->na_header);
   2788  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->na_reserved, &dst->na_reserved);
   2789  1.2.12.2  yamt 	if (ISP_IS_SBUS(isp)) {
   2790  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->na_lun, &dst->na_iid);
   2791  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->na_iid, &dst->na_lun);
   2792  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->na_status, &dst->na_event);
   2793  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->na_event, &dst->na_status);
   2794  1.2.12.2  yamt 	} else {
   2795  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->na_lun, &dst->na_lun);
   2796  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->na_iid, &dst->na_iid);
   2797  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->na_status, &dst->na_status);
   2798  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->na_event, &dst->na_event);
   2799  1.2.12.2  yamt 	}
   2800  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->na_flags, &dst->na_flags);
   2801  1.2.12.2  yamt 	for (i = 0; i < NA_RSVDLEN; i++) {
   2802  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->na_reserved3[i],
   2803  1.2.12.2  yamt 		    &dst->na_reserved3[i]);
   2804  1.2.12.2  yamt 	}
   2805  1.2.12.2  yamt }
   2806  1.2.12.2  yamt 
   2807  1.2.12.2  yamt void
   2808  1.2.12.2  yamt isp_get_notify_ack(ispsoftc_t *isp, na_entry_t *src, na_entry_t *dst)
   2809  1.2.12.2  yamt {
   2810  1.2.12.2  yamt 	int i;
   2811  1.2.12.2  yamt 	isp_get_hdr(isp, &src->na_header, &dst->na_header);
   2812  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->na_reserved, dst->na_reserved);
   2813  1.2.12.2  yamt 	if (ISP_IS_SBUS(isp)) {
   2814  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->na_lun, dst->na_iid);
   2815  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->na_iid, dst->na_lun);
   2816  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->na_status, dst->na_event);
   2817  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->na_event, dst->na_status);
   2818  1.2.12.2  yamt 	} else {
   2819  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->na_lun, dst->na_lun);
   2820  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->na_iid, dst->na_iid);
   2821  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->na_status, dst->na_status);
   2822  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->na_event, dst->na_event);
   2823  1.2.12.2  yamt 	}
   2824  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->na_flags, dst->na_flags);
   2825  1.2.12.2  yamt 	for (i = 0; i < NA_RSVDLEN; i++) {
   2826  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &src->na_reserved3[i],
   2827  1.2.12.2  yamt 		    dst->na_reserved3[i]);
   2828  1.2.12.2  yamt 	}
   2829  1.2.12.2  yamt }
   2830  1.2.12.2  yamt 
   2831  1.2.12.2  yamt void
   2832  1.2.12.2  yamt isp_put_notify_ack_fc(ispsoftc_t *isp, na_fcentry_t *src,
   2833  1.2.12.2  yamt     na_fcentry_t *dst)
   2834  1.2.12.2  yamt {
   2835  1.2.12.2  yamt 	int i;
   2836  1.2.12.2  yamt 	isp_put_hdr(isp, &src->na_header, &dst->na_header);
   2837  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->na_reserved, &dst->na_reserved);
   2838  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->na_reserved1, &dst->na_reserved1);
   2839  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->na_iid, &dst->na_iid);
   2840  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->na_response, &dst->na_response);
   2841  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->na_flags, &dst->na_flags);
   2842  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->na_reserved2, &dst->na_reserved2);
   2843  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->na_status, &dst->na_status);
   2844  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->na_task_flags, &dst->na_task_flags);
   2845  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->na_seqid, &dst->na_seqid);
   2846  1.2.12.2  yamt 	for (i = 0; i < NA2_RSVDLEN; i++) {
   2847  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->na_reserved3[i],
   2848  1.2.12.2  yamt 		    &dst->na_reserved3[i]);
   2849  1.2.12.2  yamt 	}
   2850  1.2.12.2  yamt }
   2851  1.2.12.2  yamt 
   2852  1.2.12.2  yamt void
   2853  1.2.12.2  yamt isp_put_notify_ack_fc_e(ispsoftc_t *isp, na_fcentry_e_t *src,
   2854  1.2.12.2  yamt     na_fcentry_e_t *dst)
   2855  1.2.12.2  yamt {
   2856  1.2.12.2  yamt 	int i;
   2857  1.2.12.2  yamt 	isp_put_hdr(isp, &src->na_header, &dst->na_header);
   2858  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->na_reserved, &dst->na_reserved);
   2859  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->na_iid, &dst->na_iid);
   2860  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->na_response, &dst->na_response);
   2861  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->na_flags, &dst->na_flags);
   2862  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->na_reserved2, &dst->na_reserved2);
   2863  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->na_status, &dst->na_status);
   2864  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->na_task_flags, &dst->na_task_flags);
   2865  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->na_seqid, &dst->na_seqid);
   2866  1.2.12.2  yamt 	for (i = 0; i < NA2_RSVDLEN; i++) {
   2867  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->na_reserved3[i],
   2868  1.2.12.2  yamt 		    &dst->na_reserved3[i]);
   2869  1.2.12.2  yamt 	}
   2870  1.2.12.2  yamt }
   2871  1.2.12.2  yamt 
   2872  1.2.12.2  yamt void
   2873  1.2.12.2  yamt isp_put_notify_24xx_ack(ispsoftc_t *isp, na_fcentry_24xx_t *src,
   2874  1.2.12.2  yamt     na_fcentry_24xx_t *dst)
   2875  1.2.12.2  yamt {
   2876  1.2.12.2  yamt 	int i;
   2877  1.2.12.2  yamt 
   2878  1.2.12.2  yamt 	isp_put_hdr(isp, &src->na_header, &dst->na_header);
   2879  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->na_handle, &dst->na_handle);
   2880  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->na_nphdl, &dst->na_nphdl);
   2881  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->na_reserved1, &dst->na_reserved1);
   2882  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->na_flags, &dst->na_flags);
   2883  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->na_srr_rxid, &dst->na_srr_rxid);
   2884  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->na_status, &dst->na_status);
   2885  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->na_status_subcode, &dst->na_status_subcode);
   2886  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->na_reserved2, &dst->na_reserved2);
   2887  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->na_rxid, &dst->na_rxid);
   2888  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->na_srr_reloff_hi, &dst->na_srr_reloff_hi);
   2889  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->na_srr_reloff_lo, &dst->na_srr_reloff_lo);
   2890  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->na_srr_iu, &dst->na_srr_iu);
   2891  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->na_srr_flags, &dst->na_srr_flags);
   2892  1.2.12.2  yamt 	for (i = 0; i < 18; i++) {
   2893  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->na_reserved3[i], &dst->na_reserved3[i]);
   2894  1.2.12.2  yamt 	}
   2895  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->na_reserved4, &dst->na_reserved4);
   2896  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->na_vpindex, &dst->na_vpindex);
   2897  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->na_srr_reject_vunique,
   2898  1.2.12.2  yamt 	    &dst->na_srr_reject_vunique);
   2899  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->na_srr_reject_explanation,
   2900  1.2.12.2  yamt 	    &dst->na_srr_reject_explanation);
   2901  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->na_srr_reject_code, &dst->na_srr_reject_code);
   2902  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->na_reserved5, &dst->na_reserved5);
   2903  1.2.12.2  yamt 	for (i = 0; i < 6; i++) {
   2904  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->na_reserved6[i], &dst->na_reserved6[i]);
   2905  1.2.12.2  yamt 	}
   2906  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->na_oxid, &dst->na_oxid);
   2907  1.2.12.2  yamt }
   2908  1.2.12.2  yamt 
   2909  1.2.12.2  yamt void
   2910  1.2.12.2  yamt isp_get_notify_ack_fc(ispsoftc_t *isp, na_fcentry_t *src,
   2911  1.2.12.2  yamt     na_fcentry_t *dst)
   2912  1.2.12.2  yamt {
   2913  1.2.12.2  yamt 	int i;
   2914  1.2.12.2  yamt 	isp_get_hdr(isp, &src->na_header, &dst->na_header);
   2915  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->na_reserved, dst->na_reserved);
   2916  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->na_reserved1, dst->na_reserved1);
   2917  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->na_iid, dst->na_iid);
   2918  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->na_response, dst->na_response);
   2919  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->na_flags, dst->na_flags);
   2920  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->na_reserved2, dst->na_reserved2);
   2921  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->na_status, dst->na_status);
   2922  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->na_task_flags, dst->na_task_flags);
   2923  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->na_seqid, dst->na_seqid);
   2924  1.2.12.2  yamt 	for (i = 0; i < NA2_RSVDLEN; i++) {
   2925  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &src->na_reserved3[i],
   2926  1.2.12.2  yamt 		    dst->na_reserved3[i]);
   2927  1.2.12.2  yamt 	}
   2928  1.2.12.2  yamt }
   2929  1.2.12.2  yamt 
   2930  1.2.12.2  yamt void
   2931  1.2.12.2  yamt isp_get_notify_ack_fc_e(ispsoftc_t *isp, na_fcentry_e_t *src,
   2932  1.2.12.2  yamt     na_fcentry_e_t *dst)
   2933  1.2.12.2  yamt {
   2934  1.2.12.2  yamt 	int i;
   2935  1.2.12.2  yamt 	isp_get_hdr(isp, &src->na_header, &dst->na_header);
   2936  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->na_reserved, dst->na_reserved);
   2937  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->na_iid, dst->na_iid);
   2938  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->na_response, dst->na_response);
   2939  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->na_flags, dst->na_flags);
   2940  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->na_reserved2, dst->na_reserved2);
   2941  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->na_status, dst->na_status);
   2942  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->na_task_flags, dst->na_task_flags);
   2943  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->na_seqid, dst->na_seqid);
   2944  1.2.12.2  yamt 	for (i = 0; i < NA2_RSVDLEN; i++) {
   2945  1.2.12.2  yamt 		ISP_IOXGET_16(isp, &src->na_reserved3[i],
   2946  1.2.12.2  yamt 		    dst->na_reserved3[i]);
   2947  1.2.12.2  yamt 	}
   2948  1.2.12.2  yamt }
   2949  1.2.12.2  yamt 
   2950  1.2.12.2  yamt void
   2951  1.2.12.2  yamt isp_get_notify_ack_24xx(ispsoftc_t *isp, na_fcentry_24xx_t *src,
   2952  1.2.12.2  yamt     na_fcentry_24xx_t *dst)
   2953  1.2.12.2  yamt {
   2954  1.2.12.2  yamt 	int i;
   2955  1.2.12.2  yamt 
   2956  1.2.12.2  yamt 	isp_get_hdr(isp, &src->na_header, &dst->na_header);
   2957  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->na_handle, dst->na_handle);
   2958  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->na_nphdl, dst->na_nphdl);
   2959  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->na_reserved1, dst->na_reserved1);
   2960  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->na_flags, dst->na_flags);
   2961  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->na_srr_rxid, dst->na_srr_rxid);
   2962  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->na_status, dst->na_status);
   2963  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->na_status_subcode, dst->na_status_subcode);
   2964  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->na_reserved2, dst->na_reserved2);
   2965  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->na_rxid, dst->na_rxid);
   2966  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->na_srr_reloff_hi, dst->na_srr_reloff_hi);
   2967  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->na_srr_reloff_lo, dst->na_srr_reloff_lo);
   2968  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->na_srr_iu, dst->na_srr_iu);
   2969  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->na_srr_flags, dst->na_srr_flags);
   2970  1.2.12.2  yamt 	for (i = 0; i < 18; i++) {
   2971  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->na_reserved3[i], dst->na_reserved3[i]);
   2972  1.2.12.2  yamt 	}
   2973  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->na_reserved4, dst->na_reserved4);
   2974  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->na_vpindex, dst->na_vpindex);
   2975  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->na_srr_reject_vunique,
   2976  1.2.12.2  yamt 	    dst->na_srr_reject_vunique);
   2977  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->na_srr_reject_explanation,
   2978  1.2.12.2  yamt 	    dst->na_srr_reject_explanation);
   2979  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->na_srr_reject_code, dst->na_srr_reject_code);
   2980  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->na_reserved5, dst->na_reserved5);
   2981  1.2.12.2  yamt 	for (i = 0; i < 6; i++) {
   2982  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->na_reserved6[i], dst->na_reserved6[i]);
   2983  1.2.12.2  yamt 	}
   2984  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->na_oxid, dst->na_oxid);
   2985  1.2.12.2  yamt }
   2986  1.2.12.2  yamt 
   2987  1.2.12.2  yamt void
   2988  1.2.12.2  yamt isp_get_abts(ispsoftc_t *isp, abts_t *src, abts_t *dst)
   2989  1.2.12.2  yamt {
   2990  1.2.12.2  yamt 	int i;
   2991  1.2.12.2  yamt 
   2992  1.2.12.2  yamt 	isp_get_hdr(isp, &src->abts_header, &dst->abts_header);
   2993  1.2.12.2  yamt 	for (i = 0; i < 6; i++) {
   2994  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->abts_reserved0[i],
   2995  1.2.12.2  yamt 		    dst->abts_reserved0[i]);
   2996  1.2.12.2  yamt 	}
   2997  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->abts_nphdl, dst->abts_nphdl);
   2998  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->abts_reserved1, dst->abts_reserved1);
   2999  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->abts_sof, dst->abts_sof);
   3000  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->abts_rxid_abts, dst->abts_rxid_abts);
   3001  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->abts_did_lo, dst->abts_did_lo);
   3002  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->abts_did_hi, dst->abts_did_hi);
   3003  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->abts_r_ctl, dst->abts_r_ctl);
   3004  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->abts_sid_lo, dst->abts_sid_lo);
   3005  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->abts_sid_hi, dst->abts_sid_hi);
   3006  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->abts_cs_ctl, dst->abts_cs_ctl);
   3007  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->abts_fs_ctl, dst->abts_fs_ctl);
   3008  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->abts_f_ctl, dst->abts_f_ctl);
   3009  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->abts_type, dst->abts_type);
   3010  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->abts_seq_cnt, dst->abts_seq_cnt);
   3011  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->abts_df_ctl, dst->abts_df_ctl);
   3012  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->abts_seq_id, dst->abts_seq_id);
   3013  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->abts_rx_id, dst->abts_rx_id);
   3014  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->abts_ox_id, dst->abts_ox_id);
   3015  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->abts_param, dst->abts_param);
   3016  1.2.12.2  yamt 	for (i = 0; i < 16; i++) {
   3017  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->abts_reserved2[i],
   3018  1.2.12.2  yamt 		    dst->abts_reserved2[i]);
   3019  1.2.12.2  yamt 	}
   3020  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->abts_rxid_task, dst->abts_rxid_task);
   3021  1.2.12.2  yamt }
   3022  1.2.12.2  yamt 
   3023  1.2.12.2  yamt void
   3024  1.2.12.2  yamt isp_put_abts_rsp(ispsoftc_t *isp, abts_rsp_t *src, abts_rsp_t *dst)
   3025  1.2.12.2  yamt {
   3026  1.2.12.2  yamt 	int i;
   3027  1.2.12.2  yamt 
   3028  1.2.12.2  yamt 	isp_put_hdr(isp, &src->abts_rsp_header, &dst->abts_rsp_header);
   3029  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->abts_rsp_handle, &dst->abts_rsp_handle);
   3030  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->abts_rsp_status, &dst->abts_rsp_status);
   3031  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->abts_rsp_nphdl, &dst->abts_rsp_nphdl);
   3032  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->abts_rsp_ctl_flags, &dst->abts_rsp_ctl_flags);
   3033  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->abts_rsp_sof, &dst->abts_rsp_sof);
   3034  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->abts_rsp_rxid_abts, &dst->abts_rsp_rxid_abts);
   3035  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->abts_rsp_did_lo, &dst->abts_rsp_did_lo);
   3036  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->abts_rsp_did_hi, &dst->abts_rsp_did_hi);
   3037  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->abts_rsp_r_ctl, &dst->abts_rsp_r_ctl);
   3038  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->abts_rsp_sid_lo, &dst->abts_rsp_sid_lo);
   3039  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->abts_rsp_sid_hi, &dst->abts_rsp_sid_hi);
   3040  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->abts_rsp_cs_ctl, &dst->abts_rsp_cs_ctl);
   3041  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->abts_rsp_f_ctl_lo, &dst->abts_rsp_f_ctl_lo);
   3042  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->abts_rsp_f_ctl_hi, &dst->abts_rsp_f_ctl_hi);
   3043  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->abts_rsp_type, &dst->abts_rsp_type);
   3044  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->abts_rsp_seq_cnt, &dst->abts_rsp_seq_cnt);
   3045  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->abts_rsp_df_ctl, &dst->abts_rsp_df_ctl);
   3046  1.2.12.2  yamt 	ISP_IOXPUT_8(isp, src->abts_rsp_seq_id, &dst->abts_rsp_seq_id);
   3047  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->abts_rsp_rx_id, &dst->abts_rsp_rx_id);
   3048  1.2.12.2  yamt 	ISP_IOXPUT_16(isp, src->abts_rsp_ox_id, &dst->abts_rsp_ox_id);
   3049  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->abts_rsp_param, &dst->abts_rsp_param);
   3050  1.2.12.2  yamt 	if (src->abts_rsp_r_ctl == BA_ACC) {
   3051  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->abts_rsp_payload.ba_acc.reserved,
   3052  1.2.12.2  yamt 		    &dst->abts_rsp_payload.ba_acc.reserved);
   3053  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->abts_rsp_payload.ba_acc.last_seq_id,
   3054  1.2.12.2  yamt 		    &dst->abts_rsp_payload.ba_acc.last_seq_id);
   3055  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->abts_rsp_payload.ba_acc.seq_id_valid,
   3056  1.2.12.2  yamt 		    &dst->abts_rsp_payload.ba_acc.seq_id_valid);
   3057  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->abts_rsp_payload.ba_acc.aborted_rx_id,
   3058  1.2.12.2  yamt 		    &dst->abts_rsp_payload.ba_acc.aborted_rx_id);
   3059  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->abts_rsp_payload.ba_acc.aborted_ox_id,
   3060  1.2.12.2  yamt 		    &dst->abts_rsp_payload.ba_acc.aborted_ox_id);
   3061  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->abts_rsp_payload.ba_acc.high_seq_cnt,
   3062  1.2.12.2  yamt 		    &dst->abts_rsp_payload.ba_acc.high_seq_cnt);
   3063  1.2.12.2  yamt 		ISP_IOXPUT_16(isp, src->abts_rsp_payload.ba_acc.low_seq_cnt,
   3064  1.2.12.2  yamt 		    &dst->abts_rsp_payload.ba_acc.low_seq_cnt);
   3065  1.2.12.2  yamt 		for (i = 0; i < 4; i++) {
   3066  1.2.12.2  yamt 			ISP_IOXPUT_16(isp,
   3067  1.2.12.2  yamt 			    src->abts_rsp_payload.ba_acc.reserved2[i],
   3068  1.2.12.2  yamt 			    &dst->abts_rsp_payload.ba_acc.reserved2[i]);
   3069  1.2.12.2  yamt 		}
   3070  1.2.12.2  yamt 	} else if (src->abts_rsp_r_ctl == BA_RJT) {
   3071  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->abts_rsp_payload.ba_rjt.vendor_unique,
   3072  1.2.12.2  yamt 		    &dst->abts_rsp_payload.ba_rjt.vendor_unique);
   3073  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->abts_rsp_payload.ba_rjt.explanation,
   3074  1.2.12.2  yamt 		    &dst->abts_rsp_payload.ba_rjt.explanation);
   3075  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->abts_rsp_payload.ba_rjt.reason,
   3076  1.2.12.2  yamt 		    &dst->abts_rsp_payload.ba_rjt.reason);
   3077  1.2.12.2  yamt 		ISP_IOXPUT_8(isp, src->abts_rsp_payload.ba_rjt.reserved,
   3078  1.2.12.2  yamt 		    &dst->abts_rsp_payload.ba_rjt.reserved);
   3079  1.2.12.2  yamt 		for (i = 0; i < 12; i++) {
   3080  1.2.12.2  yamt 			ISP_IOXPUT_16(isp,
   3081  1.2.12.2  yamt 			    src->abts_rsp_payload.ba_rjt.reserved2[i],
   3082  1.2.12.2  yamt 			    &dst->abts_rsp_payload.ba_rjt.reserved2[i]);
   3083  1.2.12.2  yamt 		}
   3084  1.2.12.2  yamt 	} else {
   3085  1.2.12.2  yamt 		for (i = 0; i < 16; i++) {
   3086  1.2.12.2  yamt 			ISP_IOXPUT_8(isp, src->abts_rsp_payload.reserved[i],
   3087  1.2.12.2  yamt 			    &dst->abts_rsp_payload.reserved[i]);
   3088  1.2.12.2  yamt 		}
   3089  1.2.12.2  yamt 	}
   3090  1.2.12.2  yamt 	ISP_IOXPUT_32(isp, src->abts_rsp_rxid_task, &dst->abts_rsp_rxid_task);
   3091  1.2.12.2  yamt }
   3092  1.2.12.2  yamt 
   3093  1.2.12.2  yamt void
   3094  1.2.12.2  yamt isp_get_abts_rsp(ispsoftc_t *isp, abts_rsp_t *src, abts_rsp_t *dst)
   3095  1.2.12.2  yamt {
   3096  1.2.12.2  yamt 	int i;
   3097  1.2.12.2  yamt 
   3098  1.2.12.2  yamt 	isp_get_hdr(isp, &src->abts_rsp_header, &dst->abts_rsp_header);
   3099  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->abts_rsp_handle, dst->abts_rsp_handle);
   3100  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->abts_rsp_status, dst->abts_rsp_status);
   3101  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->abts_rsp_nphdl, dst->abts_rsp_nphdl);
   3102  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->abts_rsp_ctl_flags, dst->abts_rsp_ctl_flags);
   3103  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->abts_rsp_sof, dst->abts_rsp_sof);
   3104  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->abts_rsp_rxid_abts, dst->abts_rsp_rxid_abts);
   3105  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->abts_rsp_did_lo, dst->abts_rsp_did_lo);
   3106  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->abts_rsp_did_hi, dst->abts_rsp_did_hi);
   3107  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->abts_rsp_r_ctl, dst->abts_rsp_r_ctl);
   3108  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->abts_rsp_sid_lo, dst->abts_rsp_sid_lo);
   3109  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->abts_rsp_sid_hi, dst->abts_rsp_sid_hi);
   3110  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->abts_rsp_cs_ctl, dst->abts_rsp_cs_ctl);
   3111  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->abts_rsp_f_ctl_lo, dst->abts_rsp_f_ctl_lo);
   3112  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->abts_rsp_f_ctl_hi, dst->abts_rsp_f_ctl_hi);
   3113  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->abts_rsp_type, dst->abts_rsp_type);
   3114  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->abts_rsp_seq_cnt, dst->abts_rsp_seq_cnt);
   3115  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->abts_rsp_df_ctl, dst->abts_rsp_df_ctl);
   3116  1.2.12.2  yamt 	ISP_IOXGET_8(isp, &src->abts_rsp_seq_id, dst->abts_rsp_seq_id);
   3117  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->abts_rsp_rx_id, dst->abts_rsp_rx_id);
   3118  1.2.12.2  yamt 	ISP_IOXGET_16(isp, &src->abts_rsp_ox_id, dst->abts_rsp_ox_id);
   3119  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->abts_rsp_param, dst->abts_rsp_param);
   3120  1.2.12.2  yamt 	for (i = 0; i < 8; i++) {
   3121  1.2.12.2  yamt 		ISP_IOXGET_8(isp, &src->abts_rsp_payload.rsp.reserved[i],
   3122  1.2.12.2  yamt 		    dst->abts_rsp_payload.rsp.reserved[i]);
   3123  1.2.12.2  yamt 	}
   3124  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->abts_rsp_payload.rsp.subcode1,
   3125  1.2.12.2  yamt 	    dst->abts_rsp_payload.rsp.subcode1);
   3126  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->abts_rsp_payload.rsp.subcode2,
   3127  1.2.12.2  yamt 	    dst->abts_rsp_payload.rsp.subcode2);
   3128  1.2.12.2  yamt 	ISP_IOXGET_32(isp, &src->abts_rsp_rxid_task, dst->abts_rsp_rxid_task);
   3129  1.2.12.2  yamt }
   3130  1.2.12.2  yamt #endif	/* ISP_TARGET_MODE */
   3131  1.2.12.2  yamt /*
   3132  1.2.12.2  yamt  * vim:ts=8:sw=8
   3133  1.2.12.2  yamt  */
   3134