[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.