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 */