~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/include/linux/ftape.h

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 #ifndef _FTAPE_H
  2 #define _FTAPE_H
  3 
  4 /*
  5  * Copyright (C) 1994-1996 Bas Laarhoven,
  6  *           (C) 1996-1997 Claus-Justus Heine.
  7 
  8  This program is free software; you can redistribute it and/or modify
  9  it under the terms of the GNU General Public License as published by
 10  the Free Software Foundation; either version 2, or (at your option)
 11  any later version.
 12 
 13  This program is distributed in the hope that it will be useful,
 14  but WITHOUT ANY WARRANTY; without even the implied warranty of
 15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 16  GNU General Public License for more details.
 17 
 18  You should have received a copy of the GNU General Public License
 19  along with this program; see the file COPYING.  If not, write to
 20  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
 21 
 22  *
 23  * $Source: /homes/cvs/ftape-stacked/include/linux/ftape.h,v $
 24  * $Revision: 1.17.6.4 $
 25  * $Date: 1997/11/25 01:52:54 $
 26  *
 27  *      This file contains global definitions, typedefs and macro's
 28  *      for the QIC-40/80/3010/3020 floppy-tape driver for Linux.
 29  */
 30 
 31 #define FTAPE_VERSION "ftape v3.04d 25/11/97"
 32 
 33 /* this makes the Kernel version numbers readable */
 34 #define KERNEL_VER(major,minor,sublvl) (((major)<<16)+((minor)<<8)+(sublvl))
 35 
 36 #ifdef __KERNEL__
 37 #include <linux/sched.h>
 38 #include <linux/mm.h>
 39 #endif
 40 #include <linux/types.h>
 41 #include <linux/version.h>
 42 #include <linux/config.h>
 43 #include <linux/mtio.h>
 44 
 45 #define FT_SECTOR(x)            (x+1)   /* sector offset into real sector */
 46 #define FT_SECTOR_SIZE          1024
 47 #define FT_SECTORS_PER_SEGMENT    32
 48 #define FT_ECC_SECTORS             3
 49 #define FT_SEGMENT_SIZE         ((FT_SECTORS_PER_SEGMENT - FT_ECC_SECTORS) * FT_SECTOR_SIZE)
 50 #define FT_BUFF_SIZE    (FT_SECTORS_PER_SEGMENT * FT_SECTOR_SIZE)
 51 
 52 /*
 53  *   bits of the minor device number that define drive selection
 54  *   methods. Could be used one day to access multiple tape
 55  *   drives on the same controller.
 56  */
 57 #define FTAPE_SEL_A     0
 58 #define FTAPE_SEL_B     1
 59 #define FTAPE_SEL_C     2
 60 #define FTAPE_SEL_D     3
 61 #define FTAPE_SEL_MASK     3
 62 #define FTAPE_SEL(unit) ((unit) & FTAPE_SEL_MASK)
 63 #define FTAPE_NO_REWIND 4       /* mask for minor nr */
 64 
 65 /* the following two may be reported when MTIOCGET is requested ... */
 66 typedef union {
 67         struct {
 68                 __u8 error;
 69                 __u8 command;
 70         } error;
 71         long space;
 72 } ft_drive_error;
 73 typedef union {
 74         struct {
 75                 __u8 drive_status;
 76                 __u8 drive_config;
 77                 __u8 tape_status;
 78         } status;
 79         long space;
 80 } ft_drive_status;
 81 
 82 #ifdef __KERNEL__
 83 
 84 #define FT_RQM_DELAY    12
 85 #define FT_MILLISECOND  1
 86 #define FT_SECOND       1000
 87 #define FT_FOREVER      -1
 88 #ifndef HZ
 89 #error "HZ undefined."
 90 #endif
 91 #define FT_USPT         (1000000/HZ) /* microseconds per tick */
 92 
 93 /* This defines the number of retries that the driver will allow
 94  * before giving up (and letting a higher level handle the error).
 95  */
 96 #ifdef TESTING
 97 #define FT_SOFT_RETRIES 1          /* number of low level retries */
 98 #define FT_RETRIES_ON_ECC_ERROR 3  /* ecc error when correcting segment */
 99 #else
