This is the mail archive of the gcc-prs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

c/4736: gcc internal error in reload_cse_simplify_operands compiling linux 2.4.13



>Number:         4736
>Category:       c
>Synopsis:       gcc internal error in reload_cse_simplify_operands compiling linux 2.4.13
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          ice-on-legal-code
>Submitter-Id:   net
>Arrival-Date:   Tue Oct 30 01:06:01 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     root
>Release:        3.0.2
>Organization:
Mellanox technologies
>Environment:
System: Linux mtls23.yok.mtl.com 2.4.13 #1 Wed Oct 24 17:00:25 IST 2001 i686 unknown
Architecture: i686

	
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ../gcc-3.0.2/configure --prefix=/mswg/opt/gcc-3.0.2/x86
>Description:
gcc 3.0.2 reports internal error when compiling driver Realtek 8139 in linux kernel 2.4.13.
The relevant file resized under /usr/src/linux-2.4.13-gcc-3.0.2/drivers/net

Here is the output of the compiler:

[/usr/src/linux-2.4.13-gcc-3.0.2/drivers/net]# /mswg/opt/gcc-3.0.2/x86/bin/gcc -D__KERNEL__ -I/usr/src/linux-2.4.13-gc
c-3.0.2/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-str
ict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=athlon     -c -o 8139to
o.o 8139too.c
8139too.c: In function `netdev_ethtool_ioctl':
8139too.c:2432: Unrecognizable insn:
(insn/i 618 1061 1058 (parallel[ 
            (set (reg:SI 6 ebp)
                (asm_operands:SI ("addl %3,%1 ; sbbl %0,%0; cmpl %1,%4; sbbl $0,%0") ("=&r") 0[ 
                        (reg/v:SI 1 edx [165])
                        (mem:SI (plus:SI (reg/f:SI 6 ebp)
                                (const_int -352 [0xfffffea0])) 0)
                        (mem/s:SI (plus:SI (reg:SI 0 eax [173])
                                (const_int 12 [0xc])) 0)
                    ] 
                    [ 
                        (asm_input:SI ("1"))
                        (asm_input:SI ("g"))
                        (asm_input:SI ("g"))
                    ]  ("/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/uaccess.h") 558))
            (set (reg/v:SI 1 edx [165])
                (asm_operands:SI ("addl %3,%1 ; sbbl %0,%0; cmpl %1,%4; sbbl $0,%0") ("=r") 1[ 
                        (reg/v:SI 1 edx [165])
                        (mem:SI (plus:SI (reg/f:SI 6 ebp)
                                (const_int -352 [0xfffffea0])) 0)
                        (mem/s:SI (plus:SI (reg:SI 0 eax [173])
                                (const_int 12 [0xc])) 0)
                    ] 
                    [ 
                        (asm_input:SI ("1"))
                        (asm_input:SI ("g"))
                        (asm_input:SI ("g"))
                    ]  ("/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/uaccess.h") 558))
            (clobber (reg:QI 19 dirflag))
            (clobber (reg:QI 18 fpsr))
            (clobber (reg:QI 17 flags))
        ] ) -1 (insn_list 604 (insn_list 611 (nil)))
    (nil))
8139too.c:2432: Internal compiler error in reload_cse_simplify_operands, at reload1.c:8364
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.

>How-To-Repeat:
To repeat, enable Realtek 8139 network driver in linux kernel 2.4.13 
and try to build the kernel.

Here is a preprocessor output

# 145 "8139too.c"
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/config.h" 1



# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/autoconf.h" 1
# 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/config.h" 2
# 146 "8139too.c" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/module.h" 1
# 10 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/module.h"
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/config.h" 1
# 11 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/module.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/spinlock.h" 1



# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/config.h" 1
# 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/spinlock.h" 2
# 57 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/spinlock.h"
  typedef struct { } spinlock_t;
# 120 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/spinlock.h"
  typedef struct { } rwlock_t;
# 12 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/module.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/list.h" 1





# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/prefetch.h" 1
# 13 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/prefetch.h"
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/processor.h" 1
# 10 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/processor.h"
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/vm86.h" 1
# 68 "/usr/src/linux-2.4.13-gcc-3.0.2/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-2.4.13-gcc-3.0.2/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-2.4.13-gcc-3.0.2/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-2.4.13-gcc-3.0.2/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-2.4.13-gcc-3.0.2/include/asm/processor.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/math_emu.h" 1



# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/sigcontext.h" 1
# 18 "/usr/src/linux-2.4.13-gcc-3.0.2/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-2.4.13-gcc-3.0.2/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-2.4.13-gcc-3.0.2/include/asm/processor.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/segment.h" 1
# 13 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/processor.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/page.h" 1
# 12 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/page.h"
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/config.h" 1
# 13 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/page.h" 2



# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/mmx.h" 1







# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/types.h" 1




# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/config.h" 1
# 6 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/types.h" 2


# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/posix_types.h" 1



# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/stddef.h" 1
# 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/posix_types.h" 2
# 36 "/usr/src/linux-2.4.13-gcc-3.0.2/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-2.4.13-gcc-3.0.2/include/asm/posix_types.h" 1
# 10 "/usr/src/linux-2.4.13-gcc-3.0.2/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-2.4.13-gcc-3.0.2/include/linux/posix_types.h" 2
# 9 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/types.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/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;







# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/config.h" 1
# 31 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/types.h" 2

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;
# 51 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/types.h"
typedef u32 dma_addr_t;

typedef u64 dma64_addr_t;
# 10 "/usr/src/linux-2.4.13-gcc-3.0.2/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-2.4.13-gcc-3.0.2/include/linux/types.h"
typedef __kernel_loff_t loff_t;
# 54 "/usr/src/linux-2.4.13-gcc-3.0.2/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-2.4.13-gcc-3.0.2/include/linux/types.h"
struct ustat {
        __kernel_daddr_t f_tfree;
        __kernel_ino_t f_tinode;
        char f_fname[6];
        char f_fpack[6];
};
# 9 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/mmx.h" 2

extern void *_mmx_memcpy(void *to, const void *from, size_t size);
extern void mmx_clear_page(void *page);
extern void mmx_copy_page(void *to, void *from);
# 17 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/page.h" 2
# 45 "/usr/src/linux-2.4.13-gcc-3.0.2/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-2.4.13-gcc-3.0.2/include/asm/page.h"
static __inline__ int get_order(unsigned long size)
{
        int order;

        size = (size-1) >> (12 -1);
        order = -1;
        do {
                size >>= 1;
                order++;
        } while (size);
        return order;
}
# 14 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/processor.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/types.h" 1
# 15 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/processor.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/sigcontext.h" 1
# 16 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/processor.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/cpufeature.h" 1
# 17 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/processor.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/cache.h" 1



# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/config.h" 1
# 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/cache.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/cache.h" 1






# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/config.h" 1
# 8 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/cache.h" 2
# 6 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/cache.h" 2
# 18 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/processor.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/config.h" 1
# 19 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/processor.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/threads.h" 1



# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/config.h" 1
# 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/threads.h" 2
# 20 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/processor.h" 2
# 33 "/usr/src/linux-2.4.13-gcc-3.0.2/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 << ((6))))));
# 72 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/processor.h"
extern struct cpuinfo_x86 boot_cpu_data;
extern struct tss_struct init_tss[1];
# 94 "/usr/src/linux-2.4.13-gcc-3.0.2/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-2.4.13-gcc-3.0.2/include/asm/processor.h"
static inline void cpuid(int op, int *eax, int *ebx, int *ecx, int *edx)
{
        __asm__("cpuid"
                : "=a" (*eax),
                  "=b" (*ebx),
                  "=c" (*ecx),
                  "=d" (*edx)
                : "0" (op));
}




static inline unsigned int cpuid_eax(unsigned int op)
{
        unsigned int eax;

        __asm__("cpuid"
                : "=a" (eax)
                : "0" (op)
                : "bx", "cx", "dx");
        return eax;
}
static inline unsigned int cpuid_ebx(unsigned int op)
{
        unsigned int eax, ebx;

        __asm__("cpuid"
                : "=a" (eax), "=b" (ebx)
                : "0" (op)
                : "cx", "dx" );
        return ebx;
}
static inline unsigned int cpuid_ecx(unsigned int op)
{
        unsigned int eax, ecx;

        __asm__("cpuid"
                : "=a" (eax), "=c" (ecx)
                : "0" (op)
                : "bx", "dx" );
        return ecx;
}
static inline unsigned int cpuid_edx(unsigned int op)
{
        unsigned int eax, edx;

        __asm__("cpuid"
                : "=a" (eax), "=d" (edx)
                : "0" (op)
                : "bx", "cx");
        return edx;
}
# 199 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/processor.h"
extern unsigned long mmu_cr4_features;

static inline void set_in_cr4 (unsigned long mask)
{
        mmu_cr4_features |= 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 &= ~mask;
        __asm__("movl %%cr4,%%eax\n\t"
                "andl %0,%%eax\n\t"
                "movl %%eax,%%cr4\n"
                : : "irg" (~mask)
                :"ax");
}
# 256 "/usr/src/linux-2.4.13-gcc-3.0.2/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-2.4.13-gcc-3.0.2/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-2.4.13-gcc-3.0.2/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 flags);


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-2.4.13-gcc-3.0.2/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");
}
# 496 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/processor.h"
extern inline void prefetch(const void *x)
{
         __asm__ __volatile__ ("prefetch (%0)" : : "r"(x));
}

extern inline void prefetchw(const void *x)
{
         __asm__ __volatile__ ("prefetchw (%0)" : : "r"(x));
}
# 14 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/prefetch.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/cache.h" 1
# 15 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/prefetch.h" 2
# 7 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/list.h" 2
# 18 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/list.h"
struct list_head {
        struct list_head *next, *prev;
};
# 37 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/list.h"
static __inline__ void __list_add(struct list_head * new,
        struct list_head * prev,
        struct list_head * next)
{
        next->prev = new;
        new->next = next;
        new->prev = prev;
        prev->next = new;
}
# 55 "/usr/src/linux-2.4.13-gcc-3.0.2/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-2.4.13-gcc-3.0.2/include/linux/list.h"
static __inline__ void list_add_tail(struct list_head *new, struct list_head *head)
{
        __list_add(new, head->prev, head);
}
# 80 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/list.h"
static __inline__ void __list_del(struct list_head * prev,
                                  struct list_head * next)
{
        next->prev = prev;
        prev->next = next;
}






static __inline__ void list_del(struct list_head *entry)
{
        __list_del(entry->prev, entry->next);
}





static __inline__ void list_del_init(struct list_head *entry)
{
        __list_del(entry->prev, entry->next);
        do { (entry)->next = (entry); (entry)->prev = (entry); } while (0);
}





static __inline__ int list_empty(struct list_head *head)
{
        return head->next == head;
}






static __inline__ void list_splice(struct list_head *list, struct list_head *head)
{
        struct list_head *first = list->next;

        if (first != list) {
                struct list_head *last = list->prev;
                struct list_head *at = head->next;

                first->prev = head;
                head->next = first;

                last->next = at;
                at->prev = last;
        }
}
# 13 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/module.h" 2
# 25 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/module.h"
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/atomic.h" 1



# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/config.h" 1
# 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/atomic.h" 2
# 22 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/atomic.h"
typedef struct { volatile int counter; } atomic_t;
# 53 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/atomic.h"
static __inline__ void atomic_add(int i, atomic_t *v)
{
        __asm__ __volatile__(
                "" "addl %1,%0"
                :"=m" (v->counter)
                :"ir" (i), "m" (v->counter));
}
# 69 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/atomic.h"
static __inline__ void atomic_sub(int i, atomic_t *v)
{
        __asm__ __volatile__(
                "" "subl %1,%0"
                :"=m" (v->counter)
                :"ir" (i), "m" (v->counter));
}
# 87 "/usr/src/linux-2.4.13-gcc-3.0.2/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"
                :"=m" (v->counter), "=qm" (c)
                :"ir" (i), "m" (v->counter) : "memory");
        return c;
}
# 105 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/atomic.h"
static __inline__ void atomic_inc(atomic_t *v)
{
        __asm__ __volatile__(
                "" "incl %0"
                :"=m" (v->counter)
                :"m" (v->counter));
}
# 120 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/atomic.h"
static __inline__ void atomic_dec(atomic_t *v)
{
        __asm__ __volatile__(
                "" "decl %0"
                :"=m" (v->counter)
                :"m" (v->counter));
}
# 137 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/atomic.h"
static __inline__ int atomic_dec_and_test(atomic_t *v)
{
        unsigned char c;

        __asm__ __volatile__(
                "" "decl %0; sete %1"
                :"=m" (v->counter), "=qm" (c)
                :"m" (v->counter) : "memory");
        return c != 0;
}
# 157 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/atomic.h"
static __inline__ int atomic_inc_and_test(atomic_t *v)
{
        unsigned char c;

        __asm__ __volatile__(
                "" "incl %0; sete %1"
                :"=m" (v->counter), "=qm" (c)
                :"m" (v->counter) : "memory");
        return c != 0;
}
# 178 "/usr/src/linux-2.4.13-gcc-3.0.2/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"
                :"=m" (v->counter), "=qm" (c)
                :"ir" (i), "m" (v->counter) : "memory");
        return c;
}
# 26 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/module.h" 2


struct exception_table_entry;


struct kernel_sym
{
        unsigned long value;
        char name[60];
};

struct module_symbol
{
        unsigned long value;
        const char *name;
};

struct module_ref
{
        struct module *dep;
        struct module *ref;
        struct module_ref *next_ref;
};


struct module_persist;

struct module
{
        unsigned long size_of_struct;
        struct module *next;
        const char *name;
        unsigned long size;

        union
        {
                atomic_t usecount;
                long pad;
        } uc;

        unsigned long flags;

        unsigned nsyms;
        unsigned ndeps;

        struct module_symbol *syms;
        struct module_ref *deps;
        struct module_ref *refs;
        int (*init)(void);
        void (*cleanup)(void);
        const struct exception_table_entry *ex_table_start;
        const struct exception_table_entry *ex_table_end;






        const struct module_persist *persist_start;
        const struct module_persist *persist_end;
        int (*can_unload)(void);
        int runsize;
        const char *kallsyms_start;
        const char *kallsyms_end;
        const char *archdata_start;
        const char *archdata_end;
        const char *kernel_data;
};

struct module_info
{
        unsigned long addr;
        unsigned long size;
        unsigned long flags;
        long usecount;
};
# 183 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/module.h"
extern void inter_module_register(const char *, struct module *, const void *);
extern void inter_module_unregister(const char *);
extern const void *inter_module_get(const char *);
extern const void *inter_module_get_request(const char *, const char *);
extern void inter_module_put(const char *);

struct inter_module_entry {
        struct list_head list;
        const char *im_name;
        struct module *owner;
        const void *userdata;
};

extern int try_inc_mod_count(struct module *mod);
# 325 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/module.h"
extern struct module *module_list;
# 147 "8139too.c" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/kernel.h" 1
# 10 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/kernel.h"
# 1 "/mswg/opt/gcc-3.0.2/x86/lib/gcc-lib/i686-pc-linux-gnu/3.0.2/include/stdarg.h" 1 3
# 43 "/mswg/opt/gcc-3.0.2/x86/lib/gcc-lib/i686-pc-linux-gnu/3.0.2/include/stdarg.h" 3
typedef __builtin_va_list __gnuc_va_list;
# 110 "/mswg/opt/gcc-3.0.2/x86/lib/gcc-lib/i686-pc-linux-gnu/3.0.2/include/stdarg.h" 3
typedef __gnuc_va_list va_list;
# 11 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/kernel.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/linkage.h" 1



# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/config.h" 1
# 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/linkage.h" 2
# 12 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/kernel.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/stddef.h" 1
# 13 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/kernel.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/types.h" 1
# 14 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/kernel.h" 2
# 49 "/usr/src/linux-2.4.13-gcc-3.0.2/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 int);
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 args);

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 = 0;
}

static inline void console_verbose(void)
{
        if (console_loglevel)
                console_loglevel = 15;
}

extern void bust_spinlocks(int yes);
extern int oops_in_progress;

extern int tainted;
extern const char *print_tainted(void);
# 160 "/usr/src/linux-2.4.13-gcc-3.0.2/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)];
};
# 148 "8139too.c" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/pci.h" 1
# 276 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/pci.h"
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/pci_ids.h" 1
# 277 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/pci.h" 2
# 299 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/pci.h"
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/types.h" 1
# 300 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/pci.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/config.h" 1
# 301 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/pci.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ioport.h" 1
# 15 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ioport.h"
struct resource {
        const char *name;
        unsigned long start, end;
        unsigned long flags;
        struct resource *parent, *sibling, *child;
};

struct resource_list {
        struct resource_list *next;
        struct resource *res;
        struct pci_dev *dev;
};
# 83 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ioport.h"
extern struct resource ioport_resource;
extern struct resource iomem_resource;

extern int get_resource_list(struct resource *, char *buf, int size);

extern int check_resource(struct resource *root, unsigned long, unsigned long);
extern int request_resource(struct resource *root, struct resource *new);
extern int release_resource(struct resource *new);
extern int allocate_resource(struct resource *root, struct resource *new,
                             unsigned long size,
                             unsigned long min, unsigned long max,
                             unsigned long align,
                             void (*alignf)(void *, struct resource *, unsigned long),
                             void *alignf_data);





extern struct resource * __request_region(struct resource *, unsigned long start, unsigned long n, const char *name);







extern int __check_region(struct resource *, unsigned long, unsigned long);
extern void __release_region(struct resource *, unsigned long, unsigned long);





extern void autoirq_setup(int waittime);
extern int autoirq_report(int waittime);
# 302 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/pci.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/list.h" 1
# 303 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/pci.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/errno.h" 1



# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/errno.h" 1
# 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/errno.h" 2
# 304 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/pci.h" 2


enum pci_mmap_state {
        pci_mmap_io,
        pci_mmap_mem
};
# 336 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/pci.h"
struct pci_dev {
        struct list_head global_list;
        struct list_head bus_list;
        struct pci_bus *bus;
        struct pci_bus *subordinate;

        void *sysdata;
        struct proc_dir_entry *procent;

        unsigned int devfn;
        unsigned short vendor;
        unsigned short device;
        unsigned short subsystem_vendor;
        unsigned short subsystem_device;
        unsigned int class;
        u8 hdr_type;
        u8 rom_base_reg;

        struct pci_driver *driver;
        void *driver_data;
        u64 dma_mask;





        u32 current_state;




        unsigned short vendor_compatible[4];
        unsigned short device_compatible[4];





        unsigned int irq;
        struct resource resource[12];
        struct resource dma_resource[2];
        struct resource irq_resource[2];

        char name[80];
        char slot_name[8];
        int active;
        int ro;
        unsigned short regs;

        int (*prepare)(struct pci_dev *dev);
        int (*activate)(struct pci_dev *dev);
        int (*deactivate)(struct pci_dev *dev);
};
# 407 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/pci.h"
struct pci_bus {
        struct list_head node;
        struct pci_bus *parent;
        struct list_head children;
        struct list_head devices;
        struct pci_dev *self;
        struct resource *resource[4];

        struct pci_ops *ops;
        void *sysdata;
        struct proc_dir_entry *procdir;

        unsigned char number;
        unsigned char primary;
        unsigned char secondary;
        unsigned char subordinate;

        char name[48];
        unsigned short vendor;
        unsigned short device;
        unsigned int serial;
        unsigned char pnpver;
        unsigned char productver;
        unsigned char checksum;
        unsigned char pad1;
};



extern struct list_head pci_root_buses;
extern struct list_head pci_devices;
# 452 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/pci.h"
struct pci_ops {
        int (*read_byte)(struct pci_dev *, int where, u8 *val);
        int (*read_word)(struct pci_dev *, int where, u16 *val);
        int (*read_dword)(struct pci_dev *, int where, u32 *val);
        int (*write_byte)(struct pci_dev *, int where, u8 val);
        int (*write_word)(struct pci_dev *, int where, u16 val);
        int (*write_dword)(struct pci_dev *, int where, u32 val);
};

struct pbus_set_ranges_data
{
        int found_vga;
        unsigned long io_start, io_end;
        unsigned long mem_start, mem_end;
};

struct pci_device_id {
        unsigned int vendor, device;
        unsigned int subvendor, subdevice;
        unsigned int class, class_mask;
        unsigned long driver_data;
};

struct pci_driver {
        struct list_head node;
        char *name;
        const struct pci_device_id *id_table;
        int (*probe) (struct pci_dev *dev, const struct pci_device_id *id);
        void (*remove) (struct pci_dev *dev);
        int (*save_state) (struct pci_dev *dev, u32 state);
        int (*suspend)(struct pci_dev *dev, u32 state);
        int (*resume) (struct pci_dev *dev);
        int (*enable_wake) (struct pci_dev *dev, u32 state, int enable);
};
# 494 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/pci.h"
void pcibios_init(void);
void pcibios_fixup_bus(struct pci_bus *);
int pcibios_enable_device(struct pci_dev *);
char *pcibios_setup (char *str);


void pcibios_align_resource(void *, struct resource *, unsigned long);
void pcibios_update_resource(struct pci_dev *, struct resource *,
                             struct resource *, int);
void pcibios_update_irq(struct pci_dev *, int irq);
void pcibios_fixup_pbus_ranges(struct pci_bus *, struct pbus_set_ranges_data *);



int pcibios_present(void);
int pcibios_read_config_byte (unsigned char bus, unsigned char dev_fn,
                              unsigned char where, unsigned char *val);
int pcibios_read_config_word (unsigned char bus, unsigned char dev_fn,
                              unsigned char where, unsigned short *val);
int pcibios_read_config_dword (unsigned char bus, unsigned char dev_fn,
                               unsigned char where, unsigned int *val);
int pcibios_write_config_byte (unsigned char bus, unsigned char dev_fn,
                               unsigned char where, unsigned char val);
int pcibios_write_config_word (unsigned char bus, unsigned char dev_fn,
                               unsigned char where, unsigned short val);
int pcibios_write_config_dword (unsigned char bus, unsigned char dev_fn,
                                unsigned char where, unsigned int val);
int pcibios_find_class (unsigned int class_code, unsigned short index, unsigned char *bus, unsigned char *dev_fn);
int pcibios_find_device (unsigned short vendor, unsigned short dev_id,
                         unsigned short index, unsigned char *bus,
                         unsigned char *dev_fn);



void pci_init(void);
int pci_bus_exists(const struct list_head *list, int nr);
struct pci_bus *pci_scan_bus(int bus, struct pci_ops *ops, void *sysdata);
struct pci_bus *pci_alloc_primary_bus(int bus);
struct pci_dev *pci_scan_slot(struct pci_dev *temp);
int pci_proc_attach_device(struct pci_dev *dev);
int pci_proc_detach_device(struct pci_dev *dev);
void pci_name_device(struct pci_dev *dev);
char *pci_class_name(u32 class);
void pci_read_bridge_bases(struct pci_bus *child);
struct resource *pci_find_parent_resource(const struct pci_dev *dev, struct resource *res);
int pci_setup_device(struct pci_dev *dev);
int pci_get_interrupt_pin(struct pci_dev *dev, struct pci_dev **bridge);



struct pci_dev *pci_find_device (unsigned int vendor, unsigned int device, const struct pci_dev *from);
struct pci_dev *pci_find_subsys (unsigned int vendor, unsigned int device,
                                 unsigned int ss_vendor, unsigned int ss_device,
                                 const struct pci_dev *from);
struct pci_dev *pci_find_class (unsigned int class, const struct pci_dev *from);
struct pci_dev *pci_find_slot (unsigned int bus, unsigned int devfn);
int pci_find_capability (struct pci_dev *dev, int cap);

int pci_read_config_byte(struct pci_dev *dev, int where, u8 *val);
int pci_read_config_word(struct pci_dev *dev, int where, u16 *val);
int pci_read_config_dword(struct pci_dev *dev, int where, u32 *val);
int pci_write_config_byte(struct pci_dev *dev, int where, u8 val);
int pci_write_config_word(struct pci_dev *dev, int where, u16 val);
int pci_write_config_dword(struct pci_dev *dev, int where, u32 val);

int pci_enable_device(struct pci_dev *dev);
void pci_disable_device(struct pci_dev *dev);
void pci_set_master(struct pci_dev *dev);
int pci_set_dma_mask(struct pci_dev *dev, u64 mask);
int pci_dac_set_dma_mask(struct pci_dev *dev, u64 mask);
int pci_assign_resource(struct pci_dev *dev, int i);


int pci_save_state(struct pci_dev *dev, u32 *buffer);
int pci_restore_state(struct pci_dev *dev, u32 *buffer);
int pci_set_power_state(struct pci_dev *dev, int state);
int pci_enable_wake(struct pci_dev *dev, u32 state, int enable);



int pci_claim_resource(struct pci_dev *, int);
void pci_assign_unassigned_resources(void);
void pdev_enable_device(struct pci_dev *);
void pdev_sort_resources(struct pci_dev *, struct resource_list *, u32);
unsigned long pci_bridge_check_io(struct pci_dev *);
void pci_fixup_irqs(u8 (*)(struct pci_dev *, u8 *),
                    int (*)(struct pci_dev *, u8, u8));

int pci_request_regions(struct pci_dev *, char *);
void pci_release_regions(struct pci_dev *);


int pci_register_driver(struct pci_driver *);
void pci_unregister_driver(struct pci_driver *);
void pci_insert_device(struct pci_dev *, struct pci_bus *);
void pci_remove_device(struct pci_dev *);
struct pci_driver *pci_dev_driver(const struct pci_dev *);
const struct pci_device_id *pci_match_device(const struct pci_device_id *ids, const struct pci_dev *dev);


struct pci_pool *pci_pool_create (const char *name, struct pci_dev *dev,
                size_t size, size_t align, size_t allocation, int flags);
void pci_pool_destroy (struct pci_pool *pool);

void *pci_pool_alloc (struct pci_pool *pool, int flags, dma_addr_t *handle);
void pci_pool_free (struct pci_pool *pool, void *vaddr, dma_addr_t addr);





# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pci.h" 1



# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/config.h" 1
# 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pci.h" 2
# 13 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pci.h"
extern unsigned int pcibios_assign_all_busses(void);




extern unsigned long pci_mem_start;



void pcibios_set_master(struct pci_dev *dev);
void pcibios_penalize_isa_irq(int irq);





# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/types.h" 1
# 30 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pci.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/slab.h" 1
# 12 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/slab.h"
typedef struct kmem_cache_s kmem_cache_t;

# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mm.h" 1



# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sched.h" 1



# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/param.h" 1
# 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sched.h" 2

extern unsigned long event;

# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/config.h" 1
# 9 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sched.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/binfmts.h" 1



# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ptrace.h" 1
# 24 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ptrace.h"
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/ptrace.h" 1
# 26 "/usr/src/linux-2.4.13-gcc-3.0.2/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-2.4.13-gcc-3.0.2/include/asm/ptrace.h"
extern void show_regs(struct pt_regs *);
# 25 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ptrace.h" 2
# 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/binfmts.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/capability.h" 1
# 16 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/capability.h"
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/types.h" 1
# 17 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/capability.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 1
# 9 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h"
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/config.h" 1
# 10 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/linkage.h" 1
# 11 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/limits.h" 1
# 12 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/wait.h" 1
# 13 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/wait.h"
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/kernel.h" 1
# 14 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/wait.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/list.h" 1
# 15 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/wait.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/stddef.h" 1
# 16 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/wait.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/spinlock.h" 1
# 17 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/wait.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/config.h" 1
# 18 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/wait.h" 2

# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/page.h" 1
# 20 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/wait.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/processor.h" 1
# 21 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/wait.h" 2
# 31 "/usr/src/linux-2.4.13-gcc-3.0.2/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-2.4.13-gcc-3.0.2/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-2.4.13-gcc-3.0.2/include/linux/wait.h"
static inline void init_waitqueue_head(wait_queue_head_t *q)
{




        q->lock = (spinlock_t) { };
        do { (&q->task_list)->next = (&q->task_list); (&q->task_list)->prev = (&q->task_list); } while (0);




}

static inline void init_waitqueue_entry(wait_queue_t *q, struct task_struct *p)
{




        q->flags = 0;
        q->task = 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-2.4.13-gcc-3.0.2/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-2.4.13-gcc-3.0.2/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-2.4.13-gcc-3.0.2/include/linux/fs.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/types.h" 1
# 14 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/vfs.h" 1



# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/statfs.h" 1





# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/types.h" 1
# 7 "/usr/src/linux-2.4.13-gcc-3.0.2/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-2.4.13-gcc-3.0.2/include/linux/vfs.h" 2
# 15 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/net.h" 1
# 21 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/net.h"
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/config.h" 1
# 22 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/net.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/socket.h" 1





# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/socket.h" 1



# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/sockios.h" 1
# 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/socket.h" 2
# 7 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/socket.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sockios.h" 1
# 21 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sockios.h"
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/sockios.h" 1
# 22 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sockios.h" 2
# 8 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/socket.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/uio.h" 1



# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/types.h" 1
# 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/uio.h" 2
# 19 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/uio.h"
struct iovec
{
        void *iov_base;
        __kernel_size_t iov_len;
};
# 9 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/socket.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/types.h" 1
# 10 "/usr/src/linux-2.4.13-gcc-3.0.2/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-2.4.13-gcc-3.0.2/include/linux/socket.h"
static inline struct cmsghdr * __cmsg_nxthdr(void *__ctl, __kernel_size_t __size,
                                               struct cmsghdr *__cmsg)
{
        struct cmsghdr * __ptr;

        __ptr = (struct cmsghdr*)(((unsigned char *) __cmsg) + ( ((__cmsg->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-2.4.13-gcc-3.0.2/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 *address, int mode);
extern int memcpy_toiovec(struct iovec *v, unsigned char *kdata, int len);
extern void memcpy_tokerneliovec(struct iovec *iov, unsigned char *kdata, int len);
extern int move_addr_to_user(void *kaddr, int klen, void *uaddr, int *ulen);
extern int move_addr_to_kernel(void *uaddr, int ulen, void *kaddr);
extern int put_cmsg(struct msghdr*, int level, int type, int len, void *data);
# 23 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/net.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/wait.h" 1
# 24 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/net.h" 2

struct poll_table_struct;
# 49 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/net.h"
typedef enum {
  SS_FREE = 0,
  SS_UNCONNECTED,
  SS_CONNECTING,
  SS_CONNECTED,
  SS_DISCONNECTING
} socket_state;
# 65 "/usr/src/linux-2.4.13-gcc-3.0.2/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 poll_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, struct scm_cookie *scm);
  int (*recvmsg) (struct socket *sock, struct msghdr *m, int total_len, int flags, struct scm_cookie *scm);
  int (*mmap) (struct file *file, struct socket *sock, struct vm_area_struct * 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 flags);
extern int sock_readv_writev(int type, struct inode * inode, struct file * file,
                                  const struct iovec * iov, long count, long size);

extern int net_ratelimit(void);
extern unsigned long net_random(void);
extern void net_srandom(unsigned long);
# 16 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/kdev_t.h" 1
# 67 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/kdev_t.h"
typedef unsigned short kdev_t;
# 76 "/usr/src/linux-2.4.13-gcc-3.0.2/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-2.4.13-gcc-3.0.2/include/linux/kdev_t.h"
        major = (dev >> 8);
        minor = (dev & 0xff);

        return (((major) << 8) | (minor));
}
# 17 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ioctl.h" 1



# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/ioctl.h" 1
# 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ioctl.h" 2
# 18 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/list.h" 1
# 19 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/dcache.h" 1





# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/atomic.h" 1
# 7 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/dcache.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mount.h" 1
# 19 "/usr/src/linux-2.4.13-gcc-3.0.2/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;
};

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-2.4.13-gcc-3.0.2/include/linux/dcache.h" 2
# 24 "/usr/src/linux-2.4.13-gcc-3.0.2/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, unsigned 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 = 0;
        while (len--)
                hash = 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-2.4.13-gcc-3.0.2/include/linux/dcache.h"
extern spinlock_t dcache_lock;
# 146 "/usr/src/linux-2.4.13-gcc-3.0.2/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 = (&dentry->d_hash); (&dentry->d_hash)->prev = (&dentry->d_hash); } while (0);
        do { } while(0);
}

static __inline__ int dname_external(struct dentry *d)
{
        return d->d_name.name != 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 int shrink_dqcache_memory(int, unsigned 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 *);
# 210 "/usr/src/linux-2.4.13-gcc-3.0.2/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);
# 243 "/usr/src/linux-2.4.13-gcc-3.0.2/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 *);
# 262 "/usr/src/linux-2.4.13-gcc-3.0.2/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-2.4.13-gcc-3.0.2/include/linux/fs.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/stat.h" 1





# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/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-2.4.13-gcc-3.0.2/include/linux/stat.h" 2
# 21 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/cache.h" 1
# 22 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/stddef.h" 1
# 23 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/string.h" 1







# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/types.h" 1
# 9 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/string.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/stddef.h" 1
# 10 "/usr/src/linux-2.4.13-gcc-3.0.2/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-2.4.13-gcc-3.0.2/include/asm/string.h" 1




# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/config.h" 1
# 6 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/string.h" 2
# 33 "/usr/src/linux-2.4.13-gcc-3.0.2/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"
        : "=&S" (d0), "=&D" (d1), "=&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:"
        : "=&S" (d0), "=&D" (d1), "=&c" (d2), "=&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"
        : "=&S" (d0), "=&D" (d1), "=&a" (d2), "=&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"
        : "=&S" (d0), "=&D" (d1), "=&a" (d2), "=&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:"
        :"=a" (__res), "=&S" (d0), "=&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:"
                     :"=a" (__res), "=&S" (d0), "=&D" (d1), "=&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"
        :"=a" (__res), "=&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"
        :"=g" (__res), "=&S" (d0), "=&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"
        :"=c" (__res), "=&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:"
        : "=&c" (d0), "=&D" (d1), "=&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 = *(const unsigned char *)from;
                        return to;
                case 2:
                        *(unsigned short *)to = *(const unsigned short *)from;
                        return to;
                case 3:
                        *(unsigned short *)to = *(const unsigned short *)from;
                        *(2+(unsigned char *)to) = *(2+(const unsigned char *)from);
                        return to;
                case 4:
                        *(unsigned long *)to = *(const unsigned long *)from;
                        return to;
                case 6:
                        *(unsigned long *)to = *(const unsigned long *)from;
                        *(2+(unsigned short *)to) = *(2+(const unsigned short *)from);
                        return to;
                case 8:
                        *(unsigned long *)to = *(const unsigned long *)from;
                        *(1+(unsigned long *)to) = *(1+(const unsigned long *)from);
                        return to;
                case 12:
                        *(unsigned long *)to = *(const unsigned long *)from;
                        *(1+(unsigned long *)to) = *(1+(const unsigned long *)from);
                        *(2+(unsigned long *)to) = *(2+(const unsigned long *)from);
                        return to;
                case 16:
                        *(unsigned long *)to = *(const unsigned long *)from;
                        *(1+(unsigned long *)to) = *(1+(const unsigned long *)from);
                        *(2+(unsigned long *)to) = *(2+(const unsigned long *)from);
                        *(3+(unsigned long *)to) = *(3+(const unsigned long *)from);
                        return to;
                case 20:
                        *(unsigned long *)to = *(const unsigned long *)from;
                        *(1+(unsigned long *)to) = *(1+(const unsigned long *)from);
                        *(2+(unsigned long *)to) = *(2+(const unsigned long *)from);
                        *(3+(unsigned long *)to) = *(3+(const unsigned long *)from);
                        *(4+(unsigned long *)to) = *(4+(const unsigned long *)from);
                        return to;
        }







{
        int d0, d1, d2;
        switch (n % 4) {
                case 0: __asm__ __volatile__( "rep ; movsl" "" : "=&c" (d0), "=&D" (d1), "=&S" (d2) : "0" (n/4),"1" ((long) to),"2" ((long) from) : "memory");; return to;
                case 1: __asm__ __volatile__( "rep ; movsl" "\n\tmovsb" : "=&c" (d0), "=&D" (d1), "=&S" (d2) : "0" (n/4),"1" ((long) to),"2" ((long) from) : "memory");; return to;
                case 2: __asm__ __volatile__( "rep ; movsl" "\n\tmovsw" : "=&c" (d0), "=&D" (d1), "=&S" (d2) : "0" (n/4),"1" ((long) to),"2" ((long) from) : "memory");; return to;
                default: __asm__ __volatile__( "rep ; movsl" "\n\tmovsw\n\tmovsb" : "=&c" (d0), "=&D" (d1), "=&S" (d2) : "0" (n/4),"1" ((long) to),"2" ((long) from) : "memory");; return to;
        }
}


}





# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/mmx.h" 1
# 291 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/string.h" 2





static inline void * __constant_memcpy3d(void * to, const void * from, size_t len)
{
        if (len < 512)
                return __constant_memcpy(to, from, len);
        return _mmx_memcpy(to, from, len);
}

static __inline__ void *__memcpy3d(void *to, const void *from, size_t len)
{
        if (len < 512)
                return __memcpy(to, from, len);
        return _mmx_memcpy(to, from, len);
}
# 335 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/string.h"
extern void __struct_cpy_bug (void);
# 345 "/usr/src/linux-2.4.13-gcc-3.0.2/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"
        : "=&c" (d0), "=&S" (d1), "=&D" (d2)
        :"0" (n),"1" (src),"2" (dest)
        : "memory");
else
__asm__ __volatile__(
        "std\n\t"
        "rep\n\t"
        "movsb\n\t"
        "cld"
        : "=&c" (d0), "=&S" (d1), "=&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"
        :"=D" (__res), "=&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"
        : "=&c" (d0), "=&D" (d1)
        :"a" (c),"1" (s),"0" (count)
        :"memory");
return s;
}
# 408 "/usr/src/linux-2.4.13-gcc-3.0.2/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:"
        : "=&c" (d0), "=&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"
        :"=a" (__res), "=&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 long pattern, size_t count)
{
        switch (count) {
                case 0:
                        return s;
                case 1:
                        *(unsigned char *)s = pattern;
                        return s;
                case 2:
                        *(unsigned short *)s = pattern;
                        return s;
                case 3:
                        *(unsigned short *)s = pattern;
                        *(2+(unsigned char *)s) = pattern;
                        return s;
                case 4:
                        *(unsigned long *)s = pattern;
                        return s;
        }







{
        int d0, d1;
        switch (count % 4) {
                case 0: __asm__ __volatile__( "rep ; stosl" "" : "=&c" (d0), "=&D" (d1) : "a" (pattern),"0" (count/4),"1" ((long) s) : "memory"); return s;
                case 1: __asm__ __volatile__( "rep ; stosl" "\n\tstosb" : "=&c" (d0), "=&D" (d1) : "a" (pattern),"0" (count/4),"1" ((long) s) : "memory"); return s;
                case 2: __asm__ __volatile__( "rep ; stosl" "\n\tstosw" : "=&c" (d0), "=&D" (d1) : "a" (pattern),"0" (count/4),"1" ((long) s) : "memory"); return s;
                default: __asm__ __volatile__( "rep ; stosl" "\n\tstosw\n\tstosb" : "=&c" (d0), "=&D" (d1) : "a" (pattern),"0" (count/4),"1" ((long) s) : "memory"); return s;
        }
}


}
# 515 "/usr/src/linux-2.4.13-gcc-3.0.2/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:"
                : "=D" (addr), "=c" (size)
                : "0" (addr), "1" (size), "a" (c));
        return addr;
}
# 26 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/string.h" 2
# 46 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/string.h"
extern int strnicmp(const char *, const char *, __kernel_size_t);
# 77 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/string.h"
extern int __builtin_memcmp(const void *,const void *,__kernel_size_t);
# 24 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/atomic.h" 1
# 26 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/bitops.h" 1







# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/config.h" 1
# 9 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/bitops.h" 2
# 36 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/bitops.h"
static __inline__ void set_bit(int nr, volatile void * addr)
{
        __asm__ __volatile__( ""
                "btsl %1,%0"
                :"=m" ((*(volatile long *) addr))
                :"Ir" (nr));
}
# 53 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/bitops.h"
static __inline__ void __set_bit(int nr, volatile void * addr)
{
        __asm__(
                "btsl %1,%0"
                :"=m" ((*(volatile long *) addr))
                :"Ir" (nr));
}
# 71 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/bitops.h"
static __inline__ void clear_bit(int nr, volatile void * addr)
{
        __asm__ __volatile__( ""
                "btrl %1,%0"
                :"=m" ((*(volatile long *) addr))
                :"Ir" (nr));
}
# 90 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/bitops.h"
static __inline__ void __change_bit(int nr, volatile void * addr)
{
        __asm__ __volatile__(
                "btcl %1,%0"
                :"=m" ((*(volatile long *) addr))
                :"Ir" (nr));
}
# 107 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/bitops.h"
static __inline__ void change_bit(int nr, volatile void * addr)
{
        __asm__ __volatile__( ""
                "btcl %1,%0"
                :"=m" ((*(volatile long *) addr))
                :"Ir" (nr));
}
# 123 "/usr/src/linux-2.4.13-gcc-3.0.2/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"
                :"=r" (oldbit),"=m" ((*(volatile long *) addr))
                :"Ir" (nr) : "memory");
        return oldbit;
}
# 143 "/usr/src/linux-2.4.13-gcc-3.0.2/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"
                :"=r" (oldbit),"=m" ((*(volatile long *) addr))
                :"Ir" (nr));
        return oldbit;
}
# 162 "/usr/src/linux-2.4.13-gcc-3.0.2/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"
                :"=r" (oldbit),"=m" ((*(volatile long *) addr))
                :"Ir" (nr) : "memory");
        return oldbit;
}
# 182 "/usr/src/linux-2.4.13-gcc-3.0.2/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"
                :"=r" (oldbit),"=m" ((*(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"
                :"=r" (oldbit),"=m" ((*(volatile long *) addr))
                :"Ir" (nr) : "memory");
        return oldbit;
}
# 213 "/usr/src/linux-2.4.13-gcc-3.0.2/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"
                :"=r" (oldbit),"=m" ((*(volatile long *) addr))
                :"Ir" (nr) : "memory");
        return oldbit;
}
# 233 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/bitops.h"
static __inline__ int constant_test_bit(int nr, const volatile void * addr)
{
        return ((1UL << (nr & 31)) & (((const volatile unsigned int *) addr)[nr >> 5])) != 0;
}

static __inline__ int variable_test_bit(int nr, volatile void * addr)
{
        int oldbit;

        __asm__ __volatile__(
                "btl %2,%1\n\tsbbl %0,%0"
                :"=r" (oldbit)
                :"m" ((*(volatile long *) addr)),"Ir" (nr));
        return oldbit;
}
# 262 "/usr/src/linux-2.4.13-gcc-3.0.2/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"
                :"=d" (res), "=&c" (d0), "=&D" (d1), "=&a" (d2)
                :"1" ((size + 31) >> 5), "2" (addr), "b" (addr));
        return res;
}







static __inline__ int find_next_zero_bit (void * addr, int size, int offset)
{
        unsigned long * p = ((unsigned long *) addr) + (offset >> 5);
        int set = 0, bit = offset & 31, res;

        if (bit) {



                __asm__("bsfl %1,%0\n\t"
                        "jne 1f\n\t"
                        "movl $32, %0\n"
                        "1:"
                        : "=r" (set)
                        : "r" (~(*p >> bit)));
                if (set < (32 - bit))
                        return set + offset;
                set = 32 - bit;
                p++;
        }



        res = 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"
                :"=r" (word)
                :"r" (~word));
        return word;
}
# 343 "/usr/src/linux-2.4.13-gcc-3.0.2/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:" : "=r" (r) : "g" (x));
        return r+1;
}
# 27 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 2

struct poll_table_struct;
# 50 "/usr/src/linux-2.4.13-gcc-3.0.2/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;
# 198 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h"
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/semaphore.h" 1



# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/linkage.h" 1
# 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/semaphore.h" 2
# 39 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/semaphore.h"
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/system.h" 1



# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/config.h" 1
# 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/system.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/kernel.h" 1
# 6 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/system.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/segment.h" 1
# 7 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/system.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/bitops.h" 1
# 11 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/bitops.h"
static inline int generic_ffs(int x)
{
        int r = 1;

        if (!x)
                return 0;
        if (!(x & 0xffff)) {
                x >>= 16;
                r += 16;
        }
        if (!(x & 0xff)) {
                x >>= 8;
                r += 8;
        }
        if (!(x & 0xf)) {
                x >>= 4;
                r += 4;
        }
        if (!(x & 3)) {
                x >>= 2;
                r += 2;
        }
        if (!(x & 1)) {
                x >>= 1;
                r += 1;
        }
        return r;
}






static inline unsigned int generic_hweight32(unsigned int w)
{
        unsigned int res = (w & 0x55555555) + ((w >> 1) & 0x55555555);
        res = (res & 0x33333333) + ((res >> 2) & 0x33333333);
        res = (res & 0x0F0F0F0F) + ((res >> 4) & 0x0F0F0F0F);
        res = (res & 0x00FF00FF) + ((res >> 8) & 0x00FF00FF);
        return (res & 0x0000FFFF) + ((res >> 16) & 0x0000FFFF);
}

static inline unsigned int generic_hweight16(unsigned int w)
{
        unsigned int res = (w & 0x5555) + ((w >> 1) & 0x5555);
        res = (res & 0x3333) + ((res >> 2) & 0x3333);
        res = (res & 0x0F0F) + ((res >> 4) & 0x0F0F);
        return (res & 0x00FF) + ((res >> 8) & 0x00FF);
}

static inline unsigned int generic_hweight8(unsigned int w)
{
        unsigned int res = (w & 0x55) + ((w >> 1) & 0x55);
        res = (res & 0x33) + ((res >> 2) & 0x33);
        return (res & 0x0F) + ((res >> 4) & 0x0F);
}

# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/bitops.h" 1
# 70 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/bitops.h" 2
# 8 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/system.h" 2



struct task_struct;
extern void __switch_to(struct task_struct *prev, struct task_struct *next) __attribute__((regparm(3)));
# 63 "/usr/src/linux-2.4.13-gcc-3.0.2/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"
                :"=&d" (__base)
                :"m" (*((addr)+2)),
                 "m" (*((addr)+4)),
                 "m" (*((addr)+7)));
        return __base;
}
# 130 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/system.h"
static inline unsigned long get_limit(unsigned long segment)
{
        unsigned long __limit;
        __asm__("lsll %1,%0"
                :"=r" (__limit):"r" (segment));
        return __limit+1;
}







struct __xchg_dummy { unsigned long a[100]; };
# 157 "/usr/src/linux-2.4.13-gcc-3.0.2/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)>>32ULL));
}



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-2.4.13-gcc-3.0.2/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"
                                :"=q" (x)
                                :"m" (*((struct __xchg_dummy *)(ptr))), "0" (x)
                                :"memory");
                        break;
                case 2:
                        __asm__ __volatile__("xchgw %w0,%1"
                                :"=r" (x)
                                :"m" (*((struct __xchg_dummy *)(ptr))), "0" (x)
                                :"memory");
                        break;
                case 4:
                        __asm__ __volatile__("xchgl %0,%1"
                                :"=r" (x)
                                :"m" (*((struct __xchg_dummy *)(ptr))), "0" (x)
                                :"memory");
                        break;
        }
        return x;
}
# 236 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/system.h"
static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old,
                                      unsigned long new, int size)
{
        unsigned long prev;
        switch (size) {
        case 1:
                __asm__ __volatile__("" "cmpxchgb %b1,%2"
                                     : "=a"(prev)
                                     : "q"(new), "m"(*((struct __xchg_dummy *)(ptr))), "0"(old)
                                     : "memory");
                return prev;
        case 2:
                __asm__ __volatile__("" "cmpxchgw %w1,%2"
                                     : "=a"(prev)
                                     : "q"(new), "m"(*((struct __xchg_dummy *)(ptr))), "0"(old)
                                     : "memory");
                return prev;
        case 4:
                __asm__ __volatile__("" "cmpxchgl %1,%2"
                                     : "=a"(prev)
                                     : "q"(new), "m"(*((struct __xchg_dummy *)(ptr))), "0"(old)
                                     : "memory");
                return prev;
        }
        return old;
}
# 349 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/system.h"
void disable_hlt(void);
void enable_hlt(void);

extern int is_sony_vaio_laptop;
# 40 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/semaphore.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/atomic.h" 1
# 41 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/semaphore.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/wait.h" 1
# 42 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/semaphore.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rwsem.h" 1
# 10 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rwsem.h"
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/linkage.h" 1
# 11 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rwsem.h" 2





# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/config.h" 1
# 17 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rwsem.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/types.h" 1
# 18 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rwsem.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/kernel.h" 1
# 19 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rwsem.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/system.h" 1
# 20 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rwsem.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/atomic.h" 1
# 21 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rwsem.h" 2

struct rw_semaphore;




# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/rwsem.h" 1
# 41 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/rwsem.h"
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/list.h" 1
# 42 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/rwsem.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/spinlock.h" 1
# 43 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/rwsem.h" 2

struct rwsem_waiter;

extern struct rw_semaphore *rwsem_down_read_failed(struct rw_semaphore *sem) __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-2.4.13-gcc-3.0.2/include/asm/rwsem.h"
static inline void init_rwsem(struct rw_semaphore *sem)
{
        sem->count = 0x00000000;
        do { } while(0);
        do { (&sem->wait_list)->next = (&sem->wait_list); (&sem->wait_list)->prev = (&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 = ((-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 = -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"
                :"=m"(sem->count)
                :"ir"(delta), "m"(sem->count));
}




static inline int rwsem_atomic_update(int delta, struct rw_semaphore *sem)
{
        int tmp = delta;

        __asm__ __volatile__(
"" "xadd %0,(%2)"
                : "+r"(tmp), "=m"(sem->count)
                : "r"(sem), "m"(sem->count)
                : "memory");

        return tmp+delta;
}
# 28 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rwsem.h" 2
# 41 "/usr/src/linux-2.4.13-gcc-3.0.2/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-2.4.13-gcc-3.0.2/include/asm/semaphore.h" 2

struct semaphore {
        atomic_t count;
        int sleepers;
        wait_queue_head_t wait;



};
# 73 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/semaphore.h"
static inline void sema_init (struct semaphore *sem, int val)
{






        (((&sem->count)->counter) = (val));
        sem->sleepers = 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"
                :"=m" (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"
                :"=a" (result), "=m" (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"
                :"=a" (result), "=m" (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"
                :"=m" (sem->count)
                :"c" (sem)
                :"memory");
}
# 199 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/byteorder.h" 1



# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/types.h" 1
# 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/byteorder.h" 2





# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/config.h" 1
# 11 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/byteorder.h" 2


static __inline__ __const__ __u32 ___arch__swab32(__u32 x)
{

        __asm__("bswap %0" : "=r" (x) : "0" (x));







        return x;
}

static __inline__ __const__ __u16 ___arch__swab16(__u16 x)
{
        __asm__("xchgb %b0,%h0" : "=q" (x) : "0" (x)); return x;



}
# 45 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/byteorder.h"
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/byteorder/little_endian.h" 1
# 11 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/byteorder/little_endian.h"
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/byteorder/swab.h" 1
# 131 "/usr/src/linux-2.4.13-gcc-3.0.2/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) = ___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) = ___arch__swab32(*((addr))); } while (0);
}


static __inline__ __const__ __u64 __fswab64(__u64 x)
{

        __u32 h = x >> 32;
        __u32 l = x & ((1ULL<<32)-1);
        return (((__u64)(__builtin_constant_p((__u32)(l)) ? ({ __u32 __x = ((l)); ((__u32)( (((__u32)(__x) & (__u32)0x000000ffUL) << 24) | (((__u32)(__x) & (__u32)0x0000ff00UL) << 8) | (((__u32)(__x) & (__u32)0x00ff0000UL) >> 8) | (((__u32)(__x) & (__u32)0xff000000UL) >> 24) )); }) : __fswab32((l)))) << 32) | ((__u64)((__builtin_constant_p((__u32)(h)) ? ({ __u32 __x = ((h)); ((__u32)( (((__u32)(__x) & (__u32)0x000000ffUL) << 24) | (((__u32)(__x) & (__u32)0x0000ff00UL) << 8) | (((__u32)(__x) & (__u32)0x00ff0000UL) >> 8) | (((__u32)(__x) & (__u32)0xff000000UL) >> 24) )); }) : __fswab32((h)))));



}
static __inline__ __u64 __swab64p(__u64 *x)
{
        return ({ __u64 __tmp = (*(x)) ; ({ __u64 __x = (__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)0x0000ff0000000000ULL) >> 24) | (__u64)(((__u64)(__x) & (__u64)0x00ff000000000000ULL) >> 40) | (__u64)(((__u64)(__x) & (__u64)0xff00000000000000ULL) >> 56) )); }); });
}
static __inline__ void __swab64s(__u64 *addr)
{
        do { *(addr) = ({ __u64 __tmp = (*((addr))) ; ({ __u64 __x = (__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)0x0000ff0000000000ULL) >> 24) | (__u64)(((__u64)(__x) & (__u64)0x00ff000000000000ULL) >> 40) | (__u64)(((__u64)(__x) & (__u64)0xff00000000000000ULL) >> 56) )); }); }); } while (0);
}
# 12 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/byteorder/little_endian.h" 2
# 66 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/byteorder/little_endian.h"
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/byteorder/generic.h" 1
# 150 "/usr/src/linux-2.4.13-gcc-3.0.2/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-2.4.13-gcc-3.0.2/include/linux/byteorder/little_endian.h" 2
# 46 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/byteorder.h" 2
# 200 "/usr/src/linux-2.4.13-gcc-3.0.2/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_launder,

        BH_PrivateStart,


};
# 236 "/usr/src/linux-2.4.13-gcc-3.0.2/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 *);
# 282 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h"
extern void set_bh_page(struct buffer_head *bh, struct page *page, unsigned long offset);




# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/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-2.4.13-gcc-3.0.2/include/linux/pipe_fs_i.h"
void pipe_wait(struct inode * inode);

struct inode* pipe_new(struct inode* inode);
# 288 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/minix_fs_i.h" 1






struct minix_inode_info {
        union {
                __u16 i1_data[16];
                __u32 i2_data[16];
        } u;
};
# 289 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ext2_fs_i.h" 1
# 22 "/usr/src/linux-2.4.13-gcc-3.0.2/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;
};
# 290 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/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;
};
# 291 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ntfs_fs_i.h" 1



# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/types.h" 1
# 5 "/usr/src/linux-2.4.13-gcc-3.0.2/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-2.4.13-gcc-3.0.2/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;
};
# 292 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/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;
};
# 293 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/umsdos_fs_i.h" 1







# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/msdos_fs_i.h" 1
# 9 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/umsdos_fs_i.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/pipe_fs_i.h" 1
# 10 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/umsdos_fs_i.h" 2
# 39 "/usr/src/linux-2.4.13-gcc-3.0.2/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;
};
# 294 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/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;
};
# 295 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/nfs_fs_i.h" 1



# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/types.h" 1
# 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/nfs_fs_i.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/list.h" 1
# 6 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/nfs_fs_i.h" 2
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/nfs.h" 1
# 10 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/nfs.h"
# 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sunrpc/msg_prot.h" 1
# 14 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sunrpc/msg_prot.h"
enum rpc_auth_flavor {
        RPC_AUTH_NULL = 0,
        RPC_AUTH_UNIX = 1,
        RPC_AUTH_SHORT = 2,
        RPC_AUTH_DES = 3,
        RPC_AUTH_KRB = 4,
};

enum rpc_msg_type {
        RPC_CALL = 0,
        RPC_REPLY = 1
};

enum rpc_reply_stat {
        RPC_MSG_ACCEPTED = 0,
        RPC_MSG_DENIED = 1
};

enum rpc_accept_stat {
        RPC_SUCCESS = 0,
        RPC_PROG_UNAVAIL = 1,
        RPC_PROG_MISMATCH = 2,
        RPC_PROC_UNAVAIL = 3,
        RPC_GARBAGE_ARGS = 4,
        RPC_SYSTEM_ERR = 5
};

enum rpc_reject_stat {
        RPC_MISMATCH = 0,
        RPC_AUTH_ERROR = 1
};

enum rpc_auth_stat {
        RPC_AUTH_OK = 0,
        RPC_AUTH_BADCRED = 1,
        RPC_AUTH_REJECTEDCRED = 2,
        RPC_AUTH_BADVERF = 3,
        RPC_AUTH_REJECTEDVERF = 4,
        RPC_AUTH_TOOWEAK = 5
};
# 11 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/nfs.h" 2
# 41 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/nfs.h"
 enum nfs_stat {
        NFS_OK = 0,
        NFSERR_PERM = 1,
        NFSERR_NOENT = 2,
        NFSERR_IO = 5,
        NFSERR_NXIO = 6,
        NFSERR_EAGAIN = 11,
        NFSERR_ACCES = 13,
        NFSERR_EXIST = 17,
        NFSERR_XDEV = 18,
        NFSERR_NODEV = 19,
        NFSERR_NOTDIR = 20,
        NFSERR_ISDIR = 21,
        NFSERR_INVAL = 22,
        NFSERR_FBIG = 27,
        NFSERR_NOSPC = 28,
        NFSERR_ROFS = 30,
        NFSERR_MLINK = 31,