blob: e6632159e3b3fb4438bc87802e7964d89a45fb2c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
#ifndef _ST_H
#define _ST_H
/*
$Header: /usr/src/linux/kernel/blk_drv/scsi/RCS/st.h,v 1.1 1992/04/24 18:01:50 root Exp root $
*/
#ifndef _SCSI_H
#include "scsi.h"
#endif
typedef struct {
int in_use;
int buffer_size;
int buffer_blocks;
int buffer_bytes;
int read_pointer;
int writing;
int last_result;
int last_result_fatal;
unsigned char b_data[1];
} ST_buffer;
typedef struct {
unsigned capacity;
struct wait_queue * waiting;
Scsi_Device* device;
unsigned char dirty;
unsigned char rw;
unsigned char ready;
unsigned char eof;
unsigned char write_prot;
unsigned char drv_write_prot;
unsigned char in_use;
unsigned char eof_hit;
unsigned char drv_buffer;
unsigned char do_buffer_writes;
unsigned char do_async_writes;
unsigned char do_read_ahead;
unsigned char two_fm;
unsigned char fast_mteom;
unsigned char density;
ST_buffer * buffer;
int block_size;
int min_block;
int max_block;
int write_threshold;
int recover_count;
int drv_block; /* The block where the drive head is */
unsigned char moves_after_eof;
unsigned char at_sm;
struct mtget * mt_status;
Scsi_Cmnd SCpnt;
} Scsi_Tape;
/* Values of eof */
#define ST_NOEOF 0
#define ST_FM 1
#define ST_EOM_OK 2
#define ST_EOM_ERROR 3
#define ST_EOD 4
/* Values of rw */
#define ST_IDLE 0
#define ST_READING 1
#define ST_WRITING 2
/* Values of ready state */
#define ST_READY 0
#define ST_NOT_READY 1
#define ST_NO_TAPE 2
/* Positioning SCSI-commands for Tandberg, etc. drives */
#define QFA_REQUEST_BLOCK 0x02
#define QFA_SEEK_BLOCK 0x0c
#endif
|