home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1993 #2 / Image.iso / os2 / gtak212b.zip / SOURCE.ZIP / TAPE / tape.h < prev    next >
C/C++ Source or Header  |  1992-09-12  |  3KB  |  106 lines

  1. /*****************************************************************************
  2.  * $Id: tape.h,v 1.3 1992/09/12 18:10:57 ak Exp $
  3.  *****************************************************************************
  4.  * $Log: tape.h,v $
  5.  * Revision 1.3  1992/09/12  18:10:57  ak
  6.  * Added scsi_name
  7.  * Added device name support to tctl.c
  8.  *
  9.  * Revision 1.2  1992/09/02  19:05:25  ak
  10.  * Version 2.0
  11.  * - EMX version
  12.  * - AIX version
  13.  * - SCSI-2 commands
  14.  * - ADD Driver
  15.  * - blocksize support
  16.  *
  17.  * Revision 1.1.1.1  1992/01/06  20:27:43  ak
  18.  * Interface now based on ST01 and ASPI.
  19.  * AHA_DRVR no longer supported.
  20.  * Files reorganized.
  21.  *
  22.  * Revision 1.1  1992/01/06  20:27:41  ak
  23.  * Initial revision
  24.  *
  25.  *****************************************************************************/
  26.  
  27. #include <limits.h>
  28.  
  29. /*
  30.  * Tape control.
  31.  */
  32.  
  33. #define TapeUndefLength    LONG_MIN    /* undefined value of actual count */
  34.  
  35. extern void    tape_init ();
  36. extern void    tape_name (char *name);
  37. extern void    tape_file (int fd);
  38. extern void    tape_term ();
  39.  
  40. extern int    tape_reset (int bus);
  41.  
  42. extern void    tape_trace(int);
  43.  
  44. extern int    tape_target (int);
  45. extern void    tape_sense (void *data, int len);    /* >= 8, NULL resets */
  46.  
  47. extern char *    tape_error (int);
  48.  
  49. extern int    tape_cmd (void *cdb, int cdb_len);
  50. extern int    tape_read_cmd (void *cdb, int cdb_len,
  51.                    void _far *data, long data_len);
  52. extern int    tape_write_cmd (void *cdb, int cdb_len,
  53.                     void _far *data, long data_len);
  54.  
  55. extern int    tape_inquiry (void *data, int len);
  56. extern int    tape_mode_sense (int page, void *data, int len);
  57. extern int    tape_mode_select (int page, void *data, int len, int SMP);
  58.  
  59. extern int    tape_rewind (int imed);
  60. extern int    tape_space (int mode, long nitems, long *actual);
  61. extern long    tape_tell (void);               /* Tandberg */
  62. extern int    tape_seek (int imed, long blkno);    /* Tandberg */
  63.  
  64. extern int    tape_read (void _far *data, long length, long *actual);
  65. extern int    tape_compare (void _far *data, long length, long *actual);
  66. extern int    tape_verify (long length, long *actual);
  67. extern int    tape_write (void _far *data, long length, long *actual);
  68. extern int    tape_filemark (int imed, long nblocks, long *actual);
  69. extern int    tape_setmark (int imed, long nblocks, long *actual);
  70. extern int    tape_erase (void);
  71.  
  72. extern int    tape_buffered_write (void _far *data, long length);
  73. extern int    tape_buffered_wait (long *actual);
  74.  
  75. extern long    tape_get_blocksize (void);
  76. extern int    tape_set_blocksize (long size);
  77. extern int    tape_speed (int);
  78. extern int    tape_ready (void);
  79. extern int    tape_load (int imed, int retension);
  80. extern int    tape_unload (int imed, int mode);
  81.  
  82. extern void    tape_print_sense (FILE *file, int retcode);
  83.  
  84. /* Space mode: */
  85. enum SpaceMode {
  86.     SpaceBlocks        = 00,
  87.     SpaceFileMarks        = 01,
  88.     SpaceSequentalFilemarks    = 02,
  89.     SpaceLogEndOfMedia    = 03,
  90.     SpaceSetmarks        = 04,
  91.     SpaceSequentalSetmarks    = 05,
  92. };
  93.  
  94. /* Unload mode */
  95. enum UnloadMode {
  96.     UnloadRewind        = 00,
  97.     UnloadRetension        = 02,
  98.     UnloadEndOfTape        = 04,
  99. };
  100.  
  101. /* additional error codes, -> scsi.h */
  102. #define EndOfData    TapeError+1
  103. #define EndOfTape    TapeError+2
  104. #define FileMark    TapeError+3
  105. #define NoCommand    TapeError+4    /* buffered_wait */
  106.