Remove long-unmaintained ftape driver subsystem.
It's bitrotten, long unmaintained, long hidden under BROKEN_ON_SMP, etc. As scheduled in feature-removal-schedule.txt, and ack'd several times on lkml. Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
@@ -60,8 +60,6 @@ header-y += fadvise.h
|
||||
header-y += fd.h
|
||||
header-y += fdreg.h
|
||||
header-y += fib_rules.h
|
||||
header-y += ftape-header-segment.h
|
||||
header-y += ftape-vendors.h
|
||||
header-y += fuse.h
|
||||
header-y += futex.h
|
||||
header-y += genetlink.h
|
||||
@@ -206,7 +204,6 @@ unifdef-y += fcntl.h
|
||||
unifdef-y += filter.h
|
||||
unifdef-y += flat.h
|
||||
unifdef-y += fs.h
|
||||
unifdef-y += ftape.h
|
||||
unifdef-y += gameport.h
|
||||
unifdef-y += generic_serial.h
|
||||
unifdef-y += genhd.h
|
||||
@@ -341,6 +338,5 @@ unifdef-y += wait.h
|
||||
unifdef-y += wanrouter.h
|
||||
unifdef-y += watchdog.h
|
||||
unifdef-y += xfrm.h
|
||||
unifdef-y += zftape.h
|
||||
|
||||
objhdr-y += version.h
|
||||
|
||||
@@ -1,122 +0,0 @@
|
||||
#ifndef _FTAPE_HEADER_SEGMENT_H
|
||||
#define _FTAPE_HEADER_SEGMENT_H
|
||||
|
||||
/*
|
||||
* Copyright (C) 1996-1997 Claus-Justus Heine.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*
|
||||
* $Source: /homes/cvs/ftape-stacked/include/linux/ftape-header-segment.h,v $
|
||||
* $Revision: 1.2 $
|
||||
* $Date: 1997/10/05 19:19:28 $
|
||||
*
|
||||
* This file defines some offsets into the header segment of a
|
||||
* floppy tape cartridge. For use with the QIC-40/80/3010/3020
|
||||
* floppy-tape driver "ftape" for Linux.
|
||||
*/
|
||||
|
||||
#define FT_SIGNATURE 0 /* must be 0xaa55aa55 */
|
||||
#define FT_FMT_CODE 4
|
||||
#define FT_REV_LEVEL 5 /* only for QIC-80 since. Rev. L (== 0x0c) */
|
||||
#define FT_HSEG_1 6 /* first header segment, except for format code 6 */
|
||||
#define FT_HSEG_2 8 /* second header segment, except for format code 6 */
|
||||
#define FT_FRST_SEG 10 /* first data segment, except for format code 6 */
|
||||
#define FT_LAST_SEG 12 /* last data segment, except for format code 6 */
|
||||
#define FT_FMT_DATE 14 /* date and time of most recent format, see below */
|
||||
#define FT_WR_DATE 18 /* date and time of most recent write or format */
|
||||
#define FT_SPT 24 /* segments per track */
|
||||
#define FT_TPC 26 /* tracks per cartridge */
|
||||
#define FT_FHM 27 /* floppy drive head (maximum of it) */
|
||||
#define FT_FTM 28 /* floppy track max. */
|
||||
#define FT_FSM 29 /* floppy sector max. (128) */
|
||||
#define FT_LABEL 30 /* floppy tape label */
|
||||
#define FT_LABEL_DATE 74 /* date and time the tape label was written */
|
||||
#define FT_LABEL_SZ (FT_LABEL_DATE - FT_LABEL)
|
||||
#define FT_CMAP_START 78 /* starting segment of compression map */
|
||||
#define FT_FMT_ERROR 128 /* must be set to 0xff if remainder gets lost during
|
||||
* tape format
|
||||
*/
|
||||
#define FT_SEG_CNT 130 /* number of seg. written, formatted or verified
|
||||
* through lifetime of tape (why not read?)
|
||||
*/
|
||||
#define FT_INIT_DATE 138 /* date and time of initial tape format */
|
||||
#define FT_FMT_CNT 142 /* number of times tape has been formatted */
|
||||
#define FT_FSL_CNT 144 /* number of segments in failed sector log */
|
||||
#define FT_MK_CODE 146 /* id string of tape manufacturer */
|
||||
#define FT_LOT_CODE 190 /* tape manufacturer lot code */
|
||||
#define FT_6_HSEG_1 234 /* first header segment for format code 6 */
|
||||
#define FT_6_HSEG_2 238 /* second header segment for format code 6 */
|
||||
#define FT_6_FRST_SEG 242 /* first data segment for format code 6 */
|
||||
#define FT_6_LAST_SEG 246 /* last data segment for format code 6 */
|
||||
|
||||
#define FT_FSL 256
|
||||
#define FT_HEADER_END 256 /* space beyond this point:
|
||||
* format codes 2, 3 and 5:
|
||||
* - failed sector log until byte 2047
|
||||
* - bad sector map in the reamining part of segment
|
||||
* format codes 4 and 6:
|
||||
* - bad sector map starts hear
|
||||
*/
|
||||
|
||||
|
||||
/* value to be stored at the FT_SIGNATURE offset
|
||||
*/
|
||||
#define FT_HSEG_MAGIC 0xaa55aa55
|
||||
#define FT_D2G_MAGIC 0x82288228 /* Ditto 2GB */
|
||||
|
||||
/* data and time encoding: */
|
||||
#define FT_YEAR_SHIFT 25
|
||||
#define FT_YEAR_MASK 0xfe000000
|
||||
#define FT_YEAR_0 1970
|
||||
#define FT_YEAR_MAX 127
|
||||
#define FT_YEAR(year) ((((year)-FT_YEAR_0)<<FT_YEAR_SHIFT)&FT_YEAR_MASK)
|
||||
|
||||
#define FT_TIME_SHIFT 0
|
||||
#define FT_TIME_MASK 0x01FFFFFF
|
||||
#define FT_TIME_MAX 0x01ea6dff /* last second of a year */
|
||||
#define FT_TIME(mo,d,h,m,s) \
|
||||
((((s)+60*((m)+60*((h)+24*((d)+31*(mo))))) & FT_TIME_MASK))
|
||||
|
||||
#define FT_TIME_STAMP(y,mo,d,h,m,s) (FT_YEAR(y) | FT_TIME(mo,d,h,m,s))
|
||||
|
||||
/* values for the format code field */
|
||||
typedef enum {
|
||||
fmt_normal = 2, /* QIC-80 post Rev. B 205Ft or 307Ft tape */
|
||||
fmt_1100ft = 3, /* QIC-80 post Rev. B 1100Ft tape */
|
||||
fmt_var = 4, /* QIC-80 post Rev. B variabel length format */
|
||||
fmt_425ft = 5, /* QIC-80 post Rev. B 425Ft tape */
|
||||
fmt_big = 6 /* QIC-3010/3020 variable length tape with more
|
||||
* than 2^16 segments per tape
|
||||
*/
|
||||
} ft_format_type;
|
||||
|
||||
/* definitions for the failed sector log */
|
||||
#define FT_FSL_SIZE (2 * FT_SECTOR_SIZE - FT_HEADER_END)
|
||||
#define FT_FSL_MAX_ENTRIES (FT_FSL_SIZE/sizeof(__u32))
|
||||
|
||||
typedef struct ft_fsl_entry {
|
||||
__u16 segment;
|
||||
__u16 date;
|
||||
} __attribute__ ((packed)) ft_fsl_entry;
|
||||
|
||||
|
||||
/* date encoding for the failed sector log
|
||||
* month: 1..12, day: 1..31, year: 1970..2097
|
||||
*/
|
||||
#define FT_FSL_TIME_STAMP(y,m,d) \
|
||||
(((((y) - FT_YEAR_0)<<9)&0xfe00) | (((m)<<5)&0x01e0) | ((d)&0x001f))
|
||||
|
||||
#endif /* _FTAPE_HEADER_SEGMENT_H */
|
||||
@@ -1,137 +0,0 @@
|
||||
#ifndef _FTAPE_VENDORS_H
|
||||
#define _FTAPE_VENDORS_H
|
||||
|
||||
/*
|
||||
* Copyright (C) 1993-1996 Bas Laarhoven,
|
||||
* (C) 1996-1997 Claus-Justus Heine.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*
|
||||
* $Source: /homes/cvs/ftape-stacked/include/linux/ftape-vendors.h,v $
|
||||
* $Revision: 1.6 $
|
||||
* $Date: 1997/10/09 15:38:11 $
|
||||
*
|
||||
* This file contains the supported drive types with their
|
||||
* QIC-117 spec. vendor code and drive dependent configuration
|
||||
* information.
|
||||
*/
|
||||
|
||||
typedef enum {
|
||||
unknown_wake_up = 0,
|
||||
no_wake_up,
|
||||
wake_up_colorado,
|
||||
wake_up_mountain,
|
||||
wake_up_insight,
|
||||
} wake_up_types;
|
||||
|
||||
typedef struct {
|
||||
wake_up_types wake_up; /* see wake_up_types */
|
||||
char *name; /* Text describing the drive */
|
||||
} wakeup_method;
|
||||
|
||||
/* Note: order of entries in WAKEUP_METHODS must be so that a variable
|
||||
* of type wake_up_types can be used as an index in the array.
|
||||
*/
|
||||
#define WAKEUP_METHODS { \
|
||||
{ unknown_wake_up, "Unknown" }, \
|
||||
{ no_wake_up, "None" }, \
|
||||
{ wake_up_colorado, "Colorado" }, \
|
||||
{ wake_up_mountain, "Mountain" }, \
|
||||
{ wake_up_insight, "Motor-on" }, \
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
unsigned int vendor_id; /* vendor id from drive */
|
||||
int speed; /* maximum tape transport speed (ips) */
|
||||
wake_up_types wake_up; /* see wake_up_types */
|
||||
char *name; /* Text describing the drive */
|
||||
} vendor_struct;
|
||||
|
||||
#define UNKNOWN_VENDOR (-1)
|
||||
|
||||
#define QIC117_VENDORS { \
|
||||
/* see _vendor_struct */ \
|
||||
{ 0x00000, 82, wake_up_colorado, "Colorado DJ-10 (old)" }, \
|
||||
{ 0x00047, 90, wake_up_colorado, "Colorado DJ-10/DJ-20" }, \
|
||||
{ 0x011c2, 84, wake_up_colorado, "Colorado 700" }, \
|
||||
{ 0x011c3, 90, wake_up_colorado, "Colorado 1400" }, \
|
||||
{ 0x011c4, 84, wake_up_colorado, "Colorado DJ-10/DJ-20 (new)" }, \
|
||||
{ 0x011c5, 84, wake_up_colorado, "HP Colorado T1000" }, \
|
||||
{ 0x011c6, 90, wake_up_colorado, "HP Colorado T3000" }, \
|
||||
{ 0x00005, 45, wake_up_mountain, "Archive 5580i" }, \
|
||||
{ 0x10005, 50, wake_up_insight, "Insight 80Mb, Irwin 80SX" }, \
|
||||
{ 0x00140, 74, wake_up_mountain, "Archive S.Hornet [Identity/Escom]" }, \
|
||||
{ 0x00146, 72, wake_up_mountain, "Archive 31250Q [Escom]" }, \
|
||||
{ 0x0014a, 100, wake_up_mountain, "Archive XL9250i [Conner/Escom]" }, \
|
||||
{ 0x0014c, 98, wake_up_mountain, "Conner C250MQT" }, \
|
||||
{ 0x0014e, 80, wake_up_mountain, "Conner C250MQ" }, \
|
||||
{ 0x00150, 80, wake_up_mountain, "Conner TSM420R/TST800R" }, \
|
||||
{ 0x00152, 80, wake_up_mountain, "Conner TSM850R" }, \
|
||||
{ 0x00156, 80, wake_up_mountain, "Conner TSM850R/1700R/TST3200R" }, \
|
||||
{ 0x00180, 0, wake_up_mountain, "Summit SE 150" }, \
|
||||
{ 0x00181, 85, wake_up_mountain, "Summit SE 250, Mountain FS8000" }, \
|
||||
{ 0x001c1, 82, no_wake_up, "Wangtek 3040F" }, \
|
||||
{ 0x001c8, 64, no_wake_up, "Wangtek 3080F" }, \
|
||||
{ 0x001c8, 64, wake_up_colorado, "Wangtek 3080F" }, \
|
||||
{ 0x001ca, 67, no_wake_up, "Wangtek 3080F (new)" }, \
|
||||
{ 0x001cc, 77, wake_up_colorado, "Wangtek 3200 / Teac 700" }, \
|
||||
{ 0x001cd, 75, wake_up_colorado, "Reveal TB1400" }, \
|
||||
{ 0x00380, 85, wake_up_colorado, "Exabyte Eagle-96" }, \
|
||||
{ 0x00381, 85, wake_up_colorado, "Exabyte Eagle TR-3" }, \
|
||||
{ 0x00382, 85, wake_up_colorado, "Exabyte Eagle TR-3" }, \
|
||||
{ 0x003ce, 77, wake_up_colorado, "Teac 800" }, \
|
||||
{ 0x003cf, 0, wake_up_colorado, "Teac FT3010TR" }, \
|
||||
{ 0x08880, 64, no_wake_up, "Iomega 250, Ditto 800" }, \
|
||||
{ 0x08880, 64, wake_up_colorado, "Iomega 250, Ditto 800" }, \
|
||||
{ 0x08880, 64, wake_up_insight, "Iomega 250, Ditto 800" }, \
|
||||
{ 0x08881, 80, wake_up_colorado, "Iomega 700" }, \
|
||||
{ 0x08882, 80, wake_up_colorado, "Iomega 3200" }, \
|
||||
{ 0x08883, 80, wake_up_colorado, "Iomega DITTO 2GB" }, \
|
||||
{ 0x00021, 70, no_wake_up, "AIWA CT-803" }, \
|
||||
{ 0x004c0, 80, no_wake_up, "AIWA TD-S1600" }, \
|
||||
{ 0x00021, 0, wake_up_mountain, "COREtape QIC80" }, \
|
||||
{ 0x00441, 0, wake_up_mountain, "ComByte DoublePlay" }, \
|
||||
{ 0x00481, 127, wake_up_mountain, "PERTEC MyTape 800" }, \
|
||||
{ 0x00483, 130, wake_up_mountain, "PERTEC MyTape 3200" }, \
|
||||
{ UNKNOWN_VENDOR, 0, no_wake_up, "unknown" } \
|
||||
}
|
||||
|
||||
#define QIC117_MAKE_CODES { \
|
||||
{ 0, "Unassigned" }, \
|
||||
{ 1, "Alloy Computer Products" }, \
|
||||
{ 2, "3M" }, \
|
||||
{ 3, "Tandberg Data" }, \
|
||||
{ 4, "Colorado" }, \
|
||||
{ 5, "Archive/Conner" }, \
|
||||
{ 6, "Mountain/Summit Memory Systems" }, \
|
||||
{ 7, "Wangtek/Rexon/Tecmar" }, \
|
||||
{ 8, "Sony" }, \
|
||||
{ 9, "Cipher Data Products" }, \
|
||||
{ 10, "Irwin Magnetic Systems" }, \
|
||||
{ 11, "Braemar" }, \
|
||||
{ 12, "Verbatim" }, \
|
||||
{ 13, "Core International" }, \
|
||||
{ 14, "Exabyte" }, \
|
||||
{ 15, "Teac" }, \
|
||||
{ 16, "Gigatek" }, \
|
||||
{ 17, "ComByte" }, \
|
||||
{ 18, "PERTEC Memories" }, \
|
||||
{ 19, "Aiwa" }, \
|
||||
{ 71, "Colorado" }, \
|
||||
{ 546, "Iomega Inc" }, \
|
||||
}
|
||||
|
||||
#endif /* _FTAPE_VENDORS_H */
|
||||
@@ -1,201 +0,0 @@
|
||||
#ifndef _FTAPE_H
|
||||
#define _FTAPE_H
|
||||
|
||||
/*
|
||||
* Copyright (C) 1994-1996 Bas Laarhoven,
|
||||
* (C) 1996-1997 Claus-Justus Heine.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*
|
||||
* $Source: /homes/cvs/ftape-stacked/include/linux/ftape.h,v $
|
||||
* $Revision: 1.17.6.4 $
|
||||
* $Date: 1997/11/25 01:52:54 $
|
||||
*
|
||||
* This file contains global definitions, typedefs and macro's
|
||||
* for the QIC-40/80/3010/3020 floppy-tape driver for Linux.
|
||||
*/
|
||||
|
||||
#define FTAPE_VERSION "ftape v3.04d 25/11/97"
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/mm.h>
|
||||
#endif
|
||||
#include <linux/types.h>
|
||||
#include <linux/mtio.h>
|
||||
|
||||
#define FT_SECTOR(x) (x+1) /* sector offset into real sector */
|
||||
#define FT_SECTOR_SIZE 1024
|
||||
#define FT_SECTORS_PER_SEGMENT 32
|
||||
#define FT_ECC_SECTORS 3
|
||||
#define FT_SEGMENT_SIZE ((FT_SECTORS_PER_SEGMENT - FT_ECC_SECTORS) * FT_SECTOR_SIZE)
|
||||
#define FT_BUFF_SIZE (FT_SECTORS_PER_SEGMENT * FT_SECTOR_SIZE)
|
||||
|
||||
/*
|
||||
* bits of the minor device number that define drive selection
|
||||
* methods. Could be used one day to access multiple tape
|
||||
* drives on the same controller.
|
||||
*/
|
||||
#define FTAPE_SEL_A 0
|
||||
#define FTAPE_SEL_B 1
|
||||
#define FTAPE_SEL_C 2
|
||||
#define FTAPE_SEL_D 3
|
||||
#define FTAPE_SEL_MASK 3
|
||||
#define FTAPE_SEL(unit) ((unit) & FTAPE_SEL_MASK)
|
||||
#define FTAPE_NO_REWIND 4 /* mask for minor nr */
|
||||
|
||||
/* the following two may be reported when MTIOCGET is requested ... */
|
||||
typedef union {
|
||||
struct {
|
||||
__u8 error;
|
||||
__u8 command;
|
||||
} error;
|
||||
long space;
|
||||
} ft_drive_error;
|
||||
typedef union {
|
||||
struct {
|
||||
__u8 drive_status;
|
||||
__u8 drive_config;
|
||||
__u8 tape_status;
|
||||
} status;
|
||||
long space;
|
||||
} ft_drive_status;
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#define FT_RQM_DELAY 12
|
||||
#define FT_MILLISECOND 1
|
||||
#define FT_SECOND 1000
|
||||
#define FT_FOREVER -1
|
||||
#ifndef HZ
|
||||
#error "HZ undefined."
|
||||
#endif
|
||||
#define FT_USPT (1000000/HZ) /* microseconds per tick */
|
||||
|
||||
/* This defines the number of retries that the driver will allow
|
||||
* before giving up (and letting a higher level handle the error).
|
||||
*/
|
||||
#ifdef TESTING
|
||||
#define FT_SOFT_RETRIES 1 /* number of low level retries */
|
||||
#define FT_RETRIES_ON_ECC_ERROR 3 /* ecc error when correcting segment */
|
||||
#else
|
||||
#define FT_SOFT_RETRIES 6 /* number of low level retries (triple) */
|
||||
#define FT_RETRIES_ON_ECC_ERROR 3 /* ecc error when correcting segment */
|
||||
#endif
|
||||
|
||||
#ifndef THE_FTAPE_MAINTAINER
|
||||
#define THE_FTAPE_MAINTAINER "the ftape maintainer"
|
||||
#endif
|
||||
|
||||
/* Initialize missing configuration parameters.
|
||||
*/
|
||||
#ifndef CONFIG_FT_NR_BUFFERS
|
||||
# define CONFIG_FT_NR_BUFFERS 3
|
||||
#endif
|
||||
#ifndef CONFIG_FT_FDC_THR
|
||||
# define CONFIG_FT_FDC_THR 8
|
||||
#endif
|
||||
#ifndef CONFIG_FT_FDC_MAX_RATE
|
||||
# define CONFIG_FT_FDC_MAX_RATE 2000
|
||||
#endif
|
||||
#ifndef CONFIG_FT_FDC_BASE
|
||||
# define CONFIG_FT_FDC_BASE 0
|
||||
#endif
|
||||
#ifndef CONFIG_FT_FDC_IRQ
|
||||
# define CONFIG_FT_FDC_IRQ 0
|
||||
#endif
|
||||
#ifndef CONFIG_FT_FDC_DMA
|
||||
# define CONFIG_FT_FDC_DMA 0
|
||||
#endif
|
||||
|
||||
/* Turn some booleans into numbers.
|
||||
*/
|
||||
#ifdef CONFIG_FT_PROBE_FC10
|
||||
# undef CONFIG_FT_PROBE_FC10
|
||||
# define CONFIG_FT_PROBE_FC10 1
|
||||
#else
|
||||
# define CONFIG_FT_PROBE_FC10 0
|
||||
#endif
|
||||
#ifdef CONFIG_FT_MACH2
|
||||
# undef CONFIG_FT_MACH2
|
||||
# define CONFIG_FT_MACH2 1
|
||||
#else
|
||||
# define CONFIG_FT_MACH2 0
|
||||
#endif
|
||||
|
||||
/* Insert default settings
|
||||
*/
|
||||
#if CONFIG_FT_PROBE_FC10 == 1
|
||||
# if CONFIG_FT_FDC_BASE == 0
|
||||
# undef CONFIG_FT_FDC_BASE
|
||||
# define CONFIG_FT_FDC_BASE 0x180
|
||||
# endif
|
||||
# if CONFIG_FT_FDC_IRQ == 0
|
||||
# undef CONFIG_FT_FDC_IRQ
|
||||
# define CONFIG_FT_FDC_IRQ 9
|
||||
# endif
|
||||
# if CONFIG_FT_FDC_DMA == 0
|
||||
# undef CONFIG_FT_FDC_DMA
|
||||
# define CONFIG_FT_FDC_DMA 3
|
||||
# endif
|
||||
#elif CONFIG_FT_MACH2 == 1 /* CONFIG_FT_PROBE_FC10 == 1 */
|
||||
# if CONFIG_FT_FDC_BASE == 0
|
||||
# undef CONFIG_FT_FDC_BASE
|
||||
# define CONFIG_FT_FDC_BASE 0x1E0
|
||||
# endif
|
||||
# if CONFIG_FT_FDC_IRQ == 0
|
||||
# undef CONFIG_FT_FDC_IRQ
|
||||
# define CONFIG_FT_FDC_IRQ 6
|
||||
# endif
|
||||
# if CONFIG_FT_FDC_DMA == 0
|
||||
# undef CONFIG_FT_FDC_DMA
|
||||
# define CONFIG_FT_FDC_DMA 2
|
||||
# endif
|
||||
#elif defined(CONFIG_FT_ALT_FDC) /* CONFIG_FT_MACH2 */
|
||||
# if CONFIG_FT_FDC_BASE == 0
|
||||
# undef CONFIG_FT_FDC_BASE
|
||||
# define CONFIG_FT_FDC_BASE 0x370
|
||||
# endif
|
||||
# if CONFIG_FT_FDC_IRQ == 0
|
||||
# undef CONFIG_FT_FDC_IRQ
|
||||
# define CONFIG_FT_FDC_IRQ 6
|
||||
# endif
|
||||
# if CONFIG_FT_FDC_DMA == 0
|
||||
# undef CONFIG_FT_FDC_DMA
|
||||
# define CONFIG_FT_FDC_DMA 2
|
||||
# endif
|
||||
#else /* CONFIG_FT_ALT_FDC */
|
||||
# if CONFIG_FT_FDC_BASE == 0
|
||||
# undef CONFIG_FT_FDC_BASE
|
||||
# define CONFIG_FT_FDC_BASE 0x3f0
|
||||
# endif
|
||||
# if CONFIG_FT_FDC_IRQ == 0
|
||||
# undef CONFIG_FT_FDC_IRQ
|
||||
# define CONFIG_FT_FDC_IRQ 6
|
||||
# endif
|
||||
# if CONFIG_FT_FDC_DMA == 0
|
||||
# undef CONFIG_FT_FDC_DMA
|
||||
# define CONFIG_FT_FDC_DMA 2
|
||||
# endif
|
||||
#endif /* standard FDC */
|
||||
|
||||
/* some useful macro's
|
||||
*/
|
||||
#define NR_ITEMS(x) (int)(sizeof(x)/ sizeof(*x))
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif
|
||||
@@ -1,87 +0,0 @@
|
||||
#ifndef _ZFTAPE_H
|
||||
#define _ZFTAPE_H
|
||||
|
||||
/*
|
||||
* Copyright (C) 1996, 1997 Claus-Justus Heine.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*
|
||||
* $Source: /homes/cvs/ftape-stacked/include/linux/zftape.h,v $
|
||||
* $Revision: 1.12 $
|
||||
* $Date: 1997/10/21 11:02:37 $
|
||||
*
|
||||
* Special ioctl and other global info for the zftape VFS
|
||||
* interface for the QIC-40/80/3010/3020 floppy-tape driver for
|
||||
* Linux.
|
||||
*/
|
||||
|
||||
#define ZFTAPE_VERSION "zftape for " FTAPE_VERSION
|
||||
|
||||
#include <linux/ftape.h>
|
||||
|
||||
#define ZFTAPE_LABEL "Ftape - The Linux Floppy Tape Project!"
|
||||
|
||||
/* Bits of the minor device number that control the operation mode */
|
||||
#define ZFT_Q80_MODE (1 << 3)
|
||||
#define ZFT_ZIP_MODE (1 << 4)
|
||||
#define ZFT_RAW_MODE (1 << 5)
|
||||
#define ZFT_MINOR_OP_MASK (ZFT_Q80_MODE | \
|
||||
ZFT_ZIP_MODE | \
|
||||
ZFT_RAW_MODE)
|
||||
#define ZFT_MINOR_MASK (FTAPE_SEL_MASK | \
|
||||
ZFT_MINOR_OP_MASK | \
|
||||
FTAPE_NO_REWIND)
|
||||
|
||||
#ifdef ZFT_OBSOLETE
|
||||
struct mtblksz {
|
||||
unsigned int mt_blksz;
|
||||
};
|
||||
#define MTIOC_ZFTAPE_GETBLKSZ _IOR('m', 104, struct mtblksz)
|
||||
#endif
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
extern int zft_init(void);
|
||||
|
||||
static inline __s64 zft_div_blksz(__s64 value, __u32 blk_sz)
|
||||
{
|
||||
if (blk_sz == 1) {
|
||||
return value;
|
||||
} else {
|
||||
return (__s64)(((__u32)(value >> 10) + (blk_sz >> 10) - 1)
|
||||
/ (blk_sz >> 10));
|
||||
}
|
||||
}
|
||||
|
||||
static inline __s64 zft_mul_blksz(__s64 value, __u32 blk_sz)
|
||||
{
|
||||
if (blk_sz == 1) {
|
||||
return value;
|
||||
} else {
|
||||
/* if blk_sz != 1, then it is a multiple of 1024. In
|
||||
* this case, `value' will also fit into 32 bits.
|
||||
*
|
||||
* Actually, this limits the capacity to 42
|
||||
* bits. This is (2^32)*1024, roughly a thousand
|
||||
* times 2GB, or 3 Terabytes. Hopefully this is enough
|
||||
*/
|
||||
return(__s64)(((__u32)(value)*(blk_sz>>10))<<10);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user