100 #define FT_SOFT_RETRIES 6          /* number of low level retries (triple) */
101 #define FT_RETRIES_ON_ECC_ERROR 3  /* ecc error when correcting segment */
102 #endif
103 
104 #ifndef THE_FTAPE_MAINTAINER
105 #define THE_FTAPE_MAINTAINER "the ftape maintainer"
106 #endif
107 
108 /* Initialize missing configuration parameters.
109  */
110 #ifndef CONFIG_FT_NR_BUFFERS
111 # define CONFIG_FT_NR_BUFFERS 3
112 #endif
113 #ifndef CONFIG_FT_FDC_THR
114 # define CONFIG_FT_FDC_THR 8
115 #endif
116 #ifndef CONFIG_FT_FDC_MAX_RATE
117 # define CONFIG_FT_FDC_MAX_RATE 2000
118 #endif
119 #ifndef CONFIG_FT_FDC_BASE
120 # define CONFIG_FT_FDC_BASE 0
121 #endif
122 #ifndef CONFIG_FT_FDC_IRQ
123 # define CONFIG_FT_FDC_IRQ  0
124 #endif
125 #ifndef CONFIG_FT_FDC_DMA
126 # define CONFIG_FT_FDC_DMA  0
127 #endif
128 
129 /* Turn some booleans into numbers.
130  */
131 #ifdef CONFIG_FT_PROBE_FC10
132 # undef CONFIG_FT_PROBE_FC10
133 # define CONFIG_FT_PROBE_FC10 1
134 #else
135 # define CONFIG_FT_PROBE_FC10 0
136 #endif
137 #ifdef CONFIG_FT_MACH2
138 # undef CONFIG_FT_MACH2
139 # define CONFIG_FT_MACH2 1
140 #else
141 # define CONFIG_FT_MACH2 0
142 #endif
143 
144 /* Insert default settings
145  */
146 #if CONFIG_FT_PROBE_FC10 == 1
147 # if CONFIG_FT_FDC_BASE == 0
148 #  undef  CONFIG_FT_FDC_BASE
149 #  define CONFIG_FT_FDC_BASE 0x180
150 # endif
151 # if CONFIG_FT_FDC_IRQ == 0
152 #  undef  CONFIG_FT_FDC_IRQ
153 #  define CONFIG_FT_FDC_IRQ 9
154 # endif
155 # if CONFIG_FT_FDC_DMA == 0
156 #  undef  CONFIG_FT_FDC_DMA
157 #  define CONFIG_FT_FDC_DMA 3
158 # endif
159 #elif CONFIG_FT_MACH2 == 1    /* CONFIG_FT_PROBE_FC10 == 1 */
160 # if CONFIG_FT_FDC_BASE == 0
161 #  undef  CONFIG_FT_FDC_BASE
162 #  define CONFIG_FT_FDC_BASE 0x1E0
163 # endif
164 # if CONFIG_FT_FDC_IRQ == 0
165 #  undef  CONFIG_FT_FDC_IRQ
166 #  define CONFIG_FT_FDC_IRQ 6
167 # endif
168 # if CONFIG_FT_FDC_DMA == 0
169 #  undef  CONFIG_FT_FDC_DMA
170 #  define CONFIG_FT_FDC_DMA 2
171 # endif
172 #elif CONFIG_FT_ALT_FDC == 1  /* CONFIG_FT_MACH2 */
173 # if CONFIG_FT_FDC_BASE == 0
174 #  undef  CONFIG_FT_FDC_BASE
175 #  define CONFIG_FT_FDC_BASE 0x370
176 # endif
177 # if CONFIG_FT_FDC_IRQ == 0
178 #  undef  CONFIG_FT_FDC_IRQ
179 #  define CONFIG_FT_FDC_IRQ 6
180 # endif
181 # if CONFIG_FT_FDC_DMA == 0
182 #  undef  CONFIG_FT_FDC_DMA
183 #  define CONFIG_FT_FDC_DMA 2
184 # endif
185 #else                          /* CONFIG_FT_ALT_FDC */
186 # if CONFIG_FT_FDC_BASE == 0
187 #  undef  CONFIG_FT_FDC_BASE
188 #  define CONFIG_FT_FDC_BASE 0x3f0
189 # endif
190 # if CONFIG_FT_FDC_IRQ == 0
191 #  undef  CONFIG_FT_FDC_IRQ
192 #  define CONFIG_FT_FDC_IRQ 6
193 # endif
194 # if CONFIG_FT_FDC_DMA == 0
195 #  undef  CONFIG_FT_FDC_DMA
196 #  define CONFIG_FT_FDC_DMA 2
197 # endif
198 #endif                         /* standard FDC */
199 
200 /*      some useful macro's
201  */
202 #define ABS(a)          ((a) < 0 ? -(a) : (a))
203 #define NR_ITEMS(x)     (int)(sizeof(x)/ sizeof(*x))
204 
205 extern int ftape_init(void);
206 
207 #endif  /* __KERNEL__ */
208 
209 #endif
210 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.