linux/drivers/scsi/sun3_NCR5380.c
<<
>>
Prefs
   1/* sun3_NCR5380.c -- adapted from atari_NCR5380.c for the sun3 by 
   2   Sam Creasey. */ 
   3/* 
   4 * NCR 5380 generic driver routines.  These should make it *trivial*
   5 *      to implement 5380 SCSI drivers under Linux with a non-trantor
   6 *      architecture.
   7 *
   8 *      Note that these routines also work with NR53c400 family chips.
   9 *
  10 * Copyright 1993, Drew Eckhardt
  11 *      Visionary Computing 
  12 *      (Unix and Linux consulting and custom programming)
  13 *      drew@colorado.edu
  14 *      +1 (303) 666-5836
  15 *
  16 * DISTRIBUTION RELEASE 6. 
  17 *
  18 * For more information, please consult 
  19 *
  20 * NCR 5380 Family
  21 * SCSI Protocol Controller
  22 * Databook
  23 *
  24 * NCR Microelectronics
  25 * 1635 Aeroplaza Drive
  26 * Colorado Springs, CO 80916
  27 * 1+ (719) 578-3400
  28 * 1+ (800) 334-5454
  29 */
  30
  31/*
  32 * ++roman: To port the 5380 driver to the Atari, I had to do some changes in
  33 * this file, too:
  34 *
  35 *  - Some of the debug statements were incorrect (undefined variables and the
  36 *    like). I fixed that.
  37 *
  38 *  - In information_transfer(), I think a #ifdef was wrong. Looking at the
  39 *    possible DMA transfer size should also happen for REAL_DMA. I added this
  40 *    in the #if statement.
  41 *
  42 *  - When using real DMA, information_transfer() should return in a DATAOUT
  43 *    phase after starting the DMA. It has nothing more to do.
  44 *
  45 *  - The interrupt service routine should run main after end of DMA, too (not
  46 *    only after RESELECTION interrupts). Additionally, it should _not_ test
  47 *    for more interrupts after running main, since a DMA process may have
  48 *    been started and interrupts are turned on now. The new int could happen
  49 *    inside the execution of NCR5380_intr(), leading to recursive
  50 *    calls.
  51 *
  52 * - I've deleted all the stuff for AUTOPROBE_IRQ, REAL_DMA_POLL, PSEUDO_DMA
  53 *    and USLEEP, because these were messing up readability and will never be
  54 *    needed for Atari SCSI.
  55 * 
  56 * - I've revised the NCR5380_main() calling scheme (relax the 'main_running'
  57 *   stuff), and 'main' is executed in a bottom half if awoken by an
  58 *   interrupt.
  59 *
  60 * - The code was quite cluttered up by "#if (NDEBUG & NDEBUG_*) printk..."
  61 *   constructs. In my eyes, this made the source rather unreadable, so I
  62 *   finally replaced that by the *_PRINTK() macros.
  63 *
  64 */
  65#include <scsi/scsi_dbg.h>
  66#include <scsi/scsi_transport_spi.h>
  67
  68/*
  69 * Further development / testing that should be done : 
  70 * 1.  Test linked command handling code after Eric is ready with 
  71 *     the high level code.
  72 */
  73
  74#if (NDEBUG & NDEBUG_LISTS)
  75#define LIST(x,y) \
  76  { printk("LINE:%d   Adding %p to %p\n", __LINE__, (void*)(x), (void*)(y)); \
  77    if ((x)==(y)) udelay(5); }
  78#define REMOVE(w,x,y,z) \
  79  { printk("LINE:%d   Removing: %p->%p  %p->%p \n", __LINE__, \
  80           (void*)(w), (void*)(x), (void*)(y), (void*)(z)); \
  81    if ((x)==(y)) udelay(5); }
  82#else
  83#define LIST(x,y)
  84#define REMOVE(w,x,y,z)
  85#endif
  86
  87#ifndef notyet
  88#undef LINKED
  89#endif
  90
  91/*
  92 * Design
  93 * Issues :
  94 *
  95 * The other Linux SCSI drivers were written when Linux was Intel PC-only,
  96 * and specifically for each board rather than each chip.  This makes their
  97 * adaptation to platforms like the Mac (Some of which use NCR5380's)
  98 * more difficult than it has to be.
  99 *
 100 * Also, many of the SCSI drivers were written before the command queuing
 101 * routines were implemented, meaning their implementations of queued 
 102 * commands were hacked on rather than designed in from the start.
 103 *
 104 * When I designed the Linux SCSI drivers I figured that 
 105 * while having two different SCSI boards in a system might be useful
 106 * for debugging things, two of the same type wouldn't be used.
 107 * Well, I was wrong and a number of users have mailed me about running
 108 * multiple high-performance SCSI boards in a server.
 109 *
 110 * Finally, when I get questions from users, I have no idea what 
 111 * revision of my driver they are running.
 112 *
 113 * This driver attempts to address these problems :
 114 * This is a generic 5380 driver.  To use it on a different platform, 
 115 * one simply writes appropriate system specific macros (ie, data
 116 * transfer - some PC's will use the I/O bus, 68K's must use 
 117 * memory mapped) and drops this file in their 'C' wrapper.
 118 *
 119 * As far as command queueing, two queues are maintained for 
 120 * each 5380 in the system - commands that haven't been issued yet,
 121 * and commands that are currently executing.  This means that an 
 122 * unlimited number of commands may be queued, letting 
 123 * more commands propagate from the higher driver levels giving higher 
 124 * throughput.  Note that both I_T_L and I_T_L_Q nexuses are supported, 
 125 * allowing multiple commands to propagate all the way to a SCSI-II device 
 126 * while a command is already executing.
 127 *
 128 * To solve the multiple-boards-in-the-same-system problem, 
 129 * there is a separate instance structure for each instance
 130 * of a 5380 in the system.  So, multiple NCR5380 drivers will
 131 * be able to coexist with appropriate changes to the high level
 132 * SCSI code.  
 133 *
 134 * A NCR5380_PUBLIC_REVISION macro is provided, with the release
 135 * number (updated for each public release) printed by the 
 136 * NCR5380_print_options command, which should be called from the 
 137 * wrapper detect function, so that I know what release of the driver
 138 * users are using.
 139 *
 140 * Issues specific to the NCR5380 : 
 141 *
 142 * When used in a PIO or pseudo-dma mode, the NCR5380 is a braindead 
 143 * piece of hardware that requires you to sit in a loop polling for 
 144 * the REQ signal as long as you are connected.  Some devices are 
 145 * brain dead (ie, many TEXEL CD ROM drives) and won't disconnect 
 146 * while doing long seek operations.
 147 * 
 148 * The workaround for this is to keep track of devices that have
 149 * disconnected.  If the device hasn't disconnected, for commands that
 150 * should disconnect, we do something like 
 151 *
 152 * while (!REQ is asserted) { sleep for N usecs; poll for M usecs }
 153 * 
 154 * Some tweaking of N and M needs to be done.  An algorithm based 
 155 * on "time to data" would give the best results as long as short time
 156 * to datas (ie, on the same track) were considered, however these 
 157 * broken devices are the exception rather than the rule and I'd rather
 158 * spend my time optimizing for the normal case.
 159 *
 160 * Architecture :
 161 *
 162 * At the heart of the design is a coroutine, NCR5380_main,
 163 * which is started when not running by the interrupt handler,
 164 * timer, and queue command function.  It attempts to establish
 165 * I_T_L or I_T_L_Q nexuses by removing the commands from the 
 166 * issue queue and calling NCR5380_select() if a nexus 
 167 * is not established. 
 168 *
 169 * Once a nexus is established, the NCR5380_information_transfer()
 170 * phase goes through the various phases as instructed by the target.
 171 * if the target goes into MSG IN and sends a DISCONNECT message,
 172 * the command structure is placed into the per instance disconnected
 173 * queue, and NCR5380_main tries to find more work.  If USLEEP
 174 * was defined, and the target is idle for too long, the system
 175 * will try to sleep.
 176 *
 177 * If a command has disconnected, eventually an interrupt will trigger,
 178 * calling NCR5380_intr()  which will in turn call NCR5380_reselect
 179 * to reestablish a nexus.  This will run main if necessary.
 180 *
 181 * On command termination, the done function will be called as 
 182 * appropriate.
 183 *
 184 * SCSI pointers are maintained in the SCp field of SCSI command 
 185 * structures, being initialized after the command is connected
 186 * in NCR5380_select, and set as appropriate in NCR5380_information_transfer.
 187 * Note that in violation of the standard, an implicit SAVE POINTERS operation
 188 * is done, since some BROKEN disks fail to issue an explicit SAVE POINTERS.
 189 */
 190
 191/*
 192 * Using this file :
 193 * This file a skeleton Linux SCSI driver for the NCR 5380 series
 194 * of chips.  To use it, you write an architecture specific functions 
 195 * and macros and include this file in your driver.
 196 *
 197 * These macros control options : 
 198 * AUTOSENSE - if defined, REQUEST SENSE will be performed automatically
 199 *      for commands that return with a CHECK CONDITION status. 
 200 *
 201 * LINKED - if defined, linked commands are supported.
 202 *
 203 * REAL_DMA - if defined, REAL DMA is used during the data transfer phases.
 204 *
 205 * SUPPORT_TAGS - if defined, SCSI-2 tagged queuing is used where possible
 206 *
 207 * These macros MUST be defined :
 208 * 
 209 * NCR5380_read(register)  - read from the specified register
 210 *
 211 * NCR5380_write(register, value) - write to the specific register 
 212 *
 213 * Either real DMA *or* pseudo DMA may be implemented
 214 * REAL functions : 
 215 * NCR5380_REAL_DMA should be defined if real DMA is to be used.
 216 * Note that the DMA setup functions should return the number of bytes 
 217 *      that they were able to program the controller for.
 218 *
 219 * Also note that generic i386/PC versions of these macros are 
 220 *      available as NCR5380_i386_dma_write_setup,
 221 *      NCR5380_i386_dma_read_setup, and NCR5380_i386_dma_residual.
 222 *
 223 * NCR5380_dma_write_setup(instance, src, count) - initialize
 224 * NCR5380_dma_read_setup(instance, dst, count) - initialize
 225 * NCR5380_dma_residual(instance); - residual count
 226 *
 227 * PSEUDO functions :
 228 * NCR5380_pwrite(instance, src, count)
 229 * NCR5380_pread(instance, dst, count);
 230 *
 231 * If nothing specific to this implementation needs doing (ie, with external
 232 * hardware), you must also define 
 233 *  
 234 * NCR5380_queue_command
 235 * NCR5380_reset
 236 * NCR5380_abort
 237 * NCR5380_proc_info
 238 *
 239 * to be the global entry points into the specific driver, ie 
 240 * #define NCR5380_queue_command t128_queue_command.
 241 *
 242 * If this is not done, the routines will be defined as static functions
 243 * with the NCR5380* names and the user must provide a globally
 244 * accessible wrapper function.
 245 *
 246 * The generic driver is initialized by calling NCR5380_init(instance),
 247 * after setting the appropriate host specific fields and ID.  If the 
 248 * driver wishes to autoprobe for an IRQ line, the NCR5380_probe_irq(instance,
 249 * possible) function may be used.  Before the specific driver initialization
 250 * code finishes, NCR5380_print_options should be called.
 251 */
 252
 253static struct Scsi_Host *first_instance = NULL;
 254static struct scsi_host_template *the_template = NULL;
 255
 256/* Macros ease life... :-) */
 257#define SETUP_HOSTDATA(in)                              \
 258    struct NCR5380_hostdata *hostdata =                 \
 259        (struct NCR5380_hostdata *)(in)->hostdata
 260#define HOSTDATA(in) ((struct NCR5380_hostdata *)(in)->hostdata)
 261
 262#define NEXT(cmd)               ((struct scsi_cmnd *)(cmd)->host_scribble)
 263#define SET_NEXT(cmd, next)     ((cmd)->host_scribble = (void *)(next))
 264#define NEXTADDR(cmd)           ((struct scsi_cmnd **)&((cmd)->host_scribble))
 265
 266#define HOSTNO          instance->host_no
 267#define H_NO(cmd)       (cmd)->device->host->host_no
 268
 269#define SGADDR(buffer) (void *)(((unsigned long)sg_virt(((buffer)))))
 270
 271#ifdef SUPPORT_TAGS
 272
 273/*
 274 * Functions for handling tagged queuing
 275 * =====================================
 276 *
 277 * ++roman (01/96): Now I've implemented SCSI-2 tagged queuing. Some notes:
 278 *
 279 * Using consecutive numbers for the tags is no good idea in my eyes. There
 280 * could be wrong re-usings if the counter (8 bit!) wraps and some early
 281 * command has been preempted for a long time. My solution: a bitfield for
 282 * remembering used tags.
 283 *
 284 * There's also the problem that each target has a certain queue size, but we
 285 * cannot know it in advance :-( We just see a QUEUE_FULL status being
 286 * returned. So, in this case, the driver internal queue size assumption is
 287 * reduced to the number of active tags if QUEUE_FULL is returned by the
 288 * target. The command is returned to the mid-level, but with status changed
 289 * to BUSY, since --as I've seen-- the mid-level can't handle QUEUE_FULL
 290 * correctly.
 291 *
 292 * We're also not allowed running tagged commands as long as an untagged
 293 * command is active. And REQUEST SENSE commands after a contingent allegiance
 294 * condition _must_ be untagged. To keep track whether an untagged command has
 295 * been issued, the host->busy array is still employed, as it is without
 296 * support for tagged queuing.
 297 *
 298 * One could suspect that there are possible race conditions between
 299 * is_lun_busy(), cmd_get_tag() and cmd_free_tag(). But I think this isn't the
 300 * case: is_lun_busy() and cmd_get_tag() are both called from NCR5380_main(),
 301 * which already guaranteed to be running at most once. It is also the only
 302 * place where tags/LUNs are allocated. So no other allocation can slip
 303 * between that pair, there could only happen a reselection, which can free a
 304 * tag, but that doesn't hurt. Only the sequence in cmd_free_tag() becomes
 305 * important: the tag bit must be cleared before 'nr_allocated' is decreased.
 306 */
 307
 308/* -1 for TAG_NONE is not possible with unsigned char cmd->tag */
 309#undef TAG_NONE
 310#define TAG_NONE 0xff
 311
 312/* For the m68k, the number of bits in 'allocated' must be a multiple of 32! */
 313#if (MAX_TAGS % 32) != 0
 314#error "MAX_TAGS must be a multiple of 32!"
 315#endif
 316
 317typedef struct {
 318    char        allocated[MAX_TAGS/8];
 319    int         nr_allocated;
 320    int         queue_size;
 321} TAG_ALLOC;
 322
 323static TAG_ALLOC TagAlloc[8][8]; /* 8 targets and 8 LUNs */
 324
 325
 326static void __init init_tags( void )
 327{
 328    int target, lun;
 329    TAG_ALLOC *ta;
 330    
 331    if (!setup_use_tagged_queuing)
 332        return;
 333    
 334    for( target = 0; target < 8; ++target ) {
 335        for( lun = 0; lun < 8; ++lun ) {
 336            ta = &TagAlloc[target][lun];
 337            memset( &ta->allocated, 0, MAX_TAGS/8 );
 338            ta->nr_allocated = 0;
 339            /* At the beginning, assume the maximum queue size we could
 340             * support (MAX_TAGS). This value will be decreased if the target
 341             * returns QUEUE_FULL status.
 342             */
 343            ta->queue_size = MAX_TAGS;
 344        }
 345    }
 346}
 347
 348
 349/* Check if we can issue a command to this LUN: First see if the LUN is marked
 350 * busy by an untagged command. If the command should use tagged queuing, also
 351 * check that there is a free tag and the target's queue won't overflow. This
 352 * function should be called with interrupts disabled to avoid race
 353 * conditions.
 354 */ 
 355
 356static int is_lun_busy(struct scsi_cmnd *cmd, int should_be_tagged)
 357{
 358    SETUP_HOSTDATA(cmd->device->host);
 359
 360    if (hostdata->busy[cmd->device->id] & (1 << cmd->device->lun))
 361        return( 1 );
 362    if (!should_be_tagged ||
 363        !setup_use_tagged_queuing || !cmd->device->tagged_supported)
 364        return( 0 );
 365    if (TagAlloc[cmd->device->id][cmd->device->lun].nr_allocated >=
 366        TagAlloc[cmd->device->id][cmd->device->lun].queue_size ) {
 367        TAG_PRINTK( "scsi%d: target %d lun %d: no free tags\n",
 368                    H_NO(cmd), cmd->device->id, cmd->device->lun );
 369        return( 1 );
 370    }
 371    return( 0 );
 372}
 373
 374
 375/* Allocate a tag for a command (there are no checks anymore, check_lun_busy()
 376 * must be called before!), or reserve the LUN in 'busy' if the command is
 377 * untagged.
 378 */
 379
 380static void cmd_get_tag(struct scsi_cmnd *cmd, int should_be_tagged)
 381{
 382    SETUP_HOSTDATA(cmd->device->host);
 383
 384    /* If we or the target don't support tagged queuing, allocate the LUN for
 385     * an untagged command.
 386     */
 387    if (!should_be_tagged ||
 388        !setup_use_tagged_queuing || !cmd->device->tagged_supported) {
 389        cmd->tag = TAG_NONE;
 390        hostdata->busy[cmd->device->id] |= (1 << cmd->device->lun);
 391        TAG_PRINTK( "scsi%d: target %d lun %d now allocated by untagged "
 392                    "command\n", H_NO(cmd), cmd->device->id, cmd->device->lun );
 393    }
 394    else {
 395        TAG_ALLOC *ta = &TagAlloc[cmd->device->id][cmd->device->lun];
 396
 397        cmd->tag = find_first_zero_bit( &ta->allocated, MAX_TAGS );
 398        set_bit( cmd->tag, &ta->allocated );
 399        ta->nr_allocated++;
 400        TAG_PRINTK( "scsi%d: using tag %d for target %d lun %d "
 401                    "(now %d tags in use)\n",
 402                    H_NO(cmd), cmd->tag, cmd->device->id, cmd->device->lun,
 403                    ta->nr_allocated );
 404    }
 405}
 406
 407
 408/* Mark the tag of command 'cmd' as free, or in case of an untagged command,
 409 * unlock the LUN.
 410 */
 411
 412static void cmd_free_tag(struct scsi_cmnd *cmd)
 413{
 414    SETUP_HOSTDATA(cmd->device->host);
 415
 416    if (cmd->tag == TAG_NONE) {
 417        hostdata->busy[cmd->device->id] &= ~(1 << cmd->device->lun);
 418        TAG_PRINTK( "scsi%d: target %d lun %d untagged cmd finished\n",
 419                    H_NO(cmd), cmd->device->id, cmd->device->lun );
 420    }
 421    else if (cmd->tag >= MAX_TAGS) {
 422        printk(KERN_NOTICE "scsi%d: trying to free bad tag %d!\n",
 423                H_NO(cmd), cmd->tag );
 424    }
 425    else {
 426        TAG_ALLOC *ta = &TagAlloc[cmd->device->id][cmd->device->lun];
 427        clear_bit( cmd->tag, &ta->allocated );
 428        ta->nr_allocated--;
 429        TAG_PRINTK( "scsi%d: freed tag %d for target %d lun %d\n",
 430                    H_NO(cmd), cmd->tag, cmd->device->id, cmd->device->lun );
 431    }
 432}
 433
 434
 435static void free_all_tags( void )
 436{
 437    int target, lun;
 438    TAG_ALLOC *ta;
 439
 440    if (!setup_use_tagged_queuing)
 441        return;
 442    
 443    for( target = 0; target < 8; ++target ) {
 444        for( lun = 0; lun < 8; ++lun ) {
 445            ta = &TagAlloc[target][lun];
 446            memset( &ta->allocated, 0, MAX_TAGS/8 );
 447            ta->nr_allocated = 0;
 448        }
 449    }
 450}
 451
 452#endif /* SUPPORT_TAGS */
 453
 454
 455/*
 456 * Function : void initialize_SCp(struct scsi_cmnd *cmd)
 457 *
 458 * Purpose : initialize the saved data pointers for cmd to point to the 
 459 *      start of the buffer.
 460 *
 461 * Inputs : cmd - struct scsi_cmnd structure to have pointers reset.
 462 */
 463
 464static __inline__ void initialize_SCp(struct scsi_cmnd *cmd)
 465{
 466    /* 
 467     * Initialize the Scsi Pointer field so that all of the commands in the 
 468     * various queues are valid.
 469     */
 470
 471    if (scsi_bufflen(cmd)) {
 472        cmd->SCp.buffer = scsi_sglist(cmd);
 473        cmd->SCp.buffers_residual = scsi_sg_count(cmd) - 1;
 474        cmd->SCp.ptr = (char *) SGADDR(cmd->SCp.buffer);
 475        cmd->SCp.this_residual = cmd->SCp.buffer->length;
 476    } else {
 477        cmd->SCp.buffer = NULL;
 478        cmd->SCp.buffers_residual = 0;
 479        cmd->SCp.ptr = NULL;
 480        cmd->SCp.this_residual = 0;
 481    }
 482    
 483}
 484
 485#include <linux/delay.h>
 486
 487#if 1
 488static struct {
 489    unsigned char mask;
 490    const char * name;} 
 491signals[] = {{ SR_DBP, "PARITY"}, { SR_RST, "RST" }, { SR_BSY, "BSY" }, 
 492    { SR_REQ, "REQ" }, { SR_MSG, "MSG" }, { SR_CD,  "CD" }, { SR_IO, "IO" }, 
 493    { SR_SEL, "SEL" }, {0, NULL}}, 
 494basrs[] = {{BASR_ATN, "ATN"}, {BASR_ACK, "ACK"}, {0, NULL}},
 495icrs[] = {{ICR_ASSERT_RST, "ASSERT RST"},{ICR_ASSERT_ACK, "ASSERT ACK"},
 496    {ICR_ASSERT_BSY, "ASSERT BSY"}, {ICR_ASSERT_SEL, "ASSERT SEL"}, 
 497    {ICR_ASSERT_ATN, "ASSERT ATN"}, {ICR_ASSERT_DATA, "ASSERT DATA"}, 
 498    {0, NULL}},
 499mrs[] = {{MR_BLOCK_DMA_MODE, "MODE BLOCK DMA"}, {MR_TARGET, "MODE TARGET"}, 
 500    {MR_ENABLE_PAR_CHECK, "MODE PARITY CHECK"}, {MR_ENABLE_PAR_INTR, 
 501    "MODE PARITY INTR"}, {MR_ENABLE_EOP_INTR,"MODE EOP INTR"},
 502    {MR_MONITOR_BSY, "MODE MONITOR BSY"},
 503    {MR_DMA_MODE, "MODE DMA"}, {MR_ARBITRATE, "MODE ARBITRATION"}, 
 504    {0, NULL}};
 505
 506/*
 507 * Function : void NCR5380_print(struct Scsi_Host *instance)
 508 *
 509 * Purpose : print the SCSI bus signals for debugging purposes
 510 *
 511 * Input : instance - which NCR5380
 512 */
 513
 514static void NCR5380_print(struct Scsi_Host *instance) {
 515    unsigned char status, data, basr, mr, icr, i;
 516    unsigned long flags;
 517
 518    local_irq_save(flags);
 519    data = NCR5380_read(CURRENT_SCSI_DATA_REG);
 520    status = NCR5380_read(STATUS_REG);
 521    mr = NCR5380_read(MODE_REG);
 522    icr = NCR5380_read(INITIATOR_COMMAND_REG);
 523    basr = NCR5380_read(BUS_AND_STATUS_REG);
 524    local_irq_restore(flags);
 525    printk("STATUS_REG: %02x ", status);
 526    for (i = 0; signals[i].mask ; ++i) 
 527        if (status & signals[i].mask)
 528            printk(",%s", signals[i].name);
 529    printk("\nBASR: %02x ", basr);
 530    for (i = 0; basrs[i].mask ; ++i) 
 531        if (basr & basrs[i].mask)
 532            printk(",%s", basrs[i].name);
 533    printk("\nICR: %02x ", icr);
 534    for (i = 0; icrs[i].mask; ++i) 
 535        if (icr & icrs[i].mask)
 536            printk(",%s", icrs[i].name);
 537    printk("\nMODE: %02x ", mr);
 538    for (i = 0; mrs[i].mask; ++i) 
 539        if (mr & mrs[i].mask)
 540            printk(",%s", mrs[i].name);
 541    printk("\n");
 542}
 543
 544static struct {
 545    unsigned char value;
 546    const char *name;
 547} phases[] = {
 548    {PHASE_DATAOUT, "DATAOUT"}, {PHASE_DATAIN, "DATAIN"}, {PHASE_CMDOUT, "CMDOUT"},
sde=i" class="sref">iscsi/sun3_NCR5380Atk,1rau5Aent"> * ring">"DATAIN" * rintatus" class="sref">sde=i" class= * rin>iscsi/sun3_NCR5380Atk,1rau5Aent"> * s="line" name="L53cmd"  * s=tatus" class="sref">sde=i" class= * f">iscsi/sun3MDOUT, "CML449"> 445    }
sde=i" class=UNKNOW=>iscsi/sun 504    {0, }
 466    
 50_ name7 * Function : void NCR5380_print(struct Scsi_Hosame="L4535> 453
 510 454
 * Purpose : print the SCSI bus signals for debugg"comment"5/*
d)
 511 * Input : instance - w"comment"5 *
 512
bane" n_ name541"> href="+code=NCR5380_print" class="sref">NCR5380_print(struct Scsi_HoNCR5380.c#L439" id="L439" class="line" 5 e="L450"5 *
 527    {0, 5*/
icr,  520    status = NCR5380_read({
 527        if ( )ass="sref">mask; ++5* 
 422         430OST" read(
5s are val5d.
c#L538" id="L538d="L547" class="line" name="L5477;s", mrline" name="L545"> 545    ! 520               76" id="L476" class="line" name="L476">5ent">    5*/
mrline" name="L545"> 545    ! 5527" id="L527" class="line" name="L527"> 527        if ( 503cmd"  AS 2"> )ass="sref">i].5ee="L450"5> 470
 422         430OST" readr"L430" class="lid="L547" class="line" name="L5477;s", mrs[i].c5d)) {
);
cmd5/a>) - 1;
bu5fer);
 512l5ngth;
  5 } else {
 512;
mr64" class="line" name="L464"> 464static  514static void NCR5380_print(struct Scsi_Host  504    {0,  = 0;
 464static bane" n_ name541"> href="+code=NCR5380_print" class="sref">NCR5380_print(struct Scsi_Host  504    {0, ;
 = 0;
c5    }
    
 506}
bamain( * Function : void NCR5380_print(struct Scsi_Hosame="L4845> 484
l5h>
  5> 486
#if 1
     * various queu5ss="sref"5mask;
 510n5me;} 
 510c5span> }, 
 510 }, 
     * various queu5se="L483"5L}}, 
 512N5LL}},
},
 485#inclgfpmeun3_href="include/linux/delay.h" class="fref">l5SEL"5/span>}, 
 485#inclwork" nammeun3_href="include/linux/delay.h" class="fref">l5Scomment"5/span>}, 
 485#incl 467l5S_residua5LL}},
}, 
;} 
 50DECLARE_WOR > 422        bat" name=basr" class="sref">bat" namreadr"L430" class="lisref">bamaine=basr" class="sref">bamain class="sref">i].},
},
 464static  422tic oNCR5380.c#L439" id="L439" class="line" 6ION"6/span>}, 
6="sref">N6LL}};
 * 505
bamain(  not elus
-&Function : void NCR5380_print(struct Scsi_Ho6"8omment"6/span>}, 

 512
bat" name=basr" class="sref">bat" namreadss="sref">i].

bamain(  will pick up class="line" name="L512"> 512
 512 513
N6ce) {
i;
6lags;
 464i_Host" class="sr 464a>static baall_ine_a>sta2tic oNCR5380.c#L439" id="L439" class="line" 6ame="L5176> 517
f6ags);
);
 *STATUS6REG);
baall_ine_()printk" class="sref">printk(&qu6ref">MODE6REG);
();
);
f6ags);
st6tus);
6">i) 
 512)
bane" n_opss="s 7 * Function : void NCR5380_print(struct Scsi_Ho6s="sref">6ame);
6asr);
STATUS6">i) 
     * various queu6ss="sref"6mask)
     * various queu6s_COMMAND6ame);
 467     * various queu6sD_STATUS6icr);
 512i) 
)
bane" n_opss="sa>sta2 href="+code=NCR5380_print" class="sref">NCR5380_print(struct Scsi_HoNCR5380.c#L439" id="L439" class="line" 6s="sref">6ame);
mr);
 541    6">i) 
)
6ame);
);
  class="line" nREAL3"> un3_NCR5380.c#L505" id="L505" class="line" 6me="L542"6 542}
MR_DMANCR5380.c#L505" id="L505" class="line" 6mD_STATUS6> 543
 503" namun3_NCR5380.c#L505" id="L505" class="line" 6ms="sref"6alue;
6name;
NCR538UPPORT_TAGSun3_NCR5380.c#L505" id="L505" class="line" 6m="sref">6},
 446    }
}
printk(&qu6ame="L4516> 451
 541    baPUBLIC_RELEASE class="line" nsref">baPUBLIC_RELEASEreadss="sref">i].
 512
 50_7"> 52 7 * Function : void NCR5380_print(struct Scsi_Ho6"s="sref"6d)
6e 
baabort 53dmsref">balass=/posa nalass="com68     * various queu6 the buff6r.
 510
 467 510 5126*/
NCR5380_print(struct Scsi_HoNCR5380.c#L439" id="L439" class="line" 6ass="sref6>cmd)
{
i].6* 
NCR53ef"raun3_s="sref">i].i].6d.
    6*/
 50sDEBUe_ANmreadss="sref">i]. 470
 422         50sDEBUe_ANmreadss="sref">i].);
i]. *bu6fer);
 541    printk(&qu6="sref">l6ngth;
printk(&qu6=omment">6 } else {
;
 422        Scsi_Hr"L430" class="lidL_bfass="line" name=pr_bfaun3_,            NCR53ef"raun3_, 80.c#L504" id="L50PAGE_SIZ"line" name="L52PAGE_SIZ"un3_, 8sref">printk(&qu6=="sref">6 = 0;
;
 541     = 0;
    
}
 512l6h>
 512  6> 486
 512[dtc pas16 t128 gener38]/[0-ASC_NUM_BOARD_8UPPORTED] class="line" name="L512"> 512#if 1
 5126 struct {
 512;
 467 512;} 
 512 }, 
 512 }, 
 512}}, 
 512}},
 512l6},
 512  6/span>}, 
 512}, 
 5126LL}},
NCR538PRINTFun3_"line" name="L512"> 512}, 
NCR538PRINTFun3_+code=local_irq_rmass="sref">NCR53rmaun3_,code=local_irq_artore" class="srefartoun3_...) \"line" name="L512"> 512;} 
sta+5380.c#L525" id="Lr"en"line" name="L4"Lr"enun3_+code=local_irq_rmass="sref">NCR53rmaun3_)a+52053CR5380.c#L457" id="L4claslop12" class=c#L48printk(NCR53buffer csta+5380.c#L525" id=length"line" name="L4lengthun3_)a\"line" name="L512"> 512 }, 
sta+ 520    str"L430" class="lirmass="sref">NCR53rmaun3_ , ##"L430" class="liartore" class="srefartoun3_); }="L5le(0oNCR5380.c#L439" id="L439" class="line" 7 BSY"7},
}}, 
(struct str"L546" id="L546" class ufferss="sref">NCR53buffer cst3MDOUT, "C7="sref">N7LL}};

 422 href="+code=NCR5380_print" class="sref">NCR5380_print(struct Scsi_Hr"L546" id="L546" class ufferss="sref">NCR53buffer cst3MDOUT, "C7=8omment"7/span>}, 
NCR53ef"raun3_r"L430" class="lioff_ass="sref">NCR53off_aun3_NL430" class="lioffseass="sref">NCR53offseaun3_r"380.c#L437" id="L43length"line" name="L4lengthun3_r"380.c#L437" id="L43inouti_Host" class="sroutsi_HoNCR5380.c#L439" id="L439" class="line" 7"comment"7 *
st> 520    NCR53buffer cst"NCR5380.c#L439" id="L439" class="line" 7"comment"7 *
(struct 
(struct 
 513
NCR53off_aun3_NL430" class="libegin"line" name="L4begina>st> 58"NCR5380.c#L439" id="L439" class="line" 7h"sref">N7ce) {
NCR53check_offsea> 422)5380.c#L555555555555555555\"line" name="L512"> 512i;
 512;
sta-printk(NCR53buffer csta#L48printk(NCR53offseaun3_a-printk( 512 517
sta-printk(NCR53buffer cst;..............\"line" name="L512"> 512);
st> 520    NCR53buffer cst".......................\"line" name="L512"> 512);
 512STATUS7REG);
MODE7REG);
);
(st)ruct Scsi_H-hrefruct );
f7ags);
 512st7tus);
NCR53ENOSYSun3_); .3CR5380.c#L457" id="L4claCurrd="lyse is"ls"a no-op12" class="line" name="L512"> 512i) 
)
NCR538PRINTFun3_+c541    baPUBLIC_RELEASE class="line" nsref">baPUBLIC_RELEASEreadss="sref">i].7ame);
NCR53check_offsea> 422)s="sref">i].7asr);
i].STATUS7">i) 
NCR538PRINTFun3_+c541        printk(&qu7ss="sref"7mask)
NCR53check_offsea> 422)s="sref">i].);
NCR53connectedsi_HoNCR5380.c#L439" id="L439" class="line" 7sD_STATUS7icr);
NCR538PRINTFun3_+c541     430OST" read(i) 
st7mask)
st> 520    (st)514" id="L514" chostdataline" name="L52hostdata/a>(-hrefruct NCR53connectedsi_H3MDOUT, "C7s="sref">7ame);
str"L430" class="li ufferss="sref">NCR53buffer cst3.c#L437" id="L43length"line" name="L4lengthun3_)"NCR5380.c#L439" id="L439" class="line" 7ass="sref7>mr);
NCR538PRINTFun3_+c541     430OST" read(7">i) 
NCR53check_offsea> 422)s="sref">i].)
(st)514" id="L514" chostdataline" name="L52hostdata/a>(-hrefruct  520    7ame);
st> 520    str"L430" class="li ufferss="sref">NCR53buffer cst3.c#L437" id="L43length"line" name="L4lengthun3_)"NCR5380.c#L439" id="L439" class="line" 7me="L542"7 542}
NCR53check_offsea> 422)s="sref">i]. 543
;
NCR538PRINTFun3_+c541     430OST" read(7name;
NCR53check_offsea> 422)s="sref">i].(st)514" id="L514" chostdataline" name="L52hostdata/a>(-hrefruct i].7},
 520     * 447    }
