scsihack.c
上传用户:weiliju62
上传日期:2007-01-06
资源大小:619k
文件大小:4k
源码类别:

SCSI/ASPI

开发平台:

MultiPlatform

  1. /* @(#)scsihack.c 1.21 99/04/24 Copyright 1997 J. Schilling */
  2. #ifndef lint
  3. static char _sccsid[] =
  4. "@(#)scsihack.c 1.21 99/04/24 Copyright 1997 J. Schilling";
  5. #endif
  6. /*
  7.  * Interface for other generic SCSI implementations.
  8.  * To add a new hack, add something like:
  9.  *
  10.  * #ifdef __FreeBSD__
  11.  * #define SCSI_IMPL
  12.  * #include some code
  13.  * #endif
  14.  *
  15.  * Currently available:
  16.  * Interface for Linux broken SCSI generic driver.
  17.  *
  18.  * Copyright (c) 1997 J. Schilling
  19.  */
  20. /*
  21.  * This program is free software; you can redistribute it and/or modify
  22.  * it under the terms of the GNU General Public License as published by
  23.  * the Free Software Foundation; either version 2, or (at your option)
  24.  * any later version.
  25.  *
  26.  * This program is distributed in the hope that it will be useful,
  27.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  28.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  29.  * GNU General Public License for more details.
  30.  *
  31.  * You should have received a copy of the GNU General Public License
  32.  * along with this program; see the file COPYING.  If not, write to
  33.  * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  34.  */
  35. LOCAL int scsi_send __PR((SCSI *scgp, int f, struct scg_cmd *sp));
  36. #ifdef linux
  37. #define SCSI_IMPL /* We have a SCSI implementation for Linux */
  38. #ifndef HAVE_LINUX_PG_H /* If we are compiling on an old version */
  39. # undef USE_PG_ONLY /* there is no 'pg' driver and we cannot */
  40. # undef USE_PG /* include <linux/pg.h> which is needed  */
  41. #endif /* by the pg transport code.  */
  42. #ifdef USE_PG_ONLY
  43. #include "scsi-linux-pg.c"
  44. #else
  45. #include "scsi-linux-sg.c"
  46. #endif
  47. #endif /* linux */
  48. #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
  49. #define SCSI_IMPL /* We have a SCSI implementation for *BSD */
  50. #include "scsi-bsd.c"
  51. #endif /* *BSD */
  52. #if defined(__bsdi__) /* We have a SCSI implementation for BSD/OS 3.x (and later?) */
  53. # include <sys/param.h>
  54. # if (_BSDI_VERSION >= 199701)
  55. #  define SCSI_IMPL
  56. #  include "scsi-bsd-os.c"
  57. # endif /* BSD/OS >= 3.0 */
  58. #endif /* BSD/OS */
  59. #ifdef __sgi
  60. #define SCSI_IMPL /* We have a SCSI implementation for SGI */
  61. #include "scsi-sgi.c"
  62. #endif /* SGI */
  63. #ifdef __hpux
  64. #define SCSI_IMPL /* We have a SCSI implementation for HP-UX */
  65. #include "scsi-hpux.c"
  66. #endif /* HP-UX */
  67. #if defined(_IBMR2) || defined(_AIX)
  68. #define SCSI_IMPL /* We have a SCSI implementation for AIX */
  69. #include "scsi-aix.c"
  70. #endif /* AIX */
  71. #if defined(__NeXT__)
  72. #define SCSI_IMPL /* We have a SCSI implementation for NextStep */
  73. #include "scsi-next.c"
  74. #endif /* NEXT */
  75. #if defined(__osf__)
  76. #define SCSI_IMPL /* We have a SCSI implementation for OSF/1 */
  77. #include "scsi-osf.c"
  78. #endif /* OSF/1 */
  79. #ifdef VMS
  80. #define SCSI_IMPL /* We have a SCSI implementation for VMS */
  81. #include "scsi-vms.c"
  82. #endif /* VMS */
  83. #ifdef SCO
  84. #define SCSI_IMPL /* We have a SCSI implementation for  SCO openserver */
  85. #include "scsi-sco.c"
  86. #endif  /* SCO */
  87. #ifdef UNIXWARE
  88. #define SCSI_IMPL /* We have a SCSI implementation for  SCO unixware */
  89. #include "scsi-unixware.c"
  90. #endif  /* UNIXWARE */
  91. #ifdef __OS2
  92. #define SCSI_IMPL /* We have a SCSI implementation for OS/2 */
  93. #include "scsi-os2.c"
  94. #endif  /* OS/2 */
  95. #ifdef __BEOS__
  96. #define SCSI_IMPL /* Yep, BeOS does that funky scsi stuff */
  97. #include "scsi-beos.c"
  98. #endif
  99. #ifdef __CYGWIN32__
  100. #define SCSI_IMPL /* Yep, we support WNT and W9? */
  101. #include "scsi-wnt.c"
  102. #endif
  103. #ifdef __NEW_ARCHITECTURE
  104. #define SCSI_IMPL /* We have a SCSI implementation for XXX */
  105. /*
  106.  * Add new hacks here
  107.  */
  108. #include "scsi-new-arch.c"
  109. #endif
  110. #ifndef SCSI_IMPL
  111. /*
  112.  * This is to make scsitranp.c compile on all architectures.
  113.  * This does not mean that you may use it, but you can see
  114.  * if other problems exist.
  115.  */
  116. EXPORT
  117. int scsi_open(scgp, device, busno, tgt, tlun)
  118. SCSI *scgp;
  119. char *device;
  120. int busno;
  121. int tgt;
  122. int tlun;
  123. {
  124. comerrno(EX_BAD, "No SCSI transport implementation for this architecture.n");
  125. return (-1); /* Keep lint happy */
  126. }
  127. LOCAL long
  128. scsi_maxdma(scgp)
  129. SCSI *scgp;
  130. {
  131. return (0L);
  132. }
  133. EXPORT
  134. BOOL scsi_havebus(scgp, busno)
  135. SCSI *scgp;
  136. int busno;
  137. {
  138. return (FALSE);
  139. }
  140. EXPORT
  141. int scsi_fileno(scgp, busno, tgt, tlun)
  142. SCSI *scgp;
  143. int busno;
  144. int tgt;
  145. int tlun;
  146. {
  147. return (-1);
  148. }
  149. EXPORT
  150. int scsi_isatapi(scgp)
  151. SCSI *scgp;
  152. {
  153. return (FALSE);
  154. }
  155. EXPORT
  156. int scsireset(scgp)
  157. SCSI *scgp;
  158. {
  159. return (-1);
  160. }
  161. EXPORT void *
  162. scsi_getbuf(scgp, amt)
  163. SCSI *scgp;
  164. long amt;
  165. {
  166. return ((void *)0);
  167. }
  168. LOCAL int
  169. scsi_send(scgp, f, sp)
  170. SCSI *scgp;
  171. int f;
  172. struct scg_cmd *sp;
  173. {
  174. return (-1);
  175. }
  176. #endif /* SCSI_IMPL */