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] |
>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,