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:
Jeff Garzik
2006-12-03 22:22:41 -05:00
parent 2b5f6dcce5
commit d916faace3
74 changed files with 0 additions and 20278 deletions
-4
View File
@@ -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
-122
View File
@@ -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 */
-137
View File
@@ -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 */
-201
View File
@@ -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
-87
View File
@@ -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