scsitransp.h
上传用户:xiejiait
上传日期:2007-01-06
资源大小:881k
文件大小:4k
源码类别:

SCSI/ASPI

开发平台:

MultiPlatform

  1. /* @(#)scsitransp.h 1.26 99/11/12 Copyright 1995 J. Schilling */
  2. /*
  3.  * Definitions for commands that use functions from scsitransp.c
  4.  *
  5.  * Copyright (c) 1995 J. Schilling
  6.  */
  7. /*
  8.  * This program is free software; you can redistribute it and/or modify
  9.  * it under the terms of the GNU General Public License as published by
  10.  * the Free Software Foundation; either version 2, or (at your option)
  11.  * any later version.
  12.  *
  13.  * This program is distributed in the hope that it will be useful,
  14.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16.  * GNU General Public License for more details.
  17.  *
  18.  * You should have received a copy of the GNU General Public License
  19.  * along with this program; see the file COPYING.  If not, write to
  20.  * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  21.  */
  22. #ifndef _SCSITRANSP_H
  23. #define _SCSITRANSP_H
  24. typedef struct {
  25. int scsibus; /* SCSI bus #    for next I/O */
  26. int target; /* SCSI target # for next I/O */
  27. int lun; /* SCSI lun #    for next I/O */
  28. int flags; /* Libscg flags (see below) */
  29. int kdebug; /* Kernel debug value for next I/O */
  30. int debug; /* Debug value for SCSI library */
  31. int silent; /* Be silent if value > 0 */
  32. int verbose; /* Be verbose if value > 0 */
  33. int disre_disable;
  34. int deftimeout;
  35. int noparity; /* Do not use SCSI parity fo next I/O */
  36. int dev; /* from scsi_cdr.c */
  37. struct scg_cmd *scmd;
  38. char *cmdname;
  39. char *curcmdname;
  40. BOOL running;
  41. int error; /* libscg error number */
  42. struct timeval *cmdstart;
  43. struct timeval *cmdstop;
  44. const char **nonstderrs;
  45. void *local; /* Local data from the low level code */
  46. void *bufbase; /* needed for scsi_freebuf() */
  47. char *errstr; /* Error string for scsi_open/sendmcd */
  48. char *errptr; /* Actual write pointer into errstr */
  49. struct scsi_inquiry *inq;
  50. struct scsi_capacity *cap;
  51. } SCSI;
  52. /*
  53.  * Flags for struct SCSI:
  54.  */
  55. /* NONE yet */
  56. #define SCSI_ERRSTR_SIZE 4096
  57. /*
  58.  * Libscg error codes:
  59.  */
  60. #define SCG_ERRBASE 1000000
  61. #define SCG_NOMEM 1000001
  62. /*
  63.  * Function codes for scg_version():
  64.  */
  65. #define SCG_VERSION 0
  66. #define SCG_AUTHOR 1
  67. #define SCG_SCCS_ID 2
  68. /*
  69.  * From scsitransp.c:
  70.  */
  71. extern char *scg_version __PR((SCSI *scgp, int what));
  72. extern char *scg__version __PR((SCSI *scgp, int what));
  73. extern int scsi_open __PR((SCSI *scgp, char *device, int busno, int tgt, int tlun));
  74. extern int scsi_close __PR((SCSI *scgp));
  75. extern BOOL scsi_havebus __PR((SCSI *scgp, int));
  76. extern int scsi_fileno __PR((SCSI *scgp, int, int, int));
  77. extern int scsi_initiator_id __PR((SCSI *scgp));
  78. extern int scsi_isatapi __PR((SCSI *scgp));
  79. extern int scsireset __PR((SCSI *scgp));
  80. extern void *scsi_getbuf __PR((SCSI *scgp, long));
  81. extern void scsi_freebuf __PR((SCSI *scgp));
  82. extern long scsi_bufsize __PR((SCSI *scgp, long));
  83. extern void scsi_setnonstderrs __PR((SCSI *scgp, const char **));
  84. extern BOOL scsi_yes __PR((char *));
  85. extern int scsicmd __PR((SCSI *scgp));
  86. extern int scsigetresid __PR((SCSI *scgp));
  87. extern void scsiprinterr __PR((SCSI *scgp));
  88. extern void scsiprintcdb __PR((SCSI *scgp));
  89. extern void scsiprintwdata __PR((SCSI *scgp));
  90. extern void scsiprintrdata __PR((SCSI *scgp));
  91. extern void scsiprintresult __PR((SCSI *scgp));
  92. extern void scsiprintstatus __PR((SCSI *scgp));
  93. extern void scsiprbytes __PR((char *, unsigned char *, int));
  94. extern void scsiprsense __PR((unsigned char *, int));
  95. extern int scsi_sense_key __PR((SCSI *scgp));
  96. extern int scsi_sense_code __PR((SCSI *scgp));
  97. extern int scsi_sense_qual __PR((SCSI *scgp));
  98. #ifdef _SCSIREG_H
  99. extern void scsiprintdev __PR((struct scsi_inquiry *));
  100. #endif
  101. /*
  102.  * From scsierrmsg.c:
  103.  */
  104. extern const char *scsisensemsg __PR((int, int, int,
  105. const char **, char *));
  106. #ifdef _SCGIO_H
  107. extern void scsierrmsg __PR((SCSI *scgp, struct scsi_sense *,
  108. struct scsi_status *,
  109. int, const char **));
  110. #endif
  111. /*
  112.  * From scsiopen.c:
  113.  */
  114. extern SCSI *open_scsi __PR((char *scsidev, char *errs, int slen, int debug, int be_verbose));
  115. extern int close_scsi __PR((SCSI * scgp));
  116. extern void scsi_settimeout __PR((SCSI * scgp, int timeout));
  117. extern SCSI *scsi_smalloc __PR((void));
  118. extern void scsi_sfree __PR((SCSI *scgp));
  119. #endif /* _SCSITRANSP_H */