home *** CD-ROM | disk | FTP | other *** search
- /*****************************************************************************
- * $Id: tape.h,v 1.3 1992/09/12 18:10:57 ak Exp $
- *****************************************************************************
- * $Log: tape.h,v $
- * Revision 1.3 1992/09/12 18:10:57 ak
- * Added scsi_name
- * Added device name support to tctl.c
- *
- * Revision 1.2 1992/09/02 19:05:25 ak
- * Version 2.0
- * - EMX version
- * - AIX version
- * - SCSI-2 commands
- * - ADD Driver
- * - blocksize support
- *
- * Revision 1.1.1.1 1992/01/06 20:27:43 ak
- * Interface now based on ST01 and ASPI.
- * AHA_DRVR no longer supported.
- * Files reorganized.
- *
- * Revision 1.1 1992/01/06 20:27:41 ak
- * Initial revision
- *
- *****************************************************************************/
-
- #include <limits.h>
-
- /*
- * Tape control.
- */
-
- #define TapeUndefLength LONG_MIN /* undefined value of actual count */
-
- extern void tape_init ();
- extern void tape_name (char *name);
- extern void tape_file (int fd);
- extern void tape_term ();
-
- extern int tape_reset (int bus);
-
- extern void tape_trace(int);
-
- extern int tape_target (int);
- extern void tape_sense (void *data, int len); /* >= 8, NULL resets */
-
- extern char * tape_error (int);
-
- extern int tape_cmd (void *cdb, int cdb_len);
- extern int tape_read_cmd (void *cdb, int cdb_len,
- void _far *data, long data_len);
- extern int tape_write_cmd (void *cdb, int cdb_len,
- void _far *data, long data_len);
-
- extern int tape_inquiry (void *data, int len);
- extern int tape_mode_sense (int page, void *data, int len);
- extern int tape_mode_select (int page, void *data, int len, int SMP);
-
- extern int tape_rewind (int imed);
- extern int tape_space (int mode, long nitems, long *actual);
- extern long tape_tell (void); /* Tandberg */
- extern int tape_seek (int imed, long blkno); /* Tandberg */
-
- extern int tape_read (void _far *data, long length, long *actual);
- extern int tape_compare (void _far *data, long length, long *actual);
- extern int tape_verify (long length, long *actual);
- extern int tape_write (void _far *data, long length, long *actual);
- extern int tape_filemark (int imed, long nblocks, long *actual);
- extern int tape_setmark (int imed, long nblocks, long *actual);
- extern int tape_erase (void);
-
- extern int tape_buffered_write (void _far *data, long length);
- extern int tape_buffered_wait (long *actual);
-
- extern long tape_get_blocksize (void);
- extern int tape_set_blocksize (long size);
- extern int tape_speed (int);
- extern int tape_ready (void);
- extern int tape_load (int imed, int retension);
- extern int tape_unload (int imed, int mode);
-
- extern void tape_print_sense (FILE *file, int retcode);
-
- /* Space mode: */
- enum SpaceMode {
- SpaceBlocks = 00,
- SpaceFileMarks = 01,
- SpaceSequentalFilemarks = 02,
- SpaceLogEndOfMedia = 03,
- SpaceSetmarks = 04,
- SpaceSequentalSetmarks = 05,
- };
-
- /* Unload mode */
- enum UnloadMode {
- UnloadRewind = 00,
- UnloadRetension = 02,
- UnloadEndOfTape = 04,
- };
-
- /* additional error codes, -> scsi.h */
- #define EndOfData TapeError+1
- #define EndOfTape TapeError+2
- #define FileMark TapeError+3
- #define NoCommand TapeError+4 /* buffered_wait */
-