public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: c/4472: GCC3.0.1 bug
@ 2001-10-04 19:36 Daniel Reurich
  0 siblings, 0 replies; 2+ messages in thread
From: Daniel Reurich @ 2001-10-04 19:36 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR c/4472; it has been noted by GNATS.

From: Daniel Reurich <dreurich@paradise.net.nz>
To: gcc-gnats@gcc.gnu.org, nobody@gcc.gnu.org
Cc:  
Subject: Re: c/4472: GCC3.0.1 bug
Date: Fri, 05 Oct 2001 14:37:06 +1200

 This is a multi-part message in MIME format.
 --------------68D31147E057C98EB44EBFA2
 Content-Type: text/plain; charset=us-ascii
 Content-Transfer-Encoding: 7bit
 
 gcc-gnats@gcc.gnu.org wrote:
 
 > Thank you very much for your problem report.
 > It has the internal identification `c/4472'.
 > The individual assigned to look at your
 > report is: unassigned.
 >
 > >Category:       c
 > >Responsible:    unassigned
 > >Synopsis:       Failed to compile linux kernel version 2.4.10
 > >Arrival-Date:   Thu Oct 04 19:16:01 PDT 2001
 
 here is the preprocessed file:
 
 --------------68D31147E057C98EB44EBFA2
 Content-Type: text/plain; charset=iso-8859-1;
  name="acct.i"
 Content-Transfer-Encoding: quoted-printable
 Content-Disposition: inline;
  filename="acct.i"
 
 # 46 "acct.c"
 # 1 "/usr/src/linux/include/linux/config.h" 1
 
 
 
 # 1 "/usr/src/linux/include/linux/autoconf.h" 1
 # 5 "/usr/src/linux/include/linux/config.h" 2
 # 47 "acct.c" 2
 # 1 "/usr/src/linux/include/linux/errno.h" 1
 
 
 
 # 1 "/usr/src/linux/include/asm/errno.h" 1
 # 5 "/usr/src/linux/include/linux/errno.h" 2
 # 48 "acct.c" 2
 # 1 "/usr/src/linux/include/linux/kernel.h" 1
 # 10 "/usr/src/linux/include/linux/kernel.h"
 # 1 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0.1/include/stdarg.h" 1 3
 # 43 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0.1/include/stdarg.h" 3
 typedef __builtin_va_list __gnuc_va_list;
 # 110 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0.1/include/stdarg.h" 3
 typedef __gnuc_va_list va_list;
 # 11 "/usr/src/linux/include/linux/kernel.h" 2
 # 1 "/usr/src/linux/include/linux/linkage.h" 1
 
 
 
 # 1 "/usr/src/linux/include/linux/config.h" 1
 # 5 "/usr/src/linux/include/linux/linkage.h" 2
 # 12 "/usr/src/linux/include/linux/kernel.h" 2
 # 1 "/usr/src/linux/include/linux/stddef.h" 1
 # 13 "/usr/src/linux/include/linux/kernel.h" 2
 # 1 "/usr/src/linux/include/linux/types.h" 1
 
 
 
 
 # 1 "/usr/src/linux/include/linux/config.h" 1
 # 6 "/usr/src/linux/include/linux/types.h" 2
 
 
 # 1 "/usr/src/linux/include/linux/posix_types.h" 1
 
 
 
 # 1 "/usr/src/linux/include/linux/stddef.h" 1
 # 5 "/usr/src/linux/include/linux/posix_types.h" 2
 # 36 "/usr/src/linux/include/linux/posix_types.h"
 typedef struct {
         unsigned long fds_bits [(1024/(8 * sizeof(unsigned long)))];
 } __kernel_fd_set;
 
 
 typedef void (*__kernel_sighandler_t)(int);
 
 
 typedef int __kernel_key_t;
 
 # 1 "/usr/src/linux/include/asm/posix_types.h" 1
 # 10 "/usr/src/linux/include/asm/posix_types.h"
 typedef unsigned short __kernel_dev_t;
 typedef unsigned long __kernel_ino_t;
 typedef unsigned short __kernel_mode_t;
 typedef unsigned short __kernel_nlink_t;
 typedef long __kernel_off_t;
 typedef int __kernel_pid_t;
 typedef unsigned short __kernel_ipc_pid_t;
 typedef unsigned short __kernel_uid_t;
 typedef unsigned short __kernel_gid_t;
 typedef unsigned int __kernel_size_t;
 typedef int __kernel_ssize_t;
 typedef int __kernel_ptrdiff_t;
 typedef long __kernel_time_t;
 typedef long __kernel_suseconds_t;
 typedef long __kernel_clock_t;
 typedef int __kernel_daddr_t;
 typedef char * __kernel_caddr_t;
 typedef unsigned short __kernel_uid16_t;
 typedef unsigned short __kernel_gid16_t;
 typedef unsigned int __kernel_uid32_t;
 typedef unsigned int __kernel_gid32_t;
 
 typedef unsigned short __kernel_old_uid_t;
 typedef unsigned short __kernel_old_gid_t;
 
 
 typedef long long __kernel_loff_t;
 
 
 typedef struct {
 
         int val[2];
 
 
 
 } __kernel_fsid_t;
 # 47 "/usr/src/linux/include/linux/posix_types.h" 2
 # 9 "/usr/src/linux/include/linux/types.h" 2
 # 1 "/usr/src/linux/include/asm/types.h" 1
 
 
 
 typedef unsigned short umode_t;
 
 
 
 
 
 
 typedef __signed__ char __s8;
 typedef unsigned char __u8;
 
 typedef __signed__ short __s16;
 typedef unsigned short __u16;
 
 typedef __signed__ int __s32;
 typedef unsigned int __u32;
 
 
 typedef __signed__ long long __s64;
 typedef unsigned long long __u64;
 
 
 
 
 
 
 
 typedef signed char s8;
 typedef unsigned char u8;
 
 typedef signed short s16;
 typedef unsigned short u16;
 
 typedef signed int s32;
 typedef unsigned int u32;
 
 typedef signed long long s64;
 typedef unsigned long long u64;
 
 
 
 
 
 typedef u32 dma_addr_t;
 # 10 "/usr/src/linux/include/linux/types.h" 2
 
 
 
 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_daddr_t daddr_t;
 typedef __kernel_key_t key_t;
 typedef __kernel_suseconds_t suseconds_t;
 
 
 typedef __kernel_uid32_t uid_t;
 typedef __kernel_gid32_t gid_t;
 typedef __kernel_uid16_t uid16_t;
 typedef __kernel_gid16_t gid16_t;
 
 
 
 typedef __kernel_old_uid_t old_uid_t;
 typedef __kernel_old_gid_t old_gid_t;
 # 45 "/usr/src/linux/include/linux/types.h"
 typedef __kernel_loff_t loff_t;
 # 54 "/usr/src/linux/include/linux/types.h"
 typedef __kernel_size_t size_t;
 
 
 
 
 typedef __kernel_ssize_t ssize_t;
 
 
 
 
 typedef __kernel_ptrdiff_t ptrdiff_t;
 
 
 
 
 typedef __kernel_time_t time_t;
 
 
 
 
 typedef __kernel_clock_t clock_t;
 
 
 
 
 typedef __kernel_caddr_t caddr_t;
 
 
 
 typedef unsigned char u_char;
 typedef unsigned short u_short;
 typedef unsigned int u_int;
 typedef unsigned long u_long;
 
 
 typedef unsigned char unchar;
 typedef unsigned short ushort;
 typedef unsigned int uint;
 typedef unsigned long ulong;
 
 
 
 
 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;
 
 
 
 typedef __u8 uint8_t;
 typedef __u16 uint16_t;
 typedef __u32 uint32_t;
 
 
 typedef __u64 uint64_t;
 typedef __u64 u_int64_t;
 typedef __s64 int64_t;
 # 123 "/usr/src/linux/include/linux/types.h"
 struct ustat {
         __kernel_daddr_t f_tfree;
         __kernel_ino_t f_tinode;
         char f_fname[6];
         char f_fpack[6];
 };
 # 14 "/usr/src/linux/include/linux/kernel.h" 2
 # 49 "/usr/src/linux/include/linux/kernel.h"
 struct completion;
 
 extern struct notifier_block *panic_notifier_list;
            void panic(const char * fmt, ...)
         __attribute__ ((noreturn, format (printf, 1, 2)));
            void do_exit(long error_code)
         __attribute__((noreturn));
            void complete_and_exit(struct completion *, long)
         __attribute__((noreturn));
 extern int abs(int);
 extern unsigned long simple_strtoul(const char *,char **,unsigned int);
 extern long simple_strtol(const char *,char **,unsigned int);
 extern unsigned long long simple_strtoull(const char *,char **,unsigned i=
 nt);
 extern long long simple_strtoll(const char *,char **,unsigned int);
 extern int sprintf(char * buf, const char * fmt, ...);
 extern int vsprintf(char *buf, const char *, va_list);
 extern int snprintf(char * buf, size_t size, const char *fmt, ...);
 extern int vsnprintf(char *buf, size_t size, const char *fmt, va_list arg=
 s);
 
 extern int sscanf(const char *, const char *, ...)
         __attribute__ ((format (scanf,2,3)));
 extern int vsscanf(const char *, const char *, va_list);
 
 extern int get_option(char **str, int *pint);
 extern char *get_options(char *str, int nints, int *ints);
 extern unsigned long long memparse(char *ptr, char **retptr);
 extern void dev_probe_lock(void);
 extern void dev_probe_unlock(void);
 
 extern int session_of_pgrp(int pgrp);
 
  __attribute__((regparm(0))) int printk(const char * fmt, ...)
         __attribute__ ((format (printf, 1, 2)));
 
 extern int console_loglevel;
 
 static inline void console_silent(void)
 {
         console_loglevel =3D 0;
 }
 
 static inline void console_verbose(void)
 {
         if (console_loglevel)
                 console_loglevel =3D 15;
 }
 
 extern void bust_spinlocks(int yes);
 extern int oops_in_progress;
 # 157 "/usr/src/linux/include/linux/kernel.h"
 struct sysinfo {
         long uptime;
         unsigned long loads[3];
         unsigned long totalram;
         unsigned long freeram;
         unsigned long sharedram;
         unsigned long bufferram;
         unsigned long totalswap;
         unsigned long freeswap;
         unsigned short procs;
         unsigned short pad;
         unsigned long totalhigh;
         unsigned long freehigh;
         unsigned int mem_unit;
         char _f[20-2*sizeof(long)-sizeof(int)];
 };
 # 49 "acct.c" 2
 
 
 # 1 "/usr/src/linux/include/linux/mm.h" 1
 
 
 
 # 1 "/usr/src/linux/include/linux/sched.h" 1
 
 
 
 # 1 "/usr/src/linux/include/asm/param.h" 1
 # 5 "/usr/src/linux/include/linux/sched.h" 2
 
 extern unsigned long event;
 
 # 1 "/usr/src/linux/include/linux/config.h" 1
 # 9 "/usr/src/linux/include/linux/sched.h" 2
 # 1 "/usr/src/linux/include/linux/binfmts.h" 1
 
 
 
 # 1 "/usr/src/linux/include/linux/ptrace.h" 1
 # 24 "/usr/src/linux/include/linux/ptrace.h"
 # 1 "/usr/src/linux/include/asm/ptrace.h" 1
 # 26 "/usr/src/linux/include/asm/ptrace.h"
 struct pt_regs {
         long ebx;
         long ecx;
         long edx;
         long esi;
         long edi;
         long ebp;
         long eax;
         int xds;
         int xes;
         long orig_eax;
         long eip;
         int xcs;
         long eflags;
         long esp;
         int xss;
 };
 # 60 "/usr/src/linux/include/asm/ptrace.h"
 extern void show_regs(struct pt_regs *);
 # 25 "/usr/src/linux/include/linux/ptrace.h" 2
 # 5 "/usr/src/linux/include/linux/binfmts.h" 2
 # 1 "/usr/src/linux/include/linux/capability.h" 1
 # 16 "/usr/src/linux/include/linux/capability.h"
 # 1 "/usr/src/linux/include/linux/types.h" 1
 # 17 "/usr/src/linux/include/linux/capability.h" 2
 # 1 "/usr/src/linux/include/linux/fs.h" 1
 # 9 "/usr/src/linux/include/linux/fs.h"
 # 1 "/usr/src/linux/include/linux/config.h" 1
 # 10 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/linkage.h" 1
 # 11 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/limits.h" 1
 # 12 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/wait.h" 1
 # 13 "/usr/src/linux/include/linux/wait.h"
 # 1 "/usr/src/linux/include/linux/kernel.h" 1
 # 14 "/usr/src/linux/include/linux/wait.h" 2
 # 1 "/usr/src/linux/include/linux/list.h" 1
 
 
 
 
 
 # 1 "/usr/src/linux/include/linux/prefetch.h" 1
 # 13 "/usr/src/linux/include/linux/prefetch.h"
 # 1 "/usr/src/linux/include/asm/processor.h" 1
 # 10 "/usr/src/linux/include/asm/processor.h"
 # 1 "/usr/src/linux/include/asm/vm86.h" 1
 # 68 "/usr/src/linux/include/asm/vm86.h"
 struct vm86_regs {
 
 
 
         long ebx;
         long ecx;
         long edx;
         long esi;
         long edi;
         long ebp;
         long eax;
         long __null_ds;
         long __null_es;
         long __null_fs;
         long __null_gs;
         long orig_eax;
         long eip;
         unsigned short cs, __csh;
         long eflags;
         long esp;
         unsigned short ss, __ssh;
 
 
 
         unsigned short es, __esh;
         unsigned short ds, __dsh;
         unsigned short fs, __fsh;
         unsigned short gs, __gsh;
 };
 
 struct revectored_struct {
         unsigned long __map[8];
 };
 
 struct vm86_struct {
         struct vm86_regs regs;
         unsigned long flags;
         unsigned long screen_bitmap;
         unsigned long cpu_type;
         struct revectored_struct int_revectored;
         struct revectored_struct int21_revectored;
 };
 
 
 
 
 
 
 struct vm86plus_info_struct {
         unsigned long force_return_for_pic:1;
         unsigned long vm86dbg_active:1;
         unsigned long vm86dbg_TFpendig:1;
         unsigned long unused:28;
         unsigned long is_vm86pus:1;
         unsigned char vm86dbg_intxxtab[32];
 };
 
 struct vm86plus_struct {
         struct vm86_regs regs;
         unsigned long flags;
         unsigned long screen_bitmap;
         unsigned long cpu_type;
         struct revectored_struct int_revectored;
         struct revectored_struct int21_revectored;
         struct vm86plus_info_struct vm86plus;
 };
 # 145 "/usr/src/linux/include/asm/vm86.h"
 struct kernel_vm86_regs {
 
 
 
         long ebx;
         long ecx;
         long edx;
         long esi;
         long edi;
         long ebp;
         long eax;
         long __null_ds;
         long __null_es;
         long orig_eax;
         long eip;
         unsigned short cs, __csh;
         long eflags;
         long esp;
         unsigned short ss, __ssh;
 
 
 
         unsigned short es, __esh;
         unsigned short ds, __dsh;
         unsigned short fs, __fsh;
         unsigned short gs, __gsh;
 };
 
 struct kernel_vm86_struct {
         struct kernel_vm86_regs regs;
 # 184 "/usr/src/linux/include/asm/vm86.h"
         unsigned long flags;
         unsigned long screen_bitmap;
         unsigned long cpu_type;
         struct revectored_struct int_revectored;
         struct revectored_struct int21_revectored;
         struct vm86plus_info_struct vm86plus;
         struct pt_regs *regs32;
 # 201 "/usr/src/linux/include/asm/vm86.h"
 };
 
 void handle_vm86_fault(struct kernel_vm86_regs *, long);
 int handle_vm86_trap(struct kernel_vm86_regs *, long, int);
 # 11 "/usr/src/linux/include/asm/processor.h" 2
 # 1 "/usr/src/linux/include/asm/math_emu.h" 1
 
 
 
 # 1 "/usr/src/linux/include/asm/sigcontext.h" 1
 # 18 "/usr/src/linux/include/asm/sigcontext.h"
 struct _fpreg {
         unsigned short significand[4];
         unsigned short exponent;
 };
 
 struct _fpxreg {
         unsigned short significand[4];
         unsigned short exponent;
         unsigned short padding[3];
 };
 
 struct _xmmreg {
         unsigned long element[4];
 };
 
 struct _fpstate {
 
         unsigned long cw;
         unsigned long sw;
         unsigned long tag;
         unsigned long ipoff;
         unsigned long cssel;
         unsigned long dataoff;
         unsigned long datasel;
         struct _fpreg _st[8];
         unsigned short status;
         unsigned short magic;
 
 
         unsigned long _fxsr_env[6];
         unsigned long mxcsr;
         unsigned long reserved;
         struct _fpxreg _fxsr_st[8];
         struct _xmmreg _xmm[8];
         unsigned long padding[56];
 };
 
 
 
 struct sigcontext {
         unsigned short gs, __gsh;
         unsigned short fs, __fsh;
         unsigned short es, __esh;
         unsigned short ds, __dsh;
         unsigned long edi;
         unsigned long esi;
         unsigned long ebp;
         unsigned long esp;
         unsigned long ebx;
         unsigned long edx;
         unsigned long ecx;
         unsigned long eax;
         unsigned long trapno;
         unsigned long err;
         unsigned long eip;
         unsigned short cs, __csh;
         unsigned long eflags;
         unsigned long esp_at_signal;
         unsigned short ss, __ssh;
         struct _fpstate * fpstate;
         unsigned long oldmask;
         unsigned long cr2;
 };
 # 5 "/usr/src/linux/include/asm/math_emu.h" 2
 
 int restore_i387_soft(void *s387, struct _fpstate *buf);
 int save_i387_soft(void *s387, struct _fpstate * buf);
 
 
 
 
 
 struct info {
         long ___orig_eip;
         long ___ebx;
         long ___ecx;
         long ___edx;
         long ___esi;
         long ___edi;
         long ___ebp;
         long ___eax;
         long ___ds;
         long ___es;
         long ___orig_eax;
         long ___eip;
         long ___cs;
         long ___eflags;
         long ___esp;
         long ___ss;
         long ___vm86_es;
         long ___vm86_ds;
         long ___vm86_fs;
         long ___vm86_gs;
 };
 # 12 "/usr/src/linux/include/asm/processor.h" 2
 # 1 "/usr/src/linux/include/asm/segment.h" 1
 # 13 "/usr/src/linux/include/asm/processor.h" 2
 # 1 "/usr/src/linux/include/asm/page.h" 1
 # 12 "/usr/src/linux/include/asm/page.h"
 # 1 "/usr/src/linux/include/linux/config.h" 1
 # 13 "/usr/src/linux/include/asm/page.h" 2
 # 45 "/usr/src/linux/include/asm/page.h"
 typedef struct { unsigned long pte_low; } pte_t;
 typedef struct { unsigned long pmd; } pmd_t;
 typedef struct { unsigned long pgd; } pgd_t;
 
 
 
 
 typedef struct { unsigned long pgprot; } pgprot_t;
 # 105 "/usr/src/linux/include/asm/page.h"
 static __inline__ int get_order(unsigned long size)
 {
         int order;
 
         size =3D (size-1) >> (12 -1);
         order =3D -1;
         do {
                 size >>=3D 1;
                 order++;
         } while (size);
         return order;
 }
 # 14 "/usr/src/linux/include/asm/processor.h" 2
 # 1 "/usr/src/linux/include/asm/types.h" 1
 # 15 "/usr/src/linux/include/asm/processor.h" 2
 # 1 "/usr/src/linux/include/asm/sigcontext.h" 1
 # 16 "/usr/src/linux/include/asm/processor.h" 2
 # 1 "/usr/src/linux/include/asm/cpufeature.h" 1
 # 17 "/usr/src/linux/include/asm/processor.h" 2
 # 1 "/usr/src/linux/include/linux/cache.h" 1
 
 
 
 # 1 "/usr/src/linux/include/linux/config.h" 1
 # 5 "/usr/src/linux/include/linux/cache.h" 2
 # 1 "/usr/src/linux/include/asm/cache.h" 1
 
 
 
 
 
 
 # 1 "/usr/src/linux/include/linux/config.h" 1
 # 8 "/usr/src/linux/include/asm/cache.h" 2
 # 6 "/usr/src/linux/include/linux/cache.h" 2
 # 18 "/usr/src/linux/include/asm/processor.h" 2
 # 1 "/usr/src/linux/include/linux/config.h" 1
 # 19 "/usr/src/linux/include/asm/processor.h" 2
 # 1 "/usr/src/linux/include/linux/threads.h" 1
 
 
 
 # 1 "/usr/src/linux/include/linux/config.h" 1
 # 5 "/usr/src/linux/include/linux/threads.h" 2
 # 20 "/usr/src/linux/include/asm/processor.h" 2
 # 33 "/usr/src/linux/include/asm/processor.h"
 struct cpuinfo_x86 {
         __u8 x86;
         __u8 x86_vendor;
         __u8 x86_model;
         __u8 x86_mask;
         char wp_works_ok;
         char hlt_works_ok;
         char hard_math;
         char rfu;
         int cpuid_level;
         __u32 x86_capability[4];
         char x86_vendor_id[16];
         char x86_model_id[64];
         int x86_cache_size;
 
         int fdiv_bug;
         int f00f_bug;
         int coma_bug;
         unsigned long loops_per_jiffy;
         unsigned long *pgd_quick;
         unsigned long *pmd_quick;
         unsigned long *pte_quick;
         unsigned long pgtable_cache_sz;
 } __attribute__((__aligned__((1 << ((5))))));
 # 72 "/usr/src/linux/include/asm/processor.h"
 extern struct cpuinfo_x86 boot_cpu_data;
 extern struct tss_struct init_tss[1];
 # 94 "/usr/src/linux/include/asm/processor.h"
 extern char ignore_irq13;
 
 extern void identify_cpu(struct cpuinfo_x86 *);
 extern void print_cpu_info(struct cpuinfo_x86 *);
 extern void dodgy_tsc(void);
 # 124 "/usr/src/linux/include/asm/processor.h"
 static inline void cpuid(int op, int *eax, int *ebx, int *ecx, int *edx)
 {
         __asm__("cpuid"
                 : "=3Da" (*eax),
                   "=3Db" (*ebx),
                   "=3Dc" (*ecx),
                   "=3Dd" (*edx)
                 : "0" (op));
 }
 
 
 
 
 static inline unsigned int cpuid_eax(unsigned int op)
 {
         unsigned int eax;
 
         __asm__("cpuid"
                 : "=3Da" (eax)
                 : "0" (op)
                 : "bx", "cx", "dx");
         return eax;
 }
 static inline unsigned int cpuid_ebx(unsigned int op)
 {
         unsigned int eax, ebx;
 
         __asm__("cpuid"
                 : "=3Da" (eax), "=3Db" (ebx)
                 : "0" (op)
                 : "cx", "dx" );
         return ebx;
 }
 static inline unsigned int cpuid_ecx(unsigned int op)
 {
         unsigned int eax, ecx;
 
         __asm__("cpuid"
                 : "=3Da" (eax), "=3Dc" (ecx)
                 : "0" (op)
                 : "bx", "dx" );
         return ecx;
 }
 static inline unsigned int cpuid_edx(unsigned int op)
 {
         unsigned int eax, edx;
 
         __asm__("cpuid"
                 : "=3Da" (eax), "=3Dd" (edx)
                 : "0" (op)
                 : "bx", "cx");
         return edx;
 }
 # 199 "/usr/src/linux/include/asm/processor.h"
 extern unsigned long mmu_cr4_features;
 
 static inline void set_in_cr4 (unsigned long mask)
 {
         mmu_cr4_features |=3D mask;
         __asm__("movl %%cr4,%%eax\n\t"
                 "orl %0,%%eax\n\t"
                 "movl %%eax,%%cr4\n"
                 : : "irg" (mask)
                 :"ax");
 }
 
 static inline void clear_in_cr4 (unsigned long mask)
 {
         mmu_cr4_features &=3D ~mask;
         __asm__("movl %%cr4,%%eax\n\t"
                 "andl %0,%%eax\n\t"
                 "movl %%eax,%%cr4\n"
                 : : "irg" (~mask)
                 :"ax");
 }
 # 256 "/usr/src/linux/include/asm/processor.h"
 extern int MCA_bus;
 
 
 
 extern unsigned int machine_id;
 extern unsigned int machine_submodel_id;
 extern unsigned int BIOS_revision;
 extern unsigned int mca_pentium_flag;
 # 282 "/usr/src/linux/include/asm/processor.h"
 struct i387_fsave_struct {
         long cwd;
         long swd;
         long twd;
         long fip;
         long fcs;
         long foo;
         long fos;
         long st_space[20];
         long status;
 };
 
 struct i387_fxsave_struct {
         unsigned short cwd;
         unsigned short swd;
         unsigned short twd;
         unsigned short fop;
         long fip;
         long fcs;
         long foo;
         long fos;
         long mxcsr;
         long reserved;
         long st_space[32];
         long xmm_space[32];
         long padding[56];
 } __attribute__ ((aligned (16)));
 
 struct i387_soft_struct {
         long cwd;
         long swd;
         long twd;
         long fip;
         long fcs;
         long foo;
         long fos;
         long st_space[20];
         unsigned char ftop, changed, lookahead, no_update, rm, alimit;
         struct info *info;
         unsigned long entry_eip;
 };
 
 union i387_union {
         struct i387_fsave_struct fsave;
         struct i387_fxsave_struct fxsave;
         struct i387_soft_struct soft;
 };
 
 typedef struct {
         unsigned long seg;
 } mm_segment_t;
 
 struct tss_struct {
         unsigned short back_link,__blh;
         unsigned long esp0;
         unsigned short ss0,__ss0h;
         unsigned long esp1;
         unsigned short ss1,__ss1h;
         unsigned long esp2;
         unsigned short ss2,__ss2h;
         unsigned long __cr3;
         unsigned long eip;
         unsigned long eflags;
         unsigned long eax,ecx,edx,ebx;
         unsigned long esp;
         unsigned long ebp;
         unsigned long esi;
         unsigned long edi;
         unsigned short es, __esh;
         unsigned short cs, __csh;
         unsigned short ss, __ssh;
         unsigned short ds, __dsh;
         unsigned short fs, __fsh;
         unsigned short gs, __gsh;
         unsigned short ldt, __ldth;
         unsigned short trace, bitmap;
         unsigned long io_bitmap[32 +1];
 
 
 
         unsigned long __cacheline_filler[5];
 };
 
 struct thread_struct {
         unsigned long esp0;
         unsigned long eip;
         unsigned long esp;
         unsigned long fs;
         unsigned long gs;
 
         unsigned long debugreg[8];
 
         unsigned long cr2, trap_no, error_code;
 
         union i387_union i387;
 
         struct vm86_struct * vm86_info;
         unsigned long screen_bitmap;
         unsigned long v86flags, v86mask, v86mode, saved_esp0;
 
         int ioperm;
         unsigned long io_bitmap[32 +1];
 };
 # 424 "/usr/src/linux/include/asm/processor.h"
 struct task_struct;
 struct mm_struct;
 
 
 extern void release_thread(struct task_struct *);
 
 
 
 extern int kernel_thread(int (*fn)(void *), void * arg, unsigned long fla=
 gs);
 
 
 extern void copy_segments(struct task_struct *p, struct mm_struct * mm);
 extern void release_segments(struct mm_struct * mm);
 
 
 
 
 static inline unsigned long thread_saved_pc(struct thread_struct *t)
 {
         return ((unsigned long *)t->esp)[3];
 }
 
 unsigned long get_wchan(struct task_struct *p);
 # 458 "/usr/src/linux/include/asm/processor.h"
 struct microcode {
         unsigned int hdrver;
         unsigned int rev;
         unsigned int date;
         unsigned int sig;
         unsigned int cksum;
         unsigned int ldrver;
         unsigned int pf;
         unsigned int reserved[5];
         unsigned int bits[500];
 };
 
 
 
 
 
 static inline void rep_nop(void)
 {
         __asm__ __volatile__("rep;nop");
 }
 # 14 "/usr/src/linux/include/linux/prefetch.h" 2
 # 1 "/usr/src/linux/include/asm/cache.h" 1
 # 15 "/usr/src/linux/include/linux/prefetch.h" 2
 # 43 "/usr/src/linux/include/linux/prefetch.h"
 static inline void prefetch(const void *x) {;}
 
 
 
 
 static inline void prefetchw(const void *x) {;}
 # 7 "/usr/src/linux/include/linux/list.h" 2
 # 18 "/usr/src/linux/include/linux/list.h"
 struct list_head {
         struct list_head *next, *prev;
 };
 # 37 "/usr/src/linux/include/linux/list.h"
 static __inline__ void __list_add(struct list_head * new,
         struct list_head * prev,
         struct list_head * next)
 {
         next->prev =3D new;
         new->next =3D next;
         new->prev =3D prev;
         prev->next =3D new;
 }
 # 55 "/usr/src/linux/include/linux/list.h"
 static __inline__ void list_add(struct list_head *new, struct list_head *=
 head)
 {
         __list_add(new, head, head->next);
 }
 # 68 "/usr/src/linux/include/linux/list.h"
 static __inline__ void list_add_tail(struct list_head *new, struct list_h=
 ead *head)
 {
         __list_add(new, head->prev, head);
 }
 # 80 "/usr/src/linux/include/linux/list.h"
 static __inline__ void __list_del(struct list_head * prev,
                                   struct list_head * next)
 {
         next->prev =3D prev;
         prev->next =3D next;
 }
 
 
 
 
 
 
 static __inline__ void list_del(struct list_head *entry)
 {
         __list_del(entry->prev, entry->next);
         entry->next =3D entry->prev =3D 0;
 }
 
 
 
 
 
 static __inline__ void list_del_init(struct list_head *entry)
 {
         __list_del(entry->prev, entry->next);
         do { (entry)->next =3D (entry); (entry)->prev =3D (entry); } whil=
 e (0);
 }
 
 
 
 
 
 static __inline__ int list_empty(struct list_head *head)
 {
         return head->next =3D=3D head;
 }
 
 
 
 
 
 
 static __inline__ void list_splice(struct list_head *list, struct list_he=
 ad *head)
 {
         struct list_head *first =3D list->next;
 
         if (first !=3D list) {
                 struct list_head *last =3D list->prev;
                 struct list_head *at =3D head->next;
 
                 first->prev =3D head;
                 head->next =3D first;
 
                 last->next =3D at;
                 at->prev =3D last;
         }
 }
 # 15 "/usr/src/linux/include/linux/wait.h" 2
 # 1 "/usr/src/linux/include/linux/stddef.h" 1
 # 16 "/usr/src/linux/include/linux/wait.h" 2
 # 1 "/usr/src/linux/include/linux/spinlock.h" 1
 
 
 
 # 1 "/usr/src/linux/include/linux/config.h" 1
 # 5 "/usr/src/linux/include/linux/spinlock.h" 2
 # 52 "/usr/src/linux/include/linux/spinlock.h"
   typedef struct { } spinlock_t;
 # 115 "/usr/src/linux/include/linux/spinlock.h"
   typedef struct { } rwlock_t;
 # 17 "/usr/src/linux/include/linux/wait.h" 2
 # 1 "/usr/src/linux/include/linux/config.h" 1
 # 18 "/usr/src/linux/include/linux/wait.h" 2
 
 # 1 "/usr/src/linux/include/asm/page.h" 1
 # 20 "/usr/src/linux/include/linux/wait.h" 2
 # 1 "/usr/src/linux/include/asm/processor.h" 1
 # 21 "/usr/src/linux/include/linux/wait.h" 2
 # 31 "/usr/src/linux/include/linux/wait.h"
 struct __wait_queue {
         unsigned int flags;
 
         struct task_struct * task;
         struct list_head task_list;
 
 
 
 
 };
 typedef struct __wait_queue wait_queue_t;
 # 77 "/usr/src/linux/include/linux/wait.h"
 struct __wait_queue_head {
         spinlock_t lock;
         struct list_head task_list;
 
 
 
 
 };
 typedef struct __wait_queue_head wait_queue_head_t;
 # 155 "/usr/src/linux/include/linux/wait.h"
 static inline void init_waitqueue_head(wait_queue_head_t *q)
 {
 
 
 
 
         q->lock =3D (spinlock_t) { };
         do { (&q->task_list)->next =3D (&q->task_list); (&q->task_list)->=
 prev =3D (&q->task_list); } while (0);
 
 
 
 
 }
 
 static inline void init_waitqueue_entry(wait_queue_t *q, struct task_stru=
 ct *p)
 {
 
 
 
 
         q->flags =3D 0;
         q->task =3D p;
 
 
 
 }
 
 static inline int waitqueue_active(wait_queue_head_t *q)
 {
 
 
 
 
 
 
         return !list_empty(&q->task_list);
 }
 
 static inline void __add_wait_queue(wait_queue_head_t *head, wait_queue_t=
  *new)
 {
 # 203 "/usr/src/linux/include/linux/wait.h"
         list_add(&new->task_list, &head->task_list);
 }
 
 
 
 
 static inline void __add_wait_queue_tail(wait_queue_head_t *head,
                                                 wait_queue_t *new)
 {
 # 220 "/usr/src/linux/include/linux/wait.h"
         list_add_tail(&new->task_list, &head->task_list);
 }
 
 static inline void __remove_wait_queue(wait_queue_head_t *head,
                                                         wait_queue_t *old=
 )
 {
 
 
 
 
 
         list_del(&old->task_list);
 }
 # 13 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/types.h" 1
 # 14 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/vfs.h" 1
 
 
 
 # 1 "/usr/src/linux/include/asm/statfs.h" 1
 
 
 
 
 
 # 1 "/usr/src/linux/include/linux/types.h" 1
 # 7 "/usr/src/linux/include/asm/statfs.h" 2
 
 typedef __kernel_fsid_t fsid_t;
 
 
 
 struct statfs {
         long f_type;
         long f_bsize;
         long f_blocks;
         long f_bfree;
         long f_bavail;
         long f_files;
         long f_ffree;
         __kernel_fsid_t f_fsid;
         long f_namelen;
         long f_spare[6];
 };
 # 5 "/usr/src/linux/include/linux/vfs.h" 2
 # 15 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/net.h" 1
 # 21 "/usr/src/linux/include/linux/net.h"
 # 1 "/usr/src/linux/include/linux/config.h" 1
 # 22 "/usr/src/linux/include/linux/net.h" 2
 # 1 "/usr/src/linux/include/linux/socket.h" 1
 
 
 
 
 
 # 1 "/usr/src/linux/include/asm/socket.h" 1
 
 
 
 # 1 "/usr/src/linux/include/asm/sockios.h" 1
 # 5 "/usr/src/linux/include/asm/socket.h" 2
 # 7 "/usr/src/linux/include/linux/socket.h" 2
 # 1 "/usr/src/linux/include/linux/sockios.h" 1
 # 21 "/usr/src/linux/include/linux/sockios.h"
 # 1 "/usr/src/linux/include/asm/sockios.h" 1
 # 22 "/usr/src/linux/include/linux/sockios.h" 2
 # 8 "/usr/src/linux/include/linux/socket.h" 2
 # 1 "/usr/src/linux/include/linux/uio.h" 1
 
 
 
 # 1 "/usr/src/linux/include/linux/types.h" 1
 # 5 "/usr/src/linux/include/linux/uio.h" 2
 # 19 "/usr/src/linux/include/linux/uio.h"
 struct iovec
 {
         void *iov_base;
         __kernel_size_t iov_len;
 };
 # 9 "/usr/src/linux/include/linux/socket.h" 2
 # 1 "/usr/src/linux/include/linux/types.h" 1
 # 10 "/usr/src/linux/include/linux/socket.h" 2
 
 typedef unsigned short sa_family_t;
 
 
 
 
 
 struct sockaddr {
         sa_family_t sa_family;
         char sa_data[14];
 };
 
 struct linger {
         int l_onoff;
         int l_linger;
 };
 
 
 
 
 
 
 
 struct msghdr {
         void * msg_name;
         int msg_namelen;
         struct iovec * msg_iov;
         __kernel_size_t msg_iovlen;
         void * msg_control;
         __kernel_size_t msg_controllen;
         unsigned msg_flags;
 };
 
 
 
 
 
 
 
 struct cmsghdr {
         __kernel_size_t cmsg_len;
         int cmsg_level;
         int cmsg_type;
 };
 # 102 "/usr/src/linux/include/linux/socket.h"
 static inline struct cmsghdr * __cmsg_nxthdr(void *__ctl, __kernel_size_t=
  __size,
                                                struct cmsghdr *__cmsg)
 {
         struct cmsghdr * __ptr;
 
         __ptr =3D (struct cmsghdr*)(((unsigned char *) __cmsg) + ( ((__cm=
 sg->cmsg_len)+sizeof(long)-1) & ~(sizeof(long)-1) ));
         if ((unsigned long)((char*)(__ptr+1) - (char *) __ctl) > __size)
                 return (struct cmsghdr *)0;
 
         return __ptr;
 }
 
 static inline struct cmsghdr * cmsg_nxthdr (struct msghdr *__msg, struct =
 cmsghdr *__cmsg)
 {
         return __cmsg_nxthdr(__msg->msg_control, __msg->msg_controllen, _=
 _cmsg);
 }
 
 
 
 
 
 
 
 struct ucred {
         __u32 pid;
         __u32 uid;
         __u32 gid;
 };
 # 245 "/usr/src/linux/include/linux/socket.h"
 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 *addres=
 s, 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 *ule=
 n);
 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 *d=
 ata);
 # 23 "/usr/src/linux/include/linux/net.h" 2
 # 1 "/usr/src/linux/include/linux/wait.h" 1
 # 24 "/usr/src/linux/include/linux/net.h" 2
 
 struct poll_table_struct;
 # 49 "/usr/src/linux/include/linux/net.h"
 typedef enum {
   SS_FREE =3D 0,
   SS_UNCONNECTED,
   SS_CONNECTING,
   SS_CONNECTED,
   SS_DISCONNECTING
 } socket_state;
 # 65 "/usr/src/linux/include/linux/net.h"
 struct socket
 {
         socket_state state;
 
         unsigned long flags;
         struct proto_ops *ops;
         struct inode *inode;
         struct fasync_struct *fasync_list;
         struct file *file;
         struct sock *sk;
         wait_queue_head_t wait;
 
         short type;
         unsigned char passcred;
 };
 
 
 
 struct scm_cookie;
 struct vm_area_struct;
 struct page;
 
 struct proto_ops {
   int family;
 
   int (*release) (struct socket *sock);
   int (*bind) (struct socket *sock, struct sockaddr *umyaddr,
                          int sockaddr_len);
   int (*connect) (struct socket *sock, struct sockaddr *uservaddr,
                          int sockaddr_len, int flags);
   int (*socketpair) (struct socket *sock1, struct socket *sock2);
   int (*accept) (struct socket *sock, struct socket *newsock,
                          int flags);
   int (*getname) (struct socket *sock, struct sockaddr *uaddr,
                          int *usockaddr_len, int peer);
   unsigned int (*poll) (struct file *file, struct socket *sock, struct po=
 ll_table_struct *wait);
   int (*ioctl) (struct socket *sock, unsigned int cmd,
                          unsigned long arg);
   int (*listen) (struct socket *sock, int len);
   int (*shutdown) (struct socket *sock, int flags);
   int (*setsockopt) (struct socket *sock, int level, int optname,
                          char *optval, int optlen);
   int (*getsockopt) (struct socket *sock, int level, int optname,
                          char *optval, int *optlen);
   int (*sendmsg) (struct socket *sock, struct msghdr *m, int total_len, s=
 truct scm_cookie *scm);
   int (*recvmsg) (struct socket *sock, struct msghdr *m, int total_len, i=
 nt flags, struct scm_cookie *scm);
   int (*mmap) (struct file *file, struct socket *sock, struct vm_area_str=
 uct * vma);
   ssize_t (*sendpage) (struct socket *sock, struct page *page, int offset=
 , size_t size, int flags);
 };
 
 struct net_proto_family
 {
         int family;
         int (*create)(struct socket *sock, int protocol);
 
 
         short authentication;
         short encryption;
         short encrypt_net;
 };
 
 struct net_proto
 {
         const char *name;
         void (*init_func)(struct net_proto *);
 };
 
 extern int sock_wake_async(struct socket *sk, int how, int band);
 extern int sock_register(struct net_proto_family *fam);
 extern int sock_unregister(int family);
 extern struct socket *sock_alloc(void);
 extern int sock_create(int family, int type, int proto, struct socket **)=
 ;
 extern void sock_release(struct socket *);
 extern int sock_sendmsg(struct socket *, struct msghdr *m, int len);
 extern int sock_recvmsg(struct socket *, struct msghdr *m, int len, int f=
 lags);
 extern int sock_readv_writev(int type, struct inode * inode, struct file =
 * file,
                                   const struct iovec * iov, long count, l=
 ong size);
 
 extern int net_ratelimit(void);
 extern unsigned long net_random(void);
 extern void net_srandom(unsigned long);
 # 16 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/kdev_t.h" 1
 # 67 "/usr/src/linux/include/linux/kdev_t.h"
 typedef unsigned short kdev_t;
 # 76 "/usr/src/linux/include/linux/kdev_t.h"
 extern const char * kdevname(kdev_t);
 
 
 
 
 
 
 static inline unsigned int kdev_t_to_nr(kdev_t dev) {
         return (((unsigned int) ((dev) >> 8))<<8) | ((unsigned int) ((dev=
 ) & ((1U << 8) - 1)));
 }
 
 static inline kdev_t to_kdev_t(int dev)
 {
         int major, minor;
 # 98 "/usr/src/linux/include/linux/kdev_t.h"
         major =3D (dev >> 8);
         minor =3D (dev & 0xff);
 
         return (((major) << 8) | (minor));
 }
 # 17 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/ioctl.h" 1
 
 
 
 # 1 "/usr/src/linux/include/asm/ioctl.h" 1
 # 5 "/usr/src/linux/include/linux/ioctl.h" 2
 # 18 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/list.h" 1
 # 19 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/dcache.h" 1
 
 
 
 
 
 # 1 "/usr/src/linux/include/asm/atomic.h" 1
 
 
 
 # 1 "/usr/src/linux/include/linux/config.h" 1
 # 5 "/usr/src/linux/include/asm/atomic.h" 2
 # 22 "/usr/src/linux/include/asm/atomic.h"
 typedef struct { volatile int counter; } atomic_t;
 # 53 "/usr/src/linux/include/asm/atomic.h"
 static __inline__ void atomic_add(int i, atomic_t *v)
 {
         __asm__ __volatile__(
                 "" "addl %1,%0"
                 :"=3Dm" (v->counter)
                 :"ir" (i), "m" (v->counter));
 }
 # 69 "/usr/src/linux/include/asm/atomic.h"
 static __inline__ void atomic_sub(int i, atomic_t *v)
 {
         __asm__ __volatile__(
                 "" "subl %1,%0"
                 :"=3Dm" (v->counter)
                 :"ir" (i), "m" (v->counter));
 }
 # 87 "/usr/src/linux/include/asm/atomic.h"
 static __inline__ int atomic_sub_and_test(int i, atomic_t *v)
 {
         unsigned char c;
 
         __asm__ __volatile__(
                 "" "subl %2,%0; sete %1"
                 :"=3Dm" (v->counter), "=3Dqm" (c)
                 :"ir" (i), "m" (v->counter) : "memory");
         return c;
 }
 # 105 "/usr/src/linux/include/asm/atomic.h"
 static __inline__ void atomic_inc(atomic_t *v)
 {
         __asm__ __volatile__(
                 "" "incl %0"
                 :"=3Dm" (v->counter)
                 :"m" (v->counter));
 }
 # 120 "/usr/src/linux/include/asm/atomic.h"
 static __inline__ void atomic_dec(atomic_t *v)
 {
         __asm__ __volatile__(
                 "" "decl %0"
                 :"=3Dm" (v->counter)
                 :"m" (v->counter));
 }
 # 137 "/usr/src/linux/include/asm/atomic.h"
 static __inline__ int atomic_dec_and_test(atomic_t *v)
 {
         unsigned char c;
 
         __asm__ __volatile__(
                 "" "decl %0; sete %1"
                 :"=3Dm" (v->counter), "=3Dqm" (c)
                 :"m" (v->counter) : "memory");
         return c !=3D 0;
 }
 # 157 "/usr/src/linux/include/asm/atomic.h"
 static __inline__ int atomic_inc_and_test(atomic_t *v)
 {
         unsigned char c;
 
         __asm__ __volatile__(
                 "" "incl %0; sete %1"
                 :"=3Dm" (v->counter), "=3Dqm" (c)
                 :"m" (v->counter) : "memory");
         return c !=3D 0;
 }
 # 178 "/usr/src/linux/include/asm/atomic.h"
 static __inline__ int atomic_add_negative(int i, atomic_t *v)
 {
         unsigned char c;
 
         __asm__ __volatile__(
                 "" "addl %2,%0; sets %1"
                 :"=3Dm" (v->counter), "=3Dqm" (c)
                 :"ir" (i), "m" (v->counter) : "memory");
         return c;
 }
 # 7 "/usr/src/linux/include/linux/dcache.h" 2
 # 1 "/usr/src/linux/include/linux/mount.h" 1
 # 19 "/usr/src/linux/include/linux/mount.h"
 struct vfsmount
 {
         struct list_head mnt_hash;
         struct vfsmount *mnt_parent;
         struct dentry *mnt_mountpoint;
         struct dentry *mnt_root;
         struct super_block *mnt_sb;
         struct list_head mnt_mounts;
         struct list_head mnt_child;
         atomic_t mnt_count;
         int mnt_flags;
         char *mnt_devname;
         struct list_head mnt_list;
         uid_t mnt_owner;
 };
 
 static inline struct vfsmount *mntget(struct vfsmount *mnt)
 {
         if (mnt)
                 atomic_inc(&mnt->mnt_count);
         return mnt;
 }
 
 extern void __mntput(struct vfsmount *mnt);
 
 static inline void mntput(struct vfsmount *mnt)
 {
         if (mnt) {
                 if (atomic_dec_and_test(&mnt->mnt_count))
                         __mntput(mnt);
         }
 }
 # 8 "/usr/src/linux/include/linux/dcache.h" 2
 # 24 "/usr/src/linux/include/linux/dcache.h"
 struct qstr {
         const unsigned char * name;
         unsigned int len;
         unsigned int hash;
 };
 
 struct dentry_stat_t {
         int nr_dentry;
         int nr_unused;
         int age_limit;
         int want_pages;
         int dummy[2];
 };
 extern struct dentry_stat_t dentry_stat;
 
 
 
 
 
 
 static __inline__ unsigned long partial_name_hash(unsigned long c, unsign=
 ed long prevhash)
 {
         return (prevhash + (c << 4) + (c >> 4)) * 11;
 }
 
 
 static __inline__ unsigned long end_name_hash(unsigned long hash)
 {
         return (unsigned int) hash;
 }
 
 
 static __inline__ unsigned int full_name_hash(const unsigned char * name,=
  unsigned int len)
 {
         unsigned long hash =3D 0;
         while (len--)
                 hash =3D partial_name_hash(*name++, hash);
         return end_name_hash(hash);
 }
 
 
 
 struct dentry {
         atomic_t d_count;
         unsigned int d_flags;
         struct inode * d_inode;
         struct dentry * d_parent;
         struct list_head d_hash;
         struct list_head d_lru;
         struct list_head d_child;
         struct list_head d_subdirs;
         struct list_head d_alias;
         int d_mounted;
         struct qstr d_name;
         unsigned long d_time;
         struct dentry_operations *d_op;
         struct super_block * d_sb;
         unsigned long d_vfs_flags;
         void * d_fsdata;
         unsigned char d_iname[16];
 };
 
 struct dentry_operations {
         int (*d_revalidate)(struct dentry *, int);
         int (*d_hash) (struct dentry *, struct qstr *);
         int (*d_compare) (struct dentry *, struct qstr *, struct qstr *);=
 
         int (*d_delete)(struct dentry *);
         void (*d_release)(struct dentry *);
         void (*d_iput)(struct dentry *, struct inode *);
 };
 # 127 "/usr/src/linux/include/linux/dcache.h"
 extern spinlock_t dcache_lock;
 # 146 "/usr/src/linux/include/linux/dcache.h"
 static __inline__ void d_drop(struct dentry * dentry)
 {
         (void)(&dcache_lock);
         list_del(&dentry->d_hash);
         do { (&dentry->d_hash)->next =3D (&dentry->d_hash); (&dentry->d_h=
 ash)->prev =3D (&dentry->d_hash); } while (0);
         do { } while(0);
 }
 
 static __inline__ int dname_external(struct dentry *d)
 {
         return d->d_name.name !=3D d->d_iname;
 }
 
 
 
 
 extern void d_instantiate(struct dentry *, struct inode *);
 extern void d_delete(struct dentry *);
 
 
 extern struct dentry * d_alloc(struct dentry *, const struct qstr *);
 extern void shrink_dcache_sb(struct super_block *);
 extern void shrink_dcache_parent(struct dentry *);
 extern int d_invalidate(struct dentry *);
 
 
 struct zone_struct;
 
 extern int shrink_dcache_memory(int, unsigned int);
 extern void prune_dcache(int);
 
 
 extern int shrink_icache_memory(int, int);
 extern void prune_icache(int);
 
 
 extern struct dentry * d_alloc_root(struct inode *);
 
 
 extern void d_genocide(struct dentry *);
 
 extern struct dentry *d_find_alias(struct inode *);
 extern void d_prune_aliases(struct inode *);
 
 
 extern int have_submounts(struct dentry *);
 
 
 
 
 extern void d_rehash(struct dentry *);
 # 207 "/usr/src/linux/include/linux/dcache.h"
 static __inline__ void d_add(struct dentry * entry, struct inode * inode)=
 
 {
         d_instantiate(entry, inode);
         d_rehash(entry);
 }
 
 
 extern void d_move(struct dentry *, struct dentry *);
 
 
 extern struct dentry * d_lookup(struct dentry *, struct qstr *);
 
 
 extern int d_validate(struct dentry *, struct dentry *);
 
 extern char * __d_path(struct dentry *, struct vfsmount *, struct dentry =
 *,
         struct vfsmount *, char *, int);
 # 240 "/usr/src/linux/include/linux/dcache.h"
 static __inline__ struct dentry * dget(struct dentry *dentry)
 {
         if (dentry) {
                 if (!((&dentry->d_count)->counter))
                         __asm__ __volatile__(".byte 0x0f,0x0b");
                 atomic_inc(&dentry->d_count);
         }
         return dentry;
 }
 
 extern struct dentry * dget_locked(struct dentry *);
 # 259 "/usr/src/linux/include/linux/dcache.h"
 static __inline__ int d_unhashed(struct dentry *dentry)
 {
         return list_empty(&dentry->d_hash);
 }
 
 extern void dput(struct dentry *);
 
 static __inline__ int d_mountpoint(struct dentry *dentry)
 {
         return dentry->d_mounted;
 }
 
 extern struct vfsmount *lookup_mnt(struct vfsmount *, struct dentry *);
 # 20 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/stat.h" 1
 
 
 
 
 
 # 1 "/usr/src/linux/include/asm/stat.h" 1
 
 
 
 struct __old_kernel_stat {
         unsigned short st_dev;
         unsigned short st_ino;
         unsigned short st_mode;
         unsigned short st_nlink;
         unsigned short st_uid;
         unsigned short st_gid;
         unsigned short st_rdev;
         unsigned long st_size;
         unsigned long st_atime;
         unsigned long st_mtime;
         unsigned long st_ctime;
 };
 
 struct stat {
         unsigned short st_dev;
         unsigned short __pad1;
         unsigned long st_ino;
         unsigned short st_mode;
         unsigned short st_nlink;
         unsigned short st_uid;
         unsigned short st_gid;
         unsigned short st_rdev;
         unsigned short __pad2;
         unsigned long st_size;
         unsigned long st_blksize;
         unsigned long st_blocks;
         unsigned long st_atime;
         unsigned long __unused1;
         unsigned long st_mtime;
         unsigned long __unused2;
         unsigned long st_ctime;
         unsigned long __unused3;
         unsigned long __unused4;
         unsigned long __unused5;
 };
 
 
 
 
 struct stat64 {
         unsigned short st_dev;
         unsigned char __pad0[10];
 
 
         unsigned long __st_ino;
 
         unsigned int st_mode;
         unsigned int st_nlink;
 
         unsigned long st_uid;
         unsigned long st_gid;
 
         unsigned short st_rdev;
         unsigned char __pad3[10];
 
         long long st_size;
         unsigned long st_blksize;
 
         unsigned long st_blocks;
         unsigned long __pad4;
 
         unsigned long st_atime;
         unsigned long __pad5;
 
         unsigned long st_mtime;
         unsigned long __pad6;
 
         unsigned long st_ctime;
         unsigned long __pad7;
 
         unsigned long long st_ino;
 };
 # 7 "/usr/src/linux/include/linux/stat.h" 2
 # 21 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/cache.h" 1
 # 22 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/stddef.h" 1
 # 23 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/string.h" 1
 
 
 
 
 
 
 
 # 1 "/usr/src/linux/include/linux/types.h" 1
 # 9 "/usr/src/linux/include/linux/string.h" 2
 # 1 "/usr/src/linux/include/linux/stddef.h" 1
 # 10 "/usr/src/linux/include/linux/string.h" 2
 
 
 
 
 
 extern char * ___strtok;
 extern char * strpbrk(const char *,const char *);
 extern char * strtok(char *,const char *);
 extern char * strsep(char **,const char *);
 extern __kernel_size_t strspn(const char *,const char *);
 
 
 
 
 
 # 1 "/usr/src/linux/include/asm/string.h" 1
 
 
 
 
 # 1 "/usr/src/linux/include/linux/config.h" 1
 # 6 "/usr/src/linux/include/asm/string.h" 2
 # 33 "/usr/src/linux/include/asm/string.h"
 static inline char * strcpy(char * dest,const char *src)
 {
 int d0, d1, d2;
 __asm__ __volatile__(
         "1:\tlodsb\n\t"
         "stosb\n\t"
         "testb %%al,%%al\n\t"
         "jne 1b"
         : "=3D&S" (d0), "=3D&D" (d1), "=3D&a" (d2)
         :"0" (src),"1" (dest) : "memory");
 return dest;
 }
 
 
 static inline char * strncpy(char * dest,const char *src,size_t count)
 {
 int d0, d1, d2, d3;
 __asm__ __volatile__(
         "1:\tdecl %2\n\t"
         "js 2f\n\t"
         "lodsb\n\t"
         "stosb\n\t"
         "testb %%al,%%al\n\t"
         "jne 1b\n\t"
         "rep\n\t"
         "stosb\n"
         "2:"
         : "=3D&S" (d0), "=3D&D" (d1), "=3D&c" (d2), "=3D&a" (d3)
         :"0" (src),"1" (dest),"2" (count) : "memory");
 return dest;
 }
 
 
 static inline char * strcat(char * dest,const char * src)
 {
 int d0, d1, d2, d3;
 __asm__ __volatile__(
         "repne\n\t"
         "scasb\n\t"
         "decl %1\n"
         "1:\tlodsb\n\t"
         "stosb\n\t"
         "testb %%al,%%al\n\t"
         "jne 1b"
         : "=3D&S" (d0), "=3D&D" (d1), "=3D&a" (d2), "=3D&c" (d3)
         : "0" (src), "1" (dest), "2" (0), "3" (0xffffffff):"memory");
 return dest;
 }
 
 
 static inline char * strncat(char * dest,const char * src,size_t count)
 {
 int d0, d1, d2, d3;
 __asm__ __volatile__(
         "repne\n\t"
         "scasb\n\t"
         "decl %1\n\t"
         "movl %8,%3\n"
         "1:\tdecl %3\n\t"
         "js 2f\n\t"
         "lodsb\n\t"
         "stosb\n\t"
         "testb %%al,%%al\n\t"
         "jne 1b\n"
         "2:\txorl %2,%2\n\t"
         "stosb"
         : "=3D&S" (d0), "=3D&D" (d1), "=3D&a" (d2), "=3D&c" (d3)
         : "0" (src),"1" (dest),"2" (0),"3" (0xffffffff), "g" (count)
         : "memory");
 return dest;
 }
 
 
 static inline int strcmp(const char * cs,const char * ct)
 {
 int d0, d1;
 register int __res;
 __asm__ __volatile__(
         "1:\tlodsb\n\t"
         "scasb\n\t"
         "jne 2f\n\t"
         "testb %%al,%%al\n\t"
         "jne 1b\n\t"
         "xorl %%eax,%%eax\n\t"
         "jmp 3f\n"
         "2:\tsbbl %%eax,%%eax\n\t"
         "orb $1,%%al\n"
         "3:"
         :"=3Da" (__res), "=3D&S" (d0), "=3D&D" (d1)
                      :"1" (cs),"2" (ct));
 return __res;
 }
 
 
 static inline int strncmp(const char * cs,const char * ct,size_t count)
 {
 register int __res;
 int d0, d1, d2;
 __asm__ __volatile__(
         "1:\tdecl %3\n\t"
         "js 2f\n\t"
         "lodsb\n\t"
         "scasb\n\t"
         "jne 3f\n\t"
         "testb %%al,%%al\n\t"
         "jne 1b\n"
         "2:\txorl %%eax,%%eax\n\t"
         "jmp 4f\n"
         "3:\tsbbl %%eax,%%eax\n\t"
         "orb $1,%%al\n"
         "4:"
                      :"=3Da" (__res), "=3D&S" (d0), "=3D&D" (d1), "=3D&c"=
  (d2)
                      :"1" (cs),"2" (ct),"3" (count));
 return __res;
 }
 
 
 static inline char * strchr(const char * s, int c)
 {
 int d0;
 register char * __res;
 __asm__ __volatile__(
         "movb %%al,%%ah\n"
         "1:\tlodsb\n\t"
         "cmpb %%ah,%%al\n\t"
         "je 2f\n\t"
         "testb %%al,%%al\n\t"
         "jne 1b\n\t"
         "movl $1,%1\n"
         "2:\tmovl %1,%0\n\t"
         "decl %0"
         :"=3Da" (__res), "=3D&S" (d0) : "1" (s),"0" (c));
 return __res;
 }
 
 
 static inline char * strrchr(const char * s, int c)
 {
 int d0, d1;
 register char * __res;
 __asm__ __volatile__(
         "movb %%al,%%ah\n"
         "1:\tlodsb\n\t"
         "cmpb %%ah,%%al\n\t"
         "jne 2f\n\t"
         "leal -1(%%esi),%0\n"
         "2:\ttestb %%al,%%al\n\t"
         "jne 1b"
         :"=3Dg" (__res), "=3D&S" (d0), "=3D&a" (d1) :"0" (0),"1" (s),"2" =
 (c));
 return __res;
 }
 
 
 static inline size_t strlen(const char * s)
 {
 int d0;
 register int __res;
 __asm__ __volatile__(
         "repne\n\t"
         "scasb\n\t"
         "notl %0\n\t"
         "decl %0"
         :"=3Dc" (__res), "=3D&D" (d0) :"1" (s),"a" (0), "0" (0xffffffff))=
 ;
 return __res;
 }
 
 static inline void * __memcpy(void * to, const void * from, size_t n)
 {
 int d0, d1, d2;
 __asm__ __volatile__(
         "rep ; movsl\n\t"
         "testb $2,%b4\n\t"
         "je 1f\n\t"
         "movsw\n"
         "1:\ttestb $1,%b4\n\t"
         "je 2f\n\t"
         "movsb\n"
         "2:"
         : "=3D&c" (d0), "=3D&D" (d1), "=3D&S" (d2)
         :"0" (n/4), "q" (n),"1" ((long) to),"2" ((long) from)
         : "memory");
 return (to);
 }
 
 
 
 
 
 static inline void * __constant_memcpy(void * to, const void * from, size=
 _t n)
 {
         switch (n) {
                 case 0:
                         return to;
                 case 1:
                         *(unsigned char *)to =3D *(const unsigned char *)=
 from;
                         return to;
                 case 2:
                         *(unsigned short *)to =3D *(const unsigned short =
 *)from;
                         return to;
                 case 3:
                         *(unsigned short *)to =3D *(const unsigned short =
 *)from;
                         *(2+(unsigned char *)to) =3D *(2+(const unsigned =
 char *)from);
                         return to;
                 case 4:
                         *(unsigned long *)to =3D *(const unsigned long *)=
 from;
                         return to;
                 case 6:
                         *(unsigned long *)to =3D *(const unsigned long *)=
 from;
                         *(2+(unsigned short *)to) =3D *(2+(const unsigned=
  short *)from);
                         return to;
                 case 8:
                         *(unsigned long *)to =3D *(const unsigned long *)=
 from;
                         *(1+(unsigned long *)to) =3D *(1+(const unsigned =
 long *)from);
                         return to;
                 case 12:
                         *(unsigned long *)to =3D *(const unsigned long *)=
 from;
                         *(1+(unsigned long *)to) =3D *(1+(const unsigned =
 long *)from);
                         *(2+(unsigned long *)to) =3D *(2+(const unsigned =
 long *)from);
                         return to;
                 case 16:
                         *(unsigned long *)to =3D *(const unsigned long *)=
 from;
                         *(1+(unsigned long *)to) =3D *(1+(const unsigned =
 long *)from);
                         *(2+(unsigned long *)to) =3D *(2+(const unsigned =
 long *)from);
                         *(3+(unsigned long *)to) =3D *(3+(const unsigned =
 long *)from);
                         return to;
                 case 20:
                         *(unsigned long *)to =3D *(const unsigned long *)=
 from;
                         *(1+(unsigned long *)to) =3D *(1+(const unsigned =
 long *)from);
                         *(2+(unsigned long *)to) =3D *(2+(const unsigned =
 long *)from);
                         *(3+(unsigned long *)to) =3D *(3+(const unsigned =
 long *)from);
                         *(4+(unsigned long *)to) =3D *(4+(const unsigned =
 long *)from);
                         return to;
         }
 
 
 
 
 
 
 
 {
         int d0, d1, d2;
         switch (n % 4) {
                 case 0: __asm__ __volatile__( "rep ; movsl" "" : "=3D&c" =
 (d0), "=3D&D" (d1), "=3D&S" (d2) : "0" (n/4),"1" ((long) to),"2" ((long) =
 from) : "memory");; return to;
                 case 1: __asm__ __volatile__( "rep ; movsl" "\n\tmovsb" :=
  "=3D&c" (d0), "=3D&D" (d1), "=3D&S" (d2) : "0" (n/4),"1" ((long) to),"2"=
  ((long) from) : "memory");; return to;
                 case 2: __asm__ __volatile__( "rep ; movsl" "\n\tmovsw" :=
  "=3D&c" (d0), "=3D&D" (d1), "=3D&S" (d2) : "0" (n/4),"1" ((long) to),"2"=
  ((long) from) : "memory");; return to;
                 default: __asm__ __volatile__( "rep ; movsl" "\n\tmovsw\n=
 \tmovsb" : "=3D&c" (d0), "=3D&D" (d1), "=3D&S" (d2) : "0" (n/4),"1" ((lon=
 g) to),"2" ((long) from) : "memory");; return to;
         }
 }
 
 
 }
 # 335 "/usr/src/linux/include/asm/string.h"
 extern void __struct_cpy_bug (void);
 # 345 "/usr/src/linux/include/asm/string.h"
 static inline void * memmove(void * dest,const void * src, size_t n)
 {
 int d0, d1, d2;
 if (dest<src)
 __asm__ __volatile__(
         "rep\n\t"
         "movsb"
         : "=3D&c" (d0), "=3D&S" (d1), "=3D&D" (d2)
         :"0" (n),"1" (src),"2" (dest)
         : "memory");
 else
 __asm__ __volatile__(
         "std\n\t"
         "rep\n\t"
         "movsb\n\t"
         "cld"
         : "=3D&c" (d0), "=3D&S" (d1), "=3D&D" (d2)
         :"0" (n),
          "1" (n-1+(const char *)src),
          "2" (n-1+(char *)dest)
         :"memory");
 return dest;
 }
 
 
 
 
 static inline void * memchr(const void * cs,int c,size_t count)
 {
 int d0;
 register void * __res;
 if (!count)
         return ((void *)0);
 __asm__ __volatile__(
         "repne\n\t"
         "scasb\n\t"
         "je 1f\n\t"
         "movl $1,%0\n"
         "1:\tdecl %0"
         :"=3DD" (__res), "=3D&c" (d0) : "a" (c),"0" (cs),"1" (count));
 return __res;
 }
 
 static inline void * __memset_generic(void * s, char c,size_t count)
 {
 int d0, d1;
 __asm__ __volatile__(
         "rep\n\t"
         "stosb"
         : "=3D&c" (d0), "=3D&D" (d1)
         :"a" (c),"1" (s),"0" (count)
         :"memory");
 return s;
 }
 # 408 "/usr/src/linux/include/asm/string.h"
 static inline void * __constant_c_memset(void * s, unsigned long c, size_=
 t count)
 {
 int d0, d1;
 __asm__ __volatile__(
         "rep ; stosl\n\t"
         "testb $2,%b3\n\t"
         "je 1f\n\t"
         "stosw\n"
         "1:\ttestb $1,%b3\n\t"
         "je 2f\n\t"
         "stosb\n"
         "2:"
         : "=3D&c" (d0), "=3D&D" (d1)
         :"a" (c), "q" (count), "0" (count/4), "1" ((long) s)
         :"memory");
 return (s);
 }
 
 
 
 static inline size_t strnlen(const char * s, size_t count)
 {
 int d0;
 register int __res;
 __asm__ __volatile__(
         "movl %2,%0\n\t"
         "jmp 2f\n"
         "1:\tcmpb $0,(%0)\n\t"
         "je 3f\n\t"
         "incl %0\n"
         "2:\tdecl %1\n\t"
         "cmpl $-1,%1\n\t"
         "jne 1b\n"
         "3:\tsubl %2,%0"
         :"=3Da" (__res), "=3D&d" (d0)
         :"c" (s),"1" (count));
 return __res;
 }
 
 
 
 
 extern char *strstr(const char *cs, const char *ct);
 
 
 
 
 
 static inline void * __constant_c_and_count_memset(void * s, unsigned lon=
 g pattern, size_t count)
 {
         switch (count) {
                 case 0:
                         return s;
                 case 1:
                         *(unsigned char *)s =3D pattern;
                         return s;
                 case 2:
                         *(unsigned short *)s =3D pattern;
                         return s;
                 case 3:
                         *(unsigned short *)s =3D pattern;
                         *(2+(unsigned char *)s) =3D pattern;
                         return s;
                 case 4:
                         *(unsigned long *)s =3D pattern;
                         return s;
         }
 
 
 
 
 
 
 
 {
         int d0, d1;
         switch (count % 4) {
                 case 0: __asm__ __volatile__( "rep ; stosl" "" : "=3D&c" =
 (d0), "=3D&D" (d1) : "a" (pattern),"0" (count/4),"1" ((long) s) : "memory=
 "); return s;
                 case 1: __asm__ __volatile__( "rep ; stosl" "\n\tstosb" :=
  "=3D&c" (d0), "=3D&D" (d1) : "a" (pattern),"0" (count/4),"1" ((long) s) =
 : "memory"); return s;
                 case 2: __asm__ __volatile__( "rep ; stosl" "\n\tstosw" :=
  "=3D&c" (d0), "=3D&D" (d1) : "a" (pattern),"0" (count/4),"1" ((long) s) =
 : "memory"); return s;
                 default: __asm__ __volatile__( "rep ; stosl" "\n\tstosw\n=
 \tstosb" : "=3D&c" (d0), "=3D&D" (d1) : "a" (pattern),"0" (count/4),"1" (=
 (long) s) : "memory"); return s;
         }
 }
 
 
 }
 # 515 "/usr/src/linux/include/asm/string.h"
 static inline void * memscan(void * addr, int c, size_t size)
 {
         if (!size)
                 return addr;
         __asm__("repnz; scasb\n\t"
                 "jnz 1f\n\t"
                 "dec %%edi\n"
                 "1:"
                 : "=3DD" (addr), "=3Dc" (size)
                 : "0" (addr), "1" (size), "a" (c));
         return addr;
 }
 # 26 "/usr/src/linux/include/linux/string.h" 2
 # 46 "/usr/src/linux/include/linux/string.h"
 extern int strnicmp(const char *, const char *, __kernel_size_t);
 # 77 "/usr/src/linux/include/linux/string.h"
 extern int __builtin_memcmp(const void *,const void *,__kernel_size_t);
 # 24 "/usr/src/linux/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux/include/asm/atomic.h" 1
 # 26 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/asm/bitops.h" 1
 
 
 
 
 
 
 
 # 1 "/usr/src/linux/include/linux/config.h" 1
 # 9 "/usr/src/linux/include/asm/bitops.h" 2
 # 36 "/usr/src/linux/include/asm/bitops.h"
 static __inline__ void set_bit(int nr, volatile void * addr)
 {
         __asm__ __volatile__( ""
                 "btsl %1,%0"
                 :"=3Dm" ((*(volatile long *) addr))
                 :"Ir" (nr));
 }
 # 53 "/usr/src/linux/include/asm/bitops.h"
 static __inline__ void __set_bit(int nr, volatile void * addr)
 {
         __asm__(
                 "btsl %1,%0"
                 :"=3Dm" ((*(volatile long *) addr))
                 :"Ir" (nr));
 }
 # 71 "/usr/src/linux/include/asm/bitops.h"
 static __inline__ void clear_bit(int nr, volatile void * addr)
 {
         __asm__ __volatile__( ""
                 "btrl %1,%0"
                 :"=3Dm" ((*(volatile long *) addr))
                 :"Ir" (nr));
 }
 # 90 "/usr/src/linux/include/asm/bitops.h"
 static __inline__ void __change_bit(int nr, volatile void * addr)
 {
         __asm__ __volatile__(
                 "btcl %1,%0"
                 :"=3Dm" ((*(volatile long *) addr))
                 :"Ir" (nr));
 }
 # 107 "/usr/src/linux/include/asm/bitops.h"
 static __inline__ void change_bit(int nr, volatile void * addr)
 {
         __asm__ __volatile__( ""
                 "btcl %1,%0"
                 :"=3Dm" ((*(volatile long *) addr))
                 :"Ir" (nr));
 }
 # 123 "/usr/src/linux/include/asm/bitops.h"
 static __inline__ int test_and_set_bit(int nr, volatile void * addr)
 {
         int oldbit;
 
         __asm__ __volatile__( ""
                 "btsl %2,%1\n\tsbbl %0,%0"
                 :"=3Dr" (oldbit),"=3Dm" ((*(volatile long *) addr))
                 :"Ir" (nr) : "memory");
         return oldbit;
 }
 # 143 "/usr/src/linux/include/asm/bitops.h"
 static __inline__ int __test_and_set_bit(int nr, volatile void * addr)
 {
         int oldbit;
 
         __asm__(
                 "btsl %2,%1\n\tsbbl %0,%0"
                 :"=3Dr" (oldbit),"=3Dm" ((*(volatile long *) addr))
                 :"Ir" (nr));
         return oldbit;
 }
 # 162 "/usr/src/linux/include/asm/bitops.h"
 static __inline__ int test_and_clear_bit(int nr, volatile void * addr)
 {
         int oldbit;
 
         __asm__ __volatile__( ""
                 "btrl %2,%1\n\tsbbl %0,%0"
                 :"=3Dr" (oldbit),"=3Dm" ((*(volatile long *) addr))
                 :"Ir" (nr) : "memory");
         return oldbit;
 }
 # 182 "/usr/src/linux/include/asm/bitops.h"
 static __inline__ int __test_and_clear_bit(int nr, volatile void * addr)
 {
         int oldbit;
 
         __asm__(
                 "btrl %2,%1\n\tsbbl %0,%0"
                 :"=3Dr" (oldbit),"=3Dm" ((*(volatile long *) addr))
                 :"Ir" (nr));
         return oldbit;
 }
 
 
 static __inline__ int __test_and_change_bit(int nr, volatile void * addr)=
 
 {
         int oldbit;
 
         __asm__ __volatile__(
                 "btcl %2,%1\n\tsbbl %0,%0"
                 :"=3Dr" (oldbit),"=3Dm" ((*(volatile long *) addr))
                 :"Ir" (nr) : "memory");
         return oldbit;
 }
 # 213 "/usr/src/linux/include/asm/bitops.h"
 static __inline__ int test_and_change_bit(int nr, volatile void * addr)
 {
         int oldbit;
 
         __asm__ __volatile__( ""
                 "btcl %2,%1\n\tsbbl %0,%0"
                 :"=3Dr" (oldbit),"=3Dm" ((*(volatile long *) addr))
                 :"Ir" (nr) : "memory");
         return oldbit;
 }
 # 233 "/usr/src/linux/include/asm/bitops.h"
 static __inline__ int constant_test_bit(int nr, const volatile void * add=
 r)
 {
         return ((1UL << (nr & 31)) & (((const volatile unsigned int *) ad=
 dr)[nr >> 5])) !=3D 0;
 }
 
 static __inline__ int variable_test_bit(int nr, volatile void * addr)
 {
         int oldbit;
 
         __asm__ __volatile__(
                 "btl %2,%1\n\tsbbl %0,%0"
                 :"=3Dr" (oldbit)
                 :"m" ((*(volatile long *) addr)),"Ir" (nr));
         return oldbit;
 }
 # 262 "/usr/src/linux/include/asm/bitops.h"
 static __inline__ int find_first_zero_bit(void * addr, unsigned size)
 {
         int d0, d1, d2;
         int res;
 
         if (!size)
                 return 0;
 
         __asm__ __volatile__(
                 "movl $-1,%%eax\n\t"
                 "xorl %%edx,%%edx\n\t"
                 "repe; scasl\n\t"
                 "je 1f\n\t"
                 "xorl -4(%%edi),%%eax\n\t"
                 "subl $4,%%edi\n\t"
                 "bsfl %%eax,%%edx\n"
                 "1:\tsubl %%ebx,%%edi\n\t"
                 "shll $3,%%edi\n\t"
                 "addl %%edi,%%edx"
                 :"=3Dd" (res), "=3D&c" (d0), "=3D&D" (d1), "=3D&a" (d2)
                 :"1" ((size + 31) >> 5), "2" (addr), "b" (addr));
         return res;
 }
 
 
 
 
 
 
 
 static __inline__ int find_next_zero_bit (void * addr, int size, int offs=
 et)
 {
         unsigned long * p =3D ((unsigned long *) addr) + (offset >> 5);
         int set =3D 0, bit =3D offset & 31, res;
 
         if (bit) {
 
 
 
                 __asm__("bsfl %1,%0\n\t"
                         "jne 1f\n\t"
                         "movl $32, %0\n"
                         "1:"
                         : "=3Dr" (set)
                         : "r" (~(*p >> bit)));
                 if (set < (32 - bit))
                         return set + offset;
                 set =3D 32 - bit;
                 p++;
         }
 
 
 
         res =3D find_first_zero_bit (p, size - 32 * (p - (unsigned long *=
 ) addr));
         return (offset + set + res);
 }
 
 
 
 
 
 
 
 static __inline__ unsigned long ffz(unsigned long word)
 {
         __asm__("bsfl %1,%0"
                 :"=3Dr" (word)
                 :"r" (~word));
         return word;
 }
 # 343 "/usr/src/linux/include/asm/bitops.h"
 static __inline__ int ffs(int x)
 {
         int r;
 
         __asm__("bsfl %1,%0\n\t"
                 "jnz 1f\n\t"
                 "movl $-1,%0\n"
                 "1:" : "=3Dr" (r) : "g" (x));
         return r+1;
 }
 # 27 "/usr/src/linux/include/linux/fs.h" 2
 
 struct poll_table_struct;
 # 54 "/usr/src/linux/include/linux/fs.h"
 struct files_stat_struct {
         int nr_files;
         int nr_free_files;
         int max_files;
 };
 extern struct files_stat_struct files_stat;
 
 struct inodes_stat_t {
         int nr_inodes;
         int nr_unused;
         int dummy[5];
 };
 extern struct inodes_stat_t inodes_stat;
 
 extern int leases_enable, dir_notify_enable, lease_break_time;
 # 200 "/usr/src/linux/include/linux/fs.h"
 # 1 "/usr/src/linux/include/asm/semaphore.h" 1
 
 
 
 # 1 "/usr/src/linux/include/linux/linkage.h" 1
 # 5 "/usr/src/linux/include/asm/semaphore.h" 2
 # 39 "/usr/src/linux/include/asm/semaphore.h"
 # 1 "/usr/src/linux/include/asm/system.h" 1
 
 
 
 # 1 "/usr/src/linux/include/linux/config.h" 1
 # 5 "/usr/src/linux/include/asm/system.h" 2
 # 1 "/usr/src/linux/include/linux/kernel.h" 1
 # 6 "/usr/src/linux/include/asm/system.h" 2
 # 1 "/usr/src/linux/include/asm/segment.h" 1
 # 7 "/usr/src/linux/include/asm/system.h" 2
 # 1 "/usr/src/linux/include/linux/bitops.h" 1
 # 11 "/usr/src/linux/include/linux/bitops.h"
 static inline int generic_ffs(int x)
 {
         int r =3D 1;
 
         if (!x)
                 return 0;
         if (!(x & 0xffff)) {
                 x >>=3D 16;
                 r +=3D 16;
         }
         if (!(x & 0xff)) {
                 x >>=3D 8;
                 r +=3D 8;
         }
         if (!(x & 0xf)) {
                 x >>=3D 4;
                 r +=3D 4;
         }
         if (!(x & 3)) {
                 x >>=3D 2;
                 r +=3D 2;
         }
         if (!(x & 1)) {
                 x >>=3D 1;
                 r +=3D 1;
         }
         return r;
 }
 
 
 
 
 
 
 static inline unsigned int generic_hweight32(unsigned int w)
 {
         unsigned int res =3D (w & 0x55555555) + ((w >> 1) & 0x55555555);
         res =3D (res & 0x33333333) + ((res >> 2) & 0x33333333);
         res =3D (res & 0x0F0F0F0F) + ((res >> 4) & 0x0F0F0F0F);
         res =3D (res & 0x00FF00FF) + ((res >> 8) & 0x00FF00FF);
         return (res & 0x0000FFFF) + ((res >> 16) & 0x0000FFFF);
 }
 
 static inline unsigned int generic_hweight16(unsigned int w)
 {
         unsigned int res =3D (w & 0x5555) + ((w >> 1) & 0x5555);
         res =3D (res & 0x3333) + ((res >> 2) & 0x3333);
         res =3D (res & 0x0F0F) + ((res >> 4) & 0x0F0F);
         return (res & 0x00FF) + ((res >> 8) & 0x00FF);
 }
 
 static inline unsigned int generic_hweight8(unsigned int w)
 {
         unsigned int res =3D (w & 0x55) + ((w >> 1) & 0x55);
         res =3D (res & 0x33) + ((res >> 2) & 0x33);
         return (res & 0x0F) + ((res >> 4) & 0x0F);
 }
 
 # 1 "/usr/src/linux/include/asm/bitops.h" 1
 # 70 "/usr/src/linux/include/linux/bitops.h" 2
 # 8 "/usr/src/linux/include/asm/system.h" 2
 
 
 
 struct task_struct;
 extern void __switch_to(struct task_struct *prev, struct task_struct *nex=
 t) __attribute__((regparm(3)));
 # 63 "/usr/src/linux/include/asm/system.h"
 static inline unsigned long _get_base(char * addr)
 {
         unsigned long __base;
         __asm__("movb %3,%%dh\n\t"
                 "movb %2,%%dl\n\t"
                 "shll $16,%%edx\n\t"
                 "movw %1,%%dx"
                 :"=3D&d" (__base)
                 :"m" (*((addr)+2)),
                  "m" (*((addr)+4)),
                  "m" (*((addr)+7)));
         return __base;
 }
 # 130 "/usr/src/linux/include/asm/system.h"
 static inline unsigned long get_limit(unsigned long segment)
 {
         unsigned long __limit;
         __asm__("lsll %1,%0"
                 :"=3Dr" (__limit):"r" (segment));
         return __limit+1;
 }
 
 
 
 
 
 
 
 struct __xchg_dummy { unsigned long a[100]; };
 # 157 "/usr/src/linux/include/asm/system.h"
 static inline void __set_64bit (unsigned long long * ptr,
                 unsigned int low, unsigned int high)
 {
         __asm__ __volatile__ (
                 "\n1:\t"
                 "movl (%0), %%eax\n\t"
                 "movl 4(%0), %%edx\n\t"
                 "cmpxchg8b (%0)\n\t"
                 "jnz 1b"
                 :
                 : "D"(ptr),
                         "b"(low),
                         "c"(high)
                 : "ax","dx","memory");
 }
 
 static inline void __set_64bit_constant (unsigned long long *ptr,
                                                  unsigned long long value=
 )
 {
         __set_64bit(ptr,(unsigned int)(value), (unsigned int)((value)>>32=
 ULL));
 }
 
 
 
 static inline void __set_64bit_var (unsigned long long *ptr,
                          unsigned long long value)
 {
         __set_64bit(ptr,*(((unsigned int*)&(value))+0), *(((unsigned int*=
 )&(value))+1));
 }
 # 202 "/usr/src/linux/include/asm/system.h"
 static inline unsigned long __xchg(unsigned long x, volatile void * ptr, =
 int size)
 {
         switch (size) {
                 case 1:
                         __asm__ __volatile__("xchgb %b0,%1"
                                 :"=3Dq" (x)
                                 :"m" (*((struct __xchg_dummy *)(ptr))), "=
 0" (x)
                                 :"memory");
                         break;
                 case 2:
                         __asm__ __volatile__("xchgw %w0,%1"
                                 :"=3Dr" (x)
                                 :"m" (*((struct __xchg_dummy *)(ptr))), "=
 0" (x)
                                 :"memory");
                         break;
                 case 4:
                         __asm__ __volatile__("xchgl %0,%1"
                                 :"=3Dr" (x)
                                 :"m" (*((struct __xchg_dummy *)(ptr))), "=
 0" (x)
                                 :"memory");
                         break;
         }
         return x;
 }
 # 236 "/usr/src/linux/include/asm/system.h"
 static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long o=
 ld,
                                       unsigned long new, int size)
 {
         unsigned long prev;
         switch (size) {
         case 1:
                 __asm__ __volatile__("" "cmpxchgb %b1,%2"
                                      : "=3Da"(prev)
                                      : "q"(new), "m"(*((struct __xchg_dum=
 my *)(ptr))), "0"(old)
                                      : "memory");
                 return prev;
         case 2:
                 __asm__ __volatile__("" "cmpxchgw %w1,%2"
                                      : "=3Da"(prev)
                                      : "q"(new), "m"(*((struct __xchg_dum=
 my *)(ptr))), "0"(old)
                                      : "memory");
                 return prev;
         case 4:
                 __asm__ __volatile__("" "cmpxchgl %1,%2"
                                      : "=3Da"(prev)
                                      : "q"(new), "m"(*((struct __xchg_dum=
 my *)(ptr))), "0"(old)
                                      : "memory");
                 return prev;
         }
         return old;
 }
 # 340 "/usr/src/linux/include/asm/system.h"
 void disable_hlt(void);
 void enable_hlt(void);
 # 40 "/usr/src/linux/include/asm/semaphore.h" 2
 # 1 "/usr/src/linux/include/asm/atomic.h" 1
 # 41 "/usr/src/linux/include/asm/semaphore.h" 2
 # 1 "/usr/src/linux/include/linux/wait.h" 1
 # 42 "/usr/src/linux/include/asm/semaphore.h" 2
 # 1 "/usr/src/linux/include/linux/rwsem.h" 1
 # 10 "/usr/src/linux/include/linux/rwsem.h"
 # 1 "/usr/src/linux/include/linux/linkage.h" 1
 # 11 "/usr/src/linux/include/linux/rwsem.h" 2
 
 
 
 
 
 # 1 "/usr/src/linux/include/linux/config.h" 1
 # 17 "/usr/src/linux/include/linux/rwsem.h" 2
 # 1 "/usr/src/linux/include/linux/types.h" 1
 # 18 "/usr/src/linux/include/linux/rwsem.h" 2
 # 1 "/usr/src/linux/include/linux/kernel.h" 1
 # 19 "/usr/src/linux/include/linux/rwsem.h" 2
 # 1 "/usr/src/linux/include/asm/system.h" 1
 # 20 "/usr/src/linux/include/linux/rwsem.h" 2
 # 1 "/usr/src/linux/include/asm/atomic.h" 1
 # 21 "/usr/src/linux/include/linux/rwsem.h" 2
 
 struct rw_semaphore;
 
 
 
 
 # 1 "/usr/src/linux/include/asm/rwsem.h" 1
 # 41 "/usr/src/linux/include/asm/rwsem.h"
 # 1 "/usr/src/linux/include/linux/list.h" 1
 # 42 "/usr/src/linux/include/asm/rwsem.h" 2
 # 1 "/usr/src/linux/include/linux/spinlock.h" 1
 # 43 "/usr/src/linux/include/asm/rwsem.h" 2
 
 struct rwsem_waiter;
 
 extern struct rw_semaphore *rwsem_down_read_failed(struct rw_semaphore *s=
 em) __attribute__((regparm(3)));
 extern struct rw_semaphore *rwsem_down_write_failed(struct rw_semaphore *=
 sem) __attribute__((regparm(3)));
 extern struct rw_semaphore *rwsem_wake(struct rw_semaphore *) __attribute=
 __((regparm(3)));
 
 
 
 
 struct rw_semaphore {
         signed long count;
 
 
 
 
 
 
         spinlock_t wait_lock;
         struct list_head wait_list;
 
 
 
 };
 # 84 "/usr/src/linux/include/asm/rwsem.h"
 static inline void init_rwsem(struct rw_semaphore *sem)
 {
         sem->count =3D 0x00000000;
         do { } while(0);
         do { (&sem->wait_list)->next =3D (&sem->wait_list); (&sem->wait_l=
 ist)->prev =3D (&sem->wait_list); } while (0);
 
 
 
 }
 
 
 
 
 static inline void __down_read(struct rw_semaphore *sem)
 {
         __asm__ __volatile__(
                 "# beginning down_read\n\t"
 "" "  incl      (%%eax)\n\t"
                 "  js        2f\n\t"
                 "1:\n\t"
                 ".section .text.lock,\"ax\"\n"
                 "2:\n\t"
                 "  pushl     %%ecx\n\t"
                 "  pushl     %%edx\n\t"
                 "  call      rwsem_down_read_failed\n\t"
                 "  popl      %%edx\n\t"
                 "  popl      %%ecx\n\t"
                 "  jmp       1b\n"
                 ".previous"
                 "# ending down_read\n\t"
                 : "+m"(sem->count)
                 : "a"(sem)
                 : "memory", "cc");
 }
 
 
 
 
 static inline void __down_write(struct rw_semaphore *sem)
 {
         int tmp;
 
         tmp =3D ((-0x00010000) + 0x00000001);
         __asm__ __volatile__(
                 "# beginning down_write\n\t"
 "" "  xadd      %0,(%%eax)\n\t"
                 "  testl     %0,%0\n\t"
                 "  jnz       2f\n\t"
                 "1:\n\t"
                 ".section .text.lock,\"ax\"\n"
                 "2:\n\t"
                 "  pushl     %%ecx\n\t"
                 "  call      rwsem_down_write_failed\n\t"
                 "  popl      %%ecx\n\t"
                 "  jmp       1b\n"
                 ".previous\n"
                 "# ending down_write"
                 : "+d"(tmp), "+m"(sem->count)
                 : "a"(sem)
                 : "memory", "cc");
 }
 
 
 
 
 static inline void __up_read(struct rw_semaphore *sem)
 {
         __s32 tmp =3D -0x00000001;
         __asm__ __volatile__(
                 "# beginning __up_read\n\t"
 "" "  xadd      %%edx,(%%eax)\n\t"
                 "  js        2f\n\t"
                 "1:\n\t"
                 ".section .text.lock,\"ax\"\n"
                 "2:\n\t"
                 "  decw      %%dx\n\t"
                 "  jnz       1b\n\t"
                 "  pushl     %%ecx\n\t"
                 "  call      rwsem_wake\n\t"
                 "  popl      %%ecx\n\t"
                 "  jmp       1b\n"
                 ".previous\n"
                 "# ending __up_read\n"
                 : "+m"(sem->count), "+d"(tmp)
                 : "a"(sem)
                 : "memory", "cc");
 }
 
 
 
 
 static inline void __up_write(struct rw_semaphore *sem)
 {
         __asm__ __volatile__(
                 "# beginning __up_write\n\t"
                 "  movl      %2,%%edx\n\t"
 "" "  xaddl     %%edx,(%%eax)\n\t"
                 "  jnz       2f\n\t"
                 "1:\n\t"
                 ".section .text.lock,\"ax\"\n"
                 "2:\n\t"
                 "  decw      %%dx\n\t"
                 "  jnz       1b\n\t"
                 "  pushl     %%ecx\n\t"
                 "  call      rwsem_wake\n\t"
                 "  popl      %%ecx\n\t"
                 "  jmp       1b\n"
                 ".previous\n"
                 "# ending __up_write\n"
                 : "+m"(sem->count)
                 : "a"(sem), "i"(-((-0x00010000) + 0x00000001))
                 : "memory", "cc", "edx");
 }
 
 
 
 
 static inline void rwsem_atomic_add(int delta, struct rw_semaphore *sem)
 {
         __asm__ __volatile__(
 "" "addl %1,%0"
                 :"=3Dm"(sem->count)
                 :"ir"(delta), "m"(sem->count));
 }
 
 
 
 
 static inline int rwsem_atomic_update(int delta, struct rw_semaphore *sem=
 )
 {
         int tmp =3D delta;
 
         __asm__ __volatile__(
 "" "xadd %0,(%2)"
                 : "+r"(tmp), "=3Dm"(sem->count)
                 : "r"(sem), "m"(sem->count)
                 : "memory");
 
         return tmp+delta;
 }
 # 28 "/usr/src/linux/include/linux/rwsem.h" 2
 # 41 "/usr/src/linux/include/linux/rwsem.h"
 static inline void down_read(struct rw_semaphore *sem)
 {
                                             ;
         __down_read(sem);
                                            ;
 }
 
 
 
 
 static inline void down_write(struct rw_semaphore *sem)
 {
                                              ;
         __down_write(sem);
                                             ;
 }
 
 
 
 
 static inline void up_read(struct rw_semaphore *sem)
 {
                                           ;
         __up_read(sem);
                                          ;
 }
 
 
 
 
 static inline void up_write(struct rw_semaphore *sem)
 {
                                            ;
         __up_write(sem);
                                           ;
 }
 # 43 "/usr/src/linux/include/asm/semaphore.h" 2
 
 struct semaphore {
         atomic_t count;
         int sleepers;
         wait_queue_head_t wait;
 
 
 
 };
 # 73 "/usr/src/linux/include/asm/semaphore.h"
 static inline void sema_init (struct semaphore *sem, int val)
 {
 
 
 
 
 
 
         (((&sem->count)->counter) =3D (val));
         sem->sleepers =3D 0;
         init_waitqueue_head(&sem->wait);
 
 
 
 }
 
 static inline void init_MUTEX (struct semaphore *sem)
 {
         sema_init(sem, 1);
 }
 
 static inline void init_MUTEX_LOCKED (struct semaphore *sem)
 {
         sema_init(sem, 0);
 }
 
  __attribute__((regparm(0))) void __down_failed(void );
  __attribute__((regparm(0))) int __down_failed_interruptible(void );
  __attribute__((regparm(0))) int __down_failed_trylock(void );
  __attribute__((regparm(0))) void __up_wakeup(void );
 
  __attribute__((regparm(0))) void __down(struct semaphore * sem);
  __attribute__((regparm(0))) int __down_interruptible(struct semaphore * =
 sem);
  __attribute__((regparm(0))) int __down_trylock(struct semaphore * sem);
  __attribute__((regparm(0))) void __up(struct semaphore * sem);
 
 
 
 
 
 
 static inline void down(struct semaphore * sem)
 {
 
 
 
 
         __asm__ __volatile__(
                 "# atomic down operation\n\t"
                 "" "decl %0\n\t"
                 "js 2f\n"
                 "1:\n"
                 ".section .text.lock,\"ax\"\n"
                 "2:\tcall __down_failed\n\t"
                 "jmp 1b\n"
                 ".previous"
                 :"=3Dm" (sem->count)
                 :"c" (sem)
                 :"memory");
 }
 
 
 
 
 
 static inline int down_interruptible(struct semaphore * sem)
 {
         int result;
 
 
 
 
 
         __asm__ __volatile__(
                 "# atomic interruptible down operation\n\t"
                 "" "decl %1\n\t"
                 "js 2f\n\t"
                 "xorl %0,%0\n"
                 "1:\n"
                 ".section .text.lock,\"ax\"\n"
                 "2:\tcall __down_failed_interruptible\n\t"
                 "jmp 1b\n"
                 ".previous"
                 :"=3Da" (result), "=3Dm" (sem->count)
                 :"c" (sem)
                 :"memory");
         return result;
 }
 
 
 
 
 
 static inline int down_trylock(struct semaphore * sem)
 {
         int result;
 
 
 
 
 
         __asm__ __volatile__(
                 "# atomic interruptible down operation\n\t"
                 "" "decl %1\n\t"
                 "js 2f\n\t"
                 "xorl %0,%0\n"
                 "1:\n"
                 ".section .text.lock,\"ax\"\n"
                 "2:\tcall __down_failed_trylock\n\t"
                 "jmp 1b\n"
                 ".previous"
                 :"=3Da" (result), "=3Dm" (sem->count)
                 :"c" (sem)
                 :"memory");
         return result;
 }
 
 
 
 
 
 
 
 static inline void up(struct semaphore * sem)
 {
 
 
 
         __asm__ __volatile__(
                 "# atomic up operation\n\t"
                 "" "incl %0\n\t"
                 "jle 2f\n"
                 "1:\n"
                 ".section .text.lock,\"ax\"\n"
                 "2:\tcall __up_wakeup\n\t"
                 "jmp 1b\n"
                 ".previous"
                 :"=3Dm" (sem->count)
                 :"c" (sem)
                 :"memory");
 }
 # 201 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/asm/byteorder.h" 1
 
 
 
 # 1 "/usr/src/linux/include/asm/types.h" 1
 # 5 "/usr/src/linux/include/asm/byteorder.h" 2
 
 
 
 
 
 # 1 "/usr/src/linux/include/linux/config.h" 1
 # 11 "/usr/src/linux/include/asm/byteorder.h" 2
 
 
 static __inline__ __const__ __u32 ___arch__swab32(__u32 x)
 {
 
         __asm__("bswap %0" : "=3Dr" (x) : "0" (x));
 
 
 
 
 
 
 
         return x;
 }
 
 static __inline__ __const__ __u16 ___arch__swab16(__u16 x)
 {
         __asm__("xchgb %b0,%h0" : "=3Dq" (x) : "0" (x)); return x;
 
 
 
 }
 # 45 "/usr/src/linux/include/asm/byteorder.h"
 # 1 "/usr/src/linux/include/linux/byteorder/little_endian.h" 1
 # 11 "/usr/src/linux/include/linux/byteorder/little_endian.h"
 # 1 "/usr/src/linux/include/linux/byteorder/swab.h" 1
 # 131 "/usr/src/linux/include/linux/byteorder/swab.h"
 static __inline__ __const__ __u16 __fswab16(__u16 x)
 {
         return ___arch__swab16(x);
 }
 static __inline__ __u16 __swab16p(__u16 *x)
 {
         return ___arch__swab16(*(x));
 }
 static __inline__ void __swab16s(__u16 *addr)
 {
         do { *(addr) =3D ___arch__swab16(*((addr))); } while (0);
 }
 
 static __inline__ __const__ __u32 __fswab32(__u32 x)
 {
         return ___arch__swab32(x);
 }
 static __inline__ __u32 __swab32p(__u32 *x)
 {
         return ___arch__swab32(*(x));
 }
 static __inline__ void __swab32s(__u32 *addr)
 {
         do { *(addr) =3D ___arch__swab32(*((addr))); } while (0);
 }
 
 
 static __inline__ __const__ __u64 __fswab64(__u64 x)
 {
 
         __u32 h =3D x >> 32;
         __u32 l =3D x & ((1ULL<<32)-1);
         return (((__u64)(__builtin_constant_p((__u32)(l)) ? ({ __u32 __x =
 =3D ((l)); ((__u32)( (((__u32)(__x) & (__u32)0x000000ffUL) << 24) | (((__=
 u32)(__x) & (__u32)0x0000ff00UL) << 8) | (((__u32)(__x) & (__u32)0x00ff00=
 00UL) >> 8) | (((__u32)(__x) & (__u32)0xff000000UL) >> 24) )); }) : __fsw=
 ab32((l)))) << 32) | ((__u64)((__builtin_constant_p((__u32)(h)) ? ({ __u3=
 2 __x =3D ((h)); ((__u32)( (((__u32)(__x) & (__u32)0x000000ffUL) << 24) |=
  (((__u32)(__x) & (__u32)0x0000ff00UL) << 8) | (((__u32)(__x) & (__u32)0x=
 00ff0000UL) >> 8) | (((__u32)(__x) & (__u32)0xff000000UL) >> 24) )); }) :=
  __fswab32((h)))));
 
 
 
 }
 static __inline__ __u64 __swab64p(__u64 *x)
 {
         return ({ __u64 __tmp =3D (*(x)) ; ({ __u64 __x =3D (__tmp); ((__=
 u64)( (__u64)(((__u64)(__x) & (__u64)0x00000000000000ffULL) << 56) | (__u=
 64)(((__u64)(__x) & (__u64)0x000000000000ff00ULL) << 40) | (__u64)(((__u6=
 4)(__x) & (__u64)0x0000000000ff0000ULL) << 24) | (__u64)(((__u64)(__x) & =
 (__u64)0x00000000ff000000ULL) << 8) | (__u64)(((__u64)(__x) & (__u64)0x00=
 0000ff00000000ULL) >> 8) | (__u64)(((__u64)(__x) & (__u64)0x0000ff0000000=
 000ULL) >> 24) | (__u64)(((__u64)(__x) & (__u64)0x00ff000000000000ULL) >>=
  40) | (__u64)(((__u64)(__x) & (__u64)0xff00000000000000ULL) >> 56) )); }=
 ); });
 }
 static __inline__ void __swab64s(__u64 *addr)
 {
         do { *(addr) =3D ({ __u64 __tmp =3D (*((addr))) ; ({ __u64 __x =3D=
  (__tmp); ((__u64)( (__u64)(((__u64)(__x) & (__u64)0x00000000000000ffULL)=
  << 56) | (__u64)(((__u64)(__x) & (__u64)0x000000000000ff00ULL) << 40) | =
 (__u64)(((__u64)(__x) & (__u64)0x0000000000ff0000ULL) << 24) | (__u64)(((=
 __u64)(__x) & (__u64)0x00000000ff000000ULL) << 8) | (__u64)(((__u64)(__x)=
  & (__u64)0x000000ff00000000ULL) >> 8) | (__u64)(((__u64)(__x) & (__u64)0=
 x0000ff0000000000ULL) >> 24) | (__u64)(((__u64)(__x) & (__u64)0x00ff00000=
 0000000ULL) >> 40) | (__u64)(((__u64)(__x) & (__u64)0xff00000000000000ULL=
 ) >> 56) )); }); }); } while (0);
 }
 # 12 "/usr/src/linux/include/linux/byteorder/little_endian.h" 2
 # 66 "/usr/src/linux/include/linux/byteorder/little_endian.h"
 # 1 "/usr/src/linux/include/linux/byteorder/generic.h" 1
 # 150 "/usr/src/linux/include/linux/byteorder/generic.h"
 extern __u32 ntohl(__u32);
 extern __u32 htonl(__u32);
 
 
 
 
 extern unsigned short int ntohs(unsigned short int);
 extern unsigned short int htons(unsigned short int);
 # 67 "/usr/src/linux/include/linux/byteorder/little_endian.h" 2
 # 46 "/usr/src/linux/include/asm/byteorder.h" 2
 # 202 "/usr/src/linux/include/linux/fs.h" 2
 
 extern void update_atime (struct inode *);
 
 
 extern void buffer_init(unsigned long);
 extern void inode_init(unsigned long);
 extern void mnt_init(unsigned long);
 
 
 enum bh_state_bits {
         BH_Uptodate,
         BH_Dirty,
         BH_Lock,
         BH_Req,
         BH_Mapped,
         BH_New,
         BH_Async,
         BH_Wait_IO,
 
         BH_PrivateStart,
 
 
 };
 # 237 "/usr/src/linux/include/linux/fs.h"
 struct buffer_head {
 
         struct buffer_head *b_next;
         unsigned long b_blocknr;
         unsigned short b_size;
         unsigned short b_list;
         kdev_t b_dev;
 
         atomic_t b_count;
         kdev_t b_rdev;
         unsigned long b_state;
         unsigned long b_flushtime;
 
         struct buffer_head *b_next_free;
         struct buffer_head *b_prev_free;
         struct buffer_head *b_this_page;
         struct buffer_head *b_reqnext;
 
         struct buffer_head **b_pprev;
         char * b_data;
         struct page *b_page;
         void (*b_end_io)(struct buffer_head *bh, int uptodate);
         void *b_private;
 
         unsigned long b_rsector;
         wait_queue_head_t b_wait;
 
         struct inode * b_inode;
         struct list_head b_inode_buffers;
 };
 
 typedef void (bh_end_io_t)(struct buffer_head *bh, int uptodate);
 void init_buffer(struct buffer_head *, bh_end_io_t *, void *);
 # 283 "/usr/src/linux/include/linux/fs.h"
 extern void set_bh_page(struct buffer_head *bh, struct page *page, unsign=
 ed long offset);
 
 
 
 
 # 1 "/usr/src/linux/include/linux/pipe_fs_i.h" 1
 
 
 
 
 struct pipe_inode_info {
         wait_queue_head_t wait;
         char *base;
         unsigned int len;
         unsigned int start;
         unsigned int readers;
         unsigned int writers;
         unsigned int waiting_readers;
         unsigned int waiting_writers;
         unsigned int r_counter;
         unsigned int w_counter;
 };
 # 42 "/usr/src/linux/include/linux/pipe_fs_i.h"
 void pipe_wait(struct inode * inode);
 
 struct inode* pipe_new(struct inode* inode);
 # 289 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/minix_fs_i.h" 1
 
 
 
 
 
 
 struct minix_inode_info {
         union {
                 __u16 i1_data[16];
                 __u32 i2_data[16];
         } u;
 };
 # 290 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/ext2_fs_i.h" 1
 # 22 "/usr/src/linux/include/linux/ext2_fs_i.h"
 struct ext2_inode_info {
         __u32 i_data[15];
         __u32 i_flags;
         __u32 i_faddr;
         __u8 i_frag_no;
         __u8 i_frag_size;
         __u16 i_osync;
         __u32 i_file_acl;
         __u32 i_dir_acl;
         __u32 i_dtime;
         __u32 i_block_group;
         __u32 i_next_alloc_block;
         __u32 i_next_alloc_goal;
         __u32 i_prealloc_block;
         __u32 i_prealloc_count;
         __u32 i_dir_start_lookup;
         int i_new_inode:1;
 };
 # 291 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/hpfs_fs_i.h" 1
 
 
 
 struct hpfs_inode_info {
         unsigned long mmu_private;
         ino_t i_parent_dir;
         unsigned i_dno;
         unsigned i_dpos;
         unsigned i_dsubdno;
         unsigned i_file_sec;
         unsigned i_disk_sec;
         unsigned i_n_secs;
         unsigned i_ea_size;
         unsigned i_conv : 2;
         unsigned i_ea_mode : 1;
         unsigned i_ea_uid : 1;
         unsigned i_ea_gid : 1;
         unsigned i_dirty : 1;
         struct semaphore i_sem;
         loff_t **i_rddir_off;
 };
 # 292 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/ntfs_fs_i.h" 1
 
 
 
 # 1 "/usr/src/linux/include/linux/types.h" 1
 # 5 "/usr/src/linux/include/linux/ntfs_fs_i.h" 2
 
 
 struct ntfs_attribute;
 struct ntfs_sb_info;
 
 
 
 
 typedef u8 ntfs_u8;
 typedef u16 ntfs_u16;
 typedef u32 ntfs_u32;
 typedef u64 ntfs_u64;
 typedef s8 ntfs_s8;
 typedef s16 ntfs_s16;
 typedef s32 ntfs_s32;
 typedef s64 ntfs_s64;
 
 
 
 
 typedef __kernel_mode_t ntmode_t;
 
 
 
 typedef uid_t ntfs_uid_t;
 
 
 
 typedef gid_t ntfs_gid_t;
 
 
 
 typedef __kernel_size_t ntfs_size_t;
 
 
 
 typedef __kernel_time_t ntfs_time_t;
 
 
 
 
 
 typedef u16 ntfs_wchar_t;
 
 
 
 
 typedef s64 ntfs_offset_t;
 
 
 
 
 typedef u64 ntfs_time64_t;
 # 69 "/usr/src/linux/include/linux/ntfs_fs_i.h"
 typedef s32 ntfs_cluster_t;
 
 
 
 struct ntfs_inode_info {
         struct ntfs_sb_info *vol;
         unsigned long i_number;
         __u16 sequence_number;
         unsigned char *attr;
         int attr_count;
         struct ntfs_attribute *attrs;
         int record_count;
         int *records;
 
         union {
                 struct {
                         int recordsize;
                         int clusters_per_record;
                 } index;
         } u;
 };
 # 293 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/msdos_fs_i.h" 1
 
 
 
 
 
 
 
 struct msdos_inode_info {
         unsigned long mmu_private;
         int i_start;
         int i_logstart;
         int i_attrs;
         int i_ctime_ms;
         int i_location;
         struct inode *i_fat_inode;
         struct list_head i_fat_hash;
 };
 # 294 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/umsdos_fs_i.h" 1
 
 
 
 
 
 
 
 # 1 "/usr/src/linux/include/linux/msdos_fs_i.h" 1
 # 9 "/usr/src/linux/include/linux/umsdos_fs_i.h" 2
 # 1 "/usr/src/linux/include/linux/pipe_fs_i.h" 1
 # 10 "/usr/src/linux/include/linux/umsdos_fs_i.h" 2
 # 39 "/usr/src/linux/include/linux/umsdos_fs_i.h"
 struct dir_locking_info {
         wait_queue_head_t p;
         short int looking;
         short int creating;
 
 
 
         long pid;
 
 };
 
 struct umsdos_inode_info {
         struct msdos_inode_info msdos_info;
         struct dir_locking_info dir_info;
         int i_patched;
         int i_is_hlink;
         off_t pos;
 };
 # 295 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/iso_fs_i.h" 1
 
 
 
 
 
 
 struct iso_inode_info {
         unsigned int i_first_extent;
         unsigned char i_file_format;
         unsigned long i_next_section_ino;
         off_t i_section_size;
 };
 # 296 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/nfs_fs_i.h" 1
 
 
 
 # 1 "/usr/src/linux/include/asm/types.h" 1
 # 5 "/usr/src/linux/include/linux/nfs_fs_i.h" 2
 # 1 "/usr/src/linux/include/linux/list.h" 1
 # 6 "/usr/src/linux/include/linux/nfs_fs_i.h" 2
 # 1 "/usr/src/linux/include/linux/nfs.h" 1
 # 10 "/usr/src/linux/include/linux/nfs.h"
 # 1 "/usr/src/linux/include/linux/sunrpc/msg_prot.h" 1
 # 14 "/usr/src/linux/include/linux/sunrpc/msg_prot.h"
 enum rpc_auth_flavor {
         RPC_AUTH_NULL =3D 0,
         RPC_AUTH_UNIX =3D 1,
         RPC_AUTH_SHORT =3D 2,
         RPC_AUTH_DES =3D 3,
         RPC_AUTH_KRB =3D 4,
 };
 
 enum rpc_msg_type {
         RPC_CALL =3D 0,
         RPC_REPLY =3D 1
 };
 
 enum rpc_reply_stat {
         RPC_MSG_ACCEPTED =3D 0,
         RPC_MSG_DENIED =3D 1
 };
 
 enum rpc_accept_stat {
         RPC_SUCCESS =3D 0,
         RPC_PROG_UNAVAIL =3D 1,
         RPC_PROG_MISMATCH =3D 2,
         RPC_PROC_UNAVAIL =3D 3,
         RPC_GARBAGE_ARGS =3D 4,
         RPC_SYSTEM_ERR =3D 5
 };
 
 enum rpc_reject_stat {
         RPC_MISMATCH =3D 0,
         RPC_AUTH_ERROR =3D 1
 };
 
 enum rpc_auth_stat {
         RPC_AUTH_OK =3D 0,
         RPC_AUTH_BADCRED =3D 1,
         RPC_AUTH_REJECTEDCRED =3D 2,
         RPC_AUTH_BADVERF =3D 3,
         RPC_AUTH_REJECTEDVERF =3D 4,
         RPC_AUTH_TOOWEAK =3D 5
 };
 # 11 "/usr/src/linux/include/linux/nfs.h" 2
 # 41 "/usr/src/linux/include/linux/nfs.h"
  enum nfs_stat {
         NFS_OK =3D 0,
         NFSERR_PERM =3D 1,
         NFSERR_NOENT =3D 2,
         NFSERR_IO =3D 5,
         NFSERR_NXIO =3D 6,
         NFSERR_EAGAIN =3D 11,
         NFSERR_ACCES =3D 13,
         NFSERR_EXIST =3D 17,
         NFSERR_XDEV =3D 18,
         NFSERR_NODEV =3D 19,
         NFSERR_NOTDIR =3D 20,
         NFSERR_ISDIR =3D 21,
         NFSERR_INVAL =3D 22,
         NFSERR_FBIG =3D 27,
         NFSERR_NOSPC =3D 28,
         NFSERR_ROFS =3D 30,
         NFSERR_MLINK =3D 31,
         NFSERR_OPNOTSUPP =3D 45,
         NFSERR_NAMETOOLONG =3D 63,
         NFSERR_NOTEMPTY =3D 66,
         NFSERR_DQUOT =3D 69,
         NFSERR_STALE =3D 70,
         NFSERR_REMOTE =3D 71,
         NFSERR_WFLUSH =3D 99,
         NFSERR_BADHANDLE =3D 10001,
         NFSERR_NOT_SYNC =3D 10002,
         NFSERR_BAD_COOKIE =3D 10003,
         NFSERR_NOTSUPP =3D 10004,
         NFSERR_TOOSMALL =3D 10005,
         NFSERR_SERVERFAULT =3D 10006,
         NFSERR_BADTYPE =3D 10007,
         NFSERR_JUKEBOX =3D 10008
  };
 
 
 
 enum nfs_ftype {
         NFNON =3D 0,
         NFREG =3D 1,
         NFDIR =3D 2,
         NFBLK =3D 3,
         NFCHR =3D 4,
         NFLNK =3D 5,
         NFSOCK =3D 6,
         NFBAD =3D 7,
         NFFIFO =3D 8
 };
 
 
 
 
 
 
 struct nfs_fh {
         unsigned short size;
         unsigned char data[64];
 };
 # 107 "/usr/src/linux/include/linux/nfs.h"
 enum nfs3_stable_how {
         NFS_UNSTABLE =3D 0,
         NFS_DATA_SYNC =3D 1,
         NFS_FILE_SYNC =3D 2
 };
 # 7 "/usr/src/linux/include/linux/nfs_fs_i.h" 2
 
 
 
 
 struct nfs_inode_info {
 
 
 
         __u64 fsid;
         __u64 fileid;
 
 
 
 
         struct nfs_fh fh;
 
 
 
 
         unsigned short flags;
 # 45 "/usr/src/linux/include/linux/nfs_fs_i.h"
         unsigned long read_cache_jiffies;
         __u64 read_cache_ctime;
         __u64 read_cache_mtime;
         __u64 read_cache_isize;
         unsigned long attrtimeo;
         unsigned long attrtimeo_timestamp;
 
 
 
 
 
         __u32 cookieverf[2];
 
 
 
 
         struct list_head read;
         struct list_head dirty;
         struct list_head commit;
         struct list_head writeback;
 
         unsigned int nread,
                                 ndirty,
                                 ncommit,
                                 npages;
 
 
         struct inode *hash_next,
                                 *hash_prev;
         unsigned long nextscan;
 
 
         struct rpc_cred *mm_cred;
 };
 # 92 "/usr/src/linux/include/linux/nfs_fs_i.h"
 struct nfs_lock_info {
         u32 state;
         u32 flags;
         struct nlm_host *host;
 };
 # 297 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/sysv_fs_i.h" 1
 
 
 
 
 
 
 struct sysv_inode_info {
         u32 i_data[10+1+1+1];
 
 
 
 
 };
 # 298 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/affs_fs_i.h" 1
 
 
 
 # 1 "/usr/src/linux/include/linux/a.out.h" 1
 
 
 
 
 
 
 
 # 1 "/usr/src/linux/include/asm/a.out.h" 1
 
 
 
 struct exec
 {
   unsigned long a_info;
   unsigned a_text;
   unsigned a_data;
   unsigned a_bss;
   unsigned a_syms;
   unsigned a_entry;
   unsigned a_trsize;
   unsigned a_drsize;
 };
 # 9 "/usr/src/linux/include/linux/a.out.h" 2
 
 
 
 
 enum machine_type {
 
 
 
   M_OLDSUN2 =3D 0,
 
 
 
 
   M_68010 =3D 1,
 
 
 
 
   M_68020 =3D 2,
 
 
 
 
   M_SPARC =3D 3,
 
 
   M_386 =3D 100,
   M_MIPS1 =3D 151,
   M_MIPS2 =3D 152
 };
 # 131 "/usr/src/linux/include/linux/a.out.h"
 # 1 "/usr/src/linux/include/asm/page.h" 1
 # 132 "/usr/src/linux/include/linux/a.out.h" 2
 # 157 "/usr/src/linux/include/linux/a.out.h"
 struct nlist {
   union {
     char *n_name;
     struct nlist *n_next;
     long n_strx;
   } n_un;
   unsigned char n_type;
   char n_other;
   short n_desc;
   unsigned long n_value;
 };
 # 235 "/usr/src/linux/include/linux/a.out.h"
 struct relocation_info
 {
 
   int r_address;
 
   unsigned int r_symbolnum:24;
 
 
 
   unsigned int r_pcrel:1;
 
 
   unsigned int r_length:2;
 
 
 
 
 
 
   unsigned int r_extern:1;
 
 
 
 
 
 
 
   unsigned int r_pad:4;
 
 };
 # 5 "/usr/src/linux/include/linux/affs_fs_i.h" 2
 
 
 # 1 "/usr/src/linux/include/linux/time.h" 1
 
 
 
 # 1 "/usr/src/linux/include/asm/param.h" 1
 # 5 "/usr/src/linux/include/linux/time.h" 2
 # 1 "/usr/src/linux/include/linux/types.h" 1
 # 6 "/usr/src/linux/include/linux/time.h" 2
 
 
 
 struct timespec {
         time_t tv_sec;
         long tv_nsec;
 };
 # 31 "/usr/src/linux/include/linux/time.h"
 static __inline__ unsigned long
 timespec_to_jiffies(struct timespec *value)
 {
         unsigned long sec =3D value->tv_sec;
         long nsec =3D value->tv_nsec;
 
         if (sec >=3D (((~0UL >> 1)-1) / 100))
                 return ((~0UL >> 1)-1);
         nsec +=3D 1000000000L / 100 - 1;
         nsec /=3D 1000000000L / 100;
         return 100 * sec + nsec;
 }
 
 static __inline__ void
 jiffies_to_timespec(unsigned long jiffies, struct timespec *value)
 {
         value->tv_nsec =3D (jiffies % 100) * (1000000000L / 100);
         value->tv_sec =3D jiffies / 100;
 }
 # 67 "/usr/src/linux/include/linux/time.h"
 static inline unsigned long
 mktime (unsigned int year, unsigned int mon,
         unsigned int day, unsigned int hour,
         unsigned int min, unsigned int sec)
 {
         if (0 >=3D (int) (mon -=3D 2)) {
                 mon +=3D 12;
                 year -=3D 1;
         }
 
         return (((
                 (unsigned long) (year/4 - year/100 + year/400 + 367*mon/1=
 2 + day) +
                         year*365 - 719499
             )*24 + hour
           )*60 + min
         )*60 + sec;
 }
 
 
 
 
 struct timeval {
         time_t tv_sec;
         suseconds_t tv_usec;
 };
 
 struct timezone {
         int tz_minuteswest;
         int tz_dsttime;
 };
 
 
 
 
 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 *);
 # 121 "/usr/src/linux/include/linux/time.h"
 struct itimerspec {
         struct timespec it_interval;
         struct timespec it_value;
 };
 
 struct itimerval {
         struct timeval it_interval;
         struct timeval it_value;
 };
 # 8 "/usr/src/linux/include/linux/affs_fs_i.h" 2
 # 17 "/usr/src/linux/include/linux/affs_fs_i.h"
 struct affs_ext_key {
         u32 ext;
         u32 key;
 };
 
 
 
 
 struct affs_inode_info {
         u32 i_opencnt;
         struct semaphore i_link_lock;
         struct semaphore i_ext_lock;
 
         u32 i_blkcnt;
         u32 i_extcnt;
         u32 *i_lc;
         u32 i_lc_size;
         u32 i_lc_shift;
         u32 i_lc_mask;
         struct affs_ext_key *i_ac;
         u32 i_ext_last;
         struct buffer_head *i_ext_bh;
         unsigned long mmu_private;
         u32 i_protect;
         u32 i_lastalloc;
         int i_pa_cnt;
 # 51 "/usr/src/linux/include/linux/affs_fs_i.h"
 };
 # 299 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/ufs_fs_i.h" 1
 # 16 "/usr/src/linux/include/linux/ufs_fs_i.h"
 struct ufs_inode_info {
         union {
                 __u32 i_data[15];
                 __u8 i_symlink[4*15];
         } i_u1;
         __u64 i_size;
         __u32 i_flags;
         __u32 i_gen;
         __u32 i_shadow;
         __u32 i_unused1;
         __u32 i_unused2;
         __u32 i_oeftflag;
         __u16 i_osync;
         __u32 i_lastfrag;
 };
 # 300 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/efs_fs_i.h" 1
 # 12 "/usr/src/linux/include/linux/efs_fs_i.h"
 typedef int32_t efs_block_t;
 typedef uint32_t efs_ino_t;
 
 
 
 
 
 
 typedef union extent_u {
         unsigned char raw[8];
         struct extent_s {
                 unsigned int ex_magic:8;
                 unsigned int ex_bn:24;
                 unsigned int ex_length:8;
                 unsigned int ex_offset:24;
         } cooked;
 } efs_extent;
 
 typedef struct edevs {
         short odev;
         unsigned int ndev;
 } efs_devs;
 
 
 
 
 
 struct efs_dinode {
         u_short di_mode;
         short di_nlink;
         u_short di_uid;
         u_short di_gid;
         int32_t di_size;
         int32_t di_atime;
         int32_t di_mtime;
         int32_t di_ctime;
         uint32_t di_gen;
         short di_numextents;
         u_char di_version;
         u_char di_spare;
         union di_addr {
                 efs_extent di_extents[12];
                 efs_devs di_dev;
         } di_u;
 };
 
 
 struct efs_inode_info {
         int numextents;
         int lastextent;
 
         efs_extent extents[12];
 };
 # 301 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/coda_fs_i.h" 1
 # 12 "/usr/src/linux/include/linux/coda_fs_i.h"
 # 1 "/usr/src/linux/include/linux/types.h" 1
 # 13 "/usr/src/linux/include/linux/coda_fs_i.h" 2
 # 1 "/usr/src/linux/include/linux/list.h" 1
 # 14 "/usr/src/linux/include/linux/coda_fs_i.h" 2
 # 1 "/usr/src/linux/include/linux/coda.h" 1
 # 109 "/usr/src/linux/include/linux/coda.h"
 typedef unsigned long long u_quad_t;
 # 164 "/usr/src/linux/include/linux/coda.h"
 struct venus_dirent {
         unsigned long d_fileno;
         unsigned short d_reclen;
         unsigned char d_type;
         unsigned char d_namlen;
         char d_name[255 + 1];
 };
 # 198 "/usr/src/linux/include/linux/coda.h"
 typedef u_long VolumeId;
 typedef u_long VnodeId;
 typedef u_long Unique_t;
 typedef u_long FileVersion;
 
 
 
 
 typedef struct ViceFid {
     VolumeId Volume;
     VnodeId Vnode;
     Unique_t Unique;
 } ViceFid;
 
 
 
 
 static __inline__ ino_t coda_f2i(struct ViceFid *fid)
 {
         if ( ! fid )
                 return 0;
         if (fid->Vnode =3D=3D 0xfffffffe || fid->Vnode =3D=3D 0xffffffff)=
 
                 return ((fid->Volume << 20) | (fid->Unique & 0xfffff));
         else
                 return (fid->Unique + (fid->Vnode<<10) + (fid->Volume<<20=
 ));
 }
 # 233 "/usr/src/linux/include/linux/coda.h"
 typedef u_int32_t vuid_t;
 typedef u_int32_t vgid_t;
 
 
 
 
 struct coda_cred {
     vuid_t cr_uid, cr_euid, cr_suid, cr_fsuid;
     vgid_t cr_groupid, cr_egid, cr_sgid, cr_fsgid;
 };
 
 
 
 
 
 
 
 enum coda_vtype { C_VNON, C_VREG, C_VDIR, C_VBLK, C_VCHR, C_VLNK, C_VSOCK=
 , C_VFIFO, C_VBAD };
 
 struct coda_vattr {
         long va_type;
         u_short va_mode;
         short va_nlink;
         vuid_t va_uid;
         vgid_t va_gid;
         long va_fileid;
         u_quad_t va_size;
         long va_blocksize;
         struct timespec va_atime;
         struct timespec va_mtime;
         struct timespec va_ctime;
         u_long va_gen;
         u_long va_flags;
         u_quad_t va_rdev;
         u_quad_t va_bytes;
         u_quad_t va_filerev;
 };
 
 
 
 
 struct coda_statfs {
     int32_t f_blocks;
     int32_t f_bfree;
     int32_t f_bavail;
     int32_t f_files;
     int32_t f_ffree;
 };
 # 337 "/usr/src/linux/include/linux/coda.h"
 struct coda_in_hdr {
     unsigned long opcode;
     unsigned long unique;
     u_short pid;
     u_short pgid;
     u_short sid;
     struct coda_cred cred;
 };
 
 
 struct coda_out_hdr {
     unsigned long opcode;
     unsigned long unique;
     unsigned long result;
 };
 
 
 struct coda_root_out {
     struct coda_out_hdr oh;
     ViceFid VFid;
 };
 
 struct coda_root_in {
     struct coda_in_hdr in;
 };
 
 
 struct coda_open_in {
     struct coda_in_hdr ih;
     ViceFid VFid;
     int flags;
 };
 
 struct coda_open_out {
     struct coda_out_hdr oh;
     u_quad_t dev;
     ino_t inode;
 };
 
 
 
 struct coda_store_in {
     struct coda_in_hdr ih;
     ViceFid VFid;
     int flags;
 };
 
 struct coda_store_out {
     struct coda_out_hdr out;
 };
 
 
 struct coda_release_in {
     struct coda_in_hdr ih;
     ViceFid VFid;
     int flags;
 };
 
 struct coda_release_out {
     struct coda_out_hdr out;
 };
 
 
 struct coda_close_in {
     struct coda_in_hdr ih;
     ViceFid VFid;
     int flags;
 };
 
 struct coda_close_out {
     struct coda_out_hdr out;
 };
 
 
 struct coda_ioctl_in {
     struct coda_in_hdr ih;
     ViceFid VFid;
     int cmd;
     int len;
     int rwflag;
     char *data;
 };
 
 struct coda_ioctl_out {
     struct coda_out_hdr oh;
     int len;
     caddr_t data;
 };
 
 
 
 struct coda_getattr_in {
     struct coda_in_hdr ih;
     ViceFid VFid;
 };
 
 struct coda_getattr_out {
     struct coda_out_hdr oh;
     struct coda_vattr attr;
 };
 
 
 
 struct coda_setattr_in {
     struct coda_in_hdr ih;
     ViceFid VFid;
     struct coda_vattr attr;
 };
 
 struct coda_setattr_out {
     struct coda_out_hdr out;
 };
 
 
 struct coda_access_in {
     struct coda_in_hdr ih;
     ViceFid VFid;
     int flags;
 };
 
 struct coda_access_out {
     struct coda_out_hdr out;
 };
 
 
 
 
 
 
 
 struct coda_lookup_in {
     struct coda_in_hdr ih;
     ViceFid VFid;
     int name;
     int flags;
 };
 
 struct coda_lookup_out {
     struct coda_out_hdr oh;
     ViceFid VFid;
     int vtype;
 };
 
 
 
 struct coda_create_in {
     struct coda_in_hdr ih;
     ViceFid VFid;
     struct coda_vattr attr;
     int excl;
     int mode;
     int name;
 };
 
 struct coda_create_out {
     struct coda_out_hdr oh;
     ViceFid VFid;
     struct coda_vattr attr;
 };
 
 
 
 struct coda_remove_in {
     struct coda_in_hdr ih;
     ViceFid VFid;
     int name;
 };
 
 struct coda_remove_out {
     struct coda_out_hdr out;
 };
 
 
 struct coda_link_in {
     struct coda_in_hdr ih;
     ViceFid sourceFid;
     ViceFid destFid;
     int tname;
 };
 
 struct coda_link_out {
     struct coda_out_hdr out;
 };
 
 
 
 struct coda_rename_in {
     struct coda_in_hdr ih;
     ViceFid sourceFid;
     int srcname;
     ViceFid destFid;
     int destname;
 };
 
 struct coda_rename_out {
     struct coda_out_hdr out;
 };
 
 
 struct coda_mkdir_in {
     struct coda_in_hdr ih;
     ViceFid VFid;
     struct coda_vattr attr;
     int name;
 };
 
 struct coda_mkdir_out {
     struct coda_out_hdr oh;
     ViceFid VFid;
     struct coda_vattr attr;
 };
 
 
 
 struct coda_rmdir_in {
     struct coda_in_hdr ih;
     ViceFid VFid;
     int name;
 };
 
 struct coda_rmdir_out {
     struct coda_out_hdr out;
 };
 
 
 struct coda_symlink_in {
     struct coda_in_hdr ih;
     ViceFid VFid;
     int srcname;
     struct coda_vattr attr;
     int tname;
 };
 
 struct coda_symlink_out {
     struct coda_out_hdr out;
 };
 
 
 struct coda_readlink_in {
     struct coda_in_hdr ih;
     ViceFid VFid;
 };
 
 struct coda_readlink_out {
     struct coda_out_hdr oh;
     int count;
     caddr_t data;
 };
 
 
 
 struct coda_fsync_in {
     struct coda_in_hdr ih;
     ViceFid VFid;
 };
 
 struct coda_fsync_out {
     struct coda_out_hdr out;
 };
 
 
 struct coda_vget_in {
     struct coda_in_hdr ih;
     ViceFid VFid;
 };
 
 struct coda_vget_out {
     struct coda_out_hdr oh;
     ViceFid VFid;
     int vtype;
 };
 # 616 "/usr/src/linux/include/linux/coda.h"
 struct coda_purgeuser_out {
     struct coda_out_hdr oh;
     struct coda_cred cred;
 };
 
 
 
 struct coda_zapfile_out {
     struct coda_out_hdr oh;
     ViceFid CodaFid;
 };
 
 
 
 struct coda_zapdir_out {
     struct coda_out_hdr oh;
     ViceFid CodaFid;
 };
 
 
 
 struct coda_zapvnode_out {
     struct coda_out_hdr oh;
     struct coda_cred cred;
     ViceFid VFid;
 };
 
 
 
 struct coda_purgefid_out {
     struct coda_out_hdr oh;
     ViceFid CodaFid;
 };
 
 
 
 struct coda_replace_out {
     struct coda_out_hdr oh;
     ViceFid NewFid;
     ViceFid OldFid;
 };
 
 
 struct coda_open_by_fd_in {
     struct coda_in_hdr ih;
     ViceFid VFid;
     int flags;
 };
 
 struct coda_open_by_fd_out {
     struct coda_out_hdr oh;
     int fd;
 
 
     struct file *fh;
 
 };
 
 
 struct coda_open_by_path_in {
     struct coda_in_hdr ih;
     ViceFid VFid;
     int flags;
 };
 
 struct coda_open_by_path_out {
     struct coda_out_hdr oh;
         int path;
 };
 
 
 struct coda_statfs_in {
     struct coda_in_hdr in;
 };
 
 struct coda_statfs_out {
     struct coda_out_hdr oh;
     struct coda_statfs stat;
 };
 # 703 "/usr/src/linux/include/linux/coda.h"
 union inputArgs {
     struct coda_in_hdr ih;
     struct coda_open_in coda_open;
     struct coda_store_in coda_store;
     struct coda_release_in coda_release;
     struct coda_close_in coda_close;
     struct coda_ioctl_in coda_ioctl;
     struct coda_getattr_in coda_getattr;
     struct coda_setattr_in coda_setattr;
     struct coda_access_in coda_access;
     struct coda_lookup_in coda_lookup;
     struct coda_create_in coda_create;
     struct coda_remove_in coda_remove;
     struct coda_link_in coda_link;
     struct coda_rename_in coda_rename;
     struct coda_mkdir_in coda_mkdir;
     struct coda_rmdir_in coda_rmdir;
     struct coda_symlink_in coda_symlink;
     struct coda_readlink_in coda_readlink;
     struct coda_fsync_in coda_fsync;
     struct coda_vget_in coda_vget;
     struct coda_open_by_fd_in coda_open_by_fd;
     struct coda_open_by_path_in coda_open_by_path;
     struct coda_statfs_in coda_statfs;
 };
 
 union outputArgs {
     struct coda_out_hdr oh;
     struct coda_root_out coda_root;
     struct coda_open_out coda_open;
     struct coda_ioctl_out coda_ioctl;
     struct coda_getattr_out coda_getattr;
     struct coda_lookup_out coda_lookup;
     struct coda_create_out coda_create;
     struct coda_mkdir_out coda_mkdir;
     struct coda_readlink_out coda_readlink;
     struct coda_vget_out coda_vget;
     struct coda_purgeuser_out coda_purgeuser;
     struct coda_zapfile_out coda_zapfile;
     struct coda_zapdir_out coda_zapdir;
     struct coda_zapvnode_out coda_zapvnode;
     struct coda_purgefid_out coda_purgefid;
     struct coda_replace_out coda_replace;
     struct coda_open_by_fd_out coda_open_by_fd;
     struct coda_open_by_path_out coda_open_by_path;
     struct coda_statfs_out coda_statfs;
 };
 
 union coda_downcalls {
 
 
     struct coda_purgeuser_out purgeuser;
     struct coda_zapfile_out zapfile;
     struct coda_zapdir_out zapdir;
     struct coda_zapvnode_out zapvnode;
     struct coda_purgefid_out purgefid;
     struct coda_replace_out replace;
 };
 
 
 
 
 
 
 
 struct ViceIoctl {
         caddr_t in, out;
         short in_size;
         short out_size;
 };
 
 struct PioctlData {
         const char *path;
         int follow;
         struct ViceIoctl vi;
 };
 # 797 "/usr/src/linux/include/linux/coda.h"
 struct coda_mount_data {
         int version;
         int fd;
 };
 # 15 "/usr/src/linux/include/linux/coda_fs_i.h" 2
 
 
 
 
 struct coda_inode_info {
         struct ViceFid c_fid;
         u_short c_flags;
         struct list_head c_cilist;
         struct file *c_container;
         unsigned int c_contcount;
         struct coda_cred c_cached_cred;
         unsigned int c_cached_perm;
 };
 
 
 
 
 
 
 
 int coda_cnode_make(struct inode **, struct ViceFid *, struct super_block=
  *);
 int coda_cnode_makectl(struct inode **inode, struct super_block *sb);
 struct inode *coda_fid_to_inode(ViceFid *fid, struct super_block *sb);
 void coda_replace_fid(struct inode *, ViceFid *, ViceFid *);
 # 302 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/romfs_fs_i.h" 1
 
 
 
 
 
 struct romfs_inode_info {
         unsigned long i_metasize;
         unsigned long i_dataoffset;
 };
 # 303 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/shmem_fs.h" 1
 # 16 "/usr/src/linux/include/linux/shmem_fs.h"
 typedef struct {
         unsigned long val;
 } swp_entry_t;
 
 struct shmem_inode_info {
         spinlock_t lock;
         unsigned long max_index;
         swp_entry_t i_direct[16];
         swp_entry_t **i_indirect;
         unsigned long swapped;
         int locked;
         struct list_head list;
 };
 
 struct shmem_sb_info {
         unsigned long max_blocks;
         unsigned long free_blocks;
         unsigned long max_inodes;
         unsigned long free_inodes;
         spinlock_t stat_lock;
 };
 # 304 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/smb_fs_i.h" 1
 # 13 "/usr/src/linux/include/linux/smb_fs_i.h"
 # 1 "/usr/src/linux/include/linux/types.h" 1
 # 14 "/usr/src/linux/include/linux/smb_fs_i.h" 2
 
 
 
 
 struct smb_inode_info {
 
 
 
 
 
         unsigned int open;
         __u16 fileid;
         __u16 attr;
 
         __u16 access;
         __u16 flags;
         unsigned long oldmtime;
         unsigned long closed;
         unsigned openers;
 };
 # 305 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/hfs_fs_i.h" 1
 # 19 "/usr/src/linux/include/linux/hfs_fs_i.h"
 struct hfs_inode_info {
         int magic;
 
         unsigned long mmu_private;
         struct hfs_cat_entry *entry;
 
 
         struct hfs_fork *fork;
         int convert;
 
 
         ino_t file_type;
         char dir_size;
 
 
         const struct hfs_hdr_layout *default_layout;
         struct hfs_hdr_layout *layout;
 
 
         int tz_secondswest;
 
 
         void (*d_drop_op)(struct dentry *, const ino_t);
 };
 # 306 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/adfs_fs_i.h" 1
 # 13 "/usr/src/linux/include/linux/adfs_fs_i.h"
 struct adfs_inode_info {
         unsigned long mmu_private;
         unsigned long parent_id;
         __u32 loadaddr;
         __u32 execaddr;
         unsigned int filetype;
         unsigned int attr;
         int stamped:1;
 };
 # 307 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/qnx4_fs_i.h" 1
 # 14 "/usr/src/linux/include/linux/qnx4_fs_i.h"
 # 1 "/usr/src/linux/include/linux/qnxtypes.h" 1
 # 15 "/usr/src/linux/include/linux/qnxtypes.h"
 typedef __u16 qnx4_nxtnt_t;
 typedef __u8 qnx4_ftype_t;
 
 typedef struct {
         __u32 xtnt_blk;
         __u32 xtnt_size;
 } qnx4_xtnt_t;
 
 typedef __u16 qnx4_mode_t;
 typedef __u16 qnx4_muid_t;
 typedef __u16 qnx4_mgid_t;
 typedef __u32 qnx4_off_t;
 typedef __u16 qnx4_nlink_t;
 # 15 "/usr/src/linux/include/linux/qnx4_fs_i.h" 2
 
 
 
 
 struct qnx4_inode_info {
         char i_reserved[16];
         qnx4_off_t i_size;
         qnx4_xtnt_t i_first_xtnt;
         __u32 i_xblk;
         __s32 i_ftime;
         __s32 i_mtime;
         __s32 i_atime;
         __s32 i_ctime;
         qnx4_nxtnt_t i_num_xtnts;
         qnx4_mode_t i_mode;
         qnx4_muid_t i_uid;
         qnx4_mgid_t i_gid;
         qnx4_nlink_t i_nlink;
         __u8 i_zero[4];
         qnx4_ftype_t i_type;
         __u8 i_status;
         unsigned long mmu_private;
 };
 # 308 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/reiserfs_fs_i.h" 1
 
 
 
 # 1 "/usr/src/linux/include/linux/list.h" 1
 # 5 "/usr/src/linux/include/linux/reiserfs_fs_i.h" 2
 
 struct reiserfs_inode_info {
   __u32 i_key [4];
 
 
 
 
 
 
   int i_version;
 
   int i_pack_on_close ;
 
   __u32 i_first_direct_byte;
 # 35 "/usr/src/linux/include/linux/reiserfs_fs_i.h"
   int i_prealloc_block;
   int i_prealloc_count;
   struct list_head i_prealloc_list;
 
 
 
 
   int nopack;
 };
 # 309 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/bfs_fs_i.h" 1
 # 12 "/usr/src/linux/include/linux/bfs_fs_i.h"
 struct bfs_inode_info {
         unsigned long i_dsk_ino;
         unsigned long i_sblock;
         unsigned long i_eblock;
 };
 # 310 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/udf_fs_i.h" 1
 # 24 "/usr/src/linux/include/linux/udf_fs_i.h"
 typedef struct
 {
         __u32 logicalBlockNum;
         __u16 partitionReferenceNum;
 } lb_addr;
 
 
 struct udf_inode_info
 {
         long i_umtime;
         long i_uctime;
         long i_crtime;
         long i_ucrtime;
 
         lb_addr i_location;
         __u64 i_unique;
         __u32 i_lenEAttr;
         __u32 i_lenAlloc;
         __u64 i_lenExtents;
         __u32 i_next_alloc_block;
         __u32 i_next_alloc_goal;
         unsigned i_alloc_type : 3;
         unsigned i_extended_fe : 1;
         unsigned i_strat_4096 : 1;
         unsigned i_new_inode : 1;
         unsigned reserved : 26;
 };
 # 311 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/ncp_fs_i.h" 1
 # 17 "/usr/src/linux/include/linux/ncp_fs_i.h"
 struct ncp_inode_info {
         __u32 dirEntNum __attribute__((packed));
         __u32 DosDirNum __attribute__((packed));
         __u32 volNumber __attribute__((packed));
         __u32 nwattr;
         struct semaphore open_sem;
         atomic_t opened;
         int access;
         __u32 server_file_handle __attribute__((packed));
         __u8 open_create_action __attribute__((packed));
         __u8 file_handle[6] __attribute__((packed));
 };
 # 312 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/proc_fs_i.h" 1
 struct proc_inode_info {
         struct task_struct *task;
         int type;
         union {
                 int (*proc_get_link)(struct inode *, struct dentry **, st=
 ruct vfsmount **);
                 int (*proc_read)(struct task_struct *task, char *page);
         } op;
         struct file *file;
 };
 # 313 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/usbdev_fs_i.h" 1
 struct usb_device;
 struct usb_bus;
 
 struct usbdev_inode_info {
         struct list_head dlist;
         struct list_head slist;
         union {
                 struct usb_device *dev;
                 struct usb_bus *bus;
         } p;
 };
 # 314 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/jffs2_fs_i.h" 1
 # 16 "/usr/src/linux/include/linux/jffs2_fs_i.h"
 struct jffs2_inode_info {
 # 26 "/usr/src/linux/include/linux/jffs2_fs_i.h"
         struct semaphore sem;
 
 
         __u32 highest_version;
 
 
         struct jffs2_node_frag *fraglist;
 
 
 
 
 
 
         struct jffs2_full_dnode *metadata;
 
 
         struct jffs2_full_dirent *dents;
 
 
         struct jffs2_inode_cache *inocache;
 
 
 
 
 
         __u16 flags;
         __u8 usercompr;
 };
 # 315 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/cramfs_fs_sb.h" 1
 
 
 
 
 
 
 struct cramfs_sb_info {
                         unsigned long magic;
                         unsigned long size;
                         unsigned long blocks;
                         unsigned long files;
                         unsigned long flags;
 };
 # 316 "/usr/src/linux/include/linux/fs.h" 2
 # 342 "/usr/src/linux/include/linux/fs.h"
 struct iattr {
         unsigned int ia_valid;
         umode_t ia_mode;
         uid_t ia_uid;
         gid_t ia_gid;
         loff_t ia_size;
         time_t ia_atime;
         time_t ia_mtime;
         time_t ia_ctime;
         unsigned int ia_attr_flags;
 };
 # 366 "/usr/src/linux/include/linux/fs.h"
 # 1 "/usr/src/linux/include/linux/quota.h" 1
 # 42 "/usr/src/linux/include/linux/quota.h"
 # 1 "/usr/src/linux/include/linux/errno.h" 1
 # 43 "/usr/src/linux/include/linux/quota.h" 2
 # 84 "/usr/src/linux/include/linux/quota.h"
 extern int nr_dquots, nr_free_dquots;
 extern int max_dquots;
 extern int dquot_root_squash;
 # 116 "/usr/src/linux/include/linux/quota.h"
 struct dqblk {
         __u32 dqb_bhardlimit;
         __u32 dqb_bsoftlimit;
         __u32 dqb_curblocks;
         __u32 dqb_ihardlimit;
         __u32 dqb_isoftlimit;
         __u32 dqb_curinodes;
         time_t dqb_btime;
         time_t dqb_itime;
 };
 # 141 "/usr/src/linux/include/linux/quota.h"
 struct dqstats {
         __u32 lookups;
         __u32 drops;
         __u32 reads;
         __u32 writes;
         __u32 cache_hits;
         __u32 allocated_dquots;
         __u32 free_dquots;
         __u32 syncs;
 };
 # 167 "/usr/src/linux/include/linux/quota.h"
 struct dquot {
         struct dquot *dq_next;
         struct dquot **dq_pprev;
         struct list_head dq_free;
         struct dquot *dq_hash_next;
         struct dquot **dq_hash_pprev;
         wait_queue_head_t dq_wait;
         int dq_count;
 
 
         struct super_block *dq_sb;
         unsigned int dq_id;
         kdev_t dq_dev;
         short dq_type;
         short dq_flags;
         unsigned long dq_referenced;
 
         struct dqblk dq_dqb;
 };
 # 367 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/mount.h" 1
 # 368 "/usr/src/linux/include/linux/fs.h" 2
 
 
 
 
 struct page;
 struct address_space;
 struct kiobuf;
 
 struct address_space_operations {
         int (*writepage)(struct page *);
         int (*readpage)(struct file *, struct page *);
         int (*sync_page)(struct page *);
         int (*prepare_write)(struct file *, struct page *, unsigned, unsi=
 gned);
         int (*commit_write)(struct file *, struct page *, unsigned, unsig=
 ned);
 
         int (*bmap)(struct address_space *, long);
 
         int (*direct_IO)(int, struct inode *, struct kiobuf *, unsigned l=
 ong, int);
 };
 
 struct address_space {
         struct list_head clean_pages;
         struct list_head dirty_pages;
         struct list_head locked_pages;
         unsigned long nrpages;
         struct address_space_operations *a_ops;
         struct inode *host;
         struct vm_area_struct *i_mmap;
         struct vm_area_struct *i_mmap_shared;
         spinlock_t i_shared_lock;
         int gfp_mask;
 };
 
 struct char_device {
         struct list_head hash;
         atomic_t count;
         dev_t dev;
         atomic_t openers;
         struct semaphore sem;
 };
 
 struct block_device {
         struct list_head bd_hash;
         atomic_t bd_count;
         struct inode * bd_inode;
         dev_t bd_dev;
         int bd_openers;
         const struct block_device_operations *bd_op;
         struct semaphore bd_sem;
         struct list_head bd_inodes;
 };
 
 struct inode {
         struct list_head i_hash;
         struct list_head i_list;
         struct list_head i_dentry;
 
         struct list_head i_dirty_buffers;
         struct list_head i_dirty_data_buffers;
 
         unsigned long i_ino;
         atomic_t 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;
         loff_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;
         struct semaphore i_sem;
         struct semaphore i_zombie;
         struct inode_operations *i_op;
         struct file_operations *i_fop;
         struct super_block *i_sb;
         wait_queue_head_t i_wait;
         struct file_lock *i_flock;
         struct address_space *i_mapping;
         struct address_space i_data;
         struct dquot *i_dquot[2];
 
         struct list_head i_devices;
         struct pipe_inode_info *i_pipe;
         struct block_device *i_bdev;
         struct char_device *i_cdev;
 
         unsigned long i_dnotify_mask;
         struct dnotify_struct *i_dnotify;
 
         unsigned long i_state;
 
         unsigned int i_flags;
         unsigned char i_sock;
 
         atomic_t i_writecount;
         unsigned int i_attr_flags;
         __u32 i_generation;
         union {
                 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 shmem_inode_info shmem_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 reiserfs_inode_info reiserfs_i;
                 struct bfs_inode_info bfs_i;
                 struct udf_inode_info udf_i;
                 struct ncp_inode_info ncpfs_i;
                 struct proc_inode_info proc_i;
                 struct socket socket_i;
                 struct usbdev_inode_info usbdev_i;
                 struct jffs2_inode_info jffs2_i;
                 void *generic_ip;
         } u;
 };
 
 struct fown_struct {
         int pid;
         uid_t uid, euid;
         int signum;
 };
 
 struct file {
         struct list_head f_list;
         struct dentry *f_dentry;
         struct vfsmount *f_vfsmnt;
         struct file_operations *f_op;
         atomic_t f_count;
         unsigned int f_flags;
         mode_t f_mode;
         loff_t f_pos;
         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;
 
 
         void *private_data;
 
 
         struct kiobuf *f_iobuf;
         long f_iobuf_lock;
 };
 extern spinlock_t files_lock;
 
 
 
 
 
 
 extern int init_private_file(struct file *, struct dentry *, int);
 # 556 "/usr/src/linux/include/linux/fs.h"
 typedef struct files_struct *fl_owner_t;
 
 struct file_lock {
         struct file_lock *fl_next;
         struct list_head fl_link;
         struct list_head fl_block;
         fl_owner_t fl_owner;
         unsigned int fl_pid;
         wait_queue_head_t fl_wait;
         struct file *fl_file;
         unsigned char fl_flags;
         unsigned char fl_type;
         loff_t fl_start;
         loff_t fl_end;
 
         void (*fl_notify)(struct file_lock *);
         void (*fl_insert)(struct file_lock *);
         void (*fl_remove)(struct file_lock *);
 
         struct fasync_struct * fl_fasync;
 
         union {
                 struct nfs_lock_info nfs_fl;
         } fl_u;
 };
 # 589 "/usr/src/linux/include/linux/fs.h"
 extern struct list_head file_lock_list;
 
 # 1 "/usr/src/linux/include/linux/fcntl.h" 1
 
 
 
 # 1 "/usr/src/linux/include/asm/fcntl.h" 1
 # 69 "/usr/src/linux/include/asm/fcntl.h"
 struct flock {
         short l_type;
         short l_whence;
         off_t l_start;
         off_t l_len;
         pid_t l_pid;
 };
 
 struct flock64 {
         short l_type;
         short l_whence;
         loff_t l_start;
         loff_t l_len;
         pid_t l_pid;
 };
 # 5 "/usr/src/linux/include/linux/fcntl.h" 2
 # 592 "/usr/src/linux/include/linux/fs.h" 2
 
 extern int fcntl_getlk(unsigned int, struct flock *);
 extern int fcntl_setlk(unsigned int, unsigned int, struct flock *);
 
 extern int fcntl_getlk64(unsigned int, struct flock64 *);
 extern int fcntl_setlk64(unsigned int, unsigned int, struct flock64 *);
 
 
 extern void locks_init_lock(struct file_lock *);
 extern void locks_copy_lock(struct file_lock *, struct file_lock *);
 extern void locks_remove_posix(struct file *, fl_owner_t);
 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 in=
 t);
 extern void posix_block_lock(struct file_lock *, struct file_lock *);
 extern void posix_unblock_lock(struct file_lock *);
 extern int __get_lease(struct inode *inode, unsigned int flags);
 extern time_t lease_get_mtime(struct inode *);
 extern int lock_may_read(struct inode *, loff_t start, unsigned long coun=
 t);
 extern int lock_may_write(struct inode *, loff_t start, unsigned long cou=
 nt);
 
 struct fasync_struct {
         int magic;
         int fa_fd;
         struct fasync_struct *fa_next;
         struct file *fa_file;
 };
 
 
 
 
 extern int fasync_helper(int, struct file *, int, struct fasync_struct **=
 );
 
 extern void kill_fasync(struct fasync_struct **, int, int);
 
 extern void __kill_fasync(struct fasync_struct *, int, int);
 
 struct nameidata {
         struct dentry *dentry;
         struct vfsmount *mnt;
         struct qstr last;
         unsigned int flags;
         int last_type;
 };
 
 
 
 
 struct quota_mount_options
 {
         unsigned int flags;
         struct semaphore dqio_sem;
         struct semaphore dqoff_sem;
         struct file *files[2];
         time_t inode_expire[2];
         time_t block_expire[2];
         char rsquash[2];
 };
 
 
 
 
 
 
 
 # 1 "/usr/src/linux/include/linux/minix_fs_sb.h" 1
 
 
 
 
 
 
 struct minix_sb_info {
                         unsigned long s_ninodes;
                         unsigned long s_nzones;
                         unsigned long s_imap_blocks;
                         unsigned long s_zmap_blocks;
                         unsigned long s_firstdatazone;
                         unsigned long s_log_zone_size;
                         unsigned long s_max_size;
                         int s_dirsize;
                         int s_namelen;
                         int s_link_max;
                         struct buffer_head ** s_imap;
                         struct buffer_head ** s_zmap;
                         struct buffer_head * s_sbh;
                         struct minix_super_block * s_ms;
                         unsigned short s_mount_state;
                         unsigned short s_version;
 };
 # 658 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/ext2_fs_sb.h" 1
 # 30 "/usr/src/linux/include/linux/ext2_fs_sb.h"
 struct ext2_sb_info {
         unsigned long s_frag_size;
         unsigned long s_frags_per_block;
         unsigned long s_inodes_per_block;
         unsigned long s_frags_per_group;
         unsigned long s_blocks_per_group;
         unsigned long s_inodes_per_group;
         unsigned long s_itb_per_group;
         unsigned long s_gdb_count;
         unsigned long s_desc_per_block;
         unsigned long s_groups_count;
         struct buffer_head * s_sbh;
         struct ext2_super_block * s_es;
         struct buffer_head ** s_group_desc;
         unsigned short s_loaded_inode_bitmaps;
         unsigned short s_loaded_block_bitmaps;
         unsigned long s_inode_bitmap_number[8];
         struct buffer_head * s_inode_bitmap[8];
         unsigned long s_block_bitmap_number[8];
         struct buffer_head * s_block_bitmap[8];
         unsigned long s_mount_opt;
         uid_t s_resuid;
         gid_t s_resgid;
         unsigned short s_mount_state;
         unsigned short s_pad;
         int s_addr_per_block_bits;
         int s_desc_per_block_bits;
         int s_inode_size;
         int s_first_ino;
 };
 # 659 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/hpfs_fs_sb.h" 1
 
 
 
 struct hpfs_sb_info {
         ino_t sb_root;
         unsigned sb_fs_size;
         unsigned sb_bitmaps;
         unsigned sb_dirband_start;
         unsigned sb_dirband_size;
         unsigned sb_dmap;
         unsigned sb_n_free;
         unsigned sb_n_free_dnodes;
         uid_t sb_uid;
         gid_t sb_gid;
         umode_t sb_mode;
         unsigned sb_conv : 2;
         unsigned sb_eas : 2;
         unsigned sb_err : 2;
         unsigned sb_chk : 2;
         unsigned sb_lowercase : 1;
         unsigned sb_was_error : 1;
         unsigned sb_chkdsk : 2;
         unsigned sb_rd_fnode : 2;
         unsigned sb_rd_inode : 2;
 
 
         wait_queue_head_t sb_iget_q;
         unsigned char *sb_cp_table;
 
 
         unsigned *sb_bmp_dir;
         unsigned sb_c_bitmap;
         wait_queue_head_t sb_creation_de;
 
         unsigned sb_creation_de_lock : 1;
 
         int sb_timeshift;
 };
 # 660 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/ntfs_fs_sb.h" 1
 
 
 
 # 1 "/usr/src/linux/include/linux/ntfs_fs_i.h" 1
 # 5 "/usr/src/linux/include/linux/ntfs_fs_sb.h" 2
 
 struct ntfs_sb_info{
 
         ntfs_uid_t uid;
         ntfs_gid_t gid;
         ntmode_t umask;
         void *nls_map;
         unsigned int ngt;
         char mft_zone_multiplier;
         unsigned long mft_data_pos;
         ntfs_cluster_t mft_zone_pos;
         ntfs_cluster_t mft_zone_start;
         ntfs_cluster_t mft_zone_end;
         ntfs_cluster_t data1_zone_pos;
         ntfs_cluster_t data2_zone_pos;
 
 
         ntfs_size_t partition_bias;
 
         ntfs_u32 at_standard_information;
         ntfs_u32 at_attribute_list;
         ntfs_u32 at_file_name;
         ntfs_u32 at_volume_version;
         ntfs_u32 at_security_descriptor;
         ntfs_u32 at_volume_name;
         ntfs_u32 at_volume_information;
         ntfs_u32 at_data;
         ntfs_u32 at_index_root;
         ntfs_u32 at_index_allocation;
         ntfs_u32 at_bitmap;
         ntfs_u32 at_symlink;
 
         int sector_size;
         int cluster_size;
         int cluster_size_bits;
         int mft_clusters_per_record;
         int mft_record_size;
         int mft_record_size_bits;
         int index_clusters_per_record;
         int index_record_size;
         int index_record_size_bits;
         ntfs_cluster_t nr_clusters;
         ntfs_cluster_t mft_lcn;
         ntfs_cluster_t mft_mirr_lcn;
 
         unsigned char *mft;
         unsigned short *upcase;
         unsigned int upcase_length;
 
         struct ntfs_inode_info *mft_ino;
         struct ntfs_inode_info *mftmirr;
         struct ntfs_inode_info *bitmap;
         struct super_block *sb;
         unsigned char ino_flags;
 };
 # 661 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/msdos_fs_sb.h" 1
 
 
 # 1 "/usr/src/linux/include/linux/fat_cvf.h" 1
 
 
 
 
 
 struct cvf_format
 { int cvf_version;
   char* cvf_version_text;
   unsigned long flags;
   int (*detect_cvf) (struct super_block*sb);
   int (*mount_cvf) (struct super_block*sb,char*options);
   int (*unmount_cvf) (struct super_block*sb);
   struct buffer_head* (*cvf_bread) (struct super_block*sb,int block);
   struct buffer_head* (*cvf_getblk) (struct super_block*sb,int block);
   void (*cvf_brelse) (struct super_block *sb,struct buffer_head *bh);
   void (*cvf_mark_buffer_dirty) (struct super_block *sb,
                               struct buffer_head *bh);
   void (*cvf_set_uptodate) (struct super_block *sb,
                          struct buffer_head *bh,
                          int val);
   int (*cvf_is_uptodate) (struct super_block *sb,struct buffer_head *bh);=
 
   void (*cvf_ll_rw_block) (struct super_block *sb,
                         int opr,
                         int nbreq,
                         struct buffer_head *bh[32]);
   int (*fat_access) (struct super_block *sb,int nr,int new_value);
   int (*cvf_statfs) (struct super_block *sb,struct statfs *buf, int bufsi=
 z);
   int (*cvf_bmap) (struct inode *inode,int block);
   ssize_t (*cvf_file_read) ( struct file *, char *, size_t, loff_t *);
   ssize_t (*cvf_file_write) ( struct file *, const char *, size_t, loff_t=
  *);
   int (*cvf_mmap) (struct file *, struct vm_area_struct *);
   int (*cvf_readpage) (struct inode *, struct page *);
   int (*cvf_writepage) (struct inode *, struct page *);
   int (*cvf_dir_ioctl) (struct inode * inode, struct file * filp,
                         unsigned int cmd, unsigned long arg);
   void (*zero_out_cluster) (struct inode*, int clusternr);
 };
 
 int register_cvf_format(struct cvf_format*cvf_format);
 int unregister_cvf_format(struct cvf_format*cvf_format);
 void dec_cvf_format_use_count_by_version(int version);
 int detect_cvf(struct super_block*sb,char*force);
 
 extern struct cvf_format *cvf_formats[];
 extern int cvf_format_use_count[];
 # 4 "/usr/src/linux/include/linux/msdos_fs_sb.h" 2
 
 
 
 
 
 struct fat_mount_options {
         uid_t fs_uid;
         gid_t fs_gid;
         unsigned short fs_umask;
         unsigned short codepage;
         char *iocharset;
         unsigned char name_check;
         unsigned char conversion;
         unsigned quiet:1,
                  showexec:1,
                  sys_immutable:1,
                  dotsOK:1,
                  isvfat:1,
                  utf8:1,
                  unicode_xlate:1,
                  posixfs:1,
                  numtail:1,
                  atari:1,
                  fat32:1,
                  nocase:1;
 };
 
 struct vfat_unicode {
         unsigned char uni1;
         unsigned char uni2;
 };
 
 struct msdos_sb_info {
         unsigned short cluster_size;
         unsigned short cluster_bits;
         unsigned char fats,fat_bits;
         unsigned short fat_start;
         unsigned long fat_length;
         unsigned long dir_start;
         unsigned short dir_entries;
         unsigned long data_start;
         unsigned long clusters;
         unsigned long root_cluster;
         unsigned long fsinfo_sector;
         wait_queue_head_t fat_wait;
         struct semaphore fat_lock;
         int prev_free;
         int free_clusters;
         struct fat_mount_options options;
         struct nls_table *nls_disk;
         struct nls_table *nls_io;
         struct cvf_format* cvf_format;
         void *dir_ops;
         void *private_data;
         int dir_per_block;
         int dir_per_block_bits;
 };
 # 662 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/iso_fs_sb.h" 1
 
 
 
 
 
 
 struct isofs_sb_info {
         unsigned long s_ninodes;
         unsigned long s_nzones;
         unsigned long s_firstdatazone;
         unsigned long s_log_zone_size;
         unsigned long s_max_size;
 
         unsigned char s_high_sierra;
         unsigned char s_mapping;
         int s_rock_offset;
         unsigned char s_rock;
         unsigned char s_joliet_level;
         unsigned char s_utf8;
         unsigned char s_cruft;
 
 
         unsigned char s_unhide;
         unsigned char s_nosuid;
         unsigned char s_nodev;
         mode_t s_mode;
         gid_t s_gid;
         uid_t s_uid;
         struct nls_table *s_nls_iocharset;
 };
 # 663 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/nfs_fs_sb.h" 1
 
 
 
 
 
 
 struct nfs_server {
         struct rpc_clnt * client;
         struct nfs_rpc_ops * rpc_ops;
         int flags;
         unsigned int rsize;
         unsigned int rpages;
         unsigned int wsize;
         unsigned int wpages;
         unsigned int dtsize;
         unsigned int bsize;
         unsigned int acregmin;
         unsigned int acregmax;
         unsigned int acdirmin;
         unsigned int acdirmax;
         unsigned int namelen;
         char * hostname;
         struct nfs_reqlist * rw_requests;
 };
 
 
 
 
 struct nfs_sb_info {
         struct nfs_server s_server;
 };
 # 664 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/sysv_fs_sb.h" 1
 # 13 "/usr/src/linux/include/linux/sysv_fs_sb.h"
 struct sysv_sb_info {
         int s_type;
         char s_bytesex;
         char s_kludge_symlinks;
         char s_truncate;
 
         nlink_t s_link_max;
         unsigned int s_inodes_per_block;
         unsigned int s_inodes_per_block_1;
         unsigned int s_inodes_per_block_bits;
         unsigned int s_ind_per_block;
         unsigned int s_ind_per_block_bits;
         unsigned int s_ind_per_block_2;
         unsigned int s_toobig_block;
         unsigned int s_block_base;
         unsigned short s_fic_size;
         unsigned short s_flc_size;
 
         struct buffer_head *s_bh1;
         struct buffer_head *s_bh2;
 
 
         char * s_sbd1;
         char * s_sbd2;
         u16 *s_sb_fic_count;
         u16 *s_sb_fic_inodes;
         u16 *s_sb_total_free_inodes;
         u16 *s_bcache_count;
         u32 *s_bcache;
         u32 *s_free_blocks;
         u32 *s_sb_time;
         u32 *s_sb_state;
 
 
         u32 s_firstinodezone;
         u32 s_firstdatazone;
         u32 s_ninodes;
         u32 s_ndatazones;
         u32 s_nzones;
         u16 s_namelen;
 };
 # 665 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/affs_fs_sb.h" 1
 # 11 "/usr/src/linux/include/linux/affs_fs_sb.h"
 struct affs_bm_info {
         u32 bm_key;
         u32 bm_free;
 };
 
 struct affs_sb_info {
         int s_partition_size;
         int s_reserved;
 
         u32 s_data_blksize;
         u32 s_root_block;
         int s_hashsize;
         unsigned long s_flags;
         uid_t s_uid;
         gid_t s_gid;
         umode_t s_mode;
         struct buffer_head *s_root_bh;
         struct semaphore s_bmlock;
         struct affs_bm_info *s_bitmap;
         u32 s_bmap_count;
         u32 s_bmap_bits;
         u32 s_last_bmap;
         struct buffer_head *s_bmap_bh;
         char *s_prefix;
         int s_prefix_len;
         char s_volume[32];
 };
 # 666 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/ufs_fs_sb.h" 1
 # 17 "/usr/src/linux/include/linux/ufs_fs_sb.h"
 # 1 "/usr/src/linux/include/linux/ufs_fs.h" 1
 # 30 "/usr/src/linux/include/linux/ufs_fs.h"
 # 1 "/usr/src/linux/include/linux/types.h" 1
 # 31 "/usr/src/linux/include/linux/ufs_fs.h" 2
 # 1 "/usr/src/linux/include/linux/kernel.h" 1
 # 32 "/usr/src/linux/include/linux/ufs_fs.h" 2
 # 1 "/usr/src/linux/include/linux/time.h" 1
 # 33 "/usr/src/linux/include/linux/ufs_fs.h" 2
 # 1 "/usr/src/linux/include/linux/stat.h" 1
 # 34 "/usr/src/linux/include/linux/ufs_fs.h" 2
 # 248 "/usr/src/linux/include/linux/ufs_fs.h"
 struct ufs_timeval {
         __s32 tv_sec;
         __s32 tv_usec;
 };
 
 struct ufs_dir_entry {
         __u32 d_ino;
         __u16 d_reclen;
         union {
                 __u16 d_namlen;
                 struct {
                         __u8 d_type;
                         __u8 d_namlen;
                 } d_44;
         } d_u;
         __u8 d_name[255 + 1];
 };
 
 struct ufs_csum {
         __u32 cs_ndir;
         __u32 cs_nbfree;
         __u32 cs_nifree;
         __u32 cs_nffree;
 };
 
 
 
 
 struct ufs_super_block {
         __u32 fs_link;
         __u32 fs_rlink;
         __u32 fs_sblkno;
         __u32 fs_cblkno;
         __u32 fs_iblkno;
         __u32 fs_dblkno;
         __u32 fs_cgoffset;
         __u32 fs_cgmask;
         __u32 fs_time;
         __u32 fs_size;
         __u32 fs_dsize;
         __u32 fs_ncg;
         __u32 fs_bsize;
         __u32 fs_fsize;
         __u32 fs_frag;
 
         __u32 fs_minfree;
         __u32 fs_rotdelay;
         __u32 fs_rps;
 
         __u32 fs_bmask;
         __u32 fs_fmask;
         __u32 fs_bshift;
         __u32 fs_fshift;
 
         __u32 fs_maxcontig;
         __u32 fs_maxbpg;
 
         __u32 fs_fragshift;
         __u32 fs_fsbtodb;
         __u32 fs_sbsize;
         __u32 fs_csmask;
         __u32 fs_csshift;
         __u32 fs_nindir;
         __u32 fs_inopb;
         __u32 fs_nspf;
 
         __u32 fs_optim;
 
         union {
                 struct {
                         __u32 fs_npsect;
                 } fs_sun;
                 struct {
                         __s32 fs_state;
                 } fs_sunx86;
         } fs_u1;
         __u32 fs_interleave;
         __u32 fs_trackskew;
 
 
 
 
         __u32 fs_id[2];
 
         __u32 fs_csaddr;
         __u32 fs_cssize;
         __u32 fs_cgsize;
 
         __u32 fs_ntrak;
         __u32 fs_nsect;
         __u32 fs_spc;
 
         __u32 fs_ncyl;
 
         __u32 fs_cpg;
         __u32 fs_ipg;
         __u32 fs_fpg;
 
         struct ufs_csum fs_cstotal;
 
         __s8 fs_fmod;
         __s8 fs_clean;
         __s8 fs_ronly;
         __s8 fs_flags;
         __s8 fs_fsmnt[512];
 
         __u32 fs_cgrotor;
         __u32 fs_csp[31];
         __u32 fs_maxcluster;
         __u32 fs_cpc;
         __u16 fs_opostbl[16][8];
         union {
                 struct {
                         __s32 fs_sparecon[53];
                         __s32 fs_reclaim;
                         __s32 fs_sparecon2[1];
                         __s32 fs_state;
                         __u32 fs_qbmask[2];
                         __u32 fs_qfmask[2];
                 } fs_sun;
                 struct {
                         __s32 fs_sparecon[53];
                         __s32 fs_reclaim;
                         __s32 fs_sparecon2[1];
                         __u32 fs_npsect;
                         __u32 fs_qbmask[2];
                         __u32 fs_qfmask[2];
                 } fs_sunx86;
                 struct {
                         __s32 fs_sparecon[50];
                         __s32 fs_contigsumsize;
                         __s32 fs_maxsymlinklen;
                         __s32 fs_inodefmt;
                         __u32 fs_maxfilesize[2];
                         __u32 fs_qbmask[2];
                         __u32 fs_qfmask[2];
                         __s32 fs_state;
                 } fs_44;
         } fs_u2;
         __s32 fs_postblformat;
         __s32 fs_nrpos;
         __s32 fs_postbloff;
         __s32 fs_rotbloff;
         __s32 fs_magic;
         __u8 fs_space[1];
 };
 # 425 "/usr/src/linux/include/linux/ufs_fs.h"
 struct ufs_cylinder_group {
         __u32 cg_link;
         __u32 cg_magic;
         __u32 cg_time;
         __u32 cg_cgx;
         __u16 cg_ncyl;
         __u16 cg_niblk;
         __u32 cg_ndblk;
         struct ufs_csum cg_cs;
         __u32 cg_rotor;
         __u32 cg_frotor;
         __u32 cg_irotor;
         __u32 cg_frsum[(8192 / 1024)];
         __u32 cg_btotoff;
         __u32 cg_boff;
         __u32 cg_iusedoff;
         __u32 cg_freeoff;
         __u32 cg_nextfreeoff;
         union {
                 struct {
                         __u32 cg_clustersumoff;
                         __u32 cg_clusteroff;
                         __u32 cg_nclusterblks;
                         __u32 cg_sparecon[13];
                 } cg_44;
                 __u32 cg_sparecon[16];
         } cg_u;
         __u8 cg_space[1];
 
 };
 
 
 
 
 struct ufs_inode {
         __u16 ui_mode;
         __u16 ui_nlink;
         union {
                 struct {
                         __u16 ui_suid;
                         __u16 ui_sgid;
                 } oldids;
                 __u32 ui_inumber;
                 __u32 ui_author;
         } ui_u1;
         __u64 ui_size;
         struct ufs_timeval ui_atime;
         struct ufs_timeval ui_mtime;
         struct ufs_timeval ui_ctime;
         union {
                 struct {
                         __u32 ui_db[12];
                         __u32 ui_ib[3];
                 } ui_addr;
                 __u8 ui_symlink[4*(12 +3)];
         } ui_u2;
         __u32 ui_flags;
         __u32 ui_blocks;
         __u32 ui_gen;
         union {
                 struct {
                         __u32 ui_shadow;
                         __u32 ui_uid;
                         __u32 ui_gid;
                         __u32 ui_oeftflag;
                 } ui_sun;
                 struct {
                         __u32 ui_uid;
                         __u32 ui_gid;
                         __s32 ui_spare[2];
                 } ui_44;
                 struct {
                         __u32 ui_uid;
                         __u32 ui_gid;
                         __u16 ui_modeh;
                         __u16 ui_spare;
                         __u32 ui_trans;
                 } ui_hurd;
         } ui_u3;
 };
 # 524 "/usr/src/linux/include/linux/ufs_fs.h"
 extern void ufs_free_fragments (struct inode *, unsigned, unsigned);
 extern void ufs_free_blocks (struct inode *, unsigned, unsigned);
 extern unsigned ufs_new_fragments (struct inode *, u32 *, unsigned, unsig=
 ned, unsigned, int *);
 
 
 extern struct ufs_cg_private_info * ufs_load_cylinder (struct super_block=
  *, unsigned);
 extern void ufs_put_cylinder (struct super_block *, unsigned);
 
 
 extern struct inode_operations ufs_dir_inode_operations;
 extern int ufs_check_dir_entry (const char *, struct inode *, struct ufs_=
 dir_entry *, struct buffer_head *, unsigned long);
 
 
 extern struct inode_operations ufs_file_inode_operations;
 extern struct file_operations ufs_file_operations;
 
 extern struct address_space_operations ufs_aops;
 
 
 extern void ufs_free_inode (struct inode *inode);
 extern struct inode * ufs_new_inode (const struct inode *, int, int *);
 
 
 extern int ufs_frag_map (struct inode *, int);
 extern void ufs_read_inode (struct inode *);
 extern void ufs_put_inode (struct inode *);
 extern void ufs_write_inode (struct inode *, int);
 extern int ufs_sync_inode (struct inode *);
 extern void ufs_delete_inode (struct inode *);
 extern struct buffer_head * ufs_getfrag (struct inode *, unsigned, int, i=
 nt *);
 extern struct buffer_head * ufs_bread (struct inode *, unsigned, int, int=
  *);
 
 
 extern struct file_operations ufs_dir_operations;
 
 
 extern struct file_system_type ufs_fs_type;
 extern void ufs_warning (struct super_block *, const char *, const char *=
 , ...) __attribute__ ((format (printf, 3, 4)));
 extern void ufs_error (struct super_block *, const char *, const char *, =
 =2E..) __attribute__ ((format (printf, 3, 4)));
 extern void ufs_panic (struct super_block *, const char *, const char *, =
 =2E..) __attribute__ ((format (printf, 3, 4)));
 extern void ufs_write_super (struct super_block *);
 
 
 extern struct inode_operations ufs_fast_symlink_inode_operations;
 
 
 extern void ufs_truncate (struct inode *);
 # 18 "/usr/src/linux/include/linux/ufs_fs_sb.h" 2
 
 
 
 
 
 struct ufs_buffer_head {
         unsigned fragment;
         unsigned count;
         struct buffer_head * bh[(8192 / 1024)];
 };
 
 struct ufs_cg_private_info {
         struct ufs_cylinder_group ucg;
         __u32 c_cgx;
         __u16 c_ncyl;
         __u16 c_niblk;
         __u32 c_ndblk;
         __u32 c_rotor;
         __u32 c_frotor;
         __u32 c_irotor;
         __u32 c_btotoff;
         __u32 c_boff;
         __u32 c_iusedoff;
         __u32 c_freeoff;
         __u32 c_nextfreeoff;
         __u32 c_clustersumoff;
         __u32 c_clusteroff;
         __u32 c_nclusterblks;
 };
 
 struct ufs_sb_private_info {
         struct ufs_buffer_head s_ubh;
         __u32 s_sblkno;
         __u32 s_cblkno;
         __u32 s_iblkno;
         __u32 s_dblkno;
         __u32 s_cgoffset;
         __u32 s_cgmask;
         __u32 s_size;
         __u32 s_dsize;
         __u32 s_ncg;
         __u32 s_bsize;
         __u32 s_fsize;
         __u32 s_fpb;
         __u32 s_minfree;
         __u32 s_bmask;
         __u32 s_fmask;
         __u32 s_bshift;
         __u32 s_fshift;
         __u32 s_fpbshift;
         __u32 s_fsbtodb;
         __u32 s_sbsize;
         __u32 s_csmask;
         __u32 s_csshift;
         __u32 s_nindir;
         __u32 s_inopb;
         __u32 s_nspf;
         __u32 s_npsect;
         __u32 s_interleave;
         __u32 s_trackskew;
         __u32 s_csaddr;
         __u32 s_cssize;
         __u32 s_cgsize;
         __u32 s_ntrak;
         __u32 s_nsect;
         __u32 s_spc;
         __u32 s_ipg;
         __u32 s_fpg;
         __u32 s_cpc;
         __s32 s_contigsumsize;
         __s64 s_qbmask;
         __s64 s_qfmask;
         __s32 s_postblformat;
         __s32 s_nrpos;
         __s32 s_postbloff;
         __s32 s_rotbloff;
 
         __u32 s_fpbmask;
         __u32 s_apb;
         __u32 s_2apb;
         __u32 s_3apb;
         __u32 s_apbmask;
         __u32 s_apbshift;
         __u32 s_2apbshift;
         __u32 s_3apbshift;
         __u32 s_nspfshift;
         __u32 s_nspb;
         __u32 s_inopf;
         __u32 s_sbbase;
         __u32 s_bpf;
         __u32 s_bpfshift;
         __u32 s_bpfmask;
 
         __u32 s_maxsymlinklen;
 };
 
 
 
 
 
 struct ufs_sb_info {
         struct ufs_sb_private_info * s_uspi;
         struct ufs_csum * s_csp[31];
         unsigned s_swab;
         unsigned s_flags;
         struct buffer_head ** s_ucg;
         struct ufs_cg_private_info * s_ucpi[8];
         unsigned s_cgno[8];
         unsigned short s_cg_loaded;
         unsigned s_mount_opt;
 };
 
 
 
 
 
 
 
 struct ufs_super_block_first {
         __u32 fs_link;
         __u32 fs_rlink;
         __u32 fs_sblkno;
         __u32 fs_cblkno;
         __u32 fs_iblkno;
         __u32 fs_dblkno;
         __u32 fs_cgoffset;
         __u32 fs_cgmask;
         __u32 fs_time;
         __u32 fs_size;
         __u32 fs_dsize;
         __u32 fs_ncg;
         __u32 fs_bsize;
         __u32 fs_fsize;
         __u32 fs_frag;
         __u32 fs_minfree;
         __u32 fs_rotdelay;
         __u32 fs_rps;
         __u32 fs_bmask;
         __u32 fs_fmask;
         __u32 fs_bshift;
         __u32 fs_fshift;
         __u32 fs_maxcontig;
         __u32 fs_maxbpg;
         __u32 fs_fragshift;
         __u32 fs_fsbtodb;
         __u32 fs_sbsize;
         __u32 fs_csmask;
         __u32 fs_csshift;
         __u32 fs_nindir;
         __u32 fs_inopb;
         __u32 fs_nspf;
         __u32 fs_optim;
         union {
                 struct {
                         __u32 fs_npsect;
                 } fs_sun;
                 struct {
                         __s32 fs_state;
                 } fs_sunx86;
         } fs_u1;
         __u32 fs_interleave;
         __u32 fs_trackskew;
         __u32 fs_id[2];
         __u32 fs_csaddr;
         __u32 fs_cssize;
         __u32 fs_cgsize;
         __u32 fs_ntrak;
         __u32 fs_nsect;
         __u32 fs_spc;
         __u32 fs_ncyl;
         __u32 fs_cpg;
         __u32 fs_ipg;
         __u32 fs_fpg;
         struct ufs_csum fs_cstotal;
         __s8 fs_fmod;
         __s8 fs_clean;
         __s8 fs_ronly;
         __s8 fs_flags;
         __s8 fs_fsmnt[512 - 212];
 
 };
 
 struct ufs_super_block_second {
         __s8 fs_fsmnt[212];
         __u32 fs_cgrotor;
         __u32 fs_csp[31];
         __u32 fs_maxcluster;
         __u32 fs_cpc;
         __u16 fs_opostbl[82];
 };
 
 struct ufs_super_block_third {
         __u16 fs_opostbl[46];
         union {
                 struct {
                         __s32 fs_sparecon[53];
                         __s32 fs_reclaim;
                         __s32 fs_sparecon2[1];
                         __s32 fs_state;
                         __u32 fs_qbmask[2];
                         __u32 fs_qfmask[2];
                 } fs_sun;
                 struct {
                         __s32 fs_sparecon[53];
                         __s32 fs_reclaim;
                         __s32 fs_sparecon2[1];
                         __u32 fs_npsect;
                         __u32 fs_qbmask[2];
                         __u32 fs_qfmask[2];
                 } fs_sunx86;
                 struct {
                         __s32 fs_sparecon[50];
                         __s32 fs_contigsumsize;
                         __s32 fs_maxsymlinklen;
                         __s32 fs_inodefmt;
                         __u32 fs_maxfilesize[2];
                         __u32 fs_qbmask[2];
                         __u32 fs_qfmask[2];
                         __s32 fs_state;
                 } fs_44;
         } fs_u2;
         __s32 fs_postblformat;
         __s32 fs_nrpos;
         __s32 fs_postbloff;
         __s32 fs_rotbloff;
         __s32 fs_magic;
         __u8 fs_space[1];
 };
 # 667 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/efs_fs_sb.h" 1
 # 25 "/usr/src/linux/include/linux/efs_fs_sb.h"
 struct efs_super {
         int32_t fs_size;
         int32_t fs_firstcg;
         int32_t fs_cgfsize;
         short fs_cgisize;
         short fs_sectors;
         short fs_heads;
         short fs_ncg;
         short fs_dirty;
         int32_t fs_time;
         int32_t fs_magic;
         char fs_fname[6];
         char fs_fpack[6];
         int32_t fs_bmsize;
         int32_t fs_tfree;
         int32_t fs_tinode;
         int32_t fs_bmblock;
         int32_t fs_replsb;
         int32_t fs_lastialloc;
         char fs_spare[20];
         int32_t fs_checksum;
 };
 
 
 struct efs_sb_info {
         int32_t fs_magic;
         int32_t fs_start;
         int32_t first_block;
         int32_t total_blocks;
         int32_t group_size;
         int32_t data_free;
         int32_t inode_free;
         short inode_blocks;
         short total_groups;
 };
 # 668 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/romfs_fs_sb.h" 1
 
 
 
 
 
 struct romfs_sb_info {
         unsigned long s_maxsize;
 };
 # 669 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/smb_fs_sb.h" 1
 # 14 "/usr/src/linux/include/linux/smb_fs_sb.h"
 # 1 "/usr/src/linux/include/linux/types.h" 1
 # 15 "/usr/src/linux/include/linux/smb_fs_sb.h" 2
 # 1 "/usr/src/linux/include/linux/smb.h" 1
 # 12 "/usr/src/linux/include/linux/smb.h"
 # 1 "/usr/src/linux/include/linux/types.h" 1
 # 13 "/usr/src/linux/include/linux/smb.h" 2
 
 enum smb_protocol {
         SMB_PROTOCOL_NONE,
         SMB_PROTOCOL_CORE,
         SMB_PROTOCOL_COREPLUS,
         SMB_PROTOCOL_LANMAN1,
         SMB_PROTOCOL_LANMAN2,
         SMB_PROTOCOL_NT1
 };
 
 enum smb_case_hndl {
         SMB_CASE_DEFAULT,
         SMB_CASE_LOWER,
         SMB_CASE_UPPER
 };
 
 struct smb_dskattr {
         __u16 total;
         __u16 allocblocks;
         __u16 blocksize;
         __u16 free;
 };
 
 struct smb_conn_opt {
 
 
         unsigned int fd;
 
         enum smb_protocol protocol;
         enum smb_case_hndl case_handling;
 
 
 
         __u32 max_xmit;
         __u16 server_uid;
         __u16 tid;
 
 
         __u16 secmode;
         __u16 maxmux;
         __u16 maxvcs;
         __u16 rawmode;
         __u32 sesskey;
 
 
         __u32 maxraw;
         __u32 capabilities;
         __s16 serverzone;
 };
 
 
 
 
 struct smb_nls_codepage {
         char local_name[20];
         char remote_name[20];
 };
 # 78 "/usr/src/linux/include/linux/smb.h"
 struct smb_fattr {
 
         __u16 attr;
 
         unsigned long f_ino;
         umode_t f_mode;
         nlink_t f_nlink;
         uid_t f_uid;
         gid_t f_gid;
         kdev_t f_rdev;
         off_t f_size;
         time_t f_atime;
         time_t f_mtime;
         time_t f_ctime;
         unsigned long f_blksize;
         unsigned long f_blocks;
 };
 
 enum smb_conn_state {
         CONN_VALID,
         CONN_INVALID,
 
         CONN_RETRIED,
         CONN_RETRYING
 };
 # 16 "/usr/src/linux/include/linux/smb_fs_sb.h" 2
 
 
 
 
 
 
 
 struct smb_sb_info {
         enum smb_conn_state state;
         struct file * sock_file;
 
         struct smb_mount_data_kernel *mnt;
         unsigned char *temp_buf;
 
 
 
 
         unsigned int generation;
         pid_t conn_pid;
         struct smb_conn_opt opt;
 
         struct semaphore sem;
         wait_queue_head_t wait;
 
         __u32 packet_size;
         unsigned char * packet;
         unsigned short rcls;
         unsigned short err;
 
 
         void *data_ready;
 
 
         struct nls_table *remote_nls;
         struct nls_table *local_nls;
 
 
 
 
         char *name_buf;
 
         int (*convert)(char *, int, const char *, int,
                        struct nls_table *, struct nls_table *);
 };
 
 
 static inline void
 smb_lock_server(struct smb_sb_info *server)
 {
         down(&(server->sem));
 }
 
 static inline void
 smb_unlock_server(struct smb_sb_info *server)
 {
         up(&(server->sem));
 }
 # 670 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/hfs_fs_sb.h" 1
 # 15 "/usr/src/linux/include/linux/hfs_fs_sb.h"
 struct hfs_name;
 
 typedef int (*hfs_namein_fn) (char *, const struct hfs_name *);
 typedef void (*hfs_nameout_fn) (struct hfs_name *, const char *, int);
 typedef void (*hfs_ifill_fn) (struct inode *, ino_t, const int);
 
 
 
 
 
 
 struct hfs_sb_info {
         int magic;
         struct hfs_mdb *s_mdb;
         int s_quiet;
 
         int s_lowercase;
         int s_afpd;
         int s_version;
         hfs_namein_fn s_namein;
 
 
         hfs_nameout_fn s_nameout;
 
 
         hfs_ifill_fn s_ifill;
 
         const struct hfs_name *s_reserved1;
         const struct hfs_name *s_reserved2;
         __u32 s_type;
         __u32 s_creator;
         umode_t s_umask;
 
         uid_t s_uid;
         gid_t s_gid;
         char s_conv;
 };
 # 671 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/adfs_fs_sb.h" 1
 # 13 "/usr/src/linux/include/linux/adfs_fs_sb.h"
 struct adfs_discmap;
 struct adfs_dir_ops;
 
 
 
 
 struct adfs_sb_info {
         struct adfs_discmap *s_map;
         struct adfs_dir_ops *s_dir;
 
         uid_t s_uid;
         gid_t s_gid;
         umode_t s_owner_mask;
         umode_t s_other_mask;
 
         __u32 s_ids_per_zone;
         __u32 s_idlen;
         __u32 s_map_size;
         unsigned long s_size;
         signed int s_map2blk;
         unsigned int s_log2sharesize;
         unsigned int s_version;
         unsigned int s_namelen;
 };
 # 672 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/qnx4_fs_sb.h" 1
 # 14 "/usr/src/linux/include/linux/qnx4_fs_sb.h"
 # 1 "/usr/src/linux/include/linux/qnx4_fs.h" 1
 # 13 "/usr/src/linux/include/linux/qnx4_fs.h"
 # 1 "/usr/src/linux/include/linux/qnxtypes.h" 1
 # 14 "/usr/src/linux/include/linux/qnx4_fs.h" 2
 # 45 "/usr/src/linux/include/linux/qnx4_fs.h"
 struct qnx4_inode_entry {
         char di_fname[16];
         qnx4_off_t di_size;
         qnx4_xtnt_t di_first_xtnt;
         __u32 di_xblk;
         __s32 di_ftime;
         __s32 di_mtime;
         __s32 di_atime;
         __s32 di_ctime;
         qnx4_nxtnt_t di_num_xtnts;
         qnx4_mode_t di_mode;
         qnx4_muid_t di_uid;
         qnx4_mgid_t di_gid;
         qnx4_nlink_t di_nlink;
         __u8 di_zero[4];
         qnx4_ftype_t di_type;
         __u8 di_status;
 };
 
 struct qnx4_link_info {
         char dl_fname[48];
         __u32 dl_inode_blk;
         __u8 dl_inode_ndx;
         __u8 dl_spare[10];
         __u8 dl_status;
 };
 
 struct qnx4_xblk {
         __u32 xblk_next_xblk;
         __u32 xblk_prev_xblk;
         __u8 xblk_num_xtnts;
         __u8 xblk_spare[3];
         __s32 xblk_num_blocks;
         qnx4_xtnt_t xblk_xtnts[60];
         char xblk_signature[8];
         qnx4_xtnt_t xblk_first_xtnt;
 };
 
 struct qnx4_super_block {
         struct qnx4_inode_entry RootDir;
         struct qnx4_inode_entry Inode;
         struct qnx4_inode_entry Boot;
         struct qnx4_inode_entry AltBoot;
 };
 # 100 "/usr/src/linux/include/linux/qnx4_fs.h"
 extern struct dentry *qnx4_lookup(struct inode *dir, struct dentry *dentr=
 y);
 extern unsigned long qnx4_count_free_blocks(struct super_block *sb);
 extern unsigned long qnx4_block_map(struct inode *inode, long iblock);
 
 extern struct buffer_head *qnx4_getblk(struct inode *, int, int);
 extern struct buffer_head *qnx4_bread(struct inode *, int, int);
 
 extern int qnx4_create(struct inode *dir, struct dentry *dentry, int mode=
 );
 extern struct inode_operations qnx4_file_inode_operations;
 extern struct inode_operations qnx4_dir_inode_operations;
 extern struct file_operations qnx4_file_operations;
 extern struct file_operations qnx4_dir_operations;
 extern int qnx4_is_free(struct super_block *sb, long block);
 extern int qnx4_set_bitmap(struct super_block *sb, long block, int busy);=
 
 extern int qnx4_create(struct inode *inode, struct dentry *dentry, int mo=
 de);
 extern void qnx4_truncate(struct inode *inode);
 extern void qnx4_free_inode(struct inode *inode);
 extern int qnx4_unlink(struct inode *dir, struct dentry *dentry);
 extern int qnx4_rmdir(struct inode *dir, struct dentry *dentry);
 extern int qnx4_sync_file(struct file *file, struct dentry *dentry, int);=
 
 extern int qnx4_sync_inode(struct inode *inode);
 extern int qnx4_get_block(struct inode *inode, long iblock, struct buffer=
 _head *bh, int create);
 # 15 "/usr/src/linux/include/linux/qnx4_fs_sb.h" 2
 
 
 
 
 
 struct qnx4_sb_info {
         struct buffer_head *sb_buf;
         struct qnx4_super_block *sb;
         unsigned int Version;
         struct qnx4_inode_entry *BitMap;
 };
 # 673 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/reiserfs_fs_sb.h" 1
 
 
 
 
 
 
 
 # 1 "/usr/src/linux/include/linux/tqueue.h" 1
 # 16 "/usr/src/linux/include/linux/tqueue.h"
 # 1 "/usr/src/linux/include/linux/spinlock.h" 1
 # 17 "/usr/src/linux/include/linux/tqueue.h" 2
 # 1 "/usr/src/linux/include/linux/list.h" 1
 # 18 "/usr/src/linux/include/linux/tqueue.h" 2
 # 1 "/usr/src/linux/include/asm/bitops.h" 1
 # 19 "/usr/src/linux/include/linux/tqueue.h" 2
 # 1 "/usr/src/linux/include/asm/system.h" 1
 # 20 "/usr/src/linux/include/linux/tqueue.h" 2
 # 38 "/usr/src/linux/include/linux/tqueue.h"
 struct tq_struct {
         struct list_head list;
         unsigned long sync;
         void (*routine)(void *);
         void *data;
 };
 # 64 "/usr/src/linux/include/linux/tqueue.h"
 typedef struct list_head task_queue;
 
 
 
 
 extern task_queue tq_timer, tq_immediate, tq_disk;
 # 94 "/usr/src/linux/include/linux/tqueue.h"
 extern spinlock_t tqueue_lock;
 
 
 
 
 
 static inline int queue_task(struct tq_struct *bh_pointer, task_queue *bh=
 _list)
 {
         int ret =3D 0;
         if (!test_and_set_bit(0,&bh_pointer->sync)) {
                 unsigned long flags;
                 do { __asm__ __volatile__("pushfl ; popl %0 ; cli":"=3Dg"=
  (flags): :"memory"); (void)(&tqueue_lock); } while (0);
                 list_add_tail(&bh_pointer->list, bh_list);
                 do { do { } while(0); __asm__ __volatile__("pushl %0 ; po=
 pfl": :"g" (flags):"memory", "cc"); } while (0);
                 ret =3D 1;
         }
         return ret;
 }
 
 
 
 
 
 extern void __run_task_queue(task_queue *list);
 
 static inline void run_task_queue(task_queue *list)
 {
         if ((!list_empty(&*list)))
                 __run_task_queue(list);
 }
 # 9 "/usr/src/linux/include/linux/reiserfs_fs_sb.h" 2
 # 26 "/usr/src/linux/include/linux/reiserfs_fs_sb.h"
 struct reiserfs_super_block
 {
   __u32 s_block_count;
   __u32 s_free_blocks;
   __u32 s_root_block;
   __u32 s_journal_block;
   __u32 s_journal_dev;
 # 43 "/usr/src/linux/include/linux/reiserfs_fs_sb.h"
   __u32 s_orig_journal_size;
   __u32 s_journal_trans_max ;
   __u32 s_journal_block_count ;
   __u32 s_journal_max_batch ;
   __u32 s_journal_max_commit_age ;
   __u32 s_journal_max_trans_age ;
   __u16 s_blocksize;
   __u16 s_oid_maxsize;
   __u16 s_oid_cursize;
   __u16 s_state;
   char s_magic[12];
   __u32 s_hash_function_code;
   __u16 s_tree_height;
   __u16 s_bmap_nr;
   __u16 s_version;
 
 
 
 
   __u16 s_reserved;
   __u32 s_inode_generation;
   char s_unused[124] ;
 } __attribute__ ((__packed__));
 
 
 
 
 struct reiserfs_super_block_v1
 {
   __u32 s_block_count;
   __u32 s_free_blocks;
   __u32 s_root_block;
   __u32 s_journal_block;
   __u32 s_journal_dev;
   __u32 s_orig_journal_size;
   __u32 s_journal_trans_max ;
   __u32 s_journal_block_count ;
   __u32 s_journal_max_batch ;
   __u32 s_journal_max_commit_age ;
   __u32 s_journal_max_trans_age ;
   __u16 s_blocksize;
   __u16 s_oid_maxsize;
   __u16 s_oid_cursize;
   __u16 s_state;
   char s_magic[16];
   __u16 s_tree_height;
   __u16 s_bmap_nr;
   __u32 s_reserved;
 } __attribute__ ((__packed__));
 # 149 "/usr/src/linux/include/linux/reiserfs_fs_sb.h"
 struct reiserfs_journal_cnode {
   struct buffer_head *bh ;
   kdev_t dev ;
   unsigned long blocknr ;
   int state ;
   struct reiserfs_journal_list *jlist ;
   struct reiserfs_journal_cnode *next ;
   struct reiserfs_journal_cnode *prev ;
   struct reiserfs_journal_cnode *hprev ;
   struct reiserfs_journal_cnode *hnext ;
 };
 
 struct reiserfs_bitmap_node {
   int id ;
   char *data ;
   struct list_head list ;
 } ;
 
 struct reiserfs_list_bitmap {
   struct reiserfs_journal_list *journal_list ;
   struct reiserfs_bitmap_node **bitmaps ;
 } ;
 
 
 
 
 struct reiserfs_transaction_handle {
 
   char *t_caller ;
   int t_blocks_logged ;
   int t_blocks_allocated ;
   unsigned long t_trans_id ;
   struct super_block *t_super ;
 
 
 } ;
 
 
 
 
 
 
 
 struct reiserfs_journal_list {
   unsigned long j_start ;
   unsigned long j_len ;
   atomic_t j_nonzerolen ;
   atomic_t j_commit_left ;
   atomic_t j_flushing ;
   atomic_t j_commit_flushing ;
   atomic_t j_older_commits_done ;
   unsigned long j_trans_id ;
   time_t j_timestamp ;
   struct reiserfs_list_bitmap *j_list_bitmap ;
   struct buffer_head *j_commit_bh ;
   struct reiserfs_journal_cnode *j_realblock ;
   struct reiserfs_journal_cnode *j_freedlist ;
   wait_queue_head_t j_commit_wait ;
   wait_queue_head_t j_flush_wait ;
 } ;
 
 struct reiserfs_page_list ;
 
 struct reiserfs_journal {
   struct buffer_head ** j_ap_blocks ;
   struct reiserfs_journal_cnode *j_last ;
   struct reiserfs_journal_cnode *j_first ;
 
   int j_state ;
   unsigned long j_trans_id ;
   unsigned long j_mount_id ;
   unsigned long j_start ;
   unsigned long j_len ;
   unsigned long j_len_alloc ;
   atomic_t j_wcount ;
   unsigned long j_bcount ;
   unsigned long j_first_unflushed_offset ;
   unsigned long j_last_flush_trans_id ;
   struct buffer_head *j_header_bh ;
 
 
 
 
   struct reiserfs_page_list *j_flush_pages ;
   time_t j_trans_start_time ;
   wait_queue_head_t j_wait ;
   atomic_t j_wlock ;
   wait_queue_head_t j_join_wait ;
   atomic_t j_jlock ;
   int j_journal_list_index ;
   int j_list_bitmap_index ;
   int j_must_wait ;
   int j_next_full_flush ;
   int j_next_async_flush ;
 
   int j_cnode_used ;
   int j_cnode_free ;
 
   struct reiserfs_journal_cnode *j_cnode_free_list ;
   struct reiserfs_journal_cnode *j_cnode_free_orig ;
 
   int j_free_bitmap_nodes ;
   int j_used_bitmap_nodes ;
   struct list_head j_bitmap_nodes ;
   struct inode j_dummy_inode ;
   struct reiserfs_list_bitmap j_list_bitmap[5] ;
   struct reiserfs_journal_list j_journal_list[64] ;
   struct reiserfs_journal_cnode *j_hash_table[8192] ;
   struct reiserfs_journal_cnode *j_list_hash_table[8192] ;
 
   struct list_head j_prealloc_list;
 };
 
 
 
 
 typedef __u32 (*hashf_t) (const char *, int);
 
 
 struct reiserfs_sb_info
 {
     struct buffer_head * s_sbh;
 
 
     struct reiserfs_super_block * s_rs;
     struct buffer_head ** s_ap_bitmap;
     struct reiserfs_journal *s_journal ;
     unsigned short s_mount_state;
 
 
     void (*end_io_handler)(struct buffer_head *, int);
     hashf_t s_hash_function;
 
 
     unsigned long s_mount_opt;
 
 
 
 
     wait_queue_head_t s_wait;
 
     atomic_t s_generation_counter;
 
 
 
     int s_kmallocs;
     int s_disk_reads;
     int s_disk_writes;
     int s_fix_nodes;
     int s_do_balance;
     int s_unneeded_left_neighbor;
     int s_good_search_by_key_reada;
     int s_bmaps;
     int s_bmaps_without_search;
     int s_direct2indirect;
     int s_indirect2direct;
 };
 # 360 "/usr/src/linux/include/linux/reiserfs_fs_sb.h"
 void reiserfs_file_buffer (struct buffer_head * bh, int list);
 int reiserfs_is_super(struct super_block *s) ;
 int journal_mark_dirty(struct reiserfs_transaction_handle *, struct super=
 _block *, struct buffer_head *bh) ;
 int flush_old_commits(struct super_block *s, int) ;
 int show_reiserfs_locks(void) ;
 int reiserfs_resize(struct super_block *, unsigned long) ;
 # 674 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/bfs_fs_sb.h" 1
 # 12 "/usr/src/linux/include/linux/bfs_fs_sb.h"
 struct bfs_sb_info {
         unsigned long si_blocks;
         unsigned long si_freeb;
         unsigned long si_freei;
         unsigned long si_lf_ioff;
         unsigned long si_lf_sblk;
         unsigned long si_lf_eblk;
         unsigned long si_lasti;
         char * si_imap;
         struct buffer_head * si_sbh;
         struct bfs_super_block * si_bfs_sb;
 };
 # 675 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/udf_fs_sb.h" 1
 # 22 "/usr/src/linux/include/linux/udf_fs_sb.h"
 # 1 "/usr/src/linux/include/linux/version.h" 1
 # 23 "/usr/src/linux/include/linux/udf_fs_sb.h" 2
 
 
 #pragma pack(1)
 # 34 "/usr/src/linux/include/linux/udf_fs_sb.h"
 struct udf_sparing_data
 {
         __u16 s_packet_len;
         struct buffer_head *s_spar_map[4];
 };
 
 struct udf_virtual_data
 {
         __u32 s_num_entries;
         __u16 s_start_offset;
 };
 
 struct udf_bitmap
 {
         __u32 s_extLength;
         __u32 s_extPosition;
         __u16 s_nr_groups;
         struct buffer_head **s_block_bitmap;
 };
 
 struct udf_part_map
 {
         union
         {
                 struct udf_bitmap *s_bitmap;
                 struct inode *s_table;
         } s_uspace;
         union
         {
                 struct udf_bitmap *s_bitmap;
                 struct inode *s_table;
         } s_fspace;
         __u32 s_partition_root;
         __u32 s_partition_len;
         __u16 s_partition_type;
         __u16 s_partition_num;
         union
         {
                 struct udf_sparing_data s_sparing;
                 struct udf_virtual_data s_virtual;
         } s_type_specific;
         __u32 (*s_partition_func)(struct super_block *, __u32, __u16, __u=
 32);
         __u16 s_volumeseqnum;
         __u16 s_partition_flags;
 };
 
 #pragma pack()
 
 struct udf_sb_info
 {
         struct udf_part_map *s_partmaps;
         __u8 s_volident[32];
 
 
         __u16 s_partitions;
         __u16 s_partition;
 
 
         __u32 s_session;
         __u32 s_anchor[4];
         __u32 s_lastblock;
 
         struct buffer_head *s_lvidbh;
 
 
         mode_t s_umask;
         gid_t s_gid;
         uid_t s_uid;
 
 
         time_t s_recordtime;
 
 
         __u16 s_serialnum;
 
 
         __u16 s_udfrev;
 
 
         __u32 s_flags;
 
 
         struct nls_table *s_nls_map;
 
 
         struct inode *s_vat;
 };
 # 676 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/ncp_fs_sb.h" 1
 # 11 "/usr/src/linux/include/linux/ncp_fs_sb.h"
 # 1 "/usr/src/linux/include/linux/types.h" 1
 # 12 "/usr/src/linux/include/linux/ncp_fs_sb.h" 2
 # 1 "/usr/src/linux/include/linux/ncp_mount.h" 1
 # 11 "/usr/src/linux/include/linux/ncp_mount.h"
 # 1 "/usr/src/linux/include/linux/types.h" 1
 # 12 "/usr/src/linux/include/linux/ncp_mount.h" 2
 # 1 "/usr/src/linux/include/linux/ncp.h" 1
 # 13 "/usr/src/linux/include/linux/ncp.h"
 # 1 "/usr/src/linux/include/linux/types.h" 1
 # 14 "/usr/src/linux/include/linux/ncp.h" 2
 # 22 "/usr/src/linux/include/linux/ncp.h"
 struct ncp_request_header {
         __u16 type __attribute__((packed));
         __u8 sequence __attribute__((packed));
         __u8 conn_low __attribute__((packed));
         __u8 task __attribute__((packed));
         __u8 conn_high __attribute__((packed));
         __u8 function __attribute__((packed));
         __u8 data[0] __attribute__((packed));
 };
 
 
 
 
 struct ncp_reply_header {
         __u16 type __attribute__((packed));
         __u8 sequence __attribute__((packed));
         __u8 conn_low __attribute__((packed));
         __u8 task __attribute__((packed));
         __u8 conn_high __attribute__((packed));
         __u8 completion_code __attribute__((packed));
         __u8 connection_state __attribute__((packed));
         __u8 data[0] __attribute__((packed));
 };
 
 
 
 struct ncp_volume_info {
         __u32 total_blocks;
         __u32 free_blocks;
         __u32 purgeable_blocks;
         __u32 not_yet_purgeable_blocks;
         __u32 total_dir_entries;
         __u32 available_dir_entries;
         __u8 sectors_per_block;
         char volume_name[(16) + 1];
 };
 # 112 "/usr/src/linux/include/linux/ncp.h"
 struct nw_info_struct {
         __u32 spaceAlloc __attribute__((packed));
         __u32 attributes __attribute__((packed));
         __u16 flags __attribute__((packed));
         __u32 dataStreamSize __attribute__((packed));
         __u32 totalStreamSize __attribute__((packed));
         __u16 numberOfStreams __attribute__((packed));
         __u16 creationTime __attribute__((packed));
         __u16 creationDate __attribute__((packed));
         __u32 creatorID __attribute__((packed));
         __u16 modifyTime __attribute__((packed));
         __u16 modifyDate __attribute__((packed));
         __u32 modifierID __attribute__((packed));
         __u16 lastAccessDate __attribute__((packed));
         __u16 archiveTime __attribute__((packed));
         __u16 archiveDate __attribute__((packed));
         __u32 archiverID __attribute__((packed));
         __u16 inheritedRightsMask __attribute__((packed));
         __u32 dirEntNum __attribute__((packed));
         __u32 DosDirNum __attribute__((packed));
         __u32 volNumber __attribute__((packed));
         __u32 EADataSize __attribute__((packed));
         __u32 EAKeyCount __attribute__((packed));
         __u32 EAKeySize __attribute__((packed));
         __u32 NSCreator __attribute__((packed));
         __u8 nameLen __attribute__((packed));
         __u8 entryName[256] __attribute__((packed));
 };
 # 156 "/usr/src/linux/include/linux/ncp.h"
 struct nw_modify_dos_info {
         __u32 attributes __attribute__((packed));
         __u16 creationDate __attribute__((packed));
         __u16 creationTime __attribute__((packed));
         __u32 creatorID __attribute__((packed));
         __u16 modifyDate __attribute__((packed));
         __u16 modifyTime __attribute__((packed));
         __u32 modifierID __attribute__((packed));
         __u16 archiveDate __attribute__((packed));
         __u16 archiveTime __attribute__((packed));
         __u32 archiverID __attribute__((packed));
         __u16 lastAccessDate __attribute__((packed));
         __u16 inheritanceGrantMask __attribute__((packed));
         __u16 inheritanceRevokeMask __attribute__((packed));
         __u32 maximumSpace __attribute__((packed));
 };
 
 struct nw_search_sequence {
         __u8 volNumber __attribute__((packed));
         __u32 dirBase __attribute__((packed));
         __u32 sequence __attribute__((packed));
 };
 # 13 "/usr/src/linux/include/linux/ncp_mount.h" 2
 # 25 "/usr/src/linux/include/linux/ncp_mount.h"
 struct ncp_mount_data {
         int version;
         unsigned int ncp_fd;
         __kernel_uid_t mounted_uid;
         __kernel_pid_t wdog_pid;
 
         unsigned char mounted_vol[(16) + 1];
         unsigned int time_out;
 
         unsigned int retry_count;
         unsigned int flags;
 
         __kernel_uid_t uid;
         __kernel_gid_t gid;
         __kernel_mode_t file_mode;
         __kernel_mode_t dir_mode;
 };
 
 
 
 struct ncp_mount_data_v4 {
         int version;
         unsigned long flags;
 
 
         unsigned long mounted_uid;
 
         long wdog_pid;
 
         unsigned int ncp_fd;
         unsigned int time_out;
 
         unsigned int retry_count;
 
 
 
         unsigned long uid;
         unsigned long gid;
 
         unsigned long file_mode;
         unsigned long dir_mode;
 };
 
 
 
 struct ncp_mount_data_kernel {
         unsigned long flags;
         unsigned int int_flags;
 
         __kernel_uid32_t mounted_uid;
         __kernel_pid_t wdog_pid;
         unsigned int ncp_fd;
         unsigned int time_out;
 
         unsigned int retry_count;
         unsigned char mounted_vol[(16) + 1];
         __kernel_uid32_t uid;
         __kernel_gid32_t gid;
         __kernel_mode_t file_mode;
         __kernel_mode_t dir_mode;
 };
 # 13 "/usr/src/linux/include/linux/ncp_fs_sb.h" 2
 
 
 
 
 
 struct ncp_server {
 
         struct ncp_mount_data_kernel m;
 
 
 
         __u8 name_space[(64) + 2];
 
         struct file *ncp_filp;
 
         u8 sequence;
         u8 task;
         u16 connection;
 
         u8 completion;
         u8 conn_status;
 
 
 
         int buffer_size;
 
         int reply_size;
 
         int packet_size;
         unsigned char *packet;
 
 
         int lock;
         struct semaphore sem;
 
         int current_size;
         int has_subfunction;
         int ncp_reply_size;
 
         int root_setuped;
 
 
         int sign_wanted;
         int sign_active;
         char sign_root[8];
         char sign_last[16];
 
 
         struct {
                 int auth_type;
                 size_t object_name_len;
                 void* object_name;
                 int object_type;
         } auth;
 
         struct {
                 size_t len;
                 void* data;
         } priv;
 
 
         struct nls_table *nls_vol;
         struct nls_table *nls_io;
 
 
         int dentry_ttl;
 
 
         unsigned int flags;
 };
 # 92 "/usr/src/linux/include/linux/ncp_fs_sb.h"
 static inline int ncp_conn_valid(struct ncp_server *server)
 {
         return ((server->conn_status & 0x11) =3D=3D 0);
 }
 
 static inline void ncp_invalidate_conn(struct ncp_server *server)
 {
         server->conn_status |=3D 0x01;
 }
 # 677 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/usbdev_fs_sb.h" 1
 struct usbdev_sb_info {
         struct list_head slist;
         struct list_head ilist;
         uid_t devuid;
         gid_t devgid;
         umode_t devmode;
         uid_t busuid;
         gid_t busgid;
         umode_t busmode;
         uid_t listuid;
         gid_t listgid;
         umode_t listmode;
 };
 # 678 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/cramfs_fs_sb.h" 1
 # 679 "/usr/src/linux/include/linux/fs.h" 2
 # 1 "/usr/src/linux/include/linux/jffs2_fs_sb.h" 1
 
 
 
 
 
 # 1 "/usr/src/linux/include/linux/types.h" 1
 # 7 "/usr/src/linux/include/linux/jffs2_fs_sb.h" 2
 # 1 "/usr/src/linux/include/linux/spinlock.h" 1
 # 8 "/usr/src/linux/include/linux/jffs2_fs_sb.h" 2
 # 1 "/usr/src/linux/include/linux/completion.h" 1
 # 11 "/usr/src/linux/include/linux/completion.h"
 # 1 "/usr/src/linux/include/linux/wait.h" 1
 # 12 "/usr/src/linux/include/linux/completion.h" 2
 
 struct completion {
         unsigned int done;
         wait_queue_head_t wait;
 };
 
 
 
 
 
 
 
 static inline void init_completion(struct completion *x)
 {
         x->done =3D 0;
         init_waitqueue_head(&x->wait);
 }
 
 extern void wait_for_completion(struct completion *) __attribute__((regpa=
 rm(3)));
 extern void complete(struct completion *) __attribute__((regparm(3)));
 # 9 "/usr/src/linux/include/linux/jffs2_fs_sb.h" 2
 # 1 "/usr/src/linux/include/asm/semaphore.h" 1
 # 10 "/usr/src/linux/include/linux/jffs2_fs_sb.h" 2
 # 1 "/usr/src/linux/include/linux/list.h" 1
 # 11 "/usr/src/linux/include/linux/jffs2_fs_sb.h" 2
 # 20 "/usr/src/linux/include/linux/jffs2_fs_sb.h"
 struct jffs2_sb_info {
         struct mtd_info *mtd;
 
         __u32 highest_ino;
         unsigned int flags;
         spinlock_t nodelist_lock;
 
 
         struct task_struct *gc_task;
         struct semaphore gc_thread_sem;
         struct completion gc_thread_exit;
 
 
 
 
         struct semaphore alloc_sem;
 
 
 
 
         __u32 flash_size;
         __u32 used_size;
         __u32 dirty_size;
         __u32 free_size;
         __u32 erasing_size;
         __u32 bad_size;
         __u32 sector_size;
 
 
 
         __u32 nr_free_blocks;
         __u32 nr_erasing_blocks;
 
         __u32 nr_blocks;
         struct jffs2_eraseblock *blocks;
 
         struct jffs2_eraseblock *nextblock;
 
         struct jffs2_eraseblock *gcblock;
 
         struct list_head clean_list;
         struct list_head dirty_list;
         struct list_head erasing_list;
         struct list_head erase_pending_list;
         struct list_head erase_complete_list;
         struct list_head free_list;
         struct list_head bad_list;
         struct list_head bad_used_list;
 
         spinlock_t erase_completion_lock;
 
         wait_queue_head_t erase_wait;
         struct jffs2_inode_cache *inocache_list[1];
         spinlock_t inocache_lock;
 };
 # 680 "/usr/src/linux/include/linux/fs.h" 2
 
 extern struct list_head super_blocks;
 extern spinlock_t sb_lock;
 
 
 
 struct super_block {
         struct list_head s_list;
         kdev_t s_dev;
         unsigned long s_blocksize;
         unsigned char s_blocksize_bits;
         unsigned char s_dirt;
         unsigned long long s_maxbytes;
         struct file_system_type *s_type;
         struct super_operations *s_op;
         struct dquot_operations *dq_op;
         unsigned long s_flags;
         unsigned long s_magic;
         struct dentry *s_root;
         struct rw_semaphore s_umount;
         struct semaphore s_lock;
         int s_count;
         atomic_t s_active;
 
         struct list_head s_dirty;
         struct list_head s_locked_inodes;
         struct list_head s_files;
 
         struct block_device *s_bdev;
         struct list_head s_instances;
         struct quota_mount_options s_dquot;
 
         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 shmem_sb_info shmem_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;
                 struct reiserfs_sb_info reiserfs_sb;
                 struct bfs_sb_info bfs_sb;
                 struct udf_sb_info udf_sb;
                 struct ncp_server ncpfs_sb;
                 struct usbdev_sb_info usbdevfs_sb;
                 struct jffs2_sb_info jffs2_sb;
                 struct cramfs_sb_info cramfs_sb;
                 void *generic_sbp;
         } u;
 
 
 
 
         struct semaphore s_vfs_rename_sem;
 # 752 "/usr/src/linux/include/linux/fs.h"
         struct semaphore s_nfsd_free_path_sem;
 };
 
 
 
 
 extern int vfs_create(struct inode *, struct dentry *, int);
 extern int vfs_mkdir(struct inode *, struct dentry *, int);
 extern int vfs_mknod(struct inode *, struct dentry *, int, dev_t);
 extern int vfs_symlink(struct inode *, struct dentry *, const char *);
 extern int vfs_link(struct dentry *, struct inode *, struct dentry *);
 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 *, st=
 ruct dentry *);
 # 786 "/usr/src/linux/include/linux/fs.h"
 typedef int (*filldir_t)(void *, const char *, int, loff_t, ino_t, unsign=
 ed);
 
 struct block_device_operations {
         int (*open) (struct inode *, struct file *);
         int (*release) (struct inode *, struct file *);
         int (*ioctl) (struct inode *, struct file *, unsigned, unsigned l=
 ong);
         int (*check_media_change) (kdev_t);
         int (*revalidate) (kdev_t);
 };
 
 
 
 
 
 
 struct file_operations {
         struct module *owner;
         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, unsign=
 ed 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 datasync);
         int (*fasync) (int, struct file *, int);
         int (*lock) (struct file *, int, struct file_lock *);
         ssize_t (*readv) (struct file *, const struct iovec *, unsigned l=
 ong, loff_t *);
         ssize_t (*writev) (struct file *, const struct iovec *, unsigned =
 long, loff_t *);
         ssize_t (*sendpage) (struct file *, struct page *, int, size_t, l=
 off_t *, int);
         unsigned long (*get_unmapped_area)(struct file *, unsigned long, =
 unsigned long, unsigned long, unsigned long);
 };
 
 struct inode_operations {
         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);
         int (*follow_link) (struct dentry *, struct nameidata *);
         void (*truncate) (struct inode *);
         int (*permission) (struct inode *, int);
         int (*revalidate) (struct dentry *);
         int (*setattr) (struct dentry *, struct iattr *);
         int (*getattr) (struct dentry *, struct iattr *);
 };
 
 
 
 
 
 struct super_operations {
         void (*read_inode) (struct inode *);
 
 
 
 
 
 
 
         void (*read_inode2) (struct inode *, void *) ;
         void (*dirty_inode) (struct inode *);
         void (*write_inode) (struct inode *, int);
         void (*put_inode) (struct inode *);
         void (*delete_inode) (struct inode *);
         void (*put_super) (struct super_block *);
         void (*write_super) (struct super_block *);
         void (*write_super_lockfs) (struct super_block *);
         void (*unlockfs) (struct super_block *);
         int (*statfs) (struct super_block *, struct statfs *);
         int (*remount_fs) (struct super_block *, int *, char *);
         void (*clear_inode) (struct inode *);
         void (*umount_begin) (struct super_block *);
 # 891 "/usr/src/linux/include/linux/fs.h"
         struct dentry * (*fh_to_dentry)(struct super_block *sb, __u32 *fh=
 , int len, int fhtype, int parent);
         int (*dentry_to_fh)(struct dentry *, __u32 *fh, int *lenp, int ne=
 ed_parent);
 };
 # 905 "/usr/src/linux/include/linux/fs.h"
 extern void __mark_inode_dirty(struct inode *, int);
 static inline void mark_inode_dirty(struct inode *inode)
 {
         __mark_inode_dirty(inode, (1 | 2 | 4));
 }
 
 static inline void mark_inode_dirty_sync(struct inode *inode)
 {
         __mark_inode_dirty(inode, 1);
 }
 
 static inline void mark_inode_dirty_pages(struct inode *inode)
 {
         __mark_inode_dirty(inode, 4);
 }
 
 struct dquot_operations {
         void (*initialize) (struct inode *, short);
         void (*drop) (struct inode *);
         int (*alloc_block) (const struct inode *, unsigned long, char);
         int (*alloc_inode) (const struct inode *, unsigned long);
         void (*free_block) (const struct inode *, unsigned long);
         void (*free_inode) (const struct inode *, unsigned long);
         int (*transfer) (struct dentry *, struct iattr *);
 };
 
 struct file_system_type {
         const char *name;
         int fs_flags;
         struct super_block *(*read_super) (struct super_block *, void *, =
 int);
         struct module *owner;
         struct file_system_type * next;
         struct list_head fs_supers;
 };
 # 963 "/usr/src/linux/include/linux/fs.h"
 extern int register_filesystem(struct file_system_type *);
 extern int unregister_filesystem(struct file_system_type *);
 extern struct vfsmount *kern_mount(struct file_system_type *);
 extern int may_umount(struct vfsmount *);
 extern long do_mount(char *, char *, char *, unsigned long, void *);
 
 
 
 extern int vfs_statfs(struct super_block *, struct statfs *);
 # 981 "/usr/src/linux/include/linux/fs.h"
 extern int locks_mandatory_locked(struct inode *);
 extern int locks_mandatory_area(int, struct inode *, struct file *, loff_=
 t, size_t);
 # 991 "/usr/src/linux/include/linux/fs.h"
 static inline int locks_verify_locked(struct inode *inode)
 {
         if ((((inode)->i_sb->s_flags & (64)) && ((inode)->i_mode & (00020=
 00 | 00010)) =3D=3D 0002000))
                 return locks_mandatory_locked(inode);
         return 0;
 }
 
 static inline int locks_verify_area(int read_write, struct inode *inode,
                                     struct file *filp, loff_t offset,
                                     size_t count)
 {
         if (inode->i_flock && (((inode)->i_sb->s_flags & (64)) && ((inode=
 )->i_mode & (0002000 | 00010)) =3D=3D 0002000))
                 return locks_mandatory_area(read_write, inode, filp, offs=
 et, count);
         return 0;
 }
 
 static inline int locks_verify_truncate(struct inode *inode,
                                     struct file *filp,
                                     loff_t size)
 {
         if (inode->i_flock && (((inode)->i_sb->s_flags & (64)) && ((inode=
 )->i_mode & (0002000 | 00010)) =3D=3D 0002000))
                 return locks_mandatory_area(
                         2, inode, filp,
                         size < inode->i_size ? size : inode->i_size,
                         (size < inode->i_size ? inode->i_size - size
                          : size - inode->i_size)
                 );
         return 0;
 }
 
 static inline int get_lease(struct inode *inode, unsigned int mode)
 {
         if (inode->i_flock && (inode->i_flock->fl_flags & 32))
                 return __get_lease(inode, mode);
         return 0;
 }
 
 
 
  __attribute__((regparm(0))) long sys_open(const char *, int, int);
  __attribute__((regparm(0))) long sys_close(unsigned int);
 extern int do_truncate(struct dentry *, loff_t start);
 
 extern struct file *filp_open(const char *, int, int);
 extern struct file * dentry_open(struct dentry *, struct vfsmount *, int)=
 ;
 extern int filp_close(struct file *, fl_owner_t id);
 extern char * getname(const char *);
 
 
 extern void vfs_caches_init(unsigned long);
 
 
 
 
 enum {BDEV_FILE, BDEV_SWAP, BDEV_FS, BDEV_RAW};
 extern int register_blkdev(unsigned int, const char *, struct block_devic=
 e_operations *);
 extern int unregister_blkdev(unsigned int, const char *);
 extern struct block_device *bdget(dev_t);
 extern int bd_acquire(struct inode *inode);
 extern void bd_forget(struct inode *inode);
 extern void bdput(struct block_device *);
 extern struct char_device *cdget(dev_t);
 extern void cdput(struct char_device *);
 extern int blkdev_open(struct inode *, struct file *);
 extern int blkdev_close(struct inode *, struct file *);
 extern struct file_operations def_blk_fops;
 extern struct address_space_operations def_blk_aops;
 extern struct file_operations def_fifo_fops;
 extern int ioctl_by_bdev(struct block_device *, unsigned, unsigned long);=
 
 extern int blkdev_get(struct block_device *, mode_t, unsigned, int);
 extern int blkdev_put(struct block_device *, int);
 
 
 extern const struct block_device_operations *get_blkfops(unsigned int);
 extern int register_chrdev(unsigned int, const char *, struct file_operat=
 ions *);
 extern int unregister_chrdev(unsigned int, const char *);
 extern int chrdev_open(struct inode *, struct file *);
 extern const char * bdevname(kdev_t);
 extern const char * cdevname(kdev_t);
 extern const char * kdevname(kdev_t);
 extern void init_special_inode(struct inode *, umode_t, int);
 
 
 extern void make_bad_inode(struct inode *);
 extern int is_bad_inode(struct inode *);
 
 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 int fs_may_remount_ro(struct super_block *);
 
 extern int try_to_free_buffers(struct page *, unsigned int);
 extern void refile_buffer(struct buffer_head * buf);
 extern void end_buffer_io_sync(struct buffer_head *bh, int uptodate);
 
 
 extern void set_buffer_async_io(struct buffer_head *bh) ;
 
 
 
 
 
 
 static inline void get_bh(struct buffer_head * bh)
 {
         atomic_inc(&(bh)->b_count);
 }
 
 static inline void put_bh(struct buffer_head *bh)
 {
         __asm__ __volatile__("": : :"memory");
         atomic_dec(&bh->b_count);
 }
 
 
 
 
 static inline void mark_buffer_uptodate(struct buffer_head * bh, int on)
 {
         if (on)
                 set_bit(BH_Uptodate, &bh->b_state);
         else
                 clear_bit(BH_Uptodate, &bh->b_state);
 }
 
 
 
 static inline void __mark_buffer_clean(struct buffer_head *bh)
 {
         refile_buffer(bh);
 }
 
 static inline void mark_buffer_clean(struct buffer_head * bh)
 {
         if (test_and_clear_bit(BH_Dirty, &(bh)->b_state))
                 __mark_buffer_clean(bh);
 }
 
 extern void __mark_dirty(struct buffer_head *bh) __attribute__((regparm(3=
 )));
 extern void __mark_buffer_dirty(struct buffer_head *bh) __attribute__((re=
 gparm(3)));
 extern void mark_buffer_dirty(struct buffer_head *bh) __attribute__((regp=
 arm(3)));
 extern void buffer_insert_inode_data_queue(struct buffer_head *, struct i=
 node *) __attribute__((regparm(3)));
 
 
 
 static inline void mark_buffer_async(struct buffer_head * bh, int on)
 {
         if (on)
                 set_bit(BH_Async, &bh->b_state);
         else
                 clear_bit(BH_Async, &bh->b_state);
 }
 
 
 
 
 
 
 
 static inline void buffer_IO_error(struct buffer_head * bh)
 {
         mark_buffer_clean(bh);
 
 
 
         bh->b_end_io(bh, 0);
 }
 
 extern void buffer_insert_inode_queue(struct buffer_head *, struct inode =
 *);
 static inline void mark_buffer_dirty_inode(struct buffer_head *bh, struct=
  inode *inode)
 {
         mark_buffer_dirty(bh);
         buffer_insert_inode_queue(bh, inode);
 }
 
 extern void balance_dirty(void);
 extern int check_disk_change(kdev_t);
 extern int invalidate_inodes(struct super_block *);
 extern int invalidate_device(kdev_t, int);
 extern void invalidate_inode_pages(struct inode *);
 extern void invalidate_inode_pages2(struct address_space *);
 extern void invalidate_inode_buffers(struct inode *);
 
 
 
 
 
 
 
 extern void __invalidate_buffers(kdev_t dev, int, int);
 extern void sync_inodes(kdev_t);
 extern void sync_unlocked_inodes(void);
 extern void write_inode_now(struct inode *, int);
 extern int sync_buffers(kdev_t, int);
 extern void sync_dev(kdev_t);
 extern int fsync_dev(kdev_t);
 extern int fsync_super(struct super_block *);
 extern int fsync_no_super(kdev_t);
 extern void sync_inodes_sb(struct super_block *);
 extern int osync_inode_buffers(struct inode *);
 extern int osync_inode_data_buffers(struct inode *);
 extern int fsync_inode_buffers(struct inode *);
 extern int fsync_inode_data_buffers(struct inode *);
 extern int inode_has_buffers(struct inode *);
 extern void filemap_fdatasync(struct address_space *);
 extern void filemap_fdatawait(struct address_space *);
 extern void sync_supers(kdev_t);
 extern int bmap(struct inode *, int);
 extern int notify_change(struct dentry *, struct iattr *);
 extern int permission(struct inode *, int);
 extern int vfs_permission(struct inode *, int);
 extern int get_write_access(struct inode *);
 extern int deny_write_access(struct file *);
 static inline void put_write_access(struct inode * inode)
 {
         atomic_dec(&inode->i_writecount);
 }
 static inline void allow_write_access(struct file *file)
 {
         if (file)
                 atomic_inc(&file->f_dentry->d_inode->i_writecount);
 }
 extern int do_pipe(int *);
 
 extern int open_namei(const char *, int, int, struct nameidata *);
 
 extern int kernel_read(struct file *, unsigned long, char *, unsigned lon=
 g);
 extern struct file * open_exec(const char *);
 
 
 extern int is_subdir(struct dentry *, struct dentry *);
 extern ino_t find_inode_number(struct dentry *, struct qstr *);
 # 1236 "/usr/src/linux/include/linux/fs.h"
 static inline void *ERR_PTR(long error)
 {
         return (void *) error;
 }
 
 static inline long PTR_ERR(const void *ptr)
 {
         return (long) ptr;
 }
 
 static inline long IS_ERR(const void *ptr)
 {
         return (unsigned long)ptr > (unsigned long)-1000L;
 }
 # 1267 "/usr/src/linux/include/linux/fs.h"
 enum {LAST_NORM, LAST_ROOT, LAST_DOT, LAST_DOTDOT, LAST_BIND};
 # 1278 "/usr/src/linux/include/linux/fs.h"
 typedef struct {
         size_t written;
         size_t count;
         char * buf;
         int error;
 } read_descriptor_t;
 
 typedef int (*read_actor_t)(read_descriptor_t *, struct page *, unsigned =
 long, unsigned long);
 
 
 extern loff_t default_llseek(struct file *file, loff_t offset, int origin=
 );
 
 extern int __user_walk(const char *, unsigned, struct nameidata *);
 extern int path_init(const char *, unsigned, struct nameidata *);
 extern int path_walk(const char *, struct nameidata *);
 extern void path_release(struct nameidata *);
 extern int follow_down(struct vfsmount **, struct dentry **);
 extern int follow_up(struct vfsmount **, struct dentry **);
 extern struct dentry * lookup_one_len(const char *, struct dentry *, int)=
 ;
 extern struct dentry * lookup_hash(struct qstr *, struct dentry *);
 
 
 
 extern void iput(struct inode *);
 extern void force_delete(struct inode *);
 extern struct inode * igrab(struct inode *);
 extern ino_t iunique(struct super_block *, ino_t);
 
 typedef int (*find_inode_t)(struct inode *, unsigned long, void *);
 extern struct inode * iget4(struct super_block *, unsigned long, find_ino=
 de_t, void *);
 static inline struct inode *iget(struct super_block *sb, unsigned long in=
 o)
 {
         return iget4(sb, ino, ((void *)0), ((void *)0));
 }
 
 extern void clear_inode(struct inode *);
 extern struct inode * get_empty_inode(void);
 static inline struct inode * new_inode(struct super_block *sb)
 {
         struct inode *inode =3D get_empty_inode();
         if (inode) {
                 inode->i_sb =3D sb;
                 inode->i_dev =3D sb->s_dev;
         }
         return inode;
 }
 extern void remove_suid(struct inode *inode);
 
 extern void insert_inode_hash(struct inode *);
 extern void remove_inode_hash(struct inode *);
 extern struct file * get_empty_filp(void);
 extern void file_move(struct file *f, struct list_head *list);
 extern struct buffer_head * get_hash_table(kdev_t, int, int);
 extern struct buffer_head * getblk(kdev_t, int, int);
 extern void ll_rw_block(int, int, struct buffer_head * bh[]);
 extern void submit_bh(int, struct buffer_head *);
 extern int is_read_only(kdev_t);
 extern void __brelse(struct buffer_head *);
 static inline void brelse(struct buffer_head *buf)
 {
         if (buf)
                 __brelse(buf);
 }
 extern void __bforget(struct buffer_head *);
 static inline void bforget(struct buffer_head *buf)
 {
         if (buf)
                 __bforget(buf);
 }
 extern void set_blocksize(kdev_t, int);
 extern struct buffer_head * bread(kdev_t, int, int);
 extern void wakeup_bdflush(void);
 
 extern int brw_page(int, struct page *, kdev_t, int [], int);
 
 typedef int (get_block_t)(struct inode*,long,struct buffer_head*,int);
 
 
 extern int discard_bh_page(struct page *, unsigned long, int);
 
 
 extern int block_symlink(struct inode *, const char *, int);
 extern int block_write_full_page(struct page*, get_block_t*);
 extern int block_read_full_page(struct page*, get_block_t*);
 extern int block_prepare_write(struct page*, unsigned, unsigned, get_bloc=
 k_t*);
 extern int cont_prepare_write(struct page*, unsigned, unsigned, get_block=
 _t*,
                                 unsigned long *);
 extern int block_sync_page(struct page *);
 
 int generic_block_bmap(struct address_space *, long, get_block_t *);
 int generic_commit_write(struct file *, struct page *, unsigned, unsigned=
 );
 int block_truncate_page(struct address_space *, loff_t, get_block_t *);
 extern int generic_direct_IO(int, struct inode *, struct kiobuf *, unsign=
 ed long, int, get_block_t *);
 extern void create_empty_buffers(struct page *, kdev_t, unsigned long);
 
 extern int waitfor_one_page(struct page*);
 extern int generic_file_mmap(struct file *, struct vm_area_struct *);
 extern int file_read_actor(read_descriptor_t * desc, struct page *page, u=
 nsigned long offset, unsigned long size);
 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, lo=
 ff_t *);
 extern void do_generic_file_read(struct file *, loff_t *, read_descriptor=
 _t *, read_actor_t);
 extern loff_t no_llseek(struct file *file, loff_t offset, int origin);
 extern loff_t generic_file_llseek(struct file *file, loff_t offset, int o=
 rigin);
 extern ssize_t generic_read_dir(struct file *, char *, size_t, loff_t *);=
 
 extern int generic_file_open(struct inode * inode, struct file * filp);
 
 extern struct file_operations generic_ro_fops;
 
 extern int vfs_readlink(struct dentry *, char *, int, const char *);
 extern int vfs_follow_link(struct nameidata *, const char *);
 extern int page_readlink(struct dentry *, char *, int);
 extern int page_follow_link(struct dentry *, struct nameidata *);
 extern struct inode_operations page_symlink_inode_operations;
 
 extern int vfs_readdir(struct file *, filldir_t, void *);
 extern int dcache_readdir(struct file *, void *, filldir_t);
 
 extern struct file_system_type *get_fs_type(const char *name);
 extern struct super_block *get_super(kdev_t);
 extern void drop_super(struct super_block *sb);
 static inline int is_mounted(kdev_t dev)
 {
         struct super_block *sb =3D get_super(dev);
         if (sb) {
                 drop_super(sb);
                 return 1;
         }
         return 0;
 }
 unsigned long generate_cluster(kdev_t, int b[], int);
 unsigned long generate_cluster_swab32(kdev_t, int b[], int);
 extern kdev_t ROOT_DEV;
 extern char root_device_name[];
 
 
 extern void show_buffers(void);
 extern void mount_root(void);
 
 
 
 
 
 
 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 file_fsync(struct file *, struct dentry *, int);
 extern int generic_buffer_fdatasync(struct inode *inode, unsigned long st=
 art_idx, unsigned long end_idx);
 extern int generic_osync_inode(struct inode *, int);
 
 
 
 
 extern int inode_change_ok(struct inode *, struct iattr *);
 extern int inode_setattr(struct inode *, struct iattr *);
 # 1457 "/usr/src/linux/include/linux/fs.h"
 static inline struct dentry *lock_parent(struct dentry *dentry)
 {
         struct dentry *dir =3D dget(dentry->d_parent);
 
         down(&dir->d_inode->i_sem);
         return dir;
 }
 
 static inline struct dentry *get_parent(struct dentry *dentry)
 {
         return dget(dentry->d_parent);
 }
 
 static inline void unlock_dir(struct dentry *dir)
 {
         up(&dir->d_inode->i_sem);
         dput(dir);
 }
 
 
 
 
 
 static inline void double_down(struct semaphore *s1, struct semaphore *s2=
 )
 {
         if (s1 !=3D s2) {
                 if ((unsigned long) s1 < (unsigned long) s2) {
                         struct semaphore *tmp =3D s2;
                         s2 =3D s1; s1 =3D tmp;
                 }
                 down(s1);
         }
         down(s2);
 }
 # 1501 "/usr/src/linux/include/linux/fs.h"
 static inline void triple_down(struct semaphore *s1,
                                struct semaphore *s2,
                                struct semaphore *s3)
 {
         if (s1 !=3D s2) {
                 if ((unsigned long) s1 < (unsigned long) s2) {
                         if ((unsigned long) s1 < (unsigned long) s3) {
                                 struct semaphore *tmp =3D s3;
                                 s3 =3D s1; s1 =3D tmp;
                         }
                         if ((unsigned long) s1 < (unsigned long) s2) {
                                 struct semaphore *tmp =3D s2;
                                 s2 =3D s1; s1 =3D tmp;
                         }
                 } else {
                         if ((unsigned long) s1 < (unsigned long) s3) {
                                 struct semaphore *tmp =3D s3;
                                 s3 =3D s1; s1 =3D tmp;
                         }
                         if ((unsigned long) s2 < (unsigned long) s3) {
                                 struct semaphore *tmp =3D s3;
                                 s3 =3D s2; s2 =3D tmp;
                         }
                 }
                 down(s1);
         } else if ((unsigned long) s2 < (unsigned long) s3) {
                 struct semaphore *tmp =3D s3;
                 s3 =3D s2; s2 =3D tmp;
         }
         down(s2);
         down(s3);
 }
 
 static inline void double_up(struct semaphore *s1, struct semaphore *s2)
 {
         up(s1);
         if (s1 !=3D s2)
                 up(s2);
 }
 
 static inline void triple_up(struct semaphore *s1,
                              struct semaphore *s2,
                              struct semaphore *s3)
 {
         up(s1);
         if (s1 !=3D s2)
                 up(s2);
         up(s3);
 }
 
 static inline void double_lock(struct dentry *d1, struct dentry *d2)
 {
         double_down(&d1->d_inode->i_sem, &d2->d_inode->i_sem);
 }
 
 static inline void double_unlock(struct dentry *d1, struct dentry *d2)
 {
         double_up(&d1->d_inode->i_sem,&d2->d_inode->i_sem);
         dput(d1);
         dput(d2);
 }
 # 18 "/usr/src/linux/include/linux/capability.h" 2
 # 32 "/usr/src/linux/include/linux/capability.h"
 typedef struct __user_cap_header_struct {
         __u32 version;
         int pid;
 } *cap_user_header_t;
 
 typedef struct __user_cap_data_struct {
         __u32 effective;
         __u32 permitted;
         __u32 inheritable;
 } *cap_user_data_t;
 # 55 "/usr/src/linux/include/linux/capability.h"
 typedef __u32 kernel_cap_t;
 # 284 "/usr/src/linux/include/linux/capability.h"
 extern kernel_cap_t cap_bset;
 # 312 "/usr/src/linux/include/linux/capability.h"
 static inline kernel_cap_t cap_combine(kernel_cap_t a, kernel_cap_t b)
 {
      kernel_cap_t dest;
      (dest) =3D (a) | (b);
      return dest;
 }
 
 static inline kernel_cap_t cap_intersect(kernel_cap_t a, kernel_cap_t b)
 {
      kernel_cap_t dest;
      (dest) =3D (a) & (b);
      return dest;
 }
 
 static inline kernel_cap_t cap_drop(kernel_cap_t a, kernel_cap_t drop)
 {
      kernel_cap_t dest;
      (dest) =3D (a) & ~(drop);
      return dest;
 }
 
 static inline kernel_cap_t cap_invert(kernel_cap_t c)
 {
      kernel_cap_t dest;
      (dest) =3D ~(c);
      return dest;
 }
 # 6 "/usr/src/linux/include/linux/binfmts.h" 2
 # 22 "/usr/src/linux/include/linux/binfmts.h"
 struct linux_binprm{
         char buf[128];
         struct page *page[32];
         unsigned long p;
         int sh_bang;
         struct file * file;
         int e_uid, e_gid;
         kernel_cap_t cap_inheritable, cap_permitted, cap_effective;
         int argc, envc;
         char * filename;
         unsigned long loader, exec;
 };
 
 
 
 
 
 struct linux_binfmt {
         struct linux_binfmt * next;
         struct module *module;
         int (*load_binary)(struct linux_binprm *, struct pt_regs * regs);=
 
         int (*load_shlib)(struct file *);
         int (*core_dump)(long signr, struct pt_regs * regs, struct file *=
  file);
         unsigned long min_coredump;
 };
 
 extern int register_binfmt(struct linux_binfmt *);
 extern int unregister_binfmt(struct linux_binfmt *);
 
 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 int setup_arg_pages(struct linux_binprm * bprm);
 extern int copy_strings(int argc,char ** argv,struct linux_binprm *bprm);=
 
 extern int copy_strings_kernel(int argc,char ** argv,struct linux_binprm =
 *bprm);
 extern void compute_creds(struct linux_binprm *binprm);
 extern int do_coredump(long signr, struct pt_regs * regs);
 extern void set_binfmt(struct linux_binfmt *new);
 # 10 "/usr/src/linux/include/linux/sched.h" 2
 # 1 "/usr/src/linux/include/linux/threads.h" 1
 # 11 "/usr/src/linux/include/linux/sched.h" 2
 # 1 "/usr/src/linux/include/linux/kernel.h" 1
 # 12 "/usr/src/linux/include/linux/sched.h" 2
 # 1 "/usr/src/linux/include/linux/types.h" 1
 # 13 "/usr/src/linux/include/linux/sched.h" 2
 # 1 "/usr/src/linux/include/linux/times.h" 1
 
 
 
 struct tms {
         clock_t tms_utime;
         clock_t tms_stime;
         clock_t tms_cutime;
         clock_t tms_cstime;
 };
 # 14 "/usr/src/linux/include/linux/sched.h" 2
 # 1 "/usr/src/linux/include/linux/timex.h" 1
 # 54 "/usr/src/linux/include/linux/timex.h"
 # 1 "/usr/src/linux/include/asm/param.h" 1
 # 55 "/usr/src/linux/include/linux/timex.h" 2
 # 152 "/usr/src/linux/include/linux/timex.h"
 # 1 "/usr/src/linux/include/asm/timex.h" 1
 # 9 "/usr/src/linux/include/asm/timex.h"
 # 1 "/usr/src/linux/include/linux/config.h" 1
 # 10 "/usr/src/linux/include/asm/timex.h" 2
 # 1 "/usr/src/linux/include/asm/msr.h" 1
 # 11 "/usr/src/linux/include/asm/timex.h" 2
 # 32 "/usr/src/linux/include/asm/timex.h"
 typedef unsigned long long cycles_t;
 
 extern cycles_t cacheflush_time;
 
 static inline cycles_t get_cycles (void)
 {
 
 
 
         unsigned long long ret;
 
         __asm__ __volatile__("rdtsc" : "=3DA" (ret));
         return ret;
 
 }
 
 extern unsigned long cpu_khz;
 # 153 "/usr/src/linux/include/linux/timex.h" 2
 # 161 "/usr/src/linux/include/linux/timex.h"
 struct timex {
         unsigned int modes;
         long offset;
         long freq;
         long maxerror;
         long esterror;
         int status;
         long constant;
         long precision;
         long tolerance;
 
 
         struct timeval time;
         long tick;
 
         long ppsfreq;
         long jitter;
         int shift;
         long stabil;
         long jitcnt;
         long calcnt;
         long errcnt;
         long stbcnt;
 
         int :32; int :32; int :32; int :32;
         int :32; int :32; int :32; int :32;
         int :32; int :32; int :32; int :32;
 };
 # 253 "/usr/src/linux/include/linux/timex.h"
 extern long tick;
 extern int tickadj;
 
 
 
 
 extern int time_state;
 extern int time_status;
 extern long time_offset;
 extern long time_constant;
 extern long time_tolerance;
 extern long time_precision;
 extern long time_maxerror;
 extern long time_esterror;
 
 extern long time_phase;
 extern long time_freq;
 extern long time_adj;
 extern long time_reftime;
 
 extern long time_adjust;
 
 
 extern long pps_offset;
 extern long pps_jitter;
 extern long pps_freq;
 extern long pps_stabil;
 extern long pps_valid;
 
 
 extern int pps_shift;
 extern long pps_jitcnt;
 extern long pps_calcnt;
 extern long pps_errcnt;
 extern long pps_stbcnt;
 # 15 "/usr/src/linux/include/linux/sched.h" 2
 # 1 "/usr/src/linux/include/linux/rbtree.h" 1
 # 97 "/usr/src/linux/include/linux/rbtree.h"
 # 1 "/usr/src/linux/include/linux/kernel.h" 1
 # 98 "/usr/src/linux/include/linux/rbtree.h" 2
 # 1 "/usr/src/linux/include/linux/stddef.h" 1
 # 99 "/usr/src/linux/include/linux/rbtree.h" 2
 
 typedef struct rb_node_s
 {
         struct rb_node_s * rb_parent;
         int rb_color;
 
 
         struct rb_node_s * rb_right;
         struct rb_node_s * rb_left;
 }
 rb_node_t;
 
 typedef struct rb_root_s
 {
         struct rb_node_s * rb_node;
 }
 rb_root_t;
 
 
 
 
 
 extern void rb_insert_color(rb_node_t *, rb_root_t *);
 extern void rb_erase(rb_node_t *, rb_root_t *);
 
 static inline void rb_link_node(rb_node_t * node, rb_node_t * parent, rb_=
 node_t ** rb_link)
 {
         node->rb_parent =3D parent;
         node->rb_color =3D 0;
         node->rb_left =3D node->rb_right =3D ((void *)0);
 
         *rb_link =3D node;
 }
 # 16 "/usr/src/linux/include/linux/sched.h" 2
 
 # 1 "/usr/src/linux/include/asm/system.h" 1
 # 18 "/usr/src/linux/include/linux/sched.h" 2
 # 1 "/usr/src/linux/include/asm/semaphore.h" 1
 # 19 "/usr/src/linux/include/linux/sched.h" 2
 # 1 "/usr/src/linux/include/asm/page.h" 1
 # 20 "/usr/src/linux/include/linux/sched.h" 2
 # 1 "/usr/src/linux/include/asm/ptrace.h" 1
 # 21 "/usr/src/linux/include/linux/sched.h" 2
 # 1 "/usr/src/linux/include/asm/mmu.h" 1
 
 
 
 
 
 
 
 typedef struct {
         void *segments;
         unsigned long cpuvalid;
 } mm_context_t;
 # 22 "/usr/src/linux/include/linux/sched.h" 2
 
 # 1 "/usr/src/linux/include/linux/smp.h" 1
 # 9 "/usr/src/linux/include/linux/smp.h"
 # 1 "/usr/src/linux/include/linux/config.h" 1
 # 10 "/usr/src/linux/include/linux/smp.h" 2
 # 24 "/usr/src/linux/include/linux/sched.h" 2
 # 1 "/usr/src/linux/include/linux/tty.h" 1
 # 19 "/usr/src/linux/include/linux/tty.h"
 # 1 "/usr/src/linux/include/linux/config.h" 1
 # 20 "/usr/src/linux/include/linux/tty.h" 2
 # 1 "/usr/src/linux/include/linux/fs.h" 1
 # 21 "/usr/src/linux/include/linux/tty.h" 2
 # 1 "/usr/src/linux/include/linux/major.h" 1
 # 177 "/usr/src/linux/include/linux/major.h"
 static __inline__ int scsi_blk_major(int m) {
         return (((m) =3D=3D 8 || ((m) >=3D 65 && (m) <=3D 71)) || (m) =3D=
 =3D 11);
 }
 # 190 "/usr/src/linux/include/linux/major.h"
 static __inline__ int ide_blk_major(int m)
 {
         return ((m) =3D=3D 3 || (m) =3D=3D 22 || (m) =3D=3D 33 || (m) =3D=
 =3D 34 || (m) =3D=3D 56 || (m) =3D=3D 57 || (m) =3D=3D 88 || (m) =3D=3D 8=
 9 || (m) =3D=3D 90 || (m) =3D=3D 91);
 }
 # 22 "/usr/src/linux/include/linux/tty.h" 2
 # 1 "/usr/src/linux/include/linux/termios.h" 1
 
 
 
 # 1 "/usr/src/linux/include/linux/types.h" 1
 # 5 "/usr/src/linux/include/linux/termios.h" 2
 # 1 "/usr/src/linux/include/asm/termios.h" 1
 
 
 
 # 1 "/usr/src/linux/include/asm/termbits.h" 1
 
 
 
 # 1 "/usr/src/linux/include/linux/posix_types.h" 1
 # 5 "/usr/src/linux/include/asm/termbits.h" 2
 
 typedef unsigned char cc_t;
 typedef unsigned int speed_t;
 typedef unsigned int tcflag_t;
 
 
 struct termios {
         tcflag_t c_iflag;
         tcflag_t c_oflag;
         tcflag_t c_cflag;
         tcflag_t c_lflag;
         cc_t c_line;
         cc_t c_cc[19];
 };
 # 5 "/usr/src/linux/include/asm/termios.h" 2
 # 1 "/usr/src/linux/include/asm/ioctls.h" 1
 
 
 
 # 1 "/usr/src/linux/include/asm/ioctl.h" 1
 # 5 "/usr/src/linux/include/asm/ioctls.h" 2
 # 6 "/usr/src/linux/include/asm/termios.h" 2
 
 struct winsize {
         unsigned short ws_row;
         unsigned short ws_col;
         unsigned short ws_xpixel;
         unsigned short ws_ypixel;
 };
 
 
 struct termio {
         unsigned short c_iflag;
         unsigned short c_oflag;
         unsigned short c_cflag;
         unsigned short c_lflag;
         unsigned char c_line;
         unsigned char c_cc[8];
 };
 # 6 "/usr/src/linux/include/linux/termios.h" 2
 # 23 "/usr/src/linux/include/linux/tty.h" 2
 # 1 "/usr/src/linux/include/linux/tqueue.h" 1
 # 24 "/usr/src/linux/include/linux/tty.h" 2
 # 1 "/usr/src/linux/include/linux/tty_driver.h" 1
 # 118 "/usr/src/linux/include/linux/tty_driver.h"
 # 1 "/usr/src/linux/include/linux/fs.h" 1
 # 119 "/usr/src/linux/include/linux/tty_driver.h" 2
 
 struct tty_driver {
         int magic;
         const char *driver_name;
         const char *name;
         int name_base;
         short major;
         short minor_start;
         short num;
         short type;
         short subtype;
         struct termios init_termios;
         int flags;
         int *refcount;
         struct proc_dir_entry *proc_entry;
         struct tty_driver *other;
 
 
 
 
         struct tty_struct **table;
         struct termios **termios;
         struct termios **termios_locked;
         void *driver_state;
 
 
 
 
 
         int (*open)(struct tty_struct * tty, struct file * filp);
         void (*close)(struct tty_struct * tty, struct file * filp);
         int (*write)(struct tty_struct * tty, int from_user,
                       const unsigned char *buf, int count);
         void (*put_char)(struct tty_struct *tty, unsigned char ch);
         void (*flush_chars)(struct tty_struct *tty);
         int (*write_room)(struct tty_struct *tty);
         int (*chars_in_buffer)(struct tty_struct *tty);
         int (*ioctl)(struct tty_struct *tty, struct file * file,
                     unsigned int cmd, unsigned long arg);
         void (*set_termios)(struct tty_struct *tty, struct termios * old)=
 ;
         void (*throttle)(struct tty_struct * tty);
         void (*unthrottle)(struct tty_struct * tty);
         void (*stop)(struct tty_struct *tty);
         void (*start)(struct tty_struct *tty);
         void (*hangup)(struct tty_struct *tty);
         void (*break_ctl)(struct tty_struct *tty, int state);
         void (*flush_buffer)(struct tty_struct *tty);
         void (*set_ldisc)(struct tty_struct *tty);
         void (*wait_until_sent)(struct tty_struct *tty, int timeout);
         void (*send_xchar)(struct tty_struct *tty, char ch);
         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);
 
 
 
 
         struct tty_driver *next;
         struct tty_driver *prev;
 };
 # 25 "/usr/src/linux/include/linux/tty.h" 2
 # 1 "/usr/src/linux/include/linux/tty_ldisc.h" 1
 # 100 "/usr/src/linux/include/linux/tty_ldisc.h"
 # 1 "/usr/src/linux/include/linux/fs.h" 1
 # 101 "/usr/src/linux/include/linux/tty_ldisc.h" 2
 # 1 "/usr/src/linux/include/linux/wait.h" 1
 # 102 "/usr/src/linux/include/linux/tty_ldisc.h" 2
 
 struct tty_ldisc {
         int magic;
         char *name;
         int num;
         int flags;
 
 
 
         int (*open)(struct tty_struct *);
         void (*close)(struct tty_struct *);
         void (*flush_buffer)(struct tty_struct *tty);
         ssize_t (*chars_in_buffer)(struct tty_struct *tty);
         ssize_t (*read)(struct tty_struct * tty, struct file * file,
                         unsigned char * buf, size_t nr);
         ssize_t (*write)(struct tty_struct * tty, struct file * file,
                          const unsigned char * buf, size_t nr);
         int (*ioctl)(struct tty_struct * tty, struct file * file,
                          unsigned int cmd, unsigned long arg);
         void (*set_termios)(struct tty_struct *tty, struct termios * old)=
 ;
         unsigned int (*poll)(struct tty_struct *, struct file *,
                              struct poll_table_struct *);
 
 
 
 
         void (*receive_buf)(struct tty_struct *, const unsigned char *cp,=
 
                                char *fp, int count);
         int (*receive_room)(struct tty_struct *);
         void (*write_wakeup)(struct tty_struct *);
 };
 # 26 "/usr/src/linux/include/linux/tty.h" 2
 
 # 1 "/usr/src/linux/include/asm/system.h" 1
 # 28 "/usr/src/linux/include/linux/tty.h" 2
 # 59 "/usr/src/linux/include/linux/tty.h"
 struct screen_info {
         unsigned char orig_x;
         unsigned char orig_y;
         unsigned short dontuse1;
         unsigned short orig_video_page;
         unsigned char orig_video_mode;
         unsigned char orig_video_cols;
         unsigned short unused2;
         unsigned short orig_video_ega_bx;
         unsigned short unused3;
         unsigned char orig_video_lines;
         unsigned char orig_video_isVGA;
         unsigned short orig_video_points;
 
 
         unsigned short lfb_width;
         unsigned short lfb_height;
         unsigned short lfb_depth;
         unsigned long lfb_base;
         unsigned long lfb_size;
         unsigned short dontuse2, dontuse3;
         unsigned short lfb_linelength;
         unsigned char red_size;
         unsigned char red_pos;
         unsigned char green_size;
         unsigned char green_pos;
         unsigned char blue_size;
         unsigned char blue_pos;
         unsigned char rsvd_size;
         unsigned char rsvd_pos;
         unsigned short vesapm_seg;
         unsigned short vesapm_off;
         unsigned short pages;
 
 };
 
 extern struct screen_info screen_info;
 # 139 "/usr/src/linux/include/linux/tty.h"
 struct tty_flip_buffer {
         struct tq_struct tqueue;
         struct semaphore pty_sem;
         char *char_buf_ptr;
         unsigned char *flag_buf_ptr;
         int count;
         int buf_num;
         unsigned char char_buf[2*512];
         char flag_buf[2*512];
         unsigned char slop[4];
 };
 # 259 "/usr/src/linux/include/linux/tty.h"
 struct tty_struct {
         int magic;
         struct tty_driver driver;
         struct tty_ldisc ldisc;
         struct termios *termios, *termios_locked;
         int pgrp;
         int session;
         kdev_t device;
         unsigned long flags;
         int count;
         struct winsize winsize;
         unsigned char stopped:1, hw_stopped:1, flow_stopped:1, packet:1;
         unsigned char low_latency:1, warned:1;
         unsigned char ctrl_status;
 
         struct tty_struct *link;
         struct fasync_struct *fasync;
         struct tty_flip_buffer flip;
         int max_flip_cnt;
         int alt_speed;
         wait_queue_head_t write_wait;
         wait_queue_head_t read_wait;
         struct tq_struct tq_hangup;
         void *disc_data;
         void *driver_data;
         struct list_head tty_files;
 
 
 
 
 
 
 
         unsigned int column;
         unsigned char lnext:1, erasing:1, raw:1, real_raw:1, icanon:1;
         unsigned char closing:1;
         unsigned short minimum_to_wake;
         unsigned overrun_time;
         int num_overrun;
         unsigned long process_char_map[256/(8*sizeof(unsigned long))];
         char *read_buf;
         int read_head;
         int read_tail;
         int read_cnt;
         unsigned long read_flags[4096/(8*sizeof(unsigned long))];
         int canon_data;
         unsigned long canon_head;
         unsigned int canon_column;
         struct semaphore atomic_read;
         struct semaphore atomic_write;
         spinlock_t read_lock;
 
         struct tq_struct SAK_tq;
 };
 # 341 "/usr/src/linux/include/linux/tty.h"
 extern void tty_write_flush(struct tty_struct *);
 
 extern struct termios tty_std_termios;
 extern struct tty_struct * redirect;
 extern struct tty_ldisc ldiscs[];
 extern int fg_console, last_console, want_console;
 
 extern int kmsg_redirect;
 
 extern void con_init(void);
 extern void console_init(void);
 
 extern int lp_init(void);
 extern int pty_init(void);
 extern void tty_init(void);
 extern int mxser_init(void);
 extern int moxa_init(void);
 extern int ip2_init(void);
 extern int pcxe_init(void);
 extern int pc_init(void);
 extern int vcs_init(void);
 extern int rp_init(void);
 extern int cy_init(void);
 extern int stl_init(void);
 extern int stli_init(void);
 extern int specialix_init(void);
 extern int espserial_init(void);
 extern int macserial_init(void);
 extern int a2232board_init(void);
 
 extern int tty_paranoia_check(struct tty_struct *tty, kdev_t device,
                               const char *routine);
 extern char *tty_name(struct tty_struct *tty, char *buf);
 extern void tty_wait_until_sent(struct tty_struct * tty, long timeout);
 extern int tty_check_change(struct tty_struct * tty);
 extern void stop_tty(struct tty_struct * tty);
 extern void start_tty(struct tty_struct * tty);
 extern int tty_register_ldisc(int disc, struct tty_ldisc *new_ldisc);
 extern int tty_register_driver(struct tty_driver *driver);
 extern int tty_unregister_driver(struct tty_driver *driver);
 extern void tty_register_devfs (struct tty_driver *driver, unsigned int f=
 lags,
                                 unsigned minor);
 extern void tty_unregister_devfs (struct tty_driver *driver, unsigned min=
 or);
 extern int tty_read_raw_data(struct tty_struct *tty, unsigned char *bufp,=
 
                              int buflen);
 extern void tty_write_message(struct tty_struct *tty, char *msg);
 
 extern int is_orphaned_pgrp(int pgrp);
 extern int is_ignored(int sig);
 extern int tty_signal(int sig, struct tty_struct *tty);
 extern void tty_hangup(struct tty_struct * tty);
 extern void tty_vhangup(struct tty_struct * tty);
 extern void tty_unhangup(struct file *filp);
 extern int tty_hung_up_p(struct file * filp);
 extern void do_SAK(struct tty_struct *tty);
 extern void disassociate_ctty(int priv);
 extern void tty_flip_buffer_push(struct tty_struct *tty);
 extern int tty_get_baud_rate(struct tty_struct *tty);
 
 
 extern struct tty_ldisc tty_ldisc_N_TTY;
 
 
 extern int n_tty_ioctl(struct tty_struct * tty, struct file * file,
                        unsigned int cmd, unsigned long arg);
 
 
 
 extern void serial_console_init(void);
 
 
 
 extern int pcxe_open(struct tty_struct *tty, struct file *filp);
 
 
 
 extern void console_print(const char *);
 
 
 
 extern int vt_ioctl(struct tty_struct *tty, struct file * file,
                     unsigned int cmd, unsigned long arg);
 # 25 "/usr/src/linux/include/linux/sched.h" 2
 # 1 "/usr/src/linux/include/linux/sem.h" 1
 
 
 
 # 1 "/usr/src/linux/include/linux/ipc.h" 1
 
 
 
 # 1 "/usr/src/linux/include/linux/types.h" 1
 # 5 "/usr/src/linux/include/linux/ipc.h" 2
 
 
 
 
 struct ipc_perm
 {
         __kernel_key_t key;
         __kernel_uid_t uid;
         __kernel_gid_t gid;
         __kernel_uid_t cuid;
         __kernel_gid_t cgid;
         __kernel_mode_t mode;
         unsigned short seq;
 };
 
 
 # 1 "/usr/src/linux/include/asm/ipcbuf.h" 1
 # 14 "/usr/src/linux/include/asm/ipcbuf.h"
 struct ipc64_perm
 {
         __kernel_key_t key;
         __kernel_uid32_t uid;
         __kernel_gid32_t gid;
         __kernel_uid32_t cuid;
         __kernel_gid32_t cgid;
         __kernel_mode_t mode;
         unsigned short __pad1;
         unsigned short seq;
         unsigned short __pad2;
         unsigned long __unused1;
         unsigned long __unused2;
 };
 # 22 "/usr/src/linux/include/linux/ipc.h" 2
 # 57 "/usr/src/linux/include/linux/ipc.h"
 struct kern_ipc_perm
 {
         key_t key;
         uid_t uid;
         gid_t gid;
         uid_t cuid;
         gid_t cgid;
         mode_t mode;
         unsigned long seq;
 };
 # 5 "/usr/src/linux/include/linux/sem.h" 2
 # 23 "/usr/src/linux/include/linux/sem.h"
 struct semid_ds {
         struct ipc_perm sem_perm;
         __kernel_time_t sem_otime;
         __kernel_time_t sem_ctime;
         struct sem *sem_base;
         struct sem_queue *sem_pending;
         struct sem_queue **sem_pending_last;
         struct sem_undo *undo;
         unsigned short sem_nsems;
 };
 
 
 # 1 "/usr/src/linux/include/asm/sembuf.h" 1
 # 14 "/usr/src/linux/include/asm/sembuf.h"
 struct semid64_ds {
         struct ipc64_perm sem_perm;
         __kernel_time_t sem_otime;
         unsigned long __unused1;
         __kernel_time_t sem_ctime;
         unsigned long __unused2;
         unsigned long sem_nsems;
         unsigned long __unused3;
         unsigned long __unused4;
 };
 # 36 "/usr/src/linux/include/linux/sem.h" 2
 
 
 struct sembuf {
         unsigned short sem_num;
         short sem_op;
         short sem_flg;
 };
 
 
 union semun {
         int val;
         struct semid_ds *buf;
         unsigned short *array;
         struct seminfo *__buf;
         void *__pad;
 };
 
 struct seminfo {
         int semmap;
         int semmni;
         int semmns;
         int semmnu;
         int semmsl;
         int semopm;
         int semume;
         int semusz;
         int semvmx;
         int semaem;
 };
 # 82 "/usr/src/linux/include/linux/sem.h"
 struct sem {
         int semval;
         int sempid;
 };
 
 
 struct sem_array {
         struct kern_ipc_perm sem_perm;
         time_t sem_otime;
         time_t sem_ctime;
         struct sem *sem_base;
         struct sem_queue *sem_pending;
         struct sem_queue **sem_pending_last;
         struct sem_undo *undo;
         unsigned long sem_nsems;
 };
 
 
 struct sem_queue {
         struct sem_queue * next;
         struct sem_queue ** prev;
         struct task_struct* sleeper;
         struct sem_undo * undo;
         int pid;
         int status;
         struct sem_array * sma;
         int id;
         struct sembuf * sops;
         int nsops;
         int alter;
 };
 
 
 
 
 struct sem_undo {
         struct sem_undo * proc_next;
         struct sem_undo * id_next;
         int semid;
         short * semadj;
 };
 
  __attribute__((regparm(0))) long sys_semget (key_t key, int nsems, int s=
 emflg);
  __attribute__((regparm(0))) long sys_semop (int semid, struct sembuf *so=
 ps, unsigned nsops);
  __attribute__((regparm(0))) long sys_semctl (int semid, int semnum, int =
 cmd, union semun arg);
 # 26 "/usr/src/linux/include/linux/sched.h" 2
 # 1 "/usr/src/linux/include/linux/signal.h" 1
 
 
 
 # 1 "/usr/src/linux/include/asm/signal.h" 1
 
 
 
 # 1 "/usr/src/linux/include/linux/types.h" 1
 # 5 "/usr/src/linux/include/asm/signal.h" 2
 
 
 struct siginfo;
 # 17 "/usr/src/linux/include/asm/signal.h"
 typedef unsigned long old_sigset_t;
 
 typedef struct {
         unsigned long sig[(64 / 32)];
 } sigset_t;
 # 129 "/usr/src/linux/include/asm/signal.h"
 typedef void (*__sighandler_t)(int);
 
 
 
 
 
 
 struct old_sigaction {
         __sighandler_t sa_handler;
         old_sigset_t sa_mask;
         unsigned long sa_flags;
         void (*sa_restorer)(void);
 };
 
 struct sigaction {
         __sighandler_t sa_handler;
         unsigned long sa_flags;
         void (*sa_restorer)(void);
         sigset_t sa_mask;
 };
 
 struct k_sigaction {
         struct sigaction sa;
 };
 # 171 "/usr/src/linux/include/asm/signal.h"
 typedef struct sigaltstack {
         void *ss_sp;
         int ss_flags;
         size_t ss_size;
 } stack_t;
 
 
 # 1 "/usr/src/linux/include/asm/sigcontext.h" 1
 # 179 "/usr/src/linux/include/asm/signal.h" 2
 
 
 
 static __inline__ void sigaddset(sigset_t *set, int _sig)
 {
         __asm__("btsl %1,%0" : "=3Dm"(*set) : "Ir"(_sig - 1) : "cc");
 }
 
 static __inline__ void sigdelset(sigset_t *set, int _sig)
 {
         __asm__("btrl %1,%0" : "=3Dm"(*set) : "Ir"(_sig - 1) : "cc");
 }
 
 static __inline__ int __const_sigismember(sigset_t *set, int _sig)
 {
         unsigned long sig =3D _sig - 1;
         return 1 & (set->sig[sig / 32] >> (sig % 32));
 }
 
 static __inline__ int __gen_sigismember(sigset_t *set, int _sig)
 {
         int ret;
         __asm__("btl %2,%1\n\tsbbl %0,%0"
                 : "=3Dr"(ret) : "m"(*set), "Ir"(_sig-1) : "cc");
         return ret;
 }
 # 213 "/usr/src/linux/include/asm/signal.h"
 static __inline__ int sigfindinword(unsigned long word)
 {
         __asm__("bsfl %1,%0" : "=3Dr"(word) : "rm"(word) : "cc");
         return word;
 }
 # 5 "/usr/src/linux/include/linux/signal.h" 2
 # 1 "/usr/src/linux/include/asm/siginfo.h" 1
 
 
 
 # 1 "/usr/src/linux/include/linux/types.h" 1
 # 5 "/usr/src/linux/include/asm/siginfo.h" 2
 
 
 
 typedef union sigval {
         int sival_int;
         void *sival_ptr;
 } sigval_t;
 
 
 
 
 typedef struct siginfo {
         int si_signo;
         int si_errno;
         int si_code;
 
         union {
                 int _pad[((128/sizeof(int)) - 3)];
 
 
                 struct {
                         pid_t _pid;
                         uid_t _uid;
                 } _kill;
 
 
                 struct {
                         unsigned int _timer1;
                         unsigned int _timer2;
                 } _timer;
 
 
                 struct {
                         pid_t _pid;
                         uid_t _uid;
                         sigval_t _sigval;
                 } _rt;
 
 
                 struct {
                         pid_t _pid;
                         uid_t _uid;
                         int _status;
                         clock_t _utime;
                         clock_t _stime;
                 } _sigchld;
 
 
                 struct {
                         void *_addr;
                 } _sigfault;
 
 
                 struct {
                         int _band;
                         int _fd;
                 } _sigpoll;
         } _sifields;
 } siginfo_t;
 # 199 "/usr/src/linux/include/asm/siginfo.h"
 typedef struct sigevent {
         sigval_t sigev_value;
         int sigev_signo;
         int sigev_notify;
         union {
                 int _pad[((64/sizeof(int)) - 3)];
 
                 struct {
                         void (*_function)(sigval_t);
                         void *_attribute;
                 } _sigev_thread;
         } _sigev_un;
 } sigevent_t;
 
 
 
 
 
 # 1 "/usr/src/linux/include/linux/string.h" 1
 # 218 "/usr/src/linux/include/asm/siginfo.h" 2
 
 static inline void copy_siginfo(siginfo_t *to, siginfo_t *from)
 {
         if (from->si_code < 0)
                 (__builtin_constant_p(sizeof(siginfo_t)) ? __constant_mem=
 cpy((to),(from),(sizeof(siginfo_t))) : __memcpy((to),(from),(sizeof(sigin=
 fo_t))));
         else
 
                 (__builtin_constant_p(3*sizeof(int) + sizeof(from->_sifie=
 lds._sigchld)) ? __constant_memcpy((to),(from),(3*sizeof(int) + sizeof(fr=
 om->_sifields._sigchld))) : __memcpy((to),(from),(3*sizeof(int) + sizeof(=
 from->_sifields._sigchld))));
 }
 
 extern int copy_siginfo_to_user(siginfo_t *to, siginfo_t *from);
 # 6 "/usr/src/linux/include/linux/signal.h" 2
 
 
 
 
 
 
 struct sigqueue {
         struct sigqueue *next;
         siginfo_t info;
 };
 
 struct sigpending {
         struct sigqueue *head, **tail;
         sigset_t signal;
 };
 # 68 "/usr/src/linux/include/linux/signal.h"
 # 1 "/usr/src/linux/include/linux/string.h" 1
 # 69 "/usr/src/linux/include/linux/signal.h" 2
 # 108 "/usr/src/linux/include/linux/signal.h"
 static inline void sigorsets(sigset_t *r, const sigset_t *a, const sigset=
 _t *b) { unsigned long a0, a1, a2, a3, b0, b1, b2, b3; unsigned long i; f=
 or (i =3D 0; i < (64 / 32)/4; ++i) { a0 =3D a->sig[4*i+0]; a1 =3D a->sig[=
 4*i+1]; a2 =3D a->sig[4*i+2]; a3 =3D a->sig[4*i+3]; b0 =3D b->sig[4*i+0];=
  b1 =3D b->sig[4*i+1]; b2 =3D b->sig[4*i+2]; b3 =3D b->sig[4*i+3]; r->sig=
 [4*i+0] =3D ((a0) | (b0)); r->sig[4*i+1] =3D ((a1) | (b1)); r->sig[4*i+2]=
  =3D ((a2) | (b2)); r->sig[4*i+3] =3D ((a3) | (b3)); } switch ((64 / 32) =
 % 4) { case 3: a0 =3D a->sig[4*i+0]; a1 =3D a->sig[4*i+1]; a2 =3D a->sig[=
 4*i+2]; b0 =3D b->sig[4*i+0]; b1 =3D b->sig[4*i+1]; b2 =3D b->sig[4*i+2];=
  r->sig[4*i+0] =3D ((a0) | (b0)); r->sig[4*i+1] =3D ((a1) | (b1)); r->sig=
 [4*i+2] =3D ((a2) | (b2)); break; case 2: a0 =3D a->sig[4*i+0]; a1 =3D a-=
 >sig[4*i+1]; b0 =3D b->sig[4*i+0]; b1 =3D b->sig[4*i+1]; r->sig[4*i+0] =3D=
  ((a0) | (b0)); r->sig[4*i+1] =3D ((a1) | (b1)); break; case 1: a0 =3D a-=
 >sig[4*i+0]; b0 =3D b->sig[4*i+0]; r->sig[4*i+0] =3D ((a0) | (b0)); break=
 ; } }
 
 
 static inline void sigandsets(sigset_t *r, const sigset_t *a, const sigse=
 t_t *b) { unsigned long a0, a1, a2, a3, b0, b1, b2, b3; unsigned long i; =
 for (i =3D 0; i < (64 / 32)/4; ++i) { a0 =3D a->sig[4*i+0]; a1 =3D a->sig=
 [4*i+1]; a2 =3D a->sig[4*i+2]; a3 =3D a->sig[4*i+3]; b0 =3D b->sig[4*i+0]=
 ; b1 =3D b->sig[4*i+1]; b2 =3D b->sig[4*i+2]; b3 =3D b->sig[4*i+3]; r->si=
 g[4*i+0] =3D ((a0) & (b0)); r->sig[4*i+1] =3D ((a1) & (b1)); r->sig[4*i+2=
 ] =3D ((a2) & (b2)); r->sig[4*i+3] =3D ((a3) & (b3)); } switch ((64 / 32)=
  % 4) { case 3: a0 =3D a->sig[4*i+0]; a1 =3D a->sig[4*i+1]; a2 =3D a->sig=
 [4*i+2]; b0 =3D b->sig[4*i+0]; b1 =3D b->sig[4*i+1]; b2 =3D b->sig[4*i+2]=
 ; r->sig[4*i+0] =3D ((a0) & (b0)); r->sig[4*i+1] =3D ((a1) & (b1)); r->si=
 g[4*i+2] =3D ((a2) & (b2)); break; case 2: a0 =3D a->sig[4*i+0]; a1 =3D a=
 ->sig[4*i+1]; b0 =3D b->sig[4*i+0]; b1 =3D b->sig[4*i+1]; r->sig[4*i+0] =3D=
  ((a0) & (b0)); r->sig[4*i+1] =3D ((a1) & (b1)); break; case 1: a0 =3D a-=
 >sig[4*i+0]; b0 =3D b->sig[4*i+0]; r->sig[4*i+0] =3D ((a0) & (b0)); break=
 ; } }
 
 
 static inline void signandsets(sigset_t *r, const sigset_t *a, const sigs=
 et_t *b) { unsigned long a0, a1, a2, a3, b0, b1, b2, b3; unsigned long i;=
  for (i =3D 0; i < (64 / 32)/4; ++i) { a0 =3D a->sig[4*i+0]; a1 =3D a->si=
 g[4*i+1]; a2 =3D a->sig[4*i+2]; a3 =3D a->sig[4*i+3]; b0 =3D b->sig[4*i+0=
 ]; b1 =3D b->sig[4*i+1]; b2 =3D b->sig[4*i+2]; b3 =3D b->sig[4*i+3]; r->s=
 ig[4*i+0] =3D ((a0) & ~(b0)); r->sig[4*i+1] =3D ((a1) & ~(b1)); r->sig[4*=
 i+2] =3D ((a2) & ~(b2)); r->sig[4*i+3] =3D ((a3) & ~(b3)); } switch ((64 =
 / 32) % 4) { case 3: a0 =3D a->sig[4*i+0]; a1 =3D a->sig[4*i+1]; a2 =3D a=
 ->sig[4*i+2]; b0 =3D b->sig[4*i+0]; b1 =3D b->sig[4*i+1]; b2 =3D b->sig[4=
 *i+2]; r->sig[4*i+0] =3D ((a0) & ~(b0)); r->sig[4*i+1] =3D ((a1) & ~(b1))=
 ; r->sig[4*i+2] =3D ((a2) & ~(b2)); break; case 2: a0 =3D a->sig[4*i+0]; =
 a1 =3D a->sig[4*i+1]; b0 =3D b->sig[4*i+0]; b1 =3D b->sig[4*i+1]; r->sig[=
 4*i+0] =3D ((a0) & ~(b0)); r->sig[4*i+1] =3D ((a1) & ~(b1)); break; case =
 1: a0 =3D a->sig[4*i+0]; b0 =3D b->sig[4*i+0]; r->sig[4*i+0] =3D ((a0) & =
 ~(b0)); break; } }
 # 140 "/usr/src/linux/include/linux/signal.h"
 static inline void signotset(sigset_t *set) { unsigned long i; for (i =3D=
  0; i < (64 / 32)/4; ++i) { set->sig[4*i+0] =3D (~(set->sig[4*i+0])); set=
 ->sig[4*i+1] =3D (~(set->sig[4*i+1])); set->sig[4*i+2] =3D (~(set->sig[4*=
 i+2])); set->sig[4*i+3] =3D (~(set->sig[4*i+3])); } switch ((64 / 32) % 4=
 ) { case 3: set->sig[4*i+2] =3D (~(set->sig[4*i+2])); case 2: set->sig[4*=
 i+1] =3D (~(set->sig[4*i+1])); case 1: set->sig[4*i+0] =3D (~(set->sig[4*=
 i+0])); } }
 
 
 
 
 static inline void sigemptyset(sigset_t *set)
 {
         switch ((64 / 32)) {
         default:
                 (__builtin_constant_p(0) ? (__builtin_constant_p((sizeof(=
 sigset_t))) ? __constant_c_and_count_memset(((set)),((0x01010101UL*(unsig=
 ned char)(0))),((sizeof(sigset_t)))) : __constant_c_memset(((set)),((0x01=
 010101UL*(unsigned char)(0))),((sizeof(sigset_t))))) : (__builtin_constan=
 t_p((sizeof(sigset_t))) ? __memset_generic((((set))),(((0))),(((sizeof(si=
 gset_t))))) : __memset_generic(((set)),((0)),((sizeof(sigset_t))))));
                 break;
         case 2: set->sig[1] =3D 0;
         case 1: set->sig[0] =3D 0;
                 break;
         }
 }
 
 static inline void sigfillset(sigset_t *set)
 {
         switch ((64 / 32)) {
         default:
                 (__builtin_constant_p(-1) ? (__builtin_constant_p((sizeof=
 (sigset_t))) ? __constant_c_and_count_memset(((set)),((0x01010101UL*(unsi=
 gned char)(-1))),((sizeof(sigset_t)))) : __constant_c_memset(((set)),((0x=
 01010101UL*(unsigned char)(-1))),((sizeof(sigset_t))))) : (__builtin_cons=
 tant_p((sizeof(sigset_t))) ? __memset_generic((((set))),(((-1))),(((sizeo=
 f(sigset_t))))) : __memset_generic(((set)),((-1)),((sizeof(sigset_t))))))=
 ;
                 break;
         case 2: set->sig[1] =3D -1;
         case 1: set->sig[0] =3D -1;
                 break;
         }
 }
 
 extern char * render_sigset_t(sigset_t *set, char *buffer);
 
 
 
 static inline void sigaddsetmask(sigset_t *set, unsigned long mask)
 {
         set->sig[0] |=3D mask;
 }
 
 static inline void sigdelsetmask(sigset_t *set, unsigned long mask)
 {
         set->sig[0] &=3D ~mask;
 }
 
 static inline int sigtestsetmask(sigset_t *set, unsigned long mask)
 {
         return (set->sig[0] & mask) !=3D 0;
 }
 
 static inline void siginitset(sigset_t *set, unsigned long mask)
 {
         set->sig[0] =3D mask;
         switch ((64 / 32)) {
         default:
                 (__builtin_constant_p(0) ? (__builtin_constant_p((sizeof(=
 long)*((64 / 32)-1))) ? __constant_c_and_count_memset(((&set->sig[1])),((=
 0x01010101UL*(unsigned char)(0))),((sizeof(long)*((64 / 32)-1)))) : __con=
 stant_c_memset(((&set->sig[1])),((0x01010101UL*(unsigned char)(0))),((siz=
 eof(long)*((64 / 32)-1))))) : (__builtin_constant_p((sizeof(long)*((64 / =
 32)-1))) ? __memset_generic((((&set->sig[1]))),(((0))),(((sizeof(long)*((=
 64 / 32)-1))))) : __memset_generic(((&set->sig[1])),((0)),((sizeof(long)*=
 ((64 / 32)-1))))));
                 break;
         case 2: set->sig[1] =3D 0;
         case 1: ;
         }
 }
 
 static inline void siginitsetinv(sigset_t *set, unsigned long mask)
 {
         set->sig[0] =3D ~mask;
         switch ((64 / 32)) {
         default:
                 (__builtin_constant_p(-1) ? (__builtin_constant_p((sizeof=
 (long)*((64 / 32)-1))) ? __constant_c_and_count_memset(((&set->sig[1])),(=
 (0x01010101UL*(unsigned char)(-1))),((sizeof(long)*((64 / 32)-1)))) : __c=
 onstant_c_memset(((&set->sig[1])),((0x01010101UL*(unsigned char)(-1))),((=
 sizeof(long)*((64 / 32)-1))))) : (__builtin_constant_p((sizeof(long)*((64=
  / 32)-1))) ? __memset_generic((((&set->sig[1]))),(((-1))),(((sizeof(long=
 )*((64 / 32)-1))))) : __memset_generic(((&set->sig[1])),((-1)),((sizeof(l=
 ong)*((64 / 32)-1))))));
                 break;
         case 2: set->sig[1] =3D -1;
         case 1: ;
         }
 }
 
 
 
 static inline void init_sigpending(struct sigpending *sig)
 {
         sigemptyset(&sig->signal);
         sig->head =3D ((void *)0);
         sig->tail =3D &sig->head;
 }
 
 extern long do_sigpending(void *, unsigned long);
 # 27 "/usr/src/linux/include/linux/sched.h" 2
 # 1 "/usr/src/linux/include/linux/securebits.h" 1
 
 
 
 
 
 extern unsigned securebits;
 # 28 "/usr/src/linux/include/linux/sched.h" 2
 # 1 "/usr/src/linux/include/linux/fs_struct.h" 1
 
 
 
 
 struct fs_struct {
         atomic_t count;
         rwlock_t lock;
         int umask;
         struct dentry * root, * pwd, * altroot;
         struct vfsmount * rootmnt, * pwdmnt, * altrootmnt;
 };
 # 20 "/usr/src/linux/include/linux/fs_struct.h"
 extern void exit_fs(struct task_struct *);
 extern void set_fs_altroot(void);
 
 
 
 
 
 
 static inline void set_fs_root(struct fs_struct *fs,
         struct vfsmount *mnt,
         struct dentry *dentry)
 {
         struct dentry *old_root;
         struct vfsmount *old_rootmnt;
         (void)(&fs->lock);
         old_root =3D fs->root;
         old_rootmnt =3D fs->rootmnt;
         fs->rootmnt =3D mntget(mnt);
         fs->root =3D dget(dentry);
         do { } while(0);
         if (old_root) {
                 dput(old_root);
                 mntput(old_rootmnt);
         }
 }
 
 
 
 
 
 
 static inline void set_fs_pwd(struct fs_struct *fs,
         struct vfsmount *mnt,
         struct dentry *dentry)
 {
         struct dentry *old_pwd;
         struct vfsmount *old_pwdmnt;
         (void)(&fs->lock);
         old_pwd =3D fs->pwd;
         old_pwdmnt =3D fs->pwdmnt;
         fs->pwdmnt =3D mntget(mnt);
         fs->pwd =3D dget(dentry);
         do { } while(0);
         if (old_pwd) {
                 dput(old_pwd);
                 mntput(old_pwdmnt);
         }
 }
 
 struct fs_struct *copy_fs_struct(struct fs_struct *old);
 void put_fs_struct(struct fs_struct *fs);
 # 29 "/usr/src/linux/include/linux/sched.h" 2
 
 struct exec_domain;
 # 58 "/usr/src/linux/include/linux/sched.h"
 extern unsigned long avenrun[];
 # 75 "/usr/src/linux/include/linux/sched.h"
 extern int nr_running, nr_threads;
 extern int last_pid;
 
 # 1 "/usr/src/linux/include/linux/fs.h" 1
 # 79 "/usr/src/linux/include/linux/sched.h" 2
 # 1 "/usr/src/linux/include/linux/time.h" 1
 # 80 "/usr/src/linux/include/linux/sched.h" 2
 # 1 "/usr/src/linux/include/linux/param.h" 1
 
 
 
 # 1 "/usr/src/linux/include/asm/param.h" 1
 # 5 "/usr/src/linux/include/linux/param.h" 2
 # 81 "/usr/src/linux/include/linux/sched.h" 2
 # 1 "/usr/src/linux/include/linux/resource.h" 1
 
 
 
 # 1 "/usr/src/linux/include/linux/time.h" 1
 # 5 "/usr/src/linux/include/linux/resource.h" 2
 # 21 "/usr/src/linux/include/linux/resource.h"
 struct rusage {
         struct timeval ru_utime;
         struct timeval ru_stime;
         long ru_maxrss;
         long ru_ixrss;
         long ru_idrss;
         long ru_isrss;
         long ru_minflt;
         long ru_majflt;
         long ru_nswap;
         long ru_inblock;
         long ru_oublock;
         long ru_msgsnd;
         long ru_msgrcv;
         long ru_nsignals;
         long ru_nvcsw;
         long ru_nivcsw;
 };
 
 struct rlimit {
         unsigned long rlim_cur;
         unsigned long rlim_max;
 };
 # 56 "/usr/src/linux/include/linux/resource.h"
 # 1 "/usr/src/linux/include/asm/resource.h" 1
 # 57 "/usr/src/linux/include/linux/resource.h" 2
 # 82 "/usr/src/linux/include/linux/sched.h" 2
 # 1 "/usr/src/linux/include/linux/timer.h" 1
 
 
 
 # 1 "/usr/src/linux/include/linux/config.h" 1
 # 5 "/usr/src/linux/include/linux/timer.h" 2
 # 1 "/usr/src/linux/include/linux/list.h" 1
 # 6 "/usr/src/linux/include/linux/timer.h" 2
 # 16 "/usr/src/linux/include/linux/timer.h"
 struct timer_list {
         struct list_head list;
         unsigned long expires;
         unsigned long data;
         void (*function)(unsigned long);
 };
 typedef struct timer_list timer_t;
 
 extern void add_timer(struct timer_list * timer);
 extern int del_timer(struct timer_list * timer);
 # 42 "/usr/src/linux/include/linux/timer.h"
 int mod_timer(struct timer_list *timer, unsigned long expires);
 
 extern void it_real_fn(unsigned long);
 
 static inline void init_timer(struct timer_list * timer)
 {
         timer->list.next =3D timer->list.prev =3D ((void *)0);
 }
 
 static inline int timer_pending (const struct timer_list * timer)
 {
         return timer->list.next !=3D ((void *)0);
 }
 # 83 "/usr/src/linux/include/linux/sched.h" 2
 
 # 1 "/usr/src/linux/include/asm/processor.h" 1
 # 85 "/usr/src/linux/include/linux/sched.h" 2
 # 125 "/usr/src/linux/include/linux/sched.h"
 struct sched_param {
         int sched_priority;
 };
 
 struct completion;
 
 
 
 # 1 "/usr/src/linux/include/linux/spinlock.h" 1
 # 134 "/usr/src/linux/include/linux/sched.h" 2
 
 
 
 
 
 
 
 extern rwlock_t tasklist_lock;
 extern spinlock_t runqueue_lock;
 extern spinlock_t mmlist_lock;
 
 extern void sched_init(void);
 extern void init_idle(void);
 extern void show_state(void);
 extern void cpu_init (void);
 extern void trap_init(void);
 extern void update_process_times(int user);
 extern void update_one_process(struct task_struct *p, unsigned long user,=
 
                                unsigned long system, int cpu);
 
 
 extern signed long schedule_timeout(signed long timeout) __attribute__((r=
 egparm(3)));
  __attribute__((regparm(0))) void schedule(void);
 
 extern int schedule_task(struct tq_struct *task);
 extern void flush_scheduled_tasks(void);
 extern int start_context_thread(void);
 extern int current_is_keventd(void);
 # 172 "/usr/src/linux/include/linux/sched.h"
 struct files_struct {
         atomic_t count;
         rwlock_t file_lock;
         int max_fds;
         int max_fdset;
         int next_fd;
         struct file ** fd;
         fd_set *close_on_exec;
         fd_set *open_fds;
         fd_set close_on_exec_init;
         fd_set open_fds_init;
         struct file * fd_array[32];
 };
 # 204 "/usr/src/linux/include/linux/sched.h"
 struct mm_struct {
         struct vm_area_struct * mmap;
         rb_root_t mm_rb;
         struct vm_area_struct * mmap_cache;
         pgd_t * pgd;
         atomic_t mm_users;
         atomic_t mm_count;
         int map_count;
         struct rw_semaphore mmap_sem;
         spinlock_t page_table_lock;
 
         struct list_head mmlist;
 
 
 
 
         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_address;
 
         unsigned dumpable:1;
 
 
         mm_context_t context;
 };
 
 extern int mmlist_nr;
 # 247 "/usr/src/linux/include/linux/sched.h"
 struct signal_struct {
         atomic_t count;
         struct k_sigaction action[64];
         spinlock_t siglock;
 };
 # 263 "/usr/src/linux/include/linux/sched.h"
 struct user_struct {
         atomic_t __count;
         atomic_t processes;
         atomic_t files;
 
 
         struct user_struct *next, **pprev;
         uid_t uid;
 };
 
 
 
 
 
 
 extern struct user_struct root_user;
 
 
 struct task_struct {
 
 
 
         volatile long state;
         unsigned long flags;
         int sigpending;
         mm_segment_t addr_limit;
 
 
 
         struct exec_domain *exec_domain;
         volatile long need_resched;
         unsigned long ptrace;
 
         int lock_depth;
 
 
 
 
 
 
         long counter;
         long nice;
         unsigned long policy;
         struct mm_struct *mm;
         int has_cpu, processor;
         unsigned long cpus_allowed;
 
 
 
 
         struct list_head run_list;
         unsigned long sleep_time;
 
         struct task_struct *next_task, *prev_task;
         struct mm_struct *active_mm;
         struct list_head local_pages;
         unsigned int allocation_order, nr_local_pages;
 
 
         struct linux_binfmt *binfmt;
         int exit_code, exit_signal;
         int pdeath_signal;
 
         unsigned long personality;
         int did_exec:1;
         pid_t pid;
         pid_t pgrp;
         pid_t tty_old_pgrp;
         pid_t session;
         pid_t tgid;
 
         int leader;
 
 
 
 
 
         struct task_struct *p_opptr, *p_pptr, *p_cptr, *p_ysptr, *p_osptr=
 ;
         struct list_head thread_group;
 
 
         struct task_struct *pidhash_next;
         struct task_struct **pidhash_pprev;
 
         wait_queue_head_t wait_chldexit;
         struct completion *vfork_done;
         unsigned long 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[1], per_cpu_stime[1];
 
         unsigned long min_flt, maj_flt, nswap, cmin_flt, cmaj_flt, cnswap=
 ;
         int swappable:1;
 
         uid_t uid,euid,suid,fsuid;
         gid_t gid,egid,sgid,fsgid;
         int ngroups;
         gid_t groups[32];
         kernel_cap_t cap_effective, cap_inheritable, cap_permitted;
         int keep_capabilities:1;
         struct user_struct *user;
 
         struct rlimit rlim[11];
         unsigned short used_math;
         char comm[16];
 
         int link_count;
         struct tty_struct *tty;
         unsigned int locks;
 
         struct sem_undo *semundo;
         struct sem_queue *semsleeping;
 
         struct thread_struct thread;
 
         struct fs_struct *fs;
 
         struct files_struct *files;
 
         spinlock_t sigmask_lock;
         struct signal_struct *sig;
 
         sigset_t blocked;
         struct sigpending pending;
 
         unsigned long sas_ss_sp;
         size_t sas_ss_size;
         int (*notifier)(void *priv);
         void *notifier_data;
         sigset_t *notifier_mask;
 
 
         u32 parent_exec_id;
         u32 self_exec_id;
 
         spinlock_t alloc_lock;
 };
 # 444 "/usr/src/linux/include/linux/sched.h"
 extern struct exec_domain default_exec_domain;
 # 496 "/usr/src/linux/include/linux/sched.h"
 union task_union {
         struct task_struct task;
         unsigned long stack[2048*sizeof(long)/sizeof(long)];
 };
 
 extern union task_union init_task_union;
 
 extern struct mm_struct init_mm;
 extern struct task_struct *init_tasks[1];
 
 
 
 extern struct task_struct *pidhash[(4096 >> 2)];
 
 
 
 static inline void hash_pid(struct task_struct *p)
 {
         struct task_struct **htable =3D &pidhash[((((p->pid) >> 8) ^ (p->=
 pid)) & ((4096 >> 2) - 1))];
 
         if((p->pidhash_next =3D *htable) !=3D ((void *)0))
                 (*htable)->pidhash_pprev =3D &p->pidhash_next;
         *htable =3D p;
         p->pidhash_pprev =3D htable;
 }
 
 static inline void unhash_pid(struct task_struct *p)
 {
         if(p->pidhash_next)
                 p->pidhash_next->pidhash_pprev =3D p->pidhash_pprev;
         *p->pidhash_pprev =3D p->pidhash_next;
 }
 
 static inline struct task_struct *find_task_by_pid(int pid)
 {
         struct task_struct *p, **htable =3D &pidhash[((((pid) >> 8) ^ (pi=
 d)) & ((4096 >> 2) - 1))];
 
         for(p =3D *htable; p && p->pid !=3D pid; p =3D p->pidhash_next)
                 ;
 
         return p;
 }
 
 
 extern struct user_struct * alloc_uid(uid_t);
 extern void free_uid(struct user_struct *);
 
 # 1 "/usr/src/linux/include/asm/current.h" 1
 
 
 
 struct task_struct;
 
 static inline struct task_struct * get_current(void)
 {
         struct task_struct *current;
         __asm__("andl %%esp,%0; ":"=3Dr" (current) : "0" (~8191UL));
         return current;
  }
 # 544 "/usr/src/linux/include/linux/sched.h" 2
 
 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;
 
 
 
 extern void __wake_up(wait_queue_head_t *q, unsigned int mode, int nr) __=
 attribute__((regparm(3)));
 extern void __wake_up_sync(wait_queue_head_t *q, unsigned int mode, int n=
 r) __attribute__((regparm(3)));
 extern void sleep_on(wait_queue_head_t *q) __attribute__((regparm(3)));
 extern long sleep_on_timeout(wait_queue_head_t *q, signed long timeout) _=
 _attribute__((regparm(3)));
 
 extern void interruptible_sleep_on(wait_queue_head_t *q) __attribute__((r=
 egparm(3)));
 extern long interruptible_sleep_on_timeout(wait_queue_head_t *q, signed l=
 ong timeout) __attribute__((regparm(3)));
 
 extern int wake_up_process(struct task_struct * tsk) __attribute__((regpa=
 rm(3)));
 # 577 "/usr/src/linux/include/linux/sched.h"
  __attribute__((regparm(0))) long sys_wait4(pid_t pid,unsigned int * stat=
 _addr, int options, struct rusage * ru);
 
 extern int in_group_p(gid_t);
 extern int in_egroup_p(gid_t);
 
 extern void proc_caches_init(void);
 extern void flush_signals(struct task_struct *);
 extern void flush_signal_handlers(struct task_struct *);
 extern int dequeue_signal(sigset_t *, siginfo_t *);
 extern void block_all_signals(int (*notifier)(void *priv), void *priv,
                               sigset_t *mask);
 extern void unblock_all_signals(void);
 extern int send_sig_info(int, struct siginfo *, struct task_struct *);
 extern int force_sig_info(int, struct siginfo *, struct task_struct *);
 extern int kill_pg_info(int, struct siginfo *, pid_t);
 extern int kill_sl_info(int, struct siginfo *, pid_t);
 extern int kill_proc_info(int, struct siginfo *, pid_t);
 extern void notify_parent(struct task_struct *, int);
 extern void do_notify_parent(struct task_struct *, int);
 extern void force_sig(int, struct task_struct *);
 extern int send_sig(int, struct task_struct *, int);
 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, const struct k_sigaction *, struct k_sigacti=
 on *);
 extern int do_sigaltstack(const stack_t *, stack_t *, unsigned long);
 
 static inline int signal_pending(struct task_struct *p)
 {
         return (p->sigpending !=3D 0);
 }
 
 
 
 
 
 static inline int has_pending_signals(sigset_t *signal, sigset_t *blocked=
 )
 {
         unsigned long ready;
         long i;
 
         switch ((64 / 32)) {
         default:
                 for (i =3D (64 / 32), ready =3D 0; --i >=3D 0 ;)
                         ready |=3D signal->sig[i] &~ blocked->sig[i];
                 break;
 
         case 4: ready =3D signal->sig[3] &~ blocked->sig[3];
                 ready |=3D signal->sig[2] &~ blocked->sig[2];
                 ready |=3D signal->sig[1] &~ blocked->sig[1];
                 ready |=3D signal->sig[0] &~ blocked->sig[0];
                 break;
 
         case 2: ready =3D signal->sig[1] &~ blocked->sig[1];
                 ready |=3D signal->sig[0] &~ blocked->sig[0];
                 break;
 
         case 1: ready =3D signal->sig[0] &~ blocked->sig[0];
         }
         return ready !=3D 0;
 }
 
 
 
 
 
 static inline void recalc_sigpending(struct task_struct *t)
 {
         t->sigpending =3D has_pending_signals(&t->pending.signal, &t->blo=
 cked);
 }
 
 
 
 static inline int on_sig_stack(unsigned long sp)
 {
         return (sp - get_current()->sas_ss_sp < get_current()->sas_ss_siz=
 e);
 }
 
 static inline int sas_ss_flags(unsigned long sp)
 {
         return (get_current()->sas_ss_size =3D=3D 0 ? 2
                 : on_sig_stack(sp) ? 1 : 0);
 }
 
 extern int request_irq(unsigned int,
                        void (*handler)(int, void *, struct pt_regs *),
                        unsigned long, const char *, void *);
 extern void free_irq(unsigned int, void *);
 # 680 "/usr/src/linux/include/linux/sched.h"
 static inline int suser(void)
 {
         if (!( (1 << (0 +1)) & 0x00000000 ? (1 << (0)) & 0x00000000 : (1 =
 << (0)) & securebits ) && get_current()->euid =3D=3D 0) {
                 get_current()->flags |=3D 0x00000100;
                 return 1;
         }
         return 0;
 }
 
 static inline int fsuser(void)
 {
         if (!( (1 << (0 +1)) & 0x00000000 ? (1 << (0)) & 0x00000000 : (1 =
 << (0)) & securebits ) && get_current()->fsuid =3D=3D 0) {
                 get_current()->flags |=3D 0x00000100;
                 return 1;
         }
         return 0;
 }
 
 
 
 
 
 
 
 static inline int capable(int cap)
 {
 
         if (((get_current()->cap_effective) & (1 << (cap))))
 
 
 
         {
                 get_current()->flags |=3D 0x00000100;
                 return 1;
         }
         return 0;
 }
 
 
 
 
 extern struct mm_struct * mm_alloc(void);
 
 extern struct mm_struct * start_lazy_tlb(void);
 extern void end_lazy_tlb(struct mm_struct *mm);
 
 
 extern inline void __mmdrop(struct mm_struct *) __attribute__((regparm(3)=
 ));
 static inline void mmdrop(struct mm_struct * mm)
 {
         if (atomic_dec_and_test(&mm->mm_count))
                 __mmdrop(mm);
 }
 
 
 extern void mmput(struct mm_struct *);
 
 extern void mm_release(void);
 
 
 
 
 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);
 
 extern int copy_thread(int, unsigned long, 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_files(struct task_struct *);
 extern void exit_sighand(struct task_struct *);
 
 extern void reparent_to_init(void);
 extern void daemonize(void);
 
 extern int do_execve(char *, char **, char **, struct pt_regs *);
 extern int do_fork(unsigned long, unsigned long, struct pt_regs *, unsign=
 ed long);
 
 extern void add_wait_queue(wait_queue_head_t *q, wait_queue_t * wait) __a=
 ttribute__((regparm(3)));
 extern void add_wait_queue_exclusive(wait_queue_head_t *q, wait_queue_t *=
  wait) __attribute__((regparm(3)));
 extern void remove_wait_queue(wait_queue_head_t *q, wait_queue_t * wait) =
 __attribute__((regparm(3)));
 # 848 "/usr/src/linux/include/linux/sched.h"
 static inline void del_from_runqueue(struct task_struct * p)
 {
         nr_running--;
         p->sleep_time =3D jiffies;
         list_del(&p->run_list);
         p->run_list.next =3D ((void *)0);
 }
 
 static inline int task_on_runqueue(struct task_struct *p)
 {
         return (p->run_list.next !=3D ((void *)0));
 }
 
 static inline void unhash_process(struct task_struct *p)
 {
         if (task_on_runqueue(p)) __asm__ __volatile__(".byte 0x0f,0x0b");=
 
         do { __asm__ __volatile__("cli": : :"memory"); (void)(&tasklist_l=
 ock); } while (0);
         nr_threads--;
         unhash_pid(p);
         do { (p)->next_task->prev_task =3D (p)->prev_task; (p)->prev_task=
 ->next_task =3D (p)->next_task; if ((p)->p_osptr) (p)->p_osptr->p_ysptr =3D=
  (p)->p_ysptr; if ((p)->p_ysptr) (p)->p_ysptr->p_osptr =3D (p)->p_osptr; =
 else (p)->p_pptr->p_cptr =3D (p)->p_osptr; } while (0);
         list_del(&p->thread_group);
         do { do { } while(0); __asm__ __volatile__("sti": : :"memory"); }=
  while (0);
 }
 
 
 static inline void task_lock(struct task_struct *p)
 {
         (void)(&p->alloc_lock);
 }
 
 static inline void task_unlock(struct task_struct *p)
 {
         do { } while(0);
 }
 
 
 static inline char * d_path(struct dentry *dentry, struct vfsmount *vfsmn=
 t,
                                 char *buf, int buflen)
 {
         char *res;
         struct vfsmount *rootmnt;
         struct dentry *root;
         (void)(&get_current()->fs->lock);
         rootmnt =3D mntget(get_current()->fs->rootmnt);
         root =3D dget(get_current()->fs->root);
         do { } while(0);
         (void)(&dcache_lock);
         res =3D __d_path(dentry, vfsmnt, root, rootmnt, buf, buflen);
         do { } while(0);
         dput(root);
         mntput(rootmnt);
         return res;
 }
 # 5 "/usr/src/linux/include/linux/mm.h" 2
 # 1 "/usr/src/linux/include/linux/errno.h" 1
 # 6 "/usr/src/linux/include/linux/mm.h" 2
 
 
 
 # 1 "/usr/src/linux/include/linux/config.h" 1
 # 10 "/usr/src/linux/include/linux/mm.h" 2
 # 1 "/usr/src/linux/include/linux/string.h" 1
 # 11 "/usr/src/linux/include/linux/mm.h" 2
 # 1 "/usr/src/linux/include/linux/list.h" 1
 # 12 "/usr/src/linux/include/linux/mm.h" 2
 # 1 "/usr/src/linux/include/linux/mmzone.h" 1
 
 
 
 
 
 
 # 1 "/usr/src/linux/include/linux/config.h" 1
 # 8 "/usr/src/linux/include/linux/mmzone.h" 2
 # 1 "/usr/src/linux/include/linux/spinlock.h" 1
 # 9 "/usr/src/linux/include/linux/mmzone.h" 2
 # 1 "/usr/src/linux/include/linux/list.h" 1
 # 10 "/usr/src/linux/include/linux/mmzone.h" 2
 # 21 "/usr/src/linux/include/linux/mmzone.h"
 typedef struct free_area_struct {
         struct list_head free_list;
         unsigned long *map;
 } free_area_t;
 
 struct pglist_data;
 # 36 "/usr/src/linux/include/linux/mmzone.h"
 typedef struct zone_struct {
 
 
 
         spinlock_t lock;
         unsigned long free_pages;
         unsigned long pages_min, pages_low, pages_high;
         int need_balance;
 
 
 
 
         free_area_t free_area[10];
 
 
 
 
         struct pglist_data *zone_pgdat;
         struct page *zone_mem_map;
         unsigned long zone_start_paddr;
         unsigned long zone_start_mapnr;
 
 
 
 
         char *name;
         unsigned long size;
 } zone_t;
 # 81 "/usr/src/linux/include/linux/mmzone.h"
 typedef struct zonelist_struct {
         zone_t * zones [3 +1];
 } zonelist_t;
 # 98 "/usr/src/linux/include/linux/mmzone.h"
 struct bootmem_data;
 typedef struct pglist_data {
         zone_t node_zones[3];
         zonelist_t node_zonelists[0x0f +1];
         int nr_zones;
         struct page *node_mem_map;
         unsigned long *valid_addr_bitmap;
         struct bootmem_data *bdata;
         unsigned long node_start_paddr;
         unsigned long node_start_mapnr;
         unsigned long node_size;
         int node_id;
         struct pglist_data *node_next;
 } pg_data_t;
 
 extern int numnodes;
 extern pg_data_t *pgdat_list;
 # 123 "/usr/src/linux/include/linux/mmzone.h"
 struct page;
 extern void show_free_areas_core(pg_data_t *pgdat);
 extern void free_area_init_core(int nid, pg_data_t *pgdat, struct page **=
 gmap,
   unsigned long *zones_size, unsigned long paddr, unsigned long *zholes_s=
 ize,
   struct page *pmap);
 
 extern pg_data_t contig_page_data;
 # 13 "/usr/src/linux/include/linux/mm.h" 2
 # 1 "/usr/src/linux/include/linux/swap.h" 1
 
 
 
 # 1 "/usr/src/linux/include/linux/spinlock.h" 1
 # 5 "/usr/src/linux/include/linux/swap.h" 2
 # 1 "/usr/src/linux/include/asm/page.h" 1
 # 6 "/usr/src/linux/include/linux/swap.h" 2
 # 25 "/usr/src/linux/include/linux/swap.h"
 union swap_header {
         struct
         {
                 char reserved[(1UL << 12) - 10];
                 char magic[10];
         } magic;
         struct
         {
                 char bootbits[1024];
                 unsigned int version;
                 unsigned int last_page;
                 unsigned int nr_badpages;
                 unsigned int padding[125];
                 unsigned int badpages[1];
         } info;
 };
 # 51 "/usr/src/linux/include/linux/swap.h"
 # 1 "/usr/src/linux/include/asm/atomic.h" 1
 # 52 "/usr/src/linux/include/linux/swap.h" 2
 # 64 "/usr/src/linux/include/linux/swap.h"
 struct swap_info_struct {
         unsigned int flags;
         kdev_t swap_device;
         spinlock_t sdev_lock;
         struct dentry * swap_file;
         struct vfsmount *swap_vfsmnt;
         unsigned short * swap_map;
         unsigned int lowest_bit;
         unsigned int highest_bit;
         unsigned int cluster_next;
         unsigned int cluster_nr;
         int prio;
         int pages;
         unsigned long max;
         int next;
 };
 
 extern int nr_swap_pages;
 extern unsigned int nr_free_pages(void);
 extern unsigned int nr_free_buffer_pages(void);
 extern int nr_active_pages;
 extern int nr_inactive_pages;
 extern atomic_t nr_async_pages;
 extern atomic_t page_cache_size;
 extern atomic_t buffermem_pages;
 extern spinlock_t pagecache_lock;
 extern void __remove_inode_page(struct page *);
 
 
 struct task_struct;
 struct vm_area_struct;
 struct sysinfo;
 
 struct zone_t;
 
 
 extern void lru_cache_add(struct page *) __attribute__((regparm(3)));
 extern void __lru_cache_del(struct page *) __attribute__((regparm(3)));
 extern void lru_cache_del(struct page *) __attribute__((regparm(3)));
 
 extern void deactivate_page(struct page *) __attribute__((regparm(3)));
 extern void deactivate_page_nolock(struct page *) __attribute__((regparm(=
 3)));
 extern void activate_page(struct page *) __attribute__((regparm(3)));
 extern void activate_page_nolock(struct page *) __attribute__((regparm(3)=
 ));
 
 extern void swap_setup(void);
 
 
 extern wait_queue_head_t kswapd_wait;
 extern int try_to_free_pages(zone_t *, unsigned int, unsigned int) __attr=
 ibute__((regparm(3)));
 
 
 extern void rw_swap_page(int, struct page *);
 extern void rw_swap_page_nolock(int, swp_entry_t, char *);
 
 
 
 
 extern void show_swap_cache_info(void);
 extern void add_to_swap_cache(struct page *, swp_entry_t);
 extern void __delete_from_swap_cache(struct page *page);
 extern void delete_from_swap_cache(struct page *page);
 extern void free_page_and_swap_cache(struct page *page);
 extern struct page * lookup_swap_cache(swp_entry_t);
 extern struct page * read_swap_cache_async(swp_entry_t);
 
 
 extern void oom_kill(void);
 
 
 extern unsigned int nr_swapfiles;
 extern struct swap_info_struct swap_info[];
 extern int is_swap_partition(kdev_t);
 extern void si_swapinfo(struct sysinfo *);
 extern swp_entry_t get_swap_page(void);
 extern void get_swaphandle_info(swp_entry_t, unsigned long *, kdev_t *,
                                         struct inode **);
 extern int swap_duplicate(swp_entry_t);
 extern int swap_count(struct page *);
 extern int valid_swaphandles(swp_entry_t, unsigned long *);
 extern void swap_free(swp_entry_t);
 struct swap_list_t {
         int head;
         int next;
 };
 extern struct swap_list_t swap_list;
  __attribute__((regparm(0))) long sys_swapoff(const char *);
  __attribute__((regparm(0))) long sys_swapon(const char *, int);
 
 
 
 
 extern unsigned long swap_cache_add_total;
 extern unsigned long swap_cache_del_total;
 extern unsigned long swap_cache_find_total;
 extern unsigned long swap_cache_find_success;
 
 
 extern spinlock_t pagemap_lru_lock;
 
 extern void mark_page_accessed(struct page *) __attribute__((regparm(3)))=
 ;
 # 226 "/usr/src/linux/include/linux/swap.h"
 extern spinlock_t swaplock;
 
 
 
 
 
 
 extern void shmem_unuse(swp_entry_t entry, struct page *page);
 # 14 "/usr/src/linux/include/linux/mm.h" 2
 # 1 "/usr/src/linux/include/linux/rbtree.h" 1
 # 15 "/usr/src/linux/include/linux/mm.h" 2
 
 extern unsigned long max_mapnr;
 extern unsigned long num_physpages;
 extern void * high_memory;
 extern int page_cluster;
 
 extern struct list_head active_list;
 extern struct list_head inactive_list;
 
 # 1 "/usr/src/linux/include/asm/page.h" 1
 # 25 "/usr/src/linux/include/linux/mm.h" 2
 # 1 "/usr/src/linux/include/asm/pgtable.h" 1
 
 
 
 # 1 "/usr/src/linux/include/linux/config.h" 1
 # 5 "/usr/src/linux/include/asm/pgtable.h" 2
 # 16 "/usr/src/linux/include/asm/pgtable.h"
 # 1 "/usr/src/linux/include/asm/processor.h" 1
 # 17 "/usr/src/linux/include/asm/pgtable.h" 2
 # 1 "/usr/src/linux/include/asm/fixmap.h" 1
 # 16 "/usr/src/linux/include/asm/fixmap.h"
 # 1 "/usr/src/linux/include/linux/config.h" 1
 # 17 "/usr/src/linux/include/asm/fixmap.h" 2
 # 1 "/usr/src/linux/include/linux/kernel.h" 1
 # 18 "/usr/src/linux/include/asm/fixmap.h" 2
 # 1 "/usr/src/linux/include/asm/apicdef.h" 1
 # 122 "/usr/src/linux/include/asm/apicdef.h"
 struct local_apic {
 
         struct { unsigned int __reserved[4]; } __reserved_01;
 
         struct { unsigned int __reserved[4]; } __reserved_02;
 
         struct {
                 unsigned int __reserved_1 : 24,
                         phys_apic_id : 4,
                         __reserved_2 : 4;
                 unsigned int __reserved[3];
         } id;
 
         const
         struct {
                 unsigned int version : 8,
                         __reserved_1 : 8,
                         max_lvt : 8,
                         __reserved_2 : 8;
                 unsigned int __reserved[3];
         } version;
 
         struct { unsigned int __reserved[4]; } __reserved_03;
 
         struct { unsigned int __reserved[4]; } __reserved_04;
 
         struct { unsigned int __reserved[4]; } __reserved_05;
 
         struct { unsigned int __reserved[4]; } __reserved_06;
 
         struct {
                 unsigned int priority : 8,
                         __reserved_1 : 24;
                 unsigned int __reserved_2[3];
         } tpr;
 
         const
         struct {
                 unsigned int priority : 8,
                         __reserved_1 : 24;
                 unsigned int __reserved_2[3];
         } apr;
 
         const
         struct {
                 unsigned int priority : 8,
                         __reserved_1 : 24;
                 unsigned int __reserved_2[3];
         } ppr;
 
         struct {
                 unsigned int eoi;
                 unsigned int __reserved[3];
         } eoi;
 
         struct { unsigned int __reserved[4]; } __reserved_07;
 
         struct {
                 unsigned int __reserved_1 : 24,
                         logical_dest : 8;
                 unsigned int __reserved_2[3];
         } ldr;
 
         struct {
                 unsigned int __reserved_1 : 28,
                         model : 4;
                 unsigned int __reserved_2[3];
         } dfr;
 
         struct {
                 unsigned int spurious_vector : 8,
                         apic_enabled : 1,
                         focus_cpu : 1,
                         __reserved_2 : 22;
                 unsigned int __reserved_3[3];
         } svr;
 
         struct {
                 unsigned int bitfield;
                 unsigned int __reserved[3];
         } isr [8];
 
         struct {
                 unsigned int bitfield;
                 unsigned int __reserved[3];
         } tmr [8];
 
         struct {
                 unsigned int bitfield;
                 unsigned int __reserved[3];
         } irr [8];
 
         union {
                 struct {
                         unsigned int send_cs_error : 1,
                                 receive_cs_error : 1,
                                 send_accept_error : 1,
                                 receive_accept_error : 1,
                                 __reserved_1 : 1,
                                 send_illegal_vector : 1,
                                 receive_illegal_vector : 1,
                                 illegal_register_address : 1,
                                 __reserved_2 : 24;
                         unsigned int __reserved_3[3];
                 } error_bits;
                 struct {
                         unsigned int errors;
                         unsigned int __reserved_3[3];
                 } all_errors;
         } esr;
 
         struct { unsigned int __reserved[4]; } __reserved_08;
 
         struct { unsigned int __reserved[4]; } __reserved_09;
 
         struct { unsigned int __reserved[4]; } __reserved_10;
 
         struct { unsigned int __reserved[4]; } __reserved_11;
 
         struct { unsigned int __reserved[4]; } __reserved_12;
 
         struct { unsigned int __reserved[4]; } __reserved_13;
 
         struct { unsigned int __reserved[4]; } __reserved_14;
 
         struct {
                 unsigned int vector : 8,
                         delivery_mode : 3,
                         destination_mode : 1,
                         delivery_status : 1,
                         __reserved_1 : 1,
                         level : 1,
                         trigger : 1,
                         __reserved_2 : 2,
                         shorthand : 2,
                         __reserved_3 : 12;
                 unsigned int __reserved_4[3];
         } icr1;
 
         struct {
                 union {
                         unsigned int __reserved_1 : 24,
                                 phys_dest : 4,
                                 __reserved_2 : 4;
                         unsigned int __reserved_3 : 24,
                                 logical_dest : 8;
                 } dest;
                 unsigned int __reserved_4[3];
         } icr2;
 
         struct {
                 unsigned int vector : 8,
                         __reserved_1 : 4,
                         delivery_status : 1,
                         __reserved_2 : 3,
                         mask : 1,
                         timer_mode : 1,
                         __reserved_3 : 14;
                 unsigned int __reserved_4[3];
         } lvt_timer;
 
         struct { unsigned int __reserved[4]; } __reserved_15;
 
         struct {
                 unsigned int vector : 8,
                         delivery_mode : 3,
                         __reserved_1 : 1,
                         delivery_status : 1,
                         __reserved_2 : 3,
                         mask : 1,
                         __reserved_3 : 15;
                 unsigned int __reserved_4[3];
         } lvt_pc;
 
         struct {
                 unsigned int vector : 8,
                         delivery_mode : 3,
                         __reserved_1 : 1,
                         delivery_status : 1,
                         polarity : 1,
                         remote_irr : 1,
                         trigger : 1,
                         mask : 1,
                         __reserved_2 : 15;
                 unsigned int __reserved_3[3];
         } lvt_lint0;
 
         struct {
                 unsigned int vector : 8,
                         delivery_mode : 3,
                         __reserved_1 : 1,
                         delivery_status : 1,
                         polarity : 1,
                         remote_irr : 1,
                         trigger : 1,
                         mask : 1,
                         __reserved_2 : 15;
                 unsigned int __reserved_3[3];
         } lvt_lint1;
 
         struct {
                 unsigned int vector : 8,
                         __reserved_1 : 4,
                         delivery_status : 1,
                         __reserved_2 : 3,
                         mask : 1,
                         __reserved_3 : 15;
                 unsigned int __reserved_4[3];
         } lvt_error;
 
         struct {
                 unsigned int initial_count;
                 unsigned int __reserved_2[3];
         } timer_icr;
 
         const
         struct {
                 unsigned int curr_count;
                 unsigned int __reserved_2[3];
         } timer_ccr;
 
         struct { unsigned int __reserved[4]; } __reserved_16;
 
         struct { unsigned int __reserved[4]; } __reserved_17;
 
         struct { unsigned int __reserved[4]; } __reserved_18;
 
         struct { unsigned int __reserved[4]; } __reserved_19;
 
         struct {
                 unsigned int divisor : 4,
                         __reserved_1 : 28;
                 unsigned int __reserved_2[3];
         } timer_dcr;
 
         struct { unsigned int __reserved[4]; } __reserved_20;
 
 } __attribute__ ((packed));
 # 19 "/usr/src/linux/include/asm/fixmap.h" 2
 # 1 "/usr/src/linux/include/asm/page.h" 1
 # 20 "/usr/src/linux/include/asm/fixmap.h" 2
 # 50 "/usr/src/linux/include/asm/fixmap.h"
 enum fixed_addresses {
 
         FIX_APIC_BASE,
 
 
         FIX_IO_APIC_BASE_0,
         FIX_IO_APIC_BASE_END =3D FIX_IO_APIC_BASE_0 + 8 -1,
 # 68 "/usr/src/linux/include/asm/fixmap.h"
         __end_of_fixed_addresses
 };
 
 extern void __set_fixmap (enum fixed_addresses idx,
                                         unsigned long phys, pgprot_t flag=
 s);
 # 94 "/usr/src/linux/include/asm/fixmap.h"
 extern void __this_fixmap_does_not_exist(void);
 
 
 
 
 
 
 static inline unsigned long fix_to_virt(const unsigned int idx)
 {
 # 112 "/usr/src/linux/include/asm/fixmap.h"
         if (idx >=3D __end_of_fixed_addresses)
                 __this_fixmap_does_not_exist();
 
         return ((0xffffe000UL) - ((idx) << 12));
 }
 # 18 "/usr/src/linux/include/asm/pgtable.h" 2
 # 1 "/usr/src/linux/include/linux/threads.h" 1
 # 19 "/usr/src/linux/include/asm/pgtable.h" 2
 
 
 
 
 
 extern pgd_t swapper_pg_dir[1024];
 extern void paging_init(void);
 # 67 "/usr/src/linux/include/asm/pgtable.h"
 extern unsigned long pgkern_mask;
 # 95 "/usr/src/linux/include/asm/pgtable.h"
 extern unsigned long empty_zero_page[1024];
 # 109 "/usr/src/linux/include/asm/pgtable.h"
 # 1 "/usr/src/linux/include/asm/pgtable-2level.h" 1
 # 32 "/usr/src/linux/include/asm/pgtable-2level.h"
 static inline int pgd_none(pgd_t pgd) { return 0; }
 static inline int pgd_bad(pgd_t pgd) { return 0; }
 static inline int pgd_present(pgd_t pgd) { return 1; }
 # 53 "/usr/src/linux/include/asm/pgtable-2level.h"
 static inline pmd_t * pmd_offset(pgd_t * dir, unsigned long address)
 {
         return (pmd_t *) dir;
 }
 # 110 "/usr/src/linux/include/asm/pgtable.h" 2
 # 244 "/usr/src/linux/include/asm/pgtable.h"
 extern unsigned long pg0[1024];
 # 265 "/usr/src/linux/include/asm/pgtable.h"
 static inline int pte_read(pte_t pte) { return (pte).pte_low & 0x004; }
 static inline int pte_exec(pte_t pte) { return (pte).pte_low & 0x004; }
 static inline int pte_dirty(pte_t pte) { return (pte).pte_low & 0x040; }
 static inline int pte_young(pte_t pte) { return (pte).pte_low & 0x020; }
 static inline int pte_write(pte_t pte) { return (pte).pte_low & 0x002; }
 
 static inline pte_t pte_rdprotect(pte_t pte) { (pte).pte_low &=3D ~0x004;=
  return pte; }
 static inline pte_t pte_exprotect(pte_t pte) { (pte).pte_low &=3D ~0x004;=
  return pte; }
 static inline pte_t pte_mkclean(pte_t pte) { (pte).pte_low &=3D ~0x040; r=
 eturn pte; }
 static inline pte_t pte_mkold(pte_t pte) { (pte).pte_low &=3D ~0x020; ret=
 urn pte; }
 static inline pte_t pte_wrprotect(pte_t pte) { (pte).pte_low &=3D ~0x002;=
  return pte; }
 static inline pte_t pte_mkread(pte_t pte) { (pte).pte_low |=3D 0x004; ret=
 urn pte; }
 static inline pte_t pte_mkexec(pte_t pte) { (pte).pte_low |=3D 0x004; ret=
 urn pte; }
 static inline pte_t pte_mkdirty(pte_t pte) { (pte).pte_low |=3D 0x040; re=
 turn pte; }
 static inline pte_t pte_mkyoung(pte_t pte) { (pte).pte_low |=3D 0x020; re=
 turn pte; }
 static inline pte_t pte_mkwrite(pte_t pte) { (pte).pte_low |=3D 0x002; re=
 turn pte; }
 
 static inline int ptep_test_and_clear_dirty(pte_t *ptep) { return test_an=
 d_clear_bit(6, ptep); }
 static inline int ptep_test_and_clear_young(pte_t *ptep) { return test_an=
 d_clear_bit(5, ptep); }
 static inline void ptep_set_wrprotect(pte_t *ptep) { clear_bit(1, ptep); =
 }
 static inline void ptep_mkdirty(pte_t *ptep) { set_bit(6, ptep); }
 # 297 "/usr/src/linux/include/asm/pgtable.h"
 static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
 {
         pte.pte_low &=3D ((~((1UL << 12)-1)) | 0x020 | 0x040);
         pte.pte_low |=3D ((newprot).pgprot);
         return pte;
 }
 # 26 "/usr/src/linux/include/linux/mm.h" 2
 # 1 "/usr/src/linux/include/asm/atomic.h" 1
 # 27 "/usr/src/linux/include/linux/mm.h" 2
 # 43 "/usr/src/linux/include/linux/mm.h"
 struct vm_area_struct {
         struct mm_struct * vm_mm;
         unsigned long vm_start;
         unsigned long vm_end;
 
 
         struct vm_area_struct *vm_next;
 
         pgprot_t vm_page_prot;
         unsigned long vm_flags;
 
         rb_node_t vm_rb;
 
 
 
 
 
 
         struct vm_area_struct *vm_next_share;
         struct vm_area_struct **vm_pprev_share;
 
 
         struct vm_operations_struct * vm_ops;
 
 
         unsigned long vm_pgoff;
 
         struct file * vm_file;
         unsigned long vm_raend;
         void * vm_private_data;
 };
 # 117 "/usr/src/linux/include/linux/mm.h"
 extern pgprot_t protection_map[16];
 
 
 
 
 
 
 
 struct vm_operations_struct {
         void (*open)(struct vm_area_struct * area);
         void (*close)(struct vm_area_struct * area);
         struct page * (*nopage)(struct vm_area_struct * area, unsigned lo=
 ng address, int write_access);
 };
 # 146 "/usr/src/linux/include/linux/mm.h"
 typedef struct page {
         struct list_head list;
         struct address_space *mapping;
         unsigned long index;
         struct page *next_hash;
 
         atomic_t count;
         unsigned long flags;
 
         struct list_head lru;
 
         wait_queue_head_t wait;
         struct page **pprev_hash;
         struct buffer_head * buffers;
         void *virtual;
 
         struct zone_struct *zone;
 } mem_map_t;
 # 296 "/usr/src/linux/include/linux/mm.h"
 extern void __set_page_dirty(struct page *);
 
 static inline void set_page_dirty(struct page * page)
 {
         if (!test_and_set_bit(4, &page->flags))
                 __set_page_dirty(page);
 }
 # 360 "/usr/src/linux/include/linux/mm.h"
 extern mem_map_t * mem_map;
 
 
 
 
 
 
 
 extern struct page * _alloc_pages(unsigned int gfp_mask, unsigned int ord=
 er) __attribute__((regparm(3)));
 extern struct page * __alloc_pages(unsigned int gfp_mask, unsigned int or=
 der, zonelist_t *zonelist) __attribute__((regparm(3)));
 extern struct page * alloc_pages_node(int nid, unsigned int gfp_mask, uns=
 igned int order);
 
 static inline struct page * alloc_pages(unsigned int gfp_mask, unsigned i=
 nt order)
 {
 
 
 
         if (order >=3D 10)
                 return ((void *)0);
         return _alloc_pages(gfp_mask, order);
 }
 
 
 
 extern unsigned long __get_free_pages(unsigned int gfp_mask, unsigned int=
  order) __attribute__((regparm(3)));
 extern unsigned long get_zeroed_page(unsigned int gfp_mask) __attribute__=
 ((regparm(3)));
 # 401 "/usr/src/linux/include/linux/mm.h"
 extern void __free_pages(struct page *page, unsigned int order) __attribu=
 te__((regparm(3)));
 extern void free_pages(unsigned long addr, unsigned int order) __attribut=
 e__((regparm(3)));
 
 
 
 
 extern void show_free_areas(void);
 extern void show_free_areas_node(pg_data_t *pgdat);
 
 extern void clear_page_tables(struct mm_struct *, unsigned long, int);
 
 struct page * shmem_nopage(struct vm_area_struct * vma, unsigned long add=
 ress, int no_share);
 struct file *shmem_file_setup(char * name, loff_t size);
 extern void shmem_lock(struct file * file, int lock);
 extern int shmem_zero_setup(struct vm_area_struct *);
 
 extern void zap_page_range(struct mm_struct *mm, unsigned long address, u=
 nsigned 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, unsigne=
 d long size, pgprot_t prot);
 extern int zeromap_page_range(unsigned long from, unsigned long size, pgp=
 rot_t prot);
 
 extern int vmtruncate(struct inode * inode, loff_t offset);
 extern pmd_t *__pmd_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long=
  address) __attribute__((regparm(3)));
 extern pte_t *pte_alloc(struct mm_struct *mm, pmd_t *pmd, unsigned long a=
 ddress) __attribute__((regparm(3)));
 extern int handle_mm_fault(struct mm_struct *mm,struct vm_area_struct *vm=
 a, unsigned long address, int write_access);
 extern int make_pages_present(unsigned long addr, unsigned long end);
 extern int access_process_vm(struct task_struct *tsk, unsigned long addr,=
  void *buf, int len, int write);
 extern int ptrace_readdata(struct task_struct *tsk, unsigned long src, ch=
 ar *dst, int len);
 extern int ptrace_writedata(struct task_struct *tsk, char * src, unsigned=
  long dst, int len);
 extern int ptrace_attach(struct task_struct *tsk);
 extern int ptrace_detach(struct task_struct *, unsigned int);
 extern void ptrace_disable(struct task_struct *);
 
 
 
 
 
 
 static inline pmd_t *pmd_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned=
  long address)
 {
         if (pgd_none(*pgd))
                 return __pmd_alloc(mm, pgd, address);
         return pmd_offset(pgd, address);
 }
 
 extern int pgt_cache_water[2];
 extern int check_pgt_cache(void);
 
 extern void free_area_init(unsigned long * zones_size);
 extern void free_area_init_node(int nid, pg_data_t *pgdat, struct page *p=
 map,
         unsigned long * zones_size, unsigned long zone_start_paddr,
         unsigned long *zholes_size);
 extern void mem_init(void);
 extern void show_mem(void);
 extern void si_meminfo(struct sysinfo * val);
 extern void swapin_readahead(swp_entry_t);
 
 extern struct address_space swapper_space;
 
 
 static inline int is_page_cache_freeable(struct page * page)
 {
         return ((&(page)->count)->counter) - !!page->buffers =3D=3D 1;
 }
 
 
 
 
 
 static inline int exclusive_swap_page(struct page *page)
 {
         if (!(__builtin_constant_p(0) ? constant_test_bit((0),(&(page)->f=
 lags)) : variable_test_bit((0),(&(page)->flags))))
                 __asm__ __volatile__(".byte 0x0f,0x0b");
         if (!((page)->mapping =3D=3D &swapper_space))
                 return 0;
         if (((&(page)->count)->counter) - !!page->buffers !=3D 2)
                 return 0;
         return swap_count(page) =3D=3D 1;
 }
 
 extern void __free_pte(pte_t);
 
 
 extern void lock_vma_mappings(struct vm_area_struct *);
 extern void unlock_vma_mappings(struct vm_area_struct *);
 extern void insert_vm_struct(struct mm_struct *, struct vm_area_struct *)=
 ;
 extern void __insert_vm_struct(struct mm_struct *, struct vm_area_struct =
 *);
 extern void build_mmap_rb(struct mm_struct *);
 extern void exit_mmap(struct mm_struct *);
 
 extern unsigned long get_unmapped_area(struct file *, unsigned long, unsi=
 gned long, unsigned long, unsigned long);
 
 extern unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,=
 
         unsigned long len, unsigned long prot,
         unsigned long flag, unsigned long pgoff);
 
 static inline unsigned long do_mmap(struct file *file, unsigned long addr=
 ,
         unsigned long len, unsigned long prot,
         unsigned long flag, unsigned long offset)
 {
         unsigned long ret =3D -22;
         if ((offset + (((len)+(1UL << 12)-1)&(~((1UL << 12)-1)))) < offse=
 t)
                 goto out;
         if (!(offset & ~(~((1UL << 12)-1))))
                 ret =3D do_mmap_pgoff(file, addr, len, prot, flag, offset=
  >> 12);
 out:
         return ret;
 }
 
 extern int do_munmap(struct mm_struct *, unsigned long, size_t);
 
 extern unsigned long do_brk(unsigned long, unsigned long);
 
 static inline void __vma_unlink(struct mm_struct * mm, struct vm_area_str=
 uct * vma, struct vm_area_struct * prev)
 {
         prev->vm_next =3D vma->vm_next;
         rb_erase(&vma->vm_rb, &mm->mm_rb);
         if (mm->mmap_cache =3D=3D vma)
                 mm->mmap_cache =3D prev;
 }
 
 static inline int can_vma_merge(struct vm_area_struct * vma, unsigned lon=
 g vm_flags)
 {
         if (!vma->vm_file && vma->vm_flags =3D=3D vm_flags)
                 return 1;
         else
                 return 0;
 }
 
 struct zone_t;
 
 extern void remove_inode_page(struct page *);
 extern unsigned long page_unuse(struct page *);
 extern void truncate_inode_pages(struct address_space *, loff_t);
 
 
 extern int filemap_sync(struct vm_area_struct *, unsigned long, size_t, u=
 nsigned int);
 extern struct page *filemap_nopage(struct vm_area_struct *, unsigned long=
 , int);
 # 571 "/usr/src/linux/include/linux/mm.h"
 static inline int expand_stack(struct vm_area_struct * vma, unsigned long=
  address)
 {
         unsigned long grow;
 
 
 
 
 
 
         address &=3D (~((1UL << 12)-1));
         grow =3D (vma->vm_start - address) >> 12;
         if (vma->vm_end - address > get_current()->rlim[3].rlim_cur ||
             ((vma->vm_mm->total_vm + grow) << 12) > get_current()->rlim[9=
 ].rlim_cur)
                 return -12;
         (void)(&vma->vm_mm->page_table_lock);
         vma->vm_start =3D address;
         vma->vm_pgoff -=3D grow;
         vma->vm_mm->total_vm +=3D grow;
         if (vma->vm_flags & 0x00002000)
                 vma->vm_mm->locked_vm +=3D grow;
         do { } while(0);
         return 0;
 }
 
 
 extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned l=
 ong addr);
 extern struct vm_area_struct * find_vma_prev(struct mm_struct * mm, unsig=
 ned long addr,
                                              struct vm_area_struct **ppre=
 v);
 
 
 
 static inline struct vm_area_struct * find_vma_intersection(struct mm_str=
 uct * mm, unsigned long start_addr, unsigned long end_addr)
 {
         struct vm_area_struct * vma =3D find_vma(mm,start_addr);
 
         if (vma && end_addr <=3D vma->vm_start)
                 vma =3D ((void *)0);
         return vma;
 }
 
 extern struct vm_area_struct *find_extend_vma(struct mm_struct *mm, unsig=
 ned long addr);
 # 52 "acct.c" 2
 # 1 "/usr/src/linux/include/linux/slab.h" 1
 # 12 "/usr/src/linux/include/linux/slab.h"
 typedef struct kmem_cache_s kmem_cache_t;
 
 # 1 "/usr/src/linux/include/linux/mm.h" 1
 # 15 "/usr/src/linux/include/linux/slab.h" 2
 # 1 "/usr/src/linux/include/linux/cache.h" 1
 # 16 "/usr/src/linux/include/linux/slab.h" 2
 # 48 "/usr/src/linux/include/linux/slab.h"
 extern void kmem_cache_init(void);
 extern void kmem_cache_sizes_init(void);
 
 extern kmem_cache_t *kmem_find_general_cachep(size_t, int gfpflags);
 extern kmem_cache_t *kmem_cache_create(const char *, size_t, size_t, unsi=
 gned long,
                                        void (*)(void *, kmem_cache_t *, u=
 nsigned long),
                                        void (*)(void *, kmem_cache_t *, u=
 nsigned long));
 extern int kmem_cache_destroy(kmem_cache_t *);
 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 int kmem_cache_reap(int) __attribute__((regparm(3)));
 extern int slabinfo_read_proc(char *page, char **start, off_t off,
                                  int count, int *eof, void *data);
 extern int slabinfo_write_proc(struct file *file, const char *buffer,
                            unsigned long count, void *data);
 
 
 extern kmem_cache_t *vm_area_cachep;
 extern kmem_cache_t *mm_cachep;
 extern kmem_cache_t *names_cachep;
 extern kmem_cache_t *files_cachep;
 extern kmem_cache_t *filp_cachep;
 extern kmem_cache_t *dquot_cachep;
 extern kmem_cache_t *bh_cachep;
 extern kmem_cache_t *fs_cachep;
 extern kmem_cache_t *sigact_cachep;
 # 53 "acct.c" 2
 # 1 "/usr/src/linux/include/linux/acct.h" 1
 # 18 "/usr/src/linux/include/linux/acct.h"
 # 1 "/usr/src/linux/include/linux/types.h" 1
 # 19 "/usr/src/linux/include/linux/acct.h" 2
 
 
 
 
 
 
 
 typedef __u16 comp_t;
 # 37 "/usr/src/linux/include/linux/acct.h"
 struct acct
 {
         char ac_flag;
 
 
 
 
         __u16 ac_uid;
         __u16 ac_gid;
         __u16 ac_tty;
         __u32 ac_btime;
         comp_t ac_utime;
         comp_t ac_stime;
         comp_t ac_etime;
         comp_t ac_mem;
         comp_t ac_io;
         comp_t ac_rw;
         comp_t ac_minflt;
         comp_t ac_majflt;
         comp_t ac_swaps;
         __u32 ac_exitcode;
         char ac_comm[16 + 1];
         char ac_pad[10];
 };
 # 76 "/usr/src/linux/include/linux/acct.h"
 # 1 "/usr/src/linux/include/linux/config.h" 1
 # 77 "/usr/src/linux/include/linux/acct.h" 2
 
 
 extern void acct_auto_close(kdev_t dev);
 extern int acct_process(long exitcode);
 # 54 "acct.c" 2
 # 1 "/usr/src/linux/include/linux/smp_lock.h" 1
 
 
 
 # 1 "/usr/src/linux/include/linux/config.h" 1
 # 5 "/usr/src/linux/include/linux/smp_lock.h" 2
 # 55 "acct.c" 2
 # 1 "/usr/src/linux/include/linux/file.h" 1
 
 
 
 
 
 
 
 extern void fput(struct file *) __attribute__((regparm(3)));
 extern struct file * fget(unsigned int fd) __attribute__((regparm(3)));
 
 static inline int get_close_on_exec(unsigned int fd)
 {
         struct files_struct *files =3D get_current()->files;
         int res;
         (void)(&files->file_lock);
         res =3D (__extension__ ({ unsigned char __result; __asm__ __volat=
 ile__("btl %1,%2 ; setb %0" :"=3Dq" (__result) :"r" ((int) (fd)), "m" (*(=
 __kernel_fd_set *) (files->close_on_exec))); __result; }));
         do { } while(0);
         return res;
 }
 
 static inline void set_close_on_exec(unsigned int fd, int flag)
 {
         struct files_struct *files =3D get_current()->files;
         (void)(&files->file_lock);
         if (flag)
                 __asm__ __volatile__("btsl %1,%0": "=3Dm" (*(__kernel_fd_=
 set *) (files->close_on_exec)):"r" ((int) (fd)));
         else
                 __asm__ __volatile__("btrl %1,%0": "=3Dm" (*(__kernel_fd_=
 set *) (files->close_on_exec)):"r" ((int) (fd)));
         do { } while(0);
 }
 
 static inline struct file * fcheck_files(struct files_struct *files, unsi=
 gned int fd)
 {
         struct file * file =3D ((void *)0);
 
         if (fd < files->max_fds)
                 file =3D files->fd[fd];
         return file;
 }
 
 
 
 
 static inline struct file * fcheck(unsigned int fd)
 {
         struct file * file =3D ((void *)0);
         struct files_struct *files =3D get_current()->files;
 
         if (fd < files->max_fds)
                 file =3D files->fd[fd];
         return file;
 }
 
 extern void put_filp(struct file *);
 
 extern int get_unused_fd(void);
 
 static inline void __put_unused_fd(struct files_struct *files, unsigned i=
 nt fd)
 {
         __asm__ __volatile__("btrl %1,%0": "=3Dm" (*(__kernel_fd_set *) (=
 files->open_fds)):"r" ((int) (fd)));
         if (fd < files->next_fd)
                 files->next_fd =3D fd;
 }
 
 static inline void put_unused_fd(unsigned int fd)
 {
         struct files_struct *files =3D get_current()->files;
 
         (void)(&files->file_lock);
         __put_unused_fd(files, fd);
         do { } while(0);
 }
 # 87 "/usr/src/linux/include/linux/file.h"
 static inline void fd_install(unsigned int fd, struct file * file)
 {
         struct files_struct *files =3D get_current()->files;
 
         (void)(&files->file_lock);
         if (files->fd[fd])
                 __asm__ __volatile__(".byte 0x0f,0x0b");
         files->fd[fd] =3D file;
         do { } while(0);
 }
 
 void put_files_struct(struct files_struct *fs);
 # 56 "acct.c" 2
 # 1 "/usr/src/linux/include/linux/tty.h" 1
 # 57 "acct.c" 2
 
 # 1 "/usr/src/linux/include/asm/uaccess.h" 1
 
 
 
 
 
 
 # 1 "/usr/src/linux/include/linux/config.h" 1
 # 8 "/usr/src/linux/include/asm/uaccess.h" 2
 # 1 "/usr/src/linux/include/linux/sched.h" 1
 # 9 "/usr/src/linux/include/asm/uaccess.h" 2
 # 1 "/usr/src/linux/include/linux/prefetch.h" 1
 # 10 "/usr/src/linux/include/asm/uaccess.h" 2
 # 1 "/usr/src/linux/include/asm/page.h" 1
 # 11 "/usr/src/linux/include/asm/uaccess.h" 2
 # 35 "/usr/src/linux/include/asm/uaccess.h"
 extern int __verify_write(const void *, unsigned long);
 # 62 "/usr/src/linux/include/asm/uaccess.h"
 static inline int verify_area(int type, const void * addr, unsigned long =
 size)
 {
         return (({ unsigned long flag,sum; asm("addl %3,%1 ; sbbl %0,%0; =
 cmpl %1,%4; sbbl $0,%0" :"=3D&r" (flag), "=3Dr" (sum) :"1" (addr),"g" ((i=
 nt)(size)),"g" (get_current()->addr_limit.seg)); flag; }) =3D=3D 0) ? 0 :=
  -14;
 }
 # 81 "/usr/src/linux/include/asm/uaccess.h"
 struct exception_table_entry
 {
         unsigned long insn, fixup;
 };
 
 
 extern unsigned long search_exception_table(unsigned long);
 # 105 "/usr/src/linux/include/asm/uaccess.h"
 extern void __get_user_1(void);
 extern void __get_user_2(void);
 extern void __get_user_4(void);
 # 127 "/usr/src/linux/include/asm/uaccess.h"
 extern void __put_user_1(void);
 extern void __put_user_2(void);
 extern void __put_user_4(void);
 extern void __put_user_8(void);
 
 extern void __put_user_bad(void);
 # 188 "/usr/src/linux/include/asm/uaccess.h"
 struct __large_struct { unsigned long buf[100]; };
 # 220 "/usr/src/linux/include/asm/uaccess.h"
 extern long __get_user_bad(void);
 # 308 "/usr/src/linux/include/asm/uaccess.h"
 static inline unsigned long
 __generic_copy_from_user_nocheck(void *to, const void *from, unsigned lon=
 g n)
 {
         do { int __d0, __d1; __asm__ __volatile__( "0:	rep; movsl\n" "	mo=
 vl %3,%0\n" "1:	rep; movsb\n" "2:\n" ".section .fixup,\"ax\"\n" "3:	lea 0=
 (%3,%0,4),%0\n" "4:	pushl %0\n" "	pushl %%eax\n" "	xorl %%eax,%%eax\n" "	=
 rep; stosb\n" "	popl %%eax\n" "	popl %0\n" "	jmp 2b\n" ".previous\n" ".se=
 ction __ex_table,\"a\"\n" "	.align 4\n" "	.long 0b,3b\n" "	.long 1b,4b\n"=
  ".previous" : "=3D&c"(n), "=3D&D" (__d0), "=3D&S" (__d1) : "r"(n & 3), "=
 0"(n / 4), "1"(to), "2"(from) : "memory"); } while (0);
         return n;
 }
 
 static inline unsigned long
 __generic_copy_to_user_nocheck(void *to, const void *from, unsigned long =
 n)
 {
         do { int __d0, __d1; __asm__ __volatile__( "0:	rep; movsl\n" "	mo=
 vl %3,%0\n" "1:	rep; movsb\n" "2:\n" ".section .fixup,\"ax\"\n" "3:	lea 0=
 (%3,%0,4),%0\n" "	jmp 2b\n" ".previous\n" ".section __ex_table,\"a\"\n" "=
 	.align 4\n" "	.long 0b,3b\n" "	.long 1b,2b\n" ".previous" : "=3D&c"(n), =
 "=3D&D" (__d0), "=3D&S" (__d1) : "r"(n & 3), "0"(n / 4), "1"(to), "2"(fro=
 m) : "memory"); } while (0);
         return n;
 }
 # 543 "/usr/src/linux/include/asm/uaccess.h"
 unsigned long __generic_copy_to_user(void *, const void *, unsigned long)=
 ;
 unsigned long __generic_copy_from_user(void *, const void *, unsigned lon=
 g);
 
 static inline unsigned long
 __constant_copy_to_user(void *to, const void *from, unsigned long n)
 {
         prefetch(from);
         if ((({ unsigned long flag,sum; asm("addl %3,%1 ; sbbl %0,%0; cmp=
 l %1,%4; sbbl $0,%0" :"=3D&r" (flag), "=3Dr" (sum) :"1" (to),"g" ((int)(n=
 )),"g" (get_current()->addr_limit.seg)); flag; }) =3D=3D 0))
                 do { int __d0, __d1; switch (n & 3) { default: __asm__ __=
 volatile__( "0:	rep; movsl\n" "1:\n" ".section .fixup,\"ax\"\n" "2:	shl $=
 2,%0\n" "	jmp 1b\n" ".previous\n" ".section __ex_table,\"a\"\n" "	.align =
 4\n" "	.long 0b,2b\n" ".previous" : "=3Dc"(n), "=3D&S" (__d0), "=3D&D" (_=
 _d1) : "1"(from), "2"(to), "0"(n/4) : "memory"); break; case 1: __asm__ _=
 _volatile__( "0:	rep; movsl\n" "1:	movsb\n" "2:\n" ".section .fixup,\"ax\=
 "\n" "3:	shl $2,%0\n" "4:	incl %0\n" "	jmp 2b\n" ".previous\n" ".section =
 __ex_table,\"a\"\n" "	.align 4\n" "	.long 0b,3b\n" "	.long 1b,4b\n" ".pre=
 vious" : "=3Dc"(n), "=3D&S" (__d0), "=3D&D" (__d1) : "1"(from), "2"(to), =
 "0"(n/4) : "memory"); break; case 2: __asm__ __volatile__( "0:	rep; movsl=
 \n" "1:	movsw\n" "2:\n" ".section .fixup,\"ax\"\n" "3:	shl $2,%0\n" "4:	a=
 ddl $2,%0\n" "	jmp 2b\n" ".previous\n" ".section __ex_table,\"a\"\n" "	.a=
 lign 4\n" "	.long 0b,3b\n" "	.long 1b,4b\n" ".previous" : "=3Dc"(n), "=3D=
 &S" (__d0), "=3D&D" (__d1) : "1"(from), "2"(to), "0"(n/4) : "memory"); br=
 eak; case 3: __asm__ __volatile__( "0:	rep; movsl\n" "1:	movsw\n" "2:	mov=
 sb\n" "3:\n" ".section .fixup,\"ax\"\n" "4:	shl $2,%0\n" "5:	addl $2,%0\n=
 " "6:	incl %0\n" "	jmp 3b\n" ".previous\n" ".section __ex_table,\"a\"\n" =
 "	.align 4\n" "	.long 0b,4b\n" "	.long 1b,5b\n" "	.long 2b,6b\n" ".previo=
 us" : "=3Dc"(n), "=3D&S" (__d0), "=3D&D" (__d1) : "1"(from), "2"(to), "0"=
 (n/4) : "memory"); break; } } while (0);
         return n;
 }
 
 static inline unsigned long
 __constant_copy_from_user(void *to, const void *from, unsigned long n)
 {
         if ((({ unsigned long flag,sum; asm("addl %3,%1 ; sbbl %0,%0; cmp=
 l %1,%4; sbbl $0,%0" :"=3D&r" (flag), "=3Dr" (sum) :"1" (from),"g" ((int)=
 (n)),"g" (get_current()->addr_limit.seg)); flag; }) =3D=3D 0))
                 do { int __d0, __d1; switch (n & 3) { default: __asm__ __=
 volatile__( "0:	rep; movsl\n" "1:\n" ".section .fixup,\"ax\"\n" "2:	pushl=
  %0\n" "	pushl %%eax\n" "	xorl %%eax,%%eax\n" "	rep; stosl\n" "	popl %%ea=
 x\n" "	popl %0\n" "	shl $2,%0\n" "	jmp 1b\n" ".previous\n" ".section __ex=
 _table,\"a\"\n" "	.align 4\n" "	.long 0b,2b\n" ".previous" : "=3Dc"(n), "=
 =3D&S" (__d0), "=3D&D" (__d1) : "1"(from), "2"(to), "0"(n/4) : "memory");=
  break; case 1: __asm__ __volatile__( "0:	rep; movsl\n" "1:	movsb\n" "2:\=
 n" ".section .fixup,\"ax\"\n" "3:	pushl %0\n" "	pushl %%eax\n" "	xorl %%e=
 ax,%%eax\n" "	rep; stosl\n" "	stosb\n" "	popl %%eax\n" "	popl %0\n" "	shl=
  $2,%0\n" "	incl %0\n" "	jmp 2b\n" "4:	pushl %%eax\n" "	xorl %%eax,%%eax\=
 n" "	stosb\n" "	popl %%eax\n" "	incl %0\n" "	jmp 2b\n" ".previous\n" ".se=
 ction __ex_table,\"a\"\n" "	.align 4\n" "	.long 0b,3b\n" "	.long 1b,4b\n"=
  ".previous" : "=3Dc"(n), "=3D&S" (__d0), "=3D&D" (__d1) : "1"(from), "2"=
 (to), "0"(n/4) : "memory"); break; case 2: __asm__ __volatile__( "0:	rep;=
  movsl\n" "1:	movsw\n" "2:\n" ".section .fixup,\"ax\"\n" "3:	pushl %0\n" =
 "	pushl %%eax\n" "	xorl %%eax,%%eax\n" "	rep; stosl\n" "	stosw\n" "	popl =
 %%eax\n" "	popl %0\n" "	shl $2,%0\n" "	addl $2,%0\n" "	jmp 2b\n" "4:	push=
 l %%eax\n" "	xorl %%eax,%%eax\n" "	stosw\n" "	popl %%eax\n" "	addl $2,%0\=
 n" "	jmp 2b\n" ".previous\n" ".section __ex_table,\"a\"\n" "	.align 4\n" =
 "	.long 0b,3b\n" "	.long 1b,4b\n" ".previous" : "=3Dc"(n), "=3D&S" (__d0)=
 , "=3D&D" (__d1) : "1"(from), "2"(to), "0"(n/4) : "memory"); break; case =
 3: __asm__ __volatile__( "0:	rep; movsl\n" "1:	movsw\n" "2:	movsb\n" "3:\=
 n" ".section .fixup,\"ax\"\n" "4:	pushl %0\n" "	pushl %%eax\n" "	xorl %%e=
 ax,%%eax\n" "	rep; stosl\n" "	stosw\n" "	stosb\n" "	popl %%eax\n" "	popl =
 %0\n" "	shl $2,%0\n" "	addl $3,%0\n" "	jmp 2b\n" "5:	pushl %%eax\n" "	xor=
 l %%eax,%%eax\n" "	stosw\n" "	stosb\n" "	popl %%eax\n" "	addl $3,%0\n" "	=
 jmp 2b\n" "6:	pushl %%eax\n" "	xorl %%eax,%%eax\n" "	stosb\n" "	popl %%ea=
 x\n" "	incl %0\n" "	jmp 3b\n" ".previous\n" ".section __ex_table,\"a\"\n"=
  "	.align 4\n" "	.long 0b,4b\n" "	.long 1b,5b\n" "	.long 2b,6b\n" ".previ=
 ous" : "=3Dc"(n), "=3D&S" (__d0), "=3D&D" (__d1) : "1"(from), "2"(to), "0=
 "(n/4) : "memory"); break; } } while (0);
         else
                 (__builtin_constant_p(0) ? (__builtin_constant_p((n)) ? _=
 _constant_c_and_count_memset(((to)),((0x01010101UL*(unsigned char)(0))),(=
 (n))) : __constant_c_memset(((to)),((0x01010101UL*(unsigned char)(0))),((=
 n)))) : (__builtin_constant_p((n)) ? __memset_generic((((to))),(((0))),((=
 (n)))) : __memset_generic(((to)),((0)),((n)))));
         return n;
 }
 
 static inline unsigned long
 __constant_copy_to_user_nocheck(void *to, const void *from, unsigned long=
  n)
 {
         do { int __d0, __d1; switch (n & 3) { default: __asm__ __volatile=
 __( "0:	rep; movsl\n" "1:\n" ".section .fixup,\"ax\"\n" "2:	shl $2,%0\n" =
 "	jmp 1b\n" ".previous\n" ".section __ex_table,\"a\"\n" "	.align 4\n" "	.=
 long 0b,2b\n" ".previous" : "=3Dc"(n), "=3D&S" (__d0), "=3D&D" (__d1) : "=
 1"(from), "2"(to), "0"(n/4) : "memory"); break; case 1: __asm__ __volatil=
 e__( "0:	rep; movsl\n" "1:	movsb\n" "2:\n" ".section .fixup,\"ax\"\n" "3:=
 	shl $2,%0\n" "4:	incl %0\n" "	jmp 2b\n" ".previous\n" ".section __ex_tab=
 le,\"a\"\n" "	.align 4\n" "	.long 0b,3b\n" "	.long 1b,4b\n" ".previous" :=
  "=3Dc"(n), "=3D&S" (__d0), "=3D&D" (__d1) : "1"(from), "2"(to), "0"(n/4)=
  : "memory"); break; case 2: __asm__ __volatile__( "0:	rep; movsl\n" "1:	=
 movsw\n" "2:\n" ".section .fixup,\"ax\"\n" "3:	shl $2,%0\n" "4:	addl $2,%=
 0\n" "	jmp 2b\n" ".previous\n" ".section __ex_table,\"a\"\n" "	.align 4\n=
 " "	.long 0b,3b\n" "	.long 1b,4b\n" ".previous" : "=3Dc"(n), "=3D&S" (__d=
 0), "=3D&D" (__d1) : "1"(from), "2"(to), "0"(n/4) : "memory"); break; cas=
 e 3: __asm__ __volatile__( "0:	rep; movsl\n" "1:	movsw\n" "2:	movsb\n" "3=
 :\n" ".section .fixup,\"ax\"\n" "4:	shl $2,%0\n" "5:	addl $2,%0\n" "6:	in=
 cl %0\n" "	jmp 3b\n" ".previous\n" ".section __ex_table,\"a\"\n" "	.align=
  4\n" "	.long 0b,4b\n" "	.long 1b,5b\n" "	.long 2b,6b\n" ".previous" : "=3D=
 c"(n), "=3D&S" (__d0), "=3D&D" (__d1) : "1"(from), "2"(to), "0"(n/4) : "m=
 emory"); break; } } while (0);
         return n;
 }
 
 static inline unsigned long
 __constant_copy_from_user_nocheck(void *to, const void *from, unsigned lo=
 ng n)
 {
         do { int __d0, __d1; switch (n & 3) { default: __asm__ __volatile=
 __( "0:	rep; movsl\n" "1:\n" ".section .fixup,\"ax\"\n" "2:	pushl %0\n" "=
 	pushl %%eax\n" "	xorl %%eax,%%eax\n" "	rep; stosl\n" "	popl %%eax\n" "	p=
 opl %0\n" "	shl $2,%0\n" "	jmp 1b\n" ".previous\n" ".section __ex_table,\=
 "a\"\n" "	.align 4\n" "	.long 0b,2b\n" ".previous" : "=3Dc"(n), "=3D&S" (=
 __d0), "=3D&D" (__d1) : "1"(from), "2"(to), "0"(n/4) : "memory"); break; =
 case 1: __asm__ __volatile__( "0:	rep; movsl\n" "1:	movsb\n" "2:\n" ".sec=
 tion .fixup,\"ax\"\n" "3:	pushl %0\n" "	pushl %%eax\n" "	xorl %%eax,%%eax=
 \n" "	rep; stosl\n" "	stosb\n" "	popl %%eax\n" "	popl %0\n" "	shl $2,%0\n=
 " "	incl %0\n" "	jmp 2b\n" "4:	pushl %%eax\n" "	xorl %%eax,%%eax\n" "	sto=
 sb\n" "	popl %%eax\n" "	incl %0\n" "	jmp 2b\n" ".previous\n" ".section __=
 ex_table,\"a\"\n" "	.align 4\n" "	.long 0b,3b\n" "	.long 1b,4b\n" ".previ=
 ous" : "=3Dc"(n), "=3D&S" (__d0), "=3D&D" (__d1) : "1"(from), "2"(to), "0=
 "(n/4) : "memory"); break; case 2: __asm__ __volatile__( "0:	rep; movsl\n=
 " "1:	movsw\n" "2:\n" ".section .fixup,\"ax\"\n" "3:	pushl %0\n" "	pushl =
 %%eax\n" "	xorl %%eax,%%eax\n" "	rep; stosl\n" "	stosw\n" "	popl %%eax\n"=
  "	popl %0\n" "	shl $2,%0\n" "	addl $2,%0\n" "	jmp 2b\n" "4:	pushl %%eax\=
 n" "	xorl %%eax,%%eax\n" "	stosw\n" "	popl %%eax\n" "	addl $2,%0\n" "	jmp=
  2b\n" ".previous\n" ".section __ex_table,\"a\"\n" "	.align 4\n" "	.long =
 0b,3b\n" "	.long 1b,4b\n" ".previous" : "=3Dc"(n), "=3D&S" (__d0), "=3D&D=
 " (__d1) : "1"(from), "2"(to), "0"(n/4) : "memory"); break; case 3: __asm=
 __ __volatile__( "0:	rep; movsl\n" "1:	movsw\n" "2:	movsb\n" "3:\n" ".sec=
 tion .fixup,\"ax\"\n" "4:	pushl %0\n" "	pushl %%eax\n" "	xorl %%eax,%%eax=
 \n" "	rep; stosl\n" "	stosw\n" "	stosb\n" "	popl %%eax\n" "	popl %0\n" "	=
 shl $2,%0\n" "	addl $3,%0\n" "	jmp 2b\n" "5:	pushl %%eax\n" "	xorl %%eax,=
 %%eax\n" "	stosw\n" "	stosb\n" "	popl %%eax\n" "	addl $3,%0\n" "	jmp 2b\n=
 " "6:	pushl %%eax\n" "	xorl %%eax,%%eax\n" "	stosb\n" "	popl %%eax\n" "	i=
 ncl %0\n" "	jmp 3b\n" ".previous\n" ".section __ex_table,\"a\"\n" "	.alig=
 n 4\n" "	.long 0b,4b\n" "	.long 1b,5b\n" "	.long 2b,6b\n" ".previous" : "=
 =3Dc"(n), "=3D&S" (__d0), "=3D&D" (__d1) : "1"(from), "2"(to), "0"(n/4) :=
  "memory"); break; } } while (0);
         return n;
 }
 # 599 "/usr/src/linux/include/asm/uaccess.h"
 long strncpy_from_user(char *dst, const char *src, long count);
 long __strncpy_from_user(char *dst, const char *src, long count);
 
 long strnlen_user(const char *str, long n);
 unsigned long clear_user(void *mem, unsigned long len);
 unsigned long __clear_user(void *mem, unsigned long len);
 # 59 "acct.c" 2
 # 67 "acct.c"
 int acct_parm[3] =3D {4, 2, 30};
 # 76 "acct.c"
 static volatile int acct_active;
 static volatile int acct_needcheck;
 static struct file *acct_file;
 static struct timer_list acct_timer;
 static void do_acct_process(long, struct file *);
 
 
 
 
 static void acct_timeout(unsigned long unused)
 {
         acct_needcheck =3D 1;
 }
 
 
 
 
 static int check_free_space(struct file *file)
 {
         struct statfs sbuf;
         int res;
         int act;
 
         do { } while(0);
         res =3D acct_active;
         if (!file || !acct_needcheck)
                 goto out;
         do { } while(0);
 
 
         if (vfs_statfs(file->f_dentry->d_inode->i_sb, &sbuf))
                 return res;
 
         if (sbuf.f_bavail <=3D (acct_parm[1]) * sbuf.f_blocks / 100)
                 act =3D -1;
         else if (sbuf.f_bavail >=3D (acct_parm[0]) * sbuf.f_blocks / 100)=
 
                 act =3D 1;
         else
                 act =3D 0;
 
 
 
 
 
         do { } while(0);
         if (file !=3D acct_file) {
                 if (act)
                         res =3D act>0;
                 goto out;
         }
 
         if (acct_active) {
                 if (act < 0) {
                         acct_active =3D 0;
                         printk("<6>" "Process accounting paused\n");
                 }
         } else {
                 if (act > 0) {
                         acct_active =3D 1;
                         printk("<6>" "Process accounting resumed\n");
                 }
         }
 
         del_timer(&acct_timer);
         acct_needcheck =3D 0;
         acct_timer.expires =3D jiffies + (acct_parm[2])*100;
         add_timer(&acct_timer);
         res =3D acct_active;
 out:
         do { } while(0);
         return res;
 }
 
 
 
 
 
 
 
  __attribute__((regparm(0))) long sys_acct(const char *name)
 {
         struct file *file =3D ((void *)0), *old_acct =3D ((void *)0);
         char *tmp;
         int error;
 
         if (!capable(20))
                 return -1;
 
         if (name) {
                 tmp =3D getname(name);
                 error =3D PTR_ERR(tmp);
                 if (IS_ERR(tmp))
                         goto out;
 
                 file =3D filp_open(tmp, 01|02000, 0);
                 kmem_cache_free(names_cachep, (void *)(tmp));
                 if (IS_ERR(file)) {
                         error =3D PTR_ERR(file);
                         goto out;
                 }
                 error =3D -13;
                 if (!(((file->f_dentry->d_inode->i_mode) & 00170000) =3D=3D=
  0100000))
                         goto out_err;
 
                 error =3D -5;
                 if (!file->f_op->write)
                         goto out_err;
         }
 
         error =3D 0;
         do { } while(0);
         if (acct_file) {
                 old_acct =3D acct_file;
                 del_timer(&acct_timer);
                 acct_active =3D 0;
                 acct_needcheck =3D 0;
                 acct_file =3D ((void *)0);
         }
         if (name) {
                 acct_file =3D file;
                 acct_needcheck =3D 0;
                 acct_active =3D 1;
 
                 init_timer(&acct_timer);
                 acct_timer.function =3D acct_timeout;
                 acct_timer.expires =3D jiffies + (acct_parm[2])*100;
                 add_timer(&acct_timer);
         }
         do { } while(0);
         if (old_acct) {
                 do_acct_process(0,old_acct);
                 filp_close(old_acct, ((void *)0));
         }
 out:
         return error;
 out_err:
         filp_close(file, ((void *)0));
         goto out;
 }
 
 void acct_auto_close(kdev_t dev)
 {
         do { } while(0);
         if (acct_file && acct_file->f_dentry->d_inode->i_dev =3D=3D dev)
                 sys_acct(((void *)0));
         do { } while(0);
 }
 # 236 "acct.c"
 static comp_t encode_comp_t(unsigned long value)
 {
         int exp, rnd;
 
         exp =3D rnd =3D 0;
         while (value > ((1 << 13) - 1)) {
                 rnd =3D value & (1 << (3 - 1));
                 value >>=3D 3;
                 exp++;
         }
 
 
 
 
         if (rnd && (++value > ((1 << 13) - 1))) {
                 value >>=3D 3;
                 exp++;
         }
 
 
 
 
         exp <<=3D 13;
         exp +=3D value;
         return exp;
 }
 # 275 "acct.c"
 static void do_acct_process(long exitcode, struct file *file)
 {
         struct acct ac;
         mm_segment_t fs;
         unsigned long vsize;
 
 
 
 
 
         if (!check_free_space(file))
                 return;
 
 
 
 
 
         (__builtin_constant_p(0) ? (__builtin_constant_p((sizeof(struct a=
 cct))) ? __constant_c_and_count_memset((((caddr_t)&ac)),((0x01010101UL*(u=
 nsigned char)(0))),((sizeof(struct acct)))) : __constant_c_memset((((cadd=
 r_t)&ac)),((0x01010101UL*(unsigned char)(0))),((sizeof(struct acct))))) :=
  (__builtin_constant_p((sizeof(struct acct))) ? __memset_generic(((((cadd=
 r_t)&ac))),(((0))),(((sizeof(struct acct))))) : __memset_generic((((caddr=
 _t)&ac)),((0)),((sizeof(struct acct))))));
 
         strncpy(ac.ac_comm, get_current()->comm, 16);
         ac.ac_comm[16 - 1] =3D '\0';
 
         ac.ac_btime =3D ((get_current()->start_time) / 100) + (xtime.tv_s=
 ec - (jiffies / 100));
         ac.ac_etime =3D encode_comp_t(jiffies - get_current()->start_time=
 );
         ac.ac_utime =3D encode_comp_t(get_current()->times.tms_utime);
         ac.ac_stime =3D encode_comp_t(get_current()->times.tms_stime);
         ac.ac_uid =3D get_current()->uid;
         ac.ac_gid =3D get_current()->gid;
         ac.ac_tty =3D (get_current()->tty) ? kdev_t_to_nr(get_current()->=
 tty->device) : 0;
 
         ac.ac_flag =3D 0;
         if (get_current()->flags & 0x00000040)
                 ac.ac_flag |=3D 0x01;
         if (get_current()->flags & 0x00000100)
                 ac.ac_flag |=3D 0x02;
         if (get_current()->flags & 0x00000200)
                 ac.ac_flag |=3D 0x08;
         if (get_current()->flags & 0x00000400)
                 ac.ac_flag |=3D 0x10;
 
         vsize =3D 0;
         if (get_current()->mm) {
                 struct vm_area_struct *vma;
                 down_read(&get_current()->mm->mmap_sem);
                 vma =3D get_current()->mm->mmap;
                 while (vma) {
                         vsize +=3D vma->vm_end - vma->vm_start;
                         vma =3D vma->vm_next;
                 }
                 up_read(&get_current()->mm->mmap_sem);
         }
         vsize =3D vsize / 1024;
         ac.ac_mem =3D encode_comp_t(vsize);
         ac.ac_io =3D encode_comp_t(0 );
         ac.ac_rw =3D encode_comp_t(ac.ac_io / 1024);
         ac.ac_minflt =3D encode_comp_t(get_current()->min_flt);
         ac.ac_majflt =3D encode_comp_t(get_current()->maj_flt);
         ac.ac_swaps =3D encode_comp_t(get_current()->nswap);
         ac.ac_exitcode =3D exitcode;
 
 
 
 
 
         fs =3D (get_current()->addr_limit);
         (get_current()->addr_limit =3D (((mm_segment_t) { (0xFFFFFFFF) })=
 ));
         file->f_op->write(file, (char *)&ac,
                                sizeof(struct acct), &file->f_pos);
         (get_current()->addr_limit =3D (fs));
 }
 
 
 
 
 int acct_process(long exitcode)
 {
         struct file *file =3D ((void *)0);
         do { } while(0);
         if (acct_file) {
                 file =3D acct_file;
                 atomic_inc(&(file)->f_count);
                 do { } while(0);
                 do_acct_process(exitcode, acct_file);
                 fput(file);
         } else
                 do { } while(0);
         return 0;
 }
 
 --------------68D31147E057C98EB44EBFA2--
 


^ permalink raw reply	[flat|nested] 2+ messages in thread

* c/4472: GCC3.0.1 bug
@ 2001-10-04 19:16 dreurich
  0 siblings, 0 replies; 2+ messages in thread
From: dreurich @ 2001-10-04 19:16 UTC (permalink / raw)
  To: gcc-gnats

>Number:         4472
>Category:       c
>Synopsis:       Failed to compile linux kernel version 2.4.10
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          ice-on-legal-code
>Submitter-Id:   net
>Arrival-Date:   Thu Oct 04 19:16:01 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Daniel Reurich
>Release:        3.0.1
>Organization:
>Environment:
AMD-K6-II 
System: Linux Lala.dansnet 2.4.6 #2 Thu Jul 12 21:08:19 NZST 2001 i586 unknown
Architecture: i586-gnu-linux glibc-2.4 

	
host: i586-pc-linux-gnu
build: i586-pc-linux-gnu
target: i586-pc-linux-gnu
configured with: ../gcc-3.0.1/configure --prefix=/usr --with-slibdir=/lib --enable-shared --enable-threads --enable-languages=c,c++
>Description:
	I tried to compile a linux kernel version-2.4.10 and it failed on the file kernel/acct.c.
Here is the error messages I got:
gcc -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -Wno-trig
hs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferre
tack-boundary=2 -march=k6    -c -o acct.o acct.c
acct.c: In function `check_free_space':
acct.c:147: Unrecognizable insn:
(insn 335 102 336 (parallel[ 
            (set (reg/v:SI 2 ecx [44])
                (const_int 0 [0x0]))
            (clobber (reg:CC 17 flags))
        ] ) -1 (insn_list:REG_DEP_ANTI 100 (insn_list:REG_DEP_ANTI 102 (nil))
    (expr_list:REG_UNUSED (reg:CC 17 flags)
        (nil)))
acct.c:147: Internal compiler error in insn_default_length, at insn-attrtab.c
3
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL: http://www.gnu.org/software/gcc/bugs.html > for instructions.
make[2]: *** [acct.o] Error 1
make[2]: Leaving directory `/usr/src/linux/kernel'
make[1]: *** [first_rule] Error 2
make[1]: Leaving directory `/usr/src/linux/kernel'
make: *** [_dir_kernel] Error 2
>How-To-Repeat:

In the 2.4.10 kernel tree, cd to kernel and run this:
gcc -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -Wno-trig
hs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferre
tack-boundary=2 -march=k6    -c -o acct.o acct.c

>Fix:
	
>Release-Note:
>Audit-Trail:
>Unformatted:


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2001-10-04 19:36 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-10-04 19:36 c/4472: GCC3.0.1 bug Daniel Reurich
  -- strict thread matches above, loose matches on Subject: below --
2001-10-04 19:16 dreurich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).