bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Remove duplicate pfinet linux headers that have glue version


From: Samuel Thibault
Subject: Re: [PATCH] Remove duplicate pfinet linux headers that have glue versions
Date: Sun, 6 Nov 2022 14:46:50 +0100
User-agent: NeoMutt/20170609 (1.8.3)

Applied, thanks!

But that said, the long-term plan is to rather use lwip, so better spend
time on testing it and fixing any remaining issue there so we can finish
the switch to it.

Samuel

Flavio Cruz, le jeu. 03 nov. 2022 01:09:21 -0400, a ecrit:
> ---
>  pfinet/linux-src/include/linux/binfmts.h     |  77 --
>  pfinet/linux-src/include/linux/config.h      |   6 -
>  pfinet/linux-src/include/linux/errno.h       |  16 -
>  pfinet/linux-src/include/linux/fcntl.h       |   6 -
>  pfinet/linux-src/include/linux/fs.h          | 910 -------------------
>  pfinet/linux-src/include/linux/if.h          | 138 ---
>  pfinet/linux-src/include/linux/in.h          | 189 ----
>  pfinet/linux-src/include/linux/in6.h         | 194 ----
>  pfinet/linux-src/include/linux/interrupt.h   |  84 --
>  pfinet/linux-src/include/linux/ioctl.h       |   6 -
>  pfinet/linux-src/include/linux/ipv6.h        | 132 ---
>  pfinet/linux-src/include/linux/kernel.h      |  96 --
>  pfinet/linux-src/include/linux/limits.h      |  19 -
>  pfinet/linux-src/include/linux/major.h       | 135 ---
>  pfinet/linux-src/include/linux/malloc.h      |   5 -
>  pfinet/linux-src/include/linux/mm.h          | 392 --------
>  pfinet/linux-src/include/linux/param.h       |   6 -
>  pfinet/linux-src/include/linux/personality.h |  57 --
>  pfinet/linux-src/include/linux/poll.h        | 107 ---
>  pfinet/linux-src/include/linux/proc_fs.h     | 472 ----------
>  pfinet/linux-src/include/linux/sched.h       | 813 -----------------
>  pfinet/linux-src/include/linux/slab.h        |  71 --
>  pfinet/linux-src/include/linux/socket.h      | 280 ------
>  pfinet/linux-src/include/linux/sockios.h     | 109 ---
>  pfinet/linux-src/include/linux/stat.h        |  57 --
>  pfinet/linux-src/include/linux/string.h      |  43 -
>  pfinet/linux-src/include/linux/termios.h     |   7 -
>  pfinet/linux-src/include/linux/time.h        |  92 --
>  pfinet/linux-src/include/linux/timer.h       |  96 --
>  pfinet/linux-src/include/linux/timex.h       | 277 ------
>  pfinet/linux-src/include/linux/types.h       | 108 ---
>  pfinet/linux-src/include/linux/un.h          |  11 -
>  pfinet/linux-src/include/linux/wait.h        |  33 -
>  33 files changed, 5044 deletions(-)
>  delete mode 100644 pfinet/linux-src/include/linux/binfmts.h
>  delete mode 100644 pfinet/linux-src/include/linux/config.h
>  delete mode 100644 pfinet/linux-src/include/linux/errno.h
>  delete mode 100644 pfinet/linux-src/include/linux/fcntl.h
>  delete mode 100644 pfinet/linux-src/include/linux/fs.h
>  delete mode 100644 pfinet/linux-src/include/linux/if.h
>  delete mode 100644 pfinet/linux-src/include/linux/in.h
>  delete mode 100644 pfinet/linux-src/include/linux/in6.h
>  delete mode 100644 pfinet/linux-src/include/linux/interrupt.h
>  delete mode 100644 pfinet/linux-src/include/linux/ioctl.h
>  delete mode 100644 pfinet/linux-src/include/linux/ipv6.h
>  delete mode 100644 pfinet/linux-src/include/linux/kernel.h
>  delete mode 100644 pfinet/linux-src/include/linux/limits.h
>  delete mode 100644 pfinet/linux-src/include/linux/major.h
>  delete mode 100644 pfinet/linux-src/include/linux/malloc.h
>  delete mode 100644 pfinet/linux-src/include/linux/mm.h
>  delete mode 100644 pfinet/linux-src/include/linux/param.h
>  delete mode 100644 pfinet/linux-src/include/linux/personality.h
>  delete mode 100644 pfinet/linux-src/include/linux/poll.h
>  delete mode 100644 pfinet/linux-src/include/linux/proc_fs.h
>  delete mode 100644 pfinet/linux-src/include/linux/sched.h
>  delete mode 100644 pfinet/linux-src/include/linux/slab.h
>  delete mode 100644 pfinet/linux-src/include/linux/socket.h
>  delete mode 100644 pfinet/linux-src/include/linux/sockios.h
>  delete mode 100644 pfinet/linux-src/include/linux/stat.h
>  delete mode 100644 pfinet/linux-src/include/linux/string.h
>  delete mode 100644 pfinet/linux-src/include/linux/termios.h
>  delete mode 100644 pfinet/linux-src/include/linux/time.h
>  delete mode 100644 pfinet/linux-src/include/linux/timer.h
>  delete mode 100644 pfinet/linux-src/include/linux/timex.h
>  delete mode 100644 pfinet/linux-src/include/linux/types.h
>  delete mode 100644 pfinet/linux-src/include/linux/un.h
>  delete mode 100644 pfinet/linux-src/include/linux/wait.h
> 
> diff --git a/pfinet/linux-src/include/linux/binfmts.h 
> b/pfinet/linux-src/include/linux/binfmts.h
> deleted file mode 100644
> index 0d34d35b..00000000
> --- a/pfinet/linux-src/include/linux/binfmts.h
> +++ /dev/null
> @@ -1,77 +0,0 @@
> -#ifndef _LINUX_BINFMTS_H
> -#define _LINUX_BINFMTS_H
> -
> -#include <linux/ptrace.h>
> -#include <linux/capability.h>
> -
> -/*
> - * MAX_ARG_PAGES defines the number of pages allocated for arguments
> - * and envelope for the new program. 32 should suffice, this gives
> - * a maximum env+arg of 128kB w/4KB pages!
> - */
> -#define MAX_ARG_PAGES 32
> -
> -#ifdef __KERNEL__
> -
> -/*
> - * This structure is used to hold the arguments that are used when loading 
> binaries.
> - */
> -struct linux_binprm{
> -     char buf[128];
> -     unsigned long page[MAX_ARG_PAGES];
> -     unsigned long p;
> -     int sh_bang;
> -     int java;               /* Java binary, prevent recursive invocation */
> -     struct dentry * dentry;
> -     int e_uid, e_gid;
> -     kernel_cap_t cap_inheritable, cap_permitted, cap_effective;
> -     int argc, envc;
> -     char * filename;        /* Name of binary */
> -     unsigned long loader, exec;
> -};
> -
> -/*
> - * This structure defines the functions that are used to load the binary 
> formats that
> - * linux accepts.
> - */
> -struct linux_binfmt {
> -     struct linux_binfmt * next;
> -     struct module *module;
> -     int (*load_binary)(struct linux_binprm *, struct  pt_regs * regs);
> -     int (*load_shlib)(int fd);
> -     int (*core_dump)(long signr, struct pt_regs * regs);
> -};
> -
> -extern int register_binfmt(struct linux_binfmt *);
> -extern int unregister_binfmt(struct linux_binfmt *);
> -
> -extern int read_exec(struct dentry *, unsigned long offset,
> -     char * addr, unsigned long count, int to_kmem);
> -
> -extern int open_dentry(struct dentry *, int mode);
> -
> -extern int init_elf_binfmt(void);
> -extern int init_elf32_binfmt(void);
> -extern int init_irix_binfmt(void);
> -extern int init_aout_binfmt(void);
> -extern int init_aout32_binfmt(void);
> -extern int init_script_binfmt(void);
> -extern int init_java_binfmt(void);
> -extern int init_em86_binfmt(void);
> -extern int init_misc_binfmt(void);
> -
> -extern int prepare_binprm(struct linux_binprm *);
> -extern void remove_arg_zero(struct linux_binprm *);
> -extern int search_binary_handler(struct linux_binprm *,struct pt_regs *);
> -extern int flush_old_exec(struct linux_binprm * bprm);
> -extern unsigned long setup_arg_pages(unsigned long p, struct linux_binprm * 
> bprm);
> -extern unsigned long copy_strings(int argc,char ** argv,unsigned long *page,
> -             unsigned long p, int from_kmem);
> -
> -extern void compute_creds(struct linux_binprm *binprm);
> -
> -/* this eventually goes away */
> -#define change_ldt(a,b) setup_arg_pages(a,b)
> -
> -#endif /* __KERNEL__ */
> -#endif /* _LINUX_BINFMTS_H */
> diff --git a/pfinet/linux-src/include/linux/config.h 
> b/pfinet/linux-src/include/linux/config.h
> deleted file mode 100644
> index 9d1c14f7..00000000
> --- a/pfinet/linux-src/include/linux/config.h
> +++ /dev/null
> @@ -1,6 +0,0 @@
> -#ifndef _LINUX_CONFIG_H
> -#define _LINUX_CONFIG_H
> -
> -#include <linux/autoconf.h>
> -
> -#endif
> diff --git a/pfinet/linux-src/include/linux/errno.h 
> b/pfinet/linux-src/include/linux/errno.h
> deleted file mode 100644
> index ac212844..00000000
> --- a/pfinet/linux-src/include/linux/errno.h
> +++ /dev/null
> @@ -1,16 +0,0 @@
> -#ifndef _LINUX_ERRNO_H
> -#define _LINUX_ERRNO_H
> -
> -#include <asm/errno.h>
> -
> -#ifdef __KERNEL__
> -
> -/* Should never be seen by user programs */
> -#define ERESTARTSYS  512
> -#define ERESTARTNOINTR       513
> -#define ERESTARTNOHAND       514     /* restart if no handler.. */
> -#define ENOIOCTLCMD  515     /* No ioctl command */
> -
> -#endif
> -
> -#endif
> diff --git a/pfinet/linux-src/include/linux/fcntl.h 
> b/pfinet/linux-src/include/linux/fcntl.h
> deleted file mode 100644
> index 9de3512e..00000000
> --- a/pfinet/linux-src/include/linux/fcntl.h
> +++ /dev/null
> @@ -1,6 +0,0 @@
> -#ifndef _LINUX_FCNTL_H
> -#define _LINUX_FCNTL_H
> -
> -#include <asm/fcntl.h>
> -
> -#endif
> diff --git a/pfinet/linux-src/include/linux/fs.h 
> b/pfinet/linux-src/include/linux/fs.h
> deleted file mode 100644
> index 548b9d74..00000000
> --- a/pfinet/linux-src/include/linux/fs.h
> +++ /dev/null
> @@ -1,910 +0,0 @@
> -#ifndef _LINUX_FS_H
> -#define _LINUX_FS_H
> -
> -/*
> - * This file has definitions for some important file table
> - * structures etc.
> - */
> -
> -#include <linux/config.h>
> -#include <linux/linkage.h>
> -#include <linux/limits.h>
> -#include <linux/wait.h>
> -#include <linux/types.h>
> -#include <linux/vfs.h>
> -#include <linux/net.h>
> -#include <linux/kdev_t.h>
> -#include <linux/ioctl.h>
> -#include <linux/list.h>
> -#include <linux/dcache.h>
> -#include <linux/stat.h>
> -
> -#include <asm/atomic.h>
> -#include <linux/bitops.h>
> -#include <asm/cache.h>
> -#include <linux/stddef.h>    /* just in case the #define NULL previously in 
> here was needed */
> -
> -struct poll_table_struct;
> -
> -
> -/*
> - * It's silly to have NR_OPEN bigger than NR_FILE, but you can change
> - * the file limit at runtime and only root can increase the per-process
> - * nr_file rlimit, so it's safe to set up a ridiculously high absolute
> - * upper limit on files-per-process.
> - *
> - * Some programs (notably those using select()) may have to be 
> - * recompiled to take full advantage of the new limits..  
> - */
> -
> -/* Fixed constants first: */
> -#undef NR_OPEN
> -#define NR_OPEN (1024*1024)  /* Absolute upper limit on fd num */
> -#define INR_OPEN 1024                /* Initial setting for nfile rlimits */
> -
> -#define BLOCK_SIZE_BITS 10
> -#define BLOCK_SIZE (1<<BLOCK_SIZE_BITS)
> -
> -/* And dynamically-tunable limits and defaults: */
> -extern int max_inodes;
> -extern int max_files, nr_files, nr_free_files;
> -extern int max_super_blocks, nr_super_blocks;
> -
> -#define NR_FILE  4096        /* this can well be larger on a larger system */
> -#define NR_RESERVED_FILES 10 /* reserved for root */
> -#define NR_SUPER 256
> -
> -#define MAY_EXEC 1
> -#define MAY_WRITE 2
> -#define MAY_READ 4
> -
> -#define FMODE_READ 1
> -#define FMODE_WRITE 2
> -
> -#define READ 0
> -#define WRITE 1
> -#define READA 2              /* read-ahead  - don't block if no resources */
> -#define WRITEA 3     /* write-ahead - don't block if no resources */
> -
> -#define NIL_FILP     ((struct file *)0)
> -#define SEL_IN               1
> -#define SEL_OUT              2
> -#define SEL_EX               4
> -
> -/* public flags for file_system_type */
> -#define FS_REQUIRES_DEV 1 
> -#define FS_NO_DCACHE    2 /* Only dcache the necessary things. */
> -#define FS_NO_PRELIM    4 /* prevent preloading of dentries, even if
> -                        * FS_NO_DCACHE is not set.
> -                        */
> -#define FS_IBASKET      8 /* FS does callback to free_ibasket() if space 
> gets low. */
> -
> -/*
> - * These are the fs-independent mount-flags: up to 16 flags are supported
> - */
> -#define MS_RDONLY     1      /* Mount read-only */
> -#define MS_NOSUID     2      /* Ignore suid and sgid bits */
> -#define MS_NODEV      4      /* Disallow access to device special files */
> -#define MS_NOEXEC     8      /* Disallow program execution */
> -#define MS_SYNCHRONOUS       16      /* Writes are synced at once */
> -#define MS_REMOUNT   32      /* Alter flags of a mounted FS */
> -#define MS_MANDLOCK  64      /* Allow mandatory locks on an FS */
> -#define S_QUOTA              128     /* Quota initialized for 
> file/directory/symlink */
> -#define S_APPEND     256     /* Append-only file */
> -#define S_IMMUTABLE  512     /* Immutable file */
> -#define MS_NOATIME   1024    /* Do not update access times. */
> -#define MS_NODIRATIME   2048    /* Do not update directory access times */
> -
> -#define MS_ODD_RENAME   32768    /* Temporary stuff; will go away as soon
> -                               * as nfs_rename() will be cleaned up
> -                               */
> -
> -/*
> - * Flags that can be altered by MS_REMOUNT
> - */
> -#define MS_RMT_MASK 
> (MS_RDONLY|MS_NOSUID|MS_NODEV|MS_NOEXEC|MS_SYNCHRONOUS|MS_MANDLOCK|MS_NOATIME|MS_NODIRATIME)
> -
> -/*
> - * Magic mount flag number. Has to be or-ed to the flag values.
> - */
> -#define MS_MGC_VAL 0xC0ED0000        /* magic flag number to indicate "new" 
> flags */
> -#define MS_MGC_MSK 0xffff0000        /* magic flag number mask */
> -
> -/*
> - * Note that read-only etc flags are inode-specific: setting some file-system
> - * flags just means all the inodes inherit those flags by default. It might 
> be
> - * possible to override it selectively if you really wanted to with some
> - * ioctl() that is not currently implemented.
> - *
> - * Exception: MS_RDONLY is always applied to the entire file system.
> - *
> - * Unfortunately, it is possible to change a filesystems flags with it 
> mounted
> - * with files in use.  This means that all of the inodes will not have their
> - * i_flags updated.  Hence, i_flags no longer inherit the superblock mount
> - * flags, so these have to be checked separately. -- rmk@arm.uk.linux.org
> - */
> -#define __IS_FLG(inode,flg) (((inode)->i_sb && (inode)->i_sb->s_flags & 
> (flg)) \
> -                             || (inode)->i_flags & (flg))
> -
> -#define IS_RDONLY(inode) (((inode)->i_sb) && ((inode)->i_sb->s_flags & 
> MS_RDONLY))
> -#define IS_NOSUID(inode)     __IS_FLG(inode, MS_NOSUID)
> -#define IS_NODEV(inode)              __IS_FLG(inode, MS_NODEV)
> -#define IS_NOEXEC(inode)     __IS_FLG(inode, MS_NOEXEC)
> -#define IS_SYNC(inode)               __IS_FLG(inode, MS_SYNCHRONOUS)
> -#define IS_MANDLOCK(inode)   __IS_FLG(inode, MS_MANDLOCK)
> -
> -#define IS_QUOTAINIT(inode)  ((inode)->i_flags & S_QUOTA)
> -#define IS_APPEND(inode)     ((inode)->i_flags & S_APPEND)
> -#define IS_IMMUTABLE(inode)  ((inode)->i_flags & S_IMMUTABLE)
> -#define IS_NOATIME(inode)    __IS_FLG(inode, MS_NOATIME)
> -#define IS_NODIRATIME(inode) __IS_FLG(inode, MS_NODIRATIME)
> -
> -/* 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. */
> -
> -#define BLKROSET   _IO(0x12,93)      /* set device read-only (0 = 
> read-write) */
> -#define BLKROGET   _IO(0x12,94)      /* get read-only status (0 = 
> read_write) */
> -#define BLKRRPART  _IO(0x12,95)      /* re-read partition table */
> -#define BLKGETSIZE _IO(0x12,96)      /* return device size */
> -#define BLKFLSBUF  _IO(0x12,97)      /* flush buffer cache */
> -#define BLKRASET   _IO(0x12,98)      /* Set read ahead for block device */
> -#define BLKRAGET   _IO(0x12,99)      /* get current read ahead setting */
> -#define BLKFRASET  _IO(0x12,100)/* set filesystem (mm/filemap.c) read-ahead 
> */
> -#define BLKFRAGET  _IO(0x12,101)/* get filesystem (mm/filemap.c) read-ahead 
> */
> -#define BLKSECTSET _IO(0x12,102)/* set max sectors per request (ll_rw_blk.c) 
> */
> -#define BLKSECTGET _IO(0x12,103)/* get max sectors per request (ll_rw_blk.c) 
> */
> -#define BLKSSZGET  _IO(0x12,104) /* get block device sector size */
> -
> -#define BMAP_IOCTL 1         /* obsolete - kept for compatibility */
> -#define FIBMAP          _IO(0x00,1)  /* bmap access */
> -#define FIGETBSZ   _IO(0x00,2)       /* get the block size used for bmap */
> -
> -#ifdef __KERNEL__
> -
> -#include <asm/semaphore.h>
> -#include <asm/byteorder.h>
> -#include <asm/bitops.h>
> -
> -extern void update_atime (struct inode *inode);
> -#define UPDATE_ATIME(inode) update_atime (inode)
> -
> -extern void buffer_init(unsigned long);
> -extern void inode_init(void);
> -extern void file_table_init(void);
> -extern void dcache_init(void);
> -
> -typedef char buffer_block[BLOCK_SIZE];
> -
> -/* bh state bits */
> -#define BH_Uptodate  0       /* 1 if the buffer contains valid data */
> -#define BH_Dirty     1       /* 1 if the buffer is dirty */
> -#define BH_Lock              2       /* 1 if the buffer is locked */
> -#define BH_Req               3       /* 0 if the buffer has been invalidated 
> */
> -#define BH_Protected 6       /* 1 if the buffer is protected */
> -
> -/*
> - * Try to keep the most commonly used fields in single cache lines (16
> - * bytes) to improve performance.  This ordering should be
> - * particularly beneficial on 32-bit processors.
> - * 
> - * We use the first 16 bytes for the data which is used in searches
> - * over the block hash lists (ie. getblk(), find_buffer() and
> - * friends).
> - * 
> - * The second 16 bytes we use for lru buffer scans, as used by
> - * sync_buffers() and refill_freelist().  -- sct
> - */
> -struct buffer_head {
> -     /* First cache line: */
> -     struct buffer_head * b_next;    /* Hash queue list */
> -     unsigned long b_blocknr;        /* block number */
> -     unsigned long b_size;           /* block size */
> -     kdev_t b_dev;                   /* device (B_FREE = free) */
> -     kdev_t b_rdev;                  /* Real device */
> -     unsigned long b_rsector;        /* Real buffer location on disk */
> -     struct buffer_head * b_this_page;       /* circular list of buffers in 
> one page */
> -     unsigned long b_state;          /* buffer state bitmap (see above) */
> -     struct buffer_head * b_next_free;
> -     unsigned int b_count;           /* users using this block */
> -
> -     /* Non-performance-critical data follows. */
> -     char * b_data;                  /* pointer to data block (1024 bytes) */
> -     unsigned int b_list;            /* List that this buffer appears */
> -     unsigned long b_flushtime;      /* Time when this (dirty) buffer
> -                                      * should be written */
> -     struct wait_queue * b_wait;
> -     struct buffer_head ** b_pprev;          /* doubly linked list of 
> hash-queue */
> -     struct buffer_head * b_prev_free;       /* doubly linked list of 
> buffers */
> -     struct buffer_head * b_reqnext;         /* request queue */
> -
> -     /*
> -      * I/O completion
> -      */
> -     void (*b_end_io)(struct buffer_head *bh, int uptodate);
> -     void *b_dev_id;
> -};
> -
> -typedef void (bh_end_io_t)(struct buffer_head *bh, int uptodate);
> -void init_buffer(struct buffer_head *bh, kdev_t dev, int block,
> -              bh_end_io_t *handler, void *dev_id);
> -
> -static inline int buffer_uptodate(struct buffer_head * bh)
> -{
> -     return test_bit(BH_Uptodate, &bh->b_state);
> -}    
> -
> -static inline int buffer_dirty(struct buffer_head * bh)
> -{
> -     return test_bit(BH_Dirty, &bh->b_state);
> -}
> -
> -static inline int buffer_locked(struct buffer_head * bh)
> -{
> -     return test_bit(BH_Lock, &bh->b_state);
> -}
> -
> -static inline int buffer_req(struct buffer_head * bh)
> -{
> -     return test_bit(BH_Req, &bh->b_state);
> -}
> -
> -static inline int buffer_protected(struct buffer_head * bh)
> -{
> -     return test_bit(BH_Protected, &bh->b_state);
> -}
> -
> -#define buffer_page(bh)              (mem_map + MAP_NR((bh)->b_data))
> -#define touch_buffer(bh)     set_bit(PG_referenced, &buffer_page(bh)->flags)
> -
> -#include <linux/pipe_fs_i.h>
> -#include <linux/minix_fs_i.h>
> -#include <linux/ext2_fs_i.h>
> -#include <linux/hpfs_fs_i.h>
> -#include <linux/ntfs_fs_i.h>
> -#include <linux/msdos_fs_i.h>
> -#include <linux/umsdos_fs_i.h>
> -#include <linux/iso_fs_i.h>
> -#include <linux/nfs_fs_i.h>
> -#include <linux/sysv_fs_i.h>
> -#include <linux/affs_fs_i.h>
> -#include <linux/ufs_fs_i.h>
> -#include <linux/efs_fs_i.h>
> -#include <linux/coda_fs_i.h>
> -#include <linux/romfs_fs_i.h>
> -#include <linux/smb_fs_i.h>
> -#include <linux/hfs_fs_i.h>
> -#include <linux/adfs_fs_i.h>
> -#include <linux/qnx4_fs_i.h>
> -
> -/*
> - * Attribute flags.  These should be or-ed together to figure out what
> - * has been changed!
> - */
> -#define ATTR_MODE    1
> -#define ATTR_UID     2
> -#define ATTR_GID     4
> -#define ATTR_SIZE    8
> -#define ATTR_ATIME   16
> -#define ATTR_MTIME   32
> -#define ATTR_CTIME   64
> -#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
> - * uses the above definitions as flags, to know which values have changed.
> - * Also, in this manner, a Filesystem can look at only the values it cares
> - * about.  Basically, these are the attributes that the VFS layer can
> - * request to change from the FS layer.
> - *
> - * Derek Atkins <warlord@MIT.EDU> 94-10-20
> - */
> -struct iattr {
> -     unsigned int    ia_valid;
> -     umode_t         ia_mode;
> -     uid_t           ia_uid;
> -     gid_t           ia_gid;
> -     off_t           ia_size;
> -     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 */
> -#define ATTR_FLAG_NODIRATIME 16      /* Don't update atime for directory */
> -
> -/*
> - * Includes for diskquotas and mount structures.
> - */
> -#include <linux/quota.h>
> -#include <linux/mount.h>
> -
> -struct inode {
> -     struct list_head        i_hash;
> -     struct list_head        i_list;
> -     struct list_head        i_dentry;
> -
> -     unsigned long           i_ino;
> -     unsigned int            i_count;
> -     kdev_t                  i_dev;
> -     umode_t                 i_mode;
> -     nlink_t                 i_nlink;
> -     uid_t                   i_uid;
> -     gid_t                   i_gid;
> -     kdev_t                  i_rdev;
> -     off_t                   i_size;
> -     time_t                  i_atime;
> -     time_t                  i_mtime;
> -     time_t                  i_ctime;
> -     unsigned long           i_blksize;
> -     unsigned long           i_blocks;
> -     unsigned long           i_version;
> -     unsigned long           i_nrpages;
> -     struct semaphore        i_sem;
> -     struct semaphore        i_atomic_write;
> -     struct inode_operations *i_op;
> -     struct super_block      *i_sb;
> -     struct wait_queue       *i_wait;
> -     struct file_lock        *i_flock;
> -     struct vm_area_struct   *i_mmap;
> -     struct page             *i_pages;
> -     struct dquot            *i_dquot[MAXQUOTAS];
> -
> -     unsigned long           i_state;
> -
> -     unsigned int            i_flags;
> -     unsigned char           i_pipe;
> -     unsigned char           i_sock;
> -
> -     int                     i_writecount;
> -     unsigned int            i_attr_flags;
> -     __u32                   i_generation;
> -     union {
> -             struct pipe_inode_info          pipe_i;
> -             struct minix_inode_info         minix_i;
> -             struct ext2_inode_info          ext2_i;
> -             struct hpfs_inode_info          hpfs_i;
> -             struct ntfs_inode_info          ntfs_i;
> -             struct msdos_inode_info         msdos_i;
> -             struct umsdos_inode_info        umsdos_i;
> -             struct iso_inode_info           isofs_i;
> -             struct nfs_inode_info           nfs_i;
> -             struct sysv_inode_info          sysv_i;
> -             struct affs_inode_info          affs_i;
> -             struct ufs_inode_info           ufs_i;
> -             struct efs_inode_info           efs_i;
> -             struct romfs_inode_info         romfs_i;
> -             struct coda_inode_info          coda_i;
> -             struct smb_inode_info           smbfs_i;
> -             struct hfs_inode_info           hfs_i;
> -             struct adfs_inode_info          adfs_i;
> -             struct qnx4_inode_info          qnx4_i;
> -             struct socket                   socket_i;
> -             void                            *generic_ip;
> -     } u;
> -};
> -
> -/* Inode state bits.. */
> -#define I_DIRTY              1
> -#define I_LOCK               2
> -#define I_FREEING    4
> -
> -extern void __mark_inode_dirty(struct inode *);
> -static inline void mark_inode_dirty(struct inode *inode)
> -{
> -     if (!(inode->i_state & I_DIRTY))
> -             __mark_inode_dirty(inode);
> -}
> -
> -struct fown_struct {
> -     int pid;                /* pid or -pgrp where SIGIO should be sent */
> -     uid_t uid, euid;        /* uid/euid of process setting the owner */
> -     int signum;             /* posix.1b rt signal to be delivered on IO */
> -};
> -
> -struct file {
> -     struct file             *f_next, **f_pprev;
> -     struct dentry           *f_dentry;
> -     struct file_operations  *f_op;
> -     mode_t                  f_mode;
> -     loff_t                  f_pos;
> -     unsigned int            f_count, f_flags;
> -     unsigned long           f_reada, f_ramax, f_raend, f_ralen, f_rawin;
> -     struct fown_struct      f_owner;
> -     unsigned int            f_uid, f_gid;
> -     int                     f_error;
> -
> -     unsigned long           f_version;
> -
> -     /* needed for tty driver, and maybe others */
> -     void                    *private_data;
> -};
> -
> -extern int init_private_file(struct file *, struct dentry *, int);
> -
> -#define FL_POSIX     1
> -#define FL_FLOCK     2
> -#define FL_BROKEN    4       /* broken flock() emulation */
> -#define FL_ACCESS    8       /* for processes suspended by mandatory locking 
> */
> -#define FL_LOCKD     16      /* lock held by rpc.lockd */
> -
> -/*
> - * The POSIX file lock owner is determined by
> - * the "struct files_struct" in the thread group
> - * (or NULL for no owner - BSD locks).
> - *
> - * Lockd stuffs a "host" pointer into this.
> - */
> -typedef struct files_struct *fl_owner_t;
> -
> -struct file_lock {
> -     struct file_lock *fl_next;      /* singly linked list for this inode  */
> -     struct file_lock *fl_nextlink;  /* doubly linked list of all locks */
> -     struct file_lock *fl_prevlink;  /* used to simplify lock removal */
> -     struct file_lock *fl_nextblock; /* circular list of blocked processes */
> -     struct file_lock *fl_prevblock;
> -     fl_owner_t fl_owner;
> -     unsigned int fl_pid;
> -     struct wait_queue *fl_wait;
> -     struct file *fl_file;
> -     unsigned char fl_flags;
> -     unsigned char fl_type;
> -     off_t fl_start;
> -     off_t fl_end;
> -
> -     void (*fl_notify)(struct file_lock *);  /* unblock callback */
> -
> -     union {
> -             struct nfs_lock_info    nfs_fl;
> -     } fl_u;
> -};
> -
> -extern struct file_lock                      *file_lock_table;
> -
> -#include <linux/fcntl.h>
> -
> -extern int fcntl_getlk(unsigned int fd, struct flock *l);
> -extern int fcntl_setlk(unsigned int fd, unsigned int cmd, struct flock *l);
> -
> -/* fs/locks.c */
> -extern void locks_remove_posix(struct file *, fl_owner_t id);
> -extern void locks_remove_flock(struct file *);
> -extern struct file_lock *posix_test_lock(struct file *, struct file_lock *);
> -extern int posix_lock_file(struct file *, struct file_lock *, unsigned int);
> -extern void posix_block_lock(struct file_lock *, struct file_lock *);
> -extern void posix_unblock_lock(struct file_lock *);
> -
> -struct fasync_struct {
> -     int    magic;
> -     int    fa_fd;
> -     struct fasync_struct    *fa_next; /* singly linked list */
> -     struct file             *fa_file;
> -};
> -
> -#define FASYNC_MAGIC 0x4601
> -
> -extern int fasync_helper(int, struct file *, int, struct fasync_struct **);
> -
> -#include <linux/minix_fs_sb.h>
> -#include <linux/ext2_fs_sb.h>
> -#include <linux/hpfs_fs_sb.h>
> -#include <linux/ntfs_fs_sb.h>
> -#include <linux/msdos_fs_sb.h>
> -#include <linux/iso_fs_sb.h>
> -#include <linux/nfs_fs_sb.h>
> -#include <linux/sysv_fs_sb.h>
> -#include <linux/affs_fs_sb.h>
> -#include <linux/ufs_fs_sb.h>
> -#include <linux/efs_fs_sb.h>
> -#include <linux/romfs_fs_sb.h>
> -#include <linux/smb_fs_sb.h>
> -#include <linux/hfs_fs_sb.h>
> -#include <linux/adfs_fs_sb.h>
> -#include <linux/qnx4_fs_sb.h>
> -
> -extern struct list_head super_blocks;
> -
> -#define sb_entry(list)       list_entry((list), struct super_block, s_list)
> -struct super_block {
> -     struct list_head        s_list;         /* Keep this first */
> -     kdev_t                  s_dev;
> -     unsigned long           s_blocksize;
> -     unsigned char           s_blocksize_bits;
> -     unsigned char           s_lock;
> -     unsigned char           s_rd_only;
> -     unsigned char           s_dirt;
> -     struct file_system_type *s_type;
> -     struct super_operations *s_op;
> -     struct dquot_operations *dq_op;
> -     unsigned long           s_flags;
> -     unsigned long           s_magic;
> -     unsigned long           s_time;
> -     struct dentry           *s_root;
> -     struct wait_queue       *s_wait;
> -
> -     struct inode            *s_ibasket;
> -     short int               s_ibasket_count;
> -     short int               s_ibasket_max;
> -     struct list_head        s_dirty;        /* dirty inodes */
> -
> -     union {
> -             struct minix_sb_info    minix_sb;
> -             struct ext2_sb_info     ext2_sb;
> -             struct hpfs_sb_info     hpfs_sb;
> -             struct ntfs_sb_info     ntfs_sb;
> -             struct msdos_sb_info    msdos_sb;
> -             struct isofs_sb_info    isofs_sb;
> -             struct nfs_sb_info      nfs_sb;
> -             struct sysv_sb_info     sysv_sb;
> -             struct affs_sb_info     affs_sb;
> -             struct ufs_sb_info      ufs_sb;
> -             struct efs_sb_info      efs_sb;
> -             struct romfs_sb_info    romfs_sb;
> -             struct smb_sb_info      smbfs_sb;
> -             struct hfs_sb_info      hfs_sb;
> -             struct adfs_sb_info     adfs_sb;
> -             struct qnx4_sb_info     qnx4_sb;           
> -             void                    *generic_sbp;
> -     } u;
> -     /*
> -      * The next field is for VFS *only*. No filesystems have any business
> -      * even looking at it. You had been warned.
> -      */
> -     struct semaphore s_vfs_rename_sem;      /* Kludge */
> -};
> -
> -/*
> - * VFS helper functions..
> - */
> -extern int vfs_rmdir(struct inode *, struct dentry *);
> -extern int vfs_unlink(struct inode *, struct dentry *);
> -extern int vfs_rename(struct inode *, struct dentry *, struct inode *, 
> struct dentry *);
> -
> -/*
> - * This is the "filldir" function type, used by readdir() to let
> - * the kernel specify what kind of dirent layout it wants to have.
> - * This allows the kernel to read directories into kernel space or
> - * to have different dirent layouts depending on the binary type.
> - */
> -typedef int (*filldir_t)(void *, const char *, int, off_t, ino_t);
> -     
> -struct file_operations {
> -     loff_t (*llseek) (struct file *, loff_t, int);
> -     ssize_t (*read) (struct file *, char *, size_t, loff_t *);
> -     ssize_t (*write) (struct file *, const char *, size_t, loff_t *);
> -     int (*readdir) (struct file *, void *, filldir_t);
> -     unsigned int (*poll) (struct file *, struct poll_table_struct *);
> -     int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned 
> long);
> -     int (*mmap) (struct file *, struct vm_area_struct *);
> -     int (*open) (struct inode *, struct file *);
> -     int (*flush) (struct file *);
> -     int (*release) (struct inode *, struct file *);
> -     int (*fsync) (struct file *, struct dentry *);
> -     int (*fasync) (int, struct file *, int);
> -     int (*check_media_change) (kdev_t dev);
> -     int (*revalidate) (kdev_t dev);
> -     int (*lock) (struct file *, int, struct file_lock *);
> -};
> -
> -struct inode_operations {
> -     struct file_operations * default_file_ops;
> -     int (*create) (struct inode *,struct dentry *,int);
> -     struct dentry * (*lookup) (struct inode *,struct dentry *);
> -     int (*link) (struct dentry *,struct inode *,struct dentry *);
> -     int (*unlink) (struct inode *,struct dentry *);
> -     int (*symlink) (struct inode *,struct dentry *,const char *);
> -     int (*mkdir) (struct inode *,struct dentry *,int);
> -     int (*rmdir) (struct inode *,struct dentry *);
> -     int (*mknod) (struct inode *,struct dentry *,int,int);
> -     int (*rename) (struct inode *, struct dentry *,
> -                     struct inode *, struct dentry *);
> -     int (*readlink) (struct dentry *, char *,int);
> -     struct dentry * (*follow_link) (struct dentry *, struct dentry *, 
> unsigned int);
> -     int (*readpage) (struct file *, struct page *);
> -     int (*writepage) (struct file *, struct page *);
> -     int (*bmap) (struct inode *,int);
> -     void (*truncate) (struct inode *);
> -     int (*permission) (struct inode *, int);
> -     int (*smap) (struct inode *,int);
> -     int (*updatepage) (struct file *, struct page *, unsigned long, 
> unsigned int, int);
> -     int (*revalidate) (struct dentry *);
> -};
> -
> -struct super_operations {
> -     void (*read_inode) (struct inode *);
> -     void (*write_inode) (struct inode *);
> -     void (*put_inode) (struct inode *);
> -     void (*delete_inode) (struct inode *);
> -     int (*notify_change) (struct dentry *, struct iattr *);
> -     void (*put_super) (struct super_block *);
> -     void (*write_super) (struct super_block *);
> -     int (*statfs) (struct super_block *, struct statfs *, int);
> -     int (*remount_fs) (struct super_block *, int *, char *);
> -     void (*clear_inode) (struct inode *);
> -     void (*umount_begin) (struct super_block *);
> -};
> -
> -struct dquot_operations {
> -     void (*initialize) (struct inode *, short);
> -     void (*drop) (struct inode *);
> -     int (*alloc_block) (const struct inode *, unsigned long, uid_t, char);
> -     int (*alloc_inode) (const struct inode *, unsigned long, uid_t);
> -     void (*free_block) (const struct inode *, unsigned long);
> -     void (*free_inode) (const struct inode *, unsigned long);
> -     int (*transfer) (struct dentry *, struct iattr *, uid_t);
> -};
> -
> -struct file_system_type {
> -     const char *name;
> -     int fs_flags;
> -     struct super_block *(*read_super) (struct super_block *, void *, int);
> -     struct file_system_type * next;
> -};
> -
> -extern int register_filesystem(struct file_system_type *);
> -extern int unregister_filesystem(struct file_system_type *);
> -
> -/* Return value for VFS lock functions - tells locks.c to lock conventionally
> - * REALLY kosha for root NFS and nfs_lock
> - */ 
> -#define LOCK_USE_CLNT 1
> -
> -#define FLOCK_VERIFY_READ  1
> -#define FLOCK_VERIFY_WRITE 2
> -
> -extern int locks_mandatory_locked(struct inode *inode);
> -extern int locks_mandatory_area(int read_write, struct inode *inode,
> -                             struct file *filp, loff_t offset,
> -                             size_t count);
> -
> -extern inline int locks_verify_locked(struct inode *inode)
> -{
> -     /* Candidates for mandatory locking have the setgid bit set
> -      * but no group execute bit -  an otherwise meaningless combination.
> -      */
> -     if (IS_MANDLOCK(inode) &&
> -         (inode->i_mode & (S_ISGID | S_IXGRP)) == S_ISGID)
> -             return (locks_mandatory_locked(inode));
> -     return (0);
> -}
> -
> -extern inline int locks_verify_area(int read_write, struct inode *inode,
> -                                 struct file *filp, loff_t offset,
> -                                 size_t count)
> -{
> -     /* Candidates for mandatory locking have the setgid bit set
> -      * but no group execute bit -  an otherwise meaningless combination.
> -      */
> -     if (IS_MANDLOCK(inode) &&
> -         (inode->i_mode & (S_ISGID | S_IXGRP)) == S_ISGID)
> -             return (locks_mandatory_area(read_write, inode, filp, offset,
> -                                          count));
> -     return (0);
> -}
> -
> -
> -/* fs/open.c */
> -
> -asmlinkage int sys_open(const char *, int, int);
> -asmlinkage int sys_close(unsigned int);              /* yes, it's really 
> unsigned */
> -extern int do_truncate(struct dentry *, unsigned long);
> -extern int get_unused_fd(void);
> -extern void put_unused_fd(unsigned int);
> -
> -extern struct file *filp_open(const char *, int, int);
> -extern int filp_close(struct file *, fl_owner_t id);
> -
> -extern char * getname(const char * filename);
> -#define __getname()  ((char *) __get_free_page(GFP_KERNEL))
> -#define putname(name)        free_page((unsigned long)(name))
> -
> -extern void kill_fasync(struct fasync_struct *fa, int sig);
> -extern int register_blkdev(unsigned int, const char *, struct 
> file_operations *);
> -extern int unregister_blkdev(unsigned int major, const char * name);
> -extern int blkdev_open(struct inode * inode, struct file * filp);
> -extern int blkdev_release (struct inode * inode);
> -extern struct file_operations def_blk_fops;
> -extern struct inode_operations blkdev_inode_operations;
> -
> -/* fs/devices.c */
> -extern int register_chrdev(unsigned int, const char *, struct 
> file_operations *);
> -extern int unregister_chrdev(unsigned int major, const char * name);
> -extern int chrdev_open(struct inode * inode, struct file * filp);
> -extern struct file_operations def_chr_fops;
> -extern struct inode_operations chrdev_inode_operations;
> -extern char * bdevname(kdev_t dev);
> -extern char * cdevname(kdev_t dev);
> -extern char * kdevname(kdev_t dev);
> -
> -
> -extern void init_fifo(struct inode * inode);
> -extern struct inode_operations fifo_inode_operations;
> -
> -/* Invalid inode operations -- fs/bad_inode.c */
> -extern void make_bad_inode(struct inode * inode);
> -extern int is_bad_inode(struct inode * inode);
> -
> -extern struct file_operations connecting_fifo_fops;
> -extern struct file_operations read_fifo_fops;
> -extern struct file_operations write_fifo_fops;
> -extern struct file_operations rdwr_fifo_fops;
> -extern struct file_operations read_pipe_fops;
> -extern struct file_operations write_pipe_fops;
> -extern struct file_operations rdwr_pipe_fops;
> -
> -extern struct file_system_type *get_fs_type(const char *name);
> -
> -extern int fs_may_remount_ro(struct super_block *);
> -extern int fs_may_mount(kdev_t dev);
> -
> -extern struct file *inuse_filps;
> -
> -extern void refile_buffer(struct buffer_head * buf);
> -extern void set_writetime(struct buffer_head * buf, int flag);
> -extern int try_to_free_buffers(struct page *);
> -
> -extern int nr_buffers;
> -extern long buffermem;
> -extern int nr_buffer_heads;
> -
> -#define BUF_CLEAN    0
> -#define BUF_LOCKED   1       /* Buffers scheduled for write */
> -#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 (test_and_clear_bit(BH_Dirty, &bh->b_state)) {
> -             if (bh->b_list == BUF_DIRTY)
> -                     refile_buffer(bh);
> -     }
> -}
> -
> -extern inline void mark_buffer_dirty(struct buffer_head * bh, int flag)
> -{
> -     if (!test_and_set_bit(BH_Dirty, &bh->b_state)) {
> -             set_writetime(bh, flag);
> -             if (bh->b_list != BUF_DIRTY)
> -                     refile_buffer(bh);
> -     }
> -}
> -
> -extern int check_disk_change(kdev_t dev);
> -extern int invalidate_inodes(struct super_block * sb);
> -extern void invalidate_inode_pages(struct inode *);
> -#define invalidate_buffers(dev)      __invalidate_buffers((dev), 0)
> -#define destroy_buffers(dev) __invalidate_buffers((dev), 1)
> -extern void __invalidate_buffers(kdev_t dev, int);
> -extern int floppy_is_wp(int minor);
> -extern void sync_inodes(kdev_t dev);
> -extern void write_inode_now(struct inode *inode);
> -extern void sync_dev(kdev_t dev);
> -extern int fsync_dev(kdev_t dev);
> -extern void sync_supers(kdev_t dev);
> -extern int bmap(struct inode * inode,int block);
> -extern int notify_change(struct dentry *, struct iattr *);
> -extern int permission(struct inode * inode,int mask);
> -extern int get_write_access(struct inode *inode);
> -extern void put_write_access(struct inode *inode);
> -extern struct dentry * open_namei(const char * pathname, int flag, int mode);
> -extern struct dentry * do_mknod(const char * filename, int mode, dev_t dev);
> -extern int do_pipe(int *);
> -
> -/* fs/dcache.c -- generic fs support functions */
> -extern int is_subdir(struct dentry *, struct dentry *);
> -extern ino_t find_inode_number(struct dentry *, struct qstr *);
> -
> -/*
> - * Kernel pointers have redundant information, so we can use a
> - * scheme where we can return either an error code or a dentry
> - * pointer with the same return value.
> - *
> - * This should be a per-architecture thing, to allow different
> - * error and pointer decisions.
> - */
> -#define ERR_PTR(err) ((void *)((long)(err)))
> -#define PTR_ERR(ptr) ((long)(ptr))
> -#define IS_ERR(ptr)  ((unsigned long)(ptr) > (unsigned long)(-1000))
> -
> -/*
> - * The bitmask for a lookup event:
> - *  - follow links at the end
> - *  - require a directory
> - *  - ending slashes ok even for nonexistent files
> - *  - internal "there are more path compnents" flag
> - */
> -#define LOOKUP_FOLLOW                (1)
> -#define LOOKUP_DIRECTORY     (2)
> -#define LOOKUP_SLASHOK               (4)
> -#define LOOKUP_CONTINUE              (8)
> -
> -extern struct dentry * lookup_dentry(const char *, struct dentry *, unsigned 
> int);
> -extern struct dentry * __namei(const char *, unsigned int);
> -
> -#define namei(pathname)              __namei(pathname, 1)
> -#define lnamei(pathname)     __namei(pathname, 0)
> -
> -extern void iput(struct inode *);
> -extern struct inode * igrab(struct inode *inode);
> -extern ino_t iunique(struct super_block *, ino_t);
> -extern struct inode * iget(struct super_block *, unsigned long);
> -extern struct inode * iget_in_use (struct super_block *, unsigned long);
> -extern void clear_inode(struct inode *);
> -extern struct inode * get_empty_inode(void);
> -
> -extern void insert_inode_hash(struct inode *);
> -extern void remove_inode_hash(struct inode *);
> -extern struct file * get_empty_filp(void);
> -extern struct buffer_head * get_hash_table(kdev_t, int, int);
> -extern struct buffer_head * getblk(kdev_t, int, int);
> -extern struct buffer_head * find_buffer(kdev_t dev, int block, int size);
> -extern void ll_rw_block(int, int, struct buffer_head * bh[]);
> -extern int is_read_only(kdev_t);
> -extern void __brelse(struct buffer_head *);
> -extern inline void brelse(struct buffer_head *buf)
> -{
> -     if (buf)
> -             __brelse(buf);
> -}
> -extern void __bforget(struct buffer_head *buf);
> -extern inline void bforget(struct buffer_head *buf)
> -{
> -     if (buf)
> -             __bforget(buf);
> -}
> -extern void set_blocksize(kdev_t dev, int size);
> -extern unsigned int get_hardblocksize(kdev_t dev);
> -extern struct buffer_head * bread(kdev_t dev, int block, int size);
> -extern struct buffer_head * breada(kdev_t dev,int block, int size, 
> -                                unsigned int pos, unsigned int filesize);
> -
> -extern int brw_page(int, struct page *, kdev_t, int [], int, int);
> -
> -extern int generic_readpage(struct file *, struct page *);
> -extern int generic_file_mmap(struct file *, struct vm_area_struct *);
> -extern ssize_t generic_file_read(struct file *, char *, size_t, loff_t *);
> -extern ssize_t generic_file_write(struct file *, const char*, size_t, 
> loff_t*);
> -
> -extern struct super_block *get_super(kdev_t dev);
> -extern void put_super(kdev_t dev);
> -unsigned long generate_cluster(kdev_t dev, int b[], int size);
> -unsigned long generate_cluster_swab32(kdev_t dev, int b[], int size);
> -extern kdev_t ROOT_DEV;
> -
> -extern void show_buffers(void);
> -extern void mount_root(void);
> -
> -#ifdef CONFIG_BLK_DEV_INITRD
> -extern kdev_t real_root_dev;
> -extern int change_root(kdev_t new_root_dev,const char *put_old);
> -#endif
> -
> -extern ssize_t char_read(struct file *, char *, size_t, loff_t *);
> -extern ssize_t block_read(struct file *, char *, size_t, loff_t *);
> -extern int read_ahead[];
> -
> -extern ssize_t char_write(struct file *, const char *, size_t, loff_t *);
> -extern ssize_t block_write(struct file *, const char *, size_t, loff_t *);
> -
> -extern int block_fsync(struct file *, struct dentry *dir);
> -extern int file_fsync(struct file *, struct dentry *dir);
> -
> -extern int inode_change_ok(struct inode *, struct iattr *);
> -extern void inode_setattr(struct inode *, struct iattr *);
> -
> -extern __u32 inode_generation_count;
> -
> -#endif /* __KERNEL__ */
> -
> -#endif
> diff --git a/pfinet/linux-src/include/linux/if.h 
> b/pfinet/linux-src/include/linux/if.h
> deleted file mode 100644
> index c95f372c..00000000
> --- a/pfinet/linux-src/include/linux/if.h
> +++ /dev/null
> @@ -1,138 +0,0 @@
> -/*
> - * INET              An implementation of the TCP/IP protocol suite for the 
> LINUX
> - *           operating system.  INET is implemented using the  BSD Socket
> - *           interface as the means of communication with the user level.
> - *
> - *           Global definitions for the INET interface module.
> - *
> - * Version:  @(#)if.h        1.0.2   04/18/93
> - *
> - * Authors:  Original taken from Berkeley UNIX 4.3, (c) UCB 1982-1988
> - *           Ross Biro, <bir7@leland.Stanford.Edu>
> - *           Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
> - *
> - *           This program is free software; you can redistribute it and/or
> - *           modify it under the terms of the GNU General Public License
> - *           as published by the Free Software Foundation; either version
> - *           2 of the License, or (at your option) any later version.
> - */
> -#ifndef _LINUX_IF_H
> -#define _LINUX_IF_H
> -
> -#include <linux/types.h>             /* for "__kernel_caddr_t" et al */
> -#include <linux/socket.h>            /* for "struct sockaddr" et al  */
> -
> -/* Standard interface flags. */
> -#define      IFF_UP          0x1             /* interface is up              
> */
> -#define      IFF_BROADCAST   0x2             /* broadcast address valid      
> */
> -#define      IFF_DEBUG       0x4             /* turn on debugging            
> */
> -#define      IFF_LOOPBACK    0x8             /* is a loopback net            
> */
> -#define      IFF_POINTOPOINT 0x10            /* interface is has p-p link    
> */
> -#define      IFF_NOTRAILERS  0x20            /* avoid use of trailers        
> */
> -#define      IFF_RUNNING     0x40            /* resources allocated          
> */
> -#define      IFF_NOARP       0x80            /* no ARP protocol              
> */
> -#define      IFF_PROMISC     0x100           /* receive all packets          
> */
> -#define      IFF_ALLMULTI    0x200           /* receive all multicast 
> packets*/
> -
> -#define IFF_MASTER   0x400           /* master of a load balancer    */
> -#define IFF_SLAVE    0x800           /* slave of a load balancer     */
> -
> -#define IFF_MULTICAST        0x1000          /* Supports multicast           
> */
> -
> -#define IFF_VOLATILE 
> (IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST|IFF_ALLMULTI)
> -
> -#define IFF_PORTSEL  0x2000          /* can set media type           */
> -#define IFF_AUTOMEDIA        0x4000          /* auto media select active     
> */
> -#define IFF_DYNAMIC  0x8000          /* dialup device with changing 
> addresses*/
> -
> -/*
> - *   Device mapping structure. I'd just gone off and designed a 
> - *   beautiful scheme using only loadable modules with arguments
> - *   for driver options and along come the PCMCIA people 8)
> - *
> - *   Ah well. The get() side of this is good for WDSETUP, and it'll
> - *   be handy for debugging things. The set side is fine for now and
> - *   being very small might be worth keeping for clean configuration.
> - */
> -
> -struct ifmap 
> -{
> -     unsigned long mem_start;
> -     unsigned long mem_end;
> -     unsigned short base_addr; 
> -     unsigned char irq;
> -     unsigned char dma;
> -     unsigned char port;
> -     /* 3 bytes spare */
> -};
> -
> -/*
> - * Interface request structure used for socket
> - * ioctl's.  All interface ioctl's must have parameter
> - * definitions which begin with ifr_name.  The
> - * remainder may be interface specific.
> - */
> -
> -struct ifreq 
> -{
> -#define IFHWADDRLEN  6
> -#define      IFNAMSIZ        16
> -     union
> -     {
> -             char    ifrn_name[IFNAMSIZ];            /* if name, e.g. "en0" 
> */
> -     } ifr_ifrn;
> -     
> -     union {
> -             struct  sockaddr ifru_addr;
> -             struct  sockaddr ifru_dstaddr;
> -             struct  sockaddr ifru_broadaddr;
> -             struct  sockaddr ifru_netmask;
> -             struct  sockaddr ifru_hwaddr;
> -             short   ifru_flags;
> -             int     ifru_ivalue;
> -             int     ifru_mtu;
> -             struct  ifmap ifru_map;
> -             char    ifru_slave[IFNAMSIZ];   /* Just fits the size */
> -             char    ifru_newname[IFNAMSIZ];
> -             char *  ifru_data;
> -     } ifr_ifru;
> -};
> -
> -#define ifr_name     ifr_ifrn.ifrn_name      /* interface name       */
> -#define ifr_hwaddr   ifr_ifru.ifru_hwaddr    /* MAC address          */
> -#define      ifr_addr        ifr_ifru.ifru_addr      /* address              
> */
> -#define      ifr_dstaddr     ifr_ifru.ifru_dstaddr   /* other end of p-p lnk 
> */
> -#define      ifr_broadaddr   ifr_ifru.ifru_broadaddr /* broadcast address    
> */
> -#define      ifr_netmask     ifr_ifru.ifru_netmask   /* interface net mask   
> */
> -#define      ifr_flags       ifr_ifru.ifru_flags     /* flags                
> */
> -#define      ifr_metric      ifr_ifru.ifru_ivalue    /* metric               
> */
> -#define      ifr_mtu         ifr_ifru.ifru_mtu       /* mtu                  
> */
> -#define ifr_map              ifr_ifru.ifru_map       /* device map           
> */
> -#define ifr_slave    ifr_ifru.ifru_slave     /* slave device         */
> -#define      ifr_data        ifr_ifru.ifru_data      /* for use by interface 
> */
> -#define ifr_ifindex  ifr_ifru.ifru_ivalue    /* interface index      */
> -#define ifr_bandwidth        ifr_ifru.ifru_ivalue    /* link bandwidth       
> */
> -#define ifr_qlen     ifr_ifru.ifru_ivalue    /* Queue length         */
> -#define ifr_newname  ifr_ifru.ifru_newname   /* New name             */
> -
> -/*
> - * Structure used in SIOCGIFCONF request.
> - * Used to retrieve interface configuration
> - * for machine (useful for programs which
> - * must know all networks accessible).
> - */
> -
> -struct ifconf 
> -{
> -     int     ifc_len;                        /* size of buffer       */
> -     union 
> -     {
> -             char *                  ifcu_buf;
> -             struct  ifreq           *ifcu_req;
> -     } ifc_ifcu;
> -};
> -#define      ifc_buf ifc_ifcu.ifcu_buf               /* buffer address       
> */
> -#define      ifc_req ifc_ifcu.ifcu_req               /* array of structures  
> */
> -
> -
> -#endif /* _LINUX_IF_H */
> diff --git a/pfinet/linux-src/include/linux/in.h 
> b/pfinet/linux-src/include/linux/in.h
> deleted file mode 100644
> index 37db22a9..00000000
> --- a/pfinet/linux-src/include/linux/in.h
> +++ /dev/null
> @@ -1,189 +0,0 @@
> -/*
> - * INET              An implementation of the TCP/IP protocol suite for the 
> LINUX
> - *           operating system.  INET is implemented using the  BSD Socket
> - *           interface as the means of communication with the user level.
> - *
> - *           Definitions of the Internet Protocol.
> - *
> - * Version:  @(#)in.h        1.0.1   04/21/93
> - *
> - * Authors:  Original taken from the GNU Project <netinet/in.h> file.
> - *           Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
> - *
> - *           This program is free software; you can redistribute it and/or
> - *           modify it under the terms of the GNU General Public License
> - *           as published by the Free Software Foundation; either version
> - *           2 of the License, or (at your option) any later version.
> - */
> -#ifndef _LINUX_IN_H
> -#define _LINUX_IN_H
> -
> -#include <linux/types.h>
> -
> -/* Standard well-defined IP protocols.  */
> -enum {
> -  IPPROTO_IP = 0,            /* Dummy protocol for TCP               */
> -  IPPROTO_ICMP = 1,          /* Internet Control Message Protocol    */
> -  IPPROTO_IGMP = 2,          /* Internet Group Management Protocol   */
> -  IPPROTO_IPIP = 4,          /* IPIP tunnels (older KA9Q tunnels use 94) */
> -  IPPROTO_TCP = 6,           /* Transmission Control Protocol        */
> -  IPPROTO_EGP = 8,           /* Exterior Gateway Protocol            */
> -  IPPROTO_PUP = 12,          /* PUP protocol                         */
> -  IPPROTO_UDP = 17,          /* User Datagram Protocol               */
> -  IPPROTO_IDP = 22,          /* XNS IDP protocol                     */
> -  IPPROTO_RSVP = 46,         /* RSVP protocol                        */
> -  IPPROTO_GRE = 47,          /* Cisco GRE tunnels (rfc 1701,1702)    */
> -
> -  IPPROTO_IPV6        = 41,          /* IPv6-in-IPv4 tunnelling              
> */
> -
> -  IPPROTO_PIM    = 103,              /* Protocol Independent Multicast       
> */
> -
> -  IPPROTO_ESP = 50,            /* Encapsulation Security Payload protocol */
> -  IPPROTO_AH = 51,             /* Authentication Header protocol       */
> -  IPPROTO_COMP   = 108,                /* Compression Header protocol */
> -
> -  IPPROTO_RAW         = 255,         /* Raw IP packets                       
> */
> -  IPPROTO_MAX
> -};
> -
> -
> -/* Internet address. */
> -struct in_addr {
> -     __u32   s_addr;
> -};
> -
> -#define IP_TOS               1
> -#define IP_TTL               2
> -#define IP_HDRINCL   3
> -#define IP_OPTIONS   4
> -#define IP_ROUTER_ALERT      5
> -#define IP_RECVOPTS  6
> -#define IP_RETOPTS   7
> -#define IP_PKTINFO   8
> -#define IP_PKTOPTIONS        9
> -#define IP_MTU_DISCOVER      10
> -#define IP_RECVERR   11
> -#define IP_RECVTTL   12
> -#define      IP_RECVTOS      13
> -#define IP_MTU               14
> -
> -/* BSD compatibility */
> -#define IP_RECVRETOPTS       IP_RETOPTS
> -
> -/* IP_MTU_DISCOVER values */
> -#define IP_PMTUDISC_DONT             0       /* Never send DF frames */
> -#define IP_PMTUDISC_WANT             1       /* Use per route hints  */
> -#define IP_PMTUDISC_DO                       2       /* Always DF            
> */
> -
> -#define IP_MULTICAST_IF                      32
> -#define IP_MULTICAST_TTL             33
> -#define IP_MULTICAST_LOOP            34
> -#define IP_ADD_MEMBERSHIP            35
> -#define IP_DROP_MEMBERSHIP           36
> -
> -/* These need to appear somewhere around here */
> -#define IP_DEFAULT_MULTICAST_TTL        1
> -#define IP_DEFAULT_MULTICAST_LOOP       1
> -
> -/* Request struct for multicast socket ops */
> -
> -struct ip_mreq 
> -{
> -     struct in_addr imr_multiaddr;   /* IP multicast address of group */
> -     struct in_addr imr_interface;   /* local IP address of interface */
> -};
> -
> -struct ip_mreqn
> -{
> -     struct in_addr  imr_multiaddr;          /* IP multicast address of 
> group */
> -     struct in_addr  imr_address;            /* local IP address of 
> interface */
> -     int             imr_ifindex;            /* Interface index */
> -};
> -
> -struct in_pktinfo
> -{
> -     int             ipi_ifindex;
> -     struct in_addr  ipi_spec_dst;
> -     struct in_addr  ipi_addr;
> -};
> -
> -/* Structure describing an Internet (IP) socket address. */
> -#define __SOCK_SIZE__        16              /* sizeof(struct sockaddr)      
> */
> -struct sockaddr_in {
> -  sa_family_t                sin_family;     /* Address family               
> */
> -  unsigned short int sin_port;       /* Port number                  */
> -  struct in_addr     sin_addr;       /* Internet address             */
> -
> -  /* Pad to size of `struct sockaddr'. */
> -  unsigned char              __pad[__SOCK_SIZE__ - sizeof(short int) -
> -                     sizeof(unsigned short int) - sizeof(struct in_addr)];
> -};
> -#define sin_zero     __pad           /* for BSD UNIX comp. -FvK      */
> -
> -
> -/*
> - * Definitions of the bits in an Internet address integer.
> - * On subnets, host and network parts are found according
> - * to the subnet mask, not these masks.
> - */
> -#define      IN_CLASSA(a)            ((((long int) (a)) & 0x80000000) == 0)
> -#define      IN_CLASSA_NET           0xff000000
> -#define      IN_CLASSA_NSHIFT        24
> -#define      IN_CLASSA_HOST          (0xffffffff & ~IN_CLASSA_NET)
> -#define      IN_CLASSA_MAX           128
> -
> -#define      IN_CLASSB(a)            ((((long int) (a)) & 0xc0000000) == 
> 0x80000000)
> -#define      IN_CLASSB_NET           0xffff0000
> -#define      IN_CLASSB_NSHIFT        16
> -#define      IN_CLASSB_HOST          (0xffffffff & ~IN_CLASSB_NET)
> -#define      IN_CLASSB_MAX           65536
> -
> -#define      IN_CLASSC(a)            ((((long int) (a)) & 0xe0000000) == 
> 0xc0000000)
> -#define      IN_CLASSC_NET           0xffffff00
> -#define      IN_CLASSC_NSHIFT        8
> -#define      IN_CLASSC_HOST          (0xffffffff & ~IN_CLASSC_NET)
> -
> -#define      IN_CLASSD(a)            ((((long int) (a)) & 0xf0000000) == 
> 0xe0000000)
> -#define      IN_MULTICAST(a)         IN_CLASSD(a)
> -#define IN_MULTICAST_NET     0xF0000000
> -
> -#define      IN_EXPERIMENTAL(a)      ((((long int) (a)) & 0xf0000000) == 
> 0xf0000000)
> -#define      IN_BADCLASS(a)          IN_EXPERIMENTAL((a))
> -
> -/* Address to accept any incoming messages. */
> -#define      INADDR_ANY              ((unsigned long int) 0x00000000)
> -
> -/* Address to send to all hosts. */
> -#define      INADDR_BROADCAST        ((unsigned long int) 0xffffffff)
> -
> -/* Address indicating an error return. */
> -#define      INADDR_NONE             ((unsigned long int) 0xffffffff)
> -
> -/* Network number for local host loopback. */
> -#define      IN_LOOPBACKNET          127
> -
> -/* Address to loopback in software to local host.  */
> -#define      INADDR_LOOPBACK         0x7f000001      /* 127.0.0.1   */
> -#define      IN_LOOPBACK(a)          ((((long int) (a)) & 0xff000000) == 
> 0x7f000000)
> -
> -/* Defines for Multicast INADDR */
> -#define INADDR_UNSPEC_GROUP          0xe0000000U     /* 224.0.0.0   */
> -#define INADDR_ALLHOSTS_GROUP        0xe0000001U     /* 224.0.0.1   */
> -#define INADDR_ALLRTRS_GROUP    0xe0000002U  /* 224.0.0.2 */
> -#define INADDR_MAX_LOCAL_GROUP  0xe00000ffU  /* 224.0.0.255 */
> -
> -
> -/* <asm/byteorder.h> contains the htonl type stuff.. */
> -#include <asm/byteorder.h> 
> -
> -#ifdef __KERNEL__
> -/* Some random defines to make it easier in the kernel.. */
> -#define LOOPBACK(x)  (((x) & htonl(0xff000000)) == htonl(0x7f000000))
> -#define MULTICAST(x) (((x) & htonl(0xf0000000)) == htonl(0xe0000000))
> -#define BADCLASS(x)  (((x) & htonl(0xf0000000)) == htonl(0xf0000000))
> -#define ZERONET(x)   (((x) & htonl(0xff000000)) == htonl(0x00000000))
> -#define LOCAL_MCAST(x)       (((x) & htonl(0xFFFFFF00)) == htonl(0xE0000000))
> -
> -#endif
> -
> -#endif       /* _LINUX_IN_H */
> diff --git a/pfinet/linux-src/include/linux/in6.h 
> b/pfinet/linux-src/include/linux/in6.h
> deleted file mode 100644
> index 35e018c7..00000000
> --- a/pfinet/linux-src/include/linux/in6.h
> +++ /dev/null
> @@ -1,194 +0,0 @@
> -/*
> - *   Types and definitions for AF_INET6 
> - *   Linux INET6 implementation 
> - *
> - *   Authors:
> - *   Pedro Roque             <roque@di.fc.ul.pt>     
> - *
> - *   Sources:
> - *   IPv6 Program Interfaces for BSD Systems
> - *      <draft-ietf-ipngwg-bsd-api-05.txt>
> - *
> - *   Advanced Sockets API for IPv6
> - *   <draft-stevens-advanced-api-00.txt>
> - *
> - *   This program is free software; you can redistribute it and/or
> - *      modify it under the terms of the GNU General Public License
> - *      as published by the Free Software Foundation; either version
> - *      2 of the License, or (at your option) any later version.
> - */
> -
> -#ifndef _LINUX_IN6_H
> -#define _LINUX_IN6_H
> -
> -#include <linux/types.h>
> -
> -/*
> - *   IPv6 address structure
> - */
> -
> -struct in6_addr
> -{
> -     union 
> -     {
> -             __u8            u6_addr8[16];
> -             __u16           u6_addr16[8];
> -             __u32           u6_addr32[4];
> -#if (~0UL) > 0xffffffff
> -#ifndef __RELAX_IN6_ADDR_ALIGNMENT
> -             /* Alas, protocols do not respect 64bit alignmnet.
> -                rsvp/pim/... are broken. However, it is good
> -                idea to force correct alignment always, when
> -                it is possible.
> -              */
> -             __u64           u6_addr64[2];
> -#endif
> -#endif
> -     } in6_u;
> -#define s6_addr                      in6_u.u6_addr8
> -#define s6_addr16            in6_u.u6_addr16
> -#define s6_addr32            in6_u.u6_addr32
> -#define s6_addr64            in6_u.u6_addr64
> -};
> -
> -struct sockaddr_in6 {
> -     unsigned short int      sin6_family;    /* AF_INET6 */
> -     __u16                   sin6_port;      /* Transport layer port # */
> -     __u32                   sin6_flowinfo;  /* IPv6 flow information */
> -     struct in6_addr         sin6_addr;      /* IPv6 address */
> -};
> -
> -
> -struct ipv6_mreq {
> -     /* IPv6 multicast address of group */
> -     struct in6_addr ipv6mr_multiaddr;
> -
> -     /* local IPv6 address of interface */
> -     int             ipv6mr_ifindex;
> -};
> -
> -struct in6_flowlabel_req
> -{
> -     struct in6_addr flr_dst;
> -     __u32   flr_label;
> -     __u8    flr_action;
> -     __u8    flr_share;
> -     __u16   flr_flags;
> -     __u16   flr_expires;
> -     __u16   flr_linger;
> -     __u32   __flr_pad;
> -     /* Options in format of IPV6_PKTOPTIONS */
> -};
> -
> -#define IPV6_FL_A_GET        0
> -#define IPV6_FL_A_PUT        1
> -#define IPV6_FL_A_RENEW      2
> -
> -#define IPV6_FL_F_CREATE     1
> -#define IPV6_FL_F_EXCL               2
> -
> -#define IPV6_FL_S_NONE               0
> -#define IPV6_FL_S_EXCL               1
> -#define IPV6_FL_S_PROCESS    2
> -#define IPV6_FL_S_USER               3
> -#define IPV6_FL_S_ANY                255
> -
> -
> -/*
> - *   Bitmask constant declarations to help applications select out the 
> - *   flow label and priority fields.
> - *
> - *   Note that this are in host byte order while the flowinfo field of
> - *   sockaddr_in6 is in network byte order.
> - */
> -
> -#define IPV6_FLOWINFO_FLOWLABEL              0x000fffff
> -#define IPV6_FLOWINFO_PRIORITY               0x0ff00000
> -
> -/* These defintions are obsolete */
> -#define IPV6_PRIORITY_UNCHARACTERIZED        0x0000
> -#define IPV6_PRIORITY_FILLER         0x0100
> -#define IPV6_PRIORITY_UNATTENDED     0x0200
> -#define IPV6_PRIORITY_RESERVED1              0x0300
> -#define IPV6_PRIORITY_BULK           0x0400
> -#define IPV6_PRIORITY_RESERVED2              0x0500
> -#define IPV6_PRIORITY_INTERACTIVE    0x0600
> -#define IPV6_PRIORITY_CONTROL                0x0700
> -#define IPV6_PRIORITY_8                      0x0800
> -#define IPV6_PRIORITY_9                      0x0900
> -#define IPV6_PRIORITY_10             0x0a00
> -#define IPV6_PRIORITY_11             0x0b00
> -#define IPV6_PRIORITY_12             0x0c00
> -#define IPV6_PRIORITY_13             0x0d00
> -#define IPV6_PRIORITY_14             0x0e00
> -#define IPV6_PRIORITY_15             0x0f00
> -
> -/*
> - *   IPV6 extension headers
> - */
> -#define IPPROTO_HOPOPTS              0       /* IPv6 hop-by-hop options      
> */
> -#define IPPROTO_ROUTING              43      /* IPv6 routing header          
> */
> -#define IPPROTO_FRAGMENT     44      /* IPv6 fragmentation header    */
> -#define IPPROTO_ICMPV6               58      /* ICMPv6                       
> */
> -#define IPPROTO_NONE         59      /* IPv6 no next header          */
> -#define IPPROTO_DSTOPTS              60      /* IPv6 destination options     
> */
> -
> -/*
> - *   IPv6 TLV options.
> - */
> -#define IPV6_TLV_PAD0                0
> -#define IPV6_TLV_PADN                1
> -#define IPV6_TLV_ROUTERALERT 20
> -#define IPV6_TLV_JUMBO               194
> -
> -/*
> - *   IPV6 socket options
> - */
> -
> -#define IPV6_ADDRFORM                1
> -#define IPV6_PKTINFO         2
> -#define IPV6_HOPOPTS         3
> -#define IPV6_DSTOPTS         4
> -#define IPV6_RTHDR           5
> -#define IPV6_PKTOPTIONS              6
> -#define IPV6_CHECKSUM                7
> -#define IPV6_HOPLIMIT                8
> -#define IPV6_NEXTHOP         9
> -#define IPV6_AUTHHDR         10
> -#define IPV6_FLOWINFO                11
> -
> -#if 0
> -/* Aliases for obsolete names */
> -#define IPV6_RXHOPOPTS               IPV6_HOPOPTS
> -#define IPV6_RXDSTOPTS               IPV6_DSTOPTS
> -#define IPV6_RXSRCRT         IPV6_RTHDR
> -#endif
> -
> -/*
> - *   Alternative names
> - */
> -#define SCM_SRCRT            IPV6_RXSRCRT
> -
> -#define IPV6_UNICAST_HOPS    16
> -#define IPV6_MULTICAST_IF    17
> -#define IPV6_MULTICAST_HOPS  18
> -#define IPV6_MULTICAST_LOOP  19
> -#define IPV6_ADD_MEMBERSHIP  20
> -#define IPV6_DROP_MEMBERSHIP 21
> -#define IPV6_ROUTER_ALERT    22
> -#define IPV6_MTU_DISCOVER    23
> -#define IPV6_MTU             24
> -#define IPV6_RECVERR         25
> -#define IPV6_V6ONLY          26
> -
> -/* IPV6_MTU_DISCOVER values */
> -#define IPV6_PMTUDISC_DONT           0
> -#define IPV6_PMTUDISC_WANT           1
> -#define IPV6_PMTUDISC_DO             2
> -
> -/* Flowlabel */
> -#define IPV6_FLOWLABEL_MGR   32
> -#define IPV6_FLOWINFO_SEND   33
> -
> -
> -#endif
> diff --git a/pfinet/linux-src/include/linux/interrupt.h 
> b/pfinet/linux-src/include/linux/interrupt.h
> deleted file mode 100644
> index 3e3edd8b..00000000
> --- a/pfinet/linux-src/include/linux/interrupt.h
> +++ /dev/null
> @@ -1,84 +0,0 @@
> -/* interrupt.h */
> -#ifndef _LINUX_INTERRUPT_H
> -#define _LINUX_INTERRUPT_H
> -
> -#include <linux/kernel.h>
> -#include <asm/bitops.h>
> -#include <asm/atomic.h>
> -
> -struct irqaction {
> -     void (*handler)(int, void *, struct pt_regs *);
> -     unsigned long flags;
> -     unsigned long mask;
> -     const char *name;
> -     void *dev_id;
> -     struct irqaction *next;
> -};
> -
> -extern volatile unsigned char bh_running;
> -
> -extern atomic_t bh_mask_count[32];
> -extern unsigned long bh_active;
> -extern unsigned long bh_mask;
> -extern void (*bh_base[32])(void);
> -
> -asmlinkage void do_bottom_half(void);
> -
> -/* Who gets which entry in bh_base.  Things which will occur most often
> -   should come first - in which case NET should be up the top with 
> SERIAL/TQUEUE! */
> -   
> -enum {
> -     TIMER_BH = 0,
> -     CONSOLE_BH,
> -     TQUEUE_BH,
> -     DIGI_BH,
> -     SERIAL_BH,
> -     RISCOM8_BH,
> -     SPECIALIX_BH,
> -     AURORA_BH,
> -     ESP_BH,
> -     NET_BH,
> -     SCSI_BH,
> -     IMMEDIATE_BH,
> -     KEYBOARD_BH,
> -     CYCLADES_BH,
> -     CM206_BH,
> -     JS_BH,
> -     MACSERIAL_BH,
> -     ISICOM_BH
> -};
> -
> -#include <asm/hardirq.h>
> -#include <asm/softirq.h>
> -
> -/*
> - * Autoprobing for irqs:
> - *
> - * probe_irq_on() and probe_irq_off() provide robust primitives
> - * for accurate IRQ probing during kernel initialization.  They are
> - * reasonably simple to use, are not "fooled" by spurious interrupts,
> - * and, unlike other attempts at IRQ probing, they do not get hung on
> - * stuck interrupts (such as unused PS2 mouse interfaces on ASUS boards).
> - *
> - * For reasonably foolproof probing, use them as follows:
> - *
> - * 1. clear and/or mask the device's internal interrupt.
> - * 2. sti();
> - * 3. irqs = probe_irq_on();      // "take over" all unassigned idle IRQs
> - * 4. enable the device and cause it to trigger an interrupt.
> - * 5. wait for the device to interrupt, using non-intrusive polling or a 
> delay.
> - * 6. irq = probe_irq_off(irqs);  // get IRQ number, 0=none, 
> negative=multiple
> - * 7. service the device to clear its pending interrupt.
> - * 8. loop again if paranoia is required.
> - *
> - * probe_irq_on() returns a mask of allocated irq's.
> - *
> - * probe_irq_off() takes the mask as a parameter,
> - * and returns the irq number which occurred,
> - * or zero if none occurred, or a negative irq number
> - * if more than one irq occurred.
> - */
> -extern unsigned long probe_irq_on(void);     /* returns 0 on failure */
> -extern int probe_irq_off(unsigned long);     /* returns 0 or negative on 
> failure */
> -
> -#endif
> diff --git a/pfinet/linux-src/include/linux/ioctl.h 
> b/pfinet/linux-src/include/linux/ioctl.h
> deleted file mode 100644
> index 7e55c361..00000000
> --- a/pfinet/linux-src/include/linux/ioctl.h
> +++ /dev/null
> @@ -1,6 +0,0 @@
> -#ifndef _LINUX_IOCTL_H
> -#define _LINUX_IOCTL_H
> -
> -#include <asm/ioctl.h>
> -
> -#endif /* _LINUX_IOCTL_H */
> diff --git a/pfinet/linux-src/include/linux/ipv6.h 
> b/pfinet/linux-src/include/linux/ipv6.h
> deleted file mode 100644
> index 299db1a5..00000000
> --- a/pfinet/linux-src/include/linux/ipv6.h
> +++ /dev/null
> @@ -1,132 +0,0 @@
> -#ifndef _IPV6_H
> -#define _IPV6_H
> -
> -#include <linux/config.h>
> -#include <linux/in6.h>
> -#include <asm/byteorder.h>
> -
> -/* The latest drafts declared increase in minimal mtu up to 1280. */
> -
> -#define IPV6_MIN_MTU 1280
> -
> -/*
> - *   Advanced API
> - *   source interface/address selection, source routing, etc...
> - *   *under construction*
> - */
> -
> -
> -struct in6_pktinfo {
> -     struct in6_addr ipi6_addr;
> -     int             ipi6_ifindex;
> -};
> -
> -
> -struct in6_ifreq {
> -     struct in6_addr ifr6_addr;
> -     __u32           ifr6_prefixlen;
> -     int             ifr6_ifindex; 
> -};
> -
> -#define IPV6_SRCRT_STRICT    0x01    /* this hop must be a neighbor  */
> -#define IPV6_SRCRT_TYPE_0    0       /* IPv6 type 0 Routing Header   */
> -
> -/*
> - *   routing header
> - */
> -struct ipv6_rt_hdr {
> -     __u8            nexthdr;
> -     __u8            hdrlen;
> -     __u8            type;
> -     __u8            segments_left;
> -
> -     /*
> -      *      type specific data
> -      *      variable length field
> -      */
> -};
> -
> -
> -struct ipv6_opt_hdr {
> -     __u8            nexthdr;
> -     __u8            hdrlen;
> -     /* 
> -      * TLV encoded option data follows.
> -      */
> -};
> -
> -#define ipv6_destopt_hdr ipv6_opt_hdr
> -#define ipv6_hopopt_hdr  ipv6_opt_hdr
> -
> -#ifdef __KERNEL__
> -#define ipv6_optlen(p)  (((p)->hdrlen+1) << 3)
> -#endif
> -
> -/*
> - *   routing header type 0 (used in cmsghdr struct)
> - */
> -
> -struct rt0_hdr {
> -     struct ipv6_rt_hdr      rt_hdr;
> -     __u32                   bitmap;         /* strict/loose bit map */
> -     struct in6_addr         addr[0];
> -
> -#define rt0_type             rt_hdr.type;
> -};
> -
> -/*
> - *   IPv6 fixed header
> - *
> - *   BEWARE, it is incorrect. The first 4 bits of flow_lbl
> - *   are glued to priority now, forming "class".
> - */
> -
> -struct ipv6hdr {
> -#if defined(__LITTLE_ENDIAN_BITFIELD)
> -     __u8                    priority:4,
> -                             version:4;
> -#elif defined(__BIG_ENDIAN_BITFIELD)
> -     __u8                    version:4,
> -                             priority:4;
> -#else
> -#error       "Please fix <asm/byteorder.h>"
> -#endif
> -     __u8                    flow_lbl[3];
> -
> -     __u16                   payload_len;
> -     __u8                    nexthdr;
> -     __u8                    hop_limit;
> -
> -     struct  in6_addr        saddr;
> -     struct  in6_addr        daddr;
> -};
> -
> -#ifdef __KERNEL__
> -
> -/* 
> -   This structure contains results of exthdrs parsing
> -   as offsets from skb->nh.
> - */
> -
> -struct inet6_skb_parm
> -{
> -     int                     iif;
> -     __u16                   ra;
> -     __u16                   hop;
> -     __u16                   auth;
> -     __u16                   dst0;
> -     __u16                   srcrt;
> -     __u16                   dst1;
> -};
> -
> -#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
> -#define __ipv6_only_sock(sk)   (sk->net_pinfo.af_inet6.ipv6only)
> -#define ipv6_only_sock(sk)     ((sk)->family == PF_INET6 && 
> __ipv6_only_sock(sk))
> -#else
> -#define __ipv6_only_sock(sk)   0
> -#define ipv6_only_sock(sk)     0
> -#endif
> -
> -#endif
> -
> -#endif
> diff --git a/pfinet/linux-src/include/linux/kernel.h 
> b/pfinet/linux-src/include/linux/kernel.h
> deleted file mode 100644
> index 73a0a689..00000000
> --- a/pfinet/linux-src/include/linux/kernel.h
> +++ /dev/null
> @@ -1,96 +0,0 @@
> -#ifndef _LINUX_KERNEL_H
> -#define _LINUX_KERNEL_H
> -
> -/*
> - * 'kernel.h' contains some often-used function prototypes etc
> - */
> -
> -#ifdef __KERNEL__
> -
> -#include <stdarg.h>
> -#include <linux/linkage.h>
> -
> -/* Optimization barrier */
> -/* The "volatile" is due to gcc bugs */
> -#define barrier() __asm__ __volatile__("": : :"memory")
> -
> -#define INT_MAX              ((int)(~0U>>1))
> -#define UINT_MAX     (~0U)
> -#define LONG_MAX     ((long)(~0UL>>1))
> -#define ULONG_MAX    (~0UL)
> -
> -#define STACK_MAGIC  0xdeadbeef
> -
> -#define      KERN_EMERG      "<0>"   /* system is unusable                   
> */
> -#define      KERN_ALERT      "<1>"   /* action must be taken immediately     
> */
> -#define      KERN_CRIT       "<2>"   /* critical conditions                  
> */
> -#define      KERN_ERR        "<3>"   /* error conditions                     
> */
> -#define      KERN_WARNING    "<4>"   /* warning conditions                   
> */
> -#define      KERN_NOTICE     "<5>"   /* normal but significant condition     
> */
> -#define      KERN_INFO       "<6>"   /* informational                        
> */
> -#define      KERN_DEBUG      "<7>"   /* debug-level messages                 
> */
> -
> -# define NORET_TYPE    /**/
> -# define ATTRIB_NORET  __attribute__((noreturn))
> -# define NORET_AND     noreturn,
> -
> -#ifdef __i386__
> -#define FASTCALL(x)  x __attribute__((regparm(3)))
> -#else
> -#define FASTCALL(x)  x
> -#endif
> -
> -extern void math_error(void);
> -extern struct notifier_block *panic_notifier_list;
> -NORET_TYPE void panic(const char * fmt, ...)
> -     __attribute__ ((NORET_AND format (printf, 1, 2)));
> -NORET_TYPE void do_exit(long error_code)
> -     ATTRIB_NORET;
> -extern unsigned long simple_strtoul(const char *,char **,unsigned int);
> -extern long simple_strtol(const char *,char **,unsigned int);
> -extern int sprintf(char * buf, const char * fmt, ...);
> -extern int vsprintf(char *buf, const char *, va_list);
> -
> -extern int session_of_pgrp(int pgrp);
> -
> -asmlinkage int printk(const char * fmt, ...)
> -     __attribute__ ((format (printf, 1, 2)));
> -
> -#if DEBUG
> -#define pr_debug(fmt,arg...) \
> -     printk(KERN_DEBUG fmt,##arg)
> -#else
> -#define pr_debug(fmt,arg...) \
> -     do { } while (0)
> -#endif
> -
> -#define pr_info(fmt,arg...) \
> -     printk(KERN_INFO fmt,##arg)
> -
> -/*
> - *      Display an IP address in readable format.
> - */
> -
> -#define NIPQUAD(addr) \
> -     ((unsigned char *)&addr)[0], \
> -     ((unsigned char *)&addr)[1], \
> -     ((unsigned char *)&addr)[2], \
> -     ((unsigned char *)&addr)[3]
> -
> -#endif /* __KERNEL__ */
> -
> -#define SI_LOAD_SHIFT        16
> -struct sysinfo {
> -     long uptime;                    /* Seconds since boot */
> -     unsigned long loads[3];         /* 1, 5, and 15 minute load averages */
> -     unsigned long totalram;         /* Total usable main memory size */
> -     unsigned long freeram;          /* Available memory size */
> -     unsigned long sharedram;        /* Amount of shared memory */
> -     unsigned long bufferram;        /* Memory used by buffers */
> -     unsigned long totalswap;        /* Total swap space size */
> -     unsigned long freeswap;         /* swap space still available */
> -     unsigned short procs;           /* Number of current processes */
> -     char _f[22];                    /* Pads structure to 64 bytes */
> -};
> -
> -#endif
> diff --git a/pfinet/linux-src/include/linux/limits.h 
> b/pfinet/linux-src/include/linux/limits.h
> deleted file mode 100644
> index 5848688e..00000000
> --- a/pfinet/linux-src/include/linux/limits.h
> +++ /dev/null
> @@ -1,19 +0,0 @@
> -#ifndef _LINUX_LIMITS_H
> -#define _LINUX_LIMITS_H
> -
> -#define NR_OPEN              1024
> -
> -#define NGROUPS_MAX       32 /* supplemental group IDs are available */
> -#define ARG_MAX       131072 /* # bytes of args + environ for exec() */
> -#define CHILD_MAX        999    /* no limit :-) */
> -#define OPEN_MAX         256 /* # open files a process may have */
> -#define LINK_MAX         127 /* # links a file may have */
> -#define MAX_CANON        255 /* size of the canonical input queue */
> -#define MAX_INPUT        255 /* size of the type-ahead buffer */
> -#define NAME_MAX         255 /* # chars in a file name */
> -#define PATH_MAX        4095 /* # chars in a path name */
> -#define PIPE_BUF        4096 /* # bytes in atomic write to a pipe */
> -
> -#define RTSIG_MAX      32
> -
> -#endif
> diff --git a/pfinet/linux-src/include/linux/major.h 
> b/pfinet/linux-src/include/linux/major.h
> deleted file mode 100644
> index 2db0a0af..00000000
> --- a/pfinet/linux-src/include/linux/major.h
> +++ /dev/null
> @@ -1,135 +0,0 @@
> -#ifndef _LINUX_MAJOR_H
> -#define _LINUX_MAJOR_H
> -
> -/*
> - * This file has definitions for major device numbers.
> - * For the device number assignments, see Documentation/devices.txt.
> - */
> -
> -/* limits */
> -
> -/*
> - * Important: Don't change this to 256.  Major number 255 is and must be
> - * reserved for future expansion into a larger dev_t space.
> - */
> -#define MAX_CHRDEV   255
> -#define MAX_BLKDEV   255
> -
> -#define UNNAMED_MAJOR        0
> -#define MEM_MAJOR    1
> -#define RAMDISK_MAJOR        1
> -#define FLOPPY_MAJOR 2
> -#define PTY_MASTER_MAJOR 2
> -#define IDE0_MAJOR   3
> -#define PTY_SLAVE_MAJOR 3
> -#define HD_MAJOR     IDE0_MAJOR
> -#define TTY_MAJOR    4
> -#define TTYAUX_MAJOR 5
> -#define LP_MAJOR     6
> -#define VCS_MAJOR    7
> -#define LOOP_MAJOR   7
> -#define SCSI_DISK0_MAJOR 8
> -#define SCSI_TAPE_MAJOR      9
> -#define MD_MAJOR        9
> -#define MISC_MAJOR   10
> -#define SCSI_CDROM_MAJOR 11
> -#define QIC02_TAPE_MAJOR 12
> -#define XT_DISK_MAJOR        13
> -#define SOUND_MAJOR  14
> -#define CDU31A_CDROM_MAJOR 15
> -#define JOYSTICK_MAJOR       15
> -#define GOLDSTAR_CDROM_MAJOR 16
> -#define OPTICS_CDROM_MAJOR 17
> -#define SANYO_CDROM_MAJOR 18
> -#define CYCLADES_MAJOR  19
> -#define CYCLADESAUX_MAJOR 20
> -#define MITSUMI_X_CDROM_MAJOR 20
> -#define MFM_ACORN_MAJOR 21   /* ARM Linux /dev/mfm */
> -#define SCSI_GENERIC_MAJOR 21
> -#define Z8530_MAJOR 34
> -#define DIGI_MAJOR 23
> -#define IDE1_MAJOR   22
> -#define DIGICU_MAJOR 22
> -#define MITSUMI_CDROM_MAJOR 23
> -#define CDU535_CDROM_MAJOR 24
> -#define STL_SERIALMAJOR 24
> -#define MATSUSHITA_CDROM_MAJOR 25
> -#define STL_CALLOUTMAJOR 25
> -#define MATSUSHITA_CDROM2_MAJOR 26
> -#define QIC117_TAPE_MAJOR 27
> -#define MATSUSHITA_CDROM3_MAJOR 27
> -#define MATSUSHITA_CDROM4_MAJOR 28
> -#define STL_SIOMEMMAJOR 28
> -#define ACSI_MAJOR   28
> -#define AZTECH_CDROM_MAJOR 29
> -#define GRAPHDEV_MAJOR       29      /* SparcLinux & Linux/68k /dev/fb */
> -#define SHMIQ_MAJOR  85      /* Linux/MIPS, SGI /dev/shmiq */
> -#define CM206_CDROM_MAJOR 32
> -#define IDE2_MAJOR   33
> -#define IDE3_MAJOR   34
> -#define NETLINK_MAJOR        36
> -#define PS2ESDI_MAJOR        36
> -#define IDETAPE_MAJOR        37
> -#define Z2RAM_MAJOR  37
> -#define APBLOCK_MAJOR   38   /* AP1000 Block device */
> -#define DDV_MAJOR       39   /* AP1000 DDV block device */
> -#define NBD_MAJOR    43   /* Network block device    */
> -#define RISCOM8_NORMAL_MAJOR 48
> -#define DAC960_MAJOR 48      /* 48..55 */
> -#define RISCOM8_CALLOUT_MAJOR 49
> -#define MKISS_MAJOR  55
> -#define DSP56K_MAJOR    55   /* DSP56001 processor device */
> -
> -#define IDE4_MAJOR   56
> -#define IDE5_MAJOR   57
> -
> -#define SCSI_DISK1_MAJOR     65
> -#define SCSI_DISK2_MAJOR     66
> -#define SCSI_DISK3_MAJOR     67
> -#define SCSI_DISK4_MAJOR     68
> -#define SCSI_DISK5_MAJOR     69
> -#define SCSI_DISK6_MAJOR     70
> -#define SCSI_DISK7_MAJOR     71
> -
> -#define LVM_BLK_MAJOR        58      /* Logical Volume Manager */
> -
> -#define COMPAQ_SMART2_MAJOR  72
> -#define COMPAQ_SMART2_MAJOR1 73
> -#define COMPAQ_SMART2_MAJOR2 74
> -#define COMPAQ_SMART2_MAJOR3 75
> -#define COMPAQ_SMART2_MAJOR4 76
> -#define COMPAQ_SMART2_MAJOR5 77
> -#define COMPAQ_SMART2_MAJOR6 78
> -#define COMPAQ_SMART2_MAJOR7 79
> -
> -#define SPECIALIX_NORMAL_MAJOR 75
> -#define SPECIALIX_CALLOUT_MAJOR 76
> -
> -#define DASD_MAJOR      94   /* Official assignations from Peter */
> -
> -#define LVM_CHAR_MAJOR       109     /* Logical Volume Manager */
> -
> -#define MDISK_MAJOR     95   /* Official assignations from Peter */
> -
> -#define AURORA_MAJOR 79
> -
> -#define UNIX98_PTY_MASTER_MAJOR      128
> -#define UNIX98_PTY_MAJOR_COUNT       8
> -#define UNIX98_PTY_SLAVE_MAJOR       
> (UNIX98_PTY_MASTER_MAJOR+UNIX98_PTY_MAJOR_COUNT)
> -
> -/*
> - * Tests for SCSI devices.
> - */
> -
> -#define SCSI_DISK_MAJOR(M) ((M) == SCSI_DISK0_MAJOR || \
> -  ((M) >= SCSI_DISK1_MAJOR && (M) <= SCSI_DISK7_MAJOR))
> -  
> -#define SCSI_BLK_MAJOR(M) \
> -  (SCSI_DISK_MAJOR(M)        \
> -   || (M) == SCSI_CDROM_MAJOR)
> -
> -static __inline__ int scsi_blk_major(int m) {
> -     return SCSI_BLK_MAJOR(m);
> -}
> -
> -#endif
> diff --git a/pfinet/linux-src/include/linux/malloc.h 
> b/pfinet/linux-src/include/linux/malloc.h
> deleted file mode 100644
> index f3ebf185..00000000
> --- a/pfinet/linux-src/include/linux/malloc.h
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -#ifndef _LINUX_MALLOC_H
> -#define _LINUX_MALLOC_H
> -
> -#include <linux/slab.h>
> -#endif /* _LINUX_MALLOC_H */
> diff --git a/pfinet/linux-src/include/linux/mm.h 
> b/pfinet/linux-src/include/linux/mm.h
> deleted file mode 100644
> index 232c53dc..00000000
> --- a/pfinet/linux-src/include/linux/mm.h
> +++ /dev/null
> @@ -1,392 +0,0 @@
> -#ifndef _LINUX_MM_H
> -#define _LINUX_MM_H
> -
> -#include <linux/sched.h>
> -#include <linux/errno.h>
> -
> -#ifdef __KERNEL__
> -
> -#include <linux/string.h>
> -
> -extern unsigned long max_mapnr;
> -extern unsigned long num_physpages;
> -extern void * high_memory;
> -extern int page_cluster;
> -
> -#include <asm/page.h>
> -#include <asm/atomic.h>
> -
> -/*
> - * Linux kernel virtual memory manager primitives.
> - * The idea being to have a "virtual" mm in the same way
> - * we have a virtual fs - giving a cleaner interface to the
> - * mm details, and allowing different kinds of memory mappings
> - * (from shared memory to executable loading to arbitrary
> - * mmap() functions).
> - */
> -
> -/*
> - * This struct defines a memory VMM memory area. There is one of these
> - * per VM-area/task.  A VM area is any part of the process virtual memory
> - * space that has a special rule for the page-fault handlers (ie a shared
> - * library, the executable area etc).
> - */
> -struct vm_area_struct {
> -     struct mm_struct * vm_mm;       /* VM area parameters */
> -     unsigned long vm_start;
> -     unsigned long vm_end;
> -
> -     /* linked list of VM areas per task, sorted by address */
> -     struct vm_area_struct *vm_next;
> -
> -     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;
> -
> -     /* 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 file * vm_file;
> -     unsigned long vm_pte;                   /* shared mem */
> -};
> -
> -/*
> - * vm_flags..
> - */
> -#define VM_READ              0x0001  /* currently active flags */
> -#define VM_WRITE     0x0002
> -#define VM_EXEC              0x0004
> -#define VM_SHARED    0x0008
> -
> -#define VM_MAYREAD   0x0010  /* limits for mprotect() etc */
> -#define VM_MAYWRITE  0x0020
> -#define VM_MAYEXEC   0x0040
> -#define VM_MAYSHARE  0x0080
> -
> -#define VM_GROWSDOWN 0x0100  /* general info on the segment */
> -#define VM_GROWSUP   0x0200
> -#define VM_SHM               0x0400  /* shared memory area, don't swap out */
> -#define VM_DENYWRITE 0x0800  /* ETXTBSY on write attempts.. */
> -
> -#define VM_EXECUTABLE        0x1000
> -#define VM_LOCKED    0x2000
> -#define VM_IO           0x4000  /* Memory mapped I/O or similar */
> -
> -#define VM_STACK_FLAGS       0x0177
> -
> -/*
> - * mapping from the currently active vm_flags protection bits (the
> - * low four bits) to a page protection mask..
> - */
> -extern pgprot_t protection_map[16];
> -
> -
> -/*
> - * These are the virtual MM functions - opening of an area, closing and
> - * unmapping it (needed to keep files on disk up-to-date etc), pointer
> - * to the functions called when a no-page or a wp-page exception occurs. 
> - */
> -struct vm_operations_struct {
> -     void (*open)(struct vm_area_struct * area);
> -     void (*close)(struct vm_area_struct * area);
> -     void (*unmap)(struct vm_area_struct *area, unsigned long, size_t);
> -     void (*protect)(struct vm_area_struct *area, unsigned long, size_t, 
> unsigned int newprot);
> -     int (*sync)(struct vm_area_struct *area, unsigned long, size_t, 
> unsigned int flags);
> -     void (*advise)(struct vm_area_struct *area, unsigned long, size_t, 
> unsigned int advise);
> -     unsigned long (*nopage)(struct vm_area_struct * area, unsigned long 
> address, int write_access);
> -     unsigned long (*wppage)(struct vm_area_struct * area, unsigned long 
> address,
> -             unsigned long page);
> -     int (*swapout)(struct vm_area_struct *, struct page *);
> -     pte_t (*swapin)(struct vm_area_struct *, unsigned long, unsigned long);
> -};
> -
> -/*
> - * Try to keep the most commonly accessed fields in single cache lines
> - * here (16 bytes or greater).  This ordering should be particularly
> - * beneficial on 32-bit processors.
> - *
> - * The first line is data used in page cache lookup, the second line
> - * is used for linear searches (eg. clock algorithm scans). 
> - */
> -typedef struct page {
> -     /* these must be first (free area handling) */
> -     struct page *next;
> -     struct page *prev;
> -     struct inode *inode;
> -     unsigned long offset;
> -     struct page *next_hash;
> -     atomic_t count;
> -     unsigned long flags;    /* atomic flags, some possibly updated 
> asynchronously */
> -     struct wait_queue *wait;
> -     struct page **pprev_hash;
> -     struct buffer_head * buffers;
> -} mem_map_t;
> -
> -/* Page flag bit values */
> -#define PG_locked             0
> -#define PG_error              1
> -#define PG_referenced                 2
> -#define PG_dirty              3
> -#define PG_uptodate           4
> -#define PG_free_after                 5
> -#define PG_decr_after                 6
> -#define PG_swap_unlock_after  7
> -#define PG_DMA                        8
> -#define PG_Slab                       9
> -#define PG_swap_cache                10
> -#define PG_skip                      11
> -#define PG_reserved          31
> -
> -/* Make it prettier to test the above... */
> -#define PageLocked(page)     (test_bit(PG_locked, &(page)->flags))
> -#define PageError(page)              (test_bit(PG_error, &(page)->flags))
> -#define PageReferenced(page) (test_bit(PG_referenced, &(page)->flags))
> -#define PageDirty(page)              (test_bit(PG_dirty, &(page)->flags))
> -#define PageUptodate(page)   (test_bit(PG_uptodate, &(page)->flags))
> -#define PageFreeAfter(page)  (test_bit(PG_free_after, &(page)->flags))
> -#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 PageSwapCache(page)  (test_bit(PG_swap_cache, &(page)->flags))
> -#define PageReserved(page)   (test_bit(PG_reserved, &(page)->flags))
> -
> -#define PageSetSlab(page)    (set_bit(PG_Slab, &(page)->flags))
> -#define PageSetSwapCache(page)       (set_bit(PG_swap_cache, &(page)->flags))
> -
> -#define PageTestandSetDirty(page)    \
> -                     (test_and_set_bit(PG_dirty, &(page)->flags))
> -#define PageTestandSetSwapCache(page)        \
> -                     (test_and_set_bit(PG_swap_cache, &(page)->flags))
> -
> -#define PageClearSlab(page)  (clear_bit(PG_Slab, &(page)->flags))
> -#define PageClearSwapCache(page)(clear_bit(PG_swap_cache, &(page)->flags))
> -
> -#define PageTestandClearDirty(page) \
> -                     (test_and_clear_bit(PG_dirty, &(page)->flags))
> -#define PageTestandClearSwapCache(page)      \
> -                     (test_and_clear_bit(PG_swap_cache, &(page)->flags))
> -
> -/*
> - * Various page->flags bits:
> - *
> - * PG_reserved is set for a page which must never be accessed (which
> - * may not even be present).
> - *
> - * PG_DMA is set for those pages which lie in the range of
> - * physical addresses capable of carrying DMA transfers.
> - *
> - * Multiple processes may "see" the same page. E.g. for untouched
> - * mappings of /dev/null, all processes see the same page full of
> - * zeroes, and text pages of executables and shared libraries have
> - * only one copy in memory, at most, normally.
> - *
> - * For the non-reserved pages, page->count denotes a reference count.
> - *   page->count == 0 means the page is free.
> - *   page->count == 1 means the page is used for exactly one purpose
> - *   (e.g. a private data page of one process).
> - *
> - * A page may be used for kmalloc() or anyone else who does a
> - * get_free_page(). In this case the page->count is at least 1, and
> - * all other fields are unused but should be 0 or NULL. The
> - * management of this page is the responsibility of the one who uses
> - * it.
> - *
> - * The other pages (we may call them "process pages") are completely
> - * managed by the Linux memory manager: I/O, buffers, swapping etc.
> - * The following discussion applies only to them.
> - *
> - * A page may belong to an inode's memory mapping. In this case,
> - * page->inode is the pointer to the inode, and page->offset is the
> - * file offset of the page (not necessarily a multiple of PAGE_SIZE).
> - *
> - * A page may have buffers allocated to it. In this case,
> - * page->buffers is a circular list of these buffer heads. Else,
> - * page->buffers == NULL.
> - *
> - * For pages belonging to inodes, the page->count is the number of
> - * attaches, plus 1 if buffers are allocated to the page.
> - *
> - * All pages belonging to an inode make up a doubly linked list
> - * inode->i_pages, using the fields page->next and page->prev. (These
> - * fields are also used for freelist management when page->count==0.)
> - * There is also a hash table mapping (inode,offset) to the page
> - * in memory if present. The lists for this hash table use the fields
> - * page->next_hash and page->pprev_hash.
> - *
> - * All process pages can do I/O:
> - * - inode pages may need to be read from disk,
> - * - inode pages which have been modified and are MAP_SHARED may need
> - *   to be written to disk,
> - * - private pages which have been modified may need to be swapped out
> - *   to swap space and (later) to be read back into memory.
> - * During disk I/O, PG_locked is used. This bit is set before I/O
> - * and reset when I/O completes. page->wait is a wait queue of all
> - * tasks waiting for the I/O on this page to complete.
> - * PG_uptodate tells whether the page's contents is valid.
> - * When a read completes, the page becomes uptodate, unless a disk I/O
> - * error happened.
> - * When a write completes, and PG_free_after is set, the page is
> - * freed without any further delay.
> - *
> - * For choosing which pages to swap out, inode pages carry a
> - * PG_referenced bit, which is set any time the system accesses
> - * that page through the (inode,offset) hash table.
> - *
> - * PG_skip is used on sparc/sparc64 architectures to "skip" certain
> - * parts of the address space.
> - *
> - * PG_error is set to indicate that an I/O error occurred on this page.
> - */
> -
> -extern mem_map_t * mem_map;
> -
> -/*
> - * This is timing-critical - most of the time in getting a new page
> - * goes to clearing the page. If you want a page without the clearing
> - * overhead, just use __get_free_page() directly..
> - */
> -#define __get_free_page(gfp_mask) __get_free_pages((gfp_mask),0)
> -#define __get_dma_pages(gfp_mask, order) __get_free_pages((gfp_mask) | 
> GFP_DMA,(order))
> -extern unsigned long FASTCALL(__get_free_pages(int gfp_mask, unsigned long 
> gfp_order));
> -
> -extern inline unsigned long get_free_page(int gfp_mask)
> -{
> -     unsigned long page;
> -
> -     page = __get_free_page(gfp_mask);
> -     if (page)
> -             clear_page(page);
> -     return page;
> -}
> -
> -extern int low_on_memory;
> -
> -/* memory.c & swap.c*/
> -
> -#define free_page(addr) free_pages((addr),0)
> -extern void FASTCALL(free_pages(unsigned long addr, unsigned long order));
> -extern void FASTCALL(__free_page(struct page *));
> -
> -extern void show_free_areas(void);
> -extern unsigned long put_dirty_page(struct task_struct * tsk,unsigned long 
> page,
> -     unsigned long address);
> -
> -extern void free_page_tables(struct mm_struct * mm);
> -extern void clear_page_tables(struct mm_struct *, unsigned long, int);
> -extern int new_page_tables(struct task_struct * tsk);
> -
> -extern void zap_page_range(struct mm_struct *mm, unsigned long address, 
> unsigned long size);
> -extern int copy_page_range(struct mm_struct *dst, struct mm_struct *src, 
> struct vm_area_struct *vma);
> -extern int remap_page_range(unsigned long from, unsigned long to, unsigned 
> long size, pgprot_t prot);
> -extern int zeromap_page_range(unsigned long from, unsigned long size, 
> pgprot_t prot);
> -
> -extern void vmtruncate(struct inode * inode, unsigned long offset);
> -extern int handle_mm_fault(struct task_struct *tsk,struct vm_area_struct 
> *vma, unsigned long address, int write_access);
> -extern int make_pages_present(unsigned long addr, unsigned long end);
> -
> -extern int pgt_cache_water[2];
> -extern int check_pgt_cache(void);
> -
> -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);
> -extern void show_mem(void);
> -extern void si_meminfo(struct sysinfo * val);
> -
> -/* mmap.c */
> -extern void vma_init(void);
> -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 build_mmap_avl(struct mm_struct *);
> -extern void exit_mmap(struct mm_struct *);
> -extern unsigned long get_unmapped_area(unsigned long, unsigned long);
> -
> -extern unsigned long do_mmap(struct file *, unsigned long, unsigned long,
> -     unsigned long, unsigned long, unsigned long);
> -extern int do_munmap(unsigned long, size_t);
> -
> -/* filemap.c */
> -extern void remove_inode_page(struct page *);
> -extern unsigned long page_unuse(struct page *);
> -extern int shrink_mmap(int, int);
> -extern void truncate_inode_pages(struct inode *, unsigned long);
> -extern unsigned long get_cached_page(struct inode *, unsigned long, int);
> -extern void put_cached_page(unsigned long);
> -
> -/*
> - * GFP bitmasks..
> - */
> -#define __GFP_WAIT   0x01
> -#define __GFP_LOW    0x02
> -#define __GFP_MED    0x04
> -#define __GFP_HIGH   0x08
> -#define __GFP_IO     0x10
> -#define __GFP_SWAP   0x20
> -
> -#define __GFP_DMA    0x80
> -
> -#define GFP_BUFFER   (__GFP_LOW | __GFP_WAIT)
> -#define GFP_ATOMIC   (__GFP_HIGH)
> -#define GFP_USER     (__GFP_LOW | __GFP_WAIT | __GFP_IO)
> -#define GFP_KERNEL   (__GFP_MED | __GFP_WAIT | __GFP_IO)
> -#define GFP_NFS              (__GFP_HIGH | __GFP_WAIT | __GFP_IO)
> -#define GFP_KSWAPD   (__GFP_IO | __GFP_SWAP)
> -
> -/* Flag - indicates that the buffer will be suitable for DMA.  Ignored on 
> some
> -   platforms, used as appropriate on others */
> -
> -#define GFP_DMA              __GFP_DMA
> -
> -/* vma is the first one with  address < vma->vm_end,
> - * and even  address < vma->vm_start. Have to extend vma. */
> -static inline int expand_stack(struct vm_area_struct * vma, unsigned long 
> address)
> -{
> -     unsigned long grow;
> -
> -     address &= PAGE_MASK;
> -     grow = vma->vm_start - address;
> -     if ((vma->vm_end - address
> -         > current->rlim[RLIMIT_STACK].rlim_cur) ||
> -         ((current->rlim[RLIMIT_AS].rlim_cur < RLIM_INFINITY) &&
> -         ((vma->vm_mm->total_vm << PAGE_SHIFT) + grow
> -         > current->rlim[RLIMIT_AS].rlim_cur)))
> -             return -ENOMEM;
> -     vma->vm_start = address;
> -     vma->vm_offset -= grow;
> -     vma->vm_mm->total_vm += grow >> PAGE_SHIFT;
> -     if (vma->vm_flags & VM_LOCKED)
> -             vma->vm_mm->locked_vm += grow >> PAGE_SHIFT;
> -     return 0;
> -}
> -
> -/* Look up the first VMA which satisfies  addr < vm_end,  NULL if none. */
> -extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long 
> addr);
> -
> -/* 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 = find_vma(mm,start_addr);
> -
> -     if (vma && end_addr <= vma->vm_start)
> -             vma = NULL;
> -     return vma;
> -}
> -
> -#define buffer_under_min()   ((buffermem >> PAGE_SHIFT) * 100 < \
> -                             buffer_mem.min_percent * num_physpages)
> -#define pgcache_under_min()  (page_cache_size * 100 < \
> -                             page_cache.min_percent * num_physpages)
> -
> -#endif /* __KERNEL__ */
> -
> -#endif
> diff --git a/pfinet/linux-src/include/linux/param.h 
> b/pfinet/linux-src/include/linux/param.h
> deleted file mode 100644
> index 092e92f6..00000000
> --- a/pfinet/linux-src/include/linux/param.h
> +++ /dev/null
> @@ -1,6 +0,0 @@
> -#ifndef _LINUX_PARAM_H
> -#define _LINUX_PARAM_H
> -
> -#include <asm/param.h>
> -
> -#endif
> diff --git a/pfinet/linux-src/include/linux/personality.h 
> b/pfinet/linux-src/include/linux/personality.h
> deleted file mode 100644
> index a927b9e7..00000000
> --- a/pfinet/linux-src/include/linux/personality.h
> +++ /dev/null
> @@ -1,57 +0,0 @@
> -#ifndef _PERSONALITY_H
> -#define _PERSONALITY_H
> -
> -#include <linux/linkage.h>
> -#include <linux/ptrace.h>
> -
> -
> -/* Flags for bug emulation. These occupy the top three bytes. */
> -#define STICKY_TIMEOUTS              0x4000000
> -#define WHOLE_SECONDS                0x2000000
> -#define ADDR_LIMIT_32BIT     0x0800000
> -
> -/* Personality types. These go in the low byte. Avoid using the top bit,
> - * it will conflict with error returns.
> - */
> -#define PER_MASK             (0x00ff)
> -#define PER_LINUX            (0x0000)
> -#define PER_LINUX_32BIT              (0x0000 | ADDR_LIMIT_32BIT)
> -#define PER_SVR4             (0x0001 | STICKY_TIMEOUTS)
> -#define PER_SVR3             (0x0002 | STICKY_TIMEOUTS)
> -#define PER_SCOSVR3          (0x0003 | STICKY_TIMEOUTS | WHOLE_SECONDS)
> -#define PER_WYSEV386         (0x0004 | STICKY_TIMEOUTS)
> -#define PER_ISCR4            (0x0005 | STICKY_TIMEOUTS)
> -#define PER_BSD                      (0x0006)
> -#define PER_XENIX            (0x0007 | STICKY_TIMEOUTS)
> -#define PER_LINUX32          (0x0008)
> -#define PER_IRIX32              (0x0009 | STICKY_TIMEOUTS) /* IRIX5 32-bit   
>   */
> -#define PER_IRIXN32             (0x000a | STICKY_TIMEOUTS) /* IRIX6 new 
> 32-bit */
> -#define PER_IRIX64              (0x000b | STICKY_TIMEOUTS) /* IRIX6 64-bit   
>   */
> -
> -/* Prototype for an lcall7 syscall handler. */
> -typedef void (*lcall7_func)(struct pt_regs *);
> -
> -
> -/* Description of an execution domain - personality range supported,
> - * lcall7 syscall handler, start up / shut down functions etc.
> - * N.B. The name and lcall7 handler must be where they are since the
> - * offset of the handler is hard coded in kernel/sys_call.S.
> - */
> -struct exec_domain {
> -     const char *name;
> -     lcall7_func handler;
> -     unsigned char pers_low, pers_high;
> -     unsigned long * signal_map;
> -     unsigned long * signal_invmap;
> -     struct module * module;
> -     struct exec_domain *next;
> -};
> -
> -extern struct exec_domain default_exec_domain;
> -
> -extern struct exec_domain *lookup_exec_domain(unsigned long personality);
> -extern int register_exec_domain(struct exec_domain *it);
> -extern int unregister_exec_domain(struct exec_domain *it);
> -asmlinkage int sys_personality(unsigned long personality);
> -
> -#endif /* _PERSONALITY_H */
> diff --git a/pfinet/linux-src/include/linux/poll.h 
> b/pfinet/linux-src/include/linux/poll.h
> deleted file mode 100644
> index 991204f1..00000000
> --- a/pfinet/linux-src/include/linux/poll.h
> +++ /dev/null
> @@ -1,107 +0,0 @@
> -#ifndef _LINUX_POLL_H
> -#define _LINUX_POLL_H
> -
> -#include <asm/poll.h>
> -
> -#ifdef __KERNEL__
> -
> -#include <linux/wait.h>
> -#include <linux/string.h>
> -#include <linux/mm.h>
> -#include <asm/uaccess.h>
> -
> -
> -struct poll_table_entry {
> -     struct file * filp;
> -     struct wait_queue wait;
> -     struct wait_queue ** wait_address;
> -};
> -
> -typedef struct poll_table_struct {
> -     struct poll_table_struct * next;
> -     unsigned int nr;
> -     struct poll_table_entry * entry;
> -} poll_table;
> -
> -#define __MAX_POLL_TABLE_ENTRIES ((PAGE_SIZE - sizeof (poll_table)) / sizeof 
> (struct poll_table_entry))
> -
> -extern void __pollwait(struct file * filp, struct wait_queue ** 
> wait_address, poll_table *p);
> -
> -extern inline void poll_wait(struct file * filp, struct wait_queue ** 
> wait_address, poll_table *p)
> -{
> -     if (p && wait_address)
> -             __pollwait(filp, wait_address, p);
> -}
> -
> -/*
> - * For the kernel fd_set we use a fixed set-size for allocation purposes.
> - * This set-size doesn't necessarily bear any relation to the size the user
> - * uses, but should preferably obviously be larger than any possible user
> - * size (NR_OPEN bits).
> - *
> - * We need 6 bitmaps (in/out/ex for both incoming and outgoing), and we
> - * allocate one page for all the bitmaps. Thus we have 8*PAGE_SIZE bits,
> - * to be divided by 6. And we'd better make sure we round to a full
> - * long-word (in fact, we'll round to 64 bytes).
> - */
> -
> -
> -#define KFDS_64BLOCK ((PAGE_SIZE/(6*64))*64)
> -#define KFDS_NR (KFDS_64BLOCK*8 > NR_OPEN ? NR_OPEN : KFDS_64BLOCK*8)
> -typedef unsigned long kernel_fd_set[KFDS_NR/__NFDBITS];
> -
> -/*
> - * Scalable version of the fd_set.
> - */
> -
> -typedef struct {
> -     unsigned long *in, *out, *ex;
> -     unsigned long *res_in, *res_out, *res_ex;
> -} fd_set_bits;
> -
> -/*
> - * How many longwords for "nr" bits?
> - */
> -#define FDS_BITPERLONG       (8*sizeof(long))
> -#define FDS_LONGS(nr)        (((nr)+FDS_BITPERLONG-1)/FDS_BITPERLONG)
> -#define FDS_BYTES(nr)        (FDS_LONGS(nr)*sizeof(long))
> -
> -/*
> - * We do a VERIFY_WRITE here even though we are only reading this time:
> - * we'll write to it eventually..
> - *
> - * Use "unsigned long" accesses to let user-mode fd_set's be long-aligned.
> - */
> -static inline
> -int get_fd_set(unsigned long nr, void *ufdset, unsigned long *fdset)
> -{
> -     nr = FDS_BYTES(nr);
> -     if (ufdset) {
> -             int error;
> -             error = verify_area(VERIFY_WRITE, ufdset, nr);
> -             if (!error && __copy_from_user(fdset, ufdset, nr))
> -                     error = -EFAULT;
> -             return error;
> -     }
> -     memset(fdset, 0, nr);
> -     return 0;
> -}
> -
> -static inline
> -void set_fd_set(unsigned long nr, void *ufdset, unsigned long *fdset)
> -{
> -     if (ufdset)
> -             __copy_to_user(ufdset, fdset, FDS_BYTES(nr));
> -}
> -
> -static inline
> -void zero_fd_set(unsigned long nr, unsigned long *fdset)
> -{
> -     memset(fdset, 0, FDS_BYTES(nr));
> -}
> -
> -extern int do_select(int n, fd_set_bits *fds, long *timeout);
> -
> -#endif /* KERNEL */
> -
> -#endif /* _LINUX_POLL_H */
> diff --git a/pfinet/linux-src/include/linux/proc_fs.h 
> b/pfinet/linux-src/include/linux/proc_fs.h
> deleted file mode 100644
> index 77d7d741..00000000
> --- a/pfinet/linux-src/include/linux/proc_fs.h
> +++ /dev/null
> @@ -1,472 +0,0 @@
> -#ifndef _LINUX_PROC_FS_H
> -#define _LINUX_PROC_FS_H
> -
> -#include <linux/config.h>
> -#include <linux/malloc.h>
> -
> -/*
> - * The proc filesystem constants/structures
> - */
> -
> -/*
> - * We always define these enumerators
> - */
> -
> -enum root_directory_inos {
> -     PROC_ROOT_INO = 1,
> -     PROC_LOADAVG,
> -     PROC_UPTIME,
> -     PROC_MEMINFO,
> -     PROC_KMSG,
> -     PROC_VERSION,
> -     PROC_CPUINFO,
> -     PROC_PCI,
> -     PROC_MCA,
> -     PROC_NUBUS,
> -     PROC_SELF,      /* will change inode # */
> -     PROC_NET,
> -        PROC_SCSI,
> -     PROC_MALLOC,
> -     PROC_KCORE,
> -     PROC_MODULES,
> -     PROC_STAT,
> -     PROC_DEVICES,
> -     PROC_PARTITIONS,
> -     PROC_INTERRUPTS,
> -     PROC_FILESYSTEMS,
> -     PROC_KSYMS,
> -     PROC_DMA,       
> -     PROC_IOPORTS,
> -     PROC_PROFILE, /* whether enabled or not */
> -     PROC_CMDLINE,
> -     PROC_SYS,
> -     PROC_MTAB,
> -     PROC_SWAP,
> -     PROC_MD,
> -     PROC_RTC,
> -     PROC_LOCKS,
> -     PROC_HARDWARE,
> -     PROC_SLABINFO,
> -     PROC_PARPORT,
> -     PROC_PPC_HTAB,
> -     PROC_STRAM,
> -     PROC_SOUND,
> -     PROC_MTRR, /* whether enabled or not */
> -     PROC_FS
> -};
> -
> -enum pid_directory_inos {
> -     PROC_PID_INO = 2,
> -     PROC_PID_STATUS,
> -     PROC_PID_MEM,
> -     PROC_PID_CWD,
> -     PROC_PID_ROOT,
> -     PROC_PID_EXE,
> -     PROC_PID_FD,
> -     PROC_PID_ENVIRON,
> -     PROC_PID_CMDLINE,
> -     PROC_PID_STAT,
> -     PROC_PID_STATM,
> -     PROC_PID_MAPS,
> -#if CONFIG_AP1000
> -     PROC_PID_RINGBUF,
> -#endif
> -     PROC_PID_CPU,
> -};
> -
> -enum pid_subdirectory_inos {
> -     PROC_PID_FD_DIR = 0x8000,       /* 0x8000-0xffff */
> -};
> -
> -enum net_directory_inos {
> -     PROC_NET_UNIX = 128,
> -     PROC_NET_ARP,
> -     PROC_NET_ROUTE,
> -     PROC_NET_DEV,
> -     PROC_NET_RAW,
> -     PROC_NET_RAW6,
> -     PROC_NET_TCP,
> -     PROC_NET_TCP6,
> -     PROC_NET_UDP,
> -     PROC_NET_UDP6,
> -     PROC_NET_SNMP,
> -     PROC_NET_RARP,
> -     PROC_NET_IGMP,
> -     PROC_NET_IPMR_VIF,
> -     PROC_NET_IPMR_MFC,
> -     PROC_NET_IPFWFWD,
> -     PROC_NET_IPFWIN,
> -     PROC_NET_IPFWOUT,
> -     PROC_NET_IPACCT,
> -     PROC_NET_IPMSQHST,
> -     PROC_NET_WIRELESS,
> -     PROC_NET_IPX_INTERFACE,
> -     PROC_NET_IPX_ROUTE,
> -     PROC_NET_IPX,
> -     PROC_NET_ATALK,
> -     PROC_NET_AT_ROUTE,
> -     PROC_NET_ATIF,
> -     PROC_NET_AX25_ROUTE,
> -     PROC_NET_AX25,
> -     PROC_NET_AX25_CALLS,
> -     PROC_NET_BMAC,
> -     PROC_NET_NR_NODES,
> -     PROC_NET_NR_NEIGH,
> -     PROC_NET_NR,
> -     PROC_NET_SOCKSTAT,
> -     PROC_NET_SOCKSTAT6,
> -     PROC_NET_RTCACHE,
> -     PROC_NET_AX25_BPQETHER,
> -     PROC_NET_IP_MASQ_APP,
> -     PROC_NET_RT6,
> -     PROC_NET_SNMP6,
> -     PROC_NET_RT6_STATS,
> -     PROC_NET_NDISC,
> -     PROC_NET_STRIP_STATUS,
> -     PROC_NET_STRIP_TRACE,
> -     PROC_NET_Z8530,
> -     PROC_NET_RS_NODES,
> -     PROC_NET_RS_NEIGH,
> -     PROC_NET_RS_ROUTES,
> -     PROC_NET_RS,
> -     PROC_NET_CL2LLC,
> -     PROC_NET_X25_ROUTES,
> -     PROC_NET_X25,
> -     PROC_NET_TR_RIF,
> -     PROC_NET_DN_DEV,
> -     PROC_NET_DN_ADJ,
> -     PROC_NET_DN_L1,
> -     PROC_NET_DN_L2,
> -     PROC_NET_DN_CACHE,
> -     PROC_NET_DN_SKT,
> -     PROC_NET_DN_FW,
> -     PROC_NET_DN_RAW,
> -     PROC_NET_NETSTAT,
> -     PROC_NET_IPFW_CHAINS,
> -     PROC_NET_IPFW_CHAIN_NAMES,
> -     PROC_NET_AT_AARP,
> -     PROC_NET_BRIDGE,
> -     PROC_NET_LAST
> -};
> -
> -enum scsi_directory_inos {
> -     PROC_SCSI_SCSI = 256,
> -     PROC_SCSI_ADVANSYS,
> -     PROC_SCSI_PCI2000,
> -     PROC_SCSI_PCI2220I,
> -     PROC_SCSI_PSI240I,
> -     PROC_SCSI_EATA,
> -     PROC_SCSI_EATA_PIO,
> -     PROC_SCSI_AHA152X,
> -     PROC_SCSI_AHA1542,
> -     PROC_SCSI_AHA1740,
> -     PROC_SCSI_AIC7XXX,
> -     PROC_SCSI_BUSLOGIC,
> -     PROC_SCSI_U14_34F,
> -     PROC_SCSI_FDOMAIN,
> -     PROC_SCSI_GDTH,
> -     PROC_SCSI_GENERIC_NCR5380,
> -     PROC_SCSI_IN2000,
> -     PROC_SCSI_PAS16,
> -     PROC_SCSI_QLOGICFAS,
> -     PROC_SCSI_QLOGICISP,
> -     PROC_SCSI_QLOGICFC,
> -     PROC_SCSI_SEAGATE,
> -     PROC_SCSI_T128,
> -     PROC_SCSI_NCR53C7xx,
> -     PROC_SCSI_SYM53C8XX,
> -     PROC_SCSI_NCR53C8XX,
> -     PROC_SCSI_ULTRASTOR,
> -     PROC_SCSI_7000FASST,
> -     PROC_SCSI_IBMMCA,
> -     PROC_SCSI_FD_MCS,
> -     PROC_SCSI_EATA2X,
> -     PROC_SCSI_DC390T,
> -     PROC_SCSI_AM53C974,
> -     PROC_SCSI_SSC,
> -     PROC_SCSI_NCR53C406A,
> -     PROC_SCSI_SYM53C416,
> -     PROC_SCSI_MEGARAID,
> -     PROC_SCSI_PPA,
> -     PROC_SCSI_ATP870U,
> -     PROC_SCSI_ESP,
> -     PROC_SCSI_QLOGICPTI,
> -     PROC_SCSI_AMIGA7XX,
> -     PROC_SCSI_MVME16x,
> -     PROC_SCSI_BVME6000,
> -     PROC_SCSI_SIM710,
> -     PROC_SCSI_A3000,
> -     PROC_SCSI_A2091,
> -     PROC_SCSI_GVP11,
> -     PROC_SCSI_ATARI,
> -     PROC_SCSI_MAC,
> -     PROC_SCSI_IDESCSI,
> -     PROC_SCSI_SGIWD93,
> -     PROC_SCSI_MESH,
> -     PROC_SCSI_53C94,
> -     PROC_SCSI_PLUTO,
> -     PROC_SCSI_INI9100U,
> -     PROC_SCSI_INIA100,
> -     PROC_SCSI_IPH5526_FC,
> -     PROC_SCSI_FCAL,
> -     PROC_SCSI_I2O,
> -     PROC_SCSI_USB_SCSI,
> -     PROC_SCSI_SCSI_DEBUG,   
> -     PROC_SCSI_NOT_PRESENT,
> -     PROC_SCSI_FILE,                        /* I'm assuming here that we */
> -     PROC_SCSI_LAST = (PROC_SCSI_FILE + 16) /* won't ever see more than */
> -};                                             /* 16 HBAs in one machine   */
> -
> -enum mca_directory_inos {
> -     PROC_MCA_MACHINE = (PROC_SCSI_LAST+1),
> -     PROC_MCA_REGISTERS,
> -     PROC_MCA_VIDEO,
> -     PROC_MCA_SCSI,
> -     PROC_MCA_SLOT,  /* the 8 adapter slots */
> -     PROC_MCA_LAST = (PROC_MCA_SLOT + 8)
> -};
> -
> -enum bus_directory_inos {
> -     PROC_BUS_PCI = PROC_MCA_LAST,
> -     PROC_BUS_PCI_DEVICES,
> -     PROC_BUS_ZORRO,
> -     PROC_BUS_ZORRO_DEVICES,
> -     PROC_BUS_LAST
> -};
> -
> -enum fs_directory_inos {
> -     PROC_FS_CODA = PROC_BUS_LAST,
> -     PROC_FS_LAST
> -};
> -
> -enum fs_coda_directory_inos {
> -     PROC_VFS_STATS = PROC_FS_LAST,
> -     PROC_UPCALL_STATS,
> -     PROC_PERMISSION_STATS,
> -     PROC_CACHE_INV_STATS,
> -     PROC_CODA_FS_LAST
> -};
> -
> -/* Finally, the dynamically allocatable proc entries are reserved: */
> -
> -#define PROC_DYNAMIC_FIRST 4096
> -#define PROC_NDYNAMIC      4096
> -#define PROC_OPENPROM_FIRST (PROC_DYNAMIC_FIRST+PROC_NDYNAMIC)
> -#define PROC_OPENPROM           PROC_OPENPROM_FIRST
> -#define PROC_NOPENPROM          4096
> -#define PROC_OPENPROMD_FIRST (PROC_OPENPROM_FIRST+PROC_NOPENPROM)
> -#define PROC_NOPENPROMD         4096
> -
> -#define PROC_SUPER_MAGIC 0x9fa0
> -
> -/*
> - * This is not completely implemented yet. The idea is to
> - * create an in-memory tree (like the actual /proc filesystem
> - * tree) of these proc_dir_entries, so that we can dynamically
> - * add new files to /proc.
> - *
> - * The "next" pointer creates a linked list of one /proc directory,
> - * while parent/subdir create the directory structure (every
> - * /proc file has a parent, but "subdir" is NULL for all
> - * non-directory entries).
> - *
> - * "get_info" is called at "read", while "fill_inode" is used to
> - * fill in file type/protection/owner information specific to the
> - * particular /proc file.
> - */
> -struct proc_dir_entry {
> -     unsigned short low_ino;
> -     unsigned short namelen;
> -     const char *name;
> -     mode_t mode;
> -     nlink_t nlink;
> -     uid_t uid;
> -     gid_t gid;
> -     unsigned long size;
> -     struct inode_operations * ops;
> -     int (*get_info)(char *, char **, off_t, int, int);
> -     void (*fill_inode)(struct inode *, int);
> -     struct proc_dir_entry *next, *parent, *subdir;
> -     void *data;
> -     int (*read_proc)(char *page, char **start, off_t off,
> -                      int count, int *eof, void *data);
> -     int (*write_proc)(struct file *file, const char *buffer,
> -                       unsigned long count, void *data);
> -     int (*readlink_proc)(struct proc_dir_entry *de, char *page);
> -     unsigned int count;     /* use count */
> -     int deleted;            /* delete flag */
> -};
> -
> -typedef      int (read_proc_t)(char *page, char **start, off_t off,
> -                       int count, int *eof, void *data);
> -typedef      int (write_proc_t)(struct file *file, const char *buffer,
> -                        unsigned long count, void *data);
> -
> -extern int (* dispatch_scsi_info_ptr) (int ino, char *buffer, char **start,
> -                             off_t offset, int length, int inout);
> -
> -#ifdef CONFIG_PROC_FS
> -
> -extern struct proc_dir_entry proc_root;
> -extern struct proc_dir_entry proc_root_fs;
> -extern struct proc_dir_entry *proc_net;
> -extern struct proc_dir_entry *proc_scsi;
> -extern struct proc_dir_entry proc_sys;
> -extern struct proc_dir_entry proc_openprom;
> -extern struct proc_dir_entry proc_pid;
> -extern struct proc_dir_entry proc_pid_fd;
> -extern struct proc_dir_entry proc_mca;
> -extern struct proc_dir_entry *proc_bus;
> -
> -extern struct inode_operations proc_scsi_inode_operations;
> -
> -extern void proc_root_init(void);
> -extern void proc_base_init(void);
> -
> -extern int proc_register(struct proc_dir_entry *, struct proc_dir_entry *);
> -extern int proc_unregister(struct proc_dir_entry *, int);
> -
> -static inline int proc_net_register(struct proc_dir_entry * x)
> -{
> -     return proc_register(proc_net, x);
> -}
> -
> -static inline int proc_net_unregister(int x)
> -{
> -     return proc_unregister(proc_net, x);
> -}
> -
> -static inline int proc_scsi_register(struct proc_dir_entry *driver, 
> -                                  struct proc_dir_entry *x)
> -{
> -    x->ops = &proc_scsi_inode_operations;
> -    if(x->low_ino < PROC_SCSI_FILE){
> -     return(proc_register(proc_scsi, x));
> -    }else{
> -     return(proc_register(driver, x));
> -    }
> -}
> -
> -static inline int proc_scsi_unregister(struct proc_dir_entry *driver, int x)
> -{
> -    extern void scsi_init_free(char *ptr, unsigned int size);
> -
> -    if(x < PROC_SCSI_FILE)
> -     return(proc_unregister(proc_scsi, x));
> -    else {
> -     struct proc_dir_entry **p = &driver->subdir, *dp;
> -     int ret;
> -
> -     while ((dp = *p) != NULL) {
> -             if (dp->low_ino == x) 
> -                 break;
> -             p = &dp->next;
> -     }
> -     ret = proc_unregister(driver, x);
> -     scsi_init_free((char *) dp, sizeof(struct proc_dir_entry) + 4);
> -     return(ret);
> -    }
> -}
> -
> -extern struct dentry_operations proc_dentry_operations;
> -extern struct super_block *proc_read_super(struct super_block *,void *,int);
> -extern int init_proc_fs(void);
> -extern struct inode * proc_get_inode(struct super_block *, int, struct 
> proc_dir_entry *);
> -extern int proc_statfs(struct super_block *, struct statfs *, int);
> -extern void proc_read_inode(struct inode *);
> -extern void proc_write_inode(struct inode *);
> -extern int proc_permission(struct inode *, int);
> -
> -extern int proc_match(int, const char *,struct proc_dir_entry *);
> -
> -/*
> - * These are generic /proc routines that use the internal
> - * "struct proc_dir_entry" tree to traverse the filesystem.
> - *
> - * The /proc root directory has extended versions to take care
> - * of the /proc/<pid> subdirectories.
> - */
> -extern int proc_readdir(struct file *, void *, filldir_t);
> -extern struct dentry *proc_lookup(struct inode *, struct dentry *);
> -
> -struct openpromfs_dev {
> -     struct openpromfs_dev *next;
> -     u32 node;
> -     ino_t inode;
> -     kdev_t rdev;
> -     mode_t mode;
> -     char name[32];
> -};
> -extern struct inode_operations *
> -proc_openprom_register(int (*readdir)(struct file *, void *, filldir_t),
> -                    struct dentry * (*lookup)(struct inode *, struct dentry 
> *),
> -                    void (*use)(struct inode *, int),
> -                    struct openpromfs_dev ***);
> -extern void proc_openprom_deregister(void);
> -extern void (*proc_openprom_use)(struct inode *,int);
> -extern int proc_openprom_regdev(struct openpromfs_dev *);
> -extern int proc_openprom_unregdev(struct openpromfs_dev *);
> -  
> -extern struct inode_operations proc_dir_inode_operations;
> -extern struct inode_operations proc_file_inode_operations;
> -extern struct inode_operations proc_net_inode_operations;
> -extern struct inode_operations proc_netdir_inode_operations;
> -extern struct inode_operations proc_openprom_inode_operations;
> -extern struct inode_operations proc_mem_inode_operations;
> -extern struct inode_operations proc_sys_inode_operations;
> -extern struct inode_operations proc_array_inode_operations;
> -extern struct inode_operations proc_arraylong_inode_operations;
> -extern struct inode_operations proc_kcore_inode_operations;
> -extern struct inode_operations proc_profile_inode_operations;
> -extern struct inode_operations proc_kmsg_inode_operations;
> -extern struct inode_operations proc_link_inode_operations;
> -extern struct inode_operations proc_fd_inode_operations;
> -#if CONFIG_AP1000
> -extern struct inode_operations proc_ringbuf_inode_operations;
> -#endif
> -extern struct inode_operations proc_omirr_inode_operations;
> -extern struct inode_operations proc_ppc_htab_inode_operations;
> -
> -/*
> - * generic.c
> - */
> -struct proc_dir_entry *create_proc_entry(const char *name, mode_t mode,
> -                                      struct proc_dir_entry *parent);
> -void remove_proc_entry(const char *name, struct proc_dir_entry *parent);
> -
> -/*
> - * proc_tty.c
> - */
> -extern void proc_tty_init(void);
> -extern void proc_tty_register_driver(struct tty_driver *driver);
> -extern void proc_tty_unregister_driver(struct tty_driver *driver);
> -
> -/*
> - * proc_devtree.c
> - */
> -extern void proc_device_tree_init(void);
> -
> -#else
> -
> -extern inline int proc_register(struct proc_dir_entry *a, struct 
> proc_dir_entry *b) { return 0; };
> -extern inline int proc_unregister(struct proc_dir_entry *a, int b) { return 
> 0; };
> -extern inline int proc_net_register(struct proc_dir_entry *a) { return 0; };
> -extern inline int proc_net_unregister(int x) { return 0; };
> -extern inline int proc_scsi_register(struct proc_dir_entry *b, struct 
> proc_dir_entry *c) { return 0; };
> -extern inline int proc_scsi_unregister(struct proc_dir_entry *a, int x) { 
> return 0; };
> -
> -extern inline struct proc_dir_entry *create_proc_entry(const char *name, 
> mode_t mode,
> -                                      struct proc_dir_entry *parent)
> -{
> -     return NULL;
> -}
> -
> -extern inline void remove_proc_entry(const char *name, struct proc_dir_entry 
> *parent) {};
> -
> -extern inline void proc_tty_register_driver(struct tty_driver *driver) {};
> -extern inline void proc_tty_unregister_driver(struct tty_driver *driver) {};
> -
> -extern struct proc_dir_entry proc_root;
> -
> -#endif /* CONFIG_PROC_FS */
> -#endif /* _LINUX_PROC_FS_H */
> diff --git a/pfinet/linux-src/include/linux/sched.h 
> b/pfinet/linux-src/include/linux/sched.h
> deleted file mode 100644
> index c0e54d86..00000000
> --- a/pfinet/linux-src/include/linux/sched.h
> +++ /dev/null
> @@ -1,813 +0,0 @@
> -#ifndef _LINUX_SCHED_H
> -#define _LINUX_SCHED_H
> -
> -#include <asm/param.h>       /* for HZ */
> -
> -extern unsigned long global_event;
> -
> -#include <linux/binfmts.h>
> -#include <linux/personality.h>
> -#include <linux/tasks.h>
> -#include <linux/kernel.h>
> -#include <linux/types.h>
> -#include <linux/times.h>
> -#include <linux/timex.h>
> -
> -#include <asm/system.h>
> -#include <asm/semaphore.h>
> -#include <asm/page.h>
> -
> -#include <linux/smp.h>
> -#include <linux/tty.h>
> -#include <linux/sem.h>
> -#include <linux/signal.h>
> -#include <linux/securebits.h>
> -
> -/*
> - * cloning flags:
> - */
> -#define CSIGNAL              0x000000ff      /* signal mask to be sent at 
> exit */
> -#define CLONE_VM     0x00000100      /* set if VM shared between processes */
> -#define CLONE_FS     0x00000200      /* set if fs info shared between 
> processes */
> -#define CLONE_FILES  0x00000400      /* set if open files shared between 
> processes */
> -#define CLONE_SIGHAND        0x00000800      /* set if signal handlers 
> shared */
> -#define CLONE_PID    0x00001000      /* set if pid shared */
> -#define CLONE_PTRACE 0x00002000      /* set if we want to let tracing 
> continue on the child too */
> -#define CLONE_VFORK  0x00004000      /* set if the parent wants the child to 
> wake it up on mm_release */
> -
> -/*
> - * These are the constant used to fake the fixed-point load-average
> - * counting. Some notes:
> - *  - 11 bit fractions expand to 22 bits by the multiplies: this gives
> - *    a load-average precision of 10 bits integer + 11 bits fractional
> - *  - if you want to count load-averages more often, you need more
> - *    precision, or rounding will get you. With 2-second counting freq,
> - *    the EXP_n values would be 1981, 2034 and 2043 if still using only
> - *    11 bit fractions.
> - */
> -extern unsigned long avenrun[];              /* Load averages */
> -
> -#define FSHIFT               11              /* nr of bits of precision */
> -#define FIXED_1              (1<<FSHIFT)     /* 1.0 as fixed-point */
> -#define LOAD_FREQ    (5*HZ)          /* 5 sec intervals */
> -#define EXP_1                1884            /* 1/exp(5sec/1min) as 
> fixed-point */
> -#define EXP_5                2014            /* 1/exp(5sec/5min) */
> -#define EXP_15               2037            /* 1/exp(5sec/15min) */
> -
> -#define CALC_LOAD(load,exp,n) \
> -     load *= exp; \
> -     load += n*(FIXED_1-exp); \
> -     load >>= FSHIFT;
> -
> -#define CT_TO_SECS(x)        ((x) / HZ)
> -#define CT_TO_USECS(x)       (((x) % HZ) * 1000000/HZ)
> -
> -extern int nr_running, nr_tasks;
> -extern int last_pid;
> -
> -#include <linux/fs.h>
> -#include <linux/time.h>
> -#include <linux/param.h>
> -#include <linux/resource.h>
> -#include <linux/timer.h>
> -
> -#include <asm/processor.h>
> -
> -#define TASK_RUNNING         0
> -#define TASK_INTERRUPTIBLE   1
> -#define TASK_UNINTERRUPTIBLE 2
> -#define TASK_ZOMBIE          4
> -#define TASK_STOPPED         8
> -#define TASK_SWAPPING                16
> -
> -/*
> - * Scheduling policies
> - */
> -#define SCHED_OTHER          0
> -#define SCHED_FIFO           1
> -#define SCHED_RR             2
> -
> -/*
> - * This is an additional bit set when we want to
> - * yield the CPU for one re-schedule..
> - */
> -#define SCHED_YIELD          0x10
> -
> -struct sched_param {
> -     int sched_priority;
> -};
> -
> -#ifdef __KERNEL__
> -
> -#include <asm/spinlock.h>
> -
> -/*
> - * This serializes "schedule()" and also protects
> - * the run-queue from deletions/modifications (but
> - * _adding_ to the beginning of the run-queue has
> - * a separate lock).
> - */
> -extern rwlock_t tasklist_lock;
> -extern spinlock_t runqueue_lock;
> -
> -extern void sched_init(void);
> -extern void init_idle(void);
> -extern void show_state(void);
> -extern void trap_init(void);
> -
> -#define      MAX_SCHEDULE_TIMEOUT    LONG_MAX
> -extern signed long FASTCALL(schedule_timeout(signed long timeout));
> -asmlinkage void schedule(void);
> -
> -/*
> - * The default fd array needs to be at least BITS_PER_LONG,
> - * as this is the granularity returned by copy_fdset().
> - */
> -#define NR_OPEN_DEFAULT BITS_PER_LONG
> -
> -/*
> - * Open file table structure
> - */
> -struct files_struct {
> -     atomic_t count;
> -     int max_fds;
> -     int max_fdset;
> -     int next_fd;
> -     struct file ** fd;      /* current fd array */
> -     fd_set *close_on_exec;
> -     fd_set *open_fds;
> -     fd_set close_on_exec_init;
> -     fd_set open_fds_init;
> -     struct file * fd_array[NR_OPEN_DEFAULT];
> -};
> -
> -#define INIT_FILES { \
> -     ATOMIC_INIT(1), \
> -     NR_OPEN_DEFAULT, \
> -     __FD_SETSIZE, \
> -     0, \
> -     &init_files.fd_array[0], \
> -     &init_files.close_on_exec_init, \
> -     &init_files.open_fds_init, \
> -     { { 0, } }, \
> -     { { 0, } }, \
> -     { NULL, } \
> -}
> -
> -struct fs_struct {
> -     atomic_t count;
> -     int umask;
> -     struct dentry * root, * pwd;
> -};
> -
> -#define INIT_FS { \
> -     ATOMIC_INIT(1), \
> -     0022, \
> -     NULL, NULL \
> -}
> -
> -/* Maximum number of active map areas.. This is a random (large) number */
> -#define MAX_MAP_COUNT        (65536)
> -
> -/* Number of map areas at which the AVL tree is activated. This is 
> arbitrary. */
> -#define AVL_MIN_MAP_COUNT    32
> -
> -struct mm_struct {
> -     struct vm_area_struct *mmap;            /* list of VMAs */
> -     struct vm_area_struct *mmap_avl;        /* tree of VMAs */
> -     struct vm_area_struct *mmap_cache;      /* last find_vma result */
> -     pgd_t * pgd;
> -     atomic_t count;
> -     int map_count;                          /* number of VMAs */
> -     struct semaphore mmap_sem;
> -     unsigned long context;
> -     unsigned long start_code, end_code, start_data, end_data;
> -     unsigned long start_brk, brk, start_stack;
> -     unsigned long arg_start, arg_end, env_start, env_end;
> -     unsigned long rss, total_vm, locked_vm;
> -     unsigned long def_flags;
> -     unsigned long cpu_vm_mask;
> -     unsigned long swap_cnt; /* number of pages to swap on next pass */
> -     unsigned long swap_address;
> -     /*
> -      * This is an architecture-specific pointer: the portable
> -      * part of Linux does not know about any segments.
> -      */
> -     void * segments;
> -};
> -
> -#define INIT_MM {                                    \
> -             &init_mmap, NULL, NULL,                 \
> -             swapper_pg_dir,                         \
> -             ATOMIC_INIT(1), 1,                      \
> -             MUTEX,                                  \
> -             0,                                      \
> -             0, 0, 0, 0,                             \
> -             0, 0, 0,                                \
> -             0, 0, 0, 0,                             \
> -             0, 0, 0,                                \
> -             0, 0, 0, 0, NULL }
> -
> -struct signal_struct {
> -     atomic_t                count;
> -     struct k_sigaction      action[_NSIG];
> -     spinlock_t              siglock;
> -};
> -
> -
> -#define INIT_SIGNALS { \
> -             ATOMIC_INIT(1), \
> -             { {{0,}}, }, \
> -             SPIN_LOCK_UNLOCKED }
> -
> -/*
> - * Some day this will be a full-fledged user tracking system..
> - * Right now it is only used to track how many processes a
> - * user has, but it has the potential to track memory usage etc.
> - */
> -struct user_struct;
> -
> -struct task_struct {
> -/* these are hardcoded - don't touch */
> -     volatile long state;    /* -1 unrunnable, 0 runnable, >0 stopped */
> -     unsigned long flags;    /* per process flags, defined below */
> -     int sigpending;
> -     mm_segment_t addr_limit;        /* thread address space:
> -                                             0-0xBFFFFFFF for user-thead
> -                                             0-0xFFFFFFFF for kernel-thread
> -                                      */
> -     struct exec_domain *exec_domain;
> -     long need_resched;
> -
> -/* various fields */
> -     long counter;
> -     long priority;
> -     cycles_t avg_slice;
> -/* SMP and runqueue 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... */  
> -     struct task_struct *next_task, *prev_task;
> -     struct task_struct *next_run,  *prev_run;
> -
> -/* task state */
> -     struct linux_binfmt *binfmt;
> -     int exit_code, exit_signal;
> -     int pdeath_signal;  /*  The signal sent when the parent dies  */
> -     /* ??? */
> -     unsigned long personality;
> -     int dumpable:1;
> -     int did_exec:1;
> -     pid_t pid;
> -     pid_t pgrp;
> -     pid_t tty_old_pgrp;
> -     pid_t session;
> -     /* boolean value for session group leader */
> -     int leader;
> -     /* 
> -      * pointers to (original) parent process, youngest child, younger 
> sibling,
> -      * older sibling, respectively.  (p->father can be replaced with 
> -      * 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() */
> -     struct semaphore *vfork_sem;            /* for vfork() */
> -     unsigned long policy, rt_priority;
> -     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;
> -     struct tms times;
> -     unsigned long start_time;
> -     long per_cpu_utime[NR_CPUS], per_cpu_stime[NR_CPUS];
> -/* 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;
> -/* process credentials */
> -     uid_t uid,euid,suid,fsuid;
> -     gid_t gid,egid,sgid,fsgid;
> -     int ngroups;
> -     gid_t   groups[NGROUPS];
> -        kernel_cap_t   cap_effective, cap_inheritable, cap_permitted;
> -     struct user_struct *user;
> -/* limits */
> -     struct rlimit rlim[RLIM_NLIMITS];
> -     unsigned short used_math;
> -     char comm[16];
> -/* file system info */
> -     int link_count;
> -     struct tty_struct *tty; /* NULL if no tty */
> -/* ipc stuff */
> -     struct sem_undo *semundo;
> -     struct sem_queue *semsleeping;
> -/* tss for this task */
> -     struct thread_struct tss;
> -/* filesystem information */
> -     struct fs_struct *fs;
> -/* open file information */
> -     struct files_struct *files;
> -/* memory management info */
> -     struct mm_struct *mm;
> -
> -/* signal handlers */
> -     spinlock_t sigmask_lock;        /* Protects signal and blocked */
> -     struct signal_struct *sig;
> -     sigset_t signal, blocked;
> -     struct signal_queue *sigqueue, **sigqueue_tail;
> -     unsigned long sas_ss_sp;
> -     size_t sas_ss_size;
> -     
> -/* Thread group tracking */
> -     u32 parent_exec_id;
> -     u32 self_exec_id;
> -};
> -
> -/*
> - * Per process flags
> - */
> -#define PF_ALIGNWARN 0x00000001      /* Print alignment warning msgs */
> -                                     /* Not implemented yet, only for 486*/
> -#define PF_STARTING  0x00000002      /* being created */
> -#define PF_EXITING   0x00000004      /* getting shut down */
> -#define PF_PTRACED   0x00000010      /* set if ptrace (0) has been called */
> -#define PF_TRACESYS  0x00000020      /* tracing system calls */
> -#define PF_FORKNOEXEC        0x00000040      /* forked but didn't exec */
> -#define PF_SUPERPRIV 0x00000100      /* used super-user privileges */
> -#define PF_DUMPCORE  0x00000200      /* dumped core */
> -#define PF_SIGNALED  0x00000400      /* killed by a signal */
> -#define PF_MEMALLOC  0x00000800      /* Allocating memory */
> -#define PF_VFORK     0x00001000      /* Wake up parent in mm_release */
> -
> -#define PF_USEDFPU   0x00100000      /* task used FPU this quantum (SMP) */
> -#define PF_DTRACE    0x00200000      /* delayed trace (used on m68k, i386) */
> -
> -/*
> - * Limit the stack by to some sane default: root can always
> - * increase this limit if needed..  8MB seems reasonable.
> - */
> -#define _STK_LIM     (8*1024*1024)
> -
> -#define DEF_PRIORITY (20*HZ/100)     /* 210 ms time slices */
> -
> -/*
> - *  INIT_TASK is used to set up the first task table, touch at
> - * your own risk!. Base=0, limit=0x1fffff (=2MB)
> - */
> -#define INIT_TASK \
> -/* state etc */      { 0,0,0,KERNEL_DS,&default_exec_domain,0, \
> -/* counter */        DEF_PRIORITY,DEF_PRIORITY,0, \
> -/* SMP */    0,0,0,-1, \
> -/* schedlink */      &init_task,&init_task, &init_task, &init_task, \
> -/* binfmt */ NULL, \
> -/* ec,brk... */      0,0,0,0,0,0, \
> -/* pid etc.. */      0,0,0,0,0, \
> -/* proc links*/ &init_task,&init_task,NULL,NULL,NULL, \
> -/* pidhash */        NULL, NULL, \
> -/* tarray */ &task[0], \
> -/* chld wait */      NULL, NULL, \
> -/* timeout */        SCHED_OTHER,0,0,0,0,0,0,0, \
> -/* timer */  { NULL, NULL, 0, 0, it_real_fn }, \
> -/* utime */  {0,0,0,0},0, \
> -/* per CPU times */ {0, }, {0, }, \
> -/* flt */    0,0,0,0,0,0, \
> -/* swp */    0, \
> -/* process credentials */                                    \
> -/* uid etc */        0,0,0,0,0,0,0,0,                                \
> -/* suppl grps*/ 0, {0,},                                     \
> -/* caps */      CAP_INIT_EFF_SET,CAP_INIT_INH_SET,CAP_FULL_SET, \
> -/* user */   NULL,                                           \
> -/* rlimits */   INIT_RLIMITS, \
> -/* math */   0, \
> -/* comm */   "swapper", \
> -/* fs info */        0,NULL, \
> -/* ipc */    NULL, NULL, \
> -/* tss */    INIT_TSS, \
> -/* fs */     &init_fs, \
> -/* files */  &init_files, \
> -/* mm */     &init_mm, \
> -/* signals */        SPIN_LOCK_UNLOCKED, &init_signals, {{0}}, {{0}}, NULL, 
> &init_task.sigqueue, 0, 0, \
> -/* exec cts */       0,0, \
> -}
> -
> -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 *task[NR_TASKS];
> -
> -extern struct task_struct **tarray_freelist;
> -extern spinlock_t taskslot_lock;
> -
> -static __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);
> -}
> -
> -static __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];
> -
> -#define pid_hashfn(x)        ((((x) >> 8) ^ (x)) & (PIDHASH_SZ - 1))
> -
> -static __inline__ void hash_pid(struct task_struct *p)
> -{
> -     struct task_struct **htable = &pidhash[pid_hashfn(p->pid)];
> -
> -     if((p->pidhash_next = *htable) != NULL)
> -             (*htable)->pidhash_pprev = &p->pidhash_next;
> -     *htable = p;
> -     p->pidhash_pprev = htable;
> -}
> -
> -static __inline__ void unhash_pid(struct task_struct *p)
> -{
> -     if(p->pidhash_next)
> -             p->pidhash_next->pidhash_pprev = p->pidhash_pprev;
> -     *p->pidhash_pprev = p->pidhash_next;
> -}
> -
> -static __inline__ struct task_struct *find_task_by_pid(int pid)
> -{
> -     struct task_struct *p, **htable = &pidhash[pid_hashfn(pid)];
> -
> -     for(p = *htable; p && p->pid != pid; p = p->pidhash_next)
> -             ;
> -
> -     return p;
> -}
> -
> -/* per-UID process charging. */
> -extern int alloc_uid(struct task_struct *p);
> -void free_uid(struct task_struct *p);
> -
> -#include <asm/current.h>
> -
> -extern unsigned long volatile jiffies;
> -extern unsigned long itimer_ticks;
> -extern unsigned long itimer_next;
> -extern struct timeval xtime;
> -extern void do_timer(struct pt_regs *);
> -
> -extern unsigned int * prof_buffer;
> -extern unsigned long prof_len;
> -extern unsigned long prof_shift;
> -
> -#define CURRENT_TIME (xtime.tv_sec)
> -
> -extern void FASTCALL(__wake_up(struct wait_queue ** p, unsigned int mode));
> -extern void FASTCALL(sleep_on(struct wait_queue ** p));
> -extern long FASTCALL(sleep_on_timeout(struct wait_queue ** p,
> -                                   signed long timeout));
> -extern void FASTCALL(interruptible_sleep_on(struct wait_queue ** p));
> -extern long FASTCALL(interruptible_sleep_on_timeout(struct wait_queue ** p,
> -                                                 signed long timeout));
> -extern void FASTCALL(wake_up_process(struct task_struct * tsk));
> -
> -#define wake_up(x)                   __wake_up((x),TASK_UNINTERRUPTIBLE | 
> TASK_INTERRUPTIBLE)
> -#define wake_up_interruptible(x)     __wake_up((x),TASK_INTERRUPTIBLE)
> -
> -extern int in_group_p(gid_t grp);
> -
> -extern void flush_signals(struct task_struct *);
> -extern void flush_signal_handlers(struct task_struct *);
> -extern int dequeue_signal(sigset_t *block, siginfo_t *);
> -extern int send_sig_info(int, struct siginfo *info, struct task_struct *);
> -extern int force_sig_info(int, struct siginfo *info, struct task_struct *);
> -extern int kill_pg_info(int, struct siginfo *info, pid_t);
> -extern int kill_sl_info(int, struct siginfo *info, pid_t);
> -extern int kill_proc_info(int, struct siginfo *info, pid_t);
> -extern int kill_something_info(int, struct siginfo *info, int);
> -extern void notify_parent(struct task_struct * tsk, int);
> -extern void force_sig(int sig, struct task_struct * p);
> -extern int send_sig(int sig, struct task_struct * p, int priv);
> -extern int kill_pg(pid_t, int, int);
> -extern int kill_sl(pid_t, int, int);
> -extern int kill_proc(pid_t, int, int);
> -extern int do_sigaction(int sig, const struct k_sigaction *act,
> -                     struct k_sigaction *oact);
> -extern int do_sigaltstack(const stack_t *ss, stack_t *oss, unsigned long sp);
> -
> -extern inline int signal_pending(struct task_struct *p)
> -{
> -     return (p->sigpending != 0);
> -}
> -
> -/* Reevaluate whether the task has signals pending delivery.
> -   This is required every time the blocked sigset_t changes.
> -   All callers should have t->sigmask_lock.  */
> -
> -static inline void recalc_sigpending(struct task_struct *t)
> -{
> -     unsigned long ready;
> -     long i;
> -
> -     switch (_NSIG_WORDS) {
> -     default:
> -             for (i = _NSIG_WORDS, ready = 0; --i >= 0 ;)
> -                     ready |= t->signal.sig[i] &~ t->blocked.sig[i];
> -             break;
> -
> -     case 4: ready  = t->signal.sig[3] &~ t->blocked.sig[3];
> -             ready |= t->signal.sig[2] &~ t->blocked.sig[2];
> -             ready |= t->signal.sig[1] &~ t->blocked.sig[1];
> -             ready |= t->signal.sig[0] &~ t->blocked.sig[0];
> -             break;
> -
> -     case 2: ready  = t->signal.sig[1] &~ t->blocked.sig[1];
> -             ready |= t->signal.sig[0] &~ t->blocked.sig[0];
> -             break;
> -
> -     case 1: ready  = t->signal.sig[0] &~ t->blocked.sig[0];
> -     }
> -
> -     t->sigpending = (ready != 0);
> -}
> -
> -/* True if we are on the alternate signal stack.  */
> -
> -static inline int on_sig_stack(unsigned long sp)
> -{
> -     return (sp >= current->sas_ss_sp
> -             && sp < current->sas_ss_sp + current->sas_ss_size);
> -}
> -
> -static inline int sas_ss_flags(unsigned long sp)
> -{
> -     return (current->sas_ss_size == 0 ? SS_DISABLE
> -             : on_sig_stack(sp) ? SS_ONSTACK : 0);
> -}
> -
> -extern int request_irq(unsigned int irq,
> -                    void (*handler)(int, void *, struct pt_regs *),
> -                    unsigned long flags, 
> -                    const char *device,
> -                    void *dev_id);
> -extern void free_irq(unsigned int irq, void *dev_id);
> -
> -/*
> - * This has now become a routine instead of a macro, it sets a flag if
> - * it returns true (to do BSD-style accounting where the process is flagged
> - * if it uses root privs). The implication of this is that you should do
> - * normal permissions checks first, and check suser() last.
> - *
> - * [Dec 1997 -- Chris Evans]
> - * For correctness, the above considerations need to be extended to
> - * fsuser(). This is done, along with moving fsuser() checks to be
> - * last.
> - *
> - * These will be removed, but in the mean time, when the SECURE_NOROOT 
> - * flag is set, uids don't grant privilege.
> - */
> -extern inline int suser(void)
> -{
> -     if (!issecure(SECURE_NOROOT) && current->euid == 0) { 
> -             current->flags |= PF_SUPERPRIV;
> -             return 1;
> -     }
> -     return 0;
> -}
> -
> -extern inline int fsuser(void)
> -{
> -     if (!issecure(SECURE_NOROOT) && current->fsuid == 0) {
> -             current->flags |= PF_SUPERPRIV;
> -             return 1;
> -     }
> -     return 0;
> -}
> -
> -/*
> - * capable() checks for a particular capability.  
> - * New privilege checks should use this interface, rather than suser() or
> - * fsuser(). See include/linux/capability.h for defined capabilities.
> - */
> -
> -extern inline int capable(int cap)
> -{
> -#if 1 /* ok now */
> -     if (cap_raised(current->cap_effective, cap))
> -#else
> -     if (cap_is_fs_cap(cap) ? current->fsuid == 0 : current->euid == 0)
> -#endif
> -        {
> -             current->flags |= PF_SUPERPRIV;
> -             return 1;
> -     }
> -     return 0;
> -}
> -
> -/*
> - * Routines for handling mm_structs
> - */
> -extern struct mm_struct * mm_alloc(void);
> -static inline void mmget(struct mm_struct * mm)
> -{
> -     atomic_inc(&mm->count);
> -}
> -extern void mmput(struct mm_struct *);
> -/* Remove the current tasks stale references to the old mm_struct */
> -extern void mm_release(void);
> -
> -/*
> - * Routines for handling the fd arrays
> - */
> -extern struct file ** alloc_fd_array(int);
> -extern int expand_fd_array(struct files_struct *, int nr);
> -extern void free_fd_array(struct file **, int);
> -
> -extern fd_set *alloc_fdset(int);
> -extern int expand_fdset(struct files_struct *, int nr);
> -extern void free_fdset(fd_set *, int);
> -
> -/* Expand files.  Return <0 on error; 0 nothing done; 1 files expanded,
> - * we may have blocked. */
> -static inline int expand_files(struct files_struct *files, int nr)
> -{
> -     int err, expand = 0;
> -#ifdef FDSET_DEBUG   
> -     printk (KERN_ERR __FUNCTION__ " %d: nr = %d\n", current->pid, nr);
> -#endif
> -     
> -     if (nr >= files->max_fdset) {
> -             expand = 1;
> -             if ((err = expand_fdset(files, nr + 1)))
> -                     goto out;
> -     }
> -     if (nr >= files->max_fds) {
> -             expand = 1;
> -             if ((err = expand_fd_array(files, nr + 1)))
> -                     goto out;
> -     }
> -     err = expand;
> - out:
> -#ifdef FDSET_DEBUG   
> -     if (err)
> -             printk (KERN_ERR __FUNCTION__ " %d: return %d\n", current->pid, 
> err);
> -#endif
> -     return err;
> -}
> -
> -extern int  copy_thread(int, unsigned long, unsigned long, struct 
> task_struct *, struct pt_regs *);
> -extern void flush_thread(void);
> -extern void exit_thread(void);
> -
> -extern void exit_mm(struct task_struct *);
> -extern void exit_fs(struct task_struct *);
> -extern void exit_files(struct task_struct *);
> -extern void exit_sighand(struct task_struct *);
> -
> -extern int do_execve(char *, char **, char **, struct pt_regs *);
> -extern int do_fork(unsigned long, unsigned long, struct pt_regs *);
> -
> -/*
> - * The wait-queues are circular lists, and you have to be *very* sure
> - * to keep them correct. Use only these two functions to add/remove
> - * entries in the queues.
> - */
> -extern inline void __add_wait_queue(struct wait_queue ** p, struct 
> wait_queue * wait)
> -{
> -     wait->next = *p ? : WAIT_QUEUE_HEAD(p);
> -     *p = wait;
> -}
> -
> -extern rwlock_t waitqueue_lock;
> -
> -extern inline void add_wait_queue(struct wait_queue ** p, struct wait_queue 
> * wait)
> -{
> -     unsigned long flags;
> -
> -     write_lock_irqsave(&waitqueue_lock, flags);
> -     __add_wait_queue(p, wait);
> -     write_unlock_irqrestore(&waitqueue_lock, flags);
> -}
> -
> -extern inline void __remove_wait_queue(struct wait_queue ** p, struct 
> wait_queue * wait)
> -{
> -     struct wait_queue * next = wait->next;
> -     struct wait_queue * head = next;
> -     struct wait_queue * tmp;
> -
> -     while ((tmp = head->next) != wait) {
> -             head = tmp;
> -     }
> -     head->next = next;
> -}
> -
> -extern inline void remove_wait_queue(struct wait_queue ** p, struct 
> wait_queue * wait)
> -{
> -     unsigned long flags;
> -
> -     write_lock_irqsave(&waitqueue_lock, flags);
> -     __remove_wait_queue(p, wait);
> -     write_unlock_irqrestore(&waitqueue_lock, flags); 
> -}
> -
> -#define __wait_event(wq, condition)                                  \
> -do {                                                                 \
> -     struct wait_queue __wait;                                       \
> -                                                                     \
> -     __wait.task = current;                                          \
> -     add_wait_queue(&wq, &__wait);                                   \
> -     for (;;) {                                                      \
> -             current->state = TASK_UNINTERRUPTIBLE;                  \
> -             mb();                                                   \
> -             if (condition)                                          \
> -                     break;                                          \
> -             schedule();                                             \
> -     }                                                               \
> -     current->state = TASK_RUNNING;                                  \
> -     remove_wait_queue(&wq, &__wait);                                \
> -} while (0)
> -
> -#define wait_event(wq, condition)                                    \
> -do {                                                                 \
> -     if (condition)                                                  \
> -             break;                                                  \
> -     __wait_event(wq, condition);                                    \
> -} while (0)
> -
> -#define __wait_event_interruptible(wq, condition, ret)                       
> \
> -do {                                                                 \
> -     struct wait_queue __wait;                                       \
> -                                                                     \
> -     __wait.task = current;                                          \
> -     add_wait_queue(&wq, &__wait);                                   \
> -     for (;;) {                                                      \
> -             current->state = TASK_INTERRUPTIBLE;                    \
> -             mb();                                                   \
> -             if (condition)                                          \
> -                     break;                                          \
> -             if (!signal_pending(current)) {                         \
> -                     schedule();                                     \
> -                     continue;                                       \
> -             }                                                       \
> -             ret = -ERESTARTSYS;                                     \
> -             break;                                                  \
> -     }                                                               \
> -     current->state = TASK_RUNNING;                                  \
> -     remove_wait_queue(&wq, &__wait);                                \
> -} while (0)
> -     
> -#define wait_event_interruptible(wq, condition)                              
> \
> -({                                                                   \
> -     int __ret = 0;                                                  \
> -     if (!(condition))                                               \
> -             __wait_event_interruptible(wq, condition, __ret);       \
> -     __ret;                                                          \
> -})
> -
> -#define REMOVE_LINKS(p) do { \
> -     (p)->next_task->prev_task = (p)->prev_task; \
> -     (p)->prev_task->next_task = (p)->next_task; \
> -     if ((p)->p_osptr) \
> -             (p)->p_osptr->p_ysptr = (p)->p_ysptr; \
> -     if ((p)->p_ysptr) \
> -             (p)->p_ysptr->p_osptr = (p)->p_osptr; \
> -     else \
> -             (p)->p_pptr->p_cptr = (p)->p_osptr; \
> -     } while (0)
> -
> -#define SET_LINKS(p) do { \
> -     (p)->next_task = &init_task; \
> -     (p)->prev_task = init_task.prev_task; \
> -     init_task.prev_task->next_task = (p); \
> -     init_task.prev_task = (p); \
> -     (p)->p_ysptr = NULL; \
> -     if (((p)->p_osptr = (p)->p_pptr->p_cptr) != NULL) \
> -             (p)->p_osptr->p_ysptr = p; \
> -     (p)->p_pptr->p_cptr = p; \
> -     } while (0)
> -
> -#define for_each_task(p) \
> -     for (p = &init_task ; (p = p->next_task) != &init_task ; )
> -
> -#endif /* __KERNEL__ */
> -
> -#endif
> diff --git a/pfinet/linux-src/include/linux/slab.h 
> b/pfinet/linux-src/include/linux/slab.h
> deleted file mode 100644
> index 0b46d3b7..00000000
> --- a/pfinet/linux-src/include/linux/slab.h
> +++ /dev/null
> @@ -1,71 +0,0 @@
> -/*
> - * linux/mm/slab.h
> - * Written by Mark Hemment, 1996.
> - * (markhe@nextd.demon.co.uk)
> - */
> -
> -#if  !defined(_LINUX_SLAB_H)
> -#define      _LINUX_SLAB_H
> -
> -#if  defined(__KERNEL__)
> -
> -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
> -#define      SLAB_ATOMIC             GFP_ATOMIC
> -#define      SLAB_USER               GFP_USER
> -#define      SLAB_KERNEL             GFP_KERNEL
> -#define      SLAB_NFS                GFP_NFS
> -#define      SLAB_DMA                GFP_DMA
> -
> -#define SLAB_LEVEL_MASK              0x0000007fUL
> -#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 as been build
> - * SLAB_DEBUG_SUPPORT.
> - */
> -#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_POISON             0x00000800UL    /* Poison 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_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 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(const void *);
> -extern void kfree_s(const void *, size_t);
> -
> -extern void kmem_cache_reap(int);
> -extern int get_slabinfo(char *);
> -
> -/* System wide caches */
> -extern kmem_cache_t  *vm_area_cachep;
> -extern kmem_cache_t  *mm_cachep;
> -
> -#endif       /* __KERNEL__ */
> -
> -#endif       /* _LINUX_SLAB_H */
> diff --git a/pfinet/linux-src/include/linux/socket.h 
> b/pfinet/linux-src/include/linux/socket.h
> deleted file mode 100644
> index b427f992..00000000
> --- a/pfinet/linux-src/include/linux/socket.h
> +++ /dev/null
> @@ -1,280 +0,0 @@
> -#ifndef _LINUX_SOCKET_H
> -#define _LINUX_SOCKET_H
> -
> -#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2)
> -
> -#include <asm/socket.h>                      /* arch-dependent defines       
> */
> -#include <linux/sockios.h>           /* the SIOCxxx I/O controls     */
> -#include <linux/uio.h>                       /* iovec support                
> */
> -#include <linux/types.h>             /* pid_t                        */
> -
> -typedef unsigned short       sa_family_t;
> -
> -/*
> - *   1003.1g requires sa_family_t and that sa_data is char.
> - */
> - 
> -struct sockaddr {
> -     sa_family_t     sa_family;      /* address family, AF_xxx       */
> -     char            sa_data[14];    /* 14 bytes of protocol address */
> -};
> -
> -struct linger {
> -     int             l_onoff;        /* Linger active                */
> -     int             l_linger;       /* How long to linger for       */
> -};
> -
> -/*
> - *   As we do 4.4BSD message passing we use a 4.4BSD message passing
> - *   system, not 4.3. Thus msg_accrights(len) are now missing. They
> - *   belong in an obscure libc emulation or the bin.
> - */
> - 
> -struct msghdr {
> -     void    *       msg_name;       /* Socket name                  */
> -     int             msg_namelen;    /* Length of name               */
> -     struct iovec *  msg_iov;        /* Data blocks                  */
> -     __kernel_size_t msg_iovlen;     /* Number of blocks             */
> -     void    *       msg_control;    /* Per protocol magic (eg BSD file 
> descriptor passing) */
> -     __kernel_size_t msg_controllen; /* Length of cmsg list */
> -     unsigned        msg_flags;
> -};
> -
> -/*
> - *   POSIX 1003.1g - ancillary data object information
> - *   Ancillary data consits of a sequence of pairs of
> - *   (cmsghdr, cmsg_data[])
> - */
> -
> -struct cmsghdr {
> -     __kernel_size_t cmsg_len;       /* data byte count, including hdr */
> -        int          cmsg_level;     /* originating protocol */
> -        int          cmsg_type;      /* protocol-specific type */
> -};
> -
> -/*
> - *   Ancillary data object information MACROS
> - *   Table 5-14 of POSIX 1003.1g
> - */
> -
> -#define __CMSG_NXTHDR(ctl, len, cmsg) __cmsg_nxthdr((ctl),(len),(cmsg))
> -#define CMSG_NXTHDR(mhdr, cmsg) cmsg_nxthdr((mhdr), (cmsg))
> -
> -#define CMSG_ALIGN(len) ( ((len)+sizeof(long)-1) & ~(sizeof(long)-1) )
> -
> -#define CMSG_DATA(cmsg)      ((void *)((char *)(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(ctl,len) ((len) >= sizeof(struct cmsghdr) ? \
> -                               (struct cmsghdr *)(ctl) : \
> -                               (struct cmsghdr *)NULL)
> -#define CMSG_FIRSTHDR(msg)   __CMSG_FIRSTHDR((msg)->msg_control, 
> (msg)->msg_controllen)
> -
> -/*
> - *   This mess will go away with glibc
> - */
> - 
> -#ifdef __KERNEL__
> -#define __KINLINE extern __inline__
> -#elif  defined(__GNUC__) 
> -#define __KINLINE static __inline__
> -#elif defined(__cplusplus)
> -#define __KINLINE static inline
> -#else
> -#define __KINLINE static
> -#endif
> -
> -
> -/*
> - *   Get the next cmsg header
> - *
> - *   PLEASE, do not touch this function. If you think, that it is
> - *   incorrect, grep kernel sources and think about consequences
> - *   before trying to improve it.
> - *
> - *   Now it always returns valid, not truncated ancillary object
> - *   HEADER. But caller still MUST check, that cmsg->cmsg_len is
> - *   inside range, given by msg->msg_controllen before using
> - *   ansillary object DATA.                          --ANK (980731)
> - */
> - 
> -__KINLINE struct cmsghdr * __cmsg_nxthdr(void *__ctl, __kernel_size_t __size,
> -                                            struct cmsghdr *__cmsg)
> -{
> -     struct cmsghdr * __ptr;
> -
> -     __ptr = (struct cmsghdr*)(((unsigned char *) __cmsg) +  
> CMSG_ALIGN(__cmsg->cmsg_len));
> -     if ((unsigned long)((char*)(__ptr+1) - (char *) __ctl) > __size)
> -             return (struct cmsghdr*)0;
> -
> -     return __ptr;
> -}
> -
> -__KINLINE struct cmsghdr * cmsg_nxthdr (struct msghdr *__msg, struct cmsghdr 
> *__cmsg)
> -{
> -     return __cmsg_nxthdr(__msg->msg_control, __msg->msg_controllen, __cmsg);
> -}
> -
> -/* "Socket"-level control message types: */
> -
> -#define      SCM_RIGHTS      0x01            /* rw: access rights (array of 
> int) */
> -#define SCM_CREDENTIALS 0x02         /* rw: struct ucred             */
> -#define SCM_CONNECT  0x03            /* rw: struct scm_connect       */
> -
> -struct ucred {
> -     __u32   pid;
> -     __u32   uid;
> -     __u32   gid;
> -};
> -
> -
> -/* Supported address families. */
> -#define AF_UNSPEC    0
> -#define AF_UNIX              1       /* Unix domain sockets          */
> -#define AF_LOCAL     1       /* POSIX name for AF_UNIX       */
> -#define AF_INET              2       /* Internet IP Protocol         */
> -#define AF_AX25              3       /* Amateur Radio AX.25          */
> -#define AF_IPX               4       /* Novell IPX                   */
> -#define AF_APPLETALK 5       /* AppleTalk DDP                */
> -#define AF_NETROM    6       /* Amateur Radio NET/ROM        */
> -#define AF_BRIDGE    7       /* Multiprotocol bridge         */
> -#define AF_ATMPVC    8       /* ATM PVCs                     */
> -#define AF_X25               9       /* Reserved for X.25 project    */
> -#define AF_INET6     10      /* IP version 6                 */
> -#define AF_ROSE              11      /* Amateur Radio X.25 PLP       */
> -#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 AF_KEY   15      /* PF_KEY key management API */
> -#define AF_NETLINK   16
> -#define AF_ROUTE     AF_NETLINK /* Alias to emulate 4.4BSD */
> -#define AF_PACKET    17      /* Packet family                */
> -#define AF_ASH               18      /* Ash                          */
> -#define AF_ECONET    19      /* Acorn Econet                 */
> -#define AF_ATMSVC    20      /* ATM SVCs                     */
> -#define AF_SNA               22      /* Linux SNA Project (nutters!) */
> -#define AF_IRDA              23      /* IRDA sockets                 */
> -#define AF_MAX               32      /* For now.. */
> -
> -/* Protocol families, same as address families. */
> -#define PF_UNSPEC    AF_UNSPEC
> -#define PF_UNIX              AF_UNIX
> -#define PF_LOCAL     AF_LOCAL
> -#define PF_INET              AF_INET
> -#define PF_AX25              AF_AX25
> -#define PF_IPX               AF_IPX
> -#define PF_APPLETALK AF_APPLETALK
> -#define      PF_NETROM       AF_NETROM
> -#define PF_BRIDGE    AF_BRIDGE
> -#define PF_ATMPVC    AF_ATMPVC
> -#define PF_X25               AF_X25
> -#define PF_INET6     AF_INET6
> -#define PF_ROSE              AF_ROSE
> -#define PF_DECnet    AF_DECnet
> -#define PF_NETBEUI   AF_NETBEUI
> -#define PF_SECURITY  AF_SECURITY
> -#define PF_KEY      AF_KEY
> -#define PF_NETLINK   AF_NETLINK
> -#define PF_ROUTE     AF_ROUTE
> -#define PF_PACKET    AF_PACKET
> -#define PF_ASH               AF_ASH
> -#define PF_ECONET    AF_ECONET
> -#define PF_ATMSVC    AF_ATMSVC
> -#define PF_SNA               AF_SNA
> -#define PF_IRDA              AF_IRDA
> -
> -#define PF_MAX               AF_MAX
> -
> -/* Maximum queue length specifiable by listen.  */
> -#define SOMAXCONN    128
> -
> -/* Flags we can use with send/ and recv. 
> -   Added those for 1003.1g not all are supported yet
> - */
> - 
> -#define MSG_OOB              1
> -#define MSG_PEEK     2
> -#define MSG_DONTROUTE        4
> -#define MSG_TRYHARD     4       /* Synonym for MSG_DONTROUTE for DECnet */
> -#define MSG_CTRUNC   8
> -#define MSG_PROXY    0x10    /* Supply or ask second address. */
> -#define MSG_TRUNC    0x20
> -#define MSG_DONTWAIT 0x40    /* Nonblocking io                */
> -#define MSG_EOR         0x80 /* End of record */
> -#define MSG_WAITALL  0x100   /* Wait for a full request */
> -#define MSG_FIN         0x200
> -#define MSG_SYN              0x400
> -#define MSG_URG              0x800
> -#define MSG_RST              0x1000
> -#define MSG_ERRQUEUE 0x2000
> -#define MSG_NOSIGNAL 0x4000
> -
> -#define MSG_CTLIGNORE   0x80000000
> -
> -#define MSG_EOF         MSG_FIN
> -#define MSG_CTLFLAGS (MSG_OOB|MSG_URG|MSG_FIN|MSG_SYN|MSG_RST)
> -
> -
> -/* Setsockoptions(2) level. Thanks to BSD these must match IPPROTO_xxx */
> -#define SOL_IP               0
> -/* #define SOL_ICMP  1       No-no-no! Due to Linux :-) we cannot use 
> SOL_ICMP=1 */
> -#define SOL_TCP              6
> -#define SOL_UDP              17
> -#define SOL_IPV6     41
> -#define SOL_ICMPV6   58
> -#define SOL_RAW              255
> -#define SOL_IPX              256
> -#define SOL_AX25     257
> -#define SOL_ATALK    258
> -#define SOL_NETROM   259
> -#define SOL_ROSE     260
> -#define SOL_DECNET   261
> -#define      SOL_X25         262
> -#define SOL_PACKET   263
> -#define SOL_ATM              264     /* ATM layer (cell level) */
> -#define SOL_AAL              265     /* ATM Adaption Layer (packet level) */
> -#define SOL_IRDA        266
> -
> -/* IPX options */
> -#define IPX_TYPE     1
> -
> -/* TCP options - this way around because someone left a set in the c library 
> includes */
> -#define TCP_NODELAY  1
> -#define TCP_MAXSEG   2
> -#define TCP_CORK     3       /* Linux specific (for use with sendfile) */
> -
> -#ifdef __KERNEL__
> -extern int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int 
> len);
> -extern int memcpy_fromiovecend(unsigned char *kdata, struct iovec *iov, 
> -                             int offset, int len);
> -extern int csum_partial_copy_fromiovecend(unsigned char *kdata, 
> -                                       struct iovec *iov, 
> -                                       int offset, 
> -                                       unsigned int len, int *csump);
> -
> -extern int verify_iovec(struct msghdr *m, struct iovec *iov, char *address, 
> int mode);
> -extern int memcpy_toiovec(struct iovec *v, unsigned char *kdata, int len);
> -extern void memcpy_tokerneliovec(struct iovec *iov, unsigned char *kdata, 
> int len);
> -extern int move_addr_to_user(void *kaddr, int klen, void *uaddr, int *ulen);
> -extern int move_addr_to_kernel(void *uaddr, int ulen, void *kaddr);
> -extern int put_cmsg(struct msghdr*, int level, int type, int len, void 
> *data);
> -#endif
> -#endif /* not kernel and not glibc */
> -
> -#if !defined(__KERNEL__) && (!defined(__GLIBC__) || (__GLIBC__ < 2))
> -
> -/* Socket types for libc5 compatibility -- KTK */
> -
> -#define SOCK_STREAM    1             /* stream (connection) socket   */
> -#define SOCK_DGRAM     2             /* datagram (conn.less) socket  */
> -#define SOCK_RAW       3             /* raw socket                   */
> -#define SOCK_RDM       4             /* reliably-delivered message   */
> -#define SOCK_SEQPACKET 5             /* sequential packet socket     */
> -#define SOCK_PACKET    10            /* linux specific way of        */
> -                                     /* getting packets at the dev   */
> -                                     /* level.  For writing rarp and */
> -                                     /* other similar things on the  */
> -                                     /* user level.                  */
> -#endif /* libc<=5 && !kernel */
> -#endif /* _LINUX_SOCKET_H */
> diff --git a/pfinet/linux-src/include/linux/sockios.h 
> b/pfinet/linux-src/include/linux/sockios.h
> deleted file mode 100644
> index 995e43e9..00000000
> --- a/pfinet/linux-src/include/linux/sockios.h
> +++ /dev/null
> @@ -1,109 +0,0 @@
> -/*
> - * INET              An implementation of the TCP/IP protocol suite for the 
> LINUX
> - *           operating system.  INET is implemented using the  BSD Socket
> - *           interface as the means of communication with the user level.
> - *
> - *           Definitions of the socket-level I/O control calls.
> - *
> - * Version:  @(#)sockios.h   1.0.2   03/09/93
> - *
> - * Authors:  Ross Biro, <bir7@leland.Stanford.Edu>
> - *           Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
> - *
> - *           This program is free software; you can redistribute it and/or
> - *           modify it under the terms of the GNU General Public License
> - *           as published by the Free Software Foundation; either version
> - *           2 of the License, or (at your option) any later version.
> - */
> -#ifndef _LINUX_SOCKIOS_H
> -#define _LINUX_SOCKIOS_H
> -
> -#include <asm/sockios.h>
> -
> -/* Routing table calls. */
> -#define SIOCADDRT    0x890B          /* add routing table entry      */
> -#define SIOCDELRT    0x890C          /* delete routing table entry   */
> -#define SIOCRTMSG    0x890D          /* call to routing system       */
> -
> -/* Socket configuration controls. */
> -#define SIOCGIFNAME  0x8910          /* get iface name               */
> -#define SIOCSIFLINK  0x8911          /* set iface channel            */
> -#define SIOCGIFCONF  0x8912          /* get iface list               */
> -#define SIOCGIFFLAGS 0x8913          /* get flags                    */
> -#define SIOCSIFFLAGS 0x8914          /* set flags                    */
> -#define SIOCGIFADDR  0x8915          /* get PA address               */
> -#define SIOCSIFADDR  0x8916          /* set PA address               */
> -#define SIOCGIFDSTADDR       0x8917          /* get remote PA address        
> */
> -#define SIOCSIFDSTADDR       0x8918          /* set remote PA address        
> */
> -#define SIOCGIFBRDADDR       0x8919          /* get broadcast PA address     
> */
> -#define SIOCSIFBRDADDR       0x891a          /* set broadcast PA address     
> */
> -#define SIOCGIFNETMASK       0x891b          /* get network PA mask          
> */
> -#define SIOCSIFNETMASK       0x891c          /* set network PA mask          
> */
> -#define SIOCGIFMETRIC        0x891d          /* get metric                   
> */
> -#define SIOCSIFMETRIC        0x891e          /* set metric                   
> */
> -#define SIOCGIFMEM   0x891f          /* get memory address (BSD)     */
> -#define SIOCSIFMEM   0x8920          /* set memory address (BSD)     */
> -#define SIOCGIFMTU   0x8921          /* get MTU size                 */
> -#define SIOCSIFMTU   0x8922          /* set MTU size                 */
> -#define SIOCSIFNAME  0x8923          /* set interface name */
> -#define      SIOCSIFHWADDR   0x8924          /* set hardware address         
> */
> -#define SIOCGIFENCAP 0x8925          /* get/set encapsulations       */
> -#define SIOCSIFENCAP 0x8926          
> -#define SIOCGIFHWADDR        0x8927          /* Get hardware address         
> */
> -#define SIOCGIFSLAVE 0x8929          /* Driver slaving support       */
> -#define SIOCSIFSLAVE 0x8930
> -#define SIOCADDMULTI 0x8931          /* Multicast address lists      */
> -#define SIOCDELMULTI 0x8932
> -#define SIOCGIFINDEX 0x8933          /* name -> if_index mapping     */
> -#define SIOGIFINDEX  SIOCGIFINDEX    /* misprint compatibility :-)   */
> -#define SIOCSIFPFLAGS        0x8934          /* set/get extended flags set   
> */
> -#define SIOCGIFPFLAGS        0x8935
> -#define SIOCDIFADDR  0x8936          /* delete PA address            */
> -#define      SIOCSIFHWBROADCAST      0x8937  /* set hardware broadcast addr  
> */
> -#define SIOCGIFCOUNT 0x8938          /* get number of devices */
> -
> -#define SIOCGIFBR    0x8940          /* Bridging support             */
> -#define SIOCSIFBR    0x8941          /* Set bridging options         */
> -
> -#define SIOCGIFTXQLEN        0x8942          /* Get the tx queue length      
> */
> -#define SIOCSIFTXQLEN        0x8943          /* Set the tx queue length      
> */
> -
> -
> -/* ARP cache control calls. */
> -                 /*  0x8950 - 0x8952  * obsolete calls, don't re-use */
> -#define SIOCDARP     0x8953          /* delete ARP table entry       */
> -#define SIOCGARP     0x8954          /* get ARP table entry          */
> -#define SIOCSARP     0x8955          /* set ARP table entry          */
> -
> -/* RARP cache control calls. */
> -#define SIOCDRARP    0x8960          /* delete RARP table entry      */
> -#define SIOCGRARP    0x8961          /* get RARP table entry         */
> -#define SIOCSRARP    0x8962          /* set RARP table entry         */
> -
> -/* Driver configuration calls */
> -
> -#define SIOCGIFMAP   0x8970          /* Get device parameters        */
> -#define SIOCSIFMAP   0x8971          /* Set device parameters        */
> -
> -/* DLCI configuration calls */
> -
> -#define SIOCADDDLCI  0x8980          /* Create new DLCI device       */
> -#define SIOCDELDLCI  0x8981          /* Delete DLCI device           */
> -
> -/* Device private ioctl calls */
> -
> -/*
> - *   These 16 ioctls are available to devices via the do_ioctl() device
> - *   vector. Each device should include this file and redefine these names
> - *   as their own. Because these are device dependent it is a good idea
> - *   _NOT_ to issue them to random objects and hope.
> - */
> - 
> -#define SIOCDEVPRIVATE       0x89F0  /* to 89FF */
> -
> -/*
> - *   These 16 ioctl calls are protocol private
> - */
> - 
> -#define SIOCPROTOPRIVATE 0x89E0 /* to 89EF */
> -#endif       /* _LINUX_SOCKIOS_H */
> diff --git a/pfinet/linux-src/include/linux/stat.h 
> b/pfinet/linux-src/include/linux/stat.h
> deleted file mode 100644
> index e43e241f..00000000
> --- a/pfinet/linux-src/include/linux/stat.h
> +++ /dev/null
> @@ -1,57 +0,0 @@
> -#ifndef _LINUX_STAT_H
> -#define _LINUX_STAT_H
> -
> -#ifdef __KERNEL__
> -
> -#include <asm/stat.h>
> -
> -#endif
> -
> -#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2)
> -
> -#define S_IFMT  00170000
> -#define S_IFSOCK 0140000
> -#define S_IFLNK       0120000
> -#define S_IFREG  0100000
> -#define S_IFBLK  0060000
> -#define S_IFDIR  0040000
> -#define S_IFCHR  0020000
> -#define S_IFIFO  0010000
> -#define S_ISUID  0004000
> -#define S_ISGID  0002000
> -#define S_ISVTX  0001000
> -
> -#define S_ISLNK(m)   (((m) & S_IFMT) == S_IFLNK)
> -#define S_ISREG(m)   (((m) & S_IFMT) == S_IFREG)
> -#define S_ISDIR(m)   (((m) & S_IFMT) == S_IFDIR)
> -#define S_ISCHR(m)   (((m) & S_IFMT) == S_IFCHR)
> -#define S_ISBLK(m)   (((m) & S_IFMT) == S_IFBLK)
> -#define S_ISFIFO(m)  (((m) & S_IFMT) == S_IFIFO)
> -#define S_ISSOCK(m)  (((m) & S_IFMT) == S_IFSOCK)
> -
> -#define S_IRWXU 00700
> -#define S_IRUSR 00400
> -#define S_IWUSR 00200
> -#define S_IXUSR 00100
> -
> -#define S_IRWXG 00070
> -#define S_IRGRP 00040
> -#define S_IWGRP 00020
> -#define S_IXGRP 00010
> -
> -#define S_IRWXO 00007
> -#define S_IROTH 00004
> -#define S_IWOTH 00002
> -#define S_IXOTH 00001
> -
> -#endif
> -
> -#ifdef __KERNEL__
> -#define S_IRWXUGO    (S_IRWXU|S_IRWXG|S_IRWXO)
> -#define S_IALLUGO    (S_ISUID|S_ISGID|S_ISVTX|S_IRWXUGO)
> -#define S_IRUGO              (S_IRUSR|S_IRGRP|S_IROTH)
> -#define S_IWUGO              (S_IWUSR|S_IWGRP|S_IWOTH)
> -#define S_IXUGO              (S_IXUSR|S_IXGRP|S_IXOTH)
> -#endif
> -
> -#endif
> diff --git a/pfinet/linux-src/include/linux/string.h 
> b/pfinet/linux-src/include/linux/string.h
> deleted file mode 100644
> index 9ea63cd0..00000000
> --- a/pfinet/linux-src/include/linux/string.h
> +++ /dev/null
> @@ -1,43 +0,0 @@
> -#ifndef _LINUX_STRING_H_
> -#define _LINUX_STRING_H_
> -
> -#include <linux/types.h>     /* for size_t */
> -#include <linux/stddef.h>    /* for NULL */
> -
> -#ifdef __cplusplus
> -extern "C" {
> -#endif
> -
> -extern char * ___strtok;
> -extern char * strcpy(char *,const char *);
> -extern char * strncpy(char *,const char *, __kernel_size_t);
> -extern char * strcat(char *, const char *);
> -extern char * strncat(char *, const char *, __kernel_size_t);
> -extern char * strchr(const char *,int);
> -extern char * strrchr(const char *,int);
> -extern char * strpbrk(const char *,const char *);
> -extern char * strtok(char *,const char *);
> -extern char * strstr(const char *,const char *);
> -extern __kernel_size_t strlen(const char *);
> -extern __kernel_size_t strnlen(const char *,__kernel_size_t);
> -extern __kernel_size_t strspn(const char *,const char *);
> -extern int strcmp(const char *,const char *);
> -extern int strncmp(const char *,const char *,__kernel_size_t);
> -extern int strnicmp(const char *, const char *, __kernel_size_t);
> -
> -extern void * memset(void *,int,__kernel_size_t);
> -extern void * memcpy(void *,const void *,__kernel_size_t);
> -extern void * memmove(void *,const void *,__kernel_size_t);
> -extern void * memscan(void *,int,__kernel_size_t);
> -extern int memcmp(const void *,const void *,__kernel_size_t);
> -
> -/*
> - * Include machine specific inline routines
> - */
> -#include <asm/string.h>
> -
> -#ifdef __cplusplus
> -}
> -#endif
> -
> -#endif /* _LINUX_STRING_H_ */
> diff --git a/pfinet/linux-src/include/linux/termios.h 
> b/pfinet/linux-src/include/linux/termios.h
> deleted file mode 100644
> index 47866288..00000000
> --- a/pfinet/linux-src/include/linux/termios.h
> +++ /dev/null
> @@ -1,7 +0,0 @@
> -#ifndef _LINUX_TERMIOS_H
> -#define _LINUX_TERMIOS_H
> -
> -#include <linux/types.h>
> -#include <asm/termios.h>
> -
> -#endif
> diff --git a/pfinet/linux-src/include/linux/time.h 
> b/pfinet/linux-src/include/linux/time.h
> deleted file mode 100644
> index 53a125a0..00000000
> --- a/pfinet/linux-src/include/linux/time.h
> +++ /dev/null
> @@ -1,92 +0,0 @@
> -#ifndef _LINUX_TIME_H
> -#define _LINUX_TIME_H
> -
> -#include <asm/param.h>
> -#include <linux/types.h>
> -
> -#ifndef _STRUCT_TIMESPEC
> -#define _STRUCT_TIMESPEC
> -struct timespec {
> -     time_t  tv_sec;         /* seconds */
> -     long    tv_nsec;        /* nanoseconds */
> -};
> -#endif /* _STRUCT_TIMESPEC */
> -
> -/*
> - * Change timeval to jiffies, trying to avoid the
> - * most obvious overflows..
> - *
> - * And some not so obvious.
> - *
> - * Note that we don't want to return MAX_LONG, because
> - * for various timeout reasons we often end up having
> - * to wait "jiffies+1" in order to guarantee that we wait
> - * at _least_ "jiffies" - so "jiffies+1" had better still
> - * be positive.
> - */
> -#define MAX_JIFFY_OFFSET ((~0UL >> 1)-1)
> -
> -static __inline__ unsigned long
> -timespec_to_jiffies(struct timespec *value)
> -{
> -     unsigned long sec = value->tv_sec;
> -     long nsec = value->tv_nsec;
> -
> -     if (sec >= (MAX_JIFFY_OFFSET / HZ))
> -             return MAX_JIFFY_OFFSET;
> -     nsec += 1000000000L / HZ - 1;
> -     nsec /= 1000000000L / HZ;
> -     return HZ * sec + nsec;
> -}
> -
> -static __inline__ void
> -jiffies_to_timespec(unsigned long jiffies, struct timespec *value)
> -{
> -     value->tv_nsec = (jiffies % HZ) * (1000000000L / HZ);
> -     value->tv_sec = jiffies / HZ;
> -}
> - 
> -struct timeval {
> -     time_t          tv_sec;         /* seconds */
> -     suseconds_t     tv_usec;        /* microseconds */
> -};
> -
> -struct timezone {
> -     int     tz_minuteswest; /* minutes west of Greenwich */
> -     int     tz_dsttime;     /* type of dst correction */
> -};
> -
> -#define NFDBITS                      __NFDBITS
> -
> -#ifdef __KERNEL__
> -extern void do_gettimeofday(struct timeval *tv);
> -extern void do_settimeofday(struct timeval *tv);
> -extern void get_fast_time(struct timeval *tv);
> -extern void (*do_get_fast_time)(struct timeval *);
> -#endif
> -
> -#define FD_SETSIZE           __FD_SETSIZE
> -#define FD_SET(fd,fdsetp)    __FD_SET(fd,fdsetp)
> -#define FD_CLR(fd,fdsetp)    __FD_CLR(fd,fdsetp)
> -#define FD_ISSET(fd,fdsetp)  __FD_ISSET(fd,fdsetp)
> -#define FD_ZERO(fdsetp)              __FD_ZERO(fdsetp)
> -
> -/*
> - * Names of the interval timers, and structure
> - * defining a timer setting.
> - */
> -#define      ITIMER_REAL     0
> -#define      ITIMER_VIRTUAL  1
> -#define      ITIMER_PROF     2
> -
> -struct  itimerspec {
> -        struct  timespec it_interval;    /* timer period */
> -        struct  timespec it_value;       /* timer expiration */
> -};
> -
> -struct       itimerval {
> -     struct  timeval it_interval;    /* timer interval */
> -     struct  timeval it_value;       /* current value */
> -};
> -
> -#endif
> diff --git a/pfinet/linux-src/include/linux/timer.h 
> b/pfinet/linux-src/include/linux/timer.h
> deleted file mode 100644
> index 56f39893..00000000
> --- a/pfinet/linux-src/include/linux/timer.h
> +++ /dev/null
> @@ -1,96 +0,0 @@
> -#ifndef _LINUX_TIMER_H
> -#define _LINUX_TIMER_H
> -
> -/*
> - * Old-style timers. Please don't use for any new code.
> - *
> - * Numbering of these timers should be consecutive to minimize
> - * processing delays. [MJ]
> - */
> -
> -#define BLANK_TIMER  0       /* Console screen-saver */
> -#define BEEP_TIMER   1       /* Console beep */
> -#define RS_TIMER     2       /* RS-232 ports */
> -#define SWAP_TIMER   3       /* Background pageout */
> -#define BACKGR_TIMER    4    /* io_request background I/O */
> -#define HD_TIMER     5       /* Old IDE driver */
> -#define FLOPPY_TIMER 6       /* Floppy */
> -#define QIC02_TAPE_TIMER 7   /* QIC 02 tape */
> -#define MCD_TIMER    8       /* Mitsumi CDROM */
> -#define GSCD_TIMER   9       /* Goldstar CDROM */
> -#define COMTROL_TIMER        10      /* Comtrol serial */
> -#define DIGI_TIMER   11      /* Digi serial */
> -#define GDTH_TIMER   12      /* Ugh - gdth scsi driver */
> -
> -#define COPRO_TIMER  31      /* 387 timeout for buggy hardware (boot only) */
> -
> -struct timer_struct {
> -     unsigned long expires;
> -     void (*fn)(void);
> -};
> -
> -extern unsigned long timer_active;
> -extern struct timer_struct timer_table[32];
> -
> -/*
> - * This is completely separate from the above, and is the
> - * "new and improved" way of handling timers more dynamically.
> - * Hopefully efficient and general enough for most things.
> - *
> - * The "hardcoded" timers above are still useful for well-
> - * defined problems, but the timer-list is probably better
> - * when you need multiple outstanding timers or similar.
> - *
> - * The "data" field is in case you want to use the same
> - * timeout function for several timeouts. You can use this
> - * to distinguish between the different invocations.
> - */
> -struct timer_list {
> -     struct timer_list *next; /* MUST be first element */
> -     struct timer_list *prev;
> -     unsigned long expires;
> -     unsigned long data;
> -     void (*function)(unsigned long);
> -};
> -
> -extern void add_timer(struct timer_list * timer);
> -extern int  del_timer(struct timer_list * timer);
> -
> -/*
> - * mod_timer is a more efficient way to update the expire field of an
> - * active timer (if the timer is inactive it will be activated)
> - * mod_timer(a,b) is equivalent to del_timer(a); a->expires = b; add_timer(a)
> - */
> -void mod_timer(struct timer_list *timer, unsigned long expires);
> -
> -extern void it_real_fn(unsigned long);
> -
> -extern inline void init_timer(struct timer_list * timer)
> -{
> -     timer->next = NULL;
> -     timer->prev = NULL;
> -}
> -
> -extern inline int timer_pending(struct timer_list * timer)
> -{
> -     return timer->prev != NULL;
> -}
> -
> -/*
> - *   These inlines deal with timer wrapping correctly. You are 
> - *   strongly encouraged to use them
> - *   1. Because people otherwise forget
> - *   2. Because if the timer wrap changes in future you wont have to
> - *      alter your driver code.
> - *
> - * Do this with "<0" and ">=0" to only test the sign of the result. A
> - * good compiler would generate better code (and a really good compiler
> - * wouldn't care). Gcc is currently neither.
> - */
> -#define time_after(a,b)              ((long)(b) - (long)(a) < 0)
> -#define time_before(a,b)     time_after(b,a)
> -
> -#define time_after_eq(a,b)   ((long)(a) - (long)(b) >= 0)
> -#define time_before_eq(a,b)  time_after_eq(b,a)
> -
> -#endif
> diff --git a/pfinet/linux-src/include/linux/timex.h 
> b/pfinet/linux-src/include/linux/timex.h
> deleted file mode 100644
> index 653009ad..00000000
> --- a/pfinet/linux-src/include/linux/timex.h
> +++ /dev/null
> @@ -1,277 +0,0 @@
> -/*****************************************************************************
> - *                                                                           
> *
> - * Copyright (c) David L. Mills 1993                                         
> *
> - *                                                                           
> *
> - * Permission to use, copy, modify, and distribute this software and its     
> *
> - * documentation for any purpose and without fee is hereby granted, provided 
> *
> - * that the above copyright notice appears in all copies and that both the   
> *
> - * copyright notice and this permission notice appear in supporting          
> *
> - * documentation, and that the name University of Delaware not be used in    
> *
> - * advertising or publicity pertaining to distribution of the software       
> *
> - * without specific, written prior permission.  The University of Delaware   
> *
> - * makes no representations about the suitability this software for any      
> *
> - * purpose.  It is provided "as is" without express or implied warranty.     
> *
> - *                                                                           
> *
> - 
> *****************************************************************************/
> -
> -/*
> - * Modification history timex.h
> - *
> - * 29 Dec 97 Russell King
> - *   Moved CLOCK_TICK_RATE, CLOCK_TICK_FACTOR and FINETUNE to asm/timex.h
> - *   for ARM machines
> - *
> - *  9 Jan 97    Adrian Sun
> - *      Shifted LATCH define to allow access to alpha machines.
> - *
> - * 26 Sep 94 David L. Mills
> - *   Added defines for hybrid phase/frequency-lock loop.
> - *
> - * 19 Mar 94 David L. Mills
> - *   Moved defines from kernel routines to header file and added new
> - *   defines for PPS phase-lock loop.
> - *
> - * 20 Feb 94 David L. Mills
> - *   Revised status codes and structures for external clock and PPS
> - *   signal discipline.
> - *
> - * 28 Nov 93 David L. Mills
> - *   Adjusted parameters to improve stability and increase poll
> - *   interval.
> - *
> - * 17 Sep 93    David L. Mills
> - *      Created file $NTP/include/sys/timex.h
> - * 07 Oct 93    Torsten Duwe
> - *      Derived linux/timex.h
> - * 1995-08-13    Torsten Duwe
> - *      kernel PLL updated to 1994-12-13 specs (rfc-1589)
> - * 1997-08-30    Ulrich Windl
> - *      Added new constant NTP_PHASE_LIMIT
> - */
> -#ifndef _LINUX_TIMEX_H
> -#define _LINUX_TIMEX_H
> -
> -/*
> - * The following defines establish the engineering parameters of the PLL
> - * model. The HZ variable establishes the timer interrupt frequency, 100 Hz
> - * for the SunOS kernel, 256 Hz for the Ultrix kernel and 1024 Hz for the
> - * OSF/1 kernel. The SHIFT_HZ define expresses the same value as the
> - * nearest power of two in order to avoid hardware multiply operations.
> - */
> -#ifdef __alpha__
> -# define SHIFT_HZ 10         /* log2(HZ) */
> -#else
> -# define SHIFT_HZ 7          /* log2(HZ) */
> -#endif
> -
> -/*
> - * SHIFT_KG and SHIFT_KF establish the damping of the PLL and are chosen
> - * for a slightly underdamped convergence characteristic. SHIFT_KH
> - * establishes the damping of the FLL and is chosen by wisdom and black
> - * art.
> - *
> - * MAXTC establishes the maximum time constant of the PLL. With the
> - * SHIFT_KG and SHIFT_KF values given and a time constant range from
> - * zero to MAXTC, the PLL will converge in 15 minutes to 16 hours,
> - * respectively.
> - */
> -#define SHIFT_KG 6           /* phase factor (shift) */
> -#define SHIFT_KF 16          /* PLL frequency factor (shift) */
> -#define SHIFT_KH 2           /* FLL frequency factor (shift) */
> -#define MAXTC 6                      /* maximum time constant (shift) */
> -
> -/*
> - * The SHIFT_SCALE define establishes the decimal point of the time_phase
> - * variable which serves as an extension to the low-order bits of the
> - * system clock variable. The SHIFT_UPDATE define establishes the decimal
> - * point of the time_offset variable which represents the current offset
> - * with respect to standard time. The FINEUSEC define represents 1 usec in
> - * scaled units.
> - *
> - * SHIFT_USEC defines the scaling (shift) of the time_freq and
> - * time_tolerance variables, which represent the current frequency
> - * offset and maximum frequency tolerance.
> - *
> - * FINEUSEC is 1 us in SHIFT_UPDATE units of the time_phase variable.
> - */
> -#define SHIFT_SCALE 22               /* phase scale (shift) */
> -#define SHIFT_UPDATE (SHIFT_KG + MAXTC) /* time offset scale (shift) */
> -#define SHIFT_USEC 16                /* frequency offset scale (shift) */
> -#define FINEUSEC (1L << SHIFT_SCALE) /* 1 us in phase units */
> -
> -#define MAXPHASE 512000L        /* max phase error (us) */
> -#define MAXFREQ (512L << SHIFT_USEC)  /* max frequency error (ppm) */
> -#define MAXTIME (200L << PPS_AVG) /* max PPS error (jitter) (200 us) */
> -#define MINSEC 16L              /* min interval between updates (s) */
> -#define MAXSEC 1200L            /* max interval between updates (s) */
> -#define      NTP_PHASE_LIMIT (MAXPHASE << 5) /* beyond max. dispersion */
> -
> -/*
> - * The following defines are used only if a pulse-per-second (PPS)
> - * signal is available and connected via a modem control lead, such as
> - * produced by the optional ppsclock feature incorporated in the Sun
> - * asynch driver. They establish the design parameters of the frequency-
> - * lock loop used to discipline the CPU clock oscillator to the PPS
> - * signal.
> - *
> - * PPS_AVG is the averaging factor for the frequency loop, as well as
> - * the time and frequency dispersion.
> - *
> - * PPS_SHIFT and PPS_SHIFTMAX specify the minimum and maximum
> - * calibration intervals, respectively, in seconds as a power of two.
> - *
> - * PPS_VALID is the maximum interval before the PPS signal is considered
> - * invalid and protocol updates used directly instead.
> - *
> - * MAXGLITCH is the maximum interval before a time offset of more than
> - * MAXTIME is believed.
> - */
> -#define PPS_AVG 2            /* pps averaging constant (shift) */
> -#define PPS_SHIFT 2          /* min interval duration (s) (shift) */
> -#define PPS_SHIFTMAX 8               /* max interval duration (s) (shift) */
> -#define PPS_VALID 120                /* pps signal watchdog max (s) */
> -#define MAXGLITCH 30         /* pps signal glitch max (s) */
> -
> -/*
> - * Pick up the architecture specific timex specifications
> - */
> -#include <asm/timex.h>
> -
> -/* LATCH is used in the interval timer and ftape setup. */
> -#define LATCH  ((CLOCK_TICK_RATE + HZ/2) / HZ)       /* For divider */
> -
> -/*
> - * syscall interface - used (mainly by NTP daemon)
> - * to discipline kernel clock oscillator
> - */
> -struct timex {
> -     unsigned int modes;     /* mode selector */
> -     long offset;            /* time offset (usec) */
> -     long freq;              /* frequency offset (scaled ppm) */
> -     long maxerror;          /* maximum error (usec) */
> -     long esterror;          /* estimated error (usec) */
> -     int status;             /* clock command/status */
> -     long constant;          /* pll time constant */
> -     long precision;         /* clock precision (usec) (read only) */
> -     long tolerance;         /* clock frequency tolerance (ppm)
> -                              * (read only)
> -                              */
> -     struct timeval time;    /* (read only) */
> -     long tick;              /* (modified) usecs between clock ticks */
> -
> -     long ppsfreq;           /* pps frequency (scaled ppm) (ro) */
> -     long jitter;            /* pps jitter (us) (ro) */
> -     int shift;              /* interval duration (s) (shift) (ro) */
> -     long stabil;            /* pps stability (scaled ppm) (ro) */
> -     long jitcnt;            /* jitter limit exceeded (ro) */
> -     long calcnt;            /* calibration intervals (ro) */
> -     long errcnt;            /* calibration errors (ro) */
> -     long stbcnt;            /* stability limit exceeded (ro) */
> -
> -     int  :32; int  :32; int  :32; int  :32;
> -     int  :32; int  :32; int  :32; int  :32;
> -     int  :32; int  :32; int  :32; int  :32;
> -};
> -
> -/*
> - * Mode codes (timex.mode)
> - */
> -#define ADJ_OFFSET           0x0001  /* time offset */
> -#define ADJ_FREQUENCY                0x0002  /* frequency offset */
> -#define ADJ_MAXERROR         0x0004  /* maximum time error */
> -#define ADJ_ESTERROR         0x0008  /* estimated time error */
> -#define ADJ_STATUS           0x0010  /* clock status */
> -#define ADJ_TIMECONST                0x0020  /* pll time constant */
> -#define ADJ_TICK             0x4000  /* tick value */
> -#define ADJ_OFFSET_SINGLESHOT        0x8001  /* old-fashioned adjtime */
> -
> -/* xntp 3.4 compatibility names */
> -#define MOD_OFFSET   ADJ_OFFSET
> -#define MOD_FREQUENCY        ADJ_FREQUENCY
> -#define MOD_MAXERROR ADJ_MAXERROR
> -#define MOD_ESTERROR ADJ_ESTERROR
> -#define MOD_STATUS   ADJ_STATUS
> -#define MOD_TIMECONST        ADJ_TIMECONST
> -#define MOD_CLKB     ADJ_TICK
> -#define MOD_CLKA     ADJ_OFFSET_SINGLESHOT /* 0x8000 in original */
> -
> -
> -/*
> - * Status codes (timex.status)
> - */
> -#define STA_PLL              0x0001  /* enable PLL updates (rw) */
> -#define STA_PPSFREQ  0x0002  /* enable PPS freq discipline (rw) */
> -#define STA_PPSTIME  0x0004  /* enable PPS time discipline (rw) */
> -#define STA_FLL              0x0008  /* select frequency-lock mode (rw) */
> -
> -#define STA_INS              0x0010  /* insert leap (rw) */
> -#define STA_DEL              0x0020  /* delete leap (rw) */
> -#define STA_UNSYNC   0x0040  /* clock unsynchronized (rw) */
> -#define STA_FREQHOLD 0x0080  /* hold frequency (rw) */
> -
> -#define STA_PPSSIGNAL        0x0100  /* PPS signal present (ro) */
> -#define STA_PPSJITTER        0x0200  /* PPS signal jitter exceeded (ro) */
> -#define STA_PPSWANDER        0x0400  /* PPS signal wander exceeded (ro) */
> -#define STA_PPSERROR 0x0800  /* PPS signal calibration error (ro) */
> -
> -#define STA_CLOCKERR 0x1000  /* clock hardware fault (ro) */
> -
> -#define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | \
> -    STA_PPSERROR | STA_CLOCKERR) /* read-only bits */
> -
> -/*
> - * Clock states (time_state)
> - */
> -#define TIME_OK              0       /* clock synchronized, no leap second */
> -#define TIME_INS     1       /* insert leap second */
> -#define TIME_DEL     2       /* delete leap second */
> -#define TIME_OOP     3       /* leap second in progress */
> -#define TIME_WAIT    4       /* leap second has occurred */
> -#define TIME_ERROR   5       /* clock not synchronized */
> -#define TIME_BAD     TIME_ERROR /* bw compat */
> -
> -#ifdef __KERNEL__
> -/*
> - * kernel variables
> - * Note: maximum error = NTP synch distance = dispersion + delay / 2;
> - * estimated error = NTP dispersion.
> - */
> -extern long tick;                      /* timer interrupt period */
> -extern int tickadj;                  /* amount of adjustment per tick */
> -
> -/*
> - * phase-lock loop variables
> - */
> -extern int time_state;               /* clock status */
> -extern int time_status;              /* clock synchronization status bits */
> -extern long time_offset;     /* time adjustment (us) */
> -extern long time_constant;   /* pll time constant */
> -extern long time_tolerance;  /* frequency tolerance (ppm) */
> -extern long time_precision;  /* clock precision (us) */
> -extern long time_maxerror;   /* maximum error */
> -extern long time_esterror;   /* estimated error */
> -
> -extern long time_phase;              /* phase offset (scaled us) */
> -extern long time_freq;               /* frequency offset (scaled ppm) */
> -extern long time_adj;                /* tick adjust (scaled 1 / HZ) */
> -extern long time_reftime;    /* time at last adjustment (s) */
> -
> -extern long time_adjust;     /* The amount of adjtime left */
> -
> -/* interface variables pps->timer interrupt */
> -extern long pps_offset;              /* pps time offset (us) */
> -extern long pps_jitter;              /* time dispersion (jitter) (us) */
> -extern long pps_freq;                /* frequency offset (scaled ppm) */
> -extern long pps_stabil;              /* frequency dispersion (scaled ppm) */
> -extern long pps_valid;               /* pps signal watchdog counter */
> -
> -/* interface variables pps->adjtimex */
> -extern int pps_shift;                /* interval duration (s) (shift) */
> -extern long pps_jitcnt;              /* jitter limit exceeded */
> -extern long pps_calcnt;              /* calibration intervals */
> -extern long pps_errcnt;              /* calibration errors */
> -extern long pps_stbcnt;              /* stability limit exceeded */
> -
> -#endif /* KERNEL */
> -
> -#endif /* LINUX_TIMEX_H */
> diff --git a/pfinet/linux-src/include/linux/types.h 
> b/pfinet/linux-src/include/linux/types.h
> deleted file mode 100644
> index a53a4ccc..00000000
> --- a/pfinet/linux-src/include/linux/types.h
> +++ /dev/null
> @@ -1,108 +0,0 @@
> -#ifndef _LINUX_TYPES_H
> -#define _LINUX_TYPES_H
> -
> -#include <linux/posix_types.h>
> -#include <asm/types.h>
> -
> -#ifndef __KERNEL_STRICT_NAMES
> -
> -typedef __kernel_fd_set              fd_set;
> -typedef __kernel_dev_t               dev_t;
> -typedef __kernel_ino_t               ino_t;
> -typedef __kernel_mode_t              mode_t;
> -typedef __kernel_nlink_t     nlink_t;
> -typedef __kernel_off_t               off_t;
> -typedef __kernel_pid_t               pid_t;
> -typedef __kernel_uid_t               uid_t;
> -typedef __kernel_gid_t               gid_t;
> -typedef __kernel_daddr_t     daddr_t;
> -typedef __kernel_key_t               key_t;
> -typedef __kernel_suseconds_t suseconds_t;
> -
> -#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
> -typedef __kernel_loff_t              loff_t;
> -#endif
> -
> -/*
> - * The following typedefs are also protected by individual ifdefs for
> - * historical reasons:
> - */
> -#ifndef _SIZE_T
> -#define _SIZE_T
> -typedef __kernel_size_t              size_t;
> -#endif
> -
> -#ifndef _SSIZE_T
> -#define _SSIZE_T
> -typedef __kernel_ssize_t     ssize_t;
> -#endif
> -
> -#ifndef _PTRDIFF_T
> -#define _PTRDIFF_T
> -typedef __kernel_ptrdiff_t   ptrdiff_t;
> -#endif
> -
> -#ifndef _TIME_T
> -#define _TIME_T
> -typedef __kernel_time_t              time_t;
> -#endif
> -
> -#ifndef _CLOCK_T
> -#define _CLOCK_T
> -typedef __kernel_clock_t     clock_t;
> -#endif
> -
> -#ifndef _CADDR_T
> -#define _CADDR_T
> -typedef __kernel_caddr_t     caddr_t;
> -#endif
> -
> -/* bsd */
> -typedef unsigned char                u_char;
> -typedef unsigned short               u_short;
> -typedef unsigned int         u_int;
> -typedef unsigned long                u_long;
> -
> -/* sysv */
> -typedef unsigned char                unchar;
> -typedef unsigned short               ushort;
> -typedef unsigned int         uint;
> -typedef unsigned long                ulong;
> -
> -#ifndef __BIT_TYPES_DEFINED__
> -#define __BIT_TYPES_DEFINED__
> -
> -typedef              __u8            u_int8_t;
> -typedef              __s8            int8_t;
> -typedef              __u16           u_int16_t;
> -typedef              __s16           int16_t;
> -typedef              __u32           u_int32_t;
> -typedef              __s32           int32_t;
> -
> -#endif /* !(__BIT_TYPES_DEFINED__) */
> -
> -typedef              __u8            uint8_t;
> -typedef              __u16           uint16_t;
> -typedef              __u32           uint32_t;
> -
> -#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
> -typedef              __u64           uint64_t;
> -typedef              __u64           u_int64_t;
> -typedef              __s64           int64_t;
> -#endif
> -
> -#endif /* __KERNEL_STRICT_NAMES */
> -
> -/*
> - * Below are truly Linux-specific types that should never collide with
> - * any application/library that wants linux/types.h.
> - */
> -
> -struct ustat {
> -     __kernel_daddr_t        f_tfree;
> -     __kernel_ino_t          f_tinode;
> -     char                    f_fname[6];
> -     char                    f_fpack[6];
> -};
> -
> -#endif /* _LINUX_TYPES_H */
> diff --git a/pfinet/linux-src/include/linux/un.h 
> b/pfinet/linux-src/include/linux/un.h
> deleted file mode 100644
> index 45561c56..00000000
> --- a/pfinet/linux-src/include/linux/un.h
> +++ /dev/null
> @@ -1,11 +0,0 @@
> -#ifndef _LINUX_UN_H
> -#define _LINUX_UN_H
> -
> -#define UNIX_PATH_MAX        108
> -
> -struct sockaddr_un {
> -     sa_family_t sun_family; /* AF_UNIX */
> -     char sun_path[UNIX_PATH_MAX];   /* pathname */
> -};
> -
> -#endif /* _LINUX_UN_H */
> diff --git a/pfinet/linux-src/include/linux/wait.h 
> b/pfinet/linux-src/include/linux/wait.h
> deleted file mode 100644
> index 6514693c..00000000
> --- a/pfinet/linux-src/include/linux/wait.h
> +++ /dev/null
> @@ -1,33 +0,0 @@
> -#ifndef _LINUX_WAIT_H
> -#define _LINUX_WAIT_H
> -
> -#define WNOHANG              0x00000001
> -#define WUNTRACED    0x00000002
> -
> -#define __WCLONE     0x80000000
> -
> -#ifdef __KERNEL__
> -
> -#include <asm/page.h>
> -
> -struct wait_queue {
> -     struct task_struct * task;
> -     struct wait_queue * next;
> -};
> -
> -#define WAIT_QUEUE_HEAD(x) ((struct wait_queue *)((x)-1))
> -
> -static inline void init_waitqueue(struct wait_queue **q)
> -{
> -     *q = WAIT_QUEUE_HEAD(q);
> -}
> -
> -static inline int waitqueue_active(struct wait_queue **q)
> -{
> -     struct wait_queue *head = *q;
> -     return head && head != WAIT_QUEUE_HEAD(q);
> -}
> -
> -#endif /* __KERNEL__ */
> -
> -#endif
> -- 
> 2.37.2
> 
> 

-- 
Samuel
---
Pour une évaluation indépendante, transparente et rigoureuse !
Je soutiens la Commission d'Évaluation de l'Inria.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]