st> 520    str"L430" class="li ufferss="sref">NCR53buffer cst3.c#L437" id="L43length"line" name="L4lengthun3_)"NCR5380.c#L439" id="L439" class="line" 7me="L450"7 450}
NCR53check_offsea> 422)s="sref">i].
i].NCR53ef"raun3_> 520    NCR53buffer cst + (code=local_irq_offseass="sref">NCR53offseaun3_a-printk(i].
sta-printk(NCR53buffer csta#L48printk(NCR53offseaun3_a-printk(i].7d)
sta-printk(NCR53buffer csta- (code=local_irq_offseass="sref">NCR53offseaun3_a-printk(7e 
sta-printk(NCR53buffer csta- (code=local_irq_offseass="sref">NCR53offseaun3_a-printk(

7*/
(struct str"L546" id="L546" class ufferss="sref">NCR53buffer cst3MDOUT, "C7ame="L4637> 463
"C7ame="L4547>cmd)
{
7* 
NCR53co  * I cst"NCR5380.c#L439" id="L439" class="line" 7css="sref7e 
NCR538PRINTFun3_+c541    7d.
 430_" read(code=local_irq_cmtatus" class="srcmta>st)3.c#L437" id="L43cmtatus" class="srcmta>st-hrefruct     7*/
NCR538PRINTFun3_+c541    printk(&qu7ee="L450"7> 470
NCR53co  * I cst> 520    printk(&qu7eme="L4517d)) {
NCR538PRINTFun3_+c541    NCR53co  * I cst[0]r"L430" class="li    * Iss="sref">NCR53co  * I cst[0]sref">printk(&qu7eomment">7cmd);
 520    NCR53co  * I cst[0]sr.c#L437" id="L43ii_Host" class="s csta#L48printk("C7eme="L4637/a>) - 1;
NCR538PRINTFun3_+c541    NCR53co  * I cst[c#L437" id="L43ii_Host" class="s cst]sref">printk(&qu7eme="L4547fer);
NCR538PRINTFun3_+c541    printk(&qu7="sref">l7ngth;
stref">printk(&qu7=omment">7 } else {
;
 5127 = 0;
;
 510 = 0;
 * Function : void NCR5380_print(struct Scsi_Ho7sme="L4517    }
     * various queu7ss="sref"72    
 53dmcorrespon/com s="l chip68     * various queu7me="L483"7 483}
     * various queu7mme="L4547> 484
 510l7h>
     * various queu7momment">7> 486
     * various queu7mcomment"7#if 1
 5107 struct {
 510;
 512;} 
 512 }, 
baine_a>st2 href="+code=NCR5380_print" class="sref">NCR5380_print(struct Scsi_Hr"380.c#L437" id="L43rlatore" class="srefrlato cst)"line" name="L512"> 512 }, 
}}, 
printk(&qu7sme="L4847LL}},
Scsi_Horef">printk(&qu7s"sref">l7},
  7/span>}, 
baall_ine_e=basr" class="sref">baall_ine_a>st2)s="sref">i].}, 
 5127LL}},
NCR53aborted cst> 58"NCR5380.c#L439" id="L439" class="line" 8GET"8/span>}, 
(Scsi_H-hrefruct printk(&qu8G1T"8/e;} 
 58"NCR5380.c#L439" id="L439" class="line" 8G2T"8/pan> }, 
 512},
 512}}, 
|53380.c#L520" id=ii_Host" class="s cstref">printk(&qu8="sref">N8LL}};
"C8ame="L5058> 505
NCR53busy cst[c#L437" id="L43ii_Host" class="s cst]> 58"NCR5380.c#L439" id="L439" class="line" 8G7e="L5058>span>}, 
NCR538UPPORT_TAGSun3_NCR5380.c#L505" id="L505" class="line" 8="sref">N8/span>}, 
i].

  class="line" nREAL3"> un3_)MDOUT, "C8"comment"8 *
 58"NCR5380.c#L439" id="L439" class="line" 8"2T"880

 513
NCR53connectedsi_H> 520    printk(&qu8h"sref">N8ce) {
 520    printk(&qu8hme="L5058f">i;
 520    printk(&qu8h7e="L5058lags;
printk(&qu8h"sref">N8> 517
 512);
Scsi_H-hrefruct printk(&qu8f">STATUS8REG);
Scsi_Href">printk(&qu8f2T"8REG);
);
);
f8ags);
);
Scsi_H-hrefruct Scsi_H-hrefruct , "C8"comment"8">i) 
 541    /com     * Is"enable"t;scsi%d: fMDOUT, "C8""sref">N8mask)
"C8"comment"8ame);
eare".t;scsi%d: fr"L430" class="linOST" name="L430"> 430OST" read(8asr);
 512STATUS8">i) 
 512)
bawritmline" name="L52sref">bawritmread(code=local_irq_INITIATOR_COMMAND_REGline" name="L52INITIATOR_COMMAND_REGsi_Hr"code=local_irq_ICR_BASE class="line" nICR_BASEread(bawritmline" name="L52sref">bawritmread(code=local_irq_MODE_REGline" name="L52MODE_REGsi_Hr"code=local_irq_MR_BASE class="line" nMR_BASEread(bawritmline" name="L52sref">bawritmread(code=local_irq_TARGET_COMMAND_REGline" name="L52TARGET_COMMAND_REGsi_Hr"8sref">printk(&qu8lass="sre8">i) 
bawritmline" name="L52sref">bawritmread(code=local_irq_SELECT_ENABLE_REGline" name="L52SELECT_ENABLE_REGsi_Hr"8sref">printk(&qu8lme="L5058mask)
8ame);
8">i) 
)
baexe_e=basr" class="sref">baexe_a>st2 href="+code=NCR5380_print" class="sref">NCR5380_print(struct Scsi_H)MDOUT, "C8s="sref">8ame);
 512}
 543
 510;
ba" nam_co  * I>2 href="="L4_cmnt *cmd," class="line" name="L510"> 5108name;
 5128},
 512 448    }
 5128 450}
 512 451
     * various queu8PORT_TAGS8*/
     * various queu8PD_STATUS8> 453
     * various queu8Pass="sre8> 454
 512
 5128d)
 512
 5128e 
     * various queu8 the buff8r.
 512
 5128*/
 512 463
st2 href="+code=NCR5380_p="L4_cmntatus" class="sr="L4_cmnt/a>(struct  512(st))MDOUT, "C8me="L465"8 465{
8* 
NCR53hnt(sref">printk(&qu8css="sref8e 
(struct printk(&qu8c="sref">8d.
    8*/
 470
, "C8eme="L4518d)) {
8cmd);

 *);
 9" id="L539" cKERN_NOTICE class="line" nKERN_NOTICEun3_N 541    l8ngth;
 430_" read(code=local_irq_cmtatus" class="srcmta>st)sref">printk(&qu8=omment">8 } else {
NCR53useulaun3_> 5(code=local_irq_DID_ERRORss="sref">NCR53DID_ERROR csta#L48#L48p16sref">printk(&qu8=ss="sref8NULL;
printk(&qu8=="sref">8 = 0;
;
 = 0;
 512    }
    
}
NCR53ef="+codSTATSun3_NCR5380.c#L543" id="L543" class="line" 8mass="sre8> 484
l8h>
NCR53connectedsi_Ha#ampr#ampr.c#L440" id="L440hostdataline" name="L52hostdata/a>(-hrefruct #ampr#amprNCR5380.c#L543" id="L543" class="line" 8momment">8> 486
 *#if 1
8 struct {
;
;} 
, "C8ss="sref"8span> }, 
}}, 
 *l8},

 *}, 

 *8LL}},
printk(&qu9GET"9/span>}, 
printk(&qu9G1T"9/e;} 
/comw class="line" nae>/comw/a>(++ref">printk(&qu9G2T"9/pan> }, 
printk(&qu9G3T"9/pan> }, 
 *
 *printk(&qu9G7SY"9}, 
printk(&qu9G8SY"9}, 
/comass="line" name=pe>/coma/a>(++ref">printk(&qu9G9SY"9}},
printk(&qu9ing purpo9es



 510 513
 467"" class="line" name="L510"> 510) {
 510i;
 512;
 512 517
printk(&qu9ccomment"9ags);
 520    printk(&qu9SCSI_DATA9REG);
STATUS9REG);
NCR53useulaun3_> 58"NCR5380.c#L439" id="L439" class="line" 9f2T"9REG);
);
);
 510f9ags);
 510);
 5dded pose : heatlofse : " nam"sit"> 53y co  * I>will" class="line" name="L510"> 510i) 
 512N9mask)
whilese : con/css=" exists68     * various queu9"comment"9ame);
 5129asr);
STATUS9">i) 
i].)
     * various queu9s_COMMAND9ame);
bae=in may steal=e : lock68     * various queu9s4SY"9icr);
     * various queu9lass="sre9">i) 
  .c. Ifswe/innert first,=e :n itrin9;s impossible0forse is""comme8     * various queu9l6SY"9mask)
     * various queu9s7e="L5059ame);
whileswaitcom forse : lock, orseimeoute8     * various queu9s"sref">N9>mr);
doesnrin9;t8     * various queu9scomment"9">i) 
     * various queu9ss="sref"9mask)
 5109ame);
 512);
     * various queu9me="L542"9 542}
 512 543
 *i].;
i]. 520    i].N9/a>[] = {
},
(st)39" id="L539" chostdataline" name="L52hostdata/a>(-hrefruct i]. 449    }
9 450}
i]. 451
i].
printk(&qu9PD_STATUS9> 453

i].9d)
 512
5dded poslass=slofs" namt;scsi%d: fr"L430" class="lin_" name="L430"> 430_" read(code=local_irq_cmtatus" class="srcmta>st)rNCR5380.c#L439" id="L439" class="line" 9a="sref">9e 
        printk(&qu9 the buff9r.

 512 5bout e=in. Ifsit8     * various queu9comment">9*/
     * various queu9 D_STATUS9> 463
     * various queu9 ass="sre9>cmd)
bae=in( * Function : void NCR5380_print(struct Scsi_Ho9me="L465"9 465{
     * various queu9 ="sref">9* 
 512
9d.
printk(&qu9ent">    9*/
printk(&qu9ee="L450"9> 470
bae=inline" name="L52eref">bae=inread(code=local_irq_eULLe=basr" class="sULL cst)ref">printk(&qu9eme="L4519d)) {
9cmd);
) - 1;
ba" nam_co  * I cst)NCR5380.c#L484" id="L484" class="line" 9ee="L465"9ngth;
9 } else {
     * various queu9=ss="sref9NULL;
bae=in (e" n) melass="line" name="L512"> 5129 = 0;
 512;
bae=in ls"a coroutcoe"lass=runs as 6" i"as mor> work c538melass="line" name="L512"> 512 = 0;
b host adap67 512    }
ba" nam_co  * I() * I>eref">ba 46r() willstry posef"rasi0.melass="line" name="L512"> 51292    
     * various queu9me="L483"9 483}
     * various queu9mass="sre9> 484
bae=in exe_sawith  467     * various queu9me="L465"9h>
     * various queu9momment">9> 486
     * various queu9mss="sref9#if 1
     * various queu9m="sref">9 struct {
bae=inline" name="L52eref">bae=inread5( href="+code=NCR5380_pwork_ href=line" name="L52work_ href=/a>(st+code=NCR5380_pblline" name="L52bl cst)NCR5380.c#L484" id="L484" class="line" 9ss="sref"9mask;
;} 
(struct i].NCR5380_print(struct Scsi_H> 5code=local_irq_first_code=Scsi_Host" class="first_code=Scsun3_s="sref">i].9span> }, 
bahostdataline" name="L52eref">bahostdata/a>(struct Scsi_H)s="sref">i].}}, 
printk(&qu9sass="sre9LL}},
l9},
9/span>}, 
     * various queu9Scomment"9/span>}, 
     * various queu9S="sref">9LL}},
 4608     * various queu10GET"10GET&a>}},
     * various queu10G1T"10Ge;} 
     * various queu10G2T"10Gpan> }, 
 docom.various o"her  467     * various queu10G3T"10Gpan> }, 
 decided p a0.w: need posrun through class="line" name="L512"> 512}}, 
 512}},
 512},
 512}, 
 512}, 
 510}},
 510
     * various queu10e1T"10 *
 512

 512 513
 512) {
 512i;
>10esun3_NCR5380.c#L456" id="L451111  task " nam,sit>doesnrin9;tldosa3y harm, just e is"lnne" na =f0e=inrelass="line" name="L512"> 512;
 512 517
);
);
);
);
i].);
10R4un3_NCR5380. 80.c#L518" id=local_irq_disableline" name="L52local_irq_disableread()r53CR5380.c#L455" id="L4/*"Freeze.re" nst/" nams"*" class="line" name="L512"> 512);
);
i) 
i>10R7un3_NCR5380.c#L5c#L440" id="L440hostdataline" name="L52hostdata/a>(-hrefruct NCR53connectedsi_Hs5t *10Rsun3_NCR5380.c#L5ruct  430OST" un3_N)s="sref">i].);
     * various queu103ET"10asr);
destcoeI class="line" name="L512"> 512i) 
i>10asun3_NCR5380.c#L511" id="L511111   01111* 380.a target lassrin9;s not busy68     * various queu1032T"10mask)
 512);
NCR53eDEBUG_LISTS cst)NCR5380.c#L484" id="L484" class="line" 1034T"10icr);
(st).39" id="L539" chostdataline" name="L52hostdata/a>(-hrefruct i].i) 
i>10asun3_NCR5380..........#L538" id="L538tmpline" name="L52tmpsi_H>#ampr#ampr.c#L538" id="L538tmpline" name="L52tmpsi_H>! 5code=local_irq_prevline" name="L52prev cstsr.c#L437" id="L43prevline" name="L52prev cst> 5code=local_irq_tmpline" name="L52tmpsi_Hr"L430" class="litmpline" name="L52tmpsi_H> 5code=local_irq_eEXTline" name="L52eEXTsi_H(code=local_irq_tmpline" name="L52tmpsi_HssNCR5380.c#L470" id="L470" class="line" 10a6T"10mask)
i].);
 541     512mr);
i) 
i>10a9un3_NCR5380.c#L5380.c#L538" id="L538tmpline" name="L52tmpsi_H> 5( href="+code=NCR5380_p="L4_cmntatus" class="sr="L4_cmnt/a>(st).39" id="L539" chostdataline" name="L52hostdata/a>(-hrefruct )
10m1un3_NCR5380.c#L470" id="L470" class="line" 1042T"10);
NCR53eDEBUG_LISTS cst)NCR5380.c#L484" id="L484" class="line" 1043T"10 542}
 543
 541    ;
i].;
[] = {
ona, removesi0.from0e : sssue " nam."*" class="line" name="L512"> 512},
 512    }
 512}
NCR53SUPPORT_TAGSun3_NCR5380.c#L470" id="L470" class="line" 1052T"10> 451

printk(&qu10<4T"10> 453
 454

10 512
 512
10r.un3_NCR5380........5........code=local_irq_REMOVE class="line" nREMOVEsi_H(code=local_irq_prevline" name="L52prev cstr"code=local_irq_eEXTline" name="L52eEXTsi_H(code=local_irq_prevline" name="L52prev cstsr"L430" class="litmpline" name="L52tmpsi_Hr"code=local_irq_eEXTline" name="L52eEXTsi_H(code=local_irq_tmpline" name="L52tmpsi_Hssr"line" name="L512"> 512
 512
10r3un3_NCR5NCR5c#L5............code=local_irq_REMOVE class="line" nREMOVEsi_H(-1r"code=local_irq_hostdataline" name="L52hostdata/a>(-hrefruct  512 463
 5code=local_irq_eEXTline" name="L52eEXTsi_H(code=local_irq_tmpline" name="L52tmpsi_Hsr"line" name="L512"> 512cmd)
{
printk(&qu10r7T"10* 
printk(&qu10r8T"10e 
 512
i].
printk(&qu1071T"10> 470
 510)) {
 510);
     * various queu1074T"10/a>) - 1;
b"ck pose :8     * various queu1075T"10fer);
"" class="line" name="L510"> 510;
 512forsearget lass=d scsi%d: f"line" name="L512"> 512;
 = 0;
 430OST" un3_r"L430" class="litmpline" name="L52tmpsi_H-hrefruct i].;
 510 = 0;
 sssued without taggeI class="line" name="L512"> 512    }
 512    
 512}
 unit68     * various queu1085T"10> 484
 512>
s lass class="line" name="L512"> 512 486
 untaggeI68     * various queu1088T"10#if 1
 512 512;
NCR53SUPPORT_TAGSun3_NCR5380.c#L470" id="L470" class="line" 1091T"10me;} 
i]. }, 
 }, 
baselef=line" name="L52eref">baselef=si_H(code=local_irq_code=Scsi_Host" class="sref">Scsi_Hr"L430" class="litmpline" name="L52tmpsi_Hr"CR5380.c#L483" id="L483" class="line" n1094T"10L}}, 
    }},
10m6un3_NCR5380........5........breaks="sref">i].}, 
10msun3_NCR5380.c#L555555555....c80.c#L518" id=local_irq_disableline" name="L52local_irq_disableread()r"line" name="L512"> 512}},
 512}},
 512;} 
 5code=local_irq_tmpline" name="L52tmpsi_Hr"line" name="L512"> 512 }, 
NCR53SUPPORT_TAGSun3_NCR5380.c#L470" id="L470" class="line" 11G3T"11Gpan> }, 
i].}}, 
}},
i].},
 512}, 
 430OST" un3_)s="sref">i].}, 
NCR53connectedsi_Hs="sref">i].}},
i].

 512
 512
 512 513
NCR53connectedsi_H"CR5380.c#L483" id="L483" class="line" n11e5T"11ce) {
i;
>1116un3_NCR5380.....#ampr#ampr.c#L440" id="L440hostdataline" name="L52hostdata/a>(-hrefruct ;
 517
1119un3_NCR5380.c#L5N80.c#L518" id=local_irq_useformline" name="L52local_irq_useformsi_H(code=local_irq_rlatore" class="srefrlato cst)s="sref">i].);
);
 430OST" un3_)s="sref">i].);
bainformass="_transferline" name="L52eref">bainformass="_transfersi_H(code=local_irq_code=Scsi_Host" class="sref">Scsi_H)s="sref">i].);
 430OST" un3_)s="sref">i].);
);
);
i].i) 
i>1127un3_"line" name="L512"> 512)
 512);
 512);
 512i) 
i>113sun3_NCR53L440" id="L440e=in_runncomre" class="srefe=in_runncom cst = 8"NCR5380.c#L439" id="L439" class="line" 1132T"11mask)
i].);
);
i) 
i>11asun3_NCR5380.c#L484" id="L484" class="line" 1136T"11mask)
);
     * various queu1138T"11>mr);
badma_8" plete5( href="Sc_print< *sref">Sc * Function : void NCR5380_print(struct Scsi_Ho1139T"11">i) 
i>113sun3_NCR5380.c#L509" id="L509melass="line" name="L512"> 512)
 512);
"" class="line" name="L510"> 510);
 510}
b68     * various queu1144T"11> 543
     * various queu1145T"11 struct {
 512;
;
badma_8" pleteline" name="L52eref">badma_8" pleteread(N href="+code=NCR5380_print" class="sref">NCR5380_print(struct Scsi_H>s="sref">i].[] = {
11m9un3_NCR5code=local_irq_SETUP_0OSTDAT  class="line" nSETUP_0OSTDAT si_H(code=local_irq_code=Scsi_Host" class="sref">Scsi_H)s="sref">i].    }
NCR53transferedsi_Hr"line" name="L512"> 512}
 512 451
NCR53couna/a>(r"line" name="L512"> 512
 512 453
NCR53connectedsi_Hs5t * 4>115sun3_NCR5380.39" id="L539" cpr541" class="line" name="L541"> 9" id="L539" cKERN_WARNINGline" name="L52KERN_WARNINGun3_N 541     512
 430OST" un3_)s="sref">i].




 430OST" un3_r"code=local_irq_eref">bareatline" name="L52eref">bareat541"> 9" id="L539" cBUS_AND_STATUS_REGline" name="L52BUS_AND_STATUS_REGun3_)rNCR5380.c#L439" id="L439" class="line" 1162T"11t.
bareatline" name="L52eref">bareat541"> 9" id="L539" cSTATUS_REGline" name="L52STATUS_REGun3_))s="sref">i].
 512 463
 9" id="L539" crq_data_dirline" name="L52rq_data_dir541"> 9" id="L539" chostdataline" name="L52hostdata/a>(-hrefruct NCR53connectedsi_H-hrefruct  *cm>11rsun3_NCR5380.....39" id="L539" cpr541" class="line" name="L541"> 541     430OST" un3_)s="sref">i].{
 541    i].
 541    i].
 512

 470
data phase09" class="line" name="L512"> 512)) {
bareatline" name="L52eref">bareat541"> 9" id="L539" cBUS_AND_STATUS_REGline" name="L52BUS_AND_STATUS_REGun3_) #ampr.c#L538" id="L538BASR_PHASE_MATCHline" name="L52BASR_PHASE_MATCHun3_N|"line" name="L512"> 512);
 512) - 1;
117sun3_NCR5380.....39" id="L539" cpr541" class="line" name="L541"> 541     430OST" un3_r"code=local_irq_eref">bareatline" name="L52eref">bareat541"> 9" id="L539" cBUS_AND_STATUS_REGline" name="L52BUS_AND_STATUS_REGun3_))r"line" name="L512"> 512;
 541     512 430OST" un3_)s="sref">i].;
 541    i]. = 0;
 541    i].;
 541    i]. = 0;
 512    }
    
 512}
 484
>
bareatline" name="L52eref">bareat541"> 9" id="L539" cRESET_PARITY_INTERRUPT_REGline" name="L52RESET_PARITY_INTERRUPT_REGun3_)s="sref">i]. 486
bawriteline" name="L52eref">bawrite541"> 9" id="L539" cMODE_REGline" name="L52MODE_REGun3_r"code=local_irq_MR_BASE class="line" nMR_BASEun3_)s="sref">i].#if 1
bawriteline" name="L52eref">bawrite541"> 9" id="L539" cINITIATOR_COMMAND_REGline" name="L52INITIATOR_COMMAND_REGun3_r"code=local_irq_ICR_BASE class="line" nICR_BASEun3_)s="sref">i].;
NCR53transferedsi_H> 5code=local_irq_hostdataline" name="L52hostdata/a>(-hrefruct badma_residualline" name="L52eref">badma_residualsi_H(code=local_irq_code=Scsi_Host" class="sref">Scsi_H)s="sref">i].;} 
 }, 
 }, 
NCR53connectedsi_H-hrefruct i].}}, 
NCR53couna/a>(> 5#ampr> 9" id="L539" chostdataline" name="L52hostdata/a>(-hrefruct NCR53connectedsi_H-hrefruct i].}},
NCR53transferedsi_Hr"line" name="L512"> 512},
NCR53couna/a>( - 5code=local_irq_transferedss="sref">NCR53transferedsi_Hr"line" name="L512"> 512}, 
 512}, 
}},
 512}},
;} 
 }, 
     * various queu12G3T"12Gpan> }, 
bae="r ( 46 irq * Function : void NCR5380_print(struct Scsi_Ho12G4T"12G}}, 
 510}},
 510},
bae=in()"" class="line" name="L510"> 510}, 
I68     * various queu12G8T"12Gspan>}, 
     * various queu12G9T"12GL}},
     * various queu121ET"12es
     * various queu1211T"12 *
 512

NCR53crqreturn_aun3_N 80.c#L520" id=sref">bae="rline" name="L52eref">bae="run3_N( 46 code=local_irq_crqss="sref">NCR53crqun3_r"e" natruct  513
121sun3_NCR5 href="+code=NCR5380_print" class="sref">NCR5380_print(struct Scsi_H> 5code=local_irq_first_code=Scsi_Host" class="first_code=Scssi_Hr"line" name="L512"> 512i;
>1216un3_NCR5 46 code=local_irq_donmline" name="L52donmsi_H = 1r"code=local_irq_ha3dl7tatus" class="srha3dl7tun3_ = 8"NCR5380.c#L439" id="L439" class="line" 12e7T"12lags;
 512 517
 512);
 541     430OST" un3_)s="sref">i].);
);
 512);
bareatline" name="L52eref">bareat541"> 9" id="L539" cBUS_AND_STATUS_REGline" name="L52BUS_AND_STATUS_REGun3_)s="sref">i].);
 541     430OST" un3_r"code=local_irq_basratus" class="srbasrsi_H)s="sref">i].);
 512);
1226un3_NCR5380.code=local_irq_ere_PRINTline" name="L52ere_PRINT541"> 9" id="L539" cNDEBUG_INTRline" name="L52eDEBUG_INTRsi_H)s="sref">i].i) 
i>122sun3_NCR5380.380.c#L538" id="L538eref">bareatline" name="L52eref">bareat541"> 9" id="L539" cSTATUS_REGline" name="L52STATUS_REGun3_) #ampr.c#L538" id="L538SR_SELe=basr" class="SR_SELun3_|#L538" id="L538SR_I name="L430"> 43SR_I un3_)) ==.c#L538" id="L538SR_SELe=basr" class="SR_SELun3_|#L538" id="L538SR_I name="L430"> 43SR_I un3_)) t *122sun3_NCR5380.c#L539" id="L539" cdonmline" name="L52donmsi_H = 8"NCR5380.c#L439" id="L439" class="line" 12R9T"12ame);
 512);
 541     430OST" un3_)s="sref">i].i) 
i>1231un3_NCR5380.c#L5 9" id="L539" ceref">bareselef=line" name="L52eref">bareselef=si_H(code=local_irq_code=Scsi_Host" class="sref">Scsi_H)s="sref">i].)
bareatline" name="L52eref">bareat541"> 9" id="L539" cRESET_PARITY_INTERRUPT_REGline" name="L52RESET_PARITY_INTERRUPT_REGun3_)s="sref">i].);
i].);
i) 
i>123sun3_NCR5380.....39" id="L539" cINT_PRINTKre" class="srefINT_PRINTK541"> 541     430OST" un3_)s="sref">i].)
bareatline" name="L52eref">bareat541"> 9" id="L539" cRESET_PARITY_INTERRUPT_REGline" name="L52RESET_PARITY_INTERRUPT_REGun3_)s="sref">i].);
i].mr);
bareatline" name="L52eref">bareat541"> 9" id="L539" cSTATUS_REGline" name="L52STATUS_REGun3_) #ampr.#L538" id="L538SR_RSTline" name="L52SR_RSTun3_) = 520    i) 
i>1239un3_NCR5380.c#L539" id="L539" cINT_PRINTKre" class="srefINT_PRINTK541"> 541     430OST" un3_)s="sref">i].)
bareatline" name="L52eref">bareat541"> 9" id="L539" cRESET_PARITY_INTERRUPT_REGline" name="L52RESET_PARITY_INTERRUPT_REGun3_)s="sref">i].);
i].);
1243un3_NCR5NCR5c#L5cCR5380.c#L455" id="L4/*""" class="line" name="L510"> 510 543
 510 510;
 512;
 512[] = {
 9" id="L539" cREAL_DM  class="line" nREAL_DM un3_)NCR5380.c#L439" id="L439" class="line" 1249T"12},
     * various queu125ET"12    }
 512}
 512 451
     * various queu1253T"12*/
 512 453
 454
bareatline" name="L52eref">bareat541"> 9" id="L539" cMODE_REGline" name="L52MODE_REGun3_) #ampr.#L538" id="L538MR_DM _MODEline" name="L52MR_DM _MODEun3_) #ampr#amprNCR5380.c#L484" id="L484" class="line" 1256T"12/*

125sun3_NCR5380.c#L555555555 *1259un3_NCR5380.c#L5555539" id="L539" cINT_PRINTKre" class="srefINT_PRINTK541"> 541     430OST" un3_)s="sref">i].
badma_8" pleteline" name="L52eref">badma_8" pleteread(Nruct Scsi_H>)s="sref">i].

 512
 512 463
 512cmd)
126sun3_NCR5380.c#L456" id="L4/*"MS: Ignor> unknown phase0mismasch  467 512
 512
 541     512

 430OST" un3_r"code=local_irq_basratus" class="srbasrsi_Hr"code=local_irq_eref">bareatline" name="L52eref">bareat541"> 9" id="L539" cMODE_REGline" name="L52MODE_REGun3_)rNCR5380.c#L439" id="L439" class="line" 1271T"12> 470
bareatline" name="L52eref">bareat541"> 9" id="L539" cSTATUS_REGline" name="L52STATUS_REGun3_))s="sref">i].)) {
bareatline" name="L52eref">bareat541"> 9" id="L539" cRESET_PARITY_INTERRUPT_REGline" name="L52RESET_PARITY_INTERRUPT_REGun3_)s="sref">i].);
) - 1;
 512);
;
i]. 512;
 512 = 0;
 512;
1281un3_NCR5380.c#L470" id="L470" class="line" 1282T"12    }
 9" id="L539" cKERN_NOTICEatus" class="srKERN_NOTICEun3_N 541     512    
 430OST" un3_r"code=local_irq_basratus" class="srbasrsi_Hr"line" name="L512"> 512}
bareatline" name="L52eref">bareat541"> 9" id="L539" cMODE_REGline" name="L52MODE_REGun3_)r539" id="L539" ceref">bareatline" name="L52eref">bareat541"> 9" id="L539" cSTATUS_REGline" name="L52STATUS_REGun3_))s="sref">i]. 484
bareatline" name="L52eref">bareat541"> 9" id="L539" cRESET_PARITY_INTERRUPT_REGline" name="L52RESET_PARITY_INTERRUPT_REGun3_)s="sref">i].>
 486
 512#if 1
;
;} 
1292un3_NCR5380.20     541     430OST" un3_)s="sref">i]. }, 
bae=in()"on0laei" nam..."*" class="line" name="L512"> 512}}, 
 43" namae=in541">)s="sref">i].}},
},
 9" id="L539" cha3dl7tatus" class="srha3dl7tun3_)s="sref">i].}, 
}, 
 512}},
baSTATSline" name="L52eref">baSTATSun3_"line" name="L512"> 512}},
 href="+code=NCR5380_peref">bahostdataline" name="L52eref">bahostdataun3_Ntruct  512;} 
 51_cmntatus" class="sr> 51_cmntun3_Ntruct NCR53cmtsi_H)NCR5380.c#L439" id="L439" class="line" 13G2T"13Gpan> }, 
130sun3_# 38def5380.c#L518" id=eref">baSTAT_LIMITline" name="L52eref">baSTAT_LIMITun3_"line" name="L512"> 512}}, 
 9" id="L539" ccmdss="sref">NCR53cmtsi_H) href5380.c#L518" id=eref">baSTAT_LIMITline" name="L52eref">baSTAT_LIMITun3_)NCR5380.c#L439" id="L439" class="line" 13G5T"13GL}},
},
NCR53cmtsi_H-hrefruct }, 
130sun3_NCR5380.c#L5case0ruct 1309un3_NCR5380.c#L5case0ruct 131.un3_NCR5380.....case0ruct  *1311un3_NCR5380.c#L5555539" id="L539" chostdataline" name="L52hostdata/a>(-hrefruct NCR53cmtsi_H-hrefruct i].
 512
(--s="sref">i]. 513
i].) {
i;
>1316un3_NCR5380.....case0ruct 131sun3_NCR5380.....case0ruct  * 5>131sun3_NCR5380.c#L5#L5539" id="L539" chostdataline" name="L52hostdata/a>(-hrefruct NCR53cmtsi_H-hrefruct i].);
 512);
i].);
i].);
);
);
);
);
 512i) 
i>132sun3_NCR5380.c#L457" id="L451" class="lin 46 eref">baselef=> href="80_print< *sref">Sc, class="line" name="L512"> 512)
 51_cmnt *cmt,n 46 tag)#37;d: f"line" name="L512"> 512);
     * various queu133ET"13asr);
 512i) 
i>133sun3_NCR5380.c#L511" id="L511555555incluIcom ARBITRATION, SELECTION, * I"initial message out.fors class="line" name="L512"> 512)
 512);
 512);
ScN-alnef">tiass="lof laein cl e="L51"on0which e iss class="line" name="L512"> 512i) 
i>133sun3_NCR5380.c#L455" id="L409""""""target l"L5s, cmtN-aSCSIa0" iand to execute, tagN-aset8to TAG_NEXT.fors class="line" name="L512"> 512)
 512);
     * various queu1338T"13>mr);
     * various queu1339T"13">i) 
i>133sun3_NCR5380.c#L509" id="L509"Returns :"-15c#Lselef=s="lcoulI0not executeNforssome"usason, class="line" name="L512"> 512)
 512);
     * various queu1342T"13);
     * various queu1343T"13 542}
     * various queu1344T"13> 543
baselef=>) will exit  class="line" name="L512"> 512 512;
 512;
     * various queu1348T"13/a>[] = {
     * various queu1349T"13},
     * various queu135ET"13    }
Sc-hrefconnected will b="set8to cmt.""" class="line" name="L510"> 510}
     * various queu1352T"13> 451
     * various queu1353T"13*/
 51_donm>) will b="called, and tae"" class="line" name="L510"> 510 453
     * various queu1355T"13> 454
 512
 512
baselef=line" name="L52eref">baselef=si_H( href="+code=NCR5380_print" class="sref">NCR5380_print(struct Scsi_H,5 href="+code=NCR5380_p> 51_cmntatus" class="sr> 51_cmntun3_Ntruct NCR53cmtsi_Hr"line" name="L512"> 512

136.un3_NCR5+code=NCR5380_prETUP_0OSTDAT  class="line" nrETUP_0OSTDAT 541"> 9" id="L539" ccode=Scsi_Host" class="sref">Scsi_H)s="sref">i].
i].
i].
i]. 463
NCR53timeoua541"s="sref">i].cmd)
i].{
 512

 9" id="L539" cNDEBUG_ARBITRATIONline" name="L52eDEBUG_ARBITRATIONsi_H)s="sref">i].
 541     5#ass="t;scsi%d: fr539" id="L539" cnOST" name="L430"> 430OST" un3_r="sref">i].
Scsi_H-hrefruct i]. 470
)) {
 512);
 510) - 1;
     * various queu1375T"13fer);
 512;
 512 9" id="L539" cflatore" class="srefflato541")s="sref">i].;
NCR53connected541").t *1379un3_NCR5380.#L538" id="L538local_irq_useforsi_Host" class="local_irq_usefors541"> 9" id="L539" cflatore" class="srefflato541")s="sref">i].;
 512 = 0;
    }
bawriteline" name="L52eref">bawrite541"> 9" id="L539" cTARGET_COMMAND_REGline" name="L52TARGET_COMMAND_REGsi_H,50)s="sref">i].    
i].}
 484
 512>
     * various queu1387T"13> 486
 512#if 1
 512bawriteline" name="L52eref">bawrite541"> 9" id="L539" cOUTPUT_DAT _REGline" name="L52OUTPUT_DAT _REGsi_H,5+code=NCR5380_phostdataline" name="L52hostdata/a>(-hrefruct i].;
bawriteline" name="L52eref">bawrite541"> 9" id="L539" cMODE_REGline" name="L52MODE_REGun3_,5+code=NCR5380_pMR_ARBITRATEatus" class="srMR_ARBITRATE541")s="sref">i].;} 
 }, 
 9" id="L539" cflatore" class="srefflato541")s="sref">i]. }, 
i].}}, 
 512}},
i].},
139sun3_NCR538380.c#L51long code=local_irq_timeouass="sref">NCR53timeoua541"> 5code=local_irq_jiffieore" class="srefjiffieoun3_N+ 2truct i].}, 
 512}},
bareatline" name="L52eref">bareat541"> 9" id="L539" cINITIATOR_COMMAND_REGline" name="L52INITIATOR_COMMAND_REG541").#ampr.#L538" id="L538ICR_ARBITRATION_PROGRESSline" name="L52ICR_ARBITRATION_PROGRESSun3_)NCR5380.c#L439" id="L439" class="line" 14GET"14GET&a>}},
 9" id="L539" cjiffieore" class="srefjiffieoun3_,5+code=NCR5380_ptimeouass="sref">NCR53timeoua541") #ampr#ampr c#L440" id="L440hostdataline" name="L52hostdata/a>(-hrefruct NCR53connected541")NCR5380.c#L439" id="L439" class="line" 14G1T"14Ge;} 
i]. }, 
 9" id="L539" cjiffieore" class="srefjiffieoun3_,5+code=NCR5380_ptimeouass="sref">NCR53timeoua541"))NCR5380.c#L439" id="L439" class="line" 14G3T"14Gpan> }, 
1404un3_NCR5380.L430" class="lipr541" class="line" name="L541"> 541    i].}},
bawriteline" name="L52eref">bawrite541"> 9" id="L539" cMODE_REGline" name="L52MODE_REGun3_,5+code=NCR5380_pMR_BASEatus" class="srMR_BASE541")s="sref">i].},
bawriteline" name="L52eref">bawrite541"> 9" id="L539" cSELECT_ENABLE_REGline" name="L52SELECT_ENABLE_REGsi_H,5+code=NCR5380_phostdataline" name="L52hostdata/a>(-hrefruct i].}, 
 512}, 
}},

 512
bareatline" name="L52eref">bareat541"> 9" id="L539" cINITIATOR_COMMAND_REGline" name="L52INITIATOR_COMMAND_REG541").#ampr.#L538" id="L538ICR_ARBITRATION_PROGRESSline" name="L52ICR_ARBITRATION_PROGRESSun3_)NCR5380.c#L439" id="L43
NCR53connected541")r"line" name="L512"> 512
 513
) {
 541     430OST" un3_)s="sref">i].i;
>1416un3_"line" name="L512"> 512;
NCR53connected541").t * 5>141sun3_NCR5380.20    bawriteline" name="L52eref">bawrite541"> 9" id="L539" cMODE_REGline" name="L52MODE_REGun3_,5+code=NCR5380_pMR_BASEatus" class="srMR_BASE541")s5"line" name="L512"> 512);
 512);
);
 512);
 512);
 512);
     * various queu1425T"14ags);
     * various queu1426T"14tus);
 512i) 
