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

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

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

  1 /*
  2  * QLogic ISP2x00 SCSI-FCP
  3  * 
  4  * Written by Erik H. Moe, ehm@cris.com
  5  * Copyright 1995, Erik H. Moe
  6  *
  7  * This program is free software; you can redistribute it and/or modify it
  8  * under the terms of the GNU General Public License as published by the
  9  * Free Software Foundation; either version 2, or (at your option) any
 10  * later version.
 11  *
 12  * This program is distributed in the hope that it will be useful, but
 13  * WITHOUT ANY WARRANTY; without even the implied warranty of
 14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 15  * General Public License for more details.
 16  */
 17 
 18 /* Renamed and updated to 1.3.x by Michael Griffith <grif@cs.ucr.edu> */
 19 
 20 /* This is a version of the isp1020 driver which was modified by
 21  * Chris Loveland <cwl@iol.unh.edu> to support the isp2x00
 22  */
 23 
 24 
 25 /*
 26  * $Date: 1995/09/22 02:32:56 $
 27  * $Revision: 0.5 $
 28  *
 29  * $Log: isp1020.h,v $
 30  * Revision 0.5  1995/09/22  02:32:56  root
 31  * do auto request sense
 32  *
 33  * Revision 0.4  1995/08/07  04:48:28  root
 34  * supply firmware with driver.
 35  * numerous bug fixes/general cleanup of code.
 36  *
 37  * Revision 0.3  1995/07/16  16:17:16  root
 38  * added reset/abort code.
 39  *
 40  * Revision 0.2  1995/06/29  03:19:43  root
 41  * fixed biosparam.
 42  * added queue protocol.
 43  *
 44  * Revision 0.1  1995/06/25  01:56:13  root
 45  * Initial release.
 46  *
 47  */
 48 
 49 #ifndef _QLOGICFC_H
 50 #define _QLOGICFC_H
 51 
 52 /*
 53  * With the qlogic interface, every queue slot can hold a SCSI
 54  * command with up to 2 scatter/gather entries.  If we need more
 55  * than 2 entries, continuation entries can be used that hold
 56  * another 5 entries each.  Unlike for other drivers, this means
 57  * that the maximum number of scatter/gather entries we can
 58  * support at any given time is a function of the number of queue
 59  * slots available.  That is, host->can_queue and host->sg_tablesize
 60  * are dynamic and _not_ independent.  This all works fine because
 61  * requests are queued serially and the scatter/gather limit is
 62  * determined for each queue request anew.
 63  */
 64 
 65 #if BITS_PER_LONG > 32
 66 #define DATASEGS_PER_COMMAND 2
 67 #define DATASEGS_PER_CONT 5
 68 #else
 69 #define DATASEGS_PER_COMMAND 3
 70 #define DATASEGS_PER_CONT 7
 71 #endif
 72 
 73 #define QLOGICFC_REQ_QUEUE_LEN  127     /* must be power of two - 1 */
 74 #define QLOGICFC_MAX_SG(ql)     (DATASEGS_PER_COMMAND + (((ql) > 0) ? DATASEGS_PER_CONT*((ql) - 1) : 0))
 75 #define QLOGICFC_CMD_PER_LUN    8
 76 
 77 int isp2x00_detect(Scsi_Host_Template *);
 78 int isp2x00_release(struct Scsi_Host *);
 79 const char * isp2x00_info(struct Scsi_Host *);
 80 int isp2x00_queuecommand(Scsi_Cmnd *, void (* done)(Scsi_Cmnd *));
 81 int isp2x00_abort(Scsi_Cmnd *);
 82 int isp2x00_reset(Scsi_Cmnd *, unsigned int);
 83 int isp2x00_biosparam(Disk *, kdev_t, int[]);
 84 
 85 #ifndef NULL
 86 #define NULL (0)
 87 #endif
 88 
 89 #define QLOGICFC {                                                         \
 90         detect:                 isp2x00_detect,                            \
 91         release:                isp2x00_release,                           \
 92         info:                   isp2x00_info,                              \
 93         queuecommand:           isp2x00_queuecommand,                      \
 94         eh_abort_handler:       isp2x00_abort,                             \
 95         reset:                  isp2x00_reset,                             \
 96         bios_param:             isp2x00_biosparam,                         \
 97         can_queue:              QLOGICFC_REQ_QUEUE_LEN,                    \
 98         this_id:                -1,                                        \
 99         sg_tablesize:           QLOGICFC_MAX_SG(QLOGICFC_REQ_QUEUE_LEN),   \
100         cmd_per_lun:            QLOGICFC_CMD_PER_LUN,                      \
101         present:                0,                                         \
102         unchecked_isa_dma:      0,                                         \
103         use_clustering:         ENABLE_CLUSTERING                          \
104 }
105 
106 #endif /* _QLOGICFC_H */
107 
108 
109 
110 

~ [ 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.