From mboxrd@z Thu Jan 1 00:00:00 1970 From: MST To: gcc-gnats@gcc.gnu.org Subject: c/4736: gcc internal error in reload_cse_simplify_operands compiling linux 2.4.13 Date: Tue, 30 Oct 2001 01:06:00 -0000 Message-id: <20011030085235.8239D3BB6F@mtls23.yok.mtl.com> X-SW-Source: 2001-10/msg00682.html List-Id: >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 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> 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, NFSERR_OPNOTSUPP = 45, NFSERR_NAMETOOLONG = 63, NFSERR_NOTEMPTY = 66, NFSERR_DQUOT = 69, NFSERR_STALE = 70, NFSERR_REMOTE = 71, NFSERR_WFLUSH = 99, NFSERR_BADHANDLE = 10001, NFSERR_NOT_SYNC = 10002, NFSERR_BAD_COOKIE = 10003, NFSERR_NOTSUPP = 10004, NFSERR_TOOSMALL = 10005, NFSERR_SERVERFAULT = 10006, NFSERR_BADTYPE = 10007, NFSERR_JUKEBOX = 10008 }; enum nfs_ftype { NFNON = 0, NFREG = 1, NFDIR = 2, NFBLK = 3, NFCHR = 4, NFLNK = 5, NFSOCK = 6, NFBAD = 7, NFFIFO = 8 }; struct nfs_fh { unsigned short size; unsigned char data[64]; }; # 107 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/nfs.h" enum nfs3_stable_how { NFS_UNSTABLE = 0, NFS_DATA_SYNC = 1, NFS_FILE_SYNC = 2 }; # 7 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/nfs_fs_i.h" 2 struct nfs_inode_info { __u64 fsid; __u64 fileid; struct nfs_fh fh; unsigned short flags; # 45 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/nfs_fs_i.h" unsigned long read_cache_jiffies; __u64 read_cache_ctime; __u64 read_cache_mtime; __u64 read_cache_isize; unsigned long attrtimeo; unsigned long attrtimeo_timestamp; __u32 cookieverf[2]; struct list_head read; struct list_head dirty; struct list_head commit; struct list_head writeback; unsigned int nread, ndirty, ncommit, npages; struct inode *hash_next, *hash_prev; unsigned long nextscan; struct rpc_cred *mm_cred; }; # 92 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/nfs_fs_i.h" struct nfs_lock_info { u32 state; u32 flags; struct nlm_host *host; }; # 296 "/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/sysv_fs_i.h" 1 struct sysv_inode_info { u32 i_data[10+1+1+1]; }; # 297 "/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/affs_fs_i.h" 1 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/a.out.h" 1 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/a.out.h" 1 struct exec { unsigned long a_info; unsigned a_text; unsigned a_data; unsigned a_bss; unsigned a_syms; unsigned a_entry; unsigned a_trsize; unsigned a_drsize; }; # 9 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/a.out.h" 2 enum machine_type { M_OLDSUN2 = 0, M_68010 = 1, M_68020 = 2, M_SPARC = 3, M_386 = 100, M_MIPS1 = 151, M_MIPS2 = 152 }; # 131 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/a.out.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/page.h" 1 # 132 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/a.out.h" 2 # 157 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/a.out.h" struct nlist { union { char *n_name; struct nlist *n_next; long n_strx; } n_un; unsigned char n_type; char n_other; short n_desc; unsigned long n_value; }; # 235 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/a.out.h" struct relocation_info { int r_address; unsigned int r_symbolnum:24; unsigned int r_pcrel:1; unsigned int r_length:2; unsigned int r_extern:1; unsigned int r_pad:4; }; # 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/affs_fs_i.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/time.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/time.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/types.h" 1 # 6 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/time.h" 2 struct timespec { time_t tv_sec; long tv_nsec; }; # 31 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/time.h" static __inline__ unsigned long timespec_to_jiffies(struct timespec *value) { unsigned long sec = value->tv_sec; long nsec = value->tv_nsec; if (sec >= (((~0UL >> 1)-1) / 100)) return ((~0UL >> 1)-1); nsec += 1000000000L / 100 - 1; nsec /= 1000000000L / 100; return 100 * sec + nsec; } static __inline__ void jiffies_to_timespec(unsigned long jiffies, struct timespec *value) { value->tv_nsec = (jiffies % 100) * (1000000000L / 100); value->tv_sec = jiffies / 100; } # 67 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/time.h" static inline unsigned long mktime (unsigned int year, unsigned int mon, unsigned int day, unsigned int hour, unsigned int min, unsigned int sec) { if (0 >= (int) (mon -= 2)) { mon += 12; year -= 1; } return ((( (unsigned long) (year/4 - year/100 + year/400 + 367*mon/12 + day) + year*365 - 719499 )*24 + hour )*60 + min )*60 + sec; } struct timeval { time_t tv_sec; suseconds_t tv_usec; }; struct timezone { int tz_minuteswest; int tz_dsttime; }; extern void do_gettimeofday(struct timeval *tv); extern void do_settimeofday(struct timeval *tv); extern void get_fast_time(struct timeval *tv); extern void (*do_get_fast_time)(struct timeval *); # 121 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/time.h" struct itimerspec { struct timespec it_interval; struct timespec it_value; }; struct itimerval { struct timeval it_interval; struct timeval it_value; }; # 8 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/affs_fs_i.h" 2 # 17 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/affs_fs_i.h" struct affs_ext_key { u32 ext; u32 key; }; struct affs_inode_info { u32 i_opencnt; struct semaphore i_link_lock; struct semaphore i_ext_lock; u32 i_blkcnt; u32 i_extcnt; u32 *i_lc; u32 i_lc_size; u32 i_lc_shift; u32 i_lc_mask; struct affs_ext_key *i_ac; u32 i_ext_last; struct buffer_head *i_ext_bh; unsigned long mmu_private; u32 i_protect; u32 i_lastalloc; int i_pa_cnt; # 51 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/affs_fs_i.h" }; # 298 "/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/ufs_fs_i.h" 1 # 16 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ufs_fs_i.h" struct ufs_inode_info { union { __u32 i_data[15]; __u8 i_symlink[4*15]; } i_u1; __u64 i_size; __u32 i_flags; __u32 i_gen; __u32 i_shadow; __u32 i_unused1; __u32 i_unused2; __u32 i_oeftflag; __u16 i_osync; __u32 i_lastfrag; }; # 299 "/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/efs_fs_i.h" 1 # 12 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/efs_fs_i.h" typedef int32_t efs_block_t; typedef uint32_t efs_ino_t; typedef union extent_u { unsigned char raw[8]; struct extent_s { unsigned int ex_magic:8; unsigned int ex_bn:24; unsigned int ex_length:8; unsigned int ex_offset:24; } cooked; } efs_extent; typedef struct edevs { short odev; unsigned int ndev; } efs_devs; struct efs_dinode { u_short di_mode; short di_nlink; u_short di_uid; u_short di_gid; int32_t di_size; int32_t di_atime; int32_t di_mtime; int32_t di_ctime; uint32_t di_gen; short di_numextents; u_char di_version; u_char di_spare; union di_addr { efs_extent di_extents[12]; efs_devs di_dev; } di_u; }; struct efs_inode_info { int numextents; int lastextent; efs_extent extents[12]; }; # 300 "/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/coda_fs_i.h" 1 # 12 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/coda_fs_i.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/types.h" 1 # 13 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/coda_fs_i.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/list.h" 1 # 14 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/coda_fs_i.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/coda.h" 1 # 109 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/coda.h" typedef unsigned long long u_quad_t; # 164 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/coda.h" struct venus_dirent { unsigned long d_fileno; unsigned short d_reclen; unsigned char d_type; unsigned char d_namlen; char d_name[255 + 1]; }; # 198 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/coda.h" typedef u_long VolumeId; typedef u_long VnodeId; typedef u_long Unique_t; typedef u_long FileVersion; typedef struct ViceFid { VolumeId Volume; VnodeId Vnode; Unique_t Unique; } ViceFid; static __inline__ ino_t coda_f2i(struct ViceFid *fid) { if ( ! fid ) return 0; if (fid->Vnode == 0xfffffffe || fid->Vnode == 0xffffffff) return ((fid->Volume << 20) | (fid->Unique & 0xfffff)); else return (fid->Unique + (fid->Vnode<<10) + (fid->Volume<<20)); } # 233 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/coda.h" typedef u_int32_t vuid_t; typedef u_int32_t vgid_t; struct coda_cred { vuid_t cr_uid, cr_euid, cr_suid, cr_fsuid; vgid_t cr_groupid, cr_egid, cr_sgid, cr_fsgid; }; enum coda_vtype { C_VNON, C_VREG, C_VDIR, C_VBLK, C_VCHR, C_VLNK, C_VSOCK, C_VFIFO, C_VBAD }; struct coda_vattr { long va_type; u_short va_mode; short va_nlink; vuid_t va_uid; vgid_t va_gid; long va_fileid; u_quad_t va_size; long va_blocksize; struct timespec va_atime; struct timespec va_mtime; struct timespec va_ctime; u_long va_gen; u_long va_flags; u_quad_t va_rdev; u_quad_t va_bytes; u_quad_t va_filerev; }; struct coda_statfs { int32_t f_blocks; int32_t f_bfree; int32_t f_bavail; int32_t f_files; int32_t f_ffree; }; # 337 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/coda.h" struct coda_in_hdr { unsigned long opcode; unsigned long unique; u_short pid; u_short pgid; u_short sid; struct coda_cred cred; }; struct coda_out_hdr { unsigned long opcode; unsigned long unique; unsigned long result; }; struct coda_root_out { struct coda_out_hdr oh; ViceFid VFid; }; struct coda_root_in { struct coda_in_hdr in; }; struct coda_open_in { struct coda_in_hdr ih; ViceFid VFid; int flags; }; struct coda_open_out { struct coda_out_hdr oh; u_quad_t dev; ino_t inode; }; struct coda_store_in { struct coda_in_hdr ih; ViceFid VFid; int flags; }; struct coda_store_out { struct coda_out_hdr out; }; struct coda_release_in { struct coda_in_hdr ih; ViceFid VFid; int flags; }; struct coda_release_out { struct coda_out_hdr out; }; struct coda_close_in { struct coda_in_hdr ih; ViceFid VFid; int flags; }; struct coda_close_out { struct coda_out_hdr out; }; struct coda_ioctl_in { struct coda_in_hdr ih; ViceFid VFid; int cmd; int len; int rwflag; char *data; }; struct coda_ioctl_out { struct coda_out_hdr oh; int len; caddr_t data; }; struct coda_getattr_in { struct coda_in_hdr ih; ViceFid VFid; }; struct coda_getattr_out { struct coda_out_hdr oh; struct coda_vattr attr; }; struct coda_setattr_in { struct coda_in_hdr ih; ViceFid VFid; struct coda_vattr attr; }; struct coda_setattr_out { struct coda_out_hdr out; }; struct coda_access_in { struct coda_in_hdr ih; ViceFid VFid; int flags; }; struct coda_access_out { struct coda_out_hdr out; }; struct coda_lookup_in { struct coda_in_hdr ih; ViceFid VFid; int name; int flags; }; struct coda_lookup_out { struct coda_out_hdr oh; ViceFid VFid; int vtype; }; struct coda_create_in { struct coda_in_hdr ih; ViceFid VFid; struct coda_vattr attr; int excl; int mode; int name; }; struct coda_create_out { struct coda_out_hdr oh; ViceFid VFid; struct coda_vattr attr; }; struct coda_remove_in { struct coda_in_hdr ih; ViceFid VFid; int name; }; struct coda_remove_out { struct coda_out_hdr out; }; struct coda_link_in { struct coda_in_hdr ih; ViceFid sourceFid; ViceFid destFid; int tname; }; struct coda_link_out { struct coda_out_hdr out; }; struct coda_rename_in { struct coda_in_hdr ih; ViceFid sourceFid; int srcname; ViceFid destFid; int destname; }; struct coda_rename_out { struct coda_out_hdr out; }; struct coda_mkdir_in { struct coda_in_hdr ih; ViceFid VFid; struct coda_vattr attr; int name; }; struct coda_mkdir_out { struct coda_out_hdr oh; ViceFid VFid; struct coda_vattr attr; }; struct coda_rmdir_in { struct coda_in_hdr ih; ViceFid VFid; int name; }; struct coda_rmdir_out { struct coda_out_hdr out; }; struct coda_symlink_in { struct coda_in_hdr ih; ViceFid VFid; int srcname; struct coda_vattr attr; int tname; }; struct coda_symlink_out { struct coda_out_hdr out; }; struct coda_readlink_in { struct coda_in_hdr ih; ViceFid VFid; }; struct coda_readlink_out { struct coda_out_hdr oh; int count; caddr_t data; }; struct coda_fsync_in { struct coda_in_hdr ih; ViceFid VFid; }; struct coda_fsync_out { struct coda_out_hdr out; }; struct coda_vget_in { struct coda_in_hdr ih; ViceFid VFid; }; struct coda_vget_out { struct coda_out_hdr oh; ViceFid VFid; int vtype; }; # 616 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/coda.h" struct coda_purgeuser_out { struct coda_out_hdr oh; struct coda_cred cred; }; struct coda_zapfile_out { struct coda_out_hdr oh; ViceFid CodaFid; }; struct coda_zapdir_out { struct coda_out_hdr oh; ViceFid CodaFid; }; struct coda_zapvnode_out { struct coda_out_hdr oh; struct coda_cred cred; ViceFid VFid; }; struct coda_purgefid_out { struct coda_out_hdr oh; ViceFid CodaFid; }; struct coda_replace_out { struct coda_out_hdr oh; ViceFid NewFid; ViceFid OldFid; }; struct coda_open_by_fd_in { struct coda_in_hdr ih; ViceFid VFid; int flags; }; struct coda_open_by_fd_out { struct coda_out_hdr oh; int fd; struct file *fh; }; struct coda_open_by_path_in { struct coda_in_hdr ih; ViceFid VFid; int flags; }; struct coda_open_by_path_out { struct coda_out_hdr oh; int path; }; struct coda_statfs_in { struct coda_in_hdr in; }; struct coda_statfs_out { struct coda_out_hdr oh; struct coda_statfs stat; }; # 703 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/coda.h" union inputArgs { struct coda_in_hdr ih; struct coda_open_in coda_open; struct coda_store_in coda_store; struct coda_release_in coda_release; struct coda_close_in coda_close; struct coda_ioctl_in coda_ioctl; struct coda_getattr_in coda_getattr; struct coda_setattr_in coda_setattr; struct coda_access_in coda_access; struct coda_lookup_in coda_lookup; struct coda_create_in coda_create; struct coda_remove_in coda_remove; struct coda_link_in coda_link; struct coda_rename_in coda_rename; struct coda_mkdir_in coda_mkdir; struct coda_rmdir_in coda_rmdir; struct coda_symlink_in coda_symlink; struct coda_readlink_in coda_readlink; struct coda_fsync_in coda_fsync; struct coda_vget_in coda_vget; struct coda_open_by_fd_in coda_open_by_fd; struct coda_open_by_path_in coda_open_by_path; struct coda_statfs_in coda_statfs; }; union outputArgs { struct coda_out_hdr oh; struct coda_root_out coda_root; struct coda_open_out coda_open; struct coda_ioctl_out coda_ioctl; struct coda_getattr_out coda_getattr; struct coda_lookup_out coda_lookup; struct coda_create_out coda_create; struct coda_mkdir_out coda_mkdir; struct coda_readlink_out coda_readlink; struct coda_vget_out coda_vget; struct coda_purgeuser_out coda_purgeuser; struct coda_zapfile_out coda_zapfile; struct coda_zapdir_out coda_zapdir; struct coda_zapvnode_out coda_zapvnode; struct coda_purgefid_out coda_purgefid; struct coda_replace_out coda_replace; struct coda_open_by_fd_out coda_open_by_fd; struct coda_open_by_path_out coda_open_by_path; struct coda_statfs_out coda_statfs; }; union coda_downcalls { struct coda_purgeuser_out purgeuser; struct coda_zapfile_out zapfile; struct coda_zapdir_out zapdir; struct coda_zapvnode_out zapvnode; struct coda_purgefid_out purgefid; struct coda_replace_out replace; }; struct ViceIoctl { caddr_t in, out; short in_size; short out_size; }; struct PioctlData { const char *path; int follow; struct ViceIoctl vi; }; # 797 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/coda.h" struct coda_mount_data { int version; int fd; }; # 15 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/coda_fs_i.h" 2 struct coda_inode_info { struct ViceFid c_fid; u_short c_flags; struct list_head c_cilist; struct file *c_container; unsigned int c_contcount; struct coda_cred c_cached_cred; unsigned int c_cached_perm; }; int coda_cnode_make(struct inode **, struct ViceFid *, struct super_block *); int coda_cnode_makectl(struct inode **inode, struct super_block *sb); struct inode *coda_fid_to_inode(ViceFid *fid, struct super_block *sb); void coda_replace_fid(struct inode *, ViceFid *, ViceFid *); # 301 "/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/romfs_fs_i.h" 1 struct romfs_inode_info { unsigned long i_metasize; unsigned long i_dataoffset; }; # 302 "/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/shmem_fs.h" 1 # 16 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/shmem_fs.h" typedef struct { unsigned long val; } swp_entry_t; extern atomic_t shmem_nrpages; struct shmem_inode_info { spinlock_t lock; struct semaphore sem; unsigned long next_index; swp_entry_t i_direct[16]; void **i_indirect; unsigned long swapped; int locked; struct list_head list; struct inode *inode; }; struct shmem_sb_info { unsigned long max_blocks; unsigned long free_blocks; unsigned long max_inodes; unsigned long free_inodes; spinlock_t stat_lock; }; # 303 "/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/smb_fs_i.h" 1 # 13 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/smb_fs_i.h" # 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/smb_fs_i.h" 2 struct smb_inode_info { unsigned int open; __u16 fileid; __u16 attr; __u16 access; __u16 flags; unsigned long oldmtime; unsigned long closed; unsigned openers; }; # 304 "/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/hfs_fs_i.h" 1 # 19 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/hfs_fs_i.h" struct hfs_inode_info { int magic; unsigned long mmu_private; struct hfs_cat_entry *entry; struct hfs_fork *fork; int convert; ino_t file_type; char dir_size; const struct hfs_hdr_layout *default_layout; struct hfs_hdr_layout *layout; int tz_secondswest; void (*d_drop_op)(struct dentry *, const ino_t); }; # 305 "/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/adfs_fs_i.h" 1 # 13 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/adfs_fs_i.h" struct adfs_inode_info { unsigned long mmu_private; unsigned long parent_id; __u32 loadaddr; __u32 execaddr; unsigned int filetype; unsigned int attr; int stamped:1; }; # 306 "/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/qnx4_fs_i.h" 1 # 14 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/qnx4_fs_i.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/qnxtypes.h" 1 # 15 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/qnxtypes.h" typedef __u16 qnx4_nxtnt_t; typedef __u8 qnx4_ftype_t; typedef struct { __u32 xtnt_blk; __u32 xtnt_size; } qnx4_xtnt_t; typedef __u16 qnx4_mode_t; typedef __u16 qnx4_muid_t; typedef __u16 qnx4_mgid_t; typedef __u32 qnx4_off_t; typedef __u16 qnx4_nlink_t; # 15 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/qnx4_fs_i.h" 2 struct qnx4_inode_info { char i_reserved[16]; qnx4_off_t i_size; qnx4_xtnt_t i_first_xtnt; __u32 i_xblk; __s32 i_ftime; __s32 i_mtime; __s32 i_atime; __s32 i_ctime; qnx4_nxtnt_t i_num_xtnts; qnx4_mode_t i_mode; qnx4_muid_t i_uid; qnx4_mgid_t i_gid; qnx4_nlink_t i_nlink; __u8 i_zero[4]; qnx4_ftype_t i_type; __u8 i_status; unsigned long mmu_private; }; # 307 "/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/reiserfs_fs_i.h" 1 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/list.h" 1 # 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/reiserfs_fs_i.h" 2 struct reiserfs_inode_info { __u32 i_key [4]; int i_version; int i_pack_on_close ; __u32 i_first_direct_byte; # 35 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/reiserfs_fs_i.h" int i_prealloc_block; int i_prealloc_count; struct list_head i_prealloc_list; int nopack; unsigned long i_trans_id ; unsigned long i_trans_index ; }; # 308 "/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/bfs_fs_i.h" 1 # 12 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/bfs_fs_i.h" struct bfs_inode_info { unsigned long i_dsk_ino; unsigned long i_sblock; unsigned long i_eblock; }; # 309 "/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/udf_fs_i.h" 1 # 24 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/udf_fs_i.h" typedef struct { __u32 logicalBlockNum; __u16 partitionReferenceNum; } lb_addr; struct udf_inode_info { long i_umtime; long i_uctime; long i_crtime; long i_ucrtime; lb_addr i_location; __u64 i_unique; __u32 i_lenEAttr; __u32 i_lenAlloc; __u64 i_lenExtents; __u32 i_next_alloc_block; __u32 i_next_alloc_goal; unsigned i_alloc_type : 3; unsigned i_extended_fe : 1; unsigned i_strat_4096 : 1; unsigned i_new_inode : 1; unsigned reserved : 26; }; # 310 "/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/ncp_fs_i.h" 1 # 17 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ncp_fs_i.h" struct ncp_inode_info { __u32 dirEntNum __attribute__((packed)); __u32 DosDirNum __attribute__((packed)); __u32 volNumber __attribute__((packed)); __u32 nwattr; struct semaphore open_sem; atomic_t opened; int access; __u32 server_file_handle __attribute__((packed)); __u8 open_create_action __attribute__((packed)); __u8 file_handle[6] __attribute__((packed)); }; # 311 "/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/proc_fs_i.h" 1 struct proc_inode_info { struct task_struct *task; int type; union { int (*proc_get_link)(struct inode *, struct dentry **, struct vfsmount **); int (*proc_read)(struct task_struct *task, char *page); } op; struct file *file; }; # 312 "/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/usbdev_fs_i.h" 1 struct usb_device; struct usb_bus; struct usbdev_inode_info { struct list_head dlist; struct list_head slist; union { struct usb_device *dev; struct usb_bus *bus; } p; }; # 313 "/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/jffs2_fs_i.h" 1 # 16 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/jffs2_fs_i.h" struct jffs2_inode_info { # 26 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/jffs2_fs_i.h" struct semaphore sem; __u32 highest_version; struct jffs2_node_frag *fraglist; struct jffs2_full_dnode *metadata; struct jffs2_full_dirent *dents; struct jffs2_inode_cache *inocache; __u16 flags; __u8 usercompr; }; # 314 "/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/cramfs_fs_sb.h" 1 struct cramfs_sb_info { unsigned long magic; unsigned long size; unsigned long blocks; unsigned long files; unsigned long flags; }; # 315 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 2 # 341 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" struct iattr { unsigned int ia_valid; umode_t ia_mode; uid_t ia_uid; gid_t ia_gid; loff_t ia_size; time_t ia_atime; time_t ia_mtime; time_t ia_ctime; unsigned int ia_attr_flags; }; # 365 "/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/quota.h" 1 # 42 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/quota.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/errno.h" 1 # 43 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/quota.h" 2 # 109 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/quota.h" struct dqblk { __u32 dqb_bhardlimit; __u32 dqb_bsoftlimit; __u32 dqb_curblocks; __u32 dqb_ihardlimit; __u32 dqb_isoftlimit; __u32 dqb_curinodes; time_t dqb_btime; time_t dqb_itime; }; # 134 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/quota.h" struct dqstats { __u32 lookups; __u32 drops; __u32 reads; __u32 writes; __u32 cache_hits; __u32 allocated_dquots; __u32 free_dquots; __u32 syncs; }; extern int nr_dquots, nr_free_dquots; extern int dquot_root_squash; # 158 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/quota.h" struct dquot { struct list_head dq_hash; struct list_head dq_inuse; struct list_head dq_free; wait_queue_head_t dq_wait_lock; wait_queue_head_t dq_wait_free; int dq_count; struct super_block *dq_sb; unsigned int dq_id; kdev_t dq_dev; short dq_type; short dq_flags; unsigned long dq_referenced; struct dqblk dq_dqb; }; # 366 "/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/mount.h" 1 # 367 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 2 struct page; struct address_space; struct kiobuf; struct address_space_operations { int (*writepage)(struct page *); int (*readpage)(struct file *, struct page *); int (*sync_page)(struct page *); int (*prepare_write)(struct file *, struct page *, unsigned, unsigned); int (*commit_write)(struct file *, struct page *, unsigned, unsigned); int (*bmap)(struct address_space *, long); int (*direct_IO)(int, struct inode *, struct kiobuf *, unsigned long, int); }; struct address_space { struct list_head clean_pages; struct list_head dirty_pages; struct list_head locked_pages; unsigned long nrpages; struct address_space_operations *a_ops; struct inode *host; struct vm_area_struct *i_mmap; struct vm_area_struct *i_mmap_shared; spinlock_t i_shared_lock; int gfp_mask; }; struct char_device { struct list_head hash; atomic_t count; dev_t dev; atomic_t openers; struct semaphore sem; }; struct block_device { struct list_head bd_hash; atomic_t bd_count; struct inode * bd_inode; dev_t bd_dev; int bd_openers; const struct block_device_operations *bd_op; struct semaphore bd_sem; struct list_head bd_inodes; }; struct inode { struct list_head i_hash; struct list_head i_list; struct list_head i_dentry; struct list_head i_dirty_buffers; struct list_head i_dirty_data_buffers; unsigned long i_ino; atomic_t i_count; kdev_t i_dev; umode_t i_mode; nlink_t i_nlink; uid_t i_uid; gid_t i_gid; kdev_t i_rdev; loff_t i_size; time_t i_atime; time_t i_mtime; time_t i_ctime; unsigned int i_blkbits; unsigned long i_blksize; unsigned long i_blocks; unsigned long i_version; struct semaphore i_sem; struct semaphore i_zombie; struct inode_operations *i_op; struct file_operations *i_fop; struct super_block *i_sb; wait_queue_head_t i_wait; struct file_lock *i_flock; struct address_space *i_mapping; struct address_space i_data; struct dquot *i_dquot[2]; struct list_head i_devices; struct pipe_inode_info *i_pipe; struct block_device *i_bdev; struct char_device *i_cdev; unsigned long i_dnotify_mask; struct dnotify_struct *i_dnotify; unsigned long i_state; unsigned int i_flags; unsigned char i_sock; atomic_t i_writecount; unsigned int i_attr_flags; __u32 i_generation; union { struct minix_inode_info minix_i; struct ext2_inode_info ext2_i; struct hpfs_inode_info hpfs_i; struct ntfs_inode_info ntfs_i; struct msdos_inode_info msdos_i; struct umsdos_inode_info umsdos_i; struct iso_inode_info isofs_i; struct nfs_inode_info nfs_i; struct sysv_inode_info sysv_i; struct affs_inode_info affs_i; struct ufs_inode_info ufs_i; struct efs_inode_info efs_i; struct romfs_inode_info romfs_i; struct shmem_inode_info shmem_i; struct coda_inode_info coda_i; struct smb_inode_info smbfs_i; struct hfs_inode_info hfs_i; struct adfs_inode_info adfs_i; struct qnx4_inode_info qnx4_i; struct reiserfs_inode_info reiserfs_i; struct bfs_inode_info bfs_i; struct udf_inode_info udf_i; struct ncp_inode_info ncpfs_i; struct proc_inode_info proc_i; struct socket socket_i; struct usbdev_inode_info usbdev_i; struct jffs2_inode_info jffs2_i; void *generic_ip; } u; }; struct fown_struct { int pid; uid_t uid, euid; int signum; }; struct file { struct list_head f_list; struct dentry *f_dentry; struct vfsmount *f_vfsmnt; struct file_operations *f_op; atomic_t f_count; unsigned int f_flags; mode_t f_mode; loff_t f_pos; unsigned long f_reada, f_ramax, f_raend, f_ralen, f_rawin; struct fown_struct f_owner; unsigned int f_uid, f_gid; int f_error; unsigned long f_version; void *private_data; struct kiobuf *f_iobuf; long f_iobuf_lock; }; extern spinlock_t files_lock; extern int init_private_file(struct file *, struct dentry *, int); # 556 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" typedef struct files_struct *fl_owner_t; struct file_lock { struct file_lock *fl_next; struct list_head fl_link; struct list_head fl_block; fl_owner_t fl_owner; unsigned int fl_pid; wait_queue_head_t fl_wait; struct file *fl_file; unsigned char fl_flags; unsigned char fl_type; loff_t fl_start; loff_t fl_end; void (*fl_notify)(struct file_lock *); void (*fl_insert)(struct file_lock *); void (*fl_remove)(struct file_lock *); struct fasync_struct * fl_fasync; union { struct nfs_lock_info nfs_fl; } fl_u; }; # 589 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" extern struct list_head file_lock_list; # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fcntl.h" 1 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/fcntl.h" 1 # 69 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/fcntl.h" struct flock { short l_type; short l_whence; off_t l_start; off_t l_len; pid_t l_pid; }; struct flock64 { short l_type; short l_whence; loff_t l_start; loff_t l_len; pid_t l_pid; }; # 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fcntl.h" 2 # 592 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 2 extern int fcntl_getlk(unsigned int, struct flock *); extern int fcntl_setlk(unsigned int, unsigned int, struct flock *); extern int fcntl_getlk64(unsigned int, struct flock64 *); extern int fcntl_setlk64(unsigned int, unsigned int, struct flock64 *); extern void locks_init_lock(struct file_lock *); extern void locks_copy_lock(struct file_lock *, struct file_lock *); extern void locks_remove_posix(struct file *, fl_owner_t); extern void locks_remove_flock(struct file *); extern struct file_lock *posix_test_lock(struct file *, struct file_lock *); extern int posix_lock_file(struct file *, struct file_lock *, unsigned int); extern void posix_block_lock(struct file_lock *, struct file_lock *); extern void posix_unblock_lock(struct file_lock *); extern int posix_locks_deadlock(struct file_lock *, struct file_lock *); extern int __get_lease(struct inode *inode, unsigned int flags); extern time_t lease_get_mtime(struct inode *); extern int lock_may_read(struct inode *, loff_t start, unsigned long count); extern int lock_may_write(struct inode *, loff_t start, unsigned long count); struct fasync_struct { int magic; int fa_fd; struct fasync_struct *fa_next; struct file *fa_file; }; extern int fasync_helper(int, struct file *, int, struct fasync_struct **); extern void kill_fasync(struct fasync_struct **, int, int); extern void __kill_fasync(struct fasync_struct *, int, int); struct nameidata { struct dentry *dentry; struct vfsmount *mnt; struct qstr last; unsigned int flags; int last_type; }; struct quota_mount_options { unsigned int flags; struct semaphore dqio_sem; struct semaphore dqoff_sem; struct file *files[2]; time_t inode_expire[2]; time_t block_expire[2]; char rsquash[2]; }; # 659 "/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/minix_fs_sb.h" 1 struct minix_sb_info { unsigned long s_ninodes; unsigned long s_nzones; unsigned long s_imap_blocks; unsigned long s_zmap_blocks; unsigned long s_firstdatazone; unsigned long s_log_zone_size; unsigned long s_max_size; int s_dirsize; int s_namelen; int s_link_max; struct buffer_head ** s_imap; struct buffer_head ** s_zmap; struct buffer_head * s_sbh; struct minix_super_block * s_ms; unsigned short s_mount_state; unsigned short s_version; }; # 660 "/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_sb.h" 1 # 30 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ext2_fs_sb.h" struct ext2_sb_info { unsigned long s_frag_size; unsigned long s_frags_per_block; unsigned long s_inodes_per_block; unsigned long s_frags_per_group; unsigned long s_blocks_per_group; unsigned long s_inodes_per_group; unsigned long s_itb_per_group; unsigned long s_gdb_count; unsigned long s_desc_per_block; unsigned long s_groups_count; struct buffer_head * s_sbh; struct ext2_super_block * s_es; struct buffer_head ** s_group_desc; unsigned short s_loaded_inode_bitmaps; unsigned short s_loaded_block_bitmaps; unsigned long s_inode_bitmap_number[8]; struct buffer_head * s_inode_bitmap[8]; unsigned long s_block_bitmap_number[8]; struct buffer_head * s_block_bitmap[8]; unsigned long s_mount_opt; uid_t s_resuid; gid_t s_resgid; unsigned short s_mount_state; unsigned short s_pad; int s_addr_per_block_bits; int s_desc_per_block_bits; int s_inode_size; int s_first_ino; }; # 661 "/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_sb.h" 1 struct hpfs_sb_info { ino_t sb_root; unsigned sb_fs_size; unsigned sb_bitmaps; unsigned sb_dirband_start; unsigned sb_dirband_size; unsigned sb_dmap; unsigned sb_n_free; unsigned sb_n_free_dnodes; uid_t sb_uid; gid_t sb_gid; umode_t sb_mode; unsigned sb_conv : 2; unsigned sb_eas : 2; unsigned sb_err : 2; unsigned sb_chk : 2; unsigned sb_lowercase : 1; unsigned sb_was_error : 1; unsigned sb_chkdsk : 2; unsigned sb_rd_fnode : 2; unsigned sb_rd_inode : 2; wait_queue_head_t sb_iget_q; unsigned char *sb_cp_table; unsigned *sb_bmp_dir; unsigned sb_c_bitmap; wait_queue_head_t sb_creation_de; unsigned sb_creation_de_lock : 1; int sb_timeshift; }; # 662 "/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_sb.h" 1 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ntfs_fs_i.h" 1 # 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ntfs_fs_sb.h" 2 struct ntfs_sb_info{ ntfs_uid_t uid; ntfs_gid_t gid; ntmode_t umask; void *nls_map; unsigned int ngt; char mft_zone_multiplier; unsigned long mft_data_pos; ntfs_cluster_t mft_zone_pos; ntfs_cluster_t mft_zone_start; ntfs_cluster_t mft_zone_end; ntfs_cluster_t data1_zone_pos; ntfs_cluster_t data2_zone_pos; ntfs_size_t partition_bias; ntfs_u32 at_standard_information; ntfs_u32 at_attribute_list; ntfs_u32 at_file_name; ntfs_u32 at_volume_version; ntfs_u32 at_security_descriptor; ntfs_u32 at_volume_name; ntfs_u32 at_volume_information; ntfs_u32 at_data; ntfs_u32 at_index_root; ntfs_u32 at_index_allocation; ntfs_u32 at_bitmap; ntfs_u32 at_symlink; int sector_size; int cluster_size; int cluster_size_bits; int mft_clusters_per_record; int mft_record_size; int mft_record_size_bits; int index_clusters_per_record; int index_record_size; int index_record_size_bits; ntfs_cluster_t nr_clusters; ntfs_cluster_t mft_lcn; ntfs_cluster_t mft_mirr_lcn; unsigned char *mft; unsigned short *upcase; unsigned int upcase_length; struct ntfs_inode_info *mft_ino; struct ntfs_inode_info *mftmirr; struct ntfs_inode_info *bitmap; struct super_block *sb; unsigned char ino_flags; }; # 663 "/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_sb.h" 1 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fat_cvf.h" 1 struct cvf_format { int cvf_version; char* cvf_version_text; unsigned long flags; int (*detect_cvf) (struct super_block*sb); int (*mount_cvf) (struct super_block*sb,char*options); int (*unmount_cvf) (struct super_block*sb); struct buffer_head* (*cvf_bread) (struct super_block*sb,int block); struct buffer_head* (*cvf_getblk) (struct super_block*sb,int block); void (*cvf_brelse) (struct super_block *sb,struct buffer_head *bh); void (*cvf_mark_buffer_dirty) (struct super_block *sb, struct buffer_head *bh); void (*cvf_set_uptodate) (struct super_block *sb, struct buffer_head *bh, int val); int (*cvf_is_uptodate) (struct super_block *sb,struct buffer_head *bh); void (*cvf_ll_rw_block) (struct super_block *sb, int opr, int nbreq, struct buffer_head *bh[32]); int (*fat_access) (struct super_block *sb,int nr,int new_value); int (*cvf_statfs) (struct super_block *sb,struct statfs *buf, int bufsiz); int (*cvf_bmap) (struct inode *inode,int block); ssize_t (*cvf_file_read) ( struct file *, char *, size_t, loff_t *); ssize_t (*cvf_file_write) ( struct file *, const char *, size_t, loff_t *); int (*cvf_mmap) (struct file *, struct vm_area_struct *); int (*cvf_readpage) (struct inode *, struct page *); int (*cvf_writepage) (struct inode *, struct page *); int (*cvf_dir_ioctl) (struct inode * inode, struct file * filp, unsigned int cmd, unsigned long arg); void (*zero_out_cluster) (struct inode*, int clusternr); }; int register_cvf_format(struct cvf_format*cvf_format); int unregister_cvf_format(struct cvf_format*cvf_format); void dec_cvf_format_use_count_by_version(int version); int detect_cvf(struct super_block*sb,char*force); extern struct cvf_format *cvf_formats[]; extern int cvf_format_use_count[]; # 4 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/msdos_fs_sb.h" 2 struct fat_mount_options { uid_t fs_uid; gid_t fs_gid; unsigned short fs_umask; unsigned short codepage; char *iocharset; unsigned short shortname; unsigned char name_check; unsigned char conversion; unsigned quiet:1, showexec:1, sys_immutable:1, dotsOK:1, isvfat:1, utf8:1, unicode_xlate:1, posixfs:1, numtail:1, atari:1, fat32:1, nocase:1; }; struct msdos_sb_info { unsigned short cluster_size; unsigned short cluster_bits; unsigned char fats,fat_bits; unsigned short fat_start; unsigned long fat_length; unsigned long dir_start; unsigned short dir_entries; unsigned long data_start; unsigned long clusters; unsigned long root_cluster; unsigned long fsinfo_sector; struct semaphore fat_lock; int prev_free; int free_clusters; struct fat_mount_options options; struct nls_table *nls_disk; struct nls_table *nls_io; struct cvf_format* cvf_format; void *dir_ops; void *private_data; int dir_per_block; int dir_per_block_bits; }; # 664 "/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_sb.h" 1 struct isofs_sb_info { unsigned long s_ninodes; unsigned long s_nzones; unsigned long s_firstdatazone; unsigned long s_log_zone_size; unsigned long s_max_size; unsigned char s_high_sierra; unsigned char s_mapping; int s_rock_offset; unsigned char s_rock; unsigned char s_joliet_level; unsigned char s_utf8; unsigned char s_cruft; unsigned char s_unhide; unsigned char s_nosuid; unsigned char s_nodev; mode_t s_mode; gid_t s_gid; uid_t s_uid; struct nls_table *s_nls_iocharset; }; # 665 "/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_sb.h" 1 struct nfs_server { struct rpc_clnt * client; struct nfs_rpc_ops * rpc_ops; int flags; unsigned int rsize; unsigned int rpages; unsigned int wsize; unsigned int wpages; unsigned int dtsize; unsigned int bsize; unsigned int acregmin; unsigned int acregmax; unsigned int acdirmin; unsigned int acdirmax; unsigned int namelen; char * hostname; struct nfs_reqlist * rw_requests; }; struct nfs_sb_info { struct nfs_server s_server; }; # 666 "/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/sysv_fs_sb.h" 1 # 13 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sysv_fs_sb.h" struct sysv_sb_info { int s_type; char s_bytesex; char s_kludge_symlinks; char s_truncate; nlink_t s_link_max; unsigned int s_inodes_per_block; unsigned int s_inodes_per_block_1; unsigned int s_inodes_per_block_bits; unsigned int s_ind_per_block; unsigned int s_ind_per_block_bits; unsigned int s_ind_per_block_2; unsigned int s_toobig_block; unsigned int s_block_base; unsigned short s_fic_size; unsigned short s_flc_size; struct buffer_head *s_bh1; struct buffer_head *s_bh2; char * s_sbd1; char * s_sbd2; u16 *s_sb_fic_count; u16 *s_sb_fic_inodes; u16 *s_sb_total_free_inodes; u16 *s_bcache_count; u32 *s_bcache; u32 *s_free_blocks; u32 *s_sb_time; u32 *s_sb_state; u32 s_firstinodezone; u32 s_firstdatazone; u32 s_ninodes; u32 s_ndatazones; u32 s_nzones; u16 s_namelen; }; # 667 "/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/affs_fs_sb.h" 1 # 11 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/affs_fs_sb.h" struct affs_bm_info { u32 bm_key; u32 bm_free; }; struct affs_sb_info { int s_partition_size; int s_reserved; u32 s_data_blksize; u32 s_root_block; int s_hashsize; unsigned long s_flags; uid_t s_uid; gid_t s_gid; umode_t s_mode; struct buffer_head *s_root_bh; struct semaphore s_bmlock; struct affs_bm_info *s_bitmap; u32 s_bmap_count; u32 s_bmap_bits; u32 s_last_bmap; struct buffer_head *s_bmap_bh; char *s_prefix; int s_prefix_len; char s_volume[32]; }; # 668 "/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/ufs_fs_sb.h" 1 # 17 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ufs_fs_sb.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ufs_fs.h" 1 # 30 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ufs_fs.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/types.h" 1 # 31 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ufs_fs.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/kernel.h" 1 # 32 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ufs_fs.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/time.h" 1 # 33 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ufs_fs.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/stat.h" 1 # 34 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ufs_fs.h" 2 # 248 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ufs_fs.h" struct ufs_timeval { __s32 tv_sec; __s32 tv_usec; }; struct ufs_dir_entry { __u32 d_ino; __u16 d_reclen; union { __u16 d_namlen; struct { __u8 d_type; __u8 d_namlen; } d_44; } d_u; __u8 d_name[255 + 1]; }; struct ufs_csum { __u32 cs_ndir; __u32 cs_nbfree; __u32 cs_nifree; __u32 cs_nffree; }; struct ufs_super_block { __u32 fs_link; __u32 fs_rlink; __u32 fs_sblkno; __u32 fs_cblkno; __u32 fs_iblkno; __u32 fs_dblkno; __u32 fs_cgoffset; __u32 fs_cgmask; __u32 fs_time; __u32 fs_size; __u32 fs_dsize; __u32 fs_ncg; __u32 fs_bsize; __u32 fs_fsize; __u32 fs_frag; __u32 fs_minfree; __u32 fs_rotdelay; __u32 fs_rps; __u32 fs_bmask; __u32 fs_fmask; __u32 fs_bshift; __u32 fs_fshift; __u32 fs_maxcontig; __u32 fs_maxbpg; __u32 fs_fragshift; __u32 fs_fsbtodb; __u32 fs_sbsize; __u32 fs_csmask; __u32 fs_csshift; __u32 fs_nindir; __u32 fs_inopb; __u32 fs_nspf; __u32 fs_optim; union { struct { __u32 fs_npsect; } fs_sun; struct { __s32 fs_state; } fs_sunx86; } fs_u1; __u32 fs_interleave; __u32 fs_trackskew; __u32 fs_id[2]; __u32 fs_csaddr; __u32 fs_cssize; __u32 fs_cgsize; __u32 fs_ntrak; __u32 fs_nsect; __u32 fs_spc; __u32 fs_ncyl; __u32 fs_cpg; __u32 fs_ipg; __u32 fs_fpg; struct ufs_csum fs_cstotal; __s8 fs_fmod; __s8 fs_clean; __s8 fs_ronly; __s8 fs_flags; __s8 fs_fsmnt[512]; __u32 fs_cgrotor; __u32 fs_csp[31]; __u32 fs_maxcluster; __u32 fs_cpc; __u16 fs_opostbl[16][8]; union { struct { __s32 fs_sparecon[53]; __s32 fs_reclaim; __s32 fs_sparecon2[1]; __s32 fs_state; __u32 fs_qbmask[2]; __u32 fs_qfmask[2]; } fs_sun; struct { __s32 fs_sparecon[53]; __s32 fs_reclaim; __s32 fs_sparecon2[1]; __u32 fs_npsect; __u32 fs_qbmask[2]; __u32 fs_qfmask[2]; } fs_sunx86; struct { __s32 fs_sparecon[50]; __s32 fs_contigsumsize; __s32 fs_maxsymlinklen; __s32 fs_inodefmt; __u32 fs_maxfilesize[2]; __u32 fs_qbmask[2]; __u32 fs_qfmask[2]; __s32 fs_state; } fs_44; } fs_u2; __s32 fs_postblformat; __s32 fs_nrpos; __s32 fs_postbloff; __s32 fs_rotbloff; __s32 fs_magic; __u8 fs_space[1]; }; # 425 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ufs_fs.h" struct ufs_cylinder_group { __u32 cg_link; __u32 cg_magic; __u32 cg_time; __u32 cg_cgx; __u16 cg_ncyl; __u16 cg_niblk; __u32 cg_ndblk; struct ufs_csum cg_cs; __u32 cg_rotor; __u32 cg_frotor; __u32 cg_irotor; __u32 cg_frsum[(8192 / 1024)]; __u32 cg_btotoff; __u32 cg_boff; __u32 cg_iusedoff; __u32 cg_freeoff; __u32 cg_nextfreeoff; union { struct { __u32 cg_clustersumoff; __u32 cg_clusteroff; __u32 cg_nclusterblks; __u32 cg_sparecon[13]; } cg_44; __u32 cg_sparecon[16]; } cg_u; __u8 cg_space[1]; }; struct ufs_inode { __u16 ui_mode; __u16 ui_nlink; union { struct { __u16 ui_suid; __u16 ui_sgid; } oldids; __u32 ui_inumber; __u32 ui_author; } ui_u1; __u64 ui_size; struct ufs_timeval ui_atime; struct ufs_timeval ui_mtime; struct ufs_timeval ui_ctime; union { struct { __u32 ui_db[12]; __u32 ui_ib[3]; } ui_addr; __u8 ui_symlink[4*(12 +3)]; } ui_u2; __u32 ui_flags; __u32 ui_blocks; __u32 ui_gen; union { struct { __u32 ui_shadow; __u32 ui_uid; __u32 ui_gid; __u32 ui_oeftflag; } ui_sun; struct { __u32 ui_uid; __u32 ui_gid; __s32 ui_spare[2]; } ui_44; struct { __u32 ui_uid; __u32 ui_gid; __u16 ui_modeh; __u16 ui_spare; __u32 ui_trans; } ui_hurd; } ui_u3; }; # 524 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ufs_fs.h" extern void ufs_free_fragments (struct inode *, unsigned, unsigned); extern void ufs_free_blocks (struct inode *, unsigned, unsigned); extern unsigned ufs_new_fragments (struct inode *, u32 *, unsigned, unsigned, unsigned, int *); extern struct ufs_cg_private_info * ufs_load_cylinder (struct super_block *, unsigned); extern void ufs_put_cylinder (struct super_block *, unsigned); extern struct inode_operations ufs_dir_inode_operations; extern int ufs_check_dir_entry (const char *, struct inode *, struct ufs_dir_entry *, struct buffer_head *, unsigned long); extern int ufs_add_link (struct dentry *, struct inode *); extern ino_t ufs_inode_by_name(struct inode *, struct dentry *); extern int ufs_make_empty(struct inode *, struct inode *); extern struct ufs_dir_entry * ufs_find_entry (struct dentry *, struct buffer_head **); extern int ufs_delete_entry (struct inode *, struct ufs_dir_entry *, struct buffer_head *); extern int ufs_empty_dir (struct inode *); extern struct ufs_dir_entry * ufs_dotdot (struct inode *, struct buffer_head **); extern void ufs_set_link(struct inode *, struct ufs_dir_entry *, struct buffer_head *, struct inode *); extern struct inode_operations ufs_file_inode_operations; extern struct file_operations ufs_file_operations; extern struct address_space_operations ufs_aops; extern void ufs_free_inode (struct inode *inode); extern struct inode * ufs_new_inode (const struct inode *, int); extern int ufs_frag_map (struct inode *, int); extern void ufs_read_inode (struct inode *); extern void ufs_put_inode (struct inode *); extern void ufs_write_inode (struct inode *, int); extern int ufs_sync_inode (struct inode *); extern void ufs_delete_inode (struct inode *); extern struct buffer_head * ufs_getfrag (struct inode *, unsigned, int, int *); extern struct buffer_head * ufs_bread (struct inode *, unsigned, int, int *); extern struct file_operations ufs_dir_operations; extern struct file_system_type ufs_fs_type; extern void ufs_warning (struct super_block *, const char *, const char *, ...) __attribute__ ((format (printf, 3, 4))); extern void ufs_error (struct super_block *, const char *, const char *, ...) __attribute__ ((format (printf, 3, 4))); extern void ufs_panic (struct super_block *, const char *, const char *, ...) __attribute__ ((format (printf, 3, 4))); extern void ufs_write_super (struct super_block *); extern struct inode_operations ufs_fast_symlink_inode_operations; extern void ufs_truncate (struct inode *); # 18 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ufs_fs_sb.h" 2 struct ufs_buffer_head { unsigned fragment; unsigned count; struct buffer_head * bh[(8192 / 1024)]; }; struct ufs_cg_private_info { struct ufs_cylinder_group ucg; __u32 c_cgx; __u16 c_ncyl; __u16 c_niblk; __u32 c_ndblk; __u32 c_rotor; __u32 c_frotor; __u32 c_irotor; __u32 c_btotoff; __u32 c_boff; __u32 c_iusedoff; __u32 c_freeoff; __u32 c_nextfreeoff; __u32 c_clustersumoff; __u32 c_clusteroff; __u32 c_nclusterblks; }; struct ufs_sb_private_info { struct ufs_buffer_head s_ubh; __u32 s_sblkno; __u32 s_cblkno; __u32 s_iblkno; __u32 s_dblkno; __u32 s_cgoffset; __u32 s_cgmask; __u32 s_size; __u32 s_dsize; __u32 s_ncg; __u32 s_bsize; __u32 s_fsize; __u32 s_fpb; __u32 s_minfree; __u32 s_bmask; __u32 s_fmask; __u32 s_bshift; __u32 s_fshift; __u32 s_fpbshift; __u32 s_fsbtodb; __u32 s_sbsize; __u32 s_csmask; __u32 s_csshift; __u32 s_nindir; __u32 s_inopb; __u32 s_nspf; __u32 s_npsect; __u32 s_interleave; __u32 s_trackskew; __u32 s_csaddr; __u32 s_cssize; __u32 s_cgsize; __u32 s_ntrak; __u32 s_nsect; __u32 s_spc; __u32 s_ipg; __u32 s_fpg; __u32 s_cpc; __s32 s_contigsumsize; __s64 s_qbmask; __s64 s_qfmask; __s32 s_postblformat; __s32 s_nrpos; __s32 s_postbloff; __s32 s_rotbloff; __u32 s_fpbmask; __u32 s_apb; __u32 s_2apb; __u32 s_3apb; __u32 s_apbmask; __u32 s_apbshift; __u32 s_2apbshift; __u32 s_3apbshift; __u32 s_nspfshift; __u32 s_nspb; __u32 s_inopf; __u32 s_sbbase; __u32 s_bpf; __u32 s_bpfshift; __u32 s_bpfmask; __u32 s_maxsymlinklen; }; struct ufs_sb_info { struct ufs_sb_private_info * s_uspi; struct ufs_csum * s_csp[31]; unsigned s_swab; unsigned s_flags; struct buffer_head ** s_ucg; struct ufs_cg_private_info * s_ucpi[8]; unsigned s_cgno[8]; unsigned short s_cg_loaded; unsigned s_mount_opt; }; struct ufs_super_block_first { __u32 fs_link; __u32 fs_rlink; __u32 fs_sblkno; __u32 fs_cblkno; __u32 fs_iblkno; __u32 fs_dblkno; __u32 fs_cgoffset; __u32 fs_cgmask; __u32 fs_time; __u32 fs_size; __u32 fs_dsize; __u32 fs_ncg; __u32 fs_bsize; __u32 fs_fsize; __u32 fs_frag; __u32 fs_minfree; __u32 fs_rotdelay; __u32 fs_rps; __u32 fs_bmask; __u32 fs_fmask; __u32 fs_bshift; __u32 fs_fshift; __u32 fs_maxcontig; __u32 fs_maxbpg; __u32 fs_fragshift; __u32 fs_fsbtodb; __u32 fs_sbsize; __u32 fs_csmask; __u32 fs_csshift; __u32 fs_nindir; __u32 fs_inopb; __u32 fs_nspf; __u32 fs_optim; union { struct { __u32 fs_npsect; } fs_sun; struct { __s32 fs_state; } fs_sunx86; } fs_u1; __u32 fs_interleave; __u32 fs_trackskew; __u32 fs_id[2]; __u32 fs_csaddr; __u32 fs_cssize; __u32 fs_cgsize; __u32 fs_ntrak; __u32 fs_nsect; __u32 fs_spc; __u32 fs_ncyl; __u32 fs_cpg; __u32 fs_ipg; __u32 fs_fpg; struct ufs_csum fs_cstotal; __s8 fs_fmod; __s8 fs_clean; __s8 fs_ronly; __s8 fs_flags; __s8 fs_fsmnt[512 - 212]; }; struct ufs_super_block_second { __s8 fs_fsmnt[212]; __u32 fs_cgrotor; __u32 fs_csp[31]; __u32 fs_maxcluster; __u32 fs_cpc; __u16 fs_opostbl[82]; }; struct ufs_super_block_third { __u16 fs_opostbl[46]; union { struct { __s32 fs_sparecon[53]; __s32 fs_reclaim; __s32 fs_sparecon2[1]; __s32 fs_state; __u32 fs_qbmask[2]; __u32 fs_qfmask[2]; } fs_sun; struct { __s32 fs_sparecon[53]; __s32 fs_reclaim; __s32 fs_sparecon2[1]; __u32 fs_npsect; __u32 fs_qbmask[2]; __u32 fs_qfmask[2]; } fs_sunx86; struct { __s32 fs_sparecon[50]; __s32 fs_contigsumsize; __s32 fs_maxsymlinklen; __s32 fs_inodefmt; __u32 fs_maxfilesize[2]; __u32 fs_qbmask[2]; __u32 fs_qfmask[2]; __s32 fs_state; } fs_44; } fs_u2; __s32 fs_postblformat; __s32 fs_nrpos; __s32 fs_postbloff; __s32 fs_rotbloff; __s32 fs_magic; __u8 fs_space[1]; }; # 669 "/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/efs_fs_sb.h" 1 # 25 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/efs_fs_sb.h" struct efs_super { int32_t fs_size; int32_t fs_firstcg; int32_t fs_cgfsize; short fs_cgisize; short fs_sectors; short fs_heads; short fs_ncg; short fs_dirty; int32_t fs_time; int32_t fs_magic; char fs_fname[6]; char fs_fpack[6]; int32_t fs_bmsize; int32_t fs_tfree; int32_t fs_tinode; int32_t fs_bmblock; int32_t fs_replsb; int32_t fs_lastialloc; char fs_spare[20]; int32_t fs_checksum; }; struct efs_sb_info { int32_t fs_magic; int32_t fs_start; int32_t first_block; int32_t total_blocks; int32_t group_size; int32_t data_free; int32_t inode_free; short inode_blocks; short total_groups; }; # 670 "/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/romfs_fs_sb.h" 1 struct romfs_sb_info { unsigned long s_maxsize; }; # 671 "/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/smb_fs_sb.h" 1 # 14 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/smb_fs_sb.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/types.h" 1 # 15 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/smb_fs_sb.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/smb.h" 1 # 12 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/smb.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/types.h" 1 # 13 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/smb.h" 2 enum smb_protocol { SMB_PROTOCOL_NONE, SMB_PROTOCOL_CORE, SMB_PROTOCOL_COREPLUS, SMB_PROTOCOL_LANMAN1, SMB_PROTOCOL_LANMAN2, SMB_PROTOCOL_NT1 }; enum smb_case_hndl { SMB_CASE_DEFAULT, SMB_CASE_LOWER, SMB_CASE_UPPER }; struct smb_dskattr { __u16 total; __u16 allocblocks; __u16 blocksize; __u16 free; }; struct smb_conn_opt { unsigned int fd; enum smb_protocol protocol; enum smb_case_hndl case_handling; __u32 max_xmit; __u16 server_uid; __u16 tid; __u16 secmode; __u16 maxmux; __u16 maxvcs; __u16 rawmode; __u32 sesskey; __u32 maxraw; __u32 capabilities; __s16 serverzone; }; struct smb_nls_codepage { char local_name[20]; char remote_name[20]; }; # 78 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/smb.h" struct smb_fattr { __u16 attr; unsigned long f_ino; umode_t f_mode; nlink_t f_nlink; uid_t f_uid; gid_t f_gid; kdev_t f_rdev; off_t f_size; time_t f_atime; time_t f_mtime; time_t f_ctime; unsigned long f_blksize; unsigned long f_blocks; }; enum smb_conn_state { CONN_VALID, CONN_INVALID, CONN_RETRIED, CONN_RETRYING }; # 16 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/smb_fs_sb.h" 2 struct smb_sb_info { enum smb_conn_state state; struct file * sock_file; struct smb_mount_data_kernel *mnt; unsigned char *temp_buf; unsigned int generation; pid_t conn_pid; struct smb_conn_opt opt; struct semaphore sem; wait_queue_head_t wait; __u32 packet_size; unsigned char * packet; unsigned short rcls; unsigned short err; void *data_ready; struct nls_table *remote_nls; struct nls_table *local_nls; char *name_buf; int (*convert)(char *, int, const char *, int, struct nls_table *, struct nls_table *); }; static inline void smb_lock_server(struct smb_sb_info *server) { down(&(server->sem)); } static inline void smb_unlock_server(struct smb_sb_info *server) { up(&(server->sem)); } # 672 "/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/hfs_fs_sb.h" 1 # 15 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/hfs_fs_sb.h" struct hfs_name; typedef int (*hfs_namein_fn) (char *, const struct hfs_name *); typedef void (*hfs_nameout_fn) (struct hfs_name *, const char *, int); typedef void (*hfs_ifill_fn) (struct inode *, ino_t, const int); struct hfs_sb_info { int magic; struct hfs_mdb *s_mdb; int s_quiet; int s_lowercase; int s_afpd; int s_version; hfs_namein_fn s_namein; hfs_nameout_fn s_nameout; hfs_ifill_fn s_ifill; const struct hfs_name *s_reserved1; const struct hfs_name *s_reserved2; __u32 s_type; __u32 s_creator; umode_t s_umask; uid_t s_uid; gid_t s_gid; char s_conv; }; # 673 "/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/adfs_fs_sb.h" 1 # 13 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/adfs_fs_sb.h" struct adfs_discmap; struct adfs_dir_ops; struct adfs_sb_info { struct adfs_discmap *s_map; struct adfs_dir_ops *s_dir; uid_t s_uid; gid_t s_gid; umode_t s_owner_mask; umode_t s_other_mask; __u32 s_ids_per_zone; __u32 s_idlen; __u32 s_map_size; unsigned long s_size; signed int s_map2blk; unsigned int s_log2sharesize; unsigned int s_version; unsigned int s_namelen; }; # 674 "/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/qnx4_fs_sb.h" 1 # 14 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/qnx4_fs_sb.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/qnx4_fs.h" 1 # 13 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/qnx4_fs.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/qnxtypes.h" 1 # 14 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/qnx4_fs.h" 2 # 45 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/qnx4_fs.h" struct qnx4_inode_entry { char di_fname[16]; qnx4_off_t di_size; qnx4_xtnt_t di_first_xtnt; __u32 di_xblk; __s32 di_ftime; __s32 di_mtime; __s32 di_atime; __s32 di_ctime; qnx4_nxtnt_t di_num_xtnts; qnx4_mode_t di_mode; qnx4_muid_t di_uid; qnx4_mgid_t di_gid; qnx4_nlink_t di_nlink; __u8 di_zero[4]; qnx4_ftype_t di_type; __u8 di_status; }; struct qnx4_link_info { char dl_fname[48]; __u32 dl_inode_blk; __u8 dl_inode_ndx; __u8 dl_spare[10]; __u8 dl_status; }; struct qnx4_xblk { __u32 xblk_next_xblk; __u32 xblk_prev_xblk; __u8 xblk_num_xtnts; __u8 xblk_spare[3]; __s32 xblk_num_blocks; qnx4_xtnt_t xblk_xtnts[60]; char xblk_signature[8]; qnx4_xtnt_t xblk_first_xtnt; }; struct qnx4_super_block { struct qnx4_inode_entry RootDir; struct qnx4_inode_entry Inode; struct qnx4_inode_entry Boot; struct qnx4_inode_entry AltBoot; }; # 100 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/qnx4_fs.h" extern struct dentry *qnx4_lookup(struct inode *dir, struct dentry *dentry); extern unsigned long qnx4_count_free_blocks(struct super_block *sb); extern unsigned long qnx4_block_map(struct inode *inode, long iblock); extern struct buffer_head *qnx4_getblk(struct inode *, int, int); extern struct buffer_head *qnx4_bread(struct inode *, int, int); extern int qnx4_create(struct inode *dir, struct dentry *dentry, int mode); extern struct inode_operations qnx4_file_inode_operations; extern struct inode_operations qnx4_dir_inode_operations; extern struct file_operations qnx4_file_operations; extern struct file_operations qnx4_dir_operations; extern int qnx4_is_free(struct super_block *sb, long block); extern int qnx4_set_bitmap(struct super_block *sb, long block, int busy); extern int qnx4_create(struct inode *inode, struct dentry *dentry, int mode); extern void qnx4_truncate(struct inode *inode); extern void qnx4_free_inode(struct inode *inode); extern int qnx4_unlink(struct inode *dir, struct dentry *dentry); extern int qnx4_rmdir(struct inode *dir, struct dentry *dentry); extern int qnx4_sync_file(struct file *file, struct dentry *dentry, int); extern int qnx4_sync_inode(struct inode *inode); extern int qnx4_get_block(struct inode *inode, long iblock, struct buffer_head *bh, int create); # 15 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/qnx4_fs_sb.h" 2 struct qnx4_sb_info { struct buffer_head *sb_buf; struct qnx4_super_block *sb; unsigned int Version; struct qnx4_inode_entry *BitMap; }; # 675 "/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/reiserfs_fs_sb.h" 1 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/tqueue.h" 1 # 16 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/tqueue.h" # 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/tqueue.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/list.h" 1 # 18 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/tqueue.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/bitops.h" 1 # 19 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/tqueue.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/tqueue.h" 2 # 38 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/tqueue.h" struct tq_struct { struct list_head list; unsigned long sync; void (*routine)(void *); void *data; }; # 64 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/tqueue.h" typedef struct list_head task_queue; extern task_queue tq_timer, tq_immediate, tq_disk; # 94 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/tqueue.h" extern spinlock_t tqueue_lock; static inline int queue_task(struct tq_struct *bh_pointer, task_queue *bh_list) { int ret = 0; if (!test_and_set_bit(0,&bh_pointer->sync)) { unsigned long flags; do { __asm__ __volatile__("pushfl ; popl %0 ; cli":"=g" (flags): :"memory"); (void)(&tqueue_lock); } while (0); list_add_tail(&bh_pointer->list, bh_list); do { do { } while(0); __asm__ __volatile__("pushl %0 ; popfl": :"g" (flags):"memory", "cc"); } while (0); ret = 1; } return ret; } extern void __run_task_queue(task_queue *list); static inline void run_task_queue(task_queue *list) { if ((!list_empty(&*list))) __run_task_queue(list); } # 9 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/reiserfs_fs_sb.h" 2 # 26 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/reiserfs_fs_sb.h" struct reiserfs_super_block { __u32 s_block_count; __u32 s_free_blocks; __u32 s_root_block; __u32 s_journal_block; __u32 s_journal_dev; # 43 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/reiserfs_fs_sb.h" __u32 s_orig_journal_size; __u32 s_journal_trans_max ; __u32 s_journal_block_count ; __u32 s_journal_max_batch ; __u32 s_journal_max_commit_age ; __u32 s_journal_max_trans_age ; __u16 s_blocksize; __u16 s_oid_maxsize; __u16 s_oid_cursize; __u16 s_state; char s_magic[12]; __u32 s_hash_function_code; __u16 s_tree_height; __u16 s_bmap_nr; __u16 s_version; __u16 s_reserved; __u32 s_inode_generation; char s_unused[124] ; } __attribute__ ((__packed__)); # 121 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/reiserfs_fs_sb.h" struct reiserfs_super_block_v1 { __u32 s_block_count; __u32 s_free_blocks; __u32 s_root_block; __u32 s_journal_block; __u32 s_journal_dev; __u32 s_orig_journal_size; __u32 s_journal_trans_max ; __u32 s_journal_block_count ; __u32 s_journal_max_batch ; __u32 s_journal_max_commit_age ; __u32 s_journal_max_trans_age ; __u16 s_blocksize; __u16 s_oid_maxsize; __u16 s_oid_cursize; __u16 s_state; char s_magic[16]; __u16 s_tree_height; __u16 s_bmap_nr; __u32 s_reserved; } __attribute__ ((__packed__)); # 200 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/reiserfs_fs_sb.h" struct reiserfs_journal_cnode { struct buffer_head *bh ; kdev_t dev ; unsigned long blocknr ; int state ; struct reiserfs_journal_list *jlist ; struct reiserfs_journal_cnode *next ; struct reiserfs_journal_cnode *prev ; struct reiserfs_journal_cnode *hprev ; struct reiserfs_journal_cnode *hnext ; }; struct reiserfs_bitmap_node { int id ; char *data ; struct list_head list ; } ; struct reiserfs_list_bitmap { struct reiserfs_journal_list *journal_list ; struct reiserfs_bitmap_node **bitmaps ; } ; struct reiserfs_transaction_handle { char *t_caller ; int t_blocks_logged ; int t_blocks_allocated ; unsigned long t_trans_id ; struct super_block *t_super ; } ; struct reiserfs_journal_list { unsigned long j_start ; unsigned long j_len ; atomic_t j_nonzerolen ; atomic_t j_commit_left ; atomic_t j_flushing ; atomic_t j_commit_flushing ; atomic_t j_older_commits_done ; unsigned long j_trans_id ; time_t j_timestamp ; struct reiserfs_list_bitmap *j_list_bitmap ; struct buffer_head *j_commit_bh ; struct reiserfs_journal_cnode *j_realblock ; struct reiserfs_journal_cnode *j_freedlist ; wait_queue_head_t j_commit_wait ; wait_queue_head_t j_flush_wait ; } ; struct reiserfs_page_list ; struct reiserfs_journal { struct buffer_head ** j_ap_blocks ; struct reiserfs_journal_cnode *j_last ; struct reiserfs_journal_cnode *j_first ; int j_state ; unsigned long j_trans_id ; unsigned long j_mount_id ; unsigned long j_start ; unsigned long j_len ; unsigned long j_len_alloc ; atomic_t j_wcount ; unsigned long j_bcount ; unsigned long j_first_unflushed_offset ; unsigned long j_last_flush_trans_id ; struct buffer_head *j_header_bh ; struct reiserfs_page_list *j_flush_pages ; time_t j_trans_start_time ; wait_queue_head_t j_wait ; atomic_t j_wlock ; wait_queue_head_t j_join_wait ; atomic_t j_jlock ; int j_journal_list_index ; int j_list_bitmap_index ; int j_must_wait ; int j_next_full_flush ; int j_next_async_flush ; int j_cnode_used ; int j_cnode_free ; struct reiserfs_journal_cnode *j_cnode_free_list ; struct reiserfs_journal_cnode *j_cnode_free_orig ; int j_free_bitmap_nodes ; int j_used_bitmap_nodes ; struct list_head j_bitmap_nodes ; struct inode j_dummy_inode ; struct reiserfs_list_bitmap j_list_bitmap[5] ; struct reiserfs_journal_list j_journal_list[64] ; struct reiserfs_journal_cnode *j_hash_table[8192] ; struct reiserfs_journal_cnode *j_list_hash_table[8192] ; struct list_head j_prealloc_list; }; typedef __u32 (*hashf_t) (const signed char *, int); struct reiserfs_sb_info { struct buffer_head * s_sbh; struct reiserfs_super_block * s_rs; struct buffer_head ** s_ap_bitmap; struct reiserfs_journal *s_journal ; unsigned short s_mount_state; void (*end_io_handler)(struct buffer_head *, int); hashf_t s_hash_function; unsigned long s_mount_opt; wait_queue_head_t s_wait; atomic_t s_generation_counter; int s_kmallocs; int s_disk_reads; int s_disk_writes; int s_fix_nodes; int s_do_balance; int s_unneeded_left_neighbor; int s_good_search_by_key_reada; int s_bmaps; int s_bmaps_without_search; int s_direct2indirect; int s_indirect2direct; }; # 410 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/reiserfs_fs_sb.h" void reiserfs_file_buffer (struct buffer_head * bh, int list); int reiserfs_is_super(struct super_block *s) ; int journal_mark_dirty(struct reiserfs_transaction_handle *, struct super_block *, struct buffer_head *bh) ; int flush_old_commits(struct super_block *s, int) ; int show_reiserfs_locks(void) ; int reiserfs_resize(struct super_block *, unsigned long) ; # 676 "/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/bfs_fs_sb.h" 1 # 12 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/bfs_fs_sb.h" struct bfs_sb_info { unsigned long si_blocks; unsigned long si_freeb; unsigned long si_freei; unsigned long si_lf_ioff; unsigned long si_lf_sblk; unsigned long si_lf_eblk; unsigned long si_lasti; char * si_imap; struct buffer_head * si_sbh; struct bfs_super_block * si_bfs_sb; }; # 677 "/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/udf_fs_sb.h" 1 # 21 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/udf_fs_sb.h" #pragma pack(1) # 30 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/udf_fs_sb.h" struct udf_sparing_data { __u16 s_packet_len; struct buffer_head *s_spar_map[4]; }; struct udf_virtual_data { __u32 s_num_entries; __u16 s_start_offset; }; struct udf_bitmap { __u32 s_extLength; __u32 s_extPosition; __u16 s_nr_groups; struct buffer_head **s_block_bitmap; }; struct udf_part_map { union { struct udf_bitmap *s_bitmap; struct inode *s_table; } s_uspace; union { struct udf_bitmap *s_bitmap; struct inode *s_table; } s_fspace; __u32 s_partition_root; __u32 s_partition_len; __u16 s_partition_type; __u16 s_partition_num; union { struct udf_sparing_data s_sparing; struct udf_virtual_data s_virtual; } s_type_specific; __u32 (*s_partition_func)(struct super_block *, __u32, __u16, __u32); __u16 s_volumeseqnum; __u16 s_partition_flags; }; #pragma pack() struct udf_sb_info { struct udf_part_map *s_partmaps; __u8 s_volident[32]; __u16 s_partitions; __u16 s_partition; __s32 s_session; __u32 s_anchor[4]; __u32 s_lastblock; struct buffer_head *s_lvidbh; mode_t s_umask; gid_t s_gid; uid_t s_uid; time_t s_recordtime; __u16 s_serialnum; __u16 s_udfrev; __u32 s_flags; struct nls_table *s_nls_map; struct inode *s_vat; }; # 678 "/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/ncp_fs_sb.h" 1 # 11 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ncp_fs_sb.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/types.h" 1 # 12 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ncp_fs_sb.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ncp_mount.h" 1 # 11 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ncp_mount.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/types.h" 1 # 12 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ncp_mount.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ncp.h" 1 # 13 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ncp.h" # 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/ncp.h" 2 # 22 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ncp.h" struct ncp_request_header { __u16 type __attribute__((packed)); __u8 sequence __attribute__((packed)); __u8 conn_low __attribute__((packed)); __u8 task __attribute__((packed)); __u8 conn_high __attribute__((packed)); __u8 function __attribute__((packed)); __u8 data[0] __attribute__((packed)); }; struct ncp_reply_header { __u16 type __attribute__((packed)); __u8 sequence __attribute__((packed)); __u8 conn_low __attribute__((packed)); __u8 task __attribute__((packed)); __u8 conn_high __attribute__((packed)); __u8 completion_code __attribute__((packed)); __u8 connection_state __attribute__((packed)); __u8 data[0] __attribute__((packed)); }; struct ncp_volume_info { __u32 total_blocks; __u32 free_blocks; __u32 purgeable_blocks; __u32 not_yet_purgeable_blocks; __u32 total_dir_entries; __u32 available_dir_entries; __u8 sectors_per_block; char volume_name[(16) + 1]; }; # 112 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ncp.h" struct nw_info_struct { __u32 spaceAlloc __attribute__((packed)); __u32 attributes __attribute__((packed)); __u16 flags __attribute__((packed)); __u32 dataStreamSize __attribute__((packed)); __u32 totalStreamSize __attribute__((packed)); __u16 numberOfStreams __attribute__((packed)); __u16 creationTime __attribute__((packed)); __u16 creationDate __attribute__((packed)); __u32 creatorID __attribute__((packed)); __u16 modifyTime __attribute__((packed)); __u16 modifyDate __attribute__((packed)); __u32 modifierID __attribute__((packed)); __u16 lastAccessDate __attribute__((packed)); __u16 archiveTime __attribute__((packed)); __u16 archiveDate __attribute__((packed)); __u32 archiverID __attribute__((packed)); __u16 inheritedRightsMask __attribute__((packed)); __u32 dirEntNum __attribute__((packed)); __u32 DosDirNum __attribute__((packed)); __u32 volNumber __attribute__((packed)); __u32 EADataSize __attribute__((packed)); __u32 EAKeyCount __attribute__((packed)); __u32 EAKeySize __attribute__((packed)); __u32 NSCreator __attribute__((packed)); __u8 nameLen __attribute__((packed)); __u8 entryName[256] __attribute__((packed)); }; # 156 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ncp.h" struct nw_modify_dos_info { __u32 attributes __attribute__((packed)); __u16 creationDate __attribute__((packed)); __u16 creationTime __attribute__((packed)); __u32 creatorID __attribute__((packed)); __u16 modifyDate __attribute__((packed)); __u16 modifyTime __attribute__((packed)); __u32 modifierID __attribute__((packed)); __u16 archiveDate __attribute__((packed)); __u16 archiveTime __attribute__((packed)); __u32 archiverID __attribute__((packed)); __u16 lastAccessDate __attribute__((packed)); __u16 inheritanceGrantMask __attribute__((packed)); __u16 inheritanceRevokeMask __attribute__((packed)); __u32 maximumSpace __attribute__((packed)); }; struct nw_search_sequence { __u8 volNumber __attribute__((packed)); __u32 dirBase __attribute__((packed)); __u32 sequence __attribute__((packed)); }; # 13 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ncp_mount.h" 2 # 25 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ncp_mount.h" struct ncp_mount_data { int version; unsigned int ncp_fd; __kernel_uid_t mounted_uid; __kernel_pid_t wdog_pid; unsigned char mounted_vol[(16) + 1]; unsigned int time_out; unsigned int retry_count; unsigned int flags; __kernel_uid_t uid; __kernel_gid_t gid; __kernel_mode_t file_mode; __kernel_mode_t dir_mode; }; struct ncp_mount_data_v4 { int version; unsigned long flags; unsigned long mounted_uid; long wdog_pid; unsigned int ncp_fd; unsigned int time_out; unsigned int retry_count; unsigned long uid; unsigned long gid; unsigned long file_mode; unsigned long dir_mode; }; struct ncp_mount_data_kernel { unsigned long flags; unsigned int int_flags; __kernel_uid32_t mounted_uid; __kernel_pid_t wdog_pid; unsigned int ncp_fd; unsigned int time_out; unsigned int retry_count; unsigned char mounted_vol[(16) + 1]; __kernel_uid32_t uid; __kernel_gid32_t gid; __kernel_mode_t file_mode; __kernel_mode_t dir_mode; }; # 13 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ncp_fs_sb.h" 2 struct ncp_server { struct ncp_mount_data_kernel m; __u8 name_space[(64) + 2]; struct file *ncp_filp; u8 sequence; u8 task; u16 connection; u8 completion; u8 conn_status; int buffer_size; int reply_size; int packet_size; unsigned char *packet; int lock; struct semaphore sem; int current_size; int has_subfunction; int ncp_reply_size; int root_setuped; int sign_wanted; int sign_active; char sign_root[8]; char sign_last[16]; struct { int auth_type; size_t object_name_len; void* object_name; int object_type; } auth; struct { size_t len; void* data; } priv; struct nls_table *nls_vol; struct nls_table *nls_io; int dentry_ttl; unsigned int flags; }; # 92 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ncp_fs_sb.h" static inline int ncp_conn_valid(struct ncp_server *server) { return ((server->conn_status & 0x11) == 0); } static inline void ncp_invalidate_conn(struct ncp_server *server) { server->conn_status |= 0x01; } # 679 "/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/usbdev_fs_sb.h" 1 struct usbdev_sb_info { struct list_head slist; struct list_head ilist; uid_t devuid; gid_t devgid; umode_t devmode; uid_t busuid; gid_t busgid; umode_t busmode; uid_t listuid; gid_t listgid; umode_t listmode; }; # 680 "/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/cramfs_fs_sb.h" 1 # 681 "/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/jffs2_fs_sb.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/linux/jffs2_fs_sb.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/spinlock.h" 1 # 8 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/jffs2_fs_sb.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/completion.h" 1 # 11 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/completion.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/wait.h" 1 # 12 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/completion.h" 2 struct completion { unsigned int done; wait_queue_head_t wait; }; static inline void init_completion(struct completion *x) { x->done = 0; init_waitqueue_head(&x->wait); } extern void wait_for_completion(struct completion *) __attribute__((regparm(3))); extern void complete(struct completion *) __attribute__((regparm(3))); # 9 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/jffs2_fs_sb.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/semaphore.h" 1 # 10 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/jffs2_fs_sb.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/list.h" 1 # 11 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/jffs2_fs_sb.h" 2 # 20 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/jffs2_fs_sb.h" struct jffs2_sb_info { struct mtd_info *mtd; __u32 highest_ino; unsigned int flags; spinlock_t nodelist_lock; struct task_struct *gc_task; struct semaphore gc_thread_start; struct completion gc_thread_exit; struct semaphore alloc_sem; __u32 flash_size; __u32 used_size; __u32 dirty_size; __u32 free_size; __u32 erasing_size; __u32 bad_size; __u32 sector_size; __u32 nr_free_blocks; __u32 nr_erasing_blocks; __u32 nr_blocks; struct jffs2_eraseblock *blocks; struct jffs2_eraseblock *nextblock; struct jffs2_eraseblock *gcblock; struct list_head clean_list; struct list_head dirty_list; struct list_head erasing_list; struct list_head erase_pending_list; struct list_head erase_complete_list; struct list_head free_list; struct list_head bad_list; struct list_head bad_used_list; spinlock_t erase_completion_lock; wait_queue_head_t erase_wait; struct jffs2_inode_cache *inocache_list[1]; spinlock_t inocache_lock; }; # 682 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 2 extern struct list_head super_blocks; extern spinlock_t sb_lock; struct super_block { struct list_head s_list; kdev_t s_dev; unsigned long s_blocksize; unsigned char s_blocksize_bits; unsigned char s_dirt; unsigned long long s_maxbytes; struct file_system_type *s_type; struct super_operations *s_op; struct dquot_operations *dq_op; unsigned long s_flags; unsigned long s_magic; struct dentry *s_root; struct rw_semaphore s_umount; struct semaphore s_lock; int s_count; atomic_t s_active; struct list_head s_dirty; struct list_head s_locked_inodes; struct list_head s_files; struct block_device *s_bdev; struct list_head s_instances; struct quota_mount_options s_dquot; union { struct minix_sb_info minix_sb; struct ext2_sb_info ext2_sb; struct hpfs_sb_info hpfs_sb; struct ntfs_sb_info ntfs_sb; struct msdos_sb_info msdos_sb; struct isofs_sb_info isofs_sb; struct nfs_sb_info nfs_sb; struct sysv_sb_info sysv_sb; struct affs_sb_info affs_sb; struct ufs_sb_info ufs_sb; struct efs_sb_info efs_sb; struct shmem_sb_info shmem_sb; struct romfs_sb_info romfs_sb; struct smb_sb_info smbfs_sb; struct hfs_sb_info hfs_sb; struct adfs_sb_info adfs_sb; struct qnx4_sb_info qnx4_sb; struct reiserfs_sb_info reiserfs_sb; struct bfs_sb_info bfs_sb; struct udf_sb_info udf_sb; struct ncp_server ncpfs_sb; struct usbdev_sb_info usbdevfs_sb; struct jffs2_sb_info jffs2_sb; struct cramfs_sb_info cramfs_sb; void *generic_sbp; } u; struct semaphore s_vfs_rename_sem; # 754 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" struct semaphore s_nfsd_free_path_sem; }; extern int vfs_create(struct inode *, struct dentry *, int); extern int vfs_mkdir(struct inode *, struct dentry *, int); extern int vfs_mknod(struct inode *, struct dentry *, int, dev_t); extern int vfs_symlink(struct inode *, struct dentry *, const char *); extern int vfs_link(struct dentry *, struct inode *, struct dentry *); extern int vfs_rmdir(struct inode *, struct dentry *); extern int vfs_unlink(struct inode *, struct dentry *); extern int vfs_rename(struct inode *, struct dentry *, struct inode *, struct dentry *); # 788 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" typedef int (*filldir_t)(void *, const char *, int, loff_t, ino_t, unsigned); struct block_device_operations { int (*open) (struct inode *, struct file *); int (*release) (struct inode *, struct file *); int (*ioctl) (struct inode *, struct file *, unsigned, unsigned long); int (*check_media_change) (kdev_t); int (*revalidate) (kdev_t); }; struct file_operations { struct module *owner; loff_t (*llseek) (struct file *, loff_t, int); ssize_t (*read) (struct file *, char *, size_t, loff_t *); ssize_t (*write) (struct file *, const char *, size_t, loff_t *); int (*readdir) (struct file *, void *, filldir_t); unsigned int (*poll) (struct file *, struct poll_table_struct *); int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long); int (*mmap) (struct file *, struct vm_area_struct *); int (*open) (struct inode *, struct file *); int (*flush) (struct file *); int (*release) (struct inode *, struct file *); int (*fsync) (struct file *, struct dentry *, int datasync); int (*fasync) (int, struct file *, int); int (*lock) (struct file *, int, struct file_lock *); ssize_t (*readv) (struct file *, const struct iovec *, unsigned long, loff_t *); ssize_t (*writev) (struct file *, const struct iovec *, unsigned long, loff_t *); ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int); unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); }; struct inode_operations { int (*create) (struct inode *,struct dentry *,int); struct dentry * (*lookup) (struct inode *,struct dentry *); int (*link) (struct dentry *,struct inode *,struct dentry *); int (*unlink) (struct inode *,struct dentry *); int (*symlink) (struct inode *,struct dentry *,const char *); int (*mkdir) (struct inode *,struct dentry *,int); int (*rmdir) (struct inode *,struct dentry *); int (*mknod) (struct inode *,struct dentry *,int,int); int (*rename) (struct inode *, struct dentry *, struct inode *, struct dentry *); int (*readlink) (struct dentry *, char *,int); int (*follow_link) (struct dentry *, struct nameidata *); void (*truncate) (struct inode *); int (*permission) (struct inode *, int); int (*revalidate) (struct dentry *); int (*setattr) (struct dentry *, struct iattr *); int (*getattr) (struct dentry *, struct iattr *); }; struct super_operations { void (*read_inode) (struct inode *); void (*read_inode2) (struct inode *, void *) ; void (*dirty_inode) (struct inode *); void (*write_inode) (struct inode *, int); void (*put_inode) (struct inode *); void (*delete_inode) (struct inode *); void (*put_super) (struct super_block *); void (*write_super) (struct super_block *); void (*write_super_lockfs) (struct super_block *); void (*unlockfs) (struct super_block *); int (*statfs) (struct super_block *, struct statfs *); int (*remount_fs) (struct super_block *, int *, char *); void (*clear_inode) (struct inode *); void (*umount_begin) (struct super_block *); # 893 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" struct dentry * (*fh_to_dentry)(struct super_block *sb, __u32 *fh, int len, int fhtype, int parent); int (*dentry_to_fh)(struct dentry *, __u32 *fh, int *lenp, int need_parent); }; # 907 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" extern void __mark_inode_dirty(struct inode *, int); static inline void mark_inode_dirty(struct inode *inode) { __mark_inode_dirty(inode, (1 | 2 | 4)); } static inline void mark_inode_dirty_sync(struct inode *inode) { __mark_inode_dirty(inode, 1); } static inline void mark_inode_dirty_pages(struct inode *inode) { __mark_inode_dirty(inode, 4); } struct dquot_operations { void (*initialize) (struct inode *, short); void (*drop) (struct inode *); int (*alloc_block) (struct inode *, unsigned long, char); int (*alloc_inode) (const struct inode *, unsigned long); void (*free_block) (struct inode *, unsigned long); void (*free_inode) (const struct inode *, unsigned long); int (*transfer) (struct inode *, struct iattr *); }; struct file_system_type { const char *name; int fs_flags; struct super_block *(*read_super) (struct super_block *, void *, int); struct module *owner; struct file_system_type * next; struct list_head fs_supers; }; # 965 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" extern int register_filesystem(struct file_system_type *); extern int unregister_filesystem(struct file_system_type *); extern struct vfsmount *kern_mount(struct file_system_type *); extern int may_umount(struct vfsmount *); extern long do_mount(char *, char *, char *, unsigned long, void *); extern int vfs_statfs(struct super_block *, struct statfs *); # 983 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" extern int locks_mandatory_locked(struct inode *); extern int locks_mandatory_area(int, struct inode *, struct file *, loff_t, size_t); # 993 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" static inline int locks_verify_locked(struct inode *inode) { if ((((inode)->i_sb->s_flags & (64)) && ((inode)->i_mode & (0002000 | 00010)) == 0002000)) return locks_mandatory_locked(inode); return 0; } static inline int locks_verify_area(int read_write, struct inode *inode, struct file *filp, loff_t offset, size_t count) { if (inode->i_flock && (((inode)->i_sb->s_flags & (64)) && ((inode)->i_mode & (0002000 | 00010)) == 0002000)) return locks_mandatory_area(read_write, inode, filp, offset, count); return 0; } static inline int locks_verify_truncate(struct inode *inode, struct file *filp, loff_t size) { if (inode->i_flock && (((inode)->i_sb->s_flags & (64)) && ((inode)->i_mode & (0002000 | 00010)) == 0002000)) return locks_mandatory_area( 2, inode, filp, size < inode->i_size ? size : inode->i_size, (size < inode->i_size ? inode->i_size - size : size - inode->i_size) ); return 0; } static inline int get_lease(struct inode *inode, unsigned int mode) { if (inode->i_flock && (inode->i_flock->fl_flags & 32)) return __get_lease(inode, mode); return 0; } __attribute__((regparm(0))) long sys_open(const char *, int, int); __attribute__((regparm(0))) long sys_close(unsigned int); extern int do_truncate(struct dentry *, loff_t start); extern struct file *filp_open(const char *, int, int); extern struct file * dentry_open(struct dentry *, struct vfsmount *, int); extern int filp_close(struct file *, fl_owner_t id); extern char * getname(const char *); extern void vfs_caches_init(unsigned long); enum {BDEV_FILE, BDEV_SWAP, BDEV_FS, BDEV_RAW}; extern int register_blkdev(unsigned int, const char *, struct block_device_operations *); extern int unregister_blkdev(unsigned int, const char *); extern struct block_device *bdget(dev_t); extern int bd_acquire(struct inode *inode); extern void bd_forget(struct inode *inode); extern void bdput(struct block_device *); extern struct char_device *cdget(dev_t); extern void cdput(struct char_device *); extern int blkdev_open(struct inode *, struct file *); extern int blkdev_close(struct inode *, struct file *); extern struct file_operations def_blk_fops; extern struct address_space_operations def_blk_aops; extern struct file_operations def_fifo_fops; extern int ioctl_by_bdev(struct block_device *, unsigned, unsigned long); extern int blkdev_get(struct block_device *, mode_t, unsigned, int); extern int blkdev_put(struct block_device *, int); extern const struct block_device_operations *get_blkfops(unsigned int); extern int register_chrdev(unsigned int, const char *, struct file_operations *); extern int unregister_chrdev(unsigned int, const char *); extern int chrdev_open(struct inode *, struct file *); extern const char * bdevname(kdev_t); extern const char * cdevname(kdev_t); extern const char * kdevname(kdev_t); extern void init_special_inode(struct inode *, umode_t, int); extern void make_bad_inode(struct inode *); extern int is_bad_inode(struct inode *); extern struct file_operations read_fifo_fops; extern struct file_operations write_fifo_fops; extern struct file_operations rdwr_fifo_fops; extern struct file_operations read_pipe_fops; extern struct file_operations write_pipe_fops; extern struct file_operations rdwr_pipe_fops; extern int fs_may_remount_ro(struct super_block *); extern int try_to_free_buffers(struct page *, unsigned int); extern void refile_buffer(struct buffer_head * buf); extern void end_buffer_io_sync(struct buffer_head *bh, int uptodate); extern void set_buffer_async_io(struct buffer_head *bh) ; static inline void get_bh(struct buffer_head * bh) { atomic_inc(&(bh)->b_count); } static inline void put_bh(struct buffer_head *bh) { __asm__ __volatile__("": : :"memory"); atomic_dec(&bh->b_count); } static inline void mark_buffer_uptodate(struct buffer_head * bh, int on) { if (on) set_bit(BH_Uptodate, &bh->b_state); else clear_bit(BH_Uptodate, &bh->b_state); } static inline void __mark_buffer_clean(struct buffer_head *bh) { refile_buffer(bh); } static inline void mark_buffer_clean(struct buffer_head * bh) { if (test_and_clear_bit(BH_Dirty, &(bh)->b_state)) __mark_buffer_clean(bh); } extern void __mark_dirty(struct buffer_head *bh) __attribute__((regparm(3))); extern void __mark_buffer_dirty(struct buffer_head *bh) __attribute__((regparm(3))); extern void mark_buffer_dirty(struct buffer_head *bh) __attribute__((regparm(3))); extern void buffer_insert_inode_data_queue(struct buffer_head *, struct inode *) __attribute__((regparm(3))); static inline void mark_buffer_async(struct buffer_head * bh, int on) { if (on) set_bit(BH_Async, &bh->b_state); else clear_bit(BH_Async, &bh->b_state); } static inline void buffer_IO_error(struct buffer_head * bh) { mark_buffer_clean(bh); bh->b_end_io(bh, 0); } extern void buffer_insert_inode_queue(struct buffer_head *, struct inode *); static inline void mark_buffer_dirty_inode(struct buffer_head *bh, struct inode *inode) { mark_buffer_dirty(bh); buffer_insert_inode_queue(bh, inode); } extern void balance_dirty(void); extern int check_disk_change(kdev_t); extern int invalidate_inodes(struct super_block *); extern int invalidate_device(kdev_t, int); extern void invalidate_inode_pages(struct inode *); extern void invalidate_inode_pages2(struct address_space *); extern void invalidate_inode_buffers(struct inode *); extern void invalidate_bdev(struct block_device *, int); extern void __invalidate_buffers(kdev_t dev, int); extern void sync_inodes(kdev_t); extern void sync_unlocked_inodes(void); extern void write_inode_now(struct inode *, int); extern int sync_buffers(kdev_t, int); extern void sync_dev(kdev_t); extern int fsync_dev(kdev_t); extern int fsync_super(struct super_block *); extern int fsync_no_super(kdev_t); extern void sync_inodes_sb(struct super_block *); extern int osync_inode_buffers(struct inode *); extern int osync_inode_data_buffers(struct inode *); extern int fsync_inode_buffers(struct inode *); extern int fsync_inode_data_buffers(struct inode *); extern int inode_has_buffers(struct inode *); extern void filemap_fdatasync(struct address_space *); extern void filemap_fdatawait(struct address_space *); extern void sync_supers(kdev_t); extern int bmap(struct inode *, int); extern int notify_change(struct dentry *, struct iattr *); extern int permission(struct inode *, int); extern int vfs_permission(struct inode *, int); extern int get_write_access(struct inode *); extern int deny_write_access(struct file *); static inline void put_write_access(struct inode * inode) { atomic_dec(&inode->i_writecount); } static inline void allow_write_access(struct file *file) { if (file) atomic_inc(&file->f_dentry->d_inode->i_writecount); } extern int do_pipe(int *); extern int open_namei(const char *, int, int, struct nameidata *); extern int kernel_read(struct file *, unsigned long, char *, unsigned long); extern struct file * open_exec(const char *); extern int is_subdir(struct dentry *, struct dentry *); extern ino_t find_inode_number(struct dentry *, struct qstr *); # 1234 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" static inline void *ERR_PTR(long error) { return (void *) error; } static inline long PTR_ERR(const void *ptr) { return (long) ptr; } static inline long IS_ERR(const void *ptr) { return (unsigned long)ptr > (unsigned long)-1000L; } # 1265 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" enum {LAST_NORM, LAST_ROOT, LAST_DOT, LAST_DOTDOT, LAST_BIND}; # 1276 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" typedef struct { size_t written; size_t count; char * buf; int error; } read_descriptor_t; typedef int (*read_actor_t)(read_descriptor_t *, struct page *, unsigned long, unsigned long); extern loff_t default_llseek(struct file *file, loff_t offset, int origin); extern int __user_walk(const char *, unsigned, struct nameidata *) __attribute__((regparm(3))); extern int path_init(const char *, unsigned, struct nameidata *) __attribute__((regparm(3))); extern int path_walk(const char *, struct nameidata *) __attribute__((regparm(3))); extern int link_path_walk(const char *, struct nameidata *) __attribute__((regparm(3))); extern void path_release(struct nameidata *); extern int follow_down(struct vfsmount **, struct dentry **); extern int follow_up(struct vfsmount **, struct dentry **); extern struct dentry * lookup_one_len(const char *, struct dentry *, int); extern struct dentry * lookup_hash(struct qstr *, struct dentry *); extern void iput(struct inode *); extern void force_delete(struct inode *); extern struct inode * igrab(struct inode *); extern ino_t iunique(struct super_block *, ino_t); typedef int (*find_inode_t)(struct inode *, unsigned long, void *); extern struct inode * iget4(struct super_block *, unsigned long, find_inode_t, void *); static inline struct inode *iget(struct super_block *sb, unsigned long ino) { return iget4(sb, ino, ((void *)0), ((void *)0)); } extern void clear_inode(struct inode *); extern struct inode * get_empty_inode(void); static inline struct inode * new_inode(struct super_block *sb) { struct inode *inode = get_empty_inode(); if (inode) { inode->i_sb = sb; inode->i_dev = sb->s_dev; inode->i_blkbits = sb->s_blocksize_bits; } return inode; } extern void remove_suid(struct inode *inode); extern void insert_inode_hash(struct inode *); extern void remove_inode_hash(struct inode *); extern struct file * get_empty_filp(void); extern void file_move(struct file *f, struct list_head *list); extern struct buffer_head * get_hash_table(kdev_t, int, int); extern struct buffer_head * getblk(kdev_t, int, int); extern void ll_rw_block(int, int, struct buffer_head * bh[]); extern void submit_bh(int, struct buffer_head *); extern int is_read_only(kdev_t); extern void __brelse(struct buffer_head *); static inline void brelse(struct buffer_head *buf) { if (buf) __brelse(buf); } extern void __bforget(struct buffer_head *); static inline void bforget(struct buffer_head *buf) { if (buf) __bforget(buf); } extern int set_blocksize(kdev_t, int); extern struct buffer_head * bread(kdev_t, int, int); extern void wakeup_bdflush(void); extern int brw_page(int, struct page *, kdev_t, int [], int); typedef int (get_block_t)(struct inode*,long,struct buffer_head*,int); extern int discard_bh_page(struct page *, unsigned long, int); extern int block_symlink(struct inode *, const char *, int); extern int block_write_full_page(struct page*, get_block_t*); extern int block_read_full_page(struct page*, get_block_t*); extern int block_prepare_write(struct page*, unsigned, unsigned, get_block_t*); extern int cont_prepare_write(struct page*, unsigned, unsigned, get_block_t*, unsigned long *); extern int block_commit_write(struct page *page, unsigned from, unsigned to); extern int block_sync_page(struct page *); int generic_block_bmap(struct address_space *, long, get_block_t *); int generic_commit_write(struct file *, struct page *, unsigned, unsigned); int block_truncate_page(struct address_space *, loff_t, get_block_t *); extern void create_empty_buffers(struct page *, kdev_t, unsigned long); extern int waitfor_one_page(struct page*); extern int generic_file_mmap(struct file *, struct vm_area_struct *); extern int file_read_actor(read_descriptor_t * desc, struct page *page, unsigned long offset, unsigned long size); extern ssize_t generic_file_read(struct file *, char *, size_t, loff_t *); extern ssize_t generic_file_write(struct file *, const char *, size_t, loff_t *); extern void do_generic_file_read(struct file *, loff_t *, read_descriptor_t *, read_actor_t); extern loff_t no_llseek(struct file *file, loff_t offset, int origin); extern loff_t generic_file_llseek(struct file *file, loff_t offset, int origin); extern ssize_t generic_read_dir(struct file *, char *, size_t, loff_t *); extern int generic_file_open(struct inode * inode, struct file * filp); extern struct file_operations generic_ro_fops; extern int vfs_readlink(struct dentry *, char *, int, const char *); extern int vfs_follow_link(struct nameidata *, const char *); extern int page_readlink(struct dentry *, char *, int); extern int page_follow_link(struct dentry *, struct nameidata *); extern struct inode_operations page_symlink_inode_operations; extern int vfs_readdir(struct file *, filldir_t, void *); extern int dcache_readdir(struct file *, void *, filldir_t); extern struct file_system_type *get_fs_type(const char *name); extern struct super_block *get_super(kdev_t); extern void drop_super(struct super_block *sb); static inline int is_mounted(kdev_t dev) { struct super_block *sb = get_super(dev); if (sb) { drop_super(sb); return 1; } return 0; } unsigned long generate_cluster(kdev_t, int b[], int); unsigned long generate_cluster_swab32(kdev_t, int b[], int); extern kdev_t ROOT_DEV; extern char root_device_name[]; extern void show_buffers(void); extern void mount_root(void); extern ssize_t char_read(struct file *, char *, size_t, loff_t *); extern ssize_t block_read(struct file *, char *, size_t, loff_t *); extern int read_ahead[]; extern ssize_t char_write(struct file *, const char *, size_t, loff_t *); extern ssize_t block_write(struct file *, const char *, size_t, loff_t *); extern int file_fsync(struct file *, struct dentry *, int); extern int generic_buffer_fdatasync(struct inode *inode, unsigned long start_idx, unsigned long end_idx); extern int generic_osync_inode(struct inode *, int); extern int inode_change_ok(struct inode *, struct iattr *); extern int inode_setattr(struct inode *, struct iattr *); # 1458 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" static inline struct dentry *lock_parent(struct dentry *dentry) { struct dentry *dir = dget(dentry->d_parent); down(&dir->d_inode->i_sem); return dir; } static inline struct dentry *get_parent(struct dentry *dentry) { return dget(dentry->d_parent); } static inline void unlock_dir(struct dentry *dir) { up(&dir->d_inode->i_sem); dput(dir); } static inline void double_down(struct semaphore *s1, struct semaphore *s2) { if (s1 != s2) { if ((unsigned long) s1 < (unsigned long) s2) { struct semaphore *tmp = s2; s2 = s1; s1 = tmp; } down(s1); } down(s2); } # 1502 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" static inline void triple_down(struct semaphore *s1, struct semaphore *s2, struct semaphore *s3) { if (s1 != s2) { if ((unsigned long) s1 < (unsigned long) s2) { if ((unsigned long) s1 < (unsigned long) s3) { struct semaphore *tmp = s3; s3 = s1; s1 = tmp; } if ((unsigned long) s1 < (unsigned long) s2) { struct semaphore *tmp = s2; s2 = s1; s1 = tmp; } } else { if ((unsigned long) s1 < (unsigned long) s3) { struct semaphore *tmp = s3; s3 = s1; s1 = tmp; } if ((unsigned long) s2 < (unsigned long) s3) { struct semaphore *tmp = s3; s3 = s2; s2 = tmp; } } down(s1); } else if ((unsigned long) s2 < (unsigned long) s3) { struct semaphore *tmp = s3; s3 = s2; s2 = tmp; } down(s2); down(s3); } static inline void double_up(struct semaphore *s1, struct semaphore *s2) { up(s1); if (s1 != s2) up(s2); } static inline void triple_up(struct semaphore *s1, struct semaphore *s2, struct semaphore *s3) { up(s1); if (s1 != s2) up(s2); up(s3); } static inline void double_lock(struct dentry *d1, struct dentry *d2) { double_down(&d1->d_inode->i_sem, &d2->d_inode->i_sem); } static inline void double_unlock(struct dentry *d1, struct dentry *d2) { double_up(&d1->d_inode->i_sem,&d2->d_inode->i_sem); dput(d1); dput(d2); } # 18 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/capability.h" 2 # 32 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/capability.h" typedef struct __user_cap_header_struct { __u32 version; int pid; } *cap_user_header_t; typedef struct __user_cap_data_struct { __u32 effective; __u32 permitted; __u32 inheritable; } *cap_user_data_t; # 55 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/capability.h" typedef __u32 kernel_cap_t; # 284 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/capability.h" extern kernel_cap_t cap_bset; # 312 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/capability.h" static inline kernel_cap_t cap_combine(kernel_cap_t a, kernel_cap_t b) { kernel_cap_t dest; (dest) = (a) | (b); return dest; } static inline kernel_cap_t cap_intersect(kernel_cap_t a, kernel_cap_t b) { kernel_cap_t dest; (dest) = (a) & (b); return dest; } static inline kernel_cap_t cap_drop(kernel_cap_t a, kernel_cap_t drop) { kernel_cap_t dest; (dest) = (a) & ~(drop); return dest; } static inline kernel_cap_t cap_invert(kernel_cap_t c) { kernel_cap_t dest; (dest) = ~(c); return dest; } # 6 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/binfmts.h" 2 # 22 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/binfmts.h" struct linux_binprm{ char buf[128]; struct page *page[32]; unsigned long p; int sh_bang; struct file * file; int e_uid, e_gid; kernel_cap_t cap_inheritable, cap_permitted, cap_effective; int argc, envc; char * filename; unsigned long loader, exec; }; struct linux_binfmt { struct linux_binfmt * next; struct module *module; int (*load_binary)(struct linux_binprm *, struct pt_regs * regs); int (*load_shlib)(struct file *); int (*core_dump)(long signr, struct pt_regs * regs, struct file * file); unsigned long min_coredump; }; extern int register_binfmt(struct linux_binfmt *); extern int unregister_binfmt(struct linux_binfmt *); extern int prepare_binprm(struct linux_binprm *); extern void remove_arg_zero(struct linux_binprm *); extern int search_binary_handler(struct linux_binprm *,struct pt_regs *); extern int flush_old_exec(struct linux_binprm * bprm); extern int setup_arg_pages(struct linux_binprm * bprm); extern int copy_strings(int argc,char ** argv,struct linux_binprm *bprm); extern int copy_strings_kernel(int argc,char ** argv,struct linux_binprm *bprm); extern void compute_creds(struct linux_binprm *binprm); extern int do_coredump(long signr, struct pt_regs * regs); extern void set_binfmt(struct linux_binfmt *new); # 10 "/usr/src/linux-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/threads.h" 1 # 11 "/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/kernel.h" 1 # 12 "/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/types.h" 1 # 13 "/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/times.h" 1 struct tms { clock_t tms_utime; clock_t tms_stime; clock_t tms_cutime; clock_t tms_cstime; }; # 14 "/usr/src/linux-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/timex.h" 1 # 54 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/timex.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/param.h" 1 # 55 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/timex.h" 2 # 152 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/timex.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/timex.h" 1 # 9 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/timex.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/asm/timex.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/msr.h" 1 # 11 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/timex.h" 2 # 32 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/timex.h" typedef unsigned long long cycles_t; extern cycles_t cacheflush_time; static inline cycles_t get_cycles (void) { unsigned long long ret; __asm__ __volatile__("rdtsc" : "=A" (ret)); return ret; } extern unsigned long cpu_khz; # 153 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/timex.h" 2 # 161 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/timex.h" struct timex { unsigned int modes; long offset; long freq; long maxerror; long esterror; int status; long constant; long precision; long tolerance; struct timeval time; long tick; long ppsfreq; long jitter; int shift; long stabil; long jitcnt; long calcnt; long errcnt; long stbcnt; int :32; int :32; int :32; int :32; int :32; int :32; int :32; int :32; int :32; int :32; int :32; int :32; }; # 253 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/timex.h" extern long tick; extern int tickadj; extern int time_state; extern int time_status; extern long time_offset; extern long time_constant; extern long time_tolerance; extern long time_precision; extern long time_maxerror; extern long time_esterror; extern long time_phase; extern long time_freq; extern long time_adj; extern long time_reftime; extern long time_adjust; extern long pps_offset; extern long pps_jitter; extern long pps_freq; extern long pps_stabil; extern long pps_valid; extern int pps_shift; extern long pps_jitcnt; extern long pps_calcnt; extern long pps_errcnt; extern long pps_stbcnt; # 15 "/usr/src/linux-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/rbtree.h" 1 # 97 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rbtree.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/kernel.h" 1 # 98 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rbtree.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/stddef.h" 1 # 99 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rbtree.h" 2 typedef struct rb_node_s { struct rb_node_s * rb_parent; int rb_color; struct rb_node_s * rb_right; struct rb_node_s * rb_left; } rb_node_t; typedef struct rb_root_s { struct rb_node_s * rb_node; } rb_root_t; extern void rb_insert_color(rb_node_t *, rb_root_t *); extern void rb_erase(rb_node_t *, rb_root_t *); static inline void rb_link_node(rb_node_t * node, rb_node_t * parent, rb_node_t ** rb_link) { node->rb_parent = parent; node->rb_color = 0; node->rb_left = node->rb_right = ((void *)0); *rb_link = node; } # 16 "/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/asm/system.h" 1 # 18 "/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/asm/semaphore.h" 1 # 19 "/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/asm/page.h" 1 # 20 "/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/asm/ptrace.h" 1 # 21 "/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/asm/mmu.h" 1 typedef struct { void *segments; unsigned long cpuvalid; } mm_context_t; # 22 "/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/smp.h" 1 # 9 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/smp.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/smp.h" 2 # 24 "/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/tty.h" 1 # 19 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/tty.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/config.h" 1 # 20 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/tty.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 1 # 21 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/tty.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/major.h" 1 # 177 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/major.h" static __inline__ int scsi_blk_major(int m) { return (((m) == 8 || ((m) >= 65 && (m) <= 71)) || (m) == 11); } # 190 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/major.h" static __inline__ int ide_blk_major(int m) { return ((m) == 3 || (m) == 22 || (m) == 33 || (m) == 34 || (m) == 56 || (m) == 57 || (m) == 88 || (m) == 89 || (m) == 90 || (m) == 91); } # 22 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/tty.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/termios.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/termios.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/termios.h" 1 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/termbits.h" 1 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/posix_types.h" 1 # 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/termbits.h" 2 typedef unsigned char cc_t; typedef unsigned int speed_t; typedef unsigned int tcflag_t; struct termios { tcflag_t c_iflag; tcflag_t c_oflag; tcflag_t c_cflag; tcflag_t c_lflag; cc_t c_line; cc_t c_cc[19]; }; # 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/termios.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/ioctls.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/asm/ioctls.h" 2 # 6 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/termios.h" 2 struct winsize { unsigned short ws_row; unsigned short ws_col; unsigned short ws_xpixel; unsigned short ws_ypixel; }; struct termio { unsigned short c_iflag; unsigned short c_oflag; unsigned short c_cflag; unsigned short c_lflag; unsigned char c_line; unsigned char c_cc[8]; }; # 6 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/termios.h" 2 # 23 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/tty.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/tqueue.h" 1 # 24 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/tty.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/tty_driver.h" 1 # 118 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/tty_driver.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 1 # 119 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/tty_driver.h" 2 struct tty_driver { int magic; const char *driver_name; const char *name; int name_base; short major; short minor_start; short num; short type; short subtype; struct termios init_termios; int flags; int *refcount; struct proc_dir_entry *proc_entry; struct tty_driver *other; struct tty_struct **table; struct termios **termios; struct termios **termios_locked; void *driver_state; int (*open)(struct tty_struct * tty, struct file * filp); void (*close)(struct tty_struct * tty, struct file * filp); int (*write)(struct tty_struct * tty, int from_user, const unsigned char *buf, int count); void (*put_char)(struct tty_struct *tty, unsigned char ch); void (*flush_chars)(struct tty_struct *tty); int (*write_room)(struct tty_struct *tty); int (*chars_in_buffer)(struct tty_struct *tty); int (*ioctl)(struct tty_struct *tty, struct file * file, unsigned int cmd, unsigned long arg); void (*set_termios)(struct tty_struct *tty, struct termios * old); void (*throttle)(struct tty_struct * tty); void (*unthrottle)(struct tty_struct * tty); void (*stop)(struct tty_struct *tty); void (*start)(struct tty_struct *tty); void (*hangup)(struct tty_struct *tty); void (*break_ctl)(struct tty_struct *tty, int state); void (*flush_buffer)(struct tty_struct *tty); void (*set_ldisc)(struct tty_struct *tty); void (*wait_until_sent)(struct tty_struct *tty, int timeout); void (*send_xchar)(struct tty_struct *tty, char ch); int (*read_proc)(char *page, char **start, off_t off, int count, int *eof, void *data); int (*write_proc)(struct file *file, const char *buffer, unsigned long count, void *data); struct tty_driver *next; struct tty_driver *prev; }; # 25 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/tty.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/tty_ldisc.h" 1 # 100 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/tty_ldisc.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 1 # 101 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/tty_ldisc.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/wait.h" 1 # 102 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/tty_ldisc.h" 2 struct tty_ldisc { int magic; char *name; int num; int flags; int (*open)(struct tty_struct *); void (*close)(struct tty_struct *); void (*flush_buffer)(struct tty_struct *tty); ssize_t (*chars_in_buffer)(struct tty_struct *tty); ssize_t (*read)(struct tty_struct * tty, struct file * file, unsigned char * buf, size_t nr); ssize_t (*write)(struct tty_struct * tty, struct file * file, const unsigned char * buf, size_t nr); int (*ioctl)(struct tty_struct * tty, struct file * file, unsigned int cmd, unsigned long arg); void (*set_termios)(struct tty_struct *tty, struct termios * old); unsigned int (*poll)(struct tty_struct *, struct file *, struct poll_table_struct *); void (*receive_buf)(struct tty_struct *, const unsigned char *cp, char *fp, int count); int (*receive_room)(struct tty_struct *); void (*write_wakeup)(struct tty_struct *); }; # 26 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/tty.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/system.h" 1 # 28 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/tty.h" 2 # 59 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/tty.h" struct screen_info { unsigned char orig_x; unsigned char orig_y; unsigned short dontuse1; unsigned short orig_video_page; unsigned char orig_video_mode; unsigned char orig_video_cols; unsigned short unused2; unsigned short orig_video_ega_bx; unsigned short unused3; unsigned char orig_video_lines; unsigned char orig_video_isVGA; unsigned short orig_video_points; unsigned short lfb_width; unsigned short lfb_height; unsigned short lfb_depth; unsigned long lfb_base; unsigned long lfb_size; unsigned short dontuse2, dontuse3; unsigned short lfb_linelength; unsigned char red_size; unsigned char red_pos; unsigned char green_size; unsigned char green_pos; unsigned char blue_size; unsigned char blue_pos; unsigned char rsvd_size; unsigned char rsvd_pos; unsigned short vesapm_seg; unsigned short vesapm_off; unsigned short pages; }; extern struct screen_info screen_info; # 139 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/tty.h" struct tty_flip_buffer { struct tq_struct tqueue; struct semaphore pty_sem; char *char_buf_ptr; unsigned char *flag_buf_ptr; int count; int buf_num; unsigned char char_buf[2*512]; char flag_buf[2*512]; unsigned char slop[4]; }; # 259 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/tty.h" struct tty_struct { int magic; struct tty_driver driver; struct tty_ldisc ldisc; struct termios *termios, *termios_locked; int pgrp; int session; kdev_t device; unsigned long flags; int count; struct winsize winsize; unsigned char stopped:1, hw_stopped:1, flow_stopped:1, packet:1; unsigned char low_latency:1, warned:1; unsigned char ctrl_status; struct tty_struct *link; struct fasync_struct *fasync; struct tty_flip_buffer flip; int max_flip_cnt; int alt_speed; wait_queue_head_t write_wait; wait_queue_head_t read_wait; struct tq_struct tq_hangup; void *disc_data; void *driver_data; struct list_head tty_files; unsigned int column; unsigned char lnext:1, erasing:1, raw:1, real_raw:1, icanon:1; unsigned char closing:1; unsigned short minimum_to_wake; unsigned overrun_time; int num_overrun; unsigned long process_char_map[256/(8*sizeof(unsigned long))]; char *read_buf; int read_head; int read_tail; int read_cnt; unsigned long read_flags[4096/(8*sizeof(unsigned long))]; int canon_data; unsigned long canon_head; unsigned int canon_column; struct semaphore atomic_read; struct semaphore atomic_write; spinlock_t read_lock; struct tq_struct SAK_tq; }; # 341 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/tty.h" extern void tty_write_flush(struct tty_struct *); extern struct termios tty_std_termios; extern struct tty_struct * redirect; extern struct tty_ldisc ldiscs[]; extern int fg_console, last_console, want_console; extern int kmsg_redirect; extern void con_init(void); extern void console_init(void); extern int lp_init(void); extern int pty_init(void); extern void tty_init(void); extern int mxser_init(void); extern int moxa_init(void); extern int ip2_init(void); extern int pcxe_init(void); extern int pc_init(void); extern int vcs_init(void); extern int rp_init(void); extern int cy_init(void); extern int stl_init(void); extern int stli_init(void); extern int specialix_init(void); extern int espserial_init(void); extern int macserial_init(void); extern int a2232board_init(void); extern int tty_paranoia_check(struct tty_struct *tty, kdev_t device, const char *routine); extern char *tty_name(struct tty_struct *tty, char *buf); extern void tty_wait_until_sent(struct tty_struct * tty, long timeout); extern int tty_check_change(struct tty_struct * tty); extern void stop_tty(struct tty_struct * tty); extern void start_tty(struct tty_struct * tty); extern int tty_register_ldisc(int disc, struct tty_ldisc *new_ldisc); extern int tty_register_driver(struct tty_driver *driver); extern int tty_unregister_driver(struct tty_driver *driver); extern void tty_register_devfs (struct tty_driver *driver, unsigned int flags, unsigned minor); extern void tty_unregister_devfs (struct tty_driver *driver, unsigned minor); extern int tty_read_raw_data(struct tty_struct *tty, unsigned char *bufp, int buflen); extern void tty_write_message(struct tty_struct *tty, char *msg); extern int is_orphaned_pgrp(int pgrp); extern int is_ignored(int sig); extern int tty_signal(int sig, struct tty_struct *tty); extern void tty_hangup(struct tty_struct * tty); extern void tty_vhangup(struct tty_struct * tty); extern void tty_unhangup(struct file *filp); extern int tty_hung_up_p(struct file * filp); extern void do_SAK(struct tty_struct *tty); extern void disassociate_ctty(int priv); extern void tty_flip_buffer_push(struct tty_struct *tty); extern int tty_get_baud_rate(struct tty_struct *tty); extern struct tty_ldisc tty_ldisc_N_TTY; extern int n_tty_ioctl(struct tty_struct * tty, struct file * file, unsigned int cmd, unsigned long arg); extern void serial_console_init(void); extern int pcxe_open(struct tty_struct *tty, struct file *filp); extern void console_print(const char *); extern int vt_ioctl(struct tty_struct *tty, struct file * file, unsigned int cmd, unsigned long arg); # 25 "/usr/src/linux-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/sem.h" 1 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ipc.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/ipc.h" 2 struct ipc_perm { __kernel_key_t key; __kernel_uid_t uid; __kernel_gid_t gid; __kernel_uid_t cuid; __kernel_gid_t cgid; __kernel_mode_t mode; unsigned short seq; }; # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/ipcbuf.h" 1 # 14 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/ipcbuf.h" struct ipc64_perm { __kernel_key_t key; __kernel_uid32_t uid; __kernel_gid32_t gid; __kernel_uid32_t cuid; __kernel_gid32_t cgid; __kernel_mode_t mode; unsigned short __pad1; unsigned short seq; unsigned short __pad2; unsigned long __unused1; unsigned long __unused2; }; # 22 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ipc.h" 2 # 57 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ipc.h" struct kern_ipc_perm { key_t key; uid_t uid; gid_t gid; uid_t cuid; gid_t cgid; mode_t mode; unsigned long seq; }; # 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sem.h" 2 # 23 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sem.h" struct semid_ds { struct ipc_perm sem_perm; __kernel_time_t sem_otime; __kernel_time_t sem_ctime; struct sem *sem_base; struct sem_queue *sem_pending; struct sem_queue **sem_pending_last; struct sem_undo *undo; unsigned short sem_nsems; }; # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/sembuf.h" 1 # 14 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/sembuf.h" struct semid64_ds { struct ipc64_perm sem_perm; __kernel_time_t sem_otime; unsigned long __unused1; __kernel_time_t sem_ctime; unsigned long __unused2; unsigned long sem_nsems; unsigned long __unused3; unsigned long __unused4; }; # 36 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sem.h" 2 struct sembuf { unsigned short sem_num; short sem_op; short sem_flg; }; union semun { int val; struct semid_ds *buf; unsigned short *array; struct seminfo *__buf; void *__pad; }; struct seminfo { int semmap; int semmni; int semmns; int semmnu; int semmsl; int semopm; int semume; int semusz; int semvmx; int semaem; }; # 82 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sem.h" struct sem { int semval; int sempid; }; struct sem_array { struct kern_ipc_perm sem_perm; time_t sem_otime; time_t sem_ctime; struct sem *sem_base; struct sem_queue *sem_pending; struct sem_queue **sem_pending_last; struct sem_undo *undo; unsigned long sem_nsems; }; struct sem_queue { struct sem_queue * next; struct sem_queue ** prev; struct task_struct* sleeper; struct sem_undo * undo; int pid; int status; struct sem_array * sma; int id; struct sembuf * sops; int nsops; int alter; }; struct sem_undo { struct sem_undo * proc_next; struct sem_undo * id_next; int semid; short * semadj; }; __attribute__((regparm(0))) long sys_semget (key_t key, int nsems, int semflg); __attribute__((regparm(0))) long sys_semop (int semid, struct sembuf *sops, unsigned nsops); __attribute__((regparm(0))) long sys_semctl (int semid, int semnum, int cmd, union semun arg); # 26 "/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/signal.h" 1 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/signal.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/asm/signal.h" 2 struct siginfo; # 17 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/signal.h" typedef unsigned long old_sigset_t; typedef struct { unsigned long sig[(64 / 32)]; } sigset_t; # 129 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/signal.h" typedef void (*__sighandler_t)(int); struct old_sigaction { __sighandler_t sa_handler; old_sigset_t sa_mask; unsigned long sa_flags; void (*sa_restorer)(void); }; struct sigaction { __sighandler_t sa_handler; unsigned long sa_flags; void (*sa_restorer)(void); sigset_t sa_mask; }; struct k_sigaction { struct sigaction sa; }; # 171 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/signal.h" typedef struct sigaltstack { void *ss_sp; int ss_flags; size_t ss_size; } stack_t; # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/sigcontext.h" 1 # 179 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/signal.h" 2 static __inline__ void sigaddset(sigset_t *set, int _sig) { __asm__("btsl %1,%0" : "=m"(*set) : "Ir"(_sig - 1) : "cc"); } static __inline__ void sigdelset(sigset_t *set, int _sig) { __asm__("btrl %1,%0" : "=m"(*set) : "Ir"(_sig - 1) : "cc"); } static __inline__ int __const_sigismember(sigset_t *set, int _sig) { unsigned long sig = _sig - 1; return 1 & (set->sig[sig / 32] >> (sig % 32)); } static __inline__ int __gen_sigismember(sigset_t *set, int _sig) { int ret; __asm__("btl %2,%1\n\tsbbl %0,%0" : "=r"(ret) : "m"(*set), "Ir"(_sig-1) : "cc"); return ret; } # 213 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/signal.h" static __inline__ int sigfindinword(unsigned long word) { __asm__("bsfl %1,%0" : "=r"(word) : "rm"(word) : "cc"); return word; } # 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/signal.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/siginfo.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/asm/siginfo.h" 2 typedef union sigval { int sival_int; void *sival_ptr; } sigval_t; typedef struct siginfo { int si_signo; int si_errno; int si_code; union { int _pad[((128/sizeof(int)) - 3)]; struct { pid_t _pid; uid_t _uid; } _kill; struct { unsigned int _timer1; unsigned int _timer2; } _timer; struct { pid_t _pid; uid_t _uid; sigval_t _sigval; } _rt; struct { pid_t _pid; uid_t _uid; int _status; clock_t _utime; clock_t _stime; } _sigchld; struct { void *_addr; } _sigfault; struct { int _band; int _fd; } _sigpoll; } _sifields; } siginfo_t; # 199 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/siginfo.h" typedef struct sigevent { sigval_t sigev_value; int sigev_signo; int sigev_notify; union { int _pad[((64/sizeof(int)) - 3)]; struct { void (*_function)(sigval_t); void *_attribute; } _sigev_thread; } _sigev_un; } sigevent_t; # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/string.h" 1 # 218 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/siginfo.h" 2 static inline void copy_siginfo(siginfo_t *to, siginfo_t *from) { if (from->si_code < 0) (__builtin_constant_p(sizeof(siginfo_t)) ? __constant_memcpy3d((to),(from),(sizeof(siginfo_t))) : __memcpy3d((to),(from),(sizeof(siginfo_t)))); else (__builtin_constant_p(3*sizeof(int) + sizeof(from->_sifields._sigchld)) ? __constant_memcpy3d((to),(from),(3*sizeof(int) + sizeof(from->_sifields._sigchld))) : __memcpy3d((to),(from),(3*sizeof(int) + sizeof(from->_sifields._sigchld)))); } extern int copy_siginfo_to_user(siginfo_t *to, siginfo_t *from); # 6 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/signal.h" 2 struct sigqueue { struct sigqueue *next; siginfo_t info; }; struct sigpending { struct sigqueue *head, **tail; sigset_t signal; }; # 68 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/signal.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/string.h" 1 # 69 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/signal.h" 2 # 108 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/signal.h" static inline void sigorsets(sigset_t *r, const sigset_t *a, const sigset_t *b) { unsigned long a0, a1, a2, a3, b0, b1, b2, b3; unsigned long i; for (i = 0; i < (64 / 32)/4; ++i) { a0 = a->sig[4*i+0]; a1 = a->sig[4*i+1]; a2 = a->sig[4*i+2]; a3 = a->sig[4*i+3]; b0 = b->sig[4*i+0]; b1 = b->sig[4*i+1]; b2 = b->sig[4*i+2]; b3 = b->sig[4*i+3]; r->sig[4*i+0] = ((a0) | (b0)); r->sig[4*i+1] = ((a1) | (b1)); r->sig[4*i+2] = ((a2) | (b2)); r->sig[4*i+3] = ((a3) | (b3)); } switch ((64 / 32) % 4) { case 3: a0 = a->sig[4*i+0]; a1 = a->sig[4*i+1]; a2 = a->sig[4*i+2]; b0 = b->sig[4*i+0]; b1 = b->sig[4*i+1]; b2 = b->sig[4*i+2]; r->sig[4*i+0] = ((a0) | (b0)); r->sig[4*i+1] = ((a1) | (b1)); r->sig[4*i+2] = ((a2) | (b2)); break; case 2: a0 = a->sig[4*i+0]; a1 = a->sig[4*i+1]; b0 = b->sig[4*i+0]; b1 = b->sig[4*i+1]; r->sig[4*i+0] = ((a0) | (b0)); r->sig[4*i+1] = ((a1) | (b1)); break; case 1: a0 = a->sig[4*i+0]; b0 = b->sig[4*i+0]; r->sig[4*i+0] = ((a0) | (b0)); break; } } static inline void sigandsets(sigset_t *r, const sigset_t *a, const sigset_t *b) { unsigned long a0, a1, a2, a3, b0, b1, b2, b3; unsigned long i; for (i = 0; i < (64 / 32)/4; ++i) { a0 = a->sig[4*i+0]; a1 = a->sig[4*i+1]; a2 = a->sig[4*i+2]; a3 = a->sig[4*i+3]; b0 = b->sig[4*i+0]; b1 = b->sig[4*i+1]; b2 = b->sig[4*i+2]; b3 = b->sig[4*i+3]; r->sig[4*i+0] = ((a0) & (b0)); r->sig[4*i+1] = ((a1) & (b1)); r->sig[4*i+2] = ((a2) & (b2)); r->sig[4*i+3] = ((a3) & (b3)); } switch ((64 / 32) % 4) { case 3: a0 = a- >Fix: I don't know how to correct or work around the problem. >Release-Note: >Audit-Trail: >Unformatted: >sig[4*i+0]; a1 = a->sig[4*i+1]; a2 = a->sig[4*i+2]; b0 = b->sig[4*i+0]; b1 = b->sig[4*i+1]; b2 = b->sig[4*i+2]; r->sig[4*i+0] = ((a0) & (b0)); r->sig[4*i+1] = ((a1) & (b1)); r->sig[4*i+2] = ((a2) & (b2)); break; case 2: a0 = a->sig[4*i+0]; a1 = a->sig[4 *i+1]; b0 = b->sig[4*i+0]; b1 = b->sig[4*i+1]; r->sig[4*i+0] = ((a0) & (b0)); r->sig[4*i+1] = ((a1) & (b1)); break; case 1: a0 = a->sig[4*i+0]; b0 = b->sig[4*i+0]; r->sig[4*i+0] = ((a0) & (b0)); break; } } static inline void signandsets(sigset_t *r, const sigset_t *a, const sigset_t *b) { unsigned long a0, a1, a2, a3, b0, b1, b2, b3; unsigned long i; for (i = 0; i < (64 / 32)/4; ++i) { a0 = a->sig[4*i+0]; a1 = a->sig[4*i+1]; a2 = a->sig[4*i+2]; a3 = a->sig [4*i+3]; b0 = b->sig[4*i+0]; b1 = b->sig[4*i+1]; b2 = b->sig[4*i+2]; b3 = b->sig[4*i+3]; r->sig[4*i+0] = ((a0) & ~(b0)); r->sig[4*i+1] = ((a1) & ~(b1)); r->sig[4*i+2] = ((a2) & ~(b2)); r->sig[4*i+3] = ((a3) & ~(b3)); } switch ((64 / 32) % 4) { case 3: a0 = a->sig[4*i+0]; a1 = a->sig[4*i+1]; a2 = a->sig[4*i+2]; b0 = b->sig[4*i+0]; b1 = b->sig[4*i+1]; b2 = b->sig[4*i+2]; r->sig[4*i+0] = ((a0) & ~(b0)); r->sig[4*i+1] = ((a1) & ~(b1)); r->sig[4*i+2] = ((a2) & ~(b2)); break; case 2: a0 = a->sig[4*i+0]; a1 = a->sig[4*i+1]; b0 = b->sig[4*i+0]; b1 = b->sig[4*i+1]; r->sig[4*i+0] = ((a0) & ~(b0)); r->sig[4*i+1] = ((a1) & ~(b1)); break; case 1: a0 = a->sig[4*i+0]; b0 = b->sig[4*i+0]; r->sig[4*i+0] = ((a0) & ~(b0)); break; } } # 140 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/signal.h" static inline void signotset(sigset_t *set) { unsigned long i; for (i = 0; i < (64 / 32)/4; ++i) { set->sig[4*i+0] = (~(set->sig[4*i+0])); set->sig[4*i+1] = (~(set->sig[4*i+1])); set->sig[4*i+2] = (~(set->sig[4*i+2])); set->sig[4*i+3] = (~(set->sig[4*i+3 ])); } switch ((64 / 32) % 4) { case 3: set->sig[4*i+2] = (~(set->sig[4*i+2])); case 2: set->sig[4*i+1] = (~(set->sig[4*i+1])); case 1: set->sig[4*i+0] = (~(set->sig[4*i+0])); } } static inline void sigemptyset(sigset_t *set) { switch ((64 / 32)) { default: (__builtin_constant_p(0) ? (__builtin_constant_p((sizeof(sigset_t))) ? __constant_c_and_count_memset(((set)),((0x01010101UL*(unsigned char)(0))),((sizeof(sigset_t)))) : __constant_c_memset(((set)),((0x01010101UL*(unsigned char)(0))),((siz eof(sigset_t))))) : (__builtin_constant_p((sizeof(sigset_t))) ? __memset_generic((((set))),(((0))),(((sizeof(sigset_t))))) : __memset_generic(((set)),((0)),((sizeof(sigset_t)))))); break; case 2: set->sig[1] = 0; case 1: set->sig[0] = 0; break; } } static inline void sigfillset(sigset_t *set) { switch ((64 / 32)) { default: (__builtin_constant_p(-1) ? (__builtin_constant_p((sizeof(sigset_t))) ? __constant_c_and_count_memset(((set)),((0x01010101UL*(unsigned char)(-1))),((sizeof(sigset_t)))) : __constant_c_memset(((set)),((0x01010101UL*(unsigned char)(-1))),(( sizeof(sigset_t))))) : (__builtin_constant_p((sizeof(sigset_t))) ? __memset_generic((((set))),(((-1))),(((sizeof(sigset_t))))) : __memset_generic(((set)),((-1)),((sizeof(sigset_t)))))); break; case 2: set->sig[1] = -1; case 1: set->sig[0] = -1; break; } } extern char * render_sigset_t(sigset_t *set, char *buffer); static inline void sigaddsetmask(sigset_t *set, unsigned long mask) { set->sig[0] |= mask; } static inline void sigdelsetmask(sigset_t *set, unsigned long mask) { set->sig[0] &= ~mask; } static inline int sigtestsetmask(sigset_t *set, unsigned long mask) { return (set->sig[0] & mask) != 0; } static inline void siginitset(sigset_t *set, unsigned long mask) { set->sig[0] = mask; switch ((64 / 32)) { default: (__builtin_constant_p(0) ? (__builtin_constant_p((sizeof(long)*((64 / 32)-1))) ? __constant_c_and_count_memset(((&set->sig[1])),((0x01010101UL*(unsigned char)(0))),((sizeof(long)*((64 / 32)-1)))) : __constant_c_memset(((&set->sig[1])),((0 x01010101UL*(unsigned char)(0))),((sizeof(long)*((64 / 32)-1))))) : (__builtin_constant_p((sizeof(long)*((64 / 32)-1))) ? __memset_generic((((&set->sig[1]))),(((0))),(((sizeof(long)*((64 / 32)-1))))) : __memset_generic(((&set->sig[1])),((0)),((sizeof(lon g)*((64 / 32)-1)))))); break; case 2: set->sig[1] = 0; case 1: ; } } static inline void siginitsetinv(sigset_t *set, unsigned long mask) { set->sig[0] = ~mask; switch ((64 / 32)) { default: (__builtin_constant_p(-1) ? (__builtin_constant_p((sizeof(long)*((64 / 32)-1))) ? __constant_c_and_count_memset(((&set->sig[1])),((0x01010101UL*(unsigned char)(-1))),((sizeof(long)*((64 / 32)-1)))) : __constant_c_memset(((&set->sig[1])),( (0x01010101UL*(unsigned char)(-1))),((sizeof(long)*((64 / 32)-1))))) : (__builtin_constant_p((sizeof(long)*((64 / 32)-1))) ? __memset_generic((((&set->sig[1]))),(((-1))),(((sizeof(long)*((64 / 32)-1))))) : __memset_generic(((&set->sig[1])),((-1)),((sizeo f(long)*((64 / 32)-1)))))); break; case 2: set->sig[1] = -1; case 1: ; } } static inline void init_sigpending(struct sigpending *sig) { sigemptyset(&sig->signal); sig->head = ((void *)0); sig->tail = &sig->head; } extern long do_sigpending(void *, unsigned long); # 27 "/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/securebits.h" 1 extern unsigned securebits; # 28 "/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/fs_struct.h" 1 struct fs_struct { atomic_t count; rwlock_t lock; int umask; struct dentry * root, * pwd, * altroot; struct vfsmount * rootmnt, * pwdmnt, * altrootmnt; }; # 20 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs_struct.h" extern void exit_fs(struct task_struct *); extern void set_fs_altroot(void); static inline void set_fs_root(struct fs_struct *fs, struct vfsmount *mnt, struct dentry *dentry) { struct dentry *old_root; struct vfsmount *old_rootmnt; (void)(&fs->lock); old_root = fs->root; old_rootmnt = fs->rootmnt; fs->rootmnt = mntget(mnt); fs->root = dget(dentry); do { } while(0); if (old_root) { dput(old_root); mntput(old_rootmnt); } } static inline void set_fs_pwd(struct fs_struct *fs, struct vfsmount *mnt, struct dentry *dentry) { struct dentry *old_pwd; struct vfsmount *old_pwdmnt; (void)(&fs->lock); old_pwd = fs->pwd; old_pwdmnt = fs->pwdmnt; fs->pwdmnt = mntget(mnt); fs->pwd = dget(dentry); do { } while(0); if (old_pwd) { dput(old_pwd); mntput(old_pwdmnt); } } struct fs_struct *copy_fs_struct(struct fs_struct *old); void put_fs_struct(struct fs_struct *fs); # 29 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sched.h" 2 struct exec_domain; # 58 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sched.h" extern unsigned long avenrun[]; # 75 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sched.h" extern int nr_running, nr_threads; extern int last_pid; # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/fs.h" 1 # 79 "/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/time.h" 1 # 80 "/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/param.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/param.h" 2 # 81 "/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/resource.h" 1 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/time.h" 1 # 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/resource.h" 2 # 21 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/resource.h" struct rusage { struct timeval ru_utime; struct timeval ru_stime; long ru_maxrss; long ru_ixrss; long ru_idrss; long ru_isrss; long ru_minflt; long ru_majflt; long ru_nswap; long ru_inblock; long ru_oublock; long ru_msgsnd; long ru_msgrcv; long ru_nsignals; long ru_nvcsw; long ru_nivcsw; }; struct rlimit { unsigned long rlim_cur; unsigned long rlim_max; }; # 56 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/resource.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/resource.h" 1 # 57 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/resource.h" 2 # 82 "/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/timer.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/timer.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/timer.h" 2 # 16 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/timer.h" struct timer_list { struct list_head list; unsigned long expires; unsigned long data; void (*function)(unsigned long); }; extern void add_timer(struct timer_list * timer); extern int del_timer(struct timer_list * timer); # 41 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/timer.h" int mod_timer(struct timer_list *timer, unsigned long expires); extern void it_real_fn(unsigned long); static inline void init_timer(struct timer_list * timer) { timer->list.next = timer->list.prev = ((void *)0); } static inline int timer_pending (const struct timer_list * timer) { return timer->list.next != ((void *)0); } # 83 "/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/asm/processor.h" 1 # 85 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sched.h" 2 # 125 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sched.h" struct sched_param { int sched_priority; }; struct completion; # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/spinlock.h" 1 # 134 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sched.h" 2 extern rwlock_t tasklist_lock; extern spinlock_t runqueue_lock; extern spinlock_t mmlist_lock; extern void sched_init(void); extern void init_idle(void); extern void show_state(void); extern void cpu_init (void); extern void trap_init(void); extern void update_process_times(int user); extern void update_one_process(struct task_struct *p, unsigned long user, unsigned long system, int cpu); extern signed long schedule_timeout(signed long timeout) __attribute__((regparm(3))); __attribute__((regparm(0))) void schedule(void); extern int schedule_task(struct tq_struct *task); extern void flush_scheduled_tasks(void); extern int start_context_thread(void); extern int current_is_keventd(void); # 172 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sched.h" struct files_struct { atomic_t count; rwlock_t file_lock; int max_fds; int max_fdset; int next_fd; struct file ** fd; fd_set *close_on_exec; fd_set *open_fds; fd_set close_on_exec_init; fd_set open_fds_init; struct file * fd_array[32]; }; # 204 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sched.h" struct mm_struct { struct vm_area_struct * mmap; rb_root_t mm_rb; struct vm_area_struct * mmap_cache; pgd_t * pgd; atomic_t mm_users; atomic_t mm_count; int map_count; struct rw_semaphore mmap_sem; spinlock_t page_table_lock; struct list_head mmlist; unsigned long start_code, end_code, start_data, end_data; unsigned long start_brk, brk, start_stack; unsigned long arg_start, arg_end, env_start, env_end; unsigned long rss, total_vm, locked_vm; unsigned long def_flags; unsigned long cpu_vm_mask; unsigned long swap_address; unsigned dumpable:1; mm_context_t context; }; extern int mmlist_nr; # 247 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sched.h" struct signal_struct { atomic_t count; struct k_sigaction action[64]; spinlock_t siglock; }; # 263 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sched.h" struct user_struct { atomic_t __count; atomic_t processes; atomic_t files; struct user_struct *next, **pprev; uid_t uid; }; extern struct user_struct root_user; struct task_struct { volatile long state; unsigned long flags; int sigpending; mm_segment_t addr_limit; struct exec_domain *exec_domain; volatile long need_resched; unsigned long ptrace; int lock_depth; long counter; long nice; unsigned long policy; struct mm_struct *mm; int has_cpu, processor; unsigned long cpus_allowed; struct list_head run_list; unsigned long sleep_time; struct task_struct *next_task, *prev_task; struct mm_struct *active_mm; struct list_head local_pages; unsigned int allocation_order, nr_local_pages; struct linux_binfmt *binfmt; int exit_code, exit_signal; int pdeath_signal; unsigned long personality; int did_exec:1; pid_t pid; pid_t pgrp; pid_t tty_old_pgrp; pid_t session; pid_t tgid; int leader; struct task_struct *p_opptr, *p_pptr, *p_cptr, *p_ysptr, *p_osptr; struct list_head thread_group; struct task_struct *pidhash_next; struct task_struct **pidhash_pprev; wait_queue_head_t wait_chldexit; struct completion *vfork_done; unsigned long rt_priority; unsigned long it_real_value, it_prof_value, it_virt_value; unsigned long it_real_incr, it_prof_incr, it_virt_incr; struct timer_list real_timer; struct tms times; unsigned long start_time; long per_cpu_utime[1], per_cpu_stime[1]; unsigned long min_flt, maj_flt, nswap, cmin_flt, cmaj_flt, cnswap; int swappable:1; uid_t uid,euid,suid,fsuid; gid_t gid,egid,sgid,fsgid; int ngroups; gid_t groups[32]; kernel_cap_t cap_effective, cap_inheritable, cap_permitted; int keep_capabilities:1; struct user_struct *user; struct rlimit rlim[11]; unsigned short used_math; char comm[16]; int link_count, total_link_count; struct tty_struct *tty; unsigned int locks; struct sem_undo *semundo; struct sem_queue *semsleeping; struct thread_struct thread; struct fs_struct *fs; struct files_struct *files; spinlock_t sigmask_lock; struct signal_struct *sig; sigset_t blocked; struct sigpending pending; unsigned long sas_ss_sp; size_t sas_ss_size; int (*notifier)(void *priv); void *notifier_data; sigset_t *notifier_mask; u32 parent_exec_id; u32 self_exec_id; spinlock_t alloc_lock; }; # 444 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sched.h" extern struct exec_domain default_exec_domain; # 496 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sched.h" union task_union { struct task_struct task; unsigned long stack[2048*sizeof(long)/sizeof(long)]; }; extern union task_union init_task_union; extern struct mm_struct init_mm; extern struct task_struct *init_tasks[1]; extern struct task_struct *pidhash[(4096 >> 2)]; static inline void hash_pid(struct task_struct *p) { struct task_struct **htable = &pidhash[((((p->pid) >> 8) ^ (p->pid)) & ((4096 >> 2) - 1))]; if((p->pidhash_next = *htable) != ((void *)0)) (*htable)->pidhash_pprev = &p->pidhash_next; *htable = p; p->pidhash_pprev = htable; } static inline void unhash_pid(struct task_struct *p) { if(p->pidhash_next) p->pidhash_next->pidhash_pprev = p->pidhash_pprev; *p->pidhash_pprev = p->pidhash_next; } static inline struct task_struct *find_task_by_pid(int pid) { struct task_struct *p, **htable = &pidhash[((((pid) >> 8) ^ (pid)) & ((4096 >> 2) - 1))]; for(p = *htable; p && p->pid != pid; p = p->pidhash_next) ; return p; } extern struct user_struct * alloc_uid(uid_t); extern void free_uid(struct user_struct *); # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/current.h" 1 struct task_struct; static inline struct task_struct * get_current(void) { struct task_struct *current; __asm__("andl %%esp,%0; ":"=r" (current) : "0" (~8191UL)); return current; } # 544 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sched.h" 2 extern unsigned long volatile jiffies; extern unsigned long itimer_ticks; extern unsigned long itimer_next; extern struct timeval xtime; extern void do_timer(struct pt_regs *); extern unsigned int * prof_buffer; extern unsigned long prof_len; extern unsigned long prof_shift; extern void __wake_up(wait_queue_head_t *q, unsigned int mode, int nr) __attribute__((regparm(3))); extern void __wake_up_sync(wait_queue_head_t *q, unsigned int mode, int nr) __attribute__((regparm(3))); extern void sleep_on(wait_queue_head_t *q) __attribute__((regparm(3))); extern long sleep_on_timeout(wait_queue_head_t *q, signed long timeout) __attribute__((regparm(3))); extern void interruptible_sleep_on(wait_queue_head_t *q) __attribute__((regparm(3))); extern long interruptible_sleep_on_timeout(wait_queue_head_t *q, signed long timeout) __attribute__((regparm(3))); extern int wake_up_process(struct task_struct * tsk) __attribute__((regparm(3))); # 577 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sched.h" __attribute__((regparm(0))) long sys_wait4(pid_t pid,unsigned int * stat_addr, int options, struct rusage * ru); extern int in_group_p(gid_t); extern int in_egroup_p(gid_t); extern void proc_caches_init(void); extern void flush_signals(struct task_struct *); extern void flush_signal_handlers(struct task_struct *); extern int dequeue_signal(sigset_t *, siginfo_t *); extern void block_all_signals(int (*notifier)(void *priv), void *priv, sigset_t *mask); extern void unblock_all_signals(void); extern int send_sig_info(int, struct siginfo *, struct task_struct *); extern int force_sig_info(int, struct siginfo *, struct task_struct *); extern int kill_pg_info(int, struct siginfo *, pid_t); extern int kill_sl_info(int, struct siginfo *, pid_t); extern int kill_proc_info(int, struct siginfo *, pid_t); extern void notify_parent(struct task_struct *, int); extern void do_notify_parent(struct task_struct *, int); extern void force_sig(int, struct task_struct *); extern int send_sig(int, struct task_struct *, int); extern int kill_pg(pid_t, int, int); extern int kill_sl(pid_t, int, int); extern int kill_proc(pid_t, int, int); extern int do_sigaction(int, const struct k_sigaction *, struct k_sigaction *); extern int do_sigaltstack(const stack_t *, stack_t *, unsigned long); static inline int signal_pending(struct task_struct *p) { return (p->sigpending != 0); } static inline int has_pending_signals(sigset_t *signal, sigset_t *blocked) { unsigned long ready; long i; switch ((64 / 32)) { default: for (i = (64 / 32), ready = 0; --i >= 0 ;) ready |= signal->sig[i] &~ blocked->sig[i]; break; case 4: ready = signal->sig[3] &~ blocked->sig[3]; ready |= signal->sig[2] &~ blocked->sig[2]; ready |= signal->sig[1] &~ blocked->sig[1]; ready |= signal->sig[0] &~ blocked->sig[0]; break; case 2: ready = signal->sig[1] &~ blocked->sig[1]; ready |= signal->sig[0] &~ blocked->sig[0]; break; case 1: ready = signal->sig[0] &~ blocked->sig[0]; } return ready != 0; } static inline void recalc_sigpending(struct task_struct *t) { t->sigpending = has_pending_signals(&t->pending.signal, &t->blocked); } static inline int on_sig_stack(unsigned long sp) { return (sp - get_current()->sas_ss_sp < get_current()->sas_ss_size); } static inline int sas_ss_flags(unsigned long sp) { return (get_current()->sas_ss_size == 0 ? 2 : on_sig_stack(sp) ? 1 : 0); } extern int request_irq(unsigned int, void (*handler)(int, void *, struct pt_regs *), unsigned long, const char *, void *); extern void free_irq(unsigned int, void *); # 680 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sched.h" static inline int suser(void) { if (!( (1 << (0 +1)) & 0x00000000 ? (1 << (0)) & 0x00000000 : (1 << (0)) & securebits ) && get_current()->euid == 0) { get_current()->flags |= 0x00000100; return 1; } return 0; } static inline int fsuser(void) { if (!( (1 << (0 +1)) & 0x00000000 ? (1 << (0)) & 0x00000000 : (1 << (0)) & securebits ) && get_current()->fsuid == 0) { get_current()->flags |= 0x00000100; return 1; } return 0; } static inline int capable(int cap) { if (((get_current()->cap_effective) & (1 << (cap)))) { get_current()->flags |= 0x00000100; return 1; } return 0; } extern struct mm_struct * mm_alloc(void); extern struct mm_struct * start_lazy_tlb(void); extern void end_lazy_tlb(struct mm_struct *mm); extern inline void __mmdrop(struct mm_struct *) __attribute__((regparm(3))); static inline void mmdrop(struct mm_struct * mm) { if (atomic_dec_and_test(&mm->mm_count)) __mmdrop(mm); } extern void mmput(struct mm_struct *); extern void mm_release(void); extern struct file ** alloc_fd_array(int); extern int expand_fd_array(struct files_struct *, int nr); extern void free_fd_array(struct file **, int); extern fd_set *alloc_fdset(int); extern int expand_fdset(struct files_struct *, int nr); extern void free_fdset(fd_set *, int); extern int copy_thread(int, unsigned long, unsigned long, unsigned long, struct task_struct *, struct pt_regs *); extern void flush_thread(void); extern void exit_thread(void); extern void exit_mm(struct task_struct *); extern void exit_files(struct task_struct *); extern void exit_sighand(struct task_struct *); extern void reparent_to_init(void); extern void daemonize(void); extern int do_execve(char *, char **, char **, struct pt_regs *); extern int do_fork(unsigned long, unsigned long, struct pt_regs *, unsigned long); extern void add_wait_queue(wait_queue_head_t *q, wait_queue_t * wait) __attribute__((regparm(3))); extern void add_wait_queue_exclusive(wait_queue_head_t *q, wait_queue_t * wait) __attribute__((regparm(3))); extern void remove_wait_queue(wait_queue_head_t *q, wait_queue_t * wait) __attribute__((regparm(3))); # 848 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sched.h" static inline void del_from_runqueue(struct task_struct * p) { nr_running--; p->sleep_time = jiffies; list_del(&p->run_list); p->run_list.next = ((void *)0); } static inline int task_on_runqueue(struct task_struct *p) { return (p->run_list.next != ((void *)0)); } static inline void unhash_process(struct task_struct *p) { if (task_on_runqueue(p)) __asm__ __volatile__(".byte 0x0f,0x0b"); do { __asm__ __volatile__("cli": : :"memory"); (void)(&tasklist_lock); } while (0); nr_threads--; unhash_pid(p); do { (p)->next_task->prev_task = (p)->prev_task; (p)->prev_task->next_task = (p)->next_task; if ((p)->p_osptr) (p)->p_osptr->p_ysptr = (p)->p_ysptr; if ((p)->p_ysptr) (p)->p_ysptr->p_osptr = (p)->p_osptr; else (p)->p_pptr->p_cptr = (p)->p_osptr; } while (0); list_del(&p->thread_group); do { do { } while(0); __asm__ __volatile__("sti": : :"memory"); } while (0); } static inline void task_lock(struct task_struct *p) { (void)(&p->alloc_lock); } static inline void task_unlock(struct task_struct *p) { do { } while(0); } static inline char * d_path(struct dentry *dentry, struct vfsmount *vfsmnt, char *buf, int buflen) { char *res; struct vfsmount *rootmnt; struct dentry *root; (void)(&get_current()->fs->lock); rootmnt = mntget(get_current()->fs->rootmnt); root = dget(get_current()->fs->root); do { } while(0); (void)(&dcache_lock); res = __d_path(dentry, vfsmnt, root, rootmnt, buf, buflen); do { } while(0); dput(root); mntput(rootmnt); return res; } # 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mm.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/errno.h" 1 # 6 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mm.h" 2 # 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/mm.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/string.h" 1 # 11 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mm.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/list.h" 1 # 12 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mm.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mmzone.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/linux/mmzone.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/spinlock.h" 1 # 9 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mmzone.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/list.h" 1 # 10 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mmzone.h" 2 # 21 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mmzone.h" typedef struct free_area_struct { struct list_head free_list; unsigned long *map; } free_area_t; struct pglist_data; # 36 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mmzone.h" typedef struct zone_struct { spinlock_t lock; unsigned long free_pages; unsigned long pages_min, pages_low, pages_high; int need_balance; free_area_t free_area[10]; struct pglist_data *zone_pgdat; struct page *zone_mem_map; unsigned long zone_start_paddr; unsigned long zone_start_mapnr; char *name; unsigned long size; } zone_t; # 81 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mmzone.h" typedef struct zonelist_struct { zone_t * zones [3 +1]; } zonelist_t; # 98 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mmzone.h" struct bootmem_data; typedef struct pglist_data { zone_t node_zones[3]; zonelist_t node_zonelists[0x0f +1]; int nr_zones; struct page *node_mem_map; unsigned long *valid_addr_bitmap; struct bootmem_data *bdata; unsigned long node_start_paddr; unsigned long node_start_mapnr; unsigned long node_size; int node_id; struct pglist_data *node_next; } pg_data_t; extern int numnodes; extern pg_data_t *pgdat_list; # 123 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mmzone.h" struct page; extern void show_free_areas_core(pg_data_t *pgdat); extern void free_area_init_core(int nid, pg_data_t *pgdat, struct page **gmap, unsigned long *zones_size, unsigned long paddr, unsigned long *zholes_size, struct page *pmap); extern pg_data_t contig_page_data; # 13 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mm.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/swap.h" 1 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/spinlock.h" 1 # 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/swap.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/page.h" 1 # 6 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/swap.h" 2 # 25 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/swap.h" union swap_header { struct { char reserved[(1UL << 12) - 10]; char magic[10]; } magic; struct { char bootbits[1024]; unsigned int version; unsigned int last_page; unsigned int nr_badpages; unsigned int padding[125]; unsigned int badpages[1]; } info; }; # 51 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/swap.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/atomic.h" 1 # 52 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/swap.h" 2 # 64 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/swap.h" struct swap_info_struct { unsigned int flags; kdev_t swap_device; spinlock_t sdev_lock; struct dentry * swap_file; struct vfsmount *swap_vfsmnt; unsigned short * swap_map; unsigned int lowest_bit; unsigned int highest_bit; unsigned int cluster_next; unsigned int cluster_nr; int prio; int pages; unsigned long max; int next; }; extern int nr_swap_pages; extern unsigned int nr_free_pages(void); extern unsigned int nr_free_buffer_pages(void); extern int nr_active_pages; extern int nr_inactive_pages; extern atomic_t nr_async_pages; extern atomic_t page_cache_size; extern atomic_t buffermem_pages; extern spinlock_t pagecache_lock; extern void __remove_inode_page(struct page *); struct task_struct; struct vm_area_struct; struct sysinfo; struct zone_t; extern void lru_cache_add(struct page *) __attribute__((regparm(3))); extern void __lru_cache_del(struct page *) __attribute__((regparm(3))); extern void lru_cache_del(struct page *) __attribute__((regparm(3))); extern void deactivate_page(struct page *) __attribute__((regparm(3))); extern void activate_page(struct page *) __attribute__((regparm(3))); extern void swap_setup(void); extern wait_queue_head_t kswapd_wait; extern int try_to_free_pages(zone_t *, unsigned int, unsigned int) __attribute__((regparm(3))); extern void rw_swap_page(int, struct page *); extern void rw_swap_page_nolock(int, swp_entry_t, char *); extern void show_swap_cache_info(void); extern int add_to_swap_cache(struct page *, swp_entry_t); extern void __delete_from_swap_cache(struct page *page); extern void delete_from_swap_cache(struct page *page); extern void free_page_and_swap_cache(struct page *page); extern struct page * lookup_swap_cache(swp_entry_t); extern struct page * read_swap_cache_async(swp_entry_t); extern int out_of_memory(void); extern void oom_kill(void); extern int total_swap_pages; extern unsigned int nr_swapfiles; extern struct swap_info_struct swap_info[]; extern int is_swap_partition(kdev_t); extern void si_swapinfo(struct sysinfo *); extern swp_entry_t get_swap_page(void); extern void get_swaphandle_info(swp_entry_t, unsigned long *, kdev_t *, struct inode **); extern int swap_duplicate(swp_entry_t); extern int swap_count(struct page *); extern int valid_swaphandles(swp_entry_t, unsigned long *); extern void swap_free(swp_entry_t); struct swap_list_t { int head; int next; }; extern struct swap_list_t swap_list; __attribute__((regparm(0))) long sys_swapoff(const char *); __attribute__((regparm(0))) long sys_swapon(const char *, int); extern spinlock_t pagemap_lru_lock; extern void mark_page_accessed(struct page *) __attribute__((regparm(3))); # 220 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/swap.h" extern spinlock_t swaplock; extern void shmem_unuse(swp_entry_t entry, struct page *page); # 14 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mm.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rbtree.h" 1 # 15 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mm.h" 2 extern unsigned long max_mapnr; extern unsigned long num_physpages; extern void * high_memory; extern int page_cluster; extern struct list_head active_list; extern struct list_head inactive_list; # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/page.h" 1 # 25 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mm.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pgtable.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/pgtable.h" 2 # 16 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pgtable.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/processor.h" 1 # 17 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pgtable.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/fixmap.h" 1 # 16 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/fixmap.h" # 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/asm/fixmap.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/kernel.h" 1 # 18 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/fixmap.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/apicdef.h" 1 # 122 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/apicdef.h" struct local_apic { struct { unsigned int __reserved[4]; } __reserved_01; struct { unsigned int __reserved[4]; } __reserved_02; struct { unsigned int __reserved_1 : 24, phys_apic_id : 4, __reserved_2 : 4; unsigned int __reserved[3]; } id; const struct { unsigned int version : 8, __reserved_1 : 8, max_lvt : 8, __reserved_2 : 8; unsigned int __reserved[3]; } version; struct { unsigned int __reserved[4]; } __reserved_03; struct { unsigned int __reserved[4]; } __reserved_04; struct { unsigned int __reserved[4]; } __reserved_05; struct { unsigned int __reserved[4]; } __reserved_06; struct { unsigned int priority : 8, __reserved_1 : 24; unsigned int __reserved_2[3]; } tpr; const struct { unsigned int priority : 8, __reserved_1 : 24; unsigned int __reserved_2[3]; } apr; const struct { unsigned int priority : 8, __reserved_1 : 24; unsigned int __reserved_2[3]; } ppr; struct { unsigned int eoi; unsigned int __reserved[3]; } eoi; struct { unsigned int __reserved[4]; } __reserved_07; struct { unsigned int __reserved_1 : 24, logical_dest : 8; unsigned int __reserved_2[3]; } ldr; struct { unsigned int __reserved_1 : 28, model : 4; unsigned int __reserved_2[3]; } dfr; struct { unsigned int spurious_vector : 8, apic_enabled : 1, focus_cpu : 1, __reserved_2 : 22; unsigned int __reserved_3[3]; } svr; struct { unsigned int bitfield; unsigned int __reserved[3]; } isr [8]; struct { unsigned int bitfield; unsigned int __reserved[3]; } tmr [8]; struct { unsigned int bitfield; unsigned int __reserved[3]; } irr [8]; union { struct { unsigned int send_cs_error : 1, receive_cs_error : 1, send_accept_error : 1, receive_accept_error : 1, __reserved_1 : 1, send_illegal_vector : 1, receive_illegal_vector : 1, illegal_register_address : 1, __reserved_2 : 24; unsigned int __reserved_3[3]; } error_bits; struct { unsigned int errors; unsigned int __reserved_3[3]; } all_errors; } esr; struct { unsigned int __reserved[4]; } __reserved_08; struct { unsigned int __reserved[4]; } __reserved_09; struct { unsigned int __reserved[4]; } __reserved_10; struct { unsigned int __reserved[4]; } __reserved_11; struct { unsigned int __reserved[4]; } __reserved_12; struct { unsigned int __reserved[4]; } __reserved_13; struct { unsigned int __reserved[4]; } __reserved_14; struct { unsigned int vector : 8, delivery_mode : 3, destination_mode : 1, delivery_status : 1, __reserved_1 : 1, level : 1, trigger : 1, __reserved_2 : 2, shorthand : 2, __reserved_3 : 12; unsigned int __reserved_4[3]; } icr1; struct { union { unsigned int __reserved_1 : 24, phys_dest : 4, __reserved_2 : 4; unsigned int __reserved_3 : 24, logical_dest : 8; } dest; unsigned int __reserved_4[3]; } icr2; struct { unsigned int vector : 8, __reserved_1 : 4, delivery_status : 1, __reserved_2 : 3, mask : 1, timer_mode : 1, __reserved_3 : 14; unsigned int __reserved_4[3]; } lvt_timer; struct { unsigned int __reserved[4]; } __reserved_15; struct { unsigned int vector : 8, delivery_mode : 3, __reserved_1 : 1, delivery_status : 1, __reserved_2 : 3, mask : 1, __reserved_3 : 15; unsigned int __reserved_4[3]; } lvt_pc; struct { unsigned int vector : 8, delivery_mode : 3, __reserved_1 : 1, delivery_status : 1, polarity : 1, remote_irr : 1, trigger : 1, mask : 1, __reserved_2 : 15; unsigned int __reserved_3[3]; } lvt_lint0; struct { unsigned int vector : 8, delivery_mode : 3, __reserved_1 : 1, delivery_status : 1, polarity : 1, remote_irr : 1, trigger : 1, mask : 1, __reserved_2 : 15; unsigned int __reserved_3[3]; } lvt_lint1; struct { unsigned int vector : 8, __reserved_1 : 4, delivery_status : 1, __reserved_2 : 3, mask : 1, __reserved_3 : 15; unsigned int __reserved_4[3]; } lvt_error; struct { unsigned int initial_count; unsigned int __reserved_2[3]; } timer_icr; const struct { unsigned int curr_count; unsigned int __reserved_2[3]; } timer_ccr; struct { unsigned int __reserved[4]; } __reserved_16; struct { unsigned int __reserved[4]; } __reserved_17; struct { unsigned int __reserved[4]; } __reserved_18; struct { unsigned int __reserved[4]; } __reserved_19; struct { unsigned int divisor : 4, __reserved_1 : 28; unsigned int __reserved_2[3]; } timer_dcr; struct { unsigned int __reserved[4]; } __reserved_20; } __attribute__ ((packed)); # 19 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/fixmap.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/asm/fixmap.h" 2 # 50 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/fixmap.h" enum fixed_addresses { # 68 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/fixmap.h" __end_of_fixed_addresses }; extern void __set_fixmap (enum fixed_addresses idx, unsigned long phys, pgprot_t flags); # 94 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/fixmap.h" extern void __this_fixmap_does_not_exist(void); static inline unsigned long fix_to_virt(const unsigned int idx) { # 112 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/fixmap.h" if (idx >= __end_of_fixed_addresses) __this_fixmap_does_not_exist(); return ((0xffffe000UL) - ((idx) << 12)); } # 18 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pgtable.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/threads.h" 1 # 19 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pgtable.h" 2 extern pgd_t swapper_pg_dir[1024]; extern void paging_init(void); # 67 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pgtable.h" extern unsigned long pgkern_mask; # 95 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pgtable.h" extern unsigned long empty_zero_page[1024]; # 109 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pgtable.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pgtable-2level.h" 1 # 32 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pgtable-2level.h" static inline int pgd_none(pgd_t pgd) { return 0; } static inline int pgd_bad(pgd_t pgd) { return 0; } static inline int pgd_present(pgd_t pgd) { return 1; } # 53 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pgtable-2level.h" static inline pmd_t * pmd_offset(pgd_t * dir, unsigned long address) { return (pmd_t *) dir; } # 110 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pgtable.h" 2 # 244 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pgtable.h" extern unsigned long pg0[1024]; # 265 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pgtable.h" static inline int pte_read(pte_t pte) { return (pte).pte_low & 0x004; } static inline int pte_exec(pte_t pte) { return (pte).pte_low & 0x004; } static inline int pte_dirty(pte_t pte) { return (pte).pte_low & 0x040; } static inline int pte_young(pte_t pte) { return (pte).pte_low & 0x020; } static inline int pte_write(pte_t pte) { return (pte).pte_low & 0x002; } static inline pte_t pte_rdprotect(pte_t pte) { (pte).pte_low &= ~0x004; return pte; } static inline pte_t pte_exprotect(pte_t pte) { (pte).pte_low &= ~0x004; return pte; } static inline pte_t pte_mkclean(pte_t pte) { (pte).pte_low &= ~0x040; return pte; } static inline pte_t pte_mkold(pte_t pte) { (pte).pte_low &= ~0x020; return pte; } static inline pte_t pte_wrprotect(pte_t pte) { (pte).pte_low &= ~0x002; return pte; } static inline pte_t pte_mkread(pte_t pte) { (pte).pte_low |= 0x004; return pte; } static inline pte_t pte_mkexec(pte_t pte) { (pte).pte_low |= 0x004; return pte; } static inline pte_t pte_mkdirty(pte_t pte) { (pte).pte_low |= 0x040; return pte; } static inline pte_t pte_mkyoung(pte_t pte) { (pte).pte_low |= 0x020; return pte; } static inline pte_t pte_mkwrite(pte_t pte) { (pte).pte_low |= 0x002; return pte; } static inline int ptep_test_and_clear_dirty(pte_t *ptep) { return test_and_clear_bit(6, ptep); } static inline int ptep_test_and_clear_young(pte_t *ptep) { return test_and_clear_bit(5, ptep); } static inline void ptep_set_wrprotect(pte_t *ptep) { clear_bit(1, ptep); } static inline void ptep_mkdirty(pte_t *ptep) { set_bit(6, ptep); } # 297 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pgtable.h" static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) { pte.pte_low &= ((~((1UL << 12)-1)) | 0x020 | 0x040); pte.pte_low |= ((newprot).pgprot); return pte; } # 26 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mm.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/atomic.h" 1 # 27 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mm.h" 2 # 43 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mm.h" struct vm_area_struct { struct mm_struct * vm_mm; unsigned long vm_start; unsigned long vm_end; struct vm_area_struct *vm_next; pgprot_t vm_page_prot; unsigned long vm_flags; rb_node_t vm_rb; struct vm_area_struct *vm_next_share; struct vm_area_struct **vm_pprev_share; struct vm_operations_struct * vm_ops; unsigned long vm_pgoff; struct file * vm_file; unsigned long vm_raend; void * vm_private_data; }; # 117 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mm.h" extern pgprot_t protection_map[16]; struct vm_operations_struct { void (*open)(struct vm_area_struct * area); void (*close)(struct vm_area_struct * area); struct page * (*nopage)(struct vm_area_struct * area, unsigned long address, int write_access); }; # 146 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mm.h" typedef struct page { struct list_head list; struct address_space *mapping; unsigned long index; struct page *next_hash; atomic_t count; unsigned long flags; struct list_head lru; wait_queue_head_t wait; struct page **pprev_hash; struct buffer_head * buffers; void *virtual; struct zone_struct *zone; } mem_map_t; # 299 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mm.h" extern void __set_page_dirty(struct page *); static inline void set_page_dirty(struct page * page) { if (!test_and_set_bit(4, &page->flags)) __set_page_dirty(page); } # 364 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mm.h" extern mem_map_t * mem_map; extern struct page * _alloc_pages(unsigned int gfp_mask, unsigned int order) __attribute__((regparm(3))); extern struct page * __alloc_pages(unsigned int gfp_mask, unsigned int order, zonelist_t *zonelist) __attribute__((regparm(3))); extern struct page * alloc_pages_node(int nid, unsigned int gfp_mask, unsigned int order); static inline struct page * alloc_pages(unsigned int gfp_mask, unsigned int order) { if (order >= 10) return ((void *)0); return _alloc_pages(gfp_mask, order); } extern unsigned long __get_free_pages(unsigned int gfp_mask, unsigned int order) __attribute__((regparm(3))); extern unsigned long get_zeroed_page(unsigned int gfp_mask) __attribute__((regparm(3))); # 405 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mm.h" extern void __free_pages(struct page *page, unsigned int order) __attribute__((regparm(3))); extern void free_pages(unsigned long addr, unsigned int order) __attribute__((regparm(3))); extern void show_free_areas(void); extern void show_free_areas_node(pg_data_t *pgdat); extern void clear_page_tables(struct mm_struct *, unsigned long, int); struct page * shmem_nopage(struct vm_area_struct * vma, unsigned long address, int no_share); struct file *shmem_file_setup(char * name, loff_t size); extern void shmem_lock(struct file * file, int lock); extern int shmem_zero_setup(struct vm_area_struct *); extern void zap_page_range(struct mm_struct *mm, unsigned long address, unsigned long size); extern int copy_page_range(struct mm_struct *dst, struct mm_struct *src, struct vm_area_struct *vma); extern int remap_page_range(unsigned long from, unsigned long to, unsigned long size, pgprot_t prot); extern int zeromap_page_range(unsigned long from, unsigned long size, pgprot_t prot); extern int vmtruncate(struct inode * inode, loff_t offset); extern pmd_t *__pmd_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address) __attribute__((regparm(3))); extern pte_t *pte_alloc(struct mm_struct *mm, pmd_t *pmd, unsigned long address) __attribute__((regparm(3))); extern int handle_mm_fault(struct mm_struct *mm,struct vm_area_struct *vma, unsigned long address, int write_access); extern int make_pages_present(unsigned long addr, unsigned long end); extern int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, int len, int write); extern int ptrace_readdata(struct task_struct *tsk, unsigned long src, char *dst, int len); extern int ptrace_writedata(struct task_struct *tsk, char * src, unsigned long dst, int len); extern int ptrace_attach(struct task_struct *tsk); extern int ptrace_detach(struct task_struct *, unsigned int); extern void ptrace_disable(struct task_struct *); static inline pmd_t *pmd_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address) { if (pgd_none(*pgd)) return __pmd_alloc(mm, pgd, address); return pmd_offset(pgd, address); } extern int pgt_cache_water[2]; extern int check_pgt_cache(void); extern void free_area_init(unsigned long * zones_size); extern void free_area_init_node(int nid, pg_data_t *pgdat, struct page *pmap, unsigned long * zones_size, unsigned long zone_start_paddr, unsigned long *zholes_size); extern void mem_init(void); extern void show_mem(void); extern void si_meminfo(struct sysinfo * val); extern void swapin_readahead(swp_entry_t); extern struct address_space swapper_space; static inline int is_page_cache_freeable(struct page * page) { return ((&(page)->count)->counter) - !!page->buffers == 1; } static inline int exclusive_swap_page(struct page *page) { if (!(__builtin_constant_p(0) ? constant_test_bit((0),(&(page)->flags)) : variable_test_bit((0),(&(page)->flags)))) __asm__ __volatile__(".byte 0x0f,0x0b"); if (!((page)->mapping == &swapper_space)) return 0; if (((&(page)->count)->counter) - !!page->buffers != 2) return 0; return swap_count(page) == 1; } extern void __free_pte(pte_t); extern void lock_vma_mappings(struct vm_area_struct *); extern void unlock_vma_mappings(struct vm_area_struct *); extern void insert_vm_struct(struct mm_struct *, struct vm_area_struct *); extern void __insert_vm_struct(struct mm_struct *, struct vm_area_struct *); extern void build_mmap_rb(struct mm_struct *); extern void exit_mmap(struct mm_struct *); extern unsigned long get_unmapped_area(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); extern unsigned long do_mmap_pgoff(struct file *file, unsigned long addr, unsigned long len, unsigned long prot, unsigned long flag, unsigned long pgoff); static inline unsigned long do_mmap(struct file *file, unsigned long addr, unsigned long len, unsigned long prot, unsigned long flag, unsigned long offset) { unsigned long ret = -22; if ((offset + (((len)+(1UL << 12)-1)&(~((1UL << 12)-1)))) < offset) goto out; if (!(offset & ~(~((1UL << 12)-1)))) ret = do_mmap_pgoff(file, addr, len, prot, flag, offset >> 12); out: return ret; } extern int do_munmap(struct mm_struct *, unsigned long, size_t); extern unsigned long do_brk(unsigned long, unsigned long); static inline void __vma_unlink(struct mm_struct * mm, struct vm_area_struct * vma, struct vm_area_struct * prev) { prev->vm_next = vma->vm_next; rb_erase(&vma->vm_rb, &mm->mm_rb); if (mm->mmap_cache == vma) mm->mmap_cache = prev; } static inline int can_vma_merge(struct vm_area_struct * vma, unsigned long vm_flags) { if (!vma->vm_file && vma->vm_flags == vm_flags) return 1; else return 0; } struct zone_t; extern void remove_inode_page(struct page *); extern unsigned long page_unuse(struct page *); extern void truncate_inode_pages(struct address_space *, loff_t); extern int filemap_sync(struct vm_area_struct *, unsigned long, size_t, unsigned int); extern struct page *filemap_nopage(struct vm_area_struct *, unsigned long, int); # 575 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mm.h" static inline int expand_stack(struct vm_area_struct * vma, unsigned long address) { unsigned long grow; address &= (~((1UL << 12)-1)); grow = (vma->vm_start - address) >> 12; if (vma->vm_end - address > get_current()->rlim[3].rlim_cur || ((vma->vm_mm->total_vm + grow) << 12) > get_current()->rlim[9].rlim_cur) return -12; (void)(&vma->vm_mm->page_table_lock); vma->vm_start = address; vma->vm_pgoff -= grow; vma->vm_mm->total_vm += grow; if (vma->vm_flags & 0x00002000) vma->vm_mm->locked_vm += grow; do { } while(0); return 0; } extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long addr); extern struct vm_area_struct * find_vma_prev(struct mm_struct * mm, unsigned long addr, struct vm_area_struct **pprev); static inline struct vm_area_struct * find_vma_intersection(struct mm_struct * mm, unsigned long start_addr, unsigned long end_addr) { struct vm_area_struct * vma = find_vma(mm,start_addr); if (vma && end_addr <= vma->vm_start) vma = ((void *)0); return vma; } extern struct vm_area_struct *find_extend_vma(struct mm_struct *mm, unsigned long addr); # 15 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/slab.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/cache.h" 1 # 16 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/slab.h" 2 # 48 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/slab.h" extern void kmem_cache_init(void); extern void kmem_cache_sizes_init(void); extern kmem_cache_t *kmem_find_general_cachep(size_t, int gfpflags); extern kmem_cache_t *kmem_cache_create(const char *, size_t, size_t, unsigned long, void (*)(void *, kmem_cache_t *, unsigned long), void (*)(void *, kmem_cache_t *, unsigned long)); extern int kmem_cache_destroy(kmem_cache_t *); extern int kmem_cache_shrink(kmem_cache_t *); extern void *kmem_cache_alloc(kmem_cache_t *, int); extern void kmem_cache_free(kmem_cache_t *, void *); extern void *kmalloc(size_t, int); extern void kfree(const void *); extern int kmem_cache_reap(int) __attribute__((regparm(3))); extern int slabinfo_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data); extern int slabinfo_write_proc(struct file *file, const char *buffer, unsigned long count, void *data); extern kmem_cache_t *vm_area_cachep; extern kmem_cache_t *mm_cachep; extern kmem_cache_t *names_cachep; extern kmem_cache_t *files_cachep; extern kmem_cache_t *filp_cachep; extern kmem_cache_t *dquot_cachep; extern kmem_cache_t *bh_cachep; extern kmem_cache_t *fs_cachep; extern kmem_cache_t *sigact_cachep; # 31 "/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/asm/scatterlist.h" 1 struct scatterlist { char * address; struct page * page; unsigned int offset; dma_addr_t dma_address; unsigned int length; }; # 32 "/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/string.h" 1 # 33 "/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/asm/io.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/io.h" 2 # 46 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/io.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/vmalloc.h" 1 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sched.h" 1 # 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/vmalloc.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mm.h" 1 # 6 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/vmalloc.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/spinlock.h" 1 # 7 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/vmalloc.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pgtable.h" 1 # 9 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/vmalloc.h" 2 struct vm_struct { unsigned long flags; void * addr; unsigned long size; struct vm_struct * next; }; extern struct vm_struct * get_vm_area (unsigned long size, unsigned long flags); extern void vfree(void * addr); extern void * __vmalloc (unsigned long size, int gfp_mask, pgprot_t prot); extern long vread(char *buf, char *addr, unsigned long count); extern void vmfree_area_pages(unsigned long address, unsigned long size); extern int vmalloc_area_pages(unsigned long address, unsigned long size, int gfp_mask, pgprot_t prot); static inline void * vmalloc (unsigned long size) { return __vmalloc(size, (0x20 | 0x10 | 0x40 | 0x80 | 0x100) | 0x02, ((pgprot_t) { (((0x001 | 0x002 | 0x040 | 0x020)) | 0x100) } )); } static inline void * vmalloc_dma (unsigned long size) { return __vmalloc(size, (0x20 | 0x10 | 0x40 | 0x80 | 0x100)|0x01, ((pgprot_t) { (((0x001 | 0x002 | 0x040 | 0x020)) | 0x100) } )); } static inline void * vmalloc_32(unsigned long size) { return __vmalloc(size, (0x20 | 0x10 | 0x40 | 0x80 | 0x100), ((pgprot_t) { (((0x001 | 0x002 | 0x040 | 0x020)) | 0x100) } )); } extern rwlock_t vmlist_lock; extern struct vm_struct * vmlist; # 47 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/io.h" 2 # 66 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/io.h" static inline unsigned long virt_to_phys(volatile void * address) { return ((unsigned long)(address)-((unsigned long)(0xC0000000))); } static inline void * phys_to_virt(unsigned long address) { return ((void *)((unsigned long)(address)+((unsigned long)(0xC0000000)))); } extern void * __ioremap(unsigned long offset, unsigned long size, unsigned long flags); static inline void * ioremap (unsigned long offset, unsigned long size) { return __ioremap(offset, size, 0); } static inline void * ioremap_nocache (unsigned long offset, unsigned long size) { return __ioremap(offset, size, 0x010); } extern void iounmap(void *addr); # 160 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/io.h" static inline int check_signature(unsigned long io_addr, const unsigned char *signature, int length) { int retval = 0; do { if ((*(volatile unsigned char *) ((void *)(io_addr))) != *signature) goto out; io_addr++; signature++; length--; } while (length); retval = 1; out: return retval; } static inline int isa_check_signature(unsigned long io_addr, const unsigned char *signature, int length) { int retval = 0; do { if ((*(volatile unsigned char *) ((void *)(((char *)(((unsigned long)(0xC0000000)))) + (io_addr)))) != *signature) goto out; io_addr++; signature++; length--; } while (length); retval = 1; out: return retval; } # 285 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/io.h" static inline unsigned char inb(unsigned short port) { unsigned char _v; __asm__ __volatile__ ("in" "b" " %" "w" "1,%" "" "0" : "=a" (_v) : "Nd" (port) ); return _v; } static inline unsigned char inb_p(unsigned short port) { unsigned char _v; __asm__ __v olatile__ ("in" "b" " %" "w" "1,%" "" "0" "\noutb %%al,$0x80" : "=a" (_v) : "Nd" (port) ); return _v; } static inline unsigned short inw(unsigned short port) { unsigned short _v; __asm__ __volatile__ ("in" "w" " %" "w" "1,%" "" "0" : "=a" (_v) : "Nd" (port) ); return _v; } static inline unsigned short inw_p(unsigned short port) { unsigned short _v; __asm__ __volatile__ ("in" "w" " %" "w" "1,%" "" "0" "\noutb %%al,$0x80" : "=a" (_v) : "Nd" (port) ); return _v; } static inline unsigned int inl(unsigned short port) { unsigned int _v; __asm__ __volatile__ ("in" "l" " %" "w" "1,%" "" "0" : "=a" (_v) : "Nd" (port) ); return _v; } static inline unsigned int inl_p(unsigned short port) { unsigned int _v; __asm__ __volat ile__ ("in" "l" " %" "w" "1,%" "" "0" "\noutb %%al,$0x80" : "=a" (_v) : "Nd" (port) ); return _v; } static inline void outb(unsigned char value, unsigned short port) { __asm__ __volatile__ ("out" "b" " %" "b" "0,%" "w" "1" : : "a" (value), "Nd" (port)); } static inline void outb_p(unsigned char value, unsigned short port) { __asm__ __volatile__ ("out" "b" " %" "b" "0,%" "w" "1" "\noutb %%al,$0x80" : : "a" (value), "Nd" (port));} static inline void outw(unsigned short value, unsigned short port) { __asm__ __volatile__ ("out" "w" " %" "w" "0,%" "w" "1" : : "a" (value), "Nd" (port)); } static inline void outw_p(unsigned short value, unsigned short port) { __asm__ __volatile__ ("out " "w" " %" "w" "0,%" "w" "1" "\noutb %%al,$0x80" : : "a" (value), "Nd" (port));} static inline void outl(unsigned int value, unsigned short port) { __asm__ __volatile__ ("out" "l" " %" "0,%" "w" "1" : : "a" (value), "Nd" (port)); } static inline void outl_p(unsigned int value, unsigned short port) { __asm__ __volatile__ ("out" "l" " %" "0,%" "w" "1" "\noutb %%al,$0x80" : : "a" (value), "Nd" (port));} static inline void insb(unsigned short port, void * addr, unsigned long count) { __asm__ __volatile__ ("rep ; ins" "b" : "=D" (addr), "=c" (count) : "d" (port),"0" (addr),"1" (count)); } static inline void insw(unsigned short port, void * addr, unsigned long count) { __asm__ __volatile__ ("rep ; ins" "w" : "=D" (addr), "=c" (count) : "d" (port),"0" (addr),"1" (count)); } static inline void insl(unsigned short port, void * addr, unsigned long count) { __asm__ __volatile__ ("rep ; ins" "l" : "=D" (addr), "=c" (count) : "d" (port),"0" (addr),"1" (count)); } static inline void outsb(unsigned short port, const void * addr, unsigned long count) { __asm__ __volatile__ ("rep ; outs" "b" : "=S" (addr), "=c" (count) : "d" (port),"0" (addr),"1" (count)); } static inline void outsw(unsigned short port, const void * addr, unsigned long count) { __asm__ __volatile__ ("rep ; outs" "w" : "=S" (addr), "=c" (count) : "d" (port),"0" (addr),"1" (count)); } static inline void outsl(unsigned short port, const void * addr, unsigned long count) { __asm__ __volatile__ ("rep ; outs" "l" : "=S" (addr), "=c" (count) : "d" (port),"0" (addr),"1" (count)); } # 34 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pci.h" 2 struct pci_dev; # 50 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pci.h" extern void *pci_alloc_consistent(struct pci_dev *hwdev, size_t size, dma_addr_t *dma_handle); # 61 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pci.h" extern void pci_free_consistent(struct pci_dev *hwdev, size_t size, void *vaddr, dma_addr_t dma_handle); static inline dma_addr_t pci_map_single(struct pci_dev *hwdev, void *ptr, size_t size, int direction) { if (direction == 3) __asm__ __volatile__(".byte 0x0f,0x0b"); return virt_to_phys(ptr); } # 85 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pci.h" static inline void pci_unmap_single(struct pci_dev *hwdev, dma_addr_t dma_addr, size_t size, int direction) { if (direction == 3) __asm__ __volatile__(".byte 0x0f,0x0b"); } static inline dma_addr_t pci_map_page(struct pci_dev *hwdev, struct page *page, unsigned long offset, size_t size, int direction) { if (direction == 3) __asm__ __volatile__(".byte 0x0f,0x0b"); return (page - mem_map) * (1UL << 12) + offset; } static inline void pci_unmap_page(struct pci_dev *hwdev, dma_addr_t dma_address, size_t size, int direction) { if (direction == 3) __asm__ __volatile__(".byte 0x0f,0x0b"); } # 129 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pci.h" static inline int pci_map_sg(struct pci_dev *hwdev, struct scatterlist *sg, int nents, int direction) { int i; if (direction == 3) __asm__ __volatile__(".byte 0x0f,0x0b"); for (i = 0; i < nents; i++ ) { if (sg[i].address && sg[i].page) __asm__ __volatile__(".byte 0x0f,0x0b"); else if (!sg[i].address && !sg[i].page) __asm__ __volatile__(".byte 0x0f,0x0b"); if (sg[i].address) sg[i].dma_address = virt_to_phys(sg[i].address); else sg[i].dma_address = ((sg[i].page - mem_map) << 12) + sg[i].offset; } return nents; } static inline void pci_unmap_sg(struct pci_dev *hwdev, struct scatterlist *sg, int nents, int direction) { if (direction == 3) __asm__ __volatile__(".byte 0x0f,0x0b"); } # 176 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pci.h" static inline void pci_dma_sync_single(struct pci_dev *hwdev, dma_addr_t dma_handle, size_t size, int direction) { if (direction == 3) __asm__ __volatile__(".byte 0x0f,0x0b"); } static inline void pci_dma_sync_sg(struct pci_dev *hwdev, struct scatterlist *sg, int nelems, int direction) { if (direction == 3) __asm__ __volatile__(".byte 0x0f,0x0b"); } static inline int pci_dma_supported(struct pci_dev *hwdev, u64 mask) { if(mask < 0x00ffffff) return 0; return 1; } static __inline__ dma64_addr_t pci_dac_page_to_dma(struct pci_dev *pdev, struct page *page, unsigned long offset, int direction) { return ((dma64_addr_t) ((page - mem_map) << 12) + (dma64_addr_t) offset); } static __inline__ struct page * pci_dac_dma_to_page(struct pci_dev *pdev, dma64_addr_t dma_addr) { unsigned long poff = (dma_addr >> 12); return mem_map + poff; } static __inline__ unsigned long pci_dac_dma_to_offset(struct pci_dev *pdev, dma64_addr_t dma_addr) { return (dma_addr & ~(~((1UL << 12)-1))); } static __inline__ void pci_dac_dma_sync_single(struct pci_dev *pdev, dma64_addr_t dma_addr, size_t len, int direction) { } # 257 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pci.h" static inline int pci_controller_num(struct pci_dev *dev) { return 0; } extern int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, enum pci_mmap_state mmap_state, int write_combine); # 606 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/pci.h" 2 # 671 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/pci.h" static inline int pci_module_init(struct pci_driver *drv) { int rc = pci_register_driver (drv); if (rc > 0) return 0; if (rc == 0) return 0; pci_unregister_driver (drv); return rc; } # 716 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/pci.h" static inline void *pci_get_drvdata (struct pci_dev *pdev) { return pdev->driver_data; } static inline void pci_set_drvdata (struct pci_dev *pdev, void *data) { pdev->driver_data = data; } # 733 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/pci.h" struct pci_fixup { int pass; u16 vendor, device; void (*hook)(struct pci_dev *dev); }; extern struct pci_fixup pcibios_fixups[]; void pci_fixup_device(int pass, struct pci_dev *dev); extern int pci_pci_problems; # 149 "8139too.c" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/init.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/init.h" 2 # 48 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/init.h" typedef int (*initcall_t)(void); typedef void (*exitcall_t)(void); extern initcall_t __initcall_start, __initcall_end; # 61 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/init.h" struct kernel_param { const char *str; int (*setup_func)(char *); }; extern struct kernel_param __setup_start, __setup_end; # 150 "8139too.c" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ioport.h" 1 # 151 "8139too.c" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/netdevice.h" 1 # 28 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/netdevice.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/if.h" 1 # 22 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/if.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/types.h" 1 # 23 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/if.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/socket.h" 1 # 24 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/if.h" 2 # 58 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/if.h" struct ifmap { unsigned long mem_start; unsigned long mem_end; unsigned short base_addr; unsigned char irq; unsigned char dma; unsigned char port; }; # 76 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/if.h" struct ifreq { union { char ifrn_name[16]; } ifr_ifrn; union { struct sockaddr ifru_addr; struct sockaddr ifru_dstaddr; struct sockaddr ifru_broadaddr; struct sockaddr ifru_netmask; struct sockaddr ifru_hwaddr; short ifru_flags; int ifru_ivalue; int ifru_mtu; struct ifmap ifru_map; char ifru_slave[16]; char ifru_newname[16]; char * ifru_data; } ifr_ifru; }; # 125 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/if.h" struct ifconf { int ifc_len; union { char * ifcu_buf; struct ifreq *ifcu_req; } ifc_ifcu; }; # 29 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/netdevice.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/if_ether.h" 1 # 92 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/if_ether.h" struct ethhdr { unsigned char h_dest[6]; unsigned char h_source[6]; unsigned short h_proto; }; # 30 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/netdevice.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/if_packet.h" 1 struct sockaddr_pkt { unsigned short spkt_family; unsigned char spkt_device[14]; unsigned short spkt_protocol; }; struct sockaddr_ll { unsigned short sll_family; unsigned short sll_protocol; int sll_ifindex; unsigned short sll_hatype; unsigned char sll_pkttype; unsigned char sll_halen; unsigned char sll_addr[8]; }; # 43 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/if_packet.h" struct tpacket_stats { unsigned int tp_packets; unsigned int tp_drops; }; struct tpacket_hdr { unsigned long tp_status; unsigned int tp_len; unsigned int tp_snaplen; unsigned short tp_mac; unsigned short tp_net; unsigned int tp_sec; unsigned int tp_usec; }; # 82 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/if_packet.h" struct tpacket_req { unsigned int tp_block_size; unsigned int tp_block_nr; unsigned int tp_frame_size; unsigned int tp_frame_nr; }; struct packet_mreq { int mr_ifindex; unsigned short mr_type; unsigned short mr_alen; unsigned char mr_address[8]; }; # 31 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/netdevice.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/atomic.h" 1 # 33 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/netdevice.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/cache.h" 1 # 34 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/netdevice.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/byteorder.h" 1 # 35 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/netdevice.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/config.h" 1 # 38 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/netdevice.h" 2 struct divert_blk; # 96 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/netdevice.h" struct net_device_stats { unsigned long rx_packets; unsigned long tx_packets; unsigned long rx_bytes; unsigned long tx_bytes; unsigned long rx_errors; unsigned long tx_errors; unsigned long rx_dropped; unsigned long tx_dropped; unsigned long multicast; unsigned long collisions; unsigned long rx_length_errors; unsigned long rx_over_errors; unsigned long rx_crc_errors; unsigned long rx_frame_errors; unsigned long rx_fifo_errors; unsigned long rx_missed_errors; unsigned long tx_aborted_errors; unsigned long tx_carrier_errors; unsigned long tx_fifo_errors; unsigned long tx_heartbeat_errors; unsigned long tx_window_errors; unsigned long rx_compressed; unsigned long tx_compressed; }; enum { IF_PORT_UNKNOWN = 0, IF_PORT_10BASE2, IF_PORT_10BASET, IF_PORT_AUI, IF_PORT_100BASET, IF_PORT_100BASETX, IF_PORT_100BASEFX }; extern const char *if_port_text[]; # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/cache.h" 1 # 146 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/netdevice.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" 1 # 17 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" # 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/skbuff.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/skbuff.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sched.h" 1 # 20 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/time.h" 1 # 21 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.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/skbuff.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/atomic.h" 1 # 24 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/types.h" 1 # 25 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/spinlock.h" 1 # 26 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mm.h" 1 # 27 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/highmem.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/highmem.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pgalloc.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/pgalloc.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/processor.h" 1 # 6 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pgalloc.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/fixmap.h" 1 # 7 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pgalloc.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/threads.h" 1 # 8 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pgalloc.h" 2 # 51 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pgalloc.h" static __inline__ pgd_t *get_pgd_slow(void) { pgd_t *pgd = (pgd_t *)__get_free_pages(((0x20 | 0x10 | 0x40 | 0x80 | 0x100)),0); if (pgd) { (__builtin_constant_p(0) ? (__builtin_constant_p((((((unsigned long)(0xC0000000)))/(1UL << 22)) * sizeof(pgd_t))) ? __constant_c_and_count_memset(((pgd)),((0x01010101UL*(unsigned char)(0))),((((((unsigned long)(0xC0000000)))/(1UL << 22)) * sizeof(pgd_t)))) : __constant_c_memset(((pgd)),((0x01010101UL*(unsigned char)(0))),((((((unsigned long)(0xC0000000)))/(1UL << 22)) * sizeof(pgd_t))))) : (__builtin_constant_p((((((unsigned long)(0xC0000000)))/(1UL << 22)) * sizeof(pgd_t))) ? __memset_g eneric((((pgd))),(((0))),(((((((unsigned long)(0xC0000000)))/(1UL << 22)) * sizeof(pgd_t))))) : __memset_generic(((pgd)),((0)),((((((unsigned long)(0xC0000000)))/(1UL << 22)) * sizeof(pgd_t)))))); (__builtin_constant_p((1024 - ((((unsigned long)(0xC0000000)))/(1UL << 22))) * sizeof(pgd_t)) ? __constant_memcpy3d((pgd + ((((unsigned long)(0xC0000000)))/(1UL << 22))),(swapper_pg_dir + ((((unsigned long)(0xC0000000)))/(1UL << 22))),((1 024 - ((((unsigned long)(0xC0000000)))/(1UL << 22))) * sizeof(pgd_t))) : __memcpy3d((pgd + ((((unsigned long)(0xC0000000)))/(1UL << 22))),(swapper_pg_dir + ((((unsigned long)(0xC0000000)))/(1UL << 22))),((1024 - ((((unsigned long)(0xC0000000)))/(1UL << 2 2))) * sizeof(pgd_t)))); } return pgd; } static __inline__ pgd_t *get_pgd_fast(void) { unsigned long *ret; if ((ret = (boot_cpu_data.pgd_quick)) != ((void *)0)) { (boot_cpu_data.pgd_quick) = (unsigned long *)(*ret); ret[0] = 0; (boot_cpu_data.pgtable_cache_sz)--; } else ret = (unsigned long *)get_pgd_slow(); return (pgd_t *)ret; } static __inline__ void free_pgd_fast(pgd_t *pgd) { *(unsigned long *)pgd = (unsigned long) (boot_cpu_data.pgd_quick); (boot_cpu_data.pgd_quick) = (unsigned long *) pgd; (boot_cpu_data.pgtable_cache_sz)++; } static __inline__ void free_pgd_slow(pgd_t *pgd) { free_pages(((unsigned long)pgd),0); } static inline pte_t *pte_alloc_one(struct mm_struct *mm, unsigned long address) { pte_t *pte; pte = (pte_t *) __get_free_pages(((0x20 | 0x10 | 0x40 | 0x80 | 0x100)),0); if (pte) mmx_clear_page((void *)(pte)); return pte; } static inline pte_t *pte_alloc_one_fast(struct mm_struct *mm, unsigned long address) { unsigned long *ret; if ((ret = (unsigned long *)(boot_cpu_data.pte_quick)) != ((void *)0)) { (boot_cpu_data.pte_quick) = (unsigned long *)(*ret); ret[0] = ret[1]; (boot_cpu_data.pgtable_cache_sz)--; } return (pte_t *)ret; } static __inline__ void pte_free_fast(pte_t *pte) { *(unsigned long *)pte = (unsigned long) (boot_cpu_data.pte_quick); (boot_cpu_data.pte_quick) = (unsigned long *) pte; (boot_cpu_data.pgtable_cache_sz)++; } static __inline__ void pte_free_slow(pte_t *pte) { free_pages(((unsigned long)pte),0); } # 153 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pgalloc.h" extern int do_check_pgt_cache(int, int); # 175 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pgalloc.h" static inline void flush_tlb_mm(struct mm_struct *mm) { if (mm == get_current()->active_mm) do { unsigned int tmpreg; __asm__ __volatile__( "movl %%cr3, %0; # flush TLB \n" "movl %0, %%cr3; \n" : "=r" (tmpreg) :: "memory"); } while (0); } static inline void flush_tlb_page(struct vm_area_struct *vma, unsigned long addr) { if (vma->vm_mm == get_current()->active_mm) __asm__ __volatile__("invlpg %0": :"m" (*(char *) addr)); } static inline void flush_tlb_range(struct mm_struct *mm, unsigned long start, unsigned long end) { if (mm == get_current()->active_mm) do { unsigned int tmpreg; __asm__ __volatile__( "movl %%cr3, %0; # flush TLB \n" "movl %0, %%cr3; \n" : "=r" (tmpreg) :: "memory"); } while (0); } # 227 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/pgalloc.h" static inline void flush_tlb_pgtables(struct mm_struct *mm, unsigned long start, unsigned long end) { } # 6 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/highmem.h" 2 # 31 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/highmem.h" static inline unsigned int nr_free_highpages(void) { return 0; } static inline void *kmap(struct page *page) { return ((page)->virtual); } # 46 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/highmem.h" static inline void clear_user_highpage(struct page *page, unsigned long vaddr) { void *addr = kmap(page); mmx_clear_page((void *)(addr)); do { } while (0); } static inline void clear_highpage(struct page *page) { mmx_clear_page((void *)(kmap(page))); do { } while (0); } static inline void memclear_highpage(struct page *page, unsigned int offset, unsigned int size) { char *kaddr; if (offset + size > (1UL << 12)) __asm__ __volatile__(".byte 0x0f,0x0b"); kaddr = kmap(page); (__builtin_constant_p(0) ? (__builtin_constant_p((size)) ? __constant_c_and_count_memset(((kaddr + offset)),((0x01010101UL*(unsigned char)(0))),((size))) : __constant_c_memset(((kaddr + offset)),((0x01010101UL*(unsigned char)(0))),((size)))) : (_ _builtin_constant_p((size)) ? __memset_generic((((kaddr + offset))),(((0))),(((size)))) : __memset_generic(((kaddr + offset)),((0)),((size))))); do { } while (0); } static inline void memclear_highpage_flush(struct page *page, unsigned int offset, unsigned int size) { char *kaddr; if (offset + size > (1UL << 12)) __asm__ __volatile__(".byte 0x0f,0x0b"); kaddr = kmap(page); (__builtin_constant_p(0) ? (__builtin_constant_p((size)) ? __constant_c_and_count_memset(((kaddr + offset)),((0x01010101UL*(unsigned char)(0))),((size))) : __constant_c_memset(((kaddr + offset)),((0x01010101UL*(unsigned char)(0))),((size)))) : (_ _builtin_constant_p((size)) ? __memset_generic((((kaddr + offset))),(((0))),(((size)))) : __memset_generic(((kaddr + offset)),((0)),((size))))); do { } while (0); do { } while (0); } static inline void copy_user_highpage(struct page *to, struct page *from, unsigned long vaddr) { char *vfrom, *vto; vfrom = kmap(from); vto = kmap(to); mmx_copy_page(vto,vfrom); do { } while (0); do { } while (0); } static inline void copy_highpage(struct page *to, struct page *from) { char *vfrom, *vto; vfrom = kmap(from); vto = kmap(to); mmx_copy_page(vto,vfrom); do { } while (0); do { } while (0); } # 28 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" 2 # 95 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" struct sk_buff_head { struct sk_buff * next; struct sk_buff * prev; __u32 qlen; spinlock_t lock; }; struct sk_buff; typedef struct skb_frag_struct skb_frag_t; struct skb_frag_struct { struct page *page; __u16 page_offset; __u16 size; }; struct skb_shared_info { atomic_t dataref; unsigned int nr_frags; struct sk_buff *frag_list; skb_frag_t frags[6]; }; struct sk_buff { struct sk_buff * next; struct sk_buff * prev; struct sk_buff_head * list; struct sock *sk; struct timeval stamp; struct net_device *dev; union { struct tcphdr *th; struct udphdr *uh; struct icmphdr *icmph; struct igmphdr *igmph; struct iphdr *ipiph; struct spxhdr *spxh; unsigned char *raw; } h; union { struct iphdr *iph; struct ipv6hdr *ipv6h; struct arphdr *arph; struct ipxhdr *ipxh; unsigned char *raw; } nh; union { struct ethhdr *ethernet; unsigned char *raw; } mac; struct dst_entry *dst; char cb[48]; unsigned int len; unsigned int data_len; unsigned int csum; unsigned char __unused, cloned, pkt_type, ip_summed; __u32 priority; atomic_t users; unsigned short protocol; unsigned short security; unsigned int truesize; unsigned char *head; unsigned char *data; unsigned char *tail; unsigned char *end; void (*destructor)(struct sk_buff *); # 216 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" }; # 225 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/slab.h" 1 # 226 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/system.h" 1 # 228 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" 2 extern void __kfree_skb(struct sk_buff *skb); extern struct sk_buff * alloc_skb(unsigned int size, int priority); extern void kfree_skbmem(struct sk_buff *skb); extern struct sk_buff * skb_clone(struct sk_buff *skb, int priority); extern struct sk_buff * skb_copy(const struct sk_buff *skb, int priority); extern struct sk_buff * pskb_copy(struct sk_buff *skb, int gfp_mask); extern int pskb_expand_head(struct sk_buff *skb, int nhead, int ntail, int gfp_mask); extern struct sk_buff * skb_realloc_headroom(struct sk_buff *skb, unsigned int headroom); extern struct sk_buff * skb_copy_expand(const struct sk_buff *skb, int newheadroom, int newtailroom, int priority); extern void skb_over_panic(struct sk_buff *skb, int len, void *here); extern void skb_under_panic(struct sk_buff *skb, int len, void *here); # 255 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline int skb_queue_empty(struct sk_buff_head *list) { return (list->next == (struct sk_buff *) list); } # 268 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline struct sk_buff *skb_get(struct sk_buff *skb) { atomic_inc(&skb->users); return skb; } # 287 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline void kfree_skb(struct sk_buff *skb) { if (((&skb->users)->counter) == 1 || atomic_dec_and_test(&skb->users)) __kfree_skb(skb); } static inline void kfree_skb_fast(struct sk_buff *skb) { if (((&skb->users)->counter) == 1 || atomic_dec_and_test(&skb->users)) kfree_skbmem(skb); } # 309 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline int skb_cloned(struct sk_buff *skb) { return skb->cloned && ((&((struct skb_shared_info *)((skb)->end))->dataref)->counter) != 1; } # 322 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline int skb_shared(struct sk_buff *skb) { return (((&skb->users)->counter) != 1); } # 341 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline struct sk_buff *skb_share_check(struct sk_buff *skb, int pri) { if (skb_shared(skb)) { struct sk_buff *nskb; nskb = skb_clone(skb, pri); kfree_skb(skb); return nskb; } return skb; } # 374 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline struct sk_buff *skb_unshare(struct sk_buff *skb, int pri) { struct sk_buff *nskb; if(!skb_cloned(skb)) return skb; nskb=skb_copy(skb, pri); kfree_skb(skb); return nskb; } # 398 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline struct sk_buff *skb_peek(struct sk_buff_head *list_) { struct sk_buff *list = ((struct sk_buff *)list_)->next; if (list == (struct sk_buff *)list_) list = ((void *)0); return list; } # 420 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline struct sk_buff *skb_peek_tail(struct sk_buff_head *list_) { struct sk_buff *list = ((struct sk_buff *)list_)->prev; if (list == (struct sk_buff *)list_) list = ((void *)0); return list; } # 435 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline __u32 skb_queue_len(struct sk_buff_head *list_) { return(list_->qlen); } static inline void skb_queue_head_init(struct sk_buff_head *list) { do { } while(0); list->prev = (struct sk_buff *)list; list->next = (struct sk_buff *)list; list->qlen = 0; } # 466 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline void __skb_queue_head(struct sk_buff_head *list, struct sk_buff *newsk) { struct sk_buff *prev, *next; newsk->list = list; list->qlen++; prev = (struct sk_buff *)list; next = prev->next; newsk->next = next; newsk->prev = prev; next->prev = newsk; prev->next = newsk; } # 493 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline void skb_queue_head(struct sk_buff_head *list, struct sk_buff *newsk) { unsigned long flags; do { __asm__ __volatile__("pushfl ; popl %0 ; cli":"=g" (flags): :"memory"); (void)(&list->lock); } while (0); __skb_queue_head(list, newsk); do { do { } while(0); __asm__ __volatile__("pushl %0 ; popfl": :"g" (flags):"memory", "cc"); } while (0); } # 514 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline void __skb_queue_tail(struct sk_buff_head *list, struct sk_buff *newsk) { struct sk_buff *prev, *next; newsk->list = list; list->qlen++; next = (struct sk_buff *)list; prev = next->prev; newsk->next = next; newsk->prev = prev; next->prev = newsk; prev->next = newsk; } # 540 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline void skb_queue_tail(struct sk_buff_head *list, struct sk_buff *newsk) { unsigned long flags; do { __asm__ __volatile__("pushfl ; popl %0 ; cli":"=g" (flags): :"memory"); (void)(&list->lock); } while (0); __skb_queue_tail(list, newsk); do { do { } while(0); __asm__ __volatile__("pushl %0 ; popfl": :"g" (flags):"memory", "cc"); } while (0); } # 558 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline struct sk_buff *__skb_dequeue(struct sk_buff_head *list) { struct sk_buff *next, *prev, *result; prev = (struct sk_buff *) list; next = prev->next; result = ((void *)0); if (next != prev) { result = next; next = next->next; list->qlen--; next->prev = prev; prev->next = next; result->next = ((void *)0); result->prev = ((void *)0); result->list = ((void *)0); } return result; } # 587 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline struct sk_buff *skb_dequeue(struct sk_buff_head *list) { long flags; struct sk_buff *result; do { __asm__ __volatile__("pushfl ; popl %0 ; cli":"=g" (flags): :"memory"); (void)(&list->lock); } while (0); result = __skb_dequeue(list); do { do { } while(0); __asm__ __volatile__("pushl %0 ; popfl": :"g" (flags):"memory", "cc"); } while (0); return result; } static inline void __skb_insert(struct sk_buff *newsk, struct sk_buff * prev, struct sk_buff *next, struct sk_buff_head * list) { newsk->next = next; newsk->prev = prev; next->prev = newsk; prev->next = newsk; newsk->list = list; list->qlen++; } # 624 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline void skb_insert(struct sk_buff *old, struct sk_buff *newsk) { unsigned long flags; do { __asm__ __volatile__("pushfl ; popl %0 ; cli":"=g" (flags): :"memory"); (void)(&old->list->lock); } while (0); __skb_insert(newsk, old->prev, old, old->list); do { do { } while(0); __asm__ __volatile__("pushl %0 ; popfl": :"g" (flags):"memory", "cc"); } while (0); } static inline void __skb_append(struct sk_buff *old, struct sk_buff *newsk) { __skb_insert(newsk, old, old->next, old->list); } # 653 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline void skb_append(struct sk_buff *old, struct sk_buff *newsk) { unsigned long flags; do { __asm__ __volatile__("pushfl ; popl %0 ; cli":"=g" (flags): :"memory"); (void)(&old->list->lock); } while (0); __skb_append(old, newsk); do { do { } while(0); __asm__ __volatile__("pushl %0 ; popfl": :"g" (flags):"memory", "cc"); } while (0); } static inline void __skb_unlink(struct sk_buff *skb, struct sk_buff_head *list) { struct sk_buff * next, * prev; list->qlen--; next = skb->next; prev = skb->prev; skb->next = ((void *)0); skb->prev = ((void *)0); skb->list = ((void *)0); next->prev = prev; prev->next = next; } # 694 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline void skb_unlink(struct sk_buff *skb) { struct sk_buff_head *list = skb->list; if(list) { unsigned long flags; do { __asm__ __volatile__("pushfl ; popl %0 ; cli":"=g" (flags): :"memory"); (void)(&list->lock); } while (0); if(skb->list == list) __skb_unlink(skb, skb->list); do { do { } while(0); __asm__ __volatile__("pushl %0 ; popfl": :"g" (flags):"memory", "cc"); } while (0); } } # 719 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline struct sk_buff *__skb_dequeue_tail(struct sk_buff_head *list) { struct sk_buff *skb = skb_peek_tail(list); if (skb) __skb_unlink(skb, list); return skb; } # 736 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline struct sk_buff *skb_dequeue_tail(struct sk_buff_head *list) { long flags; struct sk_buff *result; do { __asm__ __volatile__("pushfl ; popl %0 ; cli":"=g" (flags): :"memory"); (void)(&list->lock); } while (0); result = __skb_dequeue_tail(list); do { do { } while(0); __asm__ __volatile__("pushl %0 ; popfl": :"g" (flags):"memory", "cc"); } while (0); return result; } static inline int skb_is_nonlinear(const struct sk_buff *skb) { return skb->data_len; } static inline int skb_headlen(const struct sk_buff *skb) { return skb->len - skb->data_len; } # 765 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline unsigned char *__skb_put(struct sk_buff *skb, unsigned int len) { unsigned char *tmp=skb->tail; do { if (skb_is_nonlinear(skb)) __asm__ __volatile__(".byte 0x0f,0x0b"); } while (0); skb->tail+=len; skb->len+=len; return tmp; } # 784 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline unsigned char *skb_put(struct sk_buff *skb, unsigned int len) { unsigned char *tmp=skb->tail; do { if (skb_is_nonlinear(skb)) __asm__ __volatile__(".byte 0x0f,0x0b"); } while (0); skb->tail+=len; skb->len+=len; if(skb->tail>skb->end) { skb_over_panic(skb, len, ({ void *pc; __asm__("movl $1f,%0\n1:":"=g" (pc)); pc; })); } return tmp; } static inline unsigned char *__skb_push(struct sk_buff *skb, unsigned int len) { skb->data-=len; skb->len+=len; return skb->data; } # 813 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline unsigned char *skb_push(struct sk_buff *skb, unsigned int len) { skb->data-=len; skb->len+=len; if(skb->datahead) { skb_under_panic(skb, len, ({ void *pc; __asm__("movl $1f,%0\n1:":"=g" (pc)); pc; })); } return skb->data; } static inline char *__skb_pull(struct sk_buff *skb, unsigned int len) { skb->len-=len; if (skb->len < skb->data_len) __asm__ __volatile__(".byte 0x0f,0x0b"); return skb->data+=len; } # 842 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline unsigned char * skb_pull(struct sk_buff *skb, unsigned int len) { if (len > skb->len) return ((void *)0); return __skb_pull(skb,len); } extern unsigned char * __pskb_pull_tail(struct sk_buff *skb, int delta); static inline char *__pskb_pull(struct sk_buff *skb, unsigned int len) { if (len > skb_headlen(skb) && __pskb_pull_tail(skb, len-skb_headlen(skb)) == ((void *)0)) return ((void *)0); skb->len -= len; return skb->data += len; } static inline unsigned char * pskb_pull(struct sk_buff *skb, unsigned int len) { if (len > skb->len) return ((void *)0); return __pskb_pull(skb,len); } static inline int pskb_may_pull(struct sk_buff *skb, unsigned int len) { if (len <= skb_headlen(skb)) return 1; if (len > skb->len) return 0; return (__pskb_pull_tail(skb, len-skb_headlen(skb)) != ((void *)0)); } # 883 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline int skb_headroom(const struct sk_buff *skb) { return skb->data-skb->head; } # 895 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline int skb_tailroom(const struct sk_buff *skb) { return skb_is_nonlinear(skb) ? 0 : skb->end-skb->tail; } # 909 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline void skb_reserve(struct sk_buff *skb, unsigned int len) { skb->data+=len; skb->tail+=len; } extern int ___pskb_trim(struct sk_buff *skb, unsigned int len, int realloc); static inline void __skb_trim(struct sk_buff *skb, unsigned int len) { if (!skb->data_len) { skb->len = len; skb->tail = skb->data+len; } else { ___pskb_trim(skb, len, 0); } } # 936 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline void skb_trim(struct sk_buff *skb, unsigned int len) { if (skb->len > len) { __skb_trim(skb, len); } } static inline int __pskb_trim(struct sk_buff *skb, unsigned int len) { if (!skb->data_len) { skb->len = len; skb->tail = skb->data+len; return 0; } else { return ___pskb_trim(skb, len, 1); } } static inline int pskb_trim(struct sk_buff *skb, unsigned int len) { if (len < skb->len) return __pskb_trim(skb, len); return 0; } # 972 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline void skb_orphan(struct sk_buff *skb) { if (skb->destructor) skb->destructor(skb); skb->destructor = ((void *)0); skb->sk = ((void *)0); } # 990 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline void skb_queue_purge(struct sk_buff_head *list) { struct sk_buff *skb; while ((skb=skb_dequeue(list))!=((void *)0)) kfree_skb(skb); } # 1007 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline void __skb_queue_purge(struct sk_buff_head *list) { struct sk_buff *skb; while ((skb=__skb_dequeue(list))!=((void *)0)) kfree_skb(skb); } # 1027 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline struct sk_buff *__dev_alloc_skb(unsigned int length, int gfp_mask) { struct sk_buff *skb; skb = alloc_skb(length+16, gfp_mask); if (skb) skb_reserve(skb,16); return skb; } # 1051 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline struct sk_buff *dev_alloc_skb(unsigned int length) { return __dev_alloc_skb(length, (0x20)); } # 1069 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" static inline int skb_cow(struct sk_buff *skb, unsigned int headroom) { int delta = (headroom > 16 ? headroom : 16) - skb_headroom(skb); if (delta < 0) delta = 0; if (delta || skb_cloned(skb)) return pskb_expand_head(skb, (delta+15)&~15, 0, (0x20)); return 0; } # 1089 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/skbuff.h" int skb_linearize(struct sk_buff *skb, int gfp); static inline void *kmap_skb_frag(const skb_frag_t *frag) { return kmap(frag->page); } static inline void kunmap_skb_frag(void *vaddr) { do { } while (0); } extern struct sk_buff * skb_recv_datagram(struct sock *sk,unsigned flags,int noblock, int *err); extern unsigned int datagram_poll(struct file *file, struct socket *sock, struct poll_table_struct *wait); extern int skb_copy_datagram(const struct sk_buff *from, int offset, char *to,int size); extern int skb_copy_datagram_iovec(const struct sk_buff *from, int offset, struct iovec *to,int size); extern int skb_copy_and_csum_datagram(const struct sk_buff *skb, int offset, u8 *to, int len, unsigned int *csump); extern int skb_copy_and_csum_datagram_iovec(const struct sk_buff *skb, int hlen, struct iovec *iov); extern void skb_free_datagram(struct sock * sk, struct sk_buff *skb); extern unsigned int skb_checksum(const struct sk_buff *skb, int offset, int len, unsigned int csum); extern int skb_copy_bits(const struct sk_buff *skb, int offset, void *to, int len); extern unsigned int skb_copy_and_csum_bits(const struct sk_buff *skb, int offset, u8 *to, int len, unsigned int csum); extern void skb_copy_and_csum_dev(const struct sk_buff *skb, u8 *to); extern void skb_init(void); extern void skb_add_mtu(int mtu); # 147 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/netdevice.h" 2 struct neighbour; struct neigh_parms; struct sk_buff; struct netif_rx_stats { unsigned total; unsigned dropped; unsigned time_squeeze; unsigned throttled; unsigned fastroute_hit; unsigned fastroute_success; unsigned fastroute_defer; unsigned fastroute_deferred_out; unsigned fastroute_latency_reduction; unsigned cpu_collision; } __attribute__ ((__aligned__((1 << ((6)))))); extern struct netif_rx_stats netdev_rx_stat[]; struct dev_mc_list { struct dev_mc_list *next; __u8 dmi_addr[8]; unsigned char dmi_addrlen; int dmi_users; int dmi_gusers; }; struct hh_cache { struct hh_cache *hh_next; atomic_t hh_refcnt; unsigned short hh_type; int hh_len; int (*hh_output)(struct sk_buff *skb); rwlock_t hh_lock; unsigned long hh_data[16/sizeof(unsigned long)]; }; enum netdev_state_t { __LINK_STATE_XOFF=0, __LINK_STATE_START, __LINK_STATE_PRESENT, __LINK_STATE_SCHED, __LINK_STATE_NOCARRIER }; struct netdev_boot_setup { char name[16]; struct ifmap map; }; # 230 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/netdevice.h" struct net_device { char name[16]; unsigned long rmem_end; unsigned long rmem_start; unsigned long mem_end; unsigned long mem_start; unsigned long base_addr; unsigned int irq; unsigned char if_port; unsigned char dma; unsigned long state; struct net_device *next; int (*init)(struct net_device *dev); struct net_device *next_sched; int ifindex; int iflink; struct net_device_stats* (*get_stats)(struct net_device *dev); struct iw_statistics* (*get_wireless_stats)(struct net_device *dev); # 285 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/netdevice.h" unsigned long trans_start; unsigned long last_rx; unsigned short flags; unsigned short gflags; unsigned mtu; unsigned short type; unsigned short hard_header_len; void *priv; struct net_device *master; unsigned char broadcast[8]; unsigned char dev_addr[8]; unsigned char addr_len; struct dev_mc_list *mc_list; int mc_count; int promiscuity; int allmulti; int watchdog_timeo; struct timer_list watchdog_timer; void *atalk_ptr; void *ip_ptr; void *dn_ptr; void *ip6_ptr; void *ec_ptr; struct Qdisc *qdisc; struct Qdisc *qdisc_sleeping; struct Qdisc *qdisc_list; struct Qdisc *qdisc_ingress; unsigned long tx_queue_len; spinlock_t xmit_lock; int xmit_lock_owner; spinlock_t queue_lock; atomic_t refcnt; int deadbeaf; int features; # 350 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/netdevice.h" void (*uninit)(struct net_device *dev); void (*destructor)(struct net_device *dev); int (*open)(struct net_device *dev); int (*stop)(struct net_device *dev); int (*hard_start_xmit) (struct sk_buff *skb, struct net_device *dev); int (*hard_header) (struct sk_buff *skb, struct net_device *dev, unsigned short type, void *daddr, void *saddr, unsigned len); int (*rebuild_header)(struct sk_buff *skb); void (*set_multicast_list)(struct net_device *dev); int (*set_mac_address)(struct net_device *dev, void *addr); int (*do_ioctl)(struct net_device *dev, struct ifreq *ifr, int cmd); int (*set_config)(struct net_device *dev, struct ifmap *map); int (*hard_header_cache)(struct neighbour *neigh, struct hh_cache *hh); void (*header_cache_update)(struct hh_cache *hh, struct net_device *dev, unsigned char * haddr); int (*change_mtu)(struct net_device *dev, int new_mtu); void (*tx_timeout) (struct net_device *dev); int (*hard_header_parse)(struct sk_buff *skb, unsigned char *haddr); int (*neigh_setup)(struct net_device *dev, struct neigh_parms *); int (*accept_fastpath)(struct net_device *, struct dst_entry*); struct module *owner; struct net_bridge_port *br_port; # 410 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/netdevice.h" }; struct packet_type { unsigned short type; struct net_device *dev; int (*func) (struct sk_buff *, struct net_device *, struct packet_type *); void *data; struct packet_type *next; }; # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/interrupt.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/interrupt.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/kernel.h" 1 # 7 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/interrupt.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/smp.h" 1 # 8 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/interrupt.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/cache.h" 1 # 9 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/interrupt.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/bitops.h" 1 # 11 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/interrupt.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/atomic.h" 1 # 12 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/interrupt.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/ptrace.h" 1 # 13 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/interrupt.h" 2 struct irqaction { void (*handler)(int, void *, struct pt_regs *); unsigned long flags; unsigned long mask; const char *name; void *dev_id; struct irqaction *next; }; enum { TIMER_BH = 0, TQUEUE_BH, DIGI_BH, SERIAL_BH, RISCOM8_BH, SPECIALIX_BH, AURORA_BH, ESP_BH, SCSI_BH, IMMEDIATE_BH, CYCLADES_BH, CM206_BH, JS_BH, MACSERIAL_BH, ISICOM_BH }; # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/hardirq.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/hardirq.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/threads.h" 1 # 6 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/hardirq.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/irq.h" 1 # 12 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/irq.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/linux/irq.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/cache.h" 1 # 17 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/irq.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/spinlock.h" 1 # 18 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/irq.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/irq.h" 1 # 13 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/irq.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/config.h" 1 # 14 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/irq.h" 2 # 28 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/irq.h" static __inline__ int irq_cannonicalize(int irq) { return ((irq == 2) ? 9 : irq); } extern void disable_irq(unsigned int); extern void disable_irq_nosync(unsigned int); extern void enable_irq(unsigned int); # 20 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/irq.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/ptrace.h" 1 # 21 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/irq.h" 2 # 39 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/irq.h" struct hw_interrupt_type { const char * typename; unsigned int (*startup)(unsigned int irq); void (*shutdown)(unsigned int irq); void (*enable)(unsigned int irq); void (*disable)(unsigned int irq); void (*ack)(unsigned int irq); void (*end)(unsigned int irq); void (*set_affinity)(unsigned int irq, unsigned long mask); }; typedef struct hw_interrupt_type hw_irq_controller; # 59 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/irq.h" typedef struct { unsigned int status; hw_irq_controller *handler; struct irqaction *action; unsigned int depth; spinlock_t lock; } __attribute__((__aligned__((1 << ((6)))))) irq_desc_t; extern irq_desc_t irq_desc [224]; # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/hw_irq.h" 1 # 15 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/hw_irq.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/config.h" 1 # 16 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/hw_irq.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/atomic.h" 1 # 17 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/hw_irq.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/irq.h" 1 # 18 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/hw_irq.h" 2 # 61 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/hw_irq.h" extern int irq_vector[224]; # 71 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/hw_irq.h" extern void mask_irq(unsigned int irq); extern void unmask_irq(unsigned int irq); extern void disable_8259A_irq(unsigned int irq); extern void enable_8259A_irq(unsigned int irq); extern int i8259A_irq_pending(unsigned int irq); extern void make_8259A_irq(unsigned int irq); extern void init_8259A(int aeoi); extern void send_IPI_self(int vector) __attribute__((regparm(3))); extern void init_VISWS_APIC_irqs(void); extern void setup_IO_APIC(void); extern void disable_IO_APIC(void); extern void print_IO_APIC(void); extern int IO_APIC_get_PCI_irq_vector(int bus, int slot, int fn); extern void send_IPI(int dest, int vector); extern unsigned long io_apic_irqs; extern atomic_t irq_err_count; extern atomic_t irq_mis_count; extern char _stext, _etext; # 183 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/hw_irq.h" extern unsigned long prof_cpu_mask; extern unsigned int * prof_buffer; extern unsigned long prof_len; extern unsigned long prof_shift; static inline void x86_do_profile (unsigned long eip) { if (!prof_buffer) return; if (!((1<<0) & prof_cpu_mask)) return; eip -= (unsigned long) &_stext; eip >>= prof_shift; if (eip > prof_len-1) eip = prof_len-1; atomic_inc((atomic_t *)&prof_buffer[eip]); } static inline void hw_resend_irq(struct hw_interrupt_type *h, unsigned int i) {} # 70 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/irq.h" 2 extern int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *); extern int setup_irq(unsigned int , struct irqaction * ); extern hw_irq_controller no_irq_type; extern void no_action(int cpl, void *dev_id, struct pt_regs *regs); # 7 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/hardirq.h" 2 typedef struct { unsigned int __softirq_pending; unsigned int __local_irq_count; unsigned int __local_bh_count; unsigned int __syscall_count; struct task_struct * __ksoftirqd_task; unsigned int __nmi_count; } __attribute__((__aligned__((1 << ((6)))))) irq_cpustat_t; # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/irq_cpustat.h" 1 # 12 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/irq_cpustat.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/linux/irq_cpustat.h" 2 extern irq_cpustat_t irq_stat[]; # 19 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/hardirq.h" 2 # 46 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/interrupt.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/softirq.h" 1 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/atomic.h" 1 # 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/softirq.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/hardirq.h" 1 # 6 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/softirq.h" 2 # 47 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/interrupt.h" 2 # 56 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/interrupt.h" enum { HI_SOFTIRQ=0, NET_TX_SOFTIRQ, NET_RX_SOFTIRQ, TASKLET_SOFTIRQ }; struct softirq_action { void (*action)(struct softirq_action *); void *data; }; __attribute__((regparm(0))) void do_softirq(void); extern void open_softirq(int nr, void (*action)(struct softirq_action*), void *data); extern void softirq_init(void); extern void cpu_raise_softirq(unsigned int cpu, unsigned int nr) __attribute__((regparm(3))); extern void raise_softirq(unsigned int nr) __attribute__((regparm(3))); # 103 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/interrupt.h" struct tasklet_struct { struct tasklet_struct *next; unsigned long state; atomic_t count; void (*func)(unsigned long); unsigned long data; }; # 119 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/interrupt.h" enum { TASKLET_STATE_SCHED, TASKLET_STATE_RUN }; struct tasklet_head { struct tasklet_struct *list; } __attribute__ ((__aligned__((1 << ((6)))))); extern struct tasklet_head tasklet_vec[1]; extern struct tasklet_head tasklet_hi_vec[1]; # 155 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/interrupt.h" extern void __tasklet_schedule(struct tasklet_struct *t) __attribute__((regparm(3))); static inline void tasklet_schedule(struct tasklet_struct *t) { if (!test_and_set_bit(TASKLET_STATE_SCHED, &t->state)) __tasklet_schedule(t); } extern void __tasklet_hi_schedule(struct tasklet_struct *t) __attribute__((regparm(3))); static inline void tasklet_hi_schedule(struct tasklet_struct *t) { if (!test_and_set_bit(TASKLET_STATE_SCHED, &t->state)) __tasklet_hi_schedule(t); } static inline void tasklet_disable_nosync(struct tasklet_struct *t) { atomic_inc(&t->count); __asm__ __volatile__("": : :"memory"); } static inline void tasklet_disable(struct tasklet_struct *t) { tasklet_disable_nosync(t); do { } while (0); __asm__ __volatile__("": : :"memory"); } static inline void tasklet_enable(struct tasklet_struct *t) { __asm__ __volatile__("": : :"memory"); atomic_dec(&t->count); } static inline void tasklet_hi_enable(struct tasklet_struct *t) { __asm__ __volatile__("": : :"memory"); atomic_dec(&t->count); } extern void tasklet_kill(struct tasklet_struct *t); extern void tasklet_init(struct tasklet_struct *t, void (*func)(unsigned long), unsigned long data); # 222 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/interrupt.h" extern struct tasklet_struct bh_task_vec[]; extern spinlock_t global_bh_lock; static inline void mark_bh(int nr) { tasklet_hi_schedule(bh_task_vec+nr); } extern void init_bh(int nr, void (*routine)(void)); extern void remove_bh(int nr); # 263 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/interrupt.h" extern unsigned long probe_irq_on(void); extern int probe_irq_off(unsigned long); extern unsigned int probe_irq_mask(unsigned long); # 425 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/netdevice.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/notifier.h" 1 # 12 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/notifier.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/errno.h" 1 # 13 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/notifier.h" 2 struct notifier_block { int (*notifier_call)(struct notifier_block *self, unsigned long, void *); struct notifier_block *next; int priority; }; extern int notifier_chain_register(struct notifier_block **list, struct notifier_block *n); extern int notifier_chain_unregister(struct notifier_block **nl, struct notifier_block *n); extern int notifier_call_chain(struct notifier_block **n, unsigned long val, void *v); # 426 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/netdevice.h" 2 extern struct net_device loopback_dev; extern struct net_device *dev_base; extern rwlock_t dev_base_lock; extern int netdev_boot_setup_add(char *name, struct ifmap *map); extern int netdev_boot_setup_check(struct net_device *dev); extern struct net_device *dev_getbyhwaddr(unsigned short type, char *hwaddr); extern void dev_add_pack(struct packet_type *pt); extern void dev_remove_pack(struct packet_type *pt); extern int dev_get(const char *name); extern struct net_device *dev_get_by_name(const char *name); extern struct net_device *__dev_get_by_name(const char *name); extern struct net_device *dev_alloc(const char *name, int *err); extern int dev_alloc_name(struct net_device *dev, const char *name); extern int dev_open(struct net_device *dev); extern int dev_close(struct net_device *dev); extern int dev_queue_xmit(struct sk_buff *skb); extern int register_netdevice(struct net_device *dev); extern int unregister_netdevice(struct net_device *dev); extern int register_netdevice_notifier(struct notifier_block *nb); extern int unregister_netdevice_notifier(struct notifier_block *nb); extern int dev_new_index(void); extern struct net_device *dev_get_by_index(int ifindex); extern struct net_device *__dev_get_by_index(int ifindex); extern int dev_restart(struct net_device *dev); typedef int gifconf_func_t(struct net_device * dev, char * bufptr, int len); extern int register_gifconf(unsigned int family, gifconf_func_t * gifconf); static inline int unregister_gifconf(unsigned int family) { return register_gifconf(family, 0); } struct softnet_data { int throttle; int cng_level; int avg_blog; struct sk_buff_head input_pkt_queue; struct net_device *output_queue; struct sk_buff *completion_queue; } __attribute__((__aligned__((1 << ((6)))))); extern struct softnet_data softnet_data[1]; static inline void __netif_schedule(struct net_device *dev) { if (!test_and_set_bit(__LINK_STATE_SCHED, &dev->state)) { unsigned long flags; int cpu = 0; __asm__ __volatile__("pushfl ; popl %0 ; cli":"=g" (flags): :"memory"); dev->next_sched = softnet_data[cpu].output_queue; softnet_data[cpu].output_queue = dev; cpu_raise_softirq(cpu, NET_TX_SOFTIRQ); __asm__ __volatile__("pushl %0 ; popfl": :"g" (flags):"memory", "cc"); } } static inline void netif_schedule(struct net_device *dev) { if (!(__builtin_constant_p(__LINK_STATE_XOFF) ? constant_test_bit((__LINK_STATE_XOFF),(&dev->state)) : variable_test_bit((__LINK_STATE_XOFF),(&dev->state)))) __netif_schedule(dev); } static inline void netif_start_queue(struct net_device *dev) { clear_bit(__LINK_STATE_XOFF, &dev->state); } static inline void netif_wake_queue(struct net_device *dev) { if (test_and_clear_bit(__LINK_STATE_XOFF, &dev->state)) __netif_schedule(dev); } static inline void netif_stop_queue(struct net_device *dev) { set_bit(__LINK_STATE_XOFF, &dev->state); } static inline int netif_queue_stopped(struct net_device *dev) { return (__builtin_constant_p(__LINK_STATE_XOFF) ? constant_test_bit((__LINK_STATE_XOFF),(&dev->state)) : variable_test_bit((__LINK_STATE_XOFF),(&dev->state))); } static inline int netif_running(struct net_device *dev) { return (__builtin_constant_p(__LINK_STATE_START) ? constant_test_bit((__LINK_STATE_START),(&dev->state)) : variable_test_bit((__LINK_STATE_START),(&dev->state))); } static inline void dev_kfree_skb_irq(struct sk_buff *skb) { if (atomic_dec_and_test(&skb->users)) { int cpu =0; unsigned long flags; __asm__ __volatile__("pushfl ; popl %0 ; cli":"=g" (flags): :"memory"); skb->next = softnet_data[cpu].completion_queue; softnet_data[cpu].completion_queue = skb; cpu_raise_softirq(cpu, NET_TX_SOFTIRQ); __asm__ __volatile__("pushl %0 ; popfl": :"g" (flags):"memory", "cc"); } } static inline void dev_kfree_skb_any(struct sk_buff *skb) { if ((((void)((0)), irq_stat[0].__local_irq_count) != 0)) dev_kfree_skb_irq(skb); else kfree_skb(skb); } extern void net_call_rx_atomic(void (*fn)(void)); extern int netif_rx(struct sk_buff *skb); extern int dev_ioctl(unsigned int cmd, void *); extern int dev_change_flags(struct net_device *, unsigned); extern void dev_queue_xmit_nit(struct sk_buff *skb, struct net_device *dev); extern void dev_init(void); extern int netdev_nit; static inline int netif_rx_ni(struct sk_buff *skb) { int err = netif_rx(skb); if (((void)((0)), irq_stat[0].__softirq_pending)) do_softirq(); return err; } static inline void dev_init_buffers(struct net_device *dev) { } extern int netdev_finish_unregister(struct net_device *dev); static inline void dev_put(struct net_device *dev) { if (atomic_dec_and_test(&dev->refcnt)) netdev_finish_unregister(dev); } # 597 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/netdevice.h" static inline int netif_carrier_ok(struct net_device *dev) { return !(__builtin_constant_p(__LINK_STATE_NOCARRIER) ? constant_test_bit((__LINK_STATE_NOCARRIER),(&dev->state)) : variable_test_bit((__LINK_STATE_NOCARRIER),(&dev->state))); } extern void __netdev_watchdog_up(struct net_device *dev); static inline void netif_carrier_on(struct net_device *dev) { clear_bit(__LINK_STATE_NOCARRIER, &dev->state); if (netif_running(dev)) __netdev_watchdog_up(dev); } static inline void netif_carrier_off(struct net_device *dev) { set_bit(__LINK_STATE_NOCARRIER, &dev->state); } static inline int netif_device_present(struct net_device *dev) { return (__builtin_constant_p(__LINK_STATE_PRESENT) ? constant_test_bit((__LINK_STATE_PRESENT),(&dev->state)) : variable_test_bit((__LINK_STATE_PRESENT),(&dev->state))); } static inline void netif_device_detach(struct net_device *dev) { if (test_and_clear_bit(__LINK_STATE_PRESENT, &dev->state) && netif_running(dev)) { netif_stop_queue(dev); } } static inline void netif_device_attach(struct net_device *dev) { if (!test_and_set_bit(__LINK_STATE_PRESENT, &dev->state) && netif_running(dev)) { netif_wake_queue(dev); __netdev_watchdog_up(dev); } } enum { NETIF_MSG_DRV = 0x0001, NETIF_MSG_PROBE = 0x0002, NETIF_MSG_LINK = 0x0004, NETIF_MSG_TIMER = 0x0008, NETIF_MSG_IFDOWN = 0x0010, NETIF_MSG_IFUP = 0x0020, NETIF_MSG_RX_ERR = 0x0040, NETIF_MSG_TX_ERR = 0x0080, NETIF_MSG_TX_QUEUED = 0x0100, NETIF_MSG_INTR = 0x0200, NETIF_MSG_TX_DONE = 0x0400, NETIF_MSG_RX_STATUS = 0x0800, NETIF_MSG_PKTDATA = 0x1000, }; # 676 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/netdevice.h" extern void ether_setup(struct net_device *dev); extern void fddi_setup(struct net_device *dev); extern void tr_setup(struct net_device *dev); extern void fc_setup(struct net_device *dev); extern void fc_freedev(struct net_device *dev); extern int register_netdev(struct net_device *dev); extern void unregister_netdev(struct net_device *dev); extern void dev_mc_upload(struct net_device *dev); extern int dev_mc_delete(struct net_device *dev, void *addr, int alen, int all); extern int dev_mc_add(struct net_device *dev, void *addr, int alen, int newonly); extern void dev_mc_discard(struct net_device *dev); extern void dev_set_promiscuity(struct net_device *dev, int inc); extern void dev_set_allmulti(struct net_device *dev, int inc); extern void netdev_state_change(struct net_device *dev); extern void dev_load(const char *name); extern void dev_mcast_init(void); extern int netdev_register_fc(struct net_device *dev, void (*stimul)(struct net_device *dev)); extern void netdev_unregister_fc(int bit); extern int netdev_max_backlog; extern unsigned long netdev_fc_xoff; extern atomic_t netdev_dropping; extern int netdev_set_master(struct net_device *dev, struct net_device *master); extern struct sk_buff * skb_checksum_help(struct sk_buff *skb); # 152 "8139too.c" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/etherdevice.h" 1 # 27 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/etherdevice.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/if_ether.h" 1 # 28 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/etherdevice.h" 2 extern int eth_header(struct sk_buff *skb, struct net_device *dev, unsigned short type, void *daddr, void *saddr, unsigned len); extern int eth_rebuild_header(struct sk_buff *skb); extern unsigned short eth_type_trans(struct sk_buff *skb, struct net_device *dev); extern void eth_header_cache_update(struct hh_cache *hh, struct net_device *dev, unsigned char * haddr); extern int eth_header_cache(struct neighbour *neigh, struct hh_cache *hh); extern int eth_header_parse(struct sk_buff *skb, unsigned char *haddr); extern struct net_device *init_etherdev(struct net_device *dev, int sizeof_priv); extern struct net_device *alloc_etherdev(int sizeof_priv); static inline void eth_copy_and_sum (struct sk_buff *dest, unsigned char *src, int len, int base) { (__builtin_constant_p(len) ? __constant_memcpy3d((dest->data),(src),(len)) : __memcpy3d((dest->data),(src),(len))); } # 59 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/etherdevice.h" static inline int is_valid_ether_addr( u8 *addr ) { const char zaddr[6] = {0,}; return !(addr[0]&1) && __builtin_memcmp( addr, zaddr, 6); } # 153 "8139too.c" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rtnetlink.h" 1 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/netlink.h" 1 # 16 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/netlink.h" struct sockaddr_nl { sa_family_t nl_family; unsigned short nl_pad; __u32 nl_pid; __u32 nl_groups; }; struct nlmsghdr { __u32 nlmsg_len; __u16 nlmsg_type; __u16 nlmsg_flags; __u32 nlmsg_seq; __u32 nlmsg_pid; }; # 77 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/netlink.h" struct nlmsgerr { int error; struct nlmsghdr msg; }; struct netlink_skb_parms { struct ucred creds; __u32 pid; __u32 groups; __u32 dst_pid; __u32 dst_groups; kernel_cap_t eff_cap; }; extern int netlink_attach(int unit, int (*function)(int,struct sk_buff *skb)); extern void netlink_detach(int unit); extern int netlink_post(int unit, struct sk_buff *skb); extern int init_netlink(void); extern struct sock *netlink_kernel_create(int unit, void (*input)(struct sock *sk, int len)); extern void netlink_ack(struct sk_buff *in_skb, struct nlmsghdr *nlh, int err); extern int netlink_unicast(struct sock *ssk, struct sk_buff *skb, __u32 pid, int nonblock); extern void netlink_broadcast(struct sock *ssk, struct sk_buff *skb, __u32 pid, __u32 group, int allocation); extern void netlink_set_err(struct sock *ssk, __u32 pid, __u32 group, int code); # 120 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/netlink.h" struct netlink_callback { struct sk_buff *skb; struct nlmsghdr *nlh; int (*dump)(struct sk_buff * skb, struct netlink_callback *cb); int (*done)(struct netlink_callback *cb); int family; long args[4]; }; static __inline__ struct nlmsghdr * __nlmsg_put(struct sk_buff *skb, u32 pid, u32 seq, int type, int len) { struct nlmsghdr *nlh; int size = ((len)+( ((sizeof(struct nlmsghdr))+4 -1) & ~(4 -1) )); nlh = (struct nlmsghdr*)skb_put(skb, ( ((size)+4 -1) & ~(4 -1) )); nlh->nlmsg_type = type; nlh->nlmsg_len = size; nlh->nlmsg_flags = 0; nlh->nlmsg_pid = pid; nlh->nlmsg_seq = seq; return nlh; } extern int netlink_dump_start(struct sock *ssk, struct sk_buff *skb, struct nlmsghdr *nlh, int (*dump)(struct sk_buff *skb, struct netlink_callback*), int (*done)(struct netlink_callback*)); # 5 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rtnetlink.h" 2 # 57 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rtnetlink.h" struct rtattr { unsigned short rta_len; unsigned short rta_type; }; # 83 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rtnetlink.h" struct rtmsg { unsigned char rtm_family; unsigned char rtm_dst_len; unsigned char rtm_src_len; unsigned char rtm_tos; unsigned char rtm_table; unsigned char rtm_protocol; unsigned char rtm_scope; unsigned char rtm_type; unsigned rtm_flags; }; enum { RTN_UNSPEC, RTN_UNICAST, RTN_LOCAL, RTN_BROADCAST, RTN_ANYCAST, RTN_MULTICAST, RTN_BLACKHOLE, RTN_UNREACHABLE, RTN_PROHIBIT, RTN_THROW, RTN_NAT, RTN_XRESOLVE, }; # 155 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rtnetlink.h" enum rt_scope_t { RT_SCOPE_UNIVERSE=0, RT_SCOPE_SITE=200, RT_SCOPE_LINK=253, RT_SCOPE_HOST=254, RT_SCOPE_NOWHERE=255 }; # 173 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rtnetlink.h" enum rt_class_t { RT_TABLE_UNSPEC=0, RT_TABLE_DEFAULT=253, RT_TABLE_MAIN=254, RT_TABLE_LOCAL=255 }; enum rtattr_type_t { RTA_UNSPEC, RTA_DST, RTA_SRC, RTA_IIF, RTA_OIF, RTA_GATEWAY, RTA_PRIORITY, RTA_PREFSRC, RTA_METRICS, RTA_MULTIPATH, RTA_PROTOINFO, RTA_FLOW, RTA_CACHEINFO }; # 218 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rtnetlink.h" struct rtnexthop { unsigned short rtnh_len; unsigned char rtnh_flags; unsigned char rtnh_hops; int rtnh_ifindex; }; # 245 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rtnetlink.h" struct rta_cacheinfo { __u32 rta_clntref; __u32 rta_lastuse; __s32 rta_expires; __u32 rta_error; __u32 rta_used; __u32 rta_id; __u32 rta_ts; __u32 rta_tsage; }; enum { RTAX_UNSPEC, RTAX_LOCK, RTAX_MTU, RTAX_WINDOW, RTAX_RTT, RTAX_RTTVAR, RTAX_SSTHRESH, RTAX_CWND, RTAX_ADVMSS, RTAX_REORDERING, }; # 293 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rtnetlink.h" struct ifaddrmsg { unsigned char ifa_family; unsigned char ifa_prefixlen; unsigned char ifa_flags; unsigned char ifa_scope; int ifa_index; }; enum { IFA_UNSPEC, IFA_ADDRESS, IFA_LOCAL, IFA_LABEL, IFA_BROADCAST, IFA_ANYCAST, IFA_CACHEINFO }; # 323 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rtnetlink.h" struct ifa_cacheinfo { __s32 ifa_prefered; __s32 ifa_valid; }; # 345 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rtnetlink.h" struct ndmsg { unsigned char ndm_family; unsigned char ndm_pad1; unsigned short ndm_pad2; int ndm_ifindex; __u16 ndm_state; __u8 ndm_flags; __u8 ndm_type; }; enum { NDA_UNSPEC, NDA_DST, NDA_LLADDR, NDA_CACHEINFO }; # 393 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rtnetlink.h" struct nda_cacheinfo { __u32 ndm_confirmed; __u32 ndm_used; __u32 ndm_updated; __u32 ndm_refcnt; }; struct rtgenmsg { unsigned char rtgen_family; }; # 419 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rtnetlink.h" struct ifinfomsg { unsigned char ifi_family; unsigned char __ifi_pad; unsigned short ifi_type; int ifi_index; unsigned ifi_flags; unsigned ifi_change; }; enum { IFLA_UNSPEC, IFLA_ADDRESS, IFLA_BROADCAST, IFLA_IFNAME, IFLA_MTU, IFLA_LINK, IFLA_QDISC, IFLA_STATS, IFLA_COST, IFLA_PRIORITY, IFLA_MASTER }; # 486 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rtnetlink.h" struct tcmsg { unsigned char tcm_family; unsigned char tcm__pad1; unsigned short tcm__pad2; int tcm_ifindex; __u32 tcm_handle; __u32 tcm_parent; __u32 tcm_info; }; enum { TCA_UNSPEC, TCA_KIND, TCA_OPTIONS, TCA_STATS, TCA_XSTATS, TCA_RATE, }; # 539 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rtnetlink.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/config.h" 1 # 540 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rtnetlink.h" 2 static __inline__ int rtattr_strcmp(struct rtattr *rta, char *str) { int len = strlen(str) + 1; return len > rta->rta_len || __builtin_memcmp(((void*)(((char*)(rta)) + (( ((sizeof(struct rtattr))+4 -1) & ~(4 -1) ) + (0)))), str, len); } extern int rtattr_parse(struct rtattr *tb[], int maxattr, struct rtattr *rta, int len); # 577 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rtnetlink.h" extern struct semaphore rtnl_sem; # 595 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/rtnetlink.h" extern void rtnl_lock(void); extern void rtnl_unlock(void); extern void rtnetlink_init(void); # 154 "8139too.c" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/delay.h" 1 # 10 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/delay.h" extern unsigned long loops_per_jiffy; # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/delay.h" 1 # 10 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/delay.h" extern void __bad_udelay(void); extern void __udelay(unsigned long usecs); extern void __const_udelay(unsigned long usecs); extern void __delay(unsigned long loops); # 13 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/delay.h" 2 # 155 "8139too.c" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ethtool.h" 1 # 13 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/ethtool.h" struct ethtool_cmd { u32 cmd; u32 supported; u32 advertising; u16 speed; u8 duplex; u8 port; u8 phy_address; u8 transceiver; u8 autoneg; u32 maxtxpkt; u32 maxrxpkt; u32 reserved[4]; }; struct ethtool_drvinfo { u32 cmd; char driver[32]; char version[32]; char fw_version[32]; char bus_info[32]; char reserved1[32]; char reserved2[28]; u32 regdump_len; }; struct ethtool_wolinfo { u32 cmd; u32 supported; u32 wolopts; u8 sopass[6]; }; # 156 "8139too.c" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mii.h" 1 # 11 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mii.h" # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/types.h" 1 # 12 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mii.h" 2 # 105 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mii.h" struct mii_ioctl_data { u16 phy_id; u16 reg_num; u16 val_in; u16 val_out; }; # 127 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mii.h" static inline unsigned int mii_nway_result (unsigned int negotiated) { unsigned int ret; if (negotiated & 0x0100) ret = 0x0100; else if (negotiated & 0x0200) ret = 0x0200; else if (negotiated & 0x0080) ret = 0x0080; else if (negotiated & 0x0040) ret = 0x0040; else ret = 0x0020; return ret; } # 154 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/mii.h" static inline unsigned int mii_duplex (unsigned int duplex_lock, unsigned int negotiated) { if (duplex_lock) return 1; if (mii_nway_result(negotiated) & (0x0040 | 0x0100)) return 1; return 0; } # 157 "8139too.c" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/completion.h" 1 # 158 "8139too.c" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/io.h" 1 # 159 "8139too.c" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/uaccess.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/uaccess.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/sched.h" 1 # 9 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/uaccess.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/linux/prefetch.h" 1 # 10 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/uaccess.h" 2 # 1 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/page.h" 1 # 11 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/uaccess.h" 2 # 35 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/uaccess.h" extern int __verify_write(const void *, unsigned long); # 62 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/uaccess.h" static inline int verify_area(int type, const void * addr, unsigned long size) { return (({ unsigned long flag,sum; asm("addl %3,%1 ; sbbl %0,%0; cmpl %1,%4; sbbl $0,%0" :"=&r" (flag), "=r" (sum) :"1" (addr),"g" ((int)(size)),"g" (get_current()->addr_limit.seg)); flag; }) == 0) ? 0 : -14; } # 81 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/uaccess.h" struct exception_table_entry { unsigned long insn, fixup; }; extern unsigned long search_exception_table(unsigned long); # 105 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/uaccess.h" extern void __get_user_1(void); extern void __get_user_2(void); extern void __get_user_4(void); # 127 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/uaccess.h" extern void __put_user_1(void); extern void __put_user_2(void); extern void __put_user_4(void); extern void __put_user_8(void); extern void __put_user_bad(void); # 188 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/uaccess.h" struct __large_struct { unsigned long buf[100]; }; # 220 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/uaccess.h" extern long __get_user_bad(void); # 308 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/uaccess.h" static inline unsigned long __generic_copy_from_user_nocheck(void *to, const void *from, unsigned long n) { do { int __d0, __d1; __asm__ __volatile__( "0: rep; movsl\n" " movl %3,%0\n" "1: rep; movsb\n" "2:\n" ".section .fixup,\"ax\"\n" "3: lea 0(%3,%0,4),%0\n" "4: pushl %0\n" " pushl %%eax\n" " xorl %%eax,%%eax\n" " rep; stosb\n" " popl %%eax\n" " pop l %0\n" " jmp 2b\n" ".previous\n" ".section __ex_table,\"a\"\n" " .align 4\n" " .long 0b,3b\n" " .long 1b,4b\n" ".previous" : "=&c"(n), "=&D" (__d0), "=&S" (__d1) : "r"(n & 3), "0"(n / 4), "1"(to), "2"(from) : "memory"); } while (0); return n; } static inline unsigned long __generic_copy_to_user_nocheck(void *to, const void *from, unsigned long n) { do { int __d0, __d1; __asm__ __volatile__( "0: rep; movsl\n" " movl %3,%0\n" "1: rep; movsb\n" "2:\n" ".section .fixup,\"ax\"\n" "3: lea 0(%3,%0,4),%0\n" " jmp 2b\n" ".previous\n" ".section __ex_table,\"a\"\n" " .align 4\n" " .long 0b,3b\n" " .lo ng 1b,2b\n" ".previous" : "=&c"(n), "=&D" (__d0), "=&S" (__d1) : "r"(n & 3), "0"(n / 4), "1"(to), "2"(from) : "memory"); } while (0); return n; } # 543 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/uaccess.h" unsigned long __generic_copy_to_user(void *, const void *, unsigned long); unsigned long __generic_copy_from_user(void *, const void *, unsigned long); static inline unsigned long __constant_copy_to_user(void *to, const void *from, unsigned long n) { prefetch(from); if ((({ unsigned long flag,sum; asm("addl %3,%1 ; sbbl %0,%0; cmpl %1,%4; sbbl $0,%0" :"=&r" (flag), "=r" (sum) :"1" (to),"g" ((int)(n)),"g" (get_current()->addr_limit.seg)); flag; }) == 0)) do { int __d0, __d1; switch (n & 3) { default: __asm__ __volatile__( "0: rep; movsl\n" "1:\n" ".section .fixup,\"ax\"\n" "2: shl $2,%0\n" " jmp 1b\n" ".previous\n" ".section __ex_table,\"a\"\n" " .align 4\n" " .long 0b,2b\n" ".previous" : "=c"(n), "=&S" (__d0), "=&D" (__d1) : "1"(from), "2"(to), "0"(n/4) : "memory"); break; case 1: __asm__ __volatile__( "0: rep; movsl\n" "1: movsb\n" "2:\n" ".section .fixup,\"ax\"\n" "3: shl $2,%0\n" "4: incl %0\n" " jmp 2b\n" ".previous\n" ".section __e x_table,\"a\"\n" " .align 4\n" " .long 0b,3b\n" " .long 1b,4b\n" ".previous" : "=c"(n), "=&S" (__d0), "=&D" (__d1) : "1"(from), "2"(to), "0"(n/4) : "memory"); break; case 2: __asm__ __volatile__( "0: rep; movsl\n" "1: movsw\n" "2:\n" ".section .fixup,\"a x\"\n" "3: shl $2,%0\n" "4: addl $2,%0\n" " jmp 2b\n" ".previous\n" ".section __ex_table,\"a\"\n" " .align 4\n" " .long 0b,3b\n" " .long 1b,4b\n" ".previous" : "=c"(n), "=&S" (__d0), "=&D" (__d1) : "1"(from), "2"(to), "0"(n/4) : "memory"); break; case 3: __asm__ __volatile__( "0: rep; movsl\n" "1: movsw\n" "2: movsb\n" "3:\n" ".section .fixup,\"ax\"\n" "4: shl $2,%0\n" "5: addl $2,%0\n" "6: incl %0\n" " jmp 3b\n" ".previous\n" ".section __ex_table,\"a\"\n" " .align 4\n" " .long 0b,4b\n" " .long 1b,5b\n" " .long 2b,6b\n" ".previous" : "=c"(n), "=&S" (__d0), "=&D" (__d1) : "1"(from), "2"(to), "0"(n/4) : "memory"); break; } } while (0); return n; } static inline unsigned long __constant_copy_from_user(void *to, const void *from, unsigned long n) { if ((({ unsigned long flag,sum; asm("addl %3,%1 ; sbbl %0,%0; cmpl %1,%4; sbbl $0,%0" :"=&r" (flag), "=r" (sum) :"1" (from),"g" ((int)(n)),"g" (get_current()->addr_limit.seg)); flag; }) == 0)) do { int __d0, __d1; switch (n & 3) { default: __asm__ __volatile__( "0: rep; movsl\n" "1:\n" ".section .fixup,\"ax\"\n" "2: pushl %0\n" " pushl %%eax\n" " xorl %%eax,%%eax\n" " rep; stosl\n" " popl %%eax\n" " popl %0\n" " shl $2,%0\n" " jmp 1b\n" ".previous\n" ".section __ex_table,\"a\"\n" " .align 4\n" " .long 0b,2b\n" ".previous" : "=c"(n), "=&S" (__d0), "=&D" (__d1) : "1"(from), "2"(to), "0"(n/4) : "memory"); break; case 1: __asm__ __volatile__( "0: rep; movsl\n" "1: movsb\n" "2:\n" ".section .fixup,\"ax\"\n" "3: pushl %0\n" " pushl %%eax\n" " xorl %%eax,%%eax\n" " rep; stosl\n" " stosb\n" " popl %%eax\n" " popl %0\n" " shl $2,%0\n" " incl %0\n" " jmp 2b\n" "4: pushl %%eax\n" " xorl %%eax,%%eax\n" " stosb\n" " popl %%eax\n" " incl % 0\n" " jmp 2b\n" ".previous\n" ".section __ex_table,\"a\"\n" " .align 4\n" " .long 0b,3b\n" " .long 1b,4b\n" ".previous" : "=c"(n), "=&S" (__d0), "=&D" (__d1) : "1"(from), "2"(to), "0"(n/4) : "memory"); break; case 2: __asm__ __volatile__( "0: rep; movsl \n" "1: movsw\n" "2:\n" ".section .fixup,\"ax\"\n" "3: pushl %0\n" " pushl %%eax\n" " xorl %%eax,%%eax\n" " rep; stosl\n" " stosw\n" " popl %%eax\n" " popl %0\n" " shl $2,%0\n" " addl $2,%0\n" " jmp 2b\n" "4: pushl %%eax\n" " xorl %%eax,%%eax\n" " stosw\ n" " popl %%eax\n" " addl $2,%0\n" " jmp 2b\n" ".previous\n" ".section __ex_table,\"a\"\n" " .align 4\n" " .long 0b,3b\n" " .long 1b,4b\n" ".previous" : "=c"(n), "=&S" (__d0), "=&D" (__d1) : "1"(from), "2"(to), "0"(n/4) : "memory"); break; case 3: __asm_ _ __volatile__( "0: rep; movsl\n" "1: movsw\n" "2: movsb\n" "3:\n" ".section .fixup,\"ax\"\n" "4: pushl %0\n" " pushl %%eax\n" " xorl %%eax,%%eax\n" " rep; stosl\n" " stosw\n" " stosb\n" " popl %%eax\n" " popl %0\n" " shl $2,%0\n" " addl $3,%0\n" " jmp 2 b\n" "5: pushl %%eax\n" " xorl %%eax,%%eax\n" " stosw\n" " stosb\n" " popl %%eax\n" " addl $3,%0\n" " jmp 2b\n" "6: pushl %%eax\n" " xorl %%eax,%%eax\n" " stosb\n" " popl %%eax\n" " incl %0\n" " jmp 3b\n" ".previous\n" ".section __ex_table,\"a\"\n" " .al ign 4\n" " . g 0b,4b\n" " .long 1b,5b\n" " .long 2b,6b\n" ".previous" : "=c"(n), "=&S" (__d0), "=&D" (__d1) : "1"(from), "2"(to), "0"(n/4) : "memory"); break; } } while (0); else (__builtin_constant_p(0) ? (__builtin_constant_p((n)) ? __constant_c_and_count_memset(((to)),((0x01010101UL*(unsigned char)(0))),((n))) : __constant_c_memset(((to)),((0x01010101UL*(unsigned char)(0))),((n)))) : (__builtin_constant_p((n)) ? __memset_generic((((to))),(((0))),(((n)))) : __memset_generic(((to)),((0)),((n))))); return n; } static inline unsigned long __constant_copy_to_user_nocheck(void *to, const void *from, unsigned long n) { do { int __d0, __d1; switch (n & 3) { default: __asm__ __volatile__( "0: rep; movsl\n" "1:\n" ".section .fixup,\"ax\"\n" "2: shl $2,%0\n" " jmp 1b\n" ".previous\n" ".section __ex_table,\"a\"\n" " .align 4\n" " .long 0b,2b\n" ".previous" : "=c"(n) , "=&S" (__d0), "=&D" (__d1) : "1"(from), "2"(to), "0"(n/4) : "memory"); break; case 1: __asm__ __volatile__( "0: rep; movsl\n" "1: movsb\n" "2:\n" ".section .fixup,\"ax\"\n" "3: shl $2,%0\n" "4: incl %0\n" " jmp 2b\n" ".previous\n" ".section __ex_table, \"a\"\n" " .align 4\n" " .long 0b,3b\n" " .long 1b,4b\n" ".previous" : "=c"(n), "=&S" (__d0), "=&D" (__d1) : "1"(from), "2"(to), "0"(n/4) : "memory"); break; case 2: __asm__ __volatile__( "0: rep; movsl\n" "1: movsw\n" "2:\n" ".section .fixup,\"ax\"\n" " 3: shl $2,%0\n" "4: addl $2,%0\n" " jmp 2b\n" ".previous\n" ".section __ex_table,\"a\"\n" " .align 4\n" " .long 0b,3b\n" " .long 1b,4b\n" ".previous" : "=c"(n), "=&S" (__d0), "=&D" (__d1) : "1"(from), "2"(to), "0"(n/4) : "memory"); break; case 3: __asm__ __volatile__( "0: rep; movsl\n" "1: movsw\n" "2: movsb\n" "3:\n" ".section .fixup,\"ax\"\n" "4: shl $2,%0\n" "5: addl $2,%0\n" "6: incl %0\n" " jmp 3b\n" ".previous\n" ".section __ex_table,\"a\"\n" " .align 4\n" " .long 0b,4b\n" " .long 1b,5b\n" " .long 2b,6b\n" ".previous" : "=c"(n), "=&S" (__d0), "=&D" (__d1) : "1"(from), "2"(to), "0"(n/4) : "memory"); break; } } while (0); return n; } static inline unsigned long __constant_copy_from_user_nocheck(void *to, const void *from, unsigned long n) { do { int __d0, __d1; switch (n & 3) { default: __asm__ __volatile__( "0: rep; movsl\n" "1:\n" ".section .fixup,\"ax\"\n" "2: pushl %0\n" " pushl %%eax\n" " xorl %%eax,%%eax\n" " rep; stosl\n" " popl %%eax\n" " popl %0\n" " shl $2,%0\n" " jmp 1b\n " ".previous\n" ".section __ex_table,\"a\"\n" " .align 4\n" " .long 0b,2b\n" ".previous" : "=c"(n), "=&S" (__d0), "=&D" (__d1) : "1"(from), "2"(to), "0"(n/4) : "memory"); break; case 1: __asm__ __volatile__( "0: rep; movsl\n" "1: movsb\n" "2:\n" ".sectio n .fixup,\"ax\"\n" "3: pushl %0\n" " pushl %%eax\n" " xorl %%eax,%%eax\n" " rep; stosl\n" " stosb\n" " popl %%eax\n" " popl %0\n" " shl $2,%0\n" " incl %0\n" " jmp 2b\n" "4: pushl %%eax\n" " xorl %%eax,%%eax\n" " stosb\n" " popl %%eax\n" " incl %0\n" " j mp 2b\n" ".previous\n" ".section __ex_table,\"a\"\n" " .align 4\n" " .long 0b,3b\n" " .long 1b,4b\n" ".previous" : "=c"(n), "=&S" (__d0), "=&D" (__d1) : "1"(from), "2"(to), "0"(n/4) : "memory"); break; case 2: __asm__ __volatile__( "0: rep; movsl\n" "1: movsw\n" "2:\n" ".section .fixup,\"ax\"\n" "3: pushl %0\n" " pushl %%eax\n" " xorl %%eax,%%eax\n" " rep; stosl\n" " stosw\n" " popl %%eax\n" " popl %0\n" " shl $2,%0\n" " addl $2,%0\n" " jmp 2b\n" "4: pushl %%eax\n" " xorl %%eax,%%eax\n" " stosw\n" " pop l %%eax\n" " addl $2,%0\n" " jmp 2b\n" ".previous\n" ".section __ex_table,\"a\"\n" " .align 4\n" " .long 0b,3b\n" " .long 1b,4b\n" ".previous" : "=c"(n), "=&S" (__d0), "=&D" (__d1) : "1"(from), "2"(to), "0"(n/4) : "memory"); break; case 3: __asm__ __vola tile__( "0: rep; movsl\n" "1: movsw\n" "2: movsb\n" "3:\n" ".section .fixup,\"ax\"\n" "4: pushl %0\n" " pushl %%eax\n" " xorl %%eax,%%eax\n" " rep; stosl\n" " stosw\n" " stosb\n" " popl %%eax\n" " popl %0\n" " shl $2,%0\n" " addl $3,%0\n" " jmp 2b\n" "5: pushl %%eax\n" " xorl %%eax,%%eax\n" " stosw\n" " stosb\n" " popl %%eax\n" " addl $3,%0\n" " jmp 2b\n" "6: pushl %%eax\n" " xorl %%eax,%%eax\n" " stosb\n" " popl %%eax\n" " incl %0\n" " jmp 3b\n" ".previous\n" ".section __ex_table,\"a\"\n" " .align 4\n" " .long 0b, n" " .long 1b,5b\n" " .long 2b,6b\n" ".previous" : "=c"(n), "=&S" (__d0), "=&D" (__d1) : "1"(from), "2"(to), "0"(n/4) : "memory"); break; } } while (0); return n; } # 599 "/usr/src/linux-2.4.13-gcc-3.0.2/include/asm/uaccess.h" long strncpy_from_user(char *dst, const char *src, long count); long __strncpy_from_user(char *dst, const char *src, long count); long strnlen_user(const char *str, long n); unsigned long clear_user(void *mem, unsigned long len); unsigned long __clear_user(void *mem, unsigned long len); # 160 "8139too.c" 2 # 198 "8139too.c" static int media[8] = {-1, -1, -1, -1, -1, -1, -1, -1}; static int full_duplex[8] = {-1, -1, -1, -1, -1, -1, -1, -1}; static int max_interrupt_work = 20; static int multicast_filter_limit = 32; # 241 "8139too.c" enum { HAS_MII_XCVR = 0x010000, HAS_CHIP_XCVR = 0x020000, HAS_LNK_CHNG = 0x040000, }; typedef enum { RTL8139 = 0, RTL8139_CB, SMC1211TX, DELTA8139, ADDTRON8139, DFE538TX, DFE690TXD, RTL8129, } board_t; static struct { const char *name; u32 hw_flags; } board_info[] = { { "RealTek RTL8139 Fast Ethernet", HAS_CHIP_XCVR|HAS_LNK_CHNG }, { "RealTek RTL8139B PCI/CardBus", HAS_CHIP_XCVR|HAS_LNK_CHNG }, { "SMC1211TX EZCard 10/100 (RealTek RTL8139)", HAS_CHIP_XCVR|HAS_LNK_CHNG }, { "Delta Electronics 8139 10/100BaseTX", HAS_CHIP_XCVR|HAS_LNK_CHNG }, { "Addtron Technolgy 8139 10/100BaseTX", HAS_CHIP_XCVR|HAS_LNK_CHNG }, { "D-Link DFE-538TX (RealTek RTL8139)", HAS_CHIP_XCVR|HAS_LNK_CHNG }, { "D-Link DFE-690TXD (RealTek RTL8139)", HAS_CHIP_XCVR|HAS_LNK_CHNG }, { "RealTek RTL8129", HAS_MII_XCVR }, }; static struct pci_device_id rtl8139_pci_tbl[] = { {0x10ec, 0x8139, (~0), (~0), 0, 0, RTL8139 }, {0x10ec, 0x8138, (~0), (~0), 0, 0, RTL8139_CB }, {0x1113, 0x1211, (~0), (~0), 0, 0, SMC1211TX }, {0x1500, 0x1360, (~0), (~0), 0, 0, DELTA8139 }, {0x4033, 0x1360, (~0), (~0), 0, 0, ADDTRON8139 }, {0x1186, 0x1300, (~0), (~0), 0, 0, DFE538TX }, {0x1186, 0x1340, (~0), (~0), 0, 0, DFE690TXD }, # 301 "8139too.c" {(~0), 0x8139, 0x10ec, 0x8139, 0, 0, RTL8139 }, {(~0), 0x8139, 0x1186, 0x1300, 0, 0, DFE538TX }, {0,} }; ; enum RTL8139_registers { MAC0 = 0, MAR0 = 8, TxStatus0 = 0x10, TxAddr0 = 0x20, RxBuf = 0x30, RxEarlyCnt = 0x34, RxEarlyStatus = 0x36, ChipCmd = 0x37, RxBufPtr = 0x38, RxBufAddr = 0x3A, IntrMask = 0x3C, IntrStatus = 0x3E, TxConfig = 0x40, ChipVersion = 0x43, RxConfig = 0x44, Timer = 0x48, RxMissed = 0x4C, Cfg9346 = 0x50, Config0 = 0x51, Config1 = 0x52, FlashReg = 0x54, MediaStatus = 0x58, Config3 = 0x59, Config4 = 0x5A, HltClk = 0x5B, MultiIntr = 0x5C, TxSummary = 0x60, BasicModeCtrl = 0x62, BasicModeStatus = 0x64, NWayAdvert = 0x66, NWayLPAR = 0x68, NWayExpansion = 0x6A, FIFOTMS = 0x70, CSCR = 0x74, PARA78 = 0x78, PARA7c = 0x7c, Config5 = 0xD8, }; enum ClearBitMasks { MultiIntrClear = 0xF000, ChipCmdClear = 0xE2, Config1Clear = (1<<7)|(1<<6)|(1<<3)|(1<<2)|(1<<1), }; enum ChipCmdBits { CmdReset = 0x10, CmdRxEnb = 0x08, CmdTxEnb = 0x04, RxBufEmpty = 0x01, }; enum IntrStatusBits { PCIErr = 0x8000, PCSTimeout = 0x4000, RxFIFOOver = 0x40, RxUnderrun = 0x20, RxOverflow = 0x10, TxErr = 0x08, TxOK = 0x04, RxErr = 0x02, RxOK = 0x01, RxAckBits = RxFIFOOver | RxOverflow | RxOK, }; enum TxStatusBits { TxHostOwns = 0x2000, TxUnderrun = 0x4000, TxStatOK = 0x8000, TxOutOfWindow = 0x20000000, TxAborted = 0x40000000, TxCarrierLost = 0x80000000, }; enum RxStatusBits { RxMulticast = 0x8000, RxPhysical = 0x4000, RxBroadcast = 0x2000, RxBadSymbol = 0x0020, RxRunt = 0x0010, RxTooLong = 0x0008, RxCRCErr = 0x0004, RxBadAlign = 0x0002, RxStatusOK = 0x0001, }; enum rx_mode_bits { AcceptErr = 0x20, AcceptRunt = 0x10, AcceptBroadcast = 0x08, AcceptMulticast = 0x04, AcceptMyPhys = 0x02, AcceptAllPhys = 0x01, }; enum tx_config_bits { TxIFG1 = (1 << 25), TxIFG0 = (1 << 24), TxLoopBack = (1 << 18) | (1 << 17), TxCRC = (1 << 16), TxClearAbt = (1 << 0), TxDMAShift = 8, TxVersionMask = 0x7C800000, }; enum Config1Bits { Cfg1_PM_Enable = 0x01, Cfg1_VPD_Enable = 0x02, Cfg1_PIO = 0x04, Cfg1_MMIO = 0x08, LWAKE = 0x10, Cfg1_Driver_Load = 0x20, Cfg1_LED0 = 0x40, Cfg1_LED1 = 0x80, SLEEP = (1 << 1), PWRDN = (1 << 0), }; enum Config3Bits { Cfg3_FBtBEn = (1 << 0), Cfg3_FuncRegEn = (1 << 1), Cfg3_CLKRUN_En = (1 << 2), Cfg3_CardB_En = (1 << 3), Cfg3_LinkUp = (1 << 4), Cfg3_Magic = (1 << 5), Cfg3_PARM_En = (1 << 6), Cfg3_GNTSel = (1 << 7), }; enum Config4Bits { LWPTN = (1 << 2), }; enum Config5Bits { Cfg5_PME_STS = (1 << 0), Cfg5_LANWake = (1 << 1), Cfg5_LDPS = (1 << 2), Cfg5_FIFOAddrPtr = (1 << 3), Cfg5_UWF = (1 << 4), Cfg5_MWF = (1 << 5), Cfg5_BWF = (1 << 6), }; enum RxConfigBits { RxCfgEarlyRxNone = 0, RxCfgEarlyRxShift = 24, RxCfgFIFOShift = 13, RxCfgFIFONone = (7 << RxCfgFIFOShift), RxCfgDMAShift = 8, RxCfgDMAUnlimited = (7 << RxCfgDMAShift), RxCfgRcv8K = 0, RxCfgRcv16K = (1 << 11), RxCfgRcv32K = (1 << 12), RxCfgRcv64K = (1 << 11) | (1 << 12), RxNoWrap = (1 << 7), }; enum CSCRBits { CSCR_LinkOKBit = 0x0400, CSCR_LinkChangeBit = 0x0800, CSCR_LinkStatusBits = 0x0f000, CSCR_LinkDownOffCmd = 0x003c0, CSCR_LinkDownCmd = 0x0f3c0, }; enum Cfg9346Bits { Cfg9346_Lock = 0x00, Cfg9346_Unlock = 0xC0, }; static const unsigned long param[4][4] = { {0xcb39de43, 0xcb39ce43, 0xfb38de03, 0xcb38de43}, {0xcb39de43, 0xcb39ce43, 0xcb39ce83, 0xcb39ce83}, {0xcb39de43, 0xcb39ce43, 0xcb39ce83, 0xcb39ce83}, {0xbb39de43, 0xbb39ce43, 0xbb39ce83, 0xbb39ce83} }; struct ring_info { struct sk_buff *skb; dma_addr_t mapping; }; typedef enum { CH_8139 = 0, CH_8139_K, CH_8139A, CH_8139B, CH_8130, CH_8139C, } chip_t; enum chip_flags { HasHltClk = (1 << 0), HasLWake = (1 << 1), }; const static struct { const char *name; u8 version; u32 RxConfigMask; u32 flags; } rtl_chip_info[] = { { "RTL-8139", 0x40, 0xf0fe0040, HasHltClk, }, { "RTL-8139 rev K", 0x60, 0xf0fe0040, HasHltClk, }, { "RTL-8139A", 0x70, 0xf0fe0040, HasHltClk, }, { "RTL-8139B", 0x78, 0xf0fc0040, HasLWake, }, { "RTL-8130", 0x7C, 0xf0fe0040, HasLWake, }, { "RTL-8139C", 0x74, 0xf0fc0040, HasLWake, }, }; struct rtl_extra_stats { unsigned long early_rx; unsigned long tx_buf_mapped; unsigned long tx_timeouts; }; struct rtl8139_private { void *mmio_addr; int drv_flags; struct pci_dev *pci_dev; struct net_device_stats stats; unsigned char *rx_ring; unsigned int cur_rx; unsigned int tx_flag; unsigned long cur_tx; unsigned long dirty_tx; struct ring_info tx_info[4]; unsigned char *tx_buf[4]; unsigned char *tx_bufs; dma_addr_t rx_ring_dma; dma_addr_t tx_bufs_dma; signed char phys[4]; char twistie, twist_row, twist_col; unsigned int full_duplex:1; unsigned int duplex_lock:1; unsigned int default_port:4; unsigned int media2:4; unsigned int medialock:1; unsigned int mediasense:1; spinlock_t lock; chip_t chipset; pid_t thr_pid; wait_queue_head_t thr_wait; struct completion thr_exited; u32 rx_config; struct rtl_extra_stats xstats; }; ; ; ; ; ; ; ; ; ; ; ; static int read_eeprom (void *ioaddr, int location, int addr_len); static int rtl8139_open (struct net_device *dev); static int mdio_read (struct net_device *dev, int phy_id, int location); static void mdio_write (struct net_device *dev, int phy_id, int location, int val); static int rtl8139_thread (void *data); static void rtl8139_tx_timeout (struct net_device *dev); static void rtl8139_init_ring (struct net_device *dev); static int rtl8139_start_xmit (struct sk_buff *skb, struct net_device *dev); static void rtl8139_interrupt (int irq, void *dev_instance, struct pt_regs *regs); static int rtl8139_close (struct net_device *dev); static int netdev_ioctl (struct net_device *dev, struct ifreq *rq, int cmd); static struct net_device_stats *rtl8139_get_stats (struct net_device *dev); static inline u32 ether_crc (int length, unsigned char *data); static void rtl8139_set_rx_mode (struct net_device *dev); static void __set_rx_mode (struct net_device *dev); static void rtl8139_hw_start (struct net_device *dev); # 712 "8139too.c" static const u16 rtl8139_intr_mask = PCIErr | PCSTimeout | RxUnderrun | RxOverflow | RxFIFOOver | TxErr | TxOK | RxErr | RxOK; static const unsigned int rtl8139_rx_config = (14 << RxCfgEarlyRxShift) | RxCfgRcv32K | RxNoWrap | (7 << RxCfgFIFOShift) | (7 << RxCfgDMAShift); static void __rtl8139_cleanup_dev (struct net_device *dev) { struct rtl8139_private *tp; struct pci_dev *pdev; if(!(dev != ((void *)0))) { printk( "Assertion failed! %s,%s,%s,line=%d\n", "dev != NULL","8139too.c",__FUNCTION__,727); }; if(!(dev->priv != ((void *)0))) { printk( "Assertion failed! %s,%s,%s,line=%d\n", "dev->priv != NULL","8139too.c",__FUNCTION__,728); }; tp = dev->priv; if(!(tp->pci_dev != ((void *)0))) { printk( "Assertion failed! %s,%s,%s,line=%d\n", "tp->pci_dev != NULL","8139too.c",__FUNCTION__,731); }; pdev = tp->pci_dev; if (tp->mmio_addr) iounmap (tp->mmio_addr); pci_release_regions (pdev); (__builtin_constant_p(0xBC) ? (__builtin_constant_p((sizeof (struct net_device) + sizeof (struct rtl8139_private))) ? __constant_c_and_count_memset(((dev)),((0x01010101UL*(unsigned char)(0xBC))),((sizeof (struct net_device) + sizeof (struct rtl81 39_private)))) : __constant_c_memset(((dev)),((0x01010101UL*(unsigned char)(0xBC))),((sizeof (struct net_device) + sizeof (struct rtl8139_private))))) : (__builtin_constant_p((sizeof (struct net_device) + sizeof (struct rtl8139_private))) ? __memset_gene ric((((dev))),(((0xBC))),(((sizeof (struct net_device) + sizeof (struct rtl8139_private))))) : __memset_generic(((dev)),((0xBC)),((sizeof (struct net_device) + sizeof (struct rtl8139_private)))))); kfree (dev); pci_set_drvdata (pdev, ((void *)0)); } static void rtl8139_chip_reset (void *ioaddr) { int i; (*(volatile unsigned char *) ((void *)(ioaddr + (ChipCmd))) = ((CmdReset))); for (i = 1000; i > 0; i--) { __asm__ __volatile__("": : :"memory"); if (((*(volatile unsigned char *) ((void *)(ioaddr + (ChipCmd)))) & CmdReset) == 0) break; (__builtin_constant_p(10) ? ((10) > 20000 ? __bad_udelay() : __const_udelay((10) * 0x10c6ul)) : __udelay(10)); } } static int rtl8139_init_board (struct pci_dev *pdev, struct net_device **dev_out) { void *ioaddr; struct net_device *dev; struct rtl8139_private *tp; u8 tmp8; int rc; unsigned int i; u32 pio_start, pio_end, pio_flags, pio_len; unsigned long mmio_start, mmio_end, mmio_flags, mmio_len; u32 tmp; ; if(!(pdev != ((void *)0))) { printk( "Assertion failed! %s,%s,%s,line=%d\n", "pdev != NULL","8139too.c",__FUNCTION__,787); }; *dev_out = ((void *)0); dev = alloc_etherdev (sizeof (*tp)); if (dev == ((void *)0)) { printk ("<3>" "8139too" ": " "%s: Unable to alloc new net device\n", pdev->slot_name); ; return -12; } do { (dev)->owner = ((void *)0); } while (0); tp = dev->priv; tp->pci_dev = pdev; rc = pci_enable_device (pdev); if (rc) goto err_out; pio_start = ((pdev)->resource[(0)].start); pio_end = ((pdev)->resource[(0)].end); pio_flags = ((pdev)->resource[(0)].flags); pio_len = (((((pdev))->resource[((0))].start) == 0 && (((pdev))->resource[((0))].end) == (((pdev))->resource[((0))].start)) ? 0 : ((((pdev))->resource[((0))].end) - (((pdev))->resource[((0))].start) + 1)); mmio_start = ((pdev)->resource[(1)].start); mmio_end = ((pdev)->resource[(1)].end); mmio_flags = ((pdev)->resource[(1)].flags); mmio_len = (((((pdev))->resource[((1))].start) == 0 && (((pdev))->resource[((1))].end) == (((pdev))->resource[((1))].start)) ? 0 : ((((pdev))->resource[((1))].end) - (((pdev))->resource[((1))].start) + 1)); ; ; # 837 "8139too.c" if (!(mmio_flags & 0x00000200)) { printk ("<3>" "8139too" ": " "%s: region #1 not an MMIO resource, aborting\n", pdev->slot_name); rc = -19; goto err_out; } if (mmio_len < 0x80) { printk ("<3>" "8139too" ": " "%s: Invalid PCI mem region size(s), aborting\n", pdev->slot_name); rc = -19; goto err_out; } rc = pci_request_regions (pdev, "8139too"); if (rc) goto err_out; pci_set_master (pdev); ioaddr = ioremap (mmio_start, mmio_len); if (ioaddr == ((void *)0)) { printk ("<3>" "8139too" ": " "%s: cannot remap MMIO, aborting\n", pdev->slot_name); rc = -5; goto err_out; } dev->base_addr = (long) ioaddr; tp->mmio_addr = ioaddr; (*(volatile unsigned char *) ((void *)(ioaddr + (HltClk))) = (('R'))); if (((unsigned long) (*(volatile unsigned int *) ((void *)(ioaddr + (TxConfig))))) == 0xFFFFFFFF) { printk ("<3>" "8139too" ": " "%s: Chip not responding, ignoring board\n", pdev->slot_name); rc = -5; goto err_out; } tmp = (*(volatile unsigned char *) ((void *)(ioaddr + (ChipVersion)))); for (i = 0; i < (sizeof(rtl_chip_info) / sizeof((rtl_chip_info)[0])); i++) if (tmp == rtl_chip_info[i].version) { tp->chipset = i; goto match; } printk ("<7>" "8139too" ": " "%s: unknown chip version, assuming RTL-8139\n", pdev->slot_name); printk ("<7>" "8139too" ": " "%s: TxConfig = 0x%lx\n", pdev->slot_name, ((unsigned long) (*(volatile unsigned int *) ((void *)(ioaddr + (TxConfig)))))); tp->chipset = 0; match: ; if (tp->chipset >= CH_8139B) { u8 new_tmp8 = tmp8 = (*(volatile unsigned char *) ((void *)(ioaddr + (Config1)))); ; if ((rtl_chip_info[tp->chipset].flags & HasLWake) && (tmp8 & LWAKE)) new_tmp8 &= ~LWAKE; new_tmp8 |= Cfg1_PM_Enable; if (new_tmp8 != tmp8) { (*(volatile unsigned char *) ((void *)(ioaddr + (Cfg9346))) = ((Cfg9346_Unlock))); (*(volatile unsigned char *) ((void *)(ioaddr + (Config1))) = ((tmp8))); (*(volatile unsigned char *) ((void *)(ioaddr + (Cfg9346))) = ((Cfg9346_Lock))); } if (rtl_chip_info[tp->chipset].flags & HasLWake) { tmp8 = (*(volatile unsigned char *) ((void *)(ioaddr + (Config4)))); if (tmp8 & LWPTN) (*(volatile unsigned char *) ((void *)(ioaddr + (Config4))) = ((tmp8 & ~LWPTN))); } } else { ; tmp8 = (*(volatile unsigned char *) ((void *)(ioaddr + (Config1)))); tmp8 &= ~(SLEEP | PWRDN); (*(volatile unsigned char *) ((void *)(ioaddr + (Config1))) = ((tmp8))); } rtl8139_chip_reset (ioaddr); ; *dev_out = dev; return 0; err_out: __rtl8139_cleanup_dev (dev); ; return rc; } static int rtl8139_init_one (struct pci_dev *pdev, const struct pci_device_id *ent) { struct net_device *dev = ((void *)0); struct rtl8139_private *tp; int i, addr_len, option; void *ioaddr; static int board_idx = -1; u8 pci_rev; ; if(!(pdev != ((void *)0))) { printk( "Assertion failed! %s,%s,%s,line=%d\n", "pdev != NULL","8139too.c",__FUNCTION__,952); }; if(!(ent != ((void *)0))) { printk( "Assertion failed! %s,%s,%s,line=%d\n", "ent != NULL","8139too.c",__FUNCTION__,953); }; board_idx++; { static int printed_version; if (!printed_version++) printk ("<6>" "8139too" " Fast Ethernet driver " "0.9.20" "\n"); } pci_read_config_byte(pdev, 0x08, &pci_rev); if (pdev->vendor == 0x10ec && pdev->device == 0x8139 && pci_rev >= 0x20) { printk("<6>" "8139too" ": " "pci dev %s (id %04x:%04x rev %02x) is an enhanced 8139C+ chip\n", pdev->slot_name, pdev->vendor, pdev->device, pci_rev); printk("<6>" "8139too" ": " "Use the \"8139cp\" driver for improved performance and stability.\n"); } i = rtl8139_init_board (pdev, &dev); if (i < 0) { ; return i; } tp = dev->priv; ioaddr = tp->mmio_addr; if(!(ioaddr != ((void *)0))) { printk( "Assertion failed! %s,%s,%s,line=%d\n", "ioaddr != NULL","8139too.c",__FUNCTION__,986); }; if(!(dev != ((void *)0))) { printk( "Assertion failed! %s,%s,%s,line=%d\n", "dev != NULL","8139too.c",__FUNCTION__,987); }; if(!(tp != ((void *)0))) { printk( "Assertion failed! %s,%s,%s,line=%d\n", "tp != NULL","8139too.c",__FUNCTION__,988); }; addr_len = read_eeprom (ioaddr, 0, 8) == 0x8129 ? 8 : 6; for (i = 0; i < 3; i++) ((u16 *) (dev->dev_addr))[i] = ((__u16)(read_eeprom (ioaddr, i + 7, addr_len))); dev->open = rtl8139_open; dev->hard_start_xmit = rtl8139_start_xmit; dev->stop = rtl8139_close; dev->get_stats = rtl8139_get_stats; dev->set_multicast_list = rtl8139_set_rx_mode; dev->do_ioctl = netdev_ioctl; dev->tx_timeout = rtl8139_tx_timeout; dev->watchdog_timeo = (6*100); dev->features |= 1|8; dev->irq = pdev->irq; tp = dev->priv; tp->drv_flags = board_info[ent->driver_data].hw_flags; tp->mmio_addr = ioaddr; do { } while(0); init_waitqueue_head (&tp->thr_wait); init_completion (&tp->thr_exited); ; i = register_netdev (dev); if (i) goto err_out; pci_set_drvdata (pdev, dev); printk ("<6>" "%s: %s at 0x%lx, " "%2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x, " "IRQ %d\n", dev->name, board_info[ent->driver_data].name, dev->base_addr, dev->dev_addr[0], dev->dev_addr[1], dev->dev_addr[2], dev->dev_addr[3], dev->dev_addr[4], dev->dev_addr[5], dev->irq); printk ("<7>" "%s: Identified 8139 chip type '%s'\n", dev->name, rtl_chip_info[tp->chipset].name); # 1063 "8139too.c" tp->phys[0] = 32; option = (board_idx >= 8) ? 0 : media[board_idx]; if (option > 0) { tp->full_duplex = (option & 0x210) ? 1 : 0; tp->default_port = option & 0xFF; if (tp->default_port) tp->medialock = 1; } if (board_idx < 8 && full_duplex[board_idx] > 0) tp->full_duplex = full_duplex[board_idx]; if (tp->full_duplex) { printk("<6>" "%s: Media type forced to Full Duplex.\n", dev->name); tp->duplex_lock = 1; } if (tp->default_port) { printk("<6>" " Forcing %dMbps %s-duplex operation.\n", (option & 0x20 ? 100 : 10), (option & 0x10 ? "full" : "half")); mdio_write(dev, tp->phys[0], 0, ((option & 0x20) ? 0x2000 : 0) | ((option & 0x10) ? 0x0100 : 0)); } if (rtl_chip_info[tp->chipset].flags & HasHltClk) (*(volatile unsigned char *) ((void *)(ioaddr + (HltClk))) = (('H'))); ; return 0; err_out: __rtl8139_cleanup_dev (dev); ; return i; } static void rtl8139_remove_one (struct pci_dev *pdev) { struct net_device *dev = pci_get_drvdata (pdev); struct rtl8139_private *np; ; if(!(dev != ((void *)0))) { printk( "Assertion failed! %s,%s,%s,line=%d\n", "dev != NULL","8139too.c",__FUNCTION__,1111); }; np = dev->priv; if(!(np != ((void *)0))) { printk( "Assertion failed! %s,%s,%s,line=%d\n", "np != NULL","8139too.c",__FUNCTION__,1113); }; unregister_netdev (dev); __rtl8139_cleanup_dev (dev); ; } # 1145 "8139too.c" static int read_eeprom (void *ioaddr, int location, int addr_len) { int i; unsigned retval = 0; void *ee_addr = ioaddr + Cfg9346; int read_cmd = location | ((6) << addr_len); ; (*(volatile unsigned char *) ((void *)(ee_addr)) = ((0x80 | 0x08) & ~0x08)); (*(volatile unsigned char *) ((void *)(ee_addr)) = ((0x80 | 0x08))); (*(volatile unsigned int *) ((void *)(ee_addr))); for (i = 4 + addr_len; i >= 0; i--) { int dataval = (read_cmd & (1 << i)) ? 0x02 : 0; (*(volatile unsigned char *) ((void *)(ee_addr)) = ((0x80 | 0x08) | dataval)); (*(volatile unsigned int *) ((void *)(ee_addr))); (*(volatile unsigned char *) ((void *)(ee_addr)) = ((0x80 | 0x08) | dataval | 0x04)); (*(volatile unsigned int *) ((void *)(ee_addr))); } (*(volatile unsigned char *) ((void *)(ee_addr)) = ((0x80 | 0x08))); (*(volatile unsigned int *) ((void *)(ee_addr))); for (i = 16; i > 0; i--) { (*(volatile unsigned char *) ((void *)(ee_addr)) = ((0x80 | 0x08) | 0x04)); (*(volatile unsigned int *) ((void *)(ee_addr))); retval = (retval << 1) | (((*(volatile unsigned char *) ((void *)(ee_addr))) & 0x01) ? 1 : 0); (*(volatile unsigned char *) ((void *)(ee_addr)) = ((0x80 | 0x08))); (*(volatile unsigned int *) ((void *)(ee_addr))); } (*(volatile unsigned char *) ((void *)(ee_addr)) = (~0x08)); (*(volatile unsigned int *) ((void *)(ee_addr))); ; return retval; } # 1203 "8139too.c" static char mii_2_8139_map[8] = { BasicModeCtrl, BasicModeStatus, 0, 0, NWayAdvert, NWayLPAR, NWayExpansion, 0 }; # 1234 "8139too.c" static int mdio_read (struct net_device *dev, int phy_id, int location) { struct rtl8139_private *tp = dev->priv; int retval = 0; ; if (phy_id > 31) { ; return location < 8 && mii_2_8139_map[location] ? (*(volatile unsigned short *) ((void *)(tp->mmio_addr + mii_2_8139_map[location]))) : 0; } # 1274 "8139too.c" ; return (retval >> 1) & 0xffff; } static void mdio_write (struct net_device *dev, int phy_id, int location, int value) { struct rtl8139_private *tp = dev->priv; ; if (phy_id > 31) { void *ioaddr = tp->mmio_addr; if (location == 0) { (*(volatile unsigned char *) ((void *)(ioaddr + (Cfg9346))) = ((Cfg9346_Unlock))); (*(volatile unsigned short *) ((void *)(ioaddr + (BasicModeCtrl))) = ((value))); (*(volatile unsigned char *) ((void *)(ioaddr + (Cfg9346))) = ((Cfg9346_Lock))); } else if (location < 8 && mii_2_8139_map[location]) (*(volatile unsigned short *) ((void *)(ioaddr + (mii_2_8139_map[location]))) = ((value))); return; } # 1322 "8139too.c" } static int rtl8139_open (struct net_device *dev) { struct rtl8139_private *tp = dev->priv; int retval; ; retval = request_irq (dev->irq, rtl8139_interrupt, 0x04000000, dev->name, dev); if (retval) { ; return retval; } tp->tx_bufs = pci_alloc_consistent(tp->pci_dev, (1536 * 4), &tp->tx_bufs_dma); tp->rx_ring = pci_alloc_consistent(tp->pci_dev, ((8192 << 2) + 16 + 2048), &tp->rx_ring_dma); if (tp->tx_bufs == ((void *)0) || tp->rx_ring == ((void *)0)) { free_irq(dev->irq, dev); if (tp->tx_bufs) pci_free_consistent(tp->pci_dev, (1536 * 4), tp->tx_bufs, tp->tx_bufs_dma); if (tp->rx_ring) pci_free_consistent(tp->pci_dev, ((8192 << 2) + 16 + 2048), tp->rx_ring, tp->rx_ring_dma); ; return -12; } tp->full_duplex = tp->duplex_lock; tp->tx_flag = (256 << 11) & 0x003f0000; tp->twistie = 1; rtl8139_init_ring (dev); rtl8139_hw_start (dev); ; tp->thr_pid = kernel_thread (rtl8139_thread, dev, 0x00000200 | 0x00000400); if (tp->thr_pid < 0) printk ("<4>" "%s: unable to start kernel thread\n", dev->name); ; return 0; } static void rtl_check_media (struct net_device *dev) { struct rtl8139_private *tp = dev->priv; ; if (tp->phys[0] >= 0) { u16 mii_reg5 = mdio_read(dev, tp->phys[0], 5); if (mii_reg5 == 0xffff) ; else if ((mii_reg5 & 0x0100) == 0x0100 || (mii_reg5 & 0x00C0) == 0x0040) tp->full_duplex = 1; printk ("<6>""%s: Setting %s%s-duplex based on" " auto-negotiated partner ability %4.4x.\n", dev->name, mii_reg5 == 0 ? "" : (mii_reg5 & 0x0180) ? "100mbps " : "10mbps ", tp->full_duplex ? "full" : "half", mii_reg5); } } static void rtl8139_hw_start (struct net_device *dev) { struct rtl8139_private *tp = dev->priv; void *ioaddr = tp->mmio_addr; u32 i; u8 tmp; ; if (rtl_chip_info[tp->chipset].flags & HasHltClk) (*(volatile unsigned char *) ((void *)(ioaddr + (HltClk))) = (('R'))); rtl8139_chip_reset (ioaddr); do { (*(volatile unsigned char *) ((void *)(ioaddr + (Cfg9346))) = ((Cfg9346_Unlock))); (*(volatile unsigned char *) ((void *)(ioaddr + (Cfg9346)))); } while (0); do { (*(volatile unsigned int *) ((void *)(ioaddr + (MAC0 + 0))) = ((((__u32)(*(u32 *) (dev->dev_addr + 0)))))); (*(volatile unsigned int *) ((void *)(ioaddr + (MAC0 + 0)))); } while (0); do { (*(volatile unsigned int *) ((void *)(ioaddr + (MAC0 + 4))) = ((((__u32)(*(u32 *) (dev->dev_addr + 4)))))); (*(volatile unsigned int *) ((void *)(ioaddr + (MAC0 + 4)))); } while (0); (*(volatile unsigned char *) ((void *)(ioaddr + (ChipCmd))) = ((CmdRxEnb | CmdTxEnb))); tp->rx_config = rtl8139_rx_config | AcceptBroadcast | AcceptMyPhys; (*(volatile unsigned int *) ((void *)(ioaddr + (RxConfig))) = ((tp->rx_config))); (*(volatile unsigned int *) ((void *)(ioaddr + (TxConfig))) = (((6 << TxDMAShift)))); tp->cur_rx = 0; rtl_check_media (dev); if (tp->chipset >= CH_8139B) { (*(volatile unsigned char *) ((void *)(ioaddr + (Config3))) = (((*(volatile unsigned char *) ((void *)(ioaddr + (Config3)))) & ~Cfg3_Magic))); } ; (*(volatile unsigned char *) ((void *)(ioaddr + (Cfg9346))) = ((Cfg9346_Lock))); do { (*(volatile unsigned int *) ((void *)(ioaddr + (RxBuf))) = ((tp->rx_ring_dma))); (*(volatile unsigned int *) ((void *)(ioaddr + (RxBuf)))); } while (0); for (i = 0; i < 4; i++) do { (*(volatile unsigned int *) ((void *)(ioaddr + (TxAddr0 + (i * 4)))) = ((tp->tx_bufs_dma + (tp->tx_buf[i] - tp->tx_bufs)))); (*(volatile unsigned int *) ((void *)(ioaddr + (TxAddr0 + (i * 4))))); } while (0); (*(volatile unsigned int *) ((void *)(ioaddr + (RxMissed))) = ((0))); rtl8139_set_rx_mode (dev); (*(volatile unsigned short *) ((void *)(ioaddr + (MultiIntr))) = (((*(volatile unsigned short *) ((void *)(ioaddr + (MultiIntr)))) & MultiIntrClear))); tmp = (*(volatile unsigned char *) ((void *)(ioaddr + (ChipCmd)))); if ((!(tmp & CmdRxEnb)) || (!(tmp & CmdTxEnb))) (*(volatile unsigned char *) ((void *)(ioaddr + (ChipCmd))) = ((CmdRxEnb | CmdTxEnb))); (*(volatile unsigned short *) ((void *)(ioaddr + (IntrMask))) = ((rtl8139_intr_mask))); netif_start_queue (dev); ; } static void rtl8139_init_ring (struct net_device *dev) { struct rtl8139_private *tp = dev->priv; int i; ; tp->cur_rx = 0; tp->cur_tx = 0; tp->dirty_tx = 0; for (i = 0; i < 4; i++) { tp->tx_info[i].skb = ((void *)0); tp->tx_info[i].mapping = 0; tp->tx_buf[i] = &tp->tx_bufs[i * 1536]; } ; } static int next_tick = 3 * 100; static inline void rtl8139_tune_twister (struct net_device *dev, struct rtl8139_private *tp) {} # 1600 "8139too.c" static inline void rtl8139_thread_iter (struct net_device *dev, struct rtl8139_private *tp, void *ioaddr) { int mii_reg5; mii_reg5 = mdio_read (dev, tp->phys[0], 5); if (!tp->duplex_lock && mii_reg5 != 0xffff) { int duplex = (mii_reg5 & 0x0100) || (mii_reg5 & 0x01C0) == 0x0040; if (tp->full_duplex != duplex) { tp->full_duplex = duplex; if (mii_reg5) { printk ("<6>" "%s: Setting %s-duplex based on MII #%d link" " partner ability of %4.4x.\n", dev->name, tp->full_duplex ? "full" : "half", tp->phys[0], mii_reg5); } else { printk("<6>""%s: media is unconnected, link down, or incompatible connection\n", dev->name); } } } next_tick = 100 * 60; rtl8139_tune_twister (dev, tp); ; ; ; } static int rtl8139_thread (void *data) { struct net_device *dev = data; struct rtl8139_private *tp = dev->priv; unsigned long timeout; daemonize (); reparent_to_init(); do { __asm__ __volatile__("cli": : :"memory"); (void)(&get_current()->sigmask_lock); } while (0); sigemptyset(&get_current()->blocked); recalc_sigpending(get_current()); do { do { } while(0); __asm__ __volatile__("sti": : :"memory"); } while (0); strncpy (get_current()->comm, dev->name, sizeof(get_current()->comm) - 1); get_current()->comm[sizeof(get_current()->comm) - 1] = '\0'; while (1) { timeout = next_tick; do { timeout = interruptible_sleep_on_timeout (&tp->thr_wait, timeout); } while (!signal_pending (get_current()) && (timeout > 0)); if (signal_pending (get_current())) break; rtnl_lock (); rtl8139_thread_iter (dev, tp, tp->mmio_addr); rtnl_unlock (); } complete_and_exit (&tp->thr_exited, 0); } static void rtl8139_tx_clear (struct rtl8139_private *tp) { int i; tp->cur_tx = 0; tp->dirty_tx = 0; for (i = 0; i < 4; i++) { struct ring_info *rp = &tp->tx_info[i]; if (rp->mapping != 0) { pci_unmap_single (tp->pci_dev, rp->mapping, rp->skb->len, 1); rp->mapping = 0; } if (rp->skb) { kfree_skb(rp->skb); rp->skb = ((void *)0); tp->stats.tx_dropped++; } } } static void rtl8139_tx_timeout (struct net_device *dev) { struct rtl8139_private *tp = dev->priv; void *ioaddr = tp->mmio_addr; int i; u8 tmp8; unsigned long flags; ; tp->xstats.tx_timeouts++; tmp8 = (*(volatile unsigned char *) ((void *)(ioaddr + (ChipCmd)))); if (tmp8 & CmdTxEnb) (*(volatile unsigned char *) ((void *)(ioaddr + (ChipCmd))) = ((CmdRxEnb))); (*(volatile unsigned short *) ((void *)(ioaddr + (IntrMask))) = ((0x0000))); printk ("<7>" "%s: Tx queue start entry %ld dirty entry %ld.\n", dev->name, tp->cur_tx, tp->dirty_tx); for (i = 0; i < 4; i++) printk ("<7>" "%s: Tx descriptor %d is %8.8lx.%s\n", dev->name, i, ((unsigned long) (*(volatile unsigned int *) ((void *)(ioaddr + (TxStatus0 + (i * 4)))))), i == tp->dirty_tx % 4 ? " (queue head)" : ""); do { __asm__ __volatile__("pushfl ; popl %0 ; cli":"=g" (flags): :"memory"); (void)(&tp->lock); } while (0); rtl8139_tx_clear (tp); do { do { } while(0); __asm__ __volatile__("pushl %0 ; popfl": :"g" (flags):"memory", "cc"); } while (0); rtl8139_hw_start (dev); netif_wake_queue (dev); } static int rtl8139_start_xmit (struct sk_buff *skb, struct net_device *dev) { struct rtl8139_private *tp = dev->priv; void *ioaddr = tp->mmio_addr; unsigned int entry; u32 dma_addr; __asm__ __volatile__ ("lock; addl $0,0(%%esp)": : :"memory"); entry = tp->cur_tx % 4; if(!(tp->tx_info[entry].skb == ((void *)0))) { printk( "Assertion failed! %s,%s,%s,line=%d\n", "tp->tx_info[entry].skb == NULL","8139too.c",__FUNCTION__,1765); }; if(!(tp->tx_info[entry].mapping == 0)) { printk( "Assertion failed! %s,%s,%s,line=%d\n", "tp->tx_info[entry].mapping == 0","8139too.c",__FUNCTION__,1766); }; tp->tx_info[entry].skb = skb; if ( !((unsigned long)skb->data & 3) && ((struct skb_shared_info *)((skb)->end))->nr_frags == 0 && skb->ip_summed != 1) { tp->xstats.tx_buf_mapped++; tp->tx_info[entry].mapping = pci_map_single (tp->pci_dev, skb->data, skb->len, 1); dma_addr = tp->tx_info[entry].mapping; } else if (skb->len < 1536) { skb_copy_and_csum_dev(skb, tp->tx_buf[entry]); dma_addr = tp->tx_bufs_dma + (tp->tx_buf[entry] - tp->tx_bufs); } else { kfree_skb(skb); tp->tx_info[entry].skb = ((void *)0); return 0; } do { __asm__ __volatile__("cli": : :"memory"); (void)(&tp->lock); } while (0); do { (*(volatile unsigned int *) ((void *)(ioaddr + (TxAddr0 + (entry * 4)))) = ((dma_addr))); (*(volatile unsigned int *) ((void *)(ioaddr + (TxAddr0 + (entry * 4))))); } while (0); do { (*(volatile unsigned int *) ((void *)(ioaddr + (TxStatus0 + (entry * sizeof (u32))))) = ((tp->tx_flag | (skb->len >= 60 ? skb->len : 60)))); (*(volatile unsigned int *) ((void *)(ioaddr + (TxStatus0 + (entry * sizeof (u32)))))); } while (0); dev->trans_start = jiffies; tp->cur_tx++; __asm__ __volatile__ ("lock; addl $0,0(%%esp)": : :"memory"); if ((tp->cur_tx - 4) == tp->dirty_tx) netif_stop_queue (dev); do { do { } while(0); __asm__ __volatile__("sti": : :"memory"); } while (0); ; return 0; } static void rtl8139_tx_interrupt (struct net_device *dev, struct rtl8139_private *tp, void *ioaddr) { unsigned long dirty_tx, tx_left; if(!(dev != ((void *)0))) { printk( "Assertion failed! %s,%s,%s,line=%d\n", "dev != NULL","8139too.c",__FUNCTION__,1811); }; if(!(tp != ((void *)0))) { printk( "Assertion failed! %s,%s,%s,line=%d\n", "tp != NULL","8139too.c",__FUNCTION__,1812); }; if(!(ioaddr != ((void *)0))) { printk( "Assertion failed! %s,%s,%s,line=%d\n", "ioaddr != NULL","8139too.c",__FUNCTION__,1813); }; dirty_tx = tp->dirty_tx; tx_left = tp->cur_tx - dirty_tx; while (tx_left > 0) { int entry = dirty_tx % 4; int txstatus; txstatus = ((unsigned long) (*(volatile unsigned int *) ((void *)(ioaddr + (TxStatus0 + (entry * sizeof (u32))))))); if (!(txstatus & (TxStatOK | TxUnderrun | TxAborted))) break; if (txstatus & (TxOutOfWindow | TxAborted)) { ; tp->stats.tx_errors++; if (txstatus & TxAborted) { tp->stats.tx_aborted_errors++; do { (*(volatile unsigned int *) ((void *)(ioaddr + (TxConfig))) = ((TxClearAbt | (6 << TxDMAShift)))); (*(volatile unsigned int *) ((void *)(ioaddr + (TxConfig)))); } while (0); } if (txstatus & TxCarrierLost) tp->stats.tx_carrier_errors++; if (txstatus & TxOutOfWindow) tp->stats.tx_window_errors++; } else { if (txstatus & TxUnderrun) { if (tp->tx_flag < 0x00300000) tp->tx_flag += 0x00020000; tp->stats.tx_fifo_errors++; } tp->stats.collisions += (txstatus >> 24) & 15; tp->stats.tx_bytes += txstatus & 0x7ff; tp->stats.tx_packets++; } if (tp->tx_info[entry].mapping != 0) { pci_unmap_single(tp->pci_dev, tp->tx_info[entry].mapping, tp->tx_info[entry].skb->len, 1); tp->tx_info[entry].mapping = 0; } dev_kfree_skb_irq (tp->tx_info[entry].skb); tp->tx_info[entry].skb = ((void *)0); dirty_tx++; tx_left--; } if (tp->cur_tx - dirty_tx > 4) { printk ("<3>" "%s: Out-of-sync dirty pointer, %ld vs. %ld.\n", dev->name, dirty_tx, tp->cur_tx); dirty_tx += 4; } if (tp->dirty_tx != dirty_tx) { tp->dirty_tx = dirty_tx; __asm__ __volatile__ ("lock; addl $0,0(%%esp)": : :"memory"); if (netif_queue_stopped (dev)) netif_wake_queue (dev); } } static void rtl8139_rx_err (u32 rx_status, struct net_device *dev, struct rtl8139_private *tp, void *ioaddr) { u8 tmp8; int tmp_work; ; if (rx_status & RxTooLong) { ; } tp->stats.rx_errors++; if (rx_status & (RxBadSymbol | RxBadAlign)) tp->stats.rx_frame_errors++; if (rx_status & (RxRunt | RxTooLong)) tp->stats.rx_length_errors++; if (rx_status & RxCRCErr) tp->stats.rx_crc_errors++; do { (*(volatile unsigned char *) ((void *)(ioaddr + (ChipCmd))) = ((CmdTxEnb))); (*(volatile unsigned char *) ((void *)(ioaddr + (ChipCmd)))); } while (0); tmp_work = 200; while (--tmp_work > 0) { (__builtin_constant_p(1) ? ((1) > 20000 ? __bad_udelay() : __const_udelay((1) * 0x10c6ul)) : __udelay(1)); tmp8 = (*(volatile unsigned char *) ((void *)(ioaddr + (ChipCmd)))); if (!(tmp8 & CmdRxEnb)) break; } if (tmp_work <= 0) printk ("<4>" "8139too" ": " "rx stop wait too long\n"); tmp_work = 200; while (--tmp_work > 0) { do { (*(volatile unsigned char *) ((void *)(ioaddr + (ChipCmd))) = ((CmdRxEnb | CmdTxEnb))); (*(volatile unsigned char *) ((void *)(ioaddr + (ChipCmd)))); } while (0); (__builtin_constant_p(1) ? ((1) > 20000 ? __bad_udelay() : __const_udelay((1) * 0x10c6ul)) : __udelay(1)); tmp8 = (*(volatile unsigned char *) ((void *)(ioaddr + (ChipCmd)))); if ((tmp8 & CmdRxEnb) && (tmp8 & CmdTxEnb)) break; } if (tmp_work <= 0) printk ("<4>" "8139too" ": " "tx/rx enable wait too long\n"); do { (*(volatile unsigned char *) ((void *)(ioaddr + (Cfg9346))) = ((Cfg9346_Unlock))); (*(volatile unsigned char *) ((void *)(ioaddr + (Cfg9346)))); } while (0); (*(volatile unsigned char *) ((void *)(ioaddr + (ChipCmd))) = ((CmdRxEnb | CmdTxEnb))); tp->rx_config = rtl8139_rx_config | AcceptBroadcast | AcceptMyPhys; (*(volatile unsigned int *) ((void *)(ioaddr + (RxConfig))) = ((tp->rx_config))); tp->cur_rx = 0; ; (*(volatile unsigned char *) ((void *)(ioaddr + (Cfg9346))) = ((Cfg9346_Lock))); do { (*(volatile unsigned int *) ((void *)(ioaddr + (RxBuf))) = ((tp->rx_ring_dma))); (*(volatile unsigned int *) ((void *)(ioaddr + (RxBuf)))); } while (0); __set_rx_mode (dev); } static void rtl8139_rx_interrupt (struct net_device *dev, struct rtl8139_private *tp, void *ioaddr) { unsigned char *rx_ring; u16 cur_rx; if(!(dev != ((void *)0))) { printk( "Assertion failed! %s,%s,%s,line=%d\n", "dev != NULL","8139too.c",__FUNCTION__,1963); }; if(!(tp != ((void *)0))) { printk( "Assertion failed! %s,%s,%s,line=%d\n", "tp != NULL","8139too.c",__FUNCTION__,1964); }; if(!(ioaddr != ((void *)0))) { printk( "Assertion failed! %s,%s,%s,line=%d\n", "ioaddr != NULL","8139too.c",__FUNCTION__,1965); }; rx_ring = tp->rx_ring; cur_rx = tp->cur_rx; ; while (((*(volatile unsigned char *) ((void *)(ioaddr + (ChipCmd)))) & RxBufEmpty) == 0) { int ring_offset = cur_rx % (8192 << 2); u32 rx_status; unsigned int rx_size; unsigned int pkt_size; struct sk_buff *skb; __asm__ __volatile__ ("lock; addl $0,0(%%esp)": : :"memory"); rx_status = ((__u32)(*(u32 *) (rx_ring + ring_offset))); rx_size = rx_status >> 16; pkt_size = rx_size - 4; ; # 2003 "8139too.c" if (rx_size == 0xfff0) { tp->xstats.early_rx++; break; } if ((rx_size > (1536 +4)) || (rx_size < 8) || (!(rx_status & RxStatusOK))) { rtl8139_rx_err (rx_status, dev, tp, ioaddr); return; } # 2029 "8139too.c" skb = dev_alloc_skb (pkt_size + 2); if (skb) { skb->dev = dev; skb_reserve (skb, 2); eth_copy_and_sum (skb, &rx_ring[ring_offset + 4], pkt_size, 0); skb_put (skb, pkt_size); skb->protocol = eth_type_trans (skb, dev); netif_rx (skb); dev->last_rx = jiffies; tp->stats.rx_bytes += pkt_size; tp->stats.rx_packets++; } else { printk ("<4>" "%s: Memory squeeze, dropping packet.\n", dev->name); tp->stats.rx_dropped++; } cur_rx = (cur_rx + rx_size + 4 + 3) & ~3; (*(volatile unsigned short *) ((void *)(ioaddr + (RxBufPtr))) = ((cur_rx - 16))); if ((*(volatile unsigned short *) ((void *)(ioaddr + (IntrStatus)))) & RxAckBits) do { (*(volatile unsigned short *) ((void *)(ioaddr + (IntrStatus))) = ((RxAckBits))); (*(volatile unsigned short *) ((void *)(ioaddr + (IntrStatus)))); } while (0); } ; tp->cur_rx = cur_rx; if (((*(volatile unsigned char *) ((void *)(ioaddr + (ChipCmd)))) & RxBufEmpty) && ((*(volatile unsigned short *) ((void *)(ioaddr + (IntrStatus)))) & RxAckBits)) do { (*(volatile unsigned short *) ((void *)(ioaddr + (IntrStatus))) = ((RxAckBits))); (*(volatile unsigned short *) ((void *)(ioaddr + (IntrStatus)))); } while (0); } static void rtl8139_weird_interrupt (struct net_device *dev, struct rtl8139_private *tp, void *ioaddr, int status, int link_changed) { ; if(!(dev != ((void *)0))) { printk( "Assertion failed! %s,%s,%s,line=%d\n", "dev != NULL","8139too.c",__FUNCTION__,2077); }; if(!(tp != ((void *)0))) { printk( "Assertion failed! %s,%s,%s,line=%d\n", "tp != NULL","8139too.c",__FUNCTION__,2078); }; if(!(ioaddr != ((void *)0))) { printk( "Assertion failed! %s,%s,%s,line=%d\n", "ioaddr != NULL","8139too.c",__FUNCTION__,2079); }; tp->stats.rx_missed_errors += ((unsigned long) (*(volatile unsigned int *) ((void *)(ioaddr + (RxMissed))))); (*(volatile unsigned int *) ((void *)(ioaddr + (RxMissed))) = ((0))); if ((status & RxUnderrun) && link_changed && (tp->drv_flags & HAS_LNK_CHNG)) { int lpar = (*(volatile unsigned short *) ((void *)(ioaddr + (NWayLPAR)))); int duplex = (lpar & 0x0100) || (lpar & 0x01C0) == 0x0040 || tp->duplex_lock; if (tp->full_duplex != duplex) { tp->full_duplex = duplex; } status &= ~RxUnderrun; } if (status & (RxUnderrun | RxOverflow | RxErr | RxFIFOOver)) tp->stats.rx_errors++; if (status & (PCSTimeout)) tp->stats.rx_length_errors++; if (status & (RxUnderrun | RxFIFOOver)) tp->stats.rx_fifo_errors++; if (status & PCIErr) { u16 pci_cmd_status; pci_read_config_word (tp->pci_dev, 0x06, &pci_cmd_status); printk ("<3>" "%s: PCI Bus error %4.4x.\n", dev->name, pci_cmd_status); } } static void rtl8139_interrupt (int irq, void *dev_instance, struct pt_regs *regs) { struct net_device *dev = (struct net_device *) dev_instance; struct rtl8139_private *tp = dev->priv; int boguscnt = max_interrupt_work; void *ioaddr = tp->mmio_addr; int ackstat, status; int link_changed = 0; (void)(&tp->lock); do { status = (*(volatile unsigned short *) ((void *)(ioaddr + (IntrStatus)))); if (status == 0xFFFF) break; if (status & RxUnderrun) link_changed = (*(volatile unsigned short *) ((void *)(ioaddr + (CSCR)))) & CSCR_LinkChangeBit; ackstat = status & ~RxAckBits; (*(volatile unsigned short *) ((void *)(ioaddr + (IntrStatus))) = ((ackstat))); ; if ((status & (PCIErr | PCSTimeout | RxUnderrun | RxOverflow | RxFIFOOver | TxErr | TxOK | RxErr | RxOK)) == 0) break; if (netif_running (dev) && (status & RxAckBits)) rtl8139_rx_interrupt (dev, tp, ioaddr); if (status & (PCIErr | PCSTimeout | RxUnderrun | RxOverflow | RxFIFOOver | TxErr | RxErr)) rtl8139_weird_interrupt (dev, tp, ioaddr, status, link_changed); if (netif_running (dev) && (status & (TxOK | TxErr))) rtl8139_tx_interrupt (dev, tp, ioaddr); boguscnt--; } while (boguscnt > 0); if (boguscnt <= 0) { printk ("<4>" "%s: Too much work at interrupt, " "IntrStatus=0x%4.4x.\n", dev->name, status); (*(volatile unsigned short *) ((void *)(ioaddr + (IntrStatus))) = ((0xffff))); } do { } while(0); ; } static int rtl8139_close (struct net_device *dev) { struct rtl8139_private *tp = dev->priv; void *ioaddr = tp->mmio_addr; int ret = 0; unsigned long flags; ; netif_stop_queue (dev); if (tp->thr_pid >= 0) { ret = kill_proc (tp->thr_pid, 15, 1); if (ret) { printk ("<3>" "%s: unable to signal thread\n", dev->name); return ret; } wait_for_completion (&tp->thr_exited); } ; do { __asm__ __volatile__("pushfl ; popl %0 ; cli":"=g" (flags): :"memory"); (void)(&tp->lock); } while (0); (*(volatile unsigned char *) ((void *)(ioaddr + (ChipCmd))) = ((0))); (*(volatile unsigned short *) ((void *)(ioaddr + (IntrMask))) = ((0))); tp->stats.rx_missed_errors += ((unsigned long) (*(volatile unsigned int *) ((void *)(ioaddr + (RxMissed))))); (*(volatile unsigned int *) ((void *)(ioaddr + (RxMissed))) = ((0))); do { do { } while(0); __asm__ __volatile__("pushl %0 ; popfl": :"g" (flags):"memory", "cc"); } while (0); __asm__ __volatile__("": : :"memory"); free_irq (dev->irq, dev); rtl8139_tx_clear (tp); pci_free_consistent(tp->pci_dev, ((8192 << 2) + 16 + 2048), tp->rx_ring, tp->rx_ring_dma); pci_free_consistent(tp->pci_dev, (1536 * 4), tp->tx_bufs, tp->tx_bufs_dma); tp->rx_ring = ((void *)0); tp->tx_bufs = ((void *)0); (*(volatile unsigned char *) ((void *)(ioaddr + (Cfg9346))) = ((Cfg9346_Unlock))); if (rtl_chip_info[tp->chipset].flags & HasHltClk) (*(volatile unsigned char *) ((void *)(ioaddr + (HltClk))) = (('H'))); ; return 0; } static void netdev_get_eset (struct net_device *dev, struct ethtool_cmd *eset) { struct rtl8139_private *np = dev->priv; void *ioaddr = np->mmio_addr; u16 advert; eset->supported = (1 << 0) | (1 << 1) | (1 << 2) | (1 << 3) | (1 << 6) | (1 << 7); eset->advertising = (1 << 7) | (1 << 6); advert = mdio_read (dev, np->phys[0], 4); if (advert & 0x0020) eset->advertising |= (1 << 0); if (advert & 0x0040) eset->advertising |= (1 << 1); if (advert & 0x0080) eset->advertising |= (1 << 2); if (advert & 0x0100) eset->advertising |= (1 << 3); eset->speed = ((*(volatile unsigned char *) ((void *)(ioaddr + (MediaStatus)))) & 0x08) ? 10 : 100; eset->duplex = np->full_duplex ? 0x01 : 0x00; eset->port = 0x00; eset->phy_address = np->phys[0]; eset->transceiver = 0x00; eset->autoneg = (mdio_read (dev, np->phys[0], 0) & 0x1000) != 0; eset->maxtxpkt = 1; eset->maxrxpkt = 1; } static void netdev_get_wol (struct net_device *dev, struct ethtool_wolinfo *wol) { struct rtl8139_private *np = dev->priv; void *ioaddr = np->mmio_addr; if (rtl_chip_info[np->chipset].flags & HasLWake) { u8 cfg3 = (*(volatile unsigned char *) ((void *)(ioaddr + (Config3)))); u8 cfg5 = (*(volatile unsigned char *) ((void *)(ioaddr + (Config5)))); wol->supported = (1 << 0) | (1 << 5) | (1 << 1) | (1 << 2) | (1 << 3); wol->wolopts = 0; if (cfg3 & Cfg3_LinkUp) wol->wolopts |= (1 << 0); if (cfg3 & Cfg3_Magic) wol->wolopts |= (1 << 5); if (cfg5 & Cfg5_UWF) wol->wolopts |= (1 << 1); if (cfg5 & Cfg5_MWF) wol->wolopts |= (1 << 2); if (cfg5 & Cfg5_BWF) wol->wolopts |= (1 << 3); } } static int netdev_set_wol (struct net_device *dev, const struct ethtool_wolinfo *wol) { struct rtl8139_private *np = dev->priv; void *ioaddr = np->mmio_addr; u32 support; u8 cfg3, cfg5; support = ((rtl_chip_info[np->chipset].flags & HasLWake) ? ((1 << 0) | (1 << 5) | (1 << 1) | (1 << 2) | (1 << 3)) : 0); if (wol->wolopts & ~support) return -22; cfg3 = (*(volatile unsigned char *) ((void *)(ioaddr + (Config3)))) & ~(Cfg3_LinkUp | Cfg3_Magic); if (wol->wolopts & (1 << 0)) cfg3 |= Cfg3_LinkUp; if (wol->wolopts & (1 << 5)) cfg3 |= Cfg3_Magic; (*(volatile unsigned char *) ((void *)(ioaddr + (Cfg9346))) = ((Cfg9346_Unlock))); (*(volatile unsigned char *) ((void *)(ioaddr + (Config3))) = ((cfg3))); (*(volatile unsigned char *) ((void *)(ioaddr + (Cfg9346))) = ((Cfg9346_Lock))); cfg5 = (*(volatile unsigned char *) ((void *)(ioaddr + (Config5)))) & ~(Cfg5_UWF | Cfg5_MWF | Cfg5_BWF); if (wol->wolopts & (1 << 1)) cfg5 |= Cfg5_UWF; if (wol->wolopts & (1 << 2)) cfg5 |= Cfg5_MWF; if (wol->wolopts & (1 << 3)) cfg5 |= Cfg5_BWF; (*(volatile unsigned char *) ((void *)(ioaddr + (Config5))) = ((cfg5))); return 0; } static int netdev_ethtool_ioctl (struct net_device *dev, void *useraddr) { struct rtl8139_private *np = dev->priv; u32 ethcmd; if ((__builtin_constant_p(sizeof (ethcmd)) ? __constant_copy_from_user((ðcmd),(useraddr),(sizeof (ethcmd))) : __generic_copy_from_user((ðcmd),(useraddr),(sizeof (ethcmd))))) return -14; switch (ethcmd) { case 0x00000001: { struct ethtool_cmd eset = { 0x00000001 }; do { __asm__ __volatile__("cli": : :"memory"); (void)(&np->lock); } while (0); netdev_get_eset (dev, &eset); do { do { } while(0); __asm__ __volatile__("sti": : :"memory"); } while (0); if ((__builtin_constant_p(sizeof (eset)) ? __constant_copy_to_user((useraddr),(&eset),(sizeof (eset))) : __generic_copy_to_user((useraddr),(&eset),(sizeof (eset))))) return -14; return 0; } case 0x00000003: { struct ethtool_drvinfo info = { 0x00000003 }; strcpy (info.driver, "8139too"); strcpy (info.version, "0.9.20"); strcpy (info.bus_info, np->pci_dev->slot_name); if ((__builtin_constant_p(sizeof (info)) ? __constant_copy_to_user((useraddr),(&info),(sizeof (info))) : __generic_copy_to_user((useraddr),(&info),(sizeof (info))))) return -14; return 0; } case 0x00000005: { struct ethtool_wolinfo wol = { 0x00000005 }; do { __asm__ __volatile__("cli": : :"memory"); (void)(&np->lock); } while (0); netdev_get_wol (dev, &wol); do { do { } while(0); __asm__ __volatile__("sti": : :"memory"); } while (0); if ((__builtin_constant_p(sizeof (wol)) ? __constant_copy_to_user((useraddr),(&wol),(sizeof (wol))) : __generic_copy_to_user((useraddr),(&wol),(sizeof (wol))))) return -14; return 0; } case 0x00000006: { struct ethtool_wolinfo wol; int rc; if ((__builtin_constant_p(sizeof (wol)) ? __constant_copy_from_user((&wol),(useraddr),(sizeof (wol))) : __generic_copy_from_user((&wol),(useraddr),(sizeof (wol))))) return -14; do { __asm__ __volatile__("cli": : :"memory"); (void)(&np->lock); } while (0); rc = netdev_set_wol (dev, &wol); do { do { } while(0); __asm__ __volatile__("sti": : :"memory"); } while (0); return rc; } default: break; } return -95; } static int netdev_ioctl (struct net_device *dev, struct ifreq *rq, int cmd) { struct rtl8139_private *tp = dev->priv; struct mii_ioctl_data *data = (struct mii_ioctl_data *)&rq->ifr_ifru.ifru_data; int rc = 0; int phy = tp->phys[0] & 0x3f; ; if (cmd != 0x8946) { data->phy_id &= 0x1f; data->reg_num &= 0x1f; } switch (cmd) { case 0x8946: return netdev_ethtool_ioctl(dev, (void *) rq->ifr_ifru.ifru_data); case 0x8947: case 0x89F0: data->phy_id = phy; case 0x8948: case 0x89F0 +1: data->val_out = mdio_read (dev, data->phy_id, data->reg_num); break; case 0x8949: case 0x89F0 +2: if (!capable (12)) { rc = -1; break; } if (data->phy_id == phy) { u16 value = data->val_in; switch (data->reg_num) { case 0: tp->medialock = (value & 0x9000) ? 0 : 1; if (tp->medialock) tp->full_duplex = (value & 0x0100) ? 1 : 0; break; case 4: break; } } mdio_write(dev, data->phy_id, data->reg_num, data->val_in); break; default: rc = -95; break; } ; return rc; } static struct net_device_stats *rtl8139_get_stats (struct net_device *dev) { struct rtl8139_private *tp = dev->priv; void *ioaddr = tp->mmio_addr; unsigned long flags; ; if (netif_running(dev)) { do { __asm__ __volatile__("pushfl ; popl %0 ; cli":"=g" (flags): :"memory"); (void)(&tp->lock); } while (0); tp->stats.rx_missed_errors += ((unsigned long) (*(volatile unsigned int *) ((void *)(ioaddr + (RxMissed))))); (*(volatile unsigned int *) ((void *)(ioaddr + (RxMissed))) = ((0))); do { do { } while(0); __asm__ __volatile__("pushl %0 ; popfl": :"g" (flags):"memory", "cc"); } while (0); } ; return &tp->stats; } static unsigned const ethernet_polynomial = 0x04c11db7U; static inline u32 ether_crc (int length, unsigned char *data) { int crc = -1; ; while (--length >= 0) { unsigned char current_octet = *data++; int bit; for (bit = 0; bit < 8; bit++, current_octet >>= 1) crc = (crc << 1) ^ ((crc < 0) ^ (current_octet & 1) ? ethernet_polynomial : 0); } ; return crc; } static void __set_rx_mode (struct net_device *dev) { struct rtl8139_private *tp = dev->priv; void *ioaddr = tp->mmio_addr; u32 mc_filter[2]; int i, rx_mode; u32 tmp; ; ; if (dev->flags & 0x100) { printk ("<5>" "%s: Promiscuous mode enabled.\n", dev->name); rx_mode = AcceptBroadcast | AcceptMulticast | AcceptMyPhys | AcceptAllPhys; mc_filter[1] = mc_filter[0] = 0xffffffff; } else if ((dev->mc_count > multicast_filter_limit) || (dev->flags & 0x200)) { rx_mode = AcceptBroadcast | AcceptMulticast | AcceptMyPhys; mc_filter[1] = mc_filter[0] = 0xffffffff; } else { struct dev_mc_list *mclist; rx_mode = AcceptBroadcast | AcceptMyPhys; mc_filter[1] = mc_filter[0] = 0; for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count; i++, mclist = mclist->next) { int bit_nr = ether_crc(6, mclist->dmi_addr) >> 26; mc_filter[bit_nr >> 5] |= ((__u32)(1 << (bit_nr & 31))); rx_mode |= AcceptMulticast; } } tmp = rtl8139_rx_config | rx_mode; if (tp->rx_config != tmp) { do { (*(volatile unsigned int *) ((void *)(ioaddr + (RxConfig))) = ((tmp))); (*(volatile unsigned int *) ((void *)(ioaddr + (RxConfig)))); } while (0); tp->rx_config = tmp; } do { (*(volatile unsigned int *) ((void *)(ioaddr + (MAR0 + 0))) = ((mc_filter[0]))); (*(volatile unsigned int *) ((void *)(ioaddr + (MAR0 + 0)))); } while (0); do { (*(volatile unsigned int *) ((void *)(ioaddr + (MAR0 + 4))) = ((mc_filter[1]))); (*(volatile unsigned int *) ((void *)(ioaddr + (MAR0 + 4)))); } while (0); ; } static void rtl8139_set_rx_mode (struct net_device *dev) { unsigned long flags; struct rtl8139_private *tp = dev->priv; do { __asm__ __volatile__("pushfl ; popl %0 ; cli":"=g" (flags): :"memory"); (void)(&tp->lock); } while (0); __set_rx_mode(dev); do { do { } while(0); __asm__ __volatile__("pushl %0 ; popfl": :"g" (flags):"memory", "cc"); } while (0); } static int rtl8139_suspend (struct pci_dev *pdev, u32 state) { struct net_device *dev = pci_get_drvdata (pdev); struct rtl8139_private *tp = dev->priv; void *ioaddr = tp->mmio_addr; unsigned long flags; if (!netif_running (dev)) return 0; netif_device_detach (dev); do { __asm__ __volatile__("pushfl ; popl %0 ; cli":"=g" (flags): :"memory"); (void)(&tp->lock); } while (0); (*(volatile unsigned short *) ((void *)(ioaddr + (IntrMask))) = ((0))); (*(volatile unsigned char *) ((void *)(ioaddr + (ChipCmd))) = ((0))); tp->stats.rx_missed_errors += ((unsigned long) (*(volatile unsigned int *) ((void *)(ioaddr + (RxMissed))))); (*(volatile unsigned int *) ((void *)(ioaddr + (RxMissed))) = ((0))); do { do { } while(0); __asm__ __volatile__("pushl %0 ; popfl": :"g" (flags):"memory", "cc"); } while (0); return 0; } static int rtl8139_resume (struct pci_dev *pdev) { struct net_device *dev = pci_get_drvdata (pdev); if (!netif_running (dev)) return 0; netif_device_attach (dev); rtl8139_hw_start (dev); return 0; } static struct pci_driver rtl8139_pci_driver = { name: "8139too", id_table: rtl8139_pci_tbl, probe: rtl8139_init_one, remove: rtl8139_remove_one, suspend: rtl8139_suspend, resume: rtl8139_resume, }; static int __attribute__ ((__section__ (".text.init"))) rtl8139_init_module (void) { return pci_module_init (&rtl8139_pci_driver); } static void __attribute__ ((unused, __section__(".text.exit"))) rtl8139_cleanup_module (void) { pci_unregister_driver (&rtl8139_pci_driver); } static initcall_t __initcall_rtl8139_init_module __attribute__ ((unused,__section__ (".initcall.init"))) = rtl8139_init_module;; static exitcall_t __exitcall_rtl8139_cleanup_module __attribute__ ((unused,__section__ (".exitcall.exit"))) = rtl8139_cleanup_module;;