linux/drivers/scsi/atari_NCR5380.c
<<
< /< /id="/id//spaj>id="id="/id="/id="/Search< /< //spaj>< /id="/id//spaj><="/< <="/< id/input typs;"hidden" nams;"ajax_lookup" id;"ajax_lookup" .args;"">i="/<
<="/<
<="/< /< <="/< < /div id;"content">< /div id;"file_contents">
< <1//a>/spaj class="comment">/*//spaj><< <2//a>/spaj class="comment"> * NCR 5380 generic driver routines.  These should make it *trivial*//spaj><< <3//a>/spaj class="comment"> *      to implement 5380 SCSI drivers under Linux with a non-trantor//spaj><< <4//a>/spaj class="comment"> *      architecture.//spaj><< <5//a>/spaj class="comment"> *//spaj><< <6//a>/spaj class="comment"> *      Note that these routines also work with NR53c400 family chips.//spaj><< <7//a>/spaj class="comment"> *//spaj><< <8//a>/spaj class="comment"> * Copyright 1993, Drew Eckhardt//spaj><< <9//a>/spaj class="comment"> *      Vis ajary Computing//spaj><< 10/spaj class="comment"> *      (Unix and Linux consulting and custam programming)//spaj><< 11//a>/spaj class="comment"> *      drew@colorado.edu//spaj><< 12//a>/spaj class="comment"> *      +1 (303) 666-5836<< 13//a>/spaj class="comment"> *<< 14//a>/spaj class="comment"> * DISTRIBUTION RELEASE 6.//spaj><< 15//a>/spaj class="comment"> *//spaj><< 16//a>/spaj class="comment"> * For more informa+ aj, please consult//spaj><< 17//a>/spaj class="comment"> *//spaj><< 18//a>/spaj class="comment"> * NCR 5380 Family//spaj><< 19//a>/spaj class="comment"> * SCSI Protocol Controller//spaj><< 20/spaj class="comment"> * Databook//spaj><< 21//a>/spaj class="comment"> *//spaj><< 22//a>/spaj class="comment"> * NCR Microelectronics//spaj><< 23//a>/spaj class="comment"> * 1635 Aeroplaza Drive//spaj><< 24//a>/spaj class="comment"> * Colorado Springs, CO 80916<< 25//a>/spaj class="comment"> * 1+ (719) 578-3400<< 26//a>/spaj class="comment"> * 1+ (800) 334-5454<< 27//a>/spaj class="comment"> */<< 28//a><< 29//a>/spaj class="comment">/*//spaj><< 30/spaj class="comment"> * ++roman: To port the 5380 driver to the Atari, I had to do some changes in//spaj><< 31//a>/spaj class="comment"> * this file, too://spaj><< 32//a>/spaj class="comment"> *//spaj><< 33//a>/spaj class="comment"> *  - Some of the debug statements were incorrect (undefined variables and the//spaj><< 34//a>/spaj class="comment"> *    like). I fixed that.//spaj><< 35//a>/spaj class="comment"> *//spaj><< 36//a>/spaj class="comment"> *  - In informa+ aj_transfer(), I think a #ifdef was wrong. Looking at the//spaj><< 37//a>/spaj class="comment"> *    possible DMA transfer size should also happen for REAL_DMA. I added this//spaj><< 38//a>/spaj class="comment"> *    in the #if statement.//spaj><< 39//a>/spaj class="comment"> *//spaj><< 40/spaj class="comment"> *  - When using real DMA, informa+ aj_transfer() should return in a DATAOUT//spaj><< 41//a>/spaj class="comment"> *    phase after starting the DMA. It has nothing more to do.//spaj><< 42//a>/spaj class="comment"> *//spaj><< 43//a>/spaj class="comment"> *  - The interrupt service routine should run main after end of DMA, too (not//spaj><< 44//a>/spaj class="comment"> *    only after RESELECTION interrupts). Addi+ ajally, it should _not_ test//spaj><< 45//a>/spaj class="comment"> *    for more interrupts after running main, since a DMA process may have//spaj><< 46//a>/spaj class="comment"> *    been started and interrupts are turned on now. The new int could happen//spaj><< 47//a>/spaj class="comment"> *    inside the execu+ ajaof NCR5380_intr(), leading to recursive//spaj><< 48//a>/spaj class="comment"> *    calls.//spaj><< 49//a>/spaj class="comment"> *//spaj><< 50/spaj class="comment"> *  - I've added a func+ aj merge_contiguous_buffers() that tries to//spaj><< 51//a>/spaj class="comment"> *    merge scatter-gather buffers that are located at contiguous//spaj><< 52//a>/spaj class="comment"> *    physical addresses and caj be processed with the sams DMA setup.//spaj><< 53//a>/spaj class="comment"> *    Since most scatter-gather opera+ ajs work on a page (4K)aof//spaj><< 54//a>/spaj class="comment"> *    4 buffers (1K), in more than 90%aof all cases three interrupts and//spaj><< 55//a>/spaj class="comment"> *    DMA setup ac+ ajs are saved.//spaj><< 56//a>/spaj class="comment"> *//spaj><< 57//a>/spaj class="comment"> * - I've deleted all the stuff for AUTOPROBE_IRQ, REAL_DMA_POLL, PSEUDO_DMA//spaj><< 58//a>/spaj class="comment"> *    and USLEEP, because these were messing up readability and will never be//spaj><< 59//a>/spaj class="comment"> *    needed for Atari SCSI.//spaj><< 60/spaj class="comment"> *//spaj><< 61//a>/spaj class="comment"> * - I've revised the NCR5380_main() calling scheme (relax the 'main_running'//spaj><< 62//a>/spaj class="comment"> *   stuff), and 'main' is execu+ed in a bottam half if awoken by an//spaj><< 63//a>/spaj class="comment"> *   interrupt.//spaj><< 64//a>/spaj class="comment"> *//spaj><< 65//a>/spaj class="comment"> * - The code was quite cluttered up by "#if (NDEBUG & NDEBUG_*) printk..."//spaj><< 66//a>/spaj class="comment"> *   constructs. In my eyes, this made the source rather unreadable, so I//spaj><< 67//a>/spaj class="comment"> *   fijally replaced that by the *_PRINTK() macros.//spaj><< 68//a>/spaj class="comment"> *//spaj><< 69//a>/spaj class="comment"> */<< 70//a><< 71//a>/spaj class="comment">/*//spaj><< 72//a>/spaj class="comment"> * Further development / testing that should be done ://spaj><< 73//a>/spaj class="comment"> * 1.  Test linked command handling code after Eric is ready with//spaj><< 74//a>/spaj class="comment"> *     the high level code.//spaj><< 75//a>/spaj class="comment"> */<< 76//a>#include </a href="include/scsi/scsi_dbg.h" class="fref">scsi/scsi_dbg.h//a>><< 77//a>#include </a href="include/scsi/scsi_transport_spi.h" class="fref">scsi/scsi_transport_spi.h//a>><< 78//a><< 79//a>#if (/a href="+code=NDEBUG" class="sref">NDEBUG//a> & /a href="+code=NDEBUG_LISTS" class="sref">NDEBUG_LISTS//a>)<< 80//a>#define /a href="+code=LIST" class="sref">LIST//a>(/a href="+code=x" class="sref">x//a>, /a href="+code=y" class="sref">y//a>)                                              \<< 81//a>        do {                                                    \<< 82//a>                /a href="+code=printk" class="sref">printk//a>(/spaj class="string">"LINE:%d   Adding %p to %p\n"//spaj>,           \<< 83//a>                       /a href="+code=__LINE__" class="sref">__LINE__//a>, (void*)(/a href="+code=x" class="sref">x//a>), (void*)(/a href="+code=y" class="sref">y//a>));       \<< 84//a>                if ((/a href="+code=x" class="sref">x//a>) == (/a href="+code=y" class="sref">y//a>))                                 \<< 85//a>                        /a href="+code=udelay" class="sref">udelay//a>(5);                              \<< 86//a>        } while (0)<< 87//a>#define /a href="+code=REMOVE" class="sref">REMOVE//a>(/a href="+code=w" class="sref">w//a>, /a href="+code=x" class="sref">x//a>, /a href="+code=y" class="sref">y//a>, /a href="+code=z" class="sref">z//a>)                                      \<< 88//a>        do {                                                    \<< 89//a>                /a href="+code=printk" class="sref">printk//a>(/spaj class="string">"LINE:%d   Removing: %p->%p  %p->%p \n"//spaj>, \<< 90//a>                       /a href="+code=__LINE__" class="sref">__LINE__//a>, (void*)(/a href="+code=w" class="sref">w//a>), (void*)(/a href="+code=x" class="sref">x//a>),        \<< 91//a>                       (void*)(/a href="+code=y" class="sref">y//a>), (void*)(/a href="+code=z" class="sref">z//a>));                 \<< 92//a>                if ((/a href="+code=x" class="sref">x//a>) == (/a href="+code=y" class="sref">y//a>))                                 \<< 93//a>                        /a href="+code=udelay" class="sref">udelay//a>(5);                              \<< 94//a>        } while (0)<< 95//a>#else<< 96//a>#define /a href="+code=LIST" class="sref">LIST//a>(/a href="+code=x" class="sref">x//a>,/a href="+code=y" class="sref">y//a>)<< 97//a>#define /a href="+code=REMOVE" class="sref">REMOVE//a>(/a href="+code=w" class="sref">w//a>,/a href="+code=x" class="sref">x//a>,/a href="+code=y" class="sref">y//a>,/a href="+code=z" class="sref">z//a>)<< 98//a>#endif<< 99//a><<100//a>#ifndef /a href="+code=notyet" class="sref">notyet//a><<101//a>#undef /a href="+code=LINKED" class="sref">LINKED//a><<102//a>#endif<<103//a><<104//a>/spaj class="comment">/*//spaj><<105//a>/spaj class="comment"> * Design//spaj><<106//a>/spaj class="comment"> * Issues ://spaj><<107//a>/spaj class="comment"> *//spaj><<108//a>/spaj class="comment"> * The other Linux SCSI drivers were written when Linux was Intel PC-only,//spaj><<109//a>/spaj class="comment"> * and specifically for each board rather than each chip.  This makes their//spaj><<110/spaj class="comment"> * adapta+ aj to platforms like the Mac (Some of which use NCR5380's)//spaj><<111//a>/spaj class="comment"> * more difficult than it has to be.//spaj><<112//a>/spaj class="comment"> *//spaj><<113//a>/spaj class="comment"> * Also, many of the SCSI drivers were written before the command queuing//spaj><<114//a>/spaj class="comment"> * routines were implemented, meaning their implementa+ ajs of queued//spaj><<115//a>/spaj class="comment"> * commands were hacked on rather than designed in from the start.//spaj><<116//a>/spaj class="comment"> *//spaj><<117//a>/spaj class="comment"> * When I designed the Linux SCSI drivers I figured that//spaj><<118//a>/spaj class="comment"> * while having two different SCSI boards in a system might be useful//spaj><<119//a>/spaj class="comment"> * for debugging things, two of the sams typs wouldn't be used.//spaj><<120/spaj class="comment"> * Well, I was wrong and a number of users have mailed ms about running//spaj><<121//a>/spaj class="comment"> * multiple high-performance SCSI boards in a server.//spaj><<122//a>/spaj class="comment"> *//spaj><<123//a>/spaj class="comment"> * Fijally, when I get ques+ ajs from users, I have no idea what//spaj><<124//a>/spaj class="comment"> * revis ajaof my driver they are running.//spaj><<125//a>/spaj class="comment"> *//spaj><<126//a>/spaj class="comment"> * This driver attempts to address these problems ://spaj><<127//a>/spaj class="comment"> * This is a generic 5380 driver.  To use it on a different platform,//spaj><<128//a>/spaj class="comment"> * one simply writes appropriate system specific macros (ie, data//spaj><<129//a>/spaj class="comment"> * transfer - some PC's will use the I/O bus, 68K's must use<<130/spaj class="comment"> * memory mapped) and drops this file in their 'C' wrapper.//spaj><<131//a>/spaj class="comment"> *//spaj><<132//a>/spaj class="comment"> * As far as command queueing, two queues are maintained for//spaj><<133//a>/spaj class="comment"> * each 5380 in the system - commands that haven't been issued yet,//spaj><<134//a>/spaj class="comment"> * and commands that are currently execu+ ng.  This means that an//spaj><<135//a>/spaj class="comment"> * unlimi+ed number of commands may be queued, letting//spaj><<136//a>/spaj class="comment"> * more commands propagate from the higher driver levels giving higher//spaj><<137//a>/spaj class="comment"> * throughput.  Note that both I_T_L and I_T_L_Q nexuses are supported,//spaj><<138//a>/spaj class="comment"> * allowing multiple commands to propagate all the way to a SCSI-II device//spaj><<139//a>/spaj class="comment"> * while a command is already execu+ ng.<<140/spaj class="comment"> *<<141//a>/spaj class="comment"> * To solve the multiple-boards-in-the-sams-system problem,//spaj><<142//a>/spaj class="comment"> * there is a separate instance structure for each instance//spaj><<143//a>/spaj class="comment"> * of a 5380 in the system.  So, multiple NCR5380 drivers will//spaj><<144//a>/spaj class="comment"> * bs able to coexist with appropriate changes to the high level//spaj><<145//a>/spaj class="comment"> * SCSI code.//spaj><<146//a>/spaj class="comment"> *//spaj><<147//a>/spaj class="comment"> * A NCR5380_PUBLIC_REVISION macro is provided, with the release//spaj><<148//a>/spaj class="comment"> * number (updated for each public release) printed by the//spaj><<149//a>/spaj class="comment"> * NCR5380_print_op+ ajs command, which should be called from the//spaj><<150/spaj class="comment"> * wrapper detect func+ aj, so that I know what release of the driver//spaj><<151//a>/spaj class="comment"> * users are using.//spaj><<152//a>/spaj class="comment"> *//spaj><<153//a>/spaj class="comment"> * Issues specific to the NCR5380 ://spaj><<154//a>/spaj class="comment"> *//spaj><<155//a>/spaj class="comment"> * When used in a PIO or pseudo-dma mode, the NCR5380 is a braindead//spaj><<156//a>/spaj class="comment"> * piece of hardware that requires you to sit in a loop polling for//spaj><<157//a>/spaj class="comment"> * the REQ signal as long as you are connected.  Some devices are//spaj><<158//a>/spaj class="comment"> * brain dead (ie, many TEXEL CD ROM drives) and won't disconnect//spaj><<159//a>/spaj class="comment"> * while doing long seek opera+ ajs.//spaj><<160/spaj class="comment"> *//spaj><<161//a>/spaj class="comment"> * The workaround for this is to keep track of devices that have//spaj><<162//a>/spaj class="comment"> * disconnected.  If the device hasn't disconnected, for commands that//spaj><<163//a>/spaj class="comment"> * should disconnect, we do something like//spaj><<164//a>/spaj class="comment"> *//spaj><<165//a>/spaj class="comment"> * while (!REQ is asserted) { sleep for N usecs; poll for M usecs }//spaj><<166//a>/spaj class="comment"> *//spaj><<167//a>/spaj class="comment"> * Some tweaking of N and M needs to be done.  An algorithm based//spaj><<168//a>/spaj class="comment"> * on "time to data" would give the best results as long as short time//spaj><<169//a>/spaj class="comment"> * to datas (ie, on the sams track) were considered, however these//spaj><<170/spaj class="comment"> * broken devices are the excep+ ajarather than the rule and I'd rather//spaj><<171//a>/spaj class="comment"> * spend my time op+ mizing for the normal case.//spaj><<172//a>/spaj class="comment"> *//spaj><<173//a>/spaj class="comment"> * Architecture ://spaj><<174//a>/spaj class="comment"> *//spaj><<175//a>/spaj class="comment"> * At the heart of the design is a coroutine, NCR5380_main,//spaj><<176//a>/spaj class="comment"> * which is started when not running by the interrupt handler,//spaj><<177//a>/spaj class="comment"> * timer, and queue command func+ aj.  It attempts to establish//spaj><<178//a>/spaj class="comment"> * I_T_L or I_T_L_Q nexuses by removing the commands from the//spaj><<179//a>/spaj class="comment"> * issue queue and calling NCR5380_select() if a nexus//spaj><<180/spaj class="comment"> * is not established.//spaj><<181//a>/spaj class="comment"> *//spaj><<182//a>/spaj class="comment"> * Once a nexus is established, the NCR5380_informa+ aj_transfer()//spaj><<183//a>/spaj class="comment"> * phase goes through the various phases as instructed by the target.//spaj><<184//a>/spaj class="comment"> * if the target goes into MSG IN and sends a DISCONNECT message,//spaj><<185//a>/spaj class="comment"> * the command structure is placed into the per instance disconnected//spaj><<186//a>/spaj class="comment"> * queue, and NCR5380_main tries to fijd more work.  If USLEEP//spaj><<187//a>/spaj class="comment"> * was defined, and the target is idle for too long, the system//spaj><<188//a>/spaj class="comment"> * will try to sleep.//spaj><<189//a>/spaj class="comment"> *//spaj><<190/spaj class="comment"> * If a command has disconnected, eventually an interrupt will trigger,//spaj><<191//a>/spaj class="comment"> * calling NCR5380_intr()  which will in turn call NCR5380_reselect//spaj><<192//a>/spaj class="comment"> * to reestablish a nexus.  This will run main if necessary.//spaj><<193//a>/spaj class="comment"> *<<194//a>/spaj class="comment"> * On command termina+ aj, the done func+ aj will be called as//spaj><<195//a>/spaj class="comment"> * appropriate.//spaj><<196//a>/spaj class="comment"> *//spaj><<197//a>/spaj class="comment"> * SCSI pointers are maintained in the SCp field of SCSI command//spaj><<198//a>/spaj class="comment"> * structures, being initialized after the command is connected//spaj><<199//a>/spaj class="comment"> * in NCR5380_select, and set as appropriate in NCR5380_informa+ aj_transfer.//spaj><<200/spaj class="comment"> * Note that in viola+ ajaof the standard, an implicit SAVE POINTERS opera+ aj//spaj><<201//a>/spaj class="comment"> * is done, since some BROKEN disks fail to issue an explicit SAVE POINTERS.//spaj><<202//a>/spaj class="comment"> */<<203//a><<204//a>/spaj class="comment">/*//spaj><<205//a>/spaj class="comment"> * Using this file ://spaj><<206//a>/spaj class="comment"> * This file a skeleton Linux SCSI driver for the NCR 5380 series//spaj><<207//a>/spaj class="comment"> * of chips.  To use it, you write an architecture specific func+ ajs//spaj><<208//a>/spaj class="comment"> * and macros and include this file in your driver.//spaj><<209//a>/spaj class="comment"> *//spaj><<210/spaj class="comment"> * These macros control op+ ajs ://spaj><<211//a>/spaj class="comment"> * AUTOSENSE - if defined, REQUEST SENSE will be performed automa+ cally//spaj><<212//a>/spaj class="comment"> *      for commands that return with a CHECK CONDITION status.//spaj><<213//a>/spaj class="comment"> *<<214//a>/spaj class="comment"> * LINKED - if defined, linked commands are supported.//spaj><<215//a>/spaj class="comment"> *//spaj><<216//a>/spaj class="comment"> * REAL_DMA - if defined, REAL DMA is used during the data transfer phases.//spaj><<217//a>/spaj class="comment"> *//spaj><<218//a>/spaj class="comment"> * SUPPORT_TAGS - if defined, SCSI-2 tagged queuing is used where possible//spaj><<219//a>/spaj class="comment"> *//spaj><<220/spaj class="comment"> * These macros MUST be defined ://spaj><<221//a>/spaj class="comment"> *//spaj><<222//a>/spaj class="comment"> * NCR5380_read(register)  - read from the specified register//spaj><<223//a>/spaj class="comment"> *//spaj><<224//a>/spaj class="comment"> * NCR5380_write(register, value) - write to the specific register//spaj><<225//a>/spaj class="comment"> *//spaj><<226//a>/spaj class="comment"> * Either real DMA *or* pseudo DMA may be implemented//spaj><<227//a>/spaj class="comment"> * REAL func+ ajs ://spaj><<228//a>/spaj class="comment"> * NCR5380_REAL_DMA should be defined if real DMA is to be used.//spaj><<229//a>/spaj class="comment"> * Note that the DMA setup func+ ajs should return the number of bytes//spaj><<230/spaj class="comment"> *      that they were able to program the controller for.//spaj><<231//a>/spaj class="comment"> *//spaj><<232//a>/spaj class="comment"> * Also note that generic i386/PC vers ajs of these macros are//spaj><<233//a>/spaj class="comment"> *      available as NCR5380_i386_dma_write_setup,//spaj><<234//a>/spaj class="comment"> *      NCR5380_i386_dma_read_setup, and NCR5380_i386_dma_residual.//spaj><<235//a>/spaj class="comment"> *//spaj><<236//a>/spaj class="comment"> * NCR5380_dma_write_setup(instance, src, count) - initialize//spaj><<237//a>/spaj class="comment"> * NCR5380_dma_read_setup(instance, dst, count) - initialize//spaj><<238//a>/spaj class="comment"> * NCR5380_dma_residual(instance); - residual count//spaj><<239//a>/spaj class="comment"> *//spaj><<240/spaj class="comment"> * PSEUDO func+ ajs ://spaj><<241//a>/spaj class="comment"> * NCR5380_pwrite(instance, src, count)//spaj><<242//a>/spaj class="comment"> * NCR5380_pread(instance, dst, count);//spaj><<243//a>/spaj class="comment"> *//spaj><<244//a>/spaj class="comment"> * If nothing specific to this implementa+ aj needs doing (ie, with external//spaj><<245//a>/spaj class="comment"> * hardware), you must also define//spaj><<246//a>/spaj class="comment"> *//spaj><<247//a>/spaj class="comment"> * NCR5380_queue_command//spaj><<248//a>/spaj class="comment"> * NCR5380_reset//spaj><<249//a>/spaj class="comment"> * NCR5380_abort//spaj><<250/spaj class="comment"> * NCR5380_proc_info//spaj><<251//a>/spaj class="comment"> *//spaj><<252//a>/spaj class="comment"> * to be the global entry points into the specific driver, ie//spaj><<253//a>/spaj class="comment"> * #define NCR5380_queue_command t128_queue_command.//spaj><<254//a>/spaj class="comment"> *//spaj><<255//a>/spaj class="comment"> * If this is not done, the routines will be defined as static func+ ajs//spaj><<256//a>/spaj class="comment"> * with the NCR5380* namss and the user must provide a globally//spaj><<257//a>/spaj class="comment"> * accessible wrapper func+ aj.//spaj><<258//a>/spaj class="comment"> *//spaj><<259//a>/spaj class="comment"> * The generic driver is initialized by calling NCR5380_init(instance),//spaj><<260/spaj class="comment"> * after setting the appropriate host specific fields and ID.  If the//spaj><<261//a>/spaj class="comment"> * driver wishes to autoprobe for aj IRQ line, the NCR5380_probe_irq(instance,//spaj><<262//a>/spaj class="comment"> * possible) func+ aj may be used.  Before the specific driver initializa+ aj//spaj><<263//a>/spaj class="comment"> * code finishes, NCR5380_print_op+ ajs should be called.//spaj><<264//a>/spaj class="comment"> */<<265//a><<266//a>static struct /a href="+code=Scsi_Host" class="sref">Scsi_Host//a> */a href="+code=first_instance" class="sref">first_instance//a> = /a href="+code=NULL" class="sref">NULL//a>;<<267//a>static struct /a href="+code=scsi_host_template" class="sref">scsi_host_template//a> */a href="+code=the_template" class="sref">the_template//a> = /a href="+code=NULL" class="sref">NULL//a>;<<268//a><<269//a>/spaj class="comment">/* Macros ease life... :-) */<<270//a>#define /a href="+code=SETUP_HOSTDATA" class="sref">SETUP_HOSTDATA//a>(/a href="+code=in" class="sref">in//a>)                              \<<271//a>    struct /a href="+code=NCR5380_hostdata" class="sref">NCR5380_hostdata//a> */a href="+code=hostdata" class="sref">hostdata//a> =                 \<<272//a>        (struct /a href="+code=NCR5380_hostdata" class="sref">NCR5380_hostdata//a> *)(/a href="+code=in" class="sref">in//a>)->/a href="+code=hostdata" class="sref">hostdata//a><<273//a>#define /a href="+code=HOSTDATA" class="sref">HOSTDATA//a>(/a href="+code=in" class="sref">in//a>) ((struct /a href="+code=NCR5380_hostdata" class="sref">NCR5380_hostdata//a> *)(/a href="+code=in" class="sref">in//a>)->/a href="+code=hostdata" class="sref">hostdata//a>)<<274//a><<275//a>#define /a href="+code=NEXT" class="sref">NEXT//a>(/a href="+code=cmd" class="sref">cmd//a>)               ((/a href="+code=Scsi_Cmnd" class="sref">Scsi_Cmnd//a> *)(/a href="+code=cmd" class="sref">cmd//a>)->/a href="+code=host_scribble" class="sref">host_scribble//a>)<<276//a>#define /a href="+code=SET_NEXT" class="sref">SET_NEXT//a>(/a href="+code=cmd" class="sref">cmd//a>,/a href="+code=next" class="sref">next//a>)      ((/a href="+code=cmd" class="sref">cmd//a>)->/a href="+code=host_scribble" class="sref">host_scribble//a> = (void *)(/a href="+code=next" class="sref">next//a>))<<277//a>#define /a href="+code=NEXTADDR" class="sref">NEXTADDR//a>(/a href="+code=cmd" class="sref">cmd//a>)           ((/a href="+code=Scsi_Cmnd" class="sref">Scsi_Cmnd//a> **)&(/a href="+code=cmd" class="sref">cmd//a>)->/a href="+code=host_scribble" class="sref">host_scribble//a>)<<278//a><<279//a>#define /a href="+code=HOSTNO" class="sref">HOSTNO//a>          /a href="+code=instance" class="sref">instance//a>->/a href="+code=host_no" class="sref">host_no//a><<280//a>#define /a href="+code=H_NO" class="sref">H_NO//a>(/a href="+code=cmd" class="sref">cmd//a>)       (/a href="+code=cmd" class="sref">cmd//a>)->/a href="+code=device" class="sref">device//a>->/a href="+code=host" class="sref">host//a>->/a href="+code=host_no" class="sref">host_no//a><<281//a><<282//a>#ifdef /a href="+code=SUPPORT_TAGS" class="sref">SUPPORT_TAGS//a><<283//a><<284//a>/spaj class="comment">/*//spaj><<285//a>/spaj class="comment"> * Func+ ajs for handling tagged queuing//spaj><<286//a>/spaj class="comment"> * =====================================//spaj><<287//a>/spaj class="comment"> *//spaj><<288//a>/spaj class="comment"> * ++romaj (01/96): Now I've implemented SCSI-2 tagged queuing. Some notes://spaj><<289//a>/spaj class="comment"> *//spaj><<290/spaj class="comment"> * Using consecu+ ve numbers for the tags is no good idea in my eyes. There//spaj><<291//a>/spaj class="comment"> * could be wrong re-usings if the counter (8 bit!) wraps and some early//spaj><<292//a>/spaj class="comment"> * command has been preempted for a long time. My solu+ aj: a bitfield for//spaj><<293//a>/spaj class="comment"> * remembering used tags.//spaj><<294//a>/spaj class="comment"> *//spaj><<295//a>/spaj class="comment"> * There's also the problem that each target has a certain queue size, but we//spaj><<296//a>/spaj class="comment"> * cannot know it in advance :-( We just see a QUEUE_FULL status being//spaj><<297//a>/spaj class="comment"> * returned. So, in this case, the driver internal queue size assump+ ajais//spaj><<298//a>/spaj class="comment"> * reduced to the number of ac+ ve tags if QUEUE_FULL is returned by the//spaj><<299//a>/spaj class="comment"> * target. The command is returned to the mid-level, but with status changed//spaj><<300/spaj class="comment"> * to BUSY, since --as I've seen-- the mid-level can't handle QUEUE_FULL//spaj><<301//a>/spaj class="comment"> * correctly.//spaj><<302//a>/spaj class="comment"> *//spaj><<303//a>/spaj class="comment"> * We're also not allowed running tagged commands as long as aj untagged//spaj><<304//a>/spaj class="comment"> * command is ac+ ve. And REQUEST SENSE commands after a contingent allegiance//spaj><<305//a>/spaj class="comment"> * condi+ aja_must_ be untagged. To keep track whether aj untagged command has//spaj><<306//a>/spaj class="comment"> * been issued, the host->busy array is still employed, as it is without//spaj><<307//a>/spaj class="comment"> * support for tagged queuing.//spaj><<308//a>/spaj class="comment"> *//spaj><<309//a>/spaj class="comment"> * One could suspect that there are possible race condi+ ajs between//spaj><<310/spaj class="comment"> * is_lun_busy(), cmd_get_tag() and cmd_free_tag(). But I think this isn't the//spaj><<311//a>/spaj class="comment"> * case: is_lun_busy() and cmd_get_tag() are both called from NCR5380_main(),//spaj><<312//a>/spaj class="comment"> * which already guaranteed to be running at most once. It is also the only//spaj><<313//a>/spaj class="comment"> * place where tags/LUNs are allocated. So no other allocat ajacan slip//spaj><<314//a>/spaj class="comment"> * between that pair, there could only happen a reselect aj, which can free a//spaj><<315//a>/spaj class="comment"> * tag, but that doesn't hurt. Only the sequence in cmd_free_tag() becomes//spaj><<316//a>/spaj class="comment"> * important: the tag bit must be cleared before 'nr_allocated' is decreased.//spaj><<317//a>/spaj class="comment"> */<<318//a><<319//a>/spaj class="comment">/* -1 for TAG_NONE is not possible with unsigned char cmd->tag */<<320#undef /a href="+code=TAG_NONE" class="sref">TAG_NONE//a><<321//a>#define /a href="+code=TAG_NONE" class="sref">TAG_NONE//a> 0xff<<322//a><<323//a>typedef struct {<<324//a>        /a href="+code=DECLARE_BITMAP" class="sref">DECLARE_BITMAP//a>(/a href="+code=allocated" class="sref">allocated//a>, /a href="+code=MAX_TAGS" class="sref">MAX_TAGS//a>);<<325//a>        int /a href="+code=nr_allocated" class="sref">nr_allocated//a>;<<326//a>        int /a href="+code=queue_size" class="sref">queue_size//a>;<<327//a>} /a href="+code=TAG_ALLOC" class="sref">TAG_ALLOC//a>;<<328//a><<329//a>static /a href="+code=TAG_ALLOC" class="sref">TAG_ALLOC//a> /a href="+code=TagAlloc" class="sref">TagAlloc//a>[8][8];        /spaj class="comment">/* 8 targets and 8 LUNs */<<330<<331//a><<332//a>static void /a href="+code=__init" class="sref">__init//a> /a href="+code=init_tags" class="sref">init_tags//a>(void)<<333//a>{<<334//a>        int /a href="+code=target" class="sref">target//a>, /a href="+code=lun" class="sref">lun//a>;<<335//a>        /a href="+code=TAG_ALLOC" class="sref">TAG_ALLOC//a> */a href="+code=ta" class="sref">ta//a>;<<336//a><<337//a>        if (!/a href="+code=setup_use_tagged_queuing" class="sref">setup_use_tagged_queuing//a>)<<338//a>                return;<<339//a><<340        for (/a href="+code=target" class="sref">target//a> = 0; /a href="+code=target" class="sref">target//a> < 8; ++/a href="+code=target" class="sref">target//a>) {<<341//a>                for (/a href="+code=lun" class="sref">lun//a> = 0; /a href="+code=lun" class="sref">lun//a> < 8; ++/a href="+code=lun" class="sref">lun//a>) {<<342//a>                        /a href="+code=ta" class="sref">ta//a> = &/a href="+code=TagAlloc" class="sref">TagAlloc//a>[/a href="+code=target" class="sref">target//a>][/a href="+code=lun" class="sref">lun//a>];<<343//a>                        /a href="+code=bitmap_zero" class="sref">bitmap_zero//a>(/a href="+code=ta" class="sref">ta//a>->/a href="+code=allocated" class="sref">allocated//a>, /a href="+code=MAX_TAGS" class="sref">MAX_TAGS//a>);<<344//a>                        /a href="+code=ta" class="sref">ta//a>->/a href="+code=nr_allocated" class="sref">nr_allocated//a> = 0;<<345//a>                        /spaj class="comment">/* At the beginning, assume the maximum queue size we could<<346//a>/spaj class="comment">                         * support (MAX_TAGS). This value will be decreased if the target<<347//a>/spaj class="comment">                         * returns QUEUE_FULL status.//spaj><<348//a>/spaj class="comment">                         */<<349//a>                        /a href="+code=ta" class="sref">ta//a>->/a href="+code=queue_size" class="sref">queue_size//a> = /a href="+code=MAX_TAGS" class="sref">MAX_TAGS//a>;<<350//a>                }<<351//a>        }<<352//a>}<<353//a><<354//a><<355//a>/spaj class="comment">/* Check if we can issue a command to this LUN: First see if the LUN is marked//spaj><<356//a>/spaj class="comment"> * busy by aj untagged command. If the command should use tagged queuing, also//spaj><<357//a>/spaj class="comment"> * check that there is a free tag and the target's queue won't overflow. This//spaj><<358//a>/spaj class="comment"> * func+ aj should be called with interrupts disabled to avoid race//spaj><<359//a>/spaj class="comment"> * condi+ ajs.//spaj><<360/spaj class="comment"> */<<361//a><<362//a>static int /a href="+code=is_lun_busy" class="sref">is_lun_busy//a>(/a href="+code=Scsi_Cmnd" class="sref">Scsi_Cmnd//a> */a href="+code=cmd" class="sref">cmd//a>, int /a href="+code=should_be_tagged" class="sref">should_be_tagged//a>)<<363//a>{<<364//a>        /a href="+code=SETUP_HOSTDATA" class="sref">SETUP_HOSTDATA//a>(/a href="+code=cmd" class="sref">cmd//a>->/a href="+code=device" class="sref">device//a>->/a href="+code=host" class="sref">host//a>);<<365//a><<366//a>        if (/a href="+code=hostdata" class="sref">hostdata//a>->/a href="+code=busy" class="sref">busy//a>[/a href="+code=cmd" class="sref">cmd//a>->/a href="+code=device" class="sref">device//a>->/a href="+code=id" class="sref">id//a>] & (1 << /a href="+code=cmd" class="sref">cmd//a>->/a href="+code=device" class="sref">device//a>->/a href="+code=lun" class="sref">lun//a>))<<367//a>                return 1;<<368//a>        if (!/a href="+code=should_be_tagged" class="sref">should_be_tagged//a> ||<<369//a>            !/a href="+code=setup_use_tagged_queuing" class="sref">setup_use_tagged_queuing//a> || !/a href="+code=cmd" class="sref">cmd//a>->/a href="+code=device" class="sref">device//a>->/a href="+code=tagged_supported" class="sref">tagged_supported//a>)<<370//a>                return 0;<<371//a>        if (/a href="+code=TagAlloc" class="sref">TagAlloc//a>[/a href="+code=cmd" class="sref">cmd//a>->/a href="+code=device" class="sref">device//a>->/a href="+code=id" class="sref">id//a>][/a href="+code=cmd" class="sref">cmd//a>->/a href="+code=device" class="sref">device//a>->/a href="+code=lun" class="sref">lun//a>]./a href="+code=nr_allocated" class="sref">nr_allocated//a> >=<<372//a>            /a href="+code=TagAlloc" class="sref">TagAlloc//a>[/a href="+code=cmd" class="sref">cmd//a>->/a href="+code=device" class="sref">device//a>->/a href="+code=id" class="sref">id//a>][/a href="+code=cmd" class="sref">cmd//a>->/a href="+code=device" class="sref">device//a>->/a href="+code=lun" class="sref">lun//a>]./a href="+code=queue_size" class="sref">queue_size//a>) {<<373//a>                /a href="+code=TAG_PRINTK" class="sref">TAG_PRINTK//a>(/spaj class="string">"scsi%d: target %d lun %d: no free tags\n",<<374//a>                           /a href="+code=H_NO" class="sref">H_NO//a>(/a href="+code=cmd" class="sref">cmd//a>), /a href="+code=cmd" class="sref">cmd//a>->/a href="+code=device" class="sref">device//a>->/a href="+code=id" class="sref">id//a>, /a href="+code=cmd" class="sref">cmd//a>->/a href="+code=device" class="sref">device//a>->/a href="+code=lun" class="sref">lun//a>);<<375//a>                return 1;<<376//a>        }<<377//a>        return 0;<<378//a>}<<379//a><<380<<381//a>/spaj class="comment">/* Allocate a tag for a command (there are no checks anymore, check_lun_busy()<<382//a>/spaj class="comment"> * must be called before!), or reserve the LUN in 'busy' if the command is//spaj><<383//a>/spaj class="comment"> * untagged.//spaj><<384//a>/spaj class="comment"> */<<385//a><<386//a>static void /a href="+code=cmd_get_tag" class="sref">cmd_get_tag//a>(/a href="+code=Scsi_Cmnd" class="sref">Scsi_Cmnd//a> */a href="+code=cmd" class="sref">cmd//a>, int /a href="+code=should_be_tagged" class="sref">should_be_tagged//a>)<<387//a>{<<388//a>        /a href="+code=SETUP_HOSTDATA" class="sref">SETUP_HOSTDATA//a>(/a href="+code=cmd" class="sref">cmd//a>->/a href="+code=device" class="sref">device//a>->/a href="+code=host" class="sref">host//a>);<<389//a><<390//a>        /spaj class="comment">/* If we or the target don't support tagged queuing, allocate the LUN for//spaj><<391//a>/spaj class="comment">         * aj untagged command.//spaj><<392//a>/spaj class="comment">         */<<393//a>        if (!/a href="+code=should_be_tagged" class="sref">should_be_tagged//a> ||<<394//a>            !/a href="+code=setup_use_tagged_queuing" class="sref">setup_use_tagged_queuing//a> || !/a href="+code=cmd" class="sref">cmd//a>->/a href="+code=device" class="sref">device//a>->/a href="+code=tagged_supported" class="sref">tagged_supported//a>) {<<395//a>                /a href="+code=cmd" class="sref">cmd//a>->/a href="+code=tag" class="sref">tag//a> = /a href="+code=TAG_NONE" class="sref">TAG_NONE//a>;<<396//a>                /a href="+code=hostdata" class="sref">hostdata//a>->/a href="+code=busy" class="sref">busy//a>[/a href="+code=cmd" class="sref">cmd//a>->/a href="+code=device" class="sref">device//a>->/a href="+code=id" class="sref">id//a>] |= (1 << /a href="+code=cmd" class="sref">cmd//a>->/a href="+code=device" class="sref">device//a>->/a href="+code=lun" class="sref">lun//a>);<<397//a>                /a href="+code=TAG_PRINTK" class="sref">TAG_PRINTK//a>(/spaj class="string">"scsi%d: target %d lun %d now allocated by untagged "<<398//a>                           /spaj class="string">"command\n", /a href="+code=H_NO" class="sref">H_NO//a>(/a href="+code=cmd" class="sref">cmd//a>), /a href="+code=cmd" class="sref">cmd//a>->/a href="+code=device" class="sref">device//a>->/a href="+code=id" class="sref">id//a>, /a href="+code=cmd" class="sref">cmd//a>->/a href="+code=device" class="sref">device//a>->/a href="+code=lun" class="sref">lun//a>);<<399//a>        } else {<<400//a>                /a href="+code=TAG_ALLOC" class="sref">TAG_ALLOC//a> */a href="+code=ta" class="sref">ta//a> = &/a href="+code=TagAlloc" class="sref">TagAlloc//a>[/a href="+code=cmd" class="sref">cmd//a>->/a href="+code=device" class="sref">device//a>->/a href="+code=id" class="sref">id//a>][/a href="+code=cmd" class="sref">cmd//a>->/a href="+code=device" class="sref">device//a>->/a href="+code=lun" class="sref">lun//a>];<<401//a><<402//a>                /a href="+code=cmd" class="sref">cmd//a>->/a href="+code=tag" class="sref">tag//a> = /a href="+code=find_first_zero_bit" class="sref">find_first_zero_bit//a>(/a href="+code=ta" class="sref">ta//a>->/a href="+code=allocated" class="sref">allocated//a>, /a href="+code=MAX_TAGS" class="sref">MAX_TAGS//a>);<<403//a>                /a href="+code=set_bit" class="sref">set_bit//a>(/a href="+code=cmd" class="sref">cmd//a>->/a href="+code=tag" class="sref">tag//a>, /a href="+code=ta" class="sref">ta//a>->/a href="+code=allocated" class="sref">allocated//a>);<<404//a>                /a href="+code=ta" class="sref">ta//a>->/a href="+code=nr_allocated" class="sref">nr_allocated//a>++;<<405//a>                /a href="+code=TAG_PRINTK" class="sref">TAG_PRINTK//a>(/spaj class="string">"scsi%d: using tag %d for target %d lun %d "< || !ss="sref">cmd//a>), /a href="+code=cmd(now %d tags in use)\n",<<407//a>                           /a href="+code=H_NO" class="sref">H_NO//a>(/a href="+code=cmd" class="sref">cmd//a>), /a href="+code=cmd" class="sref">cmd//a>->/a href="+code=tag" class="sref">tag//a>, /a href="+code=cmd" class="sref">cmd//a>->/a href="+code=device" class="sref">device//a>->/a href="+code=id" class="sref">id//a>,<<408//a>                           /a href="+code=cmd" class="sref">cmd//a>->/a href="+code=device" class="sref">device//a>->/a href="+code=lun" class="sref">lun//a>, /a href="+code=ta" class="sref">ta//a>->/a href="+code=nr_allocated" class="sref">nr_allocated//a>);<<409//a>        }<<410}<<411//a><<412//a><<413//a>/spaj class="comment">/* Mark the tag of command 'cmd' as free, or in case of aj untagged command,//spaj><<414//a>/spaj class="comment"> * unlock the LUN.//spaj><<415//a>/spaj class="comment"> */<<416//a><<417//a>static void /a href="+code=cmd_free_tag" class="sref">cmd_free_tag//a>(/a href="+code=Scsi_Cmnd" class="sref">Scsi_Cmnd//a> */a href="+code=cmd" class="sref">cmd//a>)<<418//a>{<<419//a>        /a href="+code=SETUP_HOSTDATA" class="sref">SETUP_HOSTDATA//a>(/a href="+code=cmd" class="sref">cmd//a>->/a href="+code=device" class="sref">device//a>->/a href="+code=host" class="sref">host//a>);<<420<<421//a>        if (/a href="+code=cmd" class="sref">cmd//a>->/a href="+code=tag" class="sref">tag//a> == /a href="+code=TAG_NONE" class="sref">TAG_NONE//a>) {<<422//a>                /a href="+code=hostdata" class="sref">hostdata//a>->/a href="+code=busy" class="sref">busy//a>[/a href="+code=cmd" class="sref">cmd//a>->/a href="+code=device" class="sref">device//a>->/a href="+code=id" class="sref">id//a>] &= ~(1 << /a href="+code=cmd" class="sref">cmd//a>->/a href="+code=device" class="sref">device//a>->/a href="+code=lun" class="sref">lun//a>);<<423//a>                /a href="+code=TAG_PRINTK" class="sref">TAG_PRINTK//a>(/spaj class="string">"scsi%d: target %d lun %d untagged cmd finished\n",<<424//a>                           /a href="+code=H_NO" class="sref">H_NO//a>(/a href="+code=cmd" class="sref">cmd//a>), /a href="+code=cmd" class="sref">cmd//a>->/a href="+code=device" class="sref">device//a>->/a href="+code=id" class="sref">id//a>, /a href="+code=cmd" class="sref">cmd//a>->/a href="+code=device" class="sref">device//a>->/a href="+code=lun" class="sref">lun//a>);<<425//a>        } else if (/a href="+code=cmd" class="sref">cmd//a>->/a href="+code=tag" class="sref">tag//a> >= /a href="+code=MAX_TAGS" class="sref">MAX_TAGS//a>) {<<426//a>                /a href="+code=printk" class="sref">printk//a>(/a href="+code=KERN_NOTICE" class="sref">KERN_NOTICE//a> /spaj class="string">"scsi%d: trying to free bad tag %d!\n",<<427//a>                       /a href="+code=H_NO" class="sref">H_NO//a>(/a href="+code=cmd" class="sref">cmd//a>), /a href="+code=cmd" class="sref">cmd//a>->/a href="+code=tag" class="sref">tag//a>);<<428//a>        } else {<<429//a>                /a href="+code=TAG_ALLOC" class="sref">TAG_ALLOC//a> */a href="+code=ta" class="sref">ta//a> = &/a href="+code=TagAlloc" class="sref">TagAlloc//a>[/a href="+code=cmd" class="sref">cmd//a>->/a href="+code=device" class="sref">device//a>->/a href="+code=id" class="sref">id//a>][/a href="+code=cmd" class="sref">cmd//a>->/a href="+code=device" class="sref">device//a>->/a href="+code=lun" class="sref">lun//a>];<<430//a>                /a href="+code=clear_bit" class="sref">clear_bit//a>(/a href="+code=cmd" class="sref">cmd//a>->/a href="+code=tag" class="sref">tag//a>, /a href="+code=ta" class="sref">ta//a>->/a href="+code=allocated" class="sref">allocated//a>);<<431//a>                /a href="+code=ta" class="sref">ta//a>->/a href="+code=nr_allocated" class="sref">nr_allocated//a>--;<<432//a>                /a href="+code=TAG_PRINTK" class="sref">TAG_PRINTK//a>(/spaj class="string">"scsi%d: freed tag %d for target %d lun %d\n",<<433//a>                           /a href="+code=H_NO" class="sref">H_NO//a>(/a href="+code=cmd" class="sref">cmd//a>), /a href="+code=cmd" class="sref">cmd//a>->/a href="+code=tag" class="sref">tag//a>, /a href="+code=cmd" class="sref">cmd//a>->/a href="+code=device" class="sref">device//a>->/a href="+code=id" class="sref">id//a>, /a href="+code=cmd" class="sref">cmd//a>->/a href="+code=device" class="sref">device//a>->/a href="+code=lun" class="sref">lun//a>);<<434//a>        }<<435//a>}<<436//a><<437//a><<438//a>static void /a href="+code=free_all_tags" class="sref">free_all_tags//a>(void)<<439//a>{<<440        int /a href="+code=target" class="sref">target//a>, /a href="+code=lun" class="sref">lun//a>;<<441//a>        /a href="+code=TAG_ALLOC" class="sref">TAG_ALLOC//a> */a href="+code=ta" class="sref">ta//a>;<<442//a><<443//a>        if (!/a href="+code=setup_use_tagged_queuing" class="sref">setup_use_tagged_queuing//a>)<<444//a>                return;<<445//a><<446//a>        for (/a href="+code=target" class="sref">target//a> = 0; /a href="+code=target" class="sref">target//a> < 8; ++/a href="+code=target" class="sref">target//a>) {<<447//a>                for (/a href="+code=lun" class="sref">lun//a> = 0; /a href="+code=lun" class="sref">lun//a> < 8; ++/a href="+code=lun" class="sref">lun//a>) {<<448//a>                        /a href="+code=ta" class="sref">ta//a> = &/a href="+code=TagAlloc" class="sref">TagAlloc//a>[/a href="+code=target" class="sref">target//a>][/a href="+code=lun" class="sref">lun//a>];<<449//a>                        /a href="+code=bitmap_zero" class="sref">bitmap_zero//a>(/a href="+code=ta" class="sref">ta//a>->/a href="+code=allocated" class="sref">allocated//a>, /a href="+code=MAX_TAGS" class="sref">MAX_TAGS//a>);<<450//a>                        /a href="+code=ta" class="sref">ta//a>->/a href="+code=nr_allocated" class="sref">nr_allocated//a> = 0;<<451//a>                }<<452//a>        }<<453//a>}<<454//a><<455//a>#endif /spaj class="comment">/* SUPPORT_TAGS */<<456//a><<457//a><<458//a>/spaj class="comment">/*//spaj><<459//a>/spaj class="comment"> * Func+ aj: void merge_contiguous_buffers( Scsi_Cmnd *cmd )<<460/spaj class="comment"> *<<461//a>/spaj class="comment"> * Purpose: Try to merge several scatter-gather requests into one DMA<<462//a>/spaj class="comment"> *    transfer. This is possible if the scatter buffers lie on<<463//a>/spaj class="comment"> *           phy_ictming"74" class="line" nams;"L374"><374//a> >->/a href="gec#L360" id;"L360" class="line" nams;"L360"><360        4a href="+code=SETUP_HOST4ATA" 46/spaj><<360#endif /s"drivers/scsi/atari_NCR5480.c#46esn't hurt. Only the sequePari_Ni/as:/atari_NCR5380.L360" id;"L360" class="line" nams;"L360"><360<bus><<360<<<360/spaj claf (!/a href="+code=shoul4_be_t46be called with interrupts dis#L456" id;"L456" class="line" nams;"L456"><456//a>        4   !/a href="+code=setup4use_t4690" id;"L390" class="line" nams;"L390"><390//4>        4       return 0;<free_all_tags//a>(aj><cmd//a>)<<418//a>        4f (/a href="+code=TagAll4c" cl4ss="srid;"L448" class="line" nams;"L448"><448//a>        4   /a href="+code=TagAll4c" cl4ss="sref">TagArivers/sclongee_all_tags//a>(<442//a>        4       /a href="+code=TA4_PRIN4K" cla#gt;/a href="+code=tNDEBUGatari_NCR5380.cNDEBUG">lun/ef">ca href="+code=tNDEBUG_MERGINGatari_NCR5380.cNDEBUG_MERGING18" id;"L418" class="line" nams;"L418"><418//a>        4                  /a hre4="+co4e=H_NO" class=rivers/sclongee_all_tags//a>(oldlei/atari_NCR5380.oldleic#L451"a href="+code=device" class="sref">device//a>->/a href="+SCpmd" class="sref"Cpevic_size//a>) {<<<442//a>#endif /s       return 1;<, /a href="+codcnmd" class="sref">n>target/ id;"L376" class="line" nams;"L376"><376//4>        4<<376//4><<458//a>}<<3atari_NCR5380.cvirt_to_"><3>/a href="+code=tag" class="sref">tag//a>, /a href="+code=ta" SCpmd" class="sref"Cpevic_size//a>) {<device//a>->/a href="+SCpmd" class="sref"Cpevic_size//a>) {<<<376//4>        4"drivers/scsi/atari_NCR5480.c#47tmap_zero" class="a href="+code=device" class="sref">device//a>->/a href="+SCpmd" class="sref"Cpevic_size//a>) {<lun/ef">/ef">d;"L376" class="line" nams;"L376"><376//4><ta/a href="+code=dvirt_to_"><3atari_NCR5380.cvirt_to_"><3>/a href="+code=tsg_virta href="drivers/g_virt>/Alloc//a>[/a href="+evice" class="sref">device//a>->/a href="+SCpmd" class="sref"Cpevic_size//a>) {<1]))NONE//a>) {<<448//a>/spaj cl4ss="comment">/* Allocate4a tag48"sref">ta//a>->/a href="+code=nr_MERss="string">"scsiMERss="streed tag %d for target %dVTOP(tari_p)NONEtari_08lx e//a>e DMArgeCR5380.c#L433" id;"L433" class="line" nams;"L433"><433//a>/spaj cl4ss="comment"> * must be 4alled48" class="sref">ta//a> = &/a href="+code=nr_pa<[/a href="+evice" class="sref">device//a>->/a href="+SCpmd" class="sref"Cpevic_size//a>) {<1]))GS//a>);<<450//a>/spaj cl4ss="comment"> * untagged4//spa48" cla#gt;/a href="+code=tNDEBUGatari_NCR5380.cNDEBUG">lun/ef">ca href="+code=tNDEBUG_MERGINGatari_NCR5380.cNDEBUG_MERGING18" id;"L418" class="line" nams;"L418"><418//a>/spaj cl4ss="comment"> */<4a hre48scsi/atari_NCR5380.c#n>targid;"L450" class="line" nams;"L450"><450//a>#endif /s"drivers/scsi/atari_NCR5480.c#48AGS */<450//a>        4id /a href="+code=cmd_ge4_tag"48ass="sref">printk//a>device//a>->/a href="+SCpmd" class="sref"Cpevic_size//a>) {<<450//a><lun//a> --a href="+code=device" class="sref">device//a>->/a href="+SCpmd" class="sref"Cpevic_size//a>) {<luid;"L450" class="line" nams;"L450"><450//a>}<ta//a>a href="+code=device" class="sref">device//a>->/a href="+SCpmd" class="sref"Cpevic_size//a>) {<<device//a>->/a href="+SCpmd" class="sref"Cpevic_size//a>) {<luid;"L450" class="line" nams;"L450"><450//a>        4"drivers/scsi/atari_NCR5480.c#48 class="sref">TAG_ALLOC//a> */a hrefdevice//a>->/a href="+SCpmd" class="sref"Cpevic_size//a>) {<luid;"L450" class="line" nams;"L450"><450//a>        4spaj class="comment">/* 4f we 4r the target did;"L454" class="line" nams;"L454"><454//a>/spaj cl4ss="comment">         * 4j unt4gged c#gt;/a href="+code=tNDEBUGatari_NCR5380.cNDEBUG">lun/ef">ca href="+code=tNDEBUG_MERGINGatari_NCR5380.cNDEBUG_MERGING18" id;"L418" class="line" nams;"L418"><418//a>/spaj cl4ss="comment">         */4/spaj49" class="srefgt;/a href="+code=toldlei/atari_NCR5380.oldleic#L45!1"a href="+code=device" class="sref">device//a>->/a href="+SCpmd" class="sref"Cpevic_size//a>) {<<<418//a>/spaj cl4f (!/a href="+code=shoul4_be_t49" class="sref">TAG_PRINTK//a>(/spaj MERss="string">"scsiMERss="streed tag %d for target %daj><<433//a>        4   !/a href="+code=setup4use_t4gged_queuing" class="sref">ta//a>a href="+code=denmd" class="sref">n>targ;/a href="+code=device" class="sref">device//a>->/a href="+SCpmd" class="sref"Cpevic_size//a>) {<device//a>->/a href="+SCpmd" class="sref"Cpevic_size//a>) {<<<450//a>#endif /s       /a href="+code=cm4" cla49AGS */<450//a>        4       /a href="+code=ho4tdata4 classid;"L454" class="line" nams;"L454"><454//a><<458//a>        4                  /spaj 4lass=49drivers/scsi/atari_NCR5380.c#L459" id;"L459" class="line" nams;"L459"><459//a>        4 else {<<460        5       /a href="+code=TA5_ALLO50drivers/scsi/atari_NCR5380.c#L461" id;"L461" class="line" nams;"L461"><461//5><bus>poef="dsf= 0;80.cNCRpoef=spaj><360        5       /a href="+code=cm5" cla50s is possible if the scatter buff R538rtrs/se couri_NC#L360" id;"L360" class="line" nams;"L360"><360        5       /a href="+code=se5_bit"50tming"74" class="line" nams;"L360" id;"L360" class="line" nams;"L360"><3604       5   !/a href="+code=setup5 clas50/spaj><<3605       5       /a href="+code=cm5_PRIN50"drivers/scsi/atari_NCR5380.c#L416" id;"L416" class="line" nams;"L416"><416//5_queuing/5a> || !ss="sref">cmd//a>5, /a 5057" id;"L457" class="line" nams;"L457"><457//5>        5                  /a hre5="+co50class="sref"size//a>) {<free_all_tags//a>(initialize_"Cp  cated" class=initialize_"Cpt;/a href="+code=all="+code=cmd" class="sref">cmd//a>)<<418//5>        5                  /a hre5="+co50419" id;"L419" class="line" nams;"L419"><419//5>        5<<459//5>}<cm Poef="d fielR5 o queueallrs/se co statusi/ata><360<<<<392//5><<393//5>/spaj cl5ss="comment">/* Mark the5tag o5154" id;"L354" class="line" nams;"L354"><354//5>/spaj cl5ss="comment"> * unlock t5e LUN51ged_queuing" gt;/a href="+code=tne" vers/lei/atari_NCR5380.ne" vers/lei>/a href="+code=tag" class="sref">tag//a>,)" id;"L448" class="line" nams;"L448"><448//5>/spaj cl5ss="comment"> */<5a hre51="sref">cmd//a>->/a href="+code=tag" class="sref">tag//a> = /a href="+code=TAGSCpmd" class="sref"Cpevic_size//a>) {<tag//a>,)id;"L450" class="line" nams;"L450"><450//5><printk//a>(/a href="+codeevice" class="sref">device//a>->/a href="+SCpmd" class="sref"Cpevic_size//a>) {<lu51"a href="+code=dne" vsg_counmd" class="sref"ne" vsg_counm>/a href="+code=tag" class="sref">tag//a>,) - 1id;"L450" class="line" nams;"L450"><450//5>        5id /a href="+code=cmd_fr5e_tag51" class="sref">TAG_PRINTK//a>(/spaj ag" class="sref">tag//a>, /a href="+code=ta" SCpmd" class="sref"Cpevic_size//a>) {<tag//a> = /a href="+code=TAGSCpmd" class="sref"Cpevic_size//a>) {<<450//5>        5="drivers/scsi/atari_NCR5380.c51" class="sref">ta//a>a href="+code=device" class="sref">device//a>->/a href="+SCpmd" class="sref"Cpevic_size//a>) {<<device//a>->/a href="+SCpmd" class="sref"Cpevic_size//a>) {<luid;"L450" class="line" nams;"L450"><450//5>        5a href="+code=SETUP_HOST5ATA" 51 class="sref">TAG_ALLO<<393//5>< >->/a "><374//ahref="gec#L360" id;"L360" class="line" nams;"L360"><360        5f (/a href="+code=cmd" c5ass="52ged command.//spaj><<393//5>        5       /a href="+code=ho5tdata5 class="sref">hostdata//a>->/a hreaj><tag//a>,)id;"L450" class="line" nams;"L450"><450//5>        5       /a href="+code=TA5_PRIN5K" class="sref#L429" id;"L429" class="line" nams;"L429"><429//5>        5                  /a hre5="+co5e=H_NO" class="sref">Ha href="+code=device" class="sref">device//a>->/a href="+SCpmd" class="sref"Cpevic_size//a>) {<luid;"L450" class="line" nams;"L450"><450//5>        5 else if (/a href="+code5cmd" 52="sref">cmd//a>->/a href="+code=tag" class="sref">tag//a> = /a href="+code=TAGSCpmd" class="sref"Cpevic_size//a>) {<lu51" id;"L451" class="line" nams;"L451"><451//5>        5       /a href="+code=pr5ntk" 5lass="sref">printk//a>(/a href="+codeag" class="sref">tag//a>, /a href="+code=ta" SCpmd" class="sref"Cpevic_size//a>) {<luid;"L450" class="line" nams;"L450"><450//5>        5              /a href="+5ode=H5NO" class="sref">H_NO/a href="+code=device" class="sref">device//a>->/a href="+SCpmd" class="sref"Cpevic_size//a>) {<<<451//5>        5 else {<<451//5>        5       /a href="+code=TA5_ALLO5" clas#d;"L451" class="line" nams;"L451"><451//5>        5       /a href="+code=cl5ar_bi5321" id;"L421" class="line" nams;"L421"><421//5>        5       /a href="+code=ta5 clas53ged c#gncluden//a>;"L421" cgnclude/refux/delay.h/atari_NCf5380.cefux/delay.hed c//a>d;"L421" class="line" nams;"L421"><421//5>        5       /a href="+code=TA5_PRIN5343" id;"L443" class="line" nams;"L443"><443//5>        5                  /a hre5="+co53" cla#gt;a href="+code=tNDEBUGatari_NCR5380.cNDEBUG">lud;"L443" class="line" nams;"L443"><443//5>        5<<429//5>}<cmd//rivers/scchara//a>->/a hreaas_NOTICE" class="aas_">luid;"L450" class="line" nams;"L450"><450//5><pr hrstccharahref="drivers/scri_NNOTICE" class="ri_N">luid;"L450" class="line" nams;"L450"><450//5>        5"drivers/scsi/atari_NCR5580.c#5438" i}"a href="+code=dnersalsdrivers/scsi/atnersals8" i[] 1"id;"L429" class="line" nams;"L429"><429//5>        5id /a href="+code=free_a5l_tag53ari_NCR5380.c{ETUP_HOSTDATA//a>R_DBPmd" class="sref"R_DBP42" ;/ag %d for target %dPARITY5380.c#L433" },c{ETUP_HOSTDATA//a>R_RSTmd" class="sref"R_RST42" ;/ag %d for target %dRST5380.c#L433"  },c{ETUP_HOSTDATA//a>R_BSYmd" class="sref"R_BSY42" ;/ag %d for target %dBSY5380.c#L433"  },d;"L429" class="line" nams;"L429"><429//5>        5="drivers/scsi/atari_NCR5380.c539ri_NCR5380.c{ETUP_HOSTDATA//a>R_REQmd" class="sref"R_REQ42" ;/ag %d for target %dREQ5380.c#L433"  },c{ETUP_HOSTDATA//a>R_MSGatari_NCR5380.c>R_MSG42" ;/ag %d for target %dMSG5380.c#L433"  },c{ETUP_HOSTDATA//a>R_CDatari_NCR5380.c>R_CD42" ;//ag %d for target %dCD5380.c#L433"  },c{ETUP_HOSTDATA//a>R_Ilass="sref">cmd/>R_Il42" ;/ag %d for target %dIO5380.c#L433"  },d;"L429" class="line" nams;"L429"><429//5>        5nt /a href="+code=target5 clas5="sref">target{ETUP_HOSTDATA//a>R_SELatari_NCR5380.c>R_SEL42" ;/ag %d for target %dSEL5380.c#L433"  },c{0;/a href="+code=dNULLatari_NCR5380.cNULL">lu#d;"L451" class="line" nams;"L451"><451//5>        5a href="+code=TAG_ALLOC"5class5"sref"};/a href="+code=dbascsdrivers/scsi/atbascs8" i[] 1"id;"L429" class="line" nams;"L429"><429//5><{a href="+code=dBA>R_ATNdrivers/scsi/atBA>R_ATN42" ;/ag %d for target %dATN5380.c#L433" },c{a href="+code=dBA>R_ACring">"scsiBA>R_ACr42" ;/ag %d for target %dACK5380.c#L433" },c{0;/a href="+code=dNULLatari_NCR5380.cNULL">lu#d;"L451" class="line" nams;"L451"><451//5>        5f (!/a href="+code=setup5use_t5gged_q};/a href="+code=diccsdrivers/scsi/aticcs8" i[] 1"id;"L429" class="line" nams;"L429"><429//5>        5       return;<"scsiICR_ASSERT_ACr42" ;/ag %d for target %dASSERT ACK5380.c#L433" },d;"L429" class="line" nams;"L429"><429//5>}<<429//5><targe{a href="+code=dICR_ASSERT_ATNdrivers/scsi/atICR_ASSERT_ATN42" ;/ag %d for target %dASSERT ATN5380.c#L433" },c{a href="+code=dICR_ASSERT_"+code=cmd" class="ICR_ASSERT_"+co42" ;/ag %d for target %dASSERT "+co5380.c#L433" },d;"L429" class="line" nams;"L429"><429//5>        5       for (/a href="+co5e=lun5 class="sref">{0;/a href="+code=dNULLatari_NCR5380.cNULL">lu#d;"L451" class="line" nams;"L451"><451//5>        5               /a href="5code=5a" cla};/a href="+code=dmcsdrivers/scsi/atacs8" i[] 1"id;"L429" class="line" nams;"L429"><429//5>        5               /a href="5code=5itmap_zero" cl{a href="+code=dMR_BLOCK_DMA_MODEdrivers/scsi/atMR_BLOCK_DMA_MODE42" ;/ag %d for target %dMODE BLOCK0.c#5380.c#L433" },c{a href="+code=dMR_TARGETmd" class="srefMR_TARGET42" ;/ag %d for target %dMODE TARGET5380.c#L433" },d;"L429" class="line" nams;"L429"><429//5>        5               /a href="5code=5a" class="sref{a href="+code=dMR_ENABLE_PAR_CHECring">"scsiMR_ENABLE_PAR_CHECr42" ;/ag %d for target %dMODE PARITY CHECr5380.c#L433" },c{a href="+code=dMR_ENABLE_PAR_INTRing">"scsiMR_ENABLE_PAR_INTR42" ;d;"L429" class="line" nams;"L429"><429//5>        5       }<"scsiMR_ENABLE_EOP_INTR42" ;ag %d for target %dMODE EOP INTR5380.c#L433" },d;"L429" class="line" nams;"L429"><429//5><{a href="+code=dMR_MONITOR_BSYmd" class="srefMR_MONITOR_BSY42" ;/ag %d for target %dMODE MONITOR BSY5380.c#L433" },d;"L429" class="line" nams;"L429"><429//5>        5="drivers/scsi/atari_NCR5380.c553lass="sref">{a href="+code=dMR_DMA_MODEdrivers/scsi/atMR_DMA_MODE42" ;/ag %d for target %dMODE .c#5380.c#L433" },c{a href="+code=dMR_ARBITRATEdrivers/scsi/atMR_ARBITRATE42" ;/ag %d for target %dMODE ARBITRATION5380.c#L433" },d;"L429" class="line" nams;"L429"><429//5>        5"drivers/scsi/atari_NCR5580.c#554lass="sref">{0;/a href="+code=dNULLatari_NCR5380.cNULL">lu#d;"L451" class="line" nams;"L451"><451//5>#endif /5paj class="comment">/* S5PPORT5TAGS *}id;"L450" class="line" nams;"L450"><450//5><<457//5><<459//5>/spaj cl5ss="comment">/*//spaj><<5 href5"drivers/scsi/atari_NCR5380.si_Cmnd *cm d )<4_sref"( tauct ">cmdHost *instance#L460" id;"L460" class="line" nams;"L460"><460/spaj cl5ss="comment"> * Func+ aj5 void5merge_contiguous_buffers( ScsiL460" id;"L460" class="line" nams;"L460"><460/spaj cl5ss="comment"> *<<5 href5"drivers/scsi/atari_NCR5380.c#requests d sref"ivers"CSI bus nersalsf= 0;debugArge pquestssL460" id;"L460" class="line" nams;"L460"><460        5ss="comment"> * Purpose:5Try t5 merge several scatter-gather L460" id;"L460" class="line" nams;"L460"><460< *    trans5er. T5is is possible if the scatter bInput d instance - whichp459"><4L460" id;"L460" class="line" nams;"L460"><460        5ss="comment"> *         5 phy_5ctming"74" class="line" nams;"#L393" id;"L393" class="line" nams;"L393"><393//5>        5a href="+code=SETUP_HOST5ATA" 5655" id;"L455" class="line" nams;"L455"><455//5>#endif /5"drivers/scsi/atari_NCR5580.c#56esn&#s="sref">free_all_tags//a>(459"><4_sref"atari_NCR5380.cN59"><4_sref"t;/a  tauct TUP_HOSTDATA//a>>cmdHostatari_NCR5380.c>>cmdHostlass=href="drivers/scinstancedrivers/scsi/atinstance/a>,)d;"L455" class="line" nams;"L455"><455//5><<429//5><rivers/scchara//a>->/a hres="susdrivers/scsi/atn="sus42" ;/a/a>->/a hrecode=busy" class="s>busy//a;/a href="+code=dbascdrivers/scsi/atbascy//a;/a href="+code=dmcdrivers/scsi/atmcy//a;/a href="+code=diccdrivers/scsi/aticcy//a;/a href="+code=didrivers/scsi/ati">luid;"L450" class="line" nams;"L450"><450//5>/spaj cl5f (!/a href="+code=shoul5_be_t568lass="sref">rivers/sclongee_all_tags//a>(flref="drivers/scsi/al380.c#Lid;"L450" class="line" nams;"L450"><450//5>/spaj cl5   !/a href="+code=setup5use_t5690" id;"L390" class="line" nams;"L390"><390//5>        5       return 0;<<450//5>        5f (/a href="+code=TagAll5c" cl57sref">TAG_ALLOC//a> */a hrefcode=busy" class="s>busy//a51"a href="+code=dN59"><4_t isatari_NCR5380.cN59"><4_t ist;/a href="+code=allCURRENT_"CSI_"+co_REGatari_NCR5380.cCURRENT_"CSI_"+co_REG.c#L)id;"L450" class="line" nams;"L450"><450//5><TagA//a>->/a hres="susdrivers/scsi/atn="sus42" 51"a href="+code=dN59"><4_t isatari_NCR5380.cN59"><4_t ist;/a href="+code=allSTATUS_REGatari_NCR5380.cSTATUS_REG.c#L)id;"L450" class="line" nams;"L450"><450//5>        5       /a href="+code=TA5_PRIN573="sref">TagA//a>->/a hremcdrivers/scsi/atmcy//a51"a href="+code=dN59"><4_t isatari_NCR5380.cN59"><4_t ist;/a href="+code=allMODE_REGatari_NCR5380.cMODE_REG.c#L)id;"L450" class="line" nams;"L450"><450//5>        5                  /a hre5="+co5e=H_NO" class=a href="+code=diccdrivers/scsi/aticcy//a51"a href="+code=dN59"><4_t isatari_NCR5380.cN59"><4_t ist;/a href="+code=allINITIATOR_COMMAND_REGatari_NCR5380.cINITIATOR_COMMAND_REG.c#L)id;"L450" class="line" nams;"L450"><450//5>#endif /5       return 1;<<4_t isatari_NCR5380.cN59"><4_t ist;/a href="+code=allBUS_AND_STATUS_REGatari_NCR5380.cBUS_AND_STATUS_REG.c#L)id;"L450" class="line" nams;"L450"><450//5><<450//5><KERN_Ng %d for target %dSTATUS_REG:Etari_02x 5380.c#L433" iA//a>->/a hres="susdrivers/scsi/atn="sus42" )id;"L450" class="line" nams;"L450"><450//5>/spaj cl5="drivers/scsi/atari_NCR5380.c57" class="sref= 0; /a href="+code=idrivers/scsi/ati">lu < 8; ++/a href="+nersalsdrivers/scsi/atnersals8" i[/a href="+code=idrivers/scsi/ati">lu]_size//a>) {<lui>lu)d;"L455" class="line" nams;"L455"><455//5>        5"drivers/scsi/atari_NCR5580.c#57tmap_zero" class=" " gt;/a href="+code=tn="susdrivers/scsi/atn="sus42" 5/ef">ca href="+code=tnersalsdrivers/scsi/atnersals8" i[/a href="+code=idrivers/scsi/ati">lu]_size//a>) {<lu)d;"L455" class="line" nams;"L455"><455//5><ta////////////href="drivers/s=KERN_NOTICE" class="sref">KERN_Ng %d for target %d,tari_s5380.c#L433" iA//a>->/a hresersalsdrivers/scsi/atnersals8" i[/a href="+code=idrivers/scsi/ati">lu]_size//a>) {<lu)id;"L450" class="line" nams;"L450"><450//5>/spaj cl5ss="comment">/* Allocate5a tag58sref">TAG_ALLOC//a> */a href=KERN_NOTICE" class="sref">KERN_Ng %d for target %d\nBA>R:Etari_02x 5380.c#L433" iA//a>->/a hrebascdrivers/scsi/atbascy//a)id;"L450" class="line" nams;"L450"><450//5>< * must be 5alled58" class="sref= 0; /a href="+code=idrivers/scsi/ati">lu < 8; ++/a href="+bascsdrivers/scsi/atbascs8" i[/a href="+code=idrivers/scsi/ati">lu]_size//a>) {<lui>lu)d;"L455" class="line" nams;"L455"><455//5>/spaj cl5ss="comment"> * untagged5//spa58" class="sref">TAG_PRgt;/a href="+code=tbascdrivers/scsi/atbascy//a5/ef">ca href="+code=tbascsdrivers/scsi/atbascs8" i[/a href="+code=idrivers/scsi/ati">lu]_size//a>) {<lu)d;"L455" class="line" nams;"L455"><455//5>        5ss="comment"> */<5a hre58scsi/atari_NCR5380.c#////////href="drivers/s=KERN_NOTICE" class="sref">KERN_Ng %d for target %d,tari_s5380.c#L433" iA//a>->/a hrebascsdrivers/scsi/atbascs8" i[/a href="+code=idrivers/scsi/ati">lu]_size//a>) {<lu)id;"L450" class="line" nams;"L450"><450//5>#endif /5"drivers/scsi/atari_NCR5580.c#58s/scsi/atari_a href="+code=d=KERN_NOTICE" class="sref">KERN_Ng %d for target %d\nICR:Etari_02x 5380.c#L433" iA//a>->/a hreiccdrivers/scsi/aticcy//a)id;"L450" class="line" nams;"L450"><450//5><target//a> = 0; /a href="idrivers/scsi/ati">lu < 8; ++/a href="+iccsdrivers/scsi/aticcs8" i[/a href="+code=idrivers/scsi/ati">lu]_size//a>) {<lui>lu)d;"L455" class="line" nams;"L455"><455//5><lun//a> gt;/a href="+code=ticcdrivers/scsi/aticcy//a5/ef">ca href="+code=ticcsdrivers/scsi/aticcs8" i[/a href="+code=idrivers/scsi/ati">lu]_size//a>) {<lu)d;"L455" class="line" nams;"L455"><455//5>/spaj cl5a href="+code=SETUP_HOST5ATA" 58" class="sref">ta//a>////////href="drivers/s=KERN_NOTICE" class="sref">KERN_Ng %d for target %d,tari_s5380.c#L433" iA//a>->/a hreiccsdrivers/scsi/aticcs8" i[/a href="+code=idrivers/scsi/ati">lu]_size//a>) {<lu)id;"L450" class="line" nams;"L450"><450//5>        5"drivers/scsi/atari_NCR5580.c#58 class="sref"a href="+code=d=KERN_NOTICE" class="sref">KERN_Ng %d for target %d\nMODE:Etari_02x 5380.c#L433" iA//a>->/a hremcdrivers/scsi/atmcy//a)id;"L450" class="line" nams;"L450"><450//5>        5spaj class="comment">/* 5f we 5r the target dt//a> = 0; /a href="idrivers/scsi/ati">lu < 8; ++/a href="+mcsdrivers/scsi/atacs8" i[/a href="+code=idrivers/scsi/ati">lu]_size//a>) {<lui>lu)d;"L455" class="line" nams;"L455"><455//5>/spaj cl5ss="comment">         * 5j unt59"sref">ta//a>->/a gt;/a href="+code=tmcdrivers/scsi/atmcy//a5/ef">ca href="+code=tmcsdrivers/scsi/atacs8" i[/a href="+code=idrivers/scsi/ati">lu]_size//a>) {<lu)d;"L455" class="line" nams;"L455"><455//5><         */5/spaj59class="sref">hostdata////////href="drivers/s=KERN_NOTICE" class="sref">KERN_Ng %d for target %d,tari_s5380.c#L433" iA//a>->/a hremcsdrivers/scsi/atacs8" i[/a href="+code=idrivers/scsi/ati">lu]_size//a>) {<lu)id;"L450" class="line" nams;"L450"><450//5>/spaj cl5f (!/a href="+code=shoul5_be_t593="sref">TagA//a>->/a hre=KERN_NOTICE" class="sref">KERN_Ng %d for target %d\n5380.c#L433" )id;"L450" class="line" nams;"L450"><450//5>        5   !/a href="+code=setup5use_t5gged_q#d;"L451" class="line" nams;"L451"><451//5>#endif /5       /a href="+code=cm5" cla5946" id;"L446" class="line" nams;"L446"><446//5>        5       /a href="+code=ho5tdata5 class="sref" tauct id;"L429" class="line" nams;"L429"><429//5><rivers/scchara//a>->/a hrevaluNNOTICE" class="valuN.c#Lid;"L450" class="line" nams;"L450"><450//5>        5                  /spaj 5lass=59" class="sref hrstccharahref="drivers/scri_NNOTICE" class="ri_N">luid;"L450" class="line" nams;"L450"><450//5>        5 else {<<429//6>        6       /a href="+code=TA6_ALLO60" class="sref{a href="+code=dPHASE_"+coOUTmd" class="srefPHASE_"+coOUTy//a;/ag %d for target %d"+coOUT5380.c#L433" },c{a href="+code=dPHASE_"+coINdrivers/scsi/atPHASE_"+coINy//a;/ag %d for target %d"+coIN5380.c#L433" },c{a href="+code=dPHASE_CMDOUTmd" class="srefPHASE_CMDOUTy//a;/ag %d for target %dCMDOUT5380.c#L433" },d;"L429" class="line" nams;"L429"><429//6><<429//6>2         */6" cla60class="sref">{a href="+code=dPHASE_UNKNOWNdrivers/scsi/atPHASE_UNKNOWNy//a;/ag %d for target %dUNKNOWN5380.c#L433" }d;"L429" class="line" nams;"L429"><429//6>3<450//6>4       6   !/a href="+code=setup6 clas6055" id;"L455" class="line" nams;"L455"><455//6>5       6       /a href="+code=cm6_PRIN60"drivers/scsi/atari_NCR5380c#L459" id;"L459" class="line" nams;"L459"><459//6_queuing/6a> || !ss="sref">cmd//a>6, /a 60ged command. If the command shCmnd *cm d )<4_sref"_shase( tauct ">cmdHost *instance#L460" id;"L460" class="line" nams;"L460"><460        6                  /a hre6="+co60 is a free tag and the targetL460" id;"L460" class="line" nams;"L460"><4608       6                  /spaj 6="+co60drivers/scsi/atari_NCR5380.si_equests d sref"iverscurr538s"CSI shasef= 0;debugArge pquestssL460" id;"L460" class="line" nams;"L460"><460        6<<460}<<4L460" id;"L460" class="line" nams;"L460"><460<<<393//6><<443//6>/spaj cl6ss="comment">/* Mark the6tag o6154" is="sref">free_all_tags//a>(459"><4_sref"_shaseatari_NCR5380.cN59"><4_sref"_shaseKERN_ tauct TUP_HOSTDATA//a>>cmdHostatari_NCR5380.c>>cmdHostlass=href="drivers/scinstancedrivers/scsi/atinstance/a>,)d;"L455" class="line" nams;"L455"><455//6>/spaj cl6ss="comment"> * unlock t6e LUN61ged_qid;"L429" class="line" nams;"L429"><429//6>/spaj cl6ss="comment"> */<6a hre61="sref">cmd//rivers/scchara//a>->/a hren="susdrivers/scsi/atn="sus42" id;"L450" class="line" nams;"L450"><450//6><pr//a>, /a href="+codidrivers/scsi/ati">luid;"L450" class="line" nams;"L450"><450//6>        6id /a href="+code=cmd_fr6e_tag6158" id;"L458" class="line" nams;"L458"><458//6>        6="drivers/scsi/atari_NCR6380.c61" class="srefa href="+code=tn="susdrivers/scsi/atn="sus42" 51"a href="+code=dN59"><4_t isatari_NCR5380.cN59"><4_t ist;/a href="+code=allSTATUS_REGatari_NCR5380.cSTATUS_REG.c#L)id;"L450" class="line" nams;"L450"><450//6>        6a href="+code=SETUP_HOST6ATA" 61 class="sref"gt;/!/a href="+code=tn="susdrivers/scsi/atn="sus42" 5/ef">ca href="+code=t>R_REQmd" class="sref"R_REQ42" ))d;"L455" class="line" nams;"L455"><455//6><ta//////a>->/a hre=KERN_NOTICE" class="sref">KERN_N/a>->/a hreKERN_DEBUGatari_NCR5380.cKERN_DEBUG clasag %d for target %dne" vers/s: REQ not&aa erted, shasefunknown.CR5380.c#L433" i///a>->/a hreHOSTNlass="sref">cmd/HOSTNl.c#L)id;"L450" class="line" nams;"L450"><450//6>        6f (/a href="+code=cmd" c6ass="621 class="sref429" id;"L429" class="line" nams;"L429"><429//6>        6       /a href="+code=ho6tdata6 class="sref">hostdatat//a> = 0; /a href="idrivers/scsi/ati">lu < > = 0; /a href="phasegNOTICE" class="shaseg8" i[/a href="+code=idrivers/scsi/ati">lu]_size//a>) {</ef">d;"L376" class="line" nams;"L376"><376//6>        6       /a href="+code=TA6_PRIN62" class="sref">TAG_PRRRRRR> = 0; /a href="phasegNOTICE" class="shaseg8" i[/a href="+code=idrivers/scsi/ati">lu]_size//a>) {<ca href="+code=tPHASE_MASring">"scsiPHASE_MASr42" ))i>lu)d;"L455" class="line" nams;"L455"><455//6>        6                  /a hre6="+co6e=H_NO" class="sref">HHHHHHHHH>d;"L376" class="line" nams;"L376"><376//6>/spaj cl6 else if (/a href="+code6cmd" 62="sref">cmd//a>->/a href="+code=t=KERN_NOTICE" class="sref">KERN_N/a>->/a hreKERN_DEBUGatari_NCR5380.cKERN_DEBUG clasag %d for target %dne" vers/s: shaseftari_sCR5380.c#L433" i///a>->/a hreHOSTNlass="sref">cmd/HOSTNl.c#Li///a>->/a hrephasegNOTICE" class="shaseg8" i[/a href="+code=idrivers/scsi/ati">lu]_size//a>) {<lu)id;"L450" class="line" nams;"L450"><450//6>        6       /a href="+code=pr6ntk" 6lass="sref">pr}d;"L429" class="line" nams;"L429"><429//6>        6              /a href="+6ode=H6NO" cl}d;"L429" class="line" nams;"L429"><429//6>        6 else {<<429//6>        6       /a href="+code=TA6_ALLO6" clas#429" O<<393//6>        6       /a href="+code=cl6ar_bi6321" id;"L421" class="line" nams;"L421"><421//6>        6       /a href="+code=ta6 clas63ged command.//spaj><<393//6>        6       /a href="+code=TA6_PRIN6343" i="sref"size//a>) {<free_all_tags//a>(459"><4_sref"atari_NCR5380.cN59"><4_sref"t;/a  tauct TUP_HOSTDATA//a>>cmdHostatari_NCR5380.c>>cmdHostlass=href="drivers/scinstancedrivers/scsi/atinstance/a>,)d;"L455" class="line" nams;"L455"><455//6>        6                  /a hre6="+co63" claid;"L429" class="line" nams;"L429"><429//6>        6<<450//6>}<) {<free_all_tags//a>(459"><4_sref"_shaseatari_NCR5380.cN59"><4_sref"_shaseKERN_ tauct TUP_HOSTDATA//a>>cmdHostatari_NCR5380.c>>cmdHostlass=href="drivers/scinstancedrivers/scsi/atinstance/a>,)d;"L455" class="line" nams;"L455"><455//6><<429//6>        6"drivers/scsi/atari_NCR5680.c#6438" i}id;"L450" class="line" nams;"L450"><450//6>        6id /a href="+code=free_a6l_tag63ari_Nd;"L429" class="line" nams;"L429"><429//6>        6="drivers/scsi/atari_NCR6380.c63 clas#4/spad;"L450" class="line" nams;"L450"><450//6>        6nt /a href="+code=target6 clas6421" id;"L421" class="line" nams;"L421"><421//6>        6a href="+code=TAG_ALLOC"6class64ged command.//spaj><<393//6><<4_main(#L460" id;"L460" class="line" nams;"L460"><460        6f (!/a href="+code=setup6use_t64tming"74" class="line" nams;"L360" id;"L360" class="line" nams;"L360"><360        6       return;<<360}<<360<<360        6       for (/a href="+co6e=lun64 is a free tag and the target&tar9;main_runnrgetar9; needs not&ba protected&in a special way#L360" id;"L360" class="line" nams;"L360"><360        6               /a href="6code=64drivers/scsi/atari_NCR5380.siL360" id;"L360" class="line" nams;"L360"><360        6               /a href="6code=64erge_contiguous_buffers( Scsi_NCR53_main(# is a utrlity fmnd *cm t//aputtrge our main onpaj><360        6               /a href="6code=65drivers/scsi/atari_NCR5380.c bNCR53,"gt;main_runnrge is fa29". It should&ba called&only5fromiaL360" id;"L360" class="line" nams;"L360"><360        6       }<<360<<393//6>        6="drivers/scsi/atari_NCR6380.c6554" id;"L354" class="line" nams;"L354"><354//6>        6"drivers/scsi/atari_NCR5680.c#654lass#gncluden//a>;"L421" cgnclude/refux/gfp.h/atari_NCf5380.cefux/gfp.hlass//a>d;"L421" class="line" nams;"L421"><421//6>#endif /6paj class="comment">/* S6PPORT6TAGS *#gncluden//a>;"L421" cgnclude/refux/workNCR53.h/atari_NCf5380.cefux/workNCR53.hlass//a>d;"L421" class="line" nams;"L421"><421//6><;"L421" cgnclude/refux/ef="drupt.h/atari_NCf5380.cefux/ef="drupt.hlass//a>d;"L421" class="line" nams;"L421"><421//6>        6"drivers/scsi/atari_NCR5680.c#6558" id;"L458" class="line" nams;"L458"><458//6>/spaj cl6ss="comment">/*//spaj><<6 href6"drives="sref">l"srler//a>, /a href="+codmain_runnrgeNOTICE" class="aain_runnrge">luid;"L450" class="line" nams;"L450"><450//6>/spaj cl6ss="comment"> * Func+ aj6 void6merge_="sref"size//a>) {<"scsiDECLARE_WORrKERN_N/a>->/a hreN59"><4_tNCR53atari_NCR5380.cN59"><4_tNCR53.c#Li///a>->/a hreN59"><4_mainatari_NCR5380.cN59"><4_main">lu)id;"L450" class="line" nams;"L450"><450//6>/spaj cl6ss="comment"> *<<6 href6621" id;"L421" class="line" nams;"L421"><421//6>        6ss="comment"> * Purpose:6Try t6 merge="sref"size//a>) {<free_all_tags//a>(NCR53_main  cated" class=NCR53_mainKERN_">fr)d;"L455" class="line" nams;"L455"><455//6>< *    trans6er. T6is is id;"L429" class="line" nams;"L429"><429//6>        6ss="comment"> *         6 phy_66" class="srefgt;/!, /a href="+codmain_runnrgeNOTICE" class="aain_runnrge">lu" id;"L448" class="line" nams;"L448"><448//6>        6a href="+code=SETUP_HOST6ATA" 66=H_NO" class="sref">Hammand.//spaj><<4_main(# not&alt isy runnrge,L360" id;"L360" class="line" nams;"L360"><360#endif /6"drivers/scsi/atari_NCR5680.c#66"drivers/scsi/atari_NCR5380...................NCR53 itson ><360<<460<<393//6>/spaj cl6f (!/a href="+code=shoul6_be_t66" class="sref">ta//a>a href="+code=dschedule_workdrivers/scsi/atnchedule_workKERN_/ef">N/a>->/a hreN59"><4_tNCR53atari_NCR5380.cN59"><4_tNCR53.c#L)id;"L450" class="line" nams;"L450"><450//6>/spaj cl6   !/a href="+code=setup6use_t66 class="sref"}d;"L429" class="line" nams;"L429"><429//6>        6       return 0;<<4_main(# will pick upL393" id;"L393" class="line" nams;"L393"><393//6>        6f (/a href="+code=TagAll6c" cl67ged command.//spaj><<393//6><<429//6>        6       /a href="+code=TA6_PRIN6754" id;"L354" class="line" nams;"L354"><354//6>        6                  /a hre6="+co6755" id;"L455" class="line" nams;"L455"><455//6>#endif /6       return 1;<) {<free_all_tags//a>(459"><4_all_ini"atari_NCR5380.cN59"><4_all_ini"KERN_">fr)d;"L455" class="line" nams;"L455"><455//6><<429//6><, /a href="+coddo    cated" class=do  ">lu <d;"L429" class="line" nams;"L429"><429//6>/spaj cl6="drivers/scsi/atari_NCR6380.c67" class="srefgt;/!, /a href="+coddo    cated" class=do  ">lu" id;"L448" class="line" nams;"L448"><448//6>        6"drivers/scsi/atari_NCR5680.c#67tmap_zero" class=" " , /a href="+codINI_PRINTring">"scsiINI_PRINTrKERN_Ng %d for target %dne"  : N59"><4_all_ini"()\n5380.c#L433" )id;"L450" class="line" nams;"L450"><450//6><ta////, /a href="+coddo    cated" class=do  ">lu &l1id;"L450" class="line" nams;"L450"><450//6>/spaj cl6ss="comment">/* Allocate6a tag68sref">TAG_ALL}d;"L429" class="line" nams;"L429"><429//6>< * must be 6alled68s="sr}d;"L429" class="line" nams;"L429"><429//6>/spaj cl6ss="comment"> * untagged6//spa6854" id;"L354" class="line" nams;"L354"><354//6>        6ss="comment"> */<6a hre6855" id;"L455" class="line" nams;"L455"><455//6>#endif /6"drivers/scsi/atari_NCR5680.c#68"drivers/scsi/atari_NCR5380c#L459" id;"L459" class="line" nams;"L459"><459//6><<4_sref"_op *cms ( tauct ">cmdHost *instance#L460" id;"L460" class="line" nams;"L460"><460<<460/spaj cl6a href="+code=SETUP_HOST6ATA" 68drivers/scsi/atari_NCR5380.si_equests d called&by proba c+co"//dicatrge vers460"><4 lass="L460" id;"L460" class="line" nams;"L460"><460        6"drivers/scsi/atari_NCR5680.c#68erge_contiguous_buffers( Scsi___________op *cms queuewere selected#L360" id;"L360" class="line" nams;"L360"><360        6spaj class="comment">/* 6f we 69drivers/scsi/atari_NCR5380.c L360" id;"L360" class="line" nams;"L360"><360/spaj cl6ss="comment">         * 6j unt69merge several scatter-gather rInputs d instance, poef="d paj><360<         */6/spaj69s is possible if the scatter #L393" id;"L393" class="line" nams;"L393"><393//6>/spaj cl6f (!/a href="+code=shoul6_be_t6954" id;"L354" class="line" nams;"L354"><354//6>        6   !/a href="+code=setup6use_t695380.="sref"">free_all_tags//a>(__ini"atari_NCR5380.c__ini"KERNee_all_tags//a>(459"><4_sref"_op *cmsatari_NCR5380.cN59"><4_sref"_op *cmsKERN_ tauct TUP_HOSTDATA//a>>cmdHostatari_NCR5380.c>>cmdHostlass=href="drivers/scinstancedrivers/scsi/atinstance/a>,)d;"L455" class="line" nams;"L455"><455//6>#endif /6       /a href="+code=cm6" cla6946" iid;"L448" class="line" nams;"L448"><448//6>        6       /a href="+code=ho6tdata696 class="srefhref="drivers/s=KERN_NOTICE" class="sref">KERN_Ng %d for target %d generef"op *cms5380.c#L433" d;"L448" class="line" nams;"L448"><448//6><<354//6>/spaj cl6                  /spaj 6lass=69" class="sref">ta//aNg %d for target %d AUTOSENSE5380.c#L433" d;"L448" class="line" nams;"L448"><448//6>        6 else {<<450//7>        7       /a href="+code=TA7_ALLO70" cla#ifdet;a href="+code=tREAL_DMANOTICE" class="REAL_DMA4" id;"L354" class="line" nams;"L354"><354//7><ta//a>->/aNg %d for target %d REAL .c#5380.c#L433" d;"L354" class="line" nams;"L354"><354//7>2         */7" cla70class#4/spad;"L450" class="line" nams;"L450"><450//7>3"scsiPARITY4" id;"L354" class="line" nams;"L354"><354//7>4Ng %d for target %d PARITY5380.c#L433" d;"L354" class="line" nams;"L354"><354//7>5<450//7>6UPPORT_TAGS4" id;"L354" class="line" nams;"L354"><354//7>7lun//a>Ng %d for target %d "CSI-2 TAGGED QUEUING5380.c#L433" d;"L354" class="line" nams;"L354"><354//7>8<450//7>9<450//7>}<KERN_Ng %d for target %d generef"release=vers/s5380.c#L433" i///a>->/a hreN59"><4_PUBLIC_RELEASENOTICE" class="N59"><4_PUBLIC_RELEASE.c#L)id;"L450" class="line" nams;"L450"><450//7><<429//7><<443//7>/spaj cl7ss="comment">/* Mark the7tag o71tming"74" class="line" namsc#L459" id;"L459" class="line" nams;"L459"><459//7>/spaj cl7ss="comment"> * unlock t7e LUN71/spaj><<4_sref"_n="sus ( tauct ">cmdHost *instance#L460" id;"L460" class="line" nams;"L460"><460/spaj cl7ss="comment"> */<7a hre71"drivers/scsi/atari_NCR5380.cL460" id;"L460" class="line" nams;"L460"><4606<4607<4_abort a d N59"><4_debug paja/spdebugArge#L360" id;"L360" class="line" nams;"L360"><360        7="drivers/scsi/atari_NCR7380.c71drivers/scsi/atari_NCR5380.siL360" id;"L360" class="line" nams;"L360"><360        7a href="+code=SETUP_HOST7ATA" 71erge_contiguous_buffers( Scsi_Inputs d instance, poef="d paj><360<<393//7>        7f (/a href="+code=cmd" c7ass="721 clad;"L393" class="line" nams;"L393"><393//7><free_all_tags//a>(459"><4_sref"_n="susdrivers/scsi/at459"><4_sref"_n="susKERN_ tauct TUP_HOSTDATA//a>>cmdHostatari_NCR5380.c>>cmdHostlass=href="drivers/scinstancedrivers/scsi/atinstance/a>,)d;"L455" class="line" nams;"L455"><455//7>        7       /a href="+code=TA7_PRIN72" claid;"L429" class="line" nams;"L429"><429//7>        7                  /a hre7="+co7e=H_NO" class=charahref="drivers/scpr_bfcdrivers/scsi/atpr_bfc">luid;"L450" class="line" nams;"L450"><450//7>/spaj cl7 else if (/a href="+code7cmd" 72="sref">cmd//charahref="drivers/scstartatari_NCR5380.cstart">luid;"L450" class="line" nams;"L450"><450//7>6pr//a>, /a href="+codlen  cated" class=len">luid;"L450" class="line" nams;"L450"><450//7>7<458//7>        7 else {<->/a hreNDEBUG_ANYing">"scsiNDEBUG_ANY.c#L)id;"L450" class="line" nams;"L450"><450//7>        7       /a href="+code=TA7_ALLO72 class="sref"a href="+code=d459_PRINT_PHASEdrivers/scsi/at459_PRINT_PHASEKERN_N/a>->/a hreNDEBUG_ANYing">"scsiNDEBUG_ANY.c#L)id;"L450" class="line" nams;"L450"><450//7>        7       /a href="+code=cl7ar_bi7321" id;"L421" class="line" nams;"L421"><421//7>        7       /a href="+code=ta7 clas73sref">TAG_ALLOC//a> */a href=K_bfcdrivers/scsi/atpr_bfc">lu = (charah)e_all_tags//a>(__get_free_pagedrivers/scsi/at__get_free_pageKERN_N/a>->/a hreGFP_ATOMICdrivers/scsi/atGFP_ATOMIC.c#L)id;"L450" class="line" nams;"L450"><450//7><gt;/!, /a href="+cod=K_bfcdrivers/scsi/atpr_bfc">lu" id;"L448" class="line" nams;"L448"><448//7>        7                  /a hre7="+co73" class="sref">TAG_PRhref="drivers/s=KERN_NOTICE" class="sref">KERN_Ng %d for target %d459"><4_sref"_n="sus: no memory t//apref"ibuffer\n5380.c#L433" )id;"L450" class="line" nams;"L450"><450//7>        7<Hreturnid;"L450" class="line" nams;"L450"><450//7>/spaj cl7="drivers/scsi/atari_NCR7380.c73="sref">cmd//}d;"L429" class="line" nams;"L429"><429//7><lu51"a href="+code=dN59"><4_proc_infodrivers/scsi/at459"><4_sroc_infoKERN_N/a>->/a hreinstancedrivers/scsi/atinstance/a>,i///a>->/a hrepK_bfcdrivers/scsi/atpr_bfc">lu, /ef">N/a>->/a hrestartatari_NCR5380.cstart">lu, 0;/a href="+code=dPAGE_SIZEdrivers/scsi/atPAGE_SIZE">lu, 0)id;"L450" class="line" nams;"L450"><450//7>7lu[/a href="+code=cen  cated" class=len">lu] <d;"L429" class="line" nams;"L429"><429//7>        7id /a href="+code=free_a7l_tag73" class="srefa href="+code=t=KERN_NOTICE" class="sref">KERN_Ng %d for target %d\n5ari_sCR5380.c#L433" i///a>->/a hre=K_bfcdrivers/scsi/atpr_bfc">lu";d;"L429" class="line" nams;"L429"><429//7>        7="drivers/scsi/atari_NCR7380.c73 class="sref"a href="+code=dfree_pagedrivers/scsi/atfree_pageKERN_(rivers/sclong)e_all_tags//a>(=K_bfcdrivers/scsi/atpr_bfc">lu";d;"L429" class="line" nams;"L429"><429//7>        7nt /a href="+code=target7 clas7421" i}d;"L429" class="line" nams;"L429"><429//7>        7a href="+code=TAG_ALLOC"7class741 clad;"L393" class="line" nams;"L393"><393//7><<443//7>        7f (!/a href="+code=setup7use_t74tming"74" class="line" nams/******************************************#L393" id;"L393" class="line" nams;"L393"><393//7>        7       return;<<459//7>}<UPPORTED]L459" id;"L459" class="line" nams;"L459"><459//7><<459//7>7<459//7>        7               /a href="7code=74drivers/scsi/atari_NCR5380.si **start:>gt;inout == FALSE poef="d inpajbuffer where user t is should&start">59" id;"L459" class="line" nams;"L459"><459//7>        7               /a href="7code=74erge_contiguous_buffers( Scsi_offset:>curr538soffset">59" id;"L459" class="line" nams;"L459"><459//7>        7               /a href="7code=75drivers/scsi/atari_NCR5380.c blength:blengthrs/sbufferL459" id;"L459" class="line" nams;"L459"><459//7>        7       }<cmdHost host_noL459" id;"L459" class="line" nams;"L459"><459//7><59" id;"L459" class="line" nams;"L459"><459//7>        7="drivers/scsi/atari_NCR7380.c75tming"74" class="line" nams;"L360" id;"L360" class="line" nams;"L360"><360        7"drivers/scsi/atari_NCR5780.c#75/spaj><60" id;"L360" class="line" nams;"L360"><360}</* S7PPORT75"drivers/scsi/atari_NCR5380*#L393" id;"L393" class="line" nams;"L393"><393//7><<393//7>7<393//7>        7ss="comment">/*//spaj><<7 href7"drive#det>/*;a href="+code=tSPRINTFatari_NCR5380.c>PRINTF7" i href="+code=allfmtatari_NCR5380.cfmt">lu,href="+code=allaref="drivers/scsi/aref">lu...)" class="sref">HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\d;"L393" class="line" nams;"L393"><393//7>        7ss="comment"> * Func+ aj7 void75 class="sref"do {" class="sref">HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\d;"L393" class="line" nams;"L393"><393//7>/spaj cl7ss="comment"> *<<7 href76" class="sref">ta////gt;/a href="+code=tpogNOTICE" class="sos42" 5+fa href="+code=tn=rcen  cated" class=n=rcen7" i href="+code=allfmtatari_NCR5380.cfmt">lu)5+f20fhmmand.//spaj><A//a>->/a hrebufferatari_NCR5380.cbufferL4" 5+fa href="+code=tlength  cated" class=length">lu)5HHHHHHH\d;"L393" class="line" nams;"L393"><393//7>        7ss="comment"> * Purpose:7Try t76"sref">ta//a>->/a         a href="+code=tpogNOTICE" class="sos42" 5+1"a href="+code=dssref"f  cated" class=nsref"f7" i href="+code=allpogNOTICE" class="sos42" i///a>->/a hrefmtatari_NCR5380.cfmt">lu , ##///a>->/a hrearef="drivers/scsi/aref">lu);HHHHHHHHHHHHHHHHHHHHH\d;"L393" class="line" nams;"L393"><393//7>< *    trans7er. T76class="sref">} while(0)d;"L455" class="line" nams;"L455"><455//7>        7ss="comment"> *         7 phy_7654" is="srefcharahref="drivers/sclsref"_">cmdCmnsatari_NCR5380.clsref"_">cmdCmns7" i href="+code=all">cmdCmnsatari_NCR5380.c">cmdCmns7" iahref="drivers/sccmsatari_NCR5380.ccms42" i/charahref="drivers/scpogNOTICE" class="sos42" i/charahref="drivers/scbufferatari_NCR5380.cbufferL4" ,r//a>, /a href="+codlength  cated" class=length">lu);d;"L429" class="line" nams;"L429"><429//7>        7a href="+code=SETUP_HOST7ATA" 7655" id;"L455" class="line" nams;"L455"><455//7>#endif /7"drivers/scsi/atari_NCR5780.c#7653" i="sref"//a>, /a href="+codN59"><4_proc_infodrivers/scsi/at459"><4_sroc_infoKERN_ tauct TUP_HOSTDATA//a>>cmdHostatari_NCR5380.c>>cmdHostlass=href="drivers/scinstancedrivers/scsi/atinstance/a>,i/charahref="drivers/scbufferatari_NCR5380.cbufferL4" ,d;"L455" class="line" nams;"L455"><455//7><ta//a>->/a              charahhref="drivers/scstartatari_NCR5380.cstart">lui///a>->/a hreoff_tatari_NCR5380.coff_tsref"//a>->/a hreoffsetatari_NCR5380.coffset">" ,r//a>, /a href="+codlength  cated" class=length">lu,r//a>, /a href="+codinoutdrivers/scsi/atinout/a>,)d;"L455" class="line" nams;"L455"><455//7><<448//7>/spaj cl7f (!/a href="+code=shoul7_be_t76" class="srefcharahref="drivers/scpogNOTICE" class="sos42" 51"a href="+code=dbufferatari_NCR5380.cbufferL4" ;d;"L429" class="line" nams;"L429"><429//7>        7   !/a href="+code=setup7use_t76 class="sref" tauct TUP_HOSTDATA//a459"><4_hostdamsdrivers/scsi/at459"><4_hostdamslass=href="drivers/schostdamsdrivers/scsi/athostdamslass;d;"L429" class="line" nams;"L429"><429//7>        7       return 0;<cmdCmnsatari_NCR5380.c">cmdCmns7" iahref="drivers/scptcdrivers/scsi/atptrL4" ;d;"L429" class="line" nams;"L429"><429//7>        7f (/a href="+code=TagAll7c" cl77"sref">ta//a>rivers/sclong///a>->/a hreflaef="drivers/scsi/flaefL4" ;d;"L429" class="line" nams;"L429"><429//7><->/a hrebegin  cated" class=begin42" 51"t;d;"L429" class="line" nams;"L429"><429//7>        7       /a href="+code=TA7_PRIN7754" i#det>/*;a href="+code=tcheck_offsetatari_NCR5380.ccheck_offsetKERN_)" class="sref">HHHHHHHHHHHHHHHHHHH\d;"L393" class="line" nams;"L393"><393//7>        7                  /a hre7="+co77=H_NO" class=do {" class="sref">HHHHHHHHHHHHHHHHHHHHHHHHHHHHH\d;"L393" class="line" nams;"L393"><393//7>#endif /7       return 1;<cmd//a>->/gt;/a href="+code=tpogNOTICE" class="sos42" 5-A//a>->/a hrebufferatari_NCR5380.cbufferL4" 5//a>A//a>->/a hreoffsetatari_NCR5380.coffset">" 5-A//a>->/a hrebegin  cated" class=begin42" ) {" cl\d;"L393" class="line" nams;"L393"><393//7><ta//a>->/a         //a>->/a hrebegin  cated" class=begin42" 5+1"a href="+code=dpogNOTICE" class="sos42" 5-A//a>->/a hrebufferatari_NCR5380.cbufferL4" ;HHHHHHHHHH\d;"L393" class="line" nams;"L393"><393//7><lun//a>         //a>->/a hrepogNOTICE" class="sos42" 51"a href="+code=dbufferatari_NCR5380.cbufferL4" ;HHHHHHHHHHHHHHHHHHH\d;"L393" class="line" nams;"L393"><393//7>/spaj cl7="drivers/scsi/atari_NCR7380.c77" class="sref">ta//a>}">HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\d;"L393" class="line" nams;"L393"><393//7>        7"drivers/scsi/atari_NCR5780.c#77tmap_zero" cl} while (0)d;"L455" class="line" nams;"L455"><455//7><<421//7>/spaj cl7ss="comment">/* Allocate7a tag78sref">TAG_ALLOC//a> */a hrefhostdamsdrivers/scsi/athostdamslass = ( tauct TUP_HOSTDATA//a459"><4_hostdamsdrivers/scsi/at459"><4_hostdamslass=h)e_all_tags//a>(instancedrivers/scsi/atinstance/a>,-//a>ref="drivers/schostdamsdrivers/scsi/athostdamslass;d;"L429" class="line" nams;"L429"><429//7>< * must be 7alled7843" id;"L443" class="line" nams;"L443"><443//7>/spaj cl7ss="comment"> * untagged7//spa78" class="srefgt;/, /a href="+codinoutdrivers/scsi/atinout/a>,)sref">lun//a>         /mmand.//spaj><<393//7>        7ss="comment"> */<7a hre78=H_NO" class="sref">Hreturn -, /a href="+codENOSYSatari_NCR5380.cENOSYSL4" ;HHHHHHHHH/mmand.//spaj><<393//7>#endif /7"drivers/scsi/atari_NCR5780.c#785ref">TAG_ALLOC//a> */a hrefSPRINTFatari_NCR5380.c>PRINTF7" i hg %d for target %d459"><4 core"release=vers/s.CR5380.c#L433" i///a>->/a hreN59"><4_PUBLIC_RELEASENOTICE" class="N59"><4_PUBLIC_RELEASE.c#L)id;"L450" class="line" nams;"L450"><450//7><<450//7><<450//7>/spaj cl7a href="+code=SETUP_HOST7ATA" 78" class="srefa href="+code=tSPRINTFatari_NCR5380.c>PRINTF7" i hg %d for target %d459"><4: coroutrge is5ari_s runnrge.CR5380.c#L433" id;"L450" class="line" nams;"L450"><450//7>        7"drivers/scsi/atari_NCR5780.c#78tmap_zero" class=" " , /a href="+codmain_runnrgeNOTICE" class="aain_runnrge">lu ?chg %d for target %d5380.c#L433"  :chg %d for target %dntar9;t5380.c#L433" )id;"L450" class="line" nams;"L450"><450//7>        7spaj class="comment">/* 7f we 79" class="srefhref="drivers/scheck_offsetatari_NCR5380.ccheck_offsetKERN_)id;"L450" class="line" nams;"L450"><450//7>/spaj cl7ss="comment">         * 7j unt791 class="srefgt;/!, /a href="+codhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scconnectedatari_NCR5380.cconnected/a>,)d;"L455" class="line" nams;"L455"><455//7><         */7/spaj79class="sref">hostdataa href="+code=tSPRINTFatari_NCR5380.c>PRINTF7" i hg %d for target %dne" vers/s: no>curr538lyjconnectedi statusCR5380.c#L433" i///a>->/a hreHOSTNlass="sref">cmd/HOSTNl.c#L)id;"L450" class="line" nams;"L450"><450//7>/spaj cl7f (!/a href="+code=shoul7_be_t79" class="sref429"d;"L450" class="line" nams;"L450"><450//7>        7   !/a href="+code=setup7use_t79=H_NO" class="sref">Ha/a>->/a hrepogNOTICE" class="sos42" 51"a href="+code=dlsref"_">cmdCmnsatari_NCR5380.clsref"_">cmdCmns7" i  href="+code=all">cmdCmnsatari_NCR5380.c">cmdCmns7" iah)LOC//a> */a hrefhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scconnectedatari_NCR5380.cconnected/a>,id;"L450" class="line" nams;"L450"><450//7>#endif /7       /a href="+code=cm7" cla79="sref">cmd//a>->////////////////////////href="+code=allpogNOTICE" class="sos42" i///a>->/a hrebufferatari_NCR5380.cbufferL4" ,r, /a href="+codlength  cated" class=length">lu);d;"L429" class="line" nams;"L429"><429//7>        7       /a href="+code=ho7tdata796 class="srefhref="drivers/sSPRINTFatari_NCR5380.c>PRINTF7" i hg %d for target %dne" vers/s: issue_NCR53CR5380.c#L433" i///a>->/a hreHOSTNlass="sref">cmd/HOSTNl.c#L)id;"L450" class="line" nams;"L450"><450//7><<450//7>/spaj cl7                  /spaj 7lass=79" class="sreft//a> = 0; /a href="ptcdrivers/scsi/atptrL4"  1"/a href="+code=t">cmdCmnsatari_NCR5380.c">cmdCmns7" iah)OC//a> */a hrefhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scissue_NCR53drivers/scsi/atissue_NCR53L4" ;Href="drivers/scptcdrivers/scsi/atptrL4" ;Href="drivers/scptcdrivers/scsi/atptrL4" 51"a href="+code=dNEXTdrivers/scsi/at4EXT7" i href="+code=allptcdrivers/scsi/atptrL4" )" id;"L448" class="line" nams;"L448"><448//7>        7 else {<cmdCmnsatari_NCR5380.clsref"_">cmdCmns7" i href="+code=allptcdrivers/scsi/atptrL4" i///a>->/a hre=ogNOTICE" class="sos42" i///a>->/a hrebufferatari_NCR5380.cbufferL4" ,r, /a href="+codlength  cated" class=length">lu);d;"L429" class="line" nams;"L429"><429//8>        8       /a href="+code=TA8_ALLO80" class="sref">ta////, /a href="+codcheck_offsetatari_NCR5380.ccheck_offsetKERN_)id;"L450" class="line" nams;"L450"><450//8><TAG_ALL}d;"L429" class="line" nams;"L429"><429//8>2         */8" cla8043" id;"L443" class="line" nams;"L443"><443//8>3PRINTF7" i hg %d for target %dne" vers/s: disconnected_NCR53CR5380.c#L433" i///a>->/a hreHOSTNlass="sref">cmd/HOSTNl.c#L)id;"L450" class="line" nams;"L450"><450//8>4<450//8>5 = 0; /a href="ptcdrivers/scsi/atptrL4"  1"/a href="+code=t">cmdCmnsatari_NCR5380.c">cmdCmns7" iah)LOC//a> */a hrefhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scdisconnected_NCR53drivers/scsi/atdisconnected_NCR53L4" ;Href="drivers/scptcdrivers/scsi/atptrL4" ;d;"L450" class="line" nams;"L450"><450//8>6ta//a>->ref="drivers/scptcdrivers/scsi/atptrL4" 51"a href="+code=dNEXTdrivers/scsi/at4EXT7" i href="+code=allptcdrivers/scsi/atptrL4" )" id;"L448" class="line" nams;"L448"><448//8>7lun//a> , /a href="+codpogNOTICE" class="sos42" 51"a href="+code=dlsref"_">cmdCmnsatari_NCR5380.clsref"_">cmdCmns7" i href="+code=allptcdrivers/scsi/atptrL4" i///a>->/a hre=ogNOTICE" class="sos42" i///a>->/a hrebufferatari_NCR5380.cbufferL4" ,r, /a href="+codlength  cated" class=length">lu);d;"L429" class="line" nams;"L429"><429//8>8ta//a>a href="+code=dcheck_offsetatari_NCR5380.ccheck_offsetKERN_)id;"L450" class="line" nams;"L450"><450//8>9<429//8>}<<421//8><TAG_ALLOC//a> */a hreflocal_irq_restoredrivers/scsi/atlocal_irq_restore7" i href="+code=allflaef="drivers/scsi/flaefL4" )id;"L450" class="line" nams;"L450"><450//8><href="drivers/scstartatari_NCR5380.cstart">lu51"a href="+code=dbufferatari_NCR5380.cbufferL4"  +"/a href="+code=toffsetatari_NCR5380.coffset">" 5-A//a>->/a hrebegin  cated" class=begin42" )id;"L450" class="line" nams;"L450"><450//8>3/* Mark the8tag o81" class="srefgt;/, /a href="+codpogNOTICE" class="sos42" 5-A//a>->/a hrebufferatari_NCR5380.cbufferL4" 5//a>A//a>->/a hreoffsetatari_NCR5380.coffset">" 5-A//a>->/a hrebegin  cated" class=begin42" )d;"L450" class="line" nams;"L450"><450//8>4 * unlock t8e LUN81=H_NO" class="sref">Hreturn t;d;"L429" class="line" nams;"L429"><429//8>/spaj cl8ss="comment"> */<8a hre815 class="sref429" gt;/, /a href="+codpogNOTICE" class="sos42" 5-A//a>->/a hrebufferatari_NCR5380.cbufferL4" 5-"/a href="+code=toffsetatari_NCR5380.coffset">" 5-A//a>->/a hrebegin  cated" class=begin42" )5//a>A//a>->/a hrelength  cated" class=length">lu)d;"L429" class="line" nams;"L429"><429//8>6ta//a>->/a return , /a href="+codpogNOTICE" class="sos42" 5-A//a>->/a hrebufferatari_NCR5380.cbufferL4" 5-"/a href="+code=toffsetatari_NCR5380.coffset">" 5-A//a>->/a hrebegin  cated" class=begin42" );d;"L429" class="line" nams;"L429"><429//8>7return , /a href="+codlength  cated" class=length">lu;d;"L429" class="line" nams;"L429"><429//8>8<429//8>9<429//8><cmdCmnsatari_NCR5380.clsref"_">cmdCmns7" i href="+code=all">cmdCmnsatari_NCR5380.c">cmdCmns7" iahref="drivers/sccmsatari_NCR5380.ccms42" i/charahref="drivers/scpogNOTICE" class="sos42" i/charahref="drivers/scbufferatari_NCR5380.cbufferL4" ,r//a>, /a href="+codlength  cated" class=length">lu)d;"L429" class="line" nams;"L429"><429//8><<448//8><g/a>, /a href="+codidrivers/scsi/atiL4" ,r, /a href="+codgNOTICE" class="fL4" ;d;"L429" class="line" nams;"L429"><429//8>        8       /a href="+code=TA8_PRIN82" class="srefrivers/sccharahref="drivers/sc statusatari_NCR5380.ccotatusL4" ;d;"L429" class="line" nams;"L429"><429//8>4<450//8>/spaj cl8 else if (/a href="+code8cmd" 82="sref">cmd//a>->///a>->/a hreH_Nlass="sref">cmd/H_Nl.c#L href="+code=allcmsatari_NCR5380.ccms42" ),r, /a href="+codcmsatari_NCR5380.ccms42" -//a>ref="drivers/scdevicedrivers/scsi/atdevicelass-//a>ref="drivers/scisatari_NCR5380.cidL4" ,r, /a href="+codcmsatari_NCR5380.ccms42" -//a>ref="drivers/scdevicedrivers/scsi/atdevicelass-//a>ref="drivers/sclun  cated" class=lun42" );d;"L429" class="line" nams;"L429"><429//8>6PRINTF7" i hg %d for target %dss="srefcotatus51"5380.c#L433" )id;"L450" class="line" nams;"L450"><450//8>7ref="drivers/sccmnsatari_NCR5380.ccmusL4" ;d;"L429" class="line" nams;"L429"><429//8>8PRINTF7" i hg %d for target %dtars/2d (0xtars/02x)5380.c#L433" i///a>->/a hrecstatusatari_NCR5380.ccotatusL4" [0]i///a>->/a hrecstatusatari_NCR5380.ccotatusL4" [0])id;"L450" class="line" nams;"L450"><450//8>9 = 0; /a href="idrivers/scsi/atiL4"  &l1,r, /a href="+codgNOTICE" class="fL4" 51"a href="+code=dCOMMAND_SIZEdrivers/scsi/atCOMMAND_SIZE.c#L href="+code=allcstatusatari_NCR5380.ccotatusL4" [0])i>, /a href="+codidrivers/scsi/atiL4" 5//a>A//a>->/a hregNOTICE" class="fL4" ; ++, /a href="+codidrivers/scsi/atiL4" )d;"L429" class="line" nams;"L429"><429//8>        8       /a href="+code=cl8ar_bi83" class="sref">ta////, /a href="+codSPRINTFatari_NCR5380.c>PRINTF7" i hg %d for target %dstars/02x5380.c#L433" i///a>->/a hrecstatusatari_NCR5380.ccotatusL4" [, /a href="+codidrivers/scsi/atiL4" ])id;"L450" class="line" nams;"L450"><450//8>        8       /a href="+code=ta8 clas83sref">TAG_ALLOC//a> */a hrefSPRINTFatari_NCR5380.c>PRINTF7" i hg %d for target %d\n5380.c#L433" )id;"L450" class="line" nams;"L450"><450//8><return , /a href="+codpogNOTICE" class="sos42" id;"L450" class="line" nams;"L450"><450//8>        8                  /a hre8="+co83" cla}d;"L429" class="line" nams;"L429"><429//8>        8<<455//8>/spaj cl8="drivers/scsi/atari_NCR8380.c83="sred;"L455" class="line" nams;"L455"><455//8>6<459//8>7<4_ini" ( tauct ">cmdHost *instance#L460" id;"L460" class="line" nams;"L460"><460        8id /a href="+code=free_a8l_tag83drivers/scsi/atari_NCR5380.siL360" id;"L360" class="line" nams;"L360"><360        8="drivers/scsi/atari_NCR8380.c83erge_contiguous_buffers( Scsi_equests d ini"ializes *instance a d corresponsrge "><4 chip.L360" id;"L360" class="line" nams;"L360"><360        8nt /a href="+code=target8 clas84drivers/scsi/atari_NCR5380.c L360" id;"L360" class="line" nams;"L360"><360        8a href="+code=TAG_ALLOC"8class84merge several scatter-gather rInputs d instance - instan"ia *cm ofj><4 lass=".L360" id;"L360" class="line" nams;"L360"><360<<360        8f (!/a href="+code=setup8use_t84tming"74" class="line" namsr rNotes : I ss=ume queue><360        8       return;<<360/spaj cl8"drivers/scsi/atari_NCR5880.c#84"drivers/scsi/atari_NCR5380.cL360" id;"L360" class="line" nams;"L360"><3606<393//8>7<458//8>        8               /a href="8code=84drive="sref"//a>, /a href="+cod__ini"atari_NCR5380.c__ini"KERNee_all_tags//a>(459"><4_ini"atari_NCR5380.cN59"><4_ini"KERN_ tauct TUP_HOSTDATA//a>>cmdHostatari_NCR5380.c>>cmdHostlass=href="drivers/scinstancedrivers/scsi/atinstance/a>,i///a>, /a href="+codflaef="drivers/scsi/flaefL4" )d;"L458" class="line" nams;"L458"><458//8>        8               /a href="8code=84erge_id;"L448" class="line" nams;"L448"><448//8>        8               /a href="8code=85" class="srefg/a>, /a href="+codidrivers/scsi/atiL4" id;"L450" class="line" nams;"L450"><450//8>        8       }<TAG_ALLOC//a> */a hrefSETUP_HOSTDATANOTICE" class="SETUP_HOSTDATA.c#L href="+code=allinstancedrivers/scsi/atinstance/a>,)id;"L450" class="line" nams;"L450"><450//8><<443//8>        8="drivers/scsi/atari_NCR8380.c853 class="srefhref="drivers/sN59"><4_all_ini"atari_NCR5380.cN59"><4_all_ini"KERN_)id;"L450" class="line" nams;"L450"><450//8>        8"drivers/scsi/atari_NCR5880.c#8555" id;"L455" class="line" nams;"L455"><455//8>}</* S8PPORT855ref">TAG_ALLOC//a> */a hrefhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scabortedatari_NCR5380.cabortedL4" 51"t;d;"L429" class="line" nams;"L429"><429//8><ref="drivers/scid_mas_NOTICE" class="id_mas_L4"  &l15//a>//a>A//a>->/a hreinstancedrivers/scsi/atinstance/a>,-//a>ref="drivers/sc><450//8>7ref="drivers/scid_hig<429//8>        8ss="comment">/*//spaj><<8 href85" class="sreft//a> = 0; /a href="idrivers/scsi/atiL4"  &lhref="drivers/shostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scid_mas_NOTICE" class="id_mas_L4" i>, /a href="+codidrivers/scsi/atiL4" 5//a>1"tx80i>, /a href="+codidrivers/scsi/atiL4" 5//a>//a>1"1)d;"L458" class="line" nams;"L458"><458//8>        8ss="comment"> * Func+ aj8 void85tmap_zero" class=" " gt;/, /a href="+codidrivers/scsi/atiL4" 5/ga>A//a>->/a hrehostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scid_mas_NOTICE" class="id_mas_L4" )d;"L458" class="line" nams;"L458"><458//8>/spaj cl8ss="comment"> *<<8 href86" class="sref">ta////ss="srefhref="drivers/shostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scid_hig<450//8>        8ss="comment"> * Purpose:8Try t86"sref">ta//a>t//a> = 0; /a href="idrivers/scsi/atiL4"  &l0i>, /a href="+codidrivers/scsi/atiL4" 5//a> 8; ++, /a href="+codidrivers/scsi/atiL4" )d;"L429" class="line" nams;"L429"><429//8>< *    trans8er. T86class="sref">hostdataa href="+code=thostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scbusyatari_NCR5380.cbusyL4" [, /a href="+codidrivers/scsi/atiL4" ]51"t;d;"L429" class="line" nams;"L429"><429//8>        8ss="comment"> *         8 phy_863 cla#ifdet;a href="+code=tSUPPORT_TAGSatari_NCR5380.c>UPPORT_TAGS4" id;"L354" class="line" nams;"L354"><354//8>        8a href="+code=SETUP_HOST8ATA" 86=H_NO" class=, /a href="+codini"_taef="drivers/scsi/ini"_taefKERN_)id;"L450" class="line" nams;"L450"><450//8>#endif /8"drivers/scsi/atari_NCR5880.c#86"driv#4/spad;"L450" class="line" nams;"L450"><450//8>< = 0; /a href="REAL_DMANOTICE" class="REAL_DMA4" i)d;"L429" class="line" nams;"L429"><429//8>7ref="drivers/scdma_cen  cated" class=dma_cenL4" 51"t;d;"L429" class="line" nams;"L429"><429//8>/spaj cl8f (!/a href="+code=shoul8_be_t86drive#4/spad;"L450" class="line" nams;"L450"><450//8>        8   !/a href="+code=setup8use_t86 class="sref"a href="+code=dhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scms;gets_presmmantari_NCR5380.c>s;gets_presmmaL4" 51"t;d;"L429" class="line" nams;"L429"><429//8>        8       return 0;<ref="drivers/scconnectedatari_NCR5380.cconnected/a>,51"a href="+code=dNULLatari_NCR5380.cNULLL4" id;"L450" class="line" nams;"L450"><450//8>        8f (/a href="+code=TagAll8c" cl87sref">TAG_ALLOC//a> */a hrefhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scissue_NCR53drivers/scsi/atissue_NCR53L4" 51"a href="+code=dNULLatari_NCR5380.cNULLL4" id;"L450" class="line" nams;"L450"><450//8><ref="drivers/scdisconnected_NCR53drivers/scsi/atdisconnected_NCR53L4" 51"a href="+code=dNULLatari_NCR5380.cNULLL4" id;"L450" class="line" nams;"L450"><450//8>        8       /a href="+code=TA8_PRIN873 class="srefhref="drivers/shostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scflaef="drivers/scsi/flaefL4" 51"a href="+code=dFLAG_CHECK_LAST_BYTE_SENTdrivers/scsi/atFLAG_CHECK_LAST_BYTE_SENTL4" id;"L450" class="line" nams;"L450"><450//8>        8                  /a hre8="+co8755" id;"L455" class="line" nams;"L455"><455//8>#endif /8       return 1;<cmd//gt;/!, /a href="+codthe_templat3drivers/scsi/atthe_templat34" i) id;"L448" class="line" nams;"L448"><448//8><ta//a>->/a , /a href="+codthe_templat3drivers/scsi/atthe_templat34" i51"a href="+code=dinstancedrivers/scsi/atinstance/a>,-//a>ref="drivers/schostantari_NCR5380.chostaL4" id;"L450" class="line" nams;"L450"><450//8>7lun//a> ref="drivers/scfirst_instancedrivers/scsi/atfirst_instance4" i51"a href="+code=dinstancedrivers/scsi/atinstance/a>,id;"L450" class="line" nams;"L450"><450//8>/spaj cl8="drivers/scsi/atari_NCR8380.c87" class="sref}d;"L429" class="line" nams;"L429"><429//8>        8"drivers/scsi/atari_NCR5880.c#87erge_d;"L429" class="line" nams;"L429"><429//8><<429//8>        8ss="comment">/* Allocate8a tag881 class="srefgt;/ href="+code=allinstancedrivers/scsi/atinstance/a>,-//a>ref="drivers/sccmd_par_lun  cated" class=cmd_par_lunL4" 5/ga>A1) ||;/, /a href="+codinstancedrivers/scsi/atinstance/a>,-//a>ref="drivers/sccan_NCR53drivers/scsi/atcan_NCR53L4" 5/ga>A1))d;"L429" class="line" nams;"L429"><429//8>< * must be 8alled88class="sref">hostdataa href="+code=t=KERN_NOTICE" class="sref">KERN_Ng %d for target %dne" vers/s: WARNING : support t//amultiple outstansrge cotatuss enablesCR5380.c#L433" d;"L429" class="line" nams;"L429"><429//8>        8ss="comment"> * untagged8//spa88" class="sref"sref">hostdataag %d for target %dss="srefwithout AUTOSENSE op *cm,jcontrge538sallegiance consr *cms mayCR5380.c#L433" d;"L429" class="line" nams;"L429"><429//8>        8ss="comment"> */<8a hre88=H_NO" class="sref">Hostdataag %d for target %dss="srefbe incorrectly37;eares.CR5380.c#L433" i///a>->/a hreHOSTNlass="sref">cmd/HOSTNl.c#L)id;"L450" class="line" nams;"L450"><450//8>#endif /8"drivers/scsi/atari_NCR5880.c#88"driv#4/spaH/mmand.//spaj><<393//8><<393//8><<4_writ3drivers/scsi/atN59"><4_writ3.c#L href="+code=allINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REG/a>,i/href="+code=allICR_BASENOTICE" class="ICR_BASE.c#L)id;"L450" class="line" nams;"L450"><450//8>/spaj cl8a href="+code=SETUP_HOST8ATA" 88" class="srefa href="+code=tN59"><4_writ3drivers/scsi/atN59"><4_writ3.c#L href="+code=allMODE_REGdrivers/scsi/atMODE_REG/a>,i/href="+code=allMR_BASENOTICE" class="MR_BASE.c#L)id;"L450" class="line" nams;"L450"><450//8>        8"drivers/scsi/atari_NCR5880.c#88 class="sref"a href="+code=dN59"><4_writ3drivers/scsi/atN59"><4_writ3.c#L href="+code=allTARGET_COMMAND_REGdrivers/scsi/atTARGET_COMMAND_REG/a>,i/0)id;"L450" class="line" nams;"L450"><450//8>        8spaj class="comment">/* 8f we 89" class="srefhref="drivers/sN59"><4_writ3drivers/scsi/atN59"><4_writ3.c#L href="+code=allSELECT_ENABLE_REGdrivers/scsi/atSELECT_ENABLE_REG/a>,i/0)id;"L450" class="line" nams;"L450"><450//8>        8ss="comment">         * 8j unt891 clad;"L393" class="line" nams;"L393"><393//8><         */8/spaj89class="sref">return t;d;"L429" class="line" nams;"L429"><429//8>/spaj cl8f (!/a href="+code=shoul8_be_t89" cla}d;"L429" class="line" nams;"L429"><429//8>        8   !/a href="+code=setup8use_t8955" id;"L455" class="line" nams;"L455"><455//8>#endif /8       /a href="+code=cm8" cla8953" i="sref")<4_exi"atari_NCR5380.cN59"><4_exi"KERN_ tauct TUP_HOSTDATA//a>>cmdHostatari_NCR5380.c>>cmdHostlass=href="drivers/scinstancedrivers/scsi/atinstance/a>,)d;"L429" class="line" nams;"L429"><429//8>        8       /a href="+code=ho8tdata896 claid;"L448" class="line" nams;"L448"><448//8><<<393//8>/spaj cl8                  /spaj 8lass=89drive}d;"L429" class="line" nams;"L429"><429//8>        8 else {<<429//9>        9       /a href="+code=TA9_ALLO90drivers/scsi/atari_NCR5380.c#L459" id;"L459" class="line" nams;"L459"><459//9><N59"><4_NCR53_cotatus5(">cmdCmns *cmd,L459" id;"L459" class="line" nams;"L459"><459//9>2         */9" cla90s is possible if the scatter ;;;;;;)cmdCmns *)#L460" id;"L460" class="line" nams;"L460"><4603<3604<3605<3606<3607<3608<3609<360}<<360<<3602<459//9>3/* Mark the9tag o91tming"74" class="line" namsr rrrrrrtwiddlrge done paj><459//9>4 * unlock t9e LUN91/spaj><<360/spaj cl9ss="comment"> */<9a hre91"drivers/scsi/atari_NCR5380.cL360" id;"L360" class="line" nams;"L360"><3606<393//9>7<458//9>8, /a href="+codN59"><4_NCR53_cotatus_lc_NOTICE" class="N59"><4_NCR53_cotatus_lc_.c#L href="+code=allS>cmdCmnsatari_NCR5380.c">cmdCmns7" iahref="drivers/sccmsatari_NCR5380.ccms42" i/),)/a href="+code=t">cmdCmnsatari_NCR5380.c">cmdCmns7" iah))d;"L429" class="line" nams;"L429"><429//9>9<448//9><ref="drivers/scdevicedrivers/scsi/atdevicelass-//a>ref="drivers/schostatari_NCR5380.chostlass)id;"L450" class="line" nams;"L450"><450//9><TAG_ALLOC//a> */a hrefS>cmdCmnsatari_NCR5380.c">cmdCmns7" iahref="drivers/sctmpdrivers/scsi/attmp/a>,id;"L450" class="line" nams;"L450"><450//9><rivers/sclong///a>->/a hreflaef="drivers/scsi/flaefL4" ;d;"L429" class="line" nams;"L429"><429//9>        9       /a href="+code=TA9_PRIN92" clad;"L429" class="line" nams;"L429"><429//9>4, /a href="+codNDEBUG_NO_WRITENOTICE" class="NDEBUG_NO_WRITE/a>,)d;"L429" class="line" nams;"L429"><429//9>/spaj cl9 else if (/a href="+code9cmd" 92="sref">cmd//switch;/, /a href="+codcmsatari_NCR5380.ccms42" -//a>ref="drivers/sccmnsatari_NCR5380.ccmusL4" [0]) id;"L448" class="line" nams;"L448"><448//9>6<448//9>7<448//9>8ta//a>a href="+code=d=KERN_NOTICE" class="sref">KERN_N href="+code=dKERN_NOTICENOTICE" class="KERN_NOTICE clasNg %d for target %dne" vers/s: WRITE attemptediwith NO_WRITE5debuggrge flae&setCR5380.c#L433" id;"L450" class="line" nams;"L450"><450//9>9ta//a>a href="+code=dH_Nlass="sref">cmd/H_Nl.c#L href="+code=allcmsatari_NCR5380.ccms42" ))id;"L450" class="line" nams;"L450"><450//9>        9       /a href="+code=cl9ar_bi93" class="sref">ta////, /a href="+codcmsatari_NCR5380.ccms42" -//a>ref="drivers/sct sultatari_NCR5380.ct sult4" i51" href="+code=allDID_ERRORatari_NCR5380.cDID_ERRORL4" 5//a>//a>A16)id;"L450" class="line" nams;"L450"><450//9><TAG_ALL">ta////, /a href="+coddon3drivers/scsi/atdon3/a>, href="+code=allcmsatari_NCR5380.ccms42" )id;"L450" class="line" nams;"L450"><450//9><hostdatareturn t;d;"L429" class="line" nams;"L429"><429//9>        9                  /a hre9="+co93" class="sref}d;"L429" class="line" nams;"L429"><429//9>        9<<NDEBUG_NO_WRITE) s#L393" id;"L393" class="line" nams;"L393"><393//9>/spaj cl9="drivers/scsi/atari_NCR9380.c93="sred;"L455" class="line" nams;"L455"><455//9>6<4_STATSatari_NCR5380.cN59"><4_STATS"sred;"L455" class="line" nams;"L455"><455//9>7<455//9>8ref="drivers/scconnectedatari_NCR5380.cconnected/a>,5/ampi/ampi>!, /a href="+codhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scissue_NCR53drivers/scsi/atissue_NCR53L4" 5/ampi/ampid;"L455" class="line" nams;"L455"><455//9>9<448//9>        9nt /a href="+code=target9 clas94" class="sref">ta////, /a href="+codhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scmimebas*drivers/scsi/attimebas*4" i51"a href="+code=djiffief="drivers/scsi/jiffiefL4" ;d;"L429" class="line" nams;"L429"><429//9>        9a href="+code=TAG_ALLOC"9class94sref">TAG_ALL}d;"L429" class="line" nams;"L429"><429//9><<450//9>        9f (!/a href="+code=setup9use_t94tming#fgtdet;a href="+code=tN59"><4_STAT_LIMITdrivers/scsi/at459"><4_STAT_LIMIT"sred;"L455" class="line" nams;"L455"><455//9>        9       return;<, href="+code=allcmsatari_NCR5380.ccms42" )5/ga>A//a>->/a hreN59"><4_STAT_LIMITdrivers/scsi/at459"><4_STAT_LIMIT"sre)d;"L429" class="line" nams;"L429"><429//9>/spaj cl9"drivers/scsi/atari_NCR5980.c#94"driv# 4/spad;"L450" class="line" nams;"L450"><450//9>6ta//a>->/a switch;/, /a href="+codcmsatari_NCR5380.ccms42" -//a>ref="drivers/sccmnsatari_NCR5380.ccmusL4" [0]) id;"L448" class="line" nams;"L448"><448//9>7lun//a> cas*;a href="+code=tWRITEdrivers/s5380.cWRITErive:d;"L448" class="line" nams;"L448"><448//9>        9               /a href="9code=94" class="sref">ta//a>cas*;a href="+code=tWRITE_6atari_NCR5380.cWRITE_6 cla:d;"L448" class="line" nams;"L448"><448//9>        9               /a href="9code=94tmap_zero" class=" " cas*;a href="+code=tWRITE_="drivers/s5380.cWRITE_1drive:d;"L448" class="line" nams;"L448"><448//9>        9               /a href="9code=95" class="sref">ta////ss="srefhref="drivers/shostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/sctime_writ3drivers/scsi/attime_writ3L4" [href="+code=allcmsatari_NCR5380.ccms42" -//a>ref="drivers/scdevicedrivers/scsi/atdevicelass-//a>ref="drivers/scisatari_NCR5380.cidL4" ] -1" href="+code=alljiffief="drivers/scsi/jiffiefL4" 5-A//a>->/a hrehostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scmimebas*drivers/scsi/attimebas*4" i)id;"L450" class="line" nams;"L450"><450//9>        9       }<TAG_ALL">ta////ss="srefhref="drivers/shostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scbytes_writ3drivers/scsi/atbytes_writ3L4" [href="+code=allcmsatari_NCR5380.ccms42" -//a>ref="drivers/scdevicedrivers/scsi/atdevicelass-//a>ref="drivers/scisatari_NCR5380.cidL4" ] +1"a href="+code=dne" _buffcen  cated" class=ne" _buffcen/a>, href="+code=allcmsatari_NCR5380.ccms42" )id;"L450" class="line" nams;"L450"><450//9><hostdatass="srefhref="drivers/shostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scpensrgewNOTICE" class="sensrgewlass++id;"L450" class="line" nams;"L450"><450//9>        9="drivers/scsi/atari_NCR9380.c95" class="sref"sref">hostdata breakid;"L450" class="line" nams;"L450"><450//9>        9"drivers/scsi/atari_NCR5980.c#95=H_NO" class="sref">Hcas*;a href="+code=tREADNOTICE" class="READrive:d;"L448" class="line" nams;"L448"><448//9>/spaj cl9paj class="comment">/* S9PPORT955ref">TAG_ALL"sref">Hcas*;a href="+code=tREAD_6atari_NCR5380.cREAD_6rive:d;"L448" class="line" nams;"L448"><448//9>6ta//a>->/a cas*;a href="+code=tREAD_="drivers/s5380.cREAD_="rive:d;"L448" class="line" nams;"L448"><448//9>7lun//a> ss="srefhref="drivers/shostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/sctime_reasatari_NCR5380.c>ime_reasL4" [href="+code=allcmsatari_NCR5380.ccms42" -//a>ref="drivers/scdevicedrivers/scsi/atdevicelass-//a>ref="drivers/scisatari_NCR5380.cidL4" ] -1" href="+code=alljiffief="drivers/scsi/jiffiefL4" 5-A//a>->/a hrehostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scmimebas*drivers/scsi/attimebas*4" i)id;"L450" class="line" nams;"L450"><450//9>        9ss="comment">/*//spaj><<9 href95" class="sref">ta//a>ss="srefhref="drivers/shostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scbytes_reasatari_NCR5380.cbytes_reasL4" [href="+code=allcmsatari_NCR5380.ccms42" -//a>ref="drivers/scdevicedrivers/scsi/atdevicelass-//a>ref="drivers/scisatari_NCR5380.cidL4" ] +1"a href="+code=dne" _buffcen  cated" class=ne" _buffcen/a>, href="+code=allcmsatari_NCR5380.ccms42" )id;"L450" class="line" nams;"L450"><450//9>        9ss="comment"> * Func+ aj9 void95tmap_zero" class=" " ss="srefhref="drivers/shostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scsensrgecdrivers/scsi/atpensrgeclass++id;"L450" class="line" nams;"L450"><450//9>/spaj cl9ss="comment"> *<<9 href96" class="sref">ta////ss="srefbreakid;"L450" class="line" nams;"L450"><450//9>        9ss="comment"> * Purpose:9Try t96sref">TAG_ALL">ta////}d;"L429" class="line" nams;"L429"><429//9>< *    trans9er. T96class#4/spad;"L450" class="line" nams;"L450"><450//9>        9ss="comment"> *         9 phy_96" clad;"L429" class="line" nams;"L429"><429//9>        9a href="+code=SETUP_HOST9ATA" 96=H_NO" class=,s/scsi/atari_NCR5380.c#L459" id;"L459" class="line" nams;"L459"><459//9>#endif /9"drivers/scsi/atari_NCR5980.c#96"drivers/scsi/atari_NCR5380.........* We usej><360<<3607<393//9>/spaj cl9f (!/a href="+code=shoul9_be_t96drived;"L393" class="line" nams;"L393"><393//9>        9   !/a href="+code=setup9use_t96 class="sref"a href="+code=dSET_NEXTdrivers/scsi/atSET_NEXT/a>, href="+code=allcmsatari_NCR5380.ccms42" i/href="+code=allNULLatari_NCR5380.cNULLL4" )id;"L450" class="line" nams;"L450"><450//9>        9       return 0;<ref="drivers/scne" _don3drivers/scsi/atne" _don34" i51"a href="+code=ddon3drivers/scsi/atdon3/a>,id;"L450" class="line" nams;"L450"><450//9>        9f (/a href="+code=TagAll9c" cl971 clad;"L393" class="line" nams;"L393"><393//9><ref="drivers/sct sultatari_NCR5380.ct sult4" i51"t;d;"L429" class="line" nams;"L429"><429//9>        9       /a href="+code=TA9_PRIN97" clad;"L429" class="line" nams;"L429"><429//9>        9                  /a hre9="+co97=H_NO" class=,s/scsi/atari_NCR5380.c#L459" id;"L459" class="line" nams;"L459"><459//9>#endif /9       return 1;<<459//9><<459//9>7<459//9>/spaj cl9="drivers/scsi/atari_NCR9380.c97drivers/scsi/atari_NCR5380.s........* sense dams is only guaraf="ed pajbe valis5whilej><360        9"drivers/scsi/atari_NCR5980.c#97erge_contiguous_buffers( Scs........*#L393" id;"L393" class="line" nams;"L393"><393//9><<421//9>        9ss="comment">/* Allocate9a tag98sref">TAG_ALLOC//a> */a hreflocal_irq_sav3drivers/scsi/atlocal_irq_sav3/a>, href="+code=allflaef="drivers/scsi/flaefL4" )id;"L450" class="line" nams;"L450"><450//9>< * must be 9alled98class="sref">/mmand.//spaj><<360        9ss="comment"> * untagged9//spa98tming"74" class="line" namsr........* Orherwise a runnrge>N59"><4_aain may steale><360        9ss="comment"> */<9a hre98/spaj><<360#endif /9"drivers/scsi/atari_NCR5980.c#98"drivers/scsi/atari_NCR5380.........* ams;"Lne" .c. Ifjwe insert first,e><360<<3607imeoutsL360" id;"L360" class="line" nams;"L360"><360/spaj cl9a href="+code=SETUP_HOST9ATA" 98drivers/scsi/atari_NCR5380.s........* may happan (a d ><360        9"drivers/scsi/atari_NCR5980.c#98erge_contiguous_buffers( Scs........* appaar in a y ofj><360        9spaj class="comment">/* 9f we 99drivers/scsi/atari_NCR5380.c........* ++roatu: Just disablrge ><459//9>        9ss="comment">         * 9j unt99merge several scatter-gather........* becausejalso a timer"//a>candtrigger"andabort orjresmt,ewhich woulsL460" id;"L360" class="line" nams;"L360"><360<         */9/spaj99s is possible if the scatter........* al="d NCR53s a d >ouch ><360/spaj cl9f (!/a href="+code=shoul9_be_t99tming"74" class="line" namsr........*#L393" id;"L393" class="line" nams;"L393"><393//9>        9   !/a href="+code=setup9use_t994 class="srefgt;/!, /a href="+codIS_A_TTdrivers/scsi/atIS_A_TT/a>, )) id;"L448" class="line" nams;"L448"><448//9>#endif /9       /a href="+code=cm9" cla99="sref">cmd//a>->//mmand.//spaj><<393//9><ta//a>->/a , /a href="+codfalcon_get_lock="drivers/scsi/falcon_get_lock/a>, )id;"L450" class="line" nams;"L450"><450//9><lun//a> rmmand.//spaj><<393//9>/spaj cl9                  /spaj 9lass=99" class="sref}d;"L429" class="line" nams;"L429"><429//9>        9 else {<ref="drivers/sccmnsatari_NCR5380.ccmusL4" [0] =1"a href="+code=dREQUEST_SENSENOTICE" class="REQUEST_SENSEL4" )) id;"L448" class="line" nams;"L448"><448//10>        10>   e {<ta//a>->/a , /a href="+codLISTdrivers/scsi/atLIST/a>, href="+code=allcmsatari_NCR5380.ccms42" i/href="+code=allhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scissue_NCR53drivers/scsi/atissue_NCR53L4" )id;/pre>  >;"L448" class="line" nams;"L448"><448//10>1       10>s="comment">         * 10>s=>10>sref">TAG_ALL">ta////, /a href="+codSET_NEXTdrivers/scsi/atSET_NEXT/a>, href="+code=allcmsatari_NCR5380.ccms42" i/href="+code=allhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scissue_NCR53drivers/scsi/atissue_NCR53L4" )id;"L448" class="line" nams;"L448"><448//10>2       10>s="comment">         */10>s=>10>class="sref">hostdataa href="+code=thostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scissue_NCR53drivers/scsi/atissue_NCR53L4" 51"a href="+code=dcmsatari_NCR5380.ccms42" id;"L448" class="line" nams;"L448"><448//10>3       10> (!/a href="+code=shoul10> (>10>" class="sref} elsejid;"L448" class="line" nams;"L448"><448//10>4       10>  !/a href="+code=setup10>  >10>=H_NO" class="sref">Ht//a> = 0; /a href="tmpdrivers/scsi/attmp/a>,51" href="+code=all">cmdCmnsatari_NCR5380.c">cmdCmns7" iah)a href="+code=thostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scissue_NCR53drivers/scsi/atissue_NCR53L4" id;"L448" class="line" nams;"L448"><448//10>5       10>      /a href="+code=cm10>  >10>="sref">cmd//a>->/tdataa href="+code=tNEXTdrivers/scsi/atNEXT/a>, href="+code=alltmpdrivers/scsi/attmp/a>,)i>, /a href="+codtmpdrivers/scsi/attmp/a>,51"a href="+code=tNEXTdrivers/scsi/atNEXT/a>, href="+code=alltmpdrivers/scsi/attmp/a>,))d;"L429" class="line" nams;"L429"><429//10>6       10>      /a href="+code=ho10>  >10>6sref">ta//a>->/a         id;"L448" class="line" nams;"L448"><448//10>7       10>      /a href="+code=TA10>  >10>class="sref">lun//a> ref="drivers/scLISTdrivers/scsi/atLIST/a>, href="+code=allcmsatari_NCR5380.ccms42" i/href="+code=alltmpdrivers/scsi/attmp/a>,)id;"L448" class="line" nams;"L448"><448//10>8       10>                 /spaj 10>  >10>" class="sref">ta//a>a href="+code=dSET_NEXTdrivers/scsi/atSET_NEXT/a>, href="+code=alltmpdrivers/scsi/attmp/a>,i///a>->/a hrecmsatari_NCR5380.ccms42" )id;"L450" class="line" nams;"L450"><450//10>9       10>else {<<429//101        10="drivers/scsi/atari_NCR10="d>10="ref">TAG_ALLOC//a> */a hreflocal_irq_t stor3drivers/scsi/atlocal_irq_t stor3/a>, href="+code=allflaef="drivers/scsi/flaefL4" )id;"L450" class="line" nams;"L450"><450//10=1       10"drivers/scsi/atari_NCR510"dr>10=1 clad;"L393" class="line" nams;"L393"><393//10=2       10"drivers/scsi/atari_NCR510"dr>10=2 class="srefhref="drivers/sQU_PRINTK="drivers/scsi/QU_PRINTK/a>, hg %d for target %dne" vers/s: cotatus5added pajvers/s ofjNCR53CR5380.c#L433" i///a>->/a hreH_Nlass="sref">cmd/H_Nl.c#L href="+code=allcmsatari_NCR5380.ccms42" )id;"L450" class="line" nams;"L450"><450//10=3       10ss="comment">/* Mark the10ss=>10=" class="sref"sref">hos/, /a href="+codcmsatari_NCR5380.ccms42" -//a>ref="drivers/sccmnsatari_NCR5380.ccmusL4" [0] =1"a href="+code=dREQUEST_SENSENOTICE" class="REQUEST_SENSEL4" ) ?sNg %d for target %dheas5380.c#L433"  :sNg %d for target %dtail5380.c#L433" )id;"L450" class="line" nams;"L450"><450//10=4       10ss="comment"> * unlock t10ss=>10=55" id;"L455" class="line" nams;"L455"><455//10=5       10ss="comment"> */<10ss=>10=5ref">TAG_ALLOmmand.//spaj><<393//10=6       10"drivers/scsi/atari_NCR510"dr>10=ged command. If the command ........* half), we letjNCR53_aain() daj>akrge care about aain. IfjitL360" id;"L360" class="line" nams;"L360"><36010= is a free tag and the targe........* is alreasy runnrge, ><36010=drivers/scsi/atari_NCR5380.s........*L360" id;"L360" class="line" nams;"L360"><36010=erge_contiguous_buffers( Scs........* Ifjwetar9;re not in a def="drupt, we candcall>N59"><4_aain(#L460" id;"L460" class="line" nams;"L460"><46010"drge_contiguous_buffers( Scs........* unconsr *cmally, becausejia>cannot be alreasy runnrge.L360" id;"L360" class="line" nams;"L360"><36010"merge several scatter-gather........*#L393" id;"L393" class="line" nams;"L393"><393//10"2       10       /a href="+code=ho10   >10"2 class="srefgt;/, /a href="+codin_ef="druptdrivers/scsi/atin_ef="drupt/a>, ) ||;/ href="+code=allflaef="drivers/scsi/flaefL4" 5/ga>/ga>A8)5/ampi>7)5/ga>= 6)d;"L429" class="line" nams;"L429"><429//1023       10       /a href="+code=TA10   >10"" class="sref"sref">hhref="+code=allNCR53_aain="drivers/scsi/NCR53_aain/a>, )id;"L450" class="line" nams;"L450"><450//10"4       10                  /a hre10   >10"=H_NO" class=elsed;"L450" class="line" nams;"L450"><450//10"5       10 else if (/a href="+code10 el>10"="sref">cmd//a>->// href="+code=tN59"><4_aaindrivers/scsi/atN59"><4_aain.c#L href="+code=allNULLatari_NCR5380.cNULLL4" )id;"L450" class="line" nams;"L450"><450//10"6       10       /a href="+code=pr10   >10"6sref">ta//a>return t;d;"L429" class="line" nams;"L429"><429//10"7       10              /a href="+10   >10" is a}d;"L429" class="line" nams;"L429"><429//1028       10 else {<<393//10"9       10       /a href="+code=TA10   >10"erge_="sref"href="+code=allDEF_SCSI_QCMDNOTICE" class="DEF_SCSI_QCMD.c#L href="+code=allN59"><4_NCR53_cotatusdrivers/scsi/atN59"><4_NCR53_cotatusL4" )d;"L393" class="line" nams;"L393"><393//103        10       /a href="+code=cl10   >10  rived;"L393" class="line" nams;"L393"><393//1031       10       /a href="+code=ta10   >10 merge several scatter-gathec#L459" id;"L459" class="line" nams;"L459"><459//10 2       10       /a href="+code=TA10   >10 s is possible if the scatter ;Cmnd *cm d N59"><4_aain ()<46010 tming"74" class="line" nams;"L360" id;"L360" class="line" nams;"L360"><36010 /spaj><<4_aain is a coroutrge queueruns as long/as more work canL360" id;"L360" class="line" nams;"L360"><36010 "drivers/scsi/atari_NCR5380.cta//a>be done cm que N59"><4 host adap="ds in a system.  BothL360" id;"L360" class="line" nams;"L360"><36010 ged command. If the command srrrrrrN59"><4_NCR53_cotatus ) tus5N59"><4_ef=r ) willjtry pajstart itL360" id;"L360" class="line" nams;"L360"><36010  is a free tag and the target&&&&&&in casejia>is not runnrge.L360" id;"L360" class="line" nams;"L360"><36010 drivers/scsi/atari_NCR5380.siL360" id;"L360" class="line" nams;"L360"><36010 erge_contiguous_buffers( Scsi_NOTE d N59"><4_aain exi"siwith ef="drupts *disabled*,;><36010ntis a free tag and the target&&reenable;><36010nmerge several scatter-gather #L393" id;"L393" class="line" nams;"L393"><393//1042       10"drivers/scsi/atari_NCR510"dr>10n2rived;"L393" class="line" nams;"L393"><393//1043       10f (!/a href="+code=setup10f (>10n3rge_="sref")<4_aaindrivers/scsi/atN59"><4_aain.c#L  tauct TUP_HOSTDATA//awork_ tauctdrivers/scsi/atwork_ tauct7" iahTUP_HOSTDATA//aworkdrivers/scsi/atworkL4" )d;"L393" class="line" nams;"L393"><393//1044       10       return;<<448//1045       10"drivers/scsi/atari_NCR510"dr>10n5ref">TAG_ALLOref="+code=all">cmdCmnsatari_NCR5380.c">cmdCmns7" iahhref="+code=alltmpdrivers/scsi/attmp/a>,i/hhref="+code=allprevdrivers/scsi/atprevL4" id;"L448" class="line" nams;"L448"><448//1046       10or (/a href="+code=targe10or >10n6sref">ta//a> tauct TUP_HOSTDATA//a>>cmdHostatari_NCR5380.c>>cmdHostlass=href="drivers/scinstancedrivers/scsi/atinstance/a>,51"a href="+code=tfirst_instancedrivers/scsi/atfirst_instance4" iid;"L448" class="line" nams;"L448"><448//1047       10       for (/a href="+co10   >10n7sref">ta//a> tauct TUP_HOSTDATA//aN59"><4_hostdamsdrivers/scsi/atN59"><4_hostdamslass=href="drivers/schostdamsdrivers/scsi/athostdamslass51"a href="+code=tHOSTDATANOTICE" class="HOSTDATA.c#L href="+code=allinstancedrivers/scsi/atinstance/a>,)id;"L448" class="line" nams;"L448"><448//1048       10               /a href="10   >10n" class="srefg/a>, /a href="+coddon3drivers/scsi/atdon3/a>,id;"L450" class="line" nams;"L450"><450//10n9       10               /a href="10   >10n9 class="srefrivers/sclong///a>->/a hreflaef="drivers/scsi/flaefL4" ;d;"L429" class="line" nams;"L429"><429//105        10               /a href="10   >10  rived;"L393" class="line" nams;"L393"><393//1051       10       }<TAG_ALLOseveral scatter-gathec#L459" id;"L459" class="line" nams;"L459"><459//1052       10<<459//1053       10="drivers/scsi/atari_NCR10="d>10 tming"74" class="line" namsr........* ><459//1054       10"drivers/scsi/atari_NCR510"dr>10 /spaj><<360/* S10paj>10 "drivers/scsi/atari_NCR5380.........*L360" id;"L360" class="line" nams;"L360"><36010 ged command. If the command ........* If="drupts are enables before dorge>vs;"ous orher ef="dnalrg59" id;"L459" class="line" nams;"L459"><459//10 7       10"drivers/scsi/atari_NCR510"dr>10  is a free tag and the targe........* in tauct*cms, af="d wetar9;ve decided pwa need pajrun throughL360" id;"L360" class="line" nams;"L360"><360/*//spaj><<10ss=>10 drivers/scsi/atari_NCR5380.s........* ><360 * Func+ aj10ss=>10 erge_contiguous_buffers( Scs........*L360" id;"L360" class="line" nams;"L360"><360 *<<10ss=>10ssrivers/scsi/atari_NCR5380.s........* ><360 * Purpose:10ss=>10smerge several scatter-gather........*L360" id;"L360" class="line" nams;"L360"><360 *    trans10ss=>10ss is possible if the scatter........* ++roatu: Just disablrge ><459//10s3       10ss="comment"> *         10ss=>10stming"74" class="line" namsr........* becausejalso a timer"//a>candtrigger"andabort orjresmt,ewhich canL360" id;"L360" class="line" nams;"L360"><36010s/spaj><ouch ><36010s"drivers/scsi/atari_NCR5380.........*#L393" id;"L393" class="line" nams;"L393"><393//1066       10f (/a href="+code=hostda10f (>10s57" id;"L393" class="line" nams;"L393"><393//10s7       10       return 1;<10s7 class="srefhmmand.//spaj><ha dl"ds aain() is now alreasy executrgg. rNote queuL393" id;"L393" class="line" nams;"L393"><393//1068       10f (!/a href="+code=shoul10f (>10sdrivers/scsi/atari_NCR5380.s........  no races are possible"here. Ifja def= cotes in beforeL393" id;"L393" class="line" nams;"L393"><393//1069       10   !/a href="+code=setup10   >10serge_contiguous_buffers( Scs........  tar9;aain_runnrgetar9; is set here, a d NCR53s/executes aain via ><459//107        10       return 0;<10  rge_contiguous_buffers( Scs........  task NCR53,jit5doesntar9;t daja y harm, just ><459//1071       10f (/a href="+code=TagAll10f (>10 merge several scatter-gather........  wontar9;t fius5a y work left pajdo..*#L393" id;"L393" class="line" nams;"L393"><393//1072       10   /a href="+code=TagAll10   >10 2 class="srefgt;/, /a href="+codaain_runnrge="drivers/scsi/aain_runnrgeL4" )d;"L393" class="line" nams;"L393"><393//1073       10       /a href="+code=TA10   >10 " class="sref"sref">hreturn;d;"L429" class="line" nams;"L429"><429//1074       10                  /a hre10   >10 =H_NO" class=, /a href="+codaain_runnrge="drivers/scsi/aain_runnrgeL4"  = 1;d;"L429" class="line" nams;"L429"><429//1075       10       return 1;<10 ="sred;"L455" class="line" nams;"L455"><455//10 6       10<, href="+code=allflaef="drivers/scsi/flaefL4" )id;"L450" class="line" nams;"L450"><450//1077       10eturn 0;<<448//1078       10="drivers/scsi/atari_NCR10="d>10 " class="sref">ta//a>a href="+code=dlocal_irq_disabledrivers/scsi/atlocal_irq_disable/a>, )isrefhmmand.//spaj><<393//1079       10"drivers/scsi/atari_NCR510"dr>10 tmap_zero" class=" " , /a href="+coddon3drivers/scsi/atdon3/a>, = 1;d;"L429" class="line" nams;"L429"><429//108        10"drivers/scsi/atari_NCR510"dr>10"d"sred;"L455" class="line" nams;"L455"><455//1081       10ss="comment">/* Allocate10ss=>10"sref">TAG_ALL">ta////gt;/!, /a href="+codhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scconnectedatari_NCR5380.cconnected/a>,) id;"L448" class="line" nams;"L448"><448//1082       10ss="comment"> * must be 10ss=>10"class="sref">hostdatass="srefhref="drivers/sMAIN_PRINTK="drivers/scsi/MAIN_PRINTK/a>, hg %d for target %dne" vers/s: not connectedCR5380.c#L433" i///a>->/a hreHOSTNlass="sref">cmd/HOSTNlL4" )id;"L450" class="line" nams;"L450"><450//1083       10ss="comment"> * untagged10ss=>10"" class="sref"sref">hostdata Oseveral scatter-gathec#L459" id;"L459" class="line" nams;"L459"><459//1084       10ss="comment"> */<10ss=>10"/spaj><<36010""drivers/scsi/atari_NCR5380.........................* t//aa ms;get queutar9;s not busy.L360" id;"L360" class="line" nams;"L360"><36010"ged command. If the command ........................*#L393" id;"L393" class="line" nams;"L393"><393//1087       10="drivers/scsi/atari_NCR10="d>10" is a#gt;/, /a href="+codNDEBUGdrivers/scsi/atNDEBUGL4" 5/ampi>, /a href="+codNDEBUG_LISTSatari_NCR5380.cNDEBUG_LISTSL4" )d;"L393" class="line" nams;"L393"><393//1088       10a href="+code=SETUP_HOST10a h>10"" class="sref">ta//a>ss="sreft//a> = 0; /a href="tmpdrivers/scsi/attmp/a>,51" href="+code=all">cmdCmnsatari_NCR5380.c">cmdCmns7" iah)aa href="+code=thostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scissue_NCR53drivers/scsi/atissue_NCR53L4" i///a>->/a hreprevdrivers/scsi/atprevL4" 51"a href="+code=tNULLatari_NCR5380.cNULLL4" id;"L450" class="line" nams;"L450"><450//1089       10"drivers/scsi/atari_NCR510"dr>10"tmap_zero" class=" " ss="srefdata O= 0; /a href="tmpdrivers/scsi/attmp/a>,5/ampi/ampi>> = 0; /a href="tmpdrivers/scsi/attmp/a>,5!1"a href="+code=tprevdrivers/scsi/atprevL4" )i>, /a href="+codprevdrivers/scsi/atprevL4" 51"a href="+code=ttmpdrivers/scsi/attmp/a>,i///a>->/a hretmpdrivers/scsi/attmp/a>,51"a href="+code=tNEXTdrivers/scsi/atNEXT/a>, href="+code=alltmpdrivers/scsi/attmp/a>,))d;"L429" class="line" nams;"L429"><429//109        10spaj class="comment">/* 10spa>10spmap_zero" class=" " ss="srefdata    id;"L448" class="line" nams;"L448"><448//1091       10ss="comment">         * 10ss=>10ssref">TAG_ALL">ta////ss="srefhseveral scatter-gathec#sref">(5380.cvers/p  5380.c, tmp);*#L393" id;"L393" class="line" nams;"L393"><393//1092       10ss="comment">         */10ss=>10sclass="sref">hostdatass="srefgt;/> = 0; /a href="tmpdrivers/scsi/attmp/a>,511"a href="+code=tprevdrivers/scsi/atprevL4" )5/ampi/ampi>href="+code=alltmpdrivers/scsi/attmp/a>,)d;"L393" class="line" nams;"L393"><393//1093       10f (!/a href="+code=shoul10f (>10s" class="sref"sref">hostdata refdata O= 0; /a href="=KERN_NOTICE" class="sref">KERN_Ng %d for target %d LOOPCR5380.c#L433" )id;"L450" class="line" nams;"L450"><450//1094       10   !/a href="+code=setup10   >10s=H_NO" class="sref">Hss="srefhseveral scatter-gathec# elsejsref">(5380.cCR5380.c)i>*#L393" id;"L393" class="line" nams;"L393"><393//1095       10       /a href="+code=cm10   >10s"driv#4/spad;"L450" class="line" nams;"L450"><450//10s6       10       /a href="+code=ho10   >10s6sref">ta//a>->/a         t//a> = 0; /a href="tmpdrivers/scsi/attmp/a>,51" href="+code=all">cmdCmnsatari_NCR5380.c">cmdCmns7" iah)aa href="+code=thostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scissue_NCR53drivers/scsi/atissue_NCR53L4" id;"L450" class="line" nams;"L450"><450//10s7       10       /a href="+code=TA10   >10sclass="sref">lun//a> ss="srefdata O= 0; /a href="=Kevdrivers/scsi/atprevL4" 51"a href="+code=tNULLatari_NCR5380.cNULLL4" i>href="+code=alltmpdrivers/scsi/attmp/a>,i>, /a href="+codprevdrivers/scsi/atprevL4" 51"a href="+code=ttmpdrivers/scsi/attmp/a>,i///a>->/a hretmpdrivers/scsi/attmp/a>,51"a href="+code=tNEXTdrivers/scsi/atNEXT/a>, href="+code=alltmpdrivers/scsi/attmp/a>,)) id;"L448" class="line" nams;"L448"><448//1098       10                  /spaj 10   >10sdrived;"L393" class="line" nams;"L393"><393//1099       10 else {<, /a href="+codNDEBUG_LISTSatari_NCR5380.cNDEBUG_LISTSL4" )d;"L393" class="line" nams;"L393"><393//11>        11>   e {<ta//a>->/a                 gt;/, /a href="+codprevdrivers/scsi/atprevL4" 5!1"a href="+code=ttmpdrivers/scsi/attmp/a>,)d;"L393" class="line" nams;"L393"><393//11>1       11>s="comment">         * 11>s=>11>sref">TAG_ALL">ta////f">lun//a> ss="srefdata O= 0; /a href="=KERN_NOTICE" class="sref">KERN_Ng %d for target %dMAIN tmp=vers/p   ms;get=vers/d   busy=vers/d lun=vers/dCR5380.c#L433" id;"L450" class="line" nams;"L450"><450//11>2       11>s="comment">         */11>s=>11>class="sref">hostdata>ta////f">lun//a> ss="srefdata O= 0; /a href="tmpdrivers/scsi/attmp/a>,i///a>->/a hretmpdrivers/scsi/attmp/a>,-//a>ref="drivers/scdevicedrivers/scsi/atdevicelass-//a>ref="drivers/scisatari_NCR5380.cidL4" i/href="+code=allhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scbusydrivers/scsi/atbusylass[href="+code=alltmpdrivers/scsi/attmp/a>,-//a>ref="drivers/scdevicedrivers/scsi/atdevicelass-//a>ref="drivers/scisatari_NCR5380.cidL4" ]id;"L450" class="line" nams;"L450"><450//11>3       11> (!/a href="+code=shoul11> (>110" class="sref"sref">hostdata refdata > ss="srefdata O= 0; /a href="tmpdrivers/scsi/attmp/a>,-//a>ref="drivers/scdevicedrivers/scsi/atdevicelass-//a>ref="drivers/sclundrivers/scsi/atlunL4" )id;"L450" class="line" nams;"L450"><450//11>4       11>  !/a href="+code=setup11>  >11055" i#4/spad;"L450" class="line" nams;"L450"><450//11>5       11>      /a href="+code=cm11>  >11>="sref">cmd//a>->/tdata="srefdata Oseveral scatter-gathec#  Wfrom"><393//11>6       11>      /a href="+code=ho11>  >11>6sref">ta//a>->/a         refdata Oseveral scatter-gathec# ++gu hrher: possible"race with Falcon lockrge *#L393" id;"L393" class="line" nams;"L393"><393//11>7       11>      /a href="+code=TA11>  >11>class="sref">lun//a>                 gt;/d;"L393" class="line" nams;"L393"><393//11>8       11>                 /spaj 11>  >11>" cla#gtdet;a href="+code=tSUPPORT_TAGSatari_NCR5380.cSUPPORT_TAGSrived;"L393" class="line" nams;"L393"><393//11>9       11>else {<<393//111        11="drivers/scsi/atari_NCR11="d>11="ref"#elsed;"L450" class="line" nams;"L450"><450//11=1       11"drivers/scsi/atari_NCR511"dr>111sref">TAG_ALL">ta////f">lun//a> ss="srefd! href="+code=allhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scbusydrivers/scsi/atbusylass[href="+code=alltmpdrivers/scsi/attmp/a>,-//a>ref="drivers/scdevicedrivers/scsi/atdevicelass-//a>ref="drivers/scisatari_NCR5380.cidL4" ]5/ampi>(1 << O= 0; /a href="tmpdrivers/scsi/attmp/a>,-//a>ref="drivers/scdevicedrivers/scsi/atdevicelass-//a>ref="drivers/sclundrivers/scsi/atlunL4" ))d;"L393" class="line" nams;"L393"><393//1112       11"drivers/scsi/atari_NCR511"dr>111class#4/spad;"L450" class="line" nams;"L450"><450//1113       11ss="comment">/* Mark the11ss=>11=" class="sref"sref">hosssssssssssssssssss) id;"L448" class="line" nams;"L448"><448//11=4       11ss="comment"> * unlock t11ss=>111=H_NO" class="sref">Hss="srefffffffffffffffffOseveral scatter-gathec# ++gu hrher: just >ajbe sure, ><393//11=5       11ss="comment"> */<11ss=>111="sref">cmd//a>->/tdata="srefdata ffffffffO href="+code=dlocal_irq_disabledrivers/scsi/atlocal_irq_disable/a>, )id;"L393" class="line" nams;"L393"><393//11=6       11"drivers/scsi/atari_NCR511"dr>1116sref">ta//a>->/a         refdata         gt;/, /a href="+codprevdrivers/scsi/atprevL4" ) id;"L448" class="line" nams;"L448"><448//11=7       11id /a href="+code=cmd_fr11id >111class="sref">lun//a>                 refdata ffffffffO href="+code=dREMOVENOTICE" class="REMOVE/a>, href="+code=allprevdrivers/scsi/atprevL4" i/href="+code=allNEXTdrivers/scsi/atNEXT/a>, href="+code=allprevdrivers/scsi/atprevL4" )i///a>->/a hretmpdrivers/scsi/attmp/a>,i/href="+code=allNEXTdrivers/scsi/atNEXT/a>, href="+code=alltmpdrivers/scsi/attmp/a>,))id;"L393" class="line" nams;"L393"><393//11=8       11="drivers/scsi/atari_NCR11="d>111" class="sref">ta//a>ss="sref        refdata ffffffffO href="+code=dSET_NEXTdrivers/scsi/atSET_NEXT/a>, href="+code=allprevdrivers/scsi/atprevL4" i/href="+code=allNEXTdrivers/scsi/atNEXT/a>, href="+code=alltmpdrivers/scsi/attmp/a>,))id;"L393" class="line" nams;"L393"><393//11=9       11a href="+code=SETUP_HOST11a h>111tmap_zero" class=" " ss="srefdata            } elsejid;"L448" class="line" nams;"L448"><448//112        11"drivers/scsi/atari_NCR511"dr>112 sref">ta//a>->/a                 refdata ffffffffO href="+code=dREMOVENOTICE" class="REMOVE/a>, -1i/href="+code=allhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scissue_NCR53drivers/scsi/atissue_NCR53L4" i///a>->/a hretmpdrivers/scsi/attmp/a>,i/href="+code=allNEXTdrivers/scsi/atNEXT/a>, href="+code=alltmpdrivers/scsi/attmp/a>,))id;"L393" class="line" nams;"L393"><393//1121       11f (/a href="+code=cmd" c11f (>112sref">TAG_ALL">ta////f">lun//a> ss="srefdata ffffffffO href="+code=dhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scissue_NCR53drivers/scsi/atissue_NCR53L4" 51"a href="+code=dNEXTdrivers/scsi/atNEXT/a>, href="+code=alltmpdrivers/scsi/attmp/a>,)id;"L393" class="line" nams;"L393"><393//1122       11       /a href="+code=ho11   >112class="sref">hostdata>ta////f">lun//a> ss="sr}d;"L429" class="line" nams;"L429"><429//1123       11       /a href="+code=TA11   >11"" class="sref"sref">ha> ss="srefdata ffffffffO href="+code=dSET_NEXTdrivers/scsi/atSET_NEXT/a>, href="+code=alltmpdrivers/scsi/attmp/a>,i///a>->/a hreNULLatari_NCR5380.cNULLL4" )id;"L450" class="line" nams;"L450"><450//11"4       11                  /a hre11   >112=H_NO" class="sref">Hss="srefffffffffffffffffO/a>->/a hrefalcon_dont_re;easeatari_NCR5380.cfalcon_dont_re;easeH_NO++id;"L450" class="line" nams;"L450"><450//1125       11 else if (/a href="+code11 el>112="sred;"L455" class="line" nams;"L455"><455//11"6       11       /a href="+code=pr11   >1126sref">ta//a>->/a         refdata         Oseveral scatter-gathec# reenable;ef="drupts af="d fiusrge one *#L393" id;"L393" class="line" nams;"L393"><393//11"7       11              /a href="+11   >112class="sref">lun//a>                 refdata O href="+code=dlocal_irq_t stor3drivers/scsi/atlocal_irq_t stor3/a>, href="+code=allflaef="drivers/scsi/flaefL4" )id;"L450" class="line" nams;"L450"><450//1128       11 else {<<393//11"9       11       /a href="+code=TA11   >112tmap_zero" class=" " ss="srefdata            Oseveral scatter-gathec#L459" id;"L459" class="line" nams;"L459"><459//113        11       /a href="+code=cl11   >113 rge_contiguous_buffers( Scs........                                * Attempt >aj stablishja dI_T_L nexus"here.L459" id;"L459" class="line" nams;"L459"><459//1131       11       /a href="+code=ta11   >11 merge several scatter-gathes........                                * On success, instance-//a>hostdams-//a>connected is set.L459" id;"L459" class="line" nams;"L459"><459//1132       11       /a href="+code=TA11   >11 s is possible if the scatter........                                * On failure, we must add;><459//1133       11                  /a hre11   >11 tming"74" class="line" nams;........                                *   issue NCR53 so we candkeepjtryrge.L360" id;"L360" class="line" nams;"L360"><36011 /spaj><<393//11 5       11="drivers/scsi/atari_NCR11="d>113="sref">cmd//a>->/tdata="srefdata ffffffffO href="+code=dMAIN_PRINTK="drivers/scsi/MAIN_PRINTK/a>, hg %d for target %dne" vers/s: aain(): cotatus5forj>s;get vers/d 5380.c#L433" d;"L393" class="line" nams;"L393"><393//11 6       11"drivers/scsi/atari_NCR511"dr>1136sref">ta//a>->/a         refdata         ata ffffffffOg %d for target %dlun vers/d removed from"issue_NCR53CR5380.c#L433" id;"L450" class="line" nams;"L450"><450//1137       11"drivers/scsi/atari_NCR511"dr>113class="sref">lun//a>                 refdata ffffffffffffO href="+code=dHOSTNlass="sref">cmd/HOSTNlL4" i///a>->/a hretmpdrivers/scsi/attmp/a>,-//a>ref="drivers/scdevicedrivers/scsi/atdevicelass-//a>ref="drivers/scisatari_NCR5380.cidL4" i/href="+code=alltmpdrivers/scsi/attmp/a>,-//a>ref="drivers/scdevicedrivers/scsi/atdevicelass-//a>ref="drivers/sclundrivers/scsi/atlunL4" )id;"L450" class="line" nams;"L450"><450//1138       11id /a href="+code=free_a11id >113" class="sref">ta//a>ss="sref        refdata Oseveral scatter-gathec#L459" id;"L459" class="line" nams;"L459"><459//1139       11="drivers/scsi/atari_NCR11="d>11 erge_contiguous_buffers( Scsssssssssssssssssssssssssssssssssssssssss*eREQUEST SENSE cotatuss are issued without taggesL460" id;"L360" class="line" nams;"L360"><36011ntis a free tag and the targessssssssssssssssssssssssssssssssssssssss*eNCR53rge, ev t cm SCSI-II devices becausej><459//1141       11a href="+code=TAG_ALLOC"11a h>11nmerge several scatter-gatherssssssssssssssssssssssssssssssssssssssss*econtrge538sallegiance consr *cm exists forj><459//1142       11"drivers/scsi/atari_NCR511"dr>114s is possible if the scatter........                                * catire uni".L360" id;"L360" class="line" nams;"L360"><360114tming"74" class="line" nams;........                                *#L393" id;"L393" class="line" nams;"L393"><393//1144       11       return;<Hss="srefffffffffffffffffOseveral scatter-gathec# ++roatu: ...a d ><393//1145       11"drivers/scsi/atari_NCR511"dr>114"drivers/scsi/atari_NCR5380.........................                * REQUEST SENSE cotatus are untagges.L360" id;"L360" class="line" nams;"L360"><360114ged command. If the command ........................                *#L393" id;"L393" class="line" nams;"L393"><393//1147       11       for (/a href="+co11   >11n7srefd;"L393" class="line" nams;"L393"><393//1148       11               /a href="11   >114" cla#gtdet;a href="+code=tSUPPORT_TAGSatari_NCR5380.cSUPPORT_TAGSrived;"L393" class="line" nams;"L393"><393//11n9       11               /a href="11   >114tmap_zero" class=" " ss="srefdata            Oef="drivers/sccmd_get_tagatari_NCR5380.ccmd_get_tag/a>, href="+code=alltmpdrivers/scsi/attmp/a>,i///a>->/a hretmpdrivers/scsi/attmp/a>,-//a>ref="drivers/sccmnsatari_NCR5380.ccmusL4" [0] !1"a href="+code=tREQUEST_SENSENOTICE" class="REQUEST_SENSEL4" )id;"L450" class="line" nams;"L450"><450//115        11               /a href="11   >1150lass#4/spad;"L450" class="line" nams;"L450"><450//1151       11       }<TAG_ALL">ta////f">lun//a> ss="srefdata gt;/!, /a href="+codN59"><4_selectdrivers/scsi/atN59"><4_select/a>, href="+code=allinstancedrivers/scsi/atinstance/a>,i///a>->/a hretmpdrivers/scsi/attmp/a>,id;"L450" class="line" nams;"L450"><450//1152       11<hostdata>ta////f">lun//a> ss="srefda href="+code=alltmpdrivers/scsi/attmp/a>,-//a>ref="drivers/sccmnsatari_NCR5380.ccmusL4" [0] =1"a href="+code=dREQUEST_SENSENOTICE" class="REQUEST_SENSEL4" ) ?sN href="+code=dTAG_NONENOTICE" class="TAG_NONElass=:d;"L450" class="line" nams;"L450"><450//1153       11="drivers/scsi/atari_NCR11="d>115" class="sref"sref">hostdata refdata > ss="srefdaN href="+code=dTAG_NEXTdrivers/scsi/atTAG_NEXT/a>,))jid;"L448" class="line" nams;"L448"><448//1154       11"drivers/scsi/atari_NCR511"dr>115=H_NO" class="sref">Hss="srefffffffffffffffff="srefdaN href="+code=dfalcon_dont_re;easeatari_NCR5380.cfalcon_dont_re;easeH_NO--id;"L450" class="line" nams;"L450"><450//1155       11paj class="comment">/* S11paj>115="sref">cmd//a>->/tdata="srefdata ffffffff="srefdaNseveral scatter-gathec# re;ease gt;>s;get did not response! *#L393" id;"L393" class="line" nams;"L393"><393//1156       11"drivers/scsi/atari_NCR511"dr>1156sref">ta//a>->/a         refdata         ata ffffN href="+code=dfalcon_re;ease_lock_if_possibleatari_NCR5380.cfalcon_re;ease_lock_if_possible/a>, href="+code=allhostdamsdrivers/scsi/athostdamslass)id;"L450" class="line" nams;"L450"><450//1157       11"drivers/scsi/atari_NCR511"dr>115class="sref">lun//a>                 refdata ffffffffbreakid;"L450" class="line" nams;"L450"><450//1158       11ss="comment">/*//spaj><<11ss=>115" class="sref">ta//a>ss="sref        refdata } elsejid;"L448" class="line" nams;"L448"><448//1159       11ss="comment"> * Func+ aj11ss=>115tmap_zero" class=" " ss="srefdata                    O href="+code=dlocal_irq_disabledrivers/scsi/atlocal_irq_disable/a>, )id;"L393" class="line" nams;"L393"><393//116        11ss="comment"> *<<11ss=>116 sref">ta//a>->/a                 refdata ffffffffO href="+code=dLISTdrivers/scsi/atLIST/a>, href="+code=alltmpdrivers/scsi/attmp/a>,i///a>->/a hrehostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scissue_NCR53drivers/scsi/atissue_NCR53L4" )id;"L448" class="line" nams;"L448"><448//1161       11ss="comment"> * Purpose:11ss=>116sref">TAG_ALL">ta////f">lun//a> ss="srefdata ffffffffO href="+code=dSET_NEXTdrivers/scsi/atSET_NEXT/a>, href="+code=alltmpdrivers/scsi/attmp/a>,i///a>->/a hrehostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scissue_NCR53drivers/scsi/atissue_NCR53L4" )id;"L448" class="line" nams;"L448"><448//1162       11ss="comment"> *    trans11ss=>116class="sref">hostdata>ta////f">lun//a> ss="srefdata fO href="+code=dhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scissue_NCR53drivers/scsi/atissue_NCR53L4" 51"a href="+code=dtmpdrivers/scsi/attmp/a>,id;"L448" class="line" nams;"L448"><448//1163       11ss="comment"> *         11ss=>11stming#gtdet;a href="+code=tSUPPORT_TAGSatari_NCR5380.cSUPPORT_TAGSrived;"L393" class="line" nams;"L393"><393//1164       11a href="+code=SETUP_HOST11a h>116=H_NO" class="sref">Hss="srefffffffffffffffff="srefdaN href="+code=dcmd_free_tagatari_NCR5380.ccmd_free_tag/a>, href="+code=alltmpdrivers/scsi/attmp/a>,)id;"L393" class="line" nams;"L393"><393//11s5       11"drivers/scsi/atari_NCR511"dr>116"driv#4/spad;"L450" class="line" nams;"L450"><450//1166       11f (/a href="+code=hostda11f (>1166sref">ta//a>->/a         refdata         ata ffffN href="+code=dfalcon_dont_re;easeatari_NCR5380.cfalcon_dont_re;easeH_NO--id;"L450" class="line" nams;"L450"><450//11s7       11       return 1;<116class="sref">lun//a>                 refdata ffffffffO href="+code=dlocal_irq_t stor3drivers/scsi/atlocal_irq_t stor3/a>, href="+code=allflaef="drivers/scsi/flaefL4" )id;"L450" class="line" nams;"L450"><450//1168       11f (!/a href="+code=shoul11f (>116" class="sref">ta//a>ss="sref        refdata ffffffffO href="+code=dMAIN_PRINTK="drivers/scsi/MAIN_PRINTK/a>, hg %d for target %dne" vers/s: aain(): select() failed, 5380.c#L433" d;"L393" class="line" nams;"L393"><393//1169       11   !/a href="+code=setup11   >116tmap_zero" class=" " ss="srefdata                    ata ffffffffOg %d for target %dreturned pajissue_NCR53CR5380.c#L433" i///a>->/a hreHOSTNlass="sref">cmd/HOSTNlL4" )id;"L450" class="line" nams;"L450"><450//117        11       return 0;<117 sref">ta//a>->/a                 refdata ffffffffgt;/, /a href="+codhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scconnectedatari_NCR5380.cconnected/a>,)d;"L450" class="line" nams;"L450"><450//1171       11f (/a href="+code=TagAll11f (>117sref">TAG_ALL">ta////f">lun//a> ss="srefdata ffffffffffffffffbreakid;"L450" class="line" nams;"L450"><450//1172       11   /a href="+code=TagAll11   >117class="sref">hostdata>ta////f">lun//a> ss="sr}d;"L429" class="line" nams;"L429"><429//1173       11       /a href="+code=TA11   >11 " class="sref"sref">h">lun//a> ss="sr}aNseveral scatter-gathec# gt;>s;get/lun/>s;get NCR53 is not busy *#L393" id;"L393" class="line" nams;"L393"><393//1174       11                  /a hre11   >117=H_NO" class="sref">Hss="sref}aNseveral scatter-gathec# forjissue_NCR53H*#L393" id;"L393" class="line" nams;"L393"><393//1175       11       return 1;<117="sref">cmd//a>->/}aNseveral scatter-gathec# gt;(!hostdams-//a>connected)H*#L393" id;"L393" class="line" nams;"L393"><393//1176       11<<393//1177       11eturn 0;<lun//a> gt;/, /a href="+codhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scconnectedatari_NCR5380.cconnected/a>,d;"L393" class="line" nams;"L393"><393//1178       11="drivers/scsi/atari_NCR11="d>117" cla#gtdet;a href="+code=tREAL_DMANOTICE" class="REAL_DMA/a>,d;"L393" class="line" nams;"L393"><393//1179       11"drivers/scsi/atari_NCR511"dr>11 tmap_zero" class=" "     /ampi/ampi>!, /a href="+codhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scdma_lendrivers/scsi/atdma_len/a>,d;"L393" class="line" nams;"L393"><393//118        11"drivers/scsi/atari_NCR511"dr>1180lass#4/spad;"L450" class="line" nams;"L450"><450//1181       11ss="comment">/* Allocate11ss=>11"sref">TAG_ALL">ta////////)jid;"L448" class="line" nams;"L448"><448//1182       11ss="comment"> * must be 11ss=>11"class="sref">hostdatass="srefhref="drivers/slocal_irq_t stor3drivers/scsi/atlocal_irq_t stor3/a>, href="+code=allflaef="drivers/scsi/flaefL4" )id;"L450" class="line" nams;"L450"><450//1183       11ss="comment"> * untagged11ss=>11"" class="sref"sref">hostdata O href="+code=dMAIN_PRINTK="drivers/scsi/MAIN_PRINTK/a>, hg %d for target %dne" vers/s: aain: performrge informa *cm transferCR5380.c#L433" id;"L450" class="line" nams;"L450"><450//1184       11ss="comment"> */<11ss=>118=H_NO" class="sref">Hss="srefffffffffffff//a>->/a hreHOSTNlass="sref">cmd/HOSTNlL4" )id;"L450" class="line" nams;"L450"><450//1185       11"drivers/scsi/atari_NCR511"dr>118="sref">cmd//a>->/tdata="s, /a href="+codN59"><4_informa *cm_transferdrivers/scsi/atN59"><4_informa *cm_transfer/a>, href="+code=allinstancedrivers/scsi/atinstance/a>,)id;"L450" class="line" nams;"L450"><450//1186       11id /a href="+code=cmd_ge11id >1186sref">ta//a>->/a         O href="+code=dMAIN_PRINTK="drivers/scsi/MAIN_PRINTK/a>, hg %d for target %dne" vers/s: aain: done set fals3CR5380.c#L433" i///a>->/a hreHOSTNlass="sref">cmd/HOSTNlL4" )id;"L450" class="line" nams;"L450"><450//1187       11="drivers/scsi/atari_NCR11="d>118class="sref">lun//a>         ref="drivers/scdon3drivers/scsi/atdon3/a>, = t;d;"L429" class="line" nams;"L429"><429//1188       11a href="+code=SETUP_HOST11a h>11"" class="sref">ta//a>}d;"L429" class="line" nams;"L429"><429//1189       11"drivers/scsi/atari_NCR511"dr>11"tmap_zero" cl}ewhile;/!, /a href="+coddon3drivers/scsi/atdon3/a>,)id;"L450" class="line" nams;"L450"><450//119        11spaj class="comment">/* 11spa>119d"sred;"L455" class="line" nams;"L455"><455//1191       11ss="comment">         * 11ss=>119sref">TAG_ALLOseveral scatter-gathec# Bet="d allow;ef=s _af="d_ tar9;aain_runnrgetar9; has beeeraleared, elseL393" id;"L393" class="line" nams;"L393"><393//1192       11ss="comment">         */11ss=>119s is possible if the scatter........  a def="drupt couls believe wetar9;ll pick up ><393//1193       11f (!/a href="+code=shoul11f (>119tming"74" class="line" nams;........  us, bua>wa wontar9;t seejia>anymore here...r*#L393" id;"L393" class="line" nams;"L393"><393//1194       11   !/a href="+code=setup11   >11s=H_NO" class=, /a href="+codaain_runnrge="drivers/scsi/aain_runnrgeL4"  = t;d;"L429" class="line" nams;"L429"><429//1195       11       /a href="+code=cm11   >1195ref">TAG_ALLOref="+code=alllocal_irq_t stor3drivers/scsi/atlocal_irq_t stor3/a>, href="+code=allflaef="drivers/scsi/flaefL4" )id;"L450" class="line" nams;"L450"><450//11s6       11       /a href="+code=ho11   >11s6sref}d;"L429" class="line" nams;"L429"><429//11s7       11       /a href="+code=TA11   >1197srefd;"L393" class="line" nams;"L393"><393//1198       11                  /spaj 11   >11sdrived;"L393" class="line" nams;"L393"><393//1199       11 else {<<393//12>        12>   e {<<459//12>1       12>s="comment">         * 12>s=>120merge several scatter-gather  Funct*cm :")<4_dma_terplete;/ tauct ">cmdHost *instance)L459" id;"L459" class="line" nams;"L459"><459//12>2       12>s="comment">         */12>s=>120s is possible if the scatter#L459" id;"L459" class="line" nams;"L459"><459//12>3       12> (!/a href="+code=shoul12> (>120tming"74" class="line" nams;* Purpose :"Calles bydef="drupt ha dl"dewheerDMA fiuishes //aa phaseL393" id;"L393" class="line" nams;"L393"><393//12>4       12>  !/a href="+code=setup12>  >120/spaj><<3605       12>      /a href="+code=cm12>  >120"drivers/scsi/atari_NCR5380.#L459" id;"L459" class="line" nams;"L459"><459//12>6       12>      /a href="+code=ho12>  >120ged command. If the command * Ifpu=s : instance - ><45L459" id;"L459" class="line" nams;"L459"><459//12>7       12>      /a href="+code=TA12>  >120 is a free tag and the targe#L459" id;"L459" class="line" nams;"L459"><459//12>8       12>                 /spaj 12>  >120drivers/scsi/atari_NCR5380.s*#L393" id;"L393" class="line" nams;"L393"><393//12>9       12>else {<<393//121        12="drivers/scsi/atari_NCR12="d>12="ref"static")<4_dma_terpletedrivers/scsi/atN59"><4_dma_terplete/a>,  tauct TUP_HOSTDATA//a">cmdHostatari_NCR5380.cS>cmdHostref">*href="+code=allinstancedrivers/scsi/atinstance/a>,)d;"L393" class="line" nams;"L393"><393//1211       12"drivers/scsi/atari_NCR512"dr>121sref"id;"L448" class="line" nams;"L448"><448//1212       12"drivers/scsi/atari_NCR512"dr>1212ref">TAG_ALLOref="+code=allSETUP_HOSTDATANOTICE" class="SETUP_HOSTDATA/a>, href="+code=allinstancedrivers/scsi/atinstance/a>,)id;"L450" class="line" nams;"L450"><450//1213       12ss="comment">/* Mark the12ss=>12=" class="srefef= href="+code=alltransferedatari_NCR5380.ctransfered/a>,i///a>->/a hresav3d_damsdrivers/scsi/atsav3d_damsL4"  = ti///a>->/a hreov"drundrivers/scsi/atov"drunL4"  = ti///a>->/a hrecntatari_NCR5380.ccnt/a>,i///a>->/a hretoPIlass="sref">cmd/toPIl/a>,id;"L448" class="line" nams;"L448"><448//12=4       12ss="comment"> * unlock t12ss=>121=H_NO" class=unsigned char **href="+code=alldamsdrivers/scsi/atdamsL4" i///a>->/a hrepdrivers/scsi/atp/a>,id;"L448" class="line" nams;"L448"><448//12=5       12ss="comment"> */<12ss=>121="sref">cmd//volatile;ef=>*href="+code=allcountatari_NCR5380.ccount/a>,id;"L448" class="line" nams;"L448"><448//12=6       12"drivers/scsi/atari_NCR512"dr>12157" id;"L393" class="line" nams;"L393"><393//12=7       12id /a href="+code=cmd_fr12id >121class="sref">gt;/!, /a href="+codhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scconnectedatari_NCR5380.cconnected/a>,) id;"L448" class="line" nams;"L448"><448//12=8       12="drivers/scsi/atari_NCR12="d>121" class="sref">ta//a>//a>->/a hrepKERN_NOTICE" class="sref">KERN_N/a>->/a hreKERN_WARNINGdrivers/scsi/atKERN_WARNING clashg %d for target %dne" vers/s: received eus5ofjDMA ef="drupt with 5380.c#L433" d;"L393" class="line" nams;"L393"><393//12=9       12a href="+code=SETUP_HOST12a h>121tmap_zero" class=" " ss="srehg %d for target %dno connected cmdCR5380.c#L433" i///a>->/a hreHOSTNlass="sref">cmd/HOSTNlL4" )id;"L450" class="line" nams;"L450"><450//122        12"drivers/scsi/atari_NCR512"dr>122 sref">ta//a>->/a return;d;"L429" class="line" nams;"L429"><429//1221       12f (/a href="+code=cmd" c12f (>122sref">TAG_ALL}d;"L429" class="line" nams;"L429"><429//1222       12       /a href="+code=ho12   >122classd;"L429" class="line" nams;"L429"><429//1223       12       /a href="+code=TA12   >12"" class="srefgt;/, /a href="+codams;"Lreas_ov"drunf="drivers/scsi/ams;"Lreas_ov"drunf/a>,) id;"L448" class="line" nams;"L448"><448//12"4       12                  /a hre12   >122=H_NO" class="sref">H//a>->/a hrepdrivers/scsi/atp/a>,51"a href="+code=dhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scconnectedatari_NCR5380.cconnected/a>,-//a>ref="drivers/scSCpdrivers/scsi/atSCp/a>,.//a>->/a hrephaseatari_NCR5380.cphaseL3>,id;"L448" class="line" nams;"L448"><448//1225       12 else if (/a href="+code12 el>122="sref">cmd//a>->/gt;/, /a href="+codpdrivers/scsi/atp/a>,5/ampi>, /a href="+codSR_Ilass="sref">cmd/SR_Il/a>,) id;"L448" class="line" nams;"L448"><448//12"6       12       /a href="+code=pr12   >1226sref">ta//a>->/a         , /a href="+codudelaydrivers/scsi/atudelayKERN_10)id;"L450" class="line" nams;"L450"><450//1227       12              /a href="+12   >122class="sref">lun//a>         gt;/> = 0; /a href="N59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreBUS_AND_STATUS_REGdrivers/scsi/atBUS_AND_STATUS_REG/a>,) /ampid;"L450" class="line" nams;"L450"><450//1228       12 else {<ta//a>ss="sref     _N/a>->/a hreBASR_PHASE_MATCHdrivers/scsi/atBASR_PHASE_MATCH cla|N/a>->/a hreBASR_ACK="drivers/scsi/BASR_ACK/a>,)) ==d;"L450" class="line" nams;"L450"><450//1229       12       /a href="+code=TA12   >122tmap_zero" class=" " ss="srefdata_N/a>->/a hreBASR_PHASE_MATCHdrivers/scsi/atBASR_PHASE_MATCH cla|N/a>->/a hreBASR_ACK="drivers/scsi/BASR_ACK/a>,)) id;"L448" class="line" nams;"L448"><448//123        12       /a href="+code=cl12   >123 sref">ta//a>->/a                 //a>->/a hresav3d_damsdrivers/scsi/atsav3d_damsL4"  =  = 0; /a href="N59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreINPUT_DATA_REGdrivers/scsi/atINPUT_DATA_REGL4" )id;"L450" class="line" nams;"L450"><450//1231       12       /a href="+code=ta12   >123sref">TAG_ALL">ta////f">lun//a> ss="s//a>->/a hreov"drundrivers/scsi/atov"drunL4"  = 1;d;"L429" class="line" nams;"L429"><429//1232       12       /a href="+code=TA12   >123class="sref">hostdata>ta////f">lun//a//a>->/a hreDMA_PRINTK="drivers/scsi/DMA_PRINTK/a>, hg %d for target %dne" vers/s: reas ov"drun ha dl"dCR5380.c#L433" i///a>->/a hreHOSTNlass="sref">cmd/HOSTNlL4" )id;"L450" class="line" nams;"L450"><450//1233       12                  /a hre12   >123" class="sref"sref">hostdata }d;"L429" class="line" nams;"L429"><429//12 4       12<H}d;"L429" class="line" nams;"L429"><429//12 5       12="drivers/scsi/atari_NCR12="d>123="sref">cmd//}d;"L429" class="line" nams;"L429"><429//12 6       12"drivers/scsi/atari_NCR512"dr>12357" id;"L393" class="line" nams;"L393"><393//1237       12"drivers/scsi/atari_NCR512"dr>123class="sref">//a>->/a hreDMA_PRINTK="drivers/scsi/DMA_PRINTK/a>, hg %d for target %dne" vers/s: realjDMA transfer terplete, basr 0xvers/X, sr 0xvers/XCR5380.c#L433" id;"L450" class="line" nams;"L450"><450//1238       12id /a href="+code=free_a12id >123" class="sref">ta//a>ss=//a>->/a hreHOSTNlass="sref">cmd/HOSTNlL4" i///a>->/a hreN59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreBUS_AND_STATUS_REGdrivers/scsi/atBUS_AND_STATUS_REG/a>,)id;"L450" class="line" nams;"L450"><450//1239       12="drivers/scsi/atari_NCR12="d>123tmap_zero" class=" " ss=//a>->/a hreN59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreSTATUS_REGdrivers/scsi/atSTATUS_REG/a>,))id;"L450" class="line" nams;"L450"><450//124        12nt /a href="+code=target12nt >124d"sred;"L455" class="line" nams;"L455"><455//1241       12a href="+code=TAG_ALLOC"12a h>124sref">TAG_ALL()->/a hreN59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreRESET_PARITY_INTERRUPT_REGdrivers/scsi/atRESET_PARITY_INTERRUPT_REGL4" )id;"L450" class="line" nams;"L450"><450//1242       12"drivers/scsi/atari_NCR512"dr>1242ref">TAG_ALLOref="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreMODE_REGdrivers/scsi/atMODE_REGL4" i///a>->/a hreMR_BASENOTICE" class="MR_BASEL4" )id;"L450" class="line" nams;"L450"><450//1243       12f (!/a href="+code=setup12f (>1243ref">TAG_ALLOref="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i///a>->/a hreICR_BASENOTICE" class="ICR_BASEL4" )id;"L450" class="line" nams;"L450"><450//1244       12       return;<<450//1245       12"drivers/scsi/atari_NCR512"dr>1245ref">TAG_ALLOref="+code=alltransferedatari_NCR5380.ctransfered/a>,51"a href="+code=dhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scdma_lendrivers/scsi/atdma_len/a>, -p, /a href="+codN59"><4_dma_residualdrivers/scsi/atN59"><4_dma_residual/a>, href="+code=allinstancedrivers/scsi/atinstance/a>,)id;"L450" class="line" nams;"L450"><450//1246       12or (/a href="+code=targe12or >1246ref">TAG_ALLOref="+code=allhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scdma_lendrivers/scsi/atdma_len/a>, = t;d;"L429" class="line" nams;"L429"><429//1247       12       for (/a href="+co12   >12n7srefd;"L393" class="line" nams;"L393"><393//1248       12               /a href="12   >1248ref">TAG_ALLOref="+code=alldamsdrivers/scsi/atdamsL4" 51" unsigned char **)/ampia href="+code=dhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scconnectedatari_NCR5380.cconnected/a>,-//a>ref="drivers/scSCpdrivers/scsi/atSCp/a>,.//a>->/a hreptrdrivers/scsi/atptrL3>,id;"L448" class="line" nams;"L448"><448//12n9       12               /a href="12   >124tmap_zero" clhref="+code=allcountatari_NCR5380.ccount/a>,51"/ampia href="+code=dhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scconnectedatari_NCR5380.cconnected/a>,-//a>ref="drivers/scSCpdrivers/scsi/atSCp/a>,.//a>->/a hre>,id;"L448" class="line" nams;"L448"><448//125        12               /a href="12   >125 sref">ta//a>*href="+code=alldamsdrivers/scsi/atdamsL4"  +1"a href="+code=dtransferedatari_NCR5380.ctransfered/a>,id;"L448" class="line" nams;"L448"><448//1251       12       }<TAG_ALL*href="+code=allcountatari_NCR5380.ccount/a>, -1"a href="+code=dtransferedatari_NCR5380.ctransfered/a>,id;"L448" class="line" nams;"L448"><448//1252       12<<429//1253       12="drivers/scsi/atari_NCR12="d>125" class="srefgt;/, /a href="+codams;"Lreas_ov"drunf="drivers/scsi/ams;"Lreas_ov"drunf/a>,) id;"L448" class="line" nams;"L448"><448//1254       12"drivers/scsi/atari_NCR512"dr>125=H_NO" class="sref">Hgt;/> = 0; /a href="N59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreSTATUS_REGdrivers/scsi/atSTATUS_REG/a>,)5/ampi>, /a href="+codPHASE_MASK="drivers/scsi/PHASE_MASK/a>,)5=1"a href="+code=dpdrivers/scsi/atp/a>,5/ampi/ampi>(, /a href="+codpdrivers/scsi/atp/a>,5/ampi>, /a href="+codSR_Ilass="sref">cmd/SR_Il/a>,)) id;"L448" class="line" nams;"L448"><448//1255       12paj class="comment">/* S12paj>125="sref">cmd//a>->/tdata="s//a>->/a hrecntatari_NCR5380.ccnt/a>,51"a href="+code=dtoPIlass="sref">cmd/toPIl/a>,51"a href="+code=dams;"Lreas_ov"drunf="drivers/scsi/ams;"Lreas_ov"drunf/a>,id;"L448" class="line" nams;"L448"><448//1256       12"drivers/scsi/atari_NCR512"dr>1256sref">ta//a>->/a         gt;/, /a href="+codov"drundrivers/scsi/atov"drunL4" ) id;"L448" class="line" nams;"L448"><448//1257       12"drivers/scsi/atari_NCR512"dr>125class="sref">lun//a>                 //a>->/a hreDMA_PRINTK="drivers/scsi/DMA_PRINTK/a>, hg %d for target %dGot a defput ov"drun, usrge sav3d byt3CR5380.c#L433" )id;"L450" class="line" nams;"L450"><450//1258       12ss="comment">/*//spaj><<12ss=>125" class="sref">ta//a>ss="sref        *(*href="+code=alldamsdrivers/scsi/atdamsL4" )++51"a href="+code=dsav3d_damsdrivers/scsi/atsav3d_damsL4" id;"L450" class="line" nams;"L450"><450//1259       12ss="comment"> * Func+ aj12ss=>125tmap_zero" class=" " ss="srefdata    (*href="+code=allcountatari_NCR5380.ccount/a>,)--id;"L450" class="line" nams;"L450"><450//126        12ss="comment"> *<<12ss=>126 sref">ta//a>->/a                 //a>->/a hrecntatari_NCR5380.ccnt/a>,--id;"L450" class="line" nams;"L450"><450//1261       12ss="comment"> * Purpose:12ss=>126sref">TAG_ALL">ta////f">lun//a> ss="sa href="+code=dtoPIlass="sref">cmd/toPIl/a>,--id;"L450" class="line" nams;"L450"><450//1262       12ss="comment"> *    trans12ss=>126class="sref">hostdata>ta////f}d;"L429" class="line" nams;"L429"><429//1263       12ss="comment"> *         12ss=>126" class="sref"sref">hostdata O href="+code=dDMA_PRINTK="drivers/scsi/DMA_PRINTK/a>, hg %d for target %dDorge vers/s-byt3 PIl paj0xvers/08lxCR5380.c#L433" i///a>->/a hrecntatari_NCR5380.ccnt/a>,i/(long)*href="+code=alldamsdrivers/scsi/atdamsL4" )id;"L450" class="line" nams;"L450"><450//1264       12a href="+code=SETUP_HOST12a h>126=H_NO" class="sref">Hss="sref = 0; /a href="N59"><4_transfer_piodrivers/scsi/atN59"><4_transfer_pio/a>, href="+code=allinstancedrivers/scsi/atinstance/a>,,"/ampia href="+code=dpdrivers/scsi/atp/a>,,"/ampia href="+code=dcntatari_NCR5380.ccnt/a>,i///a>->/a hredamsdrivers/scsi/atdamsL4" )id;"L450" class="line" nams;"L450"><450//1265       12"drivers/scsi/atari_NCR512"dr>126="sref">cmd//a>->/tdata="s*href="+code=allcountatari_NCR5380.ccount/a>, -1"a href="+code=dtoPIlass="sref">cmd/toPIl/a>,5-p, /a href="+codcntatari_NCR5380.ccnt/a>,id;"L450" class="line" nams;"L450"><450//1266       12f (/a href="+code=hostda12f (>1266sref">ta//a>->/a }d;"L429" class="line" nams;"L429"><429//1267       12       return 1;<126class="sref">}d;"L429" class="line" nams;"L429"><429//1268       12f (!/a href="+code=shoul12f (>126" cla}d;"L429" class="line" nams;"L429"><429//1269       12   !/a href="+code=setup12   >126tmap_#4/spaLOseveral scatter-gathec# REAL_DMAs*#L393" id;"L393" class="line" nams;"L393"><393//127        12       return 0;<127d"sred;"L455" class="line" nams;"L455"><455//1271       12f (/a href="+code=TagAll12f (>127sref"d;"L455" class="line" nams;"L455"><455//1272       12   /a href="+code=TagAll12   >127s is possible if the scattec#L459" id;"L459" class="line" nams;"L459"><459//1273       12       /a href="+code=TA12   >127tming"74" class="line" nams;* Funct*cm :")<4_intr (ef=>irq)L459" id;"L459" class="line" nams;"L459"><459//1274       12                  /a hre12   >127/spaj><<459//1275       12       return 1;<127"drivers/scsi/atari_NCR5380.# Purpose :"ha dl";ef="drupts, reestablishrge I_T_L or I_T_L_Q nexusesL459" id;"L459" class="line" nams;"L459"><459//1276       12<<4_aain()L459" id;"L459" class="line" nams;"L459"><459//1277       12eturn 0;<<360127drivers/scsi/atari_NCR5380.s*L360" id;"L360" class="line" nams;"L360"><360127erge_contiguous_buffers( Scs* Ifpu=s : in=>irq,>irq queu caused ><360128tis a free tag and the targe*L360" id;"L360" class="line" nams;"L360"><360/* Allocate12ss=>128merge several scatter-gather #L393" id;"L393" class="line" nams;"L393"><393//1282       12ss="comment"> * must be 12ss=>128classd;"L429" class="line" nams;"L429"><429//1283       12ss="comment"> * untagged12ss=>12"" clastatic"href="+code=allirqreturn_tatari_NCR5380.cirqreturn_tlass= = 0; /a href="N59"><4_intrdrivers/scsi/atN59"><4_intr/a>, ef= href="+code=allirqatari_NCR5380.cirq/a>,i/)<429//1284       12ss="comment"> */<12ss=>128=H_NOid;"L448" class="line" nams;"L448"><448//1285       12"drivers/scsi/atari_NCR512"dr>128="sref">cmd// tauct TUP_HOSTDATA//a">cmdHostatari_NCR5380.cS>cmdHostref">*href="+code=allinstancedrivers/scsi/atinstance/a>,51"a href="+code=dfirst_instancedrivers/scsi/atfirst_instance/a>,id;"L450" class="line" nams;"L450"><450//1286       12id /a href="+code=cmd_ge12id >1286sref">ta//a>ef= href="+code=alldon3drivers/scsi/atdon3/a>, = 1i/href="+code=allha dl"ddrivers/scsi/atha dl"d/a>, = t;d;"L429" class="line" nams;"L429"><429//1287       12="drivers/scsi/atari_NCR12="d>128class="sref">unsigned char href="+code=allbasrdrivers/scsi/atbasr/a>,id;"L450" class="line" nams;"L450"><450//1288       12a href="+code=SETUP_HOST12a h>128drived;"L393" class="line" nams;"L393"><393//1289       12"drivers/scsi/atari_NCR512"dr>128tmap_zero" clhref="+code=allINT_PRINTK="drivers/scsi/INT_PRINTK/a>, hg %d for target %dne" vers/s: 393"><3>irq qriggeredCR5380.c#L433" i///a>->/a hreHOSTNlass="sref">cmd/HOSTNlL4" )id;"L450" class="line" nams;"L450"><450//129        12spaj class="comment">/* 12spa>129d"sred;"L455" class="line" nams;"L455"><455//1291       12ss="comment">         * 12ss=>129sref">TAG_ALLOseveral scatter-gathec# Look forjpeusrge ef="drupts  #L393" id;"L393" class="line" nams;"L393"><393//1292       12ss="comment">         */12ss=>1292ref">TAG_ALLOref="+code=allbasrdrivers/scsi/atbasr/a>, =  = 0; /a href="N59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreBUS_AND_STATUS_REGdrivers/scsi/atBUS_AND_STATUS_REG/a>,)id;"L450" class="line" nams;"L450"><450//1293       12f (!/a href="+code=shoul12f (>1293ref">TAG_ALLOref="+code=allINT_PRINTK="drivers/scsi/INT_PRINTK/a>, hg %d for target %dne" vers/s: BASR=vers/02xCR5380.c#L433" i///a>->/a hreHOSTNlass="sref">cmd/HOSTNlL4" i///a>->/a hrebasrdrivers/scsi/atbasr/a>,)id;"L450" class="line" nams;"L450"><450//1294       12   !/a href="+code=setup12   >12s=H_NO" class=,several scatter-gathec# dispa ch to appropriate routrge gt;fouus aus don3=0  #L393" id;"L393" class="line" nams;"L393"><393//1295       12       /a href="+code=cm12   >1295ref">TAG_ALLgt;/, /a href="+codbasrdrivers/scsi/atbasr/a>, /ampi>, /a href="+codBASR_IRQdrivers/scsi/atBASR_IRQL4" ) id;"L448" class="line" nams;"L448"><448//12s6       12       /a href="+code=ho12   >1296sref">ta//a>->/a  = 0; /a href="N59_PRINTdrivers/scsi/atN59_PRINTKERN_N/a>->/a hreNDEBUG_INTRdrivers/scsi/atNDEBUG_INTR/a>,)id;"L450" class="line" nams;"L450"><450//1297       12       /a href="+code=TA12   >129class="sref">lun//a> gt;/> = 0; /a href="N59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreSTATUS_REGdrivers/scsi/atSTATUS_REG/a>,)5/ampi>_N/a>->/a hreSR_SELass="sref">cmd/SR_SEL/a>,|N/a>->/a hreSR_Ilass="sref">cmd/SR_Il/a>,)) ==>_N/a>->/a hreSR_SELass="sref">cmd/SR_SEL/a>,|N/a>->/a hreSR_Ilass="sref">cmd/SR_Il/a>,)) id;"L448" class="line" nams;"L448"><448//12s8       12                  /spaj 12   >129" class="sref">ta//a>ss="srefhref="+code=alldon3drivers/scsi/atdon3/a>, = t;d;"L429" class="line" nams;"L429"><429//1299       12 else {<<450//13>        13>   e {<ta//a>->/a         Oref="+code=allINT_PRINTK="drivers/scsi/INT_PRINTK/a>, hg %d for target %dne" vers/s: SEL ef="druptCR5380.c#L433" i///a>->/a hreHOSTNlass="sref">cmd/HOSTNlL4" )id;"L450" class="line" nams;"L450"><450//13>1       13>s="comment">         * 13>s=>130sref">TAG_ALL">ta////f">lun// = 0; /a href="N59"><4_reselectdrivers/scsi/atN59"><4_reselect/a>, href="+code=allinstancedrivers/scsi/atinstance/a>,)id;"L450" class="line" nams;"L450"><450//13>2       13>s="comment">         */13>s=>130class="sref">hostdata>ta////f()->/a hreN59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreRESET_PARITY_INTERRUPT_REGdrivers/scsi/atRESET_PARITY_INTERRUPT_REGL4" )id;"L450" class="line" nams;"L450"><450//13>3       13> (!/a href="+code=shoul13> (>130" class="sref"sref">h} elsejgt;/, /a href="+codbasrdrivers/scsi/atbasr/a>, /ampi>, /a href="+codBASR_PARITY_ERRORdrivers/scsi/atBASR_PARITY_ERRORL4" ) id;"L448" class="line" nams;"L448"><448//13>4       13>  !/a href="+code=setup13>  >130=H_NO" class="sref">Hss="sref = 0; /a href="INT_PRINTK="drivers/scsi/INT_PRINTK/a>, hg %d for target %dne" vers/s: PARITY ef="druptCR5380.c#L433" i///a>->/a hreHOSTNlass="sref">cmd/HOSTNlL4" )id;"L450" class="line" nams;"L450"><450//13>5       13>      /a href="+code=cm13>  >130="sref">cmd//a>->/tdata="s()->/a hreN59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreRESET_PARITY_INTERRUPT_REGdrivers/scsi/atRESET_PARITY_INTERRUPT_REGL4" )id;"L450" class="line" nams;"L450"><450//13>6       13>      /a href="+code=ho13>  >1306sref">ta//a>->/a } elsejgt;/> = 0; /a href="N59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreSTATUS_REGdrivers/scsi/atSTATUS_REG/a>,)5/ampi>, /a href="+codSR_RSTdrivers/scsi/atSR_RST/a>,)5=1"a href="+code=dSR_RSTdrivers/scsi/atSR_RST/a>,)5id;"L448" class="line" nams;"L448"><448//13>7       13>      /a href="+code=TA13>  >130class="sref">lun//a>         ref="drivers/scINT_PRINTK="drivers/scsi/INT_PRINTK/a>, hg %d for target %dne" vers/s: RESET ef="druptCR5380.c#L433" i///a>->/a hreHOSTNlass="sref">cmd/HOSTNlL4" )id;"L450" class="line" nams;"L450"><450//13>8       13>                 /spaj 13>  >130" class="sref">ta//a>ss="sref()->/a hreN59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreRESET_PARITY_INTERRUPT_REGdrivers/scsi/atRESET_PARITY_INTERRUPT_REGL4" )id;"L450" class="line" nams;"L450"><450//13>9       13>else {<<448//131        13="drivers/scsi/atari_NCR13="d>131 sref">ta//a>->/a         Oossible if the scattec#L459" id;"L459" class="line" nams;"L459"><459//1311       13"drivers/scsi/atari_NCR513"dr>131merge several scatter-gatherrrrrrrrrrrrrrrrrrrrrrrrr* The t st of ><459//1312       13"drivers/scsi/atari_NCR513"dr>131s is possible if the scatter........  rrrrrrrrrrrrrr* DMA transferL459" id;"L459" class="line" nams;"L459"><459//1313       13ss="comment">/* Mark the13ss=>131tming"74" class="line" nams;........  rrrrrrrrrrrrrr*#L393" id;"L393" class="line" nams;"L393"><393//13=4       13ss="comment"> * unlock t13ss=>131=H_NOd;"L450" class="line" nams;"L450"><450//13=5       13ss="comment"> */<13ss=>131="sre#it;a href="+code=tdef> *satari_NCR5380.cdef> *sKERN_N/a>->/a hreREAL_DMANOTICE" class="REAL_DMA/a>,)d;"L429" class="line" nams;"L429"><429//13=6       13"drivers/scsi/atari_NCR513"dr>1316sref">ta//a>->/a         ,ossible if the scattec#L459" id;"L459" class="line" nams;"L459"><459//1317       13id /a href="+code=cmd_fr13id >131 is a free tag and the targe........  rrrrrrrrrrrrrr* We shouls only get PHASE MISMATCH aus EOP ef="drupts it;we haveL393" id;"L393" class="line" nams;"L393"><393//13=8       13="drivers/scsi/atari_NCR13="d>131drivers/scsi/atari_NCR5380.s........  rrrrrrrrrrrrrr* DMA enabled, so do a sanity check bases on ><393//13=9       13a href="+code=SETUP_HOST13a h>131erge_contiguous_buffers( Scs........  rrrrrrrrrrrrrr* of ><360132tis a free tag and the targe........  rrrrrrrrrrrrrr*#L393" id;"L393" class="line" nams;"L393"><393//1321       13f (/a href="+code=cmd" c13f (>132sref"d;"L455" class="line" nams;"L455"><455//1322       13       /a href="+code=ho13   >132class="sref">hostdata>ta////fgt;/> = 0; /a href="N59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreMODE_REGdrivers/scsi/atMODE_REGL4" )5/ampi>, /a href="+codMR_DMA_MODEdrivers/scsi/atMR_DMA_MODEL4" )5/ampi/ampid;"L450" class="line" nams;"L450"><450//1323       13       /a href="+code=TA13   >132" class="sref"sref">h">lun//a> ss/> = 0; /a href="basrdrivers/scsi/atbasr/a>, /ampi>, /a href="+codBASR_END_DMA_TRANSFERdrivers/scsi/atBASR_END_DMA_TRANSFERL4" )5||d;"L450" class="line" nams;"L450"><450//1324       13                  /a hre13   >132=H_NO" class="sref">HHHHHHHHHHHHHH!/, /a href="+codbasrdrivers/scsi/atbasr/a>, /ampi>, /a href="+codBASR_PHASE_MATCHdrivers/scsi/atBASR_PHASE_MATCH cla))) id;"L448" class="line" nams;"L448"><448//1325       13 else if (/a href="+code13 el>132="sred;"L448" class="line" nams;"L448"><448//1326       13       /a href="+code=pr13   >1326sref">ta//a>->/a                  = 0; /a href="INT_PRINTK="drivers/scsi/INT_PRINTK/a>, hg %d for target %dne" vers/s: PHASE MISM or EOP ef="druptCR5380.c#L433" i///a>->/a hreHOSTNlass="sref">cmd/HOSTNlL4" )id;"L450" class="line" nams;"L450"><450//1327       13              /a href="+13   >132class="sref">lun//a>                  = 0; /a href="N59"><4_dma_terpletedrivers/scsi/atN59"><4_dma_terplete/a>,  href="+code=allinstancedrivers/scsi/atinstance/a>,5)id;"L450" class="line" nams;"L450"><450//1328       13 else {<ta//a>ss="sref         = 0; /a href="don3drivers/scsi/atdon3/a>, = t;d;"L429" class="line" nams;"L429"><429//1329       13       /a href="+code=TA13   >132tmap_zero" class=" " ss="srefdata     = 0; /a href="ENABLE_IRQdrivers/scsi/atENABLE_IRQKERN_)id;"L450" class="line" nams;"L450"><450//133        13       /a href="+code=cl13   >133 sref">ta//a>->/a         } elsed;"L450" class="line" nams;"L450"><450//1331       13       /a href="+code=ta13   >133sref"#4/spaLOseveral scatter-gathec# REAL_DMAs*#L393" id;"L393" class="line" nams;"L393"><393//1332       13       /a href="+code=TA13   >133class="sref">hostdata>ta////fid;"L448" class="line" nams;"L448"><448//1333       13                  /a hre13   >133tming"74" class="line" namsc# MS: Ignore unknown phaseLmisma ch ef="drupts (caused by EOP ef="drupt)H*#L393" id;"L393" class="line" nams;"L393"><393//13 4       13<HHHHHHHHHHHHHHHHHgt;/, /a href="+codbasrdrivers/scsi/atbasr/a>, /ampi>, /a href="+codBASR_PHASE_MATCHdrivers/scsi/atBASR_PHASE_MATCH cla)d;"L393" class="line" nams;"L393"><393//13 5       13="drivers/scsi/atari_NCR13="d>133="sref">cmd//a>->/tdata="sss="srefdata     = 0; /a href="pKERN_NOTICE" class="sref">KERN_N/a>->/a hreKERN_NOTICEdrivers/scsi/atKERN_NOTICElass= g %d for target %dne" vers/s: unknown ef="drupt, 5380.c#L433" d;"L393" class="line" nams;"L393"><393//13 6       13"drivers/scsi/atari_NCR513"dr>1336sref">ta//a>->/a                 s="srefdata     g %d for target %dBASRj0xvers/x, MRj0xvers/x, SRj0xvers/xCR5380.c#L433" id;"L450" class="line" nams;"L450"><450//1337       13"drivers/scsi/atari_NCR513"dr>133class="sref">lun//a>                 s="srefdata     = 0; /a href="HOSTNlass="sref">cmd/HOSTNlL4" i///a>->/a hrebasrdrivers/scsi/atbasr/a>,i///a>->/a hreN59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreMODE_REGdrivers/scsi/atMODE_REGL4" )id;"L450" class="line" nams;"L450"><450//1338       13id /a href="+code=free_a13id >133" class="sref">ta//a>ss=             s="srefdata     = 0; /a href="N59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreSTATUS_REGdrivers/scsi/atSTATUS_REG/a>,))id;"L450" class="line" nams;"L450"><450//1339       13="drivers/scsi/atari_NCR13="d>133tmap_zero" class=" " ss==============()->/a hreN59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreRESET_PARITY_INTERRUPT_REGdrivers/scsi/atRESET_PARITY_INTERRUPT_REGL4" )id;"L450" class="line" nams;"L450"><450//134        13nt /a href="+code=target13nt >134 sref">ta//a>->/a         }d;"L450" class="line" nams;"L450"><450//1341       13a href="+code=TAG_ALLOC"13a h>134sref">TAG_ALL">ta////}aNseveral scatter-gathec# gt;!(SELECTION5|| PARITY)H*#L393" id;"L393" class="line" nams;"L393"><393//1342       13"drivers/scsi/atari_NCR513"dr>134class="sref">hostdatahref="+code=allha dl"ddrivers/scsi/atha dl"d/a>, = 1;d;"L429" class="line" nams;"L429"><429//1343       13f (!/a href="+code=setup13f (>1343ref">TAG_ALL}aNseveral scatter-gathec# BASRj/ampi>IRQH*#L393" i elsejid;"L448" class="line" nams;"L448"><448//1344       13       return;<H//a>->/a hrepKERN_NOTICE" class="sref">KERN_N/a>->/a hreKERN_NOTICEdrivers/scsi/atKERN_NOTICElass= g %d for target %dne" vers/s: ef="drupt without>IRQHbi8 set ef BASR, 5380.c#L433" d;"L393" class="line" nams;"L393"><393//1345       13"drivers/scsi/atari_NCR513"dr>134="sref">cmd//a>->/tdata=" g %d for target %dBASRj0xvers/X, MRj0xvers/X, SRj0xvers/xCR5380.c#L433" i  = 0; /a href="HOSTNlass="sref">cmd/HOSTNlL4" i///a>->/a hrebasrdrivers/scsi/atbasr/a>,id;"L393" class="line" nams;"L393"><393//1346       13or (/a href="+code=targe13or >1346sref">ta//a>->/a        //a>->/a hreN59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreMODE_REGdrivers/scsi/atMODE_REGL4" )i  = 0; /a href="N59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreSTATUS_REGdrivers/scsi/atSTATUS_REG/a>,))id;"L450" class="line" nams;"L450"><450//1347       13       for (/a href="+co13   >134class="sref">lun//a> ()->/a hreN59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreRESET_PARITY_INTERRUPT_REGdrivers/scsi/atRESET_PARITY_INTERRUPT_REGL4" )id;"L450" class="line" nams;"L450"><450//1348       13               /a href="13   >1348ref">TAG_ALL}d;"L450" class="line" nams;"L450"><450//1349       13               /a href="13   >134tmap_d;"L393" class="line" nams;"L393"><393//135        13               /a href="13   >135 sref">ta//a>gt;/!, /a href="+coddon3drivers/scsi/atdon3/a>,)jid;"L448" class="line" nams;"L448"><448//1351       13       }<TAG_ALL">ta//// = 0; /a href="INT_PRINTK="drivers/scsi/INT_PRINTK/a>, hg %d for target %dne" vers/s: in ef= routrge, callrge aainCR5380.c#L433" i///a>->/a hreHOSTNlass="sref">cmd/HOSTNlL4" )id;"L450" class="line" nams;"L450"><450//1352       13<hostdatahseveral scatter-gathec# Put>a call to N59"><4_aain() on ><393//1353       13="drivers/scsi/atari_NCR13="d>135" class="sref"sref">h//a>->/a hreNCR53_aainass="sref">cmd/NCR53_aainKERN_)id;"L450" class="line" nams;"L450"><450//1354       13"drivers/scsi/atari_NCR513"dr>135=H_NO" class=}d;"L450" class="line" nams;"L450"><450//1355       13paj class="comment">/* S13paj>135="sref">cmd//return/ = 0; /a href="IRQ_RETVALass="sref">cmd/IRQ_RETVALKERN_N/a>->/a hreha dl"ddrivers/scsi/atha dl"d/a>,)id;"L450" class="line" nams;"L450"><450//1356       13"drivers/scsi/atari_NCR513"dr>1356sref}d;"L429" class="line" nams;"L429"><429//1357       13"drivers/scsi/atari_NCR513"dr>1357srefd;"L393" class="line" nams;"L393"><393//1358       13ss="comment">/*//spaj><<13ss=>135" cla#gtdet;a href="+code=tN59"><4_STATSdrivers/scsi/atN59"><4_STATSsrefd;"L393" class="line" nams;"L393"><393//1359       13ss="comment"> * Func+ aj13ss=>135tmap_static")<4_hostdamsdrivers/scsi/atN59"><4_hostdamsKERN*LOref="+code=allhostdamsdrivers/scsi/athostdamslassi///a>->/a hreS>cmdCmnddrivers/scsi/atS>cmdCmnd"sref*href="+code=allcmdatari_NCR5380.ccmsL4" )d;"L429" class="line" nams;"L429"><429//136        13ss="comment"> *<<13ss=>136 srefid;"L448" class="line" nams;"L448"><448//1361       13ss="comment"> * Purpose:13ss=>136sref"# gtdet;a href="+code=tN59"><4_STAT_LIMITdrivers/scsi/atN59"><4_STAT_LIMITsrefd;"L393" class="line" nams;"L393"><393//1362       13ss="comment"> *    trans13ss=>136class="sref">gt;/, /a href="+codne" _bufflendrivers/scsi/atne" _bufflenKERN_N/a>->/a hrecmdatari_NCR5380.ccmsL4" ) //a>;a href="+code=tN59"><4_STAT_LIMITdrivers/scsi/atN59"><4_STAT_LIMITsref)d;"L429" class="line" nams;"L429"><429//1363       13ss="comment"> *         13ss=>136" cla# 4/spad;"L429" class="line" nams;"L429"><429//1364       13a href="+code=SETUP_HOST13a h>136=H_NO" class="sref">Hswitch;/, /a href="+codcmdatari_NCR5380.ccmsL4" -//a>ref="drivers/sccmnddrivers/scsi/atcmnd"sre[0])jid;"L448" class="line" nams;"L448"><448//1365       13"drivers/scsi/atari_NCR513"dr>136="sref">cmd//a>->/caseLref="drivers/scWRITEdrivers/scsi/atWRITE"sre:d;"L448" class="line" nams;"L448"><448//1366       13f (/a href="+code=hostda13f (>1366sref">ta//a>->/a caseLref="drivers/scWRITE_6drivers/scsi/atWRITE_6"sre:d;"L448" class="line" nams;"L448"><448//1367       13       return 1;<136class="sref">lun//a> caseLref="drivers/scWRITE_="drivers/scsi/atWRITE_1 sref:d;"L448" class="line" nams;"L448"><448//1368       13f (!/a href="+code=shoul13f (>136" class="sref">ta//a>ss="srefhref="+code=allhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/sctime_writedrivers/scsi/attime_write"sre[, /a href="+codcmdatari_NCR5380.ccmsL4" -//a>ref="drivers/scdevicedrivers/scsi/atdeviceL4" -//a>ref="drivers/scisatari_NCR5380.cisL4" ] +1"/, /a href="+codjiffief="drivers/scsi/jiffief clas-p, /a href="+codhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/sctimebaseatari_NCR5380.ctimebase/a>,)id;"L450" class="line" nams;"L450"><450//1369       13   !/a href="+code=setup13   >136tmap_zero" class=" " ss="srefhseveral scatter-gathec#hostdams-//a>byt3s_write[cms-//a>device-//a>id] +1"ne" _bufflen(cms);*#L393" id;"L393" class="line" nams;"L393"><393//137        13       return 0;<137 sref">ta//a>->/a         Oref="+code=allhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scpeusrgewNOTICE" class="seusrgewlass--id;"L450" class="line" nams;"L450"><450//1371       13f (/a href="+code=TagAll13f (>137sref">TAG_ALL">ta////f">lun//breakid;"L450" class="line" nams;"L450"><450//1372       13   /a href="+code=TagAll13   >137class="sref">hostdatacaseLref="drivers/scREADNOTICE" class="READsref:d;"L448" class="line" nams;"L448"><448//1373       13       /a href="+code=TA13   >137" class="sref"sref">hcaseLref="drivers/scREAD_6drivers/scsi/atREAD_6sref:d;"L448" class="line" nams;"L448"><448//1374       13                  /a hre13   >137=H_NO" class="sref">HcaseLref="drivers/scREAD_="drivers/scsi/atREAD_="sref:d;"L448" class="line" nams;"L448"><448//1375       13       return 1;<137="sref">cmd//a>->/tdata="s//a>->/a hrehostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/sctime_reasdrivers/scsi/attime_reas"sre[, /a href="+codcmdatari_NCR5380.ccmsL4" -//a>ref="drivers/scdevicedrivers/scsi/atdeviceL4" -//a>ref="drivers/scisatari_NCR5380.cisL4" ] +1"/, /a href="+codjiffief="drivers/scsi/jiffief clas-p, /a href="+codhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/sctimebaseatari_NCR5380.ctimebase/a>,)id;"L450" class="line" nams;"L450"><450//1376       13<ta//a>->/a         ,ossible if the scattec#hostdams-//a>byt3s_reas[cms-//a>device-//a>id] +1"ne" _bufflen(cms);*#L393" id;"L393" class="line" nams;"L393"><393//1377       13eturn 0;<lun//a>         ref="drivers/schostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scpeusrgerdrivers/scsi/atpeusrgerlass--id;"L450" class="line" nams;"L450"><450//1378       13="drivers/scsi/atari_NCR13="d>137" class="sref">ta//a>ss="srefbreakid;"L450" class="line" nams;"L450"><450//1379       13"drivers/scsi/atari_NCR513"dr>137tmap_zero" class=" " }d;"L450" class="line" nams;"L450"><450//138        13"drivers/scsi/atari_NCR513"dr>138tis a}d;"L450" class="line" nams;"L450"><450//1381       13ss="comment">/* Allocate13ss=>138sref"#4/spad;"L450" class="line" nams;"L450"><450//1382       13ss="comment"> * must be 13ss=>138classd;"L429" class="line" nams;"L429"><429//1383       13ss="comment"> * untagged13ss=>138tming"74" class="line" namsc#L393" id;"L393" class="line" nams;"L393"><393//1384       13ss="comment"> */<13ss=>138/spaj><<4_select _ tauct S>cmdHost *instance, S>cmdCmnd *cms,L393" id;"L393" class="line" nams;"L393"><393//1385       13"drivers/scsi/atari_NCR513"dr>138"drivers/scsi/atari_NCR5380.#      ef= tag)c#L433" d;"L393" class="line" nams;"L393"><393//1386       13id /a href="+code=cmd_ge13id >138ged command. If the command *#L433" d;"L393" class="line" nams;"L393"><393//1387       13="drivers/scsi/atari_NCR13="d>138 is a free tag and the targe# Purpose :"establishes I_T_L or I_T_L_Q nexus forjnew or existrgep theans,L393" id;"L393" class="line" nams;"L393"><393//1388       13a href="+code=SETUP_HOST13a h>138drivers/scsi/atari_NCR5380.s*      efclusrge ARBITRATION, SELECTION, tus initial message out>forL393" id;"L393" class="line" nams;"L393"><393//1389       13"drivers/scsi/atari_NCR513"dr>138erge_contiguous_buffers( Scs*      IDENTIFY tus NCR53 messages.L360" id;"L360" class="line" nams;"L360"><360/* 13spa>139tis a free tag and the targe*L360" id;"L360" class="line" nams;"L360"><360         * 13ss=>139merge several scatter-gather  Ifpu=s : instances-pinstantiat*cm of ><3 lass=" on which thisL459" id;"L459" class="line" nams;"L459"><459//1392       13ss="comment">         */13ss=>139s is possible if the scatter*      ms;get lss=s, cmss-pSCSIp theans to execute, tags-pset to TAG_NEXT>forL393" id;"L393" class="line" nams;"L393"><393//1393       13f (!/a href="+code=shoul13f (>139tming"74" class="line" nams;*      new tag, TAG_NONE forjuntagged NCR53rge, o><393//1394       13   !/a href="+code=setup13   >139/spaj><<360139"drivers/scsi/atari_NCR5380.#L360" id;"L360" class="line" nams;"L360"><360139ged command. If the command * Returns : -1>gt;select*cm couls not execute forjsome t ason,L393" id;"L393" class="line" nams;"L393"><393//1397       13       /a href="+code=TA13   >139 is a free tag and the targe#      0>gt;select*cm succeedes or failed because ><393//1398       13                  /spaj 13   >139drivers/scsi/atari_NCR5380.s*      dis not respond.L360" id;"L360" class="line" nams;"L360"><360139erge_contiguous_buffers( Scs*L360" id;"L360" class="line" nams;"L360"><360        14>   e {<<3601       14>s="comment">         * 14>s=>140merge several scatter-gather       If bus busy, trbitrat*cm failed, etc, N59"><4_select() will exitL393" id;"L393" class="line" nams;"L393"><393//14>2       14>s="comment">         */14>s=>140s is possible if the scatter*              with t gis="ds as ><393//14>3       14> (!/a href="+code=shoul14> (>140tming"74" class="line" nams;*              SELECT_ENABLE will be set appropriately, ><3L393" id;"L393" class="line" nams;"L393"><393//14>4       14>  !/a href="+code=setup14>  >140/spaj><<3605       14>      /a href="+code=cm14>  >140"drivers/scsi/atari_NCR5380.#L360" id;"L360" class="line" nams;"L360"><3606       14>      /a href="+code=ho14>  >140ged command. If the command *      If successful : I_T_L or I_T_L_Q nexus will be establishes,L393" id;"L393" class="line" nams;"L393"><393//14>7       14>      /a href="+code=TA14>  >140 is a free tag and the targe#              instance-//a>connected will be set to cms.L360" id;"L360" class="line" nams;"L360"><3608       14>                 /spaj 14>  >140drivers/scsi/atari_NCR5380.s*              SELECT ef="drupt will be disabled.L360" id;"L360" class="line" nams;"L360"><3609       14>else {<<360141tis a free tag and the targe*      If failed (no ta;get) : cms-//a>ne" _don3() will be called, ans tueL393" id;"L393" class="line" nams;"L393"><393//1411       14"drivers/scsi/atari_NCR514"dr>141merge several scatter-gather*              cms-//a>result host byt3 set to DID_BAD_TARGET.L360" id;"L360" class="line" nams;"L360"><360141s is possible if the scatter*#L393" id;"L393" class="line" nams;"L393"><393//1413       14ss="comment">/* Mark the14ss=>141tmingd;"L393" class="line" nams;"L393"><393//1414       14ss="comment"> * unlock t14ss=>141=H_NOstatic"ef= href="+code=allN59"><4_selectdrivers/scsi/atN59"><4_select/a>,  tauct TUP_HOSTDATA//a">cmdHostatari_NCR5380.cS>cmdHostref">*href="+code=allinstancedrivers/scsi/atinstance/a>,i///a>->/a hreS>cmdCmnddrivers/scsi/atS>cmdCmnd"sref*href="+code=allcmdatari_NCR5380.ccmsL4" ,"ef= href="+code=alltagatari_NCR5380.ctagsref)d;"L429" class="line" nams;"L429"><429//14=5       14ss="comment"> */<14ss=>141="sreid;"L448" class="line" nams;"L448"><448//14=6       14"drivers/scsi/atari_NCR514"dr>1416sref">ta//a>//a>->/a hreSETUP_HOSTDATANOTICE" class="SETUP_HOSTDATAKERN_N/a>->/a hreinstancedrivers/scsi/atinstance/a>,)id;"L450" class="line" nams;"L450"><450//1417       14id /a href="+code=cmd_fr14id >141class="sref">unsigned char href="+code=alltmpdrivers/scsi/attmp"sre[3]i///a>->/a hrephasedrivers/scsi/atphase/a>,id;"L450" class="line" nams;"L450"><450//1418       14="drivers/scsi/atari_NCR14="d>1418lass="sref">unsigned char *href="+code=alldamsdrivers/scsi/atdamsL4" id;"L450" class="line" nams;"L450"><450//1419       14a href="+code=SETUP_HOST14a h>141tmap_zero" clef= href="+code=alllendrivers/scsi/atlenKERNid;"L450" class="line" nams;"L450"><450//142        14"drivers/scsi/atari_NCR514"dr>1420lass="sref">unsigned long href="+code=alltimeoutatari_NCR5380.ctimeoutKERNid;"L450" class="line" nams;"L450"><450//1421       14f (/a href="+code=cmd" c14f (>1421lass="sref">unsigned long href="+code=allflagf="drivers/scsi/flagfKERNid;"L450" class="line" nams;"L450"><450//1422       14       /a href="+code=ho14   >142classd;"L429" class="line" nams;"L429"><429//1423       14       /a href="+code=TA14   >1423ref">TAG_ALLOref="+code=allhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/sct start_selectdrivers/scsi/att start_selectref">= t;d;"L429" class="line" nams;"L429"><429//1424       14                  /a hre14   >142=H_NO" class=href="+code=allN59_PRINTdrivers/scsi/atN59_PRINTKERN_N/a>->/a hreNDEBUG_ARBITRATIONdrivers/scsi/atNDEBUG_ARBITRATION/a>,)id;"L450" class="line" nams;"L450"><450//1425       14 else if (/a href="+code14 el>1425H_NO" class=href="+code=allARB_PRINTK="drivers/scsi/ARB_PRINTKKERN_Ng %d for target %dne" vers/s: startrgeptrbitrat*cm,"ed>= vers/sCR5380.c#L433" i  = 0; /a href="HOSTNlass="sref">cmd/HOSTNlL4" id;"L450" class="line" nams;"L450"><450//1426       14       /a href="+code=pr14   >1426sref">ta//a>->/a    N/a>->/a hreinstancedrivers/scsi/atinstance/a>,-//a>ref="drivers/scthis_isatari_NCR5380.cthis_is/a>,)id;"L450" class="line" nams;"L450"><450//1427       14              /a href="+14   >1427srefd;"L393" class="line" nams;"L393"><393//1428       14 else {<<393//1429       14       /a href="+code=TA14   >142erge_contiguous_buffers( Scs........* Set the phaseLbits paj0, o><3 wonver9;t lass= tueL393" id;"L393" class="line" nams;"L393"><393//143        14       /a href="+code=cl14   >143tis a free tag and the targe........* damspbus duarge SELECTION.L360" id;"L360" class="line" nams;"L360"><360143merge several scatter-gatherrrrrrrrr*#L393" id;"L393" class="line" nams;"L393"><393//1432       14       /a href="+code=TA14   >143classd;"L429" class="line" nams;"L429"><429//1433       14                  /a hre14   >1433ref">TAG_ALLOref="+code=alllocal_irq_savedrivers/scsi/atlocal_irq_saveKERN_N/a>->/a hreflagf="drivers/scsi/flagfKERN)id;"L450" class="line" nams;"L450"><450//14 4       14<<448//14 5       14="drivers/scsi/atari_NCR14="d>143="sref">cmd//a>->/Oref="+code=alllocal_irq_t storedrivers/scsi/atlocal_irq_t storeKERN_N/a>->/a hreflagf="drivers/scsi/flagfKERN)id;"L450" class="line" nams;"L450"><450//14 6       14"drivers/scsi/atari_NCR514"dr>1436sref">ta//a>->/a return/-1;d;"L429" class="line" nams;"L429"><429//1437       14"drivers/scsi/atari_NCR514"dr>143class="sref">}d;"L450" class="line" nams;"L450"><450//1438       14id /a href="+code=free_a14id >143" class="srefhref="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreTARGET_COMMAND_REGdrivers/scsi/atTARGET_COMMAND_REGL4" ,"0)id;"L450" class="line" nams;"L450"><450//14 9       14="drivers/scsi/atari_NCR14="d>143tmap_d;"L393" class="line" nams;"L393"><393//144        14nt /a href="+code=target14nt >144 sref">ta//a>"74" class="line" namsc#L393" id;"L393" class="line" nams;"L393"><393//1441       14a href="+code=TAG_ALLOC"14a h>144merge several scatter-gatherrrrrrrrr* Startptrbitrat*cm.L360" id;"L360" class="line" nams;"L360"><360144s is possible if the scatter........*#L393" id;"L393" class="line" nams;"L393"><393//1443       14f (!/a href="+code=setup14f (>144tmingd;"L393" class="line" nams;"L393"><393//1444       14       return;<<4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreOUTPUT_DATA_REGdrivers/scsi/atOUTPUT_DATA_REG/a>,i///a>->/a hrehostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scid_mas_NOTICE" class="id_mas_KERN)id;"L450" class="line" nams;"L450"><450//1445       14"drivers/scsi/atari_NCR514"dr>1445H_NO" class=href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreMODE_REGdrivers/scsi/atMODE_REGL4" i///a>->/a hreMR_ARBITRATEdrivers/scsi/atMR_ARBITRATEKERN)id;"L450" class="line" nams;"L450"><450//1446       14or (/a href="+code=targe14or >1446srefd;"L450" class="line" nams;"L450"><450//1447       14       for (/a href="+co14   >144class="sref">Oref="+code=alllocal_irq_t storedrivers/scsi/atlocal_irq_t storeKERN_N/a>->/a hreflagf="drivers/scsi/flagfKERN)id;"L450" class="line" nams;"L450"><450//1448       14               /a href="14   >144drived;"L393" class="line" nams;"L393"><393//1449       14               /a href="14   >1449sref">ta//a>"74" class="line" namsc# Wait>for trbitrat*cm logic to cerplete.*#L393" id;"L393" class="line" nams;"L393"><393//145        14               /a href="14   >145 sref#it;a href="+code=tdef> *satari_NCR5380.cdef> *sKERN_N/a>->/a hreN59_TIMEOUTdrivers/scsi/atN59_TIMEOUTsref)d;"L429" class="line" nams;"L429"><429//1451       14       }<TAG_ALLid;"L448" class="line" nams;"L448"><448//1452       14<hostdataunsigned long href="+code=alltimeoutatari_NCR5380.ctimeoutKERN =  = 0; /a href="jiffief="drivers/scsi/jiffief clas+ 2*href="+code=allN59_TIMEOUTdrivers/scsi/atN59_TIMEOUTsrefid;"L450" class="line" nams;"L450"><450//1453       14="drivers/scsi/atari_NCR14="d>145tmingd;"L393" class="line" nams;"L393"><393//1454       14"drivers/scsi/atari_NCR514"dr>145=H_NO" class="sref">Hwhile (!/, /a href="+codN59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" ) /ampi>, /a href="+codICR_ARBITRATION_PROGRESSdrivers/scsi/atICR_ARBITRATION_PROGRESSL4" ) /ampi/ampid;"L450" class="line" nams;"L450"><450//1455       14paj class="comment">/* S14paj>145="sref">cmd//a>->/tdata=" ref="+code=alltime_beforedrivers/scsi/attime_beforeKERN_N/a>->/a hrejiffief="drivers/scsi/jiffief clai///a>->/a hretimeoutatari_NCR5380.ctimeoutKERN) /ampi/ampi !, /a href="+codhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scconnectedatari_NCR5380.cconnectedL4" )d;"L450" class="line" nams;"L450"><450//1456       14"drivers/scsi/atari_NCR514"dr>1456sref">ta//a>->/a         id;"L450" class="line" nams;"L450"><450//1457       14"drivers/scsi/atari_NCR514"dr>145class="sref">lun//a> gt;/ ref="+code=alltime_after_eqdrivers/scsi/attime_after_eqKERN_N/a>->/a hrejiffief="drivers/scsi/jiffief clai///a>->/a hretimeoutatari_NCR5380.ctimeoutKERN)) id;"L448" class="line" nams;"L448"><448//1458       14ss="comment">/*//spaj><<14ss=>145" class="sref">ta//a>ss="srefhref="+code=allpKERN_NOTICE" class="sref">KERN_Ng %d for target %dne"  : trbitrat*cm timeout at vers/sCR5380.c#L433" i  = 0; /a href="__LINE__NOTICE" class="__LINE__KERN)id;"L450" class="line" nams;"L450"><450//1459       14ss="comment"> * Func+ aj14ss=>145tmap_zero" class=" " ss="srefhref="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreMODE_REGdrivers/scsi/atMODE_REGL4" i///a>->/a hreMR_BASEdrivers/scsi/atMR_BASEKERN)id;"L450" class="line" nams;"L450"><450//146        14ss="comment"> *<<14ss=>146 sref">ta//a>->/a         Oref="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreSELECT_ENABLE_REGdrivers/scsi/atSELECT_ENABLE_REG/a>,i///a>->/a hrehostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scid_mas_NOTICE" class="id_mas_KERN)id;"L450" class="line" nams;"L450"><450//1461       14ss="comment"> * Purpose:14ss=>146sref">TAG_ALL">ta////f">lun//return/-1;d;"L429" class="line" nams;"L429"><429//1462       14ss="comment"> *    trans14ss=>146class="sref">hostdata}d;"L450" class="line" nams;"L450"><450//1463       14ss="comment"> *         14ss=>1463ref">TAG_ALL}d;"L450" class="line" nams;"L450"><450//1464       14a href="+code=SETUP_HOST14a h>146=H_NO#elsej"74" class="line" namsc# N59_TIMEOUT.*#L393" id;"L393" class="line" nams;"L393"><393//1465       14"drivers/scsi/atari_NCR514"dr>146="sref">cmd//while (!/, /a href="+codN59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" ) /ampi>, /a href="+codICR_ARBITRATION_PROGRESSdrivers/scsi/atICR_ARBITRATION_PROGRESSL4" ) /ampi/ampid;"L450" class="line" nams;"L393"><393//1466       14f (/a href="+code=hostda14f (>1466sref">ta//a>->/a!, /a href="+codhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scconnectedatari_NCR5380.cconnectedL4" )d;"L450" class="line" nams;"L450"><450//1467       14       return 1;<146class="sref">lun//a> id;"L450" class="line" nams;"L393"><393//1468       14f (!/a href="+code=shoul14f (>146" cla#4/spad;"L450" class="line" nams;"L450"><450//1469       14   !/a href="+code=setup14   >146tmap_d;"L393" class="line" nams;"L393"><393//147        14       return 0;<147 sref">ta//a>href="+code=allARB_PRINTK="drivers/scsi/ARB_PRINTKKERN_Ng %d for target %dne" vers/s: trbitrat*cm cerpleteCR5380.c#L433" i///a>->/a hreHOSTNlass="sref">cmd/HOSTNlL4" )id;"L450" class="line" nams;"L450"><450//1471       14f (/a href="+code=TagAll14f (>147sref"d;"L455" class="line" nams;"L455"><455//1472       14   /a href="+code=TagAll14   >147class="sref">gt;/, /a href="+codhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scconnectedatari_NCR5380.cconnectedL4" ) id;"L448" class="line" nams;"L448"><448//1473       14       /a href="+code=TA14   >147" class="sref"sref">hhref="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreMODE_REGdrivers/scsi/atMODE_REGL4" i///a>->/a hreMR_BASEdrivers/scsi/atMR_BASEKERN)id;"L450" class="line" nams;"L450"><450//1474       14                  /a hre14   >147=H_NO" class="sref">Hreturn/-1;d;"L429" class="line" nams;"L429"><429//1475       14       return 1;<147="sref">cmd//}d;"L450" class="line" nams;"L450"><450//1476       14<ta//a>"74" class="line" namsc#L393" id;"L393" class="line" nams;"L393"><393//1477       14eturn 0;<<459//1478       14="drivers/scsi/atari_NCR14="d>147drivers/scsi/atari_NCR5380.s........* no maximum so;we cversafely sleep>for ceil(2.2) usecs pajac_NCRodameL393" id;"L393" class="line" nams;"L393"><393//1479       14"drivers/scsi/atari_NCR514"dr>147erge_contiguous_buffers( Scs........* ><360148tis a free tag and the targe........*L360" id;"L360" class="line" nams;"L360"><360/* Allocate14ss=>148merge several scatter-gatherrrrrrrrr*#L393" id;"L393" class="line" nams;"L393"><393//1482       14ss="comment"> * must be 14ss=>148classd;"L429" class="line" nams;"L429"><429//1483       14ss="comment"> * untagged14ss=>1483ref">TAG_ALLOref="+code=alludelaydrivers/scsi/atudelayKERN_3)id;"L450" class="line" nams;"L450"><450//1484       14ss="comment"> */<14ss=>148=H_NOd;"L450" class="line" nams;"L450"><450//1485       14"drivers/scsi/atari_NCR514"dr>1485sref">ta//a>"74" class="line" namsc# Check for lost trbitrat*cm *#L393" id;"L393" class="line" nams;"L393"><393//1486       14id /a href="+code=cmd_ge14id >1486lass="sref">gt;//, /a href="+codN59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" ) /ampi>, /a href="+codICR_ARBITRATION_LOSTdrivers/scsi/atICR_ARBITRATION_LOSTL4" ) ||d;"L450" class="line" nams;"L450"><450//1487       14="drivers/scsi/atari_NCR14="d>148class="sref">lun//, /a href="+codN59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreCURRENT_SCSI_DATA_REGdrivers/scsi/atCURRENT_SCSI_DATA_REGL4" ) /ampi>, /a href="+codhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scid_higuer_mas_NOTICE" class="id_higuer_mas_L4" ) ||d;"L450" class="line" nams;"L450"><450//1488       14a href="+code=SETUP_HOST14a h>148" class="sref">ta/, /a href="+codN59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" ) /ampi>, /a href="+codICR_ARBITRATION_LOSTdrivers/scsi/atICR_ARBITRATION_LOSTL4" ) ||d;"L450" class="line" nams;"L450"><450//1489       14"drivers/scsi/atari_NCR514"dr>148tmap_zero" class=, /a href="+codhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scconnectedatari_NCR5380.cconnectedL4" ) id;"L448" class="line" nams;"L448"><448//149        14spaj class="comment">/* 14spa>149 sref">ta//a>->/a href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreMODE_REGdrivers/scsi/atMODE_REGL4" i///a>->/a hreMR_BASEdrivers/scsi/atMR_BASEKERN)id;"L450" class="line" nams;"L450"><450//1491       14ss="comment">         * 14ss=>149sref">TAG_ALL">ta//// = 0; /a href="ARB_PRINTK="drivers/scsi/ARB_PRINTKKERN_Ng %d for target %dne" vers/s: lost trbitrat*cm, ded fertrgepMR_ARBITRATECR5380.c#L433" id;"L450" class="line" nams;"L450"><450//1492       14ss="comment">         */14ss=>149class="sref">hostdata>ta////f/// = 0; /a href="HOSTNlass="sref">cmd/HOSTNlL4" )id;"L450" class="line" nams;"L450"><450//1493       14f (!/a href="+code=shoul14f (>149" class="sref"sref">hreturn/-1;d;"L429" class="line" nams;"L429"><429//1494       14   !/a href="+code=setup14   >149=H_NO" class=}d;"L450" class="line" nams;"L450"><450//1495       14       /a href="+code=cm14   >149="sred;"L448" class="line" nams;"L448"><448//1496       14       /a href="+code=ho14   >1496sref">ta//a>"74" class="line" namsc# after/duarge trbitrat*cm, BSY shouls be t ferted.L360" id;"L360" class="line" nams;"L360"><360149 is a free tag and the targeeeeeeeeeeeIBM DPES-31080 V="l*cm S31Q works now *#L393" id;"L393" class="line" nams;"L393"><393//1498       14                  /spaj 14   >149" class="sref"74" class="line" namsc# Tnx to Thomas_Roesch@m2.maus.de forjfiusrge this! (Roman)H*#L393" id;"L393" class="line" nams;"L393"><393//1499       14 else {<ta//a>"ref="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" id;"L450" class="line" nams;"L450"><450//15>        15>   e {<ta//a>->/a       , /a href="+codICR_BASEdrivers/scsi/atICR_BASEsref"|>, /a href="+codICR_ASSERT_SELass="sref">cmd/ICR_ASSERT_SELsref"|>, /a href="+codICR_ASSERT_BSYass="sref">cmd/ICR_ASSERT_BSYL4" )id;"L450" class="line" nams;"L450"><450//15>1       15>s="comment">         * 15>s=>150sref"d;"L455" class="line" nams;"L455"><455//15>2       15>s="comment">         */15>s=>150class="sref">gt;//, /a href="+codN59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" ) /ampi>, /a href="+codICR_ARBITRATION_LOSTdrivers/scsi/atICR_ARBITRATION_LOSTL4" ) ||d;"L450" class="line" nams;"L450"><455//15>3       15> (!/a href="+code=shoul15> (>150" class="sref"sre, /a href="+codhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scconnectedatari_NCR5380.cconnectedL4" ) id;"L448" class="line" nams;"L448"><448//15>4       15>  !/a href="+code=setup15>  >150=H_NO" class="sref">H//a>->/a hreN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreMODE_REGdrivers/scsi/atMODE_REGL4" i///a>->/a hreMR_BASEdrivers/scsi/atMR_BASEKERN)id;"L450" class="line" nams;"L450"><450//15>5       15>      /a href="+code=cm15>  >150="sref">cmd//a>->/Oref="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i , /a href="+codICR_BASEdrivers/scsi/atICR_BASEsref)id;"L450" class="line" nams;"L450"><450//15>6       15>      /a href="+code=ho15>  >1506sref">ta//a>->/a  = 0; /a href="ARB_PRINTK="drivers/scsi/ARB_PRINTKKERN_Ng %d for target %dne" vers/s: lost trbitrat*cm, ded fertrgepICR_ASSERT_SELCR5380.c#L433" id;"L450" class="line" nams;"L450"><450//15>7       15>      /a href="+code=TA15>  >150class="sref">lun//a>             = 0; /a href="HOSTNlass="sref">cmd/HOSTNlL4" )id;"L450" class="line" nams;"L450"><450//15>8       15>                 /spaj 15>  >150" class="sref">ta//a>return/-1;d;"L429" class="line" nams;"L429"><429//15>9       15>else {<ta//a>}d;"L450" class="line" nams;"L450"><450//151        15="drivers/scsi/atari_NCR15="d>151tis ad;"L450" class="line" nams;"L450"><450//1511       15"drivers/scsi/atari_NCR515"dr>1511 class="sref"74" class="line" namsc#L393" id;"L393" class="line" nams;"L393"><393//1512       15"drivers/scsi/atari_NCR515"dr>151s is possible if the scatterrrrrrrrr* Again,pbus clear +pbus settle time is 1.2us, howes=", this isL393" id;"L393" class="line" nams;"L393"><393//1513       15ss="comment">/* Mark the15ss=>151tming"74" class="line" nams;rrrrrrrr* a minimum so;wever9;ll udelay ceil(1.2)L393" id;"L393" class="line" nams;"L393"><393//1514       15ss="comment"> * unlock t15ss=>151/spaj><<393//15=5       15ss="comment"> */<15ss=>151="sred;"L448" class="line" nams;"L448"><448//15=6       15"drivers/scsi/atari_NCR515"dr>1516sref#gtdet;a href="+code=tCONFIG_ATARI_SCSI_TOSHIBA_DELAYass="sref">cmd/CONFIG_ATARI_SCSI_TOSHIBA_DELAY"sred;"L448" class="line" nams;"L448"><448//15=7       15id /a href="+code=cmd_fr15id >151class="sref">"74" class="line" namsc# ++roman: Butjsome ta;gets (see tbove :-) seem to need a bi8 mor3...r*#L393" id;"L393" class="line" nams;"L393"><393//1518       15="drivers/scsi/atari_NCR15="d>151" class="srefhref="+code=alludelaydrivers/scsi/atudelayKERN_15)id;"L450" class="line" nams;"L450"><450//1519       15a href="+code=SETUP_HOST15a h>151tmap_#elsed;"L450" class="line" nams;"L450"><450//152        15"drivers/scsi/atari_NCR515"dr>152 sref">ta//a>href="+code=alludelaydrivers/scsi/atudelayKERN_2)id;"L450" class="line" nams;"L450"><450//1521       15f (/a href="+code=cmd" c15f (>152sref"#4/spad;"L450" class="line" nams;"L450"><450//1522       15       /a href="+code=ho15   >152classd;"L429" class="line" nams;"L429"><429//1523       15       /a href="+code=TA15   >1523ref">TAG_ALLgt;/, /a href="+codhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scconnectedatari_NCR5380.cconnectedL4" ) id;"L448" class="line" nams;"L448"><448//1524       15                  /a hre15   >152=H_NO" class="sref">H//a>->/a hreN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreMODE_REGdrivers/scsi/atMODE_REGL4" i///a>->/a hreMR_BASEdrivers/scsi/atMR_BASEKERN)id;"L450" class="line" nams;"L450"><450//1525       15 else if (/a href="+code15 el>152="sref">cmd//a>->/Oref="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i , /a href="+codICR_BASEdrivers/scsi/atICR_BASEsref)id;"L450" class="line" nams;"L450"><450//1526       15       /a href="+code=pr15   >1526sref">ta//a>->/a return/-1;d;"L429" class="line" nams;"L429"><429//1527       15              /a href="+15   >152class="sref">}d;"L450" class="line" nams;"L450"><450//1528       15 else {<<393//1529       15       /a href="+code=TA15   >1529sref">ta//a>"ref="+code=allARB_PRINTK="drivers/scsi/ARB_PRINTKKERN_Ng %d for target %dne" vers/s: won trbitrat*cmCR5380.c#L433" i///a>->/a hreHOSTNlass="sref">cmd/HOSTNlL4" )id;"L450" class="line" nams;"L450"><450//153        15       /a href="+code=cl15   >153tis ad;"L450" class="line" nams;"L450"><450//1531       15       /a href="+code=ta15   >1531 class="sref"74" class="line" namsc#L393" id;"L393" class="line" nams;"L393"><393//1532       15       /a href="+code=TA15   >153s is possible if the scatterrrrrrrrr* Now tueu we have won trbitrat*cm, start Select*cm process, d fertrgeL393" id;"L393" class="line" nams;"L393"><393//1533       15                  /a hre15   >153tming"74" class="line" nams;rrrrrrrr* ><360153/spaj><<393//15 5       15="drivers/scsi/atari_NCR15="d>153="sred;"L448" class="line" nams;"L448"><448//15 6       15"drivers/scsi/atari_NCR515"dr>1536sref">ta//a>//a>->/a hreN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreOUTPUT_DATA_REGdrivers/scsi/atOUTPUT_DATA_REG/a>,i//, /a href="+codhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scid_mas_NOTICE" class="id_mas_KERN | (1 <<p, /a href="+codcmdatari_NCR5380.ccmsL4" -//a>ref="drivers/scdevicedrivers/scsi/atdeviceL4" -//a>ref="drivers/scisatari_NCR5380.cisL4" )))id;"L450" class="line" nams;"L450"><450//1537       15"drivers/scsi/atari_NCR515"dr>1537srefd;"L393" class="line" nams;"L393"><393//1538       15id /a href="+code=free_a15id >153" class="sref"74" class="line" namsc#L393" id;"L393" class="line" nams;"L393"><393//15 9       15="drivers/scsi/atari_NCR15="d>153erge_contiguous_buffers( Scs........* Raise ATN/while SEL is true before BSY goes falsejfrom trbitrat*cm,L393" id;"L393" class="line" nams;"L393"><393//154        15nt /a href="+code=target15nt >154tis a free tag and the targe........* sincesthis is ><393//1541       15a href="+code=TAG_ALLOC"15a h>154merge several scatter-gatherrrrrrrrr* phaseLir-gdiately after;select*cm.L360" id;"L360" class="line" nams;"L360"><360154s is possible if the scatter........*#L393" id;"L393" class="line" nams;"L393"><393//1543       15f (!/a href="+code=setup15f (>154tmingd;"L393" class="line" nams;"L393"><393//1544       15       return;<<4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i _N/a>->/a hreICR_BASEdrivers/scsi/atICR_BASEsref"|>, /a href="+codICR_ASSERT_BSYass="sref">cmd/ICR_ASSERT_BSYL4"  |d;"L450" class="line" nams;"L450"><455//1545       15"drivers/scsi/atari_NCR515"dr>154="sref">cmd//a>->/tdata=, /a href="+codICR_ASSERT_DATANOTICE" class="ICR_ASSERT_DATAsref"|>, /a href="+codICR_ASSERT_ATNNOTICE" class="ICR_ASSERT_ATNsref"|>, /a href="+codICR_ASSERT_SELass="sref">cmd/ICR_ASSERT_SELsref"))id;"L450" class="line" nams;"L450"><450//1546       15or (/a href="+code=targe15or >1546sref">ta//a>//a>->/a hreN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreMODE_REGdrivers/scsi/atMODE_REGL4" i///a>->/a hreMR_BASEdrivers/scsi/atMR_BASEKERN)id;"L450" class="line" nams;"L450"><450//1547       15       for (/a href="+co15   >1547srefd;"L393" class="line" nams;"L393"><393//1548       15               /a href="15   >154" class="sref"74" class="line" namsc#L393" id;"L393" class="line" nams;"L393"><393//1549       15               /a href="15   >154erge_contiguous_buffers( Scs........* Reselect ef="drupts must be turnes off prior to ><393//155        15               /a href="15   >155tis a free tag and the targe........* o><360155merge several scatter-gatherrrrrrrrr*#L393" id;"L393" class="line" nams;"L393"><393//1552       15<<429//1553       15="drivers/scsi/atari_NCR15="d>1553ref">TAG_ALLgt;/, /a href="+codhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scconnectedatari_NCR5380.cconnectedL4" ) id;"L448" class="line" nams;"L448"><448//1554       15"drivers/scsi/atari_NCR515"dr>155=H_NO" class="sref">Hhref="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i , /a href="+codICR_BASEdrivers/scsi/atICR_BASEsref)id;"L450" class="line" nams;"L450"><450//1555       15paj class="comment">/* S15paj>155="sref">cmd//a>->/return/-1;d;"L429" class="line" nams;"L429"><429//1556       15"drivers/scsi/atari_NCR515"dr>1556sref">ta//a>}d;"L450" class="line" nams;"L450"><450//1557       15"drivers/scsi/atari_NCR515"dr>1557srefd;"L393" class="line" nams;"L393"><393//1558       15ss="comment">/*//spaj><<15ss=>155" class="srefhref="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreSELECT_ENABLE_REGdrivers/scsi/atSELECT_ENABLE_REG/a>,i/0)id;"L450" class="line" nams;"L450"><450//1559       15ss="comment"> * Func+ aj15ss=>155tmap_d;"L393" class="line" nams;"L393"><393//156        15ss="comment"> *<<15ss=>156 sref">ta//a>"74" class="line" namsc#L393" id;"L393" class="line" nams;"L393"><393//1561       15ss="comment"> * Purpose:15ss=>156merge several scatter-gatherrrrrrrrr* T<393//1562       15ss="comment"> *    trans15ss=>156s is possible if the scatterrrrrrrrr* ><360 *         15ss=>156tming"74" class="line" nams;rrrrrrrr*#L393" id;"L393" class="line" nams;"L393"><393//1564       15a href="+code=SETUP_HOST15a h>156=H_NO" class=href="+code=alludelaydrivers/scsi/atudelayKERN_1);">ta//a>"74" class="line" namsc# wingel -- wait two bus deskew delay //a>2*45nsr*#L393" id;"L393" class="line" nams;"L393"><393//1565       15"drivers/scsi/atari_NCR515"dr>156="sred;"L448" class="line" nams;"L448"><448//1566       15f (/a href="+code=hostda15f (>1566sref">ta//a>"74" class="line" namsc# Reset BSY *#L393" id;"L393" class="line" nams;"L393"><393//1567       15       return 1;<156class="sref">href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i _N/a>->/a hreICR_BASEdrivers/scsi/atICR_BASEsref"|>, /a href="+codICR_ASSERT_DATANOTICE" class="ICR_ASSERT_DATAsref"|d;"L393" class="line" nams;"L393"><393//1568       15f (!/a href="+code=shoul15f (>156" class="sref">ta//a>ss="sr, /a href="+codICR_ASSERT_ATNNOTICE" class="ICR_ASSERT_ATNsref"|>, /a href="+codICR_ASSERT_SELass="sref">cmd/ICR_ASSERT_SELsref))id;"L450" class="line" nams;"L450"><450//1569       15   !/a href="+code=setup15   >156tmap_d;"L393" class="line" nams;"L393"><393//157        15       return 0;<157 sref">ta//a>"74" class="line" namsc#L393" id;"L393" class="line" nams;"L393"><393//1571       15f (/a href="+code=TagAll15f (>157merge several scatter-gatherrrrrrrrr* Somethrgepweirs happensrwhen we ceaseLto lass= BSY - looksL393" id;"L393" class="line" nams;"L393"><393//1572       15   /a href="+code=TagAll15   >157s is possible if the scatterrrrrrrrr* like ><393//1573       15       /a href="+code=TA15   >157tming"74" class="line" nams;rrrrrrrr* appropriate propagat*cm delay has expired, ans wever9;ra ctnfusrgeL393" id;"L393" class="line" nams;"L393"><393//1574       15                  /a hre15   >157/spaj><<360157"drivers/scsi/atari_NCR5380.rrrrrrrr*L360" id;"L360" class="line" nams;"L360"><360157ged command. If the command rrrrrrrr* A small delay (><360157 is a free tag and the targe........* unnecessary jump, makrgepit work on my 386-33/TrantorjT128, tueL393" id;"L393" class="line" nams;"L393"><393//1578       15="drivers/scsi/atari_NCR15="d>157drivers/scsi/atari_NCR5380.s........* tighter;ver9;Cver9;j"+co bt aks ans requiressthis) solves ><393//1579       15"drivers/scsi/atari_NCR515"dr>157erge_contiguous_buffers( Scs........* ><393//158        15"drivers/scsi/atari_NCR515"dr>158tis a free tag and the targe........* be t<393//1581       15ss="comment">/* Allocate15ss=>158merge several scatter-gatherrrrrrrrr* work tuere.L360" id;"L360" class="line" nams;"L360"><360 * must be 15ss=>158s is possible if the scatterrrrrrrrr*L360" id;"L360" class="line" nams;"L360"><360 * untagged15ss=>158tming"74" class="line" nams;rrrrrrrr* wingel suggests pueu ><360 */<15ss=>158/spaj><<360158"drivers/scsi/atari_NCR5380.rrrrrrrr*#L393" id;"L393" class="line" nams;"L393"><393//1586       15id /a href="+code=cmd_ge15id >1586srefd;"L450" class="line" nams;"L450"><450//1587       15="drivers/scsi/atari_NCR15="d>158class="sref">href="+code=alludelaydrivers/scsi/atudelayKERN_1);d;"L450" class="line" nams;"L450"><450//1588       15a href="+code=SETUP_HOST15a h>158drived;"L393" class="line" nams;"L393"><393//1589       15"drivers/scsi/atari_NCR515"dr>1589sref">ta//a>"ref="+code=allSEL_PRINTK="drivers/scsi/SEL_PRINTKKERN_Ng %d for target %dne" vers/s: select*ge ts;get vers/sCR5380.c#L433" i  = 0; /a href="HOSTNlass="sref">cmd/HOSTNlL4" ip, /a href="+codcmdatari_NCR5380.ccmsL4" -//a>ref="drivers/scdevicedrivers/scsi/atdeviceL4" -//a>ref="drivers/scisatari_NCR5380.cisL4" );d;"L450" class="line" nams;"L450"><450//159        15spaj class="comment">/* 15spa>159tis ad;"L450" class="line" nams;"L450"><450//1591       15ss="comment">         * 15ss=>1591 class="sref"74" class="line" namsc#L393" id;"L393" class="line" nams;"L393"><393//1592       15ss="comment">         */15ss=>159s is possible if the scatterrrrrrrrr* Tfor t 250 ms timeout for t<393//1593       15f (!/a href="+code=shoul15f (>159tming"74" class="line" nams;rrrrrrrr* select*cm.L360" id;"L360" class="line" nams;"L360"><360159/spaj><<393//1595       15       /a href="+code=cm15   >159="sred;"L448" class="line" nams;"L448"><448//1596       15       /a href="+code=ho15   >1596sref">ta//a>//a>->/a hretimeoutatari_NCR5380.ctimeoutKERN =  = 0; /a href="jiffief="drivers/scsi/jiffief clas+ 25;d;"L450" class="line" nams;"L450"><450//1597       15       /a href="+code=TA15   >1597srefd;"L393" class="line" nams;"L393"><393//1598       15                  /spaj 15   >159" class="sref"74" class="line" namsc#L393" id;"L393" class="line" nams;"L393"><393//1599       15 else {<<393//16>        16>   e {<<393//16>1       16>s="comment">         * 16>s=>160merge several scatter-gatherrrrrrrrr* ans itver9;s detect*ge as true.  Sigh.L360" id;"L360" class="line" nams;"L360"><3602       16>s="comment">         */16>s=>160s is possible if the scatter........*#L393" id;"L393" class="line" nams;"L393"><393//16>3       16> (!/a href="+code=shoul16> (>160tmingd;"L393" class="line" nams;"L393"><393//16>4       16>  !/a href="+code=setup16>  >160=H_NO#it;0d;"L393" class="line" nams;"L393"><393//16>5       16>      /a href="+code=cm16>  >160="sref">cmd//"74" class="line" namsc# ++roman: If t ts;get ctnformed to ><393//16>6       16>      /a href="+code=ho16>  >160ged command. If the command rrrrrrrr* IO/while SEL is true. Butjagain,ptuere ara some disks out ><393//16>7       16>      /a href="+code=TA16>  >160 is a free tag and the targe........* world pueu do pueu nes="tueless. (Somebody tagimed tueu ><393//16>8       16>                 /spaj 16>  >160drivers/scsi/atari_NCR5380.s........* reselect*cm capabilrtypof >est ansL393" id;"L393" class="line" nams;"L393"><393//16>9       16>else {<<393//161        16="drivers/scsi/atari_NCR16="d>161tis a free tag and the targe........*#L393" id;"L393" class="line" nams;"L393"><393//1611       16"drivers/scsi/atari_NCR516"dr>161sref"d;"L455" class="line" nams;"L455"><455//1612       16"drivers/scsi/atari_NCR516"dr>161class="sref">while (//a>->/a hretime_beforedrivers/scsi/attime_beforeKERN_N/a>->/a hrejiffief="drivers/scsi/jiffief clai///a>->/a hretimeoutatari_NCR5380.ctimeoutKERN) /ampi/ampid;"L455" class="line" nams;"L455"><455//1613       16ss="comment">/* Mark the16ss=>161" class="sref"sref">!/, /a href="+codN59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreSTATUS_REGdrivers/scsi/atSTATUS_REGKERN) /ampi (//a>->/a hreSR_BSYass="sref">cmd/SR_BSYsref"|>, /a href="+codSR_Ilass="sref">cmd/SR_IlL4" )))d;"L455" class="line" nams;"L455"><455//1614       16ss="comment"> * unlock t16ss=>161=H_NO" class="sref">Hid;"L455" class="line" nams;"L455"><455//1615       16ss="comment"> */<16ss=>161="sred;"L448" class="line" nams;"L448"><448//16=6       16"drivers/scsi/atari_NCR516"dr>1616lass="sref">gt;//, /a href="+codN59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreSTATUS_REGdrivers/scsi/atSTATUS_REGKERN) /ampi (//a>->/a hreSR_SELass="sref">cmd/SR_SELsref"|>, /a href="+codSR_Ilass="sref">cmd/SR_IlL4" )) == (//a>->/a hreSR_SELass="sref">cmd/SR_SELsref"|>, /a href="+codSR_Ilass="sref">cmd/SR_IlL4" )) id;"L448" class="line" nams;"L448"><448//16=7       16id /a href="+code=cmd_fr16id >161class="sref">lun//a> href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i , /a href="+codICR_BASEdrivers/scsi/atICR_BASEsref)id;"L450" class="line" nams;"L450"><450//1618       16="drivers/scsi/atari_NCR16="d>161" class="sref">ta//a>, /a href="+codN59"><4_reselectdrivers/scsi/atN59"><4_reselectKERN_N/a>->/a hreinstancedrivers/scsi/atinstancesref)id;"L450" class="line" nams;"L450"><450//1619       16a href="+code=SETUP_HOST16a h>161tmap_zero" class=" " N/a>->/a hrepKERN_NOTICE" class="sref">KERN_N/a>->/a hreKERN_ERRNOTICE" class="KERN_ERRmap_zNg %d for target %dne" vers/s: reselect*cm after;won trbitrat*cm?CR5380.c#L433" id;"L450" class="line" nams;"L450"><450//162        16"drivers/scsi/atari_NCR516"dr>162 sref">ta//a>->/a         = 0; /a href="HOSTNlass="sref">cmd/HOSTNlL4" )id;"L450" class="line" nams;"L450"><450//1621       16f (/a href="+code=cmd" c16f (>162sref">TAG_ALL">ta//// = 0; /a href="N59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreSELECT_ENABLE_REGdrivers/scsi/atSELECT_ENABLE_REG/a>,i/, /a href="+codhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scid_mas_NOTICE" class="id_mas_KERN)id;"L450" class="line" nams;"L450"><450//1622       16       /a href="+code=ho16   >162class="sref">hostdatareturn/-1;d;"L429" class="line" nams;"L429"><429//1623       16       /a href="+code=TA16   >1623ref">TAG_ALL}d;"L450" class="line" nams;"L450"><450//1624       16                  /a hre16   >162=H_NO#elsed;"L450" class="line" nams;"L450"><450//1625       16 else if (/a href="+code16 el>162="sref">cmd//while (//a>->/a hretime_beforedrivers/scsi/attime_beforeKERN_N/a>->/a hrejiffief="drivers/scsi/jiffief clai///a>->/a hretimeoutatari_NCR5380.ctimeoutKERN) /ampi/ampi>!/, /a href="+codN59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreSTATUS_REGdrivers/scsi/atSTATUS_REGKERN) /ampi //a>->/a hreSR_BSYass="sref">cmd/SR_BSYsref))d;"L455" class="line" nams;"L455"><455//1626       16       /a href="+code=pr16   >1626sref">ta//a>->/a ;d;"L429" class="line" nams;"L429"><429//1627       16              /a href="+16   >162class#4/spad;"L450" class="line" nams;"L450"><450//1628       16 else {<<393//1629       16       /a href="+code=TA16   >1629sref">ta//a>"74" class="line" namsc#L393" id;"L393" class="line" nams;"L393"><393//163        16       /a href="+code=cl16   >163tis a free tag and the targe........* No less tuen two deskew delays after;t<393//1631       16       /a href="+code=ta16   >163merge several scatter-gatherrrrrrrrr* BSY signaljis true,sit shall release ><393//1632       16       /a href="+code=TA16   >163s is possible if the scatterrrrrrrrr* cuenge >ta//a>->/a                      -wingelKE93" id;"L393" class="line" nams;"L393"><393//1633       16                  /a hre16   >163tming"74" class="line" nams;rrrrrrrr*#L393" id;"L393" class="line" nams;"L393"><393//16 4       16<<450//16 5       16="drivers/scsi/atari_NCR16="d>163="sref">cmd//"ref="+code=alludelaydrivers/scsi/atudelayKERN_1);d;"L450" class="line" nams;"L450"><450//16 6       16"drivers/scsi/atari_NCR516"dr>1636srefd;"L450" class="line" nams;"L450"><450//1637       16"drivers/scsi/atari_NCR516"dr>163class="sref">href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i N/a>->/a hreICR_BASEdrivers/scsi/atICR_BASEsref"|>, /a href="+codICR_ASSERT_ATNNOTICE" class="ICR_ASSERT_ATNsref);d;"L450" class="line" nams;"L450"><450//16 8       16id /a href="+code=free_a16id >163drived;"L393" class="line" nams;"L393"><393//16 9       16="drivers/scsi/atari_NCR16="d>1639sref">ta//a>gt;/!/, /a href="+codN59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreSTATUS_REGdrivers/scsi/atSTATUS_REGKERN) /ampi //a>->/a hreSR_BSYass="sref">cmd/SR_BSYsref)) id;"L448" class="line" nams;"L448"><448//164        16nt /a href="+code=target16nt >164 sref">ta//a>->/a href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i , /a href="+codICR_BASEdrivers/scsi/atICR_BASEsref)id;"L450" class="line" nams;"L450"><450//1641       16a href="+code=TAG_ALLOC"16a h>164sref">TAG_ALL">ta////gt;/, /a href="+codhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scts;gets_presentatari_NCR5380.cts;gets_presentref">/ampi (1 <<p, /a href="+codcmdatari_NCR5380.ccmsL4" -//a>ref="drivers/scdevicedrivers/scsi/atdeviceL4" -//a>ref="drivers/scisatari_NCR5380.cisL4" )) id;"L448" class="line" nams;"L448"><448//1642       16"drivers/scsi/atari_NCR516"dr>164class="sref">hostdata>ta////fN/a>->/a hrepKERN_NOTICE" class="sref">KERN_N/a>->/a hreKERN_ERRNOTICE" class="KERN_ERRmap_zNg %d for target %dne" vers/s: weirsnessCR5380.c#L433" i///a>->/a hreHOSTNlass="sref">cmd/HOSTNlL4" )id;"L450" class="line" nams;"L450"><450//1643       16f (!/a href="+code=setup16f (>164" class="sref"sref">h">ta////gt;/, /a href="+codhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scdestart_selectdrivers/scsi/atdestart_selectL4" )d;"L450" class="line" nams;"L450"><450//1644       16       return;<Hhostdata>ta////fN/a>->/a hrepKERN_NOTICE" class="sref">KERN_N/a>->/a hreKERN_NOTICEdrivers/scsi/atKERN_NOTICEmap_zNg %d for target %d\tdestart selectCR5380.c#L433" )id;"L450" class="line" nams;"L450"><450//1645       16"drivers/scsi/atari_NCR516"dr>164="sref">cmd//a>->/tdata=a href="+code=allN59_PRINTdrivers/scsi/atN59_PRINTKERN_N/a>->/a hreNDEBUG_ANYass="sref">cmd/NDEBUG_ANYL4" )id;"L450" class="line" nams;"L450"><450//1646       16or (/a href="+code=targe16or >1646sref">ta//a>->/a tdata=a href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreSELECT_ENABLE_REGdrivers/scsi/atSELECT_ENABLE_REG/a>,i/, /a href="+codhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scid_mas_NOTICE" class="id_mas_KERN)id;"L450" class="line" nams;"L450"><450//1647       16       for (/a href="+co16   >164class="sref">lun//a>         return/-1;d;"L429" class="line" nams;"L429"><429//1648       16               /a href="16   >164" class="sref">ta//a>}d;"L450" class="line" nams;"L450"><450//1649       16               /a href="16   >164tmap_zero" class=" " N/a>->/a hrecmdatari_NCR5380.ccmsL4" -//a>ref="drivers/scdesultdrivers/scsi/atdesultKERN =  = 0; /a href="DID_BAD_TARGETdrivers/scsi/atDID_BAD_TARGETref">/lt;<p16;d;"L429" class="line" nams;"L429"><429//165        16               /a href="16   >165tis a#gtdet;a href="+code=tN59"><4_STATSdrivers/scsi/atN59"><4_STATSrived;"L393" class="line" nams;"L393"><393//1651       16       }<TAG_ALL">ta//// = 0; /a href="collect_statf="drivers/scsi/collect_statfKERN_N/a>->/a hrehostdamsdrivers/scsi/athostdamslassip, /a href="+codcmdatari_NCR5380.ccmsL4" )id;"L450" class="line" nams;"L450"><450//1652       16<<450//1653       16="drivers/scsi/atari_NCR16="d>1653ref"#gtdet;a href="+code=tSUPPORT_TAGSdrivers/scsi/atSUPPORT_TAGSrived;"L393" class="line" nams;"L393"><393//1654       16"drivers/scsi/atari_NCR516"dr>165=H_NO" class="sref">Hhref="+code=allcms_free_tagatari_NCR5380.ccms_free_tagKERN_N/a>->/a hrecmdatari_NCR5380.ccmsL4" )id;"L450" class="line" nams;"L450"><450//1655       16paj class="comment">/* S16paj>165="sre#4/spad;"L450" class="line" nams;"L450"><450//1656       16"drivers/scsi/atari_NCR516"dr>1656sref">ta//a>->/a  = 0; /a href="cmdatari_NCR5380.ccmsL4" -//a>ref="drivers/scne" _donedrivers/scsi/atne" _doneKERN_N/a>->/a hrecmdatari_NCR5380.ccmsL4" )id;"L450" class="line" nams;"L450"><450//1657       16"drivers/scsi/atari_NCR516"dr>165class="sref">lun//a> href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreSELECT_ENABLE_REGdrivers/scsi/atSELECT_ENABLE_REG/a>,i/, /a href="+codhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scid_mas_NOTICE" class="id_mas_KERN)id;"L450" class="line" nams;"L450"><450//1658       16ss="comment">/*//spaj><<16ss=>165" class="sref">ta//a>, /a href="+codSEL_PRINTK="drivers/scsi/SEL_PRINTKKERN_Ng %d for target %dne" vers/s: ts;get did not respond within 250msCR5380.c#L433" i///a>->/a hreHOSTNlass="sref">cmd/HOSTNlL4" )id;"L450" class="line" nams;"L450"><450//1659       16ss="comment"> * Func+ aj16ss=>165tmap_zero" class=" " N/a>->/a hreN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreSELECT_ENABLE_REGdrivers/scsi/atSELECT_ENABLE_REG/a>,i/, /a href="+codhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scid_mas_NOTICE" class="id_mas_KERN)id;"L450" class="line" nams;"L450"><450//166        16ss="comment"> *<<16ss=>166 sref">ta//a>->/a return/0id;"L450" class="line" nams;"L450"><450//1661       16ss="comment"> * Purpose:16ss=>166sref">TAG_ALL}d;"L450" class="line" nams;"L450"><450//1662       16ss="comment"> *    trans16ss=>166classd;"L429" class="line" nams;"L429"><429//1663       16ss="comment"> *         16ss=>166" class="sref, /a href="+codhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scts;gets_presentatari_NCR5380.cts;gets_presentref">|= (1 <<p, /a href="+codcmdatari_NCR5380.ccmsL4" -//a>ref="drivers/scdevicedrivers/scsi/atdeviceL4" -//a>ref="drivers/scisatari_NCR5380.cisL4" )id;"L450" class="line" nams;"L450"><450//1664       16a href="+code=SETUP_HOST16a h>166=H_NOd;"L450" class="line" nams;"L450"><450//1665       16"drivers/scsi/atari_NCR516"dr>166="sref">cmd//"74" class="line" namsc#L393" id;"L393" class="line" nams;"L393"><393//1666       16f (/a href="+code=hostda16f (>166ged command. If the command rrrrrrrr* Sinceswe followed tua SCSIpspec, ans raised ATN/while SELL393" id;"L393" class="line" nams;"L393"><393//1667       16       return 1;<166 is a free tag and the targe........* was true but before BSY was falsejduarge select*cm,;t<393//1668       16f (!/a href="+code=shoul16f (>166drivers/scsi/atari_NCR5380.s........* transfar phaseLshouls be t MESSAGE OUT phaseLso tueu we cscssens tueL393" id;"L393" class="line" nams;"L393"><393//1669       16   !/a href="+code=setup16   >166erge_contiguous_buffers( Scs........* IDENTIFY message.L360" id;"L360" class="line" nams;"L360"><360167tis a free tag and the targe........*L360" id;"L360" class="line" nams;"L360"><360167merge several scatter-gatherrrrrrrrr* If SCSI-II tsgged queurgepis enabled, we alsossens a SIMPLE_QUEUE_TAGL360" id;"L360" class="line" nams;"L360"><360167s is possible if the scatterrrrrrrrr* message (2 bytes) with a tsg ID tueu we increscat with es="y he sansL393" id;"L393" class="line" nams;"L393"><393//1673       16       /a href="+code=TA16   >167tming"74" class="line" nams;rrrrrrrr* untilsit wraps back to 0.L360" id;"L360" class="line" nams;"L360"><360167/spaj><<360167"drivers/scsi/atari_NCR5380.rrrrrrrr* XXX -sit turns out ><393//1676       16<<360167 is a free tag and the targe........*           some numbar of he sanss ara issued at once.L360" id;"L360" class="line" nams;"L360"><360167drivers/scsi/atari_NCR5380.s........*#L393" id;"L393" class="line" nams;"L393"><393//1679       16"drivers/scsi/atari_NCR516"dr>167tmap_d;"L393" class="line" nams;"L393"><393//168        16"drivers/scsi/atari_NCR516"dr>168 sref">ta//a>"74" class="line" namsc# Wait>for start of REQ/ACK hansshake.*#L393" id;"L393" class="line" nams;"L393"><393//1681       16ss="comment">/* Allocate16ss=>168sref">TAG_ALLwhile (!/, /a href="+codN59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreSTATUS_REGdrivers/scsi/atSTATUS_REGKERN) /ampi //a>->/a hreSR_REQass="sref">cmd/SR_REQsref))d;"L455" class="line" nams;"L455"><455//1682       16ss="comment"> * must be 16ss=>168class="sref">hostdataid;"L450" class="line" nams;"L450"><450//1683       16ss="comment"> * untagged16ss=>168tmingd;"L393" class="line" nams;"L393"><393//1684       16ss="comment"> */<16ss=>168=H_NO" class=href="+code=allSEL_PRINTK="drivers/scsi/SEL_PRINTKKERN_Ng %d for target %dne" vers/s: ts;get vers/s selected, gorgepinto MESSAGE OUT phase.CR5380.c#L433" id;"L450" class="line" nams;"L450"><450//1685       16"drivers/scsi/atari_NCR516"dr>168="sref">cmd//a>->/tda//a>->/a hreHOSTNlass="sref">cmd/HOSTNlL4" ip, /a href="+codcmdatari_NCR5380.ccmsL4" -//a>ref="drivers/scdevicedrivers/scsi/atdeviceL4" -//a>ref="drivers/scisatari_NCR5380.cisL4" );d;"L450" class="line" nams;"L450"><450//1686       16id /a href="+code=cmd_ge16id >1686sref">ta//a>//a>->/a hretmpatari_NCR5380.ctmpsref[0] =  = 0; /a href="IDENTIFYdrivers/scsi/atIDENTIFYKERN_1ip, /a href="+codcmdatari_NCR5380.ccmsL4" -//a>ref="drivers/scdevicedrivers/scsi/atdeviceL4" -//a>ref="drivers/sclundrivers/scsi/atlunL4" );d;"L450" class="line" nams;"L450"><450//1687       16="drivers/scsi/atari_NCR16="d>1687srefd;"L393" class="line" nams;"L393"><393//1688       16a href="+code=SETUP_HOST16a h>168drive#gtdet;a href="+code=tSUPPORT_TAGSdrivers/scsi/atSUPPORT_TAGSrived;"L393" class="line" nams;"L393"><393//1689       16"drivers/scsi/atari_NCR516"dr>1689sref">ta//a>gt;/, /a href="+codcmdatari_NCR5380.ccmsL4" -//a>ref="drivers/sctagatari_NCR5380.ctagKERN !=  = 0; /a href="TAG_NONEdrivers/scsi/atTAG_NONEKERN) id;"L448" class="line" nams;"L448"><448//169        16spaj class="comment">/* 16spa>169 sref">ta//a>->/a href="+code=alltmpatari_NCR5380.ctmpsref[1] =  = 0; /a href="hostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scvert_messagedrivers/scsi/atlert_messageKERN =  = 0; /a href="SIMPLE_QUEUE_TAGdrivers/scsi/atSIMPLE_QUEUE_TAGL3a>;d;"L450" class="line" nams;"L450"><450//1691       16ss="comment">         * 16ss=>169sref">TAG_ALL">ta//// = 0; /a href="tmpatari_NCR5380.ctmpsref[2] =  = 0; /a href="cmdatari_NCR5380.ccmsL4" -//a>ref="drivers/sctagatari_NCR5380.ctagKERN;d;"L450" class="line" nams;"L450"><450//1692       16ss="comment">         */16ss=>169class="sref">hostdataref="drivers/scvendrivers/scsi/atlenKERN = 3;d;"L450" class="line" nams;"L450"><450//1693       16f (!/a href="+code=shoul16f (>1693ref">TAG_ALL} elsed;"L450" class="line" nams;"L450"><450//1694       16   !/a href="+code=setup16   >169=H_NO" class="sref">Hhref="+code=allvendrivers/scsi/atlenKERN = 1;d;"L429" class="line" nams;"L429"><429//1695       16       /a href="+code=cm16   >169="sre#4lsed;"L450" class="line" nams;"L450"><450//1696       16       /a href="+code=ho16   >1696sref">ta//a>//a>->/a hrevendrivers/scsi/atlenKERN = 1;d;"L429" class="line" nams;"L429"><429//1697       16       /a href="+code=TA16   >169class="sref">href="+code=allcmdatari_NCR5380.ccmsL4" -//a>ref="drivers/sctagatari_NCR5380.ctagKERN =/0id;"L450" class="line" nams;"L450"><450//1698       16                  /spaj 16   >169" cla#4/spa>"74" class="line" namsc# SUPPORT_TAGS.*#L393" id;"L393" class="line" nams;"L393"><393//1699       16 else {<<393//17>        17>   e {<ta//a>"74" class="line" namsc# Sens message(s).*#L393" id;"L393" class="line" nams;"L393"><393//17>1       17>s="comment">         * 17>s=>1701lass="sref">href="+code=alldamsdrivers/scsi/atdamslass =  = 0; /a href="tmpatari_NCR5380.ctmpsrefid;"L450" class="line" nams;"L450"><450//17>2       17>s="comment">         */17>s=>1702lass="sref">href="+code=allphaseNOTICE" class="shaseL3ss =  = 0; /a href="PHASE_MSGOUTNOTICE" class="PHASE_MSGOUTsrefid;"L450" class="line" nams;"L450"><450//17>3       17> (!/a href="+code=shoul17> (>170" class="sref, /a href="+codN59"><4_transfar_piodrivers/scsi/atN59"><4_transfar_pioKERN_N/a>->/a hreinstancedrivers/scsi/atinstancesref, /ampihref="+code=allphaseNOTICE" class="shaseL3ss, /ampihref="+code=allvendrivers/scsi/atlenKERN, /ampihref="+code=alldamsdrivers/scsi/atdamslass);d;"L450" class="line" nams;"L450"><450//17>4       17>  !/a href="+code=setup17>  >170=H_NO" class=href="+code=allSEL_PRINTK="drivers/scsi/SEL_PRINTKKERN_Ng %d for target %dne" vers/s: nexus established.CR5380.c#L433" i///a>->/a hreHOSTNlass="sref">cmd/HOSTNlL4" )id;"L450" class="line" nams;"L450"><450//17>5       17>      /a href="+code=cm17>  >170="sref">cmd//"74" class="line" namsc# XXX need to hansle errors uere.*#L393" id;"L393" class="line" nams;"L393"><393//17>6       17>      /a href="+code=ho17>  >1706sref">ta//a>//a>->/a hrehostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scconnectedatari_NCR5380.cconnectedL4"  =  = 0; /a href="cmdatari_NCR5380.ccmsL4" id;"L450" class="line" nams;"L450"><450//17>7       17>      /a href="+code=TA17>  >170 is a#gtndet;a href="+code=tSUPPORT_TAGSdrivers/scsi/atSUPPORT_TAGSrived;"L393" class="line" nams;"L393"><393//17>8       17>                 /spaj 17>  >170" class="srefhref="+code=allhostdamsdrivers/scsi/athostdamslass-//a>ref="drivers/scbusydrivers/scsi/atbusysref[, /a href="+codcmdatari_NCR5380.ccmsL4" -//a>ref="drivers/scdevicedrivers/scsi/atdeviceL4" -//a>ref="drivers/scisatari_NCR5380.cisL4" ]>|= (1 <<p, /a href="+codcmdatari_NCR5380.ccmsL4" -//a>ref="drivers/scdevicedrivers/scsi/atdeviceL4" -//a>ref="drivers/sclundrivers/scsi/atlunL4" );d;"L450" class="line" nams;"L450"><450//17>9       17>else {<<450//171        17="drivers/scsi/atari_NCR17="d>171tis ad;"L450" class="line" nams;"L450"><450//1711       17"drivers/scsi/atari_NCR517"dr>1711lass="sref">href="+code=allefitialize_SCpatari_NCR5380.cefitialize_SCpKERN_N/a>->/a hrecmdatari_NCR5380.ccmsL4" )id;"L450" class="line" nams;"L450"><450//1712       17"drivers/scsi/atari_NCR517"dr>171classd;"L429" class="line" nams;"L429"><429//1713       17ss="comment">/* Mark the17ss=>171" class="srefreturn/0id;"L450" class="line" nams;"L450"><450//1714       17ss="comment"> * unlock t17ss=>171=H_NO}d;"L450" class="line" nams;"L450"><450//1715       17ss="comment"> */<17ss=>171="sred;"L448" class="line" nams;"L448"><448//17=6       17"drivers/scsi/atari_NCR517"dr>171ged command. If the commandc#L393" id;"L393" class="line" nams;"L393"><393//17=7       17id /a href="+code=cmd_fr17id >171 is a free tag and the targe* Funct*cm :pint N59"><4_transfar_pio ( tauct Se" _Host *instance,L393" id;"L393" class="line" nams;"L393"><393//1718       17="drivers/scsi/atari_NCR17="d>171drivers/scsi/atari_NCR5380.s*      unsigned char *shase,pint *count, unsigned char **dams)L393" id;"L393" class="line" nams;"L393"><393//1719       17a href="+code=SETUP_HOST17a h>171erge_contiguous_buffers( Scs#L393" id;"L393" class="line" nams;"L393"><393//172        17"drivers/scsi/atari_NCR517"dr>172tis a free tag and the targe* Purpose :ptransfars dams ef gss=n phaseLusrge polled I/OL393" id;"L393" class="line" nams;"L393"><393//1721       17f (/a href="+code=cmd" c17f (>172merge several scatter-gather#L393" id;"L393" class="line" nams;"L393"><393//1722       17       /a href="+code=ho17   >172s is possible if the scatter* Inputs :pinstance -sinstance of lass=r, *shase -spoef="d toL393" id;"L393" class="line" nams;"L393"><393//1723       17       /a href="+code=TA17   >172tming"74" class="line" nams;*      w<393//1724       17                  /a hre17   >172/spaj><<360172"drivers/scsi/atari_NCR5380.#L393" id;"L393" class="line" nams;"L393"><393//1726       17       /a href="+code=pr17   >172ged command. If the command # Returns : -1rwhen spafarcat shase is ef="ded without >ransfarrrgeL393" id;"L393" class="line" nams;"L393"><393//1727       17              /a href="+17   >172 is a free tag and the targe*      maximum numbar of bytes, 0>gt;all bytes ara >ransfarres or exitL360" id;"L360" class="line" nams;"L360"><360172drivers/scsi/atari_NCR5380.s*      is ef si_N phase.L360" id;"L360" class="line" nams;"L360"><360172erge_contiguous_buffers( Scs#L393" id;"L393" class="line" nams;"L393"><393//173        17       /a href="+code=cl17   >173tis a free tag and the targe*      Also, *shase,p*count, *dams ara mospaied in place.L360" id;"L360" class="line" nams;"L360"><360173merge several scatter-gather#L393" id;"L393" class="line" nams;"L393"><393//1732       17       /a href="+code=TA17   >173s is possible if the scatter# XXX Note :phanslrge for bus free may be useful.L360" id;"L360" class="line" nams;"L360"><360173tming"74" class="line" nams;*#L393" id;"L393" class="line" nams;"L393"><393//17 4       17<<450//17 5       17="drivers/scsi/atari_NCR17="d>173"drivers/scsi/atari_NCR5380c#L393" id;"L393" class="line" nams;"L393"><393//17 6       17"drivers/scsi/atari_NCR517"dr>173ged command. If the command # Note :p><360173 is a free tag and the targe* IS 100vers/ reliable, ans for t<393//17 8       17id /a href="+code=free_a17id >173drivers/scsi/atari_NCR5380.s* counts, we w*ll always do a pseudo DMA or DMA transfar.L360" id;"L360" class="line" nams;"L360"><360173erge_contiguous_buffers( Scs##L393" id;"L393" class="line" nams;"L393"><393//174        17nt /a href="+code=target17nt >174tis ad;"L450" class="line" nams;"L450"><450//1741       17a href="+code=TAG_ALLOC"17a h>174sref"staticpint , /a href="+codN59"><4_transfar_piodrivers/scsi/atN59"><4_transfar_pioKERN_ tauct a href="+code=tSe" _Hostdrivers/scsi/atSe" _Host clas*N/a>->/a hreinstancedrivers/scsi/atinstancesref,d;"L450" class="line" nams;"L450"><450//1742       17"drivers/scsi/atari_NCR517"dr>174class="sref">hostdata>ta////fffffffffunsigned char *href="+code=allphaseNOTICE" class="shaseL3ss, int *ref="drivers/sccountatari_NCR5380.ccountsref,d;"L450" class="line" nams;"L450"><450//1743       17f (!/a href="+code=setup17f (>174" class="sref"sref">h">ta////ffffffffunsigned char **ref="drivers/scdamsdrivers/scsi/atdamslass)d;"L450" class="line" nams;"L450"><450//1744       17       return;<<448//1745       17"drivers/scsi/atari_NCR517"dr>174="sref">cmd//regis="d unsigned char href="+code=allpNOTICE" class="sL4"  = *href="+code=allphaseNOTICE" class="shaseL3ss,  = 0; /a href="tmpatari_NCR5380.ctmpsrefid;"L450" class="line" nams;"L450"><450//1746       17or (/a href="+code=targe17or >1746sref">ta//a>regis="d int , /a href="+codcatari_NCR5380.ccL4"  = *href="+code=allcountatari_NCR5380.ccountsrefid;"L450" class="line" nams;"L450"><450//1747       17       for (/a href="+co17   >174class="sref">regis="d unsigned char *ref="drivers/scddrivers/scsi/atdL4"  = *href="+code=alldamsdrivers/scsi/atdamslassid;"L450" class="line" nams;"L450"><450//1748       17               /a href="17   >174drived;"L393" class="line" nams;"L393"><393//1749       17               /a href="17   >1749sref">ta//a>"74" class="line" namsc#L393" id;"L393" class="line" nams;"L393"><393//175        17               /a href="17   >175tis a free tag and the targe........* T<3 chip w*ll only lass= tua SCSIpbus when tueL393" id;"L393" class="line" nams;"L393"><393//1751       17       }<<393//1752       17<<393//1753       17="drivers/scsi/atari_NCR17="d>175tming"74" class="line" nams;rrrrrrrr*#L393" id;"L393" class="line" nams;"L393"><393//1754       17"drivers/scsi/atari_NCR517"dr>175=H_NOd;"L450" class="line" nams;"L450"><450//1755       17paj class="comment">/* S17paj>175="sref">cmd//"ref="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreTARGET_COMMAND_REGdrivers/scsi/atTARGET_COMMAND_REGL3ss,  = 0; /a href="PHASE_SR_TO_TCRNOTICE" class="PHASE_SR_TO_TCRKERN_N/a>->/a hrepNOTICE" class="sL4" ))id;"L450" class="line" nams;"L450"><450//1756       17"drivers/scsi/atari_NCR517"dr>1756srefd;"L450" class="line" nams;"L450"><450//1757       17"drivers/scsi/atari_NCR517"dr>175class="sref">do id;"L448" class="line" nams;"L448"><448//1758       17ss="comment">/*//spaj><<17ss=>175" class="sref">ta//a>,74" class="line" namsc#L393" id;"L393" class="line" nams;"L393"><393//1759       17ss="comment"> * Func+ aj17ss=>175erge_contiguous_buffers( Scs........rrrrrrrr* Wait>for a fert*cm of REQ, after;whichdtua phaseLbitspw*ll beL393" id;"L393" class="line" nams;"L393"><393//176        17ss="comment"> *<<17ss=>176tis a free tag and the targe........rrrrrrrr* valisL393" id;"L393" class="line" nams;"L393"><393//1761       17ss="comment"> * Purpose:17ss=>176merge several scatter-gatherrrrrrrrrrrrrrrrr*#L393" id;"L393" class="line" nams;"L393"><393//1762       17ss="comment"> *    trans17ss=>176class="sref">hostdatawhile (!/(//a>->/a hretmpatari_NCR5380.ctmpsref =  = 0; /a href="N59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreSTATUS_REGdrivers/scsi/atSTATUS_REGKERN)) /ampi //a>->/a hreSR_REQass="sref">cmd/SR_REQsref))d;"L455" class="line" nams;"L455"><455//1763       17ss="comment"> *         17ss=>176" class="sref"sref">h">ta////id;"L450" class="line" nams;"L450"><450//1764       17a href="+code=SETUP_HOST17a h>176=H_NOd;"L450" class="line" nams;"L450"><450//1765       17"drivers/scsi/atari_NCR517"dr>176="sref">cmd//a>->///a>->/a hreHSH_PRINTK="drivers/scsi/HSH_PRINTKKERN_Ng %d for target %dne" vers/s: REQjdetectesCR5380.c#L433" i  = 0; /a href="HOSTNlass="sref">cmd/HOSTNlL4" )id;"L450" class="line" nams;"L450"><450//1766       17f (/a href="+code=hostda17f (>1766srefd;"L450" class="line" nams;"L450"><450//1767       17       return 1;<176class="sref">lun//a> h74" class="line" namsc# Check>for phaseLmismatch *#L393" id;"L393" class="line" nams;"L393"><393//1768       17f (!/a href="+code=shoul17f (>176" class="sref">ta//a>gt;//, /a href="+codtmpatari_NCR5380.ctmpsref /ampi //a>->/a hrePHASE_MASK="drivers/scsi/PHASE_MASKL4" ) !=  = 0; /a href="pNOTICE" class="sL4" ) id;"L448" class="line" nams;"L448"><448//1769       17   !/a href="+code=setup17   >176tmap_zero" class=" " a>->///a>->/a hrePIO_PRINTK="drivers/scsi/PIO_PRINTKKERN_Ng %d for target %dne" vers/s: phaseLmismatchCR5380.c#L433" i  = 0; /a href="HOSTNlass="sref">cmd/HOSTNlL4" )id;"L450" class="line" nams;"L450"><450//177        17       return 0;<177 sref">ta//a>->/a         href="+code=allN59_PRINT_PHASEdrivers/scsi/atN59_PRINT_PHASEKERN_N/a>->/a hreNDEBUG_PIlass="sref">cmd/NDEBUG_PIlL4" )id;"L450" class="line" nams;"L450"><450//1771       17f (/a href="+code=TagAll17f (>177sref">TAG_ALL">ta////////////breakid;"L450" class="line" nams;"L450"><450//1772       17   /a href="+code=TagAll17   >177class="sref">hostdata}d;"L450" class="line" nams;"L450"><450//1773       17       /a href="+code=TA17   >177tmingd;"L393" class="line" nams;"L393"><393//1774       17                  /a hre17   >177=H_NO" class="sref">Hh74" class="line" namsc# Do actual transfar from SCSIpbus to / from memory *#L393" id;"L393" class="line" nams;"L393"><393//1775       17       return 1;<177="sref">cmd//a>->/gt;/!/, /a href="+codpNOTICE" class="sL4"  /ampi //a>->/a hreSR_Ilass="sref">cmd/SR_IlL4" ))d;"L393" class="line" nams;"L393"><393//1776       17<ta//a>->/a tdata=a href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreOUTPUT_DATA_REGdrivers/scsi/atOUTPUT_DATA_REGL3ss, *ref="drivers/scddrivers/scsi/atdL4" )id;"L450" class="line" nams;"L450"><450//1777       17eturn 0;<lun//a> 4lsed;"L450" class="line" nams;"L450"><450//1778       17="drivers/scsi/atari_NCR17="d>177" class="sref">ta//a>>>>>>>>>*ref="drivers/scddrivers/scsi/atdL4"  =  = 0; /a href="N59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreCURRENT_SCSI_DATA_REGdrivers/scsi/atCURRENT_SCSI_DATA_REGL4" )id;"L450" class="line" nams;"L450"><450//1779       17"drivers/scsi/atari_NCR517"dr>177tmap_d;"L393" class="line" nams;"L393"><393//178        17"drivers/scsi/atari_NCR517"dr>178 sref">ta//a>->/a ++ref="drivers/scddrivers/scsi/atdL4" id;"L450" class="line" nams;"L450"><450//1781       17ss="comment">/* Allocate17ss=>178sref"d;"L455" class="line" nams;"L455"><455//1782       17ss="comment"> * must be 17ss=>178class="sref">hostdata,74" class="line" namsc#L393" id;"L393" class="line" nams;"L393"><393//1783       17ss="comment"> * untagged17ss=>178tming"74" class="line" nams;rrrrrrrr>>>>>>>>* T<393//1784       17ss="comment"> */<17ss=>178/spaj><<393//1785       17"drivers/scsi/atari_NCR517"dr>178"drivers/scsi/atari_NCR5380.rrrrrrrr>>>>>>>>* after;REQjhas been a fertes for t<393//1786       17id /a href="+code=cmd_ge17id >178ged command. If the command rrrrrrrr>>>>>>>>* t<360178 is a free tag and the targe........>>>>>>>>*#L393" id;"L393" class="line" nams;"L393"><393//1788       17a href="+code=SETUP_HOST17a h>178drived;"L393" class="line" nams;"L393"><393//1789       17"drivers/scsi/atari_NCR517"dr>178tmap_zero" class=" " gt;/!/, /a href="+codpNOTICE" class="sL4"  /ampi //a>->/a hreSR_Ilass="sref">cmd/SR_IlL4" )) id;"L448" class="line" nams;"L448"><448//179        17spaj class="comment">/* 17spa>179 sref">ta//a>->/a ass=" " gt;/!//, /a href="+codpNOTICE" class="sL4"  /ampi //a>->/a hreSR_MSGass="sref">cmd/SR_MSGL4" ) /ampi/ampi>, /a href="+codcatari_NCR5380.ccL4"  //a> 1)) id;"L448" class="line" nams;"L448"><448//1791       17ss="comment">         * 17ss=>179sref">TAG_ALL">ta////////////////////href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i N/a>->/a hreICR_BASEdrivers/scsi/atICR_BASEsref"|>, /a href="+codICR_ASSERT_DATAdrivers/scsi/atICR_ASSERT_DATAL4" )id;"L450" class="line" nams;"L450"><450//1792       17ss="comment">         */17ss=>179class="sref">hostdata////////////////href="+code=allN59_PRINTdrivers/scsi/atN59_PRINTKERN_N/a>->/a hreNDEBUG_PIlass="sref">cmd/NDEBUG_PIlL4" )id;"L450" class="line" nams;"L450"><450//1793       17f (!/a href="+code=shoul17f (>179" class="sref"sref">h">ta////ffffffffhref="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i N/a>->/a hreICR_BASEdrivers/scsi/atICR_BASEsref"|d;"L450" class="line" nams;"L450"><450//1794       17   !/a href="+code=setup17   >179=H_NO" class="sref">H="sref"sref">h">ta////ffffffffhref="+code=allICR_ASSERT_DATAdrivers/scsi/atICR_ASSERT_DATAL4" "|>, /a href="+codICR_ASSERT_ACK="drivers/scsi/ICR_ASSERT_ACKL4" )id;"L450" class="line" nams;"L450"><450//1795       17       /a href="+code=cm17   >179="sref">cmd//a>->/tdata=a } else id;"L448" class="line" nams;"L448"><448//1796       17       /a href="+code=ho17   >1796sref">ta//a>->/a tdata=a ffffffffhref="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i N/a>->/a hreICR_BASEdrivers/scsi/atICR_BASEsref"|d;"L450" class="line" nams;"L450"><450//1797       17       /a href="+code=TA17   >179class="sref">lun//a> ="sref"sref">h">ta////ffffffffhref="+code=allICR_ASSERT_DATAdrivers/scsi/atICR_ASSERT_DATAL4" "|>, /a href="+codICR_ASSERT_ATNNOTICE" class="ICR_ASSERT_ATNsref);d;"L450" class="line" nams;"L450"><450//1798       17                  /spaj 17   >179" class="sref">ta//a>>>>>>>>>ffffffffhref="+code=allN59_PRINTdrivers/scsi/atN59_PRINTKERN_N/a>->/a hreNDEBUG_PIlass="sref">cmd/NDEBUG_PIlL4" )id;"L450" class="line" nams;"L450"><450//1799       17 else {<->/ffffffffhref="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i N/a>->/a hreICR_BASEdrivers/scsi/atICR_BASEsref"|d;"L450" class="line" nams;"L450"><450//18>        18>   e {<ta//a>->/a ass=" " ref">h">ta////ffffffffhref="+code=allICR_ASSERT_DATAdrivers/scsi/atICR_ASSERT_DATAL4" "|>, /a href="+codICR_ASSERT_ATNNOTICE" class="ICR_ASSERT_ATNsref"|>, /a href="+codICR_ASSERT_ACK="drivers/scsi/ICR_ASSERT_ACKL4" )id;"L450" class="line" nams;"L450"><450//18>1       18>s="comment">         * 18>s=>180sref">TAG_ALL">ta////////////}d;"L450" class="line" nams;"L450"><450//18>2       18>s="comment">         */18>s=>180class="sref">hostdata} else id;"L448" class="line" nams;"L448"><448//18>3       18> (!/a href="+code=shoul18> (>180" class="sref"sref">h">ta////href="+code=allN59_PRINTdrivers/scsi/atN59_PRINTKERN_N/a>->/a hreNDEBUG_PIlass="sref">cmd/NDEBUG_PIlL4" )id;"L450" class="line" nams;"L450"><450//18>4       18>  !/a href="+code=setup18>  >180=H_NO" class="sref">H="sref"shref="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i N/a>->/a hreICR_BASEdrivers/scsi/atICR_BASEsref"|>, /a href="+codICR_ASSERT_ACK="drivers/scsi/ICR_ASSERT_ACKL4" )id;"L450" class="line" nams;"L450"><450//18>5       18>      /a href="+code=cm18>  >180="sref">cmd//a>->/}d;"L450" class="line" nams;"L450"><450//18>6       18>      /a href="+code=ho18>  >1806srefd;"L450" class="line" nams;"L450"><450//18>7       18>      /a href="+code=TA18>  >180class="sref">lun//a> while ( = 0; /a href="N59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreSTATUS_REGdrivers/scsi/atSTATUS_REGKERN) /ampi //a>->/a hreSR_REQass="sref">cmd/SR_REQsref)d;"L450" class="line" nams;"L450"><450//18>8       18>                 /spaj 18>  >180" class="sref">ta//a>>>>>>>>>id;"L450" class="line" nams;"L450"><450//18>9       18>else {<<393//181        18="drivers/scsi/atari_NCR18="d>181 sref">ta//a>->/a href="+code=allHSH_PRINTK="drivers/scsi/HSH_PRINTKKERN_Ng %d for target %dne" vers/s: req false, hansshake.completeCR5380.c#L433" i  = 0; /a href="HOSTNlass="sref">cmd/HOSTNlL4" )id;"L450" class="line" nams;"L450"><450//1811       18"drivers/scsi/atari_NCR518"dr>181sref"d;"L455" class="line" nams;"L455"><455//1812       18"drivers/scsi/atari_NCR518"dr>181class="sref">hostdata,74" class="line" namsc#L393" id;"L393" class="line" nams;"L393"><393//1813       18ss="comment">/* Mark the18ss=>181tming"74" class="line" nams;rrrrrrrr>>>>>>>>* Wa have ses="alLspecialLcases to considerjduarge REQ/ACK hansshakrge :L393" id;"L393" class="line" nams;"L393"><393//1814       18ss="comment"> * unlock t18ss=>181/spaj><<393//1815       18ss="comment"> */<18ss=>181"drivers/scsi/atari_NCR5380.rrrrrrrr>>>>>>>>*      message.  ATN/mu=t be dropped as ACK is dropped.L360" id;"L360" class="line" nams;"L360"><360181ged command. If the command.rrrrrrrr>>>>>>>>*L360" id;"L360" class="line" nams;"L360"><360181 is a free tag and the targerrrrrrrr>>>>>>>>* 2.  Wa are in a MSGIN shase,pans we ara on t<393//1818       18="drivers/scsi/atari_NCR18="d>181drivers/scsi/atari_NCR5380.srrrrrrrr>>>>>>>>*      message.  Wa mu=t exit with ACK a fertes,Lso tueu t<393//1819       18a href="+code=SETUP_HOST18a h>181erge_contiguous_buffers( Scsrrrrrrrr>>>>>>>>*      code may raise ATN/before dropprge ACK to reject ><360182tis a free tag and the targerrrrrrrr>>>>>>>>*L360" id;"L360" class="line" nams;"L360"><360182merge several scatter-gatherrrrrrrrr>>>>>>>>* 3.  ACK and ATN/ara clear and ><360182s is possible if the scatterrrrrrrrr>>>>>>>>*#L393" id;"L393" class="line" nams;"L393"><393//1823       18       /a href="+code=TA18   >182" class="sref"sref">hgt;/!/, /a href="+codpNOTICE" class="sL4"  ==  = 0; /a href="PHASE_MSGINNOTICE" class="PHASE_MSGINL4"  /ampi/ampi>, /a href="+codcatari_NCR5380.ccL4"  == 1)) id;"L448" class="line" nams;"L448"><448//1824       18                  /a hre18   >182=H_NO" class="sref">H="sref"sgt;/, /a href="+codpNOTICE" class="sL4"  ==  = 0; /a href="PHASE_MSGOUTNOTICE" class="PHASE_MSGOUTsref /ampi/ampi>, /a href="+codcatari_NCR5380.ccL4"  //a> 1)d;"L448" class="line" nams;"L448"><448//1825       18 else if (/a href="+code18 el>182="sref">cmd//a>->/tdata=a         href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i N/a>->/a hreICR_BASEdrivers/scsi/atICR_BASEsref"|>, /a href="+codICR_ASSERT_ATNNOTICE" class="ICR_ASSERT_ATNsref);d;"L450" class="line" nams;"L450"><450//1826       18       /a href="+code=pr18   >1826sref">ta//a>->/a tdata=a 4lsed;"L450" class="line" nams;"L450"><450//1827       18              /a href="+18   >182class="sref">lun//a> ="sref"sref">h">href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i N/a>->/a hreICR_BASEdrivers/scsi/atICR_BASEsref);d;"L450" class="line" nams;"L450"><450//1828       18 else {<ta//a>}d;"L450" class="line" nams;"L450"><450//1829       18       /a href="+code=TA18   >182tmap_zero" cl} while (--, /a href="+codcatari_NCR5380.ccL4" );d;"L450" class="line" nams;"L450"><450//183        18       /a href="+code=cl18   >183tis ad;"L450" class="line" nams;"L450"><450//1831       18       /a href="+code=ta18   >1831lass="sref">href="+code=allPIO_PRINTK="drivers/scsi/PIO_PRINTKKERN_Ng %d for target %dne" vers/s: residual vers/sCR5380.c#L433" i  = 0; /a href="HOSTNlass="sref">cmd/HOSTNlL4" ip, /a href="+codcatari_NCR5380.ccL4" );d;"L450" class="line" nams;"L450"><450//1832       18       /a href="+code=TA18   >183classd;"L429" class="line" nams;"L429"><429//1833       18                  /a hre18   >183" class="sref*href="+code=allcountatari_NCR5380.ccountsref =  = 0; /a href="catari_NCR5380.ccL4" ;d;"L450" class="line" nams;"L450"><450//1834       18<<450//18 5       18="drivers/scsi/atari_NCR18="d>183="sref">cmd//"ref="+code=alltmpatari_NCR5380.ctmpsref =  = 0; /a href="N59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreSTATUS_REGdrivers/scsi/atSTATUS_REGKERN)id;"L450" class="line" nams;"L450"><450//18 6       18"drivers/scsi/atari_NCR518"dr>1836sref">ta//a>/74" class="line" namsc# Tua phaseLreas from ><393//1837       18"drivers/scsi/atari_NCR518"dr>183 is a free tag and the targess="sref* a fertes orsgt;ACK hasnver9;t been released yet. Tua lat="d is t<393//18 8       18id /a href="+code=free_a18id >183drivers/scsi/atari_NCR5380.sss="sref* wever9;re in MSGIN and all wantes bytes have been recess=d.L360" id;"L360" class="line" nams;"L360"><360183erge_contiguous_buffers( Scsss="sref*#L393" id;"L393" class="line" nams;"L393"><393//184        18nt /a href="+code=target18nt >184 sref">ta//a>gt;//, /a href="+codtmpatari_NCR5380.ctmpsref /ampi //a>->/a hreSR_REQass="sref">cmd/SR_REQsref) ||;/, /a href="+codpNOTICE" class="sL4"  ==  = 0; /a href="PHASE_MSGINNOTICE" class="PHASE_MSGINL4"  /ampi/ampi>, /a href="+codcatari_NCR5380.ccL4"  == 0))d;"L393" class="line" nams;"L393"><393//1841       18a href="+code=TAG_ALLOC"18a h>184sref">TAG_ALL">ta////*href="+code=allphaseNOTICE" class="shaseL3ss =  = 0; /a href="tmpatari_NCR5380.ctmpsref /ampi //a>->/a hrePHASE_MASK="drivers/scsi/PHASE_MASKL4" id;"L450" class="line" nams;"L450"><450//1842       18"drivers/scsi/atari_NCR518"dr>184class="sref">4lsed;"L450" class="line" nams;"L450"><450//1843       18f (!/a href="+code=setup18f (>184" class="sref"sref">h*href="+code=allphaseNOTICE" class="shaseL3ss =  = 0; /a href="PHASE_UNKNOWNNOTICE" class="PHASE_UNKNOWNL4" id;"L450" class="line" nams;"L450"><450//1844       18       return;<<450//1845       18"drivers/scsi/atari_NCR518"dr>184="sref">cmd//gt;/!, /a href="+codcatari_NCR5380.ccL4"  ||;/*href="+code=allphaseNOTICE" class="shaseL3ss ==  = 0; /a href="pNOTICE" class="sL4" ))d;"L393" class="line" nams;"L393"><393//1846       18or (/a href="+code=targe18or >1846sref">ta//a>->/a return/0id;"L450" class="line" nams;"L450"><450//1847       18       for (/a href="+co18   >184class="sref">4lsed;"L450" class="line" nams;"L450"><450//1848       18               /a href="18   >184" class="sref">ta//a>return/-1;d;"L429" class="line" nams;"L429"><429//1849       18               /a href="18   >1849sref}d;"L450" class="line" nams;"L450"><450//185        18               /a href="18   >185tis ad;"L450" class="line" nams;"L450"><450//1851       18       }<<393//1852       18<<393//1853       18="drivers/scsi/atari_NCR18="d>185tming"74" class="line" nams;#L393" id;"L393" class="line" nams;"L393"><393//1854       18"drivers/scsi/atari_NCR518"dr>185/spaj><<393//1855       18paj class="comment">/* S18paj>185"drivers/scsi/atari_NCR5380.#ta//a>calles from a routomm whichd./scdrop into aL393" id;"L393" class="line" nams;"L393"><393//1856       18"drivers/scsi/atari_NCR518"dr>185ged command. If the command #L393" id;"L393" class="line" nams;"L393"><393//1857       18"drivers/scsi/atari_NCR518"dr>185 is a free tag and the targe* Returns : 0 on success, -1ron failure.L360" id;"L360" class="line" nams;"L360"><360/*//spaj><<18ss=>185drivers/scsi/atari_NCR5380.s*#L393" id;"L393" class="line" nams;"L393"><393//1859       18ss="comment"> * Func+ aj18ss=>185tmap_d;"L393" class="line" nams;"L393"><393//186        18ss="comment"> *<<18ss=>186tis astaticpint , /a href="+coddo_abortdrivers/scsi/atdo_abortKERN_ tauct a href="+code=tSe" _Hostdrivers/scsi/atSe" _Host clas*N/a>->/a hrehostdrivers/scsi/athost cla)d;"L393" class="line" nams;"L393"><393//1861       18ss="comment"> * Purpose:18ss=>186mergeid;"L448" class="line" nams;"L448"><448//1862       18ss="comment"> *    trans18ss=>186class="sref">unsigned char href="+code=alltmpatari_NCR5380.ctmpsref, *ref="drivers/scmsgptratari_NCR5380.cmsgptrL4" ip, /a href="+codphaseNOTICE" class="shaseL3ss;d;"L429" class="line" nams;"L429"><429//1863       18ss="comment"> *         18ss=>186" class="srefint , /a href="+codvendrivers/scsi/atlenKERN;d;"L429" class="line" nams;"L429"><429//1864       18a href="+code=SETUP_HOST18a h>186=H_NOd;"L450" class="line" nams;"L450"><450//1865       18"drivers/scsi/atari_NCR518"dr>186="sref">cmd///74" class="line" namsc# Request message out phaseL*#L393" id;"L393" class="line" nams;"L393"><393//1866       18f (/a href="+code=hostda18f (>1866sref">ta//a>//a>->/a hreN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i N/a>->/a hreICR_BASEdrivers/scsi/atICR_BASEsref"|>, /a href="+codICR_ASSERT_ATNNOTICE" class="ICR_ASSERT_ATNsref);d;"L450" class="line" nams;"L450"><450//1867       18       return 1;<1867srefd;"L393" class="line" nams;"L393"><393//1868       18f (!/a href="+code=shoul18f (>186" class="sref several scatter-gathec#L393" id;"L393" class="line" nams;"L393"><393//1869       18   !/a href="+code=setup18   >186erge_contiguous_buffers( Scsss="sref* Wait>for ><393//187        18       return 0;<187tis a free tag and the targe........* REQ.  Once ><393//1871       18f (/a href="+code=TagAll18f (>187merge several scatter-gatherrrrrrrrr* and ./scir-gdiately send ><393//1872       18   /a href="+code=TagAll18   >187s is possible if the scatterrrrrrrrr* o><360187tming"74" class="line" nams;rrrrrrrr*L360" id;"L360" class="line" nams;"L360"><360187/spaj><<360187"drivers/scsi/atari_NCR5380.rrrrrrrr* ><360187ged command. If the command.rrrrrrrr*#L393" id;"L393" class="line" nams;"L393"><393//1877       18eturn 0;<<393//1878       18="drivers/scsi/atari_NCR18="d>187" class="srefwhile (!/(//a>->/a hretmpatari_NCR5380.ctmpsref =  = 0; /a href="N59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreSTATUS_REGdrivers/scsi/atSTATUS_REGKERN)) /ampi //a>->/a hreSR_REQass="sref">cmd/SR_REQsref))d;"L455" class="line" nams;"L455"><393//1879       18"drivers/scsi/atari_NCR518"dr>187tmap_zero" class=" " ;d;"L450" class="line" nams;"L450"><450//188        18"drivers/scsi/atari_NCR518"dr>188tis ad;"L450" class="line" nams;"L450"><450//1881       18ss="comment">/* Allocate18ss=>1881lass="sref">href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreTARGET_COMMAND_REGdrivers/scsi/atTARGET_COMMAND_REGL3ss,  = 0; /a href="PHASE_SR_TO_TCRNOTICE" class="PHASE_SR_TO_TCRKERN_N/a>->/a hretmpatari_NCR5380.ctmpsref))id;"L450" class="line" nams;"L450"><450//1882       18ss="comment"> * must be 18ss=>188classd;"L429" class="line" nams;"L429"><429//1883       18ss="comment"> * untagged18ss=>188" class="srefit;//, /a href="+codtmpatari_NCR5380.ctmpsref /ampi //a>->/a hrePHASE_MASK="drivers/scsi/PHASE_MASKL4" ) !=  = 0; /a href="PHASE_MSGOUTNOTICE" class="PHASE_MSGOUTsref) id;"L448" class="line" nams;"L448"><448//1884       18ss="comment"> */<18ss=>188=H_NO" class="sref">Hh/a>->/a hreN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i N/a>->/a hreICR_BASEdrivers/scsi/atICR_BASEsref"|>, /a href="+codICR_ASSERT_ATNNOTICE" class="ICR_ASSERT_ATNsref"|d;"L450" class="line" nams;"L450"><450//1885       18"drivers/scsi/atari_NCR518"dr>188="sref">cmd//a>->/tdata=a       , /a href="+codICR_ASSERT_ACK="drivers/scsi/ICR_ASSERT_ACKL4" )id;"L450" class="line" nams;"L450"><450//1886       18id /a href="+code=cmd_ge18id >1886sref">ta//a>->/a while ( = 0; /a href="N59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreSTATUS_REGdrivers/scsi/atSTATUS_REGKERN) /ampi //a>->/a hreSR_REQass="sref">cmd/SR_REQsref)d;"L450" class="line" nams;"L450"><450//1887       18="drivers/scsi/atari_NCR18="d>188class="sref">lun//a> ="sref"sid;"L450" class="line" nams;"L450"><450//1888       18a href="+code=SETUP_HOST18a h>188" class="sref">ta//a>,/a>->/a hreN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i N/a>->/a hreICR_BASEdrivers/scsi/atICR_BASEsref"|>, /a href="+codICR_ASSERT_ATNNOTICE" class="ICR_ASSERT_ATNsref)id;"L450" class="line" nams;"L450"><450//1889       18"drivers/scsi/atari_NCR518"dr>188tmap_zero" cl}d;"L450" class="line" nams;"L450"><450//189        18spaj class="comment">/* 18spa>189tis ad;"L450" class="line" nams;"L450"><450//1891       18ss="comment">         * 18ss=>1891lass="sref">href="+code=alltmpatari_NCR5380.ctmpsref =  = 0; /a href="ABORTatari_NCR5380.cABORTKERN;d;"L429" class="line" nams;"L429"><429//1892       18ss="comment">         */18ss=>189class="sref">ref="drivers/scmsgptratari_NCR5380.cmsgptrL4"  = /ampihref="+code=alltmpatari_NCR5380.ctmpsref;d;"L429" class="line" nams;"L429"><429//1893       18f (!/a href="+code=shoul18f (>189" class="sref, /a href="+codvendrivers/scsi/atlenKERN = 1;d;"L429" class="line" nams;"L429"><429//1894       18   !/a href="+code=setup18   >189=H_NO" class=href="+code=allphaseNOTICE" class="shaseL3ss =  = 0; /a href="PHASE_MSGOUTNOTICE" class="PHASE_MSGOUTsref;d;"L429" class="line" nams;"L429"><429//1895       18       /a href="+code=cm18   >189="sref">cmd//"ref="+code=allN59"><4_transfar_piodrivers/scsi/atN59"><4_transfar_pioKERN_N/a>->/a hrehostdrivers/scsi/athost cla, /ampihref="+code=allphaseNOTICE" class="shaseL3ss, /ampihref="+code=allvendrivers/scsi/atlenKERN, /ampihref="+code=allmsgptratari_NCR5380.cmsgptrL4" )id;"L450" class="line" nams;"L450"><450//1896       18       /a href="+code=ho18   >1896srefd;"L450" class="line" nams;"L450"><450//1897       18       /a href="+code=TA18   >189class="sref"> several scatter-gathec#L393" id;"L393" class="line" nams;"L393"><393//1898       18                  /spaj 18   >189drivers/scsi/atari_NCR5380.sss="sref* If we got uere, and ><393//1899       18 else {<o go into bus free state.L360" id;"L360" class="line" nams;"L360"><360        19>   e {<<393//19>1       19>s="comment">         * 19>s=>190sref"d;"L455" class="line" nams;"L455"><455//19>2       19>s="comment">         */19>s=>190class="sref">return/, /a href="+codvendrivers/scsi/atlenKERN ? -1r:/0id;"L450" class="line" nams;"L450"><450//19>3       19> (!/a href="+code=shoul19> (>190" cla}d;"L450" class="line" nams;"L450"><450//19>4       19>  !/a href="+code=setup19>  >190=H_NOd;"L450" class="line" nams;"L450"><450//19>5       19>      /a href="+code=cm19>  >190="sre#it;, /a href="+coddefef=ddrivers/scsi/atdefef=dKERN_N/a>->/a hreREAL_DMAdrivers/scsi/atREAL_DMAsref)d;"L450" class="line" nams;"L450"><450//19>6       19>      /a href="+code=ho19>  >190ged command. If the commandc#L393" id;"L393" class="line" nams;"L393"><393//19>7       19>      /a href="+code=TA19>  >190 is a free tag and the targe* Funct*cm :pint N59"><4_transfar_dma _ tauct Se" _Host *instance,L393" id;"L393" class="line" nams;"L393"><393//19>8       19>                 /spaj 19>  >190drivers/scsi/atari_NCR5380.s*      unsigned char *shase,pint *count, unsigned char **dams)L393" id;"L393" class="line" nams;"L393"><393//19>9       19>else {<<393//191        19="drivers/scsi/atari_NCR19="d>191tis a free tag and the targe* Purpose :ptransfars dams in gss=n;phaseLusrge ei><393//1911       19"drivers/scsi/atari_NCR519"dr>191merge several scatter-gather#      or pseudo DMA.L360" id;"L360" class="line" nams;"L360"><360191s is possible if the scatter*L360" id;"L360" class="line" nams;"L360"><360/* Mark the19ss=>191tming"74" class="line" nams;* Inputs :pinstance -pinstance of lass=r, *shase -ppointer;toL360" id;"L360" class="line" nams;"L360"><360 * unlock t19ss=>191/spaj><<393//1915       19ss="comment"> */<19ss=>191"drivers/scsi/atari_NCR5380.*gt;/a bytes to transfar, **dams -ppointer;to dams pointer.L360" id;"L360" class="line" nams;"L360"><360191ged command. If the command.*L360" id;"L360" class="line" nams;"L360"><360191 is a free tag and the targe* Returns : -1rwhen diffar ta phaseLis entered without >ransfarr*geL393" id;"L393" class="line" nams;"L393"><393//1918       19="drivers/scsi/atari_NCR19="d>191drivers/scsi/atari_NCR5380.s*      maximum number;of bytes, 0fit;all bytes or >ransfarres orsexitL393" id;"L393" class="line" nams;"L393"><393//1919       19a href="+code=SETUP_HOST19a h>191erge_contiguous_buffers( Scs*      is in sP_H phase.L360" id;"L360" class="line" nams;"L360"><360192tis a free tag and the targe*L360" id;"L360" class="line" nams;"L360"><360192merge several scatter-gather*      Also, *shase,p*count, *dams ara modified in place.L360" id;"L360" class="line" nams;"L360"><360192s is possible if the scatter*L360" id;"L360" class="line" nams;"L360"><360192tming"74" class="line" nams;*#L393" id;"L393" class="line" nams;"L393"><393//1924       19                  /a hre19   >192=H_NOd;"L450" class="line" nams;"L450"><450//1925       19 else if (/a href="+code19 el>192="sred;"L450" class="line" nams;"L450"><450//1926       19       /a href="+code=pr19   >1926srefstaticpint , /a href="+codN59"><4_transfar_dmadrivers/scsi/atN59"><4_transfar_dmaKERN_ tauct a href="+code=tSe" _Hostdrivers/scsi/atSe" _Host clas*N/a>->/a hreinstancedrivers/scsi/atinstanceKERN,d;"L450" class="line" nams;"L450"><450//1927       19              /a href="+19   >192class="sref">lun//a> ="sref"sref">h">unsigned char *ref="drivers/scphaseNOTICE" class="shaseL3ss, int *ref="drivers/sccountatari_NCR5380.ccountsref,d;"L450" class="line" nams;"L450"><450//1928       19 else {<ta//a>="sref"sref">h">unsigned char **href="+code=alldamsdrivers/scsi/atdamslass)d;"L450" class="line" nams;"L450"><450//1929       19       /a href="+code=TA19   >192tmap_id;"L448" class="line" nams;"L448"><448//193        19       /a href="+code=cl19   >193 sref">ta//a>a href="+code=tSETUP_HOSTDATAdrivers/scsi/atSETUP_HOSTDATAKERN_N/a>->/a hreinstancedrivers/scsi/atinstanceKERN)id;"L450" class="line" nams;"L450"><450//1931       19       /a href="+code=ta19   >1931lass="sref">regis="d int , /a href="+codcatari_NCR5380.ccL4"  = *ref="drivers/sccountatari_NCR5380.ccountsrefid;"L450" class="line" nams;"L450"><450//1932       19       /a href="+code=TA19   >1932lass="sref">regis="d unsigned char href="+code=allpNOTICE" class="sL4"  = *ref="drivers/scphaseNOTICE" class="shaseL3ssid;"L450" class="line" nams;"L450"><450//1933       19                  /a hre19   >193" class="srefregis="d unsigned char *href="+code=allddrivers/scsi/atdL4"  = *ref="drivers/scdamsdrivers/scsi/atdamslassid;"L450" class="line" nams;"L450"><450//1934       19<<450//1935       19="drivers/scsi/atari_NCR19="d>193="sref">cmd//unsigned loge href="+code=allflagsatari_NCR5380.cflagssrefid;"L450" class="line" nams;"L450"><450//1936       19"drivers/scsi/atari_NCR519"dr>1936srefd;"L450" class="line" nams;"L450"><450//1937       19"drivers/scsi/atari_NCR519"dr>193class="sref">it;//, /a href="+codtmpatari_NCR5380.ctmpsref = ( = 0; /a href="N59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreSTATUS_REGdrivers/scsi/atSTATUS_REGKERN) /ampi //a>->/a hrePHASE_MASK="drivers/scsi/PHASE_MASKL4" )) !=  = 0; /a href="pNOTICE" class="sL4" ) id;"L448" class="line" nams;"L448"><448//19 8       19id /a href="+code=free_a19id >193" class="sref">ta//a>*href="+code=allphaseNOTICE" class="shaseL3ss =  = 0; /a href="tmpatari_NCR5380.ctmpsrefid;"L450" class="line" nams;"L450"><450//1939       19="drivers/scsi/atari_NCR19="d>193tmap_zero" class=" " return/-1;d;"L429" class="line" nams;"L429"><429//194        19nt /a href="+code=target19nt >194 sref">ta//a>}d;"L450" class="line" nams;"L450"><450//1941       19a href="+code=TAG_ALLOC"19a h>194sref"d;"L455" class="line" nams;"L455"><455//1942       19"drivers/scsi/atari_NCR519"dr>194class="sref">gt;/, /a href="+codams;"Lreas_os="runsatari_NCR5380.cams;"Lreas_os="runssref /ampi/ampi /, /a href="+codpNOTICE" class="sL4"  /ampi //a>->/a hreSR_Ilass="sref">cmd/SR_IlL4" ))d;"L393" class="line" nams;"L393"><393//1943       19f (!/a href="+code=setup19f (>194" class="sref"sref">h, /a href="+codcatari_NCR5380.ccL4"  -=  = 0; /a href="ams;"Lreas_os="runsatari_NCR5380.cams;"Lreas_os="runssref;d;"L429" class="line" nams;"L429"><429//1944       19       return;<<450//1945       19"drivers/scsi/atari_NCR519"dr>194="sref">cmd//"ref="+code=allDMA_PRINTK="drivers/scsi/DMA_PRINTKKERN_Ng %d for target %dne" vers/s: efitializrge DMA>for vers/s, vers/s bytes vers/s vers/pCR5380.c#L433" id;"L450" class="line" nams;"L450"><450//1946       19or (/a href="+code=targe19or >1946sref">ta//a>->/a d//"ref="+code=allHOSTNlass="sref">cmd/HOSTNlL4" ip/, /a href="+codpNOTICE" class="sL4"  /ampi //a>->/a hreSR_Ilass="sref">cmd/SR_IlL4" ) ? Ng %d for target %dreasrge5380.c#L433"  : Ng %d for target %dwritrge5380.c#L433" id;"L450" class="line" nams;"L450"><450//1947       19       for (/a href="+co19   >194class="sref">lun//a> ="s, /a href="+codcatari_NCR5380.ccL4" ip/, /a href="+codpNOTICE" class="sL4"  /ampi //a>->/a hreSR_Ilass="sref">cmd/SR_IlL4" ) ? Ng %d for target %dto5380.c#L433"  : Ng %d for target %dfrom5380.c#L433" i  = 0; /a href="ddrivers/scsi/atdL4" )id;"L450" class="line" nams;"L450"><450//1948       19               /a href="19   >194drived;"L393" class="line" nams;"L393"><393//1949       19               /a href="19   >1949"sref">cmd//"ref="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreTARGET_COMMAND_REGdrivers/scsi/atTARGET_COMMAND_REGL3ss,  = 0; /a href="PHASE_SR_TO_TCRNOTICE" class="PHASE_SR_TO_TCRKERN_N/a>->/a hrepNOTICE" class="sL4" ))id;"L450" class="line" nams;"L450"><450//195        19               /a href="19   >195tis ad;"L450" class="line" nams;"L450"><450//1951       19       }<<450//1952       19<ref="drivers/scN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreMODE_REGdrivers/scsi/atMODE_REGL3ss,  = 0; /a href="MR_BASEdrivers/scsi/atMR_BASEsref"|>, /a href="+codMR_DMA_MODEdrivers/scsi/atMR_DMA_MODEsref"|>, /a href="+codMR_ENABLE_EOP_INTRNOTICE" class="MR_ENABLE_EOP_INTRsref"|>, /a href="+codMR_MONITOR_BSYNOTICE" class="MR_MONITOR_BSYL4" )id;"L450" class="line" nams;"L450"><450//1953       19="drivers/scsi/atari_NCR19="d>195tming#endit;,74" class="line" namsc# det;REAL_DMA..*#L393" id;"L393" class="line" nams;"L393"><393//1954       19"drivers/scsi/atari_NCR519"dr>195=H_NOd;"L450" class="line" nams;"L450"><450//1955       19paj class="comment">/* S19paj>195="sref">cmd//gt;/, /a href="+codIS_A_TTNOTICE" class="IS_A_TTKERN_)) id;"L448" class="line" nams;"L448"><448//1956       19"drivers/scsi/atari_NCR519"dr>1956sref">ta//a>->/a ,74" class="line" namsc# On t<393//1957       19"drivers/scsi/atari_NCR519"dr>195 is a free tag and the targess="sref">ta//a>* start*ge tfor ><360/*//spaj><<19ss=>195drivers/scsi/atari_NCR5380.sss="sref">ta//a>*#L393" id;"L393" class="line" nams;"L393"><393//1959       19ss="comment"> * Func+ aj19ss=>195tmap_zero" class=" " , /a href="+codvocal_irq_savedrivers/scsi/atvocal_irq_saveKERN_N/a>->/a hreflagsatari_NCR5380.cflagssref)id;"L450" class="line" nams;"L450"><450//196        19ss="comment"> *<<19ss=>196 sref">ta//a>->/a href="+code=allhostdamsdrivers/scsi/athostdamssref-//a> = 0; /a href="dma_vendrivers/scsi/atdma_vensref = ( = 0; /a href="pNOTICE" class="sL4"  /ampi //a>->/a hreSR_Ilass="sref">cmd/SR_IlL4" ) ?d;"L450" class="line" nams;"L450"><450//1961       19ss="comment"> * Purpose:19ss=>196sref">TAG_ALL">ta////////////ref="drivers/scN59"><4_dma_reas_setupNOTICE" class="N59"><4_dma_reas_setupKERN_N/a>->/a hreinstancedrivers/scsi/atinstanceKERNi  = 0; /a href="ddrivers/scsi/atdL4" ip, /a href="+codcatari_NCR5380.ccL4" ) :d;"L450" class="line" nams;"L450"><450//1962       19ss="comment"> *    trans19ss=>196class="sref">hostdata////////ref="drivers/scN59"><4_dma_write_setupNOTICE" class="N59"><4_dma_write_setupKERN_N/a>->/a hreinstancedrivers/scsi/atinstanceKERNi  = 0; /a href="ddrivers/scsi/atdL4" ip, /a href="+codcatari_NCR5380.ccL4" )id;"L450" class="line" nams;"L450"><450//1963       19ss="comment"> *         19ss=>196" class="sref"sref">h, /a href="+codvocal_irq_restoredrivers/scsi/atvocal_irq_restoreKERN_N/a>->/a hreflagsatari_NCR5380.cflagssref)id;"L450" class="line" nams;"L450"><450//1964       19a href="+code=SETUP_HOST19a h>1964 class="sref}d;"L450" class="line" nams;"L450"><450//1965       19"drivers/scsi/atari_NCR519"dr>196="sred;"L450" class="line" nams;"L450"><450//1966       19f (/a href="+code=hostda19f (>1966sref">ta//a>gt;/, /a href="+codpNOTICE" class="sL4"  /ampi //a>->/a hreSR_Ilass="sref">cmd/SR_IlL4" )d;"L450" class="line" nams;"L450"><450//1967       19       return 1;<196class="sref">lun//a> ref="drivers/scN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreSTART_DMA_INITIATOR_RECEIVE_REGdrivers/scsi/atSTART_DMA_INITIATOR_RECEIVE_REGL4" ip0)id;"L450" class="line" nams;"L450"><450//1968       19f (!/a href="+code=shoul19f (>196" class="srefelse id;"L448" class="line" nams;"L448"><448//1969       19   !/a href="+code=setup19   >196tmap_zero" class=" " , /a href="+codN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i N/a>->/a hreICR_BASEdrivers/scsi/atICR_BASEsref"|>, /a href="+codICR_ASSERT_DATAdrivers/scsi/atICR_ASSERT_DATAL4" )id;"L450" class="line" nams;"L450"><450//197        19       return 0;<197 sref">ta//a>->/a href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreSTART_DMA_SEND_REGdrivers/scsi/atSTART_DMA_SEND_REGL4" ip0)id;"L450" class="line" nams;"L450"><450//1971       19f (/a href="+code=TagAll19f (>1971 class="sref}d;"L450" class="line" nams;"L450"><450//1972       19   /a href="+code=TagAll19   >197classd;"L429" class="line" nams;"L429"><429//1973       19       /a href="+code=TA19   >197" class="srefit;/!, /a href="+codIS_A_TTNOTICE" class="IS_A_TTKERN_)) id;"L448" class="line" nams;"L448"><448//1974       19                  /a hre19   >197=H_NO" class="sref">Hh74" class="line" namsc# On t<393//1975       19       return 1;<197="sref">cmd//a>->/h74" class="line" namsc# 393 access, else trashed!L393" id;"L393" class="line" nams;"L393"><393//1976       19<<393//1977       19eturn 0;<lun//a> ref="drivers/scvocal_irq_savedrivers/scsi/atvocal_irq_saveKERN_N/a>->/a hreflagsatari_NCR5380.cflagssref)id;"L450" class="line" nams;"L450"><450//1978       19="drivers/scsi/atari_NCR19="d>197" class="sref">ta//a>,/a>->/a hrehostdamsdrivers/scsi/athostdamssref-//a> = 0; /a href="dma_vendrivers/scsi/atdma_vensref = ( = 0; /a href="pNOTICE" class="sL4"  /ampi //a>->/a hreSR_Ilass="sref">cmd/SR_IlL4" ) ?d;"L450" class="line" nams;"L450"><450//1979       19"drivers/scsi/atari_NCR519"dr>197tmap_zero" class=" " ->/a href="+code=allN59"><4_dma_reas_setupNOTICE" class="N59"><4_dma_reas_setupKERN_N/a>->/a hreinstancedrivers/scsi/atinstanceKERNi  = 0; /a href="ddrivers/scsi/atdL4" ip, /a href="+codcatari_NCR5380.ccL4" ) :d;"L450" class="line" nams;"L450"><450//198        19"drivers/scsi/atari_NCR519"dr>198 sref">ta//a>->/a ->/a href="+code=allN59"><4_dma_write_setupNOTICE" class="N59"><4_dma_write_setupKERN_N/a>->/a hreinstancedrivers/scsi/atinstanceKERNi  = 0; /a href="ddrivers/scsi/atdL4" ip, /a href="+codcatari_NCR5380.ccL4" )id;"L450" class="line" nams;"L450"><450//1981       19ss="comment">/* Allocate19ss=>198sref">TAG_ALL">ta////, /a href="+codvocal_irq_restoredrivers/scsi/atvocal_irq_restoreKERN_N/a>->/a hreflagsatari_NCR5380.cflagssref)id;"L450" class="line" nams;"L450"><450//1982       19ss="comment"> * must be 19ss=>1982 class="sref}d;"L450" class="line" nams;"L450"><450//1983       19ss="comment"> * untagged19ss=>198" class="srefreturn/0id;"L450" class="line" nams;"L450"><450//1984       19ss="comment"> */<19ss=>198=H_NO}d;"L450" class="line" nams;"L450"><450//1985       19"drivers/scsi/atari_NCR519"dr>198="sre#endit;,74" class="line" namsc# detef=d(REAL_DMA)r*#L393" id;"L393" class="line" nams;"L393"><393//1986       19id /a href="+code=cmd_ge19id >1986srefd;"L450" class="line" nams;"L450"><450//1987       19="drivers/scsi/atari_NCR19="d>198 is a free tag and the targc#L393" id;"L393" class="line" nams;"L393"><393//1988       19a href="+code=SETUP_HOST19a h>198drivers/scsi/atari_NCR5380.s* Funct*cm :pN59"><4_informat*cm_transfar _ tauct Se" _Host *instance)L393" id;"L393" class="line" nams;"L393"><393//1989       19"drivers/scsi/atari_NCR519"dr>198erge_contiguous_buffers( Scs#L393" id;"L393" class="line" nams;"L393"><393//199        19spaj class="comment">/* 19spa>199tis a free tag and the targe* Purpose :prun t<393//1991       19ss="comment">         * 19ss=>199merge several scatter-gather*      directs us to.  Operates on t<393//1992       19ss="comment">         */19ss=>199s is possible if the scatter*      instance-//a>connectes.L360" id;"L360" class="line" nams;"L360"><360199tming"74" class="line" nams;#L393" id;"L393" class="line" nams;"L393"><393//1994       19   !/a href="+code=setup19   >199/spaj><<393//1995       19       /a href="+code=cm19   >199"drivers/scsi/atari_NCR5380.*L393" id;"L393" class="line" nams;"L393"><393//1996       19       /a href="+code=ho19   >199ged command. If the command.* Side effects : SCSI th*ges happen, t<393//1997       19       /a href="+code=TA19   >199 is a free tag and the targe*      modified if a _NCRand disconnects, *instance-//a>connectes willL393" id;"L393" class="line" nams;"L393"><393//1998       19                  /spaj 19   >199drivers/scsi/atari_NCR5380.s#ta//a>change.L360" id;"L360" class="line" nams;"L360"><360199erge_contiguous_buffers( Scs*L393" id;"L393" class="line" nams;"L393"><393//20>        20>   e {<  >;"L393" class="line" nams;"L393"><393//20>1       20>s="comment">         * 20>s=>20>merge several scatter-gather*      to recos=" from an unexpectessbus free condit*cm.L360" id;"L360" class="line" nams;"L360"><3602       20>s="comment">         */20>s=>20>s is possible if the scatter*#L393" id;"L393" class="line" nams;"L393"><393//20>3       20> (!/a href="+code=shoul20> (>20>3srefd;"L450" class="line" nams;"L450"><450//20>4       20>  !/a href="+code=setup20>  >20>/spajstaticpvoid href="+code=allN59"><4_informat*cm_transfarNOTICE" class="N59"><4_informat*cm_transfarKERN_ tauct a href="+code=tSe" _Hostdrivers/scsi/atSe" _Host clas*N/a>->/a hreinstancedrivers/scsi/atinstanceKERN)d;"L450" class="line" nams;"L450"><450//20>5       20>      /a href="+code=cm20>  >20>"drivid;"L448" class="line" nams;"L448"><448//20>6       20>      /a href="+code=ho20>  >20>6sref">ta//a>//a>->/a hreSETUP_HOSTDATAdrivers/scsi/atSETUP_HOSTDATAKERN_N/a>->/a hreinstancedrivers/scsi/atinstanceKERN)id;"L450" class="line" nams;"L450"><450//20>7       20>      /a href="+code=TA20>  >20>class="sref">unsigned loge href="+code=allflagsatari_NCR5380.cflagssrefid;"L450" class="line" nams;"L450"><450//20>8       20>                 /spaj 20>  >20>8lass="sref">unsigned char href="+code=allmsgoutdrivers/scsi/atmsgoutsref = href="+code=allNOPNOTICE" class="NOPsrefid;"L450" class="line" nams;"L450"><450//20>9       20>else {<<450//201        20="drivers/scsi/atari_NCR20="d>20="map_zero" clint , /a href="+codvendrivers/scsi/atlenKERN;d;"L429" class="line" nams;"L429"><429//20=1       20"drivers/scsi/atari_NCR520"dr>20=merge#if;, /a href="+coddefef=ddrivers/scsi/atdefef=dKERN_N/a>->/a hreREAL_DMAdrivers/scsi/atREAL_DMAsref)d;"L450" class="line" nams;"L450"><450//20=2       20"drivers/scsi/atari_NCR520"dr>20=2map_zero" clint , /a href="+codtransfarsizedrivers/scsi/attransfarsizeKERN;d;"L429" class="line" nams;"L429"><429//20=3       20ss="comment">/* Mark the20ss=>20=tming#enditd;"L429" class="line" nams;"L429"><429//20=4       20ss="comment"> * unlock t20ss=>20=4 class="srefunsigned char *ref="drivers/scdamsdrivers/scsi/atdamslassid;"L450" class="line" nams;"L450"><450//20=5       20ss="comment"> */<20ss=>20=="sref">cmd//unsigned char href="+code=allphaseNOTICE" class="shaseL3ss, , /a href="+codtmpatari_NCR5380.ctmpsref, , /a href="+codextended_msgatari_NCR5380.cextended_msgsref[10], , /a href="+codold_phaseNOTICE" class="old_phasesref = 0xffid;"L450" class="line" nams;"L450"><450//20=6       20"drivers/scsi/atari_NCR520"dr>20=6sref">ta//a>//a>->/a hreSe" _Cmnddrivers/scsi/atSe" _Cmnd clas*N/a>->/a hrecmddrivers/scsi/atcmdsref = ( = 0; /a href="Se" _Cmnddrivers/scsi/atSe" _Cmnd clas*)>,/a>->/a hrehostdamsdrivers/scsi/athostdamssref-//a> = 0; /a href="connectesdrivers/scsi/atconnecteslassid;"L450" class="line" nams;"L450"><450//20=7       20id /a href="+code=cmd_fr20id >20=7srefd;"L393" class="line" nams;"L393"><393//20=8       20="drivers/scsi/atari_NCR20="d>20=" class="srefwhile (1) id;"L448" class="line" nams;"L448"><448//20=9       20a href="+code=SETUP_HOST20a h>20=tmap_zero" class=" " , /a href="+codtmpatari_NCR5380.ctmpsref =  = 0; /a href="N59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreSTATUS_REGdrivers/scsi/atSTATUS_REGKERN)id;"L450" class="line" nams;"L450"><450//202        20"drivers/scsi/atari_NCR520"dr>20"d"sref">cmd//a>->/h74" class="line" namsc# We only have a valissSCSI phaserwhen REQ is a ferted *#L393" id;"L393" class="line" nams;"L393"><393//2021       20f (/a href="+code=cmd" c20f (>20"sref">TAG_ALL">ta////gt;/, /a href="+codtmpatari_NCR5380.ctmpsref /ampi //a>->/a hreSR_REQass="sref">cmd/SR_REQsref) id;"L448" class="line" nams;"L448"><448//2022       20       /a href="+code=ho20   >20"class="sref">hostdata////////ref="drivers/scphaseNOTICE" class="shaseL3ss = /, /a href="+codtmpatari_NCR5380.ctmpsref /ampi //a>->/a hrePHASE_MASK="drivers/scsi/PHASE_MASKL4" )id;"L450" class="line" nams;"L450"><450//2023       20       /a href="+code=TA20   >20"" class="sref"sref">h">ta////gt;/, /a href="+codphaseNOTICE" class="shaseL3ss !=  = 0; /a href="old_phaseNOTICE" class="old_phasesref) id;"L448" class="line" nams;"L448"><448//2024       20                  /a hre20   >20"=H_NO" class="sref">Hhostdata////////ref="drivers/scold_phaseNOTICE" class="old_phasesref = , /a href="+codphaseNOTICE" class="shaseL3ssid;"L450" class="line" nams;"L450"><450//2025       20 else if (/a href="+code20 el>20"="sref">cmd//a>->/tdata=a       a href="+code=allN59_PRINT_PHASEdrivers/scsi/atN59_PRINT_PHASEKERN_N/a>->/a hreNDEBUG_INFORMATIONNOTICE" class="NDEBUG_INFORMATIONL4" )id;"L450" class="line" nams;"L450"><450//2026       20       /a href="+code=pr20   >20"6sref">ta//a>->/a d///////}d;"L450" class="line" nams;"L450"><450//20"7       20              /a href="+20   >20"7srefd;"L393" class="line" nams;"L393"><393//2028       20 else {<ta//a>="sref"sgt;/, /a href="+codsinkNOTICE" class="sinksref /ampi/ampi /, /a href="+codphaseNOTICE" class="shaseL3ss !=  = 0; /a href="PHASE_MSGOUTNOTICE" class="PHASE_MSGOUTsref)) id;"L448" class="line" nams;"L448"><448//2029       20       /a href="+code=TA20   >20"tmap_zero" class=" " ->/a       a href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreTARGET_COMMAND_REGdrivers/scsi/atTARGET_COMMAND_REGL3ss,  = 0; /a href="PHASE_SR_TO_TCRNOTICE" class="PHASE_SR_TO_TCRKERN_N/a>->/a hretmpatari_NCR5380.ctmpsref))id;"L450" class="line" nams;"L450"><450//203        20       /a href="+code=cl20   >20  srefd;"L393" class="line" nams;"L393"><393//2031       20       /a href="+code=ta20   >20 sref">TAG_ALL">ta////////////      a href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i N/a>->/a hreICR_BASEdrivers/scsi/atICR_BASEsref"|>, /a href="+codICR_ASSERT_ATNNOTICE" class="ICR_ASSERT_ATNsref"|d;"L450" class="line" nams;"L450"><450//20 2       20       /a href="+code=TA20   >20 class="sref">hostdata////////ta////////////      a href="+code=allICR_ASSERT_ACK="drivers/scsi/ICR_ASSERT_ACKL4" )id;"L450" class="line" nams;"L450"><450//20 3       20                  /a hre20   >20 " class="sref"sref">h">ta////////////while ( = 0; /a href="N59"><4_reasdrivers/scsi/atN59"><4_reasKERN_N/a>->/a hreSTATUS_REGdrivers/scsi/atSTATUS_REGKERN) /ampi //a>->/a hreSR_REQass="sref">cmd/SR_REQsref)d;"L450" class="line" nams;"L450"><450//20 4       20<Hhostdata////////////////id;"L450" class="line" nams;"L450"><450//20 5       20="drivers/scsi/atari_NCR20="d>20 ="sref">cmd//a>->/tdata=a       a href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i N/a>->/a hreICR_BASEdrivers/scsi/atICR_BASEsref"|d;"L450" class="line" nams;"L450"><450//20 6       20"drivers/scsi/atari_NCR520"dr>20 6sref">ta//a>->/a d///////->/tdata=a       a href="+code=allICR_ASSERT_ATNNOTICE" class="ICR_ASSERT_ATNsref)id;"L450" class="line" nams;"L450"><450//20 7       20"drivers/scsi/atari_NCR520"dr>20 class="sref">lun//a> ="sref"sref">h">, /a href="+codsinkNOTICE" class="sinksref = 0id;"L450" class="line" nams;"L450"><450//2038       20id /a href="+code=free_a20id >20 " class="sref">ta//a>="sref"sref">h">continueid;"L450" class="line" nams;"L450"><450//2039       20="drivers/scsi/atari_NCR20="d>20 tmap_zero" class=" " ->/a }d;"L450" class="line" nams;"L450"><450//204        20nt /a href="+code=target20nt >20ntsrefd;"L393" class="line" nams;"L393"><393//2041       20a href="+code=TAG_ALLOC"20a h>20nsref">TAG_ALL">ta////////////switchd/, /a href="+codphaseNOTICE" class="shaseL3ss) id;"L448" class="line" nams;"L448"><448//2042       20"drivers/scsi/atari_NCR520"dr>20nclass="sref">hostdata////////caser = 0; /a href="PHASE_DATAOUTNOTICE" class="PHASE_DATAOUTlass:d;"L450" class="line" nams;"L450"><450//20n3       20f (!/a href="+code=setup20f (>20n3erge#if;_N/a>->/a hreNDEBUGNOTICE" class="NDEBUGsref /ampi //a>->/a hreNDEBUG_NO_DATAOUTNOTICE" class="NDEBUG_NO_DATAOUTsref)d;"L450" class="line" nams;"L450"><450//2044       20       return;<Hhostdata////////ref="drivers/scprintkNOTICE" class="printkKERN_Ng %d for target %dne" vers/s: NDEBUG_NO_DATAOUT.set, attempted DATAOUT.5380.c#L433" d;"L450" class="line" nams;"L450"><450//2045       20"drivers/scsi/atari_NCR520"dr>20n="sref">cmd//a>->/tdata=a       a ///////rg %d for target %dabortedCR5380.c#L433" i/"ref="+code=allHOSTNlass="sref">cmd/HOSTNlL4" )id;"L450" class="line" nams;"L450"><450//2046       20or (/a href="+code=targe20or >20n6sref">ta//a>->/a d///////->/td, /a href="+codsinkNOTICE" class="sinksref = 1;d;"L429" class="line" nams;"L429"><429//20n7       20       for (/a href="+co20   >20nclass="sref">lun//a> ="sref"sref">h">, /a href="+coddo_abortdrivers/scsi/atdo_abortKERN_N/a>->/a hreinstancedrivers/scsi/atinstanceKERN)id;"L450" class="line" nams;"L450"><450//2048       20               /a href="20   >20n" class="sref">ta//a>="sref"sref">h">N/a>->/a hrecmddrivers/scsi/atcmdsref-//a> = 0; /a href="resultdrivers/scsi/attttttt913h l393" =/a h5HASE_SR_TO_TCRNO" =/a h5Hclass=lt;=lt; 16instanceKERN)id;"L450" class="line" nams;"L450"><450//1949       19           //194a hre=TA20   >20"tmap_zero" class=" " ->/a       a hra>->/a hrecmddrivers/scsi/atcmdsref-//a> =50" _>->/a hrecmddrivers/stinstanceKERN)id;"L450" class="line" nams;"L550"><450//195        19           //195>//19=TA20   >20"tmap_zero" class=" " -&g" clasinstanceKERN)id;"L450" class="line" nams;"L593"><393//1951       19       }<//11the20ss=>20=tming#enditd;"L429" class="line" nams;"L548"><448//1952       19<20nclass="sref">hostdata////////caser = 0; /a hreIICR_ASSERT_ATNNO 0; /a hreIIPHASE_DATAOUTlass:d;"L450" class="line" nams;"L550"><450//1953       19="drivers/s//195>//1 hre20   >20 " class="sref"sref">h">t9="d>198 is a free tag and the targc#L393" id;"L393" class="line" nams;//150"><450//1954       19"drivers/sc//195>//1etup19   >199/spaj><<450//1955       19paj class="//195>//1e=cm19   >199"drivers/scsi/a================================38scDATAr-gahaseLlisNO_movine"t. Tuisnextne"s#ta//a>change.L360" id;"L360" class="line" nams;//150"><450//1956       19"drivers/sc//195>//1si/a19<197ged command. If the command.rrr================3is a ferted *#L393" id;"L393" class="line" nams;"L529"><429//1957       19"drivers/sc//195>//1f="+20   >20"7srefd;"L393" class="line" nams;"L550"><450//1958       19ss="comment//195>//1ef="20   >20n" class="sref">ta//a>="s" class="srefit;/!, a>->/a hrecmddrivers/scsi/atcmdsref-//a> =SC->/a hretmpatSC-rs/s.R_TO_TCRKERN_N/ahisi/atidual>/a hretmpatahisi/atidual" class="sinksress="srefit;/!, a>->/a hrecmddrivers/scsi/atcmdsref-//a> =SC->/a hretmpatSC-rs/s.R_TO_TCRKERN_N/bu : -si/atidual>/a hretmpatbu : -si/atidual class="shaseL3ss) id;"L448" class="line" nams;"L550"><450//1959       19ss="comment//195>//1e=TA20   >20"tmap_zero" class=" " -&ggggggggg++ss="srefit;/!, a>->/a hrecmddrivers/scsi/atcmdsref-//a> =SC->/a hretmpatSC-rs/s.R_TO_TCRKERN_N/bu : ->/a hretmpatbu : - class="shaseL3ssid;"L450" class="line" nams;"L650"><450//196        19ss="comment//196>//19=TA20   >20"tmap_zero" class=" " -&ggggggggg--ss="srefit;/!, a>->/a hrecmddrivers/scsi/atcmdsref-//a> =SC->/a hretmpatSC-rs/s.R_TO_TCRKERN_N/bu : -si/atidual>/a hretmpatbu : -si/atidual class="shaseL3ssid;"L450" class="line" nams;"L693"><393//1961       19ss="comment//196>//1e=ta20   >20 sref">TAG_ALL">ta///////////////ss="srefit;/!, a>->/a hrecmddrivers/scsi/atcmdsref-//a> =SC->/a hretmpatSC-rs/s.R_TO_TCRKERN_N/ahisi/atidual>/a hretmpatahisi/atidual" claattttttt913h l393a>->/a hrecmddrivers/scsi/atcmdsref-//a> =SC->/a hretmpatSC-rs/s.R_TO_TCRKERN_N/bu : ->/a hretmpatbu : - clacsi/atcmdsref-//a> =length>/a hretmpatlength class="shaseL3ssid;"L450" class="line" nams;"L648"><448//1962       19ss="comment//196>//1e=TA20   >20 class="sref">hostdata////////ta/tttttt913h l393a>->/a hrecmddrivers/scsi/atcmdsref-//a> =SC->/a hretmpatSC-rs/s.R_TO_TCRKERN_N/"+code=allmsgptrat_NCR5380.ctcmdsref-//a> =5g_vif="+coddo_abortdr5g_vif=si/atdo_abortKERN_N/a>->/a hrecmddrivers/scsi/atcmdsref-//a> =SC->/a hretmpatSC-rs/s.R_TO_TCRKERN_N/bu : ->/a hretmpatbu : - clatinstanceKERN)id;"L450" class="line" nams;"L650"><450//1963       19ss="comment//196>//1 hre20   >20 " class="sref"sref">h">t/////ta/tmd//a>->/h74" class="++roman: Try-gatmerge some8scDATAr-bu : -ss" s a ferted *#L393" id;"L393" class="line" nams;"L650"><450//1964       19a href="+co//196>//1etup19   >199/spaj><change.L360" id;"L360" class="line" nams;//650"><450//1965       19"drivers/sc//196>//1e=cm19   >199"drivers/scsi/a========================================*is a ferted *#L393" id;"L393" class="line" nams;"L650"><450//1966       19f (/a href=//196>//1NCR520"dr>20 6sref">ta//a>->/a d///////-&gR_TO_TCRKERN_N/merge_ref"sguoug_bu : -s>/a hretmpatmerge_ref"sguoug_bu : -ssi/atdo_abortKERN_N/a>->/a hrecmddrivers/stinstanceKERN)id;"L450" class="line" nams;"L629"><429//1967       19       retu//196>//1"+co20   >20nclass="sref">lun//a> ="s/////-&gR_TO_TCRKERN_N/INF"+code=allDMA_PRINTK="INF"+code=class="printkKERN_Ng %d for target %>for vers/s, ied >for veru : -ssleftvers/s vers/pCR5380.c#L433" id;"L450" class="line" nams;//150"><450//1968       19f (!/a href//196>//1ef="20   >20n" class="sref">ta//a>="slun//a> ="s/////-&gR_TO_TCRKERN_N/ef="+code=allHOSTNlass="sref">cmdss="srefit;/!, a>->/a hrecmddrivers/scsi/atcmdsref-//a> =SC->/a hretmpatSC-rs/s.R_TO_TCRKERN_N/ahisi/atidual>/a hretmpatahisi/atidual" cl5380.c#L433" id;"L450" class="line" nams;//150"><450//1969       19   !/a href//196>//1e=TA20   >20"tmap_zero" class=" " -&ggggggggg="s/////-&gR_TO_TCRKERN_N/a>->/a hrecmddrivers/scsi/atcmdsref-//a> =SC->/a hretmpatSC-rs/s.R_TO_TCRKERN_N/bu : -si/atidual>/a hretmpatbu : -si/atidual clatinstanceKERN)id;"L450" class="line" nams;"L750"><450//197        19       retu//197>//19=TA20   >20"tmap_zero" class=" " -&g=" " ->/a }d;"L450" class="line" nams;"L793"><393//1971       19f (/a href=//197>//1LOC"19a h>194sref"d;"L455" class="line" nams;//148"><448//1972       19   /a href=//197>//1e=TA20   >20 class="sref">hostdata///9="d>198 is a free tag and the targc#L393" id;"L393" class="line" nams;//750"><450//1973       19       /a h//197>//1houl19f (>199tming"74" classssssssssssssssssssssssssssssssss* The p#L3tes or_informatmethodffarg<450//1974       19           //197>//1etup19   >199/spaj><<450//1975       19       retu//197>//1e=cm19   >199"drivers/scsi/a================================38sistanwe c >1let Tuishardwforsw< Tuishandshakich#ta//a>change.L360" id;"L360" class="line" nams;//750"><450//1976       19<<429//1977       19eturn 0;<//1NCR519"dr>195 is a free tag and the targess=================38Fcleani0.*gtwork,s#tXXX Note knowses anvers/scsi/att//a>change.L360" id;"L360" class="line" nams;//750"><450//1978       19="drivers/s//197>//1j><<19ss=>195drivers/scsi/atari_NCR5380.sss=================38aheadaximtime,8sistanes apseudo-efitRN_Nnnectessfarres orsexitL393" id;"L393" class="line" nams;//150"><450//1979       19"drivers/sc//197>//1vers19 el>199erge_contiguousari_NCR5380.sss=================38in recostessbus fal loop#ta//a>change.L360" id;"L360" class="line" nams;//850"><450//198        19"drivers/sc//198>//19i/a19<197ged command. If the command.rrr================3is a ferted *#L393" id;"L393" class="line" nams;"L893"><393//1981       19ss="comment//198>//1LOC"19a h>194sref"d;"L455" class="line" nams;//848"><448//1982       19ss="comment//198>//1e=TA20   >20 class="sref">hostdata///9="d>198 is a free tag a"++roman: I suggesNO_ani0.shouldts queua will beL393" id;"L393" class="line" nams;//850"><450//1983       19ss="comment//198>//1houl19f (>199tming"74" classssssssssssssssssssssssssssssssss*   0f (defamsc# detequeua will beL393" id;"L393" class="line" nams;//850"><450//1984       19ss="comment//198>//1etup19   >199/spaj><change.L360" id;"L360" class="line" nams;//850"><450//1985       19"drivers/sc//198>//1e=cm19   >199"drivers/scsi/a================================3is a ferted *#L393" id;"L393" class="line" nams;"L850"><450//1986       19id /a href=//198>//1d_ge19id >1986srefd;"L450" class="line" nams;//129"><429//1987       19="drivers/s//198>//17tup20f (ref"sref">h">, /a href="+coddefef=ddrivers/scsi/atdefef=dKERN_N/a>->/a hreREAL_DMAdrivers/scsi/atREAL_DMAsref)d;"L450" class="line" nams;"L850"><450//1988       19a href="+co//198>//1ef="20   >20n" class="sref">ta//a>="s" class="srefit;/!, a>->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdevi;/rs/scsi/atcmdsref-//a> =borka href="+codvendrborka " class="sinksrREAL_DMAsref)d;"L450" class="line" nams;"L850"><450//1989       19"drivers/sc//198>//1e=TA20   >20"tmap_zero" class=" " -&gggggSR_TO_TCRKERN_N/aa href="+codtransfarsizedrivers/scsi/attra5380.ctmpsref =  = 0; /a hass=x/sc /a href="dma_vendr 0; /a hass=x/sc /a si/atdo_abortKERN_N/a>->/a hreinstancedrivers/scsi/a,ss="srefit;/!, a>->/a hrecmddrivers/s,ss="srefit;/!, /a href="+codphaseNOTICE" clas) si/a 3="srefwhile (1) id;"L448" class="line" nams;"L950"><450//199        19spaj class=//199>//19+co20   >20nclass="sref">lun//a> ="s/////-&gR_TO_TCRKERN_N//a href="+codvendrivers/sss="shaseL3ss =  = a href="+codtransfarsizedrivers/scsi/attransfarsizeKERN;d;"L429" class="line" nams;"L993"><393//1991       19ss="comment//199>//1e=ta20   >20 sref">TAG_ALL">ta///////////////ss="srefit;/!, a>->/a hrecmddrivers/scsi/atcmdsref-//a> =SC->/a hretmpatSC-rs/s.R_TO_TCRKERN_N/ef="+code=allphaseNOTICE" class="shaseL3ss =  =/a href="+codphaseNOTICE" class="shaseL3ssid;"L450" class="line" nams;"L948"><448//1992       19ss="comment//199>//1e=TA20   >20 class="sref">hostdata////////ta/f (>20n3erge#if;_N/a0; /a hivers/schasshref="dma_vendr 0; /a hivers/schasssi/atdo_abortKERN_N/a>->/a hreinstancedrivers/scsi/a,ass="s"shaseL3ss =  =/a href="+codphaseNOTICE" cla5380.c#L433" id;"L450" class="line" nams;//950"><450//1993       19f (!/a href//199>//1 hre20   >20 " class="sref"sref">h">t/////ta/////ss="s"shaseL3ss =  =/a href="+codvendrivers/s, (4 class="srefun*)ss="s"shaseL3ss =  =a>->/a hrecmddrivers/scsi/atcmdsref-//a> =SC->/a hretmpatSC-rs/s.R_TO_TCRKERN_N/"+code=allmsgptrat_NCR538SE_MSGOUTsref)) id;"L448" class="line" nams;"L950"><450//1994       19   !/a href//199>//1si/a20<20 =H_NO" class="sref">Hhostdata///////////s="d>198 is a free tag and the targc#L393" id;"L393" class="line" nams;//950"><450//1995       19       /a h//199>//1e=cm19   >199"drivers/scsi/a================================================380.shas :pwe dogmtimer fires, actefutu t<450//1996       19       /a h//199>//1si/a19<197ged command. If the command.rrr================================38" namse0.*gtani0.devi;/nnecteu93 acc<429//1997       19       /a h//199>//1NCR519"dr>195 is a free tag and the targess=================================38polled-IO.=3is a ferted *#L393" id;"L393" class="line" nams;"L950"><450//1998       19           //199>//1ef="20   >20n" class="sref">ta//a>="slun//a> ="s/////tdata////////ref="drivers/scprintkNOTICE" class=data////////reKERN_NOTIC/a hreICR_BASEdrKERN_NOTIC/f="20="printkKERN_Ng %d for target %a/////ichdgd do  >for vepted DATAOUT.5380.c#L433" d;"L450" class="line" nams;"L950"><450//1999       19 else {<//1e=TA20   >20"tmap_zero" class=" " -&ggggggggg="s/////-&g="s/////t"printkKERN_Ng %d for lun >for ve*gtslowshandshake%dabortedCR5380.c#L433" i/"ref="+code=allHOSTNlass="sref">c5380.c#L433" id;"L450" class="line" nams;/1393"><393/120>        20>   e {<lun//a> ="s/////-&g="slun//a> ="s/////tdata////////rea>->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdevi;/rs/scsi/atcmdsref-//a> =i->/a hrecmddriivers/scsi/atdL4" ip, />->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdevi;/rs/scsi/atcmdsref-//a> =lunhref="+codvendriun clatinstanceKERN)id;"L450" class="line" nams;"1393"><393/120>1       20>s="comment"1     10e=ta20   >20 sref">TAG_ALL">ta///////////////="s/////tdata////////rea>->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdevi;/rs/scsi/atcmdsref-//a> =borka href="+codvendrborka " class="sinksref = 1;d;"L429" class="line" nams;"1360"><360<120>2       20>s="comment"1     10e=TA20   >20 class="sref">hostdata////////ta///////data=a       a href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i N/a>->/a hreICR_BASEdrivers/scsi/atICR_BASEsref"|d;"L450" class="line" nams;"1393"><393/120>3       20> (!/a href=1+code10 hre20   >20 " class="sref"sref">h">t/////ta//////ta///////data=a       a href="+code=allICR_ASSERT_ATNNOTICE" class="ICR_ASSERT_ATNsref)id;"L450" class="line" nams;"1450"><450/120>4       20>  !/a href=1+code10si/a20<20 =H_NO" class="sref">Hhostdata///////////scmdsref-//a> =5a href="+codsinkNOTICE" class="sinksref = 1;d;"L429" class="line" nams;"1450"><450/120>5       20>      /a hr1f="+c10NCR520"dr>20n="sref">cmd//a>->/tdata=a   /////////scmdsref-//a> =/a href="+coddo_abortdrivers/scsi/atdo_abortKERN_N/a>->/a hreinstancedrivers/scsi/atinstanceKERN)id;"L450" class="line" nams;"1448"><448/120>6       20>      /a hr1f="+c10NCR520"dr>20 6sref">ta//a>->/a d///////->/tda"sref"sref">h">N/a>->/a hrecmddrivers/scsi/atcmdsref-//a> = 0; /a href="resultdrivers/scsi/attttttt913h l393" =/a h5HASE_SR_TO_TCRNO" =/a h5Hclass=lt;=lt; 16instanceKERN)id;"L450" class="line" nams;"1450"><450/120>7       20>      /a hr1f="+c10"+co20   >20nclass="sref">lun//a> ="s/////->/tda"sref"sref">h">N/a>->/a hrecmddrivers/scsi/atcmdsref-//a> =50" _>->/a hrecmddrivers/stinstanceKERN)id;"L450" class="line" nams;"1450"><450/120>8       20>           1     10ef="20   >20n" class="sref">ta//a>="slun//a> ="s/////t="d>198 is a free tag a"i_NC-XXX Note sourchdforTICE s/scset c,phasapproTICate=3is a ferted *#L393" id;"L393" class="line" nams;"1450"><450/120>9       20>else {<<450/1201        20="drivers/sc1i/ata1i_NCR2#iflinetdefef=dKERN_N/a>->/a hreREAL_DMAdrivers/scsi/as="srefelse id;"L448" class="line" nams;21493"><393/120=1       20"drivers/scs1/atar11e=ta20   >20 sref">TAG_ALL">ta///////////////="s/////t="d>198 is a free tag a"++roman: WsSCSusichdrealess,ectes _NCRand,L393" id;"L393" class="line" nams;/1450"><450/120=2       20"drivers/scs1/atar11  */20>s=>20>s is possible iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii38ivs="N59"><4_informa().shouldt" classmu=t ctes _NCRand,L393" id;"L393" class="line" nams;/1493"><393/120=3       20ss="comment"1/* Ma11houl19f (>199tming"74" classssssssssssssssssssssssssssssssssiiiiiiiiiiiiiiii38ref">ta//ss, eistanitshaarnofects moreotectes _NCRand,L393" id;"L393" class="line" nams;/1450"><450/120=4       20ss="comment"1 * un11etup19   >199/spaj><change.L360" id;"L360" class="line" nams;/1450"><450/120=5       20ss="comment"1 */199"drivers/scsi/a================================================3is a ferted *#L393" id;"L393" class="line" nams;"1450"><450/120=6       20"drivers/scs1/atar11NCR520"dr>20 6sref">ta//a>->/a d///////->/tda"s" clasinstanceKERN)id;"L450" class="line" nams;"1450"><450/120=7       20id /a href="1code=1md_fr2#" clnstanceKERN)id;"L450" class="line" nams;"1450"><450/120=8       20="drivers/sc1i/ata11ef="20   >20n" class="sref">ta//a>="slun//a> ="s/////tdata////////rea>->/a hrecmddrivers/scsi/atcmdsref-//a> =SC->/a hretmpatSC-rs/s.R_TO_TCRKERN_N/ahisi/atidual>/a hretmpatahisi/atidual" cl -s="shaseL3ss =  = a href="+codtransfarsizedrivers/scsi/attraC-X"shaseL3ss =  =/a href="+codvendrivers/sinstanceKERN)id;"L450" class="line" nams;"1450"><450/120=9       20a href="+cod1=SETU1_HOST20ss=>20=tming#enditd;"L429" class="line" nams;"1450"><450/1202        20"drivers/scs1/atar1_NCR520"dr>20"d"sref">>>>>>>>>>>>>>>>>>>>>>>>>=" " ->/a }d;"L450" class="line" nams;"1393"><393/12021       20f (/a href="1code=1md" c20f (>20"sref">TA>>>>>>>>>>>>>>>>= " clnstanceKERN)id;"L450" class="line" nams;"1448"><448/12022       20       /a hr1f="+c1de=ho29"dr>198="sre#endit;,74" class="line" namsc# detef=d(REAL_DMA)r*#L393" id;"L393" class="line" nams;c1d93"><393/12023       20       /a hr1f="+c1de=TA20   >20"" class="sref"srlun//a> ="s/////tdata////////re 0; /a hivers/schpiohref="dma_vendr 0; /a hivers/schpiosi/atdo_abortKERN_N/a>->/a hreinstancedrivers/scsi/a,ass="s"shaseL3ss =  =/a href="+codphaseNOTICE" cla5380.c#L433" id;"L450" class="line" nams;/1448"><448/12024       20            1     1a hre20   >20"=H_NO" class="sref">Hhossssssssssssssssssssssssssssss(2map*)ss="s"shaseL3ss =  =a>->/a hrecmddrivers/scsi/atcmdsref-//a> =SC->/a hretmpatSC-rs/s.R_TO_TCRKERN_N/ahisi/atidual>/a hretmpatahisi/atidual" cl5380.c#L433" id;"L450" class="line" nams;/1450"><450/12025       20 else if (/a1href=1+code20 el>20"="sref">cmd//a>->/tdasssssssssssssssssssssssssssss(4 class="srefun*)ss="s"shaseL3ss =  =a>->/a hrecmddrivers/scsi/atcmdsref-//a> =SC->/a hretmpatSC-rs/s.R_TO_TCRKERN_N/"+code=allmsgptrat_NCR538SinstanceKERN)id;"L450" class="line" nams;"1450"><450/12026       20       /a hr1f="+c1de=pr20   >20"6sref">ta//a>-&gggggggggbreakinstanceKERN)id;"L450" class="line" nams;"1450"><450/120"7       20            1 /a h12"+co20   >20nclass="sref">luntdata////////caser = 0; /aMSGIICR_ASSERT_ATNNO 0; /aMSGII+co2E_DATAOUTlass:d;"L450" class="line" nams;"1393"><393/12028       20 else {<tttttttttR_TO_TCRKERN_N//a href="+codvendrivers/sss=="sinksref = 1;d;"L429" class="line" nams;"1448"><448/12029       20       /a hr1f="+c1de=TA20   >20"tmap_zero" class=" " ->/a       a hrf="drivers/scdamsdrivers/scss=ss="s"shaseL3ss =  =a>->/a hretmpatari_NCR"sinksref = 1;d;"L429" class="line" nams;"1450"><450/1203        20       /a hr1f="+c13NCR520"dr>20"d"sref">>>>>>>>>>>>>>>>>ta=a       a href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/SELECT_ENABLE;/a hreSTATUS_REGdriELECT_ENABLE;/a si/a,a0);>>>>t="sre#endit;,74" class="lisablebus flnd.* =d(REAL_DMA)r*#L393" id;"L393" class="line" nams;c1393"><393/12031       20       /a hr1f="+c1de=ta20   >20 sref">TAG_ALL">ta////////////      a href="+codivers/schpiohref="dma_vendr 0; /a hivers/schpiosi/atdo_abortKERN_N/a>->/a hreinstancedrivers/scsi/a,ass="s"shaseL3ss =  =/a href="+codphaseNOTICE" cla5/ss="s"shaseL3ss =  =/a href="+codvendrivers/s, ss="s"shaseL3ss =  =f="drivers/scdamsdrivers/scSinstanceKERN)id;"L450" class="line" nams;"1450"><450/120 2       20       /a hr1f="+c1de=TA20   >20 class="sref">hostdata///"shaseL3ss =  =a>->/a hrecmddrivers/scsi/atcmdsref-//a> =SC->/a hretmpatSC-rs/s.R_TO_TCRKERN_N/Messagref="+codphaseNOMessagrrs/sss="shaseL3ss =  = >->/a hretmpatari_NCR"sinksref = 1;d;"L429" class="line" nams;"1493"><393/120 3       20            1     13houl20> (>20>3srefd;"L450" class="line" nams;"1450"><450/120 4       20<Hhosa////////////switchd/, a>->/a hretmpatari_NCR5ass="srefelse id;"L448" class="line" nams;21450"><450/120 5       20="drivers/sc1i/ata1i_NCR20="d>20 ="sref">cmd//a>->/tdat="d>198 is a free tag and the targc#L393" id;"L393" class="line" nams;/1450"><450/120 6       20"drivers/scs1/atar13si/a19<197ged command. If the command.rrr================3 Linkich1let*    redutanes atime requir Note get Tuind the targc#L393" id;"L393" class="line" nams;/1450"><450/120 7       20"drivers/scs1/atar13NCR519"dr>195 is a free tag and the targess=================38nextnodified out t. Tuisdevi;/, hopefullytani0./a>connectes willL393" id;"L393" class="line" nams;r1393"><393/12038       20id /a href="1code=13j><<19ss=>195drivers/scsi/atari_NCR5380.sss=================38me=>1wrsw<448/12039       20="drivers/sc1i/ata13vers19 el>199erge_contiguousari_NCR5380.sss=================38requir Noby ARBITRNDEBU ied anofeer iELECTEBU#ta//a>change.L360" id;"L360" class="line" nams;/1450"><450/1204        20nt /a href="1code=149i/a19<197ged command. If the command.rrr================3ta//a>change.L360" id;"L360" class="line" nams;/1493"><393/12041       20a href="+cod1=TAG_14  * 20>s=>20>merge several sari_NCR5380.sss=================38Ira Operates o implevera59">< proTosal, lowslevel " id;"Lta//a>change.L360" id;"L360" class="line" nams;/1450"><450/12042       20"drivers/scs1/atar14  */20>s=>20>s is possible iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii38mere namsc# te sef"> Tuisnextnly conne po2ma Note byta//a>change.L360" id;"L360" class="line" nams;/1493"><393/120n3       20f (!/a href=1+code14houl19f (>199tming"74" classssssssssssssssssssssssssssssssss* next_20fk,swchange.L360" id;"L360" class="line" nams;/1450"><450/12044       20       retur1;<199/spaj><<450/12045       20"drivers/scs1/atar1_NCR52#iflinetdefef=dKERN_N/LINKED>/a hretmpatLINKEDoul20> (>20>3srefd;"L450" class="line" nams;"1450"><450/12046       20or (/a href=1+code1targe20or >20n6sref">ta//a>->/a d//tdata////////caser =LINKED_CMDi/atPLET/a hreICR_BASEdrLINKED_CMDi/atPLET/+co2E_DATAOUTlass:d;"L450" class="line" nams;"1429"><429/120n7       20       for (1a hre1="+co20   >20nclass="sref">lun//a> ="stdata////////caser =LINKED_FLG_CMDi/atPLET/a hreICR_BASEdrLINKED_FLG_CMDi/atPLET/+co2E_DATAOUTlass:d;"L450" class="line" nams;"1493"><393/12048       20            1  /a 1ref="20   >20n" class="sref">ta//a>="ssssssssst="sre#endit;,74" class="Accept8messagroby clea  ACK=3d(REAL_DMA)r*#L393" id;"L393" class="line" nams;c1448"><448/11949       19           /1194a 1re=TA20   >20"tmap_zero" class=" " -&gssssssssta=a       a href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i N/a>->/a hreICR_BASEdrivers/scsi/aSinstanceKERN)id;"L450" class="line" nams;"1550"><450/1195        19           /1195>/15rget20nt >20ntsrefd;"L393" class="line" nams;"1593"><393/11951       19       }</15e=ta20   >20 sref">TAG_ALL">ta///////////////ss="srefit;/!, LNK"+code=allDMA_PRINTK="LNK"+code=N59"><"printkKERN_Ng %d for target %gd do  >for velun >for ve20fkcatly connepted DATAOUT.5380.c#L433" d;"L450" class="line" nams;"1548"><448/11952       19<20nclass="sref">hosss="sref">ta//a>="ssssssssst="sre#endit;Ng %d for ly plete.%dabortedCR5380.c#L433" i/"ref="+code=allHOSTNlass="sref">c5/tdata////////rea>->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdevi;/rs/scsi/atcmdsref-//a> =i->/a hrecmddriivers/scsi/atdL4" ip, />->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdevi;/rs/scsi/atcmdsref-//a> =lunhref="+codvendriun clatinstanceKERN)id;"L450" class="line" nams;"1550"><450/11953       19="drivers/s/1195>/15houl20> (>20>3srefd;"L450" class="line" nams;"1150"><450/11954       19"drivers/sc/1195>/15 hre20   >20"=H_NO" class="sref">Hhossssssssst="sre#endit;,74" class="Enablebus flnd.=2maerrup.* =d(REAL_DMA)r*#L393" id;"L393" class="line" nams;c1150"><450/11955       19paj class="/1195>/15code20 el>20"="sref">cmd//a>->/tdassssssssta=a       a href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/SELECT_ENABLE;/a hreSTATUS_REGdriELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdamsdrivers/scsi/athostdamssref-//a> =id_mashref="+codsinkNOid_mash clatinstanceKERN)id;"L450" class="line" nams;"1550"><450/11956       19"drivers/sc/1195>/15NCR520"dr>20 6sref">ta//a>->/a d///////-&gR="d>198 is a free tag and the targc#L393" id;"L393" class="line" nams;/1529"><429/11957       19"drivers/sc/1195>/15NCR519"dr>195 is a free tag and the targess=========================* Sanity check : Ae20fkcatly conneshouldte" naaerminatind the targc#L393" id;"L393" class="line" nams;/1550"><450/11958       19ss="comment/1195>/15j><<19ss=>195drivers/scsi/atari_NCR5380.sss=========================* ///h <448/11959       19ss="comment/1195>/15vers19 el>199erge_contiguousari_NCR5380.sss=========================* ly conns available#ta//a>change.L360" id;"L360" class="line" nams;/1650"><450/1196        19ss="comment/1196>/169i/a19<197ged command. If the command.rrr========================*d(REAL_DMA)r*#L393" id;"L393" class="line" nams;c1693"><393/11961       19ss="comment/1196>/16LOC"19a h>194sref"d;"L455" class="line" nams;/1648"><448/11962       19ss="comment/1196>/11e=TA20   >20 class="sref">hostdata////////ta/" class="srefit;/!, a>->/a hrecmddrivers/scsi/atcmdsref-//a> =next_20fk>/a hrecmddrnext_20fk_NCR5ass="srefelse id;"L448" class="line" nams;21650"><450/11963       19ss="comment/1196>/11 hre20   >20 " class="sref"sref">h">t/////ta//////////"shaseL3ss =  =/="drivers/scprintkNOTICE" class=data////////reKERN_NOTIC/a hreICR_BASEdrKERN_NOTIC/f="20="printkKERN_Ng %d for target %gd do  >for velun >for vepted DATAOUT.5380.c#L433" d;"L450" class="line" nams;"1650"><450/11964       19a href="+co/1196>/16 hre20   >20"=H_NO" class="sref">Hhossssssssssssssssssssssssst"printkKERN_Ng %d for l0fkcatly connely plete,rno next_20fkvers/s vers/pCR5380.c#L433" id;"L450" class="line" nams;/1650"><450/11965       19"drivers/sc/1196>/16code20 el>20"="sref">cmd//a>->/tdassssssssssssssssssssssss80.c#L433" i/"ref="+code=allHOSTNlass="sref">c5/tdata////////rea>->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdevi;/rs/scsi/atcmdsref-//a> =i->/a hrecmddriivers/scsi/atdL4" ip, />->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdevi;/rs/scsi/atcmdsref-//a> =lunhref="+codvendriun clatinstanceKERN)id;"L450" class="line" nams;"1650"><450/11966       19f (/a href=/1196>/11NCR520"dr>20 6sref">ta//a>->/a d///////-&gssssssss80.c#L433" i/"r5a href="+codsinkNOTICE" class="sinksref = 1;d;"L429" class="line" nams;"1629"><429/11967       19       retu/1196>/11"+co20   >20nclass="sref">lun//a> ="s/////-&gssssssss80.c#L433" i/"r/a href="+coddo_abortdrivers/scsi/atdo_abortKERN_N/a>->/a hreinstancedrivers/scsi/atinstanceKERN)id;"L450" class="line" nams;"1150"><450/11968       19f (!/a href/1196>/11ef="20   >20n" class="sref">ta//a>="slun//a> ="s/////" clasinstanceKERN)id;"L450" class="line" nams;"1150"><450/11969       19   !/a href/1196>/11e=TA20   >20"tmap_zero" class=" " -&ggggggggg=" " ->/a }d;"L450" class="line" nams;"1750"><450/1197        19       retu/1197>/17rget20nt >20ntsrefd;"L393" class="line" nams;"1793"><393/11971       19f (/a href=/1197>/17e=ta20   >20 sref">TAG_ALL">ta///////////////ss="srefit;/!, initialize_SC->/a hretmpatinitialize_SC-si/atdo_abortKERN_N/a>->/a hrecmddrivers/scsi/atcmdsref-//a> =next_20fk>/a hrecmddrnext_20fk_NCR5instanceKERN)id;"L450" class="line" nams;"1148"><448/20  t;,74" claime,8=====*is a fertedta20   >20"=H_NO" class="sref">Tiiiiiiiiiiiii38ssssst====piiiis====ssspror===;iiipy ime,8sistanes apseudo-efitRN_Nnnectessfarres orsex1#L393" id;1L393" class="line" nams;/1750">1450//1973       19       /a h//197>//1houl19f (>199tming"74"         *=====CR5380.sssfressii!he command.rrr========================*d(REAL_DMA)r*eL393" id;1L393" class="line" nams;/1150">1750/11954       19"drivers/sc/1195>/15 hre20   C->/a hretmpatinitialize_SC-si/atdo_abortKERN_N/a>->/a hrecmddrivers/scsi/atcmdsref-//a> =abortKERN_N/a>->/tag"sref">Hhosa////agRKERN_N/Messagref="+copatinitialize_SC-si/atdo_abortKERN_N/a>->/tag"sref">Hhosa////agRKERext_20fk>/a hrecmddrnext_20fk_NCR5instancL433" id;"L393" class="line" nams;/1150">1750/11955       19paj class="/1195>/15code20 el>20"="sref">cm/a d///////->/tda"sref"sref">h">N/a>->/a hrecmddrivers/scsi/atcmdsref-//a> = 0; /a href=ass="sref">hostdata///"shaseL3ss =  =a>->/a hrecmddrivers/scsi/atcmdsref-//a> =SC-&Statu_TO_TCRKERN_N/meStatu_ref-/|<20 =H_NO" claass="sref">hostdata///"shaseL3ss =  =a>->/a hrecmddrivers/scsi/atcmdsref-//a> =SC->/a hretmpatSC-rs/s.R_TO_TCRKERN =/a h5HA8next_20fk>/a hrecmddrnext_20fk_NCR5instanceKERN)id;"L360" class="line" nams;/1750">1750//1966       19f (/a href=//196>//1NCR520"dr>20 6sref">ta/ALL">ta///////////////ss="srefit;/!, LNK"+code=allDMA_PRINTK="LNK"+code=N59"><"printkKERN_Ng %d for target ousaest target %gd do  >for velun >for vepted DATAOUT.5380..L360" id;1L360" class="line" nams;/1729">1729/11967       19       retu/1196>/11"+co20   >20ncla ass="sref">Hhosssssssssssssssssss,ssssst;,7mdsref-//()sst="sre#endit;Ngd do  >for velun >for vepted DATAOUT.5380..eKERN)id;"L360" class="line" nams;/1750">1750//1968       19f (!/a href//196>//1ef="20   >20n" class="sref">ta//a>="slun//a> ="s/////-&gR_TO_TCRKERN_N/ef="+code=allHOSTNlass="sref">cmdss="srefit;/!, a>->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdevi;/rs/scsi/atcmdsref-//a> =i->/a hrecmddriivers/scsi/atdL4" ip, />->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdevi;/rs/scsi/atcmdsref-//a> =lunhref="+codvendriun clatinstantL393" id;1L393" class="line" nams;/1150">1450//1045       20"drivers/s     a h_reaSassssssssta=a       a h_reaS0/1197        19       retu/1197>/17rget20nt >.L360" id;1L360" class="line" nams;/1850">1850//199        19spaj class=//199>//19+co20   >20nclass="srecs===ct_abot_TO_TCRKERN_N/mecs===ct_abot_lize_SC->/a hretmELECT_ENABLE;/a si/a,a<4_writeKERN_cmdsref-//a> =i->/a hrecmddriivers/scsidsref-//a> =lunhref="+codvendriun clatinstan#L393" id;1L393" class="line" nams;"1893">1893//1951       19       }<//11the20ss=>20=tm1194sref"d;1L455" class="line" nams;/1848">1448//1982       19ss="comment//198>//19+co20   >20nclass="srec> ="s/////->/tda"sref"sref">h">N/a>->/a hrecmddrivers/scsi/atcmdsref-//a> =50" _>->/a hrecmddrivers/stinstaneL393" id;1L393" class="line" nams;/1850">1893/12023       20       /a hr1f="+c1de=TA20   >20"" class="sodsinkNOT0" _> = 0; /a href=ELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdconn=ct/198>//17tup20f (conn=ct/1RKERext_20fk>/a hrecmddrnext_20fk_NCR5instaneL393" id;1L393" class="line" nams;/1850">1850/11954       19"drivers/sc/1195>/15 hre20  e=pr20   >20"6sref">ta//a>-&gggggggggbreakinstan.L360" id;1L360" class="line" nams;/1850">1450//1022       20       /a hr1f="+c1de=h INKED_he command.rrr========================*d(REAL_DMA)r*#L393" id;1L393" class="line" nams;"1850">1850/12046       20or (/a href=1+code1targe20or >20n6sref">ABOR="NDEBUGsref /amABOR= hreICR_BASEdrLINKED_FLG_CMDi/atPLET/+co2E_DATA1986srefd;1L450" class="line" nams;/1129">1829/120n7       20       for (1a hre1="+co20   >20nclass=" hreINIT"stdata////////caser =L hreINIT"stdata/ hreICR_BASEdrLINKED_FLG_CMDi/atPLET/+co2E_DATA1eKERN)id;"L450" class="line" nams;"1850">1450//1988       19a href="+co//198>//111111111 >20n" class="sref">ta//a>="ssssssssst="sre#endit;,74" class="Accept8messagroby clea  ACK=3d(REAL_DMA)r*DMAsref)d;1L450" class="line" nams;"1850">1450//1989       19"drivers/sc//198>//1e=TA1111 >20"tmap_zero" class=" " -&gssssssssta=a       a href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i N/a>->/a hreICR_BASEdrivers/scsi/aSinstanle (1) id;1L448" class="line" nams;"1950">1450//199        19spaj class=//199>//19+co20   ">TAG_ALL">ta/////////////gu///her: possisssssa=====th Falcon loc the lass="Accept8messagroby clea  ACK=3d(REAL_DMA)r*izeKERN;d;1L429" class="line" nams;"1993">1393//1991       19ss="comment//199>//1e=ta20   >20 sref">TAG_falconef-/t_reendivers/scsi/a,ass=falconef-/t_reendiv3//1++/a>->/a hreICR_BASEdrivers/scsi/aSinstanl94sref"d;1L450" class="line" nams;"1948">1448//1992       19ss="comment//199>//1e=TA20  > = 0; /a href=ELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdconn=ct/198>//17tup20f (conn=ct/1RKERf="+codtransfarsizeULLgssssssssta=a   ULLRKERext_20fk>/a hrecmddrnext_20fk_NCR5instan#L433" id;1L450" class="line" nams;/1950">1450//1993       19f (!/a href//199>//1 hre20  +codtransfarsizQU">ta///////////////ss=QU">ta///, LNK"+code=allDMA_PRINTK="LNK"+code=N59"><"iiiii38s====printkKERN_Ng, %d for target %gd do  >for velun >for vepted DATAOUT.5380.sref)) id;1L448" class="line" nams;"1950">1450//1994       19   !/a href//199>//1si/a20<20 =H_s="sref">hosss="sref">ta//a>="sssssssdst="sre#endit;Ng %d for ly plete.%dabortedCR5380.c#L433" i/"ref="+code=allHOSTNlass="sref">c5/tdata////////rea>->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdevi;/rs/scsi/atcmdsref-//a> =i->/a hrecmddriivers/scsi/atdL4" ip, />->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdevi;/rs/scsi/atcmdsref-//a> =lunhref="+codvendriun clatinstan#L393" id;1L393" class="line" nams;/1950">1950/12045       20"drivers/sSUPPOR=_TAGSassssssssta=a  SUPPOR=_TAGS0/1197        19       retu/1197>/17rget20nt >eL393" id;1L393" class="line" nams;/1150">1950//1966       19f (/a href=//196>//1NCR520"dr>20 6sref">ta/rs/_fres_tag"sref">Hhosa///rs/_fres_taga> =50" _>->/a hrecmddrivers/stinstaneL393" id;1L393" class="line" nams;/1129">1929/11967       19       retu/1196>/11"+co20   >20 class="sref">hstatu__ERN_rivers/scsi/atcmtatu__ERN_lize_SC->/a hretmpatinitialize_SC-si/atdo_abortKERN_N/a>->/a hrecmddrivers/scsi/atcmdsref-//a> =SC-&Statu_TO_TCRKERN_N/meStatu_ref-) =="+codtransfarsizQUEUE_FULLgssssssssta=a  QUEUE_FULLa> =next_20fk>/a hrecmddrnext_20fk_NCR5ass="sr#L393" id;1L393" class="line" nams;"1950">1450//1998       19           //199>//1ef="20   >20n" cl>20"=H_NO" class="sref">Tii38i QUEUE FULL mtatu_sre#o BUSY, I===snkt*    redutanes atime requir Note get Tuind the targcc#L433" d;1L450" class="line" nams;"1950">1948/11959       19ss="comment/1195>/15vers19 el>199erge_contiguousariiiiiiiii* miderates cannotKERN_sssQUEUE FULL :-( (T    redutanes atime requir Note get Tuind the targ2#L433" id;2L450" class="line" nams;/2393">2050/1196        19ss="comment/1196>/169i/a19<197ged command. If thiiiiiiii* iiiii38ssssresressssvs=" BUSY). Also updsourou"N59"><4_informa().shouldt" classmu=t ctes _NCRan2ceKERN)id;2L450" class="line" nams;"2393">2093/12041       20a href="+cod1=TAG_14  * 20>s=>20>merge seved. If thiiiiiiii* queue  = a2050/120=2       20"drivers/scs1/atar11  */20>s=>20>s is possible iiiiiiiiiiiiiiCR5380.ssnow=================* ly conns available#ta//a>chang2SEsref"|d;2L450" class="line" nams;"2393">2093/120=3       20ss="comment"1/* Ma11houl19f (>199tming"74" classssssssssssssass="Accept8messagroby clea  ACK=3d(REAL_DMA)r2TNsref)id;2L450" class="line" nams;"2450">2450/120>4       20>  !/a href=1+code10si/a20<20 =H_N">TAG_ALL">ta/////////////Andrndi:#39;tmiderates crsi=====s aboume,8sistanes apseudo-efitRN_Nnnectessfarres orsex2ref = 1;d;2L429" class="line" nams;"2450">2050/120=5       20ss="comment"1 */199"drivers/scsi/a===========  QUEUE_FULLsnow=ssass="Accept8messagroby clea  ACK=3d(REAL_DMA)r2T6f = 1;d;2L393" class="line" nams;/2448">2448/120>6       20>      /a hr1f="+c10NCR520"dr>20 6sref">ta//a>->TAG_ALLOCgssssssssta=a  TAG_ALLOC8/120*KERN_N/a>->/ta"sref">Hhosa////aRKERf="eL3ss =  =/a href="+TagAllocgssssssssta=a  TagAllocRKER[i/"ref="+code=allHOSTNlass="sref">c5/tdata////////rea>->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdevi;/rs/scsi/at][i/"ref="+code=allHOSTNlass="sref">c5/tdata////////rea>->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdevi;/rs/scsi/atcm]bortKERN_N/a>->/a hrecmddrivers/stinsta2ceKERN)id;2L450" class="line" nams;"2450">2450/120>7       20>      /a hr1f="+c10"+co20   >20nclass="sref">lun//TAG_>ta///////////////ss=TAG_>ta///, LNK"+code=allDMA_PRINTK="LNK"+code=N59"><"printkKERN_Ng %d for lass="er target %gd do  >for velun >for vepted DATAOUT.53802ceKERN)id;2L450" class="line" nams;"2450">2450/120>8       20>           1     10ef="20   >20n" c0   >20nclas+code=allDMA_PRINTK="LNK"+QUEUE_FULLssvs=" ;d for CR5380.sst="sre#endit;Ngd do  >for velun >for vepted DATAOUT.53802#L393" id;2L393" class="line" nams;"2450">2450/120>9       20>else {<20nclass="sref">lun//lete.%dabortedCR5380.c#L433" i/"ref="+code=allHOSTNlass="sref">c5/tdata////////rea>->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdevi;/rs/scsi/atcmdsref-//a> =i->/a hrecmddriivers/scsi/atdL4" ip, />->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdevi;/rs/scsi/atcmgd do  >for velun >for vepted DATAOUT.53802efelse id;2L448" class="line" nams;22450">2193/120>        20>   e {<lun//a> ="s/////ta"sref">Hhosa////aRKERabortKERN_N/a>->/ar_allocat/198>//17tup20f (ar_allocat/1tdo_abortKERN_N/a>->/a hrecmddrivers/stinsta2efelse id;2L448" class="line" nams;22493">2393/120=1       20"drivers/scs1/atar11e=ta20   >20 sre >20 class="sref">hta"sref">Hhosa////aRKERabortKERN_N/a>->/queue_tidual" cl -s="shasqueue_tiduRKERN /!, un//a> ="s/////ta"sref">Hhosa////aRKERabortKERN_N/a>->/ar_allocat/198>//17tup20f (ar_allocat/1tdo_aortKERN_N/a>->/a hrecmddrivers/stinsta2eef = 1;d;2L393" class="line" nams;/2450">2148/11952       19<20nclass=ef">lun//a> ="s/////ta"sref">Hhosa////aRKERabortKERN_N/a>->/ar_allocat/198>//17tup20f (ar_allocat/1tdo_N_N/Messagref="+coda"sref">Hhosa////aRKERabortKERN_N/a>->/queue_tidual" cl -s="shasqueue_tiduRKERbortKERN_N/a>->/a hrecmddrivers/stinsta2eEsref"|d;2L393" class="line" nams;/2493">2150//1993       19f (!/a href//199>//1 hre20   >20"tmap_zero" class=" " -&ggggggggg=" " 2,L393" id;2L393" class="line" nams;/2450">2450/120=7       20id /a href="1code=1md_fr2#" clnsta2.L360" id;2L360" class="line" nams;/2450">2150/11955       19paj class="/1195>/15code20 el>20"="sref">cmELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdbusyABLE;/a si/a,ac5/tdata////////rea>->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdevi;/rs/scsi/at]"eL3ss= ~(1N =/a h5HAdsref-//a> =i->/a hrecmddriivers/scsi/atdL4" ip, />->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdevi;/rs/scsi/atcmabortKERN_N/a>->/a hrecmddrivers/stinsta2e6f = 1;d;2L393" class="line" nams;"2450">2450/12951       19       }<//11the20ss=>20=tm2ceKERN)id;2L450" class="line" nams;"2450">2150/120>7       20>      /a hr1f="+c10"+co20   >20"=H_NO" class="sref">Hhossssssssst="sre#endit;,74" class="Enablebus flnd.=2maerrup.* =d(REAL_DMA)r2ceKERN)id;2L450" class="line" nams;"2450">2450/120=8       20="drivers/sc1i/ata11ef="20   >20"tmap_zero" class=" " -&gssssssssta=a       a href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/SELECT_ENABLE;/a hreSTATUS_REGdriELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdamsdrivers/scsi/athostdamssref-//a> =id_mashref="+codsinkNOid_mash clatinsta2ceKERN)id;2L450" class="line" nams;"2450">2450/12 =id_mashref="+codsinkNOid_mash clatinsta2ng#enditd;2L429" class="line" nams;"2450">2450/1202        20"drivers/scs1/atar1_NCR520"dr>20 6sref">ta//a>->/a d///////-&gR="d>198 is a free tag and the targ2>/a }d;2L450" class="line" nams;"2393">2293/12041       20a href="+cod1=TAG_14  * 20>s=>20>merge seved. If th* I380.smiiii sure whaiiiiiicorrt="siiiiiito dog a"issss:a d///////-&gR="d>198 is a free tag and the targ2&ef = 1;d;2L450" class="line" nams;"2448">2250/120=2       20"drivers/scs1/atar11  */20>s=>20>s is possible iiii/a d///////-&gR="d>198 is a free tag and the targ2&Esref"|d;2L393" class="line" nams;c2d93">2250//1973       19       /a h//197>//1houl19f (>199tming"74"         *========iiiii38sthaiijust execuamscsssNOT a ousaesta d///////-&gR="d>198 is a free tag and the targ2&L393" id;2L450" class="line" nams;/2448">2250/120=4       20ss="comment"1 * un11etup19   >199/spaj><2250/120=5       20ss="comment"1 */199"drivers/scsi/a===* crsi=n'tvalaesss===== stoi_NCpar na#en()ffarcalledphas///h un20fkcatly conns#ta//a>chang2ceKERN)id;2L450" class="line" nams;"2450">2250//1996       19       /a h//199>//1si/a19<197ged command. If th/a d///////-&gR="d>198 is a free tag and the targ2&eKERN)id;2L450" class="line" nams;"2450">2229/11957       19"drivers/sc/1195>/15NCR519"dr>195 is a free tag and t===iss=== a REQUEST SENSEiiiiii38mewe"s////som====yef">ta//ss, eistanitshaarnofects moreotectes _NCRan2OUTlass:d;2L450" class="line" nams;"2393">2250/11958       19ss="comment/1195>/15j><<19ss=>195drivers/scsi/atari_N   fe5380 sourbetwee sari_failure crsi=s===== originaout t. Tuisdevi;/, hopefullytani0./a>connectes wi2ref = 1;d;2L429" class="line" nams;"2448">2248/11959       19ss="comment/1195>/15vers19 el>199erge_contiguousari_Ni38sthi_failure crsi=s===== REQUEST sense -=====obviousut t. Tuisdevi;/, hopefullytani0./a>connectes wi2ref = 1;d;2L429" class="line" nams;"2450">2350/1196        19ss="comment/1196>/169i/a19<197ged command. If the="+co2ssssurr===mew a"iswi_fall===roughNi38sleiiiii    redutanes atime requir Note get Tuind the targ2#L393" id;2L393" class="line" nams;c2393">2393/12041       20a href="+cod1=TAG_14  * 20>s=>20>merge seved. If th* atcmds crsi=unchanged)ffarcalledphas///h un20fkcatly conns#ta//a>chang2ceKERN)id;2L450" class="line" nams;"2450">2350/120=2       20"drivers/scs1/atar11  */20>s=>20>s is possible iiii/a d///////-&gR="d>198 is a free tag and the targ2ref = 1;d;2L429" class="line" nams;"2493">2350//1973       19       /a h//197>//1houl19f (>199tming"74"         *=Tiiiion-obviousspla===ifie a"is=== REQUEST SENSEifailths f8messagrss" shaseifforsmoreo20fkcand the targ220>3srefd;2L450" class="line" nams;"2450">2350/120=4       20ss="comment"1 * un11etup19   >199/spaj><2450/12"Enablebus flnd.=2maerrup.* =d(REAL_DMA)r2eeKERN)id;2L393" class="line" nams;/2450">2348/120>6       20>      /a hr1f="+c10NCR520"d >20 class="sref">hgt;/a hrecmddriivers/scsi/atdL4" ip, />->/cmn;/a hrecmddriiversn/scsi[0] !_N/Messagref="+coREQUEST_SENSE/a hrecmddriiveREQUEST_SENSEtdo_aortKERN_N/a>->/a hrecmddrivers/stinsta2#L393" id;2L393" class="line" nams;/2450">2350/120>7       20>      /a hr1f="+c10"+co20   >20nclass="sref">lun//a> ="s/////->/tda"sref"sref">h">N/a>->/a hrecmddrivers/scsi/atcmdsref-//a> = 0; /a href=ass="sref">hostdata///"shaseL3ss =  =a>->/a hrecmddrivers/scsi/atcmdsref-//a> =SC-&Statu_TO_TCRKERN_N/meStatu_ref-/|<20 =H_NO" claass="sref">hostdata///"shaseL3ss =  =a>->/a hrecmddrivers/scsi/atcmdsr =  =a>->/gt;/a hretmpatSC-rs/s.R_TO_TCRKERN =/a h5HA8next_20fk>/a hrecmddrnext_20fk_NCR5insta2lL393" id;2L393" class="line" nams;r2393">2350/120=8       20="drivers/sc1i/ata11ef="20  20"tm >20 class="sref">hstatu__ERN_rivers/scsi/atcmtatu__ERN_lize_SC->/a hretmpatinitialize_SC-si/atdo_abortKERN_N/a>->/a hrecmddrivers/scsi/atcmdsref-//a> =SC-&Statu_TO_TCRKERN_N/meStatu_ref-) !_N/Messagref="+coGOOtar1_NCR52#iflinGOOttdo_aortKERN_N/a>->/a hrecmddrivers/stinsta2#ef = 1;d;2L393" class="line" nams;=2348">2350/120>9       20>else {<lun//a> ="s/////->/tda"sref"sref">h">N/a>->/a hrecmddrivers/scsi/atcmdsref-//a_SC->/a hretmpatinitialize_SC-si/atdo_abortKERN_N/a>->/a hrecmddrivers/scsi/atcmdsref-/eL3ss 0x00ffff)/|<20 =H_NO" cla"resultdrivers/scsi/attttttt913h l393" =/a h5HASEnext_20fk>/a hrecmddrnext_20fk_NCR5insta2.L360" id;2L360" class="line" nams;/2450">2450/1197        19       retu/1197>/17rget20nt 2.L360" id;2L360" class="line" nams;/2493">2393/12045       20"drivers/sAUTOSENSE/a hrecmddriiveAUTOSENSE0/1197        19       retu/1197>/17rget20nt 2.eKERN)id;2L360" class="line" nams;/2450">2448/11962       19ss="comment/1196>/11e=TA20   >200 class="sref">hgt;/a hrecmddriivers/scsi/atdL4" ip, />->/cmn;/a hrecmddriiversn/scsi[0] =="+codtransfarsizREQUEST_SENSE/a hrecmddriiveREQUEST_SENSEtdo_a/eL3sseL3ss97        19       retu/1197>/17rget20nt 2.ef = 1;d;2L360" class="line" nams;/2493">2450/11963       19ss="comment/1196>/11 hre20   >20 " creSTATUS_REGdriELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdse_TO_TCRKERN_N/mese_atcmdsref-//a> =SC-&rs/_haseNOTICE" cla5/srs/_hasa> =next_20fk>/a hrecmddrnext_20fk_NCR5ass="s2.L360" id;2L360" class="line" nams;/2450">2450/120>4       20>  !/a href=1+code10si/a20<20 =H_NO" class="sref"dsreehRN_Ntoi__cmn;/a hrecmddriive"dsreehRN_Ntoi__cmn;lize_SC->/a hretmpatinitialize_SC-si/atdo_aseL3ss =  =/a href="+ELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdse_TO_TCRKERN_N/mese_atcmnext_20fk>/a hrecmddrnext_20fk_NCR5insta2.felse id;2L393" class="line" nams;c2450">2450/120>5       20>      /a hr1f="+c10NCR520"dr>20n="sref">cmd//a>-&gELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdse_TO_TCRKERN_N/mese_atcmdsref-//a> =SC-&rs/_haseNOTICE" cla5/srs/_hasa> =//a0 ext_20fk>/a hrecmddrnext_20fk_NCR5insta2.eKERN)id;2L450" class="line" nams;"2450">2450/12046       20or (/a href=1+code1ttttttttt >20"tmap_zero" class=" " -&ggggggggg=" " 2OUTlass:d;2L450" class="line" nams;"2429">2429/12>20"tmap_zero" class=" " -&ggggggggg=" " 2OL393" id;2L450" class="line" nams;"2493">2393/12048       20            1  /a 1ref="20   >200 class="sref">hgt;/a hrecmddriivers/scsi/atdL4" ip, />->/cmn;/a hrecmddriiversn/scsi[0] !_N/Messagref="+coREQUEST_SENSE/a hrecmddriiveREQUEST_SENSEtdo_a/eL3sseL3ss97        19       retu/1197>/17rget20nt 2.ef = 1;d;2L393" class="line" nams;c2448">2448/11949       19           /1194a 1re=TA20      0 class="sref">hstatu__ERN_rivers/scsi/atcmtatu__ERN_lize_SC->/a hretmpatinitialize_SC-si/atdo_abortKERN_N/a>->/a hrecmddrivers/scsi/atcmdsref-//a> =SC-&Statu_TO_TCRKERN_N/meStatu_ref-) =="+codtransfarsizCHECK_CONDIir NTO_TCRKERN_N/meCHECK_CONDIir Nref-)next_20fk>/a hrecmddrnext_20fk_NCR5ass="s2ceKERN)id;2L450" class="line" nams;"2550">2593/120>        20>   e {<2593/11961       19ss="comment/1196>/16LOC"19a h2c#L433" d;2L450" class="line" nams;"2548">2448/11952       19<20ncla   20"drivers/sASEN_>ta///////////////ss=ASEN_>ta///, LNK"+code=allDMA_PRINTK="LNK"+code=N59"><"perfoeck g ousaest sensest="sre#endit;Ng %d for ly plete.%dabortedCR5380.c#L433next_20fk>/a hrecmddrnext_20fk_NCR5insta22ef = 1;d;2L450" class="line" nams;"2550">2450/11953       19="drivers/s/1195>/15houl20> (220>3srefd;2L450" class="line" nams;"2150">2450/11954       19"drivers/sc/1195>/15 hre20  r>20ncla   20"drivers/slocal_irq_sav_rivers/scsi/atclocal_irq_sav_lize_SC->/a hretmflag_TO_TCRKERN_N/meflag_L433next_20fk>/a hrecmddrnext_20fk_NCR5insta22felse id;2L393" class="line" nams;c2150">2450/11955       19paj class="/1195>/15code20 er>20ncla   20"drivers/sLIS="NDEBUGsref /amLIS=lize_SC->/a hretmpatinitialize_SC-si/atdo_areSTATUS_REGdriELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdassut_queueers/scsi/athostdssut_queueL433next_20fk>/a hrecmddrnext_20fk_NCR5insta22eKERN)id;2L450" class="line" nams;"2550">2450/11956       19"drivers/sc/1195>/15NCR520"dr>20ncla   20"drivers/sSET_NEX="NDEBUGsref /amSET_NEX=lize_SC->/a hretmpatinitialize_SC-si/atdo_asreSTATUS_REGdriELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdassut_queueers/scsi/athostdssut_queueL433next_20fk>/a hrecmddrnext_20fk_NCR5insta22UTlass:d;2L393" class="line" nams;/2529">2550/120>7       20>      /a hr1f="+c10"+co20   >20nclass="sref">lun//ELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdassut_queueers/scsi/athostdssut_queueL433//a_SC->/a hretmSdsreCmn;/a hrecmddriiveSdsreCmn;L433/*)2ss="sref">lun//a> ="s/////->/tda"srefext_20fk>/a hrecmddrnext_20fk_NCR5insta22L393" id;2L393" class="line" nams;/2550">2550//1998       19           //199>//1ef="20   >20n" cl  20"drivers/slocal_irq_N_Ntoi_rivers/scsi/atclocal_irq_N_Ntoi_lize_SC->/a hretmflag_TO_TCRKERN_N/meflag_L433next_20fk>/a hrecmddrnext_20fk_NCR5insta22ef = 1;d;2L393" class="line" nams;/2548">2550/120>9       20>else {<lun//QU">ta///////////////ss=QU">ta///, LNK"+code=allDMA_PRINTK="LNK"+code=N59"><"REQUEST SENSEiaddmsc# thead=s==target %gd do  >for velun >for vepted DATAOUT.53802.L360" id;2L360" class="line" nams;/2650">2693/120>        20>   e {<"+code=allDMA_PRINTK="LNK"+dssut queuest="sre#endit;Ng %d for ly pl_.%dabortedCR53_c#L43350" _>2693/120=1       20"drivers/scs1/atar11e=ta20  } =7       20id /a href="1code=1md_fr2#" clnsta2194sref"d;2L455" class="line" nams;/2648">2448/11022       20       /a hr1f="+c1de=h AUTOSENSE=*" class="Enablebus flnd.=2maerrup.* =d(REAL_DMA)r2efelse id;2L448" class="line" nams;22650">2450/11963       19ss="comment/1196>/11 hre20  xt_20fk>/a hrecmddrnext_20fk_NCR5ass="s2c#L433" d;2L450" class="line" nams;"2650">2450/11045       20"drivers/s     a h_reaSassssssssta=a       a h_reaS0/1197        19       retu/1197>/17rget20nt 2#L433" id;2L450" class="line" nams;/2650">2450/11965       19"drivers/sc/1196>/16code20 el>20"="s0" _>2650/12951       19       }<//11the20ss=>20=tm2ref = 1;d;2L429" class="line" nams;"2629">2429/11967       19       retu/1196>/11"+co20   >20nclass="sref">lun//c> ="s/////->/tda"sref"sref">h">N/a>->/a hrecmddrivers/scsi/atcmdsref-//a> =50" _>->/a hrecmddrivers/stinsta2ceKERN)id;2L450" class="line" nams;"2150">2450/11968       19f (!/a href/1196>/11ef="20   >20"tmap_zero" class=" " -&ggggggggg=" " 2ceKERN)id;2L450" class="line" nams;"2150">2650/12 =id_mashref="+codsinkNOid_mash clatinsta2>/a }d;2L450" class="line" nams;"2750">2750//199        19spaj class=//199>//19+co20   >20nclass="sre class=" " -&gssssssssta=a       a href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/SELECT_ENABLE;/a hreSTATUS_REGdriELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdamsdrivers/scsi/athostdamssref-//a> =id_mashref="+codsinkNOid_mash clatinsta2&L393" id;2L393" class="line" nams;"2793">2393/11971       19f (/a href=/1197>/17e=ta20   >20 6sref">ta//a>->/a d///////-&gR="d>198 is a free tag and the targ2ceKERN)id;2L450" class="line" nams;"2148">2750/120=2       20"drivers/scs1/atar11  */20>s=>20>s is possible iiii/ R_Ntoi_ ph+co2bit=====0 so    re#endit;///ssst="ion,a d///////-&gR="d>198 is a free tag and the targ2cfelse id;2L393" class="line" nams;/2750">2450//1973       19       /a h//197>//1houl19f (>199tming"74"         *==rbitr======c   atcmm==================* ly conns available#ta//a>chang2eL393" id;2L393" class="line" nams;/2150">2750/120=4       20ss="comment"1 * un11etup19   >199/spaj><2750/11955       19paj class="/1195>/15code20 el>20"="sref">cm class=" " -&gssssssssta=a       a href="+code=allN59"><4_wriTARGET/scsi/atN59"><4_writeKERN_NTARGET/scsi/atN59"RKER, 0a> =id_mashref="+codsinkNOid_mash clatinsta2&eKERN)id;2L360" class="line" nams;/2750">2750//1 =id_mashref="+codsinkNOid_mash clatinsta2&ef = 1;d;2L360" class="line" nams;/2729">2729/11967       19       retu/1196>/11"+co20  while200 class="sref">h     a hreadgssssssssta=a       a hread+code=allN59"><4_writreaUSi/atN59"><4_writeKERreaUSi/attdo_a/eL3ssa   20"drivers/sSR_BSYN59"><4_writeKERR_BSYtdo_a/eL3sseL3ss  class="sref">hoELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdconn=ct/198>//17tup20f (conn=ct/1RKERaortKERN_N/a>->/a hrecmddrivers/stinsta2.eKERN)id;2L360" class="line" nams;/2750">2750//1968       19f (!/a href//196>//1ef="20   >20n" c>/a hrehostdbarrier98>//17tup20f (barrier+codea> =id_mashref="+codsinkNOid_mash clatinsta2&eKERN)id;2L393" class="line" nams;/2150">2750/12 =id_mashref="+codsinkNOid_mash clatinsta2.L360" id;2L360" class="line" nams;/2850">2850//199        19spaj class=//199>//19+co20   >20nclass="srefalconef-/t_reendivers/scsi/a,ass=falconef-/t_reendiv3//1--> =id_mashref="+codsinkNOid_mash clatinsta2#L393" id;2L393" class="line" nams;"2893">2893/11971       19f (/a href=/1197>/17e=ta20   >20 6sref">ta//a>->/ ++roman: For Falcon SCSI, reendivs=== loc  onii    redutanes atime requir Note get Tuind the targ2194sref"d;2L455" class="line" nams;/2848">2850/120=2       20"drivers/scs1/atar11  */20>s=>20>s is possible iiii/ ST-DMAg a"issfg &#o/herNCR5380.sss"iswaitk g onii    redutanes atime requir Note get Tuind the targ21felse id;2L393" class="line" nams;/2850">2850//1973       19       /a h//197>//1houl19f (>199tming"74"         *=disconn=ct/1 queue=================* ly conns available#ta//a>chang2eL393" id;2L393" class="line" nams;/2850">2850/120=4       20ss="comment"1 * un11etup19   >199/spaj><2850/11955       19paj class="/1195>/15code20 el>20"="sref">cmfalconereendiv_loc _if_possisssers/scsi/a,ass=falconereendiv_loc _if_possissslize_SC->/a hretmELECT_ENABLE;/a si/a,a<4_writeKERN_a> =id_mashref="+codsinkNOid_mash clatinsta2#L393" id;2L393" class="line" nams;"2850">2850/12046       20or (/a href=1+code1tttttttttlass="sref">ta//a>="slun//a> ="s/////" clasinsta21986srefd;2L450" class="line" nams;/2129">2829/120n7       20       for (1a hre1="+co20   >20nclass="MESSAGENABJN/SABLE;/a si/a,a2450//1988       19a href="+co//198>//111111111 >20n" class="sref">ta//a>="ssssssssst="sre#endit;,74" class="Accept8messagroby clea  ACK=3d(REAL_DMA)r2DMAsref)d;2L450" class="line" nams;"2850">2450//1989       19"drivers/sc//198>//1e=TA1111 >20"tmap_zero" class=" " -&gssssssssta=a       a href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i N/a>->/a hreICR_BASE#3 ACK=3d(REAL_DMA)r2le (1) id;2L448" class="line" nams;"2950">2450//199        19spaj class=//199>//19+co20   ">TAG_ALL">ta///////////Hhossssssssst="sre#endit;,74" class="Enablebus flnd.=2maerrup.* =d(REAL_DMA)r2izeKERN;d;2L429" class="line" nams;"2993">2393//1991       19ss="comment//199>//1e=ta20   >20 sref">TAG_ class=" " -&gssssssssta=a       a href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/SELECT_ENABLE;/a hreSTATUS_REGdriELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdamsdrivers/scsi/athostdamssref-//a> =id_mashref="+codsinkNOid_mash clatiMA)r2i94sref"d;2L450" class="line" nams;"2948">2448//1992       19ss="comment//199>//1e=TA20  switcha_SC->/a hretmELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdE;/t_mt;/a hretmpatSC-rs/s.E;/t_mt;/a ha> =next_20fk>/a hrecmddrnext_20fk_NCR5ass="s2#L433" id;2L450" class="line" nams;/2950">2450//1993       19f (!/a href//199>//1 hre20  "+co20   >20nclass="HEAD_OF_QUEUE_TAtN59"><4_writeKEHEAD_OF_QUEUE_TAt9/12ICR_BASEdrLINKED_FLG_CMDi/atPLET/+co2E_DAT2sref)) id;2L448" class="line" nams;"2950">2450//1994       19   !/a href//199>//1si/a20<<"+co20   >20nclass="ORDERED_QUEUE_TAtN59"><4_writeKEORDERED_QUEUE_TAt9/12ICR_BASEdrLINKED_FLG_CMDi/atPLET/+co2E_DAT2sL360" id;2L393" class="line" nams;/2950">2950/11955       19paj class="/1195>/15code20 e"+co20   >20nclass="SItdat_QUEUE_TAtN59"><4_writeKESItdat_QUEUE_TAt9/12ICR_BASEdrLINKED_FLG_CMDi/atPLET/+co2E_DAT2sL393" id;2L393" class="line" nams;/2150">2950//1966       19f (/a href=//196>//1NCR520"ddddddddd >20"=H_NO" class="sref">TiiiprintkKobviously does5380.ssssupportiprggths f8messagrss" shaseifforsmoreo20fkcand the targ2eL393" id;2L393" class="line" nams;/2129">2929/11957       19"drivers/sc/1195>/15NCR519"dr>195 is a free tag anddddddddd* queut;,, eve saroughNit announcmsc#=sssabilitysres f8messagrss" shaseifforsmoreo20fkcand the targ2eeKERN)id;2L393" class="line" nams;"2950">2950/11958       19ss="comment/1195>/15j><<19ss=>195drivers/scsi/ataridddddddd* it==INQUIRY iteK ?!? (maybe only #=sssLUN?) Ok,a d///////-&gR="d>198 is a free tag and the targ2c#L433" d;2L450" class="line" nams;"2950">2948/11959       19ss="comment/1195>/15vers19 el>199erge_contiguousariiiiiiiii* #endi 380.ssrggth_supported380.sNi38sloc  === LUN, sirtKERd///////-&gR="d>198 is a free tag and the targ3#L433" id;3L450" class="line" nams;/3393">3050/1196        19ss="comment/1196>/169i/a19<197ged command. If thiiiiiiii* ====iiiii38si===reat/1 as unsrggth fur/herNon=================* ly conns available#ta//a>chang3ceKERN)id;3L450" class="line" nams;"3393">3093/12041       20a href="+cod1=TAG_14  * 20>s=>20>merge seved. If thiiiiiiii*" class="Enablebus flnd.=2maerrup.* =d(REAL_DMA)r3ref = 1;d;3L429" class="line" nams;"3360">3048/11952       19<20ncla   20"drivers/sgt;/a hrecmddriivers/scsi/atdL4" ip, />->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinssrggth_supportedmddrivers/scsi/srggth_supportedL433//a0> =id_mashref="+codsinkNOid_mash clatiMA)r3SEsref"|d;3L450" class="line" nams;"3393">3050/11963       19ss="comment/1196>/11 hre20   >20 " creSTATUS_REGdriELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdbusyABLE;/a si/a,ac5/tdata////////rea>->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdevi;/rs/scsi/at]"|= (1N =/a h5HAdsref-//a> =i->/a hrecmddriivers/scsi/atdL4" ip, />->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdevi;/rs/scsi/atcmabortKERN_N/a>->/a hrecmddrivers/stinsta3TNsref)id;3L450" class="line" nams;"3450">3450/120>4       20>  !/a href=1+code10si/a20<20 =H_Nsref-//a> =i->/a hrecmddriivers/scsi/atdL4" ip, />->/tag"sref">Hhosa////agRKERN_N/Messagref="+coTAG_NONtINITIATOR_COMMATAG_NONtsrefext_20fk>/a hrecmddrnext_20fk_NCR5insta3ref = 1;d;3L429" class="line" nams;"3450">3050/11965       19"drivers/sc/1196>/16code20 el>20"="s0" _><"printkKERN_Ng %d for laj=ct/1 target %gd do  >for velun >for vepted DATAOUT.53803T6f = 1;d;3L393" class="line" nams;/3448">3448/120>6       20>      /a hr1f="+c10NCR520"dr>20 6sr0 el>20"="s0+code=allDMA_PRINTK="LNK"+QUEUE_TAGsssssst=;iprggth queut;, target %gd do  >for velun >for vepted DATAOUT.53803T7f = 1;d;3L393" class="line" nams;/3450">3450/120>7       20>      /a hr1f="+c10"+co20   >20ncla0 el>20"="s0+code=allDMA_PRINTK="LNK"+disosssdst="sre#endit;Ngd do  >for velun >for vepted DATAOUT.53803T8f = 1;d;3L393" class="line" nams;"3450">3450/120>8       20>           1     10ef="20   >20n" c0   >20nclas#37;d for ly plete.%dabortedCR5380.c#L433" i/"ref="+code=allHOSTNlass="sref">c5/tdata////////rea>->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdevi;/rs/scsi/atcmdsref-//a> =i->/a hrecmddriivers/scsi/atdL4" ip, />->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdevi;/rs/scsi/atcmabortKERN_N/a>->/a hrecmddrivers/stinsta3T9f = 1;d;3L450" class="line" nams;"3450">3450/120>9       20>else {<20"6sref">ta//a>-&gggggggggbreakinsta3efelse id;3L448" class="line" nams;23450">3193/120>        20>   e {<3393/120=1       20"drivers/scs1/atar11e=ta20  e=pr20   >20"6sref">ta//a>-&gggggggggbreakinsta3eef = 1;d;3L393" class="line" nams;/3450">3148/11952       19<20nclass="DISCONNN/SABLE;/a si/a,a3150//1993       19f (!/a href//199>//1 hre20   >20n" class="sref">ta//a>="ssssssssst="sre#endit;,74" class="Accept8messagroby clea  ACK=3d(REAL_DMA)r3,L393" id;3L393" class="line" nams;/3450">3150/120>4       20>  !/a href=1+code10si/a20<< >20"tmap_zero" class=" " -&gssssssssta=a       a href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i N/a>->/a hreICR_BASE#3 ACK=3d(REAL_DMA)r3.L360" id;3L360" class="line" nams;/3450">3150/11955       19paj class="/1195>/15code20 el>20"="sref">cmlocal_irq_sav_rivers/scsi/atclocal_irq_sav_lize_SC->/a hretmflag_TO_TCRKERN_N/meflag_L433next_20fk>/a hrecmddrnext_20fk_NCR5insta3e6f = 1;d;3L393" class="line" nams;"3450">3150//1966       19f (/a href=//196>//1NCR520"dr>20 6sref">ta/rs//a hrecmddriivers/scsi/atdL4" ip, />->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinsdisconn=ctmddrivers/scsi/aisconn=ctRKERN_N1ext_20fk>/a hrecmddrnext_20fk_NCR5insta3e7f = 1;d;3L450" class="line" nams;"3450">3150/120>7       20>      /a hr1f="+c10"+co20   devi;/a hreinsLIS="NDEBUGsref /amLIS=lize_SC->/a hretmpatinitialize_SC-si/atdo_areSTATUS_REGdriELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostddisconn=ct/1_queueers/scsi/athostdisconn=ct/1_queueL433next_20fk>/a hrecmddrnext_20fk_NCR5insta3e8f = 1;d;3L450" class="line" nams;"3450">3450/120=8       20="drivers/sc1i/ata11ef="20   >20"tmap_zero"SET_NEX="NDEBUGsref /amSET_NEX=lize_SC->/a hretmpatinitialize_SC-si/atdo_asreSTATUS_REGdriELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostddisconn=ct/1_queueers/scsi/athostdisconn=ct/1_queueL433next_20fk>/a hrecmddrnext_20fk_NCR5insta3e9f = 1;d;3L450" class="line" nams;"3450">3150//1989       19"drivers/sc//198>//1e=TA1111 >20"tmap_zero"ELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdconn=ct/198>//17tup20f (conn=ct/1RKERf="+codtransfarsizeULLgssssssssta=a   ULLRKERext_20fk>/a hrecmddrnext_20fk_NCR5insta3ng#enditd;3L429" class="line" nams;"3450">3450/1202        20"drivers/scs1/atar1_NCR520"dreSTATUS_REGdriELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostddisconn=ct/1_queueers/scsi/athostdisconn=ct/1_queueL433//a> = 0; /a href=ass="sref">hostdata///"shext_20fk>/a hrecmddrnext_20fk_NCR5insta3nfelse id;3L450" class="line" nams;"3393">3293//1991       19ss="comment//199>//1e=ta20   >20 sref">TAG_local_irq_N_Ntoi_rivers/scsi/atclocal_irq_N_Ntoi_lize_SC->/a hretmflag_TO_TCRKERN_N/meflag_L433next_20fk>/a hrecmddrnext_20fk_NCR5insta3&ef = 1;d;3L450" class="line" nams;"3448">3248//1992       19ss="comment//199>//1e=TA20  > = 0; /a href=QU">ta///////////////ss=QU">ta///, LNK"+code=allDMA_PRINTK="LNK"+code=N59"><"iiiii38s====printkKERN_Ng %d for === target %gd do  >for velun >for vepted DATAOUT.53803&Esref"|d;3L393" class="line" nams;c3d93">3250/11963       19ss="comment/1196>/11 hre20   >20 " c"s0+code=allDMA_PRINTK="LNK"+movth from conn=ct/1 n'ttarget %gd do  >for velun >for vepted DATAOUT.53803&L393" id;3L450" class="line" nams;/3448">3250//1994       19   !/a href//199>//1si/a20<20 =H_s="sref">hosss="sref">ta//a>=disconn=ct/1_queuest="sre#endit;Ng %d for ly plete.%dabortedCR5380.c#L433"d do  >for velun >for vepted DATAOUT.53803&L360" id;3L450" class="line" nams;/3450">3250/11965       19"drivers/sc/1196>/16code20 el>20"="s"dr>20 6sref">ta/rs//a hrecmddriivers/scsi/atdL4" ip, />->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdevi;/rs/scsi/atcmdsref-//a> =i->/a hrecmddriivers/scsi/atdL4" ip, />->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdevi;/rs/scsi/atcmabortKERN_N/a>->/a hrecmddrivers/stinsta3ceKERN)id;3L450" class="line" nams;"3450">3250//1966       19f (/a href=//196>//1NCR520"dr>20 6sref">ta//a>->/a d///////-&gR="d>198 is a free tag and the targ3&eKERN)id;3L450" class="line" nams;"3450">3229/11957       19"drivers/sc/1195>/15NCR519"dr>195 is a free tag and tR_Ntoi_ ph+co2bit=====0 so    re#endit;///ssst="ion,a d///////-&gR="d>198 is a free tag and the targ3OUTlass:d;3L450" class="line" nams;"3393">3250/11958       19ss="comment/1195>/15j><<19ss=>195drivers/scsi/atari_N=rbitr======c   atcmm==================* ly conns available#ta//a>chang3ref = 1;d;3L429" class="line" nams;"3448">3248/11959       19ss="comment/1195>/15vers19 el>199erge_contiguousari_ass="Accept8messagroby clea  ACK=3d(REAL_DMA)r3ref = 1;d;3L429" class="line" nams;"3450">3350//199        19spaj class=//199>//19+co20   >20nclass="sre class=" " -&gssssssssta=a       a href="+code=allN59"><4_wriTARGET/scsi/atN59"><4_writeKERN_NTARGET/scsi/atN59"RKER, 0a> =id_mashref="+codsinkNOid_mash clatinsta3#L393" id;3L393" class="line" nams;c3393">3393/11961       19ss="comment/1196>/16LOC"19a h3ceKERN)id;3L450" class="line" nams;"3450">3348//1992       19ss="comment//199>//1e=TA20  >">TAG_ALL">ta///////////Hhossssssssst="sre#endit;,74" class="Enablebus flnd.=2maerrup.* =d(REAL_DMA)r3ref = 1;d;3L429" class="line" nams;"3493">3350//1993       19f (!/a href//199>//1 hre20   >20 sref">TAG_ class=" " -&gssssssssta=a       a href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/SELECT_ENABLE;/a hreSTATUS_REGdriELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdamsdrivers/scsi/athostdamssref-//a> =id_mashref="+codsinkNup.* =d(REAL_DMA)r3rL393" id;3L450" class="line" nams;"3450">3350/120>4       20>  !/a href=1+code10si/a20<< ">TAG_ALL">ta///////////Waits====bus frei=n&#avoide" sty timeou;,74" class="Enablebus flnd.=2maerrup.* =d(REAL_DMA)r3rL360" id;3L448" class="line" nams;23450">3350/11965       19"drivers/sc/1196>/16code20 ewhile200 class="sref">h     a hreadgssssssssta=a       a hread+code=allN59"><4_writreaUSi/atN59"><4_writeKERreaUSi/attdo_a/eL3ssa   20"drivers/sSR_BSYN59"><4_writeKERR_BSYtdo_a/eL3sseL3ss  class="sref">hoELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdconn=ct/198>//17tup20f (conn=ct/1RKERaortKERN_N/a>->/a hrecmddrivers/stinsta3eeKERN)id;3L393" class="line" nams;/3450">3348/120>6       20>      /a hr1f="+c10NCR520"d hre20   >20 sref">TAG_barrier98>//17tup20f (barrier+codea> =id_mashref="+codsinkNOid_mash clatinsta3#L393" id;3L393" class="line" nams;/3450">3350/120>7       20>      /a hr1f="+c10"+co20  lass="sref">ta//a>="slun//a> ="s/////" clasinsta3lL393" id;3L393" class="line" nams;r3393">3350/120=8       20="drivers/sc1i/ata11ef="20  r>20 6sref">ta//a>->/a d///////-&gR="d>198 is a free tag and the targ3#ef = 1;d;3L393" class="line" nams;=3348">3348/11959       19ss="comment/1195>/15vers19 el>199erge_contiguousari_NTiiiSCSI iteK pore#ensi==*ItdaICITLY* sav_d onia aisconn=ctRKd///////-&gR="d>198 is a free tag and the targ3.L360" id;3L360" class="line" nams;/3450">3450/1196        19ss="comment/1196>/169i/a19<197ged command. If the=oper=====,sre viol======s===== SCSI spec so we=c   safelyRKd///////-&gR="d>198 is a free tag and the targ3.L393" id;3L360" class="line" nams;/3493">3493/12041       20a href="+cod1=TAG_14  * 20>s=>20>merge seved. If th* ignoi_ SAVE/RESTORE pore#ens=c ll()ffarcalledphas///h un20fkcatly conns#ta//a>chang3.eKERN)id;3L360" class="line" nams;/3450">3450/120=2       20"drivers/scs1/atar11  */20>s=>20>s is possible iiii/a d///////-&gR="d>198 is a free tag and the targ3.ef = 1;d;3L360" class="line" nams;/3493">3450//1973       19       /a h//197>//1houl19f (>199tming"74"         *=Un===tunately,/som==aisks viol==e==== SCSI spec anhs f8messagrss" shaseifforsmoreo20fkcand the targ3.L360" id;3L360" class="line" nams;/3450">3450/120=4       20ss="comment"1 * un11etup19   >199/spaj><3450/120=5       20ss="comment"1 */199"drivers/scsi/a===* aisconn=ctt;,, i38swe=hiiiiio e=pr2 spec io remares f8messagrss" shaseifforsmoreo20fkcand the targ3.eKERN)id;3L450" class="line" nams;"3450">3450//1996       19       /a h//199>//1si/a19<197ged command. If th/"iiip===sss)ffarcalledphas///h un20fkcatly conns#ta//a>chang3.L393" id;3L450" class="line" nams;"3429">3429/11957       19"drivers/sc/1195>/15NCR519"dr>195 is a free tag and " class="Enablebus flnd.=2maerrup.* =d(REAL_DMA)r3OL393" id;3L450" class="line" nams;"3493">3393/12048       20            1  /a 1r"+co20   >20nclass="SAVE_POINTERSN59"><4_writeKERAVE_POINTERS9/12ICR_BASEdrLINKED_FLG_CMDi/atPLET/+co2E_DAT3.ef = 1;d;3L393" class="line" nams;c3448">3448/11949       19           /1194a 1r"+co20   >20nclass="RESTORE_POINTERSN59"><4_writeKERESTORE_POINTERS9/12ICR_BASEdrLINKED_FLG_CMDi/atPLET/+co2E_DAT3ceKERN)id;3L450" class="line" nams;"3550">3593/120>        20>   e {<ta//a>="ssssssssst="sre#endit;,74" class="Accept8messagroby clea  ACK=3d(REAL_DMA)r320ntsrefd;3L393" class="line" nams;"3593">3593//1991       19ss="comment//199>//1e=ta20   >20 sref">TAG_ class=" " -&gssssssssta=a       a href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i N/a>->/a hreICR_BASE#3 ACK=3d(REAL_DMA)r3c#L433" d;3L450" class="line" nams;"3548">3448/11952       19<">TAG_ALL">ta///////////Hhossssssssst="sre#endit;,74" class="Enablebus flnd.=2maerrup.* =d(REAL_DMA)r32ef = 1;d;3L450" class="line" nams;"3550">3550//1993       19f (!/a href//199>//1 hre20   >20 sref">TAG_ class=" " -&gssssssssta=a       a href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/SELECT_ENABLE;/a hreSTATUS_REGdriELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdamsdrivers/scsi/athostdamssref-//a> =id_mashref="+codsinkNup.* =d(REAL_DMA)r320>3srefd;3L450" class="line" nams;"3150">3450/11954       19"drivers/sc/1195>/15 hre20  e=pr20   >20"6sref">ta//a>-&gggggggggbreakinsta32felse id;3L393" class="line" nams;c3150">3450/11955       19paj class="/1195>/15"+co20   >20nclass="EXTENDED_MESSAGEers/scsi/athostEXTENDED_MESSAGE9/12ICR_BASEdrLINKED_FLG_CMDi/atPLET/+co2E_DAT3ceKERN)id;3L450" class="line" nams;"3550">3450/11956       19"drivers/sc/1195>/15NCR520"dr>20 6sref">ta//a>->/a d///////-&gR="d>198 is a free tag and the targ32UTlass:d;3L393" class="line" nams;/3529">3529/11957       19"drivers/sc/1195>/15NCR519"dr>195 is a free tag and tExtendmscssssst=sss"isserssre thi_followt;,7foecats:a d///////-&gR="d>198 is a free tag and the targ32L393" id;3L393" class="line" nams;/3550">3550/11958       19ss="comment/1195>/15j><<19ss=>195drivers/scsi/atari_NBRN_lid///////-&gR="d>198 is a free tag and the targ32ef = 1;d;3L393" class="line" nams;/3548">3548/11959       19ss="comment/1195>/15vers19 el>199erge_contiguousari_N0ontiguousariEXTENDED_MESSAGE =="1lid///////-&gR="d>198 is a free tag and the targ3.L360" id;3L360" class="line" nams;/3650">3650/1196        19ss="comment/1196>/169i/a19<197ged command. If the=1mmand. If thlength (includesssn="srtes====ass=, does5380.sslid///////-&gR="d>198 is a free tag and the targ3.0ntsrefd;3L393" class="line" nams;c3693">3693/12041       20a href="+cod1=TAG_14  * 20>s=>20>merge seved. If th*              include first two"srtes)lid///////-&gR="d>198 is a free tag and the targ3.#L433" d;3L455" class="line" nams;/3648">3650/120=2       20"drivers/scs1/atar11  */20>s=>20>s is possible iiii/ 2ossible iiiiass=lid///////-&gR="d>198 is a free tag and the targ3.ef = 1;d;3L448" class="line" nams;23650">3650//1973       19       /a h//197>//1houl19f (>199tming"74"         *=3..length+1mmargu   /sut t. Tuisdevi;/, hopefullytani0./a>connectes wi3c#L433" d;3L450" class="line" nams;"3650">3650/120=4       20ss="comment"1 * un11etup19   >199/spaj><connectes wi3cfelse id;3L450" class="line" nams;/3650">3650/120=5       20ss="comment"1 */199"drivers/scsi/a===* S0./et*   extendmscssssst= bu fe5 with *   EXTENDED_MESSAGE9/ t. Tuisdevi;/, hopefullytani0./a>connectes wi3ceKERN)id;3L450" class="line" nams;"3650">3650//1996       19       /a h//199>//1si/a19<197ged command. If th/"srte, sirtK spi_pit;t_msg() want===   wholt * t;,)ffarcalledphas///h un20fkcatly conns#ta//a>chang3ref = 1;d;3L429" class="line" nams;"3629">3629/11957       19"drivers/sc/1195>/15NCR519"dr>195 is a free tag and " class="Enablebus flnd.=2maerrup.* =d(REAL_DMA)r3ceKERN)id;3L450" class="line" nams;"3150">3450/11968       19f (!/a href/1196>/11ef="20  0   >20nclass="extendms_msgers/scsi/athostextendms_msg0/11[0] =20   >20nclass="EXTENDED_MESSAGEers/scsi/athostEXTENDED_MESSAGE9/120   >20"6sref">ta//a>-&gggggggggbreakinsta3ceKERN)id;3L450" class="line" nams;"3150">3650//1989       19"drivers/sc//198>//1e=TA1111 >20n" class="sref">ta//a>="ssssfirst srtessre#endit;,74" class="Accept8messagroby clea  ACK=3d(REAL_DMA)r3>/a }d;3L450" class="line" nams;"3750">3750//199        19spaj class=//199>//19+co20   >20nclass="sre class=" " -&gssssssssta=a       a href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i N/a>->/a hreICR_BASE#3 ACK=3d(REAL_DMA)r3&L393" id;3L393" class="line" nams;"3793">3793/11961       19ss="comment/1196>/16LOC"19a h3ceKERN)id;3L450" class="line" nams;"3148">3748//1992       19ss="comment//199>//1e=TA20  > = 0; /a href=EXT">ta///////////////ss=EXT">ta///, LNK"+code=allDMA_PRINTK="LNK"+code=N59"><"receivt;,7extendmscssssst=st="sre#endit;Ng %d for ly plete.%dabortedCR5380.c#L433next_20fk>/a hrecmddrnext_20fk_NCR5insta3cfelse id;3L393" class="line" nams;/3750">3750/11953       19="drivers/s/1195>/15houl20> (3eL393" id;3L393" class="line" nams;/3150">3750/120>4       20>  !/a href=1+code10si/a20<< >20"tmap_zero"haseNOTICE" cla5/shasa> =//a2ext_20fk>/a hrecmddrnext_20fk_NCR5insta3cfelse id;3L393" class="line" nams;/3150">3750/11955       19paj class="/1195>/15code20 el>20"="sref">cmT_ENABLE;/a si/a,a20nclass="extendms_msgers/scsi/athostextendms_msg0/11 +N1ext_20fk>/a hrecmddrnext_20fk_NCR5insta3&eKERN)id;3L360" class="line" nams;/3750">3750//1966       19f (/a href=//196>//1NCR520"dr>20 6sref">ta/ph+coers/scsi/athostph+coERN_ =20   >20nclass="PHGL4_MSGINTO_TCRKERN_N/mePHGL4_MSGIN9/120   >20"6sref">ta//a>-&gggggggggbreakinsta3&ef = 1;d;3L360" class="line" nams;/3729">3729/11967       19       retu/1196>/11"+co20   >20nclass="sre class="transfe5_piogssssssssta=a       a htransfe5_pio+code=allN59"><4_wriinstanecmddrivers/scsi/instanecOR_COMeL3ss =  =/a href="+ph+coers/scsi/athostph+coERN_OMeL3ss =  =/a href="+haseNOTICE" cla5/shasa> =OMeL3ss =  =/a href="+T_ENABLE;/a si/a,a3750//1968       19f (!/a href//196>//1ef="20  > = 0; /a href=EXT">ta///////////////ss=EXT">ta///, LNK"+code=allDMA_PRINTK="LNK"+code=N59"><"length==N59">,iass==0x=N59"02xst="sre#endit;Ng %d for ly plete.%dabortedCR5380.c#L433"d do  >for velun >for vepted DATAOUT.53803&eKERN)id;3L393" class="line" nams;/3150">3750/120>9       20>else {<20nclass="extendms_msgers/scsi/athostextendms_msg0/11[1],2(t;t)0   >20nclass="extendms_msgers/scsi/athostextendms_msg0/11[2]next_20fk>/a hrecmddrnext_20fk_NCR5insta3.L360" id;3L360" class="line" nams;/3850">3850/1197        19       retu/1197>/17rget20nt 3#L393" id;3L393" class="line" nams;"3893">3893/11971       19f (/a href=/1197>/17e=ta20   >20 class="sref">hohaseNOTICE" cla5/shasa> =/eL3sseL3ss 0   >20nclass="extendms_msgers/scsi/athostextendms_msg0/11[1]N =/a=97        19       retu/1197>/17rget20nt 3#eKERN)id;3L455" class="line" nams;/3848">3848/11952       19<20(sizeofe=allN59"><4_wriextendms_msgers/scsi/athostextendms_msg0/11) - 1)next_20fk>/a hrecmddrnext_20fk_NCR5ass="s31felse id;3L393" class="line" nams;/3850">3850/11963       19ss="comment/1196>/11 hre20   >20 " cr>20n" class="sref">ta//a>="ssss* trd srtessre#endit;,74" class="Accept8messagroby clea  ACK=3d(REAL_DMA)r3eL393" id;3L393" class="line" nams;/3850">3850/120>4       20>  !/a href=1+code10si/a20<20 =H_Nsref-//a> =i-& class=" " -&gssssssssta=a       a href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i N/a>->/a hreICR_BASE#3 ACK=3d(REAL_DMA)r3.L360" id;3L360" class="line" nams;/3850">3850/11955       19paj class="/1195>/15code20 ea>20 =H_Nsref-//a> =i-&haseNOTICE" cla5/shasa> =//a0   >20nclass="extendms_msgers/scsi/athostextendms_msg0/11[1]N-N1ext_20fk>/a hrecmddrnext_20fk_NCR5insta3#L393" id;3L393" class="line" nams;"3850">3850/12046       20or (/a href=1+code1ttttttttta>20 =H_Nsref-//a> =i-&T_ENABLE;/a si/a,a20nclass="extendms_msgers/scsi/athostextendms_msg0/11 +N3ext_20fk>/a hrecmddrnext_20fk_NCR5insta3#ef = 1;d;3L450" class="line" nams;/3129">3829/120n7       20       for (1a hre1=tttttttta>20 =H_Nsref-//a> =i-&ph+coers/scsi/athostph+coERN_ =20   >20nclass="PHGL4_MSGINTO_TCRKERN_N/mePHGL4_MSGIN9/120   >20"6sref">ta//a>-&gggggggggbreakinsta31eKERN)id;3L450" class="line" nams;"3850">3450//1   >20"6sref">ta//a>-&gggggggggbreakinsta31eKERN)id;3L450" class="line" nams;"3850">3450//1989       19"drivers/sc//198>//1e=TA1111a>20 =H_Nsref-//a> =i-& class="transfe5_piogssssssssta=a       a htransfe5_pio+code=allN59"><4_wriinstanecmddrivers/scsi/instanecOR_COMeL3ss =  =/a href="+ph+coers/scsi/athostph+coERN_OMeL3ss =  =/a href="+haseNOTICE" cla5/shasa> =OMeL3ss =  =/a href="+T_ENABLE;/a si/a,a20"6sref">ta//a>-&gggggggggbreakinsta3le (1) id;3L448" class="line" nams;"3950">3450//199        19spaj class=//199>//19+co20  a>20 =H_Nsref-//a> =i-&EXT">ta///////////////ss=EXT">ta///, LNK"+code=allDMA_PRINTK="LNK"+code=N59"><"ssssst= received, residual7;d forst="sre#endit;Ngd do  >for velun >for vepted DATAOUT.53803izeKERN;d;3L429" class="line" nams;"3993">3393//1991       19ss="comment//199>//1e=ta20  //19+co20  a>20 =H_Nsref-//a> =i-&lete.%dabortedCR5380.c#L433" i/"ref="+code=ahaseNOTICE" cla5/shasa> =n0   >20"6sref">ta//a>-&gggggggggbreakinsta3leKERN)id;3L450" class="line" nams;"3948">3448//1   >20"6sref">ta//a>-&gggggggggbreakinsta3lfelse id;3L450" class="line" nams;/3950">3450//1993       19f (!/a href//199>//1 hre20          switcha_SC->/a hretmextendms_msgers/scsi/athostextendms_msg0/11[2]next_20fk>/a hrecmddrnext_20fk_NCR5ass="s3sref)) id;3L448" class="line" nams;"3950">3450//1994       19   !/a href//199>//1si/a20<<<<<<<<<<"+co20   >20nclass="EXTENDED_SDTRers/scsi/athostEXTENDED_SDTR9/12ICR_BASEdrLINKED_FLG_CMDi/atPLET/+co2E_DAT3sL360" id;3L393" class="line" nams;/3950">3950/11955       19paj class="/1195>/15code20 e<<<<<<<<"+co20   >20nclass="EXTENDED_WDTRers/scsi/athostEXTENDED_WDTR9/12ICR_BASEdrLINKED_FLG_CMDi/atPLET/+co2E_DAT3sL393" id;3L393" class="line" nams;/3150">3950//1966       19f (/a href=//196>//1NCR520"ddddddddd"+co20   >20nclass="EXTENDED_MODIFY_DATA_POINTERers/scsi/athostEXTENDED_MODIFY_DATA_POINTER9/12ICR_BASEdrLINKED_FLG_CMDi/atPLET/+co2E_DAT3sef = 1;d;3L393" class="line" nams;/3129">3929/120n7       20       for (1a hre1=tttttttta>20 =H_"+co20   >20nclass="EXTENDED_EXTENDED_IDENTIFYers/scsi/athostEXTENDED_EXTENDED_IDENTIFY9/12ICR_BASEdrLINKED_FLG_CMDi/atPLET/+co2E_DAT3seKERN)id;3L393" class="line" nams;"3950">3950/120>8       20>           1     10ef="20   >20n" c0   >20n0   >20nclass="tmpers/scsi/athosttmpERN_ =20> =id_mashref="+codsinkNOid_mash clatiMA)r3c#L433" d;3L450" class="line" nams;"3950">3950//1989       19"drivers/sc//198>//1e=TA1111a>20 =H_ >20"tmap_zero" class=" " -&ggggggggg=" " 4#L433" id;4L450" class="line" nams;/4393">4093/120>        20>   e {< =next_20fk>/a hrecmddrnext_20fk_NCR5ass="s4ceKERN)id;4L450" class="line" nams;"4393">4093//1991       19ss="comment//199>//1e=ta20  //19+co2 =  =/a href="+pit;tvers/scsi/athostpit;tv+code=allN59"><4_wriKERN_NOTICtINITIATOR_COMMAKERN_NOTICt3//19"+code=allDMA_PRINTK="LNK"+code=N59"><"error"receivt;,7target %gd do  >for velun >for vepted DATAOUT.53804ref = 1;d;4L429" class="line" nams;"4360">4048/11952       19<20ncla/19+co2 +code=allDMA_PRINTK="LNK"+extendmscssssst=st="sre#endit;Ng %d for ly plete.%dabortedCR5380.c#L433next_20fk>/a hrecmddrnext_20fk_NCR5insta4SEsref"|d;4L450" class="line" nams;"4393">4050/11963       19ss="comment/1196>/11 hre20   >20 " creSTATUS_REGdritmpers/scsi/athosttmpERN_ =20> =id_mashref="+codsinkNOid_mash clatiMA)r4TNsref)id;4L450" class="line" nams;"4450">4450/120>4       20>  !/a href=1+code10si/a20<<  =7   xt_20fk>/a hrecmddrnext_20fk_NCR5ass="s4c5sref)id;4L393" class="line" nams;/4450">4050/11965       19"drivers/sc/1196>/16code20 el>20"="s0" _><4_wriKERN_NOTICtINITIATOR_COMMAKERN_NOTICt3//19"+code=allDMA_PRINTK="LNK"+code=N59"><"extendmscssssst= target %gd do  >for velun >for vepted DATAOUT.53804r6sref)id;4L393" class="line" nams;/4448">4448/120>6       20>      /a hr1f="+c10NCR520"dr>20 6sr0 el>20"="s0+code=allDMA_PRINTK="LNK"+4_wr =N59"02xhlength ;d for i===oo longst="sre#endit;Ngd do  >for velun >for vepted DATAOUT.53804T7f = 1;d;4L393" class="line" nams;/4450">4450/120>7       20>      /a hr1f="+c10"+co20   >20ncla0 el>20"="s0sref-//a> =i-&lete.%dabortedCR5380.c#L433" i/"ref="+code=aextendms_msgers/scsi/athostextendms_msg0/11[2]" i/"ref="+code=aextendms_msgers/scsi/athostextendms_msg0/11[1]next_20fk>/a hrecmddrnext_20fk_NCR5insta4T8f = 1;d;4L393" class="line" nams;"4450">4450/120>8       20>           1     10ef="20   >20n" creSTATUS_REGdritmpers/scsi/athosttmpERN_ =20> =id_mashref="+codsinkNOid_mash clatiMA)r4T9f = 1;d;4L450" class="line" nams;"4450">4450/120>9       20>else {<4193/120>        20>   e {<ta//aFall throughNio rej=ctcssssst= lass="Accept8messagroby clea  ACK=3d(REAL_DMA)r4efelse id;4L448" class="line" nams;24493">4193/11961       19ss="comment/1196>/16LOC"19a h4eef = 1;d;4L393" class="line" nams;/4450">4148/11952       19<ta//ss="Accept8messagroby clea  ACK=3d(REAL_DMA)r4eEsref"|d;4L393" class="line" nams;/4493">4150//1973       19       /a h//197>//1houl19f (>199tming"74"         *=Ifswe=ntkKsom=* t;,swetrd thatswe=are5380.sssexp=ctt;,,ss="Accept8messagroby clea  ACK=3d(REAL_DMA)r4eNsref)id;4L393" class="line" nams;/4450">4150/120=4       20ss="comment"1 * un11etup19   >199/spaj><chang4.L360" id;4L360" class="line" nams;/4450">4150/120=5       20ss="comment"1 */199"drivers/scsi/a===*ass="Accept8messagroby clea  ACK=3d(REAL_DMA)r4e6sref)id;4L393" class="line" nams;"4450">4150//1966       19f (/a href=//196>//1defaultICR_BASEdrLINKED_FLG_CMDi/atPLET/+co2E_DAT4e7f = 1;d;4L450" class="line" nams;"4450">4150/120>7       20>      /a hr1f="+c10"+co20   >20 class="sref">hotmpers/scsi/athosttmpERN_next_20fk>/a hrecmddrnext_20fk_NCR5ass="s4e8f = 1;d;4L450" class="line" nams;"4450">4450/120=8       20="drivers/sc1i/ata11ef="20          0" _><4_wriKERN_DEBU"><4_writeKERN_NKERN_DEBU"3//19"+code=allDMA_PRINTK="LNK"+code=N59"><"rej=ctt;,sssssst= target %gg %d for ly plete.%dabortedCR5380.c#L433next_20fk>/a hrecmddrnext_20fk_NCR5insta4e9f = 1;d;4L450" class="line" nams;"4450">4150//1989       19"drivers/sc//198>//1e=TA1111        0" _><4_wriextendms_msgers/scsi/athostextendms_msg0/11)ext_20fk>/a hrecmddrnext_20fk_NCR5insta4ng#enditd;4L429" class="line" nams;"4450">4450/1202        20"drivers/scs1/atar1_NCR520"d        0" _>4293//1991       19ss="comment//199>//1e=ta20    =7    >20i/"ref="+code=atmpers/scsi/athosttmpERN_ !=20   >20nclass="EXTENDED_MESSAGEers/scsi/athostEXTENDED_MESSAGE9/12aortKERN_N/a>->/a hrecmddrivers/stinsta4&ef = 1;d;4L450" class="line" nams;"4448">4248//1992       19ss="comment//199>//1e=TA20          0" _><4_wriKERN_DEBU"><4_writeKERN_NKERN_DEBU"3//19"+code=allDMA_PRINTK="LNK"+code=N59"><"rej=ctt;,sunknown target %gd do  >for velun >for vepted DATAOUT.53804&Esref"|d;4L393" class="line" nams;c4d93">4250/11963       19ss="comment/1196>/11 hre20   >20 " c"s     0+code=allDMA_PRINTK="LNK"+msssst= tN59"02xhfrom printkKERN_Ng, %d forst="sre#endit;Ngd do  >for velun >for vepted DATAOUT.53804&L393" id;4L450" class="line" nams;/4448">4250//1994       19   !/a href//199>//1si/a20<20 =H_s=     0" _>c5/tdata////////rea>->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdevi;/rs/scsi/atcmdsref-//a> =i->/a hrecmddriivers/scsi/atdL4" ip, />->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdeE" cla5/shi/atcmabortKERN_N/a>->/a hrecmddrivers/stinsta4&L360" id;4L450" class="line" nams;/4450">4250/11965       19"drivers/sc/1196>/16code20 e=7  ortKERN_N/a>->/a hrecmddrivers/stinsta4&6sref)id;4L450" class="line" nams;"4450">4250//1966       19f (/a href=//196>//1NCR520"d_s=     0" _><4_wriKERN_DEBU"><4_writeKERN_NKERN_DEBU"3//19"+code=allDMA_PRINTK="LNK"+code=N59"><"rej=ctt;,sunknown target %gd do  >for velun >for vepted DATAOUT.53804&7f = 1;d;4L450" class="line" nams;"4450">4250/120>7       20>      /a hr1f="+c10"+co20   >20ncla0 el>20 +code=allDMA_PRINTK="LNK"+extendmscssssst= target %gd do  >for velun >for vepted DATAOUT.53804&8f = 1;d;4L450" class="line" nams;"4393">4250/120>8       20>           1     10ef="20   >20n" c0   >200+code=allDMA_PRINTK="LNK"+4_wr =N59"02x,hlength ;d for from printkKERN_Ng, %d forst="sre#endit;Ngd do  >for velun >for vepted DATAOUT.53804&9f = 1;d;4L429" class="line" nams;"4448">4250/120>9       20>else {<200sref-//a> =i-&lete.%dabortedCR5380.c#L433" i/"ref="+code=aextendms_msgers/scsi/athostextendms_msg0/11[1]" i/"ref="+code=aextendms_msgers/scsi/athostextendms_msg0/11[0]gd do  >for velun >for vepted DATAOUT.53804ref = 1;d;4L429" class="line" nams;"4450">4350//199        19spaj class=//199>//19+co20  c10"+co2222 >200sref-//a> =i-&llHOSTNlass="sref">c5/tdata////////rea>->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdevi;/rs/scsi/atcmdsref-//a> =i->/a hrecmddriivers/scsi/atdL4" ip, />->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdeE" cla5/shi/atcmabortKERN_N/a>->/a hrecmddrivers/stinsta4#L393" id;4L393" class="line" nams;c4393">4393/11961       19ss="comment/1196>/16LOC"19a h4ceKERN)id;4L450" class="line" nams;"4450">4348//1   >20"6sref">ta//a>-&gggggggggbreakinsta4ref = 1;d;4L429" class="line" nams;"4493">4350//1993       19f (!/a href//199>//1 hre20   >20 sref">TAG_msgoutmddrivers/scsi/msgoutERN_ =20   >20nclass="MESSAGE_REJN/SABLE;/a si/a,a20"6sref">ta//a>-&gggggggggbreakinsta4rL393" id;4L450" class="line" nams;"4450">4350/120>4       20>  !/a href=1+code10si/a20<< sref-//a> =i-& class=" " -&gssssssssta=a       a href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i  |MMAND_REGdrivers/scsASSERT_ATNTO_TCRKERN_N/me/scsASSERT_ATNatcmabortKERN_N/a>->/a hrecmddrivers/stinsta4#L360" id;4L448" class="line" nams;24450">4350/11965       19"drivers/sc/1196>/16code20 ee=pr20   >20"6sref">ta//a>-&gggggggggbreakinsta4eeKERN)id;4L393" class="line" nams;/4450">4348/120>6       20>      /a hr1f="+c10} r>20n" class="sref">ta//aswitcha_tmp)=*ass="Accept8messagroby clea  ACK=3d(REAL_DMA)r4#L393" id;4L393" class="line" nams;/4450">4350/120>7       20>      /a hr1f="+c10e=pr20   >20"6sref">ta//a>-&gggggggggbreakinsta4e8f = 1;d;4L393" class="line" nams;r4393">4350/120=8       20="drivers/sc"+co20   >20nclass="PHGL4_MSGOUSABLE;/a si/a,a4350/120>9       20>else {< =//a1ext_20fk>/a hrecmddrnext_20fk_NCR5insta4.L360" id;4L360" class="line" nams;/4450">4450//199        19spaj class=//199>//1Nsref-//a> =i-&T_ENABLE;/a si/a,a4493//1991       19ss="comment//199>//1 =  =/a href="+ELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdE;/t_ssssst=eNOTICE" cla5/sh;/t_ssssst=ERN_ =20   >20nclass="msgoutmddrivers/scsi/msgoutERN_ext_20fk>/a hrecmddrnext_20fk_NCR5insta4.eKERN)id;4L360" class="line" nams;/4450">4448//1992       19ss="comment//199>//1Nsref-//a> =i-& class="transfe5_piogssssssssta=a       a htransfe5_pio+code=allN59"><4_wriinstanecmddrivers/scsi/instanecOR_COMeL3ss =  =/a href="+ph+coers/scsi/athostph+coERN_OMeL3ss =  =/a href="+haseNOTICE" cla5/shasa> =OMeL3ss =  =/a href="+T_ENABLE;/a si/a,a20"6sref">ta//a>-&gggggggggbreakinsta4.ef = 1;d;4L360" class="line" nams;/4493">4450//1993       19f (!/a href//199>//1 >20i/"ref="+code=amsgoutmddrivers/scsi/msgoutERN_ ==20   >20nclass="ABORSABLE;/a si/a,a4450/12#ifdef20   >20nclass="SUPPORS_TAGSN59"><4_writeKERUPPORS_TAGS8//1   >20"6sref">ta//a>-&gggggggggbreakinsta4.L360" id;4L393" class="line" nams;c4450">4450/11955       19paj class="/1195>/15code20 el>20"="sref">cmrs/_frei_tag"sref">Hhosa///rs/_frei_tag+code=allN59"><4_wrigt;/a hrecmddriivers/scsin0   >20"6sref">ta//a>-&gggggggggbreakinsta4.eKERN)id;4L450" class="line" nams;"4450">4450//1#=7  ortKERN_N/a>->/a hrecmddrivers/stinsta4.L393" id;4L450" class="line" nams;"4429">4429/11967       19       retu/1196>/11"+co20   >20nclass="sreELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdbusyABLE;/a si/a,a =i-&llHOSTNlass="sref">c5/tdata////////rea>->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdevi;/rs/scsi/at]MeL3ss= ~(1N =/a =/amdsref-//a> =i->/a hrecmddriivers/scsi/atdL4" ip, />->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdeE" cla5/shi/atcmabortKERN_N/a>->/a hrecmddrivers/stinsta4OL393" id;4L450" class="line" nams;"4493">4393/12#endifortKERN_N/a>->/a hrecmddrivers/stinsta4Oef = 1;d;4L393" class="line" nams;c4448">4448/11949       19           /1194a 1r"+co20   >20nclass="sreELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdconn=ct/198>//17tup20f (conn=ct/1RKERf="+codtransfarsizeULLgssssssssta=a   ULLRKERext_20fk>/a hrecmddrnext_20fk_NCR5insta4ceKERN)id;4L450" class="line" nams;"4550">4593/120>        20>   e {<->/atcmltmddrivers/scsi/atcmltRKERf="+codtransfarsizDID_ERRORers/scsi/athostDID_ERRORRKERf =/a =/am16ext_20fk>/a hrecmddrnext_20fk_NCR5insta4cL393" id;4L393" class="line" nams;"4593">4593//1#ifdef20   >20nclass="     a hRreaSN59"><4_writeKE     a hRreaS8//1   >20"6sref">ta//a>-&gggggggggbreakinsta4c#L433" d;4L450" class="line" nams;"4548">4448/11952       19<gt;/a hrehostdcolst="_stat_TO_TCRKERN_N/mecolst="_stat_+code=allN59"><4_wriELECT_ENABLE;/a si/a,a<4_writeKERN_cmdsref-//a> =i->/a hrecmddriivers/scsiabortKERN_N/a>->/a hrecmddrivers/stinsta42ef = 1;d;4L450" class="line" nams;"4550">4550//1#endifortKERN_N/a>->/a hrecmddrivers/stinsta420>3srefd;4L450" class="line" nams;"4150">4450/11954       19"drivers/sc/1195>/15 hre20   sref-//a> =i->/a hrecmddriivers/scsi/atdL4" ip, />->/a hr_doncmddrivers/scsi/a hr_donc+code=allN59"><4_wrigt;/a hrecmddriivers/scsin0   >20"6sref">ta//a>-&gggggggggbreakinsta42felse id;4L393" class="line" nams;c4150">4450/11955       19paj class="/1195>/15 hre20   sref-//a> =i-& class=" " -&gssssssssta=a       a href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/SELECT_ENABLE;/a hreSTATUS_REGdriELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdamsdrivers/scsi/athostdamssref-//a> =id_mashref="+codsinkNup.* =d(REAL_Dnsta42eKERN)id;4L450" class="line" nams;"4550">4450/11956       19"drivers/sc/1195>/15NCR520"drgt;/a hrehostdfalcon_rele+co_lock_if_poss=sssers/scsi/athostfalcon_rele+co_lock_if_poss=sss+code=allN59"><4_wriELECT_ENABLE;/a si/a,a<4_writeKERN_a> =id_mashref="+codsinkNup.* =d(REAL_Dnsta42L393" id;4L393" class="line" nams;/4529">4550/120>7       20>      /a hr1f="+c10"+co20  lass="sref">ta//a>="slun//a> ="s/////" clasinsta42L393" id;4L393" class="line" nams;/4550">4550/120>8       20>           1     10 >20"tmap_zero" class=" " -&ggggggggg=" " 42ef = 1;d;4L393" class="line" nams;/4548">4550/120>9       20>else {<4693/120>        20>   e {<ta//a>-&gggggggggbreakinsta4.0ntsrefd;4L393" class="line" nams;c4693">4693//1991       19ss="comment/"+co20   >20nclass="PHGL4_CMDOUSABLE;/a si/a,a4648//1992       19ss="comment//199>//1Nsref-//a> =i-&haseNOTICE" cla5/shasa> =//a0   >20nclass="gt;/a hrecmddriivers/scsi/atdL4" ip, />->/rs/_haseNOTICE" cla5/srs/_hasRKERext_20fk>/a hrecmddrnext_20fk_NCR5insta4.ef = 1;d;4L448" class="line" nams;24650">4650//1993       19f (!/a href//199>//1Nsref-//a> =i-&T_ENABLE;/a si/a,a20nclass="gt;/a hrecmddriivers/scsi/atdL4" ip, />->/rsn;/a hrecmddriiversn//"shext_20fk>/a hrecmddrnext_20fk_NCR5insta4c#L433" d;4L450" class="line" nams;"4650">4650/11954       19"drivers/sc/1195>/15r>20n" class="sref">ta//ss="Accept8messagroby clea  ACK=3d(REAL_DMA)r4cfelse id;4L450" class="line" nams;/4650">4650/120=5       20ss="comment"1 */199"drivers/s* XXXs====perfoecartK =prsons, onimach"lis with ass="Accept8messagroby clea  ACK=3d(REAL_DMA)r4ceKERN)id;4L450" class="line" nams;"4650">4650//1996       19       /a h//199>//1si/a19<197ged comman* PSEUDO-DMA arch"tt="ureswe=should probablyRKd///////-&gR="d>198 is a free tag and the targ4ref = 1;d;4L429" class="line" nams;"4629">4629/11957       19"drivers/sc/1195>/15NCR519"dr>195 is a free* ust *   dma transfe5 fun="ion)ffarcalledphas///h un20fkcatly conns#ta//a>chang4ceKERN)id;4L450" class="line" nams;"4150">4650/11958       19ss="comment/1195>/15j><<19ss=>195drivers/sc*ass="Accept8messagroby clea  ACK=3d(REAL_DMA)r4ceKERN)id;4L450" class="line" nams;"4150">4650//1989       19"drivers/sc//198>//1Nsref-//a> =i-& class="transfe5_piogssssssssta=a       a htransfe5_pio+code=allN59"><4_wriinstanecmddrivers/scsi/instanecOR_COMeL3ss =  =/a href="+ph+coers/scsi/athostph+coERN_OMeL3ss =  =/a href="+haseNOTICE" cla5/shasa> =OMeL3ss =  =/a href="+T_ENABLE;/a si/a,a20"6sref">ta//a>-&gggggggggbreakinsta4>/a }d;4L450" class="line" nams;"4750">4750//199        19spaj class=//199>//1e=pr20   >20"6sref">ta//a>-&gggggggggbreakinsta4&L393" id;4L393" class="line" nams;"4793">4793//1991       19ss="comment/"+co20   >20nclass="PHGL4_RreaINTO_TCRKERN_N/mePHGL4_RreaIN9/12ICR_BASEdrLINKED_FLG_CMDi/atPLET/+co2E_DAT4ceKERN)id;4L450" class="line" nams;"4148">4748//1992       19ss="comment//199>//1Nsref-//a> =i-&haseNOTICE" cla5/shasa> =//a1ext_20fk>/a hrecmddrnext_20fk_NCR5insta4cfelse id;4L393" class="line" nams;/4750">4750//1993       19f (!/a href//199>//1Nsref-//a> =i-&T_ENABLE;/a si/a,a4750/120>4       20>  !/a href=1+code10Nsref-//a> =i-& class="transfe5_piogssssssssta=a       a htransfe5_pio+code=allN59"><4_wriinstanecmddrivers/scsi/instanecOR_COMeL3ss =  =/a href="+ph+coers/scsi/athostph+coERN_OMeL3ss =  =/a href="+haseNOTICE" cla5/shasa> =OMeL3ss =  =/a href="+T_ENABLE;/a si/a,a20"6sref">ta//a>-&gggggggggbreakinsta4&felse id;4L393" class="line" nams;/4150">4750/11955       19paj class="/1195>/150   >20nclass="gt;/a hrecmddriivers/scsi/atdL4" ip, />->/SCpers/scsi/athostSCpscsi.4" ip, />->/Statu_TO_TCRKERN_N/meStatu_ERN_ =20   >20nclass="tmpers/scsi/athosttmpERN_ext_20fk>/a hrecmddrnext_20fk_NCR5insta4ceKERN)id;4L360" class="line" nams;/4750">4750//1966       19f (/a href=//196>//1e=pr20   >20"6sref">ta//a>-&gggggggggbreakinsta4&ef = 1;d;4L360" class="line" nams;/4729">4729/11967       19       retu/defaultICR_BASEdrLINKED_FLG_CMDi/atPLET/+co2E_DAT4ceKERN)id;4L360" class="line" nams;/4750">4750//1968       19f (!/a href//196>//1 =  =/a href="+pit;tvers/scsi/athostpit;tv+code=+code=allDMA_PRINTK="LNK"+code=N59"><"unknown ph+cost="sre#endit;Ng %d for ly plete.%dabortedCR5380.c#L433next_20fk>/a hrecmddrnext_20fk_NCR5insta4&eKERN)id;4L393" class="line" nams;/4150">4750/120>9       20>else {<ta//gssssssssta=a     ">ta//+code=allN59"><4_wriNDEBU"_ANYers/scsi/athostNDEBU"_ANYL433next_20fk>/a hrecmddrnext_20fk_NCR5insta4.L360" id;4L360" class="line" nams;/4850">4850//199        19spaj class=/} r>20n" class="sref">ta//aswitch(ph+co)=*ass="Accept8messagroby clea  ACK=3d(REAL_DMA)r4#L393" id;4L393" class="line" nams;"4893">4893/11971       19f (/} r>20n" class="sref">ta//a >20tmp=* SR_REQ)=*ass="Accept8messagroby clea  ACK=3d(REAL_DMA)r4#eKERN)id;4L455" class="line" nams;/4848">4848/11952     } r>20n" class="sref">ta//awhile201)=*ass="Accept8messagroby clea  ACK=3d(REAL_DMA)r4#felse id;4L393" class="line" nams;/4850">4850/11 >20"tmap_zero" class=" " -&ggggggggg=" " 4eL393" id;4L393" class="line" nams;/4850">4850/12>20"tmap_zero" class=" " -&ggggggggg=" " 4efelse id;4L360" class="line" nams;/4850">4850/120=5       20ss="commen//ss="Accept8messagroby clea  ACK=3d(REAL_DMA)r4#L393" id;4L393" class="line" nams;"4850">4850//1996       19       /a h* Fun="ion : void      a hssssst="s(_PRu="sS hr_Host *instanec)lid///////-&gR="d>198 is a free tag and the targ4#ef = 1;d;4L450" class="line" nams;/4129">4829/11957       19"drivers/sc/ss="Accept8messagroby clea  ACK=3d(REAL_DMA)r4#eKERN)id;4L450" class="line" nams;"4850">4850/11958       19ss="comment* Purpoco2: doessssssst="===,sreitializt;,s*   instanec/atdLconn=ct/1RK="Accept8messagroby clea  ACK=3d(REAL_DMA)r4#eKERN)id;4L450" class="line" nams;"4850">4848/11959       19ss="comment*      fieldNio pore#Nio === S hr_Cmnds====which *   I_T_L ===I_T_L_QRK="Accept8messagroby clea  ACK=3d(REAL_DMA)r4le (1) id;4L448" class="line" nams;"4950">4950/1196        19ss="comment*      nexus h+c beensssestablished,ss="Accept8messagroby clea  ACK=3d(REAL_DMA)r4izeKERN;d;4L429" class="line" nams;"4993">4993/12041       20a href="+co/ss="Accept8messagroby clea  ACK=3d(REAL_DMA)r4leKERN)id;4L450" class="line" nams;"4948">4950/120=2       20"drivers/sc* Inputs2: instanec -s* ts instanec of *   d(REAL_Dss="Accept8messagroby clea  ACK=3d(REAL_DMA)r4lfelse id;4L450" class="line" nams;/4950">4950//1973       19       /a h/ss="Accept8messagroby clea  ACK=3d(REAL_DMA)r4lL393" id;4L448" class="line" nams;"4950">4950/120=4       20ss="comment*ass="Accept8messagroby clea  ACK=3d(REAL_DMA)r4sL360" id;4L393" class="line" nams;/4950">4950/11ept8messagroby clea  ACK=3d(REAL_DMA)r4sL393" id;4L393" class="line" nams;/4150">4950//1ept8messagroby clea  ACK=3d(REAL_DMA)r4sef = 1;d;4L393" class="line" nams;/4129">4929/12static void Nsref-//a> =i-& class="ssssst="gssssssssta=a       a hssssst="+code_PRu="s4" ip, />->/S hr_HostTO_TCRKERN_N/meS hr_Host8/119*=allN59"><4_wriinstanecmddrivers/scsi/instanecOR_CaortKERN_N/a>->/a hrecmddrivers/stinsta4seKERN)id;4L393" class="line" nams;"4950">4950/12xt_20fk>/a hrecmddrnext_20fk_NCR5ass="s4c#L433" d;4L450" class="line" nams;"4950">4950//1989     =allN59"><4_writeTUP_380.DATAN59"><4_writeKERNTUP_380.DATA+code=allN59"><4_wriinstanecmddrivers/scsi/instanecOR_Cnext_20fk>/a hrecmddrnext_20fk_NCR5insta5#L433" id;5L450" class="line" nams;/5393">5093/120>      unsigned char20   >20nclass="trintksdrivers/scsi/athosttrintksdrivERN_ext_20fk>/a hrecmddrnext_20fk_NCR5insta5ceKERN)id;5L450" class="line" nams;"5393">5093//1991     unsigned char20   >20nclass="tancedrdeE" cla5/shi/atcmg %d for ly pph+coers/scsi/athostph+coERN_ext_20fk>/a hrecmddrnext_20fk_NCR5insta5c2KERN)id;5L450" class="line" nams;"5360">5048/11952     re#N =  =/a href="+haseNOTICE" cla5/shasa> =ext_20fk>/a hrecmddrnext_20fk_NCR5insta5c3KERN)id;5L450" class="line" nams;/5393">5050/11#ifdef20   >20nclass="SUPPORS_TAGSN59"><4_writeKERUPPORS_TAGS8//1   >20"6sref">ta//a>-&gggggggggbreakinsta5TNsref)id;5L450" class="line" nams;"5450">5450/120>4     unsigned char20   >20nclass="trg"sref">Hhosa///tag+codext_20fk>/a hrecmddrnext_20fk_NCR5insta5c5sref)id;5L393" class="line" nams;/5450">5050/11#endifortKERN_N/a>->/a hrecmddrivers/stinsta5r6sref)id;5L393" class="line" nams;/5448">5448/120>6     unsigned char20   >20nclass="msgers/scsi/athostmsg0/11[3]ext_20fk>/a hrecmddrnext_20fk_NCR5insta5c7sref)id;5L393" class="line" nams;/5450">5450/120>7     unsigned char2*=allN59"><4_wriT_ENABLE;/a si/a,a5450/120>8     4" ip, />->/S hr_Csn;/a hrecmddriiveS hr_Csn;8/119*=allN59"><4_writmpers/scsi/athosttmpERN_ =2+codtransfarsizeULLgssssssssta=a   ULLRKER,9*=allN59"><4_wriprevers/scsi/athostpievERN_ext_20fk>/a hrecmddrnext_20fk_NCR5insta5c9sref)id;5L450" class="line" nams;"5450">5048/11959       19ss="commen/*7     unsigned long flags;t*ass="Accept8messagroby clea  ACK=3d(REAL_DMA)r5efelse id;5L448" class="line" nams;25450">5150/1197        19       retu/1197>/17rget20nt 5efelse id;5L448" class="line" nams;25493">5193//1991     0=5       20ss="commen//ss="Accept8messagroby clea  ACK=3d(REAL_DMA)r5eef = 1;d;5L393" class="line" nams;/5450">5150/120=2       20"drivers/scs1/atar1* Disable=arbitra"===,setc. sirtK *   4_wr adapter obviouslyRKd///////-&gR="d>198 is a free tag and the targ5eEsref"|d;5L393" class="line" nams;/5493">5150//1973       19       /a h//197>//* lost, andstell an re#errupted      a hssst="()Nio restart)ffarcalledphas///h un20fkcatly conns#ta//a>chang5eNsref)id;5L393" class="line" nams;/5450">5150/120=4       20ss="comment"1 * un1*ass="Accept8messagroby clea  ACK=3d(REAL_DMA)r5e5sref)id;5L360" class="line" nams;/5450">5150/11ept8messagroby clea  ACK=3d(REAL_DMA)r5e6sref)id;5L393" class="line" nams;"5450">5150//1966      sref-//a> =i-& class=" " -&gssssssssta=a       a href="+code=allN59"><4_wriMODsi/atN59"><4_writeKEMODsi/atatcmg %d for ly pMcsi/atINITIATOR_COMMAM_REGL4" i N/a>->/a hreICR_BASE#3 ACK=3d(REAL_DMA)r5e7f = 1;d;5L450" class="line" nams;"5450">5150/120>7     reSTATUS_REGdriELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdrestart_ssst="gssssssssta=a  restart_ssst="a> =//a1ext_20fk>/a hrecmddrnext_20fk_NCR5insta5e8f = 1;d;5L450" class="line" nams;"5450">5150//1   >20"6sref">ta//a>-&gggggggggbreakinsta5e9f = 1;d;5L450" class="line" nams;"5450">5150//1989     =allN59"><4_writrintksdrivers/scsi/athosttrintksdrivERN_ =2+codtransfarsize    a hssa;/a hrecmddriivee    a hssa;+code=allN59"><4_wriCURRENT_SCSI_DATA_/atN59"><4_writeKECURRENT_SCSI_DATA_/at" i NMeL3ss ~e=allN59"><4_wriELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdamsdrivers/scsi/athostdamssref-//a> =id_mashref="+codsinkNup.* =d(REAL_Dnsta5ng#enditd;5L429" class="line" nams;"5450">5250/1197        19       retu/1197>/17rget20nt 5nfelse id;5L450" class="line" nams;"5393">5293//1991     >/a hrehostdRSL">ta///////////////ss=RSL">ta///+code=+code=allDMA_PRINTK="LNK"+code=N59"><"ssssst="st="sre#endit;Ng %d for ly plete.%dabortedCR5380.c#L433next_20fk>/a hrecmddrnext_20fk_NCR5insta5&ef = 1;d;5L450" class="line" nams;"5448">5248//1   >20"6sref">ta//a>-&gggggggggbreakinsta5&Esref"|d;5L393" class="line" nams;c5d93">5250/11963     0=5       20ss="commen//ss="Accept8messagroby clea  ACK=3d(REAL_DMA)r5&L393" id;5L450" class="line" nams;/5448">5250/120=4       20ss="comment"1 * un1* Ats* ts pore#,swe=have det=ct/1 thatsour SCSI ID i==on *   bus,ss="Accept8messagroby clea  ACK=3d(REAL_DMA)r5&L360" id;5L450" class="line" nams;/5450">5250/120=5       20ss="comment"1 */198 is a free tag and the targ5&6sref)id;5L450" class="line" nams;"5450">5250//1996       19       /a h//199>//* (400 ns))ffarcalledphas///h un20fkcatly conns#ta//a>chang5&7f = 1;d;5L450" class="line" nams;"5450">5229/11957       19"drivers/sc/1195>/1/ss="Accept8messagroby clea  ACK=3d(REAL_DMA)r5&8f = 1;d;5L450" class="line" nams;"5393">5250/11958       19ss="comment/1195>/1* We muwr assertsBSY oursssves, until *   printkKdrops === SELss="Accept8messagroby clea  ACK=3d(REAL_DMA)r5&9f = 1;d;5L429" class="line" nams;"5448">5248/11959       19ss="comment/1195>/1* signal)ffarcalledphas///h un20fkcatly conns#ta//a>chang5ref = 1;d;5L429" class="line" nams;"5450">5350/1196        19ss="comment"1 * un1*ass="Accept8messagroby clea  ACK=3d(REAL_DMA)r5#L393" id;5L393" class="line" nams;c5393">5393/11961       19ss="comment/1196>/16LOC"19a h5ceKERN)id;5L450" class="line" nams;"5450">5320//1966      sref-//a> =i-& class=" " -&gssssssssta=a       a href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i  |MMAND_REGdrivers/scsASSERT_BSYINITIATOR_COMMAND_RASSERT_BSYL433next_20fk>/a hrecmddrnext_20fk_NCR5insta5ref = 1;d;5L429" class="line" nams;"5493">5350//1xt_20fk>/a hrecmddrnext_20fk_NCR5insta5rL393" id;5L450" class="line" nams;"5450">5350/120>4     while20+codtransfarsize    a hssa;/a hrecmddriivee    a hssa;+code=allN59"><4_wriRreaUSi/atN59"><4_writeKERreaUSi/at" i NMeL3ss =allN59"><4_wriRR_SELN59"><4_writeKERR_SELOR_CaortKERN_N/a>->/a hrecmddrivers/stinsta5#L360" id;5L448" class="line" nams;25450">5350/11965       19"driext_20fk>/a hrecmddrnext_20fk_NCR5insta5r6sref)id;5L393" class="line" nams;/5450">5350//1966      sref-//a> =i-& class=" " -&gssssssssta=a       a href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i N/a>->/a hreICR_BASE#3 ACK=3d(REAL_DMA)r5#L393" id;5L393" class="line" nams;/5450">5350/12a>->/a hreICR_BASE#3 ACK=3d(REAL_DMA)r5#8f = 1;d;5L393" class="line" nams;r5393">5350/120=8     0=5       20ss="commen//ss="Accept8messagroby clea  ACK=3d(REAL_DMA)r5#ef = 1;d;5L393" class="line" nams;=5348">5348/11959       19ss="comment/1195>/1* Wait ====printkKto go re#o MSGIN)ffarcalledphas///h un20fkcatly conns#ta//a>chang5.L360" id;5L360" class="line" nams;/5450">5450/1196        19ss="comment"1 * un1*ass="Accept8messagroby clea  ACK=3d(REAL_DMA)r5.L393" id;5L360" class="line" nams;/5493">5493/11961       19ss="comment/1196>/16LOC"19a h5.eKERN)id;5L360" class="line" nams;/5450">5448//1992     while20!0+codtransfarsize    a hssa;/a hrecmddriivee    a hssa;+code=allN59"><4_wriRreaUSi/atN59"><4_writeKERreaUSi/at" i NMeL3ss =allN59"><4_wriRR_REQN59"><4_writeKERR_REQ" i NaortKERN_N/a>->/a hrecmddrivers/stinsta5.ef = 1;d;5L360" class="line" nams;/5493">5450//1993       19f (!/a>->/a hreICR_BASE#3 ACK=3d(REAL_DMA)r5.L360" id;5L360" class="line" nams;/5450">5450/12>20"tmap_zero" class=" " -&ggggggggg=" " 5.L360" id;5L393" class="line" nams;c5450">5450/11955      =  =/a href="+haseNOTICE" cla5/shasa> =//a1ext_20fk>/a hrecmddrnext_20fk_NCR5insta5.eKERN)id;5L450" class="line" nams;"5450">5450//1966      sref-//a> =i-&T_ENABLE;/a si/a,a20nclass="msgers/scsi/athostmsg0/11ext_20fk>/a hrecmddrnext_20fk_NCR5insta5.L393" id;5L450" class="line" nams;"5429">5450/120>7     reSTATUS_REGdriph+coers/scsi/athostph+coERN_ =20   >20nclass="PHGL4_MSGINTO_TCRKERN_N/mePHGL4_MSGIN9/120   >20"6sref">ta//a>-&gggggggggbreakinsta5OL393" id;5L450" class="line" nams;"5493">5450/120>8     4" ip, />->/ class="transfe5_piogssssssssta=a       a htransfe5_pio+code=allN59"><4_wriinstanecmddrivers/scsi/instanecOR_COMeL3ss =  =/a href="+ph+coers/scsi/athostph+coERN_OMeL3ss =  =/a href="+haseNOTICE" cla5/shasa> =OMeL3ss =  =/a href="+T_ENABLE;/a si/a,a20"6sref">ta//a>-&gggggggggbreakinsta5Oef = 1;d;5L393" class="line" nams;c5448">5448/11   >20"6sref">ta//a>-&gggggggggbreakinsta5ceKERN)id;5L450" class="line" nams;"5550">5593/120>       >20 0i/"ref="+code=amsgers/scsi/athostmsg0/11[0]MeL3ss 0x80)next_20fk>/a hrecmddrnext_20fk_NCR5ass="s5cL393" id;5L393" class="line" nams;"5593">5593/11971       19f (/=allN59"><4_wriprt;tvers/scsi/athostpit;tv+code=allN59"><4_wriKERN_DEBU"><4_writeKERN_NKERN_DEBU"3//19"+code=allDMA_PRINTK="LNK"+code=N59"><"exp=ctt;, IDENTIFYcssssst=, got target %gg %d for ly plete.%dabortedCR5380.c#L433next_20fk>/a hrecmddrnext_20fk_NCR5insta5c#L433" d;5L450" class="line" nams;"5548">5448/11952       19<<4_wrimsgers/scsi/athostmsg0/11next_20fk>/a hrecmddrnext_20fk_NCR5insta5cef = 1;d;5L450" class="line" nams;"5550">5550//1993       19f (! =  =/a href="+To_abor"gssssssssta=a  To_abor"+code=allN59"><4_wriinstanecmddrivers/scsi/instanecOR_Cnext_20fk>/a hrecmddrnext_20fk_NCR5insta520>3srefd;5L450" class="line" nams;"5150">5450/11954       19"drilass="sref">ta//a>="slun//a> ="s/////" clasinsta52felse id;5L393" class="line" nams;c5150">5450/11955      >20"tmap_zero" class=" " -&ggggggggg=" " 52eKERN)id;5L450" class="line" nams;"5550">5550//1966      sref-//a> =i-&tancedrdeE" cla5/shi/atcm =20i/"ref="+code=amsgers/scsi/athostmsg0/11[0]MeL3ss 0x07next_20fk>/a hrecmddrnext_20fk_NCR5insta52L393" id;5L393" class="line" nams;/5529">5550/12a>->/a hreICR_BASE#3 ACK=3d(REAL_DMA)r52L393" id;5L393" class="line" nams;/5550">5550/12#ifdef20   >20nclass="SUPPORS_TAGSN59"><4_writeKERUPPORS_TAGS8//1   >20"6sref">ta//a>-&gggggggggbreakinsta52ef = 1;d;5L393" class="line" nams;/5548">5550/120>9     959       19ss="commen/*7If *   ph+co i==still MSGIN, *   printkKwant===o sendKsom= moress="Accept8messagroby clea  ACK=3d(REAL_DMA)r5.L360" id;5L360" class="line" nams;/5650">5650/1196        19ss="comment"1 * un1*cssssst=s. In/"+co2it suppor"===agged queut;,,s* ts is probably ass="Accept8messagroby clea  ACK=3d(REAL_DMA)r5.0ntsrefd;5L393" class="line" nams;c5693">5693/12041       20a href="+co"1 * un1*cSIMPLE_QUEUE_TAG ====p   I_T_L_Q nexus)ffarcalledphas///h un20fkcatly conns#ta//a>chang5.#L433" d;5L455" class="line" nams;/5648">5650/120=2       20"drivers/scs1/atar1*ass="Accept8messagroby clea  ACK=3d(REAL_DMA)r5.ef = 1;d;5L448" class="line" nams;25650">5650//1993     0   >20nclass="trg"sref">Hhosa///tag+cod =20   >20nclass="TAG_NONtINITIATOR_COMMATAG_NONt9/120   >20"6sref">ta//a>-&gggggggggbreakinsta5c#L433" d;5L450" class="line" nams;"5650">5650/11954      >20i/"ref="+code=aph+coers/scsi/athostph+coERN_ ==20   >20nclass="PHGL4_MSGINTO_TCRKERN_N/mePHGL4_MSGIN9/12MeL3sseL3ss =allN59"><4_wrisassp_usi_tagged_queut;,#37;dabortedCR5sassp_usi_tagged_queut;," i NMxt_20fk>/a hrecmddrnext_20fk_NCR5ass="s5cfelse id;5L450" class="line" nams;/5650">5650/11965       19"dri959       19ss="commen/*7Accept pievious IDENTIFYcssssst= by   eaRINT ACK1*ass="Accept8messagroby clea  ACK=3d(REAL_DMA)r5.eKERN)id;5L450" class="line" nams;"5650">5650//1966       19f (/ sref-//a> =i-& class=" " -&gssssssssta=a       a href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i N/a>->/a hreICR_BASE#3 ACK=3d(REAL_DMA)r5ref = 1;d;5L429" class="line" nams;"5629">5629/11967       19     =  =/a href="+haseNOTICE" cla5/shasa> =//a2/a>->/a hreICR_BASE#3 ACK=3d(REAL_DMA)r5rL393" id;5L450" class="line" nams;"5150">5650//1968       19f (! sref-//a> =i-&T_ENABLE;/a si/a,a20nclass="msgers/scsi/athostmsg0/11 +a1ext_20fk>/a hrecmddrnext_20fk_NCR5insta5ceKERN)id;5L450" class="line" nams;"5150">5650//1989       19"dri >20 class="sref">ho class="transfe5_piogssssssssta=a       a htransfe5_pio+code=allN59"><4_wriinstanecmddrivers/scsi/instanecOR_COMeL3ss =  =/a href="+ph+coers/scsi/athostph+coERN_OMeL3ss =  =/a href="+haseNOTICE" cla5/shasa> =OMeL3ss =  =/a href="+T_ENABLE;/a si/a,a5750//199        19spaj clai/"ref="+code=amsgers/scsi/athostmsg0/11[1] ==20   >20nclass="SIMPLE_QUEUE_TAGN59"><4_writeKERIMPLE_QUEUE_TAGOR_CaortKERN_N/a>->/a hrecmddrivers/stinsta5&L393" id;5L393" class="line" nams;"5793">5793//1991       19ss="comment/0   >20nclass="trg"sref">Hhosa///tag+cod =20   >20nclass="msgers/scsi/athostmsg0/11[2]ext_20fk>/a hrecmddrnext_20fk_NCR5insta5ceKERN)id;5L450" class="line" nams;"5148">5748//1992       19ss="0   >20nclass="TAG_>ta///////////////ss=TAG_>ta///+code=+code=allDMA_PRINTK="LNK"+code=N59"><"printkKssre =N59"02x,hl#37;d for sent==ag7;d for at target %gd do  >for velun >for vepted DATAOUT.53805cfelse id;5L393" class="line" nams;/5750">5750//1993       19f (!/a href//19=+code=allDMA_PRINTK="LNK"+ssssst="===st="sre#endit;Ng %d for ly plete.%dabortedCR5380.c#L433" i/"ref="+code=atrintksdrivers/scsi/athosttrintksdrivERN_" i/"ref="+code=atancedrdeE" cla5/shi/atcmg %d for ly ptrg"sref">Hhosa///tag+codN/a>->/a hreICR_BASE#3 ACK=3d(REAL_DMA)r5c#L433" d;5L393" class="line" nams;/5150">5750/120>4      >20"tmap_zero" class=" " -&ggggggggg=" " 5&felse id;5L393" class="line" nams;/5150">5750/11#endifortKERN_N/a>->/a hrecmddrivers/stinsta5ceKERN)id;5L360" class="line" nams;/5750">5750//1ept8messagroby clea  ACK=3d(REAL_DMA)r5&ef = 1;d;5L360" class="line" nams;/5729">5729/11967     0=5       20ss="commen//ss="Accept8messagroby clea  ACK=3d(REAL_DMA)r5ceKERN)id;5L360" class="line" nams;/5750">5750/11958       19ss="comment/1195>/1* Findst   s="candscorssspondi;,s*o *   I_T_L ===I_T_L_Q  nexus wess="Accept8messagroby clea  ACK=3d(REAL_DMA)r5&eKERN)id;5L393" class="line" nams;/5150">5748/11959       19ss="comment/1195>/1* juwr ssestablished, andsremovo2it from p   disconn=ct/1 queue)ffarcalledphas///h un20fkcatly conns#ta//a>chang5.L360" id;5L360" class="line" nams;/5850">5850/1196        19ss="comment"1 * un1*ass="Accept8messagroby clea  ACK=3d(REAL_DMA)r5#L393" id;5L393" class="line" nams;"5893">5893/11961       19ss="comment/1196>/16LOC"19a h5#eKERN)id;5L455" class="line" nams;/5848">5848/11952     ====0i/"ref="+code=atmpers/scsi/athosttmpERN_ =20i/"ref="+code=aS hr_Csn;/a hrecmddriiveS hr_Csn;8/119*) reSTATUS_REGdriELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostddisconn=ct/1_queuoers/scsi/athostdisconn=ct/1_queuoatcmg %d for ly pprevers/scsi/athostpievERN_f="+codtransfarsizeULLgssssssssta=a   ULLRKERext_20fk>/a hrecmddrnext_20fk_NCR5insta5#felse id;5L393" class="line" nams;/5850">5850//1993       19fi/"ref="+code=atmpers/scsi/athosttmpERN_s =allN59"><4_wriprevers/scsi/athostpievERN_f="+codtransfarsiztmpers/scsi/athosttmpERN_" i/"ref="+code=atmpers/scsi/athosttmpERN_ =2+codtransfarsizeEX/gssssssssta=a   EX/+code=allN59"><4_writmpers/scsi/athosttmpERN_)next_20fk>/a hrecmddrnext_20fk_NCR5ass="s5eL393" id;5L393" class="line" nams;/5850">5850/11954       19"dri >20e=allN59"><4_writrintksdrivers/scsi/athosttrintksdrivERN_ ==201N =/a =/amdsref-//a> =i-&tmpers/scsi/athosttmpERN_ta////////rea>->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdevi;/rs/scsi/at)nMeL3sseL3ss20i/"ref="+code=atancedrdeE" cla5/shi/atcm =="+codtransfarsiztmpers/scsi/athosttmpERN_/atdL4" ip, />->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdeE" cla5/shi/atcmat_20fk>/a hrecmddrnext_20fk_NCR5ass="s5efelse id;5L360" class="line" nams;/5850">5850/12#ifdef20   >20nclass="SUPPORS_TAGSN59"><4_writeKERUPPORS_TAGS8//1   >20"6sref">ta//a>-&gggggggggbreakinsta5#L393" id;5L393" class="line" nams;"5850">5850//1966       19f (/a hreL3sseL3ss20i/"ref="+code=atrg"sref">Hhosa///tag+cod =="+codtransfarsiztmpers/scsi/athosttmpERN_/atdL4" ip, />->/trg"sref">Hhosa///tag+codN   >20"6sref">ta//a>-&gggggggggbreakinsta5#ef = 1;d;5L450" class="line" nams;/5129">5829/11#endifortKERN_N/a>->/a hrecmddrivers/stinsta5#eKERN)id;5L450" class="line" nams;"5850">5850//1968       19f (!/a hnext_20fk>/a hrecmddrnext_20fk_NCR5ass="s5eeKERN)id;5L450" class="line" nams;"5850">5850/120>9       20>else {<5950//199        19spaj class=/4" ip, />->/falcon_dont_rele+co"sref">Hhosa///falcon_dont_rele+co0//1++ext_20fk>/a hrecmddrnext_20fk_NCR5insta5izeKERN;d;5L429" class="line" nams;"5993">5993//1991       19ss="comment/ >20i/"ref="+code=aprevers/scsi/athostpievERN_next_20fk>/a hrecmddrnext_20fk_NCR5ass="s5leKERN)id;5L450" class="line" nams;"5948">5948//1992       19ss="comment//199>//1Nsref-//a> =i-&REMOVtINITIATOR_COMMAREMOVt+code=allN59"><4_wriprevers/scsi/athostpievERN_" i/"ref="+code=aeEX/gssssssssta=a   EX/+code=allN59"><4_wriprevers/scsi/athostpievERN_n" i/"ref="+code=atmpers/scsi/athosttmpERN_" i/"ref="+code=aeEX/gssssssssta=a   EX/+code=allN59"><4_writmpers/scsi/athosttmpERN_)next_20fk>/a hrecmddrnext_20fk_NCR5insta5ifelse id;5L450" class="line" nams;/5950">5950//1993       19f (!/a href//199>//1Nsref-//a> =i-&SET_eEX/gssssssssta=a  SET_eEX/+code=allN59"><4_wriprevers/scsi/athostpievERN_" i/"ref="+code=aeEX/gssssssssta=a   EX/+code=allN59"><4_writmpers/scsi/athosttmpERN_)next_20fk>/a hrecmddrnext_20fk_NCR5insta5iL393" id;5L448" class="line" nams;"5950">5950/120>4       20>  !/a href=} =7  ext_20fk>/a hrecmddrnext_20fk_NCR5ass="s5lfelse id;5L393" class="line" nams;/5950">5950/11955       19paj class="/1195>/150   >20nclass="REMOVtINITIATOR_COMMAREMOVt+code-1 hreSTATUS_REGdriELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostddisconn=ct/1_queuoers/scsi/athostdisconn=ct/1_queuoatcmg %d for ly ptmpers/scsi/athosttmpERN_" i/"ref="+code=aeEX/gssssssssta=a   EX/+code=allN59"><4_writmpers/scsi/athosttmpERN_)next_20fk>/a hrecmddrnext_20fk_NCR5insta5iL393" id;5L393" class="line" nams;/5150">5950//1966       19f (/a href=//196>//1reSTATUS_REGdriELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostddisconn=ct/1_queuoers/scsi/athostdisconn=ct/1_queuoatcm =2+codtransfarsizeEX/gssssssssta=a   EX/+code=allN59"><4_writmpers/scsi/athosttmpERN_)ext_20fk>/a hrecmddrnext_20fk_NCR5insta5ief = 1;d;5L393" class="line" nams;/5129">5929/11967       19       retu/ >20"tmap_zero" class=" " -&ggggggggg=" " 5seKERN)id;5L393" class="line" nams;"5950">5950//1968       19f (!/a href/Nsref-//a> =i-&SET_eEX/gssssssssta=a  SET_eEX/+code=allN59"><4_writmpers/scsi/athosttmpERN_" i/"ref="+code=aeULLgssssssssta=a   ULLRKER)ext_20fk>/a hrecmddrnext_20fk_NCR5insta5ieKERN)id;5L450" class="line" nams;"5950">5950/120>9       20>else {<20"6sref">ta//a>-&gggggggggbreakinsta6#L433" id;6L450" class="line" nams;/6393">6050//199        19spaj >20"tmap_zero" class=" " -&ggggggggg=" " 6ceKERN)id;6L450" class="line" nams;"6393">6093//1991      >20"tmap_zero" class=" " -&ggggggggg=" " 6c2KERN)id;6L450" class="line" nams;"6360">6048//1   >20"6sref">ta//a>-&gggggggggbreakinsta6c3KERN)id;6L450" class="line" nams;/6393">6050//1993      >20 class="sref">hotmpers/scsi/athosttmpERN_)ext_20fk>/a hrecmddrnext_20fk_NCR5ass="s6TNsref)id;6L450" class="line" nams;"6450">6050/120>4       20>  !=allN59"><4_wriprt;tvers/scsi/athostpit;tv+code=allN59"><4_wriKERN_WARNIN"><4_writeKERN_NKERN_WARNIN"0/120=+code=allDMA_PRINTK="LNK"+code=N59"><"warnINT<"printkKbitssre =N59"02xhl#37;d for target %gd do  >for velun >for vepted DATAOUT.53806c5sref)id;6L393" class="line" nams;/6450">6050/12#ifdef20   >20nclass="SUPPORS_TAGSN59"><4_writeKERUPPORS_TAGS8//1   >20"6sref">ta//a>-&gggggggggbreakinsta6r6sref)id;6L393" class="line" nams;/6448">6050//1966       19f (/a href==+code=allDMA_PRINTK="LNK"+=ag7;d for target %gd do  >for velun >for vepted DATAOUT.53806c7sref)id;6L393" class="line" nams;/6450">6029/11#endifortKERN_N/a>->/a hrecmddrivers/stinsta6c8sref)id;6L393" class="line" nams;"6450">6050//1968       19f (!/a href=+code=allDMA_PRINTK="LNK"+not in disconn=ct/1_queuo.st="sre#endit;NgortKERN_N/a>->/a hrecmddrivers/stinsta6c9sref)id;6L450" class="line" nams;"6450">6050/120>9       20>else {<->/a hrecmddrivers/stinsta6efelse id;6L448" class="line" nams;26450">6150/11#ifdef20   >20nclass="SUPPORS_TAGSN59"><4_writeKERUPPORS_TAGS8//1   >20"6sref">ta//a>-&gggggggggbreakinsta6efelse id;6L448" class="line" nams;26493">6193//1991       19ss="commentg %d for ly ptrg"sref">Hhosa///tag+cod   >20"6sref">ta//a>-&gggggggggbreakinsta6e2KERN)id;6L393" class="line" nams;/6450">6150/12#endifortKERN_N/a>->/a hrecmddrivers/stinsta6eEsref"|d;6L393" class="line" nams;/6493">6150//1993       19f (!/a href/)ext_20fk>/a hrecmddrnext_20fk_NCR5insta6eNsref)id;6L393" class="line" nams;/6450">6150/120>4       20>  !==5       20ss="commen//ss="Accept8messagroby clea  ACK=3d(REAL_DMA)r6e5sref)id;6L360" class="line" nams;/6450">6150/120=5       20ss="comment"1 */6150//1996       19       /a h//199>//1si/a19<* with,swe=muwr abor" it)ffarcalledphas///h un20fkcatly conns#ta//a>chang6e7f = 1;d;6L450" class="line" nams;"6450">6129/11957       19"drivers/sc/1195>/15NCR519"*ass="Accept8messagroby clea  ACK=3d(REAL_DMA)r6e8f = 1;d;6L450" class="line" nams;"6450">6150//1968       19f (! sref-//a> =i-&To_abor"gssssssssta=a  To_abor"+code=allN59"><4_wriinstanecmddrivers/scsi/instanecOR_Cnext_20fk>/a hrecmddrnext_20fk_NCR5insta6e9f = 1;d;6L450" class="line" nams;"6450">6150/120>9       20>elslass="sref">ta//a>="slun//a> ="s/////" clasinsta6ng#enditd;6L429" class="line" nams;"6450">6203//1991      >20"tmap_zero" class=" " -&ggggggggg=" " 6nfelse id;6L450" class="line" nams;"6393">6293/11961       19ss="comment/1196>/16LOC"19a h6&ef = 1;d;6L450" class="line" nams;"6448">6220//1966      59       19ss="commen/*7Accept ssssst= by   eaRINT ACK1*ass="Accept8messagroby clea  ACK=3d(REAL_DMA)r6&Esref"|d;6L393" class="line" nams;c6d93">6250//1993     0   >20nclass=" class=" " -&gssssssssta=a       a href="+code=allN59"><4_writedrivers/scsi/atN59"><4_writeKERN_N/a>->/a hreINITIATOR_COMMAND_REGdrivers/scsi/atINITIATOR_COMMAND_REGL4" i N/a>->/a hreICR_BASE#3 ACK=3d(REAL_DMA)r6&L393" id;6L450" class="line" nams;/6448">6250/12>20"tmap_zero" class=" " -&ggggggggg=" " 6&L360" id;6L450" class="line" nams;/6450">6250/11955      =  =/a href="+ELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdconn=ct/1ABLE;/a si/a,a20nclass="tmpers/scsi/athosttmpERN_ext_20fk>/a hrecmddrnext_20fk_NCR5insta6&6sref)id;6L450" class="line" nams;"6450">6250//1966      sref-//a> =i-&RSL">ta///////////////ss=RSL">ta///+code=+code=allDMA_PRINTK="LNK"+code=N59"><"nexus established, printkK=7;d for,hl#37=7;d for,h=ag7=7;d forst="sre#endit;NgortKERN_N/a>->/a hrecmddrivers/stinsta6&7f = 1;d;6L450" class="line" nams;"6450">6229/11967       19       %d for ly plete.%dabortedCR5380.c#L433" i/"ref="+code=atmpers/scsi/athosttmpERN_ta////////rea>->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdevi;/rs/scsi/at" i/"ref="+code=atmpers/scsi/athosttmpERN_ta////////rea>->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdeE" cla5/shi/atcmg %d for ly ptmpers/scsi/athosttmpERN_/atdL4" ip, />->/trg"sref">Hhosa///tag+codNext_20fk>/a hrecmddrnext_20fk_NCR5insta6&8f = 1;d;6L450" class="line" nams;"6393">6250/120>8     4" ip, />->/falcon_dont_rele+co"sref">Hhosa///falcon_dont_rele+co0//1--ext_20fk>/a hrecmddrnext_20fk_NCR5insta6&9f = 1;d;6L429" class="line" nams;"6448">6248/11 >20"tmap_zero" class=" " -&ggggggggg=" " 6ref = 1;d;6L429" class="line" nams;"6450">6350/1197        19       retu/1197>/17rget20nt 6#L393" id;6L393" class="line" nams;c6393">6393/11961       19ss="comment/1196>/16LOC"19a h6ceKERN)id;6L450" class="line" nams;"6450">6350/120=2       20"drivers/s//ss="Accept8messagroby clea  ACK=3d(REAL_DMA)r6ref = 1;d;6L429" class="line" nams;"6493">6350//1973       19       /a h/ Fun="ion : re#N     a habor" (S hr_Csn; *cmd)lid///////-&gR="d>198 is a free tag and the targ6rL393" id;6L450" class="line" nams;"6450">6350/120=4       20ss="comment*lid///////-&gR="d>198 is a free tag and the targ6rL360" id;6L448" class="line" nams;26450">6350/120=5       20ss="comment* Purpoco2: abor" a s="candlid///////-&gR="d>198 is a free tag and the targ6r6sref)id;6L393" class="line" nams;/6450">6350//1996       19       /a h*lid///////-&gR="d>198 is a free tag and the targ6r7f = 1;d;6L393" class="line" nams;/6450">6329/11957       19"drivers/sc/ Inputs2: cmd -s* = S hr_Cmndsto abor", > -s> =o sets* ess="Accept8messagroby clea  ACK=3d(REAL_DMA)r6#8f = 1;d;6L393" class="line" nams;r6393">6350/11958       19ss="comment*      4_wr bytc of *   result fieldNio,  >2zero DID_ABORTED i=ss="Accept8messagroby clea  ACK=3d(REAL_DMA)r6#9f = 1;d;6L393" class="line" nams;=6348">6348/11959       19ss="comment*7     used)ffarcalledphas///h un20fkcatly conns#ta//a>chang6.L360" id;6L360" class="line" nams;/6450">6450/1196        19ss="comment*lid///////-&gR="d>198 is a free tag and the targ6.L393" id;6L360" class="line" nams;/6493">6493/12041       20a href="+co/ Rass="s2: 0 -ssuccess, -1=on failure)ffarcalledphas///h un20fkcatly conns#ta//a>chang6.eKERN)id;6L360" class="line" nams;/6450">6450/120=2       20"drivers/sc*ffarcalledphas///h un20fkcatly conns#ta//a>chang6.ef = 1;d;6L360" class="line" nams;/6493">6450//1973       19       /a h/ XXXs-s* =ro i==no waysto abor"st   s="candsthatsi==curr  /lyRKd///////-&gR="d>198 is a free tag and the targ6.L360" id;6L360" class="line" nams;/6450">6450/120=4       20ss="comment*>8     conn=ct/1, you=have to wait ====ikKto s="plete. 7If * ts isRKd///////-&gR="d>198 is a free tag and the targ6.L360" id;6L393" class="line" nams;c6450">6450/120=5       20ss="comment*       a problem,swe=could i"plecomm longjmp() / setjmp(), setjmp()RKd///////-&gR="d>198 is a free tag and the targ6.6sref)id;6L450" class="line" nams;"6450">6450//1996       19       /a h* 8     called w =ro t   loop started inN     a hmain())ffarcalledphas///h un20fkcatly conns#ta//a>chang6.L393" id;6L450" class="line" nams;"6429">6429/11957       19"drivers/sc/ass="Accept8messagroby clea  ACK=3d(REAL_DMA)r6OL393" id;6L450" class="line" nams;"6493">6450//1   >20"6sref">ta//a>-&gggggggggbreakinsta6Oef = 1;d;6L393" class="line" nams;c6448">6448/11static   >20"6sref">ta//a>-&gggggggggbreakinsta6ceKERN)id;6L450" class="line" nams;"6550">6593/12re#N =  =/a href="+     a habor"gssssssssta=a       a habor"+code=allN59"><4_wriS hr_Csn;/a hrecmddriiveS hr_Csn;8/119*>/a hrehostdct;/a hrecmddriivers/scsiN   >20"6sref">ta//a>-&gggggggggbreakinsta6cL393" id;6L393" class="line" nams;"6593">6593/11xt_20fk>/a hrecmddrnext_20fk_NCR5ass="s6c#L433" d;6L450" class="line" nams;"6548">6448/11952     _PRu="s4" ip, />->/S hr_HostTO_TCRKERN_N/meS hr_Host8/119*=allN59"><4_wriinstanecmddrivers/scsi/instanecOR_C =20   >20nclass="gt;/a hrecmddriivers/scsi/atdL4" ip, />->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinshostTO_TCRKERN_N/mehost8/11ext_20fk>/a hrecmddrnext_20fk_NCR5insta6cef = 1;d;6L450" class="line" nams;"6550">6550//1993     0   >20nclass="teTUP_380.DATAN59"><4_writeKERNTUP_380.DATA+code=allN59"><4_wriinstanecmddrivers/scsi/instanecOR_Cnext_20fk>/a hrecmddrnext_20fk_NCR5insta620>3srefd;6L450" class="line" nams;"6150">6450/11954     =allN59"><4_wriS hr_Csn;/a hrecmddriiveS hr_Csn;8/119*>/a hrehostdtmpers/scsi/athosttmpERN_" **>/a hrehostdprevers/scsi/athostpievERN_ext_20fk>/a hrecmddrnext_20fk_NCR5insta62felse id;6L393" class="line" nams;c6150">6450/11955     unsigned long 4" ip, />->/flags"sref">Hhosa///flagsERN_ext_20fk>/a hrecmddrnext_20fk_NCR5insta626sref)id;6L450" class="line" nams;"6550">6550//1ept8messagroby clea  ACK=3d(REAL_DMA)r62L393" id;6L393" class="line" nams;/6529">6550/120>7     reSTATUS_REGdriprt;tvers/scsi/athostpit;tv+code=allN59"><4_wriKERN_NOTICtINITIATOR_COMMAKERN_NOTICt0/120=+code=allDMA_PRINTK="LNK"+code=N59"><"abor"INT s="candst="sre#endit;Ng %d for ly plete.%dabortedCR5380.c#L433next_20fk>/a hrecmddrnext_20fk_NCR5insta62L393" id;6L393" class="line" nams;/6550">6550/120>8     4" ip, />->/mddr_pit;t_s="cand#37;dabortedCR5mddr_pit;t_s="cand+code=allN59"><4_wrict;/a hrecmddriivers/scsiNext_20fk>/a hrecmddrnext_20fk_NCR5insta62ef = 1;d;6L393" class="line" nams;/6548">6548/11   >20"6sref">ta//a>-&gggggggggbreakinsta6.L360" id;6L360" class="line" nams;/6650">6600/120>8     4" ip, />->/     a hpit;t_status"sref">Hhosa///     a hpit;t_status+code=allN59"><4_wriinstanecmddrivers/scsi/instanecOR_Cnext_20fk>/a hrecmddrnext_20fk_NCR5insta6.0ntsrefd;6L393" class="line" nams;c6693">6693/11961       19ss="comment/1196>/16LOC"19a h6.#L433" d;6L455" class="line" nams;/6648">6620//1966      sref-//a> =i-&local_irq_savecedrdeE" cla5/shocal_irq_save+code=allN59"><4_wriflags"sref">Hhosa///flagsERN_next_20fk>/a hrecmddrnext_20fk_NCR5insta6.ef = 1;d;6L448" class="line" nams;26650">6650//1xt_20fk>/a hrecmddrnext_20fk_NCR5insta6c#L433" d;6L450" class="line" nams;"6650">6650/11954      >20 class="sref">hoIS_A_T/gssssssssta=a  IS_A_T/+codenMeL3sseL3ss2 class="sref">hofalcon_got_lock"sref">Hhosa///falcon_got_lockscsiN   >20"6sref">ta//a>-&gggggggggbreakinsta6cfelse id;6L450" class="line" nams;/6650">6650/11965       19"dri9eSTATUS_REGdriprt;tvers/scsi/athostpit;tv+code=allN59"><4_wriKERN_ERRINITIATOR_COMMAKERN_ERR0/120=+code=allDMA_PRINTK="LNK"+code=N59"><"!!BINGO!! Falcon h+c no lock1inN     a habor"st="sre#endit;NgortKERN_N/a>->/a hrecmddrivers/stinsta6.eKERN)id;6L450" class="line" nams;"6650">6650//1966       19f (/       %d for ly plete.%dabortedCR5380.c#L433next_20fk>/a hrecmddrnext_20fk_NCR5insta6.L393" id;6L429" class="line" nams;"6629">6650/12a>->/a hreICR_BASE#3 ACK=3d(REAL_DMA)r6rL393" id;6L450" class="line" nams;"6150">6650/120>8     4" ip, />->/ABRT">ta///////////////ss=ABRT">ta///+code=+code=allDMA_PRINTK="LNK"+code=N59"><"abor"scalled basr 0x=N59"02x,hsr 0x=N59"02xst="sre#endit;Ng %d for ly plete.%dabortedCR5380.c#L433"a>->/a hreICR_BASE#3 ACK=3d(REAL_DMA)r6ref = 1;d;6L450" class="line" nams;"6150">6650//1989       19"dri    4" ip, />->/     a hssa;/a hrecmddriivee    a hssa;+code=allN59"><4_wriBUS_AND_RreaUSi/atN59"><4_writeKEBUS_AND_RreaUSi/atL433n"a>->/a hreICR_BASE#3 ACK=3d(REAL_DMA)r6>/a }d;6L450" class="line" nams;"6750">6750//199        19spaj clai/"ref="+code=a     a hssa;/a hrecmddriivee    a hssa;+code=allN59"><4_wriRreaUSi/atN59"><4_writeKERreaUSi/at" i Nnext_20fk>/a hrecmddrnext_20fk_NCR5insta6&L393" id;6L393" class="line" nams;"6793">6793/11961       19ss="comment/1196>/16LOC"19a h6ceKERN)id;6L450" class="line" nams;"6148">6748//1# >21961       19ss="comment/1196>/16LOC"19a h6cef = 1;d;6L393" class="line" nams;/6750">6750/11963     0=5       20ss="commen//ss="Accept8messagroby clea  ACK=3d(REAL_DMA)r6c#L433" d;6L393" class="line" nams;/6150">6750/120=4       20ss="comment"1 * un1* C+co21 :7If *   s="candsis === curr  /ly execu"INT s="cand,ss="Accept8messagroby clea  ACK=3d(REAL_DMA)r6&felse id;6L393" class="line" nams;/6150">6750/120=5       20ss="comment"1 */6750//1996       19       /a h//199>//* informa"=== transfe5 rou"INe=can exi"scleanly)ffarcalledphas///h un20fkcatly conns#ta//a>chang6&ef = 1;d;6L360" class="line" nams;/6729">6729/11957       19"drivers/sc/1195>/1/ass="Accept8messagroby clea  ACK=3d(REAL_DMA)r6ceKERN)id;6L360" class="line" nams;/6750">6750//1   >20"6sref">ta//a>-&gggggggggbreakinsta6&eKERN)id;6L393" class="line" nams;/6150">6790/11954      >20 =  =/a href="+ELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdconn=ct/1ABLE;/a si/a,a20nclass="gt;/a hrecmddriivers/scsi)ext_20fk>/a hrecmddrnext_20fk_NCR5ass="s6.L360" id;6L360" class="line" nams;/6850">6850/1197        19       retu/1197>/17rget20nt 6#L393" id;6L393" class="line" nams;"6893">6893/11971       19f (/=allN59"><4_wriABRT">ta///////////////ss=ABRT">ta///+code=+code=allDMA_PRINTK="LNK"+code=N59"><"abor"INT s=nn=ct/1 s="candst="sre#endit;Ng %d for ly plete.%dabortedCR5380.c#L433next_20fk>/a hrecmddrnext_20fk_NCR5insta6#eKERN)id;6L455" class="line" nams;/6848">6848//1992       19ss="0=5       20ss="commen//ss="Accept8messagroby clea  ACK=3d(REAL_DMA)r6#felse id;6L393" class="line" nams;/6850">6850//1973       19       /a h//197>////199>//* We should performsBSY checkt;,,sandsmake surK we=haven;d 9;t slippedlid///////-&gR="d>198 is a free tag and the targ6eL393" id;6L393" class="line" nams;/6850">6850/120=4       20ss="comment"1 * un1//199>//* into BUS FREE)ffarcalledphas///h un20fkcatly conns#ta//a>chang6efelse id;6L360" class="line" nams;/6850">6850/120=5       20ss="comment"1 */6850//1ept8messagroby clea  ACK=3d(REAL_DMA)r6#ef = 1;d;6L450" class="line" nams;/6129">6829/11967       19     59       19ss="commen/*777777     a href="(/a>->/a hreINITIAT, ND_RASSERT_ATN);t*ass="Accept8messagroby clea  ACK=3d(REAL_DMA)r6#eKERN)id;6L450" class="line" nams;"6850">6850//1968       19f (!0=5       20ss="commen//ss="Accept8messagroby clea  ACK=3d(REAL_DMA)r6#eKERN)id;6L450" class="line" nams;"6850">6848/11959       19ss="comment/1195>/1//199>//* SirtK we=can;d 9;t chang  ph+cos until we;d 9;ve s="pleted === curr  /ss="Accept8messagroby clea  ACK=3d(REAL_DMA)r6le (1) id;6L448" class="line" nams;"6950">6950/1196        19ss="comment"1 * un1//199>//* handshake,swe=have =o sourtK or sirk a bytc of iteK  >2=== curr  /ss="Accept8messagroby clea  ACK=3d(REAL_DMA)r6lL393" id;6L429" class="line" nams;"6993">6993/12041       20a href="+co"1 * un1//199>//* ph+co i==not MSGOUT)ffarcalledphas///h un20fkcatly conns#ta//a>chang6leKERN)id;6L450" class="line" nams;"6948">6950/120=2       20"drivers/scs1/atar11e=cm19 *ass="Accept8messagroby clea  ACK=3d(REAL_DMA)r6ifelse id;6L450" class="line" nams;/6950">6950//1xt_20fk>/a hrecmddrnext_20fk_NCR5insta6iL393" id;6L448" class="line" nams;"6950">6950/120>4       20>  !0=5       20ss="commen//ss="Accept8messagroby clea  ACK=3d(REAL_DMA)r6lfelse id;6L393" class="line" nams;/6950">6950/120=5       20ss="comment"1 */6950//1996       19       /a h//199>//1si/a19<* abor"ed flag andsntkKback1in*o our main loop)ffarcalledphas///h un20fkcatly conns#ta//a>chang6lef = 1;d;6L393" class="line" nams;/6129">6929/11957       19"drivers/sc/1195>/15NCR519"*ass="Accept8messagroby clea  ACK=3d(REAL_DMA)r6seKERN)id;6L393" class="line" nams;"6950">6950//1   >20"6sref">ta//a>-&gggggggggbreakinsta6ieKERN)id;6L450" class="line" nams;"6950">6950/120>9       20>els >20 =  =/a href="+To_abor"gssssssssta=a  To_abor"+code=allN59"><4_wriinstanecmddrivers/scsi/instanecOR_Cn ==20)ext_20fk>/a hrecmddrnext_20fk_NCR5ass="s7#L433" id;7L450" class="line" nams;/7393">7050//199        19spaj  20>  !0=  =/a href="+ELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdabor"edABLE;/a si/a,a7093//1991       19ss="comment/0   >20nclass="ELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdconn=ct/1ABLE;/a si/a,a20nclass="eULLgssssssssta=a   ULLRKERext_20fk>/a hrecmddrnext_20fk_NCR5insta7c2KERN)id;7L450" class="line" nams;"7360">7048//1992       19ss="comment/0   >20nclass="gt;/a hrecmddriivers/scsi/atdL4" ip, />->/result/a hrecmddriiveresultRKN_ =20   >20nclass="DID_ABORT/a hrecmddriiveDID_ABORTRKN_  =/a =/am16ext_20fk>/a hrecmddrnext_20fk_NCR5insta7c3KERN)id;7L450" class="line" nams;/7393">7050//1#ifdef20   >20nclass="SUPPORS_TAGSN59"><4_writeKERUPPORS_TAGS8//1   >20"6sref">ta//a>-&gggggggggbreakinsta7TNsref)id;7L450" class="line" nams;"7450">7050/120>4       20>  !comment/0   >20nclass="gt;_frei_tag/a hrecmddriivers/_frei_tag+code=allN59"><4_wrict;/a hrecmddriivers/scsiNext_20fk>/a hrecmddrnext_20fk_NCR5insta7c5sref)id;7L393" class="line" nams;/7450">7050/12#=7  xt_20fk>/a hrecmddrnext_20fk_NCR5insta7c6sref)id;7L393" class="line" nams;/7448">7050//1966       19f (/a href=/0   >20nclass="ELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdbusyABLE;/a si/a,a20nclass="gt;/a hrecmddriivers/scsi/atdL4" ip, />->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdevi;/rs/scsi/at]MeL3ss= ~01N =/a =/amdsref-//a> =i->/a hrecmddriivers/scsi/atdL4" ip, />->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hreinstancedrdeE" cla5/shi/atcmaext_20fk>/a hrecmddrnext_20fk_NCR5insta7c7sref)id;7L393" class="line" nams;/7450">7029/11#endifortKERN_N/a>->/a hrecmddrivers/stinsta7c8sref)id;7L393" class="line" nams;"7450">7050//1968       19f (!/a href  sref-//a> =i-&local_irq_restorecedrdeE" cla5/shocal_irq_restore+code=allN59"><4_wriflags"sref">Hhosa///flagsERN_next_20fk>/a hrecmddrnext_20fk_NCR5insta7c9sref)id;7L450" class="line" nams;"7450">7050/120>9       20>else {< =i->/a hrecmddriivers/scsi/atdL4" ip, />->/mddr_donecedrdeE" cla5/smddr_done+code=allN59"><4_wrict;/a hrecmddriivers/scsiNext_20fk>/a hrecmddrnext_20fk_NCR5insta7efelse id;7L448" class="line" nams;27450">7150//199        19spaj class=/4" ip, />->/falcon_rele+co_lock_if_possiblo"sref">Hhosa///falcon_rele+co_lock_if_possiblo+code=allN59"><4_wriELECT_ENABLE;/a si/a,a<4_writeKERN_Next_20fk>/a hrecmddrnext_20fk_NCR5insta7eeKERN)id;7L448" class="line" nams;27493">7193//1991       19ss="commentsress=" 0   >20nclass="SCSI_ABORT_SUCCESSN59"><4_writeKERCSI_ABORT_SUCCESSRKERext_20fk>/a hrecmddrnext_20fk_NCR5insta7e2KERN)id;7L393" class="line" nams;/7450">7148//1992       19ss="} =7  ext_20fk>/a hrecmddrnext_20fk_NCR5ass="s7eEsref"|d;7L393" class="line" nams;/7493">7150//1973       19       /a /*7777777777777777777777hocal_irq_restore(flags);t*ass="Accept8messagroby clea  ACK=3d(REAL_DMA)r7eNsref)id;7L393" class="line" nams;/7450">7150/120>4       20>  ! class=/4" ip, />->/prt;tvers/scsi/athostpit;tv+code=+code=allDMA_PRINTK="LNK"+code=N59"><"abor"sof s=nn=ct/1 s="cand failed!st="sre#endit;Ng %d for ly plete.%dabortedCR5380.c#L433next_20fk>/a hrecmddrnext_20fk_NCR5insta7e5sref)id;7L360" class="line" nams;/7450">7150/11955       19paj class="/ress=" 0   >20nclass="SCSI_ABORT_ERRORINITIATOR_COMMASCSI_ABORT_ERRORRKERext_20fk>/a hrecmddrnext_20fk_NCR5insta7e6sref)id;7L393" class="line" nams;"7450">7150//1966       19f (/ >20"tmap_zero" class=" " -&ggggggggg=" " 7e7f = 1;d;7L450" class="line" nams;"7450">7129/11967      >20"tmap_zero" class=" " -&ggggggggg=" " 7e8sref)id;7L450" class="line" nams;"7450">7150//1#endifortKERN_N/a>->/a hrecmddrivers/stinsta7e9f = 1;d;7L450" class="line" nams;"7450">7148/11   >20"6sref">ta//a>-&gggggggggbreakinsta7ng#enditd;7L429" class="line" nams;"7450">7203//1991     0=5       20ss="commen//ss="Accept8messagroby clea  ACK=3d(REAL_DMA)r7nfelse id;7L450" class="line" nams;"7393">7293/12041       20a href="+co"1 * un1*cC+co22 :7If *   s="candshasn;d 9;t been issu/1 yet,swe=si"plysremovo2itss="Accept8messagroby clea  ACK=3d(REAL_DMA)r7n2KERN)id;7L450" class="line" nams;"7448">7250/120=2       20"drivers/scs1/atar1*    19f (/from p   issu/ queue)ffarcalledphas///h un20fkcatly conns#ta//a>chang7&Esref"|d;7L393" class="line" nams;c7d93">7250//1973       19       /a h//197>//*ass="Accept8messagroby clea  ACK=3d(REAL_DMA)r7&L393" id;7L450" class="line" nams;/7448">7250/120>4     ====0i/"ref="+code=aprevers/scsi/athostpievERN_f="e=allN59"><4_wriS hr_Csn;/a hrecmddriiveS hr_Csn;8/119**)eL3ss0 =  =/a href="+ELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdissu/_queuoers/scsi/athostissu/_queuoL433n"a>->/a hreICR_BASE#3 ACK=3d(REAL_DMA)r7&L360" id;7L450" class="line" nams;/7450">7250/11955       19p>/a hrehostdtmpers/scsi/athosttmpERN_ =20i/"ref="+code=aS hr_Csn;/a hrecmddriiveS hr_Csn;8/119*) =  =/a href="+ELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdissu/_queuoers/scsi/athostissu/_queuoL433ext_20fk>/a hrecmddrnext_20fk_NCR5insta7&6sref)id;7L450" class="line" nams;"7450">7250//1966       19f>/a hrehostdtmpers/scsi/athosttmpERN_s =allN59"><4_wriprevers/scsi/athostpievERN_f="+codtransfarsizeEX/ADDRINITIATOR_COMMAeEX/ADDR+code=allN59"><4_writmpers/scsi/athosttmpERN_)" i/"ref="+code=atmpers/scsi/athosttmpERN_ =2+codtransfarsizeEX/gssssssssta=a   EX/+code=allN59"><4_writmpers/scsi/athosttmpERN_)next_20fk>/a hrecmddrnext_20fk_NCR5ass="s7&7f = 1;d;7L450" class="line" nams;"7450">7229/11967       19     >20 =  =/a href="+ct;/a hrecmddriivers/scsi =="+codtransfarsiztmpers/scsi/athosttmpERN_next_20fk>/a hrecmddrnext_20fk_NCR5ass="s7&8sref)id;7L450" class="line" nams;"7393">7250//1968       19f (!/a href  sref-//a> =i-&REMOVtINITIATOR_COMMAREMOVt+code5,9*>/a hrehostdprevers/scsi/athostpievERN_" i/"ref="+code=atmpers/scsi/athosttmpERN_" i/"ref="+code=aeEX/gssssssssta=a   EX/+code=allN59"><4_writmpers/scsi/athosttmpERN_)next_20fk>/a hrecmddrnext_20fk_NCR5insta7&9f = 1;d;7L429" class="line" nams;"7448">7250/120>9       20>else {<<4_writmpers/scsi/athosttmpERN_)ext_20fk>/a hrecmddrnext_20fk_NCR5insta7ref = 1;d;7L429" class="line" nams;"7450">7350//199        19spaj class=/4" ip, />->/SET_eEX/gssssssssta=a  SET_eEX/+code=allN59"><4_writmpers/scsi/athosttmpERN_" i/"ref="+code=aeULLgssssssssta=a   ULLRKER)ext_20fk>/a hrecmddrnext_20fk_NCR5insta7#L393" id;7L393" class="line" nams;c7393">7393//1991       19ss="comment/0   >20nclass="tmpers/scsi/athosttmpERN_/atdL4" ip, />->/result/a hrecmddriiveresultRKN_ =20   >20nclass="DID_ABORT/a hrecmddriiveDID_ABORTRKN_  =/a =/am16ext_20fk>/a hrecmddrnext_20fk_NCR5insta7ceKERN)id;7L450" class="line" nams;"7450">7348//1992       19ss="comment/0   >20nclass="local_irq_restorecedrdeE" cla5/shocal_irq_restore+code=allN59"><4_wriflags"sref">Hhosa///flagsERN_next_20fk>/a hrecmddrnext_20fk_NCR5insta7ref = 1;d;7L429" class="line" nams;"7493">7350//1993       19f (!/a href/=allN59"><4_wriABRT">ta///////////////ss=ABRT">ta///+code=+code=allDMA_PRINTK="LNK"+code=N59"><"abor"sremovo1 s="cand from issu/ queue)st="sre#endit;NgortKERN_N/a>->/a hrecmddrivers/stinsta7rL393" id;7L450" class="line" nams;"7450">7350/120>4       20>  ! class=/f (!/a href/=allN59"><4_wrilete.%dabortedCR5380.c#L433next_20fk>/a hrecmddrnext_20fk_NCR5insta7rL360" id;7L448" class="line" nams;27450">7350/11955       19paj class="/973       19       /a /*7Tagged queut;,=note: no =ag7to frei  =ro,shasn;d 9;t been   1ignedss="Accept8messagroby clea  ACK=3d(REAL_DMA)r7r6sref)id;7L393" class="line" nams;/7450">7350//1996       19       /a hhhhhhhhhhhhhhhhhhhhhhhhh* yet.../*ass="Accept8messagroby clea  ACK=3d(REAL_DMA)r7r7f = 1;d;7L393" class="line" nams;/7450">7329/11967       19       retu/0   >20nclass="tmpers/scsi/athosttmpERN_/atdL4" ip, />->/mddr_donecedrdeE" cla5/smddr_done+code=allN59"><4_writmpers/scsi/athosttmpERN_)ext_20fk>/a hrecmddrnext_20fk_NCR5insta7r8sref)id;7L393" class="line" nams;r7393">7350//1968       19f (!/a href  sref-//a> =i-&falcon_rele+co_lock_if_possiblo"sref">Hhosa///falcon_rele+co_lock_if_possiblo+code=allN59"><4_wriELECT_ENABLE;/a si/a,a<4_writeKERN_Next_20fk>/a hrecmddrnext_20fk_NCR5insta7#9f = 1;d;7L393" class="line" nams;=7348">7350/120>9       20>else {<<4_writeKERCSI_ABORT_SUCCESSRKERext_20fk>/a hrecmddrnext_20fk_NCR5insta7.L360" id;7L360" class="line" nams;/7450">7450//199        19spaj >20"tmap_zero" class=" " -&ggggggggg=" " 7.L393" id;7L360" class="line" nams;/7493">7493//1991      >20"tmap_zero" class=" " -&ggggggggg=" " 7.eKERN)id;7L360" class="line" nams;/7450">7448//1   >20"6sref">ta//a>-&gggggggggbreakinsta7.ef = 1;d;7L360" class="line" nams;/7493">7450/11963     0=5       20ss="commen//ss="Accept8messagroby clea  ACK=3d(REAL_DMA)r7.L360" id;7L360" class="line" nams;/7450">7450/120=4       20ss="commenthhhhhhhh* C+co23 :7If any s="cands are conn=ct/1, we;d 9;re goi;,s*o fails* e"abor"ss="Accept8messagroby clea  ACK=3d(REAL_DMA)r7.L360" id;7L393" class="line" nams;c7450">7450/120=5       20ss="commenthhhhhhhh*          and lets* e"high level RCSI roby rmresry at a lat rmtimK orss="Accept8messagroby clea  ACK=3d(REAL_DMA)r7.6sref)id;7L450" class="line" nams;"7450">7450//1996       19       /a hhhhhhhhh*          issu/ a reset)ffarcalledphas///h un20fkcatly conns#ta//a>chang7.L393" id;7L450" class="line" nams;"7429">7429/11957       19"drivers/schhhhhhhh*ffarcalledphas///h un20fkcatly conns#ta//a>chang7.8sref)id;7L450" class="line" nams;"7493">7450/11958       19ss="comment/1195>/1*          TimKouts,sands* =rofore abor"ed s="cands, will be"highly unlikelyRKd///////-&gR="d>198 is a free tag and the targ7Oef = 1;d;7L393" class="line" nams;c7448">7448/11959       19ss="comment/1195>/1*          and handli;,s*hem cleanly1inN* ts situa"=== would make *   s="conRKd///////-&gR="d>198 is a free tag and the targ7ceKERN)id;7L450" class="line" nams;"7550">7550/1196        19ss="comment"1 * un1*          c+co2of noresets less efficiomm,sandswould pollutc ours>.  So,ss="Accept8messagroby clea  ACK=3d(REAL_DMA)r7cL393" id;7L393" class="line" nams;"73">65752041       20a href="+co"1 * un1*cC+cos///h un2nd the >1_)extosrs/">65775 clea  ACK=3d(REAL_DMA)r7n2KERN)id;/7450">7350//1996       19       /a hhhhhhhhhhhhhnshostTO_T7RKERN_N/mehost8/11ext_20f7>/75 clea  ACK=3d(REAL_DMA)r6ifelse id;6L450" c7cmddrivers7scsi/instanecOR_Cnext_20f7>/7 hrecmddrnext_ggggbreakinsta6&eKERN)id;6L393" class="line" nams;/6150">6790/11954      >20 =  =/a href="+ELECT_ENABLE;/a si/a="+ct;/a hrecmddriivers/scsi =="+codtransfarstdprevers/7csi/athostpievERN_ext_20f7>/75ta//a>-&gggggggggbreakinsta6cfelse i class="line" nams;"7450">7348//1992       19ss="comment/0   >20nclass="local_irq_restorecedrdeE" cla5/shocal_irq_restore+code=allN59"><4_wrifflags"sref7>Hhosa///flagsERN_ext_20f7>/75hrecmddrnext_20fk_NCRef = 1;d;7L429" class="line" nams;"7493">7350//1993       19f (!/a href/=allN59"><4_wriABRT">ta///////v+code,/ss=ABRT"NABLE;/a e=allDMA_PRINTK="450" class="line" nams;"7450">7350/120>4       20>  ! class=/f (!/a href/=allN59"><4_wriletass="line"7nams;"6550">6550//1ept8me7sagro75 clea  ACK=3d(REAL9f = 1;d;7L393" class="line" nams;NOOZs="line" nams;"7"line" nams;NOOZsess=" 0   >20nclass="SCSI_ABORT_SUCCESSN59"><4_e.%dab7rtedCR5380.c#L433next_20f7>/7 hrecmddrnext_ggggggggg=" " 7.L393" id;7L360" class="linewrict;/a h7ecmddriivers/scsiNext_20f7>/7 hrecmddrnext_20fk_NCR5insta62ef = 1;d;6L393" c7ass="line"7nams;/6548">6548/11   >2076sref76ta//a>-&gggggggggbreakinsta7ng#enditd;7L429" class="line" nams;"7450">7203//1991     0cmddrivers7scsi/instanecOR_Cnext_20f7>/76 clea  ACK=3d(REAL_DMA)r7nfelse id;7L4504class="line" nams;/6>6750/120=;"6450">6050lass="linebune" na;7L429" class="line" nams;"7450">7203//1991     0ccC+cos///hnams;c6693">6693/11961   7   1976 clea  ACK=3d(REAL_DMA)r7n2KERN)id;7L450d;6L36/745nors/scsi/athostpit;s0a hrres/scsi/"lineI_T_Lhhhhh*          and lets* e"high level RCSI roby rmrlags"sref"7Hhosa///flagsERN_next_20f7>/7620fkcatly conns#ta//a>chang7&Esref"|dsref"|I_T_L_Qa//////ns#ocia/ath9    i96 go950//1class="l"li6     sena;7L429" class="line" nams;"7450">7203//1991     0cmddrivers7nams;26650">6650//1xt_20f7>/76 clea  ACK=3d(REAL_DMA)r7.L360" id;;;;;;3 A//////class="ne" nams;"73">65752041       20a href="+co"1 * un1">Hhosa///7alcon_got_lockscsiN   >2076sref76 clea  ACK=3d(REAL_DMA)r7.L360" ide" nams;"73">65752041       20a href="+co"1 * un1"lags"sref7or"st="sre#endit;NgortKER7_N/a>76 clea  ACK=3d(REAL_DMA)r7.6sref)id;T959 css="linespecial1195gly. Inhhhdmentorre/////////"line/////0a he" nams;"73">65752041       20a href="+co"1 * un1"ss="line"7rtedCR5380.c#L433next_20f7>/7620fkcatly conns#ta//a>chang7.L393" ide//e nams////="line" nselsi/()n1*T950"asi///ass="lin" nams;c641959e" nams;"73">65752041       20a href="+co"1 * un1".%dab7nams;"6629">6650/12a>->7/a hr7620fkcatly conns#ta//a>chang7.8sref)id;f = 1;d;6was"line" namnt"1 * bun6was"ECT_,lass="line" n50/errupC+co23 :7If any s="cands are conn=ct/1, we;d 9;re te.%da7ortedCR5380.c#L433"a>->7/a hr76 is a free tag and the targ7Oef = 1;d;"linementrigg6L3de" nclassELK=3d( namlsi/"lnt/1c/745linld;6Larbitr  19s9e" nams;"73">65752041       20a href="+co"1 * un1riteKEBUS_7ND_RreaUSi/atL433n"a>->7/a hr77 is a free tag and the targ7ceKERN)id;" clascsilassr_,lm8">" na50/errupCse//e namsommen///;6L393" class="line" nams;=6348">6348/11959       179"><4_writ7KERreaUSi/at" i Nnext_20f7>/77 clea  ACK=3d(REAL_DMA)r7nfelse id393" class="line" nams;=6348">6348/11959       179cC+cos///hnams;"6793">6793/11961   7   1977 clea  ACK=3d(REAL_DMA)r7n2KERN)id;Wh12040/errupCse/745en///;6,nclas=+codsmeny6850">68-20ss="393" class="line" nams;=6348">6348/11959       179ags"sref"7"6148">6748//1# >21961   7   197720fkcatly conns#ta//a>chang7&Esref"|dse" nams;"6"1 * un1*lass="line;"6450">6050l=+codsom93">7amlsi/" na5C+co23 :7If any s="cands are conn=ct/1, we;d 9;re =5       27ss="commen//ss="Accept8me7sagro7y clea  ACK=3d(REAL_DMA)r6c#L433" d;because50//19="linecause5anams;/6448/1hash" nams;a//////nt"1 comment"1 */ =i-&( namlsi/;6L393" class="line" nams;=6348">6348/11959       179lags"sref7trol sosthatss="Accept8me7sagro7y clea  ACK=3d(REAL_DMA)r6&eKERN)id393" class="line" nams;=6348">6348/11959       179ss="line"7xi"scleanly)ffarcalledpha7///h 7n20fkcatly conns#ta//a>chang6&ef = 1;dclass="clas=+codsmeny6850">6,"line" nams;"6use50/e po40/erslass="wh120="393" class="line" nams;=6348">6348/11959       179.%dab7sc/1195>/1/ass="Accept8me7sagro7720fkcatly conns#ta//a>chang7.8sref)id;first="linte450">6150//1996       19       /a h//199>//1si/a19<*7ass="line"7nams;/6750">6750//1   >2076sref77 is a free tag and the targ7Oef = 1;d>6150//1996       19       /a h//199>//1si/a19<*7="gt;/a hr7cmddriivers/scsi)ext_20fk7gt;/a78 is a free tag and the targ7ceKERN)id;So="line" nafirst="linte4="line" nam,lass=nt""line" nselsi/()>6150//1996       19       /a h//199>//1si/a19<*7="><4_writ7nams;/6850">6850/1197    7   1978 clea  ACK=3d(REAL_DMA)r7nfelse id; clase;s0ath12041   hhhhhhh* C,( n"linte4="line" nam >6750/ * u>6150//1996       19       /a h//199>//1si/a19<*7=cC+cos///hrtedCR5380.c#L433next_20f7>/78 clea  ACK=3d(REAL_DMA)r7n2KERN)id;1*lass="line;"6450">6050l=+cod">6150//1996       19       /a h//199>//1si/a19<*7=5       27ss="commen//ss="Accept8me7sagro7y clea  ACK=3d(REAL_DMA)r6#felse id;/7450">7350//1996       19       /a hhhhhhhhhhhhh we=haven;7 9;t slippedlid///////-&g7="d>178CR_BASE#3 ACK=3d(REAL_DMA)r6&L393" id;6L450" c7/199>//* i7to BUS FREE)ffarcalledpha7///h 78ta//a>-&ggggg=3d(REAL_DMA)r7&L393" id;7L450" class="line" nams;/7450">7250/11955       19p>/a hrehostdtmpers/scsi/c6sref)id;7L393" class="line" nams;/7448">7050//1966       19f (/a href;"6450">6050//1968line" nams;/744;"6450">6050//1968ne" nams;"7450">7250/>->/a hrehostdconn=ct/1ABLE;/a si/a,a20ncl7mment"1 */7/11e=cm19 *ass="Accept8me7sagro78hrecmddrnext_20fk_NCR5insta7&6sref)id;7L450" class="line" _writmpers/scsi/athosttmpERN_)" i/"ref="+code=atmpers/scsi/athosttmpERN_ =2+codtransfarsizeEX/gssssssssta=a   EX/+code=allN59"><4_wrass="line"7nams;"6850">6850//1ept8me7sagro7y clea  ACK=3d(REALass="s7&7f = 1;d;7L450" class="line" nams;"7450">7229/11967       19     >20 =  =/a href="+ct;/a hrecmddriivers/scsi =="+codtransfarsAT, ND_RAS7ERT_ATN);t*ass="Accept8me7sagro7y clea  ACK=3d(REALxt_20fk_NCR5insta7&6sre class="line" nams;"7450">7348//1992       19ss="comment/0   >20nclass="local_irq_restorecedrdeE" cla5/shocal_irq_restore+code=allN59"><4_wrif=5       27ss="commen//ss="Accept8me7sagro78hrecmddrnext_20fk_NCR5insta7c9sref)id;7L450"d;6L393" class="line" nams;"6893">6893/11971       19f (/=allN59"><4_wriABRT">ta//////////;"6450">6050lne" name=allDMA_PRINTK="450" class="line" nams;"7450">7350/120>4       20>  ! class=/f (!/a href/=allN59"><4_wrilete s="plete7 === curr  /ss="Accept8me7sagro79recmddrnext_20fk_NCR5ass="s6.L360" id;6L360" c7 of iteK  72=== curr  /ss="Accept8me7sagro79hrecmddrnext_20fk_NCR5insta7#ass="s7&7f = 1;d;7L"line" nselsi/tmpERN_)" i/"refline" nselsi/comment/0   >20nclasls >20 =  =/a href="+To_abor"gsssss"450" class="line450" class="line" nams;"7, (40//athosttmpERN_ = class="line" nams;"7450">7050/120>9       205/shi/atcmg %d for ly seL3ss2 class="sref">hofalcon_got_lock"sre7/* ph+co i7=not MSGOUT)ffarcalledpha7///h 79hrecmddrnext_20fk_NCR5insta7ccccccccc9f = 1;d;7L393" class="line" namsBUSY="line" nams;"7"line" namsBUSY=ct/1ABLE;/a si/a,a20ncl7rs/scs1/at7r11e=cm19 *ass="Accept8me7sagro7y clea  ACK=3d(REAL_DMA)r6ifelse id;6L450" c7ass="line"7nams;/6950">6950//1xt_20f7>/7 hrecmddrnext_20fk_NCR5insta7c9sref)id;7L450"d;6L393" class="line" nams;"6893">6893/11971       19f (/=allN59"><4_wriABRT">ta///////re/////////a e=allDMA_PRINTK="450" class="line" nams;"7450">7350/120>4       20>  ! class=/f (!/a href/=allN59"><4_wrilet=5       27ss="commen//ss="Accept8me7sagro7y clea>  ! class=/f (!/a href/=allN59"><4_wrilet=ment"1 */7ansclears* ess="Accept8me7sagro79hrecmddrnext_20fk_NCR5insta7c6sref)id;7L393"450" class="line" nams;"6950">6950/120>9       20>els >20 =  =/a href="+To_abor"gssssss0>  ! class=/f (!/a href/=allN59"><4_wrilet=ss="line"7r main loop)ffarcalledpha7///h 79hrecmddrnext_20fk_NCR5insta6.L393" id;6L429" c7rs/sc/11957/15NCR519"*ass="Accept8me7sagro79 clea  ACK=3d(REALxt_20fk_NCR5insta7&6sre class="li6L455" class="line" nams;/6648">6620//1966      sref-//a> =i-&local_irq_savecedrdeE" cla5/shocal_irq_save+code=allN59"><4_wri7ass="line"7nams;"6950">6950//1   >2076sref7>ta//a>-&gggggggggbreaaaaaaaaa=3d(REAL_DMA)r7&L393" id;7L450" class="line" nams;/7448">7250/120>4     ====0i/"ref="+code=aprevers/scsi/athostpievERN_f="e=allN59"><4_wriS hr_Csn;/a hrecmddriiveS hr_Csn;8/119**)eL3s;"6450">6050//1968line" nams;/744;"6450">6050//1968ne" _writeKERN_N/a>->/a hrehostdissu/_queuoe8ers/scsi/i8stanecOR_Cn ==20)ext_20fk8gt;/a8hrecmddrnext_20fk_NCR5ass="s7#20fk_NCR5insta7&6sre" id;7L450" class="line" nams;/7450">7250/11955       19p>/a hrehostdtmpers/scsi/athosttmpERN_ =20i/"ref="+code=aS hr_Csn;/a hrecmddriiveS hr_Csn;8/119;"6450">6050//1968line" nams;/744;"6450">6050//1968ne" nriteKERN_N/a>->/a hrehostdissu/_queuoe8e1s/scsi/i8s=== curr  /ss="Accept8me8>/8 hrecmddrnext_20fk_NCR5insta7c20fk_NCR5insta7&6sre" id;7L450" class="line" nams;"7450">7250//1966       19f>/a hrehostdtmpers/scsi/athosttmpERN_s =allN59"><4_wriprevers/scsi/athostpievERN_f="+codtransfarsizeEX/ADDRINITIATOR_COMMAeEX/ADDR+code=allN59"><4_writmpers/scsi/athosttmpERN_)" i/"ref="+code=atmpers/scsi/athosttmpERN_ =2+codtransfarsizeEX/gssssssssta=a   EX/+code=allN59"><4_w8="eULLgsss8ssssta=a   ULLRKERext_20f8>/8 hrecmddrnext_20fk_NCR5insta7cccccccccass="s7&7f = 1;d;7L450" class="line" nams;"7450">7229/11967       19     >20 =  =/a href="+ct;/a hrecmddriivers/scsi =="+codtransfar8iiveDID_AB8RTRKN_  =/a =/am16ext_20f8>/80hrecmddrnext_20fk_NCR5insta7rNCR5insta7c20fk_NCR5insta7&6sre class="line" nams;"7393">7250//1968       19f (!/a href  sref-//a> =i-&REMOVtINITIATOR_COMMAREMOVt+code5,9*>/a hrehostdprevers/scsi/athostpievERN_" i/"ref="+code=atmpers/scsi/athosttmpERN_" i/"ref="+code=aeEX/gssssssssta=a   EX/+code=allN59"><4_859"><4_wri8eKERUPPORS_TAGS8//1   >2086sref8>ta//a>-&gggggggggbreakinsta7TTTTTTTTTTTTTTTTT8       19f (!/a href  sref-//a> =i-&REMOVt/120>9       20>else {<<48wrict;/a h8ecmddriivers/scsiNext_20f8>/80hrecmddrnext_20fk_NCR5insta7rNCR5insta7c20fk_NCR5insta7&6sre class="line" nams;"7450">7350//199        19spaj class=/4" ip, />->/SET_eEX/gssssssssta=a  SET_eEX/+code=allN59"><4_writmpers/scsi/athosttmpERN_" i/"ref="+code8line" nams8/7450">7050/12#=7  xt_20f8>/8 hrecmddrnext_20fk_NCR5insta7cNCR5insta7c20fk_NCR5insta7&6sre class="line" nams;c7393">7393//1991       19ss="comment/0   >20nclass="tmpers/scsi/athosttmpERN_/atdL4" ip, />->/result/a hrecmddriiveresultRKN_ =20   >20nclass="DID_ABORT/a hrecmdd8instancedr8eE" cla5/shi/atcmaext_20f8>/80 clea  ACK=3d(REAL_DMA)r7rNCR5insta7c20fk_N360" id;7L448" class="liWine" naun_ERR0line fo/LUN i cldia/alypaj clasass="cla/7450">7350//1996       19       /a hhhhhhhhhhhh8ine" nams;87450">7029/11#endifortKER8_N/a>8020fkcatly conns#ta//a>chang7.8sref)iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*e fr/615goes"lin"line" n >675doesh//197>//e675///nnod;6L/7450">7350//1996       19       /a hhhhhhhhhhhh8i9e" nams;87ams;"6950">6950//1   >208>/80 clea  ACK=3d(REAL_DMA)r6#eKERN)id;6L450"iiiiiiiiiiiiiiiiiiiiiiii*eclass="l(11967   119PLETE/119s="liike)>6150//1996       19       /a h//199>//1si/a19<*8wrict;/a h8ecmddriivers/scsiNext_20f8>/81 clea  ACK=3d(REAL_DMA)r6le (1) id;6L448"iiiiiiiiiiiiiiiiiiiiiiii*;/7450">7350//1996       19       /a hhhhhhhhhhhh8NABLE;/a s8/a,a<4_writeKERN_Next_20f8>/8 hrecmddrnext_20fk_NCR5insta7c3KERN)id;7L450" class="line" nams;/7393">7050//1#ifdef20   >20nclass="SUPPORS_TAGS8writeKERCS8_ABORT_SUCCESSRKERext_20f8>/8 hrecmddrnext_20fk_NCRRRRRRRRRRRRRRRRRRRRRRRRR"s7&7f = 1;d;7L450ass="line" nams;"7450">7050/120>4       20>  !comment/0 stpievERN_) =2+codtransfarsizeEX/gssssssssta=a   EX/+code=allN59"><48148//1992 8     19ss="} =7  ext_20fk8gt;/a8hrecmdddrnext_20fk_NCR5insta7c5sref)id;7L393" class=8_irq_resto8e(flags);t*ass="Accept8me8sagro8y clea  ACK=3d(REAL_DMA)r7eRRRRRRRRRRRRRRRR"s7&7f = 1;d;7L class="line" nams;/7448">7050//1966       19f (/a href=/0   >20nclass="ELECT_ENABLE;/a si/a,a<4_writeKERN_N/a>->/a hrehostdbusyABLE;/a si/a,a20nclass="gt;/a hrecmddriivers/scsi/atdL4" ip, />->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/KERN_N/a>->/a hrehostdbusyABLE;/a si/a,a20nclass="gt;/a hrecmddriivers/scsi/atdL4" ip, />->/a hrecmddrivers/scsi/atcmdsref-//a> =devi;/a hr8e.%dab8rtedCR5380.c#L433next_20f8>/81hrecmdd" " -&ggggggggg=" " 7e8sref)id;7L450" class="8TOR_COMMAS8SI_ABORT_ERRORRKERext_20f8>/8 hrecmddrnext_20fk_NCR_DMA)r7eRRRRRRRRRRRRRRRR"s7&7f = 1;d;7L class="line" nams;"7450">7348//1992       19ss="comment/0   >20nclass="local_irq_restorecedrdeE" cla5/shocal_irq_restore+code=allN59"><4_wri87450">71508/1966       19f (/ >20"tm8p_zer81 clea  ACK=3d(REAL_DMA)r7rNCR5insta7c20fk_NCR5insta7&6sre class="line" nams;c7393">7393//1991       19       retu/0   >20nclass="tmpers/scsi/athosttmpERN_/atdL4" ip, />->/mddr_donecedrdeE" cla5/smddr_done+code=allN59"><48" nams;"7480">7129/11967      >20"tm8p_zer81 clea  ACK=3d(REALxt_20fk_NCR5insta7c20fk_NCR5insta7&6sre class="line" nams;r7393">7350//1968       19f (!/a href  sref-//a> =i-&falcon_rele+co_lock_if_possiblo"sref">Hhosa///falcon_rele+co_lock_if_possiblo+code=allN59"><4_wriELECT_8ine" nams;87450">7150//1#endifortKER8_N/a>81ta//a>-&gggggggggbreaaaaaaaaaaaaaaaaaaaaaaaaa9f = 1;d;7L393" class="line" nams;=7348">7350/120>9       20>else {<<48ass="line"8nams;"7450">7148/11   >2086sref82recmddrnext_20fk_NCR5ass="s7#20fk_ t_ggggggggg=" " 7.L393" id;7L360" class="lin8=5       28ss="commen//ss="Accept8me8sagro82hrecmddrnext_20fk_NCR5insta7cggggggggg=" " 7.L393" id;7L360" class="lin8=riteKERCS8lysremovo2itss="Accept8me8sagro82hrecmddrnext_20fk_NCR5gggggggg=" " 7.L393" id;7L360" class="lin8=48//1992 8issu/ queue)ffarcalledpha8///h 82hrecmddrnext_5gggggggg=" " 7.L393" id;7L360" class="lin8=irq_resto8 h//197>//*ass="Accept8me8sagro82CR_BASE#3 ACK=3d(REAL_DMA)r6&L393" id;6L450" c8s/scsi/ath8stissu/_queuoL433n"a>->8/a hr8ICR_BASE#3 ACKggggbreakinsta7ng#enditd;7L429" class="line" nams;"7450">7203//1991     8rs/scsi/at8ostissu/_queuoL433ext_20f8>/82 clea  ACK=3d(REAL_DMA)r7.6sref)id;7L4505 class hrreach195>/is po40/,4="line" nam waine" nfouss=nns="liof;7L429" class="line" nams;"7450">7203//1991     8r450">71508i/athosttmpERN_)next_20fk8gt;/a8220fkcatly conns#ta//a>chang6&ef = 1;dccccccccccclas=+cods">6150//1996       19       /a h//199>//1si/a19<*8iztmpers/s8si/athosttmpERN_next_20fk8gt;/a8220fkcatly conns#ta//a>chang7.8sref)id>6150//1996       19       /a h//199>//1si/a19<*8ine" nams;8si/athosttmpERN_)next_20f8>/82 is a free tag and the targ7Oef = 1;d;Winprobab+co"1ach195>/is po40/;because5oss="ivers/scs racenthhdt 19s>6150//1996       19       /a h//199>//1si/a19<*8writmpers/8csi/athosttmpERN_)ext_20f8>/83 is a free tag and the targ7ceKERN)id;betw   1="line" nam mment/1//// classsful119 nams;"///////on1 * u        c+co2of noresets less efficiomm,sandswoul8aeULLgssss8sssta=a   ULLRKER)ext_20f8>/83 clea  ACK=3d(REAL_DMA)r7nfelse id; ss="cwoh//197>/#3 ic, buts="cws="ce" ifyms;"/user=nnscss="someth" na"1al         TimKouts,sands* =rofore abor"ed s="cands,8iiveDID_AB8RTRKN_  =/a =/am16ext_20f8>/83 clea  ACK=3d(REAL_DMA)r7n2KERN)id;brokd">6150//1996       19       /a h//199>//1si/a19<*8lags"sref"8Hhosa///flagsERN_next_20f8>/83 clea  ACK=3d(REAL_DMA)r6#felse id;/7450">7350//1996       19       /a hhhhhhhhhhhh8m issu/ qu8ue)st="sre#endit;NgortKER8_N/a>83CR_BASE#3 ACK=3d(REAL_DMA)r6&L393" id;6L450" c8e.%dab8rtedCR5380.c#L433next_20f8>/8 hrecmddrnext_"s7&7f = 1;d;7L class="line" nams;"7450">7348//1992       19ss="comment/0   >20nclass="local_irq_restorecedrdeE" cla5/shocal_irq_restore+code=allN59"><4_wri8asn;d 9;t 8een   1ignedss="Accept8me8sagro836recmddrnext_"s7&7f = 1;d;7L class="line" nams;/7450">7150/12s7&7f = 1;d;7LKERN_INFs;"7450">7350/12KERN_INFsrecmd71       19f (/=allN59"><4_wriABRT">ta/war>" na:>7450/ne" nam probab+comment/1195 classsful119b493">7450/1/on=allDMA_PRINTK="450" class="line" nams;"7450">7350/120>4       20>  ! class=/f (!/a href/=allN59"><4_wrile8hhhhhhhhhh8h* yet.../*ass="Accept8me8sagro83hrecmddrnext_20fk_NCR5insta6.L393" id;6L429" c8writmpers/8csi/athosttmpERN_)ext_20f8>/8 hrecmddrnext_N360" id;7L448" class="liMaybun1*l59  u7550/119 j" natorref  srnclassT-DMA="lik nam(if;7L429" class="line" nams;"7450">7203//1991     8NABLE;/a s8/a,a<4_writeKERN_Next_20f8>/83 is a free tag and the targ7Oef = 1;d;i-&falco20ss=ll) At f  s20a hre="line">685mnt"1 * _ERR0="lineba/7450">7350//1996       19       /a hhhhhhhhhhhh8writeKERCS8_ABORT_SUCCESSRKERext_20f8>/84 is a free tag and the targ7ceKERN)id;ref  srd afmmenthhhhh* C,(nnscss="1*l59 kept du"6950">m* bug">6150//1996       19       /a h//199>//1si/a19<*87450">74508/199        19spaj >20"tm8p_zer84 clea  ACK=3d(REAL_DMA)r7nfelse id;/7450">7350//1996       19       /a hhhhhhhhhhhh8" nams;/7483">7493//1991      >20"tm8p_zer842recmddrnext_"s7&7f = 1;d;7L class="line" nams;r7393">7350//1968       19f (!/a href  sref-//a> =i-&falcon_rele+co_lock_if_possiblo"sref">Hhosa///falcon_rele+co_lock_if_possiblo+code=allN59"><4_wriELECT_8ass="line"8nams;/7450">7448//1   >2086sref84 clea  ACK=3d(REAL_DMA)r6ifelse id;6L450" c8=5       28ss="commen//ss="Accept8me8sagro84 clea  ACK9f = 1;d;7L393" class="line" namsNOT_RUNNING>7350/120>9       20>else NOT_RUNNINGess=" 0   >20nclass="SCSI_ABORT_SUCCESSN59"><48goi;,s*o f8ils* e"abor"ss="Accept8me8sagro8y clea5gggggggg=" " 7.L393" id;7L360" class="lin8esry at a 8at rmtimK orss="Accept8me8sagro84 clea  ACK=3d(REAL_DMA)r6#L393" id;6L393" c8         i8su/ a reset)ffarcalledpha8///h 84hrecmddrnext_20fk_NCR5insta6.L393" id;6L429" c8 19"driver8/schhhhhhhh*ffarcalledpha8///h 8n20fkcatly conns#ta//a>changtd;7L429" class="line" nams;"7450">7203//1991     8will be"hi8hly unlikelyRKd///////-&g8="d>188 is a free tag and the targ7* F = 1;d;6:040/""line" n nams (ostdtmper *cmd)>6150//1996       19       /a h//199>//1si/a19<*8= would ma8e *   s="conRKd///////-&g8="d>188 is a free tag and the targ7d;7L429" class="line" nams;"7450">7203//1991     8 pollutc o8rs>.  So,ss="Accept8me8sagro8y clea  ACK=3d(REAL_DMA)r7* Puri-&e6:0 nams class450/bus">6150//1996       19       /a h//199>//1si/a19<*8*cC+cos///8 un2nd the >1_)extosrs8">65785 clea  ACK=3d(REAL_DMA)r7d;7L429" class="line" nams;"7450">7203//1991     8 ss="line"8RKERN_N/mehost8/11ext_20f8>/85 clea  ACK=3d(REAL_DMA)r6 class="sa:>7450_RE0">7WAKEUP;7L429" class="line" nams;"7450">7203//1991     8 5       28scsi/instanecOR_Cnext_20f8>/85 clea  ACK=3d(REAL_DMA)r6d;7L429" class="line" nams;"7450">7203//1991     8 oi;,s*o f8csi/athostpievERN_ext_20f8>/85 clea  ACK=3d(REAL_DMA)r6d;/7450">7350//1996       19       /a hhhhhhhhhhhh8flags"sref8>Hhosa///flagsERN_ext_20f8>/85 clea  ACK=3d(REAL_DMA)r6#L393" id;6L393" c8ass="line"8nams;"6550">6550//1ept8me8sagro85 cleastatic040/"X/gssssssssta=a line" nbusn namsT_eEX/+code=allNline" nbusn namsn_rele+co_lock_if_po955       19p>/a hrehostdtmpers/scsimdsref-//a> =devi;/KERN_N/a>->/a hrehseL3ss2 class="sref">hofalcon_got_lock"sre8e.%dab8rtedCR5380.c#L433next_20f8>/8 hrecm+ct;/a hrecmddriivers/scsi =="+codtransfar8wrict;/a h8ecmddriivers/scsiNext_20f8>/859recmddrnext_"s7&7f = 1;d;7L0">UP_0>4 DATAline" nams;"7450">UP_0>4 DATAn_rele+co_lock_if_povi;/KERN_N/a>->/a hrehostdbusyABLE;/a si/a,a20nclass="gt;/a hrecmddriivers/scslconref">Hhosa///falcone+co_lock_if_possiblo+code=allN59"><4_wriELECT_8ass="line"8nams;/6548">6548/11   >2086sref86ta//a>-&ggggg40/"X/gssssssssta=aiatdL4" ip, />-&gess=" 0   >20nclass="SCSI_ABORT_SUCCESSN59"><48cmddrivers8scsi/instanecOR_Cnext_20f8>/86hrecmddrnext_un       _E nant/0   >20nclass="local_irq_restorecedrdeE" " 0   >20nclass="SCSI_ABORT_SUCCESSN59"><48ccC+cos///8nams;c6693">6693/11961   8   1986 clea#nt"1 0   >20nclass="SCSI_ABORT_SUCCESSN59"><48css="line"8Hhosa///flagsERN_next_20f8>/863recmddrnext_"s7&7f = 1;d;7L055       19p>/a hrehostdtmpers/scsimdsref-//a> =dev0 =  =/a href="+ELECT_ENABLE;/a si/a968       19f (!/a;"6450">6050//1968line" nams;/744;"6450">6050//1968ne" nriteKERN_N/a>->/a hrehostdissu/_queuoe8cmddrivers8nams;26650">6650//1xt_20f8>/86 cleadd" " -&ggggggggg=" " 7e8sref)id;7L450" class="8">Hhosa///8alcon_got_lockscsiN   >2086sref86 clea>  ! class=/f (!/a href/=allN59"><4_wrile8"lags"sref8or"st="sre#endit;NgortKER8_N/a>866recmddrnext_ass=!       19f (!/aIS_A_T4" ip, />->/rIS_A_T4n_rel)recmddecmdd !       19f (!/a (!/a hgotef-///1968       19f (!/a hgotef-//hrehseL3ss2 class="sref">hofalcon_got_lock"sre8"ss="line"8rtedCR5380.c#L433next_20f8>/86 clea  ACK=3d(REAL"s7&7f = 1;d;7L class="line" nams;/7450">7150/12s7&7f = 1;d;7LKERN_ERRN_s =allN59"><4KERN_ERRrecmd71       19f (/=allN59"><4_wriABRT">ta/!!BINGO!! F(!/a 1has5nor_ERR0in""line" n nams=allDMA_PRINTK="LNK"+code=N59"><"abor"sremovo1 s="cand fr8".%dab8nams;"6629">6650/12a>->8/a hr86 clea  ACK=3d(REALxt_20fk50" class="line"_ms;"7450">7350/120_      mddriivers/scsi/atdL4" ip, />->/mddr_do_lock_if_possiblo+code=allN59"><4_wriELECT_8arict;/a h8ortedCR5380.c#L433"a>->8/a hr86hrecmddrnext_20fk_NCR5insta62ef = 1;d;6L393" c8riteKEBUS_8ND_RreaUSi/atL433n"a>->8/a hr870recmddrnext_"s7&7f = 1;d;7L"line" n450">_statuocal_irq_restore"line" n450">_statuon_rele+co_lock_if_povi;/KERN_N/a>->/a hrehostdbusyABLE;/a si/a,a20nclass="gt;/a hrecmddriivers/scslconref">Hhosa///falcone+co_lock_if_possiblo+code=allN59"><4_wriELECT_89"><4_writ8KERreaUSi/at" i Nnext_20f8>/87 cleaock_if_possiblo+code=allN59"><4_wriELECT_89cC+cos///8nams;"6793">6793/11961   8   19872recmddrnext_"360" id;7L448" class="li/615in"phss="d;/7450">7350//1996       19       /a hhhhhhhhhhhh89ags"sref"8"6148">6748//1# >21961   8   19873recmddrnext_"s7&7f = 1;d;7L"line" nwritsyERN_[0   >20nc"line" nwritsn_rele+co_lock_if_poTARG">711967   REG>7350/120>9    TARG">711967   REGsi/a97350//1996       19       /a hhhhhhhhhhhh89mddrivers8ss="commen//ss="Accept8me8sagro87 clea  ACK=3d(REAL_DMA)re+co_lock_if_poPHASE_SR_TO_TCRN_s =allN59"><4PHASE_SR_TO_TCRn_rele+co_lock_if_po"line" n na;/KERN_N/a>->"line" n na;n_rele+co_lock_if_po9TATUS REG>7350/120>9    9TATUS REGdr_do__lock_if_possiblo+code=allN59"><4_wriELECT_89>Hhosa///8INT s="cand,ss="Accept8me8sagro87CR_BASE#3 ACKggggbreakinsta7ng#enditd/ns#ert RST"d;/7450">7350//1996       19       /a hhhhhhhhhhhh89lags"sref8trol sosthatss="Accept8me8sagro87><48148//1992 8     19ss="} =7  ext_20fk"line" nwritsn_rele+co_lock_if_poTARGIOITIATOR_if_poTARG">711967   REG>73IOITIATOR_if_poTARG">T_ENAB_lock_if_poTARGICR_Ball711967   REG>73ICR_Ball8me8s|B_lock_if_poTARGICR_ASSERT_dit711967   REG>73ICR_ASSERT_ditosa///falcone+co_lock_if_possiblo+code=allN59"><4t_lock"sre79ss="line"7xi"scleanly)f8arcal8778me8sagro87><48148//1992 8 udela (/a href=/0   >udela le+co40//falcone+co_lock_if_possiblo+code=allN59"><4s="cand fr79.%dab7sc/1195>/1/as8="Acc87_20f8>/8 hrecmddrnext_N360" id;7L44* Puriode4* gisuse50/ns#ert RST"d;/7450">7350//1996       19       /a hh_wriELECT_7ass="line"7nams;/6750">6850//187_20f8>/859recmddrnext_"s7    19ss="} =7  ext_20fk"line" nwritsn_rele+co_lock_if_poTARGIOITIATOR_if_poTARG">711967   REG>73IOITIATOR_if_poTARG">T_ENAB_lock_if_poTARGICR_Ball711967   REG>73ICR_Ball8me8//falcone+co_lock_if_possiblo+code=allN59">711967   REG>73MODERG">T_ENAB_lock_if_poTARGMR_Ball711967   REG>73MR_Ball8me8//falcone+co_lock_if_possiblo+code=allN59"><4_writ7nams;/6850">6850/11881   8   19873recmddrnext_"s7&7f = 1;d;7L"line" nwritsyERN_[0   >20nc"line" nwritsn_rele+co_lock_if_poTARG">711967   REG>7350/120>9    TARG">71196 0//falcone+co_lock_if_possiblo+code=allN59">20nc"line" nwritsn_rele+cSELECT_ENABLERG">711967   REG>73SELECT_ENABLERG">71196 0//falcone+co_lock_if_possiblo+code=allN59">20"6sref">ta//a>-&gggggggggbreakins ++romanr7* PuriERN)id;Whers/scs ra! >//e6wisL450dERN)id;Wh12de id; ss=ge//////nt"1 comment"1 */7350//1996       19       /a 8id;6L450" 87/199>//* i7to BUS FREE)f8arcal8edpha7///h 78t(voiddtmpers/scsi/atho_lock_if_po"line" n na;/KERN_N/a>->"line" n na;n_rele+cs="sa:PARITY_INTN59UPTRG">711967   REG>73s="sa:PARITY_INTN59UPTRG">8me8//falcone+co_lock_if_possiblo+code=allN59"><4_8rass="line"7nams;"6850">6850//18pt8me7   19">ta//a>-&gggggggggbreakins XXX S f  s2nowupCs20nc by midline" ;"////197>itid; ss)r7n2Kn XXX s="line" nams;/7450">7350//1996       19       /a 8is="cand frsAT, ND_RAS7ERT_ATN);t*as8="Acc88_20f8>/8 hrecmddrnext_N360" id;7L44XXX se0">6lowuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuXXX s="line" nams;/7450">7350//1996       19       /a 8i_wriELECT_f=5       27ss="commen//s8="Acc88->8/a hr86hrecmddrnext_20fk_NCR5insta62ef = 19"><4_wril8te s="plete7 === curr  /s8="Acc89 >2076sref76ta//a>-&gggggggggbreakins MSch: old-styllse idt: actus="li1;d;6wide/>" na:>7450mentBRT"7ceKEs="line" nams;/7450">7350//1996       19       /a 8id;6L360" 87 of iteK  72=== curr  /s8="Acc89_20f8>/87 cleaock_if_possiblo+code=allN59">ta//////////;"6450">Larbitr  19s9e" nams;"73">65752041       20a href820   >20nc87rs/scs1/at7r11e=cm19 *as8="Acc891   7   197720fkcatly conns#ta//a>chana:>750d20nc units;f = 1void7450/lems//ns#ore-inng#e;/6448/1"6450">Larbitr  19s9e" nams;"73">65752041       20a href82hhhhhhhhh87ass="line"7nams;/6950">6850//189t8me7sagro7y clea  ACK=3d(REAL_DMA)9    T_,la"+ELECT_ENt(via 0   >20nc()),f  srd afm//;"6450">Ld;7Larbitr  19s9e" nams;"73">65752041       20a href82d;6L450" 8t=5       27ss="commen//s8="Acc89t8me7sagro7y clea  ACK=3d(REAL_DMA)rememblineminine" l v1  rupCs;So="lclass450/bus">6150//1996       19       /a h//199>9"><4_wril8t=ment"1 */7ansclears* es8="Acc89_20f8>/82 clea  ACK=3d(REAL_DMA="line" nams;/7450">7350//1996       19       /a 8ilN59"><4_8t=ss="line"7r main loop)f8arcal8978me8sagro87><48148//1992 8 5insta7&6sre class="li6L455" class="line" nams;/6648">6620//1966      sref-//a> =i-&local_irq_savecedrdeE" cla5/shocal_irq_save+code=al8id;6L429" 87rs/sc/11957/15NCR519"*as8="Acc8pt8me7sagro79 dtmpers/scsimdsref-//a> =dev0 =  =/a href="+ELECT_ENlass="line" nams;/7450">7250/11955       19p>/a hrehostdtmpers/scsi/athosttmpERN_ =20i/"ref="+code=aS hr_Csn;/a hrecmddriiveS ref-//a> =dev0 =  =/a href="+ELECT_EN_savecedrdeE" cla5/shocal_irq_save+code=al8i_wriELECT_7ass="line"7nams;"6950">6850//189_20f8>/859recmddrnext_"s7osttmpERN_ =20i/"ref="+code=aS hr_Csn;/a hrecmddriiveS ref-//a> =dev0 =  =/a href="+ELECT_EN> =i-&REMOVt/120>9 sssssssta=a  SET_eEX/+code_savecedrdeE" cla5/shocal_irq_save+code=al9ssu/_queuo98ers/scsi/i8stanecOR_Cn =920)ex90->8/a hr870recmddrnext_"s7    19f (!/a;"6450">6050//1968line" nams;/744;"6450">60lass="line" nams;/7450">7250/11955       19p>/a hrehostdtmpers/scsi/athosttmpERN_ =20i/"ref="+code=aS hr_Csn;/a hrecmddriiveS     19f (!/a;"6450">6050//1968line" nams;/744;"6450">6050//1968ne" nriteKERN_N/a>->/a hrehostd9ssu/_queuo98e1s/scsi/i8s=== curr  /s9="Acc901   8   19873recmddrnext_"s7osttmpERN_ =20i/"ref="+code=aS hr_Csn;/a hrecmddriiveS     19f (!/a;"6450">6050//1968line" nams;/744;"6450">60> =i-&REMOVt/120>9 sssssssta=a  SET_eEX/+code_savecedrdeE" cla5/shocal_irq_save+code=al9s2u/_queuo98/* ph+co i7=not MSGOUT)f9RKERe901   8   ;/8 hrecmddrnext_20fk_NCR5insta7c3KERN)id;7L450" class="line" nams;/7393">7050//1#ifdef20   >20nclass="9codtransfa98iiveDID_AB8RTRKN_  =/a =9am16e901   8   19873recmddrnext_"s7"7450ide0">7   sref-//a> =i-&7450ide0">7 gt;/rI_savecedrdeE" cla5/shocal_irq_save+code=al9s4dtransfa98ass="line"7nams;/6950">69S8//190_20f8>/86 cleadd" " -&ggggggggg=" " 7e8sref)id;7L9=allN59"><98wrict;/a h8ecmddriivers/9csiNe9t_20f8>/80hbreaaaaaaaaa=3d(REALssssssssta=aiatdL4" i> =0ivers/scsi/atcmdsssssssssta=aiatdL4" i>ddriv8; ++ers/scsi/atcmdsssssssssta=aiatdL4" igotef-//hrehseL3ss2 class="sref">hofalcon_9"ref="+cod98line" nams8/7450">7050/19#=7  9t_20f8>/8 hrecmddrnrecmddrnext_"s7osttmpERN_ =20i/"ref="+code=aS hr_Csn;/a hrecmddriiveS 19f (/a href=/0   >20nclass="ELECT_ENABLE;/ssssssssta=aiatdL4" i]> =0iotef-//hrehseL3ss2 class="sref">hofalcon_9"7ef="+cod98=ss="line"7r main loop)f9tcmae907   8   ;/8 hrecmddrnext_20REAL_DM">UP_0>4 DATAlinREAL_DM"ne" nams;/7393">7050//1#ifdef20   >20nclass="9c8ef="+cod98rs/sc/11957/15NCR519"*as9endif90t8me7sagro79 dtmpers/scsimdsosttmpERN_ =20i/"ref="+code=aS hr_Csn;/a hrecmddriiveS  ma_leiivers/scsi/atdL ma_lei4" i> =0inams;/7393">7050//1#ifdef20   >20nclass="9c9ef="+cod98ass="line"7nams;"6950">6950//19  >208>/86 cleadd" " -&ggggggggg=" " 7e8sref)id;7L9//1si/a19<98wrict;/a h8ecmddriivers/9csiNe91->8/a hr870recmddrnext_"s7&7f = 1;d;7L class="line" nams;"7450">7348//1992       19ss="comment/0   >20nclass="local_irq_restorecedrdeE" cla5/shocal_irq_restore+code=al9hhhhhhhhhh98NABLE;/a s8/a,a<4_writeK9RN_Ne91_20f8>/87 cleaock_if_possiblo+code=allN59">9UPPORS_TAG98writeKERCS8_ABORT_SUCCES9RKERe911   8   19872recmddrnext_"360" id;7L44ial1195gly. tel0ss="cmid-line" ;"// which;"6450">Ldwe" nams;"74/////on1 * u        c+co2of noresets less efficio9=allN59"><98148//1992 8     19ss="} 97  ex911   7   197720fkcatly conns#ta//a>chanPuri-&e6>" na:>7ine" nly. p, /s="sana:>7 ide/0   >20nc() !!!////on1 * u        c+co2of noresets less efficio9=4dtransfa98_irq_resto8e(flags);t*as9="Acc91t8me7sagro7y clea  ACK=3d(REAL_DMA)r7.6sultimo/LUN ams;"s7450mentBRT"o"lines/1"6450">Lms;c74"cmid-line"class450/bus">6150//1996       19       /a h//1999=devi;/a h98e.%dab8rtedCR5380.c#9433ne91t8me7sagro7y clea  ACK=3d(REAL_DMA="line" nams;/7450">7350//1996       19       /a 950" class=98TOR_COMMAS8SI_ABORT_ERRO9RKERe91_20f8>/85 clea  ACK=3d(REAL_DMA)r6#L393"9N59"><4_wr987450">71508/1966       19f (/ 920"tm8p_zer81 recmcccccccccass="s7&7f = 1;d;7L450" class="lin dtmpers/scsimdsref-//a> =dev0 =  =/a href="+ELECT_EN2+codtransfarsizeEX/gssssssssta=a   EX/+code=9=allN59"><98" nams;"7480">7129/119679     920"tm8p_zer81 clea dtmpers/scsimdsef)id;7L450"d;6L393" class="line" nams;"6893">6893/11971       19f (/=allN59"><4_* Purid afm//;ad;6L36/745nors/scs3">7450/1/on=allDMA_PRINTK="450" class="line"_ms;"7450">7350/120_      mddriivers/scsi/atdL4" ip, />->/mddr_do_lock_if_possiblo+code=allN59">94_wriELECT98ine" nams;87450">7150//19endif9rtKER8_N/a>81ta//a>-&g_statuon_rele+co_lock_if_povi;/KERN_N/a>->/a hrehostdbusy991       19ss="comment/0   >20ncl>_statuon_rele+co_lock_if_povi;/KERN_N/a>->/a hrehostdbusy991       19ss="comment/0   >20nn_rel)0xffff) |l>_statuon_rele+cp, /s="sa    19ss="commep, /s="sa4" i>ddria hrecm>/mddr_do_lock_if_possiblo+code=allN59">9CESSN59"><98ass="line"8nams;"7450">7948/119  >2086sref82recmddrne_statuon_rele+co_lock_if_povi;/KERN_N/a>->/a hrehostdbusy991       19       retu/0   >20nclass="tmpers/scsi/atiivers/scsi/atdL4" ip, />-gt;/mddr_do_lock_if_possiblo+code=allN59">9Chhhhhhhhh98=5       28ss="commen//s9="Acc9pt8me8sagro82hsagro8y clea5gggggggg=" " 7.L393" id;7L3609 class="li98=riteKERCS8lysremovo2its9="Acc9pt8me8agro8y clea5gggggggg=" " 7.L393" id;7L3609 allN59"><98=48//1992 8issu/ queue)f9arcal9edpha8///h 82hbreaaaaaaaaa=3d(REALssssssssta=aiatdL4" i> =0ivcccccccccass="s7&7f = 1;d;7L450" class="lin dtmpers/scsimds8/119**)eL3s;"6450">6050//1968line" nams;/744;"6450">605; ++ers/scsi/atcmdsssssssssta=aiatdL4" igcodtransfarsizeEX/gssssssssta=a   EX/+code=9 class="li98=irq_resto8 h//197>//*as9="Acc92t8me8sagro87 clea  hrecmddriiveS     19f (!/a;"6450">6050//1968line" nams;/744;"6450">60> =i-&REMOVt/120>9       20>else {<-gt;/mddr_do_lock_if_possiblo+code=allN59">9Cdevi;/a h98s/scsi/ath8stissu/_queuo9433n"9>->8/a hr8ICclea  hrecmddriiveS 5insta7&6sre class="line" nams;"7450">7350//199     class="line450" class="lini-&REMOVt/120>9 sssssssta=a  SET_eEX/+code-gt;/mddr_do_lock_if_possiblo+code=allN59">9C0" class=98rs/scsi/at8ostissu/_queu9L433e92_20f8>/8 hrecmddrnrecmddrnext_"s7o_lock_if_povi;/KERN_N/a>->/a hrehostdbusy991       19ss="comment/0   >20ncl>_statuon_rele+co_lock_if_povi;/KERN_N/a>->/a hrehostdbusy991       19ss="comment/0   >20nn_rel)0xffff) |l>_statuon_rele+cp, /s="sa    19ss="commep, /s="sa4" i>ddria hrecm>/mddr_do_lock_if_possiblo+code=allN59">9C59"><4_wr98r450">71508i/athosttmpER9_)nex92_20f8>/86 clea  ACK=3d(REAL"s7o_lock_if_povi;/KERN_N/a>->/a hrehostdbusy991       19       retu/0   >20nclass="tmpers/scsi/atiivers/scsi/atdL4" ip, />-gt;/mddr_do_lock_if_possiblo+code=allN59">9CallN59"><98iztmpers/s8si/athosttmpE9N_nex9288me8sagro82hsagro8y clea5gggggggg=" " 7.L393" id;7L3609 _wriELECT98ine" nams;8si/athosttmpE9N_)ne92tKER8_N/a>81tta7cccccccccass="s7ssssssssta=aiatdL4" i>dgt; 0gotef-//hrehseL3ss2 class="sref">hofalcon_9//1si/a19<98writmpers/8csi/athosttmp9RN_)e93 >2086sref82recmddrne_statuon_rele+cef)id;7L450"d;6L393" class="line" nams;"6893">6893/11971       19f (/=all4_* Purid afm//;N59"><>ta//////////;"6450">(s)3">7450/1/on=allDMA_PRINTK="450"ssssssssta=aiatdL4" iggt;/mddr_do_lock_if_possiblo+code=allN59">9m,sandswou98aeULLgssss8sssta=a   ULL9KER)e93_20f8>/87 cleaock_if_possiblo+code=allN59">9d s="cands98iiveDID_AB8RTRKN_  =/a =9am16e931   8   19872recmddrnext_"360" id;7L44nsela/!!BIN!/a 1t f  s2berg7ceKERN)id;refa_* Pur..class450/bus">6150//1996       19       /a h//1999//1si/a19<98lags"sref"8Hhosa///flags9RN_ne9t_20f8>/83 clea  ACK=3d(REAL_DMA)r6#felse id;/7450">7350//1996       19       /a 9hhhhhhhhhh98m issu/ qu8ue)st="sre#en9it;Ng934   8   19872recmddrnext_"360" id;7L44++gu idher: " na/erru      0   >* Pur(),f o sref*l59as="iveg7ceKERr6#felse id;/7450">7350//1996       19       /a 9hdevi;/a h98e.%dab8rtedCR5380.c#9433ne93t8me7sagro7y clea  ACK=3d(REAL_DMA)="liWiBRT"a:>7errupRT">tmadERN)id;Whclass450/bus">6150//1996       19       /a h//1999/0" class=98asn;d 9;t 8een   1igneds9="Acc93_20f8>/82 clea  ACK=3d(REAL_DMA="line" nams;/7450">7350//1996       19       /a 99"><4_wril98hhhhhhhhhh8h* yet.../*as9="Acc9320fk8gt;/a8220fkcatly conns/ang6&ef68       19f (!/a href  sref-//( code=aS  );A="line" nams;/7450">7350//1996       19       /a 99allN59"><98writmpers/8csi/athosttmp9RN_)e9t_20f8nams;/7450">7350//1996       19       /a 99_wriELECT98NABLE;/a s8/a,a<4_writeK9RN_Ne939   8   19872recmddrnext_"360" id;7L44a/alypide/>" na:>s havveg7en explicitly N)imina"74/l) Aa50/errutel0"line" nams;/7450">7350//1996       19       /a 9hhhhhhhhhh98writeKERCS8_ABORT_SUCCES9RKERe9t_20f8>/84 is a free tag and the tar74"cmidline" ;"// " d;b  sre idt4="li    20>FUL, classsfause!! F"line" nams;/7450">7350//1996       19       /a 9h,sandswou987450">74508/199        19spaj 920"tm8p_zer84 clea  ACK=3d(REAL_DMAAa50/erruid; swake upid; s448/1"6450">L by a_* "64st_sensLarbitr  19s9e" nams;"73">65752041       20a href9hhhhhhhhhh98" nams;/7483">7493//19919     94_20f8>/83 clea  ACK=3d(REAL_DMA="line" nams;/7450">7350//1996       19       /a 94_wriELECT98ass="line"8nams;/7450">7948//194dpha8///h 82hclea  ACK9f = 1;d;7L393"s="sa:="line" nams;=7348">7350/12s="sa:="line"pha8/|B_lock_if_poTARG50/12s="sa:B20>9 "sa    19ss="comme50/12s="sa:B20>9 "sacode_savecedrdeE" cla5/shocal_irq_save+code=al9id;6L450" 98=5       28ss="commen//s9="Acc94_20f8&glse2recmddrnext_"360" id;7L441MA="line" nams;/7450">7350//1996       19       /a 94devi;/a h98goi;,s*o f8ils* e"abor"s9="Acc94 >2086sref86 clea>  ! class=/f (!/a href/=allN9 class="li98esry at a 8at rmtimK ors9="Acc946   8   19872recmddrnext_"360" id;7L44MSch: new-styllse idt handpRT": luri-&e6mid-line" do w d;bity685MA="line" nams;/7450">7350//1996       19       /a 94"><4_wril98         i8su/ a reset)f9arcal9edpha8///h 84hrecmddrnext_20fk_NCR5insta6.L393"9id;6L429" 98 19"driver8/schhhhhhhh*f9arcal94_20f8>/8 hrecmddrnext_N360" id;7L44++gu idher: MID-LEVEL IS STILL BROKENclass450/bus">6150//1996       19       /a h//1999//1991    98will be"hi8hly unlikelyR9d////9//-&g8="d>188 is a free tag a(REAL_DMAAMid-line" "liMap_DMAd550/11CT_ENtide/>" na:>s " d;bwe" nact199 onpaj clasass="cla/7450">7350//1996       19       /a 9//1si/a19<98= would ma8e *   s="conR9d////9//-&g8="d>188 is a free tag a(REAL_DMAAv1  ousN!/w-line" ccccccc4ialfactbitydii*e his//197>" d;id; ss)ne" enoughclasass="cla/7450">7350//1996       19       /a 9/,sandswou98 pollutc o8rs>.  So,s9="Acc9pt8me8sagro8y clea  ACK=3d(REAL_DMAA5>/is poal0ss="s/1"6450">Lm;7L4subj///errutimeout. A waif a_timeoutclasass="cla/7450">7350//1996       19       /a 9/hhhhhhhhh98*cC+cos///8 un2nd the &g9;1_)e9tosrs8">65785 clea  ACK=3d(REAL_DMAAhappenshbrea" nfre" na/e"6450">, *ine" n() "li idea/e197>al0sccccccclasass="cla/7450">7350//1996       19       /a 9/_wriELECT98 ss="line"8RKERN_N/mehos98/11e9t_20f8>/85 clea  ACK=3d(REAL_DMAA;7L450w empty. A;d;6ws="n g735s upi-&e6f/!!BIN!/a , which;"lif   l/////on1 * u        c+co2of noresets less efficio9//1991    98 5       28scsi/instanec9R_Cne9t_20f8>/85 clea  ACK=3d(REAL_DMAAa/alypaj 6mid-line"  ic, CT_ENtmsssf//450">Lm; waclasshavveine">685////on1 * u        c+co2of noresets less efficio9/devi;/a h98 oi;,s*o f8csi/athostpie9ERN_e9t_20f8>/85 clea  ACK=3d(REAL_DMAA(itid; ss)al0shappenRT">insi// "imeriERN)id;Whehandper!!)class450/bus">6150//1996       19       /a h//1999hhhhhhhhhh98flags"sref8>Hhosa///flag9ERN_e95_20f8>/82 clea  ACK=3d(REAL_DMA)Ef*l worse,i1;d;6w ic, clea &#    20>elsehbrea"l0ss=os/1"6450">Lmne"lass450/bus">6150//1996       19       /a h//1999h"><4_wril98ass="line"8nams;"6550">6950//19520fk8gt;/a8220fkcatly conns#ta//a>chanone" nfCT_EN,)r7nineylse id; ss=berg7tria/e..class450/bus">6150//1996       19       /a h//1999ot_lock"sr98e.%dab8rtedCR5380.c#9433ne9520fk8gt;/a8220fkcatly conns#ta//a>chang7.8sref)id>6150//1996       19       /a h//1999codtransfa98wrict;/a h8ecmddriivers/9csiNe95/-&g8="d>188 is a free tag a(REAL_DMAAConclusion: eidher/0   .c>ta/rupCs;timeouthbrea"l0se idt///;"6450">Larbitr  19s9e" nams;"73">65752041       20a href94_wriELECT98ass="line"8nams;/6548">6948/1196/-&g8="d>188 is a free tag a(REAL_DMAAline fo/LUN,;or>we">6se!  As"o"l8naux-2.0.20bitydii* id; ssclass450/bus">6150//1996       19       /a h//1999CESSN59"><98cmddrivers8scsi/instanec9R_Cne960"tm8p_zer84 clea  ACK=3d(REAL_DMA)r7nfelse id;/7450">7350//1996       19       /a 9CESSN59"><98ccC+cos///8nams;c6693">6993/1196t8me8agro8y clea5gggggggg=" " 7.L393" id;7L3609CESSN59"><98css="line"8Hhosa///flags9RN_ne96 >20"6sref">ta//a>-&gggggggggbreakins Ad;ref  sre idt,KERN)id;7L450dmsssf/////////;or>ta//////////;"6450">Larbitr  19s9e" nams;"73">65752041       20a href9ssu/_queuo98cmddrivers8nams;26650">6950//196_20f8>/85 clea  ACK=3d(REAL_DMAAa:>750d20nc units;fr7nclea  119PL/w-line" ine" nlRN)id = 1voidarbitr  19s9e" nams;"73">65752041       20a href9sdevi;/a h98">Hhosa///8alcon_got_loc9scsiN96_20f8>/85 clea  ACK=3d(REAL_DMAA///flicts whenss="cmid-line" ;"// trianly. wake upf  srdff+ELECT_bitr  19s9e" nams;"73">65752041       20a href9shhhhhhhhh98"lags"sref8or"st="sre#en9it;Ng96_20f8>/82 clea  ACK=3d(REAL_DMA)"6450">L!////on1 * u        c+co2of noresets less efficio9ot_lock"sr98"ss="line"8rtedCR5380.c#9433ne9620fk8gt;/a8220fkcatly conns#ta//a>cha)r7nfelse id;/7450">7350//1996       19       /a 9Ct_lock"sr98".%dab8nams;"6629">6950/1296_20f8nams;/7450">7350//1996       19       /a 94_wriELECT98arict;/a h8ortedCR5380.c9L433"96tKER8_N/a>81tta7cccccccccass="s7osttmpERN_ =20i/"ref="+code=aS hr_Csn;/a hrecmddriiveS a"+ELECT_ENsssssssta=aiatdL"+ELECT_EN4" igotef-//hrehseL3ss2 class="sref">hofalcon_9;d;6L393" 98riteKEBUS_8ND_RreaUSi/at9433n"97 >2086sref82recmddrne_statuon_rele+cef)id;7L450"d;6L393" class="line" nams;"6893">6893/11971       19f (/=allN59"><4_* Purid afm//;L"+EL/;"6450">(s)3">7450/1/on=allDMA_PRINTK="450" class="line"_ms;"7450">7350/120_      mddriivers/scsi/atdL4" ip, />->/mddr_do_lock_if_possiblo+code=allN59">94_wriELECT989"><4_writ8KERreaUSi/at"9i Nne971KER8_N/a>81tta7cccccccccass="s7osttmpERN_ =20i/"ref="+code=aS hr_Csn;/a hrecmddriiveS ref-//a> =dev0 =  =/a href="+ELECT_EN2t;/mddr_do_lock_if_possiblo+code=allN59">94ESSN59"><989cC+cos///8nams;"6793">6993/1197t8me8sagro82hrecmddrndtmpers/scsimdsef)id;7L450"d;6L393" class="line" nams;"6893">6893/11971       19f (/=allN59"><4_* Purid afm//;ad;6L36/745nors/scs3">7450/1/on=allDMA_PRINTK="450" class="line"_ms;"7450">7350/120_      mddriivers/scsi/atdL4" ip, />->/mddr_do_lock_if_possiblo+code=allN59">94ESSN59"><989ags"sref"8"6148">6748//9# >21961   8   19873ta7cccccccccass="s7osttmpERN_ =20i/"ref="+code=aS hr_Csn;/a hrecmddriiveS 8/119**)eL3s;"6450">6050//1968line" nams;/744;"6450">605t;/mddr_do_lock_if_possiblo+code=allN59">94su/_queuo989mddrivers8ss="commen//s9="Acc9pt8me8sagro87 clea dtmpers/scsimdsef)id;7L450"d;6L393" class="line" nams;"6893">6893/11971       19f (/=allN59"><4_* Purid afm//;ta//////////;"6450">(s)3">7450/1/on=allDMA_PRINTK="450" class="line"_ms;"7450">7350/120_      mddriivers/scsi/atdL4" ip, />->/mddr_do_lock_if_possiblo+code=allN59">94devi;/a h989>Hhosa///8INT s="cand,s9="Acc97 >2086sref86 clea>  ! class=/f (!/a href/=allN9hhhhhhhhhh989lags"sref8trol sosthats9="Acc9pt8me8sagro87><48148//1992 8 5insta7&6sre class="li6L455" class="line" nams;/6648">6620//1966      sref-//a> =i-&local_irq_savecedrdeE" cla5/shocal_irq_save+code=al94t_lock"sr979ss="line"7xi"scleanly)f9arcal9778me8sagro87><48148//1992 8 osttmpERN_ =20i/"ref="+code=aS hr_Csn;/a hrecmddriiveS a"+ELECT_ENsssssssta=aiatdL"+ELECT_EN4" i> =i-&REMOVt/120>9 sssssssta=a  SET_eEX/+code_savecedrdeE" cla5/shocal_irq_save+code=al94s="cand f979.%dab7sc/1195>/1/as9="Acc97t8me7sagro79 dtmpers/scsimdsosttmpERN_ =20i/"ref="+code=aS hr_Csn;/a hrecmddriiveS ref-//a> =dev0 =  =/a href="+ELECT_EN> =i-&REMOVt/120>9 sssssssta=a  SET_eEX/+code_savecedrdeE" cla5/shocal_irq_save+code=al9h_wriELECT97ass="line"7nams;/6750">6950//197_20f8>/859recmddrnext_"s7osttmpERN_ =20i/"ref="+code=aS hr_Csn;/a hrecmddriiveS     19f (!/a;"6450">6050//1968line" nams;/744;"6450">60> =i-&REMOVt/120>9 sssssssta=a  SET_eEX/+code_savecedrdeE" cla5/shocal_irq_save+code=al9//1si/a19<97="gt;/a hr7cmddriivers/s9si)ex98->8   ;/8 hrecmddrnext_20fk_NCR5insta7c3KERN)id;7L450" class="line" nams;/7393">7050//1#ifdef20   >20nclass="9/_wriELECT97="><4_writ7nams;/6850">6950/11981   8   19873recmddrnext_"s7"7450ide0">7   sref-//a> =i-&7450ide0">7 gt;/rI_savecedrdeE" cla5/shocal_irq_save+code=al9//1si/a19<97=cC+cos///hrtedCR5380.c#9433ne980"tm8>/86 cleadd" " -&ggggggggg=" " 7e8sref)id;7L9/hhhhhhhhh97=5       27ss="commen//s9="Acc98dpha8///h 82hbreaaaaaaaaa=3d(REALssssssssta=aiatdL4" i> =0ivccccccccass="s7ssssssssta=aiatdL4" i>ddriv8; ++ers/scsi/atcmdsssssssssta=aiatdL4" igotef-//hrehseL3ss2 class="sref">hofalcon_9hhhhhhhhhh9h we=haven;7 9;t slippedl9d////98t8me8sagro87 clea dtmpers/scsimdsosttmpERN_ =20i/"ref="+code=aS hr_Csn;/a hrecmddriiveS 19f (/a href=/0   >20nclass="ELECT_ENABLE;/ssssssssta=aiatdL4" i]> =0iotef-//hrehseL3ss2 class="sref">hofalcon_9id;6L450" 97/199>//* i7to BUS FREE)f9arcal9edpha7   ;/8 hrecmddrnext_20REAL_DM">UP_0>4 DATAlinREAL_DM"ne" nams;/7393">7050//1#ifdef20   >20nclass="9/hhhhhhhhh97mment"1 */7/11e=cm19 *as9="Acc98t8me8sagro87><48148//1992 8 osttmpERN_ =20i/"ref="+code=aS hr_Csn;/a hrecmddriiveS  ma_leiivers/scsi/atdL ma_lei4" i> =0inams;/7393">7050//1#ifdef20   >20nclass="9llN59"><4_9rass="line"7nams;"6850">6950//19pt8me7 gt;/86 cleadd" " -&ggggggggg=" " 7e8sref)id;7L9/s="cand f9sAT, ND_RAS7ERT_ATN);t*as9="Acc98t8me7sagro79 dtmpers/scsimds&7f = 1;d;7L class="line" nams;"7450">7348//1992       19ss="comment/0   >20nclass="local_irq_restorecedrdeE" cla5/shocal_irq_restore+code=al9i_wriELECT9f=5       27ss="commen//s9="Acc98->8/a hr86hrecmddrnext_20fk_NCR5insta62ef = 99"><4_wril9te s="plete7 === curr  /s9="Acc99 >2076sref76ta//a>-&gggggggggbreakins we;ta>750dam proba_* Puri40/;de/>" na:>s,)r7na wakeup;"li11CTiinema)r7nfelse id;/7450">7350//1996       19       /a 9id;6L360" 97 of iteK  72=== curr  /s9="Acc991   8   19873clea  ACK9f = 1;d;7L393"s="sa:>7450_    19ss="comme50/12s="sa:>7450_REa8/|B_lock_if_poTARG50/12s="sa:B20>9 "sa    19ss="comme50/12s="sa:B20>9 "sacode_savecedrdeE" cla5/shocal_irq_save+code=al9ot_lock"sr97/* ph+co i7=not MSGOUT)f9arcal990"tm8>/82recmddrnext_"360" id;7L441MA="line" nams;/7450">7350//1996       19       /a 920   >20nc97rs/scs1/at7r11e=cm19 *as9="Acc991   7sagro8y clea5gggggggg=" " 7.L393" id;7L36092hhhhhhhhh97ass="line"7nams;/6950">6950//199t8me7s/pre7s/div>


s/div>


nseloriginal LXR)r7ftw;7L4b"cws="gro8y clehttp://sourclassge.net/proj///s/lxr">LXR)360"unitys="linb+co"experi" id l vgggtargb"cgro8y clemailto:lxr@8naux.noresxr@8naux.nor">L.f20   >2ERN)id;7L450dmsssf///ub
nselorigx.n.r">L.f20 kindly  );Al0scylehttp://sourclaswww.nfepill-r">/lx@8nauRfepill L">/lx ASco"exp/lxviel0s" nL">L.45nonn_rerrupRT"o l a/e6ws sernclasj 6mid-1995.