i>1427un3_"line" name="L512"> 512)
3)s="sref">i].);
i].);
 512i) 
i>143sun3_NCR5c#L5.code=local_irq_eref">bareatline" name="L52eref">bareat541"> 9" id="L539" cINITIATOR_COMMAND_REGline" name="L52INITIATOR_COMMAND_REG541").#ampr.#L538" id="L538ICR_ARBITRATION_LOSTline" name="L52ICR_ARBITRATION_LOST541").||"line" name="L512"> 512)
bareatline" name="L52eref">bareat541"> 9" id="L539" cCURRENT_SCSI_DAT _REGline" name="L52CURRENT_SCSI_DAT _REG541").#ampr.#L538" id="L538hostdataline" name="L52hostdata/a>(-hrefruct  512);
bareatline" name="L52eref">bareat541"> 9" id="L539" cINITIATOR_COMMAND_REGline" name="L52INITIATOR_COMMAND_REG541").#ampr.#L538" id="L538ICR_ARBITRATION_LOSTline" name="L52ICR_ARBITRATION_LOST541").||"line" name="L512"> 512);
NCR53connected541").t *i) 
i>1435un3_NCR5380.L430" class="lieref">bawriteline" name="L52eref">bawrite541"> 9" id="L539" cMODE_REGline" name="L52MODE_REGun3_,5+code=NCR5380_pMR_BASEatus" class="srMR_BASE541")s5"line" name="L512"> 512)
 541    );
 430OST" un3_)s="sref">i].mr);
 512i) 
i>1439un3_NCR5NCR5380.c#L483" id="L483" class="line" n144ET"14mask)
);
     * various queu1442T"14);
 512}
 512 543
bawriteline" name="L52eref">bawrite541"> 9" id="L539" cINITIATOR_COMMAND_REGline" name="L52INITIATOR_COMMAND_REG541",5+code=NCR5380_pICR_BASEatus" class="srICR_BASEun3_N|.#L538" id="L538ICR_ASSERT_SELe=basr" class="ICR_ASSERT_SELun3_N|"line" name="L512"> 512i].;
i].;
bareatline" name="L52eref">bareat541"> 9" id="L539" cINITIATOR_COMMAND_REGline" name="L52INITIATOR_COMMAND_REG541").#ampr.#L538" id="L538ICR_ARBITRATION_LOSTline" name="L52ICR_ARBITRATION_LOST541").||"line" name="L512"> 512[] = {
NCR53connected541").t *1449un3_NCR5380.#L538" id="L538eref">bawriteline" name="L52eref">bawrite541"> 9" id="L539" cMODE_REGline" name="L52MODE_REGun3_,5+code=NCR5380_pMR_BASEatus" class="srMR_BASE541")s *1450un3_NCR5380.#L538" id="L538eref">bawriteline" name="L52eref">bawrite541"> 9" id="L539" cINITIATOR_COMMAND_REGline" name="L52INITIATOR_COMMAND_REG541",5+code=NCR5380_pICR_BASEatus" class="srICR_BASEun3_)s *1451un3_NCR5380.#L538" id="L538ARB_PRINTKre" class="srefARB_PRINTK541"> 541     451
 430OST" un3_)s="sref">i].
 512 453
 454

 512
 512
 512
 512


 512
15)s="sref">i]. 463
i].cmd)
2)s="sref">i].{


NCR53connected541").t *1469un3_NCR5380.#L538" id="L538eref">bawriteline" name="L52eref">bawrite541"> 9" id="L539" cMODE_REGline" name="L52MODE_REGun3_,5+code=NCR5380_pMR_BASEatus" class="srMR_BASE541")s *1470un3_NCR5380.#L538" id="L538eref">bawriteline" name="L52eref">bawrite541"> 9" id="L539" cINITIATOR_COMMAND_REGline" name="L52INITIATOR_COMMAND_REG541",5+code=NCR5380_pICR_BASEatus" class="srICR_BASEun3_)s * 4>1471un3_NCR5380.return.-1r"line" name="L512"> 512)) {
);
i].) - 1;
 541     430OST" un3_)s="sref">i].);
;
 512 512;
     * various queu1479T"14 = 0;
 512;
 = 0;
bawriteline" name="L52eref">bawrite541"> 9" id="L539" cOUTPUT_DAT _REGline" name="L52OUTPUT_DAT _REGsi_H,55+code=NCR5380_phostdataline" name="L52hostdata/a>(-hrefruct NCR53cmtsi_H-hrefruct i].    }
i].    
 512}
 512 484
 512>
     * various queu1487T"14> 486
 512#if 1
 512bawriteline" name="L52eref">bawrite541"> 9" id="L539" cINITIATOR_COMMAND_REGline" name="L52INITIATOR_COMMAND_REG541",5> 9" id="L539" cICR_BASEatus" class="srICR_BASEun3_N|.#L538" id="L538ICR_ASSERT_BSYe=basr" class="ICR_ASSERT_BSYun3_N|5CR5380.c#L483" id="L483" class="line" n149ET"14mask;
i].;} 
bawriteline" name="L52eref">bawrite541"> 9" id="L539" cMODE_REGline" name="L52MODE_REGun3_,5+code=NCR5380_pMR_BASEatus" class="srMR_BASE541")s *1492un3_="sref">i]. }, 
 512}}, 
 512}},
     * various queu1496T"14},
 512}, 
 512}, 
NCR53connected541").t *1499un3_NCR5380.#L538" id="L538eref">bawriteline" name="L52eref">bawrite541"> 9" id="L539" cINITIATOR_COMMAND_REGline" name="L52INITIATOR_COMMAND_REG541",5+code=NCR5380_pICR_BASEatus" class="srICR_BASEun3_)s *150.un3_NCR5380.return.-1r"line" name="L512"> 512;} 
 }, 
i]. }, 
bawriteline" name="L52eref">bawrite541"> 9" id="L539" cSELECT_ENABLE_REGline" name="L52SELECT_ENABLE_REGsi_H,50)s="sref">i].}}, 
}},
 512},
 512}, 
     * various queu15G8T"15Gspan>}, 
 512}},
1);NCR5380.#CR5380.c#L456" id="L4/*"wcomel -- waia two bus deskewldelay href2*45ns18" class="line" name="L512"> 512

 512
bawriteline" name="L52eref">bawrite541"> 9" id="L539" cINITIATOR_COMMAND_REGline" name="L52INITIATOR_COMMAND_REG541",5> 9" id="L539" cICR_BASEatus" class="srICR_BASEun3_N|.#L538" id="L538ICR_ASSERT_DAT  class="line" nICR_ASSERT_DAT un3_N|."line" name="L512"> 512
i]. 513
) {
 512i;
>151sun3_NCR5380.c#L456" id="L451111* SomethcomaweirI0happens1when we cease to e="L5 BSY - looks class="line" name="L512"> 512;
 510 517
 510);
     * various queu152ET"15REG);
     * various queu1521T"15REG);
     * various queu1522T"15REG);
     * various queu1523T"15REG);
     * various queu1524T"15REG);
     * various queu1525T"15ags);
ScNia works aere,Nia shoulI08     * various queu1526T"15tus);
     * various queu1527T"15">i) 
i>152sun3_NCR5380.c#L457" id="L45111188     * various queu1528T"15mask)
     * various queu1529T"15ame);
     * various queu153ET"15asr);
 512i) 
i>1531un3_NCR5380.c#L470" id="L470" class="line" 15a2T"15mask)
1);NCR5380.c#L470" id="L470" class="line" 15a3T"15ame);
i].);
 541     430OST" un3_ra380.c#L520" id=cmdss="sref">NCR53cmtsi_H-hrefruct i) 
i>153sun3_NCR5380.c#L484" id="L484" class="line" 15a6T"15mask)
 512);
     * various queu1538T"15>mr);
     * various queu1539T"15">i) 
i>153sun3_NCR5380.c#L509" id="L5011118" class="line" name="L512"> 512)
);
NCR53timeoua541"> 5code=local_irq_jiffieore" class="srefjiffieoun3_N+ 25s5"line" name="L512"> 512);
i].}
 512 543
 510 512;
     * various queu1547T"15name;
 512[] = {
 512},
 512    }
 512}
     * various queu1552T"15> 451
 512
 512 453
 512 454
 512
 512
 9" id="L539" cjiffieore" class="srefjiffieoun3_,5+code=NCR5380_ptimeouass="sref">NCR53timeoua541") #ampr#ampr c.code=local_irq_eref">bareatline" name="L52eref">bareat541"> 9" id="L539" cSTATUS_REGline" name="L52STATUS_REG541") #ampr5"line" name="L512"> 512
 43SR_I si_H)))s="sref">i].
i].
bareatline" name="L52eref">bareat541"> 9" id="L539" cSTATUS_REGline" name="L52STATUS_REG541") #ampr5> 9" id="L539" cSR_SELe=basr" class="SR_SELun3_N|.#L538" id="L538SR_I name="L430"> 43SR_I si_H)) ==5"line" name="L512"> 512
 43SR_I si_H)) t *1562un3_NCR5380.c#L5380.c#L518" id=eref">bawriteline" name="L52eref">bawrite541"> 9" id="L539" cINITIATOR_COMMAND_REGline" name="L52INITIATOR_COMMAND_REG541",5+code=NCR5380_pICR_BASEatus" class="srICR_BASEun3_)s *1563un3_NCR5380.c#L5380.c#L518" id=eref">bareselef=line" name="L52eref">bareselef=541"> 9" id="L539" cinst*ncsi_Host" class="inst*ncsun3_)s * 4>1564un3_NCR5380.c#L5380.c#L518" id=pr541" class="line" name="L541".> 9" id="L539" cKERN_ERR class="line" nKERN_ERR541". 541    cmd)
 430OST" un3_)s *1566un3_NCR5380.c#L5380.c#L518" id=eref">bawriteline" name="L52eref">bawrite541"> 9" id="L539" cSELECT_ENABLE_REGline" name="L52SELECT_ENABLE_REGsi_H,5+code=NCR5380_phostdataline" name="L52hostdata/a>(-hrefruct i].
 512

i].
 9" id="L539" cjiffieore" class="srefjiffieoun3_,5+code=NCR5380_ptimeouass="sref">NCR53timeoua541") #ampr#ampr c.code=local_irq_eref">bareatline" name="L52eref">bareat541"> 9" id="L539" cSTATUS_REGline" name="L52STATUS_REG541") #ampr5 9" id="L539" cSR_BSYe=basr" class="SR_BSYun3_))s="sref">i]. 470
)) {
i].);
 512) - 1;
NCR53connected541").t< at5#ass="t;scsi%d: fr539" id="L539" c__LINE__ class="line" n__LINE__541")s=/a>>1474un5IU71.2us5511" return.-1r"line"6CSI_TOSHIBA_DELAYe=basr" class="CONFIG_ATARI_a href="drive14r.<>146s8/
 512     * various queca>>gveass=rive BUS.+code=instance" classssssssssssssssss->     ELAYe=basr" class="CONFIG_ATARI_a href="drive14r.L512"> 512 won *rbitrass=",refart S5lef=s5"lprocess,    ertcoma class="line"e15/*<>1556un3_"line" name="L512"> 5121549un3_#if 0"line" name="L512"> 512 512 512 = 0;
1481un3_NCR5#L538" id="L538eref">bawritel5ne" name="552eref">bawrite541"> 9" i5="L535" cOUTPUT_DAT _REGline" name="L52OUTPUT_DAT _REGsi_H,55+code=NCR5380_phostdataline" naASEatus" class="srICR_BASEun3_N|.#L538" id="L538ICR_ASSERT_SELe=basr" class="ICR_ASSERT_SELun3_N|"line" name="L512"> 512i]." 549un3_#if 0"line" name="L512"> 512    
1483un3_NCR5NCR5380.c#L456" id="L4/*" cla5s="line" n5me="L512"> 512i]. 470
b"ATN5while5SELsisstrue beforslBSY go5s fal58connectedss="sref">NCR53conname="L52OUTPUT_DAT _REGsi_H,55+code=NCR5380_phostdataline" naASEatus" class="srICR_BASEun3_N|.#L538" id="L538ICR_ASSERT_SELe=basr" class="ICR_ASSERT_SELun3_N|"line" name="L51" 549un3_#if 0"line" name="L512"> 512146s8/NCR53connected541").t *bareat541"a> 4" class="devicssi_H-hrefruct i].    }
b"writeline"y"afterLselef=s="68);
 512
NCR53connected541").t *bawrite541"> 9" i5="L53589="L539" cSELECT_ENABLE_REGline"4847;d: fT_DAT _REGsi_H,55+7;d: fr539" ss="srreselef=NDEBUG_AN470
147sun3_NCR5380.c#L484" id="L484" class="5DAT  class5"line" nICR_ASSERT_DAT un5_N|.#5538" id="L538Iss="sref">NCR53conname="L52OUTPUT_DAT _REGsi_H,55+code=NCR5380_phostdataline" na name="L52hostdata/a>(-hrefruct i].
bawrite541"> 9" i5="L5359R_I name="L430"> ive15e <>156sun3_NCR5NCR5380.c#L483" id="L483" clas" cla1493T5quot;14span> }, 
i]. 512 *].<=1412T"148055+code=>].<=1483un3_NCR5NCR5380.c#L456" id="L4/*" cla5wis="we0wi5l  hrggerL538 467i].156sun3_NCR5380.....return.-1r"line" name=nwriteline"me="L512"> 51214rsun3_NCR5CR5380.c#L483" id="L483" clas5lass=1498T5quot;14/span>}, 
1SI_TOSHIBA_DELAYun3_CRSUPPOf">TAG=1412T"1480SUPPOf">TAG=1483un3_NCR5NCR5380.c#L456" id="L4/*" cla5wst *nd ta52hostdata/a>(-hrefruct NCR53conns" _free_tag156sun3_NCR5380.....return.-1r"line" name=n="line" n5e="L52eref">bawrite541"> 5" id=599ive14* <>14rsun3_NCR5CR5380.c#L483" id="L483" clas62"> 5126038" id="L538ICR_ASSERT_ATN cct 156sun3_NCR5380.....return.-1r"line" name6s="line" n65G2T"15Gpan> }, 
i].
 }, 
 430OST" u12"> 51did notEG)df="drinquotmshref="+code=name" cla1475T"14fer);
bawrite541"> 9" i6="L5360" id="L538ICR_ASSERT_SELe=baame="L52OUTPUT_DAT _REGsi_H,55+code=NCR5380_phostdataline" na name="L52hostdata/a>(-hrefruct i].
155sun3_NCR5while (#L538" id="L538time_be6SY signal66
NCR53connected541").t *bareat541"a>i].    }
 512<6ss="srudel6y541">1);NCR5380.#CR5380.6#L4566 id="L4/*"w/span>},

i) 
    ueu152re="Ld512"> 512150sun3_NCR5380.c#L456" id="L451111* Taei6n="line" n6ss="line" name="L512"> 516<61isks out laei 4 lae8150sun3_NCR5380.c#L456" id="L451111* Taei6n2"line" n652eref">bawrite541"> 9" i6="L5361d tass lais annou>Scs class="line"transfarioT&quos>);
caissquotive15> 4>155sun3_NCR5380.c#L512" id="L511111* worl6ATN class=6line" nICR_ASSERT_ATNun3_6|.#L561erLskip tass lest *nd class="line"IDENTIFY m">  gve15">i>152sun3_NCR5380.c#L457" id="L451111886ine" 15e5T6quot;15ce) {
i>152sun3_NCR5380.c#L457" id="L451111886i5" name="6me="L512"> 512484ossquota SIMPd_mQUEUE>TAG15">i>152sun3_NCR5380.c#L457" id="L451111886iitiatorss6happens1when we cease to 6="L5 6SY - looks class="line" name="L512"m">  gv (2 bytes)f="drivu12g"IDe="L512">uotre" naf="drieL510"ine"ive15> 4>155sun3_NCR5380.c#L510" id="L511111* only6tae"board/6hipsisslettcomaus do *nol6er"us6d beforsltae"" class="line" name="Luntil450i>152sun3_NCR5380.c#L457" id="L451111886i8 signal66agass="ldelay has expired6 and 6e#as9;reic"nfuscom" class="line" n15">i>152sun3_NCR5380.c#L457" id="L451111886is="srudel6m ourselves"as lae target6as9;s6response to SELECTION68149sun3_NCR5380.c#L455" id="L4011118 olae6span class6"comment">     * various 6ueu1561T"15REG);
t oot;e15">i>152sun3_NCR5380.c#L457" id="L451111886essary jum6, makcomaia work"on0my 386-33/T6antorsT128, lae8 5121534un3_NCR5N430" class="liSEL_PRINTKre" 6aus delay 6s *rbitrary, and only use6 beca624d="L4/*"w/span>},
 51/aarthof"REQ/ACK hiveshake"ce15/*<>1556un3_"line" name="L512"> 512ScN6a wor62T"15ieore" REGline" name="L52STATUS_REG541") #ampr5 9" id="L539" cSR_BSYe=basr" class="SR_BSYun3_))s="sref">i].
   6 * va62d)<>155sun3_NCR5while (#L538" id="L538time_be6span class6"comment">     * various 6ueu1562span>
NCR53connf=som earget #ass="t;scsi%d: fr539" id="L539" cnOST" name="L430"> 430OST" u12"> 5130OST"1ne" 15;15ago queun*/cm>156sun3_NCR5555555555555555539" id="L539"6l suggests6tass lais coulI0be"due to6failc628pan>
i) 
i>153sun3_NCR5380.c#L484" id="L484" class="6eskewldela668   62id="L4/*"wcomel -- waia tmperef">bareat541"mpd="L[0]a>ii>153sun3_NCR5380.c#L484" id="L484" class="6s="line" n6me="L512"> 5121481un3_NCR5#L538" id="L538eref">bawritel6ine" 15a2T6quot;15mask)
TAG=1412T"1480SUPPOf">TAG=1483un3_NCR5NCR5380.c#L456" id="L4/*" cla6ss="srudel6y541">1);NCR5380.c#L470" 6d="L460" class="ss="sref">NCR53connct 6" cla15a4T6quot;15icr);
bareat541"mpd="L[1]a> *  gv0" id="L470" cll  gv12TAG1412T"1480SIMPd_mQUEUE>TAG15a>153sun3_NCR5380.c#L484" id="L484" class="6sus delay 6EL_PRINTK541"> 541   6NCR53conntmperef">bareat541"mpd="L[2]a><3153sun3_NCR5380.c#L484" id="L484" class="6saere68 51211561un3_NCR5380.380.> 9" id="L539" cSR_SE6CSIaspecif6cass="lcalls.fors* 250 ms6timeo63739" cMODE_REGline" name="L5len0" id="L470" cllen12<>156sun3_NCR5NCR5380.c#L483" id="L483" cla6=s="686span class="comment">    6* var6ous qu*/<>1570un3_NCR5while (#L538" id="L538time_be6s="line" n6me="L512"> 512<>156sun3_NCR5NCR5380.c#L483" id="L483" cla6ne" n1541T6quot;15ame);
NCR53tim6oua541"> 5code=local_irq_6iffie64rive15d1"w/span>},
TAG="ce15/*<>1556un3_"line" name="L512"> 512}
1543un3_NCR5NCR5380.c#L456" id="L4/*" cla6s="line" n6me="L512"> 512 543
  gv(s)"ce15/*<>1556un3_"line" name="L512"> 512S64="+code=="L4lass="srseled541").t *bareat541"mpd="L156sun3_NCR5380.....return.-1r"line" ns="6"5" name="6f e" lected / stsll a  er6ed (p64+code=name" cla1466T&quooT&qu#ass="t;scsi%T&que=ina> 4,de=name" cla1466T&quooT&qu#ass="t;scsi%T&que=in,de=name" cla1466T&quolen0" id="L470" cllen12 *153sun3_NCR5380.c#L484" id="L484" class="6s="line" n6me="L512"> 512
NCR53connf=som earget #ass="t;scsi%d: fr539" id="L539" cnOST" name="L430"> 430OST" unexus cm>1" cla1475T"14fer);
1556un3_"line" name="L512"> 512    }
 *TAG=1412T"1480SUPPOf">TAG=1483un3_NCR5NCR5380.c#L456" id="L4/*" cla6ile SELsis6true. Butsagain,ataere ar6isome65 cOUTPUT_DAT _REGline" nected541").t *i) 
i]+|= 4" class="devicssi_H-hrefruct i].lun0" id="L470" cllun5">i>153sun3_NCR5380.c#L484" id="L484" class="68tass do8t6ss neL51laeless. (Somebod680.ci6ed tas5d1""""53sun3_NCR5380.c#L484" id="L484" class="68="line" n6bilctyaofllae target.) So6we be6terLskSI_TOSHIBA_DELAYun3_CRSUN3_ent"_VMRT_SELun3_N|"linSUN3_ent"_VMR1483un3_NCR5NCR5380.c#L456" id="L4/*" cla6ius delay 6Y..."(Famous german words6 DerL65="+code=="L4lass="srseledregr#ampr c.code=lodregre=instance" class="s1499Tsr 51214rsun3_NCR5CR5380.c#L483" id="L483" clas6lass=1557T6quot;15d)
bareat5411r"linlize_enpR_BSYe=basr" class="ct 156sun3_NCR5380.....return.-1r"line" name6orsi_Host"6class="time_befors541"> 96 id="65/sp>149sun3_NCR5c#L5+code=NCR5380_phostdatali6sr" class=6SR_BSYun3_N|.#L538" id="L638SR_651549un3_#if 0"line" name="L512"> 512<6" cla156ET6quot;15r.
bareat541"> 96 id="6539" c1569un3_#else="sref">i].bawrite546"> 9"66ntorsT128, lae8NCR53connected56areselef=l6ne" name="L52eref">barese6ef=5466erLskip tass lest *nd class=* Fun1565T&:eun* id="L539transfar_pio (ST"uct S#L4_Hf=" *="drive1,e1se  chref="+connectedss="sref">NCR53connected56aus delay 6" name="L541".> 9" id="L569" cK669" c__LINE__ class="line" n_laaaaaaunommepanchar *7T&qu,eun* *count,aunommepanchar **+code15> 4>155sun3_NCR5380.c#L455" id="L4011118" cla6cnOST" nam6="L430"> 430OST" un3_)s *i>152sun3_NCR5380.c#L457" id="L451111886awriteline6 name="L52eref">bawrite546"> 9"66Y - looks class="line" name=* Purpose&:etransfars +cod="drg80.nioT&quodrive polf=d I/O15">i>152sun3_NCR5380.c#L457" id="L451111886arsi_Host"6i>152sun3_NCR5380.c#L457" id="L451111886ar" class=6569T"15d.
;
 510n cl15">i>152sun3_NCR5380.c#L457" id="L451111886a cla156ET657ET"15*/
 510n clnumbariof"15">i>152sun3_NCR5380.c#L457" id="L451111886orsi_Host"6class="time_befors541"> 96 id="67T"15REG);
 510n cl+cod"po> 510e15">i>152sun3_NCR5380.c#L457" id="L451111886ss="line" 615*2T"15d)) {
NCR53connected56" cla15*3T6quot;15cmd);

: -117T&qu<>1far nafoT&quoi9T& 510151sun3_NCR5380.c#L509" id="L5011118 aiBS6s="line" n6me="L512"> 512152sun3_NCR5380.c#L509" id="L5011118 ohr561").t< at56ass="t;scsi%d: fr539"6id="L639" c__LINE__ class="line" n_*      i9T"drt">  oT&qu.15ame>152sun3_NCR5380.c#L509" id="L5011118 ohr561nOST" nam6span>
i>152sun3_NCR5380.c#L457" id="L451111886.writeline6me="L512"> 512     * vario*      Also, *7T&qu,e*count,a*+cod"ot;1mo<>1i"> 5nioust;e15">i>152sun3_NCR5380.c#L457" id="L451111886.L512"> 516 won *rbitrass=",refart S6lef=s6"lprocess,    ertcoma class="n15">i>152sun3_NCR5380.c#L457" id="L451111886.r" class=6get ID#as9;s"on0laeiSCSIa6us68<67#as9;reic"nfuscom" class="li* me="Note&:ehivelive > 51uot;free4mayDbuodrefuve15Gsp>150sun3_NCR5380.c#L458" id="L4511118" cla6s="line" n6me="L512"> 5121556un3_"line" name="L512"> 512 = 0;
1481un3_NCR5#L538" id="L538eref">bawritel6ne" name="652eref">bawrite541"> 9" i6="L5368lae pipea hr5with an8150sun3_NCR5380.c#L456" id="L451111* Taei6n cla15*3T6quot;142    
150sun3_NCR5380.c#L456" id="L451111* Taei6n="line" n6me="L512"> 512 4>155sun3_NCR5380.c#L510" id="L511111* only6"ATN5while6SELsisstrue beforslBSY go6s fal689" c__LINE__ class="line" n_* counts5a2">drivealw5511;15> pseu;15DMA5TrTDMA5transfare15Gsp>150sun3_NCR5380.c#L458" id="L4511118" cla6n<>146s8/<6eionly way8to guarantee t6ss we68"Ra hre57" iay?) class="linene15/*<>1556un3_"line" name="L512"> 512155sun3_NCR5while (#L538" id="L538time_be6s="line" n6me="L512"> 512/aaticeun* e" cla1466T&quoid="L539transfar_pio41") #ampr5 9" id="L539transfar_pioR_BSY ST"uct IBA_DELAYun3_CRS#L4_Hf="T_SELun3_N|"linS#L4_Hf="d="L4*e=basr" class="uot;15> 463

bareat541T&un2e=in,55sun3_NCR5while (#L538" id="L538time_be6s="line" n652eref">bawrite541"> 9" i6="L53689="L539" cSELECT_ECT__________________unommepanchar **e" class="s1499d541").t *55sun3_NCR5while (#L538" id="L538time_be6DAT  class6"line" nICR_ASSERT_DAT un6_N|.#6538" i1562un3_NCR5380.c#L5380.c#L518" id=eref">6ne" name="652eref">bawrite541"> 9" i6="L5369R_I name=regis510nunommepanchar e" cla1466T&quoo#ass="t;scsiຂLLa><*e" cla1466T&quooT&qu#ass="t;scsi%T&que=in,dspan class=1542tmperef">bareat541"mpd="L156sun3_NCR5380.....return.-1r"line" ns="6" cla1493T6quot;14span> }, 
bareat541T14LLa><*e" cla1466T&quoT&un2eref">bareat541T&un2e=in156sun3_NCR5380.....return.-1r"line" ns="6"="line" n6me="L512"> 512 *<*e" cla1466T&quod541").t *1515un3_NCR5NCR5380.c#L456" id="L4/*  cla6wis="we0wi6l  hrggerL538 467NCR53connected56nwriteline6me="L512"> 512uot;7T&quBA_DELAYe=basr" class="CONFIG_ATARI_a href="drive146lass=1498T6quot;14/span>}, 
 5nihref=e="L510"> 5bitsspan claTARGEf 38ICR_AELAYe=basr" class="CONFIG_ATARI_a href="drive146lr" class=62hostdata/a>(-hrefruct i) 
bawrite541"> 6" id=69ET"15mask)
 512701481un3_NCR5#L538" id="L538eref">bawritel7s="line" n75G2T"15Gpan> }, 
 }, 
1543un3_NCR5NCR5380.c#L456" id="L4/*" cla7ne" name="752eref">bawrite541"> 9" i7="L5370" id="L53;151562un3_NCR5380.c#L5380.c#L518" id=eref">7n4" name="75ts must be turneI0offlpr7drive70connectedss="T128, lae8NCR53connected57n5" name="75  hrggerL538 467 51adrive65T&of"REQ,"1551chEbareat541"mpd="La>i].
1);NCR5380.#CR5380.7#L45670r.<>1560un3_NCR5c#L5.code=local_irq_eref">bar7ne" n1511T7quot;15 *
 430OST" uREQCSI_TOSedss="sref">NCR53cmtsi_H-hrefruct  517<71mas>1532un3_NCR5380.c#L518" id=udelayatus" cl7n2"line" n752eref">bawrite541"> 9" i7="L53712onnectedss="T128, lae8 51rT&quomismatchsve15mas>1""53sun3_NCR5380.c#L484" id="L484" class="7ATN class=7line" nICR_ASSERT_ATNun3_7|.#L571" id="L538ICRUS_REGline" name="L5imperef">bareat541"mpd="Lae=name" cla1571T"PHASE_MASget #ass="t;scsiPHASE_MASgss="> !>7ine" 15e5T7quot;15ce) {
 430OST" urT&quomismatchss="sref">NCR53cmtsi_H-hrefruct  5121571un3_NCR538CR5380.c#L483" id="L483" cl7nitiatorss7happens1when we cease to 7="L5 71d="L539" cSELECT_b" ck1571un3_NCR538CR5380.c#L483" id="L483" cl7nY signal67hipsisslettcomaus do *nol7er"us71739" cMODE_RE1569un3_#else="sref">i].1549un3_#if 0"line" name="L512"> 512<7is="srudel7m ourselves"as lae target7as9;s719onnectedss="T128, lae8uot;to /ifrommmemoryive15mas>154sun3_CR5380.c#L483" id="L483" class="l7span class7"comment">     * various 7ueu15720 id="L538ICRUS_RREGline" name="L5o#ass="t;scsiຂLLae=name" cla1571T"15.
 DAT _REGline" name="L52OUTPUT_DAT _REGsi_H,55+code=NCR5380_phostdataline" naOUTPUT_riveun3_))s="sref">i *1571un3_NCR538CR5380.c#L483" id="L483" cl7essary jum7, makcomaia work"on0my 387-33/T722onnectedss="/<>11561un3_NCR5380.380.> 9" id="L539" cSR_SE7erL#as9;C#7s9;s"L53 busaks *nd requi7esNe 72> 9" id="L539" ci*e" class="s1499d").t *i1571un3_NCR538CR5380.c#L483" id="L483" cl7ene" 15e5T7s *rbitrary, and only use7 beca72ce<>1515un3_NCR5NCR5380.c#L456" id="L4/*  cla7e5" name="7laer"platforms *nd si>ScN7a wor72ref="+code=in++e" class="s1499d").t *   7 * va72d)<>155sun3_NCR5while (#L538" id="L538time_be7span class7"comment">     * various 7ueu15727onnectedss="T128, lae8154sun3_CR5380.c#L483" id="L483" class="l7s8 signal67tass lais coulI0be"due to7failc72us queu1539T"15">i) 
154sun3_CR5380.c#L483" id="L483" class="l7ss="srudel768   72ET"15mask)
onihrefsk  gv 7T&que=mas>154sun3_CR5380.c#L483" id="L483" class="l7s="line" n7me="L512"> 512);
154sun3_CR5380.c#L483" id="L483" class="l7s="line" n7quot;15mask)
1);NCR5380.c#L470" 7d="L473ntorsT128, lae8);
1534un3_NCR5N430" class="liSEL_PRINTKre" 7sus delay 7EL_PRINTK541"> 541   7
7s5" name="7quot;15mask)

bareat541T14LLatanc 1.<>1562un3_NCR5380.c#L5380.c#L518" id=eref">7sitiatorss7me="L512"> 512 DAT _REGline" name="L52OUTPUT_DAT _REGsi_H,55+code=NCR5380_phostdataline" naASEatus" class="srICR_BASEun3_N|.#L538" id="L538ICR_ASSERT_SELe=basr" class="ICR_ASSERT_SELun3_N|"line" name="L512">562un3_NCR5380.c#L5380.c#L518" id=eref">7span class7cass="lcalls.fors* 250 ms7timeo73span>
 DAT _REGline" n))s="sref">riveT_SELun3_N|"line" n"sref">rive14LL>1571un3_NCR538CR5380.c#L483" id="L483" cl7=s="687span class="comment">    7* var738pan>
1571un3_NCR538CR5380.c#L483" id="L483" cl7s="line" n7me="L512"> 512562un3_NCR5380.c#L5380.c#L518" id=eref">7ne" n1541T7quot;15ame);

 0"> DAT _REGline" n))s="sref">riveT_SELun3_N|"line" n"sref">rive14LL2"> 5121571un3_NCR538CR5380.c#L483" id="L483" cl7">NCR53tim7oua541"> 5code=local_irq_7iffie74R_I name="L430"> } /<>111562un3_NCR5380.c#L5380.c#L518" id=eref">7" cla1543T7quot;15 542}
7" cla15a4T7me="L512"> 512 9" id="L539" ci0"> 0"> DAT _REGline" n))s="sref">riveT_SELun3_N|"line" n"sref">rive14LL2"> 512i]." 549un3_#if 0"line" name="L512"> 512<7"us delay 7tsom - we#as9;reiseeref *7bou>S74N_ERR class="lineECT_ENABLE_REGline"N847;d: fT_DAT _REGsi_H,55+7;d: fr539" ss="srreselef=NDEBUG_P.
1571un3_NCR538CR5380.c#L483" id="L483" cl7"5" name="7f e" lected / stsll a  er7ed (p74ref="+code=instanECT_DAT _REGline" name="L52OUTPUT_DAT _REGsi_H,55+code=NCR5380_phostdataline" naASEatus" class="srICR_BASEun3_N|.#L538" id="L538ICR_ASSERT_SELe=basr" class="ICR_ASSERT_SELun3_N|"line" name="L512">562un3_NCR5380.c#L5380.c#L518" id=eref">7nitiatorss7ef=som asstrue.  Sigh68 0"> DAT _REGline" n))s="sref">riveT_SELun3_N|"line" n"sref">rive14LL2"> 512i].2"> 5121571un3_NCR538CR5380.c#L483" id="L483" cl7"pan class7me="L512"> 512
i].7"="line" n755ET"15    }
1571un3_NCR538CR5380.c#L483" id="L483" cl7an: If * e7rget c"nformed to laeiSCS7ast*n7538" id="L538Iss="sref">NCR53conname="L52OUTPUT_DAT _REGsi_H,55+code=NCR5380_phostdataline" naASEatus" class="srICR_BASEun3_N|.#L538" id="L538ICR_ASSERT_SELe=basr" class="ICR_ASSERT_SELun3_N|"line" name="L512"> 5121571un3_NCR538CR5380.c#L483" id="L483" cl7ile SELsis7true. Butsagain,ataere ar7isome75R_I name="L431569un3_#else="sref">i]. 9" id="L539ieore" span class=15422STATUS_REG541") #ampr5 9" id="L539" cSR_BSYe=basr" class="SR_BSYun3_))s="sref">i].
1515un3_NCR5NCR5380.c#L456" id="L4/*  cla7a5" name="7me="L512"> 512 430OST" ureqn 484<,fhiveshake"completess="sref">NCR53cmtsi_H-hrefruct 
155sun3_NCR5while (#L538" id="L538time_be7orsi_Host"7class="time_befors541"> 97 id="75 beforsltae"" class="line" ve15G/s>150sun3_NCR5380.c#L456" id="L451111* Taei7sr" class=7SR_BSYun3_N|.#L538" id="L738SR_75#as9;reic"nfuscom" class="li* Wefhive seL51alos    alocasesn clconsider/s queu1REQ/ACK hiveshakueu1:e15mas>154sun3_CR5380.c#L483" id="L483" class="l7" cla156ET7quot;15r.
154sun3_CR5380.c#L483" id="L483" class="l7atline" na7e="L52eref">bareat541"> 97 id="76T"15REG);
  gve 512">mus ACKoi9Tdropppae15Gsp>150sun3_NCR5380.c#L458" id="L4511118" cla7e=basr" cl7ss="SR_SELun3_N|.#L538" i7="L5376lae pipea hr5with an8150sun3_NCR5380.c#L458" id="L4511118" cla7etass do8t7 name="L52eref">bawrite547"> 9"76ntorsT128, lae8154sun3_CR5380.c#L483" id="L483" class="l7a="line" n7ne" name="L52eref">barese7ef=5476erLskip tass lest *nd class=* dss="m">  gve 5Wefmu151sun3_NCR5380.c#L509" id="L5011118 aiBS7aus delay 7" name="L541".> 9" id="L579" cK769" c__LINE__ class="line" n_laaaaaaquduomayDre="L512">s=1485Tdroppueu1ACKo clrejectn clam">  gve15Gsp>150sun3_NCR5380.c#L458" id="L4511118" cla7e5" name="7="L430"> 430OST" un3_)s *i>152sun3_NCR5380.c#L457" id="L451111887awriteline7 name="L52eref">bawrite547"> 9"76Y - looks class="line" name=* 3e 51CKoand512">ot;1clearoand5 cla12"> 51mayDprocepan>s n>150sun3_NCR5380.c#L458" id="L4511118" cla7arsi_Host"7154sun3_CR5380.c#L483" id="L483" class="l7ar" class=7569T"15d.
bareat541T14LLa=><1.<>1""53sun3_NCR5380.c#L484" id="L484" class="7a cla156ET757ET"15*/
NCR53conno#ass="t;scsiຂLLa=>bareat541T14LLatanc 1.53sun3_NCR5380.c#L484" id="L484" class="7orsi_Host"7class="time_befors541"> 97 id="770pan>
NCR53conname="L52OUTPUT_DAT _REGsi_H,55+code=NCR5380_phostdataline" naASEatus" class="srICR_BASEun3_N|.#L538" id="L538ICR_ASSERT_SELe=basr" class="ICR_ASSERT_SELun3_N|"line" name="L512"> 512i]." 549un3_#if 0"line" name="L512"> 512<7ss="line" 715*2T"15d)) {
 /<>1570un3_NCR5while (#L538" id="L538time_be7" cla15*3T7quot;15cmd);
 512<7s="line" n7me="L512"> 512 9" id="L539}1561un3_NCR5380.380.> 9" id="L539" cSR_SE71").t< at57ass="t;scsi%d: fr539"7id="L77N_ERR cla}9ieore" --e" cla1466T&quoceref">bareat541T14LL" 549un3_#if 0"line" name="L512"> 512<7s5" name="7span>
 512<7swriteline7me="L512"> 512 430OST" uresidrive30OST"ss="sref">NCR53cmtsi_H-hrefruct bareat541T14LL" 549un3_#if 0"line" name="L512"> 512<7srsi_Host"7 won *rbitrass=",refart S7lef=s77/sp>149sun3_NCR5c#L5+code=NCR5380_phostdatali7.r" class=7get ID#as9;s"on0laeiSCSIa7us68<778pan>
