github.com/afumu/libc@v0.0.6/musl/include/sys/mtio.h (about)

     1  #ifndef _SYS_MTIO_H
     2  #define _SYS_MTIO_H
     3  
     4  #include <sys/types.h>
     5  #include <sys/ioctl.h>
     6  
     7  struct mtop {
     8  	short mt_op;
     9  	int mt_count;
    10  };
    11  
    12  #define _IOT_mtop _IOT (_IOTS (short), 1, _IOTS (int), 1, 0, 0)
    13  #define _IOT_mtget _IOT (_IOTS (long), 7, 0, 0, 0, 0)
    14  #define _IOT_mtpos _IOT_SIMPLE (long)
    15  #define _IOT_mtconfiginfo _IOT (_IOTS (long), 2, _IOTS (short), 3, _IOTS (long), 1)
    16  
    17  
    18  #define MTRESET 0
    19  #define MTFSF	1
    20  #define MTBSF	2
    21  #define MTFSR	3
    22  #define MTBSR	4
    23  #define MTWEOF	5
    24  #define MTREW	6
    25  #define MTOFFL	7
    26  #define MTNOP	8
    27  #define MTRETEN 9
    28  #define MTBSFM	10
    29  #define MTFSFM  11
    30  #define MTEOM	12
    31  #define MTERASE 13
    32  #define MTRAS1  14
    33  #define MTRAS2	15
    34  #define MTRAS3  16
    35  #define MTSETBLK 20
    36  #define MTSETDENSITY 21
    37  #define MTSEEK	22
    38  #define MTTELL	23
    39  #define MTSETDRVBUFFER 24
    40  #define MTFSS	25
    41  #define MTBSS	26
    42  #define MTWSM	27
    43  #define MTLOCK  28
    44  #define MTUNLOCK 29
    45  #define MTLOAD  30
    46  #define MTUNLOAD 31
    47  #define MTCOMPRESSION 32
    48  #define MTSETPART 33
    49  #define MTMKPART  34
    50  
    51  struct mtget {
    52  	long mt_type;
    53  	long mt_resid;
    54  	long mt_dsreg;
    55  	long mt_gstat;
    56  	long mt_erreg;
    57  	int mt_fileno;
    58  	int mt_blkno;
    59  };
    60  
    61  #define MT_ISUNKNOWN		0x01
    62  #define MT_ISQIC02		0x02
    63  #define MT_ISWT5150		0x03
    64  #define MT_ISARCHIVE_5945L2	0x04
    65  #define MT_ISCMSJ500		0x05
    66  #define MT_ISTDC3610		0x06
    67  #define MT_ISARCHIVE_VP60I	0x07
    68  #define MT_ISARCHIVE_2150L	0x08
    69  #define MT_ISARCHIVE_2060L	0x09
    70  #define MT_ISARCHIVESC499	0x0A
    71  #define MT_ISQIC02_ALL_FEATURES	0x0F
    72  #define MT_ISWT5099EEN24	0x11
    73  #define MT_ISTEAC_MT2ST		0x12
    74  #define MT_ISEVEREX_FT40A	0x32
    75  #define MT_ISDDS1		0x51
    76  #define MT_ISDDS2		0x52
    77  #define MT_ISSCSI1		0x71
    78  #define MT_ISSCSI2		0x72
    79  #define MT_ISFTAPE_UNKNOWN	0x800000
    80  #define MT_ISFTAPE_FLAG		0x800000
    81  
    82  struct mt_tape_info {
    83  	long t_type;
    84  	char *t_name;
    85  };
    86  
    87  #define MT_TAPE_INFO \
    88  {									      \
    89  	{MT_ISUNKNOWN,		"Unknown type of tape device"},		      \
    90  	{MT_ISQIC02,		"Generic QIC-02 tape streamer"},	      \
    91  	{MT_ISWT5150,		"Wangtek 5150, QIC-150"},		      \
    92  	{MT_ISARCHIVE_5945L2,	"Archive 5945L-2"},			      \
    93  	{MT_ISCMSJ500,		"CMS Jumbo 500"},			      \
    94  	{MT_ISTDC3610,		"Tandberg TDC 3610, QIC-24"},		      \
    95  	{MT_ISARCHIVE_VP60I,	"Archive VP60i, QIC-02"},		      \
    96  	{MT_ISARCHIVE_2150L,	"Archive Viper 2150L"},			      \
    97  	{MT_ISARCHIVE_2060L,	"Archive Viper 2060L"},			      \
    98  	{MT_ISARCHIVESC499,	"Archive SC-499 QIC-36 controller"},	      \
    99  	{MT_ISQIC02_ALL_FEATURES, "Generic QIC-02 tape, all features"},	      \
   100  	{MT_ISWT5099EEN24,	"Wangtek 5099-een24, 60MB"},		      \
   101  	{MT_ISTEAC_MT2ST,	"Teac MT-2ST 155mb data cassette drive"},     \
   102  	{MT_ISEVEREX_FT40A,	"Everex FT40A, QIC-40"},		      \
   103  	{MT_ISSCSI1,		"Generic SCSI-1 tape"},			      \
   104  	{MT_ISSCSI2,		"Generic SCSI-2 tape"},			      \
   105  	{0, 0}								      \
   106  }
   107  
   108  struct mtpos {
   109  	long mt_blkno;
   110  };
   111  
   112  struct mtconfiginfo  {
   113  	long mt_type;
   114  	long ifc_type;
   115  	unsigned short irqnr;
   116  	unsigned short dmanr;
   117  	unsigned short port;
   118  	unsigned long debug;
   119  	unsigned have_dens:1;
   120  	unsigned have_bsf:1;
   121  	unsigned have_fsr:1;
   122  	unsigned have_bsr:1;
   123  	unsigned have_eod:1;
   124  	unsigned have_seek:1;
   125  	unsigned have_tell:1;
   126  	unsigned have_ras1:1;
   127  	unsigned have_ras2:1;
   128  	unsigned have_ras3:1;
   129  	unsigned have_qfa:1;
   130  	unsigned pad1:5;
   131  	char reserved[10];
   132  };
   133  
   134  #define	MTIOCTOP _IOW('m', 1, struct mtop)
   135  #define	MTIOCGET _IOR('m', 2, struct mtget)
   136  #define	MTIOCPOS _IOR('m', 3, struct mtpos)
   137  
   138  #define	MTIOCGETCONFIG	_IOR('m', 4, struct mtconfiginfo)
   139  #define	MTIOCSETCONFIG	_IOW('m', 5, struct mtconfiginfo)
   140  
   141  #define GMT_EOF(x)              ((x) & 0x80000000)
   142  #define GMT_BOT(x)              ((x) & 0x40000000)
   143  #define GMT_EOT(x)              ((x) & 0x20000000)
   144  #define GMT_SM(x)               ((x) & 0x10000000)
   145  #define GMT_EOD(x)              ((x) & 0x08000000)
   146  #define GMT_WR_PROT(x)          ((x) & 0x04000000)
   147  #define GMT_ONLINE(x)           ((x) & 0x01000000)
   148  #define GMT_D_6250(x)           ((x) & 0x00800000)
   149  #define GMT_D_1600(x)           ((x) & 0x00400000)
   150  #define GMT_D_800(x)            ((x) & 0x00200000)
   151  #define GMT_DR_OPEN(x)          ((x) & 0x00040000)
   152  #define GMT_IM_REP_EN(x)        ((x) & 0x00010000)
   153  
   154  #define MT_ST_BLKSIZE_SHIFT	0
   155  #define MT_ST_BLKSIZE_MASK	0xffffff
   156  #define MT_ST_DENSITY_SHIFT	24
   157  #define MT_ST_DENSITY_MASK	0xff000000
   158  #define MT_ST_SOFTERR_SHIFT	0
   159  #define MT_ST_SOFTERR_MASK	0xffff
   160  #define MT_ST_OPTIONS		0xf0000000
   161  #define MT_ST_BOOLEANS		0x10000000
   162  #define MT_ST_SETBOOLEANS	0x30000000
   163  #define MT_ST_CLEARBOOLEANS	0x40000000
   164  #define MT_ST_WRITE_THRESHOLD	0x20000000
   165  #define MT_ST_DEF_BLKSIZE	0x50000000
   166  #define MT_ST_DEF_OPTIONS	0x60000000
   167  #define MT_ST_BUFFER_WRITES	0x1
   168  #define MT_ST_ASYNC_WRITES	0x2
   169  #define MT_ST_READ_AHEAD	0x4
   170  #define MT_ST_DEBUGGING		0x8
   171  #define MT_ST_TWO_FM		0x10
   172  #define MT_ST_FAST_MTEOM	0x20
   173  #define MT_ST_AUTO_LOCK		0x40
   174  #define MT_ST_DEF_WRITES	0x80
   175  #define MT_ST_CAN_BSR		0x100
   176  #define MT_ST_NO_BLKLIMS	0x200
   177  #define MT_ST_CAN_PARTITIONS    0x400
   178  #define MT_ST_SCSI2LOGICAL      0x800
   179  #define MT_ST_CLEAR_DEFAULT	0xfffff
   180  #define MT_ST_DEF_DENSITY	(MT_ST_DEF_OPTIONS | 0x100000)
   181  #define MT_ST_DEF_COMPRESSION	(MT_ST_DEF_OPTIONS | 0x200000)
   182  #define MT_ST_DEF_DRVBUFFER	(MT_ST_DEF_OPTIONS | 0x300000)
   183  #define MT_ST_HPLOADER_OFFSET 10000
   184  #ifndef DEFTAPE
   185  # define DEFTAPE	"/dev/tape"
   186  #endif
   187  
   188  #endif