root/drivers/scsi/advansys.h

/* [previous][next][first][last][top][bottom][index][help] */

INCLUDED FROM


   1 /* $Id: advansys.h,v 1.10 1996/01/15 04:51:06 bobf Exp bobf $ */
   2 /*
   3  * advansys.h - Linux Host Driver for AdvanSys SCSI Adapters
   4  *
   5  * Copyright (c) 1995-1996 Advanced System Products, Inc.
   6  *
   7  * This driver may be modified and freely distributed provided that
   8  * the above copyright message and this comment are included in the
   9  * distribution. The latest version of this driver is available at
  10  * the AdvanSys FTP and BBS sites listed below.
  11  *
  12  * Please send questions, comments, and bug reports to:
  13  * bobf@advansys.com (Bob Frey)
  14  */
  15 
  16 #ifndef _ADVANSYS_H
  17 #define _ADVANSYS_H
  18 
  19 /* The driver can be used in Linux 1.2.X or 1.3.X. */
  20 #if !defined(LINUX_1_2) && !defined(LINUX_1_3)
  21 #ifndef LINUX_VERSION_CODE
  22 #include <linux/version.h>
  23 #endif /* LINUX_VERSION_CODE */
  24 #if LINUX_VERSION_CODE > 65536 + 3 * 256
  25 #define LINUX_1_3
  26 #else /* LINUX_VERSION_CODE */
  27 #define LINUX_1_2
  28 #endif /* LINUX_VERSION_CODE */
  29 #endif /* !defined(LINUX_1_2) && !defined(LINUX_1_3) */
  30 
  31 /*
  32  * Scsi_Host_Template function prototypes.
  33  */
  34 int advansys_detect(Scsi_Host_Template *);
  35 int advansys_release(struct Scsi_Host *);
  36 const char *advansys_info(struct Scsi_Host *);
  37 int advansys_command(Scsi_Cmnd *);
  38 int advansys_queuecommand(Scsi_Cmnd *, void (* done)(Scsi_Cmnd *));
  39 int advansys_abort(Scsi_Cmnd *);
  40 int advansys_reset(Scsi_Cmnd *);
  41 #ifdef LINUX_1_2
  42 int advansys_biosparam(Disk *, int, int[]);
  43 #else /* LINUX_1_3 */
  44 int advansys_biosparam(Disk *, kdev_t, int[]);
  45 extern struct proc_dir_entry proc_scsi_advansys;
  46 int advansys_proc_info(char *, char **, off_t, int, int, int);
  47 #endif /* LINUX_1_3 */
  48 
  49 /* init/main.c setup function */
  50 void advansys_setup(char *, int *);
  51 
  52 /*
  53  * AdvanSys Host Driver Scsi_Host_Template (struct SHT) from hosts.h.
  54  */
  55 #ifdef LINUX_1_2
  56 #define ADVANSYS { \
  57         NULL,                                   /* struct SHT *next */ \
  58         NULL,                                   /* int *usage_count */ \
  59         "advansys",                             /* char *name */ \
  60         advansys_detect,                /* int (*detect)(struct SHT *) */ \
  61         advansys_release,               /* int (*release)(struct Scsi_Host *) */ \
  62         advansys_info,                  /* const char *(*info)(struct Scsi_Host *) */ \
  63         advansys_command,               /* int (*command)(Scsi_Cmnd *) */ \
  64         advansys_queuecommand, \
  65                         /* int (*queuecommand)(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *)) */ \
  66         advansys_abort,                 /* int (*abort)(Scsi_Cmnd *) */ \
  67         advansys_reset,                 /* int (*reset)(Scsi_Cmnd *) */ \
  68         NULL,                                   /* int (*slave_attach)(int, int) */ \
  69         advansys_biosparam,             /* int (* bios_param)(Disk *, int, int []) */ \
  70         /* \
  71          * The following fields are set per adapter in advansys_detect(). \
  72          */ \
  73         0,                                              /* int can_queue */ \
  74         0,                                              /* int this_id */ \
  75         0,                                              /* short unsigned int sg_tablesize */ \
  76         0,                                              /* short cmd_per_lun */ \
  77         0,                                              /* unsigned char present */     \
  78         /* \
  79          * Because the driver may control an ISA adapter 'unchecked_isa_dma' \
  80          * must be set. The flag will be cleared in advansys_detect for non-ISA \
  81          * adapters. Refer to the comment in scsi_module.c for more information. \
  82          */ \
  83         1,                                              /* unsigned unchecked_isa_dma:1 */ \
  84         /* \
  85          * All adapters controlled by this driver are capable of large \
  86          * scatter-gather lists. This apparently obviates any performance
  87          * gain provided by setting 'use_clustering'. \
  88          */ \
  89         DISABLE_CLUSTERING,             /* unsigned use_clustering:1 */ \
  90 }
  91 #else /* LINUX_1_3 */
  92 #define ADVANSYS { \
  93         NULL,                                   /* struct SHT *next */ \
  94         NULL,                                   /* long *usage_count */ \
  95         &proc_scsi_advansys,    /* struct proc_dir_entry *proc_dir */ \
  96         advansys_proc_info,     \
  97                         /* int (*proc_info)(char *, char **, off_t, int, int, int) */ \
  98         "advansys",                             /* const char *name */ \
  99         advansys_detect,                /* int (*detect)(struct SHT *) */ \
 100         advansys_release,               /* int (*release)(struct Scsi_Host *) */ \
 101         advansys_info,                  /* const char *(*info)(struct Scsi_Host *) */ \
 102         advansys_command,               /* int (*command)(Scsi_Cmnd *) */ \
 103         advansys_queuecommand, \
 104                         /* int (*queuecommand)(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *)) */ \
 105         advansys_abort,                 /* int (*abort)(Scsi_Cmnd *) */ \
 106         advansys_reset,                 /* int (*reset)(Scsi_Cmnd *) */ \
 107         NULL,                                   /* int (*slave_attach)(int, int) */ \
 108         advansys_biosparam,             /* int (* bios_param)(Disk *, kdev_t, int []) */ \
 109         /* \
 110          * The following fields are set per adapter in advansys_detect(). \
 111          */ \
 112         0,                                              /* int can_queue */ \
 113         0,                                              /* int this_id */ \
 114         0,                                              /* short unsigned int sg_tablesize */ \
 115         0,                                              /* short cmd_per_lun */ \
 116         0,                                              /* unsigned char present */     \
 117         /* \
 118          * Because the driver may control an ISA adapter 'unchecked_isa_dma' \
 119          * must be set. The flag will be cleared in advansys_detect for non-ISA \
 120          * adapters. Refer to the comment in scsi_module.c for more information. \
 121          */ \
 122         1,                                              /* unsigned unchecked_isa_dma:1 */ \
 123         /* \
 124          * All adapters controlled by this driver are capable of large \
 125          * scatter-gather lists. This apparently obviates any performance
 126          * gain provided by setting 'use_clustering'. \
 127          */ \
 128         DISABLE_CLUSTERING,             /* unsigned use_clustering:1 */ \
 129 }
 130 #endif /* LINUX_1_3 */
 131 #endif /* _ADVANSYS_H */

/* [previous][next][first][last][top][bottom][index][help] */