home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / TELECOM / OS9_Unix.lzh / DEFS / SYS / mtio.h < prev    next >
Text File  |  1992-10-01  |  3KB  |  71 lines

  1. #ifndef _SYS_MTIO_INCLUDED
  2. #define _SYS_MTIO_INCLUDED
  3.  
  4. /*
  5.  * Structures and definitions for mag tape io control commands
  6.  */
  7.  
  8. /* structure for MTIOCTOP - mag tape op command */
  9. struct  mtop    {
  10.         short   mt_op;          /* operations defined below */
  11.         long    mt_count;       /* how many of them */
  12. };
  13.  
  14. /* operations */
  15. #define MTWEOF  0       /* write an end-of-file record */
  16. #define MTFSF   1       /* forward space file */
  17. #define MTBSF   2       /* backward space file */
  18. #define MTFSR   3       /* forward space record */
  19. #define MTBSR   4       /* backward space record */
  20. #define MTREW   5       /* rewind */
  21. #define MTOFFL  6       /* rewind and put the drive offline */
  22. #define MTNOP   7       /* no operation, sets status only */
  23. #define MTEOD   8       /* (DDS device only) seek to EOD point*/
  24. #define MTWSS   9       /* (DDS device only) write mt_count save setmarks*/
  25. #define MTFSS   10      /* (DDS device only) forward mt_count save setmarks*/
  26. #define MTBSS   11      /* (DDS device only) backward mt_count save setmarks*/
  27.  
  28. /* structure for MTIOCGET - mag tape get status command */
  29.  
  30. struct  mtget   {
  31.         long    mt_type;        /* type of magtape device */
  32.         long    mt_resid;       /* residual count */
  33.         /* the following registers are (hideously?) device dependent */
  34.         long    mt_dsreg1;      /* status register (msb) */
  35.         long    mt_dsreg2;      /* status register (lsb) */
  36.         long    mt_gstat;       /* generic (device independent) status */
  37.         long    mt_erreg;       /* error register */
  38. };
  39.  
  40. /*
  41.  * Constants for mt_type
  42.  */
  43.  
  44. #define MT_ISSTREAM     0x05
  45. #define MT_ISDDS1       0x06 /* HPCS/HPIB DDS device without partitions*/
  46. #define MT_ISDDS2       0x07 /* HPCS/HPIB DDS device with partitions*/
  47. #define MT_ISSCSI1      0x08 /* ANSI SCSI-1 device */
  48.  
  49. /* generic mag tape (device independent) status macros */
  50. /* for examining mt_gstat */
  51. #define GMT_EOF(x)              ((x) & 0x80000000)
  52. #define GMT_BOT(x)              ((x) & 0x40000000)
  53. #define GMT_EOT(x)              ((x) & 0x20000000)
  54. #define GMT_SM(x)               ((x) & 0x10000000)  /* DDS setmark */
  55. #define GMT_EOD(x)              ((x) & 0x08000000)  /* DDS EOD */
  56. #define GMT_WR_PROT(x)          ((x) & 0x04000000)
  57. #define GMT_ONLINE(x)           ((x) & 0x01000000)
  58. #define GMT_D_6250(x)           ((x) & 0x00800000)
  59. #define GMT_D_1600(x)           ((x) & 0x00400000)
  60. #define GMT_D_800(x)            ((x) & 0x00200000)
  61. #define GMT_DR_OPEN(x)          ((x) & 0x00040000)  /* door open */
  62. #define GMT_IM_REP_EN(x)        ((x) & 0x00010000)
  63.  
  64.  
  65. /* mag tape io control commands */
  66. #define MTIOCTOP        (('m'<<8)|1)    /* do a mag tape op */
  67. #define MTIOCGET        (('m'<<8)|2)    /* get mag tape status */
  68.  
  69. #endif /* not _SYS_MTIO_INCLUDED */
  70.  
  71.