<def f='src/src/sys/dev/scsipi/scsipiconf.h' l='523' ll='563'/>
<size>256</size>
<doc f='src/src/sys/dev/scsipi/scsipiconf.h' l='499'>/*
 * Each scsipi transaction is fully described by one of these structures
 * It includes information about the source of the command and also the
 * device and adapter for which the command is destined.
 *
 * Before the HBA is given this transaction, channel_q is the linkage on
 * the related channel&apos;s chan_queue.
 *
 * When the this transaction is taken off the channel&apos;s chan_queue and
 * the HBA&apos;s request entry point is called with this transaction, the
 * HBA can use the channel_q tag for whatever it likes until it calls
 * scsipi_done for this transaction, at which time it has to stop
 * using channel_q.
 *
 * After scsipi_done is called with this transaction and if there was an
 * error on it, channel_q then becomes the linkage on the related channel&apos;s
 * chan_complete cqueue.
 *
 * The device_q member is maintained by the scsipi middle layer.  When
 * a device issues a command, the xfer is placed on that device&apos;s
 * pending commands queue.  When an xfer is done and freed, it is taken
 * off the device&apos;s queue.  This allows for a device to wait for all of
 * its pending commands to complete.
 */</doc>
<mbr r='scsipi_xfer::channel_q' o='0' t='struct (anonymous struct at /home/joerg/work/NetBSD/clean/src/sys/dev/scsipi/scsipiconf.h:524:2)'/>
<mbr r='scsipi_xfer::device_q' o='128' t='struct (anonymous struct at /home/joerg/work/NetBSD/clean/src/sys/dev/scsipi/scsipiconf.h:525:2)'/>
<mbr r='scsipi_xfer::xs_callout' o='256' t='callout_t'/>
<mbr r='scsipi_xfer::xs_control' o='896' t='int'/>
<mbr r='scsipi_xfer::xs_status' o='928' t='volatile int'/>
<mbr r='scsipi_xfer::xs_periph' o='960' t='struct scsipi_periph *'/>
<mbr r='scsipi_xfer::xs_retries' o='1024' t='int'/>
<mbr r='scsipi_xfer::xs_requeuecnt' o='1056' t='int'/>
<mbr r='scsipi_xfer::timeout' o='1088' t='int'/>
<mbr r='scsipi_xfer::cmd' o='1152' t='struct scsipi_generic *'/>
<mbr r='scsipi_xfer::cmdlen' o='1216' t='int'/>
<mbr r='scsipi_xfer::data' o='1280' t='u_char *'/>
<mbr r='scsipi_xfer::datalen' o='1344' t='int'/>
<mbr r='scsipi_xfer::resid' o='1376' t='int'/>
<mbr r='scsipi_xfer::error' o='1408' t='scsipi_xfer_result_t'/>
<mbr r='scsipi_xfer::bp' o='1472' t='struct buf *'/>
<mbr r='scsipi_xfer::sense' o='1536' t='union (anonymous union at /home/joerg/work/NetBSD/clean/src/sys/dev/scsipi/scsipiconf.h:541:2)'/>
<mbr r='scsipi_xfer::xs_sensefor' o='1792' t='struct scsipi_xfer *'/>
<mbr r='scsipi_xfer::status' o='1856' t='u_int8_t'/>
<mbr r='scsipi_xfer::xs_tag_type' o='1864' t='u_int8_t'/>
<mbr r='scsipi_xfer::xs_tag_id' o='1872' t='u_int8_t'/>
<mbr r='scsipi_xfer::cmdstore' o='1888' t='struct scsipi_generic'/>