bareat541T&un2e=ina>bareat541T14LL 549un3_#if 0"line" name="L512"> 512<7s cla156ET7me="L512"> 512
 * * = 0;
bareat541"mpd="La>i].bawrite541"> 9" i7="L5378 cOUTPUT_D128, lae8 4>155sun3_NCR5380.c#L455" id="L4011118" cla7n cla15*3T7quot;142    
 4>155sun3_NCR5380.c#L455" id="L4011118" cla7n="line" n7me="L512"> 512154sun3_CR5380.c#L483" id="L483" class="l7"ATN5while7SELsisstrue beforslBSY go7s fal78N_ERR claUS_REGline" name="L5imperef">bareat541"mpd="Lae=name" cla1571T"15REQ70
NCR53conno#ass="t;scsiຂLLa=>bareat541T14LLa=><0).53sun3_NCR5380.c#L484" id="L484" class="7n<>146s8/<7eionly way8to guarantee t7ss we78539" cMODE_RE*e" cla1466T&quooT&qu#ass="t;scsi%T&que=ina>bareat541"mpd="Lae=name" cla1571T"PHASE_MASget #ass="t;scsiPHASE_MASgss="1571un3_NCR538CR5380.c#L483" id="L483" cl7nwriteline7y"afterLselef=s="6811561un3_NCR5380.380.> 9" id="L539" cSR_SE7s="line" n7me="L512"> 5121549un3_#if 0"line" name="L512"> 512<7s="line" n752eref">bawrite541"> 9" i7="L53789="L539" US_RRe" cla1466T&quoceref">bareat541T14LLa||="*e" cla1466T&quooT&qu#ass="t;scsi%T&que=ina>>
bawrite541"> 9" i7="L5379R_I name=/<>11561un3_NCR5380.380.> 9" id="L539" cSR_SE7" cla1493T7quot;14span> }, 

156sun3_NCR5NCR5380.c#L483" id="L483" cla7"="line" n7me="L512"> 512i].1515un3_NCR5NCR5380.c#L456" id="L4/*  cla7wis="we0wi7l  hrggerL538 467 512 4>155sun3_NCR5380.c#L455" id="L4011118" cla7lass=1498T7quot;14/span>}, 
154sun3_CR5380.c#L483" id="L483" class="l7lr" class=72hostdata/a>(-hrefruct i)* Purpose&:eabortu clacurr naly );
bawrite541"> 7" id=79ET"15mask)
 51280T"15REG);
 512bawrite541"> 9" i8ref="80lae pipea hr5with an8
: 01onisuccess, -11oni
150sun3_NCR5380.c#L458" id="L4511118" cla8s2"line" n85uot;14span> }, 
154sun3_CR5380.c#L483" id="L483" class="l8ne" name="852eref">bawrite541"> 9" i8="L5380icr>1534un3_NCR5N430" class="liSEL_PRINTKre" 8n4" name="85ts must be turneI0offlpr8drive80conne/aaticeun* e" cla1466T&quodo_abort").t *
(ST"uct IBA_DELAYun3_CRS#L4_Hf="T_SELun3_N|"linS#L4_Hf="d="L4*e=basr" class="hf="T_SELun3_N|"linhf="d="L<>54sun3_CR5380.c#L483" id="L483" class="l8n5" name="85  hrggerL538 46784itiatorss8all  hen waia at5least tw8 desk806code=namunommepanchar e" cla1466T"mperef">bareat541"mpd="L,d*e" class="s1499msgptr(-hrefruct 1549un3_#if 0"line" name="L512"> 512<8ss="srudel8y541">1);NCR5380.#CR5380.8#L45680id="L4/*"w128, lae8  gv 154sun3_CR5380.c#L483" id="L483" class="l8ne" n1511T8quot;15 *
 512i]." 549un3_#if 0"line" name="L512"> 512<8n="line" n8ss="line" name="L512"> 518<81mas>1532un3_NCR5380.c#L518" id=udelayatus" cl8n2"line" n852eref">bawrite541"> 9" i8="L53812onnectedT128, lae8154sun3_CR5380.c#L483" id="L483" class="l8ATN class=8line" nICR_ASSERT_ATNun3_8|.#L581erLskip tass lest *nd class=
 51 cla12"> 51*/ 5aTvaliverT&quoby1adrive6nge15mas>154sun3_CR5380.c#L483" id="L483" class="l8A4" name="8quot;15ce) {
154sun3_CR5380.c#L483" id="L483" class="l8A5" name="8me="L512"> 512 e="send5 claABORTam">  gv,2ore2"30O9;llnhive somue15mas>154sun3_CR5380.c#L483" id="L483" class="l8Aitiatorss8happens1when we cease to 8="L5 81Y - looks class="line" name="L512"o150sun3_NCR5380.c#L458" id="L4511118" cla8nY signal68hipsisslettcomaus do *nol8er"us81 beforsltae"" class="line" name="L15Gsp>150sun3_NCR5380.c#L458" id="L4511118" cla8n8 signal68agass="ldelay has expired8 and 81us queu1539T"15">i) 
)
 51sees, so2wquju150sun3_NCR5380.c#L458" id="L4511118" cla8span class8"comment">     * various 8ueu1582T"15REG);
bareat541"mpd="La>i].
1534un3_NCR5N430" class="liSEL_PRINTKre" 8ene" 15e5T8s *rbitrary, and only use8 beca82="+code=="L4lass="srseleame="L52OUTPUT_DAT _REGsi_H,55+code=NCR5380_phostdataline" naTARGEfclass="srICR_BASEun3_N|.#L5TARGEfclass="srICRe=in,dspan class=1542PHASE_SR_TO_TCerLwon *rbitrassPHASE_SR_TO_TCe80_phostdataline" naimperef">bareat541"mpd="L4>1571un3_NCR538CR5380.c#L483" id="L4ass="l8s5" name="8laer"platforms *nd si>ScN8a wor82"Ra h549un3_#if 0"line" name="L512"> 512<8eitiatorss8   8 * va826code=namUS_REGline" name="L5imperef">bareat541"mpd="Lae=name" cla1571T"PHASE_MASget #ass="t;scsiPHASE_MASgss="> !>1562un3_NCR5380.c#L5380.c#L518" id=eref">8span class8"comment">     * various 8ueu15827onnectedss="Tcomel -- waia ame="L52OUTPUT_DAT _REGsi_H,55+code=NCR5380_phostdataline" naASEatus" class="srICR_BASEun3_N|.#L538" id="L538ICR_ASSERT_SELe=basr" class="ICR_ASSERT_SELun3_N|"line" name="L512"> 512i].2">562un3_NCR5380.c#L5380.c#L518" id=eref">8s8 signal68tass lais coulI0be"due to8failc828pan>
1571un3_NCR538CR5380.c#L483" id="L483" cl8ss="srudel868   829="L539" cSELieore" span class=15422STATUS_REG541") #ampr5 9" id="L539" cSR_BSYe=basr" class="SR_BSYun3_))s="sref">i].
 512 512i].41571un3_NCR538CR5380.c#L483" id="L483" cl8s="line" n8quot;15mask)
i].1);NCR5380.c#L470" 8d="L4832onnecte569un3_#else="sref">i].bareat541"mpd="La>bareat541ABORT12 541   8bareat541"mpd="L156sun3_NCR5NCR5380.c#L483" id="L483" cla8s5" name="8quot;15mask)
<>156sun3_NCR5NCR5380.c#L483" id="L483" cla8sitiatorss8me="L512"> 512    8* var831549un3_#if 0"line" name="L512"> 512<8s="line" n8me="L512"> 512154sun3_CR5380.c#L483" id="L483" class="l8ne" n1541T8quot;15ame);
);
 5code=local_irq_8iffie84lae pipea hr5with an8150sun3_NCR5380.c#L458" id="L4511118" cla8" cla1543T8quot;15 542}
154sun3_CR5380.c#L483" id="L483" class="l8" cla15a4T8me="L512"> 5121534un3_NCR5N430" class="liSEL_PRINTKre" 8"us delay 8tsom - we#as9;reiseeref *8bou>S84N_ERR claive15e e" cla1466T&quolen0" id="L470" cllen12i]. 512#US_e" cla1466T&quodef12 *},
iive15mas>154sun3_CR5380.c#L483" id="L483" class="l8"="line" n855ET"15    }
NCR53connected58an: If * e8rget c"nformed to laeiSCS8ast*n85T"15REG);
 4>155sun3_NCR5380.c#L455" id="L4011118" cla8ile SELsis8true. Butsagain,ataere ar8isome85lae pipea hr5with an8150sun3_NCR5380.c#L458" id="L4511118" cla88tass do8t8ss neL51laeless. (Somebod880.ci85ntorsT128, lae8150sun3_NCR5380.c#L458" id="L4511118" cla88 cla15a4T8bilctyaofllae target.) So8we be85erLskip tass lest *nd class=* dss=" 51rseu;15DMAe15Gsp>150sun3_NCR5380.c#L458" id="L4511118" cla8ius delay 8Y..."(Famous german words8 DerL859" c__LINE__ class="line" n_l15Gsp>150sun3_NCR5380.c#L458" id="L4511118" cla8i5" name="8me="L512"> 512;
 510n cl15">i>152sun3_NCR5380.c#L457" id="L451111888lass=1557T8quot;15d)
     * vario*       5atioT&quoi9T&qu 15;15a*count"-4po> 510n clnumbariof"15">i>152sun3_NCR5380.c#L457" id="L451111888orsi_Host"8class="time_befors541"> 98 id="85 beforsltae"" class="line" "*edss="bytesn claransfar, **+cod"-4po> 510n cl+cod"po> 510e15">i>152sun3_NCR5380.c#L457" id="L451111888sr" class=8SR_BSYun3_N|.#L538" id="L838SR_85#as9;reic"nfuscom" class="li* 15">i>152sun3_NCR5380.c#L457" id="L451111888s="line" n8quot;15r.

: -117T&qu<>1far nafoT&quoi9T& 510151sun3_NCR5380.c#L509" id="L5011118 aiBS8atline" na8e="L52eref">bareat541"> 98 id="86T"15REG);
152sun3_NCR5380.c#L509" id="L5011118 ohr58e=basr" cl8ss="SR_SELun3_N|.#L538" i8="L5386lae pipea hr5with an8  oT&qu.15ame>152sun3_NCR5380.c#L509" id="L5011118 ohr58etass do8t8 name="L52eref">bawrite548"> 9"86ntorsT128, lae8152sun3_NCR5380.c#L509" id="L5011118 ohr58e cla15a4T8ne" name="L52eref">barese8ef=5486erLskip tass lest *nd class=* dss="Also, *7T&qu,e*count,a*+cod"ot;1mo<>1i"> 5nioust;e15">i>152sun3_NCR5380.c#L457" id="L451111888aus delay 8" name="L541".> 9" id="L589" cK869" c__LINE__ class="line" n_l15">i>152sun3_NCR5380.c#L457" id="L451111888a5" name="8="L430"> 430OST" un3_)s *bawrite548"> 9"86d)<>155sun3_NCR5while (#L538" id="L538time_be8arsi_Host"8149sun3_NCR5c#L5+code=NCR5380_phostdatali8ar" class=8569T"15d.
 4,d55sun3_NCR5while (#L538" id="L538time_be8a cla156ET857ET"15*/
bareat541T&un2e=in,55sun3_NCR5while (#L538" id="L538time_be8orsi_Host"8class="time_befors541"> 98 id="870pan>
 *)) {
8" cla15*3T8quot;15cmd);
 463
 512bareat541T14LLa><*e" cla1466T&quoT&un2eref">bareat541T&un2e=in156sun3_NCR5380.....return.-1r"line" ns="81").t< at58ass="t;scsi%d: fr539"8id="L874 id="L53regis510nunommepanchar e" cla1466T&quoo#ass="t;scsiຂLLa><*e" cla1466T&quooT&qu#ass="t;scsi%T&que=in156sun3_NCR5380.....return.-1r"line" ns="815" name="8span>
 512155sun3_NCR5while (#L538" id="L538time_be8srsi_Host"8 won *rbitrass=",refart S8lef=s87span>
iivesanityncheck"ne15mas>154sun3_CR5380.c#L483" id="L483" class="l8.r" class=8get ID#as9;s"on0laeiSCSIa8us68<878pan>
1562un3_NCR5380.c#L5380.c#L518" id=eref">8s cla156ET8me="L512"> 512 430OST" utransfar_dma ="drNCR53cmtsi_H-hrefruct  = 0;
1571un3_NCR538CR5380.c#L483" id="L483" cl8ns="line" 852eref">bawrite541"> 9" i8="L5388R_I name=1569un3_#else="sref">i]. *bareat541T14LL 549un3_#if 0"line" name="L512"> 512<8n="line" n8me="L512"> 5121534un3_NCR5N430" class="liSEL_PRINTKre" 8"ATN5while8SELsisstrue beforslBSY go8s fal88="+code=="L4lass="srseleDMAom earget #ass="t;scsiDMAom earg80_phod="L539" cnOST" name="L430"> 430OST" u1r"linlizive DMA"> 5130OSTs, 30OST"mbytesn30OSTsn30OSTpss="sref">NCR53c534un3_NCR5N430" class="liSEL_PRINTKre" 8"5" name="8eionly way8to guarantee t8ss we88539" cMODE_RE" cSELEe" cla1466T&quo
NCR531:e1d="L539" cnOST" name="L430NCR5 na="sref">NCR53c534un3_NCR5N430" class="liSEL_PRINTKre" 8"writeline8y"afterLselef=s="68span class=1542ceref">bareat541T14LLdeEGline" name="L5o#ass="t;scsiຂLLae=name" cla1571T"15.
NCR531:e1d="L539" cnOST" name="L430from="sref">NCR53cm*e" cla1466T&quod541").t * 512<8nrsi_Host"8me="L512"> 512149sun3_NCR5c#L5+code=NCR5380_phostdatali8nr" class=8quot;14 struct {

iivenetbsd e15e>
offnun*s {
154sun3_CR5380.c#L483" id="L483" class="l8s="line" n852eref">bawrite541"> 9" i8="L53889="L539" e" cla1466T&quolocal_irq_savu#ass="t;scsilocal_irq_savu80_phostdataline" naflags#ass="t;scsiflagse=in4 549un3_#if 0"line" name="L512"> 512<8DAT  class8"line" nICR_ASSERT_DAT un8_N|.#890pan>
 512<8Ds="line" 852eref">bawrite541"> 9" i8="L5389 cOUTPUT_D128, lae8154sun3_CR5380.c#L483" id="L483" class="l8" cla1493T8quot;14span> }, 
bareat541T14LLde*e" cla1466T&quod541").t * 512<8"="line" n8me="L512"> 512
 512<8DATN5while8pts must be turneI0offlpr8or8to89N_ERR claUS_RGline" name="L5o#ass="t;scsiຂLLae=name" cla1571T"15.
8wis="we0wi8l  hrggerL538 467 512<8"writeline8me="L512"> 512 512<8"rsi_Host"8quot;14/span>}, 

 512<8"r" class=82hostdata/a>(-hrefruct 
 512
"> 512 512<8"="line" n8e="L52eref">bawrite541"> 8" id=899="L539" cSELECT_ENABLE_REGline"484="L52OUTPUT_DAT _REGsi_H,55+code=NCR5380_phostdataline" naSTART_DMe_38" id="L5RECEIVErICR_BASEun3_N|.#L5START_DMe_38" id="L5RECEIVErICRT_SELe04 549un3_#if 0"line" name="L512"> 512<92"> 512900pan>
111562un3_NCR5380.c#L5380.c#L518" id=eref">921> 512bawrite541"> 9" i9ref="90R_I name="L430"> DAT _REGline" name="L52OUTPUT_DAT _REGsi_H,55+code=NCR5380_phostdataline" naTARGEfclass="srICR_BASEun3_N|.#L5TARGEfclass="srICRe=in,d04 549un3_#if 0"line" name="L512"> 512<922> 512 }, 
 512<9ne" name="952eref">bawrite541"> 9" i9="L5390> 9" id="L539" ciCR_ASSERT_ATN came="L52OUTPUT_DAT _REGsi_H,55+code=NCR5380_phostdataline" naASEatus" class="srICR_BASEun3_N|.#L538" id="L538ICR_ASSERT_SELeostdataline" naA)s="sref">riveT_SELun3_N|"line" n"sref">rive14LL>1571un3_NCR538CR5380.c#L483" id="L483" cl9n4" name="95ts must be turneI0offlpr9drive90N_ERR class="lineCR_ASSERT_ATN came="L52OUTPUT_DAT _REGsi_H,55+code=NCR5380_phostdataline" naMODErICR_BASEun3_N|.#L5MODErICR14LLdeEGline" name="L52STATUS_REG541") #ampr5 9" id="L539" cSR_BSYe=basr" class="MODErICR_BASEun3_N|.#L5MODErICR14LL)2"> 512
"> 512 512<9n5" name="95  hrggerL538 467 512<926" name="95e="L512"> 512i].149sun3_NCR5c#L5+code=NCR5380_phostdatali9S8 signal69(-hrefruct 1#ifdeS_e" cla1466T&quoSUN3_SCSI_VME_BASEun3_N|.#L5SUN3_SCSI_VMEsp>149sun3_NCR5c#L5+code=NCR5380_phostdatali9S9 signal69<="L52eref">bawrite541"> 9#L456909="L539" e" cla1466T&quodregs#ass="t;scsidregs="L5-tance" cla1466T&quocsr 512<9ne" n1511T9quot;15 *
 512<9n1> 512 519<91mas>1532un3_NCR5380.c#L518" id=udelayatus" cl9n2"line" n952eref">bawrite541"> 9" i9="L5391d="L539" IBA_DELAYun3_CRlocal_irq_restoru#ass="t;scsilocal_irq_restoru80_phostdataline" naflags#ass="t;scsiflagse=in4 549un3_#if 0"line" name="L512"> 512<9ATN class=9line" nICR_ASSERT_ATNun3_9|.#L591icr>1534un3_NCR5N430" class="liSEL_PRINTKre" 9A4" name="9quot;15ce) {
<>156sun3_NCR5NCR5380.c#L483" id="L483" cla9A5" name="9me="L512"> 512i].154sun3_CR5380.c#L483" id="L483" class="l9n8 signal69agass="ldelay has expired9 and 911549un3_#if 0"line" name="L512"> 512<9ns="srudel9m ourselves"as lae target9as9;s91ET"15mask)
154sun3_CR5380.c#L483" id="L483" class="l9span class9"comment">     * various 9ueu1592T"15REG);
 4>155sun3_NCR5380.c#L455" id="L4011118" cla9s="line" n9ae #as9;C++#as9;sfrontend9busak92lae pipea hr5with an8150sun3_NCR5380.c#L458" id="L4511118" cla9s2"line" n9, makcomaia work"on0my 389-33/T92ntorsT128, lae8 5115Gsp>150sun3_NCR5380.c#L458" id="L4511118" cla9sTN class=9s9;s"L53 busaks *nd requi9esNe 92erLskip tass lest *nd class=* dss="directs usn c.  Operatesn nu clacurr naly conn 15;1a
NCR53connected59ene" 15e5T9s *rbitrary, and only use9 beca929" c__LINE__ class="line" n_laaaaaa="drive1-tancconn 15;1e15">i>152sun3_NCR5380.c#L457" id="L451111889s5" name="9laer"platforms *nd si>ScN9a wor92"Ra hre57" iay?) class="linen15">i>152sun3_NCR5380.c#L457" id="L451111889eitiatorss9   9 * va92class="comment">     * vario* Inputs&:eundrive1,45ndrive1"fore251chEwquot;1doive 
i>152sun3_NCR5380.c#L457" id="L451111889eY signal69"comment">     * various 9ueu1592 beforsltae"" class="line" "*15">i>152sun3_NCR5380.c#L457" id="L451111889e8 signal69tass lais coulI0be"due to9failc92#as9;reic"nfuscom" class="li* Side effects : SCSI thiveT&happen,u cladisconn 15;1aqueu;1 illnb_DELAYe=basr" class="CONFIG_ATARI_a href="drive149ss="srudel968   92ET"15mask)
1i"> 5f aa
 512);
150sun3_NCR5380.c#L458" id="L4511118" cla9s="line" n9quot;15mask)
150sun3_NCR5380.c#L458" id="L4511118" cla9ss="srudel9y541">1);NCR5380.c#L470" 9d="L493ntorsT128, lae8);
 541   9154sun3_CR5380.c#L483" id="L483" class="l9s5" name="9quot;15mask)
 512 4454sun3_CR5380.c#L483" id="L483" class="l9sY signal69cass="lcalls.fors* 250 ms9timeo93span>1562un3_NCR5380.c#L5380.c#L518" id=eref">9s8 signal69span class="comment">    9* var938"+code=="L4lass="srseleSETUP_t" criveT_SELun3_N|"linSETUP_t" crive80_phostdataline" nauot;15> 463
 512);
 5code=local_irq_9iffie94R_I name=un* e" cla1466T&quosink#ass="t;scsidinke=ina><0156sun3_NCR5380.....return.-1r"line" ns="9" cla1543T9quot;15 542}
 5121#US_e" cla1466T&quodef12 *S94N_ERR claun* e" cla1466T"ransfarsiz 463
 512<9nitiatorss9ef=som asstrue.  Sigh68 * 512bareat541"mpd="L,de" cla1466T&quoextended_msgeref">bareat541extended_msgd="L[10],de" cla1466T&quoold_oT&qu#ass="t;scsiold_oT&qud="L=0xff156sun3_NCR5NCR5380.c#L483" id="L483" cla9"8 signal69quot;15},
 * *<(ST"uct IBA_DELAYun3_CR83" 4cmnd").t * * *    }
149sun3_NCR5c#L5+code=NCR5380_phostdatali9ile SELsis9true. Butsagain,ataere ar9isome95 cOUTPUT_D" cla1466T&quodregs#ass="t;scsidregs="L5-tance" cla1466T&quocsr 512<98 cla15a4T9bilctyaofllae target.) So9we be95icr>1534un3_NCR5N430" class="liSEL_PRINTKre" 9ius delay 9Y..."(Famous german words9 DerL95N_ERR claieore" 1. 1562un3_NCR5380.c#L5380.c#L518" id=eref">9i5" name="9me="L512"> 512bareat541"mpd="La>i].
 99 id="95span>
bareat541"mpd="Lae=name" cla1571T"15REQ70
9i8 signal69SR_BSYun3_N|.#L538" id="L938SR_958pan>
bareat541"mpd="Lae=name" cla1571T"PHASE_MASget #ass="t;scsiPHASE_MASgss=">;+54sun3_CR5380.c#L483" id="L483" class="l9s="line" n9quot;15r.
9atline" na9e="L52eref">bareat541"> 99 id="960pan>
 stanspan class=15422STom ear_PHASE41") #ampr5 9" id=om ear_PHASER_BSYe=basr" class="NDEBUG_eaFORMATIOR_ASSERT_SELun3_NDEBUG_eaFORMATIOR="+co1571un3_NCR538CR5380.c#L483" id="L483" cl9etass do8t9 name="L52eref">bawrite549"> 9"96d="L539" cINITIAT1569un3_#else="sref">i].barese9ef=5496icr>1534un3_NCR5N430" class="liSEL_PRINTKre" 9aus delay 9" name="L541".> 9" id="L599" cK96N_ERR class="lineifRGline" name="L5oT&qu#ass="t;scsi%T&que=ina=>9a5" name="9="L430"> 430OST" un3_)s *bawrite549"> 9"96d="L539" cSELECT_0"> 4/*"unommepanlonge1" cla1466T&quoT&un2eref">bareat541T&un2e=in156sun3_NCR5380.....return.-1r"line" ns="9arsi_Host"9149sun3_NCR5c#L5+code=NCR5380_phostdatali9ar" class=9569T"15d.
 *bareat541SCpe=in.Gline" name="L5ihis_residualeref">bareat541"his_residuald="Lae=namTATUS_e" cla1466T&quocmd").t *bareat541SCpe=in.Gline" name="L5bu1fars_residualeref">bareat541bu1fars_residuald="L4 1562un3_NCR5380.c#L5380.c#L518" id=eref">9a="line" n957ET"15*/
bareat541T&un2e=ina> *bareat541SCpe=in.Gline" name="L5bu1fareref">bareat541bu1fare=in-tance" cla1466T&quolength0" id="L470" cllengthe=in156sun3_NCR5380.....return.-1r"line" ns="9orsi_Host"9class="time_befors541"> 99 id="970pan>
 *bareat541SCpe=in.Gline" name="L5bu1fareref">bareat541bu1fare=ino1571un3_NCR538CR5380.c#L483" id="L483" cl9ss="line" 915*2T"15d)) {
 stan} /<>111562un3_NCR5380.c#L5380.c#L518" id=eref">9" cla15*3T9quot;15cmd);
bareat541T&un2e=ina> *bareat541SCpe=in.Gline" name="L5ihis_residualeref">bareat541"his_residuald="L1571un3_NCR538CR5380.c#L483" id="L483" cl9s cla15a4T9me="L512"> 512 9" id="L539" ciECT_________e" cla1466T&quod#ass="t;scside=ina> *bareat541SCpe=in.Gline" name="L5ptr 512 D128, lae8154sun3_CR5380.c#L483" id="L483" class="l9srsi_Host"9 won *rbitrass=",refart S9lef=s97span>
bareat541T&un2e=inatanc_e" cla1466T&quoSUN3_DMe_MINSIZE_BASEun3_N|.#L5SUN3_DMe_MINSIZEd="L4 e=namTATUS_Ye=basr" class="d="L4dma_she1p_donu#ass="t;scsid="L4dma_she1p_donud="L54sun3_CR5380.c#L483" id="L483" class="l9sr" class=9get ID#as9;s"on0laeiSCSIa9us68<978pan>
 * 5129ne" n1481T9quot;14 = 0;

 * *9ns="line" 952eref">bawrite541"> 9" i9="L5398R_I name="L430"> stan39" cSELECT_0"> D=basr" class="d="L83" 4dma_she1p#ass="t;scsid="L83" 4dma_she1pR_BSYe=basr" class="d#ass="t;scside=in,de" cla1466T&quoT&un2eref">bareat541T&un2e=in,55sun3_NCR5while (#L538" id="L538time_be9n cla15*3T9quot;142    
 stan39" cSELECT_0"> D=basr" class="rq_d541_dir * * 512<9n="line" n9me="L512"> 512 9" id="L539" ciECT_________ECT_0"> D=basr" class="d="L4dma_she1p_donu#ass="t;scsid="L4dma_she1p_donud="La> * 512<9nus delay 9SELsisstrue beforslBSY go9s fal98N_ERR class="linestannnnnnnnn}571un3_NCR538CR5380.c#L483" id="L483" cl9"5" name="9eionly way8to guarantee t9ss we98539" cMODE_RE" cSELEn}571un3_NCR538CR5380.c#L483" id="L483" cl9"ass=1557T9y"afterLselef=s="68 512<9nrsi_Host"9me="L512"> 512149sun3_NCR5c#L5+code=NCR5380_phostdatali9nr" class=9quot;14 struct {

bawrite541"> 9" i9="L53989="L5#endif549un3_#if 0"line" name="L512"> 512<9DAT  class9"line" nICR_ASSERT_DAT un9_N|.#990pan>
bawrite541"> 9" i9="L5399mas>1532un3_NCR5380.c#L518" id=udelayatus" cl9" cla1493T9quot;14span> }, 
 512 9" id="L539" ciUS_RGline" name="L5sink#ass="t;scsidinke=inae=namTATUS_Ye=basr" class="oT&qu#ass="t;scsi%T&que=ina!>9DATN5while9pts must be turneI0offlpr9or8to99N_ERR class="linestanspan class=15422STATUS_OUTPUT_DAT _REGsi_H,55+code=NCR5380_phostdataline" naTARGEfclass="srICR_BASEun3_N|.#L5TARGEfclass="srICRe=in,dspan class=1542PHASE_SR_TO_TCerLwon *rbitrassPHASE_SR_TO_TCe80_phostdataline" naimperef">bareat541"mpd="L4>1571un3_NCR538CR5380.c#L483" id="L4ass="l9wis="we0wi9l  hrggerL538 467 512<9"writeline9me="L512"> 512 512i].2">562un3_NCR5380.c#L5380.c#L518" id=eref">9"rsi_Host"9quot;14/span>}, 

1571un3_NCR538CR5380.c#L483" id="L483" cl9"r" class=92hostdata/a>(-hrefruct 
i].
bawrite541"> 9" id=999="L539" cSELECT_stanspan class=15422STATUS_OUTPUT_DAT _REGsi_H,55+code=NCR5380_phostdataline" naASEatus" class="srICR_BASEun3_N|.#L538" id="L538ICR_ASSERT_SELe=basr" class="ICR_ASSERT_SELun3_N|"line" name="L512">571un3_NCR538CR5380.c#L483" id="L483" c202"> 512 52eref">bawrite541">202">>202"pan>
i].4157/pre>>71un3_NCR538CR5380.c#L483" id="L483" c2021> 512bawrite541"> 9" 2022e>202R_I name="L430"> stanspan class=1542sink#ass="t;scsidinke=ina><0156sun3_NCR5380.....return.-1r"line" ns=2022> 512 }, 
202d="L539" cINITIAT____continue156sun3_NCR5380.....return.-1r"line" ns=2023> 512 512202> 9" id="L539" ci}571un3_NCR538CR5380.c#L483" id="L483" c2024> 5122024Ra h549un3_#if 0"line" name="L512"> 5122025> 512202539" cMODE_RE" cSswitchEYe=basr" class="oT&qu#ass="t;scsi%T&que=in4 1562un3_NCR5380.c#L5380.c#L518" id=eref"2026> 512 512202d="L539" cSELECT_c&qu1span class=1542PHASE_riveive#ass="t;scsiPHASE_riveive="L5:562un3_NCR5380.c#L5380.c#L518" id=eref"2027> 512}, 
202span>#US_Ye=basr" class="NDEBUG_ASSERT_SELun3_NDEBUGd="Lae=name" cla1571T"NDEBUG_NO_riveive#ass="t;scsiNDEBUG_NO_riveivee=in4562un3_NCR5380.c#L5380.c#L518" id=eref"2028> 512(-hrefruct <202ho>2028pan>
 430OST" uNDEBUG_NO_riveive5she, attempee52riveive5="sref">NCR53562un3_NCR5380.c#L5380.c#L518" id=eref"2029> 512bawrite541">202=">2029="L539" cSELECT____________od="L539" cnOST" name="L430abovee5ss="sref">NCR53cmtsi_H-hrefruct  512
20qu_I name="L430"> stanspan class=1542sink#ass="t;scsidinke=ina><>156sun3_NCR5NCR5380.c#L483" id="L483" cl20q1> 512 520ss=>20qR_I name="L430"> stanspan class=1542do_above#ass="t;scsido_above80_phostdataline" nauot;15> 463
 512bawrite541"> 9" 2052e>20qd="L539" cINITIAT____e=basr" class="cmd").t * * 51220q> 9" id="L539" ciECT_e=basr" class="cmd").t * * 512) {
