advansys.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:5k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /*
  2.  * advansys.h - Linux Host Driver for AdvanSys SCSI Adapters
  3.  * 
  4.  * Copyright (c) 1995-2000 Advanced System Products, Inc.
  5.  * Copyright (c) 2000-2001 ConnectCom Solutions, Inc.
  6.  * All Rights Reserved.
  7.  *
  8.  * Redistribution and use in source and binary forms, with or without
  9.  * modification, are permitted provided that redistributions of source
  10.  * code retain the above copyright notice and this comment without
  11.  * modification.
  12.  *
  13.  * As of March 8, 2000 Advanced System Products, Inc. (AdvanSys)
  14.  * changed its name to ConnectCom Solutions, Inc.
  15.  *
  16.  * There is an AdvanSys Linux WWW page at:
  17.  *  http://www.connectcom.net/downloads/software/os/linux.html
  18.  *  http://www.advansys.com/linux.html
  19.  *
  20.  * The latest released version of the AdvanSys driver is available at:
  21.  *  ftp://ftp.advansys.com/pub/linux/linux.tgz
  22.  *  ftp://ftp.connectcom.net/pub/linux/linux.tgz
  23.  *
  24.  * Please send questions, comments, bug reports to:
  25.  *  linux@connectcom.net or bfrey@turbolinux.com.cn
  26.  */
  27. #ifndef _ADVANSYS_H
  28. #define _ADVANSYS_H
  29. #include <linux/config.h>
  30. #ifndef LINUX_VERSION_CODE
  31. #include <linux/version.h>
  32. #endif /* LINUX_VERSION_CODE */
  33. /* Convert Linux Version, Patch-level, Sub-level to LINUX_VERSION_CODE. */
  34. #define ASC_LINUX_VERSION(V, P, S)    (((V) * 65536) + ((P) * 256) + (S))
  35. /* Driver supported only in version 2.2 and version >= 2.4. */
  36. #if LINUX_VERSION_CODE < ASC_LINUX_VERSION(2,2,0) || 
  37.     (LINUX_VERSION_CODE > ASC_LINUX_VERSION(2,3,0) && 
  38.      LINUX_VERSION_CODE < ASC_LINUX_VERSION(2,4,0))
  39. #error "AdvanSys driver supported only in 2.2 and 2.4 or greater kernels."
  40. #endif
  41. #define ASC_LINUX_KERNEL22 (LINUX_VERSION_CODE < ASC_LINUX_VERSION(2,4,0))
  42. #define ASC_LINUX_KERNEL24 (LINUX_VERSION_CODE >= ASC_LINUX_VERSION(2,4,0))
  43. /*
  44.  * Scsi_Host_Template function prototypes.
  45.  */
  46. int advansys_detect(Scsi_Host_Template *);
  47. int advansys_release(struct Scsi_Host *);
  48. const char *advansys_info(struct Scsi_Host *);
  49. int advansys_queuecommand(Scsi_Cmnd *, void (* done)(Scsi_Cmnd *));
  50. int advansys_reset(Scsi_Cmnd *);
  51. int advansys_biosparam(Disk *, kdev_t, int[]);
  52. #ifdef CONFIG_PROC_FS
  53. #if LINUX_VERSION_CODE < ASC_LINUX_VERSION(2,3,28)
  54. extern struct proc_dir_entry proc_scsi_advansys;
  55. #endif /* version < v2.3.28 */
  56. int advansys_proc_info(char *, char **, off_t, int, int, int);
  57. #else /* !defined(CONFIG_PROC_FS) */
  58. #define advansys_proc_info      NULL
  59. #endif /* !defined(CONFIG_PROC_FS) */
  60. /* init/main.c setup function */
  61. void advansys_setup(char *, int *);
  62. /*
  63.  * AdvanSys Host Driver Scsi_Host_Template (struct SHT) from hosts.h.
  64.  */
  65. #if ASC_LINUX_KERNEL24
  66. #define ADVANSYS { 
  67.     proc_name:                  "advansys", 
  68.     proc_info:                  advansys_proc_info, 
  69.     name:                       "advansys", 
  70.     detect:                     advansys_detect, 
  71.     release:                    advansys_release, 
  72.     info:                       advansys_info, 
  73.     queuecommand:               advansys_queuecommand, 
  74.     use_new_eh_code: 1, 
  75.     eh_bus_reset_handler: advansys_reset, 
  76.     bios_param:                 advansys_biosparam, 
  77.     /* 
  78.      * Because the driver may control an ISA adapter 'unchecked_isa_dma' 
  79.      * must be set. The flag will be cleared in advansys_detect for non-ISA 
  80.      * adapters. Refer to the comment in scsi_module.c for more information. 
  81.      */ 
  82.     unchecked_isa_dma:          1, 
  83.     /* 
  84.      * All adapters controlled by this driver are capable of large 
  85.      * scatter-gather lists. According to the mid-level SCSI documentation 
  86.      * this obviates any performance gain provided by setting 
  87.      * 'use_clustering'. But empirically while CPU utilization is increased 
  88.      * by enabling clustering, I/O throughput increases as well. 
  89.      */ 
  90.     use_clustering:             ENABLE_CLUSTERING, 
  91. }
  92. #elif ASC_LINUX_KERNEL22
  93. #define ADVANSYS { 
  94.     proc_info:                  advansys_proc_info, 
  95.     name:                       "advansys", 
  96.     detect:                     advansys_detect, 
  97.     release:                    advansys_release, 
  98.     info:                       advansys_info, 
  99.     queuecommand:               advansys_queuecommand, 
  100.     use_new_eh_code: 1, 
  101.     eh_bus_reset_handler: advansys_reset, 
  102.     bios_param:                 advansys_biosparam, 
  103.     /* 
  104.      * Because the driver may control an ISA adapter 'unchecked_isa_dma' 
  105.      * must be set. The flag will be cleared in advansys_detect for non-ISA 
  106.      * adapters. Refer to the comment in scsi_module.c for more information. 
  107.      */ 
  108.     unchecked_isa_dma:          1, 
  109.     /* 
  110.      * All adapters controlled by this driver are capable of large 
  111.      * scatter-gather lists. According to the mid-level SCSI documentation 
  112.      * this obviates any performance gain provided by setting 
  113.      * 'use_clustering'. But empirically while CPU utilization is increased 
  114.      * by enabling clustering, I/O throughput increases as well. 
  115.      */ 
  116.     use_clustering:             ENABLE_CLUSTERING, 
  117. }
  118. #endif
  119. #endif /* _ADVANSYS_H */