summaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/affs_fs.h88
-rw-r--r--include/linux/affs_fs_i.h36
-rw-r--r--include/linux/affs_fs_sb.h10
-rw-r--r--include/linux/affs_hardblocks.h84
-rw-r--r--include/linux/amigaffs.h166
-rw-r--r--include/linux/auto_fs.h151
-rw-r--r--include/linux/console.h27
-rw-r--r--include/linux/cyclades.h374
-rw-r--r--include/linux/digi1.h100
-rw-r--r--include/linux/digiFep1.h136
-rw-r--r--include/linux/digiPCI.h42
-rw-r--r--include/linux/elf.h115
-rw-r--r--include/linux/epca.h170
-rw-r--r--include/linux/epcaconfig.h8
-rw-r--r--include/linux/ext2_fs.h23
-rw-r--r--include/linux/ext2_fs_sb.h3
-rw-r--r--include/linux/fb.h2
-rw-r--r--include/linux/file.h25
-rw-r--r--include/linux/fs.h57
-rw-r--r--include/linux/in6.h4
-rw-r--r--include/linux/inet.h4
-rw-r--r--include/linux/keyboard.h6
-rw-r--r--include/linux/locks.h2
-rw-r--r--include/linux/lp_m68k.h11
-rw-r--r--include/linux/major.h1
-rw-r--r--include/linux/malloc.h8
-rw-r--r--include/linux/mm.h60
-rw-r--r--include/linux/pci.h7
-rw-r--r--include/linux/proc_fs.h2
-rw-r--r--include/linux/sched.h160
-rw-r--r--include/linux/serial.h3
-rw-r--r--include/linux/skbuff.h8
-rw-r--r--include/linux/slab.h41
-rw-r--r--include/linux/smp.h1
-rw-r--r--include/linux/socket.h13
-rw-r--r--include/linux/sunrpc/clnt.h2
-rw-r--r--include/linux/sysctl.h10
-rw-r--r--include/linux/tqueue.h2
-rw-r--r--include/linux/tty.h7
-rw-r--r--include/linux/zorro.h642
40 files changed, 1413 insertions, 1198 deletions
diff --git a/include/linux/affs_fs.h b/include/linux/affs_fs.h
index 0067552fc..fc7c46dc8 100644
--- a/include/linux/affs_fs.h
+++ b/include/linux/affs_fs.h
@@ -22,9 +22,9 @@
struct DateStamp
{
- __u32 ds_Days;
- __u32 ds_Minute;
- __u32 ds_Tick;
+ u32 ds_Days;
+ u32 ds_Minute;
+ u32 ds_Tick;
};
@@ -32,66 +32,58 @@ struct DateStamp
/* amigaffs.c */
-extern int affs_get_key_entry(int bsize, void *data, int entry_pos);
-extern int affs_find_next_hash_entry(int bsize, void *dir_data, int *hash_pos);
-extern int affs_get_file_name(int bsize, void *fh_data, char **name);
-extern unsigned int affs_checksum_block(int bsize, void *data, int *ptype, int *stype);
-extern void affs_fix_checksum(int bsize, void *data, int cspos);
-extern void secs_to_datestamp(int secs, struct DateStamp *ds);
-extern int prot_to_mode(unsigned int prot);
-extern unsigned int mode_to_prot(int mode);
-extern int affs_fix_hash_pred(struct inode *startino, int startoffset,
- int key, int newkey);
-extern int affs_fix_link_pred(struct inode *startino, int key, int newkey);
+extern int affs_get_key_entry(int bsize, void *data, int entry_pos);
+extern int affs_get_file_name(int bsize, void *fh_data, char **name);
+extern u32 affs_checksum_block(int bsize, void *data, s32 *ptype, s32 *stype);
+extern void affs_fix_checksum(int bsize, void *data, int cspos);
+extern void secs_to_datestamp(time_t secs, struct DateStamp *ds);
+extern int prot_to_mode(unsigned int prot);
+extern u32 mode_to_prot(int mode);
+extern int affs_fix_hash_pred(struct inode *startino, int startoffset,
+ s32 key, s32 newkey);
+extern int affs_fix_link_pred(struct inode *startino, s32 key, s32 newkey);
+extern void affs_error(struct super_block *sb, const char *function, const char *fmt, ...);
+extern void affs_warning(struct super_block *sb, const char *function, const char *fmt, ...);
/* bitmap. c */
-extern int affs_count_free_blocks(struct super_block *s);
-extern int affs_count_free_bits(int blocksize, const char *data);
-extern void affs_free_block(struct super_block *sb, int block);
-extern int affs_new_header(struct inode *inode);
-extern int affs_new_data(struct inode *inode);
-extern void affs_make_zones(struct super_block *sb);
+extern int affs_count_free_blocks(struct super_block *s);
+extern int affs_count_free_bits(int blocksize, const char *data);
+extern void affs_free_block(struct super_block *sb, s32 block);
+extern s32 affs_new_header(struct inode *inode);
+extern s32 affs_new_data(struct inode *inode);
+extern void affs_make_zones(struct super_block *sb);
/* namei.c */
-extern int affs_hash_name(const char *name, int len, int intl, int hashsize);
-extern int affs_lookup(struct inode *dir,const char *name, int len,
- struct inode **result);
-extern int affs_unlink(struct inode *dir, const char *name, int len);
-extern int affs_create(struct inode *dir, const char *name, int len, int mode,
- struct inode **result);
-extern int affs_mkdir(struct inode *dir, const char *name, int len, int mode);
-extern int affs_rmdir(struct inode *dir, const char *name, int len);
-extern int affs_link(struct inode *oldinode, struct inode *dir,
- const char *name, int len);
-extern int affs_symlink(struct inode *dir, const char *name, int len,
- const char *symname);
-extern int affs_fixup(struct buffer_head *bh, struct inode *inode);
-extern int affs_rename(struct inode *old_dir, const char *old_name, int old_len,
- struct inode *new_dir, const char *new_name, int new_len,
- int must_be_dir);
+extern int affs_hash_name(const char *name, int len, int intl, int hashsize);
+extern int affs_lookup(struct inode *dir,const char *name, int len,
+ struct inode **result);
+extern int affs_unlink(struct inode *dir, const char *name, int len);
+extern int affs_create(struct inode *dir, const char *name, int len, int mode,
+ struct inode **result);
+extern int affs_mkdir(struct inode *dir, const char *name, int len, int mode);
+extern int affs_rmdir(struct inode *dir, const char *name, int len);
+extern int affs_link(struct inode *oldinode, struct inode *dir,
+ const char *name, int len);
+extern int affs_symlink(struct inode *dir, const char *name, int len,
+ const char *symname);
+extern int affs_rename(struct inode *old_dir, const char *old_name, int old_len,
+ struct inode *new_dir, const char *new_name, int new_len,
+ int must_be_dir);
/* inode.c */
extern struct buffer_head *affs_bread(kdev_t dev, int block, int size);
extern void affs_brelse(struct buffer_head *buf);
-extern void affs_put_super(struct super_block *);
-extern int affs_parent_ino(struct inode *dir);
-extern struct super_block *affs_read_super(struct super_block *,void *, int);
-extern void affs_statfs(struct super_block *, struct statfs *, int bufsiz);
-extern void affs_read_inode(struct inode *);
-extern void affs_write_inode(struct inode *);
-extern int affs_notify_change(struct inode *inode, struct iattr *attr);
-extern void affs_put_inode(struct inode *);
+extern unsigned long affs_parent_ino(struct inode *dir);
extern struct inode *affs_new_inode(const struct inode *dir);
-extern int affs_add_entry(struct inode *dir, struct inode *link, struct inode *inode,
- const char *name, int len, int type);
+extern int affs_add_entry(struct inode *dir, struct inode *link,
+ struct inode *inode, const char *name,
+ int len, s32 type);
/* file.c */
-extern int affs_bmap(struct inode *inode, int block);
-extern struct buffer_head *affs_getblock(struct inode *inode, int block);
extern void affs_truncate(struct inode *);
extern void affs_truncate_ofs(struct inode *);
diff --git a/include/linux/affs_fs_i.h b/include/linux/affs_fs_i.h
index 40b823909..beeabb0de 100644
--- a/include/linux/affs_fs_i.h
+++ b/include/linux/affs_fs_i.h
@@ -9,19 +9,19 @@
struct key_cache {
struct timeval kc_lru_time; /* Last time this cache was used */
- int kc_first; /* First cached key */
- int kc_last; /* Last cached key */
- int kc_this_key; /* Key of extension block this data block keys are from */
+ s32 kc_first; /* First cached key */
+ s32 kc_last; /* Last cached key */
+ s32 kc_this_key; /* Key of extension block this data block keys are from */
int kc_this_seq; /* Sequence number of this extension block */
- int kc_next_key; /* Key of next extension block */
- int kc_keys[AFFS_KCSIZE]; /* Key cache */
+ s32 kc_next_key; /* Key of next extension block */
+ s32 kc_keys[AFFS_KCSIZE]; /* Key cache */
};
#define EC_SIZE (PAGE_SIZE - 4 * sizeof(struct key_cache) - 4) / 4
struct ext_cache {
struct key_cache kc[4]; /* The 4 key caches */
- __s32 ec[EC_SIZE]; /* Keys of assorted extension blocks */
+ s32 ec[EC_SIZE]; /* Keys of assorted extension blocks */
int max_ext; /* Index of last known extension block */
};
@@ -29,18 +29,18 @@ struct ext_cache {
* affs fs inode data in memory
*/
struct affs_inode_info {
- __u32 i_protect; /* unused attribute bits */
- __s32 i_parent; /* parent ino */
- __s32 i_original; /* if != 0, this is the key of the original */
- __s32 i_data[AFFS_MAX_PREALLOC]; /* preallocated blocks */
- struct ext_cache *i_ec; /* Cache gets allocated dynamically */
- int i_cache_users; /* Cache cannot be freed while > 0 */
- int i_lastblock; /* last allocated block */
- short i_pa_cnt; /* number of preallocated blocks */
- short i_pa_next; /* Index of next block in i_data[] */
- short i_pa_last; /* Index of next free slot in i_data[] */
- short i_zone; /* write zone */
- unsigned char i_hlink; /* This is a fake */
+ u32 i_protect; /* unused attribute bits */
+ s32 i_parent; /* parent ino */
+ s32 i_original; /* if != 0, this is the key of the original */
+ s32 i_data[AFFS_MAX_PREALLOC]; /* preallocated blocks */
+ struct ext_cache *i_ec; /* Cache gets allocated dynamically */
+ int i_cache_users; /* Cache cannot be freed while > 0 */
+ int i_lastblock; /* last allocated block */
+ short i_pa_cnt; /* number of preallocated blocks */
+ short i_pa_next; /* Index of next block in i_data[] */
+ short i_pa_last; /* Index of next free slot in i_data[] */
+ short i_zone; /* write zone */
+ unsigned char i_hlink; /* This is a fake */
unsigned char i_pad;
};
diff --git a/include/linux/affs_fs_sb.h b/include/linux/affs_fs_sb.h
index 0ff862d13..75af71dba 100644
--- a/include/linux/affs_fs_sb.h
+++ b/include/linux/affs_fs_sb.h
@@ -15,8 +15,8 @@
struct affs_bm_info {
struct buffer_head *bm_bh; /* Buffer head if loaded (bm_count > 0) */
- int bm_firstblk; /* Block number of first bit in this map */
- int bm_key; /* Disk block number */
+ s32 bm_firstblk; /* Block number of first bit in this map */
+ s32 bm_key; /* Disk block number */
int bm_count; /* Usage counter */
};
@@ -37,11 +37,11 @@ struct affs_zone {
struct affs_sb_info {
int s_partition_size; /* Partition size in blocks. */
- int s_root_block; /* FFS root block number. */
+ s32 s_root_block; /* FFS root block number. */
int s_hashsize; /* Size of hash table. */
unsigned long s_flags; /* See below. */
- short s_uid; /* uid to override */
- short s_gid; /* gid to override */
+ s16 s_uid; /* uid to override */
+ s16 s_gid; /* gid to override */
umode_t s_mode; /* mode to override */
int s_reserved; /* Number of reserved blocks. */
struct buffer_head *s_root_bh; /* Cached root block. */
diff --git a/include/linux/affs_hardblocks.h b/include/linux/affs_hardblocks.h
index 33315488d..ae893e022 100644
--- a/include/linux/affs_hardblocks.h
+++ b/include/linux/affs_hardblocks.h
@@ -4,59 +4,59 @@
/* Just the needed definitions for the RDB of an Amiga HD. */
struct RigidDiskBlock {
- __u32 rdb_ID;
- __u32 rdb_SummedLongs;
- __s32 rdb_ChkSum;
- __u32 rdb_HostID;
- __u32 rdb_BlockBytes;
- __u32 rdb_Flags;
- __u32 rdb_BadBlockList;
- __u32 rdb_PartitionList;
- __u32 rdb_FileSysHeaderList;
- __u32 rdb_DriveInit;
- __u32 rdb_Reserved1[6];
- __u32 rdb_Cylinders;
- __u32 rdb_Sectors;
- __u32 rdb_Heads;
- __u32 rdb_Interleave;
- __u32 rdb_Park;
- __u32 rdb_Reserved2[3];
- __u32 rdb_WritePreComp;
- __u32 rdb_ReducedWrite;
- __u32 rdb_StepRate;
- __u32 rdb_Reserved3[5];
- __u32 rdb_RDBBlocksLo;
- __u32 rdb_RDBBlocksHi;
- __u32 rdb_LoCylinder;
- __u32 rdb_HiCylinder;
- __u32 rdb_CylBlocks;
- __u32 rdb_AutoParkSeconds;
- __u32 rdb_HighRDSKBlock;
- __u32 rdb_Reserved4;
+ u32 rdb_ID;
+ u32 rdb_SummedLongs;
+ s32 rdb_ChkSum;
+ u32 rdb_HostID;
+ u32 rdb_BlockBytes;
+ u32 rdb_Flags;
+ u32 rdb_BadBlockList;
+ u32 rdb_PartitionList;
+ u32 rdb_FileSysHeaderList;
+ u32 rdb_DriveInit;
+ u32 rdb_Reserved1[6];
+ u32 rdb_Cylinders;
+ u32 rdb_Sectors;
+ u32 rdb_Heads;
+ u32 rdb_Interleave;
+ u32 rdb_Park;
+ u32 rdb_Reserved2[3];
+ u32 rdb_WritePreComp;
+ u32 rdb_ReducedWrite;
+ u32 rdb_StepRate;
+ u32 rdb_Reserved3[5];
+ u32 rdb_RDBBlocksLo;
+ u32 rdb_RDBBlocksHi;
+ u32 rdb_LoCylinder;
+ u32 rdb_HiCylinder;
+ u32 rdb_CylBlocks;
+ u32 rdb_AutoParkSeconds;
+ u32 rdb_HighRDSKBlock;
+ u32 rdb_Reserved4;
char rdb_DiskVendor[8];
char rdb_DiskProduct[16];
char rdb_DiskRevision[4];
char rdb_ControllerVendor[8];
char rdb_ControllerProduct[16];
char rdb_ControllerRevision[4];
- __u32 rdb_Reserved5[10];
+ u32 rdb_Reserved5[10];
};
#define IDNAME_RIGIDDISK 0x5244534B /* "RDSK" */
struct PartitionBlock {
- __u32 pb_ID;
- __u32 pb_SummedLongs;
- __s32 pb_ChkSum;
- __u32 pb_HostID;
- __u32 pb_Next;
- __u32 pb_Flags;
- __u32 pb_Reserved1[2];
- __u32 pb_DevFlags;
- __u8 pb_DriveName[32];
- __u32 pb_Reserved2[15];
- __u32 pb_Environment[17];
- __u32 pb_EReserved[15];
+ u32 pb_ID;
+ u32 pb_SummedLongs;
+ s32 pb_ChkSum;
+ u32 pb_HostID;
+ u32 pb_Next;
+ u32 pb_Flags;
+ u32 pb_Reserved1[2];
+ u32 pb_DevFlags;
+ u8 pb_DriveName[32];
+ u32 pb_Reserved2[15];
+ u32 pb_Environment[17];
+ u32 pb_EReserved[15];
};
#define IDNAME_PARTITION 0x50415254 /* "PART" */
diff --git a/include/linux/amigaffs.h b/include/linux/amigaffs.h
index 679f333e5..8e39a6fe2 100644
--- a/include/linux/amigaffs.h
+++ b/include/linux/amigaffs.h
@@ -56,131 +56,131 @@
struct root_front
{
- __s32 primary_type;
- __s32 spare1[2];
- __s32 hash_size;
- __s32 spare2;
- __u32 checksum;
- __s32 hashtable[0];
+ s32 primary_type;
+ s32 spare1[2];
+ s32 hash_size;
+ s32 spare2;
+ u32 checksum;
+ s32 hashtable[0];
};
struct root_end
{
- __s32 bm_flag;
- __s32 bm_keys[25];
- __s32 bm_extend;
+ s32 bm_flag;
+ s32 bm_keys[25];
+ s32 bm_extend;
struct DateStamp dir_altered;
- __u8 disk_name[40];
+ u8 disk_name[40];
struct DateStamp disk_altered;
struct DateStamp disk_made;
- __s32 spare1[3];
- __s32 secondary_type;
+ s32 spare1[3];
+ s32 secondary_type;
};
struct dir_front
{
- __s32 primary_type;
- __s32 own_key;
- __s32 spare1[3];
- __u32 checksum;
- __s32 hashtable[0];
+ s32 primary_type;
+ s32 own_key;
+ s32 spare1[3];
+ u32 checksum;
+ s32 hashtable[0];
};
struct dir_end
{
- __s32 spare1;
- __s16 owner_uid;
- __s16 owner_gid;
- __u32 protect;
- __s32 spare2;
- __u8 comment[92];
+ s32 spare1;
+ s16 owner_uid;
+ s16 owner_gid;
+ u32 protect;
+ s32 spare2;
+ u8 comment[92];
struct DateStamp created;
- __u8 dir_name[32];
- __s32 spare3[2];
- __s32 link_chain;
- __s32 spare4[5];
- __s32 hash_chain;
- __s32 parent;
- __s32 spare5;
- __s32 secondary_type;
+ u8 dir_name[32];
+ s32 spare3[2];
+ s32 link_chain;
+ s32 spare4[5];
+ s32 hash_chain;
+ s32 parent;
+ s32 spare5;
+ s32 secondary_type;
};
struct file_front
{
- __s32 primary_type;
- __s32 own_key;
- __s32 block_count;
- __s32 unknown1;
- __s32 first_data;
- __u32 checksum;
- __s32 blocks[0];
+ s32 primary_type;
+ s32 own_key;
+ s32 block_count;
+ s32 unknown1;
+ s32 first_data;
+ u32 checksum;
+ s32 blocks[0];
};
struct file_end
{
- __s32 spare1;
- __s16 owner_uid;
- __s16 owner_gid;
- __u32 protect;
- __s32 byte_size;
- __u8 comment[92];
+ s32 spare1;
+ s16 owner_uid;
+ s16 owner_gid;
+ u32 protect;
+ s32 byte_size;
+ u8 comment[92];
struct DateStamp created;
- __u8 file_name[32];
- __s32 spare2;
- __s32 original; /* not really in file_end */
- __s32 link_chain;
- __s32 spare3[5];
- __s32 hash_chain;
- __s32 parent;
- __s32 extension;
- __s32 secondary_type;
+ u8 file_name[32];
+ s32 spare2;
+ s32 original; /* not really in file_end */
+ s32 link_chain;
+ s32 spare3[5];
+ s32 hash_chain;
+ s32 parent;
+ s32 extension;
+ s32 secondary_type;
};
struct hlink_front
{
- __s32 primary_type;
- __s32 own_key;
- __s32 spare1[3];
- __u32 checksum;
+ s32 primary_type;
+ s32 own_key;
+ s32 spare1[3];
+ u32 checksum;
};
struct hlink_end
{
- __s32 spare1;
- __s16 owner_uid;
- __s16 owner_gid;
- __u32 protect;
- __u8 comment[92];
+ s32 spare1;
+ s16 owner_uid;
+ s16 owner_gid;
+ u32 protect;
+ u8 comment[92];
struct DateStamp created;
- __u8 link_name[32];
- __s32 spare2;
- __s32 original;
- __s32 link_chain;
- __s32 spare3[5];
- __s32 hash_chain;
- __s32 parent;
- __s32 spare4;
- __s32 secondary_type;
+ u8 link_name[32];
+ s32 spare2;
+ s32 original;
+ s32 link_chain;
+ s32 spare3[5];
+ s32 hash_chain;
+ s32 parent;
+ s32 spare4;
+ s32 secondary_type;
};
struct slink_front
{
- __s32 primary_type;
- __s32 own_key;
- __s32 spare1[3];
- __s32 checksum;
- __u8 symname[288]; /* depends on block size */
+ s32 primary_type;
+ s32 own_key;
+ s32 spare1[3];
+ s32 checksum;
+ u8 symname[288]; /* depends on block size */
};
struct data_front
{
- __s32 primary_type;
- __s32 header_key;
- __s32 sequence_number;
- __s32 data_size;
- __s32 next_data;
- __s32 checksum;
- __u8 data[488]; /* depends on block size */
+ s32 primary_type;
+ s32 header_key;
+ s32 sequence_number;
+ s32 data_size;
+ s32 next_data;
+ s32 checksum;
+ u8 data[488]; /* depends on block size */
};
/* Permission bits */
diff --git a/include/linux/auto_fs.h b/include/linux/auto_fs.h
index d32a6a253..2b25d2902 100644
--- a/include/linux/auto_fs.h
+++ b/include/linux/auto_fs.h
@@ -1,14 +1,14 @@
-/* -*- linux-c -*- --------------------------------------------------------- *
- *
+/* -*- linux-c -*- ------------------------------------------------------- *
+ *
* linux/include/linux/auto_fs.h
*
- * Copyright 1997 Transmeta Corporation -- All Rights Reserved
+ * Copyright 1997 Transmeta Corporation - All Rights Reserved
*
* This file is part of the Linux kernel and is made available under
* the terms of the GNU General Public License, version 2, or at your
* option, any later version, incorporated herein by reference.
*
- * ------------------------------------------------------------------------- */
+ * ----------------------------------------------------------------------- */
#ifndef _LINUX_AUTO_FS_H
@@ -20,11 +20,11 @@
#include <linux/ioctl.h>
#include <asm/types.h>
-#define AUTOFS_PROTO_VERSION 2
+#define AUTOFS_PROTO_VERSION 3
enum autofs_packet_type {
- autofs_ptype_missing, /* Missing entry (create wait queue) */
- /* ...need more in the future... */
+ autofs_ptype_missing, /* Missing entry (mount request) */
+ autofs_ptype_expire, /* Expire entry (umount request) */
};
struct autofs_packet_hdr {
@@ -39,139 +39,24 @@ struct autofs_packet_missing {
char name[NAME_MAX+1];
};
-#define AUTOFS_IOC_READY _IO(0x93,0x60)
-#define AUTOFS_IOC_FAIL _IO(0x93,0x61)
-#define AUTOFS_IOC_CATATONIC _IO(0x93,0x62)
-
-#ifdef __KERNEL__
-
-#include <linux/wait.h>
-#include <linux/sched.h>
-
-#if LINUX_VERSION_CODE < 0x20100
-
-#include <asm/segment.h>
-#define copy_to_user memcpy_tofs
-#define copy_from_user memcpy_fromfs
-
-#else
-
-#include <asm/uaccess.h>
-#define register_symtab(x) do { } while (0)
-
-#endif
-
-#ifndef DPRINTK
-#ifdef DEBUG
-#define DPRINTK(D) printk D;
-#else
-#define DPRINTK(D)
-#endif
-#endif
-
-#define AUTOFS_SUPER_MAGIC 0x0187
-
-/* Structures associated with the root directory hash */
-
-#define AUTOFS_HASH_SIZE 67
-
-typedef u32 autofs_hash_t; /* Type returned by autofs_hash() */
-
-struct autofs_dir_ent {
- autofs_hash_t hash;
- struct autofs_dir_ent *next;
- struct autofs_dir_ent **back;
- char *name;
- int len;
- ino_t ino;
- time_t expiry; /* Reserved for use in failed-lookup cache */
-};
-
-struct autofs_dirhash {
- struct autofs_dir_ent *h[AUTOFS_HASH_SIZE];
-};
-
-struct autofs_wait_queue {
- unsigned long wait_queue_token;
- struct wait_queue *queue;
- struct autofs_wait_queue *next;
- /* We use the following to see what we are waiting for */
- autofs_hash_t hash;
- int len;
- char *name;
- /* This is for status reporting upon return */
- int status;
- int wait_ctr;
-};
-
-struct autofs_symlink {
+struct autofs_packet_expire {
+ struct autofs_packet_hdr hdr;
int len;
- char *data;
- time_t mtime;
+ char name[NAME_MAX+1];
};
-#define AUTOFS_MAX_SYMLINKS 256
-
-#define AUTOFS_ROOT_INO 1
-#define AUTOFS_FIRST_SYMLINK 2
-#define AUTOFS_FIRST_DIR_INO (AUTOFS_FIRST_SYMLINK+AUTOFS_MAX_SYMLINKS)
+#define AUTOFS_IOC_READY _IO(0x93,0x60)
+#define AUTOFS_IOC_FAIL _IO(0x93,0x61)
+#define AUTOFS_IOC_CATATONIC _IO(0x93,0x62)
+#define AUTOFS_IOC_PROTOVER _IOR(0x93,0x63,int)
+#define AUTOFS_IOC_SETTIMEOUT _IOWR(0x93,0x64,unsigned long)
+#define AUTOFS_IOC_EXPIRE _IOR(0x93,0x65,struct autofs_packet_expire)
-#define AUTOFS_SYMLINK_BITMAP_LEN ((AUTOFS_MAX_SYMLINKS+31)/32)
-
-#ifndef END_OF_TIME
-#define END_OF_TIME ((time_t)((unsigned long)((time_t)(~0UL)) >> 1))
-#endif
-
-struct autofs_sb_info {
- struct file *pipe;
- pid_t oz_pgrp;
- int catatonic;
- ino_t next_dir_ino;
- struct autofs_wait_queue *queues; /* Wait queue pointer */
- struct autofs_dirhash dirhash; /* Root directory hash */
- struct autofs_symlink symlink[AUTOFS_MAX_SYMLINKS];
- u32 symlink_bitmap[AUTOFS_SYMLINK_BITMAP_LEN];
-};
-
-/* autofs_oz_mode(): do we see the man behind the curtain? */
-static inline int autofs_oz_mode(struct autofs_sb_info *sbi) {
- return sbi->catatonic || current->pgrp == sbi->oz_pgrp;
-}
+#ifdef __KERNEL__
/* Init function */
int init_autofs_fs(void);
-/* Hash operations */
-
-autofs_hash_t autofs_hash(const char *,int);
-void autofs_initialize_hash(struct autofs_dirhash *);
-struct autofs_dir_ent *autofs_hash_lookup(const struct autofs_dirhash *,autofs_hash_t,const char *,int);
-void autofs_hash_insert(struct autofs_dirhash *,struct autofs_dir_ent *);
-void autofs_hash_delete(struct autofs_dir_ent *);
-struct autofs_dir_ent *autofs_hash_enum(const struct autofs_dirhash *,off_t *);
-void autofs_hash_nuke(struct autofs_dirhash *);
-
-/* Operations structures */
-
-extern struct inode_operations autofs_root_inode_operations;
-extern struct inode_operations autofs_symlink_inode_operations;
-extern struct inode_operations autofs_dir_inode_operations;
-
-/* Initializing function */
-
-struct super_block *autofs_read_super(struct super_block *, void *,int);
-
-/* Queue management functions */
-
-int autofs_wait(struct autofs_sb_info *,autofs_hash_t,const char *,int);
-int autofs_wait_release(struct autofs_sb_info *,unsigned long,int);
-void autofs_catatonic_mode(struct autofs_sb_info *);
-
-#ifdef DEBUG
-void autofs_say(const char *name, int len);
-#else
-#define autofs_say(n,l)
-#endif
-
#endif /* __KERNEL__ */
+
#endif /* _LINUX_AUTO_FS_H */
diff --git a/include/linux/console.h b/include/linux/console.h
index 7589ce794..16f1754ec 100644
--- a/include/linux/console.h
+++ b/include/linux/console.h
@@ -27,19 +27,20 @@ struct vc_data;
/* DPC: 1994-04-13 !!! con_putcs is new entry !!! */
struct consw {
- unsigned long (*con_startup)(unsigned long, char **);
- void (*con_init)(struct vc_data *);
- int (*con_deinit)(struct vc_data *);
- int (*con_clear)(struct vc_data *, int, int, int, int);
- int (*con_putc)(struct vc_data *, int, int, int);
- int (*con_putcs)(struct vc_data *, const char *, int, int, int);
- int (*con_cursor)(struct vc_data *, int);
- int (*con_scroll)(struct vc_data *, int, int, int, int);
- int (*con_bmove)(struct vc_data *, int, int, int, int, int, int);
- int (*con_switch)(struct vc_data *);
- int (*con_blank)(int);
- int (*con_get_font)(struct vc_data *, int *, int *, char *);
- int (*con_set_font)(struct vc_data *, int, int, char *);
+ unsigned long (*con_startup)(unsigned long, const char **);
+ void (*con_init)(struct vc_data *);
+ int (*con_deinit)(struct vc_data *);
+ int (*con_clear)(struct vc_data *, int, int, int, int);
+ int (*con_putc)(struct vc_data *, int, int, int);
+ int (*con_putcs)(struct vc_data *, const char *, int, int, int);
+ int (*con_cursor)(struct vc_data *, int);
+ int (*con_scroll)(struct vc_data *, int, int, int, int);
+ int (*con_bmove)(struct vc_data *, int, int, int, int, int, int);
+ int (*con_switch)(struct vc_data *);
+ int (*con_blank)(int);
+ int (*con_get_font)(struct vc_data *, int *, int *, char *);
+ int (*con_set_font)(struct vc_data *, int, int, char *);
+ int (*con_set_palette)(struct vc_data *, unsigned char *);
};
extern struct consw *conswitchp;
diff --git a/include/linux/cyclades.h b/include/linux/cyclades.h
index efed32b4d..9386c17f0 100644
--- a/include/linux/cyclades.h
+++ b/include/linux/cyclades.h
@@ -1,4 +1,4 @@
-/*
+/* $Revision: 1.7 $$Date: 1997/03/26 10:30:00 $
* linux/include/linux/cyclades.h
*
* This file is maintained by Marcio Saito <marcio@cyclades.com> and
@@ -6,9 +6,18 @@
*
* This file contains the general definitions for the cyclades.c driver
*$Log: cyclades.h,v $
- * Revision 1.5 1995/11/13 21:13:31 bentson
- * changes suggested by Michael Chastain <mec@duracef.shout.net>
- * to support use of this file in non-kernel applications
+ *Revision 1.7 1997/03/26 10:30:00 daniel
+ *new entries at the end of cyclades_port struct to reallocate
+ *variables illegally allocated within card memory.
+ *
+ *Revision 1.6 1996/09/09 18:35:30 bentson
+ *fold in changes for Cyclom-Z -- including structures for
+ *communicating with board as well modest changes to original
+ *structures to support new features.
+ *
+ *Revision 1.5 1995/11/13 21:13:31 bentson
+ *changes suggested by Michael Chastain <mec@duracef.shout.net>
+ *to support use of this file in non-kernel applications
*
*
*/
@@ -35,14 +44,359 @@ struct cyclades_monitor {
#define CYGETDEFTIMEOUT 0x435908
#define CYSETDEFTIMEOUT 0x435909
+/*************** CYCLOM-Z ADDITIONS ***************/
+
+#define CZIOC ('M' << 8)
+#define CZ_NBOARDS (CZIOC|0xfa)
+#define CZ_BOOT_START (CZIOC|0xfb)
+#define CZ_BOOT_DATA (CZIOC|0xfc)
+#define CZ_BOOT_END (CZIOC|0xfd)
+#define CZ_TEST (CZIOC|0xfe)
+
+#define MAX_BOARD 4 /* Max number of boards */
+#define MAX_PORT 128 /* Max number of ports per board */
+#define MAX_DEV 256 /* Max number of ports total */
+
+#define CYZ_BOOT_NWORDS 0x100
+struct CYZ_BOOT_CTRL {
+ unsigned short nboard;
+ int status[MAX_BOARD];
+ int nchannel[MAX_BOARD];
+ int fw_rev[MAX_BOARD];
+ unsigned long offset;
+ unsigned long data[CYZ_BOOT_NWORDS];
+};
+
+
+#ifndef DP_WINDOW_SIZE
+/* #include "cyclomz.h" */
+/****************** ****************** *******************/
+/*
+ * The data types defined below are used in all ZFIRM interface
+ * data structures. They accomodate differences between HW
+ * architectures and compilers.
+ */
+
+typedef unsigned long uclong; /* 32 bits, unsigned */
+typedef unsigned short ucshort; /* 16 bits, unsigned */
+typedef unsigned char ucchar; /* 8 bits, unsigned */
+
+/*
+ * Memory Window Sizes
+ */
+
+#define DP_WINDOW_SIZE (0x00080000) /* window size 512 Kb */
+#define CTRL_WINDOW_SIZE (0x00000100) /* runtime regs 256 bytes */
+
+/*
+ * CUSTOM_REG - Cyclom-Z/PCI Custom Registers Set. The driver
+ * normally will access only interested on the fpga_id, fpga_version,
+ * start_cpu and stop_cpu.
+ */
+
+struct CUSTOM_REG {
+ uclong fpga_id; /* FPGA Identification Register */
+ uclong fpga_version; /* FPGA Version Number Register */
+ uclong cpu_start; /* CPU start Register (write) */
+ uclong cpu_stop; /* CPU stop Register (write) */
+ uclong misc_reg; /* Miscelaneous Register */
+ uclong idt_mode; /* IDT mode Register */
+ uclong uart_irq_status; /* UART IRQ status Register */
+ uclong clear_timer0_irq; /* Clear timer interrupt Register */
+ uclong clear_timer1_irq; /* Clear timer interrupt Register */
+ uclong clear_timer2_irq; /* Clear timer interrupt Register */
+ uclong test_register; /* Test Register */
+ uclong test_count; /* Test Count Register */
+ uclong timer_select; /* Timer select register */
+ uclong pr_uart_irq_status; /* Prioritized UART IRQ stat Reg */
+ uclong ram_wait_state; /* RAM wait-state Register */
+ uclong uart_wait_state; /* UART wait-state Register */
+ uclong timer_wait_state; /* timer wait-state Register */
+ uclong ack_wait_state; /* ACK wait State Register */
+};
+
+/*
+ * RUNTIME_9060 - PLX PCI9060ES local configuration and shared runtime
+ * registers. This structure can be used to access the 9060 registers
+ * (memory mapped).
+ */
+
+struct RUNTIME_9060 {
+ uclong loc_addr_range; /* 00h - Local Address Range */
+ uclong loc_addr_base; /* 04h - Local Address Base */
+ uclong loc_arbitr; /* 08h - Local Arbitration */
+ uclong endian_descr; /* 0Ch - Big/Little Endian Descriptor */
+ uclong loc_rom_range; /* 10h - Local ROM Range */
+ uclong loc_rom_base; /* 14h - Local ROM Base */
+ uclong loc_bus_descr; /* 18h - Local Bus descriptor */
+ uclong loc_range_mst; /* 1Ch - Local Range for Master to PCI */
+ uclong loc_base_mst; /* 20h - Local Base for Master PCI */
+ uclong loc_range_io; /* 24h - Local Range for Master IO */
+ uclong pci_base_mst; /* 28h - PCI Base for Master PCI */
+ uclong pci_conf_io; /* 2Ch - PCI configuration for Master IO */
+ uclong filler1; /* 30h */
+ uclong filler2; /* 34h */
+ uclong filler3; /* 38h */
+ uclong filler4; /* 3Ch */
+ uclong mail_box_0; /* 40h - Mail Box 0 */
+ uclong mail_box_1; /* 44h - Mail Box 1 */
+ uclong mail_box_2; /* 48h - Mail Box 2 */
+ uclong mail_box_3; /* 4Ch - Mail Box 3 */
+ uclong filler5; /* 50h */
+ uclong filler6; /* 54h */
+ uclong filler7; /* 58h */
+ uclong filler8; /* 5Ch */
+ uclong pci_doorbell; /* 60h - PCI to Local Doorbell */
+ uclong loc_doorbell; /* 64h - Local to PCI Doorbell */
+ uclong intr_ctrl_stat; /* 68h - Interrupt Control/Status */
+ uclong init_ctrl; /* 6Ch - EEPROM control, Init Control, etc */
+};
+
+/* Values for the Local Base Address re-map register */
+
+#define WIN_RAM 0x00000001L /* set the sliding window to RAM */
+#define WIN_CREG 0x14000001L /* set the window to custom Registers */
+
+/* Values timer select registers */
+
+#define TIMER_BY_1M 0x00 /* clock divided by 1M */
+#define TIMER_BY_256K 0x01 /* clock divided by 256k */
+#define TIMER_BY_128K 0x02 /* clock divided by 128k */
+#define TIMER_BY_32K 0x03 /* clock divided by 32k */
+
+/****************** ****************** *******************/
+#endif
+
+#ifndef ZFIRM_ID
+/* #include "zfwint.h" */
+/****************** ****************** *******************/
+/*
+ * This file contains the definitions for interfacing with the
+ * Cyclom-Z ZFIRM Firmware.
+ */
+
+/* General Constant definitions */
+
+#define MAX_CHAN 64 /* max number of channels per board */
+
+/* firmware id structure (set after boot) */
+
+#define ID_ADDRESS 0x00000180L /* signature/pointer address */
+#define ZFIRM_ID 0x5557465AL /* ZFIRM/U signature */
+struct FIRM_ID {
+ uclong signature; /* ZFIRM/U signature */
+ uclong zfwctrl_addr; /* pointer to ZFW_CTRL structure */
+};
+
+/* Op. System id */
+
+#define C_OS_LINUX 0x00000030 /* generic Linux system */
+
+/* channel op_mode */
+
+#define C_CH_DISABLE 0x00000000 /* channel is disabled */
+#define C_CH_TXENABLE 0x00000001 /* channel Tx enabled */
+#define C_CH_RXENABLE 0x00000002 /* channel Rx enabled */
+#define C_CH_ENABLE 0x00000003 /* channel Tx/Rx enabled */
+#define C_CH_LOOPBACK 0x00000004 /* Loopback mode */
+
+/* comm_parity - parity */
+
+#define C_PR_NONE 0x00000000 /* None */
+#define C_PR_ODD 0x00000001 /* Odd */
+#define C_PR_EVEN 0x00000002 /* Even */
+#define C_PR_MARK 0x00000004 /* Mark */
+#define C_PR_SPACE 0x00000008 /* Space */
+#define C_PR_PARITY 0x000000ff
+
+#define C_PR_DISCARD 0x00000100 /* discard char with frame/par error */
+#define C_PR_IGNORE 0x00000200 /* ignore frame/par error */
+
+/* comm_data_l - data length and stop bits */
+
+#define C_DL_CS5 0x00000001
+#define C_DL_CS6 0x00000002
+#define C_DL_CS7 0x00000004
+#define C_DL_CS8 0x00000008
+#define C_DL_CS 0x0000000f
+#define C_DL_1STOP 0x00000010
+#define C_DL_15STOP 0x00000020
+#define C_DL_2STOP 0x00000040
+#define C_DL_STOP 0x000000f0
+
+/* interrupt enabling/status */
+
+#define C_IN_DISABLE 0x00000000 /* zero, disable interrupts */
+#define C_IN_TXBEMPTY 0x00000001 /* tx buffer empty */
+#define C_IN_TXLOWWM 0x00000002 /* tx buffer below LWM */
+#define C_IN_RXHIWM 0x00000010 /* rx buffer above HWM */
+#define C_IN_RXNNDT 0x00000020 /* rx no new data timeout */
+#define C_IN_MDCD 0x00000100 /* modem DCD change */
+#define C_IN_MDSR 0x00000200 /* modem DSR change */
+#define C_IN_MRI 0x00000400 /* modem RI change */
+#define C_IN_MCTS 0x00000800 /* modem CTS change */
+#define C_IN_RXBRK 0x00001000 /* Break received */
+#define C_IN_PR_ERROR 0x00002000 /* parity error */
+#define C_IN_FR_ERROR 0x00004000 /* frame error */
+
+/* flow control */
+
+#define C_FL_OXX 0x00000001 /* output Xon/Xoff flow control */
+#define C_FL_IXX 0x00000002 /* output Xon/Xoff flow control */
+#define C_FL_OIXANY 0x00000004 /* output Xon/Xoff (any xon) */
+#define C_FL_SWFLOW 0x0000000f
+
+/* flow status */
+
+#define C_FS_TXIDLE 0x00000000 /* no Tx data in the buffer or UART */
+#define C_FS_SENDING 0x00000001 /* UART is sending data */
+#define C_FS_SWFLOW 0x00000002 /* Tx is stopped by received Xoff */
+
+/* rs_control/rs_status RS-232 signals */
+
+#define C_RS_DCD 0x00000100 /* CD */
+#define C_RS_DSR 0x00000200 /* DSR */
+#define C_RS_RI 0x00000400 /* RI */
+#define C_RS_CTS 0x00000800 /* CTS */
+#define C_RS_RTS 0x00000001 /* RTS */
+#define C_RS_DTR 0x00000004 /* DTR */
+
+/* commands Host <-> Board */
+
+#define C_CM_RESET 0x01 /* reset/flush buffers */
+#define C_CM_IOCTL 0x02 /* re-read CH_CTRL */
+#define C_CM_IOCTLW 0x03 /* re-read CH_CTRL, intr when done */
+#define C_CM_IOCTLM 0x04 /* RS-232 outputs change */
+#define C_CM_SENDXOFF 0x10 /* send Xoff */
+#define C_CM_SENDXON 0x11 /* send Xon */
+#define C_CM_CLFLOW 0x12 /* Clear flow control (resume) */
+#define C_CM_SENDBRK 0x41 /* send break */
+#define C_CM_INTBACK 0x42 /* Interrupt back */
+#define C_CM_SET_BREAK 0x43 /* Tx break on */
+#define C_CM_CLR_BREAK 0x44 /* Tx break off */
+#define C_CM_CMD_DONE 0x45 /* Previous command done */
+#define C_CM_TINACT 0x51 /* set inactivity detection */
+#define C_CM_IRQ_ENBL 0x52 /* enable generation of interrupts */
+#define C_CM_IRQ_DSBL 0x53 /* disable generation of interrupts */
+#define C_CM_ACK_ENBL 0x54 /* enable acknolowdged interrupt mode */
+#define C_CM_ACK_DSBL 0x55 /* disable acknolowdged intr mode */
+#define C_CM_FLUSH_RX 0x56 /* flushes Rx buffer */
+#define C_CM_FLUSH_TX 0x57 /* flushes Tx buffer */
+
+#define C_CM_TXBEMPTY 0x60 /* Tx buffer is empty */
+#define C_CM_TXLOWWM 0x61 /* Tx buffer low water mark */
+#define C_CM_RXHIWM 0x62 /* Rx buffer high water mark */
+#define C_CM_RXNNDT 0x63 /* rx no new data timeout */
+#define C_CM_MDCD 0x70 /* modem DCD change */
+#define C_CM_MDSR 0x71 /* modem DSR change */
+#define C_CM_MRI 0x72 /* modem RI change */
+#define C_CM_MCTS 0x73 /* modem CTS change */
+#define C_CM_RXBRK 0x84 /* Break received */
+#define C_CM_PR_ERROR 0x85 /* Parity error */
+#define C_CM_FR_ERROR 0x86 /* Frame error */
+#define C_CM_CMDERROR 0x90 /* command error */
+#define C_CM_FATAL 0x91 /* fatal error */
+#define C_CM_HW_RESET 0x92 /* reset board */
+
+/*
+ * CH_CTRL - This per port structure contains all parameters
+ * that control an specific port. It can be seen as the
+ * configuration registers of a "super-serial-controller".
+ */
+
+struct CH_CTRL {
+ uclong op_mode; /* operation mode */
+ uclong intr_enable; /* interrupt masking */
+ uclong sw_flow; /* SW flow control */
+ uclong flow_status; /* output flow status */
+ uclong comm_baud; /* baud rate - numerically specified */
+ uclong comm_parity; /* parity */
+ uclong comm_data_l; /* data length/stop */
+ uclong comm_flags; /* other flags */
+ uclong hw_flow; /* HW flow control */
+ uclong rs_control; /* RS-232 outputs */
+ uclong rs_status; /* RS-232 inputs */
+ uclong flow_xon; /* xon char */
+ uclong flow_xoff; /* xoff char */
+ uclong filler[3]; /* filler to align structures */
+};
+
+
+/*
+ * BUF_CTRL - This per channel structure contains
+ * all Tx and Rx buffer control for a given channel.
+ */
+
+struct BUF_CTRL {
+ uclong flag_dma; /* buffers are in Host memory */
+ uclong tx_bufaddr; /* address of the tx buffer */
+ uclong tx_bufsize; /* tx buffer size */
+ uclong tx_threshold; /* tx low water mark */
+ uclong tx_get; /* tail index tx buf */
+ uclong tx_put; /* head index tx buf */
+ uclong rx_bufaddr; /* address of the rx buffer */
+ uclong rx_bufsize; /* rx buffer size */
+ uclong rx_threshold; /* rx high water mark */
+ uclong rx_get; /* tail index rx buf */
+ uclong rx_put; /* head index rx buf */
+ uclong filler[5]; /* filler to align structures */
+};
+
+/*
+ * BOARD_CTRL - This per board structure contains all global
+ * control fields related to the board.
+ */
+
+struct BOARD_CTRL {
+
+ /* static info provided by the on-board CPU */
+ uclong n_channel; /* number of channels */
+ uclong fw_version; /* firmware version */
+
+ /* static info provided by the driver */
+ uclong op_system; /* op_system id */
+ uclong dr_version; /* driver version */
+
+ /* board control area */
+ uclong inactivity; /* inactivity control */
+
+ /* host to FW commands */
+ uclong hcmd_channel; /* channel number */
+ uclong *hcmd_param; /* pointer to parameters */
+
+ /* FW to Host commands */
+ uclong fwcmd_channel; /* channel number */
+ uclong *fwcmd_param; /* pointer to parameters */
+
+ /* filler so the structures are aligned */
+ uclong filler[7];
+};
+
+/*
+ * ZFW_CTRL - This is the data structure that includes all other
+ * data structures used by the Firmware.
+ */
+
+struct ZFW_CTRL {
+ struct BOARD_CTRL board_ctrl;
+ struct CH_CTRL ch_ctrl[MAX_CHAN];
+ struct BUF_CTRL buf_ctrl[MAX_CHAN];
+};
+
+/****************** ****************** *******************/
+#endif
+
+
+
#ifdef __KERNEL__
/* Per card data structure */
struct cyclades_card {
- int base_addr;
+ long base_addr;
+ long ctl_addr;
int irq;
- int num_chips; /* 0 if card is absent */
+ int num_chips; /* 0 if card absent, 1 if Z/PCI, else Y */
int first_line; /* minor number of first channel on card */
int bus_index; /* address shift - 0 for ISA, 1 for PCI */
};
@@ -72,6 +426,7 @@ struct cyclades_port {
int xmit_fifo_size;
int cor1,cor2,cor3,cor4,cor5;
int tbpr,tco,rbpr,rco;
+ int baud;
int ignore_status_mask;
int close_delay;
int IER; /* Interrupt Enable Register */
@@ -95,6 +450,8 @@ struct cyclades_port {
struct wait_queue *open_wait;
struct wait_queue *close_wait;
struct cyclades_monitor mon;
+ unsigned long jiffies[3];
+ unsigned long rflush_count;
};
/*
@@ -111,6 +468,10 @@ struct cyclades_port {
#define CyMaxChipsPerCard 8
+#define CyPCI_Ywin 0x4000
+#define CyPCI_Zctl 0x100
+#define CyPCI_Zwin 0x80000
+
/**** CD1400 registers ****/
#define CyRegSize 0x0400
@@ -282,3 +643,4 @@ struct cyclades_port {
#endif /* __KERNEL__ */
#endif /* _LINUX_CYCLADES_H */
+
diff --git a/include/linux/digi1.h b/include/linux/digi1.h
new file mode 100644
index 000000000..184378d23
--- /dev/null
+++ b/include/linux/digi1.h
@@ -0,0 +1,100 @@
+/* Definitions for DigiBoard ditty(1) command. */
+
+#if !defined(TIOCMODG)
+#define TIOCMODG ('d'<<8) | 250 /* get modem ctrl state */
+#define TIOCMODS ('d'<<8) | 251 /* set modem ctrl state */
+#endif
+
+#if !defined(TIOCMSET)
+#define TIOCMSET ('d'<<8) | 252 /* set modem ctrl state */
+#define TIOCMGET ('d'<<8) | 253 /* set modem ctrl state */
+#endif
+
+#if !defined(TIOCMBIC)
+#define TIOCMBIC ('d'<<8) | 254 /* set modem ctrl state */
+#define TIOCMBIS ('d'<<8) | 255 /* set modem ctrl state */
+#endif
+
+#if !defined(TIOCSDTR)
+#define TIOCSDTR ('e'<<8) | 0 /* set DTR */
+#define TIOCCDTR ('e'<<8) | 1 /* clear DTR */
+#endif
+
+/************************************************************************
+ * Ioctl command arguments for DIGI parameters.
+ ************************************************************************/
+#define DIGI_GETA ('e'<<8) | 94 /* Read params */
+
+#define DIGI_SETA ('e'<<8) | 95 /* Set params */
+#define DIGI_SETAW ('e'<<8) | 96 /* Drain & set params */
+#define DIGI_SETAF ('e'<<8) | 97 /* Drain, flush & set params */
+
+#define DIGI_GETFLOW ('e'<<8) | 99 /* Get startc/stopc flow */
+ /* control characters */
+#define DIGI_SETFLOW ('e'<<8) | 100 /* Set startc/stopc flow */
+ /* control characters */
+#define DIGI_GETAFLOW ('e'<<8) | 101 /* Get Aux. startc/stopc */
+ /* flow control chars */
+#define DIGI_SETAFLOW ('e'<<8) | 102 /* Set Aux. startc/stopc */
+ /* flow control chars */
+
+#define DIGI_GETINFO ('e'<<8) | 103 /* Fill in digi_info */
+#define DIGI_POLLER ('e'<<8) | 104 /* Turn on/off poller */
+#define DIGI_INIT ('e'<<8) | 105 /* Allow things to run. */
+
+struct digiflow_struct
+{
+ unsigned char startc; /* flow cntl start char */
+ unsigned char stopc; /* flow cntl stop char */
+};
+
+typedef struct digiflow_struct digiflow_t;
+
+
+/************************************************************************
+ * Values for digi_flags
+ ************************************************************************/
+#define DIGI_IXON 0x0001 /* Handle IXON in the FEP */
+#define DIGI_FAST 0x0002 /* Fast baud rates */
+#define RTSPACE 0x0004 /* RTS input flow control */
+#define CTSPACE 0x0008 /* CTS output flow control */
+#define DSRPACE 0x0010 /* DSR output flow control */
+#define DCDPACE 0x0020 /* DCD output flow control */
+#define DTRPACE 0x0040 /* DTR input flow control */
+#define DIGI_FORCEDCD 0x0100 /* Force carrier */
+#define DIGI_ALTPIN 0x0200 /* Alternate RJ-45 pin config */
+#define DIGI_AIXON 0x0400 /* Aux flow control in fep */
+
+
+/************************************************************************
+ * Values for digiDload
+ ************************************************************************/
+#define NORMAL 0
+#define PCI_CTL 1
+
+#define SIZE8 0
+#define SIZE16 1
+#define SIZE32 2
+
+/************************************************************************
+ * Structure used with ioctl commands for DIGI parameters.
+ ************************************************************************/
+struct digi_struct
+{
+ unsigned short digi_flags; /* Flags (see above) */
+};
+
+typedef struct digi_struct digi_t;
+
+struct digi_info
+{
+ unsigned long board; /* Which board is this ? */
+ unsigned char status; /* Alive or dead */
+ unsigned char type; /* see epca.h */
+ unsigned char subtype; /* For future XEM, XR, etc ... */
+ unsigned short numports; /* Number of ports configured */
+ unsigned char *port; /* I/O Address */
+ unsigned char *membase; /* DPR Address */
+ unsigned char *version; /* For future ... */
+ unsigned short windowData; /* For future ... */
+} ;
diff --git a/include/linux/digiFep1.h b/include/linux/digiFep1.h
new file mode 100644
index 000000000..c47d7fcb8
--- /dev/null
+++ b/include/linux/digiFep1.h
@@ -0,0 +1,136 @@
+
+#define CSTART 0x400L
+#define CMAX 0x800L
+#define ISTART 0x800L
+#define IMAX 0xC00L
+#define CIN 0xD10L
+#define GLOBAL 0xD10L
+#define EIN 0xD18L
+#define FEPSTAT 0xD20L
+#define CHANSTRUCT 0x1000L
+#define RXTXBUF 0x4000L
+
+
+struct global_data
+{
+ volatile ushort cin;
+ volatile ushort cout;
+ volatile ushort cstart;
+ volatile ushort cmax;
+ volatile ushort ein;
+ volatile ushort eout;
+ volatile ushort istart;
+ volatile ushort imax;
+};
+
+
+struct board_chan
+{
+ int filler1;
+ int filler2;
+ volatile ushort tseg;
+ volatile ushort tin;
+ volatile ushort tout;
+ volatile ushort tmax;
+
+ volatile ushort rseg;
+ volatile ushort rin;
+ volatile ushort rout;
+ volatile ushort rmax;
+
+ volatile ushort tlow;
+ volatile ushort rlow;
+ volatile ushort rhigh;
+ volatile ushort incr;
+
+ volatile ushort etime;
+ volatile ushort edelay;
+ volatile unchar *dev;
+
+ volatile ushort iflag;
+ volatile ushort oflag;
+ volatile ushort cflag;
+ volatile ushort gmask;
+
+ volatile ushort col;
+ volatile ushort delay;
+ volatile ushort imask;
+ volatile ushort tflush;
+
+ int filler3;
+ int filler4;
+ int filler5;
+ int filler6;
+
+ volatile unchar num;
+ volatile unchar ract;
+ volatile unchar bstat;
+ volatile unchar tbusy;
+ volatile unchar iempty;
+ volatile unchar ilow;
+ volatile unchar idata;
+ volatile unchar eflag;
+
+ volatile unchar tflag;
+ volatile unchar rflag;
+ volatile unchar xmask;
+ volatile unchar xval;
+ volatile unchar mstat;
+ volatile unchar mchange;
+ volatile unchar mint;
+ volatile unchar lstat;
+
+ volatile unchar mtran;
+ volatile unchar orun;
+ volatile unchar startca;
+ volatile unchar stopca;
+ volatile unchar startc;
+ volatile unchar stopc;
+ volatile unchar vnext;
+ volatile unchar hflow;
+
+ volatile unchar fillc;
+ volatile unchar ochar;
+ volatile unchar omask;
+
+ unchar filler7;
+ unchar filler8[28];
+};
+
+
+#define SRXLWATER 0xE0
+#define SRXHWATER 0xE1
+#define STOUT 0xE2
+#define PAUSETX 0xE3
+#define RESUMETX 0xE4
+#define SAUXONOFFC 0xE6
+#define SENDBREAK 0xE8
+#define SETMODEM 0xE9
+#define SETIFLAGS 0xEA
+#define SONOFFC 0xEB
+#define STXLWATER 0xEC
+#define PAUSERX 0xEE
+#define RESUMERX 0xEF
+#define SETBUFFER 0xF2
+#define SETCOOKED 0xF3
+#define SETHFLOW 0xF4
+#define SETCTRLFLAGS 0xF5
+#define SETVNEXT 0xF6
+
+
+
+#define BREAK_IND 0x01
+#define LOWTX_IND 0x02
+#define EMPTYTX_IND 0x04
+#define DATA_IND 0x08
+#define MODEMCHG_IND 0x20
+
+#define FEP_HUPCL 0002000
+#if 0
+#define RTS 0x02
+#define CD 0x08
+#define DSR 0x10
+#define CTS 0x20
+#define RI 0x40
+#define DTR 0x80
+#endif
diff --git a/include/linux/digiPCI.h b/include/linux/digiPCI.h
new file mode 100644
index 000000000..6ca7819e5
--- /dev/null
+++ b/include/linux/digiPCI.h
@@ -0,0 +1,42 @@
+/*************************************************************************
+ * Defines and structure definitions for PCI BIOS Interface
+ *************************************************************************/
+#define PCIMAX 32 /* maximum number of PCI boards */
+
+
+#define PCI_VENDOR_DIGI 0x114F
+#define PCI_DEVICE_EPC 0x0002
+#define PCI_DEVICE_RIGHTSWITCH 0x0003 /* For testing */
+#define PCI_DEVICE_XEM 0x0004
+#define PCI_DEVICE_XR 0x0005
+#define PCI_DEVICE_CX 0x0006
+#define PCI_DEVICE_XRJ 0x0009 /* Jupiter boards with */
+#define PCI_DEVICE_EPCJ 0x000a /* PLX 9060 chip for PCI */
+
+
+/*
+ * On the PCI boards, there is no IO space allocated
+ * The I/O registers will be in the first 3 bytes of the
+ * upper 2MB of the 4MB memory space. The board memory
+ * will be mapped into the low 2MB of the 4MB memory space
+ */
+
+/* Potential location of PCI Bios from E0000 to FFFFF*/
+#define PCI_BIOS_SIZE 0x00020000
+
+/* Size of Memory and I/O for PCI (4MB) */
+#define PCI_RAM_SIZE 0x00400000
+
+/* Size of Memory (2MB) */
+#define PCI_MEM_SIZE 0x00200000
+
+/* Offset of I/0 in Memory (2MB) */
+#define PCI_IO_OFFSET 0x00200000
+
+#define MEMOUTB(basemem, pnum, setmemval) *(caddr_t)((basemem) + ( PCI_IO_OFFSET | pnum << 4 | pnum )) = (setmemval)
+#define MEMINB(basemem, pnum) *(caddr_t)((basemem) + (PCI_IO_OFFSET | pnum << 4 | pnum )) /* for PCI I/O */
+
+
+
+
+
diff --git a/include/linux/elf.h b/include/linux/elf.h
index 17258a19b..5ca3653f1 100644
--- a/include/linux/elf.h
+++ b/include/linux/elf.h
@@ -3,11 +3,20 @@
#include <asm/elf.h>
-typedef unsigned long Elf32_Addr;
-typedef unsigned short Elf32_Half;
-typedef unsigned long Elf32_Off;
-typedef long Elf32_Sword;
-typedef unsigned long Elf32_Word;
+/* 32-bit ELF base types. */
+typedef __u32 Elf32_Addr;
+typedef __u16 Elf32_Half;
+typedef __u32 Elf32_Off;
+typedef __s32 Elf32_Sword;
+typedef __u32 Elf32_Word;
+
+/* 64-bit ELF base types. */
+typedef __u64 Elf64_Addr;
+typedef __u16 Elf64_Half;
+typedef __s16 Elf64_SHalf;
+typedef __u64 Elf64_Off;
+typedef __s64 Elf64_Sword;
+typedef __u64 Elf64_Word;
/* These constants are for the segment types stored in the image headers */
#define PT_NULL 0
@@ -152,10 +161,10 @@ typedef struct dynamic{
} Elf32_Dyn;
typedef struct {
- unsigned long long d_tag; /* entry tag value */
+ Elf64_Word d_tag; /* entry tag value */
union {
- unsigned long long d_val;
- unsigned long long d_ptr;
+ Elf64_Word d_val;
+ Elf64_Word d_ptr;
} d_un;
} Elf64_Dyn;
@@ -299,8 +308,8 @@ typedef struct elf32_rel {
} Elf32_Rel;
typedef struct elf64_rel {
- unsigned long long r_offset; /* Location at which to apply the action */
- unsigned long long r_info; /* index and type of relocation */
+ Elf64_Addr r_offset; /* Location at which to apply the action */
+ Elf64_Word r_info; /* index and type of relocation */
} Elf64_Rel;
typedef struct elf32_rela{
@@ -310,9 +319,9 @@ typedef struct elf32_rela{
} Elf32_Rela;
typedef struct elf64_rela {
- unsigned long long r_offset; /* Location at which to apply the action */
- unsigned long long r_info; /* index and type of relocation */
- unsigned long long r_addend; /* Constant addend used to compute value */
+ Elf64_Addr r_offset; /* Location at which to apply the action */
+ Elf64_Word r_info; /* index and type of relocation */
+ Elf64_Word r_addend; /* Constant addend used to compute value */
} Elf64_Rela;
typedef struct elf32_sym{
@@ -325,12 +334,12 @@ typedef struct elf32_sym{
} Elf32_Sym;
typedef struct elf64_sym {
- unsigned int st_name; /* Symbol name, index in string tbl */
- unsigned char st_info; /* Type and binding attributes */
- unsigned char st_other; /* No defined meaning, 0 */
- unsigned short st_shndx; /* Associated section index */
- unsigned long long st_value; /* Value of the symbol */
- unsigned long long st_size; /* Associated symbol size */
+ Elf32_Word st_name; /* Symbol name, index in string tbl (yes, Elf32) */
+ unsigned char st_info; /* Type and binding attributes */
+ unsigned char st_other; /* No defined meaning, 0 */
+ Elf64_Half st_shndx; /* Associated section index */
+ Elf64_Addr st_value; /* Value of the symbol */
+ Elf64_Word st_size; /* Associated symbol size */
} Elf64_Sym;
@@ -355,19 +364,19 @@ typedef struct elf32_hdr{
typedef struct elf64_hdr {
unsigned char e_ident[16]; /* ELF "magic number" */
- short int e_type;
- short unsigned int e_machine;
- int e_version;
- unsigned long long e_entry; /* Entry point virtual address */
- unsigned long long e_phoff; /* Program header table file offset */
- unsigned long long e_shoff; /* Section header table file offset */
- int e_flags;
- short int e_ehsize;
- short int e_phentsize;
- short int e_phnum;
- short int e_shentsize;
- short int e_shnum;
- short int e_shstrndx;
+ Elf64_SHalf e_type;
+ Elf64_Half e_machine;
+ __s32 e_version;
+ Elf64_Addr e_entry; /* Entry point virtual address */
+ Elf64_Off e_phoff; /* Program header table file offset */
+ Elf64_Off e_shoff; /* Section header table file offset */
+ __s32 e_flags;
+ Elf64_SHalf e_ehsize;
+ Elf64_SHalf e_phentsize;
+ Elf64_SHalf e_phnum;
+ Elf64_SHalf e_shentsize;
+ Elf64_SHalf e_shnum;
+ Elf64_SHalf e_shstrndx;
} Elf64_Ehdr;
/* These constants define the permissions on sections in the program
@@ -388,14 +397,14 @@ typedef struct elf32_phdr{
} Elf32_Phdr;
typedef struct elf64_phdr {
- int p_type;
- int p_flags;
- unsigned long long p_offset; /* Segment file offset */
- unsigned long long p_vaddr; /* Segment virtual address */
- unsigned long long p_paddr; /* Segment physical address */
- unsigned long long p_filesz; /* Segment size in file */
- unsigned long long p_memsz; /* Segment size in memory */
- unsigned long long p_align; /* Segment alignment, file & memory */
+ __s32 p_type;
+ __s32 p_flags;
+ Elf64_Off p_offset; /* Segment file offset */
+ Elf64_Addr p_vaddr; /* Segment virtual address */
+ Elf64_Addr p_paddr; /* Segment physical address */
+ Elf64_Word p_filesz; /* Segment size in file */
+ Elf64_Word p_memsz; /* Segment size in memory */
+ Elf64_Word p_align; /* Segment alignment, file & memory */
} Elf64_Phdr;
/* sh_type */
@@ -452,16 +461,16 @@ typedef struct {
} Elf32_Shdr;
typedef struct elf64_shdr {
- unsigned int sh_name; /* Section name, index in string tbl */
- unsigned int sh_type; /* Type of section */
- unsigned long long sh_flags; /* Miscellaneous section attributes */
- unsigned long long sh_addr; /* Section virtual addr at execution */
- unsigned long long sh_offset; /* Section file offset */
- unsigned long long sh_size; /* Size of section in bytes */
- unsigned int sh_link; /* Index of another section */
- unsigned int sh_info; /* Additional section information */
- unsigned long long sh_addralign; /* Section alignment */
- unsigned long long sh_entsize; /* Entry size if section holds table */
+ Elf32_Word sh_name; /* Section name, index in string tbl (yes Elf32) */
+ Elf32_Word sh_type; /* Type of section (yes Elf32) */
+ Elf64_Word sh_flags; /* Miscellaneous section attributes */
+ Elf64_Addr sh_addr; /* Section virtual addr at execution */
+ Elf64_Off sh_offset; /* Section file offset */
+ Elf64_Word sh_size; /* Size of section in bytes */
+ Elf32_Word sh_link; /* Index of another section (yes Elf32) */
+ Elf32_Word sh_info; /* Additional section information (yes Elf32) */
+ Elf64_Word sh_addralign; /* Section alignment */
+ Elf64_Word sh_entsize; /* Entry size if section holds table */
} Elf64_Shdr;
#define EI_MAG0 0 /* e_ident[] indexes */
@@ -513,9 +522,9 @@ typedef struct elf32_note {
* is only 32 bits.
*/
typedef struct elf64_note {
- unsigned int n_namesz; /* Name size */
- unsigned int n_descsz; /* Content size */
- unsigned int n_type; /* Content type */
+ Elf32_Word n_namesz; /* Name size */
+ Elf32_Word n_descsz; /* Content size */
+ Elf32_Word n_type; /* Content type */
} Elf64_Nhdr;
#define ELF_START_MMAP 0x80000000
diff --git a/include/linux/epca.h b/include/linux/epca.h
new file mode 100644
index 000000000..504948149
--- /dev/null
+++ b/include/linux/epca.h
@@ -0,0 +1,170 @@
+#define XEMPORTS 0xC02
+#define XEPORTS 0xC22
+
+#define MAX_ALLOC 0x100
+
+#define MAXBOARDS 12
+#define FEPCODESEG 0x0200L
+#define FEPCODE 0x2000L
+#define BIOSCODE 0xf800L
+
+#define MISCGLOBAL 0x0C00L
+#define NPORT 0x0C22L
+#define MBOX 0x0C40L
+#define PORTBASE 0x0C90L
+
+/* Begin code defines used for epca_setup */
+
+#define INVALID_BOARD_TYPE 0x1
+#define INVALID_NUM_PORTS 0x2
+#define INVALID_MEM_BASE 0x4
+#define INVALID_PORT_BASE 0x8
+#define INVALID_BOARD_STATUS 0x10
+#define INVALID_ALTPIN 0x20
+
+/* End code defines used for epca_setup */
+
+
+#define FEPCLR 0x00
+#define FEPMEM 0x02
+#define FEPRST 0x04
+#define FEPINT 0x08
+#define FEPMASK 0x0e
+#define FEPWIN 0x80
+
+#define PCXE 0
+#define PCXEVE 1
+#define PCXEM 2
+#define EISAXEM 3
+#define PC64XE 4
+#define PCXI 5
+#define PCIXEM 7
+#define PCICX 8
+#define PCIXR 9
+#define PCIXRJ 10
+#define EPCA_NUM_TYPES 6
+
+
+static char *board_desc[] =
+{
+ "PC/Xe",
+ "PC/Xeve",
+ "PC/Xem",
+ "EISA/Xem",
+ "PC/64Xe",
+ "PC/Xi",
+ "unknown",
+ "PCI/Xem",
+ "PCI/CX",
+ "PCI/Xr",
+ "PCI/Xrj",
+};
+
+#define STARTC 021
+#define STOPC 023
+#define IAIXON 0x2000
+
+
+#define TXSTOPPED 0x1
+#define LOWWAIT 0x2
+#define EMPTYWAIT 0x4
+#define RXSTOPPED 0x8
+#define TXBUSY 0x10
+
+#define DISABLED 0
+#define ENABLED 1
+#define OFF 0
+#define ON 1
+
+#define FEPTIMEOUT 200000
+#define SERIAL_TYPE_NORMAL 1
+#define SERIAL_TYPE_CALLOUT 2
+#define SERIAL_TYPE_INFO 3
+#define EPCA_EVENT_HANGUP 1
+#define EPCA_MAGIC 0x5c6df104L
+
+struct channel
+{
+ long magic;
+ unchar boardnum;
+ unchar channelnum;
+ unchar omodem; /* FEP output modem status */
+ unchar imodem; /* FEP input modem status */
+ unchar modemfake; /* Modem values to be forced */
+ unchar modem; /* Force values */
+ unchar hflow;
+ unchar dsr;
+ unchar dcd;
+ unchar m_rts ; /* The bits used in whatever FEP */
+ unchar m_dcd ; /* is indiginous to this board to */
+ unchar m_dsr ; /* represent each of the physical */
+ unchar m_cts ; /* handshake lines */
+ unchar m_ri ;
+ unchar m_dtr ;
+ unchar stopc;
+ unchar startc;
+ unchar stopca;
+ unchar startca;
+ unchar fepstopc;
+ unchar fepstartc;
+ unchar fepstopca;
+ unchar fepstartca;
+ unchar txwin;
+ unchar rxwin;
+ ushort fepiflag;
+ ushort fepcflag;
+ ushort fepoflag;
+ ushort txbufhead;
+ ushort txbufsize;
+ ushort rxbufhead;
+ ushort rxbufsize;
+ int close_delay;
+ int count;
+ int blocked_open;
+ int event;
+ int asyncflags;
+ uint dev;
+ long session;
+ long pgrp;
+ ulong statusflags;
+ ulong c_iflag;
+ ulong c_cflag;
+ ulong c_lflag;
+ ulong c_oflag;
+ unchar *txptr;
+ unchar *rxptr;
+ unchar *tmp_buf;
+ struct board_info *board;
+ volatile struct board_chan *brdchan;
+ struct digi_struct digiext;
+ struct tty_struct *tty;
+ struct termios normal_termios;
+ struct termios callout_termios;
+ struct wait_queue *open_wait;
+ struct wait_queue *close_wait;
+ struct tq_struct tqueue;
+ volatile struct global_data *mailbox;
+};
+
+struct board_info
+{
+ unchar status;
+ unchar type;
+ unchar altpin;
+ ushort numports;
+ unchar *port;
+ unchar *membase;
+ unchar *re_map_port;
+ unchar *re_map_membase;
+ ulong memory_seg;
+ void ( * memwinon ) (struct board_info *, unsigned int) ;
+ void ( * memwinoff ) (struct board_info *, unsigned int) ;
+ void ( * globalwinon ) (struct channel *) ;
+ void ( * txwinon ) (struct channel *) ;
+ void ( * rxwinon ) (struct channel *) ;
+ void ( * memoff ) (struct channel *) ;
+ void ( * assertgwinon ) (struct channel *) ;
+ void ( * assertmemoff ) (struct channel *) ;
+ unchar poller_inhibited ;
+};
+
diff --git a/include/linux/epcaconfig.h b/include/linux/epcaconfig.h
new file mode 100644
index 000000000..c840c6735
--- /dev/null
+++ b/include/linux/epcaconfig.h
@@ -0,0 +1,8 @@
+#define NUMCARDS 1
+#define NBDEVS 2
+
+struct board_info static_boards[NUMCARDS]={
+ { ENABLED, 0, OFF, 2, (unchar*) 0x320, (unchar*) 0xd0000 },
+};
+
+/* DO NOT HAND EDIT THIS FILE! */
diff --git a/include/linux/ext2_fs.h b/include/linux/ext2_fs.h
index bd87ebcf5..b5f2b5f15 100644
--- a/include/linux/ext2_fs.h
+++ b/include/linux/ext2_fs.h
@@ -189,6 +189,7 @@ struct ext2_group_desc
#define EXT2_IMMUTABLE_FL 0x00000010 /* Immutable file */
#define EXT2_APPEND_FL 0x00000020 /* writes to file may only append */
#define EXT2_NODUMP_FL 0x00000040 /* do not dump file */
+#define EXT2_NOATIME_FL 0x00000080 /* do not update atime */
#define EXT2_RESERVED_FL 0x80000000 /* reserved for ext2 lib */
/*
@@ -363,7 +364,10 @@ struct ext2_super_block {
__u32 s_feature_compat; /* compatible feature set */
__u32 s_feature_incompat; /* incompatible feature set */
__u32 s_feature_ro_compat; /* readonly-compatible feature set */
- __u32 s_reserved[230]; /* Padding to the end of the block */
+ __u8 s_uuid[16]; /* 128-bit uuid for volume */
+ char s_volume_name[16]; /* volume name */
+ char s_last_mounted[64]; /* directory where last mounted */
+ __u32 s_reserved[206]; /* Padding to the end of the block */
};
/*
@@ -387,6 +391,16 @@ struct ext2_super_block {
#define EXT2_GOOD_OLD_INODE_SIZE 128
/*
+ * Feature set definitions
+ */
+
+#define EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER 0x0001
+
+#define EXT2_FEATURE_COMPAT_SUPP 0
+#define EXT2_FEATURE_INCOMPAT_SUPP 0
+#define EXT2_FEATURE_RO_COMPAT_SUPP EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER
+
+/*
* Default values for user and/or group using reserved blocks
*/
#define EXT2_DEF_RESUID 0
@@ -414,13 +428,6 @@ struct ext2_dir_entry {
#define EXT2_DIR_REC_LEN(name_len) (((name_len) + 8 + EXT2_DIR_ROUND) & \
~EXT2_DIR_ROUND)
-/*
- * Feature set definitions --- none are defined as of now
- */
-#define EXT2_FEATURE_COMPAT_SUPP 0
-#define EXT2_FEATURE_INCOMPAT_SUPP 0
-#define EXT2_FEATURE_RO_COMPAT_SUPP 0
-
#ifdef __KERNEL__
/*
* Function prototypes
diff --git a/include/linux/ext2_fs_sb.h b/include/linux/ext2_fs_sb.h
index dd064b86a..9ce758116 100644
--- a/include/linux/ext2_fs_sb.h
+++ b/include/linux/ext2_fs_sb.h
@@ -60,6 +60,9 @@ struct ext2_sb_info {
int s_desc_per_block_bits;
int s_inode_size;
int s_first_ino;
+ int s_feature_compat;
+ int s_feature_incompat;
+ int s_feature_ro_compat;
};
#endif /* _LINUX_EXT2_FS_SB */
diff --git a/include/linux/fb.h b/include/linux/fb.h
index f97a313c6..9ed7546d5 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -59,6 +59,7 @@ struct fb_bitfield {
#define FB_ACCEL_ATARIBLITT 1 /* Atari Blitter */
#define FB_ACCEL_AMIGABLITT 2 /* Amiga Blitter */
#define FB_ACCEL_CYBERVISION 3 /* Cybervision64 (S3 Trio64) */
+#define FB_ACCEL_RETINAZ3 4 /* RetinaZ3 (NCR77C32BLT) */
#define FB_SYNC_HOR_HIGH_ACT 1 /* horizontal sync high active */
#define FB_SYNC_VERT_HIGH_ACT 2 /* vertical sync high active */
@@ -205,6 +206,7 @@ struct fb_info {
int (*switch_con)(int); /* tell fb to switch consoles */
int (*updatevar)(int); /* tell fb to update the vars */
void (*blank)(int); /* tell fb to (un)blank the screen */
+ int (*setcmap)(struct fb_cmap *, int); /* tell fb to set the colormap */
};
#endif /* __KERNEL__ */
diff --git a/include/linux/file.h b/include/linux/file.h
index 4ba5311e8..0cb531c0c 100644
--- a/include/linux/file.h
+++ b/include/linux/file.h
@@ -13,16 +13,37 @@ extern inline struct file * fget(unsigned long fd)
}
extern int __fput(struct file *, struct inode *);
+extern void insert_file_free(struct file *file);
+
+/* It does not matter which list it is on. */
+extern inline void remove_filp(struct file *file)
+{
+ if(file->f_next)
+ file->f_next->f_pprev = file->f_pprev;
+ *file->f_pprev = file->f_next;
+}
extern inline int fput(struct file *file, struct inode *inode)
{
int count = file->f_count-1;
int error = 0;
- if (!count)
+ if (!count) {
error = __fput(file, inode);
- file->f_count = count;
+ file->f_count = 0;
+ remove_filp(file);
+ insert_file_free(file);
+ } else
+ file->f_count = count;
return error;
}
+extern inline void put_filp(struct file *file)
+{
+ if(--file->f_count == 0) {
+ remove_filp(file);
+ insert_file_free(file);
+ }
+}
+
#endif
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 85e04d184..1918471ab 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -95,7 +95,6 @@ extern int max_files, nr_files;
* Exception: MS_RDONLY is always applied to the entire file system.
*/
#define IS_RDONLY(inode) (((inode)->i_sb) && ((inode)->i_sb->s_flags & MS_RDONLY))
-#define DO_UPDATE_ATIME(inode) (!((inode)->i_flags & MS_NOATIME) && !IS_RDONLY(inode))
#define IS_NOSUID(inode) ((inode)->i_flags & MS_NOSUID)
#define IS_NODEV(inode) ((inode)->i_flags & MS_NODEV)
#define IS_NOEXEC(inode) ((inode)->i_flags & MS_NOEXEC)
@@ -105,6 +104,8 @@ extern int max_files, nr_files;
#define IS_WRITABLE(inode) ((inode)->i_flags & S_WRITE)
#define IS_APPEND(inode) ((inode)->i_flags & S_APPEND)
#define IS_IMMUTABLE(inode) ((inode)->i_flags & S_IMMUTABLE)
+#define IS_NOATIME(inode) ((inode)->i_flags & MS_NOATIME)
+#define DO_UPDATE_ATIME(inode) (!IS_NOATIME(inode) && !IS_RDONLY(inode))
/* the read-only stuff doesn't really belong here, but any other place is
probably as bad and I don't want to create yet another include file. */
@@ -129,7 +130,7 @@ extern int max_files, nr_files;
extern void buffer_init(void);
extern void inode_init(void);
-extern unsigned long file_table_init(unsigned long start, unsigned long end);
+extern void file_table_init(void);
extern unsigned long name_cache_init(unsigned long start, unsigned long end);
typedef char buffer_block[BLOCK_SIZE];
@@ -246,6 +247,7 @@ static inline int buffer_protected(struct buffer_head * bh)
#define ATTR_ATIME_SET 128
#define ATTR_MTIME_SET 256
#define ATTR_FORCE 512 /* Not a change, but a change it */
+#define ATTR_ATTR_FLAG 1024
/*
* This is the Inode Attributes structure, used for notify_change(). It
@@ -265,8 +267,17 @@ struct iattr {
time_t ia_atime;
time_t ia_mtime;
time_t ia_ctime;
+ unsigned int ia_attr_flags;
};
+/*
+ * This is the inode attributes flag definitions
+ */
+#define ATTR_FLAG_SYNCRONOUS 1 /* Syncronous write */
+#define ATTR_FLAG_NOATIME 2 /* Don't update atime */
+#define ATTR_FLAG_APPEND 4 /* Append-only file */
+#define ATTR_FLAG_IMMUTABLE 8 /* Immutable file */
+
#include <linux/quota.h>
struct inode {
@@ -305,9 +316,8 @@ struct inode {
unsigned char i_dirt;
unsigned char i_pipe;
unsigned char i_sock;
- unsigned char i_seek;
- unsigned char i_update;
- unsigned short i_writecount;
+ int i_writecount;
+ unsigned int i_attr_flags;
union {
struct pipe_inode_info pipe_i;
struct minix_inode_info minix_i;
@@ -327,17 +337,21 @@ struct inode {
};
struct file {
- mode_t f_mode;
- loff_t f_pos;
- unsigned short f_flags;
- unsigned short f_count;
- unsigned long f_reada, f_ramax, f_raend, f_ralen, f_rawin;
- struct file *f_next, *f_prev;
- int f_owner; /* pid or -pgrp where SIGIO should be sent */
- struct inode * f_inode;
- struct file_operations * f_op;
- unsigned long f_version;
- void *private_data; /* needed for tty driver, and maybe others */
+ struct file *f_next, **f_pprev;
+ struct inode *f_inode;
+ struct file_operations *f_op;
+ mode_t f_mode;
+ loff_t f_pos;
+ unsigned short f_count, f_flags;
+ unsigned long f_reada, f_ramax, f_raend, f_ralen, f_rawin;
+
+ /* pid or -pgrp where SIGIO should be sent */
+ int f_owner;
+
+ unsigned long f_version;
+
+ /* needed for tty driver, and maybe others */
+ void *private_data;
};
#define FL_POSIX 1
@@ -584,7 +598,7 @@ extern int fs_may_mount(kdev_t dev);
extern int fs_may_umount(kdev_t dev, struct inode * mount_root);
extern int fs_may_remount_ro(kdev_t dev);
-extern struct file *first_file;
+extern struct file *inuse_filps;
extern struct super_block super_blocks[NR_SUPER];
extern void refile_buffer(struct buffer_head * buf);
@@ -597,15 +611,14 @@ extern int nr_buffer_heads;
#define BUF_CLEAN 0
#define BUF_LOCKED 1 /* Buffers scheduled for write */
-#define BUF_LOCKED1 2 /* Supers, inodes */
-#define BUF_DIRTY 3 /* Dirty buffers, not yet scheduled for write */
-#define NR_LIST 4
+#define BUF_DIRTY 2 /* Dirty buffers, not yet scheduled for write */
+#define NR_LIST 3
void mark_buffer_uptodate(struct buffer_head * bh, int on);
extern inline void mark_buffer_clean(struct buffer_head * bh)
{
- if (clear_bit(BH_Dirty, &bh->b_state)) {
+ if (test_and_clear_bit(BH_Dirty, &bh->b_state)) {
if (bh->b_list == BUF_DIRTY)
refile_buffer(bh);
}
@@ -613,7 +626,7 @@ extern inline void mark_buffer_clean(struct buffer_head * bh)
extern inline void mark_buffer_dirty(struct buffer_head * bh, int flag)
{
- if (!set_bit(BH_Dirty, &bh->b_state)) {
+ if (!test_and_set_bit(BH_Dirty, &bh->b_state)) {
set_writetime(bh, flag);
if (bh->b_list != BUF_DIRTY)
refile_buffer(bh);
diff --git a/include/linux/in6.h b/include/linux/in6.h
index 9a6954c29..0996e2d58 100644
--- a/include/linux/in6.h
+++ b/include/linux/in6.h
@@ -104,7 +104,7 @@ struct ipv6_mreq {
*/
#define IPV6_ADDRFORM 1
-#define IPV6_RXINFO 2
+#define IPV6_PKTINFO 2
#define IPV6_RXHOPOPTS 3
#define IPV6_RXDSTOPTS 4
#define IPV6_RXSRCRT 5
@@ -115,8 +115,6 @@ struct ipv6_mreq {
/*
* Alternative names
*/
-#define IPV6_TXINFO IPV6_RXINFO
-#define SCM_SRCINFO IPV6_TXINFO
#define SCM_SRCRT IPV6_RXSRCRT
#define IPV6_UNICAST_HOPS 16
diff --git a/include/linux/inet.h b/include/linux/inet.h
index 9bd28d56e..acb93765f 100644
--- a/include/linux/inet.h
+++ b/include/linux/inet.h
@@ -45,8 +45,8 @@
#ifdef __KERNEL__
extern void inet_proto_init(struct net_proto *pro);
-extern char *in_ntoa(unsigned long in);
-extern unsigned long in_aton(const char *str);
+extern char *in_ntoa(__u32 in);
+extern __u32 in_aton(const char *str);
#endif
#endif /* _LINUX_INET_H */
diff --git a/include/linux/keyboard.h b/include/linux/keyboard.h
index 91dacb14d..d54377d96 100644
--- a/include/linux/keyboard.h
+++ b/include/linux/keyboard.h
@@ -302,7 +302,7 @@ extern struct wait_queue * keypress_wait;
#define K_F243 K(KT_FN,252)
#define K_F244 K(KT_FN,253)
#define K_F245 K(KT_FN,254)
-#define K_F246 K(KT_FN,255)
+#define K_UNDO K(KT_FN,255)
#define K_HOLE K(KT_SPEC,0)
@@ -347,8 +347,10 @@ extern struct wait_queue * keypress_wait;
#define K_PCOMMA K(KT_PAD,15) /* key-pad comma: kludge... */
#define K_PDOT K(KT_PAD,16) /* key-pad dot (period): kludge... */
#define K_PPLUSMINUS K(KT_PAD,17) /* key-pad plus/minus */
+#define K_PPARENL K(KT_PAD,18) /* key-pad left parenthesis */
+#define K_PPARENR K(KT_PAD,19) /* key-pad right parenthesis */
-#define NR_PAD 18
+#define NR_PAD 20
#define K_DGRAVE K(KT_DEAD,0)
#define K_DACUTE K(KT_DEAD,1)
diff --git a/include/linux/locks.h b/include/linux/locks.h
index 37933f63e..9e32ef883 100644
--- a/include/linux/locks.h
+++ b/include/linux/locks.h
@@ -22,7 +22,7 @@ extern inline void wait_on_buffer(struct buffer_head * bh)
extern inline void lock_buffer(struct buffer_head * bh)
{
- while (set_bit(BH_Lock, &bh->b_state))
+ while (test_and_set_bit(BH_Lock, &bh->b_state))
__wait_on_buffer(bh);
}
diff --git a/include/linux/lp_m68k.h b/include/linux/lp_m68k.h
index 6cd60e19d..ca8f7a31d 100644
--- a/include/linux/lp_m68k.h
+++ b/include/linux/lp_m68k.h
@@ -91,7 +91,8 @@ enum lp_type {
LP_UNKNOWN = 0,
LP_AMIGA = 1,
LP_ATARI = 2,
-LP_MFC = 3
+LP_MFC = 3,
+LP_IOEXT = 4
};
/*
@@ -105,10 +106,10 @@ struct lp_struct {
int (*lp_is_busy)(int);
int (*lp_has_pout)(int);
int (*lp_is_online)(int);
- int (*lp_my_interrupt)(int);
+ int (*lp_dummy)(int);
int (*lp_ioctl)(int, unsigned int, unsigned long);
- void (*lp_open)(void); /* for module use counter */
- void (*lp_release)(void); /* for module use counter */
+ int (*lp_open)(int); /* for module use counter */
+ void (*lp_release)(int); /* for module use counter */
int flags; /*for BUSY... */
unsigned int chars; /*busy timeout */
unsigned int time; /*wait time */
@@ -124,7 +125,7 @@ struct lp_struct {
extern struct lp_struct *lp_table[MAX_LP];
extern unsigned int lp_irq;
-void lp_interrupt(int, void *, struct pt_regs *);
+void lp_interrupt(int dev);
int lp_init(void);
int register_parallel(struct lp_struct *, int);
void unregister_parallel(int);
diff --git a/include/linux/major.h b/include/linux/major.h
index ee58c06f0..6e785af86 100644
--- a/include/linux/major.h
+++ b/include/linux/major.h
@@ -70,6 +70,7 @@
#define RISCOM8_NORMAL_MAJOR 48
#define RISCOM8_CALLOUT_MAJOR 49
#define MKISS_MAJOR 55
+#define DSP56K_MAJOR 55 /* DSP56001 processor device */
/*
* Tests for SCSI devices.
diff --git a/include/linux/malloc.h b/include/linux/malloc.h
index 0ef085783..f3ebf1857 100644
--- a/include/linux/malloc.h
+++ b/include/linux/malloc.h
@@ -1,11 +1,5 @@
#ifndef _LINUX_MALLOC_H
#define _LINUX_MALLOC_H
-#include <linux/mm.h>
-
-void * kmalloc(unsigned int size, int priority);
-void kfree(void * obj);
-
-#define kfree_s(a,b) kfree(a)
-
+#include <linux/slab.h>
#endif /* _LINUX_MALLOC_H */
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 9572b3415..6ebf15a55 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -37,18 +37,15 @@ struct vm_area_struct {
unsigned long vm_end;
pgprot_t vm_page_prot;
unsigned short vm_flags;
-/* AVL tree of VM areas per task, sorted by address */
- short vm_avl_height;
- struct vm_area_struct * vm_avl_left;
- struct vm_area_struct * vm_avl_right;
-/* linked list of VM areas per task, sorted by address */
- struct vm_area_struct * vm_next;
-/* for areas with inode, the circular list inode->i_mmap */
-/* for shm areas, the circular list of attaches */
-/* otherwise unused */
- struct vm_area_struct * vm_next_share;
- struct vm_area_struct * vm_prev_share;
-/* more */
+ struct vm_area_struct *vm_next;
+ struct vm_area_struct **vm_pprev;
+
+ /* For areas with inode, the list inode->i_mmap, for shm areas,
+ * the list of attaches, otherwise unused.
+ */
+ struct vm_area_struct *vm_next_share;
+ struct vm_area_struct **vm_pprev_share;
+
struct vm_operations_struct * vm_ops;
unsigned long vm_offset;
struct inode * vm_inode;
@@ -140,6 +137,7 @@ typedef struct page {
#define PG_decr_after 5
#define PG_swap_unlock_after 6
#define PG_DMA 7
+#define PG_Slab 8
#define PG_reserved 31
/* Make it prettier to test the above... */
@@ -152,8 +150,12 @@ typedef struct page {
#define PageDecrAfter(page) (test_bit(PG_decr_after, &(page)->flags))
#define PageSwapUnlockAfter(page) (test_bit(PG_swap_unlock_after, &(page)->flags))
#define PageDMA(page) (test_bit(PG_DMA, &(page)->flags))
+#define PageSlab(page) (test_bit(PG_Slab, &(page)->flags))
#define PageReserved(page) (test_bit(PG_reserved, &(page)->flags))
+#define PageSetSlab(page) (set_bit(PG_Slab, &(page)->flags))
+#define PageClearSlab(page) (clear_bit(PG_Slab, &(page)->flags))
+
/*
* page->reserved denotes a page which must never be accessed (which
* may not even be present).
@@ -263,9 +265,7 @@ extern int remap_page_range(unsigned long from, unsigned long to, unsigned long
extern int zeromap_page_range(unsigned long from, unsigned long size, pgprot_t prot);
extern void vmtruncate(struct inode * inode, unsigned long offset);
-extern void handle_mm_fault(struct vm_area_struct *vma, unsigned long address, int write_access);
-extern void do_wp_page(struct task_struct * tsk, struct vm_area_struct * vma, unsigned long address, int write_access);
-extern void do_no_page(struct task_struct * tsk, struct vm_area_struct * vma, unsigned long address, int write_access);
+extern void handle_mm_fault(struct task_struct *tsk,struct vm_area_struct *vma, unsigned long address, int write_access);
extern unsigned long paging_init(unsigned long start_mem, unsigned long end_mem);
extern void mem_init(unsigned long start_mem, unsigned long end_mem);
@@ -279,8 +279,6 @@ extern unsigned long do_mmap(struct file * file, unsigned long addr, unsigned lo
unsigned long prot, unsigned long flags, unsigned long off);
extern void merge_segments(struct mm_struct *, unsigned long, unsigned long);
extern void insert_vm_struct(struct mm_struct *, struct vm_area_struct *);
-extern void remove_shared_vm_struct(struct vm_area_struct *);
-extern void build_mmap_avl(struct mm_struct *);
extern void exit_mmap(struct mm_struct *);
extern int do_munmap(unsigned long, size_t);
extern unsigned long get_unmapped_area(unsigned long, unsigned long);
@@ -325,38 +323,30 @@ static inline int expand_stack(struct vm_area_struct * vma, unsigned long addres
return 0;
}
-#define avl_empty (struct vm_area_struct *) NULL
-
/* Look up the first VMA which satisfies addr < vm_end, NULL if none. */
static inline struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long addr)
{
- struct vm_area_struct * result = NULL;
+ struct vm_area_struct *vma = NULL;
if (mm) {
- struct vm_area_struct ** next = &mm->mmap_avl;
- for (;;) {
- struct vm_area_struct *tree = *next;
- if (tree == avl_empty)
- break;
- next = &tree->vm_avl_right;
- if (tree->vm_end <= addr)
- continue;
- next = &tree->vm_avl_left;
- result = tree;
- if (tree->vm_start <= addr)
- break;
+ /* Check the cache first. */
+ vma = mm->mmap_cache;
+ if(!vma || (vma->vm_end <= addr) || (vma->vm_start > addr)) {
+ vma = mm->mmap;
+ while(vma && vma->vm_end <= addr)
+ vma = vma->vm_next;
+ mm->mmap_cache = vma;
}
}
- return result;
+ return vma;
}
/* Look up the first VMA which intersects the interval start_addr..end_addr-1,
NULL if none. Assume start_addr < end_addr. */
static inline struct vm_area_struct * find_vma_intersection(struct mm_struct * mm, unsigned long start_addr, unsigned long end_addr)
{
- struct vm_area_struct * vma;
+ struct vm_area_struct * vma = find_vma(mm,start_addr);
- vma = find_vma(mm,start_addr);
if (vma && end_addr <= vma->vm_start)
vma = NULL;
return vma;
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 58c4e026b..10c0f76b7 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -27,7 +27,7 @@
* displayed at boot time, please report
* - /proc/pci
* - your exact hardware description. Try to find out
- * which device is unknown. It may be you mainboard chipset.
+ * which device is unknown. It may be your mainboard chipset.
* PCI-CPU bridge or PCI-ISA bridge.
* - If you can't find the actual information in your hardware
* booklet, try to read the references of the chip on the board.
@@ -331,6 +331,7 @@
#define PCI_VENDOR_ID_HP 0x103c
#define PCI_DEVICE_ID_HP_J2585A 0x1030
+#define PCI_DEVICE_ID_HP_J2585B 0x1031
#define PCI_VENDOR_ID_PCTECH 0x1042
#define PCI_DEVICE_ID_PCTECH_RZ1000 0x1000
@@ -408,6 +409,9 @@
#define PCI_DEVICE_ID_VISION_QD8500 0x0001
#define PCI_DEVICE_ID_VISION_QD8580 0x0002
+#define PCI_VENDOR_ID_BROOKTREE 0x109e
+#define PCI_DEVICE_ID_BT848 0x0350 /* 0x350 = 848 */
+
#define PCI_VENDOR_ID_SIERRA 0x10a8
#define PCI_DEVICE_ID_SIERRA_STB 0x0000
@@ -595,6 +599,7 @@
#define PCI_DEVICE_ID_INTEL_82437VX 0x7030
#define PCI_DEVICE_ID_INTEL_82371AB 0x7111
#define PCI_DEVICE_ID_INTEL_P6 0x84c4
+#define PCI_DEVICE_ID_INTEL_P6_2 0x84c5
#define PCI_VENDOR_ID_KTI 0x8e2e
#define PCI_DEVICE_ID_KTI_ET32P2 0x3000
diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h
index 0937a7bc1..48d9ae98f 100644
--- a/include/linux/proc_fs.h
+++ b/include/linux/proc_fs.h
@@ -162,12 +162,14 @@ enum scsi_directory_inos {
PROC_SCSI_7000FASST,
PROC_SCSI_IBMMCA,
PROC_SCSI_EATA2X,
+ PROC_SCSI_DC390T,
PROC_SCSI_AM53C974,
PROC_SCSI_SSC,
PROC_SCSI_NCR53C406A,
PROC_SCSI_PPA,
PROC_SCSI_ESP,
PROC_SCSI_QLOGICPTI,
+ PROC_SCSI_AMIGA7XX,
PROC_SCSI_A3000,
PROC_SCSI_A2091,
PROC_SCSI_GVP11,
diff --git a/include/linux/sched.h b/include/linux/sched.h
index c8ec07ab4..215774036 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1,14 +1,6 @@
#ifndef _LINUX_SCHED_H
#define _LINUX_SCHED_H
-/*
- * define DEBUG if you want the wait-queues to have some extra
- * debugging code. It's not normally used, but might catch some
- * wait-queue coding errors.
- *
- * #define DEBUG
- */
-
#include <asm/param.h> /* for HZ */
extern unsigned long event;
@@ -17,6 +9,8 @@ extern unsigned long event;
#include <linux/personality.h>
#include <linux/tasks.h>
#include <linux/kernel.h>
+#include <linux/types.h>
+#include <linux/times.h>
#include <asm/system.h>
#include <asm/semaphore.h>
@@ -66,9 +60,6 @@ extern unsigned long avenrun[]; /* Load averages */
extern int nr_running, nr_tasks;
extern int last_pid;
-#define FIRST_TASK task[0]
-#define LAST_TASK task[NR_TASKS-1]
-
#include <linux/head.h>
#include <linux/fs.h>
#include <linux/signal.h>
@@ -149,29 +140,28 @@ struct fs_struct {
}
struct mm_struct {
- int count;
+ struct vm_area_struct *mmap, *mmap_cache;
pgd_t * pgd;
+ int count;
+ struct semaphore mmap_sem;
unsigned long context;
unsigned long start_code, end_code, start_data, end_data;
unsigned long start_brk, brk, start_stack, start_mmap;
unsigned long arg_start, arg_end, env_start, env_end;
unsigned long rss, total_vm, locked_vm;
unsigned long def_flags;
- struct vm_area_struct * mmap;
- struct vm_area_struct * mmap_avl;
- struct semaphore mmap_sem;
+ unsigned long cpu_vm_mask;
};
-#define INIT_MM { \
- 1, \
- swapper_pg_dir, \
- 0, \
- 0, 0, 0, 0, \
- 0, 0, 0, 0, \
- 0, 0, 0, 0, \
- 0, 0, 0, \
- 0, \
- &init_mmap, &init_mmap, MUTEX }
+#define INIT_MM { \
+ &init_mmap, NULL, swapper_pg_dir, 1, \
+ MUTEX, \
+ 0, \
+ 0, 0, 0, 0, \
+ 0, 0, 0, 0, \
+ 0, 0, 0, 0, \
+ 0, 0, 0, \
+ 0, 0 }
struct signal_struct {
atomic_t count;
@@ -200,8 +190,6 @@ struct task_struct {
struct linux_binfmt *binfmt;
struct task_struct *next_task, *prev_task;
struct task_struct *next_run, *prev_run;
- unsigned long saved_kernel_stack;
- unsigned long kernel_stack_page;
int exit_code, exit_signal;
/* ??? */
unsigned long personality;
@@ -222,6 +210,14 @@ struct task_struct {
* p->p_pptr->pid)
*/
struct task_struct *p_opptr, *p_pptr, *p_cptr, *p_ysptr, *p_osptr;
+
+ /* PID hash table linkage. */
+ struct task_struct *pidhash_next;
+ struct task_struct **pidhash_pprev;
+
+ /* Pointer to task[] array linkage. */
+ struct task_struct **tarray_ptr;
+
struct wait_queue *wait_chldexit; /* for wait4() */
unsigned short uid,euid,suid,fsuid;
unsigned short gid,egid,sgid,fsgid;
@@ -229,7 +225,8 @@ struct task_struct {
unsigned long it_real_value, it_prof_value, it_virt_value;
unsigned long it_real_incr, it_prof_incr, it_virt_incr;
struct timer_list real_timer;
- long utime, stime, cutime, cstime, start_time;
+ struct tms times;
+ unsigned long start_time;
/* mm fault and swap info: this can arguably be seen as either mm-specific or thread-specific */
unsigned long min_flt, maj_flt, nswap, cmin_flt, cmaj_flt, cnswap;
int swappable:1;
@@ -260,6 +257,7 @@ struct task_struct {
/* signal handlers */
struct signal_struct *sig;
/* SMP state */
+ int has_cpu;
int processor;
int last_processor;
int lock_depth; /* Lock depth. We can context switch in and out of holding a syscall kernel lock... */
@@ -294,6 +292,16 @@ struct task_struct {
#define DEF_PRIORITY (20*HZ/100) /* 200 ms time slices */
+/* Note: This is very ugly I admit. But some versions of gcc will
+ * dump core when an empty structure constant is parsed at
+ * the end of a large top level structure initialization. -DaveM
+ */
+#ifdef __SMP__
+#define INIT_LOCKS SPIN_LOCK_UNLOCKED
+#else
+#define INIT_LOCKS
+#endif
+
/*
* INIT_TASK is used to set up the first task table, touch at
* your own risk!. Base=0, limit=0x1fffff (=2MB)
@@ -304,15 +312,17 @@ struct task_struct {
/* exec domain */&default_exec_domain, \
/* binfmt */ NULL, \
/* schedlink */ &init_task,&init_task, &init_task, &init_task, \
-/* stack */ 0,(unsigned long) &init_kernel_stack, \
/* ec,brk... */ 0,0,0,0,0, \
/* pid etc.. */ 0,0,0,0,0, \
/* suppl grps*/ 0, {0,}, \
-/* proc links*/ &init_task,&init_task,NULL,NULL,NULL,NULL, \
+/* proc links*/ &init_task,&init_task,NULL,NULL,NULL, \
+/* pidhash */ NULL, NULL, \
+/* tarray */ &task[0], \
+/* chld wait */ NULL, \
/* uid etc */ 0,0,0,0,0,0,0,0, \
/* timeout */ 0,SCHED_OTHER,0,0,0,0,0,0,0, \
/* timer */ { NULL, NULL, 0, 0, it_real_fn }, \
-/* utime */ 0,0,0,0,0, \
+/* utime */ {0,0,0,0},0, \
/* flt */ 0,0,0,0,0,0, \
/* swp */ 0,0,0,0,0, \
/* rlimits */ INIT_RLIMITS, \
@@ -326,14 +336,88 @@ struct task_struct {
/* files */ &init_files, \
/* mm */ &init_mm, \
/* signals */ &init_signals, \
-/* SMP */ 0,0,0, \
+/* SMP */ 0,0,0,0, \
+/* locks */ INIT_LOCKS \
}
+union task_union {
+ struct task_struct task;
+ unsigned long stack[2048];
+};
+
+extern union task_union init_task_union;
+
extern struct mm_struct init_mm;
-extern struct task_struct init_task;
extern struct task_struct *task[NR_TASKS];
extern struct task_struct *last_task_used_math;
+extern struct task_struct **tarray_freelist;
+extern spinlock_t taskslot_lock;
+
+extern __inline__ void add_free_taskslot(struct task_struct **t)
+{
+ spin_lock(&taskslot_lock);
+ *t = (struct task_struct *) tarray_freelist;
+ tarray_freelist = t;
+ spin_unlock(&taskslot_lock);
+}
+
+extern __inline__ struct task_struct **get_free_taskslot(void)
+{
+ struct task_struct **tslot;
+
+ spin_lock(&taskslot_lock);
+ if((tslot = tarray_freelist) != NULL)
+ tarray_freelist = (struct task_struct **) *tslot;
+ spin_unlock(&taskslot_lock);
+
+ return tslot;
+}
+
+/* PID hashing. */
+#define PIDHASH_SZ (NR_TASKS >> 2)
+extern struct task_struct *pidhash[PIDHASH_SZ];
+extern spinlock_t pidhash_lock;
+
+#define pid_hashfn(x) ((((x) >> 8) ^ (x)) & (PIDHASH_SZ - 1))
+
+extern __inline__ void hash_pid(struct task_struct *p)
+{
+ struct task_struct **htable = &pidhash[pid_hashfn(p->pid)];
+
+ spin_lock(&pidhash_lock);
+ if((p->pidhash_next = *htable) != NULL)
+ (*htable)->pidhash_pprev = &p->pidhash_next;
+ *htable = p;
+ p->pidhash_pprev = htable;
+ spin_unlock(&pidhash_lock);
+}
+
+extern __inline__ void unhash_pid(struct task_struct *p)
+{
+ spin_lock(&pidhash_lock);
+ if(p->pidhash_next)
+ p->pidhash_next->pidhash_pprev = p->pidhash_pprev;
+ *p->pidhash_pprev = p->pidhash_next;
+ spin_unlock(&pidhash_lock);
+}
+
+extern __inline__ struct task_struct *find_task_by_pid(int pid)
+{
+ struct task_struct **htable = &pidhash[pid_hashfn(pid)];
+ struct task_struct *p;
+
+ spin_lock(&pidhash_lock);
+ for(p = *htable; p && p->pid != pid; p = p->pidhash_next)
+ ;
+ spin_unlock(&pidhash_lock);
+
+ return p;
+}
+
+/* per-UID process charging. */
+extern int charge_uid(struct task_struct *p, int count);
+
#include <asm/current.h>
extern unsigned long volatile jiffies;
@@ -425,15 +509,15 @@ extern inline void __add_wait_queue(struct wait_queue ** p, struct wait_queue *
wait->next = next;
}
-extern spinlock_t waitqueue_lock;
+extern rwlock_t waitqueue_lock;
extern inline void add_wait_queue(struct wait_queue ** p, struct wait_queue * wait)
{
unsigned long flags;
- spin_lock_irqsave(&waitqueue_lock, flags);
+ write_lock_irqsave(&waitqueue_lock, flags);
__add_wait_queue(p, wait);
- spin_unlock_irqrestore(&waitqueue_lock, flags);
+ write_unlock_irqrestore(&waitqueue_lock, flags);
}
extern inline void __remove_wait_queue(struct wait_queue ** p, struct wait_queue * wait)
@@ -454,9 +538,9 @@ extern inline void remove_wait_queue(struct wait_queue ** p, struct wait_queue *
{
unsigned long flags;
- spin_lock_irqsave(&waitqueue_lock, flags);
+ write_lock_irqsave(&waitqueue_lock, flags);
__remove_wait_queue(p, wait);
- spin_unlock_irqrestore(&waitqueue_lock, flags);
+ write_unlock_irqrestore(&waitqueue_lock, flags);
}
extern inline void poll_wait(struct wait_queue ** wait_address, poll_table * p)
diff --git a/include/linux/serial.h b/include/linux/serial.h
index 372a06e51..f03f33dd5 100644
--- a/include/linux/serial.h
+++ b/include/linux/serial.h
@@ -46,7 +46,8 @@ struct serial_struct {
#define PORT_16650 6
#define PORT_16650V2 7
#define PORT_16750 8
-#define PORT_MAX 8
+#define PORT_STARTECH 9
+#define PORT_MAX 9
struct serial_uart_config {
char *name;
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 86a5e6417..a2617b15c 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -123,6 +123,9 @@ struct sk_buff
#endif
};
+/* These are just the default values. This is run time configurable.
+ * FIXME: Probably the config option should go away. -- erics
+ */
#ifdef CONFIG_SKB_LARGE
#define SK_WMEM_MAX 65535
#define SK_RMEM_MAX 65535
@@ -410,13 +413,15 @@ extern __inline__ void skb_unlink(struct sk_buff *skb)
restore_flags(flags);
}
+extern const char skb_put_errstr[];
+extern const char skb_push_errstr[];
+
/*
* Add data to an sk_buff
*/
extern __inline__ unsigned char *skb_put(struct sk_buff *skb, unsigned int len)
{
- extern char *skb_put_errstr;
unsigned char *tmp=skb->tail;
skb->tail+=len;
skb->len+=len;
@@ -431,7 +436,6 @@ here: ;
extern __inline__ unsigned char *skb_push(struct sk_buff *skb, unsigned int len)
{
- extern char *skb_push_errstr;
skb->data-=len;
skb->len+=len;
if(skb->data<skb->head)
diff --git a/include/linux/slab.h b/include/linux/slab.h
index ccd2ba1d3..08be13221 100644
--- a/include/linux/slab.h
+++ b/include/linux/slab.h
@@ -12,6 +12,7 @@
typedef struct kmem_cache_s kmem_cache_t;
#include <linux/mm.h>
+#include <asm/cache.h>
/* flags for kmem_cache_alloc() */
#define SLAB_BUFFER GFP_BUFFER /* 0x00 */
@@ -22,38 +23,48 @@ typedef struct kmem_cache_s kmem_cache_t;
#define SLAB_NFS GFP_NFS /* 0x05 */
#define SLAB_DMA GFP_DMA /* 0x08 */
#define SLAB_LEVEL_MASK GFP_LEVEL_MASK /* 0x0f */
-#define SLAB_NO_GROW 0x00001000UL /* don't add another slab during an alloc */
+#define SLAB_NO_GROW 0x00001000UL /* don't grow a cache */
/* flags to pass to kmem_cache_create().
- * The first 3 are only valid when the allocator has been build
+ * The first 3 are only valid when the allocator as been build
* SLAB_DEBUG_SUPPORT.
*/
-#define SLAB_DEBUG_FREE 0x00000100UL /* Peform time consuming ptr checks on free */
-#define SLAB_DEBUG_INITIAL 0x00000200UL /* Call constructor, on release, to conform state */
+#define SLAB_DEBUG_FREE 0x00000100UL /* Peform (expensive) checks on free */
+#define SLAB_DEBUG_INITIAL 0x00000200UL /* Call constructor (as verifier) */
#define SLAB_RED_ZONE 0x00000400UL /* Red zone objs in a cache */
-#define SLAB_HWCACHE_ALIGN 0x00000800UL /* align objs on an hw cache line */
+#define SLAB_POISION 0x00000800UL /* Poision objects */
+#define SLAB_NO_REAP 0x00001000UL /* never reap from the cache */
+#define SLAB_HWCACHE_ALIGN 0x00002000UL /* align objs on a h/w cache lines */
+#if 0
+#define SLAB_HIGH_PACK 0x00004000UL /* XXX */
+#endif
/* flags passed to a constructor func */
#define SLAB_CTOR_CONSTRUCTOR 0x001UL /* if not set, then deconstructor */
#define SLAB_CTOR_ATOMIC 0x002UL /* tell constructor it can't sleep */
-#define SLAB_DTOR_ATOMIC 0x002UL /* tell deconstructor it can't sleep */
#define SLAB_CTOR_VERIFY 0x004UL /* tell constructor it's a verify call */
/* prototypes */
extern long kmem_cache_init(long, long);
extern void kmem_cache_sizes_init(void);
-extern struct kmem_cache_s *kmem_cache_create(const char *, unsigned long, unsigned long, unsigned long, void (*)(void *, int, unsigned long), void (*)(void *, int, unsigned long));
-extern int kmem_cache_destroy(struct kmem_cache_s *);
-extern int kmem_cache_shrink(struct kmem_cache_s *, int);
-extern void *kmem_cache_alloc(struct kmem_cache_s *, unsigned long);
-extern void kmem_cache_free(struct kmem_cache_s *, void *);
-extern void *kmem_alloc(unsigned long, unsigned long);
-extern void kmem_free(void *, unsigned long);
+extern kmem_cache_t *kmem_find_general_cachep(size_t);
+extern kmem_cache_t *kmem_cache_create(const char *, size_t, size_t, unsigned long,
+ void (*)(void *, kmem_cache_t *, unsigned long),
+ void (*)(void *, kmem_cache_t *, unsigned long));
+extern int kmem_cache_shrink(kmem_cache_t *);
+extern void *kmem_cache_alloc(kmem_cache_t *, int);
+extern void kmem_cache_free(kmem_cache_t *, void *);
+
+extern void *kmalloc(size_t, int);
+extern void kfree(void *);
+extern void kfree_s(void *, size_t);
+
extern int kmem_cache_reap(int, int, int);
extern int get_slabinfo(char *);
-/* System wide slabs. */
-extern kmem_cache_t *vm_area_cachep;
+/* System wide caches */
+extern kmem_cache_t *vm_area_cachep;
+extern kmem_cache_t *mm_cachep;
#endif /* __KERNEL__ */
diff --git a/include/linux/smp.h b/include/linux/smp.h
index 72984f154..ff4427960 100644
--- a/include/linux/smp.h
+++ b/include/linux/smp.h
@@ -47,6 +47,7 @@ extern volatile int smp_msg_id;
#define smp_num_cpus 1
#define smp_processor_id() 0
+#define hard_smp_processor_id() 0
#define smp_message_pass(t,m,d,w)
#define smp_threads_ready 1
#define kernel_lock()
diff --git a/include/linux/socket.h b/include/linux/socket.h
index 756d4cca6..6d0ed9158 100644
--- a/include/linux/socket.h
+++ b/include/linux/socket.h
@@ -50,7 +50,6 @@ struct cmsghdr {
__kernel_size_t cmsg_len; /* data byte count, including hdr */
int cmsg_level; /* originating protocol */
int cmsg_type; /* protocol-specific type */
- unsigned char cmsg_data[0];
};
/*
@@ -58,17 +57,13 @@ struct cmsghdr {
* Table 5-14 of POSIX 1003.1g
*/
-#define CMSG_DATA(cmsg) (cmsg)->cmsg_data
#define CMSG_NXTHDR(mhdr, cmsg) cmsg_nxthdr(mhdr, cmsg)
#define CMSG_ALIGN(len) ( ((len)+sizeof(long)-1) & ~(sizeof(long)-1) )
-/* Stevens's Adv. API specifies CMSG_SPACE & CMSG_LENGTH,
- * I cannot understand, what the differenece? --ANK
- */
-
-#define CMSG_SPACE(len) CMSG_ALIGN((len)+sizeof(struct cmsghdr))
-#define CMSG_LENGTH(len) CMSG_ALIGN((len)+sizeof(struct cmsghdr))
+#define CMSG_DATA(cmsg) ((void *)(cmsg) + CMSG_ALIGN(sizeof(struct cmsghdr)))
+#define CMSG_SPACE(len) (CMSG_ALIGN(sizeof(struct cmsghdr)) + CMSG_ALIGN(len))
+#define CMSG_LEN(len) (CMSG_ALIGN(sizeof(struct cmsghdr)) + (len))
#define CMSG_FIRSTHDR(msg) ((msg)->msg_controllen >= sizeof(struct cmsghdr) ? \
(struct cmsghdr *)(msg)->msg_control : \
@@ -136,6 +131,7 @@ struct ucred
#define AF_DECNET 12 /* Reserved for DECnet project */
#define AF_NETBEUI 13 /* Reserved for 802.2LLC project*/
#define AF_SECURITY 14 /* Security callback pseudo AF */
+#define pseudo_AF_KEY 15 /* PF_KEY key management API */
#define AF_MAX 32 /* For now.. */
/* Protocol families, same as address families. */
@@ -155,6 +151,7 @@ struct ucred
#define PF_DECNET AF_DECNET
#define PF_NETBEUI AF_NETBEUI
#define PF_SECURITY AF_SECURITY
+#define PF_KEY pseudo_AF_KEY
#define PF_MAX AF_MAX
diff --git a/include/linux/sunrpc/clnt.h b/include/linux/sunrpc/clnt.h
index 17e80e975..60fb2d74f 100644
--- a/include/linux/sunrpc/clnt.h
+++ b/include/linux/sunrpc/clnt.h
@@ -23,7 +23,7 @@ struct rpc_portmap {
__u32 pm_prog;
__u32 pm_vers;
__u32 pm_prot;
- __u32 pm_port;
+ __u16 pm_port;
};
/*
diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
index 0e01fba0f..e66f2bd87 100644
--- a/include/linux/sysctl.h
+++ b/include/linux/sysctl.h
@@ -104,6 +104,13 @@ enum
/* /proc/sys/net/core */
+enum
+{
+ NET_CORE_WMEM_MAX=1,
+ NET_CORE_RMEM_MAX,
+ NET_CORE_WMEM_DEFAULT,
+ NET_CORE_RMEM_DEFAULT,
+};
/* /proc/sys/net/ethernet */
@@ -140,6 +147,9 @@ enum
NET_IPV4_ACCEPT_REDIRECTS,
NET_IPV4_SECURE_REDIRECTS,
NET_IPV4_RFC1620_REDIRECTS,
+ NET_TCP_SYN_RETRIES,
+ NET_IPFRAG_HIGH_THRESH,
+ NET_IPFRAG_LOW_THRESH,
};
diff --git a/include/linux/tqueue.h b/include/linux/tqueue.h
index acebad9f2..de88d20d1 100644
--- a/include/linux/tqueue.h
+++ b/include/linux/tqueue.h
@@ -83,7 +83,7 @@ extern spinlock_t tqueue_lock;
extern __inline__ void queue_task(struct tq_struct *bh_pointer,
task_queue *bh_list)
{
- if (!set_bit(0,&bh_pointer->sync)) {
+ if (!test_and_set_bit(0,&bh_pointer->sync)) {
unsigned long flags;
spin_lock_irqsave(&tqueue_lock, flags);
bh_pointer->next = *bh_list;
diff --git a/include/linux/tty.h b/include/linux/tty.h
index 7546d632d..109955a8d 100644
--- a/include/linux/tty.h
+++ b/include/linux/tty.h
@@ -294,6 +294,7 @@ extern int lp_init(void);
extern int pty_init(void);
extern int tty_init(void);
extern int pcxe_init(void);
+extern int pc_init(void);
extern int vcs_init(void);
extern int cy_init(void);
extern int stl_init(void);
@@ -336,11 +337,15 @@ extern int n_tty_ioctl(struct tty_struct * tty, struct file * file,
/* serial.c */
extern long serial_console_init(long kmem_start, long kmem_end);
-
+
/* pcxx.c */
extern int pcxe_open(struct tty_struct *tty, struct file *filp);
+/* epca.c */
+
+extern int pc_open(struct tty_struct *tty, struct file *filp);
+
/* console.c */
extern void update_screen(int new_console);
diff --git a/include/linux/zorro.h b/include/linux/zorro.h
index e19289877..95148b35d 100644
--- a/include/linux/zorro.h
+++ b/include/linux/zorro.h
@@ -301,648 +301,6 @@
#define PROD_MASTER_CARD_SCSI (0x04) /* Master Card SCSI Controller */
#define PROD_MVD_819 (0x07) /* MVD 819 */
-#define MANUF_DELACOMP (0x0873) /* DelaComp */
-#define PROD_DELACOMP_RAM_2000 (0x01) /* RAM Expansion 2000 */
-
-#define MANUF_VILLAGE_TRONIC (0x0877) /* Village Tronic */
-#define PROD_DOMINO_RAM (0x01) /* Domino Graphics Board */
-#define PROD_DOMINO_REG (0x02)
-#define PROD_PICASSO_II_RAM (0x0B) /* Picasso II/II+ Graphics Board */
-#define PROD_PICASSO_II_REG (0x0C)
-#define PROD_PICASSO_II_SEGM (0x0D) /* Picasso II/II+ (Segmented Mode) */
-#define PROD_PICASSO_IV (0x15) /* Picassio IV Graphics Board */
-#define PROD_PICASSO_IV_2 (0x16)
-#define PROD_PICASSO_IV_3 (0x17)
-#define PROD_PICASSO_IV_4 (0x18)
-#define PROD_ARIADNE (0xC9) /* Ariadne Ethernet */
-
-#define MANUF_UTILITIES_ULTD (0x087B) /* Utilities Unlimited */
-#define PROD_EMPLANT_DELUXE (0x15) /* Emplant Deluxe SCSI Controller */
-#define PROD_EMPLANT_DELUXE2 (0x20) /* Emplant Deluxe SCSI Controller */
-
-#define MANUF_AMITRIX (0x0880) /* Amitrix */
-#define PROD_AMITRIX_MULTI_IO (0x01) /* Multi-IO */
-#define PROD_AMITRIX_CD_RAM (0x02) /* CD-RAM Memory */
-
-#define MANUF_ARMAX (0x0885) /* ArMax */
-#define PROD_OMNIBUS (0x00) /* OmniBus Graphics Board */
-
-#define MANUF_NEWTEK (0x088F) /* NewTek */
-#define PROD_VIDEOTOASTER (0x00) /* VideoToaster */
-
-#define MANUF_MTEC (0x0890) /* M-Tech Germany */
-#define PROD_AT500 (0x01) /* AT500 IDE Controller */
-#define PROD_MTEC_68030 (0x03) /* 68030 Turbo Board */
-#define PROD_MTEC_68020I (0x06) /* 68020i Turbo Board */
-#define PROD_MTEC_T1230 (0x20) /* A1200 T68030/42 RTC Turbo Board */
-#define PROD_MTEC_RAM (0x22) /* MTEC 8MB RAM */
-
-#define MANUF_GVP2 (0x0891) /* Great Valley Products */
-#define PROD_SPECTRUM_RAM (0x01) /* EGS 28/24 Spectrum Graphics Board */
-#define PROD_SPECTRUM_REG (0x02)
-
-#define MANUF_HELFRICH2 (0x0893) /* Helfrich */
-#define PROD_PICCOLO_RAM (0x05) /* Piccolo Graphics Board */
-#define PROD_PICCOLO_REG (0x06)
-#define PROD_PEGGY_PLUS (0x07) /* PeggyPlus MPEG Decoder Board */
-#define PROD_VIDEOCRUNCHER (0x08) /* VideoCruncher */
-#define PROD_SD64_RAM (0x0A) /* SD64 Graphics Board */
-#define PROD_SD64_REG (0x0B)
-
-#define MANUF_MACROSYSTEMS (0x089B) /* MacroSystems USA */
-#define PROD_WARP_ENGINE (0x13) /* Warp Engine 40xx SCSI Controller */
-
-#define MANUF_ELBOX (0x089E) /* ElBox Computer */
-#define PROD_ELBOX_1200 (0x06) /* Elbox 1200/4 RAM */
-
-#define MANUF_HARMS_PROF (0x0A00) /* Harms Professional */
-#define PROD_HARMS_030_PLUS (0x10) /* 030 plus */
-#define PROD_3500_TURBO (0xD0) /* 3500 Turbo board */
-
-#define MANUF_MICRONIK (0x0A50) /* Micronik */
-#define PROD_RCA_120 (0x0A) /* RCA 120 RAM */
-
-#define MANUF_MEGA_MICRO (0x1000) /* MegaMicro */
-#define PROD_SCRAM_500_SCSI (0x03) /* SCRAM 500 SCSI Controller */
-#define PROD_SCRAM_500_RAM (0x04) /* SCRAM 500 RAM */
-
-#define MANUF_IMTRONICS2 (0x1028) /* Imtronics */
-#define PROD_HURRICANE_2800_3 (0x39) /* Hurricane 2800 68030 */
-#define PROD_HURRICANE_2800_4 (0x57) /* Hurricane 2800 68030 */
-
-#define MANUF_KUPKE3 (0x1248) /* Kupke */
-#define PROD_GOLEM_3000 (0x01) /* Golem HD 3000 */
-
-#define MANUF_ITH (0x1388) /* ITH */
-#define PROD_ISDN_MASTER_II (0x01) /* ISDN-Master II */
-
-#define MANUF_VMC (0x1389) /* VMC */
-#define PROD_ISDN_BLASTER_Z2 (0x01) /* ISDN Blaster Z2 */
-#define PROD_HYPERCOM_4 (0x02) /* HyperCom 4 */
-
-#define MANUF_INFORMATION (0x157C) /* Information */
-#define PROD_ISDN_ENGINE_I (0x64) /* ISDN Engine I */
-
-#define MANUF_VORTEX (0x2017) /* Vortex */
-#define PROD_GOLDEN_GATE_386SX (0x07) /* Golden Gate 80386SX Board */
-#define PROD_GOLDEN_GATE_RAM (0x08) /* Golden Gate RAM */
-#define PROD_GOLDEN_GATE_486 (0x09) /* Golden Gate 80486 Board */
-
-#define MANUF_DATAFLYER (0x2062) /* DataFlyer */
-#define PROD_DATAFLYER_4000SXS (0x01) /* DataFlyer 4000SX SCSI Controller */
-#define PROD_DATAFLYER_4000SXR (0x02) /* DataFlyer 4000SX RAM */
-
-#define MANUF_READYSOFT (0x2100) /* ReadySoft */
-#define PROD_AMAX (0x01) /* AMax II/IV */
-
-#define MANUF_PHASE5 (0x2140) /* Phase5 */
-#define PROD_BLIZZARD_RAM (0x01) /* Blizzard RAM */
-#define PROD_BLIZZARD (0x02) /* Blizzard */
-#define PROD_BLIZZARD_1220_IV (0x06) /* Blizzard 1220-IV Turbo Board */
-#define PROD_FASTLANE_RAM (0x0A) /* FastLane RAM */
-#define PROD_FASTLANE_SCSI (0x0B) /* FastLane/Blizzard 1230-II SCSI/CyberSCSI */
-#define PROD_CYBERSTORM_SCSI (0x0C) /* Blizzard 1220/CyberStorm */
-#define PROD_BLIZZARD_1230_III (0x0D) /* Blizzard 1230-III Turbo Board */
-#define PROD_BLIZZARD_1230_IV (0x11) /* Blizzard 1230-IV/1260 Turbo Board */
-#define PROD_BLIZZARD_2060SCSI (0x18) /* Blizzard 2060 SCSI Controller */
-#define PROD_CYBERSTORM_II (0x19) /* CyberStorm Mk II */
-#define PROD_CYBERVISION (0x22) /* CyberVision64 Graphics Board */
-#define PROD_CYBERVISION3D_PRT (0x32) /* CyberVision64-3D Prototype */
-#define PROD_CYBERVISION3D (0x43) /* CyberVision64-3D Graphics Board */
-
-#define MANUF_DPS (0x2169) /* DPS */
-#define PROD_DPS_PAR (0x01) /* Personal Animation Recorder */
-
-#define MANUF_APOLLO2 (0x2200) /* Apollo */
-#define PROD_A620 (0x00) /* A620 68020 Accelerator */
-#define PROD_A620_2 (0x01) /* A620 68020 Accelerator */
-
-#define MANUF_APOLLO (0x2222) /* Apollo */
-#define PROD_AT_APOLLO (0x22) /* AT-Apollo */
-#define PROD_APOLLO_TURBO (0x23) /* Apollo Turbo Board */
-
-#define MANUF_PETSOFF (0x38A5) /* Petsoff LP */
-#define PROD_DELFINA (0x00) /* Delfina DSP */
-
-#define MANUF_UWE_GERLACH (0x3FF7) /* Uwe Gerlach */
-#define PROD_UG_RAM_ROM (0xd4) /* RAM/ROM */
-
-#define MANUF_MACROSYSTEMS2 (0x4754) /* MacroSystems Germany */
-#define PROD_MAESTRO (0x03) /* Maestro */
-#define PROD_VLAB (0x04) /* VLab */
-#define PROD_MAESTRO_PRO (0x05) /* Maestro Pro */
-#define PROD_RETINA_Z2 (0x06) /* Retina Z2 Graphics Board */
-#define PROD_MULTI_EVOLUTION (0x08) /* MultiEvolution */
-#define PROD_TOCCATA (0x0C) /* Toccata Sound Board */
-#define PROD_RETINA_Z3 (0x10) /* Retina Z3 Graphics Board */
-#define PROD_VLAB_MOTION (0x12) /* VLab Motion */
-#define PROD_ALTAIS (0x13) /* Altais Graphics Board */
-#define PROD_FALCON_040 (0xFD) /* Falcon '040 Turbo Board */
-
-#define MANUF_COMBITEC (0x6766) /* Combitec */
-
-#define MANUF_SKI (0x8000) /* SKI Peripherals */
-#define PROD_MAST_FIREBALL (0x08) /* M.A.S.T. Fireball SCSI Controller */
-#define PROD_SKI_SCSI_SERIAL (0x80) /* SCSI / Dual Serial */
-
-#define MANUF_CAMERON (0xAA01) /* Cameron */
-#define PROD_PERSONAL_A4 (0x10) /* Personal A4 */
-
-#define MANUF_REIS_WARE (0xAA11) /* Reis-Ware */
-#define PROD_RW_HANDYSCANNER (0x11) /* Handyscanner */
-
-
-/* Illegal Manufacturer IDs. These do NOT appear in arch/m68k/amiga/zorro.c! */
-
-#define MANUF_HACKER_INC (0x07DB) /* Hacker Inc. */
-#define PROD_HACKER_SCSI (0x01) /* Hacker Inc. SCSI Controller */
-
-#define MANUF_RES_MNGT_FORCE (0x07DB) /* Resource Management Force */
-#define PROD_QUICKNET (0x02) /* QuickNet Ethernet */
-
-#define MANUF_VECTOR2 (0x07DB) /* Vector */
-#define PROD_CONNECTION_2 (0xE0) /* Vector Connection */
-#define PROD_CONNECTION_3 (0xE1) /* Vector Connection */
-#define PROD_CONNECTION_4 (0xE2) /* Vector Connection */
-#define PROD_CONNECTION_5 (0xE3) /* Vector Connection */
-
-
-/*
- * GVP's identifies most of their product through the 'extended
- * product code' (epc). The epc has to be and'ed with the GVP_PRODMASK
- * before the identification.
- */
-
-#define GVP_PRODMASK (0xf8)
-#define GVP_SCSICLKMASK (0x01)
-
-enum GVP_ident {
- GVP_GFORCE_040 = 0x20,
- GVP_GFORCE_040_SCSI = 0x30,
- GVP_A1291_SCSI = 0x40,
- GVP_COMBO_R4 = 0x60,
- GVP_COMBO_R4_SCSI = 0x70,
- GVP_PHONEPAK = 0x78,
- GVP_IOEXT = 0x98,
- GVP_GFORCE_030 = 0xa0,
- GVP_GFORCE_030_SCSI = 0xb0,
- GVP_A530 = 0xc0,
- GVP_A530_SCSI = 0xd0,
- GVP_COMBO_R3 = 0xe0,
- GVP_COMBO_R3_SCSI = 0xf0,
- GVP_SERIESII = 0xf8,
-};
-
-enum GVP_flags {
- GVP_IO = 0x01,
- GVP_ACCEL = 0x02,
- GVP_SCSI = 0x04,
- GVP_24BITDMA = 0x08,
- GVP_25BITDMA = 0x10,
- GVP_NOBANK = 0x20,
- GVP_14MHZ = 0x40,
-};
-
-
-struct Node {
- struct Node *ln_Succ; /* Pointer to next (successor) */
- struct Node *ln_Pred; /* Pointer to previous (predecessor) */
- u_char ln_Type;
- char ln_Pri; /* Priority, for sorting */
- char *ln_Name; /* ID string, null terminated */
-};
-
-struct ExpansionRom {
- /* -First 16 bytes of the expansion ROM */
- u_char er_Type; /* Board type, size and flags */
- u_char er_Product; /* Product number, assigned by manufacturer */
- u_char er_Flags; /* Flags */
- u_char er_Reserved03; /* Must be zero ($ff inverted) */
- u_short er_Manufacturer; /* Unique ID,ASSIGNED BY COMMODORE-AMIGA! */
- u_long er_SerialNumber; /* Available for use by manufacturer */
- u_short er_InitDiagVec; /* Offset to optional "DiagArea" structure */
- u_char er_Reserved0c;
- u_char er_Reserved0d;
- u_char er_Reserved0e;
- u_char er_Reserved0f;
-};
-
-/* er_Type board type bits */
-#define ERT_TYPEMASK 0xc0
-#define ERT_ZORROII 0xc0
-#define ERT_ZORROIII 0x80
-
-/* other bits defined in er_Type */
-#define ERTB_MEMLIST 5 /* Link RAM into free memory list */
-#define ERTF_MEMLIST (1<<5)
-
-struct ConfigDev {
- struct Node cd_Node;
- u_char cd_Flags; /* (read/write) */
- u_char cd_Pad; /* reserved */
- struct ExpansionRom cd_Rom; /* copy of board's expansion ROM */
- void *cd_BoardAddr; /* where in memory the board was placed */
- u_long cd_BoardSize; /* size of board in bytes */
- u_short cd_SlotAddr; /* which slot number (PRIVATE) */
- u_short cd_SlotSize; /* number of slots (PRIVATE) */
- void *cd_Driver; /* pointer to node of driver */
- struct ConfigDev *cd_NextCD; /* linked list of drivers to config */
- u_long cd_Unused[4]; /* for whatever the driver wants */
-};
-
-#else /* __ASSEMBLY__ */
-
-LN_Succ = 0
-LN_Pred = LN_Succ+4
-LN_Type = LN_Pred+4
-LN_Pri = LN_Type+1
-LN_Name = LN_Pri+1
-LN_sizeof = LN_Name+4
-
-ER_Type = 0
-ER_Product = ER_Type+1
-ER_Flags = ER_Product+1
-ER_Reserved03 = ER_Flags+1
-ER_Manufacturer = ER_Reserved03+1
-ER_SerialNumber = ER_Manufacturer+2
-ER_InitDiagVec = ER_SerialNumber+4
-ER_Reserved0c = ER_InitDiagVec+2
-ER_Reserved0d = ER_Reserved0c+1
-ER_Reserved0e = ER_Reserved0d+1
-ER_Reserved0f = ER_Reserved0e+1
-ER_sizeof = ER_Reserved0f+1
-
-CD_Node = 0
-CD_Flags = CD_Node+LN_sizeof
-CD_Pad = CD_Flags+1
-CD_Rom = CD_Pad+1
-CD_BoardAddr = CD_Rom+ER_sizeof
-CD_BoardSize = CD_BoardAddr+4
-CD_SlotAddr = CD_BoardSize+4
-CD_SlotSize = CD_SlotAddr+2
-CD_Driver = CD_SlotSize+2
-CD_NextCD = CD_Driver+4
-CD_Unused = CD_NextCD+4
-CD_sizeof = CD_Unused+(4*4)
-
-#endif /* __ASSEMBLY__ */
-
-#ifndef __ASSEMBLY__
-
-#define ZORRO_NUM_AUTO 16
-
-#ifdef __KERNEL__
-
-extern int zorro_num_autocon; /* # of autoconfig devices found */
-extern struct ConfigDev zorro_autocon[ZORRO_NUM_AUTO];
-
-
-/*
- * Zorro Functions
- */
-
-extern int zorro_find(int manuf, int prod, int part, int index);
-extern struct ConfigDev *zorro_get_board(int key);
-extern void zorro_config_board(int key, int part);
-extern void zorro_unconfig_board(int key, int part);
-
-
-/*
- * Bitmask indicating portions of available Zorro II RAM that are unused
- * by the system. Every bit represents a 64K chunk, for a maximum of 8MB
- * (128 chunks, physical 0x00200000-0x009fffff).
- *
- * If you want to use (= allocate) portions of this RAM, you should clear
- * the corresponding bits.
- */
-
-extern u_long zorro_unused_z2ram[4];
-
-#define Z2RAM_START (0x00200000)
-#define Z2RAM_END (0x00a00000)
-#define Z2RAM_SIZE (0x00800000)
-#define Z2RAM_CHUNKSIZE (0x00010000)
-#define Z2RAM_CHUNKMASK (0x0000ffff)
-#define Z2RAM_CHUNKSHIFT (16)
-
-
-/*
- * Verbose Board Identification
- */
-
-extern void zorro_identify(void);
-extern int zorro_get_list(char *buffer);
-
-#endif /* !__ASSEMBLY__ */
-#endif /* __KERNEL__ */
-
-#endif /* __ZORRO_H */
-/*
- * linux/zorro.h -- Amiga AutoConfig (Zorro) Expansion Device Definitions
- *
- * Copyright (C) 1995 Geert Uytterhoeven
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file COPYING in the main directory of this archive
- * for more details.
- */
-
-#ifndef __ZORRO_H
-#define __ZORRO_H
-
-#ifndef __ASSEMBLY__
-
-/*
- * Defined Board Manufacturers
- *
- * Please update arch/m68k/amiga/zorro.c if you make changes here
- * Many IDs were obtained from ExpName/Identify ((C) Richard Körber)
- * and by looking at the NetBSD-Amiga kernel sources
- */
-
-#define MANUF_PACIFIC (0x00D3) /* Pacific Peripherals */
-#define PROD_SE_2000_A500 (0x00) /* SE 2000 A500 */
-#define PROD_PACIFIC_HD (0x0A) /* HD Controller */
-
-#define MANUF_KUPKE (0x00DD) /* Kupke */
-#define PROD_GOLEM_BOX_2 (0x00) /* Golem RAM Box 2MB */
-
-#define MANUF_MEMPHIS (0x0100) /* Memphis */
-#define PROD_STORMBRINGER (0x00) /* Stormbringer */
-
-#define MANUF_3_STATE (0x0200) /* 3-State */
-#define PROD_MEGAMIX_2000 (0x02) /* Megamix 2000 RAM */
-
-#define MANUF_COMMODORE2 (0x0201) /* Commodore Braunschweig */
-#define PROD_A2088 (0x01) /* CBM A2088 XT Bridgeboard */
-#define PROD_A2286 (0x02) /* CBM A2286 AT Bridgeboard */
-#define PROD_A4091_2 (0x54) /* CBM A4091 SCSI Controller */
-#define PROD_A2386SX (0x67) /* CBM A2386-SX Bridgeboard */
-
-#define MANUF_COMMODORE (0x0202) /* Commodore West Chester */
-#define PROD_A2090A (0x01) /* CBM A2090/A2090A HD Controller */
-#define PROD_A590 (0x02) /* CBM A590 SCSI Controller */
-#define PROD_A2091 (0x03) /* CBM A2091 SCSI Controller */
-#define PROD_A2090B (0x04) /* CBM A2090B 2090 Autoboot Card */
-#define PROD_ARCNET (0x09) /* CBM A2060 Arcnet Card */
-#define PROD_CBMRAM (0x0A) /* CBM A2052/58.RAM | 590/2091.RAM */
-#define PROD_A560RAM (0x20) /* CBM A560 Memory Module */
-#define PROD_A2232PROTO (0x45) /* CBM A2232 Serial Prototype */
-#define PROD_A2232 (0x46) /* CBM A2232 Serial Production */
-#define PROD_A2620 (0x50) /* CBM A2620 68020/RAM Card */
-#define PROD_A2630 (0x51) /* CBM A2630 68030/RAM Card */
-#define PROD_A4091 (0x54) /* CBM A4091 SCSI Controller */
-#define PROD_A2065_2 (0x5A) /* A2065 Ethernet Card */
-#define PROD_ROMULATOR (0x60) /* CBM Romulator Card */
-#define PROD_A3000TESTFIX (0x61) /* CBM A3000 Test Fixture */
-#define PROD_A2386SX_2 (0x67) /* A2386-SX Bridgeboard */
-#define PROD_A2065 (0x70) /* CBM A2065 Ethernet Card */
-
-#define MANUF_COMMODORE3 (0x0203) /* Commodore West Chester */
-#define PROD_A2090A_CM (0x03) /* A2090A Combitec/MacroSystem */
-
-#define MANUF_KCS (0x02FF) /* Kolff Computer Supplies */
-#define PROD_POWER_BOARD (0x00) /* KCS Power PC Board */
-
-#define MANUF_CARDCO (0x03EC) /* Cardco */
-#define PROD_KRONOS_2000_SCSI (0x04) /* Kronos 2000 SCSI Controller */
-#define PROD_A1000_SCSI (0x0C) /* A1000 SCSI Controller */
-#define PROD_ESCORT_SCSI (0x0E) /* Escort SCSI Controller */
-#define PROD_CC_A2410 (0xF5) /* Cardco A2410 Hires Graphics Card */
-
-#define MANUF_A_SQUARED (0x03ED) /* A-Squared */
-#define PROD_LIVE_2000 (0x01) /* Live! 2000 */
-
-#define MANUF_COMSPEC (0x03EE) /* ComSpec Communications */
-#define PROD_AX2000 (0x01) /* AX2000 */
-
-#define MANUF_ANAKIN (0x03F1) /* Anakin */
-#define PROD_EASYL (0x01) /* Easyl Tablet */
-
-#define MANUF_MICROBOTICS (0x03F2) /* MicroBotics */
-#define PROD_STARBOARD_II (0x00) /* StarBoard II */
-#define PROD_STARDRIVE (0x02) /* StarDrive */
-#define PROD_8_UP_A (0x03) /* 8-Up (Rev A) */
-#define PROD_8_UP_Z (0x04) /* 8-Up (Rev Z) */
-#define PROD_DELTA_RAM (0x20) /* Delta Card RAM */
-#define PROD_8_STAR_RAM (0x40) /* 8-Star RAM */
-#define PROD_8_STAR (0x41) /* 8-Star */
-#define PROD_VXL_RAM (0x44) /* VXL RAM */
-#define PROD_VXL_30 (0x45) /* VXL-30 Turbo Board */
-#define PROD_DELTA (0x60) /* Delta Card */
-#define PROD_MBX_1200 (0x81) /* MBX 1200 */
-#define PROD_HARDFRAME_2000 (0x9E) /* Hardframe 2000 */
-#define PROD_MBX_1200_2 (0xC1) /* MBX 1200 */
-
-#define MANUF_ACCESS (0x03F4) /* Access Associates */
-
-#define MANUF_EXPANSION_TECH (0x03F6) /* Expansion Technologies */
-
-#define MANUF_ASDG (0x03FF) /* ASDG */
-#define PROD_ASDG_MEMORY (0x01) /* Memory Expansion */
-#define PROD_ASDG_MEMORY_2 (0x02) /* Memory Expansion */
-#define PROD_LAN_ROVER (0xFE) /* Lan Rover Ethernet */
-#define PROD_TWIN_X (0xFF) /* Twin-X Serial Card */
-
-#define MANUF_IMTRONICS (0x0404) /* Imtronics */
-#define PROD_HURRICANE_2800 (0x39) /* Hurricane 2800 68030 */
-#define PROD_HURRICANE_2800_2 (0x57) /* Hurricane 2800 68030 */
-
-#define MANUF_UNIV_OF_LOWELL (0x0406) /* University of Lowell */
-#define PROD_A2410 (0x00) /* CBM A2410 Hires Graphics Card */
-
-#define MANUF_AMERISTAR (0x041D) /* Ameristar */
-#define PROD_AMERISTAR2065 (0x01) /* A2065 Ethernet Card */
-#define PROD_A560 (0x09) /* Arcnet Card */
-#define PROD_A4066 (0x0A) /* A4066 Ethernet Card */
-
-#define MANUF_SUPRA (0x0420) /* Supra */
-#define PROD_SUPRADRIVE_4x4 (0x01) /* SupraDrive 4x4 SCSI Controller */
-#define PROD_SUPRA_2000 (0x03) /* 2000 DMA HD */
-#define PROD_SUPRA_500 (0x05) /* 500 HD/RAM */
-#define PROD_SUPRA_500XP (0x09) /* 500XP/2000 RAM */
-#define PROD_SUPRA_500RX (0x0A) /* 500RX/2000 RAM */
-#define PROD_SUPRA_2400ZI (0x0B) /* 2400zi Modem */
-#define PROD_WORDSYNC (0x0C) /* Supra Wordsync SCSI Controller */
-#define PROD_WORDSYNC_II (0x0D) /* Supra Wordsync II SCSI Controller */
-#define PROD_SUPRA_2400ZIPLUS (0x10) /* 2400zi+ Modem */
-
-#define MANUF_CSA (0x0422) /* Computer Systems Ass. */
-#define PROD_MAGNUM (0x11) /* Magnum 40 SCSI Controller */
-#define PROD_12GAUGE (0x15) /* 12 Gauge SCSI Controller */
-
-#define MANUF_MTEC2 (0x0502) /* M-Tech */
-#define PROD_AT500_2 (0x03) /* AT500 RAM */
-
-#define MANUF_GVP3 (0x06E1) /* Great Valley Products */
-#define PROD_IMPACT (0x08) /* Impact SCSI/Memory */
-
-#define MANUF_BYTEBOX (0x07DA) /* ByteBox */
-#define PROD_BYTEBOX_A500 (0x00) /* A500 */
-
-#define MANUF_HACKER (0x07DB) /* Test only: no product definitions */
-
-#define MANUF_POWER_COMPUTING (0x07DC) /* Power Computing (DKB) */
-#define PROD_DKB_3128 (0x0E) /* DKB 3128 RAM */
-#define PROD_RAPID_FIRE (0x0F) /* Rapid Fire SCSI Controller */
-#define PROD_DKB_1202 (0x10) /* DKB 1202 RAM */
-#define PROD_VIPER_II_COBRA (0x12) /* Viper II Turbo Board (DKB Cobra) */
-#define PROD_WILDFIRE_060 (0x17) /* WildFire 060 Turbo Board */
-#define PROD_WILDFIRE_060_2 (0xFF) /* WildFire 060 Turbo Board */
-
-#define MANUF_GVP (0x07E1) /* Great Valley Products */
-#define PROD_IMPACT_I_4K (0x01) /* Impact Series-I SCSI 4K */
-#define PROD_IMPACT_I_16K_2 (0x02) /* Impact Series-I SCSI 16K/2 */
-#define PROD_IMPACT_I_16K_3 (0x03) /* Impact Series-I SCSI 16K/3 */
-#define PROD_IMPACT_3001_IDE (0x08) /* Impact 3001 IDE */
-#define PROD_IMPACT_3001_RAM (0x09) /* Impact 3001 RAM */
-#define PROD_GVPIISCSI (0x0B) /* GVP Series II SCSI Controller */
-#define PROD_GVPIISCSI_2 (0x09) /* evidence that the driver works
- for this product code also */
-#define PROD_GVPIIRAM (0x0A) /* GVP Series II RAM */
-#define PROD_GVP (0x0B) /* This code is used by a wide range of
- GVP products - use the epc to
- identify it correctly */
-#define PROD_GVP_A2000_030 (0x0D) /* GVP A2000 68030 Turbo Board */
-#define PROD_IMPACT_3001_IDE_2 (0x0D) /* Impact 3001 IDE */
-#define PROD_GFORCE_040_SCSI (0x16) /* GForce 040 with SCSI (new) */
-#define PROD_GVPIV_24 (0x20) /* GVP IV-24 Graphics Board */
-#define PROD_GFORCE_040 (0xFF) /* GForce 040 Turbo Board */
-/* #define PROD_GVPIO_EXT (0xFF)*/ /* GVP I/O Extender */
-
-#define MANUF_SYNERGY (0x07E5) /* Synergy */
-
-#define MANUF_XETEC (0x07E6) /* Xetec */
-#define PROD_FASTCARD_SCSI (0x01) /* FastCard SCSI Controller */
-#define PROD_FASTCARD_RAM (0x02) /* FastCard RAM */
-
-#define MANUF_PPI (0x07EA) /* Progressive Peripherals Inc. */
-#define PROD_MERCURY (0x00) /* Mercury Turbo Board */
-#define PROD_PPS_A3000_040 (0x01) /* PP&S A3000 68040 Turbo Board */
-#define PROD_PPS_A2000_040 (0x69) /* PP&S A2000 68040 Turbo Board */
-#define PROD_ZEUS (0x96) /* Zeus SCSI Controller */
-#define PROD_PPS_A500_040 (0xBB) /* PP&S A500 68040 Turbo Board */
-
-#define MANUF_XEBEC (0x07EC) /* Xebec */
-
-#define MANUF_SPIRIT (0x07F2) /* Spirit */
-#define PROD_HDA_506 (0x04) /* HDA 506 Harddisk */
-#define PROD_OCTABYTE_RAM (0x06) /* OctaByte RAM */
-
-#define MANUF_BSC (0x07FE) /* BSC */
-#define PROD_ALF_3_SCSI (0x03) /* BSC ALF 3 SCSI Controller */
-
-#define MANUF_BSC3 (0x0801) /* BSC */
-#define PROD_ALF_2_SCSI (0x01) /* ALF 2 SCSI Controller */
-#define PROD_ALF_2_SCSI_2 (0x02) /* ALF 2 SCSI Controller */
-#define PROD_ALF_3_SCSI_2 (0x03) /* ALF 3 SCSI Controller */
-
-#define MANUF_C_LTD (0x0802) /* C Ltd. */
-#define PROD_KRONOS_SCSI (0x04) /* Kronos SCSI Controller */
-#define PROD_A1000_SCSI_2 (0x0C) /* A1000 SCSI Controller */
-
-#define MANUF_JOCHHEIM (0x0804) /* Jochheim */
-#define PROD_JOCHHEIM_RAM (0x01) /* Jochheim RAM */
-
-#define MANUF_CHECKPOINT (0x0807) /* Checkpoint Technologies */
-#define PROD_SERIAL_SOLUTION (0x00) /* Serial Solution */
-
-#define MANUF_ICD (0x0817) /* ICD */
-#define PROD_ADVANTAGE_2000 (0x01) /* Advantage 2000 SCSI Controller */
-
-#define MANUF_KUPKE2 (0x0819) /* Kupke */
-#define PROD_KUPKE_SCSI_II (0x02) /* Golem SCSI-II Controller */
-#define PROD_GOLEM_BOX (0x03) /* Golem Box */
-#define PROD_KUPKE_TURBO (0x04) /* 030/882 Turbo Board */
-#define PROD_KUPKE_SCSI_AT (0x05) /* SCSI/AT Controller */
-
-#define MANUF_GVP4 (0x081D) /* Great Valley Products */
-#define PROD_A2000_RAM8 (0x09) /* A2000-RAM8/2 */
-
-#define MANUF_INTERWORKS_NET (0x081E) /* Interworks Network */
-
-#define MANUF_HARDITAL (0x0820) /* Hardital Synthesis */
-#define PROD_TQM (0x14) /* TQM 68030+68882 Turbo Board */
-
-#define MANUF_BSC2 (0x082C) /* BSC */
-#define PROD_OKTAGON_SCSI (0x05) /* BSC Oktagon 2008 SCSI Controller */
-#define PROD_TANDEM (0x06) /* BSC Tandem AT-2008/508 IDE */
-#define PROD_ALPHA_RAM_1200 (0x07) /* Alpha RAM 1200 */
-#define PROD_OKTAGON_RAM (0x08) /* BSC Oktagon 2008 RAM */
-#define PROD_MULTIFACE_I (0x10) /* Alfa Data MultiFace I */
-#define PROD_MULTIFACE_II (0x11) /* Alfa Data MultiFace II */
-#define PROD_MULTIFACE_III (0x12) /* Alfa Data MultiFace III */
-#define PROD_BSC_FRAEMBUFFER (0x20) /* Framebuffer */
-#define PROD_GRAFFITI_RAM (0x21) /* Graffiti Graphics Board */
-#define PROD_GRAFFITI_REG (0x22)
-#define PROD_ISDN_MASTERCARD (0x40) /* BSC ISDN MasterCard */
-#define PROD_ISDN_MASTERCARD_2 (0x41) /* BSC ISDN MasterCard II */
-
-#define MANUF_ADV_SYS_SOFT (0x0836) /* Advanced Systems & Software */
-#define PROD_NEXUS_SCSI (0x01) /* Nexus SCSI Controller */
-#define PROD_NEXUS_RAM (0x08) /* Nexus RAM */
-
-#define MANUF_IMPULSE (0x0838) /* Impulse */
-#define PROD_FIRECRACKER_24 (0x00) /* FireCracker 24 */
-
-#define MANUF_IVS (0x0840) /* IVS */
-#define PROD_GRANDSLAM_PIC_2 (0x02) /* GrandSlam PIC 2 RAM */
-#define PROD_GRANDSLAM_PIC_1 (0x04) /* GrandSlam PIC 1 RAM */
-#define PROD_IVS_OVERDRIVE (0x10) /* OverDrive HD */
-#define PROD_TRUMPCARD_CLASSIC (0x30) /* Trumpcard Classic SCSI Controller */
-#define PROD_TRUMPCARD_PRO (0x34) /* Trumpcard Pro SCSI Controller */
-#define PROD_META_4 (0x40) /* Meta-4 RAM */
-#define PROD_WAVETOOLS (0xBF) /* Wavetools Sound Board */
-#define PROD_VECTOR (0xF3) /* Vector SCSI Controller */
-#define PROD_VECTOR_2 (0xF4) /* Vector SCSI Controller */
-
-#define MANUF_VECTOR (0x0841) /* Vector */
-#define PROD_CONNECTION (0xE3) /* Connection Serial IO */
-
-#define MANUF_XPERT_PRODEV (0x0845) /* XPert/ProDev */
-#define PROD_VISIONA_RAM (0x01) /* Visiona Graphics Board */
-#define PROD_VISIONA_REG (0x02)
-#define PROD_MERLIN_RAM (0x03) /* Merlin Graphics Board */
-#define PROD_MERLIN_REG (0x04)
-#define PROD_MERLIN_REG_2 (0xC9)
-
-#define MANUF_HYDRA_SYSTEMS (0x0849) /* Hydra Systems */
-#define PROD_AMIGANET (0x01) /* Amiganet Board */
-
-#define MANUF_SUNRIZE (0x084F) /* Sunrize Industries */
-#define PROD_AD1012 (0x01) /* AD1012 Sound Board */
-#define PROD_AD516 (0x02) /* AD516 Sound Board */
-#define PROD_DD512 (0x03) /* DD512 Sound Board */
-
-#define MANUF_TRICERATOPS (0x0850) /* Triceratops */
-#define PROD_TRICERATOPS (0x01) /* Triceratops Multi I/O Board */
-
-#define MANUF_APPLIED_MAGIC (0x0851) /* Applied Magic Inc */
-#define PROD_DMI_RESOLVER (0x01) /* DMI Resolver Graphics Board */
-#define PROD_DIGITAL_BCASTER (0x06) /* Digital Broadcaster */
-
-#define MANUF_GFX_BASE (0x085E) /* GFX-Base */
-#define PROD_GDA_1_RAM (0x00) /* GDA-1 Graphics Board */
-#define PROD_GDA_1_REG (0x01)
-
-#define MANUF_ROCTEC (0x0860) /* RocTec */
-#define PROD_RH_800C (0x01) /* RH 800C Hard Disk Controller */
-#define PROD_RH_800C_RAM (0x01) /* RH 800C RAM */
-
-#define MANUF_HELFRICH1 (0x0861) /* Helfrich */
-#define PROD_RAINBOW3 (0x21) /* Rainbow3 Graphics Board */
-
-#define MANUF_SW_RESULT_ENTS (0x0866) /* Software Result Enterprises */
-#define PROD_GG2PLUS (0x01) /* GG2+ Bus Converter */
-
-#define MANUF_MASOBOSHI (0x086D) /* Masoboshi */
-#define PROD_MASTER_CARD_RAM (0x03) /* Master Card RAM */
-#define PROD_MASTER_CARD_SCSI (0x04) /* Master Card SCSI Controller */
-#define PROD_MVD_819 (0x07) /* MVD 819 */
-
-#define MANUF_DELACOMP (0x0873) /* DelaComp */
-#define PROD_DELACOMP_RAM_2000 (0x01) /* RAM Expansion 2000 */
-
#define MANUF_VILLAGE_TRONIC (0x0877) /* Village Tronic */
#define PROD_DOMINO_RAM (0x01) /* Domino Graphics Board */
#define PROD_DOMINO_REG (0x02)