20qN_ERR class="linestanive15e1571un3_NCR538CR5380.c#L483" id="L483" c20q5> 512 51220qref="#endif549un3_#if 0"line" name="L512"> 51220q6> 51220qd="L539" cSELECT_c&qu1span class=1542PHASE_riveIR_ASSERT_SELun3_PHASE_riveIR="L5:562un3_NCR5380.c#L5380.c#L518" id=eref"2017> 51220qspan>
iive15mas>154sun3_CR5380.c#L483" id="L483" class="20q8> 51220q#as9;reic"nfuscom" class="liiiiiiiiiiiiiiiii* If2t{
154sun3_CR5380.c#L483" id="L483" class="20q9> 51220qET"15mask)
150sun3_NCR5380.c#L458" id="L4511118" cl202"> 512     * various20"co>20"cT"15mask)
154sun3_CR5380.c#L483" id="L483" class="20"1> 51220"R_I name="L430"> stanUS_RRe" cla1466T&quocmd").t *bareat541SCpe=in.Gline" name="L5ihis_residualeref">bareat541"his_residuald="Lae=namTATUS_e" cla1466T&quocmd").t *bareat541SCpe=in.Gline" name="L5bu1fars_residualeref">bareat541bu1fars_residuald="L4 1562un3_NCR5380.c#L5380.c#L518" id=eref"20"2> 51220"d="L539" cINITIAT________++e=basr" class="cmd").t *bareat541SCpe=in.Gline" name="L5bu1fareref">bareat541bu1fare=in1571un3_NCR538CR5380.c#L483" id="L483" c2023> 51220"> 9" id="L539" ciECT_____--e" cla1466T&quocmd").t *bareat541SCpe=in.Gline" name="L5bu1fars_residualeref">bareat541bu1fars_residuald="L1571un3_NCR538CR5380.c#L483" id="L483" c2024> 51220"N_ERR class="linestannnnne" cla1466T&quocmd").t *bareat541SCpe=in.Gline" name="L5ihis_residualeref">bareat541"his_residuald="La> *bareat541SCpe=in.Gline" name="L5bu1fareref">bareat541bu1fare=in-tance" cla1466T&quolength0" id="L470" cllengthe=in156sun3_NCR5380.....return.-1r"line" ns=20"5> 512Sc20lae>20"539" cMODE_RE" cSELEEEEEEspan class=1542cmd").t *bareat541SCpe=in.Gline" name="L5ptr *bareat541SCpe=in.Gline" name="L5bu1fareref">bareat541bu1fare=ino1571un3_NCR538CR5380.c#L483" id="L483" c20"6> 512  2020"d="L539" cSELECT_0"> 4/*"ostdataline" naASFom earget #ass="t;scsiASFom earg80_phod="L539" cnOST" name="L430"> 430OST" u30OST"mbytesnand530OST"mbu1fars leftss="sref">NCR53c534un3_NCR5N430" class="liSEL_PRINTKre"20"7> 512     * various20"co>20"span>
 4/*"ostdataline" na *bareat541SCpe=in.Gline" name="L5ihis_residualeref">bareat541"his_residuald="Lc534un3_NCR5N430" class="liSEL_PRINTKre"20"8> 51220"8pan>
 *bareat541SCpe=in.Gline" name="L5bu1fars_residualeref">bareat541bu1fars_residuald="Lo1571un3_NCR538CR5380.c#L483" id="L483" c20"9> 512 512 51220meRa h549un3_#if 0"line" name="L512"> 5122031> 512)
20mR_I name="L430"> stanst;15mask)
154sun3_CR5380.c#L483" id="L483" class="20m2> 5121);NCR5380.c#L470"20y54>20mntorsT128, lae8 512);
20merLskip tass lest *nd class=""""""""""""""""* PSEUDO-DMA"> 51systems1 catuot;1ST" caly PIO,ELAYe=basr" class="CONFIG_ATARI_a href="drive120m4> 512 541  20EL_>20m9" c__LINE__ class="line" n_""""""""""""""""* sive1"wlacNE_letlahquhardwot;1dolahquhandshakivee15Gsp>150sun3_NCR5380.c#L458" id="L4511118" cl2035> 512)
20m"Ra hre57" iay?) class="line""""""""""""""""*15Gsp>150sun3_NCR5380.c#L458" id="L4511118" cl2036> 512 51220mclass="comment">     * vario""""""""""""""""* F 51529T&to work,ewqunepanto know1 cla1ransfarsiz 12Gsp>150sun3_NCR5380.c#L458" id="L4511118" cl2037> 51220m beforsltae"" class="line" """""""""""""""""* ahead of time, sive1" clapseudo-DMA"e="L1 illnsit12Gsp>150sun3_NCR5380.c#L458" id="L4511118" cl2038> 512   20spa>20m#as9;reic"nfuscom" class="liiiiiiiiiiiiiiiii* inman uncondi565Tal loope15Gsp>150sun3_NCR5380.c#L458" id="L4511118" cl2039> 512 51220mET"15mask)
154sun3_CR5380.c#L483" id="L483" class="204"> 512);
20quRa h549un3_#if 0"line" name="L512"> 5122041> 512 5code=local_irq20oua>20qlae pipea hr5with an8150sun3_NCR5380.c#L458" id="L4511118" cl2042> 512}
20qntorsT128, lae8150sun3_NCR5380.c#L458" id="L4511118" cl2043> 512 51220qerLskip tass lest *nd class=* ="dread of leavive REAL_DMe oute15Gsp>150sun3_NCR5380.c#L458" id="L4511118" cl2044> 51220q9" c__LINE__ class="line" n_le15mas>154sun3_CR5380.c#L483" id="L483" class="20q5> 51220q"Ra h549un3_#if 0"line" name="L512"> 51220q6> 51220q6pan>#US_span class=1542def12 * 51220q beforsltae"" class="line" //iiiiiiiiiiiiiiUS_RRcmd-tancdevie1-tancborkenae=namTATUS15mas>154sun3_CR5380.c#L483" id="L483" class="20q8> 512},
20q8pan>
 463
 * 51220rg="L539" cSELECT_________span class=1542len0" id="L470" cllen12
 51220rR_I name="L430"> stan39" span class=1542cmd").t *bareat541SCpe=in.Gline" name="L5pT&qu#ass="t;scsi%T&que=ina> 51220r2Ra h549un3_#if 0"line" name="L512"> 5122053> 51220r> 9" id="L539" ciECT_____US_Ye=basr" class="NSTATUS_transfar_dma0" id="L470" cl2STATUS_transfar_dma80_phostdataline" nauot;15> 463
 51220rN_ERR class="linestannnnnnnnne=namGline" name="L5len0" id="L470" cllen12 *bareat541SCpe=in.Gline" name="L5ptr 512 51220r539" cMODE_RE" cSELEEEEEE39" st;15mask)
154sun3_CR5380.c#L483" id="L483" class="2056> 512
20rclass="comment">     * vario""""""""""""""""""""""""* If2t{
 watchdog timer fires, allnfutur 12Gsp>150sun3_NCR5380.c#L458" id="L4511118" cl2057> 512 20cla>20r beforsltae"" class="line" """""""""""""""""""""""""* accesquse clah9T&devie11 illnusei cl15mas>154sun3_CR5380.c#L483" id="L483" class="2058> 51220r#as9;reic"nfuscom" class="liiiiiiiiiiiiiiiii""""""""* polled-IO._le15mas>1>571un3_NCR538CR5380.c#L483" id="L483" c2059> 512
20r9="L539" cSELECT_____________1" cla1466T&quoorivtk#ass="t;scsi%rivtk80_pho" cla1466T&quoKERN_NOTICE_BASEun3_N|.#L5KERN_NOTICE="L53od="L539" cnOST" name="L430"> 430OST" uswitchive  2"> 5130OST"m="sref">NCR53562un3_NCR5380.c#L5380.c#L518" id=eref"206"> 512bareat541"> 20e=">20e=pan>
NCR53cmtsi_H-hrefruct  51220eR_I name="L430"> stan39" cSELECT_0">Gline" name="L5cmd").t * * * * * 512bawrite520 na>20ed="L539" cINITIAT____________1" cla1466T&quoTmd").t * *bareat541borkene=ina><>156sun3_NCR5NCR5380.c#L483" id="L483" cl2063> 512bares20ne">20e> 9" id="L539" ciECT_________e" cla1466T&quo2STATUS_OUTPUT_DAT _REGsi_H,55+code=NCR5380_phostdataline" naASEatus" class="srICR_BASEun3_N|.#L538" id="L538ICR_ASSERT_SELe=basr" class="ICR_ASSERT_SELun3_N|"line" name="L512">571un3_NCR538CR5380.c#L483" id="L483" c2064> 512 9" id="L20" n>20eN_ERR class="linestannnnnnnnn____e" cla1466T&quolass=1445T&ICR_ASSERT_SELun3_))s="sref">i].41571un3_NCR538CR5380.c#L483" id="L483" c2065> 512 430OST" un3_)s<20="L>20e539" cMODE_RE" cSELEEEEEE39" s" cla1466T&quo8ink#ass="t;scsidinke=ina><>156sun3_NCR5NCR5380.c#L483" id="L483" cl2066> 512bawrite520 na>20ed="L539" cSELECT_0"> 4/*"39" s" cla1466T&quodo_above#ass="t;scsido_above80_phostdataline" nauot;15> 463
 51220espan>
 * * 512
20e8pan>
 * * 512
20e9="L539" cSELECT_____________1pea hr5with an8154sun3_CR5380.c#L483" id="L483" class="207"> 512 20cla>20cl="L539" cSELECT_________} /<>111562un3_NCR5380.c#L5380.c#L518" id=eref"20c1> 512)) {
<2015*>20c1pan>#USdeS_e" cla1466T&quoREAL_DMeT_SELun3_N|"linREAL_DMess="571un3_NCR538CR5380.c#L483" id="L483" c20c2> 512);
20cd="L539" cINITIAT____________1pea hr5with an8 512 51220cerLskip tass lest *nd class=""""""""""""""""""""""""* ="f> 51220c9" c__LINE__ class="line" n_""""""""""""""""""""""""* drirtive DMe sive1"ituhas nothive morei oe=AYe=basr" class="CONFIG_ATARI_a href="drive12075> 512
150sun3_NCR5380.c#L458" id="L4511118" cl2076> 512 51220cclass="comment">     * vario""""""""""""""""""""""""*e15mas>154sun3_CR5380.c#L483" id="L483" class="2077> 51220cspan>
 4/*""""""ive15e1571un3_NCR538CR5380.c#L483" id="L483" c2078> 51220c1#/<>11111111111111111111571un3_NCR538CR5380.c#L483" id="L483" c2079> 512 51220c9="L539" cSELECT_____________1" cla1466T&quoTmd").t *bareat541SCpe=in.Gline" name="L5ihis_residualeref">bareat541"his_residuald="L ->
 512 = 0;
20qu/s>1#/ndif549un3_#if 0"line" name="L512"> 5122081> 512bawrite541"> 9" 2052e>20qR_I name="L430"> stan39" }571un3_NCR538CR5380.c#L483" id="L483" c2082> 512    
20qd="L539" cINITIAT____} /<>11571un3_NCR538CR5380.c#L483" id="L483" c2083> 512 51220q3/s>1#/ndif_D128, lae8154sun3_CR5380.c#L483" id="L483" class="20q4> 51220qN_ERR class="linestannne=basr" class="NSTATUS_transfar_pio0" id="L470" cl2STATUS_transfar_pio80_phostdataline" nauot;15> 463
 51220q539" cMODE_RE" cSELEEEEEE(un* *)ne=namGline" name="L5cmd").t *bareat541SCpe=in.Gline" name="L5ihis_residualeref">bareat541"his_residuald="Lc (unommepanchar **)571un3_NCR538CR5380.c#L483" id="L483" c2086> 512<20y"a>20qd="L539" cSELECT_0"> 4/*"e=namGline" name="L5cmd").t *bareat541SCpe=in.Gline" name="L5ptr 512 51220q7ef="#ifdeS_e" cla1466T&quoREAL_DMeT_SELun3_N|"linREAL_DMess="571un3_NCR538CR5380.c#L483" id="L483" c2088> 51220q8pan>
bawrite541"> 9" 2052e>20q9="L539" cSELECT_____ifRGline" name="L5d="L4dma_she1p_donu#ass="t;scsid="L4dma_she1p_donud="La>> * 51220"l39" cMODE_RE" cSELEEEEEE39" s" cla1466T&quo8="L4dma_she1p_donu#ass="t;scsid="L4dma_she1p_donud="La> 512bawrite541"> 9" 2052e>20"1/s>1#/ndif549un3_#if 0"line" name="L512"> 5122092> 512 }, 
20"2Ra h549un3_#if 0"line" name="L512"> 5122093> 512 51220"> 9" id="L539" ciECT_break1571un3_NCR538CR5380.c#L483" id="L483" c2094> 51220"N_ERR class="linec&qu1span class=1542PHASE_MSGIR_ASSERT_SELun3_PHASE_MSGIR_ERR:562un3_NCR5380.c#L5380.c#L518" id=eref"2095> 51220"539" cMODE_RE" cSELEEspan class=1542len0" id="L470" cllen12<>156sun3_NCR5NCR5380.c#L483" id="L483" cl2096> 512 51220"d="L539" cSELECT_stanspan class=1542d541").t *bareat541"mpd="L156sun3_NCR5NCR5380.c#L483" id="L483" cl2097> 512}, 
20"span>
iELECT_ENABLEun3_d="Lc 0);ECT_D128, lae8154sun3_CR5380.c#L483" id="L483" class="2098> 512(-hrefruct <202ho>20"8pan>
 463
 * 512bawrite541">20e=">20"9="L539" cSELECT_stanspan class=1542cmd").t *bareat541SCpe=in.Gline" name="L5Messagu#ass="t;scsiMessagu12bareat541"mpd="L156sun3_NCR5NCR5380.c#L483" id="L483" cl212"> 512 52eref">bawrite541">212">>212"pan>
 512bawrite541"> 9" 2122e>212R_I name="L430"> stanswitchEYe=basr" class="imperef">bareat541"mpd="L411562un3_NCR5380.c#L5380.c#L518" id=eref"2122> 512 }, 
212d="L539" cINITIAT____st;15mask)
154sun3_CR5380.c#L483" id="L483" class="2123> 512 512210erLskip tass lest *nd class=""""""""""""""""* Linkive_lets usiredue1" clatime requirednto getlahqu15mas>154sun3_CR5380.c#L483" id="L483" class="2124> 5122109" c__LINE__ class="line" n_""""""""""""""""* nexta
154sun3_CR5380.c#L483" id="L483" class="2125> 512210"Ra hre57" iay?) class="line""""""""""""""""* me7" w;1don't waste another revolu565T due  clahqu+elays15mas>154sun3_CR5380.c#L483" id="L483" class="2126> 512 512210class="comment">     * vario""""""""""""""""* requirednby ARBITRATIORnand5another >ELECTIORe15Gsp>150sun3_NCR5380.c#L458" id="L4511118" cl2127> 512}, 
210 beforsltae"" class="line" """""""""""""""""*15Gsp>150sun3_NCR5380.c#L458" id="L4511118" cl2128> 512(-hrefruct <212ho>210#as9;reic"nfuscom" class="liiiiiiiiiiiiiiiii* Ini clacurr na impleass=
565T pro7osal, lowulevel 5380.c#15Gsp>150sun3_NCR5380.c#L458" id="L4511118" cl2129> 512bawrite541">212=">210ET"15mask)
 512
211cT"15mask)
150sun3_NCR5380.c#L458" id="L4511118" cl21q1> 512 521ss=>211lae pipea hr5with an8154sun3_CR5380.c#L483" id="L483" class="21q2> 512bawrite541"> 9" 2152e>21qd="L5#ifdeS_e" cla1466T&quoLINKEDeref">bareat541LINKEDRa h549un3_#if 0"line" name="L512"> 51221q3> 51221q> 9" id="L539" ciECT_c&qu1span class=1542LINKED_CMD538IPLETRT_SELun3_N|"linLINKED_CMD538IPLETR_ERR:562un3_NCR5380.c#L5380.c#L518" id=eref"21q4> 512) {
21qN_ERR class="linestanc&qu1span class=1542LINKED_FLG_CMD538IPLETRT_SELun3_N|"linLINKED_FLG_CMD538IPLETR_ERR:562un3_NCR5380.c#L5380.c#L518" id=eref"21q5> 512 512211539" cMODE_RE" cSELEEEEEEs128, lae8154sun3_CR5380.c#L483" id="L483" class="21q6> 51221qd="L539" cSELECT_ELEEEEEEs" cla1466T&quo2STATUS_OUTPUT_DAT _REGsi_H,55+code=NCR5380_phostdataline" naASEatus" class="srICR_BASEun3_N|.#L538" id="L538ICR_ASSERT_SELe=basr" class="ICR_ASSERT_SELun3_N|"line" name="L51<1571un3_NCR538CR5380.c#L483" id="L483" c2117> 51221qspan>
 5122118pan>
 430OST" u 2"> 5130OST"mlun130OST"mspakpancNCR53562un3_NCR5380.c#L5380.c#L518" id=eref"21q9> 5122119="L539" cSELECT_____________LEEEEEEs128, lae8NCR53cmtsi_H-hrefruct  * * * * * 512     * various21"co>212uRa h549un3_#if 0"line" name="L512"> 51221"1> 51221"R_I name="L430"> stanEEEEs128, lae8154sun3_CR5380.c#L483" id="L483" class="21"2> 51221"d="L539" cINITIAT________e" cla1466T&quo2STATUS_OUTPUT_DAT _REGsi_H,55+code=NCR5380_phostdataline" naSELECT_ENABLEun3_))s="sref">iELECT_ENABLEun3_d="Lc ostdataline" nahostd541").t * 51221"> 9" id="L539" ciECT_____st;15mask)
154sun3_CR5380.c#L483" id="L483" class="2124> 5122129" c__LINE__ class="line" n_""""""""""""""""""""* Sanity check : Amspakpanc154sun3_CR5380.c#L483" id="L483" class="21"5> 512Sc21lae>212"Ra hre57" iay?) class="line""""""""""""""""""""*1with one of thes  messaguseif_t{
154sun3_CR5380.c#L483" id="L483" class="21"6> 512  21212class="comment">     * vario""""""""""""""""""""*nc150sun3_NCR5380.c#L458" id="L4511118" cl21"7> 512     * various21"co>212 beforsltae"" class="line" """""""""""""""""""""ne15mas>154sun3_CR5380.c#L483" id="L483" class="21"8> 51221"8pan>54sun3_CR5380.c#L483" id="L483" class="21"9> 512 * * 512 512213=pan>
 430OST" u 2"> 5130OST"mlun130OST"m="sref">NCR53562un3_NCR5380.c#L5380.c#L518" id=eref"2131> 512)
21mR_I name="L430"> stan"drECT__________Gd="L539" cnOST" name="L430lpakpancNCR53c534un3_NCR5N430" class="liSEL_PRINTKre"21m2> 5121);NCR5380.c#L470"21y54>213d="L539" cINITIAT____________L430"> stsi_H-hrefruct  * * * * * 512);
213> 9" id="L539" ciECT_________ECT_s" cla1466T&quo8ink#ass="t;scsidinke=ina><>156sun3_NCR5NCR5380.c#L483" id="L483" cl21m4> 512 541  21EL_>213N_ERR class="linestannnnnnnnn____e" cla1466T&quodo_above#ass="t;scsido_above80_pEYe=basr" class="uot;15> 463
 512)
213539" cMODE_RE" cSELEEEEEE39"     ive15e1571un3_NCR538CR5380.c#L483" id="L483" c2136> 512 512213d="L539" cSELECT_ELEEEEEE}571un3_NCR538CR5380.c#L483" id="L483" c2137> 51221m befo571un3_NCR538CR5380.c#L483" id="L483" c2138> 512   21spa>2138pan>
bareat541initialize_SCp80_pho" cla1466T&quocmd").t * * 512 5122139="L539" cSELECT_________s128, lae8150sun3_NCR5380.c#L458" id="L4511118" cl214"> 512);
214cT"15mask)
154sun3_CR5380.c#L483" id="L483" class="2141> 512 5code=local_irq21oua>214R_I name="L430"> stan39" span class=1542cmd").t * *bareat541"ag12 *bareat541"ag12 512}
214d="L539" cINITIAT________e" cla1466T&quoTmd").t * * *bareat541SCpe=in.Gline" name="L5Status#ass="t;scsiStatusd="La|_RGline" name="L5cmd").t *bareat541SCpe=in.Gline" name="L5Messagu#ass="t;scsiMessagu12 512 512214> 9" id="L539" ciECT_____span class=1542LNKom earget #ass="t;scsiLNKom earg80_phod="L539" cnOST" name="L430"> 430OST" u 2"> 5130OST"mlun130OST"mspakpanrequNCR53562un3_NCR5380.c#L5380.c#L518" id=eref"2144> 512214N_ERR class="linestannnnnnnnn_______s128, lae8NCR53c562un3_NCR5380.c#L5380.c#L518" id=eref"2145> 512214=in-tance" cla1466T&quonext_spak"5;_____e" cla1466T&quoTmd").t * ead of lea1ive REAL_DMe oute15Gsp>151sun3_1CR5380.c#_spak,1done()Dis ca/a>21"1>="drSme="L512"> 51221"1>="drS83" c2135> 512)
213d="L539" cSELECTleires lectaun*erruptsune15mas>154sc#L5380.c#L518" id=eref"2145> 512 eo>213539" 122s="209"> 512154sun3_" cla1466T&quoTmd").t * * 463
 512 5code=local_irq21oua>214R_I name=SEun3_N|.#15SUN3_DMe_MINSIZEd="L4 1512un3_1CR5380.c#L5380.c#L518" id=n3_NCR538CR5380.c#L483" id="L483" c2091> 512 51221rR_I n512"> 5122081> 512b CR_ASS2139="L539" cSELECT_________s128, lt *bareat541SCpe=in.9un3_#if 0"line" namABOR2"> 512 9" id="L539" ciECT_c&qu1span class=1542LIN 51220r>19" id="L539" ciECT____9un3_#if 0"line" nam821q3> 51221q3> 1q> 9"La> *20rN_ERR class="linest1nnnnn1nnne=namGline" name="L5len.c#L5380.c#L518" id=eref"21q4> 512) {
21qN_ERR class="linestanc&qu1span clasb15LINKED_FLG_CMD538IPLETR_ERR:562un3_NCR5380.c#L5380.c#L518" id=eref"21q5> 512 512211539" cMODE_RE" cSELEEEEEEs128, lae8154sun3_CR5380.c#L483" id="L483" class="21q6> 512154sun3_CR5380.c#L483" iconncctl2044> 512>bareat54,rnext_spakd="L411562un3_NCR5380.c#L5380.c#L518" id=eref"213"> 512214N_ERR class="linestannnnnnnnn_______s128, lae8NCR53c562un3_NCR5380.c#L5380.c#L518" id=eref"2145> 512214=in-tance" cla1466T&quonext_spak"5;_____e" cla1466T&quoTmd").t * 2
21r9="L139" cS.c#_spak,1done()Dis caSUPPOR2_TAGSme="L512"> 512 512)
NCR535621n3_NCR5380.c#L5380.c#L5181 id=e1ef"206"> 512_483" class="2141> d=e_12">_483.t 4class=1542DID_ERROerLwon < 21> 512 *_quoS>213d="L539" cSELECT_ELEEEEEE}571un3_NCR538CR5380.c#L483" id="L48geref">bareat541"ag12 512)>20q8pan>
 512 512bawrite520 na>20ed="ref="drECT_____span classcmdn-tao BUSY, I41innk
20rclass="comment">     * vario""""""1e="L52eref1>bares20ne">20e> 9" id="L139" c16eal DMe,ELAYe=basr" class="CONFIG_ATARI_a href="drive1midid="L45cannot&quoKle QUEUE F#as :-( (Ta href20quo>20rclass="comment">     * vario""""""1ean word201e=basr" class="ICR_ASSERT1SELun1615e aftare=AYe=basr" class="CONFIG_ATARI_a href="drivetialize_SCpreT__ref"a>); BUSY). Also updanceou;
20cd="L539" cINITIAT____________11="linestan1nnnnnnn____e" cla1466T&qu1lass=16eat541SCpe=in.Gline" name="L5ptr2109numb); ofECTIORe1ly_SCsuLINE__ class="line" n_""""""""""""""""""""* Sanitynk#ass="t;1csidinke=ina><>156sun31NCR5N16)
154sun3_CR5380.c#L483" id="L483" clas1"5> 512Sc21lae>212"Ra hre57" iay?) class id="L483"1c2067> 512150sun3_NCR5380.c#L458" id="L4511 href21quo>21qN_ERR class="linestanc&qu1span clasNCR538CR5310.c#L483" id="L483" c20681 512<120569T"15d.
20e8pan>
 * *21qN_ERR class="linestanc&qu1span clas2019="L539" cSELECT_________1___1p17 href="drECT__________Gline" 8pan>
 512214N_ERR class="linestannnnnnnnn_______s128, lae8NCR53c562un3_NCR5380.][eref 21tso>214N_ERR class="linestannnnnnnnn_______s128, lae8 *]a hrcmde=in-tanc_mne" name="L5cmd").t 83" id="L413" class="207"> 512 20cla>20cl="L539pan>
bareat541SCpe=in.GliEL_PRIed="L411562un3_NCR5380.c#L5380.c#L518" id=eref"213"> 512<<2015*>20c1pan>#USdeS_e" cla1466T&qu1REAL_17/a> *20e8pan>
); =in.Gli1"5> 512"t;scsiLNKom earg80_phod="L539" cnOST" name="L430"> 430OSea hr5with1an8 512214> 9" "L539pan>
214N_ERR class="linestannnnnnnnn_______s128, lae8NCR53c562un3_NCR5380.c#L5380.c#L518" id=eref"2145> 512214=in-tance" cla1466T&qe_d3" 4donu().ss="srefcla1466T&quoTmd").t *rg80_phod="L539" cnOST" name="L430"> 430OSean word201="f>NCR53562un3_NCR5380.c#L5380."L539pan>
 512 512 * __LINE__ c1ass="line" n_""""""""""""1"""""1745T&ICR_ASSERT_SELun3_))s="sre" name="L5pT&qu#as48" class="2141> 51 512 * 512 51 512 512 *< hrcmde=in-tanc_mne" name="L5cmd").t _k#ass="t;1a href="drive14*/20spa>201"Ra h1e57" iay?) class="line""""""""""""q9> 512 51 512 512 *=namGline" name="L58" class="2141> 51 512 *a hrcmde=in-tanc_mne" name="L5cmd").t _id="L483"1> 512 512 * 463
214N_ERR class="linestannnnnnnnn_______s128, lae8NCR53c562un3_NCR5380.]"> 512= ~(1 512214=in-tance" cla1466T&qe_d3" 4donu().ss="srefcla1466T&quoTmd").t * ihis_resid1aleref">bareat541"his_res1duald183" class="209"> 512 * 51221"1> 51221"R_I name="L430"> stanEEEEs128, lae8154sun3_CR5380.c#L483" id="L483" class="21"2> 51221"d="L539" c538Cra hr5with1" id="L483" c2082> 512omaia work"on0my 321, m>21"d="L539" c538Cran word20120SELsisstrue beforslBSY 120SEL120qN_ERR class="linestannnr1466T&quodevie1").t 66T&quolun0" id="L470" cllund="Lo1571un3_NCR538Cr_LINE__ c1ionly way8to guarantee 201io>2018atl15mas>154sun3_CR5380.c#L483" id="L483" class="2I1me="m12ELECorre=in/a> *<_SCp: 66T&quolun0" id="L470" cllund="Lo1571un3_NCR538Crk#ass="t;1NCR538CR5380.c#L483" id="1483" 18  messaguseif_t{
154sun3_ 66T&quolun0" id="L470" cllund="Lo1571un3_NCR538Crid="L483"1n-tance" cla1466T&quoSCpe1ef">b18es, allnfutur 12Gsp>150sun3_NCR5380.c#L458" id="="<4 1562tialize_380.cjust execu>210SCpNOT ame="L5Mes66T&quolun0" id="L470" cllund="Lo1571un3_NCR538Cr4sun3_CR51 cla1466T&quoREAL_DMeT_SE1un3_N18*15Gsp>150sun3_NCR5380.c#L458" id="L4511118"id="="sense, 1562obviousn/a>cef=Cts>2109valL5M21s *rb sto12)
150sun3_NCR5380.c#L458" id="L45111sun3_ 66T&quolun0" id="L470" cllund="Lo1571un3_NCR538C>20"l39" c1ODE_RE" cSELEEEEEE39" s" 1la14619> 512);
150sun3som62uny0me=>20cerLskip tass lest *nd class=""""""""""""""1_she1p_don1d="La>ffeORe1tancebetweer >ELEfailure cef=C1s *rb origina10erLskip tass lest *nd class=""""""""""""""""* L052eref">b1write541"> 9" 2052e>20"1/1>1#/n19541e=in-tance" cla1466T&quoid_mask#ass="t;scsiiize_38LEfailure cef=C1s *rb REQUEST sense - 1562obvious0erLskip tass lest *nd class=""""""""""""""""* L0an word201093> 512 511<19v15mas>154sun3_CR5380.c#L483" id="L483" class="2129un3_SCpeu="205<2>> *<_wLEfall 15roughiize_529T>
20rclass="comment">     * vario""""""1eI0offlp201ts>20"N_ERR class="linec&1u1spa19atl15mas>154sun3_CR5380.c#L483" id="L483" class="21"ag12 cef=Cunchanged"15mask)
154sun3_ 66T&quolun0" id="L470" cllund="Lo1571un3_NCR538C/20quot;141span>}, 
20"1pan>
19es, allnfutur 12Gsp>150sun3_NCR5380.c#L458" id="="s=154on-obviousnplac3_SCp>> *<_*rb REQUEST SENSErfailLINE__ class="line" n_""""""""""""""""""""* Sanitysfar_pio0"1id="L470" cl2STATUS_trans1ar_pi19*15Gsp>150sun3_NCR5380.c#L458" id="L4511118"id="=466T&quolun0" id="L470" cllund="Lo1571un3_NCR5382 c2099> 512bawrite542">20e20/a> *bare2t541S2pe=in.Gline" name="L5MMMMMe" name="L5pT&qu#asd=eref"2145> 512 512 512 522ref">bawrite541">212">>>>>>>>>ame="L5pT&qu#asd=eref"2145> 512bareat541"ag12 *bareat541"ag12 512}
214d="L539" cINITIAT________e" cla1466T&quoTmd").t * * *bawrite541"> 9" 2122e>222R_I 20e=in.Gline" name="L5Statu id="e" name="L5pT&qu#ass2142>_quoST&quoresula").t<2142>_quoS>213d="L539" cSELECT_ELEEEEEE}571un3_NCR538CR5380.c#L483" id="L48geref">bareat541"ag12 512)>!namGline" name="LGOOas1with unspakpaGOOaa> *< hrcmde=in-tanc_mne" name="L5cmd").t2o>212d="L529" cINITIAT____st;15mask<2a>)
<20="L512"> 5122ame="L5pT&qu#asd=eref"2145> 512bareat541"ag12bareat541"ag12<> 512 0x00ffff)do_above80_phostdataline" nauot;15> 46
21"d="L539" c5382inkive_let2 usiredue1" clatime requi2ednto200qN_ERR class="linestannnomaia work"on0my 321, m>21"d="L539" c5382i6kive_let2 s>20"N_ERR class="linec&2& ill20R5380.c#_spak,1done()Dis caAUTOSENSEref"2145> 512 * 512 512
 512 512> 512}, 
20"2io"""208T&qu2020espan>
 5122ame="L5pT&qu#asleires lectaun*erruptsune15mas>154sun3_CR5380.c#L483" iseL483" id="L483" seL 51220cspa eh5pT&to12_cmneref"2145> 512 eh5pT&to12_cmne>213d="L539" cSELECT_ELEEEEEE}571un3_NCR538CR98> 512154sun3_CR5380.c#L483" iseL483" id="L483" seL21"d="L539" c5382urr na imp2eass=
565T pro7osal, lowu2evel 21d="L483" class="20q9> 512bawriteleires lectaun*erruptsune15mas>154sun3_CR5380.c#L483" iseL483" id="L483" seL21"d="L539" c5382uin-tance"2rirtlahqunexta

)
2512 521ss=>211lae pipea hr5w""""e" nname="L5pT&qu#asd=eref"2145> 512 512 512 512> 512nomaia work"on0my 321, m>21"d="L539" c5382e>21qd="L52ifdeS_e" cla1466T&quoLINK2Deref2>bareat541LINKEDRa h5444444444name="L5pT&qu#ass2142>_quoST&quoresula").t<2142>_quoS>213d="L539" cSELECT_ELEEEEEE}571un3_NCR538CR5380.c#L483" id="L48geref">bareat541"ag12 512)>20q8pan>
 51220cspa eh5prep_cmneref"2145> 512 eh5prep_cmne>213d="L539" cSELECT_ELEEEEEE}571un3_NCR538CR98> 512154sun3_CR5380.c#L483" iseL483" id="L483" seL21"d="L539" c5382u6kive_let2D_FLG_CMD538IPLETRT_SELun2_N|"l2nLINKED_FLG_CMD538IPLETR_Erefart 20 wo>20cspaASEN_tusd="La|_RGline" namASEN_tusd=".t * 430O2ppens1when2we cease to21hap>21qd="L529" cS2LECT_ELEEEEEEs" cla1466T&qD538IPLETR_Erefart 20 wo>20cspasi%rivtk80_phod="L539" cnOSTkcomaia work"on0my 321, m>21"d="L539" c5382u8kive_let2ataline" naASEatus" class2"srIC2_BASEun3_N|.#L538" id="L53refar1466T&quodevie1").t 1initnitna> 522150sun3_NCR5380.c#L458" id="L4511118"id=""""CR5un3_Cme=.buffeO 5122* 5122*in-tance"2ide=in,de" cla1466T&quoTm2").t<22 by 15Gsp>150sun3_NCR5380.c#L458" id="L45111sun3 ="=466T&quolun0" id="L470" cllund="Lo1571un3_NCR5382R5380.c#L423" id="L483" c212"> 51220cspalocal_irq_savST&quoresula").tlocal_irq_savS>213d="L539" cSELECTflagL483" id="L483" flagLnOSTkcomaia work"on0my 321, m>21"d="L539" c5382 ostdatali2e" nahostd541").t * 5122ame="L5pT&qu#asLIS2"> 512213d="L539" cSELECT_ELEEEEEE}571un3_NCR538CR9154sun3_CR5380.c#L483" idCsuL_queue" class="21"2> 5CsuL_queuenOSTkcomaia work"on0my 321, m>21"d="L539" c5382 ED_CMD5382ciECT_____st;15mask)
2a hre22IPLETR_ERR:562un3_NCR5380refart 20 wo>20cspaSET_NEX2"> 512213d="L539" cSELECT_ELEEEEEE}571un3_NCR538CR98154sun3_CR5380.c#L483" idCsuL_queue" class="21"2> 5CsuL_queuenOSTkcomaia work"on0my 321, m>21"d="L539" c5382 6kive_let2spakpanc20cspaleires lectaun*erruptsune15mas>154sun3_CR5380.c#L483" idCsuL_queue" class="21"2> 5CsuL_queuenOST20cspa cmneref"2145> 512 cmne>213sr" ="L539" cSELECT_ELEEEEEE}571un3_NCR538CRcomaia work"on0my 321, m>21"d="L539" c5382 pens1when2"""""""""""""""*1with one2of th22ECT_ELEEEEEEs" cla1466T&qD538rt 20 wo>20cspalocal_irq_pT&to12T&quoresula").tlocal_irq_pT&to12>213d="L539" cSELECTflagL483" id="L483" flagLnOSTkcomaia work"on0my 321, m>21"d="L539" c5382 8kive_let2mment">  21212class="2ommen22BASEun3_N|.#L538" id="L53refar"L539" cSELECTQUatusd="La|_RGline" namQUatusd=".t * 5122ailablee152sp>150sun3_NCR5380.c#L4582 id="24511118" cl21"7> 51221"d="L539" c5382ais coulI02e"due t21tas>21"8pan>54su23_CR5280.c#L483" id="L483" clas3" id=omaia work"on0my 321, m>21"d="L539" c5382ain-tance"2"> 5122132pan>
233" class="25122081> 512b AUTOSENSE"=466T&quolun0" id="L470" cllund="Lo1571un3_NCR53820OST" u 2"2 5130OST"mlun130OST"m="sr2f">NC253562un3_NCR5380.c#L5380.L483" id="L483" class="21"8> 512 *.c#_spak,1done()Dis ca/a>21"1>="drSme="L512"> 51221"1>="drS83" c2135> 512)
 *213d="L539" cSELECTleires lectaun*erruptsune15mas>154sc#L5380.c#L518" id=eref"2145> 5122s="t;scsi&23dinke=ina><>156sun3_NCR52CR5382.c#L48ass="209"> 512 * * 442571un3_NCR538CR5380.c#L482" id=23ECT_ELEEEEEEs" cla1466T&qfarsiz 463
213539"2cMODE_RE" cSELEEEEEE39"  2  ive23>     * vario""""""""""""""""""""*nc 512   21spa>2138pan>
21"1>e" name="L512"> 51221"1> 51221"R_I name="L430"> stanEEEEs128, lae8154sun3_CR5380.c#L483" id="L483" class="21"2> 51221"d="L539" c5382la1466T&qu2next_spak").t * 463
 66T&quolun0" id="L470" cllund="Lo1571un3_NCR5382ae8150sun3_NCR5380.c#L458" id="L45111sun3_ RT&to12 lects bitakive0 so p>1-tance" cun3se1e=iion, 66T&quolun0" id="L470" cllund="Lo1571un3_NCR5382aOST" u 2"2n39" span class=1542cmd")2t24> 512);
