]>
Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | /* |
2 | The compile-time configurable defaults for the Linux SCSI tape driver. | |
3 | ||
4 | Copyright 1995 Kai Makisara. | |
5 | ||
6 | Last modified: Wed Sep 2 21:24:07 1998 by root@home | |
7 | ||
8 | Changed (and renamed) for OnStream SCSI drives garloff@suse.de | |
9 | 2000-06-21 | |
10 | ||
11 | $Header: /cvsroot/osst/Driver/osst_options.h,v 1.6 2003/12/23 14:22:12 wriede Exp $ | |
12 | */ | |
13 | ||
14 | #ifndef _OSST_OPTIONS_H | |
15 | #define _OSST_OPTIONS_H | |
16 | ||
17 | /* The minimum limit for the number of SCSI tape devices is determined by | |
18 | OSST_MAX_TAPES. If the number of tape devices and the "slack" defined by | |
19 | OSST_EXTRA_DEVS exceeds OSST_MAX_TAPES, the large number is used. */ | |
20 | #define OSST_MAX_TAPES 4 | |
21 | ||
22 | /* If OSST_IN_FILE_POS is nonzero, the driver positions the tape after the | |
23 | record been read by the user program even if the tape has moved further | |
24 | because of buffered reads. Should be set to zero to support also drives | |
25 | that can't space backwards over records. NOTE: The tape will be | |
26 | spaced backwards over an "accidentally" crossed filemark in any case. */ | |
27 | #define OSST_IN_FILE_POS 1 | |
28 | ||
29 | /* The tape driver buffer size in kilobytes. */ | |
30 | /* Don't change, as this is the HW blocksize */ | |
31 | #define OSST_BUFFER_BLOCKS 32 | |
32 | ||
33 | /* The number of kilobytes of data in the buffer that triggers an | |
34 | asynchronous write in fixed block mode. See also OSST_ASYNC_WRITES | |
35 | below. */ | |
36 | #define OSST_WRITE_THRESHOLD_BLOCKS 32 | |
37 | ||
38 | /* OSST_EOM_RESERVE defines the number of frames are kept in reserve for | |
39 | * * write error recovery when writing near end of medium. ENOSPC is returned | |
40 | * * when write() is called and the tape write position is within this number | |
41 | * * of blocks from the tape capacity. */ | |
42 | #define OSST_EOM_RESERVE 300 | |
43 | ||
44 | /* The maximum number of tape buffers the driver allocates. The number | |
45 | is also constrained by the number of drives detected. Determines the | |
46 | maximum number of concurrently active tape drives. */ | |
47 | #define OSST_MAX_BUFFERS OSST_MAX_TAPES | |
48 | ||
49 | /* Maximum number of scatter/gather segments */ | |
50 | /* Fit one buffer in pages and add one for the AUX header */ | |
51 | #define OSST_MAX_SG (((OSST_BUFFER_BLOCKS*1024) / PAGE_SIZE) + 1) | |
52 | ||
53 | /* The number of scatter/gather segments to allocate at first try (must be | |
54 | smaller or equal to the maximum). */ | |
55 | #define OSST_FIRST_SG ((OSST_BUFFER_BLOCKS*1024) / PAGE_SIZE) | |
56 | ||
57 | /* The size of the first scatter/gather segments (determines the maximum block | |
58 | size for SCSI adapters not supporting scatter/gather). The default is set | |
59 | to try to allocate the buffer as one chunk. */ | |
60 | #define OSST_FIRST_ORDER (15-PAGE_SHIFT) | |
61 | ||
62 | ||
63 | /* The following lines define defaults for properties that can be set | |
64 | separately for each drive using the MTSTOPTIONS ioctl. */ | |
65 | ||
66 | /* If OSST_TWO_FM is non-zero, the driver writes two filemarks after a | |
67 | file being written. Some drives can't handle two filemarks at the | |
68 | end of data. */ | |
69 | #define OSST_TWO_FM 0 | |
70 | ||
71 | /* If OSST_BUFFER_WRITES is non-zero, writes in fixed block mode are | |
72 | buffered until the driver buffer is full or asynchronous write is | |
73 | triggered. */ | |
74 | #define OSST_BUFFER_WRITES 1 | |
75 | ||
76 | /* If OSST_ASYNC_WRITES is non-zero, the SCSI write command may be started | |
77 | without waiting for it to finish. May cause problems in multiple | |
78 | tape backups. */ | |
79 | #define OSST_ASYNC_WRITES 1 | |
80 | ||
81 | /* If OSST_READ_AHEAD is non-zero, blocks are read ahead in fixed block | |
82 | mode. */ | |
83 | #define OSST_READ_AHEAD 1 | |
84 | ||
85 | /* If OSST_AUTO_LOCK is non-zero, the drive door is locked at the first | |
86 | read or write command after the device is opened. The door is opened | |
87 | when the device is closed. */ | |
88 | #define OSST_AUTO_LOCK 0 | |
89 | ||
90 | /* If OSST_FAST_MTEOM is non-zero, the MTEOM ioctl is done using the | |
91 | direct SCSI command. The file number status is lost but this method | |
92 | is fast with some drives. Otherwise MTEOM is done by spacing over | |
93 | files and the file number status is retained. */ | |
94 | #define OSST_FAST_MTEOM 0 | |
95 | ||
96 | /* If OSST_SCSI2LOGICAL is nonzero, the logical block addresses are used for | |
97 | MTIOCPOS and MTSEEK by default. Vendor addresses are used if OSST_SCSI2LOGICAL | |
98 | is zero. */ | |
99 | #define OSST_SCSI2LOGICAL 0 | |
100 | ||
101 | /* If OSST_SYSV is non-zero, the tape behaves according to the SYS V semantics. | |
102 | The default is BSD semantics. */ | |
103 | #define OSST_SYSV 0 | |
104 | ||
105 | ||
106 | #endif |