sym53c8xx.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:4k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /******************************************************************************
  2. **  High Performance device driver for the Symbios 53C896 controller.
  3. **
  4. **  Copyright (C) 1998-2001  Gerard Roudier <groudier@free.fr>
  5. **
  6. **  This driver also supports all the Symbios 53C8XX controller family, 
  7. **  except 53C810 revisions < 16, 53C825 revisions < 16 and all 
  8. **  revisions of 53C815 controllers.
  9. **
  10. **  This driver is based on the Linux port of the FreeBSD ncr driver.
  11. ** 
  12. **  Copyright (C) 1994  Wolfgang Stanglmeier
  13. **  
  14. **-----------------------------------------------------------------------------
  15. **  
  16. **  This program is free software; you can redistribute it and/or modify
  17. **  it under the terms of the GNU General Public License as published by
  18. **  the Free Software Foundation; either version 2 of the License, or
  19. **  (at your option) any later version.
  20. **
  21. **  This program is distributed in the hope that it will be useful,
  22. **  but WITHOUT ANY WARRANTY; without even the implied warranty of
  23. **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  24. **  GNU General Public License for more details.
  25. **
  26. **  You should have received a copy of the GNU General Public License
  27. **  along with this program; if not, write to the Free Software
  28. **  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  29. **
  30. **-----------------------------------------------------------------------------
  31. **
  32. **  The Linux port of the FreeBSD ncr driver has been achieved in 
  33. **  november 1995 by:
  34. **
  35. **          Gerard Roudier              <groudier@free.fr>
  36. **
  37. **  Being given that this driver originates from the FreeBSD version, and
  38. **  in order to keep synergy on both, any suggested enhancements and corrections
  39. **  received on Linux are automatically a potential candidate for the FreeBSD 
  40. **  version.
  41. **
  42. **  The original driver has been written for 386bsd and FreeBSD by
  43. **          Wolfgang Stanglmeier        <wolf@cologne.de>
  44. **          Stefan Esser                <se@mi.Uni-Koeln.de>
  45. **
  46. **-----------------------------------------------------------------------------
  47. **
  48. **  Major contributions:
  49. **  --------------------
  50. **
  51. **  NVRAM detection and reading.
  52. **    Copyright (C) 1997 Richard Waltham <dormouse@farsrobt.demon.co.uk>
  53. **
  54. *******************************************************************************
  55. */
  56. #ifndef SYM53C8XX_H
  57. #define SYM53C8XX_H
  58. #include "sym53c8xx_defs.h"
  59. /*
  60. ** Define Scsi_Host_Template parameters
  61. **
  62. ** Used by hosts.c and sym53c8xx.c with module configuration.
  63. */
  64. #if (LINUX_VERSION_CODE >= 0x020400) || defined(HOSTS_C) || defined(MODULE)
  65. #include <scsi/scsicam.h>
  66. int sym53c8xx_abort(Scsi_Cmnd *);
  67. int sym53c8xx_detect(Scsi_Host_Template *tpnt);
  68. const char *sym53c8xx_info(struct Scsi_Host *host);
  69. int sym53c8xx_queue_command(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
  70. int sym53c8xx_reset(Scsi_Cmnd *, unsigned int);
  71. #ifdef MODULE
  72. int sym53c8xx_release(struct Scsi_Host *);
  73. #else
  74. #define sym53c8xx_release NULL
  75. #endif
  76. #if LINUX_VERSION_CODE >= LinuxVersionCode(2,1,75)
  77. #define SYM53C8XX {     name:           "",
  78. detect:         sym53c8xx_detect,
  79. release:        sym53c8xx_release,
  80. info:           sym53c8xx_info, 
  81. queuecommand:   sym53c8xx_queue_command,
  82. abort:          sym53c8xx_abort,
  83. reset:          sym53c8xx_reset,
  84. bios_param:     scsicam_bios_param,
  85. can_queue:      SCSI_NCR_CAN_QUEUE,
  86. this_id:        7,
  87. sg_tablesize:   SCSI_NCR_SG_TABLESIZE,
  88. cmd_per_lun:    SCSI_NCR_CMD_PER_LUN,
  89. max_sectors:    MAX_SEGMENTS*8,
  90. use_clustering: DISABLE_CLUSTERING} 
  91. #else
  92. #define SYM53C8XX { NULL, NULL, NULL, NULL,
  93. NULL, sym53c8xx_detect,
  94. sym53c8xx_release, sym53c8xx_info, NULL,
  95. sym53c8xx_queue_command,sym53c8xx_abort,
  96. sym53c8xx_reset, NULL, scsicam_bios_param,
  97. SCSI_NCR_CAN_QUEUE, 7,
  98. SCSI_NCR_SG_TABLESIZE, SCSI_NCR_CMD_PER_LUN,
  99. 0, 0, DISABLE_CLUSTERING} 
  100.  
  101. #endif /* LINUX_VERSION_CODE */
  102. #endif /* defined(HOSTS_C) || defined(MODULE) */ 
  103. #endif /* SYM53C8XX_H */