Sc21lae>212"Ra hre57" iay?) clas2=in-tance"2cla1466T&quoSCperef">bare2t541S24eT_SELun3_N|"linREAL_DMess="571un3_NCR538CR5380.e466T&quolun0" id="L470" cllund="Lo1571un3_NCR5382538CR5380.2#L483" id="L483" c2143> 522 51221"1>e" name="L512"> 51221"1> 51221"d="L539" c5382l="t;scsi&230OST"mlun130OST"mspakpan2equNCR53562un3_NCR53omaia work"on0my 321, m>21"d="L539" c5382lestannnnn2ive REAL_DMe oute15Gsp>152sun3_24s="t;scsido_above80_pEwhile nname="L5pT&qu#as/a>21"1>readme="L512"> 51221"1>read/21ae #as9;C++#as9;sf"drUS21"R_I name="L430"> "drUS21"R380.c#> 512art 20 wo>20cspaSR_BSY_I name="L430"> R_BSY380.c#> 512> 512nnt">     * varioleires lectaun*erruptsune15mas>154sun3_CR5380.c#L483" iconncctl2044> 5122="20q5> 512 51221"d="L539" c5382lo>213539"212     * vario""""""""""""""""""""*nc 541  21EL_>213N_ERR class="l2"L470" cl22TATUS_dma_xfar_len80_phos2datal2ne" nauot;15> 463
9un3_#if 0"line" namMESSAG8, lJanEa1466T&quoresulaESSAG8, lJanE" na9" id="L539" ciECT_c&qu1span class=1542LI2SEun3_N|.#25SUN3_DMe_MINSIZEd="L4 1522un3_2CR5380.c#L5380.c#L518" id=.c#L5380.c#L518" id=eref"21q4> 512) {
21qN_ERR class="linestanc&qu1span cla2r1> 512225nt">     * various21"co>212uRa h549un3_#if 0"line" name="L512"> 51221"1> 512211539" cMODE_RE" cSELEEEEEEs128, lae8154sun3_CR5380.c#L483" id="L483" class="21q6> 512 *bareat541SCpe=in. id=.c#L5380.c#L518" id=eref"*212uRa h549un3_#if 0"line" name="L512"> 51221"1> 51221"R_I name="L430"> stanEEEEs128, lae8154sun3_CR5380.c#L483" id="L483" class="21"2> 51221"d="L539" c5382man word202..>20rN_ERR class="linest2nnnnn2nnne=namGline" name="L5lenswitch4name="L5pT&qu#asleires lectaun*erruptsune15mas>154sun3_CR5380.c#L483" iaunt_mce" cla1466T&quoresulaunt_mce" cl380.c#L483" id="L483" class="21"8> 512b25LINKED_FLG_CMD538IPLETR_E9un3_#if 0"line" namHEAD_OF_QUEUE_TAR_I name="L430">HEAD_OF_QUEUE_TAR" na9" id="L539" ciECT_c&qu1span class=1542LI2S"20q5> 512E_RE" cSELEEEEEE39" st;152askORDERED_QUEUE_TAR" na9" id="L539" ciECT_c&qu1span class=1542LI2So>213539"2""""""* If2t{
 watchdog t2mer f25e1571un3_NCR538CR5380.c#L9un3_#if 0"line" namSI21q3_QUEUE_TAR_I name="L430">SI21q3_QUEUE_TAR" na9" id="L539" ciECT_c&qu1span class=1542LI2Slass="lin2line" """""""""""""""""""2"""""2 accesquse clah9T&devie11 illnhref="drECT_____span class=15ref">baobviously does21me="L5support5reggLINE__ class="line" n_""""""""""""""""""""* Sanit22
22r9="L26d="L41571un3_NCR538CR5380.c#L483" id="L483" c2133333="queu/a>, ever >Eoughiit announc_NCRinitabilaskdinNE__ class="line" n_""""""""""""""""""""* Sanit22Eun3_N|.#2n3_NCR5380.c#L5380.c#L5182 id=e26 by 15Gsp>150sun3_NCR5380.c#L458" id="L45111sun3 ="3="itakINQUIRY mas> ?!? (maybe" id="LinitLUN?) Ok,NE__ class="line" n_""""""""""""""""""""* Sanit221> 512 512);
 * 512Sc21lae>212"Ra hre57" iay?) clas2e="L52eref2>bares20ne">20e> 9" id="L239" c26eal DMe,ELAYe=basr" class="CONFIG_ATARI_a href="drive466T&quolun0" id="L470" cllund="Lo1571un3_NCR5382ean word202e=basr" class="ICR_ASSERT2SELun26IPLETR_ERR:562un3_NCR5380refart 20 wo>20cspad=eref"2145> 512214=in-tance" cla1466T&qe_d3" 4donu().ss="srefLeggLI_supported14=in-tance" clLeggLI_supported380.21"d="L539" c5382="linestan2nnnnnnn____e" cla1466T&qu2lass=26LINKED_FLG_CMD538IPLETR_Erefart 20 wo>20cspaleires lectaun*erruptsune15mas>154sun3_CR5380.c#L483" ibusyectaun*erruptsubusy214N_ERR class="linestannnnnnnnn_______s128, lae8NCR53c562un3_NCR5380.]"|= (1 512214=in-tance" cla1466T&qe_d3" 4donu().ss="srefcla1466T&quoTmd").t *2nk#ass="t;2csidinke=ina><>156sun32NCR5N265380_phostdataline" naASE 21mh,1done()Dis cafre1"it!"ne15mas>154sun3_CR5380.c#L483" id="L483" class="2141> 512TAG_NONi38CRcomaia work"on0my 321, m>21"d="L539" c5382 id="L483"2c2067> 512bareat541SCpe=in.GliELjcctl2 "L411562un3_NCR5380.c#L5380.c#L518" id=eref"213"> 5122NCR538CR5320.c#L483" id="L483" c20682 512<220569T"15d.
20e8pan>
 "L411562un3_NCR5380.c#L5380.c#L518" id=eref"213"> 5122SYe=basr" 2lass="cmd").t * 5122SEun3_N|.#29="L539" cSELECT_________2___1p27 href="drECT__________Gline" id="L53refar"L539" cSELECTsi%rivtk80_phod="L539" cnOSTseeref 21tso>214N_ERR class="linestannnnnnnnn_______s128, lae8NCR53c562un3_NCR5380.c#L5380.c#L518" id=eref"2145> 512214=in-tance" cla1466T&qe_d3" 4donu().ss="srefcla1466T&quoTmd").t *283" id="L423" class="207"> 512 20cla>20cl="L53n3_NCR538CR5380.c#L483" id="L483" c2091> 51220c2pan>#USdeS_e" cla1466T&qu2REAL_27/a> *
 512 512NCR53562un3_N9un3_#if 0"line" namDISCONNanEa1466T&quoresulDISCONNanE" na9" id="L539" ciECT_c&qu1span class=1542LI2__LINE__ c2ass="line" n_""""""""""""2"""""2745T&ICR_ASSERT_SELun3_))s.c#L5380.c#L518" id=eref"21q4> 512) {
21qN_ERR class="linestanc&qu1span cla2_k#ass="t;2a href="drive14*/20spa>202"Ra h2e57" iay?) class="line""""12uRa h549un3_#if 0"line" name="L512"> 51221"1> 512211539" cMODE_RE" cSELEEEEEEs128, lae8154sun3_CR5380.c#L483" id="L483" class="21q6> 512 512 51220cspalocal_irq_savST&quoresula").tlocal_irq_savS>213d="L539" cSELECTflagL483" id="L483" flagLnOSTkcomaia work"on0my 321, m>21"d="L539" c538254sun3_CR5280.c#L483" id="L483" clas2="20727vie1-tancborkenae=namTATUS15mas>154sun3_" cla1466T&quoTmd").t *214=in-tance" cla1466T&qe_d3" 4donu().ss="srefdisconncct14=in-tance" claisconncct * * 463
 512213d="L539" cSELECT_ELEEEEEE}571un3_NCR538CR9154sun3_CR5380.c#L483" iaisconncctLI_queue" class="21"2> aisconncctLI_queuenOSTkcomaia work"on0my 321, m>21"d="L539" c5382ihis_resid2aleref">bareat541"his_res2duald28f"206"> 512 512213d="L539" cSELECT_ELEEEEEE}571un3_NCR538CR98154sun3_CR5380.c#L483" iaisconncctLI_queue" class="21"2> aisconncctLI_queuenOSTkcomaia work"on0my 321, m>21"d="L539" c5382i3" id="L42"L5len0" id="L470" cllen12     * varioleires lectaun*erruptsune15mas>154sun3_CR5380.c#L483" iconncctl2044> 512>22qu/s>1#/ndif549un3_#if 0"2ine" 28e=in.Gline" name="L5Status#ass="t;scsi&#leires lectaun*erruptsune15mas>154sun3_CR5380.c#L483" iaisconncctLI_queue" class="21"2> aisconncctLI_queuenOST *> 512212uRa h549un3_#local_irq_pT&to12T&quoresula").tlocal_irq_pT&to12>213d="L539" cSELECTflagL483" id="L483" flagLnOSTkcomaia work"on0my 321, m>21"d="L539" c5382ran word20220SELsisstrue beforslBSY 220SEL220qN_ERR class="linestannnr"L539" cSELECTQUatusd="La|_RGline" namQUatusd=".t *bareat541SCpe=in.Gli212 "L411562un3_NCR5380.c#L5380.c#L518" id=eref"213"> 5122r_LINE__ c2ionly way8to guarantee 202io>2028LINKED_FLG_CMD538IPLETR_Erefastannnr *2109"L411562un3_NCR5380.c#L5380.c#L518" id=eref"213"> 5122rk#ass="t;2NCR538CR5380.c#L483" id="2483" 28ECT_ELEEEEEEs" cla1466T&qD538IPLETRr>20e8pan>
 5122rid="L483"2n-tance" cla1466T&quoSCpe2ef">b288T&qu2020espan>
 51eref 21tso>214N_ERR class="linestannnnnnnnn_______s128, lae8NCR53c562un3_NCR5380.c#L5380.c#L518" id=eref"2145> 512214=in-tance" cla1466T&qe_d3" 4donu().ss="srefcla1466T&quoTmd").t *2r4sun3_CR52 cla1466T&quoREAL_DMeT_SE2un3_N28vie1-tancborkenae=namTATUS1466T&quodevie1").t 66T&quolun0" id="L470" cllund="Lo1571un3_NCR5382nd5clear i2une15mas>154sun3_CR5380.c2L483"29d="L41571un3_NCR538CR5380.c#L483" id="L483" c2139>RT&to12 lects bitakive0 so p>1-tance" cun3se1e=iion, 66T&quolun0" id="L470" cllund="Lo1571un3_NCR5382 *150sun3_NCR5380.c#L458" id="L45111sun3_ arbitrn3_NCRc0qu1"agmplatforms *nd si>Sc21lae>212"Ra hre57" iay?) clas2>20"l39" c2ODE_RE" cSELEEEEEE39" s" 2la14629> 512);
 51221"1> 51221"d="L539" c5382052eref">b2write541"> 9" 2052e>20"1/2>1#/n292omaia work"on0my 321, m>21"d="L539" c53820an word202093> 512 512<290qN_ERR class="linestannnr1466T&quodevie1").t * 512 51221"R_I name="L430"> stanEEEEs128, lae8154sun3_CR5380.c#L483" id="L483" class="21"2> 51221"d="L539" c5382 k#ass="t;2lass=1542len0" id="L470" 2llen12957" iay?) class="line""""11466T&quodevie1").t Wait_="20bus 12">kiveavoidd="sty timeoucla1466T&quolun0" id="L470" cllund="Lo1571un3_NCR5382eid="L483"2span>}, 
20"2pan>
298T&qu2020espan>
readme="L512"> 51221"1>read/21ae #as9;C++#as9;sf"drUS21"R_I name="L430"> "drUS21"R380.c#> 512art 20 wo>20cspaSR_BSY_I name="L430"> R_BSY380.c#> 512> 512nnt">     * varioleires lectaun*erruptsune15mas>154sun3_CR5380.c#L483" iconncctl2044> 5122sfar_pio0"2id="L470" cl2STATUS_trans2ar_pi29 51220cspabarrier044> 51221"d="L539" c5383 c2099> 513bawrite543">20e309" cS.c#_spak,1done()Dis caSUN3_SCSI_VMive_ACKi*e15mas>SUN3_SCSI_VMiomaia work"on0my 321, m>21"d="L539" c5383=in-tance"3cla1466T&quoSCperef">bare3t541S3pe=in.Gline" name="L5MMMMMd / stsll a  e21regL483" id="L483" 1regL154sun3_CR5380.c#L483" icsr044> 512
> 523ref">bass="209"> 512bawrite541"> 9" 2122e>232R_I 30e=in.Gline" name="L5StatuEL_PRINTK541"> 541  21EL_>213N_ERR class="l3o>212d="L539" cINITIAT____st;15mask<3a>)
<30="L512"> 512 66T&quolun0" id="L470" cllund="Lo1571un3_NCR5383inkive_let3 usiredue1" clatime requi3ednto30v15mas>154sun3_CR5380.c#L483" id="L483" clasass=15SCSI mas> po-tanc_hak*I21qICITLY* savSd od20"N_ERR class="linec&3& ill30atl15mas>154sun3_CR5380.c#L483" id="L483" cl* opern3_NC,n-t violn3_NCR1s *rb SCSI spec so weRc0qusafely 66T&quolun0" id="L470" cllund="Lo1571un3_NCR5383i7kive_let3 ass=1542len0" id="L470" 3T due30  messaguseif_t{
154* igno12 SAVE/RESTORE po-tancsRc0llT"15mask)
}, 
20"3io"""30es, allnfutur 12Gsp>150sun3_NCR5380.c#L458" *quot;15mask)
150sun3_NCR5380.c#L458" id="L4511118"* Un="2tunately,3som62aisks violn3e *rb SCSI spec ize_quot;15mask)
2ot;15mask)
150sun3_NCR5380.c#L458" id="L45111* aisconncct/a>, ize_weRh9T>
2ot;15mask)
)
 512);
)
3512 531eT_SELun3_N|"linREAL_DMess="571un3_NCR538CR51466T&quolun0" id="L470" cllund="Lo1571un3_NCR5383e>21qd="L53ifdeS_e" cla1466T&quoLINK3Deref3>bareat541LINKEDRa h549un3_#if 0"line" namSAVE_POINTERSve_ACKi*e15mas>SAVE_POINTERS" na9" id="L539" ciECT_c&qu1span class=1542LI3KED_CMD5383PLETRT_SELun3_N|"linLINKE3_CMD538IPLETR_ERR:562un3_NCR9un3_#if 0"line" namRESTORE_POINTERSve_ACKi*e15mas>RESTORE_POINTERS" na9" id="L539" ciECT_c&qu1span class=1542LI3K6kive_let3D_FLG_CMD538IPLETRT_SELun3_N|"l3nLINKED_FLG_CMD538IPLETR_E.c#L5380.c#L518" id=eref"21q4> 512) {
21qN_ERR class="linestanc&qu1span cla3ppens1when3we cease to21hap>21qd="L539" cS3LECT_ELEEEEEEs" cla1466T&q12uRa h549un3_#if 0"line" name="L512"> 51221"1> 512211539" cMODE_RE" cSELEEEEEEs128, lae8154sun3_CR5380.c#L483" id="L483" class="21q6> 512 * 532   21spa>2138pan>
21"1>e" name="L512"> 51221"1> 51221"R_I name="L430"> stanEEEEs128, lae8154sun3_CR5380.c#L483" id="L483" class="21"2> 512 512 463
 512 EXTENDED_aESSAG8" na9" id="L539" ciECT_c&qu1span class=1542LI3R5380.c#L433" id="L483" c212"> 512 512);
 66T&quolun0" id="L470" cllund="Lo1571un3_NCR5383IAT_______3e" cla1466T&quo2STATUS_OU3PUT_D32eT_SELun3_N|"linREAL_DMess="> *xtss=2)id="at :66T&quolun0" id="L470" cllund="Lo1571un3_NCR5383I>21qd="L53e" nahostd541").t *154sun3_CR5380.c#L4* 1e" name="L5Mlength (includ5M21nquotte_="20" na, does21me="L5h6T&quolun0" id="L470" cllund="Lo1571un3_NCR5383Ipens1when3"""""""""""""""*1with one3of th32  messaguseif_t{
  21212class="3ommen32es, allnfutur 12Gsp>150sun3_* 2e" name="L5M9 nah6T&quolun0" id="L470" cllund="Lo1571un3_NCR5383I38CR5380.3sp>150sun3_NCR5380.c#L4583 id="32*15Gsp>150sun3_NCR5380.c#L45* 3..length+1e"argu0.c#s0erLskip tass lest *nd class=""""""""""""""""* 3ais coulI03e"due t21tas>21"8pan>54su33_CR533d="L41571un3_NCR538CR5380.c#*quot;15mask)
 5122133pan>
33 by 15Gsp>150sun3_NCR5380.c#* Star518" iextss=2)
NC33> 512);
 extss=2<_msga146[0] 2_#if 0"line" namEXTENDED_aESSAG8" class="21"2> EXTENDED_aESSAG8" naR538CR5380.c#L483" id="L483" c2091> 512<>156sun3_NCR53CR538330qN_ERR class="linestannnr1466T&quodevie1").t 21q4> 5first otte_ot;15ce) {
21qN_ERR class="linestanc&qu1span cla3nestannnnn3nnn____e" cla1466T&quodo_3bove#3ss="t;scsido_above80_pE12uRa h549un3_#if 0"line" name="L512"> 51221"1> 512211539" cMODE_RE" cSELEEEEEEs128, lae8154sun3_CR5380.c#L483" id="L483" class="21q6> 512 443571un3_NCR538CR5380.c#L483" id=33ECT_E.c#L483" id="L483" class="21q6> 51220cspaEXTatusd="La|_RGline" namEXTatusd=".t *)extss=2 512 512 .c#L483" id="L483" class="21q6> 512 * 463
 extss=2<_msga146 +puoTmd").t *34n3_NCR538CR5380.c#L48     * variolects" class="21"2> lects154s 2_#if 0"line" namPHn3__MSGI"483" id="L483" PHn3__MSGI"" naR538CR5380.c#L483" id="L483" c2091> 512bare3t541S34e=in.Gline" name="L5Status#ass="t;scsi&#if 0"lintransfeO_piome="L512"> 51221"1>transfeO_pio/21ae #as9;C++#as9;sinstan>214=in-tance" clinstan>2cliveA> 512 lects154seA> 512 512154s80.c#L483" id="L483" class="21q6> 512 532 512NCR53562un3_NCR5333333333333(int)#if 0"line" namextss=2<_msg" class="21"2> extss=2<_msga146[1],3(int)#if 0"line" namextss=2<_msg" class="21"2> extss=2<_msga146[2]80.c#L483" id="L483" class="21q6> 512153sun3_34s="t;.c#L483" id="L483" class="21q6> 512 443     * varioc483" id="L483" clL48380.<> 512> 512n#if 0"line" namextss=2<_msg" class="21"2> extss=2<_msga146[1] 5123lo>213539"31220espan>
 extss=2<_msga146) - 1)c#L483" id="L483" class="21"8> 512 21q4> 5/a>rd otte_ot;15ce) {
21qN_ERR class="linestanc&qu1span cla3"L470" cl23TATUS_dma_xfar_len80_phos3datal3ne" nauot;15> 463
span 21mh,1done()Dis caif 0"line" name="L512"> 51221"1> 512211539" cMODE_RE" cSELEEEEEEs128, lae8154sun3_CR5380.c#L483" id="L483" class="21q6> 512 extss=2<_msga146[1]<-puoTmd").t * 512235nt">     * various21"co>2 21mh,1done()Dis ca1s lectaun*erruptsumas>154s 2_#if 0"line" namextss=2<_msg" class="21"2> extss=2<_msga146 +p3oTmd").t *bareat541SCpe=in. id= 21mh,1done()Dis calects" class="21"2> lects154s 2_#if 0"line" namPHn3__MSGI"483" id="L483" PHn3__MSGI"" naR538CR5380.c#L483" id="L483" c2091> 51220r>352omaia work"on0my 321, m>21"d="L539" c5383man word203..>20rN_ERR class="linest3nnnnn3nnne=namGline" name="L5len 21mh,1done()Dis caif 0"lintransfeO_piome="L512"> 51221"1>transfeO_pio/21ae #as9;C++#as9;sinstan>214=in-tance" clinstan>2cliveA> 512 lects154seA> 512 512154s80.c#L483ork"on0my 321, m>21"d="L539" c5383mestannnnn3n-tance" cla1466T&quoSCpe3ef">b35LINKED_FLG_CMD538IPLETR_E 21mh,1done()Dis caEXTatusd="La|_RGline" namEXTatusd=".t * 5123S"20q5> 513E_RE" cSELEEEEEE39" st;153ask214Nc483" id="L483" clL48380.80.c#L483ork"on0my 321, m>21"d="L539" c5383mo>213539"3""""""* If2t{
 watchdog t3mer f35>     * vario""""""""""""""""""""*nc extss=2<_msga146[2]8#L483" id="L483" class="21"8> 512
23r9="L36e" nauot;15> 463
span 21m9un3_#if 0"line" namEXTENDED_SDT80_phostdatalineEXTENDED_SDT8" na9" id="L539" ciECT_c&qu1span class=1542LI32Eun3_N|.#3n3_NCR5380.c#L5380.c#L5183 id=e36R5380.c#L5380.c#L518" id= 21m9un3_#if 0"line" namEXTENDED_WDT80_phostdatalineEXTENDED_WDT8" na9" id="L539" ciECT_c&qu1span class=1542LI321> 512     * various21"co>2 21m9un3_#if 0"line" namEXTENDED_aODIFY_DATA_POINTER" class="21"2> EXTENDED_aODIFY_DATA_POINTER" na9" id="L539" ciECT_c&qu1span class=1542LI32in-tance"33" id="L483" c2062> 512bareat541SCpe=in. id= 21m9un3_#if 0"line" namEXTENDED_EXTENDED_IDENTIFY" class="21"2> EXTENDED_EXTENDED_IDENTIFY" na9" id="L539" ciECT_c&qu1span class=1542LI32512bares20ne">20e> 9" id="L339" c36="L512"> 51222222#if 0"line" namtmref">bareat541"atmr154s 2_0comaia work"on0my 321, m>21"d="L539" c5383ean word203e=basr" class="ICR_ASSERT3SELun36IPLETR_ERR:562un3_NCR5380refafarsiz 463
214Nc483" id="L483" clL48380.8#L483" id="L483" class="21"8> 512 513csidinke=ina><>156sun33NCR5N365380_phostdataline" naASE 21mh,1done()Dis cap pKERN_NOTICi380_p> *)"L411562un3_NCR5380.c#L5380.c#L518" id=eref"213"> 5123 id="L483"3c2067> 512
bareat541"atmr154s 2_0comaia work"on0my 321, m>21"d="L539" c5383SYe=basr" 3lass="cmd").t * 512 pKERN_NOTICi380_p> * 512383" id="L433" class="207"> 512 20cla>20cl="L53ASE 21mh * 5123<2015*>20c3pan>#USdeS_e" cla1466T&qu3REAL_37/a> *214Nextss=2<_msg" class="21"2> extss=2<_msga146[2]seeref 21tso>214Nextss=2<_msg" class="21"2> extss=2<_msga146[1]80.c#L483" id="L483" class="21q6> 512 512bareat541"atmr154s 2_0comaia work"on0my 321, m>21"d="L539" c5383San word203="f>NCR53562un3_Nlass3omaia work"on0my 321, m>21"d="L539" c5383S"linestan3ass="line" n_""""""""""""3"""""3745T&ICR_ASSERT_SELun3h1466T&quodevie1").t Fall throughi21qN_ERR class="linestanc&qu1span cla3_k#ass="t;3a href="drive14*/20spa>203"Ra h37ECT_E.c#L483" id="L483" class="21q6> 512 512 512);
 66T&quolun0" id="L470" cllund="Lo1571un3_NCR538354sun3_CR5380.c#L483" id="L483" clas3="20737*15Gsp>150sun3_NCR5380.c#L458" id="L4511118"* If_weR">basom6/a>rd that_weRare21me="L5expcct/a>, 66T&quolun0" id="L470" cllund="Lo1571un3_NCR5383a1466T&quo3md").t *)
bareat541"his_res3duald38 by 15Gsp>150sun3_NCR5380.c#L458" id="L45111* href21quo>21qN_ERR class="linestanc&qu1span cla3i3" id="L43"L5len0" id="L470" cllen1323qu/s>1#/ndif549un3_#if 0"3ine" 38e=in.Gline" name="L5Statue" nnt">     * variotmref">bareat541"atmr154s8#L483" id="L483" class="21"8> 512 51225380<,1done()Dis cap p * extss=2<_msga146)0.c#L483" id="L483" class="21q6> 5122038LINKED_FLG_CMD538IPLETR_Erefa<,1done()Dis cap p214Ntmref">bareat541"atmr154s !2_#if 0"line" namEXTENDED_aESSAG8" class="21"2> EXTENDED_aESSAG8" na< hrcmde=in-tanc_mne" name="L5cmd").t3rid="L483"3n-tance" cla1466T&quoSCpe3ef">b388T&qu2020espan>
 p * 5123r4sun3_CR53 cla1466T&quoREAL_DMeT_SE3un3_N38vie1-tancborkenae=namTATU>
bareat54,1SCpe=in.Gl_D" cla1466T&quoCR5380.c#L5380.c#L518" id=eref"213"> 5123nd5clear i3une15mas>154sun3_CR5380.c3L483"390.c#L483" id="L483" class="21"d="L53h,1done()Dis casi%rivtk80_phod="L539" cnOSTseeref 21tso>214Ntmref">bareat541"atmr154sseeref 21tso>214N_ERR class="linestannnnnnnnn_______s128, lae8NCR53c562un3_NCR5380.c#L5380.c#L518" id=eref"2145> 512214=in-tance" cla1466T&qe_d3" 4donu().ss="srefcla1466T&"L483" clL *3 *21"d="L539" c5383>20"l39" c3ODE_RE" cSELEEEEEE39" s" 3la14639nt">     * various21"co>2 21mh,1done()Dis cap p * 5123_she1p_don3d="La> 5123052eref">b3write541"> 9" 2052e>20"1/3>1#/n39="L512"> 51222222f="< *bareat54,1SCpe=in.Gl_D" cla1466T&quoCR5380.c#L5380.c#L518" id=eref"213"> 5123nan word203093> 512 513<390qN_ERR class="linestannn="21"d="L53h,1done()Dis casi%rivtk80_phod="L539" cnOSTseeref 21tso>214Nextss=2<_msg" class="21"2> extss=2<_msga146[1],3eref 21tso>214Nextss=2<_msg" class="21"2> extss=2<_msga146[0]oCR5380.c#L5380.c#L518" id=eref"213"> 5123n"linestan3ts>20"N_ERR class="linec&3u1spa39LINKED_FLG_CMD538IPLETR_E="21"d="L53h,1done()Dis ca_ERR class="linestannnnnnnnn_______s128, lae8NCR53c562un3_NCR5380.c#L5380.c#L518" id=eref"2145> 512214=in-tance" cla1466T&qe_d3" 4donu().ss="srefcla1466T&"L483" clL *3 k#ass="t;3lass=1542len0" id="L470" 3llen13957" iay? hrcmde=in-tanc_mne" name="L5cmd").t3 id="L483"3span>}, 
20"3pan>
39>     * vario""""""""""""""""""""*nc4 c2099> 514bawrite544">20e40e" nauot;15> 463
 51221"1> 512211539" cMODE_RE" cSELEEEEEEs128, lae8154sun3_CR53 |? hrcmde=in-tanc_mne" name="L5cmd").t4=in-tance"4cla1466T&quoSCperef">bare4t541S4pe=in.Gline" name="L5MMMMM *4=2n-tance"4cDE_RE" cSELEEEEEE39" s" 4"> 5240nt">     * various21"co>2n3_NCR538CR5380.c#L483" id="L483" c2091> 512bawrite541"> 9" 2122e>242R_I 40e=in.Gline" name="L5S}0);
 switch4ntmr)1* href21quo>21qN_ERR class="linestanc&qu1span cla4o>212d="L549" cINITIAT____st;15mask<4a>)
<40="L512"> 512 512 512 514ednto400qN_ERR class="li9un3_#if 0"line" namPHn3__MSGOUEa1466T&quoresulPHn3__MSGOUE" na9" id="L539" ciECT_c&qu1span class=1542LI4i6kive_let4 s>20"N_ERR class="linec&4& ill4045T&ICR_ASSERT_SELun3h,1done()Dis cac483" id="L483" clL48380. *154s 2_> 512 *}, 
20"4io"""40e1571un3_NCR538CR5380154sun3_CR5380.c#L483" ilunt_mce" cla1466T&quoresulaunt_mce" cl380. 2_#if 0"line" nammsgout14=in-tance" clmsgout154soTmd").t * 51221"1>transfeO_pio/21ae #as9;C++#as9;sinstan>214=in-tance" clinstan>2cliveA> 512 lects154seA> 512 512154s80.c#L483ork"on0my 321, m>21"d="L539" c5384urr na imp4eass=
565T pro7osal, lowu4evel 41e" nauot;15> 463
e" neref 21tso>214Nmsgout14=in-tance" clmsgout154s 22_#if 0"line" namABOREa1466T&quoresulABORE154s8#L483" id="L483" class="21"8> 512SUPPORE_TAGS     * vario""""""""""""""""""""*nc)
     * vario21f_12">_483" class="2141> 21f_12">_483/21ae#L5380.c#L518" id=eref"2145> 51221"d="L539" c5384u 541eT_SE# id=omaia work"on0my 321, m>21"d="L539" c5384e>21qd="L54ifdeS_e" cla1466T&quoLINK4Deref4>bareat541LINKEDRa h545380154sun3_CR5380.c#L483" ibusyectaun*erruptsubusy214N_ERR class="linestannnnnnnnn_______s128, lae8NCR53c562un3_NCR5380.]"> 512= ~(1 512214=in-tance" cla1466T&qe_d3" 4donu().ss="srefcla1466T&quoTmd").t *4KED_CMD5384PLETRT_SELun3_N|"linLINKE4_CMD548IPLETass="209"> 512154sun3_CR5380.c#L483" iconncctl2044> 512>21qd="L549" cS4LECT_ELEEEEEEs" cla1466T&q12uRa h549un3_#d=eref"2145> 512 DID_ERROR>21"1> "drSve_ACKi*e15mas>/a>21"1> "drS     * vario""""""""""""""""""""*nc 542   21spa>2138pan>
154sc#L5380.c#L518" id=eref"2145> 5124* 512 512 5124*2n-tance"43" id="L483" c212"> 512     * vario/a>21"1>e" name="L512"> 51221"1> 51221"R_I name="L430"> stanEEEEs128, lae8154sun3_CR5380.c#L483" id="L483" class="21"2> 512 5124* 541  21EL_>213N_ERR class="l4I>21qd="L54e" nahostd541").t *21"d="L539" c5384IED_CMD5384ciECT_____st;15mask)
4a hre420qN_ERR class="linestdonu().ss="srefmsgout14=in-tance" clmsgout154s 2_#if 0"line" namNOPme="L512"> 512> 512  21212class="4ommen42e1571un3_NCR538CR5380 512>150sun3_NCR5380.c#L4584 id="42 512154s 2_#if 0"line" namd=eref"2145> 512 512>21"8pan>54su43_CR543e" nauot;15> 463
);
 66T&quolun0" id="L470" cllund="Lo1571un3_NCR5384ain-tance"4"> 5122134pan>
43 by 15Gsp>150sun3_NCR5380.c#################* XXX_="20perid="aid= 3_Nsons, odNC43> 512);
 51221"1>transfeO_pio/21ae #as9;C++#as9;sinstan>214=in-tance" clinstan>2cliveA> 512 lects154seA> 51221qN_ERR class="linestanc&qu1span cla4s6kive_let4nnn____e" cla1466T&quodo_4bove#4ss="t;scsido_above80_pE> 512154s80.c#L483ork"on0my 321, m>21"d="L539" c5384rive15> 444571un3_NCR538CR5380.c#L484" id=43ECT_ELEEEEEEs" cla146n3_NCR538CR5380.c#L483" id="L483" c2091> 512 512 * * 463
h,1done()Dis ca1s lectaun*erruptsumas>154s 2_> 512bareat541"atmr154soTmd").t * 51221"1>transfeO_pio/21ae #as9;C++#as9;sinstan>214=in-tance" clinstan>2cliveA> 512 lects154seA> 512 512154s80.c#L483ork"on0my 321, m>21"d="L539" c5384aOST" u 2"4n39" span class=1542cmd")4t44n3_NCR538CR5380.c#L48#if 0"line" namd=eref"2145> 512bareat541"aSCr e" .d / stsll a  e2StatuL483" id="L483" StatuL154s 2_#if 0"line" namtmref">bareat541"atmr154soTmd").t *bare4t541S44e=in.Gline" name="L5Sn3_NCR538CR5380.c#L483" id="L483" c2091> 512 542 512NCR53562un3_N p 512atusd=/21ae #as9;C++#as9;sNDEBUD_ANY" class="21"2> NDEBUD_ANYnOST80.c#L483" id="L483" class="21q6> 512 444);
 switch(lects)1* href21quo>21qN_ERR class="linestanc&qu1span cla4lo>213539"41220}0);
 e" ntmr#* SR_REQ)1* href21qAuo>21qN_ERR class="linestanc&qu1span cla4class="lin4" //iiiiiiiiiiiiiiUS_RRcm4-tanc4evie1-tanc}0);
 while n1)1* href21quo>21qN_ERR class="linestanc&qu1span cla4"L470" cl24TATUS_dma_xfar_len80_phos4datal4ne" na3omaia work"on0my 321, m>21"d="L539" c5384SEun3_N|.#45SUN3_DMe_MINSIZEd="L4 1542un3_4CR5380omaia work"on0my 321, m>21"d="L539" c5384SOST" u 2"4true. Butsagain,ataere a24tru>245> 512);
href21quo>21qN_ERR class="linestanc&qu1span cla4"evie1e=in(in-u=inSnIC_Host *instan>2)h6T&quolun0" id="L470" cllund="Lo1571un3_NCR5384 51220r>45eal DMe,ELAYe=basr" class="C*h6T&quolun0" id="L470" cllund="Lo1571un3_NCR5384 ="t;scsi&4..>20rN_ERR class="linest4nnnnn45v15mas>154sun3_CR5380.c#L483* Purpon3_: does+evie1e=i_NC,n-titializ>2lecteconncctl2 h6T&quolun0" id="L470" cllund="Lo1571un3_NCR5384mestannnnn4n-tance" cla1466T&quoSCpe4ef">b45atl15mas>154sun3_CR5380.c#L4*      fieldi150sun3_* ELun3h6T&quolun0" id="L470" cllund="Lo1571un3_NCR5384mlass="lin4line" """""""""""""""""""4"""""45*15Gsp>150sun3_NCR5380.c#L45* Inpucla:iinstan>2 -5/a>siinstan>2 1s *rb 71un3_NCh6T&quolun0" id="L470" cllund="Lo1571un3_NCR53842
24r9="L46d="L41571un3_NCR538CR5380.c#*quot;15mask)
150sun3_NCR5380.c#* href21quo>21qN_ERR class="linestanc&qu1span cla421> 512 uo>21qN_ERR class="linestanc&qu1span cla42 512 et might evMesually provennecce" ryi21qN_ERR class="linestanc&qu1span cla42512bares20ne">20e> 9" id="L439" c46eal DMe,ELAYe=basr" class="C##evie1e=i_NC,nbut/it does21me="L5seem
21qN_ERR class="linestanc&qu1span cla42="t;scsi&4e=basr" class="ICR_ASSERT4SELun46IPLETuo>21qN_ERR class="linestanc&qu1span cla42estannnnn4nnnnnnn____e" cla1466T&qu4lass=46LINKEstatic voiddh,1done()Dis caif 0"linevie1e=ime="L512"> 51221"1>evie1e=iie1-t(in-u=ind / stsll a  e2SnIC_Host483" id="L483" SnIC_Hostie1-t* #as9;C++#as9;sinstan>214=in-tance" clinstan>2cliv< hrcmde=in-tanc_mne" name="L5cmd").t42"20q5> 514csidinke=ina><>156sun34NCR5N465380_L483" id="L483" class="21"8> 512 512 sTUP_539"DATA/21ae #as9;C++#as9;sinstan>214=in-tance" clinstan>2cliv80.c#L483" id="L483" class="21q6> 512b"L483" class="21"2> tef">b"L483154soTmd").t * * *oTmd").t *SUPPORE_TAGS     * vario""""""""""""""""""""*nc 512 483/21aoTmd").t *#USdeS_e" cla1466T&qu4REAL_473" naass="209"> 512 unsign2 msga146[3]oTmd").t *Nin-u=ind / stsll a  e2 nIC_21n=14=in-tance" cl nIC_21n=in-tt* #as9;C++#as9;stmref">bareat541"atmr154s 2_L4dma_she1p_donu#ass="t;scsid="L4dma_sh,t* #as9;C++#as9;sprev" class="21"2> p *154sun3_CR5380.c#L/*2"> unsign221qN_ERR class="linestanc&qu1span cla4_k#ass="t;4a href="drive14*/20spa>204"Ra h47ECT_E.c#L483" id="L483" class="21q6> 512 512 512);
href21quo>21qN_ERR class="linestanc&qu1span cla454sun3_CR5480.c#L483" id="L483" clas4="20747*15Gsp>150sun3_NCR5380.c#L458" i* Disa hr+arbitrai_NC,netc. siid= *rb ne15 adapter obviouslyhref21quo>21qN_ERR class="linestanc&qu1span cla4a1466T&quo4md").t *21"1>ie1e=i()ibareat541"his_res4duald48 by 15Gsp>150sun3_NCR5380.c#L458* href21quo>21qN_ERR class="linestanc&qu1span cla4i3" id="L44"L5len0" id="L470" cllen14 uo>21qN_ERR class="linestanc&qu1span cla4ref20quo>24qu/s>1#/ndif549un3_#if 0"4ine" 48e=in.Glinr">     * vario/a>21"1>e" name="L512"> 51221"1> 51221"R_I name="L430">MOD>21"Re8M4sun3_CR5380.c#L483" id="L483" class="21q6> 512 512154sun3_CR5380.c#L483" irestar5_ie1e=ime="L512"> 512 *21qN_ERR class="linestanc&qu1span cla4r"linestan4ionly way8to guarantee 204io>2048LINKED_FL#if 0"line" namtef">b"L483" class="21"2> tef">b"L483154s 2_L4dma_she1p_donua>21"1>eva=14=in-tance" clua>21"1>eva=/21ae #as9;C++#as9;sCURRENT_SCSI_DATA_1"R_I name="L430">CURRENT_SCSI_DATA_1"RCR538A> 512 ~e #as9;C++#as9;sleires lectaun*erruptsune15mas>154sun3_CR5380.c#L483" id="L483" class="21"2> 512 5124rk#ass="t;4NCR538CR5380.c#L483" id="4483" 48ECT_E.c#L483" id="L483" class="21q6> 512b48BASEun3_N #as9;C++#as9;sRSLatusd="La|_RGline" namRSLatusd="/21ae  * .c#L483" id="L483" class="21q6> 512154sun3_CR5380.c4L483"490.c#L483");
 66T&quolun0" id="L470" cllund="Lo1571un3_NCR5384 *150sun3_NCR5380.c#L458* At5/a>sipo-ta,_weRhave detcctl2 that_our SCSI IDihakot 38LEbus,h6T&quolun0" id="L470" cllund="Lo1571un3_NCR5384>20"l39" c4ODE_RE" cSELEEEEEE39" s" 4la14649> 512);
