~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/drivers/scsi/scsi_obsolete.h

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  *  scsi_obsolete.h Copyright (C) 1997 Eric Youngdale
  3  *
  4  */
  5 
  6 #ifndef _SCSI_OBSOLETE_H
  7 #define _SCSI_OBSOLETE_H
  8 
  9 /*
 10  * These are the return codes for the abort and reset functions.  The mid-level
 11  * code uses these to decide what to do next.  Each of the low level abort
 12  * and reset functions must correctly indicate what it has done.
 13  * The descriptions are written from the point of view of the mid-level code,
 14  * so that the return code is telling the mid-level drivers exactly what
 15  * the low level driver has already done, and what remains to be done.
 16  */
 17 
 18 /* We did not do anything.  
 19  * Wait some more for this command to complete, and if this does not work, 
 20  * try something more serious. */
 21 #define SCSI_ABORT_SNOOZE 0
 22 
 23 /* This means that we were able to abort the command.  We have already
 24  * called the mid-level done function, and do not expect an interrupt that 
 25  * will lead to another call to the mid-level done function for this command */
 26 #define SCSI_ABORT_SUCCESS 1
 27 
 28 /* We called for an abort of this command, and we should get an interrupt 
 29  * when this succeeds.  Thus we should not restore the timer for this
 30  * command in the mid-level abort function. */
 31 #define SCSI_ABORT_PENDING 2
 32 
 33 /* Unable to abort - command is currently on the bus.  Grin and bear it. */
 34 #define SCSI_ABORT_BUSY 3
 35 
 36 /* The command is not active in the low level code. Command probably
 37  * finished. */
 38 #define SCSI_ABORT_NOT_RUNNING 4
 39 
 40 /* Something went wrong.  The low level driver will indicate the correct
 41  * error condition when it calls scsi_done, so the mid-level abort function
 42  * can simply wait until this comes through */
 43 #define SCSI_ABORT_ERROR 5
 44 
 45 /* We do not know how to reset the bus, or we do not want to.  Bummer.
 46  * Anyway, just wait a little more for the command in question, and hope that
 47  * it eventually finishes.  If it never finishes, the SCSI device could
 48  * hang, so use this with caution. */
 49 #define SCSI_RESET_SNOOZE 0
 50 
 51 /* We do not know how to reset the bus, or we do not want to.  Bummer.
 52  * We have given up on this ever completing.  The mid-level code will
 53  * request sense information to decide how to proceed from here. */
 54 #define SCSI_RESET_PUNT 1
 55 
 56 /* This means that we were able to reset the bus.  We have restarted all of
 57  * the commands that should be restarted, and we should be able to continue
 58  * on normally from here.  We do not expect any interrupts that will return
 59  * DID_RESET to any of the other commands in the host_queue, and the mid-level
 60  * code does not need to do anything special to keep the commands alive. 
 61  * If a hard reset was performed then all outstanding commands on the
 62  * bus have been restarted. */
 63 #define SCSI_RESET_SUCCESS 2
 64 
 65 /* We called for a reset of this bus, and we should get an interrupt 
 66  * when this succeeds.  Each command should get its own status
 67  * passed up to scsi_done, but this has not happened yet. 
 68  * If a hard reset was performed, then we expect an interrupt
 69  * for *each* of the outstanding commands that will have the
 70  * effect of restarting the commands.
 71  */
 72 #define SCSI_RESET_PENDING 3
 73 
 74 /* We did a reset, but do not expect an interrupt to signal DID_RESET.
 75  * This tells the upper level code to request the sense info, and this
 76  * should keep the command alive. */
 77 #define SCSI_RESET_WAKEUP 4
 78 
 79 /* The command is not active in the low level code. Command probably
 80    finished. */
 81 #define SCSI_RESET_NOT_RUNNING 5
 82 
 83 /* Something went wrong, and we do not know how to fix it. */
 84 #define SCSI_RESET_ERROR 6
 85 
 86 #define SCSI_RESET_SYNCHRONOUS          0x01
 87 #define SCSI_RESET_ASYNCHRONOUS         0x02
 88 #define SCSI_RESET_SUGGEST_BUS_RESET    0x04
 89 #define SCSI_RESET_SUGGEST_HOST_RESET   0x08
 90 /*
 91  * This is a bitmask that is ored with one of the above codes.
 92  * It tells the mid-level code that we did a hard reset.
 93  */
 94 #define SCSI_RESET_BUS_RESET 0x100
 95 /*
 96  * This is a bitmask that is ored with one of the above codes.
 97  * It tells the mid-level code that we did a host adapter reset.
 98  */
 99 #define SCSI_RESET_HOST_RESET 0x200
100 /*
101  * Used to mask off bits and to obtain the basic action that was
102  * performed.  
103  */
104 #define SCSI_RESET_ACTION   0xff
105 
106 #endif                          /* SCSI_OBSOLETE_H */
107 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.