21qN_ERR class="linestanc&qu1span cla4_she1p_don4d="La>b4write541"> 9" 2052e>20"1/4>1#/n49eal DMe,ELAYe=basr" class="C####>href21quo>21qN_ERR class="linestanc&qu1span cla4nan word204093> 512 514<49v15mas>154sun3_CR5380.c#L483####* We mu15 assert_BSY ourie1ves, until 38LEref">badropakihe SELhref21quo>21qN_ERR class="linestanc&qu1span cla4n"linestan4ts>20"N_ERR class="linec&4u1spa49atl15mas>154sun3_CR5380.c#L4####* signalCh6T&quolun0" id="L470" cllund="Lo1571un3_NCR53840k#ass="t;4lass=1542len0" id="L470" 4llen149  messaguseif_t{
21qN_ERR class="linestanc&qu1span cla4 id="L483"4span>}, 
20"4pan>
49>     * vario""""""""""""""""""""*nc     * vario/a>21"1>e" name="L512"> 51221"1> 512211539" cMODE_RE" cSELEEEEEEs128, lae8154sun3_CR53 |?ccept messagu by clASSERT_BSYve_ACKi*e15mas>154sASSERT_BSYnOST80.c#L483" id="L483" class="21q6> 512 515bawrite545">20e50e" nauot;.c#L483" id="L483" class="21q6> 512 51521"1>eva=14=in-tance" clua>21"1>eva=/21ae #as9;C++#as9;s "drUS21"R_I name="L430"> "drUS21"RCR538A> 512  #as9;C++#as9;s R_SEL_I name="L430"> R_SELnOST80.c#L483" id="L483" class="21q6> 512 515 5250nt">     r">     * vario/a>21"1>e" name="L512"> 51221"1> 512211539" cMODE_RE" cSELEEEEEEs128, lae8154sun3_CR5380.c#L483" id="L483" class="21q6> 512 515<="La> 9" 2052e>20"1/5a>)
<50="L512"> );
href21quo>21qN_ERR class="linestanc&qu1span cla525212d="L55993> 512 515ednto50v15mas>154sun3_CR5380.c#L483####* WaitE="20ref">bato gon-tao MSGI"Ch6T&quolun0" id="L470" cllund="Lo1571un3_NCR5385i6kive_let5 s>20"N_ERR class="linec&5& ill50atl15mas>154sun3_CR5380.c#L4####* href21quo>21qN_ERR class="linestanc&qu1span cla5i7kive_let5 ass=1542len0" id="L470" 5T due50ECT_E.c#L483" id="L483" class="21q6> 512}, 
20"5io"""50e1571un3_while n!nL4dma_she1p_donua>21"1>eva=14=in-tance" clua>21"1>eva=/21ae #as9;C++#as9;s "drUS21"R_I name="L430"> "drUS21"RCR538A> 512  #as9;C++#as9;s R_REQ_I name="L430"> R_REQCR53880.c#L483" id="L483" class="21q6> 512 .c#L483" id="L483" class="21q6> 512 512 515rirtlahqunexta
 );
21qN_ERR class="linestanc&qu1span cla5u2n-tance"55mask)
     r">     * vario/a>21"1>e" name="L512"> 51221"1> 512 PHn3__ R_TO_TCR/21ae #as9;C++#as9;sPHn3__MSGI"483" id="L483" PHn3__MSGI"" na880.c#L483" id="L483" class="21q6> 512 551e=in..c#L483" id="L483" class="21q6> 51221qd="L55ifdeS_e" cla1466T&quoLINK5Deref51="L512"> );
21qN_ERR class="linestanc&qu1span cla5u5212d="L55PLETRT_SELun3_N|"linLINKE5_CMD5515t">     r">     * variomsg" class="21"2> msga146[0] 2_L4dma_she1p_donua>21"1>eva=14=in-tance" clua>21"1>eva=/21ae #as9;C++#as9;sCURRENT_SCSI_DATA_1"R_I name="L430">CURRENT_SCSI_DATA_1"RCR5380.c#L483" id="L483" class="21q6> 512 51221qd="L559" cS51ECT_E.c#L483" id="L483" class="21q6> 512214Nmsg" class="21"2> msga146[0] > 512 0x80)c#L483" id="L483" class="21"8> 512 552   21spa> p * IDENTIFY/12 512   21spa> msga14680.c#L483" id="L483" class="21q6> 512 515ide=in,de" cla1466T&quoTm5").t<52e=in.Gline" n #as9;C++#as9;sdo_aborime="L512"> 512214=in-tance" clinstan>2cliv80.c#L483" id="L483" class="21q6> 512 512 541  21EL_>213N_ERR class="l5*21"d="L539" c5385I>21qd="L55e" nahostd541").t * * 2_neref 21tso>214Nmsg" class="21"2> msga146[0] > 512 0x0780.c#L483" id="L483" class="21q6> 512)
5a hre52IPLETuo>21qN_ERR class="linestanc&qu1span cla5I6kive_let5spakpanc);
 66T&quolun0" id="L470" cllund="Lo1571un3_NCR5385Ipens1when5"""""""""""""""*1with one5of th52  messaguseif_t{
  21212class="5ommen52es, allnfutur 12Gsp>150sun3_L458* ju15 1"established, ize_removenitE=rom r" idisconncctl2 queueCh6T&quolun0" id="L470" cllund="Lo1571un3_NCR5385I9kive_let5sp>150sun3_NCR5380.c#L4585 id="52*15Gsp>150sun3_NCR5380.c#L458" i* href21quo>21qN_ERR class="linestanc&qu1span cla5ais coulI05e"due t21tas>21"8pan>54su53_CR553e" nauo>21qN_ERR class="linestanc&qu1span cla5a12099> 515"> 5122135pan>
53e=in.Glin="20neref 21tso>214Ntmref">bareat541"atmr154s =t(in-u=ind / stsll a  e2 nIC_21n=14=in-tance" cl nIC_21n=in-tt*)3154sun3_CR5380.c#L483" idisconncctl2_queueme="L512"> 512 p>NC53n3_NCR538CR538eref 21tso>214Ntmref">bareat541"atmr154s2  #as9;C++#as9;sprev" class="21"2> pbareat541"atmr154sseeref 21tso>214Ntmref">bareat541"atmr154s 2_L4dma_she1p_donuEX=me="L512"> 512bareat541"atmr154s8#c#L483" id="L483" class="21"8> 512b"L483" class="21"2> tef">b"L483154s 2=t(1bareat541"atmr154snnn_______s128, lae8NCR53c562un3_NCR5380.)8A> 512> 512 neref 21tso>214Ncla1466T&quoTmd").t * 2="L4dma_she1p_dontmref">bareat541"atmr154slected / stsll a  e21f e>214=in-tance" cla1466T&qe_d3" 4donu().ss="srefcla1466T&quoTmd").t *<483" id="L483" class="21"8> 51221qd="L55).t *SUPPORE_TAGS     * vario""""""""""""""""""""*nc 512> 512 neref 21tso>214Nte3" class="2141> 483/21a 2="L4dma_she1p_dontmref">bareat541"atmr154slected / stsll a  e2te3" class="2141> 483/21a);.c#L483" id="L483" class="21q6> 512 512 445571un3_NCR538CR5380.c#L485" id=53ECT_ELEEEEEEs" clc#L483" id="L483" class="21"8> 512214Nprev" class="21"2> p 512 512REMOVi/21ae #as9;C++#as9;sprev" class="21"2> p214NuEX=me="L512"> 512 p214Ntmref">bareat541"atmr154sseeref 21tso>214NuEX=me="L512"> 512bareat541"atmr154s880.c#L483" id="L483" class="21q6> 512 * 463
h,1done()Dis caSET_uEX=me="L512"> 512 p214NuEX=me="L512"> 512bareat541"atmr154s880.c#L483" id="L483" class="21q6> 512 515n cliveThqunexta
 51254n3_NCR538CR5380.c#L48#if 0"line" namREMOVive_ACKi*e15mas>REMOVi/21ae-1a>154sun3_CR5380.c#L483" idisconncctl2_queueme="L512"> 512bareat541"atmr154sseeref 21tso>214NuEX=me="L512"> 512bareat541"atmr154s880.c#L483" id="L483" class="21q6> 512bare5t541S54e=in.Gline" name="L5S154sun3_CR5380.c#L483" idisconncctl2_queueme="L512"> 512 512bareat541"atmr154s80.c#L483" id="L483" class="21q6> 51221qd="L55#L483" id="L483" c2143> 552 512<3omaia work"on0my 321, m>21"d="L539" c53855="t;scsi&530OST"mlun130OST"mspakpan5equNCR53562uh,1done()Dis caSET_uEX=me="L512"> 512bareat541"atmr154sseeref 21tso>214Nu#ass="t;scsid="L4dma_sh80.c#L483" id="L483" class="21q6> 512155sun3_5445T&ICR_ASSERT_SEn3_NCR538CR5380.c#L483" id="L483" c2091> 512 44521"d="L539" c538558kive_let51221"d="L539" c538559kive_let5" //iiiiiiiiiiiiiiUS_RRcm5-tanc5evie1-tancomaia work"on0my 321, m>21"d="L539" c5385"L470" cl25TATUS_dma_xfar_len80_phos5datal55e" nauot;e" nnt">     * variotmref">bareat541"atmr154s8#L483" id="L483" class="21"8> 512 p *babitL483 "quoS02xMSCpe=in.Gl "L411562un3_NCR5380.c#L5380.c#L518" id=eref"213"> 5125SOST" u 2"5true. Butsagain,ataere a25tru>255> 512.c#_spak,1done()Dis caSUPPORE_TAGSve_ACKi*e15mas>SUPPORE_TAGS     * vario""""""""""""""""""""*nc 5125S>21qd="L55ctyaofllae target.) S20bi5>20r>55eal Dass="209"> 51220rN_ERR class="linest5nnnnn55="sref">NCR53562un3_N< * 5125mestannnnn5n-tance" cla1466T&quoSCpe5ef">b5545T&ICR_ASSERT_SELun3h,1done()Dis casi%rivtk80_phod="L539" cnOSTseeref 21tso>214Ntef">b"L483" class="21"2> tef">b"L483154sseeref 21tso>214Ncla1466T&quoTmd").t *CR5380.c#L5380.c#L518" id=eref"213"> 5125mive15> 445E_RE" cSELEEEEEE39" st;155askSUPPORE_TAGS     * vario""""""""""""""""""""*nc214Nte3" class="2141> 483/21a * vario""""""""""""""""""""*nc 512
25r9="L56e" nauot;15> 463
80.c#L483" id="L483" class="21q6> 512);
 66T&quolun0" id="L470" cllund="Lo1571un3_NCR538521> 512 512);
 512bares20ne">20e> 9" id="L539" c56eal DMe,ELAYe=basr" class="C########* href21quo>21qN_ERR class="linestanc&qu1span cla52="t;scsi&5e=basr" class="ICR_ASSERT5SELun565=in.Gline" n #as9;C++#as9;sdo_aborime="L512"> 512214=in-tance" clinstan>2cliv80.c#L483" id="L483" class="21q6> 512 541  21EL_>213N_ERR class="l52"20q5> 515csidinke=ina><>156sun35NCR5N567T&qu2021"d="L539" c5385 id="L483"5c2067> 512);
 eng21q ama setup ="20r" iaDotize_weRju15 saw#* href21quo>21qN_ERR class="linestanc&qu1span cla5SYe=basr" 5lass="cmd").t * 512NCR53c562un3_NC=in-te1p_donud="La>> 512 512>#USdeS_e" cla1466T&qu5REAL_57e=in..c#L483" id="L483" class="21q6> 512 512     * variotmref">bareat541"atmr154slected / stsll a  e2SCref">bareat541"aSCr e" .d / stsll a  e2/a>s>eviidualef">bareat541"ata>s>eviidual"L512> 512> 512 t">     * variotmref">bareat541"atmr154slected / stsll a  e2SCref">bareat541"aSCr e" .d / stsll a  e2buff483>eviidualef">bareat541"abuff483>eviidual154s8#L483" id="L483" class="21"8> 512NCR53562un3_Ne" n #as9;C++#as9;scounime="L512"> 512bareat541"atmr154slected / stsll a  e2SCref">bareat541"aSCr e" .d / stsll a  e2buff48ef">bareat541"abuff48&qe_d3" 4donu().ss="srefcength1466T&quoTmd").tengthin-te1p_donud="La>>NCR53c562un3_NC=in-td="L4dma_she1p_donSGADDR" class="21"2> SGADDR/21ae #as9;C++#as9;stmref">bareat541"atmr154slected / stsll a  e2SCref">bareat541"aSCr e" .d / stsll a  e2buff48ef">bareat541"abuff48&qe_80.c#L483" id="L483" class="21q6> 512205"Ra h575380_phostdatalin}0 id=EL483" id="L483" class="21"8> 512 512 512 512bareat541"atmr154slected / stsll a  e2SCref">bareat541"aSCr e" .d / stsll a  e2/a>s>eviidualef">bareat541"ata>s>eviidual"L510.c#L483" id="L483" class="21q6> 512   21spa>2138pan>
NCR53c562un3_NC=in-td="L4dma_she1p_dontmref">bareat541"atmr154slected / stsll a  e2SCref">bareat541"aSCr e" .d / stsll a  e2pt8ef">bareat541"apt8"L510.c#L483" id="L483" class="21q6> 512 * 463<3omaia work"on0my 321, m>21"d="L539" c5385ihis_resid5aleref">bareat541"his_res5duald58 by 1.c#_spak,1done()Dis caREAL_DMA_I name="L430">REAL_DMA=in..c#L483" id="L483" class="21q6> 512);
 setup /a>siaDotize_="20ama e" not aleva=y#* href21quo>21qN_ERR class="linestanc&qu1span cla5ref20quo>25qu/s>1#/ndif549un3_#if 0"5ine" 58e=in.Gline" name=ifne #as9;C++#as9;scounime="L512"> 512SUN3_DMA_MINSIZi154s8#> 512> 512 neref 21tso>214Nstancama_setup_don214=in-tance" cl tancama_setup_don2in-td!="L4dma_she1p_dontmref">bareat541"atmr154s)<483" id="L483" class="21"8> 512 512 512 512NCR53562un3_Ne" n #as9;C++#as9;s1"8> nIC_ama_setup14=in-tance" cl tan nIC_ama_setup/21ae #as9;C++#as9;s>NCR53c562un3_NC=in-tc#L5380.c#L518" idounime="L512"> 512_di8ef">bareat541"arq_mas>_di8/21ae #as9;C++#as9;stmref">bareat541"atmr154slected / stsll a  e2request483" id="L483" request154s880.c#L483" id="L483" class="21q6> 5122058LINKED_FLG_CMD538IPLETR_E./202hostdata/astancama_setup_don214=in-tance" cl tancama_setup_don2in-td2_#if 0"line" namtmref">bareat541"atmr154soTmd").t * *b58BASEuass="209"> 512 512154sun3_CR5380.c5L483"59e" naass="209"> 51221"d="L539" c5385>20"l39" c5ODE_RE" cSELEEEEEE39" s" 5la14659nt">     r">     * vario/a>21"1>e" name="L512"> 51221"1> 512211539" cMODE_RE" cSELEEEEEEs128, lae8154sun3_CR53 |?ccept messagu by clASSERT_AC"La|_RGline" namy clASSERT_AC"&qe_80.c#L483" id="L483" class="21q6> 512);
 Accept/1221qN_ERR class="linestanc&qu1span cla5052eref">b5write541"> 9" 2052e>20"1/5>1#/n59" id="L5321"1>e" name="L512"> 51221"1> 512211539" cMODE_RE" cSELEEEEEEs128, lae8154sun3_CR5380.c#L483" id="L483" class="21q6> 512 512 515<59IPLETuo>21qN_ERR class="linestanc&qu1span cla5n"linestan5ts>20"N_ERR class="linec&5u1spa59atl15.c#_spak,1done()Dis caSUPPORE_TAGSve_ACKi*e15mas>SUPPORE_TAGS     * vario""""""""""""""""""""*nc);
 Is *rb lectsihakstill MSGI", 38LEref">bawants_8o sss= some morehref21quo>21qN_ERR class="linestanc&qu1span cla50id="L483"5span>}, 
20"5pan>
59es, allnfutur 12Gsp>150sun3_L458* 12siis probably ahref21quo>21qN_ERR class="linestanc&qu1span cla504sun3_CR55id="L470" cl2STATUS_trans5ar_pi59*15Gsp>150sun3_NCR5380.c#L458" i* SIMPLE_QUEUE_TAG ="20r" iI_T_L_Q nexusCh6T&quolun0" id="L470" cllund="Lo1571un3_NCR5386 c2099> 516bawrite546">20e60d="L41571un3_NCR538CR5380.c#L483* href21quo>21qN_ERR class="linestanc&qu1span cla6 12099> 516214Nte3" class="2141> 483/21ad2_#if 0"line" namTAG_NONive_ACKi*e15mas>TAG_NONi154soTmd").t * 516 5260nt">     e" neref 21tso>214Npects" class="21"2> lects154s 2="L4dma_she1p_donPHn3__MSGI"483" id="L483" PHn3__MSGI"" na2> 512> 512 t">     * variosetup_use_8aggl2_queutan14=in-tance" cl etup_use_8aggl2_queutan154s8#L483" id="L483" class="21"8> 512 516<="La>);
 Accept/p21qN_ERR class="linestanc&qu1span cla6 42099> 516 9" 2052e>20"1/6a>)
<60="L512"> 512<21"1>e" name="L512"> 51221"1> 512211539" cMODE_RE" cSELEEEEEEs128, lae8154sun3_CR53 80.c#L483" id="L483" class="21q6> 512 512 516ednto605=in.Gline" n #as9;C++#as9;sc483" id="L483" clL48380.20"N_ERR class="linec&6& ill606=in.Gline" n #as9;C++#as9;s1s lectaun*erruptsumas>154s 2_#if 0"line" nammsg" class="21"2> msga146+uoTmd").t *     * vario/a>21"1>transfeO_piome="L512"> 51221"1>transfeO_pio/21ae #as9;C++#as9;sinstan>214=in-tance" clinstan>2cliveA> 512 lects154seA> 512 512154s82> 512> 512Tmd").t *}, 
20"6io"""60e1571un3_NCR538CR#if 0"line" nammsg" class="21"2> msga146[1] 2="L4dma_she1p_donSIMPLE_QUEUE_TAGve_ACKi*e15mas>SIMPLE_QUEUE_TAG154s8Tmd").t *   21spa>2138eref 21tso>214Nte3" class="2141> 483/21ad2_#if 0"line" nammsg" class="21"2> msga146[2]oTmd").t *   21spa>baL483 "quoS02x,MSCpe=in.Gl ssst 483e=in.Gl at "L411562un3_NCR5380.c#L5380.c#L518" id=eref"213"> 5126u12099> 516rirtlahqunexta
214Ntef">b"L483" class="21"2> tef">b"L483154sseeref 21tso>214Ncla1466T&quoTmd").t *seeref 21tso>214Nte3" class="2141> 483/21a80.c#L483" id="L483" class="21q6> 512)
     }09"> 512 5613" naass="209"> 51221qd="L56ifdeS_e" cla1466T&quoLINK6Deref61="L512"> 09"> 512     r">     * varioleires lectaun*erruptsune15mas>154sun3_CR5380.c#L483" iconncctl2me="L512"> 512bareat541"atmr154soTmd").t *ba=e=in.Gl,MSCpe=e=in.Gl,M483e=e=in.Gl_D" cla1466T&quoCR5380.c#L5380.c#L518" id=eref"213"> 5126ppens1when6we cease to21hap>21qd="L569" cS61ECT_ELEEEEEEs" cla14rivtk#ass="t;scsi%rivtk80_phod="L539" cnOSTseeref 21tso>214Ntmref">bareat541"atmr154slected / stsll a  e2tef">b" class="21"2> tef">bnOSTseeref 21tso>214Ntmref">bareat541"atmr154slected / stsll a  e2cla1466T&quoTmd").t *seeref 21tso>214Ntmref">bareat541"atmr154slected / stsll a  e2te3" class="2141> 483/21a)oTmd").t * 512 562 .c#L483" id="L483" class="21q6> 51221qN_ERR class="linestanc&qu1span cla6*12099> 516ide=in,de" cla1466T&quoTm6").t<62 by 15Gsp>150sun3_NCR5380.ca>href21quo>21qN_ERR class="linestanc&qu1span cla6*2n-tance"63" id="L483" c212"> 512 512);
 Fun=iion : -tai/a>21"1>abori(in-u=in nIC_21n= *cmd)h6T&quolun0" id="L470" cllund="Lo1571un3_NCR5386*h6T&quolun0" id="L470" cllund="Lo1571un3_NCR5386*>21qd="L56e" nahostd541").t *)
6a hre62v15mas>154sun3_CR5380.c#L483*h6T&quolun0" id="L470" cllund="Lo1571un3_NCR5386*6kive_let6spakpanc154sun3_CR5380.c#L4* Inpucla:icmd -5/a iin-u=in nIC_21n=_to abori, a  e -5a  e 8o sst_38Lh6T&quolun0" id="L470" cllund="Lo1571un3_NCR5386*pens1when6"""""""""""""""*1with one6of th62  messaguseif_t{
  21212class="6ommen62es, allnfutur 12Gsp>150sun3_* ELun3usedCh6T&quolun0" id="L470" cllund="Lo1571un3_NCR5386I9kive_let6sp>150sun3_NCR5380.c#L4586 id="62*15Gsp>150sun3_NCR5380.c#L45*h6T&quolun0" id="L470" cllund="Lo1571un3_NCR5386ais coulI06e"due t21tas>21"8pan>54su63_CR563d="L41571un3_NCR538CR5380.c#* RL_PRIla:i0 -5succce", -1kot failureCh6T&quolun0" id="L470" cllund="Lo1571un3_NCR5386a12099> 516"> 5122136pan>
63 by 15Gsp>150sun3_NCR5380.c#*h6T&quolun0" id="L470" cllund="Lo1571un3_NCR5386a2n-tance"6 5130OST"mlun130OST"m="sr6f">NC63> 512);
 XXX -5/a rsihakno way_to abori0r" iaDotize_that_>siaurr>);lykh6T&quolun0" id="L470" cllund="Lo1571un3_NCR5386*siis h6T&quolun0" id="L470" cllund="Lo1571un3_NCR5386*>21qd="L56).t *<>156sun3_NCR56CR53863v15mas>154sun3_CR5380.c#L483*       called wa rsir" iloop star5ed ini/a>21"1>main()Ch6T&quolun0" id="L470" cllund="Lo1571un3_NCR5386s6kive_let6nnn____e" cla1466T&quodo_6bove#63atl15mas>154sun3_CR5380.c#L4* href21quo>21qN_ERR class="linestanc&qu1span cla6rive15> 446571un3_NCR538CR5380.c#L486" id=63ECT_E.c#L483" id="L483" class="21q6> 512     * vario/a>21"1>aborime="L512"> 51221"1>abori/21aein-u=ind / stsll a  e2 nIC_21n=14=in-tance" cl nIC_21n=in-tt* #as9;C++#as9;scmdme="L512"> 512 * 512 512 *214=in-tance" clinstan>2clivd2_#if 0"line" namcmdme="L512"> 512214=in-tance" cla1466T&qe_d3" 4donu().ss="srefhost483" id="L483" hostie1-oTmd").t * 516n cliveThqunexta
214NfrTUP_539"DATA_I name="L430"> sTUP_539"DATA/21ae #as9;C++#as9;sinstan>214=in-tance" clinstan>2cliv80.c#L483" id="L483" class="21q6> 51264n3_NCR538in-u=ind / stsll a  e2 nIC_21n=14=in-tance" cl nIC_21n=in-tt* #as9;C++#as9;stmref">bareat541"atmr154s, ** #as9;C++#as9;sprev" class="21"2> p *bare6t541S64e=in.Glinunsign2 flags/21aoTmd").t *21qd="L56#L483" id="L483" c2143> 562 *     r">     * variol pKERN_NOTICit">    * 51221"1>p /a>21"1>p214=in-tance" clinstan>2cliv80.c#L483" id="L483" class="21q6> 512 .c#L483" id="L483" class="21q6> 512 flags/21a80.c#L483" id="L483" class="21q6> 512 512265nt">     r">     * varioABRTatusd="La|_RGline" namABRTatusd="/21ae  *eva=14=in-tance" clua>21"1>eva=/21ae #as9;C++#as9;sBUS_>BUS_>20r>65="L512"> 512<"L5S<#as9;C++#as9;s/a>21"1>eva=14=in-tance" clua>21"1>eva=/21ae #as9;C++#as9;s "drUS21"R_I name="L430"> "drUS21"RCR53880.c#L483" id="L483" class="21q6> 51220rN_ERR class="linest6nnnnn65IPLETuo>21qN_ERR class="linestanc&qu1span cla6mestannnnn6n-tance" cla1466T&quoSCpe6ef">b65atl15.c# 1.c#L483" id="L483" class="21q6> 512 446E_RE" cSELEEEEEE39" st;156ask 66T&quolun0" id="L470" cllund="Lo1571un3_NCR5386"8kive_let6""""""* If2t{
 watchdog t6mer f65es, allnfutur 12Gsp>150sun3_* Cun3_1 : Is *rb aDotize_iakihe aurr>);lykexecuitan aDotize, 66T&quolun0" id="L470" cllund="Lo1571un3_NCR5386"9kive_let6line" """""""""""""""""""6"""""65*15Gsp>150sun3_NCR5380.c#L45* we1me="ll sst_38Leaboried flag ize_re_PRI control so_that_66T&quolun0" id="L470" cllund="Lo1571un3_NCR53862
26r9="L66d="L41571un3_NCR538CR5380.c#* informaiion transfeO rouitaeRca2kexii0cleanlyCh6T&quolun0" id="L470" cllund="Lo1571un3_NCR53862Eun3_N|.#6n3_NCR5380.c#L5380.c#L5186 id=e66 by 15Gsp>150sun3_NCR5380.c#* href21quo>21qN_ERR class="linestanc&qu1span cla621> 512 512uo>21qN_ERR class="linestanc&qu1span cla62 512214Nleires lectaun*erruptsune15mas>154sun3_CR5380.c#L483" iconncctl2me="L512"> 512 512 512bares20ne">20e> 9" id="L639" c66="L51Tmd").t *154sun3_CR5380.c#La>href21quo>21qN_ERR class="linestanc&qu1span cla62"20q5> 516csidinke=ina><>156sun36NCR5N66  messaguseif_t{
 512150sun3_* -tao BUS FREECh6T&quolun0" id="L470" cllund="Lo1571un3_NCR538629kive_let60.c#L483" id="L483" c20686 512<66*15Gsp>150sun3_NCR5380.c#L45* href21quo>21qN_ERR class="linestanc&qu1span cla6SYe=basr" 6lass="cmd").t *21qN_ERR class="linestanc&qu1span cla6SEun3_N|.#69="L539" cSELECT_________6___1p67 by 15Gsp>150sun3_NCR5380.ca>ine" n/a>21"1> 512<(Es128, lae821qN_ERR class="linestanc&qu1span cla6S1> 512 512 512);
 66T&quolun0" id="L470" cllund="Lo1571un3_NCR53868#USdeS_e" cla1466T&qu6REAL_67eT_SELun3_N|"linREAL_DMess="> Siid= weRca21me="L5changb lectss until we1me="ve AL_pletedkihe aurr>); 66T&quolun0" id="L470" cllund="Lo1571un3_NCR53868512);66T&quolun0" id="L470" cllund="Lo1571un3_NCR53868="t;scsi&6="f>154sun3_CR5380.c#L483* lectsihaknot MSGOUTCh6T&quolun0" id="L470" cllund="Lo1571un3_NCR53868estannnnn6ass="line" n_""""""""""""6"""""67atl15mas>154sun3_CR5380.c#L4* href21quo>21qN_ERR class="linestanc&qu1span cla6_k#ass="t;6a href="drive14*/20spa>206"Ra h67ECT_E.c#L483" id="L483" class="21q6> 512 512 512150sun3a> 66T&quolun0" id="L470" cllund="Lo1571un3_NCR538689kive_let680.c#L483" id="L483" clas6="20767*15Gsp>150sun3_NCR5380.c#L45* Re_PRI control 8o 8" iexecuitan 71u L470" so_weRca20clear_38Lh6T&quolun0" id="L470" cllund="Lo1571un3_NCR5386a1466T&quo6md").t *baback -tao our mainiloopCh6T&quolun0" id="L470" cllund="Lo1571un3_NCR5386ihis_resid6aleref">bareat541"his_res6duald68 by 15Gsp>150sun3_NCR5380.c#* href21qn.c#L483" id="L483" class="21q6> 512 512uo>21qN_ERR class="linestanc&qu1span cla6ref20quo>26qu/s>1#/ndif549un3_#if 0"6ine" 68e=in.Gline" ne" nd / stsll a  e21o_aborime="L512"> 512214=in-tance" clinstan>2cliv8d22_08#L483" id="L483" class="21"8> 512 512 512214Nleires lectaun*erruptsune15mas>154sun3_CR5380.c#L483" iaboriedectaun*erruptsuaboriedclivd2_uoTmd").t *NCR5356r">     * varioleires lectaun*erruptsune15mas>154sun3_CR5380.c#L483" iconncctl2me="L512"> 5122068LINKED_FLG_CMD5#if 0"line" namcmdme="L512"> 512 512 512SUPPORE_TAGS     * vario""""""""""""""""""""*ncb688INKED_FLG_CMD5#if 0"line" namcmd_free_8agme="L512"> 512 512NCR5356r">     * varioleires lectaun*erruptsune15mas>154sun3_CR5380.c#L483" ibusyectaun*erruptsubusy154s[#if 0"line" namcmdme="L512"> 512214=in-tance" cla1466T&qe_d3" 4donu().ss="sref">NCR53c562un3_NCR5380.] > 512= ~(1 512214=in-tance" cla1466T&qe_d3" 4donu().ss="srefcla1466T&quoTmd").t *<0.c#L483" id="L483" class="21q6> 512 51220"l39" c6ODE_RE" cSELEEEEEE39" s" 6la146692"sref">NCR5356r">     * variotocal_irq_evitore1466T&quoTmd").tocal_irq_evitore/21ae /202hostdata/aflags" class="21"2> flags/21a80.c#L483" id="L483" class="21q6> 512 512 512b6write541"> 9" 2052e>20"1/6>1#/n69="L512"> 512SCSI_ABORT_SUCCESSa_she1p_donud="La>> 512 516<69="sref">NCR53}0 id=EL483" id="L483" class="21"8> 51220"N_ERR class="linec&6u1spa69atl15mas>154sun3_CR5380.c#La>f">NCR53tocal_irq_evitore(flags);5* href21quo>21qN_ERR class="linestanc&qu1span cla60k#ass="t;6lass=1542len0" id="L470" 6llen1697INKED_FLG_CMD5#if 0"line" naml p}, 
20"6pan>
698"L512"> 512 SCSI_ABORT_ERRORa_she1p_donud="La>>NCR53}01p_donud="La>> 517bawrite547">20e700"sref">}09"> 512 517 512 517 5270> 512uo>21qN_ERR class="linestanc&qu1span cla7 32099> 517<="La> 66T&quolun0" id="L470" cllund="Lo1571un3_NCR5387 42099> 517 9" 2052e>20"1/7a>)
<70eal DMe,ELAYe=basr" class="C* Cun3_2 : Is *rb aDotize_has21me="L5been issul2 yet, weRsi_ply_removenitE66T&quolun0" id="L470" cllund="Lo1571un3_NCR5387 52099> 517<93> 512 517ednto70v15mas>154sun3_CR5380.c#L483*          =rom r" iissul queueCh6T&quolun0" id="L470" cllund="Lo1571un3_NCR538726212d="L579s>20"N_ERR class="linec&7& ill70atl15mas>154sun3_CR5380.c#L4* href21quo>21qN_ERR class="linestanc&qu1span cla7i7kive_let7 ass=1542len0" id="L470" 7T due705380_phos="20neref 21tso>214Nprev" class="21"2> p 512neref 21tso>214Nleires lectaun*erruptsune15mas>154sun3_CR5380.c#L483" iissul_queueme="L512"> 512bareat541"atmr154s =t(in-u=ind / stsll a  e2 nIC_21n=14=in-tance" cl nIC_21n=in-tt*)3154sun3_CR5380.c#L483" iissul_queueme="L512"> 512   21spa> #as9;C++#as9;stmref">bareat541"atmr154s2  #as9;C++#as9;sprev" class="21"2> p uEX=ADDR/21ae /202hostdata/atmref">bareat541"atmr154s)seeref 21tso>214Ntmref">bareat541"atmr154s 2_L4dma_she1p_donuEX=me="L512"> 512bareat541"atmr154s88Tmd").t *   21spa>e" nd / stsll a  e2cmdme="L512"> 512bareat541"atmr154s8#L483" id="L483" class="21"8> 512 517rirtlahqunexta
REMOVi/21ae5,t* #as9;C++#as9;sprev" class="21"2> p214Ntmref">bareat541"atmr154sseeref 21tso>214NuEX=me="L512"> 512bareat541"atmr154s880.c#L483" id="L483" class="21q6> 512)
 p 512bareat541"atmr154s80.c#L483" id="L483" class="21q6> 512 571e=in.Gline" name=k,1done()Dis caSET_uEX=me="L512"> 512bareat541"atmr154sseeref 21tso>214Nu#ass="t;scsid="L4dma_sh80.c#L483" id="L483" class="21q6> 51221qd="L57ifdeS_e" cla1466T&quoLINK7Deref71="L512"> 512< #as9;C++#as9;stmref">bareat541"atmr154slected / stsll a  e2eviultme="L512"> 512 512 512< #as9;C++#as9;stocal_irq_evitore1466T&quoTmd").tocal_irq_evitore/21ae /202hostdata/aflags" class="21"2> flags/21a80.c#L483" id="L483" class="21q6> 512 5127ppens1when7we cease to21hap>21qd="L579" cS71ECT_ELEEEEEEs" cla14LG_CMD538 #as9;C++#as9;ssi%rivtk80_phod="L539" cnOST80.c#L483" id="L483" class="21q6> 512 Taggl2 queutanknote:kno 483eto free a rs,_has21me="L5been linign221qN_ERR class="linestanc&qu1span cla7u9kive_let7#L483" id="L483" c2118> 572150sun3_NCR5380.c#L458" iiiiiiiii* yet...4* href21quo>21qN_ERR class="linestanc&qu1span cla7* 463< #as9;C++#as9;stmref">bareat541"atmr154slected / stsll a  e2 nIC_aon214=in-tance" cl nIC_aon2/21ae /202hostdata/atmref">bareat541"atmr154s80.c#L483" id="L483" class="21q6> 512 517ide=in,de" cla1466T&quoTm7").t<72e=in.Gline" name=re_PRI k,1done()Dis caSCSI_ABORT_SUCCESSve_ACKi*e15mas>SCSI_ABORT_SUCCESSa_she1p_donud="La>> 512 512 51221qd="L57e" nahostd541").t *)
7a hre72v15mas>154sun3_CR5380.c#L483* Cun3_3 : Is any aDotizes are conncctl2, we1me="re gotankto fail_38Leabori66T&quolun0" id="L470" cllund="Lo1571un3_NCR5387*6kive_let7spakpanc154sun3_CR5380.c#L4*          ize lst_38Lehigh lsvel SCSI L470"r=re_ry at a lat"r=tim= or 66T&quolun0" id="L470" cllund="Lo1571un3_NCR5387*pens1when7"""""""""""""""*1with one7of th72  messaguseif_t{
  21212class="7ommen72es, allnfutur 12Gsp>150sun3_*66T&quolun0" id="L470" cllund="Lo1571un3_NCR5387*9kive_let7sp>150sun3_NCR5380.c#L4587 id="72*15Gsp>150sun3_NCR5380.c#L45* ELun33333Tim=outs,5ize_/a rsfore aboried aDotizes, will bLehighly unlikely66T&quolun0" id="L470" cllund="Lo1571un3_NCR5387ais coulI07e"due t21tas>21"8pan>54su73_CR573d="L41571un3_NCR538CR5380.c#*          ize handltankthem cleanly ini*r>sisituaiion wouldimake *rb aDoton66T&quolun0" id="L470" cllund="Lo1571un3_NCR5387a12099> 517"> 5122137pan>
73 by 15Gsp>150sun3_NCR5380.c#*          9un3_o" noeviets lsss effici380,5ize_wouldipollute_1ur5a  e.  So,66T&quolun0" id="L470" cllund="Lo1571un3_NCR5387a2n-tance"7 5130OST"mlun130OST"m="sr7f">NC73> 512);
          we fail.66T&quolun0" id="L470" cllund="Lo1571un3_NCR5387*21qd="L57).t * * e" neref 21tso>214Nleires lectaun*erruptsune15mas>154sun3_CR5380.c#L483" iconncctl2me="L512"> 512 512 flags/21a80.c#L483" id="L483" class="21q6> 512 447571un3_NCR538CR5380.c#L487" id=737=in.Gline" n #as9;C++#as9;sABRTatusd="La|_RGline" namABRTatusd="/21ae  *SCSI_ABORT_SNOOZia_she1p_donud="La>> 512 512 *21qN_ERR class="linestanc&qu1span cla7l12099> 517n cliveThqunexta
150sun3_NCR5380.ca>href21quo>21qN_ERR class="linestanc&qu1span cla7aOST" u 2"7n39" span class=1542cmd")7t74> 512);
 Cun3_4: Is *rb aDotize_iakaurr>);lykdisaDnncctl2 =rom r" ibus,5ize_href21quo>21qN_ERR class="linestanc&qu1span cla7abare7t541S74eT_SELun3_N|"linREAL_DMess=">      /a rsiare no aDnncctl2 aDotizes, weRreaDnncct0r" iI_T_L or 66T&quolun0" id="L470" cllund="Lo1571un3_NCR5387l>21qd="L57#L483" id="L483" c2143> 572154sun3_CR5380.c#L483*      54sabori_12157sun3_74atl15mas>154sun3_CR5380.c#L4*66T&quolun0" id="L470" cllund="Lo1571un3_NCR5387live15> 447siactsihakespecially ugly. InRord"r=toRreestablish0r" inexus, we66T&quolun0" id="L470" cllund="Lo1571un3_NCR5387l8kive_let712150sun3_* nee=_to calln/a>21"1>ie1e=i().  T" ieasiest way_to i_plelass/*r>si66T&quolun0" id="L470" cllund="Lo1571un3_NCR5387l9kive_let7" //iiiiiiiiiiiiiiUS_RRcm7-tanc74*15Gsp>150sun3_NCR5380.c#L45* fun=iion was_to abori0e" ihe bus was_busy, ize lst_38Le-taerrupi66T&quolun0" id="L470" cllund="Lo1571un3_NCR5387"L470" cl27TATUS_dma_xfar_len80_phos7datal75d="L41571un3_NCR538CR5380.c#* handl"r=trigg rsdkot 38LeSELs="20evie1e=i take care o" le15Earbitraiions66T&quolun0" id="L470" cllund="Lo1571un3_NCR5387"12099> 5175SUN3_DMe_MINSIZEd="L4 1572un3_75 by 15Gsp>150sun3_NCR5380.c#* wa rsincc2275> 512);
h6T&quolun0" id="L470" cllund="Lo1571un3_NCR5387S20r>75eal DMe,ELAYe=basr" class="C* ca21me="L5removenitE=rom r" idisaDnncctl2 queue bLfore ie1e=i_ank-i66T&quolun0" id="L470" cllund="Lo1571un3_NCR5387"5212d="L57..>20rN_ERR class="linest7nnnnn75v15mas>154sun3_CR5380.c#L483* because_that_couldicause_a failure inihashtankthe nexus e" ihat_66T&quolun0" id="L470" cllund="Lo1571un3_NCR5387mestannnnn7n-tance" cla1466T&quoSCpe7ef">b75atl15mas>154sun3_CR5380.c#L4* a1466T0evie1e=iedCh6T&quolun0" id="L470" cllund="Lo1571un3_NCR5387Sive15> 447E_RE" cSELEEEEEE39" st;157ask 66T&quolun0" id="L470" cllund="Lo1571un3_NCR5387"8kive_let7""""""* If2t{
 watchdog t7mer f75es, allnfutur 12Gsp>150sun3_* Siid= 38LEqueuesimay5changb, weRca21me="L5use_the poitaersE=rom when we66T&quolun0" id="L470" cllund="Lo1571un3_NCR5387"9kive_let7line" """""""""""""""""""7"""""75*15Gsp>150sun3_NCR5380.c#L45* first3tocatenitCh6T&quolun0" id="L470" cllund="Lo1571un3_NCR53872
27r9="L76d="L41571un3_NCR538CR5380.c#*h6T&quolun0" id="L470" cllund="Lo1571un3_NCR5387212099> 517n3_NCR5380.c#L5380.c#L5187 id=e76 by 15Gsp>150sun3_NCR5380.c#* So, weRmust first3tocaten*rb aDotize, ize e" /a>21"1>ie1e=i()h6T&quolun0" id="L470" cllund="Lo1571un3_NCR53872OST" u 2"7in-tance" cla1466T&quodev7e1").76> 512);
 succcees, then issul_38Leabori,0evtocaten*rb aDotize ize_removeh6T&quolun0" id="L470" cllund="Lo1571un3_NCR53872 512 itE=rom r" idisaDnncctl2 queueCh6T&quolun0" id="L470" cllund="Lo1571un3_NCR53872>21qd="L57>bares20ne">20e> 9" id="L739" c76eal DMe,ELAYe=basr" class="C* href21quo>21qN_ERR class="linestanc&qu1span cla72="t;scsi&7e=basr" class="ICR_ASSERT7SELun76IPLETuo>21qN_ERR class="linestanc&qu1span cla72estannnnn7nnnnnnn____e" cla1466T&qu7lass=766=in.Glin="20neref 21tso>214Ntmref">bareat541"atmr154s =t(in-u=ind / stsll a  e2 nIC_21n=14=in-tance" cl nIC_21n=in-tt*)3154sun3_CR5380.c#L483" idisaDnncctl2_queueme="L512"> 512bareat541"atmr154soTmd").t * 517csidinke=ina><>156sun37NCR5N76ECT_ELEEEEEEs"eref 21tso>214Ntmref">bareat541"atmr154s 2_L4dma_she1p_donuEX=me="L512"> 512bareat541"atmr154s8801p_donud="La>> 512 512bareat541"atmr154s8#L483" id="L483" class="21"8> 512   21spa>2138eref 21tso>214Ntocal_irq_evitore1466T&quoTmd").tocal_irq_evitore/21ae /202hostdata/aflags" class="21"2> flags/21a80.c#L483" id="L483" class="21q6> 512 * 463< #as9;C++#as9;sABRTatusd="La|_RGline" namABRTatusd="/21ae  * 51221"1>ie1e=ime="L512"> 51221"1>ie1e=i3_NCRe #as9;C++#as9;sinstan>214=in-tance" clinstan>2cliveAd / stsll a  e2cmdme="L512"> 512 512>#USdeS_e" cla1466T&qu7REAL_77e=in.Gline" name="L5Sre_PRI k,1done()Dis caSCSI_ABORT_BUSYve_ACKi*e15mas>SCSI_ABORT_BUSY154soTmd").t * * 512< #as9;C++#as9;sABRTatusd="La|_RGline" namABRTatusd="/21ae  * 517a href="drive14*/20spa>207"Ra h77ECT_ELEEEEEEs" clR5380.c#L483" ido_aborime="L512"> 512214=in-tance" clinstan>2cliv80.c#L483" id="L483" class="21q6> 512 512 512   21spa>2138eref 21tso>214Ntocal_irq_save1466T&quoTmd").tocal_irq_save/21ae /202hostdata/aflags" class="21"2> flags/21a80.c#L483" id="L483" class="21q6> 512 * 463<="20neref 21tso>214Nprev" class="21"2> p 512neref 21tso>214Nleires lectaun*erruptsune15mas>154sun3_CR5380.c#L483" idisaDnncctl2_queueme="L512"> 512bareat541"his_res7duald78e=in.Gline" name="L5Meref 21tso>214Ntmref">bareat541"atmr154s =t(in-u=ind / stsll a  e2 nIC_21n=14=in-tance" cl nIC_21n=in-tt*)3154sun3_CR5380.c#L483" idisaDnncctl2_queueme="L512"> 512214Ntmref">bareat541"atmr154s2  #as9;C++#as9;sprev" class="21"2> p uEX=ADDR/21ae /202hostdata/atmref">bareat541"atmr154s)seeref 21tso>214Ntmref">bareat541"atmr154s 2_L4dma_she1p_donuEX=me="L512"> 512bareat541"atmr154s8#8Tmd").t *27qu/s>1#/ndif549un3_#if 0"7ine" 78e=in.Gline" name="L5S80.ce" nd / stsll a  e2cmdme="L512"> 512bareat541"atmr154s8#L483" id="L483" class="21"8> 512 512 512214NREMOVive_ACKi*e15mas>REMOVi/21ae5,t* #as9;C++#as9;sprev" class="21"2> p214Ntmref">bareat541"atmr154sseeref 21tso>214NuEX=me="L512"> 512bareat541"atmr154s880.c#L483" id="L483" class="21q6> 512NCR53566666666666* #as9;C++#as9;sprev" class="21"2> p 512bareat541"atmr154s80.c#L483" id="L483" class="21q6> 5122078LINKED_FLG_CMD55380.c"L5Meref 21tso>214NSET_uEX=me="L512"> 512bareat541"atmr154sseeref 21tso>214Nu#ass="t;scsid="L4dma_sh80.c#L483" id="L483" class="21q6> 512bareat541"atmr154slected / stsll a  e2eviultme="L512"> 512 512b788INKED_FLG_CMD5cla14LG_CM e,ELAYe=basr" class="a> WeRmust untock r" i483/LUN icladiatlly a rs,_siid= 38Lhref21quo>21qN_ERR class="linestanc&qu1span cla7r4sun3_CR57 cla1466T&quoREAL_DMeT_SE7un3_N78*15Gsp>150sun3_NCR5380.c#L458" iiiiiiiii66666666* ref">bagoes_to BUS FREE ize_does21me="L5sss= us lno/a rhref21quo>21qN_ERR class="linestanc&qu1span cla7nd5clear i7une15mas>154sun3_CR5380.c7L483"79d="L41571un3_NCR538CR5380.c#8" iiiiiiiii66666666* 1221qN_ERR class="linestanc&qu1span cla7>20"l39" c7ODE_RE" cSELEEEEEE39" s" 7la146792"sre.c#_spak,1done()Dis caSUPPORE_TAGSve_ACKi*e15mas>SUPPORE_TAGS     * vario""""""""""""""""""""*nc 512bareat541"atmr154s 80.c#L483" id="L483" class="21q6> 512b7write541"> 9" 2052e>20"1/7>1#/n79="L51aslse.c#L483" id="L483" class="21q6> 512 512 517<79="sref">NCR53566666666666154sun3_CR5380.c#L483" ibusyectaun*erruptsubusy154s[#if 0"line" namcmdme="L512"> 512214=in-tance" cla1466T&qe_d3" 4donu().ss="sref">NCR53c562un3_NCR5380.] > 512= ~(1 512214=in-tance" cla1466T&qe_d3" 4donu().ss="srefcla1466T&quoTmd").t *<0.c#L483" id="L483" class="21q6> 51220"N_ERR class="linec&7u1spa79atl15ass="209"> 512 flags/21a80.c#L483" id="L483" class="21q6> 512}, 
20"7pan>
798"L512"> 512bareat541"atmr154slected / stsll a  e2 nIC_aon214=in-tance" cl nIC_aon2/21ae /202hostdata/atmref">bareat541"atmr154s80.c#L483" id="L483" class="21q6> 512   21spa>213888888888re_PRI k,1done()Dis caSCSI_ABORT_SUCCESSve_ACKi*e15mas>SCSI_ABORT_SUCCESSa_she1p_donud="La>> 518bawrite548">20e80e" nauot;15> 463<<<<<}09"> 512 518 512 518 5280> 512uo>21qN_ERR class="linestanc&qu1span cla8 32099> 518<="La>href21quo>21qN_ERR class="linestanc&qu1span cla8 42099> 518 9" 2052e>20"1/8a>)
<80eal DMe,ELAYe=basr" class="C* Cun3_5 : Is weRreachedkihis poita,n*rb aDotize was_not found iniany of 66T&quolun0" id="L470" cllund="Lo1571un3_NCR5388 52099> 518<93> 512 518ednto80v15mas>154sun3_CR5380.c#L483*          38LEqueuesCh6T&quolun0" id="L470" cllund="Lo1571un3_NCR538826212d="L589s>20"N_ERR class="linec&8& ill80atl15mas>154sun3_CR5380.c#L4*h6T&quolun0" id="L470" cllund="Lo1571un3_NCR538827212d="L589ass=1542len0" id="L470" 8T due80  messaguseif_t{
}, 
20"8io"""80es, allnfutur 12Gsp>150sun3_* between *rb aDotize AL_plettan succce"fully ize_/a eaboriton5a  e,66T&quolun0" id="L470" cllund="Lo1571un3_NCR5388i9kive_let8 d="L470" cl2STATUS_trans8"""""80*15Gsp>150sun3_NCR5380.c#L45* so_weRwo21me="L5150ic, but_weRwill notify_/a euser iniactsisomethtankreally66T&quolun0" id="L470" cllund="Lo1571un3_NCR5388urr na imp8eass=
565T pro7osal, lowu8evel 81d="L41571un3_NCR538CR5380.c#* brokeCh6T&quolun0" id="L470" cllund="Lo1571un3_NCR5388u12099> 518rirtlahqunexta
150sun3_NCR5380.c#* href21quo>21qN_ERR class="linestanc&qu1span cla8u2n-tance"85mask)
 512uo>21qN_ERR class="linestanc&qu1span cla8u 581e=in.Glin flags/21a80.c#L483" id="L483" class="21q6> 51221qd="L58ifdeS_e" cla1466T&quoLINK8Deref81="L512">  #as9;C++#as9;spr/at3" class="21"2> p21qN_ERR class="linestanc&qu1span cla8u6kive_let8D_FLG_CMD538IPLETRT_SELun8_N|"l81LINKED_FLre_PRI k,1done()Dis caSCSI_ABORT_NOT_RUNNINR_I name="L430"> CSI_ABORT_NOT_RUNNINRa_she1p_donud="La>>21qd="L589" cS81ECT_E}09"> 512 512 582 .c#L483" id="L483" class="21q6> 512 66T&quolun0" id="L470" cllund="Lo1571un3_NCR5388*12099> 518ide=in,de" cla1466T&quoTm8").t<82 by 15Gsp>150sun3_NCR5380.c#* Fun=iion : ita /a>21"1>bus_eviet(in-u=in nIC_21n= *cmd)h6T&quolun0" id="L470" cllund="Lo1571un3_NCR5388*2n-tance"83" id="L483" c212"> 512 512);
 h6T&quolun0" id="L470" cllund="Lo1571un3_NCR5388* Purpotsi: eviet 38LeSCSI busCh6T&quolun0" id="L470" cllund="Lo1571un3_NCR5388*>21qd="L58e" nahostd541").t *)
8a hre82v15mas>154sun3_CR5380.c#L483* Re_PRIsk: SCSI_RESET_WAKEUPh6T&quolun0" id="L470" cllund="Lo1571un3_NCR5388*6kive_let8spakpanc154sun3_CR5380.c#L4*h6T&quolun0" id="L470" cllund="Lo1571un3_NCR5388*pens1when8"""""""""""""""*1with one8of th82  messaguseif_t{
  21212class="8ommen82es, a.c#L483" id="L483" class="21q6> 512150sun3_NCR5380.c#L4588 id="82*15Gsstatic ita d / stsll a  e2/a>21"1>bus_evietme="L512"> 51221"1>bus_eviet/21aein-u=ind / stsll a  e2 nIC_21n=14=in-tance" cl nIC_21n=in-tt*L5380.c#L518" icmdme="L512"> 512 *21"8pan>54su83_CR583d="L4L483" id="L483" class="21"8> 512 518"> 5122138pan>
831"L512">  #as9;C++#as9;sSETUP_539"DATAme="L512"> 512 512214=in-tance" cla1466T&qe_d3" 4donu().ss="srefne15ectaun*erruptsune15/21a80.c#L483" id="L483" class="21q6> 512NC83n3_NCR538ita 6666666666 flags/21ae1p_donud="La>>21qd="L58).t *<>156sun3_NCR58CR538835"L512"> in-u=ind / stsll a  e2 nIC_21n=14=in-tance" cl nIC_21n=in-tt*L5380.c#L518" iconncctl2me="L512"> 512 512 512 448571un3_NCR538CR5380.c#L488" id=83ECT_E.c#L483" id="L483" class="21q6> 512 512 51221"1>p /a>21"1>p 512214=in-tance" cla1466T&qe_d3" 4donu().ss="srefne15ectaun*erruptsune15/21a80.c#L483" id="L483" class="21q6> 512 *21qN_ERR class="linestanc&qu1span cla8l12099> 518n cliveThqunexta
  571un3_NCR538CR5380.ca> ">bain lectsi* href21quo>21qN_ERR class="linestanc&qu1span cla8aOST" u 2"8n39" span class=1542cmd")8t842ie1-tancd / stsll a  e2/a>21"1> 512<" class="21"2> /a>21"1> 512 TARGET_821qN_ERR class="linestanc&qu1span cla8abare8t541S843INKED_FLG_CMD5cla14LG_C#if 0"line" namPHASE_SR_TO_TCR" class="21"2> PHASE_SR_TO_TCR/21ae5#if 0"line" nam/a>21"1>readme="L512"> 51221"1>read/21ae /202hostdata/aSTATUSpan " class="21"2> STATUSpan 154s8#880.c#L483" id="L483" class="21q6> 51221qd="L58#L483" id="L483" c2143> 582  571un3_NCR538CR5380.ca> NCRert RSTi* href21quo>21qN_ERR class="linestanc&qu1span cla8a5212d="L5830OST"mlun130OST"mspakpan8equ21"1> 512<" class="21"2> /a>21"1> 512 Es128, lae8214Ny clBASE" class="21"2> E clBASEie1-t|eeref 21tso>214Ny clASSERT_RST" class="21"2> E clASSERT_RST154s 80.c#L483" id="L483" class="21q6> 512158sun3_846ie1-tancd / stsll a  e2udelayectaun*erruptsuudelayie1-te4080.c#L483" id="L483" class="21q6> 512 448  571un3_NCR538CR5380.ca> eviet q6> evgisaersE* href21quo>21qN_ERR class="linestanc&qu1span cla8a8kive_let81221"1> 512<" class="21"2> /a>21"1> 512 Es128, lae8214Ny clBASE" class="21"2> E clBASEie1-t80.c#L483" id="L483" class="21q6> 51221"1> 512<" class="21"2> /a>21"1> 512 MODEpan 154sseeref 21tso>214NMclBASE" class="21"2> MclBASEie1-t80.c#L483" id="L483" class="21q6> 51221"1> 512<" class="21"2> /a>21"1> 512 TARGET_8 5185SUN3_DMe_MINSIZEd="L4 1582un3_851"L512">  #as9;C++#as9;s/a>21"1> 512<" class="21"2> /a>21"1> 512 SELECT_ENABLEpan in-t, 0t80.c#L483" id="L483" class="21q6> 5122852"L512">  571un3_NCR538CR5380.ca> ++roman: eviet itaerrupi condiiion! o/a rwise no itaerrupis do21me="L5gei66T&quolun0" id="L470" cllund="Lo1571un3_NCR5388S21qN_ERR class="linestanc&qu1span cla8S>21qd="L58ctyaofllae target.) S20bi8>20r>854"L512"> (void)#if 0"line" nam/a>21"1>readme="L512"> 51221"1>read/21aeMeref 21tso>214NRESET_PARITY_INTERRUPTpan " class="21"2> RESET_PARITY_INTERRUPTpan ie1-t80.c#L483" id="L483" class="21q6> 51220rN_ERR class="linest8nnnnn85IPLETuo>21qN_ERR class="linestanc&qu1span cla8mestannnnn8n-tance" cla1466T&quoSCpe8ef">b85atl15.c# 1  571un3_NCR538CR5380.ca> XXX Shouldinow bLeaon2 by midlsvel a  e, but_it1me="s broken XXX * href21quo>21qN_ERR class="linestanc&qu1span cla8Sive15> 448E_RE" cSELEEEEEE39" st;158ask XXX see bLlow                                            XXX * href21quo>21qN_ERR class="linestanc&qu1span cla8S8kive_let8""""""* If2t{
 watchdog t8mer f85es, a.c#L483" id="L483" class="21q6> 512  571un3_NCR538CR5380.ca> MSch: old-stylT0eviet: actually abori0allnaDotize procce"tanka rsi* href21quo>21qN_ERR class="linestanc&qu1span cla82
28r9="L86e" nauo>21qN_ERR class="linestanc&qu1span cla8212099> 518n3_NCR5380.c#L5380.c#L5188 id=e861"L512">  571un3_NCR538CR5380.ca> Aft"r=thT0eviet, /a rsiare no more aDnncctl2 or disaDnncctl2 aDotizes66T&quolun0" id="L470" cllund="Lo1571un3_NCR53882OST" u 2"8in-tance" cla1466T&quodev8e1").86> 512);
 51221qd="L58>bares20ne">20e> 9" id="L839" c86eal DMe,ELAYe=basr" class="C""""* rememb rsdkin3tocal variables firstCh6T&quolun0" id="L470" cllund="Lo1571un3_NCR53882="t;scsi&8e=basr" class="ICR_ASSERT8SELun86v15mas>154sun3_CR5380.c#L483""""* href21quo>21qN_ERR class="linestanc&qu1span cla82estannnnn8nnnnnnn____e" cla1466T&qu8lass=866ie1-tancd / stsll a  e2tocal_irq_save1466T&quoTmd").tocal_irq_save/21ae /202hostdata/aflags" class="21"2> flags/21a80.c#L483" id="L483" class="21q6> 512 518csidinke=ina><>156sun38NCR5N86ECT_ELEEEL5380.c#L518" iconncctl2me="L512"> 512154sun3_CR5380.c#L483" iconncctl2me="L512"> 512 512 512154sun3_CR5380.c#L483" idisaDnncctl2_queueme="L512"> 512 *154sun3_CR5380.c#L483" idisaDnncctl2_queueme="L512"> 512SUPPORE_TAGS     * vario""""""""""""""""""""*nc 512 free_all_8ags/21ae80.c#L483" id="L483" class="21q6> 512#USdeS_e" cla1466T&qu8REAL_87e=in.ass="209"> 512 foreMeref 21tso>214NiNCR53c562un3_NCRa_sh 2_0ulL5380.c#L518" iiNCR53c562un3_NCRa_sh resul8; ++L5380.c#L518" iiNCR53c562un3_NCRa_sh 8Tmd").t * 512154sun3_CR5380.c#L483" ibusyectaun*erruptsubusy154s[#if 0"line" namiNCR53c562un3_NCRa_sh] 2_0uTmd").t * 512 518a href="drive14*/20spa>208"Ra h87ECT_ELEEEL5380.c#L518" ine15es lectaun*erruptsune15mas>154sun3_CR5380.c#L483" idma_lea1466T&quoTmd").dma_leaa_sh 2_0u * vario""""""""""""""""""""*nc 512 512 512 flags/21a80.c#L483" id="L483" class="21q6> 512 *21qN_ERR class="linestanc&qu1span cla8ihis_resid8aleref">bareat541"his_res8duald881"L512">  571un3_NCR538CR5380.ca> InRord"r=toRtell_38Lemid-lsvel a  e which aDotizesiwere aboried, h6T&quolun0" id="L470" cllund="Lo1571un3_NCR5388iOST" u 2"8"L5len0" id="L470" cllen18 512);
siultimatlly aboris procce"tanko" ihese aDotizes ini*rLemid-lsvelCh6T&quolun0" id="L470" cllund="Lo1571un3_NCR5388ra hr5with8" id="L483" c2082> 51221qN_ERR class="linestanc&qu1span cla8ran word20820SELsisstrue beforslBSY 820SEL88IPLETuo>21qN_ERR class="linestanc&qu1span cla8r"linestan8ionly way8to guarantee 208io>2088LINKED_FLe" nnd / stsll a  e2cmdme="L512"> 512 512 512 512b888INKED_FLG_CM /202hostdata/acmdme="L512"> 512 512 512 512 512 0xffff) |_e /202hostdata/aDID_RESETme="L512"> 512 512 512 512 512214NiNCR53c562un3_NCRa_sh 2_0ulnd / stsll a  e2cmdme="L512"> 512 512 512 512 512 512 9" 2052e>20"1/8>1#/n894INKED_FLG_CMR5380.c#L483" iSET_uEX=me="L512"> 512 512 518<895"L512"> 512 512 512 512 512 512 0xffff) |_e /202hostdata/aDID_RESETme="L512"> 51220"N_ERR class="linec&8u1spa896=in.Gline" n #as9;C++#as9;scmdme="L512"> 512 512 512}, 
20"8pan>
898"L512"> e" nd / stsll a  e2iNCR53c562un3_NCRa_sh rcte 08Tmd").t *bawrite549">20e90e" nauo>21qN_ERR class="linestanc&qu1span cla9 12099> 519 512 519 52902"L512">  571un3_NCR538CR5380.ca> siid= allnaDotizes have bLen explici;lykterminatl2, we nee=_to tellhref21quo>21qN_ERR class="linestanc&qu1span cla9 32099> 519<="La> 9" 2052e>20"1/9a>)
<90eal DMe,ELAYe=basr" class="C""""* nee=_to 1me="wake up1me="kthe aDotizes by a0evquest_sense66T&quolun0" id="L470" cllund="Lo1571un3_NCR5389 52099> 519<93> 512 519ednto90v15mas>154sun3_CR5380.c#L483""""* href21quo>21qN_ERR class="linestanc&qu1span cla926212d="L599s>20"N_ERR class="linec&9& ill90LINKED_FLre_PRI k,1done()Dis caSCSI_RESET_SUCCESSve_ACKi*e15mas>SCSI_RESET_SUCCESSINKED|eeref 21tso>214NSCSI_RESET_BUSpanSETme="L512"> 512 1"* href21quo>21qN_ERR class="linestanc&qu1span cla928212d="L599pan>}, 
20"9io"""90es, a.c#L483" id="L483" class="21q6> 512  571un3_NCR538CR5380.ca> MSch: new-stylT0eviet handltan: lst_38Lemid-lsvel do what_itRca2"* href21quo>21qN_ERR class="linestanc&qu1span cla9urr na imp9eass=
565T pro7osal, lowu9evel 91e" nauo>21qN_ERR class="linestanc&qu1span cla9u12099> 519rirtlahqunexta
  571un3_NCR538CR5380.ca> ++gu380a r: MID-LEVEL IS STILL BROKENCh6T&quolun0" id="L470" cllund="Lo1571un3_NCR5389u2n-tance"95mask)
 512);
 591eT_SELun3_N|"linREAL_DMess="""""* various low-lsvel queuesC InRfact_itRdoes_this, but_ihat1me="s not enoughh6T&quolun0" id="L470" cllund="Lo1571un3_NCR5389u42099> 519ifdeS_e" cla1466T&quoLINK9Deref91eal DMe,ELAYe=basr" class="C""""* because_all_38Lse aDotizes are subje=i to timeout. Aze e" a timeouth6T&quolun0" id="L470" cllund="Lo1571un3_NCR5389u52099> 519PLETRT_SELun3_N|"linLINKE9_CMD591v15mas>154sun3_CR5380.c#L483""""* happensc="20any removed aDotize, *_abori()_iakaalled but_all_queuesh6T&quolun0" id="L470" cllund="Lo1571un3_NCR5389u6212d="L59D_FLG_CMD538IPLETRT_SELun9_N|"l91atl15mas>154sun3_CR5380.c#L4""""* are now empty. Abori0then g70"s up_38LefalaDn3tock, which iakfatal,66T&quolun0" id="L470" cllund="Lo1571un3_NCR5389ppens1when9we cease to21hap>21qd="L599" cS91  messaguseif_t{
150sun3_""""* (it1me="s all_happentank-tsi e iimer itaerrupi handl"r!!)Ch6T&quolun0" id="L470" cllund="Lo1571un3_NCR5389u9kive_let9#L483" id="L483" c2118> 592150sun3_NCR5380.c#L458" i* Even worse, abori0will re_PRI NOT_RUNNINRc="20all_38ose aDotizes noth6T&quolun0" id="L470" cllund="Lo1571un3_NCR5389*150sun3_NCR5380.c#8" i*h6T&quolun0" id="L470" cllund="Lo1571un3_NCR5389*2n-tance"93" id="L483" c212"> 512 512);
 *21qN_ERR class="linestanc&qu1span cla9*5212d="L59ciECT_____st;15mask)
9a hre92IPLETuo>21qN_ERR class="linestanc&qu1span cla9*6kive_let9spakpanc  571un3_NCR538CR5380.ca> Aft"r=thT0eviet, /a rsiare no more aDnncctl2 or disaDnncctl2 aDotizes66T&quolun0" id="L470" cllund="Lo1571un3_NCR5389*pens1when9"""""""""""""""*1with one9of th92  messaguseif_t{
  21212class="9ommen92es, allnfutur 12Gsp>150sun3_""""* aDnflicts when 38Lemid-lsvel a  e n-tes=toRwake up_/a eaffcctl2 66T&quolun0" id="L470" cllund="Lo1571un3_NCR5389*9kive_let9sp>150sun3_NCR5380.c#L4589 id="92*15Gsp>150sun3_NCR5380.c#L458" i* aDotizes!h6T&quolun0" id="L470" cllund="Lo1571un3_NCR5389ais coulI09e"due t21tas>21"8pan>54su93_CR593d="L41571un3_NCR538CR5380.c58" i* href21quo>21qN_ERR class="linestanc&qu1span cla9a12099> 519"> 5122139pan>
93 by 109"> 512NC93n3_NCR538i" nd / stsll a  e2ne15es lectaun*erruptsune15mas>154sun3_CR5380.c#L483" iissul_queueNCR53c562un3_NCRssul_queuea_sh809"> 512 512 *154sun3_CR5380.c#L483" iconncctl2me="L512"> 512<>156sun3_NCR59CR538935"L512"> 512 512154sun3_CR5380.c#L483" idisaDnncctl2_queueme="L512"> 512 512 512 flags/21a80.c#L483" id="L483" class="21q6> 512 *154sun3_CR5380.c#L483" iissul_queueNCR53c562un3_NCRssul_queuea_sh 2_L4dma_she1p_donu#ass="t;scsid="L4dma_sh0.c#L483" id="L483" class="21q6> 512 519n cliveThqunexta
  #as9;C++#as9;sne15es lectaun*erruptsune15mas>154sun3_CR5380.c#L483" iconncctl2me="L512"> 512942ie1-tancd / stsll a  e2ne15es lectaun*erruptsune15mas>154sun3_CR5380.c#L483" idisaDnncctl2_queueme="L512"> 512bare9t541S943INKE.c#_spak,1done()Dis caSUPPORE_TAGSve_ACKi*e15mas>SUPPORE_TAGS     * vario""""""""""""""""""""*nc21qd="L59#L483" id="L483" c2143> 592  /202hostdata/afree_all_8ags" class="21"2> free_all_8ags/21ae80.c#L483" id="L483" class="21q6> 512 512159sun3_946ie1-tancforeMeref 21tso>214NiNCR53c562un3_NCRa_sh 2_0ulL5380.c#L518" iiNCR53c562un3_NCRa_sh resul8; ++L5380.c#L518" iiNCR53c562un3_NCRa_sh 8Tmd").t * 449154sun3_CR5380.c#L483" ibusyectaun*erruptsubusy154s[#if 0"line" namiNCR53c562un3_NCRa_sh] 2_0uTmd").t * 512154sun3_CR5380.c#L483" idma_lea1466T&quoTmd").dma_leaa_sh 2_0u * vario""""""""""""""""""""*nc T9d / s950ie1-ass="209"> 512 5195SUN3_DMe_MINSIZEd="L4 1592un3_951"L512">  #as9;C++#as9;stocal_irq_evitore1466T&quoTmd").tocal_irq_evitore/21ae /202hostdata/aflags" class="21"2> flags/21a80.c#L483" id="L483" class="21q6> 512295> 512uo>21qN_ERR class="linestanc&qu1span cla9S we die no AL_pleteeeviet os allnaDotizes, so_aRwakeup iakrequirsdk* href21quo>21qN_ERR class="linestanc&qu1span cla9S>21qd="L59ctyaofllae target.) S20bi9>20r>954"L512"> re_PRI k,1done()Dis caSCSI_RESET_WAKEUPme="L512"> 512214NSCSI_RESET_BUSpanSETme="L512"> 51221qN_ERR class="linestanc&qu1span cla9mestannnnn9n-tance" cla1466T&quoSCpe9ef">b95atl15}09"> 512 449E_RE" cSELEEEEEE39" st;159ask 512150sun3a> Local Variables:"* href21quo>21qN_ERR class="linestanc&qu1span cla9m9kive_let9line" """""""""""""""""""9"""""95*15Gsp>150sun3_NCR5380.c#L4/* reb-width: 858" i* href21quo>21qN_ERR class="linestanc&qu1span cla92
29r9="L96d="L41571un3_NCR538CR5380.ca> EnCpeeeeeeeeeeeee* href21quo>21qN_ERR class="linestanc&qu1span cla9212099> 519n3_NCR5380.c#L5380.c#L5189 id=e961"L51


The original LXR software by_/a eo>21qN_ERhttp://sourcsforge.net/proje=is/lxr">LXR 8CR5unity154s, ihis experi5380al vassion by_o>21qN_ERmailto:lxr@linux.no).txr@linux.no154s.
txr.linux.no kindly ae15ed byeo>21qN_ERhttp://www.rsdpill-linpro.no).Rsdpill Linpro AS154s, provid"r=os Linux aDniulttankaze operaiions ser466Ts iiid= 1995.