// /usr/libexec/gcc/sh4-unknown-linux-gnu/4.1.1/cc1 -quiet -nostdinc -Iinclude -Iinclude2 -I/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include -I/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc -Idrivers/mmc -D__KERNEL__ -DKBUILD_STR(s)=#s -DKBUILD_BASENAME=KBUILD_STR(mmc_block) -DKBUILD_MODNAME=KBUILD_STR(mmc_block) -isystem /usr/lib/gcc/sh4-unknown-linux-gnu/4.1.1/include -include include/linux/autoconf.h -MD drivers/mmc/.mmc_block.o.d /mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c -quiet -dumpbase mmc_block.c -ml -m4 -m4-nofpu -auxbase-strip drivers/mmc/mmc_block.o -Os -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-aliasing -fno-common -fomit-frame-pointer -fno-stack-protector -o - -frandom-seed=0 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c" # 1 "" # 1 "" # 1 "./include/linux/autoconf.h" 1 # 1 "" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c" # 19 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/moduleparam.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/init.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/compiler.h" 1 # 42 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/compiler.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/compiler-gcc4.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/compiler-gcc.h" 1 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/compiler-gcc4.h" 2 # 43 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/compiler.h" 2 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/init.h" 2 # 63 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/init.h" typedef int (*initcall_t)(void); typedef void (*exitcall_t)(void); extern initcall_t __con_initcall_start[], __con_initcall_end[]; extern initcall_t __security_initcall_start[], __security_initcall_end[]; extern char saved_command_line[]; extern unsigned int reset_devices; extern void setup_arch(char **); # 114 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/init.h" struct obs_kernel_param { const char *str; int (*setup_func)(char *); int early; }; # 149 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/init.h" void __attribute__ ((__section__ (".init.text"))) parse_early_param(void); # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/moduleparam.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/stringify.h" 1 # 6 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/moduleparam.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kernel.h" 1 # 10 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kernel.h" # 1 "/usr/lib/gcc/sh4-unknown-linux-gnu/4.1.1/include/stdarg.h" 1 3 4 # 43 "/usr/lib/gcc/sh4-unknown-linux-gnu/4.1.1/include/stdarg.h" 3 4 typedef __builtin_va_list __gnuc_va_list; # 105 "/usr/lib/gcc/sh4-unknown-linux-gnu/4.1.1/include/stdarg.h" 3 4 typedef __gnuc_va_list va_list; # 11 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kernel.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/linkage.h" 1 # 1 "include2/asm/linkage.h" 1 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/linkage.h" 2 # 12 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kernel.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/stddef.h" 1 # 15 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/stddef.h" enum { false = 0, true = 1 }; # 13 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kernel.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/types.h" 1 # 14 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/types.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/posix_types.h" 1 # 36 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/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; typedef int __kernel_mqd_t; # 1 "include2/asm/posix_types.h" 1 # 10 "include2/asm/posix_types.h" 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_timer_t; typedef int __kernel_clockid_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 unsigned short __kernel_old_dev_t; typedef long long __kernel_loff_t; typedef struct { int val[2]; } __kernel_fsid_t; static __inline__ __attribute__((always_inline)) void __FD_SET(unsigned long __fd, __kernel_fd_set *__fdsetp) { unsigned long __tmp = __fd / (8 * sizeof(unsigned long)); unsigned long __rem = __fd % (8 * sizeof(unsigned long)); __fdsetp->fds_bits[__tmp] |= (1UL<<__rem); } static __inline__ __attribute__((always_inline)) void __FD_CLR(unsigned long __fd, __kernel_fd_set *__fdsetp) { unsigned long __tmp = __fd / (8 * sizeof(unsigned long)); unsigned long __rem = __fd % (8 * sizeof(unsigned long)); __fdsetp->fds_bits[__tmp] &= ~(1UL<<__rem); } static __inline__ __attribute__((always_inline)) int __FD_ISSET(unsigned long __fd, const __kernel_fd_set *__p) { unsigned long __tmp = __fd / (8 * sizeof(unsigned long)); unsigned long __rem = __fd % (8 * sizeof(unsigned long)); return (__p->fds_bits[__tmp] & (1UL<<__rem)) != 0; } static __inline__ __attribute__((always_inline)) void __FD_ZERO(__kernel_fd_set *__p) { unsigned long *__tmp = __p->fds_bits; int __i; if (__builtin_constant_p((1024/(8 * sizeof(unsigned long))))) { switch ((1024/(8 * sizeof(unsigned long)))) { case 16: __tmp[ 0] = 0; __tmp[ 1] = 0; __tmp[ 2] = 0; __tmp[ 3] = 0; __tmp[ 4] = 0; __tmp[ 5] = 0; __tmp[ 6] = 0; __tmp[ 7] = 0; __tmp[ 8] = 0; __tmp[ 9] = 0; __tmp[10] = 0; __tmp[11] = 0; __tmp[12] = 0; __tmp[13] = 0; __tmp[14] = 0; __tmp[15] = 0; return; case 8: __tmp[ 0] = 0; __tmp[ 1] = 0; __tmp[ 2] = 0; __tmp[ 3] = 0; __tmp[ 4] = 0; __tmp[ 5] = 0; __tmp[ 6] = 0; __tmp[ 7] = 0; return; case 4: __tmp[ 0] = 0; __tmp[ 1] = 0; __tmp[ 2] = 0; __tmp[ 3] = 0; return; } } __i = (1024/(8 * sizeof(unsigned long))); while (__i) { __i--; *__tmp = 0; __tmp++; } } # 48 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/posix_types.h" 2 # 15 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/types.h" 2 # 1 "include2/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; # 39 "include2/asm/types.h" typedef __signed__ char s8; typedef unsigned char u8; typedef __signed__ short s16; typedef unsigned short u16; typedef __signed__ int s32; typedef unsigned int u32; typedef __signed__ long long s64; typedef unsigned long long u64; typedef u32 dma_addr_t; typedef u64 sector_t; typedef u64 blkcnt_t; # 16 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/types.h" 2 typedef __u32 __kernel_dev_t; 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_timer_t timer_t; typedef __kernel_clockid_t clockid_t; typedef __kernel_mqd_t mqd_t; typedef _Bool bool; 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; # 58 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/types.h" typedef __kernel_loff_t loff_t; # 67 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/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; # 175 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/types.h" typedef __u16 __le16; typedef __u16 __be16; typedef __u32 __le32; typedef __u32 __be32; typedef __u64 __le64; typedef __u64 __be64; typedef unsigned gfp_t; typedef u32 resource_size_t; struct ustat { __kernel_daddr_t f_tfree; __kernel_ino_t f_tinode; char f_fname[6]; char f_fpack[6]; }; # 14 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kernel.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/bitops.h" 1 # 9 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/bitops.h" # 1 "include2/asm/bitops.h" 1 # 1 "include2/asm/system.h" 1 # 66 "include2/asm/system.h" static inline __attribute__((always_inline)) void sched_cacheflush(void) { } # 82 "include2/asm/system.h" static inline __attribute__((always_inline)) unsigned long tas(volatile int *m) { unsigned long retval; __asm__ __volatile__ ("tas.b @%1\n\t" "movt %0" : "=r" (retval): "r" (m): "t", "memory"); return retval; } # 136 "include2/asm/system.h" static inline __attribute__((always_inline)) void local_irq_enable(void) { unsigned long __dummy0, __dummy1; __asm__ __volatile__("stc sr, %0\n\t" "and %1, %0\n\t" "stc r6_bank, %1\n\t" "or %1, %0\n\t" "ldc %0, sr" : "=&r" (__dummy0), "=r" (__dummy1) : "1" (~0x000000f0) : "memory"); } # 164 "include2/asm/system.h" static inline __attribute__((always_inline)) void local_irq_disable(void) { unsigned long __dummy; __asm__ __volatile__("stc sr, %0\n\t" "or #0xf0, %0\n\t" "ldc %0, sr" : "=&z" (__dummy) : : "memory"); } static inline __attribute__((always_inline)) void set_bl_bit(void) { unsigned long __dummy0, __dummy1; __asm__ __volatile__ ("stc sr, %0\n\t" "or %2, %0\n\t" "and %3, %0\n\t" "ldc %0, sr" : "=&r" (__dummy0), "=r" (__dummy1) : "r" (0x10000000), "r" (0xffffff0f) : "memory"); } static inline __attribute__((always_inline)) void clear_bl_bit(void) { unsigned long __dummy0, __dummy1; __asm__ __volatile__ ("stc sr, %0\n\t" "and %2, %0\n\t" "ldc %0, sr" : "=&r" (__dummy0), "=r" (__dummy1) : "1" (~0x10000000) : "memory"); } # 210 "include2/asm/system.h" static inline __attribute__((always_inline)) unsigned long local_irq_save(void) { unsigned long flags, __dummy; __asm__ __volatile__("stc sr, %1\n\t" "mov %1, %0\n\t" "or #0xf0, %0\n\t" "ldc %0, sr\n\t" "mov %1, %0\n\t" "and #0xf0, %0" : "=&z" (flags), "=&r" (__dummy) : : "memory" ); return flags; } # 270 "include2/asm/system.h" static inline __attribute__((always_inline)) unsigned long xchg_u32(volatile u32 *m, unsigned long val) { unsigned long flags, retval; flags = local_irq_save(); retval = *m; *m = val; do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0); return retval; } static inline __attribute__((always_inline)) unsigned long xchg_u8(volatile u8 *m, unsigned long val) { unsigned long flags, retval; flags = local_irq_save(); retval = *m; *m = val & 0xff; do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0); return retval; } extern void __xchg_called_with_bad_pointer(void); # 317 "include2/asm/system.h" static inline __attribute__((always_inline)) unsigned long __cmpxchg_u32(volatile int * m, unsigned long old, unsigned long new) { __u32 retval; unsigned long flags; flags = local_irq_save(); retval = *m; if (retval == old) *m = new; do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0); return retval; } extern void __cmpxchg_called_with_bad_pointer(void); static inline __attribute__((always_inline)) unsigned long __cmpxchg(volatile void * ptr, unsigned long old, unsigned long new, int size) { switch (size) { case 4: return __cmpxchg_u32(ptr, old, new); } __cmpxchg_called_with_bad_pointer(); return old; } # 360 "include2/asm/system.h" void disable_hlt(void); void enable_hlt(void); # 6 "include2/asm/bitops.h" 2 # 1 "include2/asm/byteorder.h" 1 # 11 "include2/asm/byteorder.h" static __inline__ __attribute__((always_inline)) __attribute__((__const__)) __u32 ___arch__swab32(__u32 x) { __asm__("swap.b %0, %0\n\t" "swap.w %0, %0\n\t" "swap.b %0, %0" : "=r" (x) : "0" (x)); return x; } static __inline__ __attribute__((always_inline)) __attribute__((__const__)) __u16 ___arch__swab16(__u16 x) { __asm__("swap.b %0, %0" : "=r" (x) : "0" (x)); return x; } static inline __attribute__((always_inline)) __u64 ___arch__swab64(__u64 val) { union { struct { __u32 a,b; } s; __u64 u; } v, w; v.u = val; w.s.b = ___arch__swab32(v.s.a); w.s.a = ___arch__swab32(v.s.b); return w.u; } # 51 "include2/asm/byteorder.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/byteorder/little_endian.h" 1 # 12 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/byteorder/little_endian.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/byteorder/swab.h" 1 # 133 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/byteorder/swab.h" static __inline__ __attribute__((always_inline)) __attribute__((__const__)) __u16 __fswab16(__u16 x) { return ___arch__swab16(x); } static __inline__ __attribute__((always_inline)) __u16 __swab16p(const __u16 *x) { return ___arch__swab16(*(x)); } static __inline__ __attribute__((always_inline)) void __swab16s(__u16 *addr) { do { *(addr) = ___arch__swab16(*((addr))); } while (0); } static __inline__ __attribute__((always_inline)) __attribute__((__const__)) __u32 __fswab32(__u32 x) { return ___arch__swab32(x); } static __inline__ __attribute__((always_inline)) __u32 __swab32p(const __u32 *x) { return ___arch__swab32(*(x)); } static __inline__ __attribute__((always_inline)) void __swab32s(__u32 *addr) { do { *(addr) = ___arch__swab32(*((addr))); } while (0); } static __inline__ __attribute__((always_inline)) __attribute__((__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__ __attribute__((always_inline)) __u64 __swab64p(const __u64 *x) { return ___arch__swab64(*(x)); } static __inline__ __attribute__((always_inline)) void __swab64s(__u64 *addr) { do { *(addr) = ___arch__swab64(*((addr))); } while (0); } # 13 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/byteorder/little_endian.h" 2 # 43 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/byteorder/little_endian.h" static inline __attribute__((always_inline)) __le64 __cpu_to_le64p(const __u64 *p) { return ( __le64)*p; } static inline __attribute__((always_inline)) __u64 __le64_to_cpup(const __le64 *p) { return ( __u64)*p; } static inline __attribute__((always_inline)) __le32 __cpu_to_le32p(const __u32 *p) { return ( __le32)*p; } static inline __attribute__((always_inline)) __u32 __le32_to_cpup(const __le32 *p) { return ( __u32)*p; } static inline __attribute__((always_inline)) __le16 __cpu_to_le16p(const __u16 *p) { return ( __le16)*p; } static inline __attribute__((always_inline)) __u16 __le16_to_cpup(const __le16 *p) { return ( __u16)*p; } static inline __attribute__((always_inline)) __be64 __cpu_to_be64p(const __u64 *p) { return ( __be64)__swab64p(p); } static inline __attribute__((always_inline)) __u64 __be64_to_cpup(const __be64 *p) { return __swab64p((__u64 *)p); } static inline __attribute__((always_inline)) __be32 __cpu_to_be32p(const __u32 *p) { return ( __be32)__swab32p(p); } static inline __attribute__((always_inline)) __u32 __be32_to_cpup(const __be32 *p) { return __swab32p((__u32 *)p); } static inline __attribute__((always_inline)) __be16 __cpu_to_be16p(const __u16 *p) { return ( __be16)__swab16p(p); } static inline __attribute__((always_inline)) __u16 __be16_to_cpup(const __be16 *p) { return __swab16p((__u16 *)p); } # 104 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/byteorder/little_endian.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/byteorder/generic.h" 1 # 154 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/byteorder/generic.h" extern __u32 ntohl(__be32); extern __be32 htonl(__u32); extern __u16 ntohs(__be16); extern __be16 htons(__u16); # 105 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/byteorder/little_endian.h" 2 # 52 "include2/asm/byteorder.h" 2 # 8 "include2/asm/bitops.h" 2 static inline __attribute__((always_inline)) void set_bit(int nr, volatile void * addr) { int mask; volatile unsigned int *a = addr; unsigned long flags; a += nr >> 5; mask = 1 << (nr & 0x1f); flags = local_irq_save(); *a |= mask; do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0); } static inline __attribute__((always_inline)) void clear_bit(int nr, volatile void * addr) { int mask; volatile unsigned int *a = addr; unsigned long flags; a += nr >> 5; mask = 1 << (nr & 0x1f); flags = local_irq_save(); *a &= ~mask; do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0); } static inline __attribute__((always_inline)) void change_bit(int nr, volatile void * addr) { int mask; volatile unsigned int *a = addr; unsigned long flags; a += nr >> 5; mask = 1 << (nr & 0x1f); flags = local_irq_save(); *a ^= mask; do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0); } static inline __attribute__((always_inline)) int test_and_set_bit(int nr, volatile void * addr) { int mask, retval; volatile unsigned int *a = addr; unsigned long flags; a += nr >> 5; mask = 1 << (nr & 0x1f); flags = local_irq_save(); retval = (mask & *a) != 0; *a |= mask; do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0); return retval; } static inline __attribute__((always_inline)) int test_and_clear_bit(int nr, volatile void * addr) { int mask, retval; volatile unsigned int *a = addr; unsigned long flags; a += nr >> 5; mask = 1 << (nr & 0x1f); flags = local_irq_save(); retval = (mask & *a) != 0; *a &= ~mask; do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0); return retval; } static inline __attribute__((always_inline)) int test_and_change_bit(int nr, volatile void * addr) { int mask, retval; volatile unsigned int *a = addr; unsigned long flags; a += nr >> 5; mask = 1 << (nr & 0x1f); flags = local_irq_save(); retval = (mask & *a) != 0; *a ^= mask; do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0); return retval; } # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/non-atomic.h" 1 # 18 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/non-atomic.h" static inline __attribute__((always_inline)) void __set_bit(int nr, volatile unsigned long *addr) { unsigned long mask = (1UL << ((nr) % 32)); unsigned long *p = ((unsigned long *)addr) + ((nr) / 32); *p |= mask; } static inline __attribute__((always_inline)) void __clear_bit(int nr, volatile unsigned long *addr) { unsigned long mask = (1UL << ((nr) % 32)); unsigned long *p = ((unsigned long *)addr) + ((nr) / 32); *p &= ~mask; } # 43 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/non-atomic.h" static inline __attribute__((always_inline)) void __change_bit(int nr, volatile unsigned long *addr) { unsigned long mask = (1UL << ((nr) % 32)); unsigned long *p = ((unsigned long *)addr) + ((nr) / 32); *p ^= mask; } # 60 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/non-atomic.h" static inline __attribute__((always_inline)) int __test_and_set_bit(int nr, volatile unsigned long *addr) { unsigned long mask = (1UL << ((nr) % 32)); unsigned long *p = ((unsigned long *)addr) + ((nr) / 32); unsigned long old = *p; *p = old | mask; return (old & mask) != 0; } # 79 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/non-atomic.h" static inline __attribute__((always_inline)) int __test_and_clear_bit(int nr, volatile unsigned long *addr) { unsigned long mask = (1UL << ((nr) % 32)); unsigned long *p = ((unsigned long *)addr) + ((nr) / 32); unsigned long old = *p; *p = old & ~mask; return (old & mask) != 0; } static inline __attribute__((always_inline)) int __test_and_change_bit(int nr, volatile unsigned long *addr) { unsigned long mask = (1UL << ((nr) % 32)); unsigned long *p = ((unsigned long *)addr) + ((nr) / 32); unsigned long old = *p; *p = old ^ mask; return (old & mask) != 0; } static inline __attribute__((always_inline)) int test_bit(int nr, const volatile unsigned long *addr) { return 1UL & (addr[((nr) / 32)] >> (nr & (32 -1))); } # 102 "include2/asm/bitops.h" 2 static inline __attribute__((always_inline)) unsigned long ffz(unsigned long word) { unsigned long result; __asm__("1:\n\t" "shlr %1\n\t" "bt/s 1b\n\t" " add #1, %0" : "=r" (result), "=r" (word) : "0" (~0L), "1" (word) : "t"); return result; } static inline __attribute__((always_inline)) unsigned long __ffs(unsigned long word) { unsigned long result; __asm__("1:\n\t" "shlr %1\n\t" "bf/s 1b\n\t" " add #1, %0" : "=r" (result), "=r" (word) : "0" (~0L), "1" (word) : "t"); return result; } # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/find.h" 1 extern unsigned long find_next_bit(const unsigned long *addr, unsigned long size, unsigned long offset); extern unsigned long find_next_zero_bit(const unsigned long *addr, unsigned long size, unsigned long offset); # 138 "include2/asm/bitops.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/ffs.h" 1 # 12 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/ffs.h" static inline __attribute__((always_inline)) int 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; } # 139 "include2/asm/bitops.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/hweight.h" 1 extern unsigned int hweight32(unsigned int w); extern unsigned int hweight16(unsigned int w); extern unsigned int hweight8(unsigned int w); extern unsigned long hweight64(__u64 w); # 140 "include2/asm/bitops.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/sched.h" 1 # 13 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/sched.h" static inline __attribute__((always_inline)) int sched_find_first_bit(const unsigned long *b) { if (__builtin_expect(!!(b[0]), 0)) return __ffs(b[0]); if (__builtin_expect(!!(b[1]), 0)) return __ffs(b[1]) + 32; if (__builtin_expect(!!(b[2]), 0)) return __ffs(b[2]) + 64; if (b[3]) return __ffs(b[3]) + 96; return __ffs(b[4]) + 128; } # 141 "include2/asm/bitops.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/ext2-non-atomic.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/le.h" 1 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/ext2-non-atomic.h" 2 # 142 "include2/asm/bitops.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/ext2-atomic.h" 1 # 143 "include2/asm/bitops.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/minix.h" 1 # 144 "include2/asm/bitops.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/fls.h" 1 # 12 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/fls.h" static inline __attribute__((always_inline)) int fls(int x) { int r = 32; if (!x) return 0; if (!(x & 0xffff0000u)) { x <<= 16; r -= 16; } if (!(x & 0xff000000u)) { x <<= 8; r -= 8; } if (!(x & 0xf0000000u)) { x <<= 4; r -= 4; } if (!(x & 0xc0000000u)) { x <<= 2; r -= 2; } if (!(x & 0x80000000u)) { x <<= 1; r -= 1; } return r; } # 145 "include2/asm/bitops.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/fls64.h" 1 static inline __attribute__((always_inline)) int fls64(__u64 x) { __u32 h = x >> 32; if (h) return fls(h) + 32; return fls(x); } # 146 "include2/asm/bitops.h" 2 # 10 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/bitops.h" 2 static __inline__ __attribute__((always_inline)) int get_bitmask_order(unsigned int count) { int order; order = fls(count); return order; } static __inline__ __attribute__((always_inline)) int get_count_order(unsigned int count) { int order; order = fls(count) - 1; if (count & (count - 1)) order++; return order; } static inline __attribute__((always_inline)) unsigned long hweight_long(unsigned long w) { return sizeof(w) == 4 ? hweight32(w) : hweight64(w); } static inline __attribute__((always_inline)) __u32 rol32(__u32 word, unsigned int shift) { return (word << shift) | (word >> (32 - shift)); } static inline __attribute__((always_inline)) __u32 ror32(__u32 word, unsigned int shift) { return (word >> shift) | (word << (32 - shift)); } static inline __attribute__((always_inline)) unsigned fls_long(unsigned long l) { if (sizeof(l) == 4) return fls(l); return fls64(l); } # 16 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kernel.h" 2 # 1 "include2/asm/bug.h" 1 # 17 "include2/asm/bug.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bug.h" 1 # 18 "include2/asm/bug.h" 2 # 18 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kernel.h" 2 extern const char linux_banner[]; # 48 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kernel.h" extern int console_printk[]; struct completion; struct pt_regs; struct user; # 96 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kernel.h" extern struct atomic_notifier_head panic_notifier_list; extern long (*panic_blink)(long time); void panic(const char * fmt, ...) __attribute__ ((noreturn, format (printf, 1, 2))); extern void oops_enter(void); extern void oops_exit(void); extern int oops_may_print(void); void do_exit(long error_code) __attribute__((noreturn)); void complete_and_exit(struct completion *, long) __attribute__((noreturn)); 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, ...) __attribute__ ((format (printf, 2, 3))); extern int vsprintf(char *buf, const char *, va_list) __attribute__ ((format (printf, 2, 0))); extern int snprintf(char * buf, size_t size, const char * fmt, ...) __attribute__ ((format (printf, 3, 4))); extern int vsnprintf(char *buf, size_t size, const char *fmt, va_list args) __attribute__ ((format (printf, 3, 0))); extern int scnprintf(char * buf, size_t size, const char * fmt, ...) __attribute__ ((format (printf, 3, 4))); extern int vscnprintf(char *buf, size_t size, const char *fmt, va_list args) __attribute__ ((format (printf, 3, 0))); extern char *kasprintf(gfp_t gfp, const char *fmt, ...) __attribute__ ((format (printf, 2, 3))); extern int sscanf(const char *, const char *, ...) __attribute__ ((format (scanf, 2, 3))); extern int vsscanf(const char *, const char *, va_list) __attribute__ ((format (scanf, 2, 0))); extern int get_option(char **str, int *pint); extern char *get_options(const char *str, int nints, int *ints); extern unsigned long long memparse(char *ptr, char **retptr); extern int core_kernel_text(unsigned long addr); extern int __kernel_text_address(unsigned long addr); extern int kernel_text_address(unsigned long addr); extern int session_of_pgrp(int pgrp); extern void dump_thread(struct pt_regs *regs, struct user *dump); int vprintk(const char *fmt, va_list args) __attribute__ ((format (printf, 1, 0))); int printk(const char * fmt, ...) __attribute__ ((format (printf, 1, 2))); # 156 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kernel.h" unsigned long int_sqrt(unsigned long); static inline __attribute__((always_inline)) int __attribute__((pure)) long_log2(unsigned long x) { int r = 0; for (x >>= 1; x > 0; x >>= 1) r++; return r; } static inline __attribute__((always_inline)) unsigned long __attribute__((__const__)) roundup_pow_of_two(unsigned long x) { return 1UL << fls_long(x - 1); } extern int printk_ratelimit(void); extern int __printk_ratelimit(int ratelimit_jiffies, int ratelimit_burst); static inline __attribute__((always_inline)) void console_silent(void) { (console_printk[0]) = 0; } static inline __attribute__((always_inline)) void console_verbose(void) { if ((console_printk[0])) (console_printk[0]) = 15; } extern void bust_spinlocks(int yes); extern int oops_in_progress; extern int panic_timeout; extern int panic_on_oops; extern int panic_on_unrecovered_nmi; extern int tainted; extern const char *print_tainted(void); extern void add_taint(unsigned); extern enum system_states { SYSTEM_BOOTING, SYSTEM_RUNNING, SYSTEM_HALT, SYSTEM_POWER_OFF, SYSTEM_RESTART, SYSTEM_SUSPEND_DISK, } system_state; # 212 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kernel.h" extern void dump_stack(void); static inline __attribute__((always_inline)) int __attribute__ ((format (printf, 1, 2))) pr_debug(const char * fmt, ...) { return 0; } # 326 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/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)]; }; # 7 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/moduleparam.h" 2 # 29 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/moduleparam.h" struct kernel_param; typedef int (*param_set_fn)(const char *val, struct kernel_param *kp); typedef int (*param_get_fn)(char *buffer, struct kernel_param *kp); struct kernel_param { const char *name; unsigned int perm; param_set_fn set; param_get_fn get; void *arg; }; struct kparam_string { unsigned int maxlen; char *string; }; struct kparam_array { unsigned int max; unsigned int *num; param_set_fn set; param_get_fn get; unsigned int elemsize; void *elem; }; # 95 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/moduleparam.h" extern int parse_args(const char *name, char *args, struct kernel_param *params, unsigned num, int (*unknown)(char *param, char *val)); extern int param_set_byte(const char *val, struct kernel_param *kp); extern int param_get_byte(char *buffer, struct kernel_param *kp); extern int param_set_short(const char *val, struct kernel_param *kp); extern int param_get_short(char *buffer, struct kernel_param *kp); extern int param_set_ushort(const char *val, struct kernel_param *kp); extern int param_get_ushort(char *buffer, struct kernel_param *kp); extern int param_set_int(const char *val, struct kernel_param *kp); extern int param_get_int(char *buffer, struct kernel_param *kp); extern int param_set_uint(const char *val, struct kernel_param *kp); extern int param_get_uint(char *buffer, struct kernel_param *kp); extern int param_set_long(const char *val, struct kernel_param *kp); extern int param_get_long(char *buffer, struct kernel_param *kp); extern int param_set_ulong(const char *val, struct kernel_param *kp); extern int param_get_ulong(char *buffer, struct kernel_param *kp); extern int param_set_charp(const char *val, struct kernel_param *kp); extern int param_get_charp(char *buffer, struct kernel_param *kp); extern int param_set_bool(const char *val, struct kernel_param *kp); extern int param_get_bool(char *buffer, struct kernel_param *kp); extern int param_set_invbool(const char *val, struct kernel_param *kp); extern int param_get_invbool(char *buffer, struct kernel_param *kp); # 159 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/moduleparam.h" extern int param_array_set(const char *val, struct kernel_param *kp); extern int param_array_get(char *buffer, struct kernel_param *kp); extern int param_set_copystring(const char *val, struct kernel_param *kp); extern int param_get_string(char *buffer, struct kernel_param *kp); struct module; extern int module_param_sysfs_setup(struct module *mod, struct kernel_param *kparam, unsigned int num_params); extern void module_param_sysfs_remove(struct module *mod); # 20 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/module.h" 1 # 9 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/module.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/auxvec.h" 1 # 1 "include2/asm/auxvec.h" 1 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/auxvec.h" 2 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2 # 40 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" struct sched_param { int sched_priority; }; # 1 "include2/asm/param.h" 1 # 45 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/capability.h" 1 # 32 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/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; # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock.h" 1 # 49 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/preempt.h" 1 # 9 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/preempt.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/thread_info.h" 1 # 13 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/thread_info.h" struct restart_block { long (*fn)(struct restart_block *); unsigned long arg0, arg1, arg2, arg3; }; extern long do_no_restart_syscall(struct restart_block *parm); # 1 "include2/asm/thread_info.h" 1 # 13 "include2/asm/thread_info.h" # 1 "include2/asm/page.h" 1 # 44 "include2/asm/page.h" extern void (*clear_page)(void *to); extern void (*copy_page)(void *to, void *from); extern unsigned long shm_align_mask; extern void clear_page_slow(void *to); extern void copy_page_slow(void *to, void *from); struct page; extern void clear_user_page(void *to, unsigned long address, struct page *pg); extern void copy_user_page(void *to, void *from, unsigned long address, struct page *pg); extern void __clear_user_page(void *to, void *orig_to); extern void __copy_user_page(void *to, void *from, void *orig_to); # 72 "include2/asm/page.h" typedef struct { unsigned long pte; } pte_t; typedef struct { unsigned long pgd; } pgd_t; typedef struct { unsigned long pgprot; } pgprot_t; # 119 "include2/asm/page.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/memory_model.h" 1 # 120 "include2/asm/page.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/page.h" 1 # 10 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/page.h" static __inline__ __attribute__((always_inline)) __attribute__((__const__)) int get_order(unsigned long size) { int order; size = (size - 1) >> (12 - 1); order = -1; do { size >>= 1; order++; } while (size); return order; } # 121 "include2/asm/page.h" 2 # 14 "include2/asm/thread_info.h" 2 # 1 "include2/asm/processor.h" 1 # 15 "include2/asm/processor.h" # 1 "include2/asm/cache.h" 1 # 12 "include2/asm/cache.h" # 1 "include/asm/cpu/cache.h" 1 # 13 "include2/asm/cache.h" 2 # 24 "include2/asm/cache.h" struct cache_info { unsigned int ways; unsigned int sets; unsigned int linesz; unsigned int way_size; unsigned int way_incr; unsigned int entry_shift; unsigned int entry_mask; unsigned int alias_mask; unsigned int n_aliases; unsigned long flags; }; # 16 "include2/asm/processor.h" 2 # 1 "include2/asm/ptrace.h" 1 # 52 "include2/asm/ptrace.h" struct pt_regs { unsigned long regs[16]; unsigned long pc; unsigned long pr; unsigned long sr; unsigned long gbr; unsigned long mach; unsigned long macl; long tra; }; struct pt_dspregs { unsigned long a1; unsigned long a0g; unsigned long a1g; unsigned long m0; unsigned long m1; unsigned long a0; unsigned long x0; unsigned long x1; unsigned long y0; unsigned long y1; unsigned long dsr; unsigned long rs; unsigned long re; unsigned long mod; }; extern void show_regs(struct pt_regs *); # 102 "include2/asm/ptrace.h" static inline __attribute__((always_inline)) unsigned long profile_pc(struct pt_regs *regs) { unsigned long pc = ((regs)->pc); if (pc >= 0xa0000000UL && pc < 0xc0000000UL) pc -= 0x20000000; return pc; } # 17 "include2/asm/processor.h" 2 # 1 "include2/asm/cpu-features.h" 1 # 18 "include2/asm/processor.h" 2 # 37 "include2/asm/processor.h" enum cpu_type { CPU_SH7604, CPU_SH7705, CPU_SH7706, CPU_SH7707, CPU_SH7708, CPU_SH7708S, CPU_SH7708R, CPU_SH7709, CPU_SH7709A, CPU_SH7710, CPU_SH7729, CPU_SH7300, CPU_SH7750, CPU_SH7750S, CPU_SH7750R, CPU_SH7751, CPU_SH7751R, CPU_SH7760, CPU_ST40RA, CPU_ST40GX1, CPU_SH4_202, CPU_SH4_501, CPU_SH73180, CPU_SH7343, CPU_SH7770, CPU_SH7780, CPU_SH7781, CPU_SH_NONE }; struct sh_cpuinfo { unsigned int type; unsigned long loops_per_jiffy; struct cache_info icache; struct cache_info dcache; struct cache_info scache; unsigned long flags; } __attribute__ ((aligned((1 << 5)))); extern struct sh_cpuinfo boot_cpu_data; # 107 "include2/asm/processor.h" struct sh_fpu_hard_struct { unsigned long fp_regs[16]; unsigned long xfp_regs[16]; unsigned long fpscr; unsigned long fpul; long status; }; struct sh_fpu_soft_struct { unsigned long fp_regs[16]; unsigned long xfp_regs[16]; unsigned long fpscr; unsigned long fpul; unsigned char lookahead; unsigned long entry_pc; }; union sh_fpu_union { struct sh_fpu_hard_struct hard; struct sh_fpu_soft_struct soft; }; struct thread_struct { unsigned long sp; unsigned long pc; unsigned long trap_no, error_code; unsigned long address; unsigned long ubc_pc; union sh_fpu_union fpu; }; typedef struct { unsigned long seg; } mm_segment_t; extern int ubc_usercnt; # 172 "include2/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); # 194 "include2/asm/processor.h" static __inline__ __attribute__((always_inline)) void disable_fpu(void) { unsigned long __dummy; __asm__ __volatile__("stc sr, %0\n\t" "or %1, %0\n\t" "ldc %0, sr" : "=&r" (__dummy) : "r" (0x00008000)); } static __inline__ __attribute__((always_inline)) void enable_fpu(void) { unsigned long __dummy; __asm__ __volatile__("stc sr, %0\n\t" "and %1, %0\n\t" "ldc %0, sr" : "=&r" (__dummy) : "r" (~0x00008000)); } static __inline__ __attribute__((always_inline)) void release_fpu(struct pt_regs *regs) { regs->sr |= 0x00008000; } static __inline__ __attribute__((always_inline)) void grab_fpu(struct pt_regs *regs) { regs->sr &= ~0x00008000; } extern void save_fpu(struct task_struct *__tsk, struct pt_regs *regs); # 258 "include2/asm/processor.h" extern unsigned long get_wchan(struct task_struct *p); # 271 "include2/asm/processor.h" static inline __attribute__((always_inline)) void prefetch(void *x) { __asm__ __volatile__ ("pref @%0\n\t" : : "r" (x) : "memory"); } extern int vsyscall_init(void); # 17 "include2/asm/thread_info.h" 2 struct thread_info { struct task_struct *task; struct exec_domain *exec_domain; unsigned long flags; __u32 cpu; int preempt_count; mm_segment_t addr_limit; struct restart_block restart_block; unsigned long previous_sp; __u8 supervisor_stack[0]; }; # 63 "include2/asm/thread_info.h" register unsigned long current_stack_pointer asm("r15") __attribute__((__used__)); static inline __attribute__((always_inline)) struct thread_info *current_thread_info(void) { struct thread_info *ti; __asm__("stc r7_bank, %0" : "=r" (ti)); # 82 "include2/asm/thread_info.h" return ti; } # 22 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/thread_info.h" 2 # 30 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/thread_info.h" static inline __attribute__((always_inline)) void set_ti_thread_flag(struct thread_info *ti, int flag) { set_bit(flag,&ti->flags); } static inline __attribute__((always_inline)) void clear_ti_thread_flag(struct thread_info *ti, int flag) { clear_bit(flag,&ti->flags); } static inline __attribute__((always_inline)) int test_and_set_ti_thread_flag(struct thread_info *ti, int flag) { return test_and_set_bit(flag,&ti->flags); } static inline __attribute__((always_inline)) int test_and_clear_ti_thread_flag(struct thread_info *ti, int flag) { return test_and_clear_bit(flag,&ti->flags); } static inline __attribute__((always_inline)) int test_ti_thread_flag(struct thread_info *ti, int flag) { return test_bit(flag,&ti->flags); } # 10 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/preempt.h" 2 # 50 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock.h" 2 # 78 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock_types.h" 1 # 12 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock_types.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/lockdep.h" 1 # 243 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/lockdep.h" static inline __attribute__((always_inline)) void lockdep_off(void) { } static inline __attribute__((always_inline)) void lockdep_on(void) { } static inline __attribute__((always_inline)) int lockdep_internal(void) { return 0; } # 270 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/lockdep.h" struct lock_class_key { }; # 13 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock_types.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock_types_up.h" 1 # 29 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock_types_up.h" typedef struct { } raw_spinlock_t; typedef struct { } raw_rwlock_t; # 18 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock_types.h" 2 typedef struct { raw_spinlock_t raw_lock; # 32 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock_types.h" } spinlock_t; typedef struct { raw_rwlock_t raw_lock; # 48 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock_types.h" } rwlock_t; # 79 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock.h" 2 extern int __attribute__((section(".spinlock.text"))) generic__raw_read_trylock(raw_rwlock_t *lock); # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock_up.h" 1 # 89 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock.h" 2 # 134 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock_api_up.h" 1 # 135 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock.h" 2 # 259 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock.h" # 1 "include2/asm/atomic.h" 1 # 10 "include2/asm/atomic.h" typedef struct { volatile int counter; } atomic_t; # 25 "include2/asm/atomic.h" static inline __attribute__((always_inline)) void atomic_add(int i, atomic_t *v) { # 39 "include2/asm/atomic.h" unsigned long flags; flags = local_irq_save(); *(long *)v += i; do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0); } static inline __attribute__((always_inline)) void atomic_sub(int i, atomic_t *v) { # 61 "include2/asm/atomic.h" unsigned long flags; flags = local_irq_save(); *(long *)v -= i; do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0); } # 77 "include2/asm/atomic.h" static inline __attribute__((always_inline)) int atomic_add_return(int i, atomic_t *v) { unsigned long temp; # 92 "include2/asm/atomic.h" unsigned long flags; flags = local_irq_save(); temp = *(long *)v; temp += i; *(long *)v = temp; do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0); return temp; } static inline __attribute__((always_inline)) int atomic_sub_return(int i, atomic_t *v) { unsigned long temp; # 121 "include2/asm/atomic.h" unsigned long flags; flags = local_irq_save(); temp = *(long *)v; temp -= i; *(long *)v = temp; do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0); return temp; } # 152 "include2/asm/atomic.h" static inline __attribute__((always_inline)) int atomic_cmpxchg(atomic_t *v, int old, int new) { int ret; unsigned long flags; flags = local_irq_save(); ret = v->counter; if (__builtin_expect(!!(ret == old), 1)) v->counter = new; do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0); return ret; } static inline __attribute__((always_inline)) int atomic_add_unless(atomic_t *v, int a, int u) { int ret; unsigned long flags; flags = local_irq_save(); ret = v->counter; if (ret != u) v->counter += a; do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0); return ret != u; } static inline __attribute__((always_inline)) void atomic_clear_mask(unsigned int mask, atomic_t *v) { # 197 "include2/asm/atomic.h" unsigned long flags; flags = local_irq_save(); *(long *)v &= ~mask; do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0); } static inline __attribute__((always_inline)) void atomic_set_mask(unsigned int mask, atomic_t *v) { # 219 "include2/asm/atomic.h" unsigned long flags; flags = local_irq_save(); *(long *)v |= mask; do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0); } # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/atomic.h" 1 # 71 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/atomic.h" typedef atomic_t atomic_long_t; static inline __attribute__((always_inline)) long atomic_long_read(atomic_long_t *l) { atomic_t *v = (atomic_t *)l; return (long)((v)->counter); } static inline __attribute__((always_inline)) void atomic_long_set(atomic_long_t *l, long i) { atomic_t *v = (atomic_t *)l; ((v)->counter = (i)); } static inline __attribute__((always_inline)) void atomic_long_inc(atomic_long_t *l) { atomic_t *v = (atomic_t *)l; atomic_add(1,(v)); } static inline __attribute__((always_inline)) void atomic_long_dec(atomic_long_t *l) { atomic_t *v = (atomic_t *)l; atomic_sub(1,(v)); } static inline __attribute__((always_inline)) void atomic_long_add(long i, atomic_long_t *l) { atomic_t *v = (atomic_t *)l; atomic_add(i, v); } static inline __attribute__((always_inline)) void atomic_long_sub(long i, atomic_long_t *l) { atomic_t *v = (atomic_t *)l; atomic_sub(i, v); } # 234 "include2/asm/atomic.h" 2 # 260 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock.h" 2 extern int _atomic_dec_and_lock(atomic_t *atomic, spinlock_t *lock); # 46 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/capability.h" 2 # 1 "include2/asm/current.h" 1 # 11 "include2/asm/current.h" struct task_struct; static __inline__ __attribute__((always_inline)) struct task_struct * get_current(void) { return current_thread_info()->task; } # 47 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/capability.h" 2 # 58 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/capability.h" typedef __u32 kernel_cap_t; # 295 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/capability.h" extern kernel_cap_t cap_bset; # 323 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/capability.h" static inline __attribute__((always_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 __attribute__((always_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 __attribute__((always_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 __attribute__((always_inline)) kernel_cap_t cap_invert(kernel_cap_t c) { kernel_cap_t dest; (dest) = ~(c); return dest; } # 360 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/capability.h" int capable(int cap); int __capable(struct task_struct *t, int cap); # 47 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/threads.h" 1 # 48 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/timex.h" 1 # 57 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/timex.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/time.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/seqlock.h" 1 # 32 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/seqlock.h" typedef struct { unsigned sequence; spinlock_t lock; } seqlock_t; # 57 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/seqlock.h" static inline __attribute__((always_inline)) void write_seqlock(seqlock_t *sl) { do { do { } while (0); (void)0; (void)(&sl->lock); } while (0); ++sl->sequence; __asm__ __volatile__("": : :"memory"); } static inline __attribute__((always_inline)) void write_sequnlock(seqlock_t *sl) { __asm__ __volatile__("": : :"memory"); sl->sequence++; do { do { } while (0); (void)0; (void)(&sl->lock); } while (0); } static inline __attribute__((always_inline)) int write_tryseqlock(seqlock_t *sl) { int ret = (({ do { do { } while (0); (void)0; (void)(&sl->lock); } while (0); 1; })); if (ret) { ++sl->sequence; __asm__ __volatile__("": : :"memory"); } return ret; } static inline __attribute__((always_inline)) __attribute__((always_inline)) unsigned read_seqbegin(const seqlock_t *sl) { unsigned ret = sl->sequence; __asm__ __volatile__("": : :"memory"); return ret; } # 98 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/seqlock.h" static inline __attribute__((always_inline)) __attribute__((always_inline)) int read_seqretry(const seqlock_t *sl, unsigned iv) { __asm__ __volatile__("": : :"memory"); return (iv & 1) | (sl->sequence ^ iv); } # 112 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/seqlock.h" typedef struct seqcount { unsigned sequence; } seqcount_t; static inline __attribute__((always_inline)) unsigned read_seqcount_begin(const seqcount_t *s) { unsigned ret = s->sequence; __asm__ __volatile__("": : :"memory"); return ret; } static inline __attribute__((always_inline)) int read_seqcount_retry(const seqcount_t *s, unsigned iv) { __asm__ __volatile__("": : :"memory"); return (iv & 1) | (s->sequence ^ iv); } static inline __attribute__((always_inline)) void write_seqcount_begin(seqcount_t *s) { s->sequence++; __asm__ __volatile__("": : :"memory"); } static inline __attribute__((always_inline)) void write_seqcount_end(seqcount_t *s) { __asm__ __volatile__("": : :"memory"); s->sequence++; } # 8 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/time.h" 2 struct timespec { time_t tv_sec; long tv_nsec; }; struct timeval { time_t tv_sec; suseconds_t tv_usec; }; struct timezone { int tz_minuteswest; int tz_dsttime; }; # 39 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/time.h" static inline __attribute__((always_inline)) int timespec_equal(struct timespec *a, struct timespec *b) { return (a->tv_sec == b->tv_sec) && (a->tv_nsec == b->tv_nsec); } static inline __attribute__((always_inline)) int timespec_compare(struct timespec *lhs, struct timespec *rhs) { if (lhs->tv_sec < rhs->tv_sec) return -1; if (lhs->tv_sec > rhs->tv_sec) return 1; return lhs->tv_nsec - rhs->tv_nsec; } static inline __attribute__((always_inline)) int timeval_compare(struct timeval *lhs, struct timeval *rhs) { if (lhs->tv_sec < rhs->tv_sec) return -1; if (lhs->tv_sec > rhs->tv_sec) return 1; return lhs->tv_usec - rhs->tv_usec; } extern unsigned long mktime(const unsigned int year, const unsigned int mon, const unsigned int day, const unsigned int hour, const unsigned int min, const unsigned int sec); extern void set_normalized_timespec(struct timespec *ts, time_t sec, long nsec); static inline __attribute__((always_inline)) struct timespec timespec_sub(struct timespec lhs, struct timespec rhs) { struct timespec ts_delta; set_normalized_timespec(&ts_delta, lhs.tv_sec - rhs.tv_sec, lhs.tv_nsec - rhs.tv_nsec); return ts_delta; } extern struct timespec xtime; extern struct timespec wall_to_monotonic; extern seqlock_t xtime_lock; void timekeeping_init(void); static inline __attribute__((always_inline)) unsigned long get_seconds(void) { return xtime.tv_sec; } struct timespec current_kernel_time(void); extern void do_gettimeofday(struct timeval *tv); extern int do_settimeofday(struct timespec *tv); extern int do_sys_settimeofday(struct timespec *tv, struct timezone *tz); extern long do_utimes(int dfd, char *filename, struct timeval *times); struct itimerval; extern int do_setitimer(int which, struct itimerval *value, struct itimerval *ovalue); extern unsigned int alarm_setitimer(unsigned int seconds); extern int do_getitimer(int which, struct itimerval *value); extern void getnstimeofday(struct timespec *tv); extern struct timespec timespec_trunc(struct timespec t, unsigned gran); extern int timekeeping_is_continuous(void); # 129 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/time.h" static inline __attribute__((always_inline)) s64 timespec_to_ns(const struct timespec *ts) { return ((s64) ts->tv_sec * 1000000000L) + ts->tv_nsec; } # 141 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/time.h" static inline __attribute__((always_inline)) s64 timeval_to_ns(const struct timeval *tv) { return ((s64) tv->tv_sec * 1000000000L) + tv->tv_usec * 1000L; } extern struct timespec ns_to_timespec(const s64 nsec); extern struct timeval ns_to_timeval(const s64 nsec); static inline __attribute__((always_inline)) void timespec_add_ns(struct timespec *a, u64 ns) { ns += a->tv_nsec; while(__builtin_expect(!!(ns >= 1000000000L), 0)) { ns -= 1000000000L; a->tv_sec++; } a->tv_nsec = ns; } # 195 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/time.h" struct itimerspec { struct timespec it_interval; struct timespec it_value; }; struct itimerval { struct timeval it_interval; struct timeval it_value; }; # 58 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/timex.h" 2 # 100 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/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; }; # 187 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/timex.h" # 1 "include2/asm/timex.h" 1 # 11 "include2/asm/timex.h" typedef unsigned long long cycles_t; static __inline__ __attribute__((always_inline)) cycles_t get_cycles (void) { return 0; } # 188 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/timex.h" 2 extern unsigned long tick_usec; extern unsigned long tick_nsec; extern int tickadj; extern int time_status; extern long time_maxerror; extern long time_esterror; extern long time_freq; extern long time_adjust; extern void ntp_clear(void); static inline __attribute__((always_inline)) int ntp_synced(void) { return !(time_status & 0x0040); } # 277 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/timex.h" static inline __attribute__((always_inline)) void time_interpolator_reset(void) { } static inline __attribute__((always_inline)) void time_interpolator_update(long delta_nsec) { } extern u64 current_tick_length(void); extern void second_overflow(void); extern void update_ntp_one_tick(void); extern int do_adjtimex(struct timex *); # 51 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/jiffies.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/calc64.h" 1 # 1 "include2/asm/div64.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/div64.h" 1 # 35 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/div64.h" extern uint32_t __div64_32(uint64_t *dividend, uint32_t divisor); # 1 "include2/asm/div64.h" 2 # 6 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/calc64.h" 2 # 20 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/calc64.h" static inline __attribute__((always_inline)) unsigned long do_div_llr(const long long dividend, const long divisor, long *remainder) { u64 result = dividend; *(remainder) = ({ uint32_t __base = (divisor); uint32_t __rem; (void)(((typeof((result)) *)0) == ((uint64_t *)0)); if (__builtin_expect(!!(((result) >> 32) == 0), 1)) { __rem = (uint32_t)(result) % __base; (result) = (uint32_t)(result) / __base; } else __rem = __div64_32(&(result), __base); __rem; }); return (unsigned long) result; } static inline __attribute__((always_inline)) long div_long_long_rem_signed(const long long dividend, const long divisor, long *remainder) { long res; if (__builtin_expect(!!(dividend < 0), 0)) { res = -do_div_llr((-dividend), divisor, remainder); *remainder = -(*remainder); } else res = do_div_llr((dividend), divisor, remainder); return res; } # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/jiffies.h" 2 # 81 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/jiffies.h" extern u64 __attribute__((section(".data"))) jiffies_64; extern unsigned long volatile __attribute__((section(".data"))) jiffies; u64 get_jiffies_64(void); # 267 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/jiffies.h" static inline __attribute__((always_inline)) unsigned int jiffies_to_msecs(const unsigned long j) { return (1000L / 100) * j; } static inline __attribute__((always_inline)) unsigned int jiffies_to_usecs(const unsigned long j) { return (1000000L / 100) * j; } static inline __attribute__((always_inline)) unsigned long msecs_to_jiffies(const unsigned int m) { if (m > jiffies_to_msecs(((~0UL >> 1)-1))) return ((~0UL >> 1)-1); return (m + (1000L / 100) - 1) / (1000L / 100); } static inline __attribute__((always_inline)) unsigned long usecs_to_jiffies(const unsigned int u) { if (u > jiffies_to_usecs(((~0UL >> 1)-1))) return ((~0UL >> 1)-1); return (u + (1000000L / 100) - 1) / (1000000L / 100); } # 326 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/jiffies.h" static __inline__ __attribute__((always_inline)) unsigned long timespec_to_jiffies(const struct timespec *value) { unsigned long sec = value->tv_sec; long nsec = value->tv_nsec + (( (((1000000UL * 1000) / ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))) << (8)) + ((((1000000UL * 1000) % ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))) << (8)) + ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100))))) / 2) / ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100))))))) - 1; if (sec >= (long)((u64)((u64)((~0UL >> 1)-1) * (( (((1000000UL * 1000) / ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))) << (8)) + ((((1000000UL * 1000) % ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))) << (8)) + ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100))))) / 2) / ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))))) / 1000000000L)){ sec = (long)((u64)((u64)((~0UL >> 1)-1) * (( (((1000000UL * 1000) / ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))) << (8)) + ((((1000000UL * 1000) % ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))) << (8)) + ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100))))) / 2) / ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))))) / 1000000000L); nsec = 0; } return (((u64)sec * ((unsigned long)((((u64)1000000000L << (32 - 7)) + (( (((1000000UL * 1000) / ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))) << (8)) + ((((1000000UL * 1000) % ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))) << (8)) + ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100))))) / 2) / ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100))))))) -1) / (u64)(( (((1000000UL * 1000) / ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))) << (8)) + ((((1000000UL * 1000) % ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))) << (8)) + ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100))))) / 2) / ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))))))) + (((u64)nsec * ((unsigned long)((((u64)1 << ((32 - 7) + 29)) + (( (((1000000UL * 1000) / ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))) << (8)) + ((((1000000UL * 1000) % ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))) << (8)) + ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100))))) / 2) / ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100))))))) -1) / (u64)(( (((1000000UL * 1000) / ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))) << (8)) + ((((1000000UL * 1000) % ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))) << (8)) + ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100))))) / 2) / ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))))))) >> (((32 - 7) + 29) - (32 - 7)))) >> (32 - 7); } static __inline__ __attribute__((always_inline)) void jiffies_to_timespec(const unsigned long jiffies, struct timespec *value) { u64 nsec = (u64)jiffies * (( (((1000000UL * 1000) / ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))) << (8)) + ((((1000000UL * 1000) % ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))) << (8)) + ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100))))) / 2) / ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100))))))); value->tv_sec = do_div_llr((nsec), 1000000000L, &value->tv_nsec); } # 365 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/jiffies.h" static __inline__ __attribute__((always_inline)) unsigned long timeval_to_jiffies(const struct timeval *value) { unsigned long sec = value->tv_sec; long usec = value->tv_usec; if (sec >= (long)((u64)((u64)((~0UL >> 1)-1) * (( (((1000000UL * 1000) / ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))) << (8)) + ((((1000000UL * 1000) % ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))) << (8)) + ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100))))) / 2) / ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))))) / 1000000000L)){ sec = (long)((u64)((u64)((~0UL >> 1)-1) * (( (((1000000UL * 1000) / ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))) << (8)) + ((((1000000UL * 1000) % ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))) << (8)) + ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100))))) / 2) / ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))))) / 1000000000L); usec = 0; } return (((u64)sec * ((unsigned long)((((u64)1000000000L << (32 - 7)) + (( (((1000000UL * 1000) / ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))) << (8)) + ((((1000000UL * 1000) % ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))) << (8)) + ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100))))) / 2) / ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100))))))) -1) / (u64)(( (((1000000UL * 1000) / ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))) << (8)) + ((((1000000UL * 1000) % ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))) << (8)) + ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100))))) / 2) / ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))))))) + (((u64)usec * ((unsigned long)((((u64)1000L << ((32 - 7) + 19)) + (( (((1000000UL * 1000) / ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))) << (8)) + ((((1000000UL * 1000) % ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))) << (8)) + ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100))))) / 2) / ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100))))))) -1) / (u64)(( (((1000000UL * 1000) / ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))) << (8)) + ((((1000000UL * 1000) % ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))) << (8)) + ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100))))) / 2) / ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100))))))))) + (u64)(((u64)1 << ((32 - 7) + 19)) - 1)) >> (((32 - 7) + 19) - (32 - 7)))) >> (32 - 7); } static __inline__ __attribute__((always_inline)) void jiffies_to_timeval(const unsigned long jiffies, struct timeval *value) { u64 nsec = (u64)jiffies * (( (((1000000UL * 1000) / ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))) << (8)) + ((((1000000UL * 1000) % ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100)))))) << (8)) + ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100))))) / 2) / ((( ((((33000000 / 4)) / ((((33000000 / 4) + 100/2) / 100))) << (8)) + (((((33000000 / 4)) % ((((33000000 / 4) + 100/2) / 100))) << (8)) + ((((33000000 / 4) + 100/2) / 100)) / 2) / ((((33000000 / 4) + 100/2) / 100))))))); long tv_usec; value->tv_sec = do_div_llr((nsec), 1000000000L, &tv_usec); tv_usec /= 1000L; value->tv_usec = tv_usec; } static inline __attribute__((always_inline)) clock_t jiffies_to_clock_t(long x) { return x / (100 / 100); } static inline __attribute__((always_inline)) unsigned long clock_t_to_jiffies(unsigned long x) { if (x >= ~0UL / (100 / 100)) return ~0UL; return x * (100 / 100); # 427 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/jiffies.h" } static inline __attribute__((always_inline)) u64 jiffies_64_to_clock_t(u64 x) { ({ uint32_t __base = (100 / 100); uint32_t __rem; (void)(((typeof((x)) *)0) == ((uint64_t *)0)); if (__builtin_expect(!!(((x) >> 32) == 0), 1)) { __rem = (uint32_t)(x) % __base; (x) = (uint32_t)(x) / __base; } else __rem = __div64_32(&(x), __base); __rem; }); # 442 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/jiffies.h" return x; } static inline __attribute__((always_inline)) u64 nsec_to_clock_t(u64 x) { ({ uint32_t __base = ((1000000000L / 100)); uint32_t __rem; (void)(((typeof((x)) *)0) == ((uint64_t *)0)); if (__builtin_expect(!!(((x) >> 32) == 0), 1)) { __rem = (uint32_t)(x) % __base; (x) = (uint32_t)(x) / __base; } else __rem = __div64_32(&(x), __base); __rem; }); # 462 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/jiffies.h" return x; } # 52 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rbtree.h" 1 # 100 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rbtree.h" struct rb_node { unsigned long rb_parent_color; struct rb_node *rb_right; struct rb_node *rb_left; } __attribute__((aligned(sizeof(long)))); struct rb_root { struct rb_node *rb_node; }; # 123 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rbtree.h" static inline __attribute__((always_inline)) void rb_set_parent(struct rb_node *rb, struct rb_node *p) { rb->rb_parent_color = (rb->rb_parent_color & 3) | (unsigned long)p; } static inline __attribute__((always_inline)) void rb_set_color(struct rb_node *rb, int color) { rb->rb_parent_color = (rb->rb_parent_color & ~1) | color; } # 139 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rbtree.h" extern void rb_insert_color(struct rb_node *, struct rb_root *); extern void rb_erase(struct rb_node *, struct rb_root *); extern struct rb_node *rb_next(struct rb_node *); extern struct rb_node *rb_prev(struct rb_node *); extern struct rb_node *rb_first(struct rb_root *); extern struct rb_node *rb_last(struct rb_root *); extern void rb_replace_node(struct rb_node *victim, struct rb_node *new, struct rb_root *root); static inline __attribute__((always_inline)) void rb_link_node(struct rb_node * node, struct rb_node * parent, struct rb_node ** rb_link) { node->rb_parent_color = (unsigned long )parent; node->rb_left = node->rb_right = ((void *)0); *rb_link = node; } # 53 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/cpumask.h" 1 # 86 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/cpumask.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/bitmap.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/string.h" 1 # 16 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/string.h" extern char *strndup_user(const char *, long); # 1 "include2/asm/string.h" 1 # 12 "include2/asm/string.h" static inline __attribute__((always_inline)) char *strcpy(char *__dest, const char *__src) { register char *__xdest = __dest; unsigned long __dummy; __asm__ __volatile__("1:\n\t" "mov.b @%1+, %2\n\t" "mov.b %2, @%0\n\t" "cmp/eq #0, %2\n\t" "bf/s 1b\n\t" " add #1, %0\n\t" : "=r" (__dest), "=r" (__src), "=&z" (__dummy) : "0" (__dest), "1" (__src) : "memory", "t"); return __xdest; } static inline __attribute__((always_inline)) char *strncpy(char *__dest, const char *__src, size_t __n) { register char *__xdest = __dest; unsigned long __dummy; if (__n == 0) return __xdest; __asm__ __volatile__( "1:\n" "mov.b @%1+, %2\n\t" "mov.b %2, @%0\n\t" "cmp/eq #0, %2\n\t" "bt/s 2f\n\t" " cmp/eq %5,%1\n\t" "bf/s 1b\n\t" " add #1, %0\n" "2:" : "=r" (__dest), "=r" (__src), "=&z" (__dummy) : "0" (__dest), "1" (__src), "r" (__src+__n) : "memory", "t"); return __xdest; } static inline __attribute__((always_inline)) int strcmp(const char *__cs, const char *__ct) { register int __res; unsigned long __dummy; __asm__ __volatile__( "mov.b @%1+, %3\n" "1:\n\t" "mov.b @%0+, %2\n\t" "cmp/eq #0, %3\n\t" "bt 2f\n\t" "cmp/eq %2, %3\n\t" "bt/s 1b\n\t" " mov.b @%1+, %3\n\t" "add #-2, %1\n\t" "mov.b @%1, %3\n\t" "sub %3, %2\n" "2:" : "=r" (__cs), "=r" (__ct), "=&r" (__res), "=&z" (__dummy) : "0" (__cs), "1" (__ct) : "t"); return __res; } static inline __attribute__((always_inline)) int strncmp(const char *__cs, const char *__ct, size_t __n) { register int __res; unsigned long __dummy; if (__n == 0) return 0; __asm__ __volatile__( "mov.b @%1+, %3\n" "1:\n\t" "mov.b @%0+, %2\n\t" "cmp/eq %6, %0\n\t" "bt/s 2f\n\t" " cmp/eq #0, %3\n\t" "bt/s 3f\n\t" " cmp/eq %3, %2\n\t" "bt/s 1b\n\t" " mov.b @%1+, %3\n\t" "add #-2, %1\n\t" "mov.b @%1, %3\n" "2:\n\t" "sub %3, %2\n" "3:" :"=r" (__cs), "=r" (__ct), "=&r" (__res), "=&z" (__dummy) : "0" (__cs), "1" (__ct), "r" (__cs+__n) : "t"); return __res; } extern void *memset(void *__s, int __c, size_t __count); extern void *memcpy(void *__to, __const__ void *__from, size_t __n); extern void *memmove(void *__dest, __const__ void *__src, size_t __n); extern void *memchr(const void *__s, int __c, size_t __n); extern size_t strlen(const char *); extern int strcasecmp(const char *, const char *); # 22 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/string.h" 2 # 30 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/string.h" size_t strlcpy(char *, const char *, size_t); extern char * strcat(char *, const char *); extern char * strncat(char *, const char *, __kernel_size_t); extern size_t strlcat(char *, const char *, __kernel_size_t); # 48 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/string.h" extern int strnicmp(const char *, const char *, __kernel_size_t); extern char * strchr(const char *,int); extern char * strnchr(const char *, size_t, int); extern char * strrchr(const char *,int); extern char * strstrip(char *); extern char * strstr(const char *,const char *); extern __kernel_size_t strnlen(const char *,__kernel_size_t); extern char * strpbrk(const char *,const char *); extern char * strsep(char **,const char *); extern __kernel_size_t strspn(const char *,const char *); extern __kernel_size_t strcspn(const char *,const char *); # 92 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/string.h" extern void * memscan(void *,int,__kernel_size_t); extern int memcmp(const void *,const void *,__kernel_size_t); extern char *kstrdup(const char *s, gfp_t gfp); extern void *kmemdup(const void *src, size_t len, gfp_t gfp); # 9 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/bitmap.h" 2 # 84 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/bitmap.h" extern int __bitmap_empty(const unsigned long *bitmap, int bits); extern int __bitmap_full(const unsigned long *bitmap, int bits); extern int __bitmap_equal(const unsigned long *bitmap1, const unsigned long *bitmap2, int bits); extern void __bitmap_complement(unsigned long *dst, const unsigned long *src, int bits); extern void __bitmap_shift_right(unsigned long *dst, const unsigned long *src, int shift, int bits); extern void __bitmap_shift_left(unsigned long *dst, const unsigned long *src, int shift, int bits); extern void __bitmap_and(unsigned long *dst, const unsigned long *bitmap1, const unsigned long *bitmap2, int bits); extern void __bitmap_or(unsigned long *dst, const unsigned long *bitmap1, const unsigned long *bitmap2, int bits); extern void __bitmap_xor(unsigned long *dst, const unsigned long *bitmap1, const unsigned long *bitmap2, int bits); extern void __bitmap_andnot(unsigned long *dst, const unsigned long *bitmap1, const unsigned long *bitmap2, int bits); extern int __bitmap_intersects(const unsigned long *bitmap1, const unsigned long *bitmap2, int bits); extern int __bitmap_subset(const unsigned long *bitmap1, const unsigned long *bitmap2, int bits); extern int __bitmap_weight(const unsigned long *bitmap, int bits); extern int bitmap_scnprintf(char *buf, unsigned int len, const unsigned long *src, int nbits); extern int __bitmap_parse(const char *buf, unsigned int buflen, int is_user, unsigned long *dst, int nbits); extern int bitmap_parse_user(const char *ubuf, unsigned int ulen, unsigned long *dst, int nbits); extern int bitmap_scnlistprintf(char *buf, unsigned int len, const unsigned long *src, int nbits); extern int bitmap_parselist(const char *buf, unsigned long *maskp, int nmaskbits); extern void bitmap_remap(unsigned long *dst, const unsigned long *src, const unsigned long *old, const unsigned long *new, int bits); extern int bitmap_bitremap(int oldbit, const unsigned long *old, const unsigned long *new, int bits); extern int bitmap_find_free_region(unsigned long *bitmap, int bits, int order); extern void bitmap_release_region(unsigned long *bitmap, int pos, int order); extern int bitmap_allocate_region(unsigned long *bitmap, int pos, int order); static inline __attribute__((always_inline)) void bitmap_zero(unsigned long *dst, int nbits) { if (nbits <= 32) *dst = 0UL; else { int len = (((nbits)+32 -1)/32) * sizeof(unsigned long); memset(dst, 0, len); } } static inline __attribute__((always_inline)) void bitmap_fill(unsigned long *dst, int nbits) { size_t nlongs = (((nbits)+32 -1)/32); if (nlongs > 1) { int len = (nlongs - 1) * sizeof(unsigned long); memset(dst, 0xff, len); } dst[nlongs - 1] = ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL ); } static inline __attribute__((always_inline)) void bitmap_copy(unsigned long *dst, const unsigned long *src, int nbits) { if (nbits <= 32) *dst = *src; else { int len = (((nbits)+32 -1)/32) * sizeof(unsigned long); memcpy(dst, src, len); } } static inline __attribute__((always_inline)) void bitmap_and(unsigned long *dst, const unsigned long *src1, const unsigned long *src2, int nbits) { if (nbits <= 32) *dst = *src1 & *src2; else __bitmap_and(dst, src1, src2, nbits); } static inline __attribute__((always_inline)) void bitmap_or(unsigned long *dst, const unsigned long *src1, const unsigned long *src2, int nbits) { if (nbits <= 32) *dst = *src1 | *src2; else __bitmap_or(dst, src1, src2, nbits); } static inline __attribute__((always_inline)) void bitmap_xor(unsigned long *dst, const unsigned long *src1, const unsigned long *src2, int nbits) { if (nbits <= 32) *dst = *src1 ^ *src2; else __bitmap_xor(dst, src1, src2, nbits); } static inline __attribute__((always_inline)) void bitmap_andnot(unsigned long *dst, const unsigned long *src1, const unsigned long *src2, int nbits) { if (nbits <= 32) *dst = *src1 & ~(*src2); else __bitmap_andnot(dst, src1, src2, nbits); } static inline __attribute__((always_inline)) void bitmap_complement(unsigned long *dst, const unsigned long *src, int nbits) { if (nbits <= 32) *dst = ~(*src) & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL ); else __bitmap_complement(dst, src, nbits); } static inline __attribute__((always_inline)) int bitmap_equal(const unsigned long *src1, const unsigned long *src2, int nbits) { if (nbits <= 32) return ! ((*src1 ^ *src2) & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL )); else return __bitmap_equal(src1, src2, nbits); } static inline __attribute__((always_inline)) int bitmap_intersects(const unsigned long *src1, const unsigned long *src2, int nbits) { if (nbits <= 32) return ((*src1 & *src2) & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL )) != 0; else return __bitmap_intersects(src1, src2, nbits); } static inline __attribute__((always_inline)) int bitmap_subset(const unsigned long *src1, const unsigned long *src2, int nbits) { if (nbits <= 32) return ! ((*src1 & ~(*src2)) & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL )); else return __bitmap_subset(src1, src2, nbits); } static inline __attribute__((always_inline)) int bitmap_empty(const unsigned long *src, int nbits) { if (nbits <= 32) return ! (*src & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL )); else return __bitmap_empty(src, nbits); } static inline __attribute__((always_inline)) int bitmap_full(const unsigned long *src, int nbits) { if (nbits <= 32) return ! (~(*src) & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL )); else return __bitmap_full(src, nbits); } static inline __attribute__((always_inline)) int bitmap_weight(const unsigned long *src, int nbits) { if (nbits <= 32) return hweight_long(*src & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL )); return __bitmap_weight(src, nbits); } static inline __attribute__((always_inline)) void bitmap_shift_right(unsigned long *dst, const unsigned long *src, int n, int nbits) { if (nbits <= 32) *dst = *src >> n; else __bitmap_shift_right(dst, src, n, nbits); } static inline __attribute__((always_inline)) void bitmap_shift_left(unsigned long *dst, const unsigned long *src, int n, int nbits) { if (nbits <= 32) *dst = (*src << n) & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL ); else __bitmap_shift_left(dst, src, n, nbits); } static inline __attribute__((always_inline)) int bitmap_parse(const char *buf, unsigned int buflen, unsigned long *maskp, int nmaskbits) { return __bitmap_parse(buf, buflen, 0, maskp, nmaskbits); } # 87 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/cpumask.h" 2 typedef struct { unsigned long bits[(((1)+32 -1)/32)]; } cpumask_t; extern cpumask_t _unused_cpumask_arg_; static inline __attribute__((always_inline)) void __cpu_set(int cpu, volatile cpumask_t *dstp) { set_bit(cpu, dstp->bits); } static inline __attribute__((always_inline)) void __cpu_clear(int cpu, volatile cpumask_t *dstp) { clear_bit(cpu, dstp->bits); } static inline __attribute__((always_inline)) void __cpus_setall(cpumask_t *dstp, int nbits) { bitmap_fill(dstp->bits, nbits); } static inline __attribute__((always_inline)) void __cpus_clear(cpumask_t *dstp, int nbits) { bitmap_zero(dstp->bits, nbits); } static inline __attribute__((always_inline)) int __cpu_test_and_set(int cpu, cpumask_t *addr) { return test_and_set_bit(cpu, addr->bits); } static inline __attribute__((always_inline)) void __cpus_and(cpumask_t *dstp, const cpumask_t *src1p, const cpumask_t *src2p, int nbits) { bitmap_and(dstp->bits, src1p->bits, src2p->bits, nbits); } static inline __attribute__((always_inline)) void __cpus_or(cpumask_t *dstp, const cpumask_t *src1p, const cpumask_t *src2p, int nbits) { bitmap_or(dstp->bits, src1p->bits, src2p->bits, nbits); } static inline __attribute__((always_inline)) void __cpus_xor(cpumask_t *dstp, const cpumask_t *src1p, const cpumask_t *src2p, int nbits) { bitmap_xor(dstp->bits, src1p->bits, src2p->bits, nbits); } static inline __attribute__((always_inline)) void __cpus_andnot(cpumask_t *dstp, const cpumask_t *src1p, const cpumask_t *src2p, int nbits) { bitmap_andnot(dstp->bits, src1p->bits, src2p->bits, nbits); } static inline __attribute__((always_inline)) void __cpus_complement(cpumask_t *dstp, const cpumask_t *srcp, int nbits) { bitmap_complement(dstp->bits, srcp->bits, nbits); } static inline __attribute__((always_inline)) int __cpus_equal(const cpumask_t *src1p, const cpumask_t *src2p, int nbits) { return bitmap_equal(src1p->bits, src2p->bits, nbits); } static inline __attribute__((always_inline)) int __cpus_intersects(const cpumask_t *src1p, const cpumask_t *src2p, int nbits) { return bitmap_intersects(src1p->bits, src2p->bits, nbits); } static inline __attribute__((always_inline)) int __cpus_subset(const cpumask_t *src1p, const cpumask_t *src2p, int nbits) { return bitmap_subset(src1p->bits, src2p->bits, nbits); } static inline __attribute__((always_inline)) int __cpus_empty(const cpumask_t *srcp, int nbits) { return bitmap_empty(srcp->bits, nbits); } static inline __attribute__((always_inline)) int __cpus_full(const cpumask_t *srcp, int nbits) { return bitmap_full(srcp->bits, nbits); } static inline __attribute__((always_inline)) int __cpus_weight(const cpumask_t *srcp, int nbits) { return bitmap_weight(srcp->bits, nbits); } static inline __attribute__((always_inline)) void __cpus_shift_right(cpumask_t *dstp, const cpumask_t *srcp, int n, int nbits) { bitmap_shift_right(dstp->bits, srcp->bits, n, nbits); } static inline __attribute__((always_inline)) void __cpus_shift_left(cpumask_t *dstp, const cpumask_t *srcp, int n, int nbits) { bitmap_shift_left(dstp->bits, srcp->bits, n, nbits); } # 270 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/cpumask.h" static inline __attribute__((always_inline)) int __cpumask_scnprintf(char *buf, int len, const cpumask_t *srcp, int nbits) { return bitmap_scnprintf(buf, len, srcp->bits, nbits); } static inline __attribute__((always_inline)) int __cpumask_parse_user(const char *buf, int len, cpumask_t *dstp, int nbits) { return bitmap_parse_user(buf, len, dstp->bits, nbits); } static inline __attribute__((always_inline)) int __cpulist_scnprintf(char *buf, int len, const cpumask_t *srcp, int nbits) { return bitmap_scnlistprintf(buf, len, srcp->bits, nbits); } static inline __attribute__((always_inline)) int __cpulist_parse(const char *buf, cpumask_t *dstp, int nbits) { return bitmap_parselist(buf, dstp->bits, nbits); } static inline __attribute__((always_inline)) int __cpu_remap(int oldbit, const cpumask_t *oldp, const cpumask_t *newp, int nbits) { return bitmap_bitremap(oldbit, oldp->bits, newp->bits, nbits); } static inline __attribute__((always_inline)) void __cpus_remap(cpumask_t *dstp, const cpumask_t *srcp, const cpumask_t *oldp, const cpumask_t *newp, int nbits) { bitmap_remap(dstp->bits, srcp->bits, oldp->bits, newp->bits, nbits); } # 380 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/cpumask.h" extern cpumask_t cpu_possible_map; extern cpumask_t cpu_online_map; extern cpumask_t cpu_present_map; # 55 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/errno.h" 1 # 1 "include2/asm/errno.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/errno.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/errno-base.h" 1 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/errno.h" 2 # 5 "include2/asm/errno.h" 2 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/errno.h" 2 # 56 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/nodemask.h" 1 # 86 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/nodemask.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/numa.h" 1 # 87 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/nodemask.h" 2 typedef struct { unsigned long bits[((((1 << 0))+32 -1)/32)]; } nodemask_t; extern nodemask_t _unused_nodemask_arg_; static inline __attribute__((always_inline)) void __node_set(int node, volatile nodemask_t *dstp) { set_bit(node, dstp->bits); } static inline __attribute__((always_inline)) void __node_clear(int node, volatile nodemask_t *dstp) { clear_bit(node, dstp->bits); } static inline __attribute__((always_inline)) void __nodes_setall(nodemask_t *dstp, int nbits) { bitmap_fill(dstp->bits, nbits); } static inline __attribute__((always_inline)) void __nodes_clear(nodemask_t *dstp, int nbits) { bitmap_zero(dstp->bits, nbits); } static inline __attribute__((always_inline)) int __node_test_and_set(int node, nodemask_t *addr) { return test_and_set_bit(node, addr->bits); } static inline __attribute__((always_inline)) void __nodes_and(nodemask_t *dstp, const nodemask_t *src1p, const nodemask_t *src2p, int nbits) { bitmap_and(dstp->bits, src1p->bits, src2p->bits, nbits); } static inline __attribute__((always_inline)) void __nodes_or(nodemask_t *dstp, const nodemask_t *src1p, const nodemask_t *src2p, int nbits) { bitmap_or(dstp->bits, src1p->bits, src2p->bits, nbits); } static inline __attribute__((always_inline)) void __nodes_xor(nodemask_t *dstp, const nodemask_t *src1p, const nodemask_t *src2p, int nbits) { bitmap_xor(dstp->bits, src1p->bits, src2p->bits, nbits); } static inline __attribute__((always_inline)) void __nodes_andnot(nodemask_t *dstp, const nodemask_t *src1p, const nodemask_t *src2p, int nbits) { bitmap_andnot(dstp->bits, src1p->bits, src2p->bits, nbits); } static inline __attribute__((always_inline)) void __nodes_complement(nodemask_t *dstp, const nodemask_t *srcp, int nbits) { bitmap_complement(dstp->bits, srcp->bits, nbits); } static inline __attribute__((always_inline)) int __nodes_equal(const nodemask_t *src1p, const nodemask_t *src2p, int nbits) { return bitmap_equal(src1p->bits, src2p->bits, nbits); } static inline __attribute__((always_inline)) int __nodes_intersects(const nodemask_t *src1p, const nodemask_t *src2p, int nbits) { return bitmap_intersects(src1p->bits, src2p->bits, nbits); } static inline __attribute__((always_inline)) int __nodes_subset(const nodemask_t *src1p, const nodemask_t *src2p, int nbits) { return bitmap_subset(src1p->bits, src2p->bits, nbits); } static inline __attribute__((always_inline)) int __nodes_empty(const nodemask_t *srcp, int nbits) { return bitmap_empty(srcp->bits, nbits); } static inline __attribute__((always_inline)) int __nodes_full(const nodemask_t *srcp, int nbits) { return bitmap_full(srcp->bits, nbits); } static inline __attribute__((always_inline)) int __nodes_weight(const nodemask_t *srcp, int nbits) { return bitmap_weight(srcp->bits, nbits); } static inline __attribute__((always_inline)) void __nodes_shift_right(nodemask_t *dstp, const nodemask_t *srcp, int n, int nbits) { bitmap_shift_right(dstp->bits, srcp->bits, n, nbits); } static inline __attribute__((always_inline)) void __nodes_shift_left(nodemask_t *dstp, const nodemask_t *srcp, int n, int nbits) { bitmap_shift_left(dstp->bits, srcp->bits, n, nbits); } static inline __attribute__((always_inline)) int __first_node(const nodemask_t *srcp) { return ({ int __x = ((1 << 0)); int __y = (find_next_bit((srcp->bits), ((1 << 0)), 0)); __x < __y ? __x: __y; }); } static inline __attribute__((always_inline)) int __next_node(int n, const nodemask_t *srcp) { return ({ int __x = ((1 << 0)); int __y = (find_next_bit(srcp->bits, (1 << 0), n+1)); __x < __y ? __x: __y; }); } # 251 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/nodemask.h" static inline __attribute__((always_inline)) int __first_unset_node(const nodemask_t *maskp) { return ({ int __x = ((1 << 0)); int __y = (find_next_zero_bit((maskp->bits), ((1 << 0)), 0)); __x < __y ? __x: __y; }); } # 285 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/nodemask.h" static inline __attribute__((always_inline)) int __nodemask_scnprintf(char *buf, int len, const nodemask_t *srcp, int nbits) { return bitmap_scnprintf(buf, len, srcp->bits, nbits); } static inline __attribute__((always_inline)) int __nodemask_parse_user(const char *buf, int len, nodemask_t *dstp, int nbits) { return bitmap_parse_user(buf, len, dstp->bits, nbits); } static inline __attribute__((always_inline)) int __nodelist_scnprintf(char *buf, int len, const nodemask_t *srcp, int nbits) { return bitmap_scnlistprintf(buf, len, srcp->bits, nbits); } static inline __attribute__((always_inline)) int __nodelist_parse(const char *buf, nodemask_t *dstp, int nbits) { return bitmap_parselist(buf, dstp->bits, nbits); } static inline __attribute__((always_inline)) int __node_remap(int oldbit, const nodemask_t *oldp, const nodemask_t *newp, int nbits) { return bitmap_bitremap(oldbit, oldp->bits, newp->bits, nbits); } static inline __attribute__((always_inline)) void __nodes_remap(nodemask_t *dstp, const nodemask_t *srcp, const nodemask_t *oldp, const nodemask_t *newp, int nbits) { bitmap_remap(dstp->bits, srcp->bits, oldp->bits, newp->bits, nbits); } # 345 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/nodemask.h" extern nodemask_t node_online_map; extern nodemask_t node_possible_map; # 57 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2 # 1 "include2/asm/semaphore.h" 1 # 17 "include2/asm/semaphore.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rwsem.h" 1 # 19 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rwsem.h" struct rw_semaphore; # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rwsem-spinlock.h" 1 # 16 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rwsem-spinlock.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/poison.h" 1 # 8 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/prefetch.h" 1 # 58 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/prefetch.h" static inline __attribute__((always_inline)) void prefetch_range(void *addr, size_t len) { char *cp; char *end = addr + len; for (cp = addr; cp < end; cp += (1 << 5)) prefetch(cp); } # 9 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h" 2 # 21 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h" struct list_head { struct list_head *next, *prev; }; static inline __attribute__((always_inline)) void INIT_LIST_HEAD(struct list_head *list) { list->next = list; list->prev = list; } # 43 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h" static inline __attribute__((always_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; } # 67 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h" static inline __attribute__((always_inline)) void list_add(struct list_head *new, struct list_head *head) { __list_add(new, head, head->next); } # 84 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h" static inline __attribute__((always_inline)) void list_add_tail(struct list_head *new, struct list_head *head) { __list_add(new, head->prev, head); } static inline __attribute__((always_inline)) void __list_add_rcu(struct list_head * new, struct list_head * prev, struct list_head * next) { new->next = next; new->prev = prev; __asm__ __volatile__("": : :"memory"); next->prev = new; prev->next = new; } # 121 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h" static inline __attribute__((always_inline)) void list_add_rcu(struct list_head *new, struct list_head *head) { __list_add_rcu(new, head, head->next); } # 142 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h" static inline __attribute__((always_inline)) void list_add_tail_rcu(struct list_head *new, struct list_head *head) { __list_add_rcu(new, head->prev, head); } # 155 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h" static inline __attribute__((always_inline)) void __list_del(struct list_head * prev, struct list_head * next) { next->prev = prev; prev->next = next; } # 168 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h" static inline __attribute__((always_inline)) void list_del(struct list_head *entry) { __list_del(entry->prev, entry->next); entry->next = ((void *) 0x00100100); entry->prev = ((void *) 0x00200200); } # 202 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h" static inline __attribute__((always_inline)) void list_del_rcu(struct list_head *entry) { __list_del(entry->prev, entry->next); entry->prev = ((void *) 0x00200200); } static inline __attribute__((always_inline)) void list_replace(struct list_head *old, struct list_head *new) { new->next = old->next; new->next->prev = new; new->prev = old->prev; new->prev->next = new; } static inline __attribute__((always_inline)) void list_replace_init(struct list_head *old, struct list_head *new) { list_replace(old, new); INIT_LIST_HEAD(old); } # 238 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h" static inline __attribute__((always_inline)) void list_replace_rcu(struct list_head *old, struct list_head *new) { new->next = old->next; new->prev = old->prev; __asm__ __volatile__("": : :"memory"); new->next->prev = new; new->prev->next = new; old->prev = ((void *) 0x00200200); } static inline __attribute__((always_inline)) void list_del_init(struct list_head *entry) { __list_del(entry->prev, entry->next); INIT_LIST_HEAD(entry); } static inline __attribute__((always_inline)) void list_move(struct list_head *list, struct list_head *head) { __list_del(list->prev, list->next); list_add(list, head); } static inline __attribute__((always_inline)) void list_move_tail(struct list_head *list, struct list_head *head) { __list_del(list->prev, list->next); list_add_tail(list, head); } static inline __attribute__((always_inline)) int list_is_last(const struct list_head *list, const struct list_head *head) { return list->next == head; } static inline __attribute__((always_inline)) int list_empty(const struct list_head *head) { return head->next == head; } # 315 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h" static inline __attribute__((always_inline)) int list_empty_careful(const struct list_head *head) { struct list_head *next = head->next; return (next == head) && (next == head->prev); } static inline __attribute__((always_inline)) void __list_splice(struct list_head *list, struct list_head *head) { struct list_head *first = list->next; struct list_head *last = list->prev; struct list_head *at = head->next; first->prev = head; head->next = first; last->next = at; at->prev = last; } static inline __attribute__((always_inline)) void list_splice(struct list_head *list, struct list_head *head) { if (!list_empty(list)) __list_splice(list, head); } # 353 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h" static inline __attribute__((always_inline)) void list_splice_init(struct list_head *list, struct list_head *head) { if (!list_empty(list)) { __list_splice(list, head); INIT_LIST_HEAD(list); } } # 607 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h" struct hlist_head { struct hlist_node *first; }; struct hlist_node { struct hlist_node *next, **pprev; }; static inline __attribute__((always_inline)) void INIT_HLIST_NODE(struct hlist_node *h) { h->next = ((void *)0); h->pprev = ((void *)0); } static inline __attribute__((always_inline)) int hlist_unhashed(const struct hlist_node *h) { return !h->pprev; } static inline __attribute__((always_inline)) int hlist_empty(const struct hlist_head *h) { return !h->first; } static inline __attribute__((always_inline)) void __hlist_del(struct hlist_node *n) { struct hlist_node *next = n->next; struct hlist_node **pprev = n->pprev; *pprev = next; if (next) next->pprev = pprev; } static inline __attribute__((always_inline)) void hlist_del(struct hlist_node *n) { __hlist_del(n); n->next = ((void *) 0x00100100); n->pprev = ((void *) 0x00200200); } # 669 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h" static inline __attribute__((always_inline)) void hlist_del_rcu(struct hlist_node *n) { __hlist_del(n); n->pprev = ((void *) 0x00200200); } static inline __attribute__((always_inline)) void hlist_del_init(struct hlist_node *n) { if (!hlist_unhashed(n)) { __hlist_del(n); INIT_HLIST_NODE(n); } } # 690 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h" static inline __attribute__((always_inline)) void hlist_replace_rcu(struct hlist_node *old, struct hlist_node *new) { struct hlist_node *next = old->next; new->next = next; new->pprev = old->pprev; __asm__ __volatile__("": : :"memory"); if (next) new->next->pprev = &new->next; *new->pprev = new; old->pprev = ((void *) 0x00200200); } static inline __attribute__((always_inline)) void hlist_add_head(struct hlist_node *n, struct hlist_head *h) { struct hlist_node *first = h->first; n->next = first; if (first) first->pprev = &n->next; h->first = n; n->pprev = &h->first; } # 734 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h" static inline __attribute__((always_inline)) void hlist_add_head_rcu(struct hlist_node *n, struct hlist_head *h) { struct hlist_node *first = h->first; n->next = first; n->pprev = &h->first; __asm__ __volatile__("": : :"memory"); if (first) first->pprev = &n->next; h->first = n; } static inline __attribute__((always_inline)) void hlist_add_before(struct hlist_node *n, struct hlist_node *next) { n->pprev = next->pprev; n->next = next; next->pprev = &n->next; *(n->pprev) = n; } static inline __attribute__((always_inline)) void hlist_add_after(struct hlist_node *n, struct hlist_node *next) { next->next = n->next; n->next = next; next->pprev = &n->next; if(next->next) next->next->pprev = &next->next; } # 785 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h" static inline __attribute__((always_inline)) void hlist_add_before_rcu(struct hlist_node *n, struct hlist_node *next) { n->pprev = next->pprev; n->next = next; __asm__ __volatile__("": : :"memory"); next->pprev = &n->next; *(n->pprev) = n; } # 813 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h" static inline __attribute__((always_inline)) void hlist_add_after_rcu(struct hlist_node *prev, struct hlist_node *n) { n->next = prev->next; n->pprev = &prev->next; __asm__ __volatile__("": : :"memory"); prev->next = n; if (n->next) n->next->pprev = &n->next; } # 17 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rwsem-spinlock.h" 2 struct rwsem_waiter; # 31 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rwsem-spinlock.h" struct rw_semaphore { __s32 activity; spinlock_t wait_lock; struct list_head wait_list; }; # 52 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rwsem-spinlock.h" extern void __init_rwsem(struct rw_semaphore *sem, const char *name, struct lock_class_key *key); # 62 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rwsem-spinlock.h" extern void __down_read(struct rw_semaphore *sem); extern int __down_read_trylock(struct rw_semaphore *sem); extern void __down_write(struct rw_semaphore *sem); extern void __down_write_nested(struct rw_semaphore *sem, int subclass); extern int __down_write_trylock(struct rw_semaphore *sem); extern void __up_read(struct rw_semaphore *sem); extern void __up_write(struct rw_semaphore *sem); extern void __downgrade_write(struct rw_semaphore *sem); static inline __attribute__((always_inline)) int rwsem_is_locked(struct rw_semaphore *sem) { return (sem->activity != 0); } # 23 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rwsem.h" 2 extern void down_read(struct rw_semaphore *sem); extern int down_read_trylock(struct rw_semaphore *sem); extern void down_write(struct rw_semaphore *sem); extern int down_write_trylock(struct rw_semaphore *sem); extern void up_read(struct rw_semaphore *sem); extern void up_write(struct rw_semaphore *sem); extern void downgrade_write(struct rw_semaphore *sem); # 18 "include2/asm/semaphore.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/wait.h" 1 # 28 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/wait.h" typedef struct __wait_queue wait_queue_t; typedef int (*wait_queue_func_t)(wait_queue_t *wait, unsigned mode, int sync, void *key); int default_wake_function(wait_queue_t *wait, unsigned mode, int sync, void *key); struct __wait_queue { unsigned int flags; void *private; wait_queue_func_t func; struct list_head task_list; }; struct wait_bit_key { void *flags; int bit_nr; }; struct wait_bit_queue { struct wait_bit_key key; wait_queue_t wait; }; struct __wait_queue_head { spinlock_t lock; struct list_head task_list; }; typedef struct __wait_queue_head wait_queue_head_t; struct task_struct; # 80 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/wait.h" extern void init_waitqueue_head(wait_queue_head_t *q); static inline __attribute__((always_inline)) void init_waitqueue_entry(wait_queue_t *q, struct task_struct *p) { q->flags = 0; q->private = p; q->func = default_wake_function; } static inline __attribute__((always_inline)) void init_waitqueue_func_entry(wait_queue_t *q, wait_queue_func_t func) { q->flags = 0; q->private = ((void *)0); q->func = func; } static inline __attribute__((always_inline)) int waitqueue_active(wait_queue_head_t *q) { return !list_empty(&q->task_list); } # 111 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/wait.h" extern void add_wait_queue(wait_queue_head_t *q, wait_queue_t * wait); extern void add_wait_queue_exclusive(wait_queue_head_t *q, wait_queue_t * wait); extern void remove_wait_queue(wait_queue_head_t *q, wait_queue_t * wait); static inline __attribute__((always_inline)) void __add_wait_queue(wait_queue_head_t *head, wait_queue_t *new) { list_add(&new->task_list, &head->task_list); } static inline __attribute__((always_inline)) void __add_wait_queue_tail(wait_queue_head_t *head, wait_queue_t *new) { list_add_tail(&new->task_list, &head->task_list); } static inline __attribute__((always_inline)) void __remove_wait_queue(wait_queue_head_t *head, wait_queue_t *old) { list_del(&old->task_list); } void __wake_up(wait_queue_head_t *q, unsigned int mode, int nr, void *key); extern void __wake_up_locked(wait_queue_head_t *q, unsigned int mode); extern void __wake_up_sync(wait_queue_head_t *q, unsigned int mode, int nr); void __wake_up_bit(wait_queue_head_t *, void *, int); int __wait_on_bit(wait_queue_head_t *, struct wait_bit_queue *, int (*)(void *), unsigned); int __wait_on_bit_lock(wait_queue_head_t *, struct wait_bit_queue *, int (*)(void *), unsigned); void wake_up_bit(void *, int); int out_of_line_wait_on_bit(void *, int, int (*)(void *), unsigned); int out_of_line_wait_on_bit_lock(void *, int, int (*)(void *), unsigned); wait_queue_head_t *bit_waitqueue(void *, int); # 342 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/wait.h" static inline __attribute__((always_inline)) void add_wait_queue_exclusive_locked(wait_queue_head_t *q, wait_queue_t * wait) { wait->flags |= 0x01; __add_wait_queue_tail(q, wait); } static inline __attribute__((always_inline)) void remove_wait_queue_locked(wait_queue_head_t *q, wait_queue_t * wait) { __remove_wait_queue(q, wait); } extern void sleep_on(wait_queue_head_t *q); extern long sleep_on_timeout(wait_queue_head_t *q, signed long timeout); extern void interruptible_sleep_on(wait_queue_head_t *q); extern long interruptible_sleep_on_timeout(wait_queue_head_t *q, signed long timeout); void prepare_to_wait(wait_queue_head_t *q, wait_queue_t *wait, int state); void prepare_to_wait_exclusive(wait_queue_head_t *q, wait_queue_t *wait, int state); void finish_wait(wait_queue_head_t *q, wait_queue_t *wait); int autoremove_wake_function(wait_queue_t *wait, unsigned mode, int sync, void *key); int wake_bit_function(wait_queue_t *wait, unsigned mode, int sync, void *key); # 420 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/wait.h" static inline __attribute__((always_inline)) int wait_on_bit(void *word, int bit, int (*action)(void *), unsigned mode) { if (!test_bit(bit, word)) return 0; return out_of_line_wait_on_bit(word, bit, action, mode); } # 444 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/wait.h" static inline __attribute__((always_inline)) int wait_on_bit_lock(void *word, int bit, int (*action)(void *), unsigned mode) { if (!test_and_set_bit(bit, word)) return 0; return out_of_line_wait_on_bit_lock(word, bit, action, mode); } # 19 "include2/asm/semaphore.h" 2 struct semaphore { atomic_t count; int sleepers; wait_queue_head_t wait; }; # 42 "include2/asm/semaphore.h" static inline __attribute__((always_inline)) void sema_init (struct semaphore *sem, int val) { ((&sem->count)->counter = (val)); sem->sleepers = 0; init_waitqueue_head(&sem->wait); } static inline __attribute__((always_inline)) void init_MUTEX (struct semaphore *sem) { sema_init(sem, 1); } static inline __attribute__((always_inline)) void init_MUTEX_LOCKED (struct semaphore *sem) { sema_init(sem, 0); } # 72 "include2/asm/semaphore.h" void __down(struct semaphore * sem); int __down_interruptible(struct semaphore * sem); int __down_trylock(struct semaphore * sem); void __up(struct semaphore * sem); extern spinlock_t semaphore_wake_lock; static inline __attribute__((always_inline)) void down(struct semaphore * sem) { do { do { } while (0); } while (0); if (atomic_sub_return(1,(&sem->count)) < 0) __down(sem); } static inline __attribute__((always_inline)) int down_interruptible(struct semaphore * sem) { int ret = 0; do { do { } while (0); } while (0); if (atomic_sub_return(1,(&sem->count)) < 0) ret = __down_interruptible(sem); return ret; } static inline __attribute__((always_inline)) int down_trylock(struct semaphore * sem) { int ret = 0; if (atomic_sub_return(1,(&sem->count)) < 0) ret = __down_trylock(sem); return ret; } static inline __attribute__((always_inline)) void up(struct semaphore * sem) { if (atomic_add_return(1,(&sem->count)) <= 0) __up(sem); } # 60 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2 # 1 "include2/asm/mmu.h" 1 # 14 "include2/asm/mmu.h" typedef unsigned long mm_context_id_t; typedef struct { mm_context_id_t id; void *vdso; } mm_context_t; # 47 "include2/asm/mmu.h" struct pmb_entry; struct pmb_entry { unsigned long vpn; unsigned long ppn; unsigned long flags; int entry; struct pmb_entry *next; struct pmb_entry *link; }; int __set_pmb_entry(unsigned long vpn, unsigned long ppn, unsigned long flags, int *entry); int set_pmb_entry(struct pmb_entry *pmbe); void clear_pmb_entry(struct pmb_entry *pmbe); struct pmb_entry *pmb_alloc(unsigned long vpn, unsigned long ppn, unsigned long flags); void pmb_free(struct pmb_entry *pmbe); long pmb_remap(unsigned long virt, unsigned long phys, unsigned long size, unsigned long flags); void pmb_unmap(unsigned long addr); # 63 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2 # 1 "include2/asm/cputime.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/cputime.h" 1 typedef unsigned long cputime_t; # 23 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/cputime.h" typedef u64 cputime64_t; # 5 "include2/asm/cputime.h" 2 # 64 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/smp.h" 1 # 10 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/smp.h" extern void cpu_idle(void); # 87 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/smp.h" static inline __attribute__((always_inline)) int up_smp_call_function(void) { return 0; } # 99 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/smp.h" static inline __attribute__((always_inline)) void smp_send_reschedule(int cpu) { } # 131 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/smp.h" void smp_setup_processor_id(void); # 66 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sem.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ipc.h" 1 # 9 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ipc.h" 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 "include2/asm/ipcbuf.h" 1 # 14 "include2/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 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ipc.h" 2 # 54 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ipc.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kref.h" 1 # 23 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kref.h" struct kref { atomic_t refcount; }; void kref_init(struct kref *kref); void kref_get(struct kref *kref); int kref_put(struct kref *kref, void (*release) (struct kref *kref)); # 55 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ipc.h" 2 struct kern_ipc_perm { spinlock_t lock; int deleted; key_t key; uid_t uid; gid_t gid; uid_t cuid; gid_t cgid; mode_t mode; unsigned long seq; void *security; }; struct ipc_ids; struct ipc_namespace { struct kref kref; struct ipc_ids *ids[3]; int sem_ctls[4]; int used_sems; int msg_ctlmax; int msg_ctlmnb; int msg_ctlmni; size_t shm_ctlmax; size_t shm_ctlall; int shm_ctlmni; int shm_tot; }; extern struct ipc_namespace init_ipc_ns; # 104 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ipc.h" static inline __attribute__((always_inline)) int copy_ipcs(unsigned long flags, struct task_struct *tsk) { return 0; } static inline __attribute__((always_inline)) struct ipc_namespace *get_ipc_ns(struct ipc_namespace *ns) { return ns; } static inline __attribute__((always_inline)) void put_ipc_ns(struct ipc_namespace *ns) { } # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sem.h" 2 # 23 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/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 "include2/asm/sembuf.h" 1 # 14 "include2/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 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/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 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sem.h" struct task_struct; struct sem { int semval; int sempid; }; struct sem_array { struct kern_ipc_perm sem_perm; int sem_id; 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; }; struct sem_undo_list { atomic_t refcnt; spinlock_t lock; struct sem_undo *proc_list; }; struct sysv_sem { struct sem_undo_list *undo_list; }; extern int copy_semundo(unsigned long clone_flags, struct task_struct *tsk); extern void exit_sem(struct task_struct *tsk); # 67 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/signal.h" 1 # 1 "include2/asm/signal.h" 1 struct pt_regs; struct siginfo; # 18 "include2/asm/signal.h" typedef unsigned long old_sigset_t; typedef struct { unsigned long sig[(64 / 32)]; } sigset_t; # 109 "include2/asm/signal.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/signal.h" 1 # 17 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/signal.h" typedef void __signalfn_t(int); typedef __signalfn_t *__sighandler_t; typedef void __restorefn_t(void); typedef __restorefn_t *__sigrestore_t; # 110 "include2/asm/signal.h" 2 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; }; # 147 "include2/asm/signal.h" typedef struct sigaltstack { void *ss_sp; int ss_flags; size_t ss_size; } stack_t; # 1 "include2/asm/sigcontext.h" 1 struct sigcontext { unsigned long oldmask; unsigned long sc_regs[16]; unsigned long sc_pc; unsigned long sc_pr; unsigned long sc_sr; unsigned long sc_gbr; unsigned long sc_mach; unsigned long sc_macl; unsigned long sc_fpregs[16]; unsigned long sc_xfpregs[16]; unsigned int sc_fpscr; unsigned int sc_fpul; unsigned int sc_ownedfp; }; # 155 "include2/asm/signal.h" 2 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/signal.h" 2 # 1 "include2/asm/siginfo.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/siginfo.h" 1 typedef union sigval { int sival_int; void *sival_ptr; } sigval_t; # 40 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/siginfo.h" typedef struct siginfo { int si_signo; int si_errno; int si_code; union { int _pad[((128 - (3 * sizeof(int))) / sizeof(int))]; struct { pid_t _pid; uid_t _uid; } _kill; struct { timer_t _tid; int _overrun; char _pad[sizeof( uid_t) - sizeof(int)]; sigval_t _sigval; int _sys_private; } _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 { long _band; int _fd; } _sigpoll; } _sifields; } siginfo_t; # 251 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/siginfo.h" typedef struct sigevent { sigval_t sigev_value; int sigev_signo; int sigev_notify; union { int _pad[((64 - (sizeof(int) * 2 + sizeof(sigval_t))) / sizeof(int))]; int _tid; struct { void (*_function)(sigval_t); void *_attribute; } _sigev_thread; } _sigev_un; } sigevent_t; struct siginfo; void do_schedule_next_timer(struct siginfo *info); static inline __attribute__((always_inline)) void copy_siginfo(struct siginfo *to, struct siginfo *from) { if (from->si_code < 0) memcpy(to, from, sizeof(*to)); else memcpy(to, from, (3 * sizeof(int)) + sizeof(from->_sifields._sigchld)); } extern int copy_siginfo_to_user(struct siginfo *to, struct siginfo *from); # 5 "include2/asm/siginfo.h" 2 # 6 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/signal.h" 2 # 15 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/signal.h" struct sigqueue { struct list_head list; int flags; siginfo_t info; struct user_struct *user; }; struct sigpending { struct list_head list; sigset_t signal; }; # 39 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/signal.h" static inline __attribute__((always_inline)) void sigaddset(sigset_t *set, int _sig) { unsigned long sig = _sig - 1; if ((64 / 32) == 1) set->sig[0] |= 1UL << sig; else set->sig[sig / 32] |= 1UL << (sig % 32); } static inline __attribute__((always_inline)) void sigdelset(sigset_t *set, int _sig) { unsigned long sig = _sig - 1; if ((64 / 32) == 1) set->sig[0] &= ~(1UL << sig); else set->sig[sig / 32] &= ~(1UL << (sig % 32)); } static inline __attribute__((always_inline)) int sigismember(sigset_t *set, int _sig) { unsigned long sig = _sig - 1; if ((64 / 32) == 1) return 1 & (set->sig[0] >> sig); else return 1 & (set->sig[sig / 32] >> (sig % 32)); } static inline __attribute__((always_inline)) int sigfindinword(unsigned long word) { return ffz(~word); } static inline __attribute__((always_inline)) int sigisemptyset(sigset_t *set) { extern void _NSIG_WORDS_is_unsupported_size(void); switch ((64 / 32)) { case 4: return (set->sig[3] | set->sig[2] | set->sig[1] | set->sig[0]) == 0; case 2: return (set->sig[1] | set->sig[0]) == 0; case 1: return set->sig[0] == 0; default: _NSIG_WORDS_is_unsupported_size(); return 0; } } # 120 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/signal.h" static inline __attribute__((always_inline)) void sigorsets(sigset_t *r, const sigset_t *a, const sigset_t *b) { extern void _NSIG_WORDS_is_unsupported_size(void); unsigned long a0, a1, a2, a3, b0, b1, b2, b3; switch ((64 / 32)) { case 4: a3 = a->sig[3]; a2 = a->sig[2]; b3 = b->sig[3]; b2 = b->sig[2]; r->sig[3] = ((a3) | (b3)); r->sig[2] = ((a2) | (b2)); case 2: a1 = a->sig[1]; b1 = b->sig[1]; r->sig[1] = ((a1) | (b1)); case 1: a0 = a->sig[0]; b0 = b->sig[0]; r->sig[0] = ((a0) | (b0)); break; default: _NSIG_WORDS_is_unsupported_size(); } } static inline __attribute__((always_inline)) void sigandsets(sigset_t *r, const sigset_t *a, const sigset_t *b) { extern void _NSIG_WORDS_is_unsupported_size(void); unsigned long a0, a1, a2, a3, b0, b1, b2, b3; switch ((64 / 32)) { case 4: a3 = a->sig[3]; a2 = a->sig[2]; b3 = b->sig[3]; b2 = b->sig[2]; r->sig[3] = ((a3) & (b3)); r->sig[2] = ((a2) & (b2)); case 2: a1 = a->sig[1]; b1 = b->sig[1]; r->sig[1] = ((a1) & (b1)); case 1: a0 = a->sig[0]; b0 = b->sig[0]; r->sig[0] = ((a0) & (b0)); break; default: _NSIG_WORDS_is_unsupported_size(); } } static inline __attribute__((always_inline)) void signandsets(sigset_t *r, const sigset_t *a, const sigset_t *b) { extern void _NSIG_WORDS_is_unsupported_size(void); unsigned long a0, a1, a2, a3, b0, b1, b2, b3; switch ((64 / 32)) { case 4: a3 = a->sig[3]; a2 = a->sig[2]; b3 = b->sig[3]; b2 = b->sig[2]; r->sig[3] = ((a3) & ~(b3)); r->sig[2] = ((a2) & ~(b2)); case 2: a1 = a->sig[1]; b1 = b->sig[1]; r->sig[1] = ((a1) & ~(b1)); case 1: a0 = a->sig[0]; b0 = b->sig[0]; r->sig[0] = ((a0) & ~(b0)); break; default: _NSIG_WORDS_is_unsupported_size(); } } # 150 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/signal.h" static inline __attribute__((always_inline)) void signotset(sigset_t *set) { extern void _NSIG_WORDS_is_unsupported_size(void); switch ((64 / 32)) { case 4: set->sig[3] = (~(set->sig[3])); set->sig[2] = (~(set->sig[2])); case 2: set->sig[1] = (~(set->sig[1])); case 1: set->sig[0] = (~(set->sig[0])); break; default: _NSIG_WORDS_is_unsupported_size(); } } static inline __attribute__((always_inline)) void sigemptyset(sigset_t *set) { switch ((64 / 32)) { default: memset(set, 0, sizeof(sigset_t)); break; case 2: set->sig[1] = 0; case 1: set->sig[0] = 0; break; } } static inline __attribute__((always_inline)) void sigfillset(sigset_t *set) { switch ((64 / 32)) { default: memset(set, -1, sizeof(sigset_t)); break; case 2: set->sig[1] = -1; case 1: set->sig[0] = -1; break; } } static inline __attribute__((always_inline)) void sigaddsetmask(sigset_t *set, unsigned long mask) { set->sig[0] |= mask; } static inline __attribute__((always_inline)) void sigdelsetmask(sigset_t *set, unsigned long mask) { set->sig[0] &= ~mask; } static inline __attribute__((always_inline)) int sigtestsetmask(sigset_t *set, unsigned long mask) { return (set->sig[0] & mask) != 0; } static inline __attribute__((always_inline)) void siginitset(sigset_t *set, unsigned long mask) { set->sig[0] = mask; switch ((64 / 32)) { default: memset(&set->sig[1], 0, sizeof(long)*((64 / 32)-1)); break; case 2: set->sig[1] = 0; case 1: ; } } static inline __attribute__((always_inline)) void siginitsetinv(sigset_t *set, unsigned long mask) { set->sig[0] = ~mask; switch ((64 / 32)) { default: memset(&set->sig[1], -1, sizeof(long)*((64 / 32)-1)); break; case 2: set->sig[1] = -1; case 1: ; } } static inline __attribute__((always_inline)) void init_sigpending(struct sigpending *sig) { sigemptyset(&sig->signal); INIT_LIST_HEAD(&sig->list); } extern void flush_sigqueue(struct sigpending *queue); static inline __attribute__((always_inline)) int valid_signal(unsigned long sig) { return sig <= 64 ? 1 : 0; } extern int group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p); extern int __group_send_sig_info(int, struct siginfo *, struct task_struct *); extern long do_sigpending(void *, unsigned long); extern int sigprocmask(int, sigset_t *, sigset_t *); struct pt_regs; extern int get_signal_to_deliver(siginfo_t *info, struct k_sigaction *return_ka, struct pt_regs *regs, void *cookie); # 68 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/securebits.h" 1 extern unsigned securebits; # 69 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs_struct.h" 1 struct dentry; struct vfsmount; struct fs_struct { atomic_t count; rwlock_t lock; int umask; struct dentry * root, * pwd, * altroot; struct vfsmount * rootmnt, * pwdmnt, * altrootmnt; }; extern void exit_fs(struct task_struct *); extern void set_fs_altroot(void); extern void set_fs_root(struct fs_struct *, struct vfsmount *, struct dentry *); extern void set_fs_pwd(struct fs_struct *, struct vfsmount *, struct dentry *); extern struct fs_struct *copy_fs_struct(struct fs_struct *); extern void put_fs_struct(struct fs_struct *); # 70 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/completion.h" 1 # 13 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/completion.h" struct completion { unsigned int done; wait_queue_head_t wait; }; # 39 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/completion.h" static inline __attribute__((always_inline)) void init_completion(struct completion *x) { x->done = 0; init_waitqueue_head(&x->wait); } extern void wait_for_completion(struct completion *); extern int wait_for_completion_interruptible(struct completion *x); extern unsigned long wait_for_completion_timeout(struct completion *x, unsigned long timeout); extern unsigned long wait_for_completion_interruptible_timeout( struct completion *x, unsigned long timeout); extern void complete(struct completion *); extern void complete_all(struct completion *); # 72 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pid.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rcupdate.h" 1 # 38 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rcupdate.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/cache.h" 1 # 39 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rcupdate.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/percpu.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/slab.h" 1 # 12 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/slab.h" typedef struct kmem_cache kmem_cache_t; # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/gfp.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h" 1 # 27 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h" struct free_area { struct list_head free_list; unsigned long nr_free; }; struct pglist_data; # 49 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h" enum zone_stat_item { NR_ANON_PAGES, NR_FILE_MAPPED, NR_FILE_PAGES, NR_SLAB_RECLAIMABLE, NR_SLAB_UNRECLAIMABLE, NR_PAGETABLE, NR_FILE_DIRTY, NR_WRITEBACK, NR_UNSTABLE_NFS, NR_BOUNCE, NR_VMSCAN_WRITE, # 70 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h" NR_VM_ZONE_STAT_ITEMS }; struct per_cpu_pages { int count; int high; int batch; struct list_head list; }; struct per_cpu_pageset { struct per_cpu_pages pcp[2]; } ; enum zone_type { # 113 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h" ZONE_DMA, # 127 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h" ZONE_NORMAL, # 139 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h" MAX_NR_ZONES }; # 156 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h" struct zone { unsigned long free_pages; unsigned long pages_min, pages_low, pages_high; # 168 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h" unsigned long lowmem_reserve[MAX_NR_ZONES]; # 179 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h" struct per_cpu_pageset pageset[1]; spinlock_t lock; struct free_area free_area[11]; spinlock_t lru_lock; struct list_head active_list; struct list_head inactive_list; unsigned long nr_scan_active; unsigned long nr_scan_inactive; unsigned long nr_active; unsigned long nr_inactive; unsigned long pages_scanned; int all_unreclaimable; atomic_t reclaim_in_progress; atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS]; # 227 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h" int temp_priority; int prev_priority; # 258 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h" wait_queue_head_t * wait_table; unsigned long wait_table_hash_nr_entries; unsigned long wait_table_bits; struct pglist_data *zone_pgdat; unsigned long zone_start_pfn; # 279 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h" unsigned long spanned_pages; unsigned long present_pages; char *name; } ; # 306 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h" struct zonelist { struct zone *zones[(1 << 0) * MAX_NR_ZONES + 1]; }; # 320 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h" extern struct page *mem_map; # 334 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h" struct bootmem_data; typedef struct pglist_data { struct zone node_zones[MAX_NR_ZONES]; struct zonelist node_zonelists[MAX_NR_ZONES]; int nr_zones; struct page *node_mem_map; struct bootmem_data *bdata; # 353 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h" unsigned long node_start_pfn; unsigned long node_present_pages; unsigned long node_spanned_pages; int node_id; wait_queue_head_t kswapd_wait; struct task_struct *kswapd; int kswapd_max_order; } pg_data_t; # 372 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/memory_hotplug.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h" 1 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/memory_hotplug.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/notifier.h" 1 # 13 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/notifier.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mutex.h" 1 # 47 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mutex.h" struct mutex { atomic_t count; spinlock_t wait_lock; struct list_head wait_list; # 60 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mutex.h" }; struct mutex_waiter { struct list_head list; struct task_struct *task; }; # 105 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mutex.h" extern void __mutex_init(struct mutex *lock, const char *name, struct lock_class_key *key); static inline __attribute__((always_inline)) int mutex_is_locked(struct mutex *lock) { return ((&lock->count)->counter) != 1; } extern void mutex_lock(struct mutex *lock); extern int mutex_lock_interruptible(struct mutex *lock); # 136 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mutex.h" extern int mutex_trylock(struct mutex *lock); extern void mutex_unlock(struct mutex *lock); # 14 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/notifier.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/srcu.h" 1 # 30 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/srcu.h" struct srcu_struct_array { int c[2]; }; struct srcu_struct { int completed; struct srcu_struct_array *per_cpu_ref; struct mutex mutex; }; int init_srcu_struct(struct srcu_struct *sp); void cleanup_srcu_struct(struct srcu_struct *sp); int srcu_read_lock(struct srcu_struct *sp) ; void srcu_read_unlock(struct srcu_struct *sp, int idx) ; void synchronize_srcu(struct srcu_struct *sp); long srcu_batches_completed(struct srcu_struct *sp); # 16 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/notifier.h" 2 # 50 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/notifier.h" struct notifier_block { int (*notifier_call)(struct notifier_block *, unsigned long, void *); struct notifier_block *next; int priority; }; struct atomic_notifier_head { spinlock_t lock; struct notifier_block *head; }; struct blocking_notifier_head { struct rw_semaphore rwsem; struct notifier_block *head; }; struct raw_notifier_head { struct notifier_block *head; }; struct srcu_notifier_head { struct mutex mutex; struct srcu_struct srcu; struct notifier_block *head; }; # 89 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/notifier.h" extern void srcu_init_notifier_head(struct srcu_notifier_head *nh); # 115 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/notifier.h" extern int atomic_notifier_chain_register(struct atomic_notifier_head *, struct notifier_block *); extern int blocking_notifier_chain_register(struct blocking_notifier_head *, struct notifier_block *); extern int raw_notifier_chain_register(struct raw_notifier_head *, struct notifier_block *); extern int srcu_notifier_chain_register(struct srcu_notifier_head *, struct notifier_block *); extern int atomic_notifier_chain_unregister(struct atomic_notifier_head *, struct notifier_block *); extern int blocking_notifier_chain_unregister(struct blocking_notifier_head *, struct notifier_block *); extern int raw_notifier_chain_unregister(struct raw_notifier_head *, struct notifier_block *); extern int srcu_notifier_chain_unregister(struct srcu_notifier_head *, struct notifier_block *); extern int atomic_notifier_call_chain(struct atomic_notifier_head *, unsigned long val, void *v); extern int blocking_notifier_call_chain(struct blocking_notifier_head *, unsigned long val, void *v); extern int raw_notifier_call_chain(struct raw_notifier_head *, unsigned long val, void *v); extern int srcu_notifier_call_chain(struct srcu_notifier_head *, unsigned long val, void *v); # 8 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/memory_hotplug.h" 2 struct page; struct zone; struct pglist_data; # 140 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/memory_hotplug.h" static inline __attribute__((always_inline)) void pgdat_resize_lock(struct pglist_data *p, unsigned long *f) {} static inline __attribute__((always_inline)) void pgdat_resize_unlock(struct pglist_data *p, unsigned long *f) {} static inline __attribute__((always_inline)) void pgdat_resize_init(struct pglist_data *pgdat) {} static inline __attribute__((always_inline)) unsigned zone_span_seqbegin(struct zone *zone) { return 0; } static inline __attribute__((always_inline)) int zone_span_seqretry(struct zone *zone, unsigned iv) { return 0; } static inline __attribute__((always_inline)) void zone_span_writelock(struct zone *zone) {} static inline __attribute__((always_inline)) void zone_span_writeunlock(struct zone *zone) {} static inline __attribute__((always_inline)) void zone_seqlock_init(struct zone *zone) {} static inline __attribute__((always_inline)) int mhp_notimplemented(const char *func) { printk("<4>" "%s() called, with CONFIG_MEMORY_HOTPLUG disabled\n", func); dump_stack(); return -38; } static inline __attribute__((always_inline)) int __remove_pages(struct zone *zone, unsigned long start_pfn, unsigned long nr_pages) { printk("<4>" "%s() called, not yet supported\n", (__func__)); dump_stack(); return -38; } extern int add_memory(int nid, u64 start, u64 size); extern int arch_add_memory(int nid, u64 start, u64 size); extern int remove_memory(u64 start, u64 size); extern int sparse_add_one_section(struct zone *zone, unsigned long start_pfn, int nr_pages); # 373 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h" 2 void __get_zone_counts(unsigned long *active, unsigned long *inactive, unsigned long *free, struct pglist_data *pgdat); void get_zone_counts(unsigned long *active, unsigned long *inactive, unsigned long *free); void build_all_zonelists(void); void wakeup_kswapd(struct zone *zone, int order); int zone_watermark_ok(struct zone *z, int order, unsigned long mark, int classzone_idx, int alloc_flags); extern int init_currently_empty_zone(struct zone *zone, unsigned long start_pfn, unsigned long size); static inline __attribute__((always_inline)) void memory_present(int nid, unsigned long start, unsigned long end) {} # 401 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h" static inline __attribute__((always_inline)) int populated_zone(struct zone *zone) { return (!!zone->present_pages); } static inline __attribute__((always_inline)) int is_highmem_idx(enum zone_type idx) { return 0; } static inline __attribute__((always_inline)) int is_normal_idx(enum zone_type idx) { return (idx == ZONE_NORMAL); } static inline __attribute__((always_inline)) int is_highmem(struct zone *zone) { return 0; } static inline __attribute__((always_inline)) int is_normal(struct zone *zone) { return zone == zone->zone_pgdat->node_zones + ZONE_NORMAL; } static inline __attribute__((always_inline)) int is_dma32(struct zone *zone) { return 0; } static inline __attribute__((always_inline)) int is_dma(struct zone *zone) { return zone == zone->zone_pgdat->node_zones + ZONE_DMA; } struct ctl_table; struct file; int min_free_kbytes_sysctl_handler(struct ctl_table *, int, struct file *, void *, size_t *, loff_t *); extern int sysctl_lowmem_reserve_ratio[MAX_NR_ZONES-1]; int lowmem_reserve_ratio_sysctl_handler(struct ctl_table *, int, struct file *, void *, size_t *, loff_t *); int percpu_pagelist_fraction_sysctl_handler(struct ctl_table *, int, struct file *, void *, size_t *, loff_t *); int sysctl_min_unmapped_ratio_sysctl_handler(struct ctl_table *, int, struct file *, void *, size_t *, loff_t *); int sysctl_min_slab_ratio_sysctl_handler(struct ctl_table *, int, struct file *, void *, size_t *, loff_t *); # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/topology.h" 1 # 34 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/topology.h" # 1 "include2/asm/topology.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/topology.h" 1 # 5 "include2/asm/topology.h" 2 # 35 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/topology.h" 2 # 470 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h" 2 extern struct pglist_data contig_page_data; # 488 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h" extern struct pglist_data *first_online_pgdat(void); extern struct pglist_data *next_online_pgdat(struct pglist_data *pgdat); extern struct zone *next_zone(struct zone *zone); # 681 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h" void memory_present(int nid, unsigned long start, unsigned long end); unsigned long __attribute__ ((__section__ (".init.text"))) node_memmap_size_bytes(int, unsigned long, unsigned long); # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/gfp.h" 2 struct vm_area_struct; # 86 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/gfp.h" static inline __attribute__((always_inline)) enum zone_type gfp_zone(gfp_t flags) { if (flags & (( gfp_t)0x01u)) return ZONE_DMA; # 98 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/gfp.h" return ZONE_NORMAL; } # 117 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/gfp.h" static inline __attribute__((always_inline)) void arch_free_page(struct page *page, int order) { } extern struct page * __alloc_pages(gfp_t, unsigned int, struct zonelist *); static inline __attribute__((always_inline)) struct page *alloc_pages_node(int nid, gfp_t gfp_mask, unsigned int order) { if (__builtin_expect(!!(order >= 11), 0)) return ((void *)0); if (nid < 0) nid = ((0)); return __alloc_pages(gfp_mask, order, (&contig_page_data)->node_zonelists + gfp_zone(gfp_mask)); } # 157 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/gfp.h" extern unsigned long __get_free_pages(gfp_t gfp_mask, unsigned int order); extern unsigned long get_zeroed_page(gfp_t gfp_mask); extern void __free_pages(struct page *page, unsigned int order); extern void free_pages(unsigned long addr, unsigned int order); extern void free_hot_page(struct page *page); extern void free_cold_page(struct page *page); void page_alloc_init(void); static inline __attribute__((always_inline)) void drain_node_pages(int node) { }; # 15 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/slab.h" 2 # 58 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/slab.h" extern void __attribute__ ((__section__ (".init.text"))) kmem_cache_init(void); 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 void kmem_cache_destroy(kmem_cache_t *); extern int kmem_cache_shrink(kmem_cache_t *); extern void *kmem_cache_alloc(kmem_cache_t *, gfp_t); extern void *kmem_cache_zalloc(struct kmem_cache *, gfp_t); extern void kmem_cache_free(kmem_cache_t *, void *); extern unsigned int kmem_cache_size(kmem_cache_t *); extern const char *kmem_cache_name(kmem_cache_t *); struct cache_sizes { size_t cs_size; kmem_cache_t *cs_cachep; kmem_cache_t *cs_dmacachep; }; extern struct cache_sizes malloc_sizes[]; extern void *__kmalloc(size_t, gfp_t); # 126 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/slab.h" static inline __attribute__((always_inline)) void *kmalloc(size_t size, gfp_t flags) { if (__builtin_constant_p(size)) { int i = 0; # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kmalloc_sizes.h" 1 if (size <= 32) goto found; else i++; if (size <= 64) goto found; else i++; if (size <= 96) goto found; else i++; if (size <= 128) goto found; else i++; if (size <= 192) goto found; else i++; if (size <= 256) goto found; else i++; if (size <= 512) goto found; else i++; if (size <= 1024) goto found; else i++; if (size <= 2048) goto found; else i++; if (size <= 4096) goto found; else i++; if (size <= 8192) goto found; else i++; if (size <= 16384) goto found; else i++; if (size <= 32768) goto found; else i++; if (size <= 65536) goto found; else i++; if (size <= 131072) goto found; else i++; # 136 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/slab.h" 2 { extern void __you_cannot_kmalloc_that_much(void); __you_cannot_kmalloc_that_much(); } found: return kmem_cache_alloc((flags & (( gfp_t)0x01u)) ? malloc_sizes[i].cs_dmacachep : malloc_sizes[i].cs_cachep, flags); } return __kmalloc(size, flags); } # 166 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/slab.h" extern void *__kzalloc(size_t, gfp_t); static inline __attribute__((always_inline)) void *kzalloc(size_t size, gfp_t flags) { if (__builtin_constant_p(size)) { int i = 0; # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kmalloc_sizes.h" 1 if (size <= 32) goto found; else i++; if (size <= 64) goto found; else i++; if (size <= 96) goto found; else i++; if (size <= 128) goto found; else i++; if (size <= 192) goto found; else i++; if (size <= 256) goto found; else i++; if (size <= 512) goto found; else i++; if (size <= 1024) goto found; else i++; if (size <= 2048) goto found; else i++; if (size <= 4096) goto found; else i++; if (size <= 8192) goto found; else i++; if (size <= 16384) goto found; else i++; if (size <= 32768) goto found; else i++; if (size <= 65536) goto found; else i++; if (size <= 131072) goto found; else i++; # 183 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/slab.h" 2 { extern void __you_cannot_kzalloc_that_much(void); __you_cannot_kzalloc_that_much(); } found: return kmem_cache_zalloc((flags & (( gfp_t)0x01u)) ? malloc_sizes[i].cs_dmacachep : malloc_sizes[i].cs_cachep, flags); } return __kzalloc(size, flags); } static inline __attribute__((always_inline)) void *kcalloc(size_t n, size_t size, gfp_t flags) { if (n != 0 && size > (~0UL) / n) return ((void *)0); return kzalloc(n * size, flags); } extern void kfree(const void *); extern unsigned int ksize(const void *); extern int slab_is_available(void); # 240 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/slab.h" static inline __attribute__((always_inline)) void *kmem_cache_alloc_node(kmem_cache_t *cachep, gfp_t flags, int node) { return kmem_cache_alloc(cachep, flags); } static inline __attribute__((always_inline)) void *kmalloc_node(size_t size, gfp_t flags, int node) { return kmalloc(size, flags); } extern int kmem_cache_reap(int); extern int kmem_ptr_validate(kmem_cache_t *cachep, void *ptr); # 289 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/slab.h" extern kmem_cache_t *vm_area_cachep; extern kmem_cache_t *names_cachep; extern kmem_cache_t *files_cachep; extern kmem_cache_t *filp_cachep; extern kmem_cache_t *fs_cachep; extern kmem_cache_t *sighand_cachep; extern kmem_cache_t *bio_cachep; # 6 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/percpu.h" 2 # 1 "include2/asm/percpu.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/percpu.h" 1 # 5 "include2/asm/percpu.h" 2 # 11 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/percpu.h" 2 # 57 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/percpu.h" static inline __attribute__((always_inline)) void percpu_depopulate(void *__pdata, int cpu) { } static inline __attribute__((always_inline)) void __percpu_depopulate_mask(void *__pdata, cpumask_t *mask) { } static inline __attribute__((always_inline)) void *percpu_populate(void *__pdata, size_t size, gfp_t gfp, int cpu) { return ({ (void)(cpu); (__pdata); }); } static inline __attribute__((always_inline)) int __percpu_populate_mask(void *__pdata, size_t size, gfp_t gfp, cpumask_t *mask) { return 0; } static inline __attribute__((always_inline)) __attribute__((always_inline)) void *__percpu_alloc_mask(size_t size, gfp_t gfp, cpumask_t *mask) { return kzalloc(size, gfp); } static inline __attribute__((always_inline)) void percpu_free(void *__pdata) { kfree(__pdata); } # 42 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rcupdate.h" 2 # 50 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rcupdate.h" struct rcu_head { struct rcu_head *next; void (*func)(struct rcu_head *head); }; # 64 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rcupdate.h" struct rcu_ctrlblk { long cur; long completed; int next_pending; int signaled; spinlock_t lock ; cpumask_t cpumask; } ; static inline __attribute__((always_inline)) int rcu_batch_before(long a, long b) { return (a - b) < 0; } static inline __attribute__((always_inline)) int rcu_batch_after(long a, long b) { return (a - b) > 0; } struct rcu_data { long quiescbatch; int passed_quiesc; int qs_pending; long batch; struct rcu_head *nxtlist; struct rcu_head **nxttail; long qlen; struct rcu_head *curlist; struct rcu_head **curtail; struct rcu_head *donelist; struct rcu_head **donetail; long blimit; int cpu; struct rcu_head barrier; }; extern __typeof__(struct rcu_data) per_cpu__rcu_data; extern __typeof__(struct rcu_data) per_cpu__rcu_bh_data; static inline __attribute__((always_inline)) void rcu_qsctr_inc(int cpu) { struct rcu_data *rdp = &(*((void)(cpu), &per_cpu__rcu_data)); rdp->passed_quiesc = 1; } static inline __attribute__((always_inline)) void rcu_bh_qsctr_inc(int cpu) { struct rcu_data *rdp = &(*((void)(cpu), &per_cpu__rcu_bh_data)); rdp->passed_quiesc = 1; } extern int rcu_pending(int cpu); extern int rcu_needs_cpu(int cpu); # 272 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rcupdate.h" extern void rcu_init(void); extern void rcu_check_callbacks(int cpu, int user); extern void rcu_restart_cpu(int cpu); extern long rcu_batches_completed(void); extern long rcu_batches_completed_bh(void); extern void call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *head)); extern void call_rcu_bh(struct rcu_head *head, void (*func)(struct rcu_head *head)); extern void synchronize_rcu(void); void synchronize_idle(void); extern void rcu_barrier(void); # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pid.h" 2 enum pid_type { PIDTYPE_PID, PIDTYPE_PGID, PIDTYPE_SID, PIDTYPE_MAX }; # 42 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pid.h" struct pid { atomic_t count; int nr; struct hlist_node pid_chain; struct hlist_head tasks[PIDTYPE_MAX]; struct rcu_head rcu; }; struct pid_link { struct hlist_node node; struct pid *pid; }; static inline __attribute__((always_inline)) struct pid *get_pid(struct pid *pid) { if (pid) atomic_add(1,(&pid->count)); return pid; } extern void put_pid(struct pid *pid); extern struct task_struct *pid_task(struct pid *pid, enum pid_type); extern struct task_struct *get_pid_task(struct pid *pid, enum pid_type); extern struct pid *get_task_pid(struct task_struct *task, enum pid_type type); extern int attach_pid(struct task_struct *task, enum pid_type type, int nr); extern void detach_pid(struct task_struct *task, enum pid_type); extern void transfer_pid(struct task_struct *old, struct task_struct *new, enum pid_type); extern struct pid *find_pid(int nr); extern struct pid *find_get_pid(int nr); extern struct pid *find_ge_pid(int nr); extern struct pid *alloc_pid(void); extern void free_pid(struct pid *pid); static inline __attribute__((always_inline)) pid_t pid_nr(struct pid *pid) { pid_t nr = 0; if (pid) nr = pid->nr; return nr; } # 73 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/seccomp.h" 1 # 28 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/seccomp.h" typedef struct { } seccomp_t; static inline __attribute__((always_inline)) int has_secure_computing(struct thread_info *ti) { return 0; } # 76 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/futex.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 1 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/futex.h" 2 # 33 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/futex.h" struct robust_list { struct robust_list *next; }; # 45 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/futex.h" struct robust_list_head { struct robust_list list; long futex_offset; # 69 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/futex.h" struct robust_list *list_op_pending; }; # 96 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/futex.h" long do_futex(u32 *uaddr, int op, u32 val, unsigned long timeout, u32 *uaddr2, u32 val2, u32 val3); extern int handle_futex_death(u32 *uaddr, struct task_struct *curr, int pi); extern void exit_robust_list(struct task_struct *curr); extern void exit_pi_state_list(struct task_struct *curr); # 78 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rtmutex.h" 1 # 16 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rtmutex.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/plist.h" 1 # 80 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/plist.h" struct plist_head { struct list_head prio_list; struct list_head node_list; }; struct plist_node { int prio; struct plist_head plist; }; # 128 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/plist.h" static inline __attribute__((always_inline)) void plist_head_init(struct plist_head *head, spinlock_t *lock) { INIT_LIST_HEAD(&head->prio_list); INIT_LIST_HEAD(&head->node_list); } static inline __attribute__((always_inline)) void plist_node_init(struct plist_node *node, int prio) { node->prio = prio; plist_head_init(&node->plist, ((void *)0)); } extern void plist_add(struct plist_node *node, struct plist_head *head); extern void plist_del(struct plist_node *node, struct plist_head *head); # 200 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/plist.h" static inline __attribute__((always_inline)) int plist_head_empty(const struct plist_head *head) { return list_empty(&head->node_list); } static inline __attribute__((always_inline)) int plist_node_empty(const struct plist_node *node) { return plist_head_empty(&node->plist); } # 242 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/plist.h" static inline __attribute__((always_inline)) struct plist_node* plist_first(const struct plist_head *head) { return ({ const typeof( ((struct plist_node *)0)->plist.node_list ) *__mptr = (head->node_list.next); (struct plist_node *)( (char *)__mptr - __builtin_offsetof(struct plist_node,plist.node_list) );}); } # 17 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rtmutex.h" 2 # 26 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rtmutex.h" struct rt_mutex { spinlock_t wait_lock; struct plist_head wait_list; struct task_struct *owner; }; struct rt_mutex_waiter; struct hrtimer_sleeper; static inline __attribute__((always_inline)) int rt_mutex_debug_check_no_locks_freed(const void *from, unsigned long len) { return 0; } # 80 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rtmutex.h" static inline __attribute__((always_inline)) int rt_mutex_is_locked(struct rt_mutex *lock) { return lock->owner != ((void *)0); } extern void __rt_mutex_init(struct rt_mutex *lock, const char *name); extern void rt_mutex_destroy(struct rt_mutex *lock); extern void rt_mutex_lock(struct rt_mutex *lock); extern int rt_mutex_lock_interruptible(struct rt_mutex *lock, int detect_deadlock); extern int rt_mutex_timed_lock(struct rt_mutex *lock, struct hrtimer_sleeper *timeout, int detect_deadlock); extern int rt_mutex_trylock(struct rt_mutex *lock); extern void rt_mutex_unlock(struct rt_mutex *lock); # 79 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/param.h" 1 # 82 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/resource.h" 1 struct task_struct; # 23 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/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; }; # 70 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/resource.h" # 1 "include2/asm/resource.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/resource.h" 1 # 5 "include2/asm/resource.h" 2 # 71 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/resource.h" 2 int getrusage(struct task_struct *p, int who, struct rusage *ru); # 83 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/timer.h" 1 struct tvec_t_base_s; struct timer_list { struct list_head entry; unsigned long expires; void (*function)(unsigned long); unsigned long data; struct tvec_t_base_s *base; }; extern struct tvec_t_base_s boot_tvec_bases; # 33 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/timer.h" void init_timer(struct timer_list * timer); static inline __attribute__((always_inline)) void setup_timer(struct timer_list * timer, void (*function)(unsigned long), unsigned long data) { timer->function = function; timer->data = data; init_timer(timer); } # 54 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/timer.h" static inline __attribute__((always_inline)) int timer_pending(const struct timer_list * timer) { return timer->entry.next != ((void *)0); } extern void add_timer_on(struct timer_list *timer, int cpu); extern int del_timer(struct timer_list * timer); extern int __mod_timer(struct timer_list *timer, unsigned long expires); extern int mod_timer(struct timer_list *timer, unsigned long expires); extern unsigned long next_timer_interrupt(void); # 80 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/timer.h" static inline __attribute__((always_inline)) void add_timer(struct timer_list *timer) { do { if (__builtin_expect(!!((timer_pending(timer))!=0), 0)) do { printk("kernel BUG at %s:%d!\n", "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/timer.h", 82); *(volatile int *)0 = 0; } while (0); } while(0); __mod_timer(timer, timer->expires); } # 96 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/timer.h" extern void init_timers(void); extern void run_local_timers(void); struct hrtimer; extern int it_real_fn(struct hrtimer *); # 84 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hrtimer.h" 1 # 19 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hrtimer.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ktime.h" 1 # 46 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ktime.h" typedef union { s64 tv64; struct { s32 nsec, sec; } tv; } ktime_t; # 138 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ktime.h" static inline __attribute__((always_inline)) ktime_t ktime_set(const long secs, const unsigned long nsecs) { return (ktime_t) { .tv = { .sec = secs, .nsec = nsecs } }; } # 150 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ktime.h" static inline __attribute__((always_inline)) ktime_t ktime_sub(const ktime_t lhs, const ktime_t rhs) { ktime_t res; res.tv64 = lhs.tv64 - rhs.tv64; if (res.tv.nsec < 0) res.tv.nsec += 1000000000L; return res; } # 168 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ktime.h" static inline __attribute__((always_inline)) ktime_t ktime_add(const ktime_t add1, const ktime_t add2) { ktime_t res; res.tv64 = add1.tv64 + add2.tv64; # 181 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ktime.h" if (res.tv.nsec >= 1000000000L) res.tv64 += (u32)-1000000000L; return res; } # 194 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ktime.h" extern ktime_t ktime_add_ns(const ktime_t kt, u64 nsec); static inline __attribute__((always_inline)) ktime_t timespec_to_ktime(const struct timespec ts) { return (ktime_t) { .tv = { .sec = (s32)ts.tv_sec, .nsec = (s32)ts.tv_nsec } }; } static inline __attribute__((always_inline)) ktime_t timeval_to_ktime(const struct timeval tv) { return (ktime_t) { .tv = { .sec = (s32)tv.tv_sec, .nsec = (s32)tv.tv_usec * 1000 } }; } static inline __attribute__((always_inline)) struct timespec ktime_to_timespec(const ktime_t kt) { return (struct timespec) { .tv_sec = (time_t) kt.tv.sec, .tv_nsec = (long) kt.tv.nsec }; } static inline __attribute__((always_inline)) struct timeval ktime_to_timeval(const ktime_t kt) { return (struct timeval) { .tv_sec = (time_t) kt.tv.sec, .tv_usec = (suseconds_t) (kt.tv.nsec / 1000L) }; } static inline __attribute__((always_inline)) u64 ktime_to_ns(const ktime_t kt) { return (u64) kt.tv.sec * 1000000000L + kt.tv.nsec; } # 268 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ktime.h" extern void ktime_get_ts(struct timespec *ts); # 20 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hrtimer.h" 2 enum hrtimer_mode { HRTIMER_ABS, HRTIMER_REL, }; enum hrtimer_restart { HRTIMER_NORESTART, HRTIMER_RESTART, }; struct hrtimer_base; # 52 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hrtimer.h" struct hrtimer { struct rb_node node; ktime_t expires; int (*function)(struct hrtimer *); struct hrtimer_base *base; }; # 66 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hrtimer.h" struct hrtimer_sleeper { struct hrtimer timer; struct task_struct *task; }; # 85 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hrtimer.h" struct hrtimer_base { clockid_t index; spinlock_t lock; struct rb_root active; struct rb_node *first; ktime_t resolution; ktime_t (*get_time)(void); ktime_t (*get_softirq_time)(void); struct hrtimer *curr_timer; ktime_t softirq_time; struct lock_class_key lock_key; }; # 108 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hrtimer.h" extern void hrtimer_init(struct hrtimer *timer, clockid_t which_clock, enum hrtimer_mode mode); extern int hrtimer_start(struct hrtimer *timer, ktime_t tim, const enum hrtimer_mode mode); extern int hrtimer_cancel(struct hrtimer *timer); extern int hrtimer_try_to_cancel(struct hrtimer *timer); extern ktime_t hrtimer_get_remaining(const struct hrtimer *timer); extern int hrtimer_get_res(const clockid_t which_clock, struct timespec *tp); static inline __attribute__((always_inline)) int hrtimer_active(const struct hrtimer *timer) { return ((struct rb_node *)((&timer->node)->rb_parent_color & ~3)) != &timer->node; } extern unsigned long hrtimer_forward(struct hrtimer *timer, ktime_t now, ktime_t interval); extern long hrtimer_nanosleep(struct timespec *rqtp, struct timespec *rmtp, const enum hrtimer_mode mode, const clockid_t clockid); extern long hrtimer_nanosleep_restart(struct restart_block *restart_block); extern void hrtimer_init_sleeper(struct hrtimer_sleeper *sl, struct task_struct *tsk); extern void hrtimer_run_queues(void); extern void __attribute__ ((__section__ (".init.text"))) hrtimers_init(void); # 85 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2 struct exec_domain; struct futex_pi_state; # 107 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" extern unsigned long avenrun[]; # 121 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" extern unsigned long total_forks; extern int nr_threads; extern __typeof__(unsigned long) per_cpu__process_counts; extern int nr_processes(void); extern unsigned long nr_running(void); extern unsigned long nr_uninterruptible(void); extern unsigned long nr_active(void); extern unsigned long nr_iowait(void); extern unsigned long weighted_cpuload(const int cpu); # 186 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" extern rwlock_t tasklist_lock; extern spinlock_t mmlist_lock; struct task_struct; extern void sched_init(void); extern void sched_init_smp(void); extern void init_idle(struct task_struct *idle, int cpu); extern cpumask_t nohz_cpu_mask; extern void show_state(void); extern void show_regs(struct pt_regs *); extern void show_stack(struct task_struct *task, unsigned long *sp); void io_schedule(void); long io_schedule_timeout(long timeout); extern void cpu_init (void); extern void trap_init(void); extern void update_process_times(int user); extern void scheduler_tick(void); static inline __attribute__((always_inline)) void softlockup_tick(void) { } static inline __attribute__((always_inline)) void spawn_softlockup_task(void) { } static inline __attribute__((always_inline)) void touch_softlockup_watchdog(void) { } extern int in_sched_functions(unsigned long addr); extern signed long schedule_timeout(signed long timeout); extern signed long schedule_timeout_interruptible(signed long timeout); extern signed long schedule_timeout_uninterruptible(signed long timeout); void schedule(void); struct nsproxy; extern int sysctl_max_map_count; # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/aio.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/workqueue.h" 1 # 12 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/workqueue.h" struct workqueue_struct; struct work_struct { unsigned long pending; struct list_head entry; void (*func)(void *); void *data; void *wq_data; struct timer_list timer; }; struct execute_work { struct work_struct work; }; # 57 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/workqueue.h" extern struct workqueue_struct *__create_workqueue(const char *name, int singlethread); extern void destroy_workqueue(struct workqueue_struct *wq); extern int queue_work(struct workqueue_struct *wq, struct work_struct *work); extern int queue_delayed_work(struct workqueue_struct *wq, struct work_struct *work, unsigned long delay); extern int queue_delayed_work_on(int cpu, struct workqueue_struct *wq, struct work_struct *work, unsigned long delay); extern void flush_workqueue(struct workqueue_struct *wq); extern int schedule_work(struct work_struct *work); extern int schedule_delayed_work(struct work_struct *work, unsigned long delay); extern int schedule_delayed_work_on(int cpu, struct work_struct *work, unsigned long delay); extern int schedule_on_each_cpu(void (*func)(void *info), void *info); extern void flush_scheduled_work(void); extern int current_is_keventd(void); extern int keventd_up(void); extern void init_workqueues(void); void cancel_rearming_delayed_work(struct work_struct *work); void cancel_rearming_delayed_workqueue(struct workqueue_struct *, struct work_struct *); int execute_in_process_context(void (*fn)(void *), void *, struct execute_work *); static inline __attribute__((always_inline)) int cancel_delayed_work(struct work_struct *work) { int ret; ret = del_timer(&work->timer); if (ret) clear_bit(0, &work->pending); return ret; } # 6 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/aio.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/aio_abi.h" 1 # 32 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/aio_abi.h" typedef unsigned long aio_context_t; enum { IOCB_CMD_PREAD = 0, IOCB_CMD_PWRITE = 1, IOCB_CMD_FSYNC = 2, IOCB_CMD_FDSYNC = 3, IOCB_CMD_NOOP = 6, IOCB_CMD_PREADV = 7, IOCB_CMD_PWRITEV = 8, }; struct io_event { __u64 data; __u64 obj; __s64 res; __s64 res2; }; # 70 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/aio_abi.h" struct iocb { __u64 aio_data; __u32 aio_key, aio_reserved1; __u16 aio_lio_opcode; __s16 aio_reqprio; __u32 aio_fildes; __u64 aio_buf; __u64 aio_nbytes; __s64 aio_offset; __u64 aio_reserved2; __u64 aio_reserved3; }; # 7 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/aio.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/uio.h" 1 # 20 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/uio.h" struct iovec { void *iov_base; __kernel_size_t iov_len; }; struct kvec { void *iov_base; size_t iov_len; }; # 54 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/uio.h" static inline __attribute__((always_inline)) size_t iov_length(const struct iovec *iov, unsigned long nr_segs) { unsigned long seg; size_t ret = 0; for (seg = 0; seg < nr_segs; seg++) ret += iov[seg].iov_len; return ret; } unsigned long iov_shorten(struct iovec *iov, unsigned long nr_segs, size_t to); # 8 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/aio.h" 2 struct kioctx; # 87 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/aio.h" struct kiocb { struct list_head ki_run_list; long ki_flags; int ki_users; unsigned ki_key; struct file *ki_filp; struct kioctx *ki_ctx; int (*ki_cancel)(struct kiocb *, struct io_event *); ssize_t (*ki_retry)(struct kiocb *); void (*ki_dtor)(struct kiocb *); union { void *user; struct task_struct *tsk; } ki_obj; __u64 ki_user_data; wait_queue_t ki_wait; loff_t ki_pos; void *private; unsigned short ki_opcode; size_t ki_nbytes; char *ki_buf; size_t ki_left; long ki_retried; struct iovec ki_inline_vec; struct iovec *ki_iovec; unsigned long ki_nr_segs; unsigned long ki_cur_seg; struct list_head ki_list; }; # 144 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/aio.h" struct aio_ring { unsigned id; unsigned nr; unsigned head; unsigned tail; unsigned magic; unsigned compat_features; unsigned incompat_features; unsigned header_length; struct io_event io_events[0]; }; struct aio_ring_info { unsigned long mmap_base; unsigned long mmap_size; struct page **ring_pages; spinlock_t ring_lock; long nr_pages; unsigned nr, tail; struct page *internal_pages[8]; }; struct kioctx { atomic_t users; int dead; struct mm_struct *mm; unsigned long user_id; struct kioctx *next; wait_queue_head_t wait; spinlock_t ctx_lock; int reqs_active; struct list_head active_reqs; struct list_head run_list; unsigned max_reqs; struct aio_ring_info ring_info; struct work_struct wq; }; extern unsigned aio_max_size; extern ssize_t wait_on_sync_kiocb(struct kiocb *iocb); extern int aio_put_req(struct kiocb *iocb); extern void kick_iocb(struct kiocb *iocb); extern int aio_complete(struct kiocb *iocb, long res, long res2); extern void __put_ioctx(struct kioctx *ctx); struct mm_struct; extern void exit_aio(struct mm_struct *mm); extern struct kioctx *lookup_ioctx(unsigned long ctx_id); extern int io_submit_one(struct kioctx *ctx, struct iocb *user_iocb, struct iocb *iocb); struct kioctx *lookup_ioctx(unsigned long ctx_id); int io_submit_one(struct kioctx *ctx, struct iocb *user_iocb, struct iocb *iocb); # 245 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/aio.h" static inline __attribute__((always_inline)) struct kiocb *list_kiocb(struct list_head *h) { return ({ const typeof( ((struct kiocb *)0)->ki_list ) *__mptr = (h); (struct kiocb *)( (char *)__mptr - __builtin_offsetof(struct kiocb,ki_list) );}); } extern unsigned long aio_nr; extern unsigned long aio_max_nr; # 251 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2 extern unsigned long arch_get_unmapped_area(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); extern unsigned long arch_get_unmapped_area_topdown(struct file *filp, unsigned long addr, unsigned long len, unsigned long pgoff, unsigned long flags); extern void arch_unmap_area(struct mm_struct *, unsigned long); extern void arch_unmap_area_topdown(struct mm_struct *, unsigned long); # 284 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" typedef unsigned long mm_counter_t; # 300 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" struct mm_struct { struct vm_area_struct * mmap; struct rb_root mm_rb; struct vm_area_struct * mmap_cache; unsigned long (*get_unmapped_area) (struct file *filp, unsigned long addr, unsigned long len, unsigned long pgoff, unsigned long flags); void (*unmap_area) (struct mm_struct *mm, unsigned long addr); unsigned long mmap_base; unsigned long task_size; unsigned long cached_hole_size; unsigned long free_area_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; mm_counter_t _file_rss; mm_counter_t _anon_rss; unsigned long hiwater_rss; unsigned long hiwater_vm; unsigned long total_vm, locked_vm, shared_vm, exec_vm; unsigned long stack_vm, reserved_vm, def_flags, nr_ptes; 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 saved_auxv[44]; unsigned dumpable:2; cpumask_t cpu_vm_mask; mm_context_t context; unsigned long swap_token_time; char recent_pagein; int core_waiters; struct completion *core_startup_done, core_done; rwlock_t ioctx_list_lock; struct kioctx *ioctx_list; }; struct sighand_struct { atomic_t count; struct k_sigaction action[64]; spinlock_t siglock; }; struct pacct_struct { int ac_flag; long ac_exitcode; unsigned long ac_mem; cputime_t ac_utime, ac_stime; unsigned long ac_minflt, ac_majflt; }; # 381 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" struct signal_struct { atomic_t count; atomic_t live; wait_queue_head_t wait_chldexit; struct task_struct *curr_target; struct sigpending shared_pending; int group_exit_code; struct task_struct *group_exit_task; int notify_count; int group_stop_count; unsigned int flags; struct list_head posix_timers; struct hrtimer real_timer; struct task_struct *tsk; ktime_t it_real_incr; cputime_t it_prof_expires, it_virt_expires; cputime_t it_prof_incr, it_virt_incr; pid_t pgrp; pid_t tty_old_pgrp; pid_t session; int leader; struct tty_struct *tty; cputime_t utime, stime, cutime, cstime; unsigned long nvcsw, nivcsw, cnvcsw, cnivcsw; unsigned long min_flt, maj_flt, cmin_flt, cmaj_flt; unsigned long long sched_time; # 455 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" struct rlimit rlim[15]; struct list_head cpu_timers[3]; # 472 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" }; # 515 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" struct user_struct { atomic_t __count; atomic_t processes; atomic_t files; atomic_t sigpending; atomic_t inotify_watches; atomic_t inotify_devs; unsigned long mq_bytes; unsigned long locked_shm; struct list_head uidhash_list; uid_t uid; }; extern struct user_struct *find_user(uid_t); extern struct user_struct root_user; struct backing_dev_info; struct reclaim_state; # 593 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" static inline __attribute__((always_inline)) int sched_info_on(void) { return 0; } enum idle_type { SCHED_IDLE, NOT_IDLE, NEWLY_IDLE, MAX_IDLE_TYPES }; # 722 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" struct io_context; struct cpuset; struct group_info { int ngroups; atomic_t usage; gid_t small_block[32]; int nblocks; gid_t *blocks[0]; }; # 750 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" extern struct group_info *groups_alloc(int gidsetsize); extern void groups_free(struct group_info *group_info); extern int set_current_groups(struct group_info *group_info); extern int groups_search(struct group_info *group_info, gid_t grp); static inline __attribute__((always_inline)) void prefetch_stack(struct task_struct *t) { } struct audit_context; struct mempolicy; struct pipe_inode_info; struct uts_namespace; enum sleep_type { SLEEP_NORMAL, SLEEP_NONINTERACTIVE, SLEEP_INTERACTIVE, SLEEP_INTERRUPTED, }; struct prio_array; struct task_struct { volatile long state; struct thread_info *thread_info; atomic_t usage; unsigned long flags; unsigned long ptrace; int lock_depth; int load_weight; int prio, static_prio, normal_prio; struct list_head run_list; struct prio_array *array; unsigned short ioprio; unsigned long sleep_avg; unsigned long long timestamp, last_ran; unsigned long long sched_time; enum sleep_type sleep_type; unsigned long policy; cpumask_t cpus_allowed; unsigned int time_slice, first_time_slice; struct list_head tasks; struct list_head ptrace_children; struct list_head ptrace_list; struct mm_struct *mm, *active_mm; struct linux_binfmt *binfmt; long exit_state; int exit_code, exit_signal; int pdeath_signal; unsigned long personality; unsigned did_exec:1; pid_t pid; pid_t tgid; # 844 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" struct task_struct *real_parent; struct task_struct *parent; struct list_head children; struct list_head sibling; struct task_struct *group_leader; struct pid_link pids[PIDTYPE_MAX]; struct list_head thread_group; struct completion *vfork_done; int *set_child_tid; int *clear_child_tid; unsigned long rt_priority; cputime_t utime, stime; unsigned long nvcsw, nivcsw; struct timespec start_time; unsigned long min_flt, maj_flt; cputime_t it_prof_expires, it_virt_expires; unsigned long long it_sched_expires; struct list_head cpu_timers[3]; uid_t uid,euid,suid,fsuid; gid_t gid,egid,sgid,fsgid; struct group_info *group_info; kernel_cap_t cap_effective, cap_inheritable, cap_permitted; unsigned keep_capabilities:1; struct user_struct *user; # 893 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" unsigned char fpu_counter; int oomkilladj; char comm[16]; int link_count, total_link_count; struct sysv_sem sysvsem; struct thread_struct thread; struct fs_struct *fs; struct files_struct *files; struct nsproxy *nsproxy; struct signal_struct *signal; struct sighand_struct *sighand; sigset_t blocked, real_blocked; sigset_t saved_sigmask; struct sigpending pending; unsigned long sas_ss_sp; size_t sas_ss_size; int (*notifier)(void *priv); void *notifier_data; sigset_t *notifier_mask; void *security; struct audit_context *audit_context; seccomp_t seccomp; u32 parent_exec_id; u32 self_exec_id; spinlock_t alloc_lock; spinlock_t pi_lock; struct plist_head pi_waiters; struct rt_mutex_waiter *pi_blocked_on; # 975 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" void *journal_info; struct reclaim_state *reclaim_state; struct backing_dev_info *backing_dev_info; struct io_context *io_context; unsigned long ptrace_message; siginfo_t *last_siginfo; wait_queue_t *io_wait; u64 rchar, wchar, syscr, syscw; # 1010 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" struct robust_list_head *robust_list; struct list_head pi_state_list; struct futex_pi_state *pi_state_cache; atomic_t fs_excl; struct rcu_head rcu; struct pipe_inode_info *splice_pipe; }; static inline __attribute__((always_inline)) pid_t process_group(struct task_struct *tsk) { return tsk->signal->pgrp; } static inline __attribute__((always_inline)) struct pid *task_pid(struct task_struct *task) { return task->pids[PIDTYPE_PID].pid; } static inline __attribute__((always_inline)) struct pid *task_tgid(struct task_struct *task) { return task->group_leader->pids[PIDTYPE_PID].pid; } static inline __attribute__((always_inline)) struct pid *task_pgrp(struct task_struct *task) { return task->group_leader->pids[PIDTYPE_PGID].pid; } static inline __attribute__((always_inline)) struct pid *task_session(struct task_struct *task) { return task->group_leader->pids[PIDTYPE_SID].pid; } # 1062 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" static inline __attribute__((always_inline)) int pid_alive(struct task_struct *p) { return p->pids[PIDTYPE_PID].pid != ((void *)0); } static inline __attribute__((always_inline)) int is_init(struct task_struct *tsk) { return tsk->pid == 1; } extern struct pid *cad_pid; extern void free_task(struct task_struct *tsk); extern void __put_task_struct(struct task_struct *t); static inline __attribute__((always_inline)) void put_task_struct(struct task_struct *t) { if ((atomic_sub_return(1, (&t->usage)) == 0)) __put_task_struct(t); } # 1148 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" static inline __attribute__((always_inline)) int set_cpus_allowed(struct task_struct *p, cpumask_t new_mask) { if (!test_bit((0), (new_mask).bits)) return -22; return 0; } extern unsigned long long sched_clock(void); extern unsigned long long current_sched_time(const struct task_struct *current_task); # 1170 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" static inline __attribute__((always_inline)) void idle_task_exit(void) {} extern void sched_idle_next(void); extern int rt_mutex_getprio(struct task_struct *p); extern void rt_mutex_setprio(struct task_struct *p, int prio); extern void rt_mutex_adjust_pi(struct task_struct *p); # 1187 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" extern void set_user_nice(struct task_struct *p, long nice); extern int task_prio(const struct task_struct *p); extern int task_nice(const struct task_struct *p); extern int can_nice(const struct task_struct *p, const int nice); extern int task_curr(const struct task_struct *p); extern int idle_cpu(int cpu); extern int sched_setscheduler(struct task_struct *, int, struct sched_param *); extern struct task_struct *idle_task(int cpu); extern struct task_struct *curr_task(int cpu); extern void set_curr_task(int cpu, struct task_struct *p); void yield(void); extern struct exec_domain default_exec_domain; union thread_union { struct thread_info thread_info; unsigned long stack[((1UL << 12) * 2)/sizeof(long)]; }; static inline __attribute__((always_inline)) int kstack_end(void *addr) { return !(((unsigned long)addr+sizeof(void*)-1) & (((1UL << 12) * 2)-sizeof(void*))); } extern union thread_union init_thread_union; extern struct task_struct init_task; extern struct mm_struct init_mm; extern struct task_struct *find_task_by_pid_type(int type, int pid); extern void set_special_pids(pid_t session, pid_t pgrp); extern void __set_special_pids(pid_t session, pid_t pgrp); extern struct user_struct * alloc_uid(uid_t); static inline __attribute__((always_inline)) struct user_struct *get_uid(struct user_struct *u) { atomic_add(1,(&u->__count)); return u; } extern void free_uid(struct user_struct *); extern void switch_uid(struct user_struct *); extern void do_timer(unsigned long ticks); extern int wake_up_state(struct task_struct * tsk, unsigned int state); extern int wake_up_process(struct task_struct * tsk); extern void wake_up_new_task(struct task_struct * tsk, unsigned long clone_flags); static inline __attribute__((always_inline)) void kick_process(struct task_struct *tsk) { } extern void sched_fork(struct task_struct * p, int clone_flags); extern void sched_exit(struct task_struct * p); 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 *, int force_default); extern int dequeue_signal(struct task_struct *tsk, sigset_t *mask, siginfo_t *info); static inline __attribute__((always_inline)) int dequeue_signal_lock(struct task_struct *tsk, sigset_t *mask, siginfo_t *info) { unsigned long flags; int ret; do { flags = local_irq_save(); do { do { } while (0); (void)0; (void)(&tsk->sighand->siglock); } while (0); } while (0); ret = dequeue_signal(tsk, mask, info); do { do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0); do { do { } while (0); (void)0; (void)(&tsk->sighand->siglock); } while (0); } while (0); return ret; } extern void block_all_signals(int (*notifier)(void *priv), void *priv, sigset_t *mask); extern void unblock_all_signals(void); extern void release_task(struct task_struct * p); extern int send_sig_info(int, struct siginfo *, struct task_struct *); extern int send_group_sig_info(int, struct siginfo *, struct task_struct *); extern int force_sigsegv(int, struct task_struct *); extern int force_sig_info(int, struct siginfo *, struct task_struct *); extern int __kill_pgrp_info(int sig, struct siginfo *info, struct pid *pgrp); extern int kill_pgrp_info(int sig, struct siginfo *info, struct pid *pgrp); extern int kill_pid_info(int sig, struct siginfo *info, struct pid *pid); extern int kill_pid_info_as_uid(int, struct siginfo *, struct pid *, uid_t, uid_t, u32); extern int kill_pgrp(struct pid *pid, int sig, int priv); extern int kill_pid(struct pid *pid, int sig, int priv); extern int __kill_pg_info(int sig, struct siginfo *info, pid_t pgrp); extern int kill_pg_info(int, struct siginfo *, pid_t); extern int kill_proc_info(int, struct siginfo *, pid_t); extern void do_notify_parent(struct task_struct *, int); extern void force_sig(int, struct task_struct *); extern void force_sig_specific(int, struct task_struct *); extern int send_sig(int, struct task_struct *, int); extern void zap_other_threads(struct task_struct *p); extern int kill_pg(pid_t, int, int); extern int kill_proc(pid_t, int, int); extern struct sigqueue *sigqueue_alloc(void); extern void sigqueue_free(struct sigqueue *); extern int send_sigqueue(int, struct sigqueue *, struct task_struct *); extern int send_group_sigqueue(int, struct sigqueue *, struct task_struct *); extern int do_sigaction(int, struct k_sigaction *, struct k_sigaction *); extern int do_sigaltstack(const stack_t *, stack_t *, unsigned long); static inline __attribute__((always_inline)) int kill_cad_pid(int sig, int priv) { return kill_pid(cad_pid, sig, priv); } static inline __attribute__((always_inline)) int is_si_special(const struct siginfo *info) { return info <= ((struct siginfo *) 2); } static inline __attribute__((always_inline)) int on_sig_stack(unsigned long sp) { return (sp - get_current()->sas_ss_sp < get_current()->sas_ss_size); } static inline __attribute__((always_inline)) int sas_ss_flags(unsigned long sp) { return (get_current()->sas_ss_size == 0 ? 2 : on_sig_stack(sp) ? 1 : 0); } extern struct mm_struct * mm_alloc(void); extern void __mmdrop(struct mm_struct *); static inline __attribute__((always_inline)) void mmdrop(struct mm_struct * mm) { if ((atomic_sub_return(1, (&mm->mm_count)) == 0)) __mmdrop(mm); } extern void mmput(struct mm_struct *); extern struct mm_struct *get_task_mm(struct task_struct *task); extern void mm_release(struct task_struct *, struct mm_struct *); 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_files(struct task_struct *); extern void __cleanup_signal(struct signal_struct *); extern void __cleanup_sighand(struct sighand_struct *); extern void exit_itimers(struct signal_struct *); extern void do_group_exit(int); extern void daemonize(const char *, ...); extern int allow_signal(int); extern int disallow_signal(int); extern struct task_struct *child_reaper; extern int do_execve(char *, char * *, char * *, struct pt_regs *); extern long do_fork(unsigned long, unsigned long, struct pt_regs *, unsigned long, int *, int *); struct task_struct *fork_idle(int); extern void set_task_comm(struct task_struct *tsk, char *from); extern void get_task_comm(char *to, struct task_struct *tsk); # 1411 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" static inline __attribute__((always_inline)) int has_group_leader_pid(struct task_struct *p) { return p->pid == p->tgid; } static inline __attribute__((always_inline)) struct task_struct *next_thread(const struct task_struct *p) { return ({ const typeof( ((struct task_struct *)0)->thread_group ) *__mptr = (({ typeof(p->thread_group.next) _________p1 = p->thread_group.next; do { } while(0); (_________p1); })); (struct task_struct *)( (char *)__mptr - __builtin_offsetof(struct task_struct,thread_group) );}); } static inline __attribute__((always_inline)) int thread_group_empty(struct task_struct *p) { return list_empty(&p->thread_group); } # 1439 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" static inline __attribute__((always_inline)) void task_lock(struct task_struct *p) { do { do { } while (0); (void)0; (void)(&p->alloc_lock); } while (0); } static inline __attribute__((always_inline)) void task_unlock(struct task_struct *p) { do { do { } while (0); (void)0; (void)(&p->alloc_lock); } while (0); } extern struct sighand_struct *lock_task_sighand(struct task_struct *tsk, unsigned long *flags); static inline __attribute__((always_inline)) void unlock_task_sighand(struct task_struct *tsk, unsigned long *flags) { do { do { if ((*flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0); do { do { } while (0); (void)0; (void)(&tsk->sighand->siglock); } while (0); } while (0); } static inline __attribute__((always_inline)) void setup_thread_stack(struct task_struct *p, struct task_struct *org) { *(p)->thread_info = *(org)->thread_info; (p)->thread_info->task = p; } static inline __attribute__((always_inline)) unsigned long *end_of_stack(struct task_struct *p) { return (unsigned long *)(p->thread_info + 1); } static inline __attribute__((always_inline)) void set_tsk_thread_flag(struct task_struct *tsk, int flag) { set_ti_thread_flag((tsk)->thread_info, flag); } static inline __attribute__((always_inline)) void clear_tsk_thread_flag(struct task_struct *tsk, int flag) { clear_ti_thread_flag((tsk)->thread_info, flag); } static inline __attribute__((always_inline)) int test_and_set_tsk_thread_flag(struct task_struct *tsk, int flag) { return test_and_set_ti_thread_flag((tsk)->thread_info, flag); } static inline __attribute__((always_inline)) int test_and_clear_tsk_thread_flag(struct task_struct *tsk, int flag) { return test_and_clear_ti_thread_flag((tsk)->thread_info, flag); } static inline __attribute__((always_inline)) int test_tsk_thread_flag(struct task_struct *tsk, int flag) { return test_ti_thread_flag((tsk)->thread_info, flag); } static inline __attribute__((always_inline)) void set_tsk_need_resched(struct task_struct *tsk) { set_tsk_thread_flag(tsk,3); } static inline __attribute__((always_inline)) void clear_tsk_need_resched(struct task_struct *tsk) { clear_tsk_thread_flag(tsk,3); } static inline __attribute__((always_inline)) int signal_pending(struct task_struct *p) { return __builtin_expect(!!(test_tsk_thread_flag(p,2)), 0); } static inline __attribute__((always_inline)) int need_resched(void) { return __builtin_expect(!!(test_ti_thread_flag(current_thread_info(), 3)), 0); } # 1531 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" extern int cond_resched(void); extern int cond_resched_lock(spinlock_t * lock); extern int cond_resched_softirq(void); # 1549 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" static inline __attribute__((always_inline)) int lock_need_resched(spinlock_t *lock) { if (0 || need_resched()) return 1; return 0; } extern void recalc_sigpending_tsk(struct task_struct *t); extern void recalc_sigpending(void); extern void signal_wake_up(struct task_struct *t, int resume_stopped); # 1582 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" static inline __attribute__((always_inline)) unsigned int task_cpu(const struct task_struct *p) { return 0; } static inline __attribute__((always_inline)) void set_task_cpu(struct task_struct *p, unsigned int cpu) { } static inline __attribute__((always_inline)) void arch_pick_mmap_layout(struct mm_struct *mm) { mm->mmap_base = (0x7c000000UL / 3); mm->get_unmapped_area = arch_get_unmapped_area; mm->unmap_area = arch_unmap_area; } extern long sched_setaffinity(pid_t pid, cpumask_t new_mask); extern long sched_getaffinity(pid_t pid, cpumask_t *mask); # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sysdev.h" 1 # 24 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sysdev.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kobject.h" 1 # 22 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kobject.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sysfs.h" 1 # 16 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sysfs.h" struct kobject; struct module; struct attribute { const char * name; struct module * owner; mode_t mode; }; struct attribute_group { const char * name; struct attribute ** attrs; }; # 52 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sysfs.h" struct vm_area_struct; struct bin_attribute { struct attribute attr; size_t size; void *private; ssize_t (*read)(struct kobject *, char *, loff_t, size_t); ssize_t (*write)(struct kobject *, char *, loff_t, size_t); int (*mmap)(struct kobject *, struct bin_attribute *attr, struct vm_area_struct *vma); }; struct sysfs_ops { ssize_t (*show)(struct kobject *, struct attribute *,char *); ssize_t (*store)(struct kobject *,struct attribute *,const char *, size_t); }; struct sysfs_dirent { atomic_t s_count; struct list_head s_sibling; struct list_head s_children; void * s_element; int s_type; umode_t s_mode; struct dentry * s_dentry; struct iattr * s_iattr; atomic_t s_event; }; # 90 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sysfs.h" extern int __attribute__((warn_unused_result)) sysfs_create_dir(struct kobject *); extern void sysfs_remove_dir(struct kobject *); extern int __attribute__((warn_unused_result)) sysfs_rename_dir(struct kobject *, const char *new_name); extern int __attribute__((warn_unused_result)) sysfs_create_file(struct kobject *, const struct attribute *); extern int __attribute__((warn_unused_result)) sysfs_update_file(struct kobject *, const struct attribute *); extern int __attribute__((warn_unused_result)) sysfs_chmod_file(struct kobject *kobj, struct attribute *attr, mode_t mode); extern void sysfs_remove_file(struct kobject *, const struct attribute *); extern int __attribute__((warn_unused_result)) sysfs_create_link(struct kobject * kobj, struct kobject * target, const char * name); extern void sysfs_remove_link(struct kobject *, const char * name); int __attribute__((warn_unused_result)) sysfs_create_bin_file(struct kobject *kobj, struct bin_attribute *attr); void sysfs_remove_bin_file(struct kobject *kobj, struct bin_attribute *attr); int __attribute__((warn_unused_result)) sysfs_create_group(struct kobject *, const struct attribute_group *); void sysfs_remove_group(struct kobject *, const struct attribute_group *); void sysfs_notify(struct kobject * k, char *dir, char *attr); extern int __attribute__((warn_unused_result)) sysfs_init(void); # 23 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kobject.h" 2 # 35 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kobject.h" extern char uevent_helper[]; extern u64 uevent_seqnum; typedef int kobject_action_t; enum kobject_action { KOBJ_ADD = ( kobject_action_t) 0x01, KOBJ_REMOVE = ( kobject_action_t) 0x02, KOBJ_CHANGE = ( kobject_action_t) 0x03, KOBJ_MOUNT = ( kobject_action_t) 0x04, KOBJ_UMOUNT = ( kobject_action_t) 0x05, KOBJ_OFFLINE = ( kobject_action_t) 0x06, KOBJ_ONLINE = ( kobject_action_t) 0x07, }; struct kobject { const char * k_name; char name[20]; struct kref kref; struct list_head entry; struct kobject * parent; struct kset * kset; struct kobj_type * ktype; struct dentry * dentry; wait_queue_head_t poll; }; extern int kobject_set_name(struct kobject *, const char *, ...) __attribute__((format(printf,2,3))); static inline __attribute__((always_inline)) const char * kobject_name(const struct kobject * kobj) { return kobj->k_name; } extern void kobject_init(struct kobject *); extern void kobject_cleanup(struct kobject *); extern int __attribute__((warn_unused_result)) kobject_add(struct kobject *); extern void kobject_del(struct kobject *); extern int __attribute__((warn_unused_result)) kobject_rename(struct kobject *, const char *new_name); extern int __attribute__((warn_unused_result)) kobject_register(struct kobject *); extern void kobject_unregister(struct kobject *); extern struct kobject * kobject_get(struct kobject *); extern void kobject_put(struct kobject *); extern struct kobject *kobject_add_dir(struct kobject *, const char *); extern char * kobject_get_path(struct kobject *, gfp_t); struct kobj_type { void (*release)(struct kobject *); struct sysfs_ops * sysfs_ops; struct attribute ** default_attrs; }; # 114 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kobject.h" struct kset_uevent_ops { int (*filter)(struct kset *kset, struct kobject *kobj); const char *(*name)(struct kset *kset, struct kobject *kobj); int (*uevent)(struct kset *kset, struct kobject *kobj, char **envp, int num_envp, char *buffer, int buffer_size); }; struct kset { struct subsystem * subsys; struct kobj_type * ktype; struct list_head list; spinlock_t list_lock; struct kobject kobj; struct kset_uevent_ops * uevent_ops; }; extern void kset_init(struct kset * k); extern int __attribute__((warn_unused_result)) kset_add(struct kset * k); extern int __attribute__((warn_unused_result)) kset_register(struct kset * k); extern void kset_unregister(struct kset * k); static inline __attribute__((always_inline)) struct kset * to_kset(struct kobject * kobj) { return kobj ? ({ const typeof( ((struct kset *)0)->kobj ) *__mptr = (kobj); (struct kset *)( (char *)__mptr - __builtin_offsetof(struct kset,kobj) );}) : ((void *)0); } static inline __attribute__((always_inline)) struct kset * kset_get(struct kset * k) { return k ? to_kset(kobject_get(&k->kobj)) : ((void *)0); } static inline __attribute__((always_inline)) void kset_put(struct kset * k) { kobject_put(&k->kobj); } static inline __attribute__((always_inline)) struct kobj_type * get_ktype(struct kobject * k) { if (k->kset && k->kset->ktype) return k->kset->ktype; else return k->ktype; } extern struct kobject * kset_find_obj(struct kset *, const char *); # 170 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kobject.h" struct subsystem { struct kset kset; struct rw_semaphore rwsem; }; # 193 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kobject.h" extern struct subsystem kernel_subsys; extern struct subsystem hypervisor_subsys; # 242 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kobject.h" extern void subsystem_init(struct subsystem *); extern int __attribute__((warn_unused_result)) subsystem_register(struct subsystem *); extern void subsystem_unregister(struct subsystem *); static inline __attribute__((always_inline)) struct subsystem * subsys_get(struct subsystem * s) { return s ? ({ const typeof( ((struct subsystem *)0)->kset ) *__mptr = (kset_get(&s->kset)); (struct subsystem *)( (char *)__mptr - __builtin_offsetof(struct subsystem,kset) );}) : ((void *)0); } static inline __attribute__((always_inline)) void subsys_put(struct subsystem * s) { kset_put(&s->kset); } struct subsys_attribute { struct attribute attr; ssize_t (*show)(struct subsystem *, char *); ssize_t (*store)(struct subsystem *, const char *, size_t); }; extern int __attribute__((warn_unused_result)) subsys_create_file(struct subsystem * , struct subsys_attribute *); void kobject_uevent(struct kobject *kobj, enum kobject_action action); int add_uevent_var(char **envp, int num_envp, int *cur_index, char *buffer, int buffer_size, int *cur_len, const char *format, ...) __attribute__((format (printf, 7, 8))); # 25 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sysdev.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pm.h" 1 # 34 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pm.h" typedef int pm_request_t; # 43 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pm.h" typedef int pm_dev_t; # 56 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pm.h" enum { PM_SYS_UNKNOWN = 0x00000000, PM_SYS_KBC = 0x41d00303, PM_SYS_COM = 0x41d00500, PM_SYS_IRDA = 0x41d00510, PM_SYS_FDC = 0x41d00700, PM_SYS_VGA = 0x41d00900, PM_SYS_PCMCIA = 0x41d00e00, }; # 75 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pm.h" struct pm_dev; typedef int (*pm_callback)(struct pm_dev *dev, pm_request_t rqst, void *data); struct pm_dev { pm_dev_t type; unsigned long id; pm_callback callback; void *data; unsigned long flags; unsigned long state; unsigned long prev_state; struct list_head entry; }; extern void (*pm_idle)(void); extern void (*pm_power_off)(void); typedef int suspend_state_t; typedef int suspend_disk_method_t; struct pm_ops { suspend_disk_method_t pm_disk_mode; int (*valid)(suspend_state_t state); int (*prepare)(suspend_state_t state); int (*enter)(suspend_state_t state); int (*finish)(suspend_state_t state); }; extern void pm_set_ops(struct pm_ops *); extern struct pm_ops *pm_ops; extern int pm_suspend(suspend_state_t state); struct device; typedef struct pm_message { int event; } pm_message_t; # 203 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pm.h" struct dev_pm_info { pm_message_t power_state; unsigned can_wakeup:1; }; extern void device_pm_set_parent(struct device * dev, struct device * parent); extern int device_power_down(pm_message_t state); extern void device_power_up(void); extern void device_resume(void); # 243 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pm.h" static inline __attribute__((always_inline)) int device_suspend(pm_message_t state) { return 0; } static inline __attribute__((always_inline)) int dpm_runtime_suspend(struct device * dev, pm_message_t state) { return 0; } static inline __attribute__((always_inline)) void dpm_runtime_resume(struct device * dev) { } # 26 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sysdev.h" 2 struct sys_device; struct sysdev_class { struct list_head drivers; int (*shutdown)(struct sys_device *); int (*suspend)(struct sys_device *, pm_message_t state); int (*resume)(struct sys_device *); struct kset kset; }; struct sysdev_class_attribute { struct attribute attr; ssize_t (*show)(struct sysdev_class *, char *); ssize_t (*store)(struct sysdev_class *, const char *, size_t); }; # 54 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sysdev.h" extern int sysdev_class_register(struct sysdev_class *); extern void sysdev_class_unregister(struct sysdev_class *); extern int sysdev_class_create_file(struct sysdev_class *, struct sysdev_class_attribute *); extern void sysdev_class_remove_file(struct sysdev_class *, struct sysdev_class_attribute *); struct sysdev_driver { struct list_head entry; int (*add)(struct sys_device *); int (*remove)(struct sys_device *); int (*shutdown)(struct sys_device *); int (*suspend)(struct sys_device *, pm_message_t state); int (*resume)(struct sys_device *); }; extern int sysdev_driver_register(struct sysdev_class *, struct sysdev_driver *); extern void sysdev_driver_unregister(struct sysdev_class *, struct sysdev_driver *); struct sys_device { u32 id; struct sysdev_class * cls; struct kobject kobj; }; extern int sysdev_register(struct sys_device *); extern void sysdev_unregister(struct sys_device *); struct sysdev_attribute { struct attribute attr; ssize_t (*show)(struct sys_device *, char *); ssize_t (*store)(struct sys_device *, const char *, size_t); }; # 108 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sysdev.h" extern int sysdev_create_file(struct sys_device *, struct sysdev_attribute *); extern void sysdev_remove_file(struct sys_device *, struct sysdev_attribute *); # 1608 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2 extern int sched_mc_power_savings, sched_smt_power_savings; extern struct sysdev_attribute attr_sched_mc_power_savings, attr_sched_smt_power_savings; extern int sched_create_sysfs_power_savings_entries(struct sysdev_class *cls); extern void normalize_rt_tasks(void); # 1682 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" static inline __attribute__((always_inline)) int frozen(struct task_struct *p) { return 0; } static inline __attribute__((always_inline)) int freezing(struct task_struct *p) { return 0; } static inline __attribute__((always_inline)) void freeze(struct task_struct *p) { do { printk("kernel BUG at %s:%d!\n", "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h", 1684); *(volatile int *)0 = 0; } while (0); } static inline __attribute__((always_inline)) int thaw_process(struct task_struct *p) { return 1; } static inline __attribute__((always_inline)) void frozen_process(struct task_struct *p) { do { printk("kernel BUG at %s:%d!\n", "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h", 1686); *(volatile int *)0 = 0; } while (0); } static inline __attribute__((always_inline)) void refrigerator(void) {} static inline __attribute__((always_inline)) int freeze_processes(void) { do { printk("kernel BUG at %s:%d!\n", "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h", 1689); *(volatile int *)0 = 0; } while (0); return 0; } static inline __attribute__((always_inline)) void thaw_processes(void) {} static inline __attribute__((always_inline)) int try_to_freeze(void) { return 0; } # 10 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/module.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/stat.h" 1 # 1 "include2/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 st_atime_nsec; unsigned long st_mtime; unsigned long st_mtime_nsec; unsigned long st_ctime; unsigned long st_ctime_nsec; unsigned long __unused4; unsigned long __unused5; }; struct stat64 { unsigned long long st_dev; unsigned char __pad0[4]; unsigned long st_ino; unsigned int st_mode; unsigned int st_nlink; unsigned long st_uid; unsigned long st_gid; unsigned long long st_rdev; unsigned char __pad3[4]; long long st_size; unsigned long st_blksize; unsigned long long st_blocks; unsigned long st_atime; unsigned long st_atime_nsec; unsigned long st_mtime; unsigned long st_mtime_nsec; unsigned long st_ctime; unsigned long st_ctime_nsec; unsigned long __unused1; unsigned long __unused2; }; # 7 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/stat.h" 2 # 59 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/stat.h" struct kstat { u64 ino; dev_t dev; umode_t mode; unsigned int nlink; uid_t uid; gid_t gid; dev_t rdev; loff_t size; struct timespec atime; struct timespec mtime; struct timespec ctime; unsigned long blksize; unsigned long long blocks; }; # 13 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/module.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kmod.h" 1 # 33 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kmod.h" static inline __attribute__((always_inline)) int request_module(const char * name, ...) { return -38; } struct key; extern int call_usermodehelper_keys(char *path, char *argv[], char *envp[], struct key *session_keyring, int wait); static inline __attribute__((always_inline)) int call_usermodehelper(char *path, char **argv, char **envp, int wait) { return call_usermodehelper_keys(path, argv, envp, ((void *)0), wait); } extern void usermodehelper_init(void); struct file; extern int call_usermodehelper_pipe(char *path, char *argv[], char *envp[], struct file **filp); # 16 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/module.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/elf.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/elf-em.h" 1 # 7 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/elf.h" 2 # 1 "include2/asm/elf.h" 1 # 1 "include2/asm/user.h" 1 # 30 "include2/asm/user.h" struct user_fpu_struct { unsigned long fp_regs[16]; unsigned long xfp_regs[16]; unsigned long fpscr; unsigned long fpul; }; struct user { struct pt_regs regs; struct user_fpu_struct fpu; int u_fpvalid; size_t u_tsize; size_t u_dsize; size_t u_ssize; unsigned long start_code; unsigned long start_data; unsigned long start_stack; long int signal; struct regs * u_ar0; struct user_fpu_struct* u_fpstate; unsigned long magic; char u_comm[32]; }; # 7 "include2/asm/elf.h" 2 # 53 "include2/asm/elf.h" typedef unsigned long elf_greg_t; typedef elf_greg_t elf_gregset_t[(sizeof (struct pt_regs) / sizeof(elf_greg_t))]; typedef struct user_fpu_struct elf_fpregset_t; # 115 "include2/asm/elf.h" struct task_struct; extern int dump_task_regs (struct task_struct *, elf_gregset_t *); extern int dump_task_fpu (struct task_struct *, elf_fpregset_t *); # 126 "include2/asm/elf.h" struct linux_binprm; extern int arch_setup_additional_pages(struct linux_binprm *bprm, int executable_stack); extern unsigned int vdso_enabled; extern void __kernel_vsyscall; # 8 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/elf.h" 2 # 17 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/elf.h" typedef __u32 Elf32_Addr; typedef __u16 Elf32_Half; typedef __u32 Elf32_Off; typedef __s32 Elf32_Sword; typedef __u32 Elf32_Word; typedef __u64 Elf64_Addr; typedef __u16 Elf64_Half; typedef __s16 Elf64_SHalf; typedef __u64 Elf64_Off; typedef __s32 Elf64_Sword; typedef __u32 Elf64_Word; typedef __u64 Elf64_Xword; typedef __s64 Elf64_Sxword; # 107 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/elf.h" typedef struct dynamic{ Elf32_Sword d_tag; union{ Elf32_Sword d_val; Elf32_Addr d_ptr; } d_un; } Elf32_Dyn; typedef struct { Elf64_Sxword d_tag; union { Elf64_Xword d_val; Elf64_Addr d_ptr; } d_un; } Elf64_Dyn; # 130 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/elf.h" typedef struct elf32_rel { Elf32_Addr r_offset; Elf32_Word r_info; } Elf32_Rel; typedef struct elf64_rel { Elf64_Addr r_offset; Elf64_Xword r_info; } Elf64_Rel; typedef struct elf32_rela{ Elf32_Addr r_offset; Elf32_Word r_info; Elf32_Sword r_addend; } Elf32_Rela; typedef struct elf64_rela { Elf64_Addr r_offset; Elf64_Xword r_info; Elf64_Sxword r_addend; } Elf64_Rela; typedef struct elf32_sym{ Elf32_Word st_name; Elf32_Addr st_value; Elf32_Word st_size; unsigned char st_info; unsigned char st_other; Elf32_Half st_shndx; } Elf32_Sym; typedef struct elf64_sym { Elf64_Word st_name; unsigned char st_info; unsigned char st_other; Elf64_Half st_shndx; Elf64_Addr st_value; Elf64_Xword st_size; } Elf64_Sym; typedef struct elf32_hdr{ unsigned char e_ident[16]; Elf32_Half e_type; Elf32_Half e_machine; Elf32_Word e_version; Elf32_Addr e_entry; Elf32_Off e_phoff; Elf32_Off e_shoff; Elf32_Word e_flags; Elf32_Half e_ehsize; Elf32_Half e_phentsize; Elf32_Half e_phnum; Elf32_Half e_shentsize; Elf32_Half e_shnum; Elf32_Half e_shstrndx; } Elf32_Ehdr; typedef struct elf64_hdr { unsigned char e_ident[16]; Elf64_Half e_type; Elf64_Half e_machine; Elf64_Word e_version; Elf64_Addr e_entry; Elf64_Off e_phoff; Elf64_Off e_shoff; Elf64_Word e_flags; Elf64_Half e_ehsize; Elf64_Half e_phentsize; Elf64_Half e_phnum; Elf64_Half e_shentsize; Elf64_Half e_shnum; Elf64_Half e_shstrndx; } Elf64_Ehdr; typedef struct elf32_phdr{ Elf32_Word p_type; Elf32_Off p_offset; Elf32_Addr p_vaddr; Elf32_Addr p_paddr; Elf32_Word p_filesz; Elf32_Word p_memsz; Elf32_Word p_flags; Elf32_Word p_align; } Elf32_Phdr; typedef struct elf64_phdr { Elf64_Word p_type; Elf64_Word p_flags; Elf64_Off p_offset; Elf64_Addr p_vaddr; Elf64_Addr p_paddr; Elf64_Xword p_filesz; Elf64_Xword p_memsz; Elf64_Xword p_align; } Elf64_Phdr; # 269 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/elf.h" typedef struct { Elf32_Word sh_name; Elf32_Word sh_type; Elf32_Word sh_flags; Elf32_Addr sh_addr; Elf32_Off sh_offset; Elf32_Word sh_size; Elf32_Word sh_link; Elf32_Word sh_info; Elf32_Word sh_addralign; Elf32_Word sh_entsize; } Elf32_Shdr; typedef struct elf64_shdr { Elf64_Word sh_name; Elf64_Word sh_type; Elf64_Xword sh_flags; Elf64_Addr sh_addr; Elf64_Off sh_offset; Elf64_Xword sh_size; Elf64_Word sh_link; Elf64_Word sh_info; Elf64_Xword sh_addralign; Elf64_Xword sh_entsize; } Elf64_Shdr; # 342 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/elf.h" typedef struct elf32_note { Elf32_Word n_namesz; Elf32_Word n_descsz; Elf32_Word n_type; } Elf32_Nhdr; typedef struct elf64_note { Elf64_Word n_namesz; Elf64_Word n_descsz; Elf64_Word n_type; } Elf64_Nhdr; extern Elf32_Dyn _DYNAMIC []; # 17 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/module.h" 2 # 1 "include2/asm/local.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/local.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hardirq.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/smp_lock.h" 1 # 6 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hardirq.h" 2 # 1 "include2/asm/hardirq.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq.h" 1 # 20 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irqreturn.h" 1 # 19 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irqreturn.h" typedef int irqreturn_t; # 21 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq.h" 2 # 1 "include2/asm/irq.h" 1 # 14 "include2/asm/irq.h" # 1 "include2/asm/machvec.h" 1 # 15 "include2/asm/machvec.h" # 1 "include/asm/machtypes.h" 1 # 16 "include2/asm/machvec.h" 2 # 1 "include2/asm/machvec_init.h" 1 # 17 "include2/asm/machvec.h" 2 struct device; struct sh_machine_vector { void (*mv_setup)(char **cmdline_p); const char *mv_name; int mv_nr_irqs; u8 (*mv_inb)(unsigned long); u16 (*mv_inw)(unsigned long); u32 (*mv_inl)(unsigned long); void (*mv_outb)(u8, unsigned long); void (*mv_outw)(u16, unsigned long); void (*mv_outl)(u32, unsigned long); u8 (*mv_inb_p)(unsigned long); u16 (*mv_inw_p)(unsigned long); u32 (*mv_inl_p)(unsigned long); void (*mv_outb_p)(u8, unsigned long); void (*mv_outw_p)(u16, unsigned long); void (*mv_outl_p)(u32, unsigned long); void (*mv_insb)(unsigned long, void *dst, unsigned long count); void (*mv_insw)(unsigned long, void *dst, unsigned long count); void (*mv_insl)(unsigned long, void *dst, unsigned long count); void (*mv_outsb)(unsigned long, const void *src, unsigned long count); void (*mv_outsw)(unsigned long, const void *src, unsigned long count); void (*mv_outsl)(unsigned long, const void *src, unsigned long count); u8 (*mv_readb)(void *); u16 (*mv_readw)(void *); u32 (*mv_readl)(void *); void (*mv_writeb)(u8, void *); void (*mv_writew)(u16, void *); void (*mv_writel)(u32, void *); int (*mv_irq_demux)(int irq); void (*mv_init_irq)(void); void (*mv_init_pci)(void); void (*mv_heartbeat)(void); void *(*mv_consistent_alloc)(struct device *, size_t, dma_addr_t *, gfp_t); int (*mv_consistent_free)(struct device *, size_t, void *, dma_addr_t); void *(*mv_ioport_map)(unsigned long port, unsigned int size); void (*mv_ioport_unmap)(void *); }; extern struct sh_machine_vector sh_mv; # 15 "include2/asm/irq.h" 2 # 340 "include2/asm/irq.h" extern void disable_irq(unsigned int); extern void disable_irq_nosync(unsigned int); extern void enable_irq(unsigned int); extern void make_maskreg_irq(unsigned int irq); extern unsigned short *irq_mask_register; void init_IRQ_pint(void); extern void make_ipr_irq(unsigned int irq, unsigned int addr, int pos, int priority); extern void make_imask_irq(unsigned int irq); # 706 "include2/asm/irq.h" struct intc2_data { unsigned short irq; unsigned char ipr_offset, ipr_shift; unsigned char msk_offset, msk_shift; unsigned char priority; }; void make_intc2_irq(struct intc2_data *); void init_IRQ_intc2(void); extern int shmse_irq_demux(int irq); static inline __attribute__((always_inline)) int generic_irq_demux(int irq) { return irq; } # 23 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq.h" 2 # 1 "include2/asm/irq_regs.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/irq_regs.h" 1 # 21 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/irq_regs.h" extern __typeof__(struct pt_regs *) per_cpu____irq_regs; static inline __attribute__((always_inline)) struct pt_regs *get_irq_regs(void) { return per_cpu____irq_regs; } static inline __attribute__((always_inline)) struct pt_regs *set_irq_regs(struct pt_regs *new_regs) { struct pt_regs *old_regs, **pp_regs = &per_cpu____irq_regs; old_regs = *pp_regs; *pp_regs = new_regs; return old_regs; } # 1 "include2/asm/irq_regs.h" 2 # 25 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq.h" 2 struct irq_desc; typedef void (*irq_flow_handler_t)(unsigned int irq, struct irq_desc *desc); # 70 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq.h" struct proc_dir_entry; # 94 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq.h" struct irq_chip { const char *name; 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 (*mask)(unsigned int irq); void (*mask_ack)(unsigned int irq); void (*unmask)(unsigned int irq); void (*eoi)(unsigned int irq); void (*end)(unsigned int irq); void (*set_affinity)(unsigned int irq, cpumask_t dest); int (*retrigger)(unsigned int irq); int (*set_type)(unsigned int irq, unsigned int flow_type); int (*set_wake)(unsigned int irq, unsigned int on); # 121 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq.h" const char *typename; }; # 147 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq.h" struct irq_desc { irq_flow_handler_t handle_irq; struct irq_chip *chip; void *handler_data; void *chip_data; struct irqaction *action; unsigned int status; unsigned int depth; unsigned int wake_depth; unsigned int irq_count; unsigned int irqs_unhandled; spinlock_t lock; # 168 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq.h" struct proc_dir_entry *dir; } __attribute__((__aligned__((1 << 5)))); extern struct irq_desc irq_desc[(112 + 0 + 122)]; typedef struct irq_chip hw_irq_controller; typedef struct irq_desc irq_desc_t; # 1 "include2/asm/hw_irq.h" 1 extern atomic_t irq_err_count; # 186 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq.h" 2 extern int setup_irq(unsigned int irq, struct irqaction *new); # 201 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq.h" static inline __attribute__((always_inline)) void set_native_irq_info(int irq, cpumask_t mask) { } # 244 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq.h" static inline __attribute__((always_inline)) void set_balance_irq_affinity(unsigned int irq, cpumask_t mask) { } static inline __attribute__((always_inline)) int select_smp_affinity(unsigned int irq) { return 1; } extern int no_irq_affinity; extern int handle_IRQ_event(unsigned int irq, struct irqaction *action); extern void handle_level_irq(unsigned int irq, struct irq_desc *desc); extern void handle_fasteoi_irq(unsigned int irq, struct irq_desc *desc); extern void handle_edge_irq(unsigned int irq, struct irq_desc *desc); extern void handle_simple_irq(unsigned int irq, struct irq_desc *desc); extern void handle_percpu_irq(unsigned int irq, struct irq_desc *desc); extern void handle_bad_irq(unsigned int irq, struct irq_desc *desc); extern const char *handle_irq_name(irq_flow_handler_t handle); extern unsigned int __do_IRQ(unsigned int irq); # 294 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq.h" static inline __attribute__((always_inline)) void generic_handle_irq(unsigned int irq) { struct irq_desc *desc = irq_desc + irq; if (__builtin_expect(!!(desc->handle_irq), 1)) desc->handle_irq(irq, desc); else __do_IRQ(irq); } extern void note_interrupt(unsigned int irq, struct irq_desc *desc, int action_ret); void check_irq_resend(struct irq_desc *desc, unsigned int irq); extern void init_irq_proc(void); extern int noirqdebug_setup(char *str); extern int can_request_irq(unsigned int irq, unsigned long irqflags); extern struct irq_chip no_irq_chip; extern struct irq_chip dummy_irq_chip; extern void set_irq_chip_and_handler(unsigned int irq, struct irq_chip *chip, irq_flow_handler_t handle); extern void __set_irq_handler(unsigned int irq, irq_flow_handler_t handle, int is_chained); static inline __attribute__((always_inline)) void set_irq_handler(unsigned int irq, irq_flow_handler_t handle) { __set_irq_handler(irq, handle, 0); } static inline __attribute__((always_inline)) void set_irq_chained_handler(unsigned int irq, irq_flow_handler_t handle) { __set_irq_handler(irq, handle, 1); } extern int create_irq(void); extern void destroy_irq(unsigned int irq); static inline __attribute__((always_inline)) int irq_has_action(unsigned int irq) { struct irq_desc *desc = irq_desc + irq; return desc->action != ((void *)0); } extern void dynamic_irq_init(unsigned int irq); extern void dynamic_irq_cleanup(unsigned int irq); extern int set_irq_chip(unsigned int irq, struct irq_chip *chip); extern int set_irq_data(unsigned int irq, void *data); extern int set_irq_chip_data(unsigned int irq, void *data); extern int set_irq_type(unsigned int irq, unsigned int type); # 6 "include2/asm/hardirq.h" 2 typedef struct { unsigned int __softirq_pending; } __attribute__((__aligned__((1 << 5)))) irq_cpustat_t; # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq_cpustat.h" 1 # 20 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq_cpustat.h" extern irq_cpustat_t irq_stat[]; # 13 "include2/asm/hardirq.h" 2 extern void ack_bad_irq(unsigned int irq); # 8 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hardirq.h" 2 # 95 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hardirq.h" struct task_struct; static inline __attribute__((always_inline)) void account_system_vtime(struct task_struct *tsk) { } # 129 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hardirq.h" extern void irq_exit(void); # 6 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/local.h" 2 # 22 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/local.h" typedef struct { atomic_long_t a; } local_t; # 5 "include2/asm/local.h" 2 # 21 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/module.h" 2 # 1 "include2/asm/module.h" 1 struct mod_arch_specific { }; # 23 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/module.h" 2 # 34 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/module.h" struct kernel_symbol { unsigned long value; const char *name; }; struct modversion_info { unsigned long crc; char name[(64 - sizeof(unsigned long))]; }; struct module; struct module_attribute { struct attribute attr; ssize_t (*show)(struct module_attribute *, struct module *, char *); ssize_t (*store)(struct module_attribute *, struct module *, const char *, size_t count); void (*setup)(struct module *, const char *); int (*test)(struct module *); void (*free)(struct module *); }; struct module_kobject { struct kobject kobj; struct module *mod; }; extern int init_module(void); extern void cleanup_module(void); struct exception_table_entry; const struct exception_table_entry * search_extable(const struct exception_table_entry *first, const struct exception_table_entry *last, unsigned long value); void sort_extable(struct exception_table_entry *start, struct exception_table_entry *finish); void sort_main_extable(void); extern struct subsystem module_subsys; # 165 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/module.h" const struct exception_table_entry *search_exception_tables(unsigned long add); struct notifier_block; # 484 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/module.h" static inline __attribute__((always_inline)) const struct exception_table_entry * search_module_extables(unsigned long addr) { return ((void *)0); } static inline __attribute__((always_inline)) struct module *module_text_address(unsigned long addr) { return ((void *)0); } static inline __attribute__((always_inline)) struct module *__module_text_address(unsigned long addr) { return ((void *)0); } static inline __attribute__((always_inline)) int is_module_address(unsigned long addr) { return 0; } static inline __attribute__((always_inline)) void __module_get(struct module *module) { } static inline __attribute__((always_inline)) int try_module_get(struct module *module) { return 1; } static inline __attribute__((always_inline)) void module_put(struct module *module) { } static inline __attribute__((always_inline)) const char *module_address_lookup(unsigned long addr, unsigned long *symbolsize, unsigned long *offset, char **modname) { return ((void *)0); } static inline __attribute__((always_inline)) struct module *module_get_kallsym(unsigned int symnum, unsigned long *value, char *type, char *name, size_t namelen) { return ((void *)0); } static inline __attribute__((always_inline)) unsigned long module_kallsyms_lookup_name(const char *name) { return 0; } static inline __attribute__((always_inline)) int is_exported(const char *name, const struct module *mod) { return 0; } static inline __attribute__((always_inline)) int register_module_notifier(struct notifier_block * nb) { return 0; } static inline __attribute__((always_inline)) int unregister_module_notifier(struct notifier_block * nb) { return 0; } static inline __attribute__((always_inline)) void print_modules(void) { } struct device_driver; struct module; static inline __attribute__((always_inline)) void module_add_driver(struct module *module, struct device_driver *driver) { } static inline __attribute__((always_inline)) void module_remove_driver(struct device_driver *driver) { } # 21 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" 1 # 9 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/limits.h" 1 # 10 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ioctl.h" 1 # 1 "include2/asm/ioctl.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/ioctl.h" 1 # 51 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/ioctl.h" extern unsigned int __invalid_size_argument_for_IOC; # 1 "include2/asm/ioctl.h" 2 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ioctl.h" 2 # 11 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" 2 # 35 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/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; extern int get_max_files(void); struct inodes_stat_t { int nr_inodes; int nr_unused; int dummy[5]; }; extern struct inodes_stat_t inodes_stat; extern int leases_enable, lease_break_time; extern int dir_notify_enable; # 270 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kdev_t.h" 1 # 21 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kdev_t.h" static inline __attribute__((always_inline)) int old_valid_dev(dev_t dev) { return ((unsigned int) ((dev) >> 20)) < 256 && ((unsigned int) ((dev) & ((1U << 20) - 1))) < 256; } static inline __attribute__((always_inline)) u16 old_encode_dev(dev_t dev) { return (((unsigned int) ((dev) >> 20)) << 8) | ((unsigned int) ((dev) & ((1U << 20) - 1))); } static inline __attribute__((always_inline)) dev_t old_decode_dev(u16 val) { return ((((val >> 8) & 255) << 20) | (val & 255)); } static inline __attribute__((always_inline)) int new_valid_dev(dev_t dev) { return 1; } static inline __attribute__((always_inline)) u32 new_encode_dev(dev_t dev) { unsigned major = ((unsigned int) ((dev) >> 20)); unsigned minor = ((unsigned int) ((dev) & ((1U << 20) - 1))); return (minor & 0xff) | (major << 8) | ((minor & ~0xff) << 12); } static inline __attribute__((always_inline)) dev_t new_decode_dev(u32 dev) { unsigned major = (dev & 0xfff00) >> 8; unsigned minor = (dev & 0xff) | ((dev >> 12) & 0xfff00); return (((major) << 20) | (minor)); } static inline __attribute__((always_inline)) int huge_valid_dev(dev_t dev) { return 1; } static inline __attribute__((always_inline)) u64 huge_encode_dev(dev_t dev) { return new_encode_dev(dev); } static inline __attribute__((always_inline)) dev_t huge_decode_dev(u64 dev) { return new_decode_dev(dev); } static inline __attribute__((always_inline)) int sysv_valid_dev(dev_t dev) { return ((unsigned int) ((dev) >> 20)) < (1<<14) && ((unsigned int) ((dev) & ((1U << 20) - 1))) < (1<<18); } static inline __attribute__((always_inline)) u32 sysv_encode_dev(dev_t dev) { return ((unsigned int) ((dev) & ((1U << 20) - 1))) | (((unsigned int) ((dev) >> 20)) << 18); } static inline __attribute__((always_inline)) unsigned sysv_major(u32 dev) { return (dev >> 18) & 0x3fff; } static inline __attribute__((always_inline)) unsigned sysv_minor(u32 dev) { return dev & 0x3ffff; } # 271 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dcache.h" 1 # 12 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dcache.h" struct nameidata; struct vfsmount; # 33 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dcache.h" struct qstr { unsigned int hash; unsigned int len; const unsigned char *name; }; 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 __attribute__((always_inline)) unsigned long partial_name_hash(unsigned long c, unsigned long prevhash) { return (prevhash + (c << 4) + (c >> 4)) * 11; } static inline __attribute__((always_inline)) unsigned long end_name_hash(unsigned long hash) { return (unsigned int) hash; } static inline __attribute__((always_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 dcookie_struct; struct dentry { atomic_t d_count; unsigned int d_flags; spinlock_t d_lock; struct inode *d_inode; struct hlist_node d_hash; struct dentry *d_parent; struct qstr d_name; struct list_head d_lru; union { struct list_head d_child; struct rcu_head d_rcu; } d_u; struct list_head d_subdirs; struct list_head d_alias; unsigned long d_time; struct dentry_operations *d_op; struct super_block *d_sb; void *d_fsdata; int d_mounted; unsigned char d_iname[36]; }; enum dentry_d_lock_class { DENTRY_D_LOCK_NORMAL, DENTRY_D_LOCK_NESTED }; struct dentry_operations { int (*d_revalidate)(struct dentry *, struct nameidata *); 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 *); }; # 179 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dcache.h" extern spinlock_t dcache_lock; # 197 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dcache.h" static inline __attribute__((always_inline)) void __d_drop(struct dentry *dentry) { if (!(dentry->d_flags & 0x0010)) { dentry->d_flags |= 0x0010; hlist_del_rcu(&dentry->d_hash); } } static inline __attribute__((always_inline)) void d_drop(struct dentry *dentry) { do { do { } while (0); (void)0; (void)(&dcache_lock); } while (0); do { do { } while (0); (void)0; (void)(&dentry->d_lock); } while (0); __d_drop(dentry); do { do { } while (0); (void)0; (void)(&dentry->d_lock); } while (0); do { do { } while (0); (void)0; (void)(&dcache_lock); } while (0); } static inline __attribute__((always_inline)) int dname_external(struct dentry *dentry) { return dentry->d_name.name != dentry->d_iname; } extern void d_instantiate(struct dentry *, struct inode *); extern struct dentry * d_instantiate_unique(struct dentry *, struct inode *); extern struct dentry * d_materialise_unique(struct dentry *, struct inode *); extern void d_delete(struct dentry *); extern struct dentry * d_alloc(struct dentry *, const struct qstr *); extern struct dentry * d_alloc_anon(struct inode *); extern struct dentry * d_splice_alias(struct inode *, struct dentry *); extern void shrink_dcache_sb(struct super_block *); extern void shrink_dcache_parent(struct dentry *); extern void shrink_dcache_for_umount(struct super_block *); extern int d_invalidate(struct dentry *); 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 *); # 262 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dcache.h" static inline __attribute__((always_inline)) void d_add(struct dentry *entry, struct inode *inode) { d_instantiate(entry, inode); d_rehash(entry); } # 276 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dcache.h" static inline __attribute__((always_inline)) struct dentry *d_add_unique(struct dentry *entry, struct inode *inode) { struct dentry *res; res = d_instantiate_unique(entry, inode); d_rehash(res != ((void *)0) ? res : entry); return res; } extern void d_move(struct dentry *, struct dentry *); extern struct dentry * d_lookup(struct dentry *, struct qstr *); extern struct dentry * __d_lookup(struct dentry *, struct qstr *); extern struct dentry * d_hash_and_lookup(struct dentry *, struct qstr *); extern int d_validate(struct dentry *, struct dentry *); extern char * d_path(struct dentry *, struct vfsmount *, char *, int); # 313 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dcache.h" static inline __attribute__((always_inline)) struct dentry *dget(struct dentry *dentry) { if (dentry) { do { if (__builtin_expect(!!((!((&dentry->d_count)->counter))!=0), 0)) do { printk("kernel BUG at %s:%d!\n", "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dcache.h", 316); *(volatile int *)0 = 0; } while (0); } while(0); atomic_add(1,(&dentry->d_count)); } return dentry; } extern struct dentry * dget_locked(struct dentry *); # 331 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dcache.h" static inline __attribute__((always_inline)) int d_unhashed(struct dentry *dentry) { return (dentry->d_flags & 0x0010); } static inline __attribute__((always_inline)) struct dentry *dget_parent(struct dentry *dentry) { struct dentry *ret; do { do { } while (0); (void)0; (void)(&dentry->d_lock); } while (0); ret = dget(dentry->d_parent); do { do { } while (0); (void)0; (void)(&dentry->d_lock); } while (0); return ret; } extern void dput(struct dentry *); static inline __attribute__((always_inline)) int d_mountpoint(struct dentry *dentry) { return dentry->d_mounted; } extern struct vfsmount *lookup_mnt(struct vfsmount *, struct dentry *); extern struct vfsmount *__lookup_mnt(struct vfsmount *, struct dentry *, int); extern struct dentry *lookup_create(struct nameidata *nd, int is_dir); extern int sysctl_vfs_cache_pressure; # 272 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/radix-tree.h" 1 # 29 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/radix-tree.h" struct radix_tree_root { unsigned int height; gfp_t gfp_mask; struct radix_tree_node *rnode; }; # 51 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/radix-tree.h" int radix_tree_insert(struct radix_tree_root *, unsigned long, void *); void *radix_tree_lookup(struct radix_tree_root *, unsigned long); void **radix_tree_lookup_slot(struct radix_tree_root *, unsigned long); void *radix_tree_delete(struct radix_tree_root *, unsigned long); unsigned int radix_tree_gang_lookup(struct radix_tree_root *root, void **results, unsigned long first_index, unsigned int max_items); int radix_tree_preload(gfp_t gfp_mask); void radix_tree_init(void); void *radix_tree_tag_set(struct radix_tree_root *root, unsigned long index, unsigned int tag); void *radix_tree_tag_clear(struct radix_tree_root *root, unsigned long index, unsigned int tag); int radix_tree_tag_get(struct radix_tree_root *root, unsigned long index, unsigned int tag); unsigned int radix_tree_gang_lookup_tag(struct radix_tree_root *root, void **results, unsigned long first_index, unsigned int max_items, unsigned int tag); int radix_tree_tagged(struct radix_tree_root *root, unsigned int tag); static inline __attribute__((always_inline)) void radix_tree_preload_end(void) { do { } while (0); } # 277 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/prio_tree.h" 1 # 14 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/prio_tree.h" struct raw_prio_tree_node { struct prio_tree_node *left; struct prio_tree_node *right; struct prio_tree_node *parent; }; struct prio_tree_node { struct prio_tree_node *left; struct prio_tree_node *right; struct prio_tree_node *parent; unsigned long start; unsigned long last; }; struct prio_tree_root { struct prio_tree_node *prio_tree_node; unsigned short index_bits; unsigned short raw; }; struct prio_tree_iter { struct prio_tree_node *cur; unsigned long mask; unsigned long value; int size_level; struct prio_tree_root *root; unsigned long r_index; unsigned long h_index; }; static inline __attribute__((always_inline)) void prio_tree_iter_init(struct prio_tree_iter *iter, struct prio_tree_root *root, unsigned long r_index, unsigned long h_index) { iter->root = root; iter->r_index = r_index; iter->h_index = h_index; iter->cur = ((void *)0); } # 84 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/prio_tree.h" static inline __attribute__((always_inline)) int prio_tree_empty(const struct prio_tree_root *root) { return root->prio_tree_node == ((void *)0); } static inline __attribute__((always_inline)) int prio_tree_root(const struct prio_tree_node *node) { return node->parent == node; } static inline __attribute__((always_inline)) int prio_tree_left_empty(const struct prio_tree_node *node) { return node->left == node; } static inline __attribute__((always_inline)) int prio_tree_right_empty(const struct prio_tree_node *node) { return node->right == node; } struct prio_tree_node *prio_tree_replace(struct prio_tree_root *root, struct prio_tree_node *old, struct prio_tree_node *node); struct prio_tree_node *prio_tree_insert(struct prio_tree_root *root, struct prio_tree_node *node); void prio_tree_remove(struct prio_tree_root *root, struct prio_tree_node *node); struct prio_tree_node *prio_tree_next(struct prio_tree_iter *iter); # 278 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" 2 # 286 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" struct hd_geometry; struct iovec; struct nameidata; struct kiocb; struct pipe_inode_info; struct poll_table_struct; struct kstatfs; struct vm_area_struct; struct vfsmount; extern void __attribute__ ((__section__ (".init.text"))) inode_init(unsigned long); extern void __attribute__ ((__section__ (".init.text"))) inode_init_early(void); extern void __attribute__ ((__section__ (".init.text"))) mnt_init(unsigned long); extern void __attribute__ ((__section__ (".init.text"))) files_init(unsigned long); struct buffer_head; typedef int (get_block_t)(struct inode *inode, sector_t iblock, struct buffer_head *bh_result, int create); typedef void (dio_iodone_t)(struct kiocb *iocb, loff_t offset, ssize_t bytes, void *private); # 335 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/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; struct timespec ia_atime; struct timespec ia_mtime; struct timespec ia_ctime; struct file *ia_file; }; # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/quota.h" 1 # 44 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/quota.h" typedef __kernel_uid32_t qid_t; typedef __u64 qsize_t; extern spinlock_t dq_data_lock; # 105 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/quota.h" struct if_dqblk { __u64 dqb_bhardlimit; __u64 dqb_bsoftlimit; __u64 dqb_curspace; __u64 dqb_ihardlimit; __u64 dqb_isoftlimit; __u64 dqb_curinodes; __u64 dqb_btime; __u64 dqb_itime; __u32 dqb_valid; }; # 126 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/quota.h" struct if_dqinfo { __u64 dqi_bgrace; __u64 dqi_igrace; __u32 dqi_flags; __u32 dqi_valid; }; # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dqblk_xfs.h" 1 # 50 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dqblk_xfs.h" typedef struct fs_disk_quota { __s8 d_version; __s8 d_flags; __u16 d_fieldmask; __u32 d_id; __u64 d_blk_hardlimit; __u64 d_blk_softlimit; __u64 d_ino_hardlimit; __u64 d_ino_softlimit; __u64 d_bcount; __u64 d_icount; __s32 d_itimer; __s32 d_btimer; __u16 d_iwarns; __u16 d_bwarns; __s32 d_padding2; __u64 d_rtb_hardlimit; __u64 d_rtb_softlimit; __u64 d_rtbcount; __s32 d_rtbtimer; __u16 d_rtbwarns; __s16 d_padding3; char d_padding4[8]; } fs_disk_quota_t; # 137 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dqblk_xfs.h" typedef struct fs_qfilestat { __u64 qfs_ino; __u64 qfs_nblks; __u32 qfs_nextents; } fs_qfilestat_t; typedef struct fs_quota_stat { __s8 qs_version; __u16 qs_flags; __s8 qs_pad; fs_qfilestat_t qs_uquota; fs_qfilestat_t qs_gquota; __u32 qs_incoredqs; __s32 qs_btimelimit; __s32 qs_itimelimit; __s32 qs_rtbtimelimit; __u16 qs_bwarnlimit; __u16 qs_iwarnlimit; } fs_quota_stat_t; # 138 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/quota.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dqblk_v1.h" 1 # 21 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dqblk_v1.h" struct v1_mem_dqinfo { }; # 139 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/quota.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dqblk_v2.h" 1 # 20 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dqblk_v2.h" struct v2_mem_dqinfo { unsigned int dqi_blocks; unsigned int dqi_free_blk; unsigned int dqi_free_entry; }; # 140 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/quota.h" 2 # 151 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/quota.h" struct mem_dqblk { __u32 dqb_bhardlimit; __u32 dqb_bsoftlimit; qsize_t dqb_curspace; __u32 dqb_ihardlimit; __u32 dqb_isoftlimit; __u32 dqb_curinodes; time_t dqb_btime; time_t dqb_itime; }; struct quota_format_type; struct mem_dqinfo { struct quota_format_type *dqi_format; struct list_head dqi_dirty_list; unsigned long dqi_flags; unsigned int dqi_bgrace; unsigned int dqi_igrace; union { struct v1_mem_dqinfo v1_i; struct v2_mem_dqinfo v2_i; } u; }; struct super_block; extern void mark_info_dirty(struct super_block *sb, int type); struct dqstats { int lookups; int drops; int reads; int writes; int cache_hits; int allocated_dquots; int free_dquots; int syncs; }; extern struct dqstats dqstats; # 213 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/quota.h" struct dquot { struct hlist_node dq_hash; struct list_head dq_inuse; struct list_head dq_free; struct list_head dq_dirty; struct mutex dq_lock; atomic_t dq_count; wait_queue_head_t dq_wait_unused; struct super_block *dq_sb; unsigned int dq_id; loff_t dq_off; unsigned long dq_flags; short dq_type; struct mem_dqblk dq_dqb; }; struct quota_format_ops { int (*check_quota_file)(struct super_block *sb, int type); int (*read_file_info)(struct super_block *sb, int type); int (*write_file_info)(struct super_block *sb, int type); int (*free_file_info)(struct super_block *sb, int type); int (*read_dqblk)(struct dquot *dquot); int (*commit_dqblk)(struct dquot *dquot); int (*release_dqblk)(struct dquot *dquot); }; struct dquot_operations { int (*initialize) (struct inode *, int); int (*drop) (struct inode *); int (*alloc_space) (struct inode *, qsize_t, int); int (*alloc_inode) (const struct inode *, unsigned long); int (*free_space) (struct inode *, qsize_t); int (*free_inode) (const struct inode *, unsigned long); int (*transfer) (struct inode *, struct iattr *); int (*write_dquot) (struct dquot *); int (*acquire_dquot) (struct dquot *); int (*release_dquot) (struct dquot *); int (*mark_dirty) (struct dquot *); int (*write_info) (struct super_block *, int); }; struct quotactl_ops { int (*quota_on)(struct super_block *, int, int, char *); int (*quota_off)(struct super_block *, int); int (*quota_sync)(struct super_block *, int); int (*get_info)(struct super_block *, int, struct if_dqinfo *); int (*set_info)(struct super_block *, int, struct if_dqinfo *); int (*get_dqblk)(struct super_block *, int, qid_t, struct if_dqblk *); int (*set_dqblk)(struct super_block *, int, qid_t, struct if_dqblk *); int (*get_xstate)(struct super_block *, struct fs_quota_stat *); int (*set_xstate)(struct super_block *, unsigned int, int); int (*get_xquota)(struct super_block *, int, qid_t, struct fs_disk_quota *); int (*set_xquota)(struct super_block *, int, qid_t, struct fs_disk_quota *); }; struct quota_format_type { int qf_fmt_id; struct quota_format_ops *qf_ops; struct module *qf_owner; struct quota_format_type *qf_next; }; struct quota_info { unsigned int flags; struct mutex dqio_mutex; struct mutex dqonoff_mutex; struct rw_semaphore dqptr_sem; struct inode *files[2]; struct mem_dqinfo info[2]; struct quota_format_ops *ops[2]; }; int mark_dquot_dirty(struct dquot *dquot); # 307 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/quota.h" int register_quota_format(struct quota_format_type *fmt); void unregister_quota_format(struct quota_format_type *fmt); struct quota_module_name { int qm_fmt_id; char *qm_mod_name; }; # 357 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" 2 # 384 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" enum positive_aop_returns { AOP_WRITEPAGE_ACTIVATE = 0x80000, AOP_TRUNCATED_PAGE = 0x80001, }; struct page; struct address_space; struct writeback_control; struct address_space_operations { int (*writepage)(struct page *page, struct writeback_control *wbc); int (*readpage)(struct file *, struct page *); void (*sync_page)(struct page *); int (*writepages)(struct address_space *, struct writeback_control *); int (*set_page_dirty)(struct page *page); int (*readpages)(struct file *filp, struct address_space *mapping, struct list_head *pages, unsigned nr_pages); int (*prepare_write)(struct file *, struct page *, unsigned, unsigned); int (*commit_write)(struct file *, struct page *, unsigned, unsigned); sector_t (*bmap)(struct address_space *, sector_t); void (*invalidatepage) (struct page *, unsigned long); int (*releasepage) (struct page *, gfp_t); ssize_t (*direct_IO)(int, struct kiocb *, const struct iovec *iov, loff_t offset, unsigned long nr_segs); struct page* (*get_xip_page)(struct address_space *, sector_t, int); int (*migratepage) (struct address_space *, struct page *, struct page *); }; struct backing_dev_info; struct address_space { struct inode *host; struct radix_tree_root page_tree; rwlock_t tree_lock; unsigned int i_mmap_writable; struct prio_tree_root i_mmap; struct list_head i_mmap_nonlinear; spinlock_t i_mmap_lock; unsigned int truncate_count; unsigned long nrpages; unsigned long writeback_index; const struct address_space_operations *a_ops; unsigned long flags; struct backing_dev_info *backing_dev_info; spinlock_t private_lock; struct list_head private_list; struct address_space *assoc_mapping; } __attribute__((aligned(sizeof(long)))); struct block_device { dev_t bd_dev; struct inode * bd_inode; int bd_openers; struct mutex bd_mutex; struct mutex bd_mount_mutex; struct list_head bd_inodes; void * bd_holder; int bd_holders; struct list_head bd_holder_list; struct block_device * bd_contains; unsigned bd_block_size; struct hd_struct * bd_part; unsigned bd_part_count; int bd_invalidated; struct gendisk * bd_disk; struct list_head bd_list; struct backing_dev_info *bd_inode_backing_dev_info; unsigned long bd_private; }; # 491 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" enum bdev_bd_mutex_lock_class { BD_MUTEX_NORMAL, BD_MUTEX_WHOLE, BD_MUTEX_PARTITION }; # 506 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" int mapping_tagged(struct address_space *mapping, int tag); static inline __attribute__((always_inline)) int mapping_mapped(struct address_space *mapping) { return !prio_tree_empty(&mapping->i_mmap) || !list_empty(&mapping->i_mmap_nonlinear); } static inline __attribute__((always_inline)) int mapping_writably_mapped(struct address_space *mapping) { return mapping->i_mmap_writable != 0; } # 539 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" struct inode { struct hlist_node i_hash; struct list_head i_list; struct list_head i_sb_list; struct list_head i_dentry; unsigned long i_ino; atomic_t i_count; umode_t i_mode; unsigned int i_nlink; uid_t i_uid; gid_t i_gid; dev_t i_rdev; loff_t i_size; struct timespec i_atime; struct timespec i_mtime; struct timespec i_ctime; unsigned int i_blkbits; unsigned long i_version; blkcnt_t i_blocks; unsigned short i_bytes; spinlock_t i_lock; struct mutex i_mutex; struct rw_semaphore i_alloc_sem; struct inode_operations *i_op; const struct file_operations *i_fop; struct super_block *i_sb; struct file_lock *i_flock; struct address_space *i_mapping; struct address_space i_data; struct list_head i_devices; union { struct pipe_inode_info *i_pipe; struct block_device *i_bdev; struct cdev *i_cdev; }; int i_cindex; __u32 i_generation; unsigned long i_dnotify_mask; struct dnotify_struct *i_dnotify; struct list_head inotify_watches; struct mutex inotify_mutex; unsigned long i_state; unsigned long dirtied_when; unsigned int i_flags; atomic_t i_writecount; void *i_private; }; # 617 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" enum inode_i_mutex_lock_class { I_MUTEX_NORMAL, I_MUTEX_PARENT, I_MUTEX_CHILD, I_MUTEX_XATTR, I_MUTEX_QUOTA }; # 636 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" static inline __attribute__((always_inline)) loff_t i_size_read(struct inode *inode) { # 655 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" return inode->i_size; } static inline __attribute__((always_inline)) void i_size_write(struct inode *inode, loff_t i_size) { # 671 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" inode->i_size = i_size; } static inline __attribute__((always_inline)) unsigned iminor(struct inode *inode) { return ((unsigned int) ((inode->i_rdev) & ((1U << 20) - 1))); } static inline __attribute__((always_inline)) unsigned imajor(struct inode *inode) { return ((unsigned int) ((inode->i_rdev) >> 20)); } extern struct block_device *I_BDEV(struct inode *inode); struct fown_struct { rwlock_t lock; struct pid *pid; enum pid_type pid_type; uid_t uid, euid; int signum; }; struct file_ra_state { unsigned long start; unsigned long size; unsigned long flags; unsigned long cache_hit; unsigned long prev_page; unsigned long ahead_start; unsigned long ahead_size; unsigned long ra_pages; unsigned long mmap_hit; unsigned long mmap_miss; }; struct file { union { struct list_head fu_list; struct rcu_head fu_rcuhead; } f_u; struct dentry *f_dentry; struct vfsmount *f_vfsmnt; const struct file_operations *f_op; atomic_t f_count; unsigned int f_flags; mode_t f_mode; loff_t f_pos; struct fown_struct f_owner; unsigned int f_uid, f_gid; struct file_ra_state f_ra; unsigned long f_version; void *private_data; struct list_head f_ep_links; spinlock_t f_ep_lock; struct address_space *f_mapping; }; extern spinlock_t files_lock; # 779 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" typedef struct files_struct *fl_owner_t; struct file_lock_operations { void (*fl_insert)(struct file_lock *); void (*fl_remove)(struct file_lock *); void (*fl_copy_lock)(struct file_lock *, struct file_lock *); void (*fl_release_private)(struct file_lock *); }; struct lock_manager_operations { int (*fl_compare_owner)(struct file_lock *, struct file_lock *); void (*fl_notify)(struct file_lock *); void (*fl_copy_lock)(struct file_lock *, struct file_lock *); void (*fl_release_private)(struct file_lock *); void (*fl_break)(struct file_lock *); int (*fl_mylease)(struct file_lock *, struct file_lock *); int (*fl_change)(struct file_lock **, int); }; # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/nfs_fs_i.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/nfs.h" 1 # 39 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/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, NFSERR_SAME = 10009, NFSERR_DENIED = 10010, NFSERR_EXPIRED = 10011, NFSERR_LOCKED = 10012, NFSERR_GRACE = 10013, NFSERR_FHEXPIRED = 10014, NFSERR_SHARE_DENIED = 10015, NFSERR_WRONGSEC = 10016, NFSERR_CLID_INUSE = 10017, NFSERR_RESOURCE = 10018, NFSERR_MOVED = 10019, NFSERR_NOFILEHANDLE = 10020, NFSERR_MINOR_VERS_MISMATCH = 10021, NFSERR_STALE_CLIENTID = 10022, NFSERR_STALE_STATEID = 10023, NFSERR_OLD_STATEID = 10024, NFSERR_BAD_STATEID = 10025, NFSERR_BAD_SEQID = 10026, NFSERR_NOT_SAME = 10027, NFSERR_LOCK_RANGE = 10028, NFSERR_SYMLINK = 10029, NFSERR_RESTOREFH = 10030, NFSERR_LEASE_MOVED = 10031, NFSERR_ATTRNOTSUPP = 10032, NFSERR_NO_GRACE = 10033, NFSERR_RECLAIM_BAD = 10034, NFSERR_RECLAIM_CONFLICT = 10035, NFSERR_BAD_XDR = 10036, NFSERR_LOCKS_HELD = 10037, NFSERR_OPENMODE = 10038, NFSERR_BADOWNER = 10039, NFSERR_BADCHAR = 10040, NFSERR_BADNAME = 10041, NFSERR_BAD_RANGE = 10042, NFSERR_LOCK_NOTSUPP = 10043, NFSERR_OP_ILLEGAL = 10044, NFSERR_DEADLOCK = 10045, NFSERR_FILE_OPEN = 10046, NFSERR_ADMIN_REVOKED = 10047, NFSERR_CB_PATH_DOWN = 10048, NFSERR_REPLAY_ME = 10049 }; enum nfs_ftype { NFNON = 0, NFREG = 1, NFDIR = 2, NFBLK = 3, NFCHR = 4, NFLNK = 5, NFSOCK = 6, NFBAD = 7, NFFIFO = 8 }; # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sunrpc/msg_prot.h" 1 # 18 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sunrpc/msg_prot.h" typedef u32 rpc_authflavor_t; enum rpc_auth_flavors { RPC_AUTH_NULL = 0, RPC_AUTH_UNIX = 1, RPC_AUTH_SHORT = 2, RPC_AUTH_DES = 3, RPC_AUTH_KRB = 4, RPC_AUTH_GSS = 6, RPC_AUTH_MAXFLAVOR = 8, RPC_AUTH_GSS_KRB5 = 390003, RPC_AUTH_GSS_KRB5I = 390004, RPC_AUTH_GSS_KRB5P = 390005, RPC_AUTH_GSS_LKEY = 390006, RPC_AUTH_GSS_LKEYI = 390007, RPC_AUTH_GSS_LKEYP = 390008, RPC_AUTH_GSS_SPKM = 390009, RPC_AUTH_GSS_SPKMI = 390010, RPC_AUTH_GSS_SPKMP = 390011, }; 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, RPCSEC_GSS_CREDPROBLEM = 13, RPCSEC_GSS_CTXPROBLEM = 14 }; # 104 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sunrpc/msg_prot.h" typedef __be32 rpc_fraghdr; # 131 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/nfs.h" 2 struct nfs_fh { unsigned short size; unsigned char data[128]; }; static inline __attribute__((always_inline)) int nfs_compare_fh(const struct nfs_fh *a, const struct nfs_fh *b) { return a->size != b->size || memcmp(a->data, b->data, a->size) != 0; } static inline __attribute__((always_inline)) void nfs_copy_fh(struct nfs_fh *target, const struct nfs_fh *source) { target->size = source->size; memcpy(target->data, source->data, source->size); } # 165 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/nfs.h" enum nfs3_stable_how { NFS_UNSTABLE = 0, NFS_DATA_SYNC = 1, NFS_FILE_SYNC = 2 }; # 7 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/nfs_fs_i.h" 2 struct nlm_lockowner; struct nfs_lock_info { u32 state; struct nlm_lockowner *owner; struct list_head list; }; struct nfs4_lock_state; struct nfs4_lock_info { struct nfs4_lock_state *owner; }; # 800 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" 2 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; struct fasync_struct * fl_fasync; unsigned long fl_break_time; struct file_lock_operations *fl_ops; struct lock_manager_operations *fl_lmops; union { struct nfs_lock_info nfs_fl; struct nfs4_lock_info nfs4_fl; } fl_u; }; # 832 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fcntl.h" 1 # 1 "include2/asm/fcntl.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/fcntl.h" 1 # 114 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/fcntl.h" struct flock { short l_type; short l_whence; off_t l_start; off_t l_len; pid_t l_pid; }; # 137 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/fcntl.h" struct flock64 { short l_type; short l_whence; loff_t l_start; loff_t l_len; pid_t l_pid; }; # 1 "include2/asm/fcntl.h" 2 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fcntl.h" 2 # 833 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" 2 extern int fcntl_getlk(struct file *, struct flock *); extern int fcntl_setlk(unsigned int, struct file *, unsigned int, struct flock *); extern int fcntl_getlk64(struct file *, struct flock64 *); extern int fcntl_setlk64(unsigned int, struct file *, unsigned int, struct flock64 *); extern void send_sigio(struct fown_struct *fown, int fd, int band); extern int fcntl_setlease(unsigned int fd, struct file *filp, long arg); extern int fcntl_getlease(struct file *filp); extern int do_sync_file_range(struct file *file, loff_t offset, loff_t endbyte, unsigned int flags); 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 int posix_test_lock(struct file *, struct file_lock *, struct file_lock *); extern int posix_lock_file_conf(struct file *, struct file_lock *, struct file_lock *); extern int posix_lock_file(struct file *, struct file_lock *); extern int posix_lock_file_wait(struct file *, struct file_lock *); extern int posix_unblock_lock(struct file *, struct file_lock *); extern int flock_lock_file_wait(struct file *filp, struct file_lock *fl); extern int __break_lease(struct inode *inode, unsigned int flags); extern void lease_get_mtime(struct inode *, struct timespec *time); extern int setlease(struct file *, long, struct file_lock **); extern int lease_modify(struct file_lock **, int); 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); extern int __f_setown(struct file *filp, struct pid *, enum pid_type, int force); extern int f_setown(struct file *filp, unsigned long arg, int force); extern void f_delown(struct file *filp); extern pid_t f_getown(struct file *filp); extern int send_sigurg(struct fown_struct *fown); # 900 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" extern struct list_head super_blocks; extern spinlock_t sb_lock; struct super_block { struct list_head s_list; dev_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; struct quotactl_ops *s_qcop; struct export_operations *s_export_op; unsigned long s_flags; unsigned long s_magic; struct dentry *s_root; struct rw_semaphore s_umount; struct mutex s_lock; int s_count; int s_syncing; int s_need_sync_fs; atomic_t s_active; struct xattr_handler **s_xattr; struct list_head s_inodes; struct list_head s_dirty; struct list_head s_io; struct hlist_head s_anon; struct list_head s_files; struct block_device *s_bdev; struct list_head s_instances; struct quota_info s_dquot; int s_frozen; wait_queue_head_t s_wait_unfrozen; char s_id[32]; void *s_fs_info; struct mutex s_vfs_rename_mutex; u32 s_time_gran; }; extern struct timespec current_fs_time(struct super_block *sb); enum { SB_UNFROZEN = 0, SB_FREEZE_WRITE = 1, SB_FREEZE_TRANS = 2, }; static inline __attribute__((always_inline)) void get_fs_excl(void) { atomic_add(1,(&get_current()->fs_excl)); } static inline __attribute__((always_inline)) void put_fs_excl(void) { atomic_sub(1,(&get_current()->fs_excl)); } static inline __attribute__((always_inline)) int has_fs_excl(void) { return ((&get_current()->fs_excl)->counter); } static inline __attribute__((always_inline)) void lock_super(struct super_block * sb) { get_fs_excl(); mutex_lock(&sb->s_lock); } static inline __attribute__((always_inline)) void unlock_super(struct super_block * sb) { put_fs_excl(); mutex_unlock(&sb->s_lock); } extern int vfs_permission(struct nameidata *, int); extern int vfs_create(struct inode *, struct dentry *, int, struct nameidata *); 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 *, int); 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 *); extern void dentry_unhash(struct dentry *dentry); extern int file_permission(struct file *, int); # 1046 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" int generic_osync_inode(struct inode *, struct address_space *, int); typedef int (*filldir_t)(void *, const char *, int, loff_t, u64, 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); long (*unlocked_ioctl) (struct file *, unsigned, unsigned long); long (*compat_ioctl) (struct file *, unsigned, unsigned long); int (*direct_access) (struct block_device *, sector_t, unsigned long *); int (*media_changed) (struct gendisk *); int (*revalidate_disk) (struct gendisk *); int (*getgeo)(struct block_device *, struct hd_geometry *); struct module *owner; }; # 1078 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" typedef struct { size_t written; size_t count; union { char * buf; void *data; } arg; int error; } read_descriptor_t; typedef int (*read_actor_t)(read_descriptor_t *, struct page *, unsigned long, unsigned long); # 1101 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" 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 *); ssize_t (*aio_read) (struct kiocb *, const struct iovec *, unsigned long, loff_t); ssize_t (*aio_write) (struct kiocb *, const struct iovec *, unsigned long, 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); long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long); long (*compat_ioctl) (struct file *, unsigned int, unsigned long); int (*mmap) (struct file *, struct vm_area_struct *); int (*open) (struct inode *, struct file *); int (*flush) (struct file *, fl_owner_t id); int (*release) (struct inode *, struct file *); int (*fsync) (struct file *, struct dentry *, int datasync); int (*aio_fsync) (struct kiocb *, int datasync); int (*fasync) (int, struct file *, int); int (*lock) (struct file *, int, struct file_lock *); ssize_t (*sendfile) (struct file *, loff_t *, size_t, read_actor_t, void *); 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); int (*check_flags)(int); int (*dir_notify)(struct file *filp, unsigned long arg); int (*flock) (struct file *, int, struct file_lock *); ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int); ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); }; struct inode_operations { int (*create) (struct inode *,struct dentry *,int, struct nameidata *); struct dentry * (*lookup) (struct inode *,struct dentry *, struct nameidata *); 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,dev_t); int (*rename) (struct inode *, struct dentry *, struct inode *, struct dentry *); int (*readlink) (struct dentry *, char *,int); void * (*follow_link) (struct dentry *, struct nameidata *); void (*put_link) (struct dentry *, struct nameidata *, void *); void (*truncate) (struct inode *); int (*permission) (struct inode *, int, struct nameidata *); int (*setattr) (struct dentry *, struct iattr *); int (*getattr) (struct vfsmount *mnt, struct dentry *, struct kstat *); int (*setxattr) (struct dentry *, const char *,const void *,size_t,int); ssize_t (*getxattr) (struct dentry *, const char *, void *, size_t); ssize_t (*listxattr) (struct dentry *, char *, size_t); int (*removexattr) (struct dentry *, const char *); void (*truncate_range)(struct inode *, loff_t, loff_t); }; struct seq_file; ssize_t rw_copy_check_uvector(int type, const struct iovec * uvector, unsigned long nr_segs, unsigned long fast_segs, struct iovec *fast_pointer, struct iovec **ret_pointer); extern ssize_t vfs_read(struct file *, char *, size_t, loff_t *); extern ssize_t vfs_write(struct file *, const char *, size_t, loff_t *); extern ssize_t vfs_readv(struct file *, const struct iovec *, unsigned long, loff_t *); extern ssize_t vfs_writev(struct file *, const struct iovec *, unsigned long, loff_t *); struct super_operations { struct inode *(*alloc_inode)(struct super_block *sb); void (*destroy_inode)(struct inode *); void (*read_inode) (struct inode *); void (*dirty_inode) (struct inode *); int (*write_inode) (struct inode *, int); void (*put_inode) (struct inode *); void (*drop_inode) (struct inode *); void (*delete_inode) (struct inode *); void (*put_super) (struct super_block *); void (*write_super) (struct super_block *); int (*sync_fs)(struct super_block *sb, int wait); void (*write_super_lockfs) (struct super_block *); void (*unlockfs) (struct super_block *); int (*statfs) (struct dentry *, struct kstatfs *); int (*remount_fs) (struct super_block *, int *, char *); void (*clear_inode) (struct inode *); void (*umount_begin) (struct vfsmount *, int); int (*show_options)(struct seq_file *, struct vfsmount *); int (*show_stats)(struct seq_file *, struct vfsmount *); }; # 1216 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" extern void __mark_inode_dirty(struct inode *, int); static inline __attribute__((always_inline)) void mark_inode_dirty(struct inode *inode) { __mark_inode_dirty(inode, (1 | 2 | 4)); } static inline __attribute__((always_inline)) void mark_inode_dirty_sync(struct inode *inode) { __mark_inode_dirty(inode, 1); } static inline __attribute__((always_inline)) void inc_nlink(struct inode *inode) { inode->i_nlink++; } static inline __attribute__((always_inline)) void inode_inc_link_count(struct inode *inode) { inc_nlink(inode); mark_inode_dirty(inode); } static inline __attribute__((always_inline)) void drop_nlink(struct inode *inode) { inode->i_nlink--; } static inline __attribute__((always_inline)) void clear_nlink(struct inode *inode) { inode->i_nlink = 0; } static inline __attribute__((always_inline)) void inode_dec_link_count(struct inode *inode) { drop_nlink(inode); mark_inode_dirty(inode); } extern void touch_atime(struct vfsmount *mnt, struct dentry *dentry); static inline __attribute__((always_inline)) void file_accessed(struct file *file) { if (!(file->f_flags & 01000000)) touch_atime(file->f_vfsmnt, file->f_dentry); } int sync_inode(struct inode *inode, struct writeback_control *wbc); # 1349 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" struct export_operations { struct dentry *(*decode_fh)(struct super_block *sb, __u32 *fh, int fh_len, int fh_type, int (*acceptable)(void *context, struct dentry *de), void *context); int (*encode_fh)(struct dentry *de, __u32 *fh, int *max_len, int connectable); int (*get_name)(struct dentry *parent, char *name, struct dentry *child); struct dentry * (*get_parent)(struct dentry *child); struct dentry * (*get_dentry)(struct super_block *sb, void *inump); struct dentry * (*find_exported_dentry)( struct super_block *sb, void *obj, void *parent, int (*acceptable)(void *context, struct dentry *de), void *context); }; extern struct dentry * find_exported_dentry(struct super_block *sb, void *obj, void *parent, int (*acceptable)(void *context, struct dentry *de), void *context); struct file_system_type { const char *name; int fs_flags; int (*get_sb) (struct file_system_type *, int, const char *, void *, struct vfsmount *); void (*kill_sb) (struct super_block *); struct module *owner; struct file_system_type * next; struct list_head fs_supers; struct lock_class_key s_lock_key; struct lock_class_key s_umount_key; }; extern int get_sb_bdev(struct file_system_type *fs_type, int flags, const char *dev_name, void *data, int (*fill_super)(struct super_block *, void *, int), struct vfsmount *mnt); extern int get_sb_single(struct file_system_type *fs_type, int flags, void *data, int (*fill_super)(struct super_block *, void *, int), struct vfsmount *mnt); extern int get_sb_nodev(struct file_system_type *fs_type, int flags, void *data, int (*fill_super)(struct super_block *, void *, int), struct vfsmount *mnt); void generic_shutdown_super(struct super_block *sb); void kill_block_super(struct super_block *sb); void kill_anon_super(struct super_block *sb); void kill_litter_super(struct super_block *sb); void deactivate_super(struct super_block *sb); int set_anon_super(struct super_block *s, void *data); struct super_block *sget(struct file_system_type *type, int (*test)(struct super_block *,void *), int (*set)(struct super_block *,void *), void *data); extern int get_sb_pseudo(struct file_system_type *, char *, struct super_operations *ops, unsigned long, struct vfsmount *mnt); extern int simple_set_mnt(struct vfsmount *mnt, struct super_block *sb); int __put_super(struct super_block *sb); int __put_super_and_need_restart(struct super_block *sb); void unnamed_dev_init(void); 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_tree(struct vfsmount *); extern int may_umount(struct vfsmount *); extern void umount_tree(struct vfsmount *, int, struct list_head *); extern void release_mounts(struct list_head *); extern long do_mount(char *, char *, char *, unsigned long, void *); extern struct vfsmount *copy_tree(struct vfsmount *, struct dentry *, int); extern void mnt_set_mountpoint(struct vfsmount *, struct dentry *, struct vfsmount *); extern int vfs_statfs(struct dentry *, struct kstatfs *); extern struct subsystem fs_subsys; extern int locks_mandatory_locked(struct inode *); extern int locks_mandatory_area(int, struct inode *, struct file *, loff_t, size_t); # 1455 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" static inline __attribute__((always_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; } extern int rw_verify_area(int, struct file *, loff_t *, size_t); static inline __attribute__((always_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 __attribute__((always_inline)) int break_lease(struct inode *inode, unsigned int mode) { if (inode->i_flock) return __break_lease(inode, mode); return 0; } extern int do_truncate(struct dentry *, loff_t start, unsigned int time_attrs, struct file *filp); extern long do_sys_open(int fdf, const char *filename, int flags, int mode); 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 __attribute__ ((__section__ (".init.text"))) vfs_caches_init_early(void); extern void __attribute__ ((__section__ (".init.text"))) vfs_caches_init(unsigned long); # 1509 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" extern int register_blkdev(unsigned int, const char *); extern int unregister_blkdev(unsigned int, const char *); extern struct block_device *bdget(dev_t); extern void bd_set_size(struct block_device *, loff_t size); extern void bd_forget(struct inode *inode); extern void bdput(struct block_device *); extern struct block_device *open_by_devnum(dev_t, unsigned); extern struct block_device *open_partition_by_devnum(dev_t, unsigned); extern const struct address_space_operations def_blk_aops; extern const struct file_operations def_blk_fops; extern const struct file_operations def_chr_fops; extern const struct file_operations bad_sock_fops; extern const struct file_operations def_fifo_fops; extern int ioctl_by_bdev(struct block_device *, unsigned, unsigned long); extern int blkdev_ioctl(struct inode *, struct file *, unsigned, unsigned long); extern int blkdev_driver_ioctl(struct inode *inode, struct file *file, struct gendisk *disk, unsigned cmd, unsigned long arg); extern long compat_blkdev_ioctl(struct file *, unsigned, unsigned long); extern int blkdev_get(struct block_device *, mode_t, unsigned); extern int blkdev_put(struct block_device *); extern int blkdev_put_partition(struct block_device *); extern int bd_claim(struct block_device *, void *); extern void bd_release(struct block_device *); extern int bd_claim_by_disk(struct block_device *, void *, struct gendisk *); extern void bd_release_from_disk(struct block_device *, struct gendisk *); # 1548 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" extern int alloc_chrdev_region(dev_t *, unsigned, unsigned, const char *); extern int register_chrdev_region(dev_t, unsigned, const char *); extern int register_chrdev(unsigned int, const char *, const struct file_operations *); extern int unregister_chrdev(unsigned int, const char *); extern void unregister_chrdev_region(dev_t, unsigned); extern int chrdev_open(struct inode *, struct file *); extern void chrdev_show(struct seq_file *,off_t); extern const char *__bdevname(dev_t, char *buffer); extern const char *bdevname(struct block_device *bdev, char *buffer); extern struct block_device *lookup_bdev(const char *); extern struct block_device *open_bdev_excl(const char *, int, void *); extern void close_bdev_excl(struct block_device *); extern void blkdev_show(struct seq_file *,off_t); extern void init_special_inode(struct inode *, umode_t, dev_t); extern void make_bad_inode(struct inode *); extern int is_bad_inode(struct inode *); extern const struct file_operations read_fifo_fops; extern const struct file_operations write_fifo_fops; extern const struct file_operations rdwr_fifo_fops; extern int fs_may_remount_ro(struct super_block *); # 1595 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" extern int check_disk_change(struct block_device *); extern int __invalidate_device(struct block_device *); extern int invalidate_partition(struct gendisk *, int); extern int invalidate_inodes(struct super_block *); unsigned long invalidate_mapping_pages(struct address_space *mapping, unsigned long start, unsigned long end); unsigned long invalidate_inode_pages(struct address_space *mapping); static inline __attribute__((always_inline)) void invalidate_remote_inode(struct inode *inode) { if ((((inode->i_mode) & 00170000) == 0100000) || (((inode->i_mode) & 00170000) == 0040000) || (((inode->i_mode) & 00170000) == 0120000)) invalidate_inode_pages(inode->i_mapping); } extern int invalidate_inode_pages2(struct address_space *mapping); extern int invalidate_inode_pages2_range(struct address_space *mapping, unsigned long start, unsigned long end); extern int write_inode_now(struct inode *, int); extern int filemap_fdatawrite(struct address_space *); extern int filemap_flush(struct address_space *); extern int filemap_fdatawait(struct address_space *); extern int filemap_write_and_wait(struct address_space *mapping); extern int filemap_write_and_wait_range(struct address_space *mapping, loff_t lstart, loff_t lend); extern int wait_on_page_writeback_range(struct address_space *mapping, unsigned long start, unsigned long end); extern int __filemap_fdatawrite_range(struct address_space *mapping, loff_t start, loff_t end, int sync_mode); extern long do_fsync(struct file *file, int datasync); extern void sync_supers(void); extern void sync_filesystems(int wait); extern void __fsync_super(struct super_block *sb); extern void emergency_sync(void); extern void emergency_remount(void); extern int do_remount_sb(struct super_block *sb, int flags, void *data, int force); extern sector_t bmap(struct inode *, sector_t); extern int notify_change(struct dentry *, struct iattr *); extern int permission(struct inode *, int, struct nameidata *); extern int generic_permission(struct inode *, int, int (*check_acl)(struct inode *, int)); extern int get_write_access(struct inode *); extern int deny_write_access(struct file *); static inline __attribute__((always_inline)) void put_write_access(struct inode * inode) { atomic_sub(1,(&inode->i_writecount)); } static inline __attribute__((always_inline)) void allow_write_access(struct file *file) { if (file) atomic_add(1,(&file->f_dentry->d_inode->i_writecount)); } extern int do_pipe(int *); extern struct file *create_read_pipe(struct file *f); extern struct file *create_write_pipe(void); extern void free_write_pipe(struct file *); extern int open_namei(int dfd, const char *, int, int, struct nameidata *); extern int may_open(struct nameidata *, int, int); 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 *); # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/err.h" 1 # 22 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/err.h" static inline __attribute__((always_inline)) void *ERR_PTR(long error) { return (void *) error; } static inline __attribute__((always_inline)) long PTR_ERR(const void *ptr) { return (long) ptr; } static inline __attribute__((always_inline)) long IS_ERR(const void *ptr) { return __builtin_expect(!!(((unsigned long)ptr) >= (unsigned long)-4095), 0); } # 1667 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" 2 extern loff_t default_llseek(struct file *file, loff_t offset, int origin); extern loff_t vfs_llseek(struct file *file, loff_t offset, int origin); extern void inode_init_once(struct inode *); extern void iput(struct inode *); extern struct inode * igrab(struct inode *); extern ino_t iunique(struct super_block *, ino_t); extern int inode_needs_sync(struct inode *inode); extern void generic_delete_inode(struct inode *inode); extern void generic_drop_inode(struct inode *inode); extern struct inode *ilookup5_nowait(struct super_block *sb, unsigned long hashval, int (*test)(struct inode *, void *), void *data); extern struct inode *ilookup5(struct super_block *sb, unsigned long hashval, int (*test)(struct inode *, void *), void *data); extern struct inode *ilookup(struct super_block *sb, unsigned long ino); extern struct inode * iget5_locked(struct super_block *, unsigned long, int (*test)(struct inode *, void *), int (*set)(struct inode *, void *), void *); extern struct inode * iget_locked(struct super_block *, unsigned long); extern void unlock_new_inode(struct inode *); static inline __attribute__((always_inline)) struct inode *iget(struct super_block *sb, unsigned long ino) { struct inode *inode = iget_locked(sb, ino); if (inode && (inode->i_state & 64)) { sb->s_op->read_inode(inode); unlock_new_inode(inode); } return inode; } extern void __iget(struct inode * inode); extern void clear_inode(struct inode *); extern void destroy_inode(struct inode *); extern struct inode *new_inode(struct super_block *); extern int remove_suid(struct dentry *); extern void remove_dquot_ref(struct super_block *, int, struct list_head *); extern void __insert_inode_hash(struct inode *, unsigned long hashval); extern void remove_inode_hash(struct inode *); static inline __attribute__((always_inline)) void insert_inode_hash(struct inode *inode) { __insert_inode_hash(inode, inode->i_ino); } extern struct file * get_empty_filp(void); extern void file_move(struct file *f, struct list_head *list); extern void file_kill(struct file *f); struct bio; extern void submit_bio(int, struct bio *); extern int bdev_read_only(struct block_device *); extern int set_blocksize(struct block_device *, int); extern int sb_set_blocksize(struct super_block *, int); extern int sb_min_blocksize(struct super_block *, int); extern int generic_file_mmap(struct file *, struct vm_area_struct *); extern int generic_file_readonly_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 int file_send_actor(read_descriptor_t * desc, struct page *page, unsigned long offset, unsigned long size); int generic_write_checks(struct file *file, loff_t *pos, size_t *count, int isblk); extern ssize_t generic_file_aio_read(struct kiocb *, const struct iovec *, unsigned long, loff_t); extern ssize_t generic_file_aio_write(struct kiocb *, const struct iovec *, unsigned long, loff_t); extern ssize_t generic_file_aio_write_nolock(struct kiocb *, const struct iovec *, unsigned long, loff_t); extern ssize_t generic_file_direct_write(struct kiocb *, const struct iovec *, unsigned long *, loff_t, loff_t *, size_t, size_t); extern ssize_t generic_file_buffered_write(struct kiocb *, const struct iovec *, unsigned long, loff_t, loff_t *, size_t, ssize_t); extern ssize_t do_sync_read(struct file *filp, char *buf, size_t len, loff_t *ppos); extern ssize_t do_sync_write(struct file *filp, const char *buf, size_t len, loff_t *ppos); extern ssize_t generic_file_sendfile(struct file *, loff_t *, size_t, read_actor_t, void *); extern void do_generic_mapping_read(struct address_space *mapping, struct file_ra_state *, struct file *, loff_t *, read_descriptor_t *, read_actor_t); extern ssize_t generic_file_splice_read(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); extern ssize_t generic_file_splice_write(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int); extern ssize_t generic_splice_sendpage(struct pipe_inode_info *pipe, struct file *out, loff_t *, size_t len, unsigned int flags); extern long do_splice_direct(struct file *in, loff_t *ppos, struct file *out, size_t len, unsigned int flags); extern void file_ra_state_init(struct file_ra_state *ra, struct address_space *mapping); 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 loff_t remote_llseek(struct file *file, loff_t offset, int origin); extern int generic_file_open(struct inode * inode, struct file * filp); extern int nonseekable_open(struct inode * inode, struct file * filp); # 1778 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" static inline __attribute__((always_inline)) int xip_truncate_page(struct address_space *mapping, loff_t from) { return 0; } static inline __attribute__((always_inline)) void do_generic_file_read(struct file * filp, loff_t *ppos, read_descriptor_t * desc, read_actor_t actor) { do_generic_mapping_read(filp->f_mapping, &filp->f_ra, filp, ppos, desc, actor); } ssize_t __blockdev_direct_IO(int rw, struct kiocb *iocb, struct inode *inode, struct block_device *bdev, const struct iovec *iov, loff_t offset, unsigned long nr_segs, get_block_t get_block, dio_iodone_t end_io, int lock_type); enum { DIO_LOCKING = 1, DIO_NO_LOCKING, DIO_OWN_LOCKING, }; static inline __attribute__((always_inline)) ssize_t blockdev_direct_IO(int rw, struct kiocb *iocb, struct inode *inode, struct block_device *bdev, const struct iovec *iov, loff_t offset, unsigned long nr_segs, get_block_t get_block, dio_iodone_t end_io) { return __blockdev_direct_IO(rw, iocb, inode, bdev, iov, offset, nr_segs, get_block, end_io, DIO_LOCKING); } static inline __attribute__((always_inline)) ssize_t blockdev_direct_IO_no_locking(int rw, struct kiocb *iocb, struct inode *inode, struct block_device *bdev, const struct iovec *iov, loff_t offset, unsigned long nr_segs, get_block_t get_block, dio_iodone_t end_io) { return __blockdev_direct_IO(rw, iocb, inode, bdev, iov, offset, nr_segs, get_block, end_io, DIO_NO_LOCKING); } static inline __attribute__((always_inline)) ssize_t blockdev_direct_IO_own_locking(int rw, struct kiocb *iocb, struct inode *inode, struct block_device *bdev, const struct iovec *iov, loff_t offset, unsigned long nr_segs, get_block_t get_block, dio_iodone_t end_io) { return __blockdev_direct_IO(rw, iocb, inode, bdev, iov, offset, nr_segs, get_block, end_io, DIO_OWN_LOCKING); } extern const 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 void *page_follow_link_light(struct dentry *, struct nameidata *); extern void page_put_link(struct dentry *, struct nameidata *, void *); extern int __page_symlink(struct inode *inode, const char *symname, int len, gfp_t gfp_mask); extern int page_symlink(struct inode *inode, const char *symname, int len); extern struct inode_operations page_symlink_inode_operations; extern int generic_readlink(struct dentry *, char *, int); extern void generic_fillattr(struct inode *, struct kstat *); extern int vfs_getattr(struct vfsmount *, struct dentry *, struct kstat *); void inode_add_bytes(struct inode *inode, loff_t bytes); void inode_sub_bytes(struct inode *inode, loff_t bytes); loff_t inode_get_bytes(struct inode *inode); void inode_set_bytes(struct inode *inode, loff_t bytes); extern int vfs_readdir(struct file *, filldir_t, void *); extern int vfs_stat(char *, struct kstat *); extern int vfs_lstat(char *, struct kstat *); extern int vfs_stat_fd(int dfd, char *, struct kstat *); extern int vfs_lstat_fd(int dfd, char *, struct kstat *); extern int vfs_fstat(unsigned int, struct kstat *); extern int vfs_ioctl(struct file *, unsigned int, unsigned int, unsigned long); extern struct file_system_type *get_fs_type(const char *name); extern struct super_block *get_super(struct block_device *); extern struct super_block *user_get_super(dev_t); extern void drop_super(struct super_block *sb); extern int dcache_dir_open(struct inode *, struct file *); extern int dcache_dir_close(struct inode *, struct file *); extern loff_t dcache_dir_lseek(struct file *, loff_t, int); extern int dcache_readdir(struct file *, void *, filldir_t); extern int simple_getattr(struct vfsmount *, struct dentry *, struct kstat *); extern int simple_statfs(struct dentry *, struct kstatfs *); extern int simple_link(struct dentry *, struct inode *, struct dentry *); extern int simple_unlink(struct inode *, struct dentry *); extern int simple_rmdir(struct inode *, struct dentry *); extern int simple_rename(struct inode *, struct dentry *, struct inode *, struct dentry *); extern int simple_sync_file(struct file *, struct dentry *, int); extern int simple_empty(struct dentry *); extern int simple_readpage(struct file *file, struct page *page); extern int simple_prepare_write(struct file *file, struct page *page, unsigned offset, unsigned to); extern int simple_commit_write(struct file *file, struct page *page, unsigned offset, unsigned to); extern struct dentry *simple_lookup(struct inode *, struct dentry *, struct nameidata *); extern ssize_t generic_read_dir(struct file *, char *, size_t, loff_t *); extern const struct file_operations simple_dir_operations; extern struct inode_operations simple_dir_inode_operations; struct tree_descr { char *name; const struct file_operations *ops; int mode; }; struct dentry *d_alloc_name(struct dentry *, const char *); extern int simple_fill_super(struct super_block *, int, struct tree_descr *); extern int simple_pin_fs(struct file_system_type *, struct vfsmount **mount, int *count); extern void simple_release_fs(struct vfsmount **mount, int *count); extern ssize_t simple_read_from_buffer(void *, size_t, loff_t *, const void *, size_t); # 1909 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" extern int inode_change_ok(struct inode *, struct iattr *); extern int __attribute__((warn_unused_result)) inode_setattr(struct inode *, struct iattr *); extern void file_update_time(struct file *file); static inline __attribute__((always_inline)) ino_t parent_ino(struct dentry *dentry) { ino_t res; do { do { } while (0); (void)0; (void)(&dentry->d_lock); } while (0); res = dentry->d_parent->d_inode->i_ino; do { do { } while (0); (void)0; (void)(&dentry->d_lock); } while (0); return res; } extern int unshare_files(void); struct simple_transaction_argresp { ssize_t size; char data[0]; }; char *simple_transaction_get(struct file *file, const char *buf, size_t size); ssize_t simple_transaction_read(struct file *file, char *buf, size_t size, loff_t *pos); int simple_transaction_release(struct inode *inode, struct file *file); static inline __attribute__((always_inline)) void simple_transaction_set(struct file *file, size_t n) { struct simple_transaction_argresp *ar = file->private_data; do { if (__builtin_expect(!!((n > ((1UL << 12) - sizeof(struct simple_transaction_argresp)))!=0), 0)) do { printk("kernel BUG at %s:%d!\n", "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h", 1950); *(volatile int *)0 = 0; } while (0); } while(0); __asm__ __volatile__("": : :"memory"); ar->size = n; } # 1990 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" static inline __attribute__((always_inline)) void __attribute__((format(printf, 1, 2))) __simple_attr_check_format(const char *fmt, ...) { } int simple_attr_open(struct inode *inode, struct file *file, u64 (*get)(void *), void (*set)(void *, u64), const char *fmt); int simple_attr_close(struct inode *inode, struct file *file); ssize_t simple_attr_read(struct file *file, char *buf, size_t len, loff_t *ppos); ssize_t simple_attr_write(struct file *file, const char *buf, size_t len, loff_t *ppos); # 2017 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" static inline __attribute__((always_inline)) char *alloc_secdata(void) { return (char *)1; } static inline __attribute__((always_inline)) void free_secdata(void *secdata) { } # 26 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hdreg.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ata.h" 1 # 38 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ata.h" enum { ATA_MAX_DEVICES = 2, ATA_MAX_PRD = 256, ATA_SECT_SIZE = 512, ATA_MAX_SECTORS = 256, ATA_MAX_SECTORS_LBA48 = 65535, ATA_ID_WORDS = 256, ATA_ID_SERNO_OFS = 10, ATA_ID_FW_REV_OFS = 23, ATA_ID_PROD_OFS = 27, ATA_ID_OLD_PIO_MODES = 51, ATA_ID_FIELD_VALID = 53, ATA_ID_MWDMA_MODES = 63, ATA_ID_PIO_MODES = 64, ATA_ID_EIDE_DMA_MIN = 65, ATA_ID_EIDE_PIO = 67, ATA_ID_EIDE_PIO_IORDY = 68, ATA_ID_UDMA_MODES = 88, ATA_ID_MAJOR_VER = 80, ATA_ID_PIO4 = (1 << 1), ATA_PCI_CTL_OFS = 2, ATA_SERNO_LEN = 20, ATA_UDMA0 = (1 << 0), ATA_UDMA1 = ATA_UDMA0 | (1 << 1), ATA_UDMA2 = ATA_UDMA1 | (1 << 2), ATA_UDMA3 = ATA_UDMA2 | (1 << 3), ATA_UDMA4 = ATA_UDMA3 | (1 << 4), ATA_UDMA5 = ATA_UDMA4 | (1 << 5), ATA_UDMA6 = ATA_UDMA5 | (1 << 6), ATA_UDMA7 = ATA_UDMA6 | (1 << 7), ATA_UDMA_MASK_40C = ATA_UDMA2, ATA_PRD_SZ = 8, ATA_PRD_TBL_SZ = (ATA_MAX_PRD * ATA_PRD_SZ), ATA_PRD_EOT = (1 << 31), ATA_DMA_TABLE_OFS = 4, ATA_DMA_STATUS = 2, ATA_DMA_CMD = 0, ATA_DMA_WR = (1 << 3), ATA_DMA_START = (1 << 0), ATA_DMA_INTR = (1 << 2), ATA_DMA_ERR = (1 << 1), ATA_DMA_ACTIVE = (1 << 0), ATA_HOB = (1 << 7), ATA_NIEN = (1 << 1), ATA_LBA = (1 << 6), ATA_DEV1 = (1 << 4), ATA_DEVICE_OBS = (1 << 7) | (1 << 5), ATA_DEVCTL_OBS = (1 << 3), ATA_BUSY = (1 << 7), ATA_DRDY = (1 << 6), ATA_DF = (1 << 5), ATA_DRQ = (1 << 3), ATA_ERR = (1 << 0), ATA_SRST = (1 << 2), ATA_ICRC = (1 << 7), ATA_UNC = (1 << 6), ATA_IDNF = (1 << 4), ATA_ABORTED = (1 << 2), ATA_REG_DATA = 0x00, ATA_REG_ERR = 0x01, ATA_REG_NSECT = 0x02, ATA_REG_LBAL = 0x03, ATA_REG_LBAM = 0x04, ATA_REG_LBAH = 0x05, ATA_REG_DEVICE = 0x06, ATA_REG_STATUS = 0x07, ATA_REG_FEATURE = ATA_REG_ERR, ATA_REG_CMD = ATA_REG_STATUS, ATA_REG_BYTEL = ATA_REG_LBAM, ATA_REG_BYTEH = ATA_REG_LBAH, ATA_REG_DEVSEL = ATA_REG_DEVICE, ATA_REG_IRQ = ATA_REG_NSECT, ATA_CMD_CHK_POWER = 0xE5, ATA_CMD_STANDBY = 0xE2, ATA_CMD_IDLE = 0xE3, ATA_CMD_EDD = 0x90, ATA_CMD_FLUSH = 0xE7, ATA_CMD_FLUSH_EXT = 0xEA, ATA_CMD_ID_ATA = 0xEC, ATA_CMD_ID_ATAPI = 0xA1, ATA_CMD_READ = 0xC8, ATA_CMD_READ_EXT = 0x25, ATA_CMD_WRITE = 0xCA, ATA_CMD_WRITE_EXT = 0x35, ATA_CMD_WRITE_FUA_EXT = 0x3D, ATA_CMD_FPDMA_READ = 0x60, ATA_CMD_FPDMA_WRITE = 0x61, ATA_CMD_PIO_READ = 0x20, ATA_CMD_PIO_READ_EXT = 0x24, ATA_CMD_PIO_WRITE = 0x30, ATA_CMD_PIO_WRITE_EXT = 0x34, ATA_CMD_READ_MULTI = 0xC4, ATA_CMD_READ_MULTI_EXT = 0x29, ATA_CMD_WRITE_MULTI = 0xC5, ATA_CMD_WRITE_MULTI_EXT = 0x39, ATA_CMD_WRITE_MULTI_FUA_EXT = 0xCE, ATA_CMD_SET_FEATURES = 0xEF, ATA_CMD_PACKET = 0xA0, ATA_CMD_VERIFY = 0x40, ATA_CMD_VERIFY_EXT = 0x42, ATA_CMD_STANDBYNOW1 = 0xE0, ATA_CMD_IDLEIMMEDIATE = 0xE1, ATA_CMD_INIT_DEV_PARAMS = 0x91, ATA_CMD_READ_NATIVE_MAX = 0xF8, ATA_CMD_READ_NATIVE_MAX_EXT = 0x27, ATA_CMD_READ_LOG_EXT = 0x2f, ATA_LOG_SATA_NCQ = 0x10, SETFEATURES_XFER = 0x03, XFER_UDMA_7 = 0x47, XFER_UDMA_6 = 0x46, XFER_UDMA_5 = 0x45, XFER_UDMA_4 = 0x44, XFER_UDMA_3 = 0x43, XFER_UDMA_2 = 0x42, XFER_UDMA_1 = 0x41, XFER_UDMA_0 = 0x40, XFER_MW_DMA_4 = 0x24, XFER_MW_DMA_3 = 0x23, XFER_MW_DMA_2 = 0x22, XFER_MW_DMA_1 = 0x21, XFER_MW_DMA_0 = 0x20, XFER_SW_DMA_2 = 0x12, XFER_SW_DMA_1 = 0x11, XFER_SW_DMA_0 = 0x10, XFER_PIO_6 = 0x0E, XFER_PIO_5 = 0x0D, XFER_PIO_4 = 0x0C, XFER_PIO_3 = 0x0B, XFER_PIO_2 = 0x0A, XFER_PIO_1 = 0x09, XFER_PIO_0 = 0x08, XFER_PIO_SLOW = 0x00, SETFEATURES_WC_ON = 0x02, SETFEATURES_WC_OFF = 0x82, ATAPI_PKT_DMA = (1 << 0), ATAPI_DMADIR = (1 << 2), ATAPI_CDB_LEN = 16, ATA_CBL_NONE = 0, ATA_CBL_PATA40 = 1, ATA_CBL_PATA80 = 2, ATA_CBL_PATA_UNK = 3, ATA_CBL_SATA = 4, SCR_STATUS = 0, SCR_ERROR = 1, SCR_CONTROL = 2, SCR_ACTIVE = 3, SCR_NOTIFICATION = 4, SERR_DATA_RECOVERED = (1 << 0), SERR_COMM_RECOVERED = (1 << 1), SERR_DATA = (1 << 8), SERR_PERSISTENT = (1 << 9), SERR_PROTOCOL = (1 << 10), SERR_INTERNAL = (1 << 11), SERR_PHYRDY_CHG = (1 << 16), SERR_DEV_XCHG = (1 << 26), ATA_TFLAG_LBA48 = (1 << 0), ATA_TFLAG_ISADDR = (1 << 1), ATA_TFLAG_DEVICE = (1 << 2), ATA_TFLAG_WRITE = (1 << 3), ATA_TFLAG_LBA = (1 << 4), ATA_TFLAG_FUA = (1 << 5), ATA_TFLAG_POLLING = (1 << 6), }; enum ata_tf_protocols { ATA_PROT_UNKNOWN, ATA_PROT_NODATA, ATA_PROT_PIO, ATA_PROT_DMA, ATA_PROT_NCQ, ATA_PROT_ATAPI, ATA_PROT_ATAPI_NODATA, ATA_PROT_ATAPI_DMA, }; enum ata_ioctls { ATA_IOC_GET_IO32 = 0x309, ATA_IOC_SET_IO32 = 0x324, }; struct ata_prd { u32 addr; u32 flags_len; }; struct ata_taskfile { unsigned long flags; u8 protocol; u8 ctl; u8 hob_feature; u8 hob_nsect; u8 hob_lbal; u8 hob_lbam; u8 hob_lbah; u8 feature; u8 nsect; u8 lbal; u8 lbam; u8 lbah; u8 device; u8 command; }; # 308 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ata.h" static inline __attribute__((always_inline)) unsigned int ata_id_major_version(const u16 *id) { unsigned int mver; if (id[ATA_ID_MAJOR_VER] == 0xFFFF) return 0; for (mver = 14; mver >= 1; mver--) if (id[ATA_ID_MAJOR_VER] & (1 << mver)) break; return mver; } static inline __attribute__((always_inline)) int ata_id_current_chs_valid(const u16 *id) { return (id[53] & 0x01) && id[54] && id[55] && id[55] <= 16 && id[56]; } static inline __attribute__((always_inline)) int ata_id_is_cfa(const u16 *id) { u16 v = id[0]; if (v == 0x848A) return 1; if (ata_id_major_version(id) >= 3 && id[82] != 0xFFFF && (id[82] & ( 1 << 2))) return 1; return 0; } static inline __attribute__((always_inline)) int atapi_cdb_len(const u16 *dev_id) { u16 tmp = dev_id[0] & 0x3; switch (tmp) { case 0: return 12; case 1: return 16; default: return -1; } } static inline __attribute__((always_inline)) int is_atapi_taskfile(const struct ata_taskfile *tf) { return (tf->protocol == ATA_PROT_ATAPI) || (tf->protocol == ATA_PROT_ATAPI_NODATA) || (tf->protocol == ATA_PROT_ATAPI_DMA); } static inline __attribute__((always_inline)) int is_multi_taskfile(struct ata_taskfile *tf) { return (tf->command == ATA_CMD_READ_MULTI) || (tf->command == ATA_CMD_WRITE_MULTI) || (tf->command == ATA_CMD_READ_MULTI_EXT) || (tf->command == ATA_CMD_WRITE_MULTI_EXT) || (tf->command == ATA_CMD_WRITE_MULTI_FUA_EXT); } static inline __attribute__((always_inline)) int ata_ok(u8 status) { return ((status & (ATA_BUSY | ATA_DRDY | ATA_DF | ATA_DRQ | ATA_ERR)) == ATA_DRDY); } static inline __attribute__((always_inline)) int lba_28_ok(u64 block, u32 n_block) { return ((block + n_block - 1) < ((u64)1 << 28)) && (n_block <= 256); } static inline __attribute__((always_inline)) int lba_48_ok(u64 block, u32 n_block) { return ((block + n_block - 1) < ((u64)1 << 48)) && (n_block <= 65536); } # 6 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hdreg.h" 2 # 90 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hdreg.h" typedef unsigned char task_ioreg_t; typedef unsigned long sata_ioreg_t; typedef union ide_reg_valid_s { unsigned all : 16; struct { unsigned data : 1; unsigned error_feature : 1; unsigned sector : 1; unsigned nsector : 1; unsigned lcyl : 1; unsigned hcyl : 1; unsigned select : 1; unsigned status_command : 1; unsigned data_hob : 1; unsigned error_feature_hob : 1; unsigned sector_hob : 1; unsigned nsector_hob : 1; unsigned lcyl_hob : 1; unsigned hcyl_hob : 1; unsigned select_hob : 1; unsigned control_hob : 1; } b; } ide_reg_valid_t; typedef struct ide_task_request_s { task_ioreg_t io_ports[8]; task_ioreg_t hob_ports[8]; ide_reg_valid_t out_flags; ide_reg_valid_t in_flags; int data_phase; int req_cmd; unsigned long out_size; unsigned long in_size; } ide_task_request_t; typedef struct ide_ioctl_request_s { ide_task_request_t *task_request; unsigned char *out_buffer; unsigned char *in_buffer; } ide_ioctl_request_t; struct hd_drive_cmd_hdr { task_ioreg_t command; task_ioreg_t sector_number; task_ioreg_t feature; task_ioreg_t sector_count; }; typedef struct hd_drive_task_hdr { task_ioreg_t data; task_ioreg_t feature; task_ioreg_t sector_count; task_ioreg_t sector_number; task_ioreg_t low_cylinder; task_ioreg_t high_cylinder; task_ioreg_t device_head; task_ioreg_t command; } task_struct_t; typedef struct hd_drive_hob_hdr { task_ioreg_t data; task_ioreg_t feature; task_ioreg_t sector_count; task_ioreg_t sector_number; task_ioreg_t low_cylinder; task_ioreg_t high_cylinder; task_ioreg_t device_head; task_ioreg_t control; } hob_struct_t; # 375 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hdreg.h" struct hd_geometry { unsigned char heads; unsigned char sectors; unsigned short cylinders; unsigned long start; }; # 427 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hdreg.h" enum { BUSSTATE_OFF = 0, BUSSTATE_ON, BUSSTATE_TRISTATE }; # 447 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hdreg.h" struct hd_driveid { unsigned short config; unsigned short cyls; unsigned short reserved2; unsigned short heads; unsigned short track_bytes; unsigned short sector_bytes; unsigned short sectors; unsigned short vendor0; unsigned short vendor1; unsigned short vendor2; unsigned char serial_no[20]; unsigned short buf_type; unsigned short buf_size; unsigned short ecc_bytes; unsigned char fw_rev[8]; unsigned char model[40]; unsigned char max_multsect; unsigned char vendor3; unsigned short dword_io; unsigned char vendor4; unsigned char capability; unsigned short reserved50; unsigned char vendor5; unsigned char tPIO; unsigned char vendor6; unsigned char tDMA; unsigned short field_valid; unsigned short cur_cyls; unsigned short cur_heads; unsigned short cur_sectors; unsigned short cur_capacity0; unsigned short cur_capacity1; unsigned char multsect; unsigned char multsect_valid; unsigned int lba_capacity; unsigned short dma_1word; unsigned short dma_mword; unsigned short eide_pio_modes; unsigned short eide_dma_min; unsigned short eide_dma_time; unsigned short eide_pio; unsigned short eide_pio_iordy; unsigned short words69_70[2]; unsigned short words71_74[4]; unsigned short queue_depth; unsigned short words76_79[4]; unsigned short major_rev_num; unsigned short minor_rev_num; unsigned short command_set_1; # 533 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hdreg.h" unsigned short command_set_2; # 551 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hdreg.h" unsigned short cfsse; # 563 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hdreg.h" unsigned short cfs_enable_1; # 582 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hdreg.h" unsigned short cfs_enable_2; # 601 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hdreg.h" unsigned short csf_default; # 613 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hdreg.h" unsigned short dma_ultra; unsigned short trseuc; unsigned short trsEuc; unsigned short CurAPMvalues; unsigned short mprc; unsigned short hw_config; # 636 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hdreg.h" unsigned short acoustic; unsigned short msrqs; unsigned short sxfert; unsigned short sal; unsigned int spg; unsigned long long lba_capacity_2; unsigned short words104_125[22]; unsigned short last_lun; unsigned short word127; unsigned short dlf; # 667 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hdreg.h" unsigned short csfo; unsigned short words130_155[26]; unsigned short word156; unsigned short words157_159[3]; unsigned short cfa_power; unsigned short words161_175[15]; unsigned short words176_205[30]; unsigned short words206_254[49]; unsigned short integrity_word; }; # 28 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/major.h" 1 # 6 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/genhd.h" 1 # 16 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/genhd.h" enum { DOS_EXTENDED_PARTITION = 5, LINUX_EXTENDED_PARTITION = 0x85, WIN98_EXTENDED_PARTITION = 0x0f, LINUX_SWAP_PARTITION = 0x82, LINUX_RAID_PARTITION = 0xfd, SOLARIS_X86_PARTITION = LINUX_SWAP_PARTITION, NEW_SOLARIS_X86_PARTITION = 0xbf, DM6_AUX1PARTITION = 0x51, DM6_AUX3PARTITION = 0x53, DM6_PARTITION = 0x54, EZD_PARTITION = 0x55, FREEBSD_PARTITION = 0xa5, OPENBSD_PARTITION = 0xa6, NETBSD_PARTITION = 0xa9, BSDI_PARTITION = 0xb7, MINIX_PARTITION = 0x81, UNIXWARE_PARTITION = 0x63, }; # 61 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/genhd.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/device.h" 1 # 14 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/device.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ioport.h" 1 # 17 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ioport.h" struct resource { resource_size_t start; resource_size_t end; const char *name; unsigned long flags; struct resource *parent, *sibling, *child; }; struct resource_list { struct resource_list *next; struct resource *res; struct pci_dev *dev; }; # 94 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ioport.h" extern struct resource ioport_resource; extern struct resource iomem_resource; extern int request_resource(struct resource *root, struct resource *new); extern struct resource * ____request_resource(struct resource *root, struct resource *new); extern int release_resource(struct resource *new); extern int insert_resource(struct resource *parent, struct resource *new); extern int allocate_resource(struct resource *root, struct resource *new, resource_size_t size, resource_size_t min, resource_size_t max, resource_size_t align, void (*alignf)(void *, struct resource *, resource_size_t, resource_size_t), void *alignf_data); int adjust_resource(struct resource *res, resource_size_t start, resource_size_t size); extern int find_next_system_ram(struct resource *res); extern struct resource * __request_region(struct resource *, resource_size_t start, resource_size_t n, const char *name); extern int __check_region(struct resource *, resource_size_t, resource_size_t); extern void __release_region(struct resource *, resource_size_t, resource_size_t); static inline __attribute__((always_inline)) int __attribute__((deprecated)) check_region(resource_size_t s, resource_size_t n) { return __check_region(&ioport_resource, s, n); } # 15 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/device.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/klist.h" 1 # 20 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/klist.h" struct klist_node; struct klist { spinlock_t k_lock; struct list_head k_list; void (*get)(struct klist_node *); void (*put)(struct klist_node *); }; extern void klist_init(struct klist * k, void (*get)(struct klist_node *), void (*put)(struct klist_node *)); struct klist_node { struct klist * n_klist; struct list_head n_node; struct kref n_ref; struct completion n_removed; }; extern void klist_add_tail(struct klist_node * n, struct klist * k); extern void klist_add_head(struct klist_node * n, struct klist * k); extern void klist_del(struct klist_node * n); extern void klist_remove(struct klist_node * n); extern int klist_node_attached(struct klist_node * n); struct klist_iter { struct klist * i_klist; struct list_head * i_head; struct klist_node * i_cur; }; extern void klist_iter_init(struct klist * k, struct klist_iter * i); extern void klist_iter_init_node(struct klist * k, struct klist_iter * i, struct klist_node * n); extern void klist_iter_exit(struct klist_iter * i); extern struct klist_node * klist_next(struct klist_iter * i); # 17 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/device.h" 2 # 31 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/device.h" struct device; struct device_driver; struct class; struct class_device; struct bus_type { const char * name; struct subsystem subsys; struct kset drivers; struct kset devices; struct klist klist_devices; struct klist klist_drivers; struct bus_attribute * bus_attrs; struct device_attribute * dev_attrs; struct driver_attribute * drv_attrs; int (*match)(struct device * dev, struct device_driver * drv); int (*uevent)(struct device *dev, char **envp, int num_envp, char *buffer, int buffer_size); int (*probe)(struct device * dev); int (*remove)(struct device * dev); void (*shutdown)(struct device * dev); int (*suspend)(struct device * dev, pm_message_t state); int (*suspend_late)(struct device * dev, pm_message_t state); int (*resume_early)(struct device * dev); int (*resume)(struct device * dev); }; extern int __attribute__((warn_unused_result)) bus_register(struct bus_type * bus); extern void bus_unregister(struct bus_type * bus); extern int __attribute__((warn_unused_result)) bus_rescan_devices(struct bus_type * bus); int bus_for_each_dev(struct bus_type * bus, struct device * start, void * data, int (*fn)(struct device *, void *)); struct device * bus_find_device(struct bus_type *bus, struct device *start, void *data, int (*match)(struct device *, void *)); int __attribute__((warn_unused_result)) bus_for_each_drv(struct bus_type *bus, struct device_driver *start, void *data, int (*fn)(struct device_driver *, void *)); struct bus_attribute { struct attribute attr; ssize_t (*show)(struct bus_type *, char * buf); ssize_t (*store)(struct bus_type *, const char * buf, size_t count); }; extern int __attribute__((warn_unused_result)) bus_create_file(struct bus_type *, struct bus_attribute *); extern void bus_remove_file(struct bus_type *, struct bus_attribute *); struct device_driver { const char * name; struct bus_type * bus; struct completion unloaded; struct kobject kobj; struct klist klist_devices; struct klist_node knode_bus; struct module * owner; int (*probe) (struct device * dev); int (*remove) (struct device * dev); void (*shutdown) (struct device * dev); int (*suspend) (struct device * dev, pm_message_t state); int (*resume) (struct device * dev); unsigned int multithread_probe:1; }; extern int __attribute__((warn_unused_result)) driver_register(struct device_driver * drv); extern void driver_unregister(struct device_driver * drv); extern struct device_driver * get_driver(struct device_driver * drv); extern void put_driver(struct device_driver * drv); extern struct device_driver *driver_find(const char *name, struct bus_type *bus); extern int driver_probe_done(void); struct driver_attribute { struct attribute attr; ssize_t (*show)(struct device_driver *, char * buf); ssize_t (*store)(struct device_driver *, const char * buf, size_t count); }; extern int __attribute__((warn_unused_result)) driver_create_file(struct device_driver *, struct driver_attribute *); extern void driver_remove_file(struct device_driver *, struct driver_attribute *); extern int __attribute__((warn_unused_result)) driver_for_each_device(struct device_driver * drv, struct device *start, void *data, int (*fn)(struct device *, void *)); struct device * driver_find_device(struct device_driver *drv, struct device *start, void *data, int (*match)(struct device *, void *)); struct class { const char * name; struct module * owner; struct subsystem subsys; struct list_head children; struct list_head devices; struct list_head interfaces; struct semaphore sem; struct kobject *virtual_dir; struct class_attribute * class_attrs; struct class_device_attribute * class_dev_attrs; struct device_attribute * dev_attrs; int (*uevent)(struct class_device *dev, char **envp, int num_envp, char *buffer, int buffer_size); int (*dev_uevent)(struct device *dev, char **envp, int num_envp, char *buffer, int buffer_size); void (*release)(struct class_device *dev); void (*class_release)(struct class *class); void (*dev_release)(struct device *dev); int (*suspend)(struct device *, pm_message_t state); int (*resume)(struct device *); }; extern int __attribute__((warn_unused_result)) class_register(struct class *); extern void class_unregister(struct class *); struct class_attribute { struct attribute attr; ssize_t (*show)(struct class *, char * buf); ssize_t (*store)(struct class *, const char * buf, size_t count); }; extern int __attribute__((warn_unused_result)) class_create_file(struct class *, const struct class_attribute *); extern void class_remove_file(struct class *, const struct class_attribute *); struct class_device_attribute { struct attribute attr; ssize_t (*show)(struct class_device *, char * buf); ssize_t (*store)(struct class_device *, const char * buf, size_t count); }; extern int __attribute__((warn_unused_result)) class_device_create_file(struct class_device *, const struct class_device_attribute *); # 231 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/device.h" struct class_device { struct list_head node; struct kobject kobj; struct class * class; dev_t devt; struct class_device_attribute *devt_attr; struct class_device_attribute uevent_attr; struct device * dev; void * class_data; struct class_device *parent; struct attribute_group ** groups; void (*release)(struct class_device *dev); int (*uevent)(struct class_device *dev, char **envp, int num_envp, char *buffer, int buffer_size); char class_id[20]; }; static inline __attribute__((always_inline)) void * class_get_devdata (struct class_device *dev) { return dev->class_data; } static inline __attribute__((always_inline)) void class_set_devdata (struct class_device *dev, void *data) { dev->class_data = data; } extern int __attribute__((warn_unused_result)) class_device_register(struct class_device *); extern void class_device_unregister(struct class_device *); extern void class_device_initialize(struct class_device *); extern int __attribute__((warn_unused_result)) class_device_add(struct class_device *); extern void class_device_del(struct class_device *); extern int class_device_rename(struct class_device *, char *); extern struct class_device * class_device_get(struct class_device *); extern void class_device_put(struct class_device *); extern void class_device_remove_file(struct class_device *, const struct class_device_attribute *); extern int __attribute__((warn_unused_result)) class_device_create_bin_file(struct class_device *, struct bin_attribute *); extern void class_device_remove_bin_file(struct class_device *, struct bin_attribute *); struct class_interface { struct list_head node; struct class *class; int (*add) (struct class_device *, struct class_interface *); void (*remove) (struct class_device *, struct class_interface *); int (*add_dev) (struct device *, struct class_interface *); void (*remove_dev) (struct device *, struct class_interface *); }; extern int __attribute__((warn_unused_result)) class_interface_register(struct class_interface *); extern void class_interface_unregister(struct class_interface *); extern struct class *class_create(struct module *owner, const char *name); extern void class_destroy(struct class *cls); extern struct class_device *class_device_create(struct class *cls, struct class_device *parent, dev_t devt, struct device *device, const char *fmt, ...) __attribute__((format(printf,5,6))); extern void class_device_destroy(struct class *cls, dev_t devt); struct device_attribute { struct attribute attr; ssize_t (*show)(struct device *dev, struct device_attribute *attr, char *buf); ssize_t (*store)(struct device *dev, struct device_attribute *attr, const char *buf, size_t count); }; extern int __attribute__((warn_unused_result)) device_create_file(struct device *device, struct device_attribute * entry); extern void device_remove_file(struct device * dev, struct device_attribute * attr); extern int __attribute__((warn_unused_result)) device_create_bin_file(struct device *dev, struct bin_attribute *attr); extern void device_remove_bin_file(struct device *dev, struct bin_attribute *attr); struct device { struct klist klist_children; struct klist_node knode_parent; struct klist_node knode_driver; struct klist_node knode_bus; struct device * parent; struct kobject kobj; char bus_id[20]; unsigned is_registered:1; struct device_attribute uevent_attr; struct device_attribute *devt_attr; struct semaphore sem; struct bus_type * bus; struct device_driver *driver; void *driver_data; void *platform_data; void *firmware_data; struct dev_pm_info power; u64 *dma_mask; u64 coherent_dma_mask; struct list_head dma_pools; struct dma_coherent_mem *dma_mem; struct list_head node; struct class *class; dev_t devt; struct attribute_group **groups; void (*release)(struct device * dev); }; static inline __attribute__((always_inline)) void * dev_get_drvdata (struct device *dev) { return dev->driver_data; } static inline __attribute__((always_inline)) void dev_set_drvdata (struct device *dev, void *data) { dev->driver_data = data; } static inline __attribute__((always_inline)) int device_is_registered(struct device *dev) { return dev->is_registered; } extern int __attribute__((warn_unused_result)) device_register(struct device * dev); extern void device_unregister(struct device * dev); extern void device_initialize(struct device * dev); extern int __attribute__((warn_unused_result)) device_add(struct device * dev); extern void device_del(struct device * dev); extern int __attribute__((warn_unused_result)) device_for_each_child(struct device *, void *, int (*fn)(struct device *, void *)); extern int device_rename(struct device *dev, char *new_name); extern int __attribute__((warn_unused_result)) device_bind_driver(struct device *dev); extern void device_release_driver(struct device * dev); extern int __attribute__((warn_unused_result)) device_attach(struct device * dev); extern int __attribute__((warn_unused_result)) driver_attach(struct device_driver *drv); extern int __attribute__((warn_unused_result)) device_reprobe(struct device *dev); extern struct device *device_create(struct class *cls, struct device *parent, dev_t devt, const char *fmt, ...) __attribute__((format(printf,4,5))); extern void device_destroy(struct class *cls, dev_t devt); extern int virtual_device_parent(struct device *dev); extern int (*platform_notify)(struct device * dev); extern int (*platform_notify_remove)(struct device * dev); extern struct device * get_device(struct device * dev); extern void put_device(struct device * dev); extern void device_shutdown(void); extern int __attribute__((warn_unused_result)) firmware_register(struct subsystem *); extern void firmware_unregister(struct subsystem *); extern const char *dev_driver_string(struct device *dev); # 62 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/genhd.h" 2 struct partition { unsigned char boot_ind; unsigned char head; unsigned char sector; unsigned char cyl; unsigned char sys_ind; unsigned char end_head; unsigned char end_sector; unsigned char end_cyl; __le32 start_sect; __le32 nr_sects; } __attribute__((packed)); struct hd_struct { sector_t start_sect; sector_t nr_sects; struct kobject kobj; struct kobject *holder_dir; unsigned ios[2], sectors[2]; int policy, partno; }; struct disk_stats { unsigned long sectors[2]; unsigned long ios[2]; unsigned long merges[2]; unsigned long ticks[2]; unsigned long io_ticks; unsigned long time_in_queue; }; struct gendisk { int major; int first_minor; int minors; char disk_name[32]; struct hd_struct **part; int part_uevent_suppress; struct block_device_operations *fops; struct request_queue *queue; void *private_data; sector_t capacity; int flags; struct device *driverfs_dev; struct kobject kobj; struct kobject *holder_dir; struct kobject *slave_dir; struct timer_rand_state *random; int policy; atomic_t sync_io; unsigned long stamp; int in_flight; struct disk_stats dkstats; }; struct disk_attribute { struct attribute attr; ssize_t (*show)(struct gendisk *, char *); ssize_t (*store)(struct gendisk *, const char *, size_t); }; # 173 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/genhd.h" static inline __attribute__((always_inline)) void disk_stat_set_all(struct gendisk *gendiskp, int value) { memset(&gendiskp->dkstats, value, sizeof (struct disk_stats)); } # 212 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/genhd.h" static inline __attribute__((always_inline)) int init_disk_stats(struct gendisk *disk) { return 1; } static inline __attribute__((always_inline)) void free_disk_stats(struct gendisk *disk) { } extern void disk_round_stats(struct gendisk *disk); extern int get_blkdev_list(char *, int); extern void add_disk(struct gendisk *disk); extern void del_gendisk(struct gendisk *gp); extern void unlink_gendisk(struct gendisk *gp); extern struct gendisk *get_gendisk(dev_t dev, int *part); extern void set_device_ro(struct block_device *bdev, int flag); extern void set_disk_ro(struct gendisk *disk, int flag); extern void add_disk_randomness(struct gendisk *disk); extern void rand_initialize_disk(struct gendisk *disk); static inline __attribute__((always_inline)) sector_t get_start_sect(struct block_device *bdev) { return bdev->bd_contains == bdev ? 0 : bdev->bd_part->start_sect; } static inline __attribute__((always_inline)) sector_t get_capacity(struct gendisk *disk) { return disk->capacity; } static inline __attribute__((always_inline)) void set_capacity(struct gendisk *disk, sector_t size) { disk->capacity = size; } # 399 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/genhd.h" char *disk_name (struct gendisk *hd, int part, char *buf); extern int rescan_partitions(struct gendisk *disk, struct block_device *bdev); extern void add_partition(struct gendisk *, int, sector_t, sector_t); extern void delete_partition(struct gendisk *, int); extern struct gendisk *alloc_disk_node(int minors, int node_id); extern struct gendisk *alloc_disk(int minors); extern struct kobject *get_disk(struct gendisk *disk); extern void put_disk(struct gendisk *disk); extern void blk_register_region(dev_t dev, unsigned long range, struct module *module, struct kobject *(*probe)(dev_t, int *, void *), int (*lock)(dev_t, void *), void *data); extern void blk_unregister_region(dev_t dev, unsigned long range); static inline __attribute__((always_inline)) struct block_device *bdget_disk(struct gendisk *disk, int index) { return bdget((((disk->major) << 20) | (disk->first_minor)) + index); } # 7 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pagemap.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h" 1 # 17 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/debug_locks.h" 1 struct task_struct; extern int debug_locks; extern int debug_locks_silent; extern int debug_locks_off(void); # 46 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/debug_locks.h" struct task_struct; static inline __attribute__((always_inline)) void debug_show_all_locks(void) { } static inline __attribute__((always_inline)) void debug_show_held_locks(struct task_struct *task) { } static inline __attribute__((always_inline)) void debug_check_no_locks_freed(const void *from, unsigned long len) { } static inline __attribute__((always_inline)) void debug_check_no_locks_held(struct task_struct *task) { } # 18 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/backing-dev.h" 1 # 16 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/backing-dev.h" enum bdi_state { BDI_pdflush, BDI_write_congested, BDI_read_congested, BDI_unused, }; typedef int (congested_fn)(void *, int); struct backing_dev_info { unsigned long ra_pages; unsigned long state; unsigned int capabilities; congested_fn *congested_fn; void *congested_data; void (*unplug_io_fn)(struct backing_dev_info *, struct page *); void *unplug_io_data; }; # 61 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/backing-dev.h" extern struct backing_dev_info default_backing_dev_info; void default_unplug_io_fn(struct backing_dev_info *bdi, struct page *page); int writeback_acquire(struct backing_dev_info *bdi); int writeback_in_progress(struct backing_dev_info *bdi); void writeback_release(struct backing_dev_info *bdi); static inline __attribute__((always_inline)) int bdi_congested(struct backing_dev_info *bdi, int bdi_bits) { if (bdi->congested_fn) return bdi->congested_fn(bdi->congested_data, bdi_bits); return (bdi->state & bdi_bits); } static inline __attribute__((always_inline)) int bdi_read_congested(struct backing_dev_info *bdi) { return bdi_congested(bdi, 1 << BDI_read_congested); } static inline __attribute__((always_inline)) int bdi_write_congested(struct backing_dev_info *bdi) { return bdi_congested(bdi, 1 << BDI_write_congested); } static inline __attribute__((always_inline)) int bdi_rw_congested(struct backing_dev_info *bdi) { return bdi_congested(bdi, (1 << BDI_read_congested)| (1 << BDI_write_congested)); } # 19 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm_types.h" 1 # 9 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm_types.h" struct address_space; # 18 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm_types.h" struct page { unsigned long flags; atomic_t _count; atomic_t _mapcount; union { struct { unsigned long private; struct address_space *mapping; }; }; unsigned long index; struct list_head lru; # 65 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm_types.h" }; # 20 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h" 2 struct mempolicy; struct anon_vma; extern unsigned long max_mapnr; extern unsigned long num_physpages; extern void * high_memory; extern unsigned long vmalloc_earlyreserve; extern int page_cluster; extern int sysctl_legacy_va_layout; # 1 "include2/asm/pgtable.h" 1 # 15 "include2/asm/pgtable.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/pgtable-nopmd.h" 1 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/pgtable-nopud.h" 1 # 13 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/pgtable-nopud.h" typedef struct { pgd_t pgd; } pud_t; # 25 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/pgtable-nopud.h" static inline __attribute__((always_inline)) int pgd_none(pgd_t pgd) { return 0; } static inline __attribute__((always_inline)) int pgd_bad(pgd_t pgd) { return 0; } static inline __attribute__((always_inline)) int pgd_present(pgd_t pgd) { return 1; } static inline __attribute__((always_inline)) void pgd_clear(pgd_t *pgd) { } # 38 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/pgtable-nopud.h" static inline __attribute__((always_inline)) pud_t * pud_offset(pgd_t * pgd, unsigned long address) { return (pud_t *)pgd; } # 7 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/pgtable-nopmd.h" 2 # 15 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/pgtable-nopmd.h" typedef struct { pud_t pud; } pmd_t; # 27 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/pgtable-nopmd.h" static inline __attribute__((always_inline)) int pud_none(pud_t pud) { return 0; } static inline __attribute__((always_inline)) int pud_bad(pud_t pud) { return 0; } static inline __attribute__((always_inline)) int pud_present(pud_t pud) { return 1; } static inline __attribute__((always_inline)) void pud_clear(pud_t *pud) { } # 41 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/pgtable-nopmd.h" static inline __attribute__((always_inline)) pmd_t * pmd_offset(pud_t * pud, unsigned long address) { return (pmd_t *)pud; } # 16 "include2/asm/pgtable.h" 2 # 1 "include2/asm/addrspace.h" 1 # 14 "include2/asm/addrspace.h" # 1 "include/asm/cpu/addrspace.h" 1 # 15 "include2/asm/addrspace.h" 2 # 22 "include2/asm/pgtable.h" 2 # 1 "include2/asm/fixmap.h" 1 # 48 "include2/asm/fixmap.h" enum fixed_addresses { __end_of_fixed_addresses }; extern void __set_fixmap (enum fixed_addresses idx, unsigned long phys, pgprot_t flags); # 80 "include2/asm/fixmap.h" extern void __this_fixmap_does_not_exist(void); static inline __attribute__((always_inline)) unsigned long fix_to_virt(const unsigned int idx) { # 98 "include2/asm/fixmap.h" if (idx >= __end_of_fixed_addresses) __this_fixmap_does_not_exist(); return ((0xe0000000 - (1UL << 12)) - ((idx) << 12)); } static inline __attribute__((always_inline)) unsigned long virt_to_fix(const unsigned long vaddr) { do { if (__builtin_expect(!!((vaddr >= (0xe0000000 - (1UL << 12)) || vaddr < ((0xe0000000 - (1UL << 12)) - (__end_of_fixed_addresses << 12)))!=0), 0)) do { printk("kernel BUG at %s:%d!\n", "include2/asm/fixmap.h", 106); *(volatile int *)0 = 0; } while (0); } while(0); return (((0xe0000000 - (1UL << 12)) - ((vaddr)&(~((1UL << 12)-1)))) >> 12); } # 23 "include2/asm/pgtable.h" 2 extern pgd_t swapper_pg_dir[1024]; extern void paging_init(void); extern unsigned long empty_zero_page[(1UL << 12) / sizeof(unsigned long)]; # 215 "include2/asm/pgtable.h" static inline __attribute__((always_inline)) int pte_read(pte_t pte) { return ((pte).pte) & 0x040; } static inline __attribute__((always_inline)) int pte_exec(pte_t pte) { return ((pte).pte) & 0x040; } static inline __attribute__((always_inline)) int pte_dirty(pte_t pte){ return ((pte).pte) & 0x004; } static inline __attribute__((always_inline)) int pte_young(pte_t pte){ return ((pte).pte) & 0x400; } static inline __attribute__((always_inline)) int pte_file(pte_t pte) { return ((pte).pte) & 0x001; } static inline __attribute__((always_inline)) int pte_write(pte_t pte){ return ((pte).pte) & 0x020; } static inline __attribute__((always_inline)) int pte_not_present(pte_t pte){ return !(((pte).pte) & 0x100); } static inline __attribute__((always_inline)) pte_t pte_rdprotect(pte_t pte) { (*(&pte) = ((pte_t) { (((pte).pte) & ~0x040) } )); return pte; } static inline __attribute__((always_inline)) pte_t pte_exprotect(pte_t pte) { (*(&pte) = ((pte_t) { (((pte).pte) & ~0x040) } )); return pte; } static inline __attribute__((always_inline)) pte_t pte_mkclean(pte_t pte) { (*(&pte) = ((pte_t) { (((pte).pte) & ~0x004) } )); return pte; } static inline __attribute__((always_inline)) pte_t pte_mkold(pte_t pte) { (*(&pte) = ((pte_t) { (((pte).pte) & ~0x400) } )); return pte; } static inline __attribute__((always_inline)) pte_t pte_wrprotect(pte_t pte) { (*(&pte) = ((pte_t) { (((pte).pte) & ~0x020) } )); return pte; } static inline __attribute__((always_inline)) pte_t pte_mkread(pte_t pte) { (*(&pte) = ((pte_t) { (((pte).pte) | 0x040) } )); return pte; } static inline __attribute__((always_inline)) pte_t pte_mkexec(pte_t pte) { (*(&pte) = ((pte_t) { (((pte).pte) | 0x040) } )); return pte; } static inline __attribute__((always_inline)) pte_t pte_mkdirty(pte_t pte) { (*(&pte) = ((pte_t) { (((pte).pte) | 0x004) } )); return pte; } static inline __attribute__((always_inline)) pte_t pte_mkyoung(pte_t pte) { (*(&pte) = ((pte_t) { (((pte).pte) | 0x400) } )); return pte; } static inline __attribute__((always_inline)) pte_t pte_mkwrite(pte_t pte) { (*(&pte) = ((pte_t) { (((pte).pte) | 0x020) } )); return pte; } # 242 "include2/asm/pgtable.h" static inline __attribute__((always_inline)) pgprot_t pgprot_noncached(pgprot_t _prot) { unsigned long prot = ((_prot).pgprot); prot &= ~0x008; return ((pgprot_t) { (prot) } ); } # 260 "include2/asm/pgtable.h" static inline __attribute__((always_inline)) pte_t pte_modify(pte_t pte, pgprot_t newprot) { (*(&pte) = ((pte_t) { ((((pte).pte) & ((~((1UL << 12)-1)) | 0x400 | 0x008 | 0x004)) | ((newprot).pgprot)) } )); return pte; } # 291 "include2/asm/pgtable.h" struct vm_area_struct; extern void update_mmu_cache(struct vm_area_struct * vma, unsigned long address, pte_t pte); # 313 "include2/asm/pgtable.h" typedef pte_t *pte_addr_t; # 324 "include2/asm/pgtable.h" struct mm_struct; # 337 "include2/asm/pgtable.h" extern pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep); # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/pgtable.h" 1 # 130 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/pgtable.h" struct mm_struct; static inline __attribute__((always_inline)) void ptep_set_wrprotect(struct mm_struct *mm, unsigned long address, pte_t *ptep) { pte_t old_pte = *ptep; (*(ptep) = pte_wrprotect(old_pte)); } # 215 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/pgtable.h" void pgd_clear_bad(pgd_t *); void pud_clear_bad(pud_t *); void pmd_clear_bad(pmd_t *); static inline __attribute__((always_inline)) int pgd_none_or_clear_bad(pgd_t *pgd) { if (pgd_none(*pgd)) return 1; if (__builtin_expect(!!(pgd_bad(*pgd)), 0)) { pgd_clear_bad(pgd); return 1; } return 0; } static inline __attribute__((always_inline)) int pud_none_or_clear_bad(pud_t *pud) { if (pud_none(*pud)) return 1; if (__builtin_expect(!!(pud_bad(*pud)), 0)) { pud_clear_bad(pud); return 1; } return 0; } static inline __attribute__((always_inline)) int pmd_none_or_clear_bad(pmd_t *pmd) { if ((!((((((*pmd).pud).pgd).pgd))))) return 1; if (__builtin_expect(!!(((((((((*pmd).pud).pgd).pgd))) & (~(~((1UL << 12)-1)) & ~0x040)) != (0x100 | 0x020 | 0x400 | 0x004))), 0)) { pmd_clear_bad(pmd); return 1; } return 0; } # 341 "include2/asm/pgtable.h" 2 # 41 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h" 2 # 60 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/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; struct rb_node vm_rb; union { struct { struct list_head list; void *parent; struct vm_area_struct *head; } vm_set; struct raw_prio_tree_node prio_tree_node; } shared; struct list_head anon_vma_node; struct anon_vma *anon_vma; struct vm_operations_struct * vm_ops; unsigned long vm_pgoff; struct file * vm_file; void * vm_private_data; unsigned long vm_truncate_count; }; struct vm_list_struct { struct vm_list_struct *next; struct vm_area_struct *vma; }; # 190 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/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 *type); unsigned long (*nopfn)(struct vm_area_struct * area, unsigned long address); int (*populate)(struct vm_area_struct * area, unsigned long address, unsigned long len, pgprot_t prot, unsigned long pgoff, int nonblock); int (*page_mkwrite)(struct vm_area_struct *vma, struct page *page); }; struct mmu_gather; struct inode; # 227 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/page-flags.h" 1 # 254 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/page-flags.h" struct page; int test_clear_page_dirty(struct page *page); int test_clear_page_writeback(struct page *page); int test_set_page_writeback(struct page *page); static inline __attribute__((always_inline)) void clear_page_dirty(struct page *page) { test_clear_page_dirty(page); } static inline __attribute__((always_inline)) void set_page_writeback(struct page *page) { test_set_page_writeback(page); } # 228 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h" 2 # 251 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h" static inline __attribute__((always_inline)) int put_page_testzero(struct page *page) { do { } while(0); return (atomic_sub_return(1, (&page->_count)) == 0); } static inline __attribute__((always_inline)) int get_page_unless_zero(struct page *page) { do { } while(0); return atomic_add_unless((&page->_count), 1, 0); } static inline __attribute__((always_inline)) int page_count(struct page *page) { if (__builtin_expect(!!(test_bit(14, &(page)->flags)), 0)) page = (struct page *)((page)->private); return ((&page->_count)->counter); } static inline __attribute__((always_inline)) void get_page(struct page *page) { if (__builtin_expect(!!(test_bit(14, &(page)->flags)), 0)) page = (struct page *)((page)->private); do { } while(0); atomic_add(1,(&page->_count)); } static inline __attribute__((always_inline)) void init_page_count(struct page *page) { ((&page->_count)->counter = (1)); } void put_page(struct page *page); void put_pages_list(struct list_head *pages); void split_page(struct page *page, unsigned int order); # 431 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h" static inline __attribute__((always_inline)) enum zone_type page_zonenum(struct page *page) { return (page->flags >> (((((sizeof(unsigned long)*8) - 0) - 0) - 1) * (1 != 0))) & ((1UL << 1) - 1); } struct zone; extern struct zone *zone_table[]; static inline __attribute__((always_inline)) int page_zone_id(struct page *page) { return (page->flags >> (((((sizeof(unsigned long)*8) - 0) - 0) - 1) * (1 != 0))) & ((1UL << (0 + 1)) - 1); } static inline __attribute__((always_inline)) struct zone *page_zone(struct page *page) { return zone_table[page_zone_id(page)]; } static inline __attribute__((always_inline)) unsigned long zone_to_nid(struct zone *zone) { return 0; } static inline __attribute__((always_inline)) unsigned long page_to_nid(struct page *page) { if ((0 > 0 || 0 == 0)) return (page->flags >> ((((sizeof(unsigned long)*8) - 0) - 0) * (0 != 0))) & ((1UL << 0) - 1); else return zone_to_nid(page_zone(page)); } static inline __attribute__((always_inline)) unsigned long page_to_section(struct page *page) { return (page->flags >> (((sizeof(unsigned long)*8) - 0) * (0 != 0))) & ((1UL << 0) - 1); } static inline __attribute__((always_inline)) void set_page_zone(struct page *page, enum zone_type zone) { page->flags &= ~(((1UL << 1) - 1) << (((((sizeof(unsigned long)*8) - 0) - 0) - 1) * (1 != 0))); page->flags |= (zone & ((1UL << 1) - 1)) << (((((sizeof(unsigned long)*8) - 0) - 0) - 1) * (1 != 0)); } static inline __attribute__((always_inline)) void set_page_node(struct page *page, unsigned long node) { page->flags &= ~(((1UL << 0) - 1) << ((((sizeof(unsigned long)*8) - 0) - 0) * (0 != 0))); page->flags |= (node & ((1UL << 0) - 1)) << ((((sizeof(unsigned long)*8) - 0) - 0) * (0 != 0)); } static inline __attribute__((always_inline)) void set_page_section(struct page *page, unsigned long section) { page->flags &= ~(((1UL << 0) - 1) << (((sizeof(unsigned long)*8) - 0) * (0 != 0))); page->flags |= (section & ((1UL << 0) - 1)) << (((sizeof(unsigned long)*8) - 0) * (0 != 0)); } static inline __attribute__((always_inline)) void set_page_links(struct page *page, enum zone_type zone, unsigned long node, unsigned long pfn) { set_page_zone(page, zone); set_page_node(page, node); set_page_section(page, ((pfn) >> 0)); } # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/vmstat.h" 1 # 34 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/vmstat.h" enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, PGALLOC_DMA, PGALLOC_NORMAL , PGFREE, PGACTIVATE, PGDEACTIVATE, PGFAULT, PGMAJFAULT, PGREFILL_DMA, PGREFILL_NORMAL , PGSTEAL_DMA, PGSTEAL_NORMAL , PGSCAN_KSWAPD_DMA, PGSCAN_KSWAPD_NORMAL , PGSCAN_DIRECT_DMA, PGSCAN_DIRECT_NORMAL , PGINODESTEAL, SLABS_SCANNED, KSWAPD_STEAL, KSWAPD_INODESTEAL, PAGEOUTRUN, ALLOCSTALL, PGROTATED, NR_VM_EVENT_ITEMS }; struct vm_event_state { unsigned long event[NR_VM_EVENT_ITEMS]; }; extern __typeof__(struct vm_event_state) per_cpu__vm_event_states; static inline __attribute__((always_inline)) void __count_vm_event(enum vm_event_item item) { per_cpu__vm_event_states.event[item]++; } static inline __attribute__((always_inline)) void count_vm_event(enum vm_event_item item) { (*({ extern int simple_identifier_vm_event_states(void); do { } while (0); &per_cpu__vm_event_states; })).event[item]++; do { } while (0); } static inline __attribute__((always_inline)) void __count_vm_events(enum vm_event_item item, long delta) { per_cpu__vm_event_states.event[item] += delta; } static inline __attribute__((always_inline)) void count_vm_events(enum vm_event_item item, long delta) { (*({ extern int simple_identifier_vm_event_states(void); do { } while (0); &per_cpu__vm_event_states; })).event[item] += delta; do { } while (0); } extern void all_vm_events(unsigned long *); extern void vm_events_fold_cpu(int cpu); # 96 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/vmstat.h" extern atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS]; static inline __attribute__((always_inline)) void zone_page_state_add(long x, struct zone *zone, enum zone_stat_item item) { atomic_long_add(x, &zone->vm_stat[item]); atomic_long_add(x, &vm_stat[item]); } static inline __attribute__((always_inline)) unsigned long global_page_state(enum zone_stat_item item) { long x = atomic_long_read(&vm_stat[item]); return x; } static inline __attribute__((always_inline)) unsigned long zone_page_state(struct zone *zone, enum zone_stat_item item) { long x = atomic_long_read(&zone->vm_stat[item]); return x; } # 165 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/vmstat.h" static inline __attribute__((always_inline)) void zap_zone_vm_stats(struct zone *zone) { memset(zone->vm_stat, 0, sizeof(zone->vm_stat)); } extern void inc_zone_state(struct zone *, enum zone_stat_item); # 192 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/vmstat.h" static inline __attribute__((always_inline)) void __mod_zone_page_state(struct zone *zone, enum zone_stat_item item, int delta) { zone_page_state_add(delta, zone, item); } static inline __attribute__((always_inline)) void __inc_zone_state(struct zone *zone, enum zone_stat_item item) { atomic_long_inc(&zone->vm_stat[item]); atomic_long_inc(&vm_stat[item]); } static inline __attribute__((always_inline)) void __inc_zone_page_state(struct page *page, enum zone_stat_item item) { __inc_zone_state(page_zone(page), item); } static inline __attribute__((always_inline)) void __dec_zone_page_state(struct page *page, enum zone_stat_item item) { atomic_long_dec(&page_zone(page)->vm_stat[item]); atomic_long_dec(&vm_stat[item]); } # 225 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/vmstat.h" static inline __attribute__((always_inline)) void refresh_cpu_vm_stats(int cpu) { } static inline __attribute__((always_inline)) void refresh_vm_stats(void) { } # 498 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h" 2 static inline __attribute__((always_inline)) __attribute__((always_inline)) void *lowmem_page_address(struct page *page) { return ((void *)((unsigned long)(((unsigned long)((page) - mem_map) + ((0x0C000000 >> 12))) << 12)+0x80000000)); } # 540 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h" extern struct address_space swapper_space; static inline __attribute__((always_inline)) struct address_space *page_mapping(struct page *page) { struct address_space *mapping = page->mapping; if (__builtin_expect(!!(0), 0)) mapping = &swapper_space; else if (__builtin_expect(!!((unsigned long)mapping & 1), 0)) mapping = ((void *)0); return mapping; } static inline __attribute__((always_inline)) int PageAnon(struct page *page) { return ((unsigned long)page->mapping & 1) != 0; } static inline __attribute__((always_inline)) unsigned long page_index(struct page *page) { if (__builtin_expect(!!(0), 0)) return ((page)->private); return page->index; } static inline __attribute__((always_inline)) void reset_page_mapcount(struct page *page) { ((&(page)->_mapcount)->counter = (-1)); } static inline __attribute__((always_inline)) int page_mapcount(struct page *page) { return ((&(page)->_mapcount)->counter) + 1; } static inline __attribute__((always_inline)) int page_mapped(struct page *page) { return ((&(page)->_mapcount)->counter) >= 0; } # 622 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h" extern void show_free_areas(void); struct page *shmem_nopage(struct vm_area_struct *vma, unsigned long address, int *type); int shmem_set_policy(struct vm_area_struct *vma, struct mempolicy *new); struct mempolicy *shmem_get_policy(struct vm_area_struct *vma, unsigned long addr); int shmem_lock(struct file *file, int lock, struct user_struct *user); # 652 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h" struct file *shmem_file_setup(char *name, loff_t size, unsigned long flags); extern int shmem_mmap(struct file *file, struct vm_area_struct *vma); int shmem_zero_setup(struct vm_area_struct *); # 665 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h" static inline __attribute__((always_inline)) int can_do_mlock(void) { if (capable(14)) return 1; if (get_current()->signal->rlim[8].rlim_cur != 0) return 1; return 0; } extern int user_shm_lock(size_t, struct user_struct *); extern void user_shm_unlock(size_t, struct user_struct *); struct zap_details { struct vm_area_struct *nonlinear_vma; struct address_space *check_mapping; unsigned long first_index; unsigned long last_index; spinlock_t *i_mmap_lock; unsigned long truncate_count; }; struct page *vm_normal_page(struct vm_area_struct *, unsigned long, pte_t); unsigned long zap_page_range(struct vm_area_struct *vma, unsigned long address, unsigned long size, struct zap_details *); unsigned long unmap_vmas(struct mmu_gather **tlb, struct vm_area_struct *start_vma, unsigned long start_addr, unsigned long end_addr, unsigned long *nr_accounted, struct zap_details *); void free_pgd_range(struct mmu_gather **tlb, unsigned long addr, unsigned long end, unsigned long floor, unsigned long ceiling); void free_pgtables(struct mmu_gather **tlb, struct vm_area_struct *start_vma, unsigned long floor, unsigned long ceiling); int copy_page_range(struct mm_struct *dst, struct mm_struct *src, struct vm_area_struct *vma); int zeromap_page_range(struct vm_area_struct *vma, unsigned long from, unsigned long size, pgprot_t prot); void unmap_mapping_range(struct address_space *mapping, loff_t const holebegin, loff_t const holelen, int even_cows); static inline __attribute__((always_inline)) void unmap_shared_mapping_range(struct address_space *mapping, loff_t const holebegin, loff_t const holelen) { unmap_mapping_range(mapping, holebegin, holelen, 0); } extern int vmtruncate(struct inode * inode, loff_t offset); extern int vmtruncate_range(struct inode * inode, loff_t offset, loff_t end); extern int install_page(struct mm_struct *mm, struct vm_area_struct *vma, unsigned long addr, struct page *page, pgprot_t prot); extern int install_file_pte(struct mm_struct *mm, struct vm_area_struct *vma, unsigned long addr, unsigned long pgoff, pgprot_t prot); extern int __handle_mm_fault(struct mm_struct *mm,struct vm_area_struct *vma, unsigned long address, int write_access); static inline __attribute__((always_inline)) int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma, unsigned long address, int write_access) { return __handle_mm_fault(mm, vma, address, write_access) & (~0x10); } # 739 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h" 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); void install_arg_page(struct vm_area_struct *, struct page *, unsigned long); int get_user_pages(struct task_struct *tsk, struct mm_struct *mm, unsigned long start, int len, int write, int force, struct page **pages, struct vm_area_struct **vmas); void print_bad_pte(struct vm_area_struct *, pte_t, unsigned long); extern int try_to_release_page(struct page * page, gfp_t gfp_mask); extern void do_invalidatepage(struct page *page, unsigned long offset); int __set_page_dirty_nobuffers(struct page *page); int redirty_page_for_writepage(struct writeback_control *wbc, struct page *page); int set_page_dirty(struct page *page); int set_page_dirty_lock(struct page *page); int clear_page_dirty_for_io(struct page *page); extern unsigned long do_mremap(unsigned long addr, unsigned long old_len, unsigned long new_len, unsigned long flags, unsigned long new_addr); # 772 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h" typedef int (*shrinker_t)(int nr_to_scan, gfp_t gfp_mask); struct shrinker; extern struct shrinker *set_shrinker(int, shrinker_t); extern void remove_shrinker(struct shrinker *shrinker); static inline __attribute__((always_inline)) int vma_wants_writenotify(struct vm_area_struct *vma) { unsigned int vm_flags = vma->vm_flags; if ((vm_flags & (0x00000002|0x00000008)) != ((0x00000002|0x00000008))) return 0; if (vma->vm_ops && vma->vm_ops->page_mkwrite) return 1; if (((vma->vm_page_prot).pgprot) != ((protection_map[vm_flags & (0x00000001|0x00000002|0x00000004|0x00000008)]).pgprot)) return 0; if (vm_flags & (0x00000400|0x02000000)) return 0; return vma->vm_file && vma->vm_file->f_mapping && (!(((vma->vm_file->f_mapping)->backing_dev_info)->capabilities & 0x00000001)); } extern pte_t *get_locked_pte(struct mm_struct *mm, unsigned long addr, spinlock_t **ptl); int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address); int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address); int __pte_alloc(struct mm_struct *mm, pmd_t *pmd, unsigned long address); int __pte_alloc_kernel(pmd_t *pmd, unsigned long address); static inline __attribute__((always_inline)) pud_t *pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address) { return (__builtin_expect(!!(pgd_none(*pgd)), 0) && __pud_alloc(mm, pgd, address))? ((void *)0): pud_offset(pgd, address); } static inline __attribute__((always_inline)) pmd_t *pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address) { return (__builtin_expect(!!(pud_none(*pud)), 0) && __pmd_alloc(mm, pud, address))? ((void *)0): pmd_offset(pud, address); } # 890 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h" extern void free_area_init(unsigned long * zones_size); extern void free_area_init_node(int nid, pg_data_t *pgdat, unsigned long * zones_size, unsigned long zone_start_pfn, unsigned long *zholes_size); # 943 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h" extern void set_dma_reserve(unsigned long new_dma_reserve); extern void memmap_init_zone(unsigned long, int, unsigned long, unsigned long); extern void setup_per_zone_pages_min(void); extern void mem_init(void); extern void show_mem(void); extern void si_meminfo(struct sysinfo * val); extern void si_meminfo_node(struct sysinfo *val, int nid); extern void zonetable_add(struct zone *zone, int nid, enum zone_type zid, unsigned long pfn, unsigned long size); static inline __attribute__((always_inline)) void setup_per_cpu_pageset(void) {} void vma_prio_tree_add(struct vm_area_struct *, struct vm_area_struct *old); void vma_prio_tree_insert(struct vm_area_struct *, struct prio_tree_root *); void vma_prio_tree_remove(struct vm_area_struct *, struct prio_tree_root *); struct vm_area_struct *vma_prio_tree_next(struct vm_area_struct *vma, struct prio_tree_iter *iter); static inline __attribute__((always_inline)) void vma_nonlinear_insert(struct vm_area_struct *vma, struct list_head *list) { vma->shared.vm_set.parent = ((void *)0); list_add_tail(&vma->shared.vm_set.list, list); } extern int __vm_enough_memory(long pages, int cap_sys_admin); extern void vma_adjust(struct vm_area_struct *vma, unsigned long start, unsigned long end, unsigned long pgoff, struct vm_area_struct *insert); extern struct vm_area_struct *vma_merge(struct mm_struct *, struct vm_area_struct *prev, unsigned long addr, unsigned long end, unsigned long vm_flags, struct anon_vma *, struct file *, unsigned long, struct mempolicy *); extern struct anon_vma *find_mergeable_anon_vma(struct vm_area_struct *); extern int split_vma(struct mm_struct *, struct vm_area_struct *, unsigned long addr, int new_below); extern int insert_vm_struct(struct mm_struct *, struct vm_area_struct *); extern void __vma_link_rb(struct mm_struct *, struct vm_area_struct *, struct rb_node **, struct rb_node *); extern void unlink_file_vma(struct vm_area_struct *); extern struct vm_area_struct *copy_vma(struct vm_area_struct **, unsigned long addr, unsigned long len, unsigned long pgoff); extern void exit_mmap(struct mm_struct *); extern int may_expand_vm(struct mm_struct *mm, unsigned long npages); 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 __attribute__((always_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); extern unsigned long page_unuse(struct page *); extern void truncate_inode_pages(struct address_space *, loff_t); extern void truncate_inode_pages_range(struct address_space *, loff_t lstart, loff_t lend); extern struct page *filemap_nopage(struct vm_area_struct *, unsigned long, int *); extern int filemap_populate(struct vm_area_struct *, unsigned long, unsigned long, pgprot_t, unsigned long, int); int write_one_page(struct page *page, int wait); int do_page_cache_readahead(struct address_space *mapping, struct file *filp, unsigned long offset, unsigned long nr_to_read); int force_page_cache_readahead(struct address_space *mapping, struct file *filp, unsigned long offset, unsigned long nr_to_read); unsigned long page_cache_readahead(struct address_space *mapping, struct file_ra_state *ra, struct file *filp, unsigned long offset, unsigned long size); void handle_ra_miss(struct address_space *mapping, struct file_ra_state *ra, unsigned long offset); unsigned long max_sane_readahead(unsigned long nr); extern int expand_stack(struct vm_area_struct *vma, unsigned long address); 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 __attribute__((always_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; } static inline __attribute__((always_inline)) unsigned long vma_pages(struct vm_area_struct *vma) { return (vma->vm_end - vma->vm_start) >> 12; } pgprot_t vm_get_page_prot(unsigned long vm_flags); struct vm_area_struct *find_extend_vma(struct mm_struct *, unsigned long addr); struct page *vmalloc_to_page(void *addr); unsigned long vmalloc_to_pfn(void *addr); int remap_pfn_range(struct vm_area_struct *, unsigned long addr, unsigned long pfn, unsigned long size, pgprot_t); int vm_insert_page(struct vm_area_struct *, unsigned long addr, struct page *); struct page *follow_page(struct vm_area_struct *, unsigned long address, unsigned int foll_flags); void vm_stat_account(struct mm_struct *, unsigned long, struct file *, long); # 1105 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h" static inline __attribute__((always_inline)) void kernel_map_pages(struct page *page, int numpages, int enable) {} extern struct vm_area_struct *get_gate_vma(struct task_struct *tsk); int in_gate_area_no_task(unsigned long addr); int in_gate_area(struct task_struct *task, unsigned long addr); # 1121 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h" int drop_caches_sysctl_handler(struct ctl_table *, int, struct file *, void *, size_t *, loff_t *); unsigned long shrink_slab(unsigned long scanned, gfp_t gfp_mask, unsigned long lru_pages); void drop_pagecache(void); void drop_slab(void); extern int randomize_va_space; __attribute__((weak)) const char *arch_vma_name(struct vm_area_struct *vma); # 8 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pagemap.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/highmem.h" 1 # 1 "include2/asm/cacheflush.h" 1 # 1 "include/asm/cpu/cacheflush.h" 1 # 19 "include/asm/cpu/cacheflush.h" void flush_cache_all(void); void flush_cache_mm(struct mm_struct *mm); void flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned long end); void flush_cache_page(struct vm_area_struct *vma, unsigned long addr, unsigned long pfn); void flush_dcache_page(struct page *pg); void flush_icache_range(unsigned long start, unsigned long end); void flush_cache_sigtramp(unsigned long addr); void flush_icache_user_range(struct vm_area_struct *vma, struct page *page, unsigned long addr, int len); void p3_cache_init(void); extern int remap_area_pages(unsigned long addr, unsigned long phys_addr, unsigned long size, unsigned long flags); # 7 "include2/asm/cacheflush.h" 2 extern void __flush_wback_region(void *start, int size); extern void __flush_purge_region(void *start, int size); extern void __flush_invalidate_region(void *start, int size); # 8 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/highmem.h" 2 static inline __attribute__((always_inline)) void flush_anon_page(struct page *page, unsigned long vmaddr) { } static inline __attribute__((always_inline)) void flush_kernel_dcache_page(struct page *page) { } # 31 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/highmem.h" static inline __attribute__((always_inline)) unsigned int nr_free_highpages(void) { return 0; } static inline __attribute__((always_inline)) void *kmap(struct page *page) { do { do { } while (0); } while (0); return lowmem_page_address(page); } # 53 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/highmem.h" static inline __attribute__((always_inline)) void clear_user_highpage(struct page *page, unsigned long vaddr) { void *addr = lowmem_page_address(page); clear_user_page(addr, vaddr, page); do { } while (0); __asm__ __volatile__("": : :"memory"); } static inline __attribute__((always_inline)) struct page * alloc_zeroed_user_highpage(struct vm_area_struct *vma, unsigned long vaddr) { struct page *page = alloc_pages_node(((0)), ((( gfp_t)0x10u) | (( gfp_t)0x40u) | (( gfp_t)0x80u) | (( gfp_t)0x20000u) | (( gfp_t)0x02u)), 0); if (page) clear_user_highpage(page, vaddr); return page; } static inline __attribute__((always_inline)) void clear_highpage(struct page *page) { void *kaddr = lowmem_page_address(page); clear_page(kaddr); do { } while (0); } static inline __attribute__((always_inline)) void memclear_highpage_flush(struct page *page, unsigned int offset, unsigned int size) { void *kaddr; do { if (__builtin_expect(!!((offset + size > (1UL << 12))!=0), 0)) do { printk("kernel BUG at %s:%d!\n", "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/highmem.h", 89); *(volatile int *)0 = 0; } while (0); } while(0); kaddr = lowmem_page_address(page); memset((char *)kaddr + offset, 0, size); flush_dcache_page(page); do { } while (0); } static inline __attribute__((always_inline)) void copy_user_highpage(struct page *to, struct page *from, unsigned long vaddr) { char *vfrom, *vto; vfrom = lowmem_page_address(from); vto = lowmem_page_address(to); copy_user_page(vto, vfrom, vaddr, to); do { } while (0); do { } while (0); __asm__ __volatile__("": : :"memory"); } static inline __attribute__((always_inline)) void copy_highpage(struct page *to, struct page *from) { char *vfrom, *vto; vfrom = lowmem_page_address(from); vto = lowmem_page_address(to); copy_page(vto, vfrom); do { } while (0); do { } while (0); } # 11 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pagemap.h" 2 # 1 "include2/asm/uaccess.h" 1 # 93 "include2/asm/uaccess.h" static inline __attribute__((always_inline)) int __access_ok(unsigned long addr, unsigned long size) { unsigned long flag, tmp; __asm__("stc r7_bank, %0\n\t" "mov.l @(8,%0), %0\n\t" "clrt\n\t" "addc %2, %1\n\t" "and %1, %0\n\t" "rotcl %0\n\t" "rotcl %0\n\t" "and #3, %0" : "=&z" (flag), "=r" (tmp) : "r" (addr), "1" (size) : "t"); return flag == 0; } static inline __attribute__((always_inline)) int access_ok(int type, const void *p, unsigned long size) { unsigned long addr = (unsigned long)p; return __access_ok(addr, size); } # 144 "include2/asm/uaccess.h" struct __large_struct { unsigned long buf[100]; }; # 298 "include2/asm/uaccess.h" extern void __get_user_unknown(void); # 408 "include2/asm/uaccess.h" extern void __put_user_unknown(void); extern __kernel_size_t __copy_user(void *to, const void *from, __kernel_size_t n); # 449 "include2/asm/uaccess.h" extern __kernel_size_t __clear_user(void *addr, __kernel_size_t size); # 458 "include2/asm/uaccess.h" static __inline__ __attribute__((always_inline)) int __strncpy_from_user(unsigned long __dest, unsigned long __src, int __count) { __kernel_size_t res; unsigned long __dummy, _d, _s; __asm__ __volatile__( "9:\n" "mov.b @%2+, %1\n\t" "cmp/eq #0, %1\n\t" "bt/s 2f\n" "1:\n" "mov.b %1, @%3\n\t" "dt %7\n\t" "bf/s 9b\n\t" " add #1, %3\n\t" "2:\n\t" "sub %7, %0\n" "3:\n" ".section .fixup,\"ax\"\n" "4:\n\t" "mov.l 5f, %1\n\t" "jmp @%1\n\t" " mov %8, %0\n\t" ".balign 4\n" "5: .long 3b\n" ".previous\n" ".section __ex_table,\"a\"\n" " .balign 4\n" " .long 9b,4b\n" ".previous" : "=r" (res), "=&z" (__dummy), "=r" (_s), "=r" (_d) : "0" (__count), "2" (__src), "3" (__dest), "r" (__count), "i" (-14) : "memory", "t"); return res; } # 508 "include2/asm/uaccess.h" static __inline__ __attribute__((always_inline)) long __strnlen_user(const char *__s, long __n) { unsigned long res; unsigned long __dummy; __asm__ __volatile__( "9:\n" "cmp/eq %4, %0\n\t" "bt 2f\n" "1:\t" "mov.b @(%0,%3), %1\n\t" "tst %1, %1\n\t" "bf/s 9b\n\t" " add #1, %0\n" "2:\n" ".section .fixup,\"ax\"\n" "3:\n\t" "mov.l 4f, %1\n\t" "jmp @%1\n\t" " mov #0, %0\n" ".balign 4\n" "4: .long 2b\n" ".previous\n" ".section __ex_table,\"a\"\n" " .balign 4\n" " .long 1b,3b\n" ".previous" : "=z" (res), "=&r" (__dummy) : "0" (0), "r" (__s), "r" (__n) : "t"); return res; } static __inline__ __attribute__((always_inline)) long strnlen_user(const char *s, long n) { if (!((unsigned long)(s) < (current_thread_info()->addr_limit.seg))) return 0; else return __strnlen_user(s, n); } # 564 "include2/asm/uaccess.h" struct exception_table_entry { unsigned long insn, fixup; }; extern int fixup_exception(struct pt_regs *regs); # 13 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pagemap.h" 2 # 22 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pagemap.h" static inline __attribute__((always_inline)) gfp_t mapping_gfp_mask(struct address_space * mapping) { return ( gfp_t)mapping->flags & (( gfp_t)((1 << 20) - 1)); } static inline __attribute__((always_inline)) void mapping_set_gfp_mask(struct address_space *m, gfp_t mask) { m->flags = (m->flags & ~( unsigned long)(( gfp_t)((1 << 20) - 1))) | ( unsigned long)mask; } # 52 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pagemap.h" void release_pages(struct page **pages, int nr, int cold); static inline __attribute__((always_inline)) struct page *page_cache_alloc(struct address_space *x) { return alloc_pages_node(((0)), mapping_gfp_mask(x), 0); } static inline __attribute__((always_inline)) struct page *page_cache_alloc_cold(struct address_space *x) { return alloc_pages_node(((0)), mapping_gfp_mask(x)|(( gfp_t)0x100u), 0); } typedef int filler_t(void *, struct page *); extern struct page * find_get_page(struct address_space *mapping, unsigned long index); extern struct page * find_lock_page(struct address_space *mapping, unsigned long index); extern struct page * find_trylock_page( struct address_space *mapping, unsigned long index); extern struct page * find_or_create_page(struct address_space *mapping, unsigned long index, gfp_t gfp_mask); unsigned find_get_pages(struct address_space *mapping, unsigned long start, unsigned int nr_pages, struct page **pages); unsigned find_get_pages_contig(struct address_space *mapping, unsigned long start, unsigned int nr_pages, struct page **pages); unsigned find_get_pages_tag(struct address_space *mapping, unsigned long *index, int tag, unsigned int nr_pages, struct page **pages); static inline __attribute__((always_inline)) struct page *grab_cache_page(struct address_space *mapping, unsigned long index) { return find_or_create_page(mapping, index, mapping_gfp_mask(mapping)); } extern struct page * grab_cache_page_nowait(struct address_space *mapping, unsigned long index); extern struct page * read_cache_page(struct address_space *mapping, unsigned long index, filler_t *filler, void *data); extern int read_cache_pages(struct address_space *mapping, struct list_head *pages, filler_t *filler, void *data); static inline __attribute__((always_inline)) struct page *read_mapping_page(struct address_space *mapping, unsigned long index, void *data) { filler_t *filler = (filler_t *)mapping->a_ops->readpage; return read_cache_page(mapping, index, filler, data); } int add_to_page_cache(struct page *page, struct address_space *mapping, unsigned long index, gfp_t gfp_mask); int add_to_page_cache_lru(struct page *page, struct address_space *mapping, unsigned long index, gfp_t gfp_mask); extern void remove_from_page_cache(struct page *page); extern void __remove_from_page_cache(struct page *page); static inline __attribute__((always_inline)) loff_t page_offset(struct page *page) { return ((loff_t)page->index) << 12; } static inline __attribute__((always_inline)) unsigned long linear_page_index(struct vm_area_struct *vma, unsigned long address) { unsigned long pgoff = (address - vma->vm_start) >> 12; pgoff += vma->vm_pgoff; return pgoff >> (12 - 12); } extern void __lock_page(struct page *page); extern void __lock_page_nosync(struct page *page); extern void unlock_page(struct page *page); static inline __attribute__((always_inline)) void lock_page(struct page *page) { do { do { } while (0); } while (0); if (test_and_set_bit(0, &(page)->flags)) __lock_page(page); } static inline __attribute__((always_inline)) void lock_page_nosync(struct page *page) { do { do { } while (0); } while (0); if (test_and_set_bit(0, &(page)->flags)) __lock_page_nosync(page); } extern void wait_on_page_bit(struct page *page, int bit_nr); # 170 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pagemap.h" static inline __attribute__((always_inline)) void wait_on_page_locked(struct page *page) { if (test_bit(0, &(page)->flags)) wait_on_page_bit(page, 0); } static inline __attribute__((always_inline)) void wait_on_page_writeback(struct page *page) { if (test_bit(12, &(page)->flags)) wait_on_page_bit(page, 12); } extern void end_page_writeback(struct page *page); static inline __attribute__((always_inline)) int fault_in_pages_writeable(char *uaddr, int size) { int ret; ret = ({ long __pu_err; do { __pu_err = 0; switch ((sizeof(*(uaddr)))) { case 1: ({ __asm__ __volatile__( "1:\n\t" "mov." "b" " %1, %2\n\t" "mov #0, %0\n" "2:\n" ".section .fixup,\"ax\"\n" "3:\n\t" "nop\n\t" "mov.l 4f, %0\n\t" "jmp @%0\n\t" "mov %3, %0\n" "4: .long 2b\n\t" ".previous\n" ".section __ex_table,\"a\"\n\t" ".long 1b, 3b\n\t" ".previous" :"=&r" (__pu_err) :"r" (((__typeof__(*(uaddr)))(0))), "m" ((*(struct __large_struct *)(((uaddr))))), "i" (-14) :"memory"); }); break; case 2: ({ __asm__ __volatile__( "1:\n\t" "mov." "w" " %1, %2\n\t" "mov #0, %0\n" "2:\n" ".section .fixup,\"ax\"\n" "3:\n\t" "nop\n\t" "mov.l 4f, %0\n\t" "jmp @%0\n\t" "mov %3, %0\n" "4: .long 2b\n\t" ".previous\n" ".section __ex_table,\"a\"\n\t" ".long 1b, 3b\n\t" ".previous" :"=&r" (__pu_err) :"r" (((__typeof__(*(uaddr)))(0))), "m" ((*(struct __large_struct *)(((uaddr))))), "i" (-14) :"memory"); }); break; case 4: ({ __asm__ __volatile__( "1:\n\t" "mov." "l" " %1, %2\n\t" "mov #0, %0\n" "2:\n" ".section .fixup,\"ax\"\n" "3:\n\t" "nop\n\t" "mov.l 4f, %0\n\t" "jmp @%0\n\t" "mov %3, %0\n" "4: .long 2b\n\t" ".previous\n" ".section __ex_table,\"a\"\n\t" ".long 1b, 3b\n\t" ".previous" :"=&r" (__pu_err) :"r" (((__typeof__(*(uaddr)))(0))), "m" ((*(struct __large_struct *)(((uaddr))))), "i" (-14) :"memory"); }); break; case 8: ({ __asm__ __volatile__( "1:\n\t" "mov.l %R1,%2\n\t" "mov.l %S1,%T2\n\t" "mov #0,%0\n" "2:\n" ".section .fixup,\"ax\"\n" "3:\n\t" "nop\n\t" "mov.l 4f,%0\n\t" "jmp @%0\n\t" " mov %3,%0\n" "4: .long 2b\n\t" ".previous\n" ".section __ex_table,\"a\"\n\t" ".long 1b, 3b\n\t" ".previous" : "=r" (__pu_err) : "r" (((__typeof__(*(uaddr)))(0))), "m" ((*(struct __large_struct *)(((uaddr))))), "i" (-14) : "memory"); }); break; default: __put_user_unknown(); } } while (0); __pu_err; }); if (ret == 0) { char *end = uaddr + size - 1; if (((unsigned long)uaddr & (~((1UL << 12)-1))) != ((unsigned long)end & (~((1UL << 12)-1)))) ret = ({ long __pu_err; do { __pu_err = 0; switch ((sizeof(*(end)))) { case 1: ({ __asm__ __volatile__( "1:\n\t" "mov." "b" " %1, %2\n\t" "mov #0, %0\n" "2:\n" ".section .fixup,\"ax\"\n" "3:\n\t" "nop\n\t" "mov.l 4f, %0\n\t" "jmp @%0\n\t" "mov %3, %0\n" "4: .long 2b\n\t" ".previous\n" ".section __ex_table,\"a\"\n\t" ".long 1b, 3b\n\t" ".previous" :"=&r" (__pu_err) :"r" (((__typeof__(*(end)))(0))), "m" ((*(struct __large_struct *)(((end))))), "i" (-14) :"memory"); }); break; case 2: ({ __asm__ __volatile__( "1:\n\t" "mov." "w" " %1, %2\n\t" "mov #0, %0\n" "2:\n" ".section .fixup,\"ax\"\n" "3:\n\t" "nop\n\t" "mov.l 4f, %0\n\t" "jmp @%0\n\t" "mov %3, %0\n" "4: .long 2b\n\t" ".previous\n" ".section __ex_table,\"a\"\n\t" ".long 1b, 3b\n\t" ".previous" :"=&r" (__pu_err) :"r" (((__typeof__(*(end)))(0))), "m" ((*(struct __large_struct *)(((end))))), "i" (-14) :"memory"); }); break; case 4: ({ __asm__ __volatile__( "1:\n\t" "mov." "l" " %1, %2\n\t" "mov #0, %0\n" "2:\n" ".section .fixup,\"ax\"\n" "3:\n\t" "nop\n\t" "mov.l 4f, %0\n\t" "jmp @%0\n\t" "mov %3, %0\n" "4: .long 2b\n\t" ".previous\n" ".section __ex_table,\"a\"\n\t" ".long 1b, 3b\n\t" ".previous" :"=&r" (__pu_err) :"r" (((__typeof__(*(end)))(0))), "m" ((*(struct __large_struct *)(((end))))), "i" (-14) :"memory"); }); break; case 8: ({ __asm__ __volatile__( "1:\n\t" "mov.l %R1,%2\n\t" "mov.l %S1,%T2\n\t" "mov #0,%0\n" "2:\n" ".section .fixup,\"ax\"\n" "3:\n\t" "nop\n\t" "mov.l 4f,%0\n\t" "jmp @%0\n\t" " mov %3,%0\n" "4: .long 2b\n\t" ".previous\n" ".section __ex_table,\"a\"\n\t" ".long 1b, 3b\n\t" ".previous" : "=r" (__pu_err) : "r" (((__typeof__(*(end)))(0))), "m" ((*(struct __large_struct *)(((end))))), "i" (-14) : "memory"); }); break; default: __put_user_unknown(); } } while (0); __pu_err; }); } return ret; } static inline __attribute__((always_inline)) void fault_in_pages_readable(const char *uaddr, int size) { volatile char c; int ret; ret = ({ long __gu_err, __gu_val; do { __gu_err = 0; switch ((sizeof(*(uaddr)))) { case 1: ({ __asm__ __volatile__( "1:\n\t" "mov." "b" " %2, %1\n\t" "mov #0, %0\n" "2:\n" ".section .fixup,\"ax\"\n" "3:\n\t" "mov #0, %1\n\t" "mov.l 4f, %0\n\t" "jmp @%0\n\t" " mov %3, %0\n" "4: .long 2b\n\t" ".previous\n" ".section __ex_table,\"a\"\n\t" ".long 1b, 3b\n\t" ".previous" :"=&r" (__gu_err), "=&r" (__gu_val) :"m" ((*(struct __large_struct *)(((uaddr))))), "i" (-14)); }); break; case 2: ({ __asm__ __volatile__( "1:\n\t" "mov." "w" " %2, %1\n\t" "mov #0, %0\n" "2:\n" ".section .fixup,\"ax\"\n" "3:\n\t" "mov #0, %1\n\t" "mov.l 4f, %0\n\t" "jmp @%0\n\t" " mov %3, %0\n" "4: .long 2b\n\t" ".previous\n" ".section __ex_table,\"a\"\n\t" ".long 1b, 3b\n\t" ".previous" :"=&r" (__gu_err), "=&r" (__gu_val) :"m" ((*(struct __large_struct *)(((uaddr))))), "i" (-14)); }); break; case 4: ({ __asm__ __volatile__( "1:\n\t" "mov." "l" " %2, %1\n\t" "mov #0, %0\n" "2:\n" ".section .fixup,\"ax\"\n" "3:\n\t" "mov #0, %1\n\t" "mov.l 4f, %0\n\t" "jmp @%0\n\t" " mov %3, %0\n" "4: .long 2b\n\t" ".previous\n" ".section __ex_table,\"a\"\n\t" ".long 1b, 3b\n\t" ".previous" :"=&r" (__gu_err), "=&r" (__gu_val) :"m" ((*(struct __large_struct *)(((uaddr))))), "i" (-14)); }); break; default: __get_user_unknown(); break; } } while (0); ((c)) = (__typeof__(*((uaddr))))__gu_val; __gu_err; }); if (ret == 0) { const char *end = uaddr + size - 1; if (((unsigned long)uaddr & (~((1UL << 12)-1))) != ((unsigned long)end & (~((1UL << 12)-1)))) ({ long __gu_err, __gu_val; do { __gu_err = 0; switch ((sizeof(*(end)))) { case 1: ({ __asm__ __volatile__( "1:\n\t" "mov." "b" " %2, %1\n\t" "mov #0, %0\n" "2:\n" ".section .fixup,\"ax\"\n" "3:\n\t" "mov #0, %1\n\t" "mov.l 4f, %0\n\t" "jmp @%0\n\t" " mov %3, %0\n" "4: .long 2b\n\t" ".previous\n" ".section __ex_table,\"a\"\n\t" ".long 1b, 3b\n\t" ".previous" :"=&r" (__gu_err), "=&r" (__gu_val) :"m" ((*(struct __large_struct *)(((end))))), "i" (-14)); }); break; case 2: ({ __asm__ __volatile__( "1:\n\t" "mov." "w" " %2, %1\n\t" "mov #0, %0\n" "2:\n" ".section .fixup,\"ax\"\n" "3:\n\t" "mov #0, %1\n\t" "mov.l 4f, %0\n\t" "jmp @%0\n\t" " mov %3, %0\n" "4: .long 2b\n\t" ".previous\n" ".section __ex_table,\"a\"\n\t" ".long 1b, 3b\n\t" ".previous" :"=&r" (__gu_err), "=&r" (__gu_val) :"m" ((*(struct __large_struct *)(((end))))), "i" (-14)); }); break; case 4: ({ __asm__ __volatile__( "1:\n\t" "mov." "l" " %2, %1\n\t" "mov #0, %0\n" "2:\n" ".section .fixup,\"ax\"\n" "3:\n\t" "mov #0, %1\n\t" "mov.l 4f, %0\n\t" "jmp @%0\n\t" " mov %3, %0\n" "4: .long 2b\n\t" ".previous\n" ".section __ex_table,\"a\"\n\t" ".long 1b, 3b\n\t" ".previous" :"=&r" (__gu_err), "=&r" (__gu_val) :"m" ((*(struct __large_struct *)(((end))))), "i" (-14)); }); break; default: __get_user_unknown(); break; } } while (0); ((c)) = (__typeof__(*((end))))__gu_val; __gu_err; }); } } # 11 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mempool.h" 1 # 9 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mempool.h" struct kmem_cache; typedef void * (mempool_alloc_t)(gfp_t gfp_mask, void *pool_data); typedef void (mempool_free_t)(void *element, void *pool_data); typedef struct mempool_s { spinlock_t lock; int min_nr; int curr_nr; void **elements; void *pool_data; mempool_alloc_t *alloc; mempool_free_t *free; wait_queue_head_t wait; } mempool_t; extern mempool_t *mempool_create(int min_nr, mempool_alloc_t *alloc_fn, mempool_free_t *free_fn, void *pool_data); extern mempool_t *mempool_create_node(int min_nr, mempool_alloc_t *alloc_fn, mempool_free_t *free_fn, void *pool_data, int nid); extern int mempool_resize(mempool_t *pool, int new_min_nr, gfp_t gfp_mask); extern void mempool_destroy(mempool_t *pool); extern void * mempool_alloc(mempool_t *pool, gfp_t gfp_mask); extern void mempool_free(void *element, mempool_t *pool); void *mempool_alloc_slab(gfp_t gfp_mask, void *pool_data); void mempool_free_slab(void *element, void *pool_data); static inline __attribute__((always_inline)) mempool_t * mempool_create_slab_pool(int min_nr, struct kmem_cache *kc) { return mempool_create(min_nr, mempool_alloc_slab, mempool_free_slab, (void *) kc); } void *mempool_kmalloc(gfp_t gfp_mask, void *pool_data); void *mempool_kzalloc(gfp_t gfp_mask, void *pool_data); void mempool_kfree(void *element, void *pool_data); static inline __attribute__((always_inline)) mempool_t *mempool_create_kmalloc_pool(int min_nr, size_t size) { return mempool_create(min_nr, mempool_kmalloc, mempool_kfree, (void *) size); } static inline __attribute__((always_inline)) mempool_t *mempool_create_kzalloc_pool(int min_nr, size_t size) { return mempool_create(min_nr, mempool_kzalloc, mempool_kfree, (void *) size); } void *mempool_alloc_pages(gfp_t gfp_mask, void *pool_data); void mempool_free_pages(void *element, void *pool_data); static inline __attribute__((always_inline)) mempool_t *mempool_create_page_pool(int min_nr, int order) { return mempool_create(min_nr, mempool_alloc_pages, mempool_free_pages, (void *)(long)order); } # 14 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/bio.h" 1 # 25 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/bio.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ioprio.h" 1 # 25 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ioprio.h" enum { IOPRIO_CLASS_NONE, IOPRIO_CLASS_RT, IOPRIO_CLASS_BE, IOPRIO_CLASS_IDLE, }; enum { IOPRIO_WHO_PROCESS = 1, IOPRIO_WHO_PGRP, IOPRIO_WHO_USER, }; static inline __attribute__((always_inline)) int task_ioprio(struct task_struct *task) { ({ typeof(!((((task->ioprio)) >> (13)) != IOPRIO_CLASS_NONE)) __ret_warn_on = (!((((task->ioprio)) >> (13)) != IOPRIO_CLASS_NONE)); if (__builtin_expect(!!(__ret_warn_on), 0)) { printk("BUG: warning at %s:%d/%s()\n", "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ioprio.h", 50, (__func__)); dump_stack(); } __builtin_expect(!!(__ret_warn_on), 0); }); return ((task->ioprio) & ((1UL << (13)) - 1)); } static inline __attribute__((always_inline)) int task_nice_ioprio(struct task_struct *task) { return (task_nice(task) + 20) / 5; } extern int ioprio_best(unsigned short aprio, unsigned short bprio); # 26 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/bio.h" 2 # 1 "include2/asm/io.h" 1 # 31 "include2/asm/io.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/iomap.h" 1 # 28 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/iomap.h" extern unsigned int ioread8(void *); extern unsigned int ioread16(void *); extern unsigned int ioread16be(void *); extern unsigned int ioread32(void *); extern unsigned int ioread32be(void *); extern void iowrite8(u8, void *); extern void iowrite16(u16, void *); extern void iowrite16be(u16, void *); extern void iowrite32(u32, void *); extern void iowrite32be(u32, void *); # 51 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/iomap.h" extern void ioread8_rep(void *port, void *buf, unsigned long count); extern void ioread16_rep(void *port, void *buf, unsigned long count); extern void ioread32_rep(void *port, void *buf, unsigned long count); extern void iowrite8_rep(void *port, const void *buf, unsigned long count); extern void iowrite16_rep(void *port, const void *buf, unsigned long count); extern void iowrite32_rep(void *port, const void *buf, unsigned long count); extern void *ioport_map(unsigned long port, unsigned int nr); extern void ioport_unmap(void *); struct pci_dev; extern void *pci_iomap(struct pci_dev *dev, int bar, unsigned long max); extern void pci_iounmap(struct pci_dev *dev, void *); # 32 "include2/asm/io.h" 2 # 40 "include2/asm/io.h" # 1 "include2/asm/io_generic.h" 1 # 14 "include2/asm/io_generic.h" u8 generic_inb(unsigned long); u16 generic_inw(unsigned long); u32 generic_inl(unsigned long); void generic_outb(u8, unsigned long); void generic_outw(u16, unsigned long); void generic_outl(u32, unsigned long); u8 generic_inb_p(unsigned long); u16 generic_inw_p(unsigned long); u32 generic_inl_p(unsigned long); void generic_outb_p(u8, unsigned long); void generic_outw_p(u16, unsigned long); void generic_outl_p(u32, unsigned long); void generic_insb(unsigned long, void *dst, unsigned long count); void generic_insw(unsigned long, void *dst, unsigned long count); void generic_insl(unsigned long, void *dst, unsigned long count); void generic_outsb(unsigned long, const void *src, unsigned long count); void generic_outsw(unsigned long, const void *src, unsigned long count); void generic_outsl(unsigned long, const void *src, unsigned long count); u8 generic_readb(void *); u16 generic_readw(void *); u32 generic_readl(void *); void generic_writeb(u8, void *); void generic_writew(u16, void *); void generic_writel(u32, void *); void *generic_ioremap(unsigned long offset, unsigned long size); void generic_iounmap(void *addr); void *generic_ioport_map(unsigned long addr, unsigned int size); void generic_ioport_unmap(void *addr); # 41 "include2/asm/io.h" 2 # 110 "include2/asm/io.h" void __raw_writesl(unsigned long addr, const void *data, int longlen); void __raw_readsl(unsigned long addr, void *data, int longlen); # 175 "include2/asm/io.h" static inline __attribute__((always_inline)) void __set_io_port_base(unsigned long pbase) { extern unsigned long generic_io_base; generic_io_base = pbase; } extern void memcpy_fromio(void *, volatile void *, unsigned long); extern void memcpy_toio(volatile void *, const void *, unsigned long); extern void memset_io(volatile void *, int, unsigned long); static inline __attribute__((always_inline)) unsigned char ctrl_inb(unsigned long addr) { return *(volatile unsigned char*)addr; } static inline __attribute__((always_inline)) unsigned short ctrl_inw(unsigned long addr) { return *(volatile unsigned short*)addr; } static inline __attribute__((always_inline)) unsigned int ctrl_inl(unsigned long addr) { return *(volatile unsigned long*)addr; } static inline __attribute__((always_inline)) void ctrl_outb(unsigned char b, unsigned long addr) { *(volatile unsigned char*)addr = b; } static inline __attribute__((always_inline)) void ctrl_outw(unsigned short b, unsigned long addr) { *(volatile unsigned short*)addr = b; } static inline __attribute__((always_inline)) void ctrl_outl(unsigned int b, unsigned long addr) { *(volatile unsigned long*)addr = b; } static inline __attribute__((always_inline)) void ctrl_delay(void) { ctrl_inw(0xa0000000); } # 230 "include2/asm/io.h" static inline __attribute__((always_inline)) unsigned long virt_to_phys(volatile void *address) { return (((unsigned long)(address)) & 0x1fffffff); } static inline __attribute__((always_inline)) void *phys_to_virt(unsigned long address) { return (void *)((__typeof__(address))(((unsigned long)(address) & 0x1fffffff) | 0x80000000)); } # 267 "include2/asm/io.h" void *__ioremap(unsigned long offset, unsigned long size, unsigned long flags); void __iounmap(void *addr); static inline __attribute__((always_inline)) void * __ioremap_mode(unsigned long offset, unsigned long size, unsigned long flags) { unsigned long last_addr = offset + size - 1; if (__builtin_expect(!!((((unsigned long)(offset)) & 0xe0000000) < 0xc0000000 && (((unsigned long)(last_addr)) & 0xe0000000) < 0xc0000000), 1)) { if (__builtin_expect(!!(flags & 0x008), 0)) return (void *)((__typeof__(offset))(((unsigned long)(offset) & 0x1fffffff) | 0x80000000)); return (void *)((__typeof__(offset))(((unsigned long)(offset) & 0x1fffffff) | 0xa0000000)); } return __ioremap(offset, size, flags); } # 29 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/bio.h" 2 # 57 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/bio.h" struct bio_vec { struct page *bv_page; unsigned int bv_len; unsigned int bv_offset; }; struct bio_set; struct bio; typedef int (bio_end_io_t) (struct bio *, unsigned int, int); typedef void (bio_destructor_t) (struct bio *); struct bio { sector_t bi_sector; struct bio *bi_next; struct block_device *bi_bdev; unsigned long bi_flags; unsigned long bi_rw; unsigned short bi_vcnt; unsigned short bi_idx; unsigned short bi_phys_segments; unsigned short bi_hw_segments; unsigned int bi_size; unsigned int bi_hw_front_size; unsigned int bi_hw_back_size; unsigned int bi_max_vecs; struct bio_vec *bi_io_vec; bio_end_io_t *bi_end_io; atomic_t bi_cnt; void *bi_private; bio_destructor_t *bi_destructor; }; # 268 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/bio.h" struct bio_pair { struct bio bio1, bio2; struct bio_vec bv1, bv2; atomic_t cnt; int error; }; extern struct bio_pair *bio_split(struct bio *bi, mempool_t *pool, int first_sectors); extern mempool_t *bio_split_pool; extern void bio_pair_release(struct bio_pair *dbio); extern struct bio_set *bioset_create(int, int, int); extern void bioset_free(struct bio_set *); extern struct bio *bio_alloc(gfp_t, int); extern struct bio *bio_alloc_bioset(gfp_t, int, struct bio_set *); extern void bio_put(struct bio *); extern void bio_free(struct bio *, struct bio_set *); extern void bio_endio(struct bio *, unsigned int, int); struct request_queue; extern int bio_phys_segments(struct request_queue *, struct bio *); extern int bio_hw_segments(struct request_queue *, struct bio *); extern void __bio_clone(struct bio *, struct bio *); extern struct bio *bio_clone(struct bio *, gfp_t); extern void bio_init(struct bio *); extern int bio_add_page(struct bio *, struct page *, unsigned int,unsigned int); extern int bio_add_pc_page(struct request_queue *, struct bio *, struct page *, unsigned int, unsigned int); extern int bio_get_nr_vecs(struct block_device *); extern struct bio *bio_map_user(struct request_queue *, struct block_device *, unsigned long, unsigned int, int); struct sg_iovec; extern struct bio *bio_map_user_iov(struct request_queue *, struct block_device *, struct sg_iovec *, int, int); extern void bio_unmap_user(struct bio *); extern struct bio *bio_map_kern(struct request_queue *, void *, unsigned int, gfp_t); extern void bio_set_pages_dirty(struct bio *bio); extern void bio_check_pages_dirty(struct bio *bio); extern struct bio *bio_copy_user(struct request_queue *, unsigned long, unsigned int, int); extern int bio_uncopy_user(struct bio *); void zero_fill_bio(struct bio *bio); # 352 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/bio.h" static inline __attribute__((always_inline)) char *__bio_kmap_irq(struct bio *bio, unsigned short idx, unsigned long *flags) { return (lowmem_page_address(((&((bio)->bi_io_vec[(idx)])))->bv_page) + ((&((bio)->bi_io_vec[(idx)])))->bv_offset); } # 15 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h" 2 # 1 "include2/asm/scatterlist.h" 1 struct scatterlist { struct page * page; unsigned int offset; dma_addr_t dma_address; unsigned int length; }; # 19 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h" 2 # 1 "include2/asm/div64.h" 1 # 22 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h" 2 # 36 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h" struct scsi_ioctl_command; struct request_queue; typedef struct request_queue request_queue_t; struct elevator_queue; typedef struct elevator_queue elevator_t; struct request_pm_state; struct blk_trace; struct as_io_context { spinlock_t lock; void (*dtor)(struct as_io_context *aic); void (*exit)(struct as_io_context *aic); unsigned long state; atomic_t nr_queued; atomic_t nr_dispatched; unsigned long last_end_request; unsigned long ttime_total; unsigned long ttime_samples; unsigned long ttime_mean; unsigned int seek_samples; sector_t last_request_pos; u64 seek_total; sector_t seek_mean; }; struct cfq_queue; struct cfq_io_context { struct rb_node rb_node; void *key; struct cfq_queue *cfqq[2]; struct io_context *ioc; unsigned long last_end_request; sector_t last_request_pos; unsigned long last_queue; unsigned long ttime_total; unsigned long ttime_samples; unsigned long ttime_mean; unsigned int seek_samples; u64 seek_total; sector_t seek_mean; struct list_head queue_list; void (*dtor)(struct io_context *); void (*exit)(struct io_context *); }; struct io_context { atomic_t refcount; struct task_struct *task; unsigned int ioprio_changed; unsigned long last_waited; int nr_batch_requests; struct as_io_context *aic; struct rb_root cic_root; }; void put_io_context(struct io_context *ioc); void exit_io_context(void); struct io_context *get_io_context(gfp_t gfp_flags, int node); void copy_io_context(struct io_context **pdst, struct io_context **psrc); void swap_io_context(struct io_context **ioc1, struct io_context **ioc2); struct request; typedef void (rq_end_io_fn)(struct request *, int); struct request_list { int count[2]; int starved[2]; int elvpriv; mempool_t *rq_pool; wait_queue_head_t wait[2]; }; enum rq_cmd_type_bits { REQ_TYPE_FS = 1, REQ_TYPE_BLOCK_PC, REQ_TYPE_SENSE, REQ_TYPE_PM_SUSPEND, REQ_TYPE_PM_RESUME, REQ_TYPE_PM_SHUTDOWN, REQ_TYPE_FLUSH, REQ_TYPE_SPECIAL, REQ_TYPE_LINUX_BLOCK, REQ_TYPE_ATA_CMD, REQ_TYPE_ATA_TASK, REQ_TYPE_ATA_TASKFILE, REQ_TYPE_ATA_PC, }; # 172 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h" enum { REQ_LB_OP_EJECT = 0x40, REQ_LB_OP_FLUSH = 0x41, }; enum rq_flag_bits { __REQ_RW, __REQ_FAILFAST, __REQ_SORTED, __REQ_SOFTBARRIER, __REQ_HARDBARRIER, __REQ_FUA, __REQ_NOMERGE, __REQ_STARTED, __REQ_DONTPREP, __REQ_QUEUED, __REQ_ELVPRIV, __REQ_FAILED, __REQ_QUIET, __REQ_PREEMPT, __REQ_ORDERED_COLOR, __REQ_RW_SYNC, __REQ_ALLOCED, __REQ_RW_META, __REQ_NR_BITS, }; # 229 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h" struct request { struct list_head queuelist; struct list_head donelist; request_queue_t *q; unsigned int cmd_flags; enum rq_cmd_type_bits cmd_type; sector_t sector; sector_t hard_sector; unsigned long nr_sectors; unsigned long hard_nr_sectors; unsigned int current_nr_sectors; unsigned int hard_cur_sectors; struct bio *bio; struct bio *biotail; struct hlist_node hash; union { struct rb_node rb_node; void *completion_data; }; void *elevator_private; void *elevator_private2; struct gendisk *rq_disk; unsigned long start_time; unsigned short nr_phys_segments; unsigned short nr_hw_segments; unsigned short ioprio; void *special; char *buffer; int tag; int errors; int ref_count; unsigned int cmd_len; unsigned char cmd[16]; unsigned int data_len; unsigned int sense_len; void *data; void *sense; unsigned int timeout; int retries; rq_end_io_fn *end_io; void *end_io_data; }; struct request_pm_state { int pm_step; u32 pm_state; void* data; }; # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/elevator.h" 1 typedef int (elevator_merge_fn) (request_queue_t *, struct request **, struct bio *); typedef void (elevator_merge_req_fn) (request_queue_t *, struct request *, struct request *); typedef void (elevator_merged_fn) (request_queue_t *, struct request *, int); typedef int (elevator_dispatch_fn) (request_queue_t *, int); typedef void (elevator_add_req_fn) (request_queue_t *, struct request *); typedef int (elevator_queue_empty_fn) (request_queue_t *); typedef struct request *(elevator_request_list_fn) (request_queue_t *, struct request *); typedef void (elevator_completed_req_fn) (request_queue_t *, struct request *); typedef int (elevator_may_queue_fn) (request_queue_t *, int); typedef int (elevator_set_req_fn) (request_queue_t *, struct request *, gfp_t); typedef void (elevator_put_req_fn) (request_queue_t *, struct request *); typedef void (elevator_activate_req_fn) (request_queue_t *, struct request *); typedef void (elevator_deactivate_req_fn) (request_queue_t *, struct request *); typedef void *(elevator_init_fn) (request_queue_t *, elevator_t *); typedef void (elevator_exit_fn) (elevator_t *); struct elevator_ops { elevator_merge_fn *elevator_merge_fn; elevator_merged_fn *elevator_merged_fn; elevator_merge_req_fn *elevator_merge_req_fn; elevator_dispatch_fn *elevator_dispatch_fn; elevator_add_req_fn *elevator_add_req_fn; elevator_activate_req_fn *elevator_activate_req_fn; elevator_deactivate_req_fn *elevator_deactivate_req_fn; elevator_queue_empty_fn *elevator_queue_empty_fn; elevator_completed_req_fn *elevator_completed_req_fn; elevator_request_list_fn *elevator_former_req_fn; elevator_request_list_fn *elevator_latter_req_fn; elevator_set_req_fn *elevator_set_req_fn; elevator_put_req_fn *elevator_put_req_fn; elevator_may_queue_fn *elevator_may_queue_fn; elevator_init_fn *elevator_init_fn; elevator_exit_fn *elevator_exit_fn; void (*trim)(struct io_context *); }; struct elv_fs_entry { struct attribute attr; ssize_t (*show)(elevator_t *, char *); ssize_t (*store)(elevator_t *, const char *, size_t); }; struct elevator_type { struct list_head list; struct elevator_ops ops; struct elv_fs_entry *elevator_attrs; char elevator_name[(16)]; struct module *elevator_owner; }; struct elevator_queue { struct elevator_ops *ops; void *elevator_data; struct kobject kobj; struct elevator_type *elevator_type; struct mutex sysfs_lock; struct hlist_head *hash; }; extern void elv_dispatch_sort(request_queue_t *, struct request *); extern void elv_dispatch_add_tail(request_queue_t *, struct request *); extern void elv_add_request(request_queue_t *, struct request *, int, int); extern void __elv_add_request(request_queue_t *, struct request *, int, int); extern void elv_insert(request_queue_t *, struct request *, int); extern int elv_merge(request_queue_t *, struct request **, struct bio *); extern void elv_merge_requests(request_queue_t *, struct request *, struct request *); extern void elv_merged_request(request_queue_t *, struct request *, int); extern void elv_dequeue_request(request_queue_t *, struct request *); extern void elv_requeue_request(request_queue_t *, struct request *); extern int elv_queue_empty(request_queue_t *); extern struct request *elv_next_request(struct request_queue *q); extern struct request *elv_former_request(request_queue_t *, struct request *); extern struct request *elv_latter_request(request_queue_t *, struct request *); extern int elv_register_queue(request_queue_t *q); extern void elv_unregister_queue(request_queue_t *q); extern int elv_may_queue(request_queue_t *, int); extern void elv_completed_request(request_queue_t *, struct request *); extern int elv_set_request(request_queue_t *, struct request *, gfp_t); extern void elv_put_request(request_queue_t *, struct request *); extern int elv_register(struct elevator_type *); extern void elv_unregister(struct elevator_type *); extern ssize_t elv_iosched_show(request_queue_t *, char *); extern ssize_t elv_iosched_store(request_queue_t *, const char *, size_t); extern int elevator_init(request_queue_t *, char *); extern void elevator_exit(elevator_t *); extern int elv_rq_merge_ok(struct request *, struct bio *); extern struct request *elv_rb_former_request(request_queue_t *, struct request *); extern struct request *elv_rb_latter_request(request_queue_t *, struct request *); extern struct request *elv_rb_add(struct rb_root *, struct request *); extern void elv_rb_del(struct rb_root *, struct request *); extern struct request *elv_rb_find(struct rb_root *, sector_t); # 163 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/elevator.h" enum { ELV_MQUEUE_MAY, ELV_MQUEUE_NO, ELV_MQUEUE_MUST, }; # 333 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h" 2 typedef int (merge_request_fn) (request_queue_t *, struct request *, struct bio *); typedef int (merge_requests_fn) (request_queue_t *, struct request *, struct request *); typedef void (request_fn_proc) (request_queue_t *q); typedef int (make_request_fn) (request_queue_t *q, struct bio *bio); typedef int (prep_rq_fn) (request_queue_t *, struct request *); typedef void (unplug_fn) (request_queue_t *); struct bio_vec; typedef int (merge_bvec_fn) (request_queue_t *, struct bio *, struct bio_vec *); typedef void (activity_fn) (void *data, int rw); typedef int (issue_flush_fn) (request_queue_t *, struct gendisk *, sector_t *); typedef void (prepare_flush_fn) (request_queue_t *, struct request *); typedef void (softirq_done_fn)(struct request *); enum blk_queue_state { Queue_down, Queue_up, }; struct blk_queue_tag { struct request **tag_index; unsigned long *tag_map; struct list_head busy_list; int busy; int max_depth; int real_max_depth; atomic_t refcnt; }; struct request_queue { struct list_head queue_head; struct request *last_merge; elevator_t *elevator; struct request_list rq; request_fn_proc *request_fn; merge_request_fn *back_merge_fn; merge_request_fn *front_merge_fn; merge_requests_fn *merge_requests_fn; make_request_fn *make_request_fn; prep_rq_fn *prep_rq_fn; unplug_fn *unplug_fn; merge_bvec_fn *merge_bvec_fn; activity_fn *activity_fn; issue_flush_fn *issue_flush_fn; prepare_flush_fn *prepare_flush_fn; softirq_done_fn *softirq_done_fn; sector_t end_sector; struct request *boundary_rq; struct timer_list unplug_timer; int unplug_thresh; unsigned long unplug_delay; struct work_struct unplug_work; struct backing_dev_info backing_dev_info; void *queuedata; void *activity_data; unsigned long bounce_pfn; gfp_t bounce_gfp; unsigned long queue_flags; spinlock_t __queue_lock; spinlock_t *queue_lock; struct kobject kobj; unsigned long nr_requests; unsigned int nr_congestion_on; unsigned int nr_congestion_off; unsigned int nr_batching; unsigned int max_sectors; unsigned int max_hw_sectors; unsigned short max_phys_segments; unsigned short max_hw_segments; unsigned short hardsect_size; unsigned int max_segment_size; unsigned long seg_boundary_mask; unsigned int dma_alignment; struct blk_queue_tag *queue_tags; unsigned int nr_sorted; unsigned int in_flight; unsigned int sg_timeout; unsigned int sg_reserved_size; int node; unsigned int ordered, next_ordered, ordseq; int orderr, ordcolor; struct request pre_flush_rq, bar_rq, post_flush_rq; struct request *orig_bar_rq; unsigned int bi_size; struct mutex sysfs_lock; }; # 494 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h" enum { # 506 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h" QUEUE_ORDERED_NONE = 0x00, QUEUE_ORDERED_DRAIN = 0x01, QUEUE_ORDERED_TAG = 0x02, QUEUE_ORDERED_PREFLUSH = 0x10, QUEUE_ORDERED_POSTFLUSH = 0x20, QUEUE_ORDERED_FUA = 0x40, QUEUE_ORDERED_DRAIN_FLUSH = QUEUE_ORDERED_DRAIN | QUEUE_ORDERED_PREFLUSH | QUEUE_ORDERED_POSTFLUSH, QUEUE_ORDERED_DRAIN_FUA = QUEUE_ORDERED_DRAIN | QUEUE_ORDERED_PREFLUSH | QUEUE_ORDERED_FUA, QUEUE_ORDERED_TAG_FLUSH = QUEUE_ORDERED_TAG | QUEUE_ORDERED_PREFLUSH | QUEUE_ORDERED_POSTFLUSH, QUEUE_ORDERED_TAG_FUA = QUEUE_ORDERED_TAG | QUEUE_ORDERED_PREFLUSH | QUEUE_ORDERED_FUA, QUEUE_ORDSEQ_STARTED = 0x01, QUEUE_ORDSEQ_DRAIN = 0x02, QUEUE_ORDSEQ_PREFLUSH = 0x04, QUEUE_ORDSEQ_BAR = 0x08, QUEUE_ORDSEQ_POSTFLUSH = 0x10, QUEUE_ORDSEQ_DONE = 0x20, }; # 568 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h" static inline __attribute__((always_inline)) int blk_queue_full(struct request_queue *q, int rw) { if (rw == 0) return test_bit(3, &q->queue_flags); return test_bit(4, &q->queue_flags); } static inline __attribute__((always_inline)) void blk_set_queue_full(struct request_queue *q, int rw) { if (rw == 0) set_bit(3, &q->queue_flags); else set_bit(4, &q->queue_flags); } static inline __attribute__((always_inline)) void blk_clear_queue_full(struct request_queue *q, int rw) { if (rw == 0) clear_bit(3, &q->queue_flags); else clear_bit(4, &q->queue_flags); } # 608 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h" extern unsigned long blk_max_low_pfn, blk_max_pfn; # 622 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h" extern int init_emergency_isa_pool(void); extern void blk_queue_bounce(request_queue_t *q, struct bio **bio); # 638 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h" extern int blk_register_queue(struct gendisk *disk); extern void blk_unregister_queue(struct gendisk *disk); extern void register_disk(struct gendisk *dev); extern void generic_make_request(struct bio *bio); extern void blk_put_request(struct request *); extern void __blk_put_request(request_queue_t *, struct request *); extern void blk_end_sync_rq(struct request *rq, int error); extern struct request *blk_get_request(request_queue_t *, int, gfp_t); extern void blk_insert_request(request_queue_t *, struct request *, int, void *); extern void blk_requeue_request(request_queue_t *, struct request *); extern void blk_plug_device(request_queue_t *); extern int blk_remove_plug(request_queue_t *); extern void blk_recount_segments(request_queue_t *, struct bio *); extern int scsi_cmd_ioctl(struct file *, struct gendisk *, unsigned int, void *); extern int sg_scsi_ioctl(struct file *, struct request_queue *, struct gendisk *, struct scsi_ioctl_command *); extern void blk_start_queue(request_queue_t *q); extern void blk_stop_queue(request_queue_t *q); extern void blk_sync_queue(struct request_queue *q); extern void __blk_stop_queue(request_queue_t *q); extern void blk_run_queue(request_queue_t *); extern void blk_start_queueing(request_queue_t *); extern void blk_queue_activity_fn(request_queue_t *, activity_fn *, void *); extern int blk_rq_map_user(request_queue_t *, struct request *, void *, unsigned int); extern int blk_rq_unmap_user(struct bio *, unsigned int); extern int blk_rq_map_kern(request_queue_t *, struct request *, void *, unsigned int, gfp_t); extern int blk_rq_map_user_iov(request_queue_t *, struct request *, struct sg_iovec *, int); extern int blk_execute_rq(request_queue_t *, struct gendisk *, struct request *, int); extern void blk_execute_rq_nowait(request_queue_t *, struct gendisk *, struct request *, int, rq_end_io_fn *); static inline __attribute__((always_inline)) request_queue_t *bdev_get_queue(struct block_device *bdev) { return bdev->bd_disk->queue; } static inline __attribute__((always_inline)) void blk_run_backing_dev(struct backing_dev_info *bdi, struct page *page) { if (bdi && bdi->unplug_io_fn) bdi->unplug_io_fn(bdi, page); } static inline __attribute__((always_inline)) void blk_run_address_space(struct address_space *mapping) { if (mapping) blk_run_backing_dev(mapping->backing_dev_info, ((void *)0)); } # 697 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h" extern int end_that_request_first(struct request *, int, int); extern int end_that_request_chunk(struct request *, int, int); extern void end_that_request_last(struct request *, int); extern void end_request(struct request *req, int uptodate); extern void blk_complete_request(struct request *); # 711 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h" static inline __attribute__((always_inline)) void blkdev_dequeue_request(struct request *req) { elv_dequeue_request(req->q, req); } extern request_queue_t *blk_init_queue_node(request_fn_proc *rfn, spinlock_t *lock, int node_id); extern request_queue_t *blk_init_queue(request_fn_proc *, spinlock_t *); extern void blk_cleanup_queue(request_queue_t *); extern void blk_queue_make_request(request_queue_t *, make_request_fn *); extern void blk_queue_bounce_limit(request_queue_t *, u64); extern void blk_queue_max_sectors(request_queue_t *, unsigned int); extern void blk_queue_max_phys_segments(request_queue_t *, unsigned short); extern void blk_queue_max_hw_segments(request_queue_t *, unsigned short); extern void blk_queue_max_segment_size(request_queue_t *, unsigned int); extern void blk_queue_hardsect_size(request_queue_t *, unsigned short); extern void blk_queue_stack_limits(request_queue_t *t, request_queue_t *b); extern void blk_queue_segment_boundary(request_queue_t *, unsigned long); extern void blk_queue_prep_rq(request_queue_t *, prep_rq_fn *pfn); extern void blk_queue_merge_bvec(request_queue_t *, merge_bvec_fn *); extern void blk_queue_dma_alignment(request_queue_t *, int); extern void blk_queue_softirq_done(request_queue_t *, softirq_done_fn *); extern struct backing_dev_info *blk_get_backing_dev_info(struct block_device *bdev); extern int blk_queue_ordered(request_queue_t *, unsigned, prepare_flush_fn *); extern void blk_queue_issue_flush_fn(request_queue_t *, issue_flush_fn *); extern int blk_do_ordered(request_queue_t *, struct request **); extern unsigned blk_ordered_cur_seq(request_queue_t *); extern unsigned blk_ordered_req_seq(struct request *); extern void blk_ordered_complete_seq(request_queue_t *, unsigned, int); extern int blk_rq_map_sg(request_queue_t *, struct request *, struct scatterlist *); extern void blk_dump_rq_flags(struct request *, char *); extern void generic_unplug_device(request_queue_t *); extern void __generic_unplug_device(request_queue_t *); extern long nr_blockdev_pages(void); int blk_get_queue(request_queue_t *); request_queue_t *blk_alloc_queue(gfp_t); request_queue_t *blk_alloc_queue_node(gfp_t, int); extern void blk_put_queue(request_queue_t *); extern int blk_queue_start_tag(request_queue_t *, struct request *); extern struct request *blk_queue_find_tag(request_queue_t *, int); extern void blk_queue_end_tag(request_queue_t *, struct request *); extern int blk_queue_init_tags(request_queue_t *, int, struct blk_queue_tag *); extern void blk_queue_free_tags(request_queue_t *); extern int blk_queue_resize_tags(request_queue_t *, int); extern void blk_queue_invalidate_tags(request_queue_t *); extern long blk_congestion_wait(int rw, long timeout); extern struct blk_queue_tag *blk_init_tags(int); extern void blk_free_tags(struct blk_queue_tag *); extern void blk_congestion_end(int rw); static inline __attribute__((always_inline)) struct request *blk_map_queue_find_tag(struct blk_queue_tag *bqt, int tag) { if (__builtin_expect(!!(bqt == ((void *)0) || tag >= bqt->real_max_depth), 0)) return ((void *)0); return bqt->tag_index[tag]; } extern void blk_rq_bio_prep(request_queue_t *, struct request *, struct bio *); extern int blkdev_issue_flush(struct block_device *, sector_t *); # 793 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h" static inline __attribute__((always_inline)) int queue_hardsect_size(request_queue_t *q) { int retval = 512; if (q && q->hardsect_size) retval = q->hardsect_size; return retval; } static inline __attribute__((always_inline)) int bdev_hardsect_size(struct block_device *bdev) { return queue_hardsect_size(bdev_get_queue(bdev)); } static inline __attribute__((always_inline)) int queue_dma_alignment(request_queue_t *q) { int retval = 511; if (q && q->dma_alignment) retval = q->dma_alignment; return retval; } static inline __attribute__((always_inline)) unsigned int blksize_bits(unsigned int size) { unsigned int bits = 8; do { bits++; size >>= 1; } while (size > 256); return bits; } static inline __attribute__((always_inline)) unsigned int block_size(struct block_device *bdev) { return bdev->bd_block_size; } typedef struct {struct page *v;} Sector; unsigned char *read_dev_sector(struct block_device *, sector_t, Sector *); static inline __attribute__((always_inline)) void put_dev_sector(Sector p) { put_page(p.v); } struct work_struct; int kblockd_schedule_work(struct work_struct *work); void kblockd_flush(void); # 30 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/scatterlist.h" 1 static inline __attribute__((always_inline)) void sg_set_buf(struct scatterlist *sg, const void *buf, unsigned int buflen) { sg->page = (mem_map + ((((unsigned long)(buf)-0x80000000) >> 12) - ((0x0C000000 >> 12)))); sg->offset = ((unsigned long)(buf) & ~(~((1UL << 12)-1))); sg->length = buflen; } static inline __attribute__((always_inline)) void sg_init_one(struct scatterlist *sg, const void *buf, unsigned int buflen) { memset(sg, 0, sizeof(*sg)); sg_set_buf(sg, buf, buflen); } # 32 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmc/card.h" 1 # 13 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmc/card.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmc/mmc.h" 1 # 12 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmc/mmc.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/interrupt.h" 1 # 13 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/interrupt.h" # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irqflags.h" 1 # 14 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/interrupt.h" 2 # 67 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/interrupt.h" typedef irqreturn_t (*irq_handler_t)(int, void *); struct irqaction { irq_handler_t handler; unsigned long flags; cpumask_t mask; const char *name; void *dev_id; struct irqaction *next; int irq; struct proc_dir_entry *dir; }; extern irqreturn_t no_action(int cpl, void *dev_id); extern int request_irq(unsigned int, irq_handler_t handler, unsigned long, const char *, void *); extern void free_irq(unsigned int, void *); # 104 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/interrupt.h" extern void disable_irq_nosync(unsigned int irq); extern void disable_irq(unsigned int irq); extern void enable_irq(unsigned int irq); # 119 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/interrupt.h" static inline __attribute__((always_inline)) void disable_irq_nosync_lockdep(unsigned int irq) { disable_irq_nosync(irq); } static inline __attribute__((always_inline)) void disable_irq_nosync_lockdep_irqsave(unsigned int irq, unsigned long *flags) { disable_irq_nosync(irq); } static inline __attribute__((always_inline)) void disable_irq_lockdep(unsigned int irq) { disable_irq(irq); } static inline __attribute__((always_inline)) void enable_irq_lockdep(unsigned int irq) { enable_irq(irq); } static inline __attribute__((always_inline)) void enable_irq_lockdep_irqrestore(unsigned int irq, unsigned long *flags) { enable_irq(irq); } extern int set_irq_wake(unsigned int irq, unsigned int on); static inline __attribute__((always_inline)) int enable_irq_wake(unsigned int irq) { return set_irq_wake(irq, 1); } static inline __attribute__((always_inline)) int disable_irq_wake(unsigned int irq) { return set_irq_wake(irq, 0); } # 195 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/interrupt.h" static inline __attribute__((always_inline)) void __attribute__((deprecated)) cli(void) { local_irq_disable(); } static inline __attribute__((always_inline)) void __attribute__((deprecated)) sti(void) { local_irq_enable(); } static inline __attribute__((always_inline)) void __attribute__((deprecated)) save_flags(unsigned long *x) { __asm__("stc sr, %0; and #0xf0, %0" : "=&z" (*x) : : "memory" ); } static inline __attribute__((always_inline)) void __attribute__((deprecated)) restore_flags(unsigned long x) { do { if ((x & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0); } static inline __attribute__((always_inline)) void __attribute__((deprecated)) save_and_cli(unsigned long *x) { *x = local_irq_save(); } extern void local_bh_disable(void); extern void __local_bh_enable(void); extern void _local_bh_enable(void); extern void local_bh_enable(void); extern void local_bh_enable_ip(unsigned long ip); enum { HI_SOFTIRQ=0, TIMER_SOFTIRQ, NET_TX_SOFTIRQ, NET_RX_SOFTIRQ, BLOCK_SOFTIRQ, TASKLET_SOFTIRQ }; struct softirq_action { void (*action)(struct softirq_action *); void *data; }; void do_softirq(void); extern void open_softirq(int nr, void (*action)(struct softirq_action*), void *data); extern void softirq_init(void); extern void raise_softirq_irqoff(unsigned int nr); extern void raise_softirq(unsigned int nr); # 280 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/interrupt.h" struct tasklet_struct { struct tasklet_struct *next; unsigned long state; atomic_t count; void (*func)(unsigned long); unsigned long data; }; # 296 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/interrupt.h" enum { TASKLET_STATE_SCHED, TASKLET_STATE_RUN }; # 324 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/interrupt.h" extern void __tasklet_schedule(struct tasklet_struct *t); static inline __attribute__((always_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); static inline __attribute__((always_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 __attribute__((always_inline)) void tasklet_disable_nosync(struct tasklet_struct *t) { atomic_add(1,(&t->count)); __asm__ __volatile__("": : :"memory"); } static inline __attribute__((always_inline)) void tasklet_disable(struct tasklet_struct *t) { tasklet_disable_nosync(t); do { } while (0); __asm__ __volatile__("": : :"memory"); } static inline __attribute__((always_inline)) void tasklet_enable(struct tasklet_struct *t) { __asm__ __volatile__("": : :"memory"); atomic_sub(1,(&t->count)); } static inline __attribute__((always_inline)) void tasklet_hi_enable(struct tasklet_struct *t) { __asm__ __volatile__("": : :"memory"); atomic_sub(1,(&t->count)); } extern void tasklet_kill(struct tasklet_struct *t); extern void tasklet_kill_immediate(struct tasklet_struct *t, unsigned int cpu); extern void tasklet_init(struct tasklet_struct *t, void (*func)(unsigned long), unsigned long data); # 413 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/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); # 13 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmc/mmc.h" 2 struct request; struct mmc_data; struct mmc_request; struct mmc_command { u32 opcode; u32 arg; u32 resp[4]; unsigned int flags; # 54 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmc/mmc.h" unsigned int retries; unsigned int error; # 64 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmc/mmc.h" struct mmc_data *data; struct mmc_request *mrq; }; struct mmc_data { unsigned int timeout_ns; unsigned int timeout_clks; unsigned int blksz; unsigned int blocks; unsigned int error; unsigned int flags; unsigned int bytes_xfered; struct mmc_command *stop; struct mmc_request *mrq; unsigned int sg_len; struct scatterlist *sg; }; struct mmc_request { struct mmc_command *cmd; struct mmc_data *data; struct mmc_command *stop; void *done_data; void (*done)(struct mmc_request *); }; struct mmc_host; struct mmc_card; extern int mmc_wait_for_req(struct mmc_host *, struct mmc_request *); extern int mmc_wait_for_cmd(struct mmc_host *, struct mmc_command *, int); extern int mmc_wait_for_app_cmd(struct mmc_host *, unsigned int, struct mmc_command *, int); extern void mmc_set_data_timeout(struct mmc_data *, const struct mmc_card *, int); extern int __mmc_claim_host(struct mmc_host *host, struct mmc_card *card); static inline __attribute__((always_inline)) void mmc_claim_host(struct mmc_host *host) { __mmc_claim_host(host, (struct mmc_card *)-1); } extern void mmc_release_host(struct mmc_host *host); # 14 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmc/card.h" 2 struct mmc_cid { unsigned int manfid; char prod_name[8]; unsigned int serial; unsigned short oemid; unsigned short year; unsigned char hwrev; unsigned char fwrev; unsigned char month; }; struct mmc_csd { unsigned char mmca_vsn; unsigned short cmdclass; unsigned short tacc_clks; unsigned int tacc_ns; unsigned int r2w_factor; unsigned int max_dtr; unsigned int read_blkbits; unsigned int write_blkbits; unsigned int capacity; unsigned int read_partial:1, read_misalign:1, write_partial:1, write_misalign:1; }; struct sd_scr { unsigned char sda_vsn; unsigned char bus_widths; }; struct mmc_host; struct mmc_card { struct list_head node; struct mmc_host *host; struct device dev; unsigned int rca; unsigned int state; u32 raw_cid[4]; u32 raw_csd[4]; u32 raw_scr[2]; struct mmc_cid cid; struct mmc_csd csd; struct sd_scr scr; }; # 95 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmc/card.h" struct mmc_driver { struct device_driver drv; int (*probe)(struct mmc_card *); void (*remove)(struct mmc_card *); int (*suspend)(struct mmc_card *, pm_message_t); int (*resume)(struct mmc_card *); }; extern int mmc_register_driver(struct mmc_driver *); extern void mmc_unregister_driver(struct mmc_driver *); static inline __attribute__((always_inline)) int mmc_card_claim_host(struct mmc_card *card) { return __mmc_claim_host(card->host, card); } # 34 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmc/host.h" 1 # 15 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmc/host.h" struct mmc_ios { unsigned int clock; unsigned short vdd; # 44 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmc/host.h" unsigned char bus_mode; unsigned char chip_select; unsigned char power_mode; unsigned char bus_width; }; struct mmc_host_ops { void (*request)(struct mmc_host *host, struct mmc_request *req); void (*set_ios)(struct mmc_host *host, struct mmc_ios *ios); int (*get_ro)(struct mmc_host *host); }; struct mmc_card; struct device; struct mmc_host { struct device *dev; struct class_device class_dev; int index; const struct mmc_host_ops *ops; unsigned int f_min; unsigned int f_max; u32 ocr_avail; unsigned long caps; unsigned int max_seg_size; unsigned short max_hw_segs; unsigned short max_phys_segs; unsigned short max_sectors; unsigned short unused; struct mmc_ios ios; u32 ocr; unsigned int mode; struct list_head cards; wait_queue_head_t wq; spinlock_t lock; struct mmc_card *card_busy; struct mmc_card *card_selected; struct work_struct detect; unsigned long private[0] __attribute__((__aligned__((1 << 5)))); }; extern struct mmc_host *mmc_alloc_host(int extra, struct device *); extern int mmc_add_host(struct mmc_host *); extern void mmc_remove_host(struct mmc_host *); extern void mmc_free_host(struct mmc_host *); static inline __attribute__((always_inline)) void *mmc_priv(struct mmc_host *host) { return (void *)host->private; } extern int mmc_suspend_host(struct mmc_host *, pm_message_t); extern int mmc_resume_host(struct mmc_host *); extern void mmc_detect_change(struct mmc_host *, unsigned long delay); extern void mmc_request_done(struct mmc_host *, struct mmc_request *); # 35 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmc/protocol.h" 1 # 131 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmc/protocol.h" struct _mmc_csd { u8 csd_structure; u8 spec_vers; u8 taac; u8 nsac; u8 tran_speed; u16 ccc; u8 read_bl_len; u8 read_bl_partial; u8 write_blk_misalign; u8 read_blk_misalign; u8 dsr_imp; u16 c_size; u8 vdd_r_curr_min; u8 vdd_r_curr_max; u8 vdd_w_curr_min; u8 vdd_w_curr_max; u8 c_size_mult; union { struct { u8 erase_grp_size; u8 erase_grp_mult; } v31; struct { u8 sector_size; u8 erase_grp_size; } v22; } erase; u8 wp_grp_size; u8 wp_grp_enable; u8 default_ecc; u8 r2w_factor; u8 write_bl_len; u8 write_bl_partial; u8 file_format_grp; u8 copy; u8 perm_write_protect; u8 tmp_write_protect; u8 file_format; u8 ecc; }; # 36 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c" 2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_queue.h" 1 struct request; struct task_struct; struct mmc_queue { struct mmc_card *card; struct completion thread_complete; wait_queue_head_t thread_wq; struct semaphore thread_sem; unsigned int flags; struct request *req; int (*prep_fn)(struct mmc_queue *, struct request *); int (*issue_fn)(struct mmc_queue *, struct request *); void *data; struct request_queue *queue; struct scatterlist *sg; }; struct mmc_io_request { struct request *rq; int num; struct mmc_command selcmd; struct mmc_command cmd[4]; }; extern int mmc_init_queue(struct mmc_queue *, struct mmc_card *, spinlock_t *); extern void mmc_cleanup_queue(struct mmc_queue *); extern void mmc_queue_suspend(struct mmc_queue *); extern void mmc_queue_resume(struct mmc_queue *); # 42 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c" 2 static int major; struct mmc_blk_data { spinlock_t lock; struct gendisk *disk; struct mmc_queue queue; unsigned int usage; unsigned int block_bits; unsigned int read_only; }; static struct mutex open_lock = { .count = ( (atomic_t) { (1) } ) , .wait_lock = (spinlock_t) { .raw_lock = { }, } , .wait_list = { &(open_lock.wait_list), &(open_lock.wait_list) } }; static struct mmc_blk_data *mmc_blk_get(struct gendisk *disk) { struct mmc_blk_data *md; mutex_lock(&open_lock); md = disk->private_data; if (md && md->usage == 0) md = ((void *)0); if (md) md->usage++; mutex_unlock(&open_lock); return md; } static void mmc_blk_put(struct mmc_blk_data *md) { mutex_lock(&open_lock); md->usage--; if (md->usage == 0) { put_disk(md->disk); mmc_cleanup_queue(&md->queue); kfree(md); } mutex_unlock(&open_lock); } static int mmc_blk_open(struct inode *inode, struct file *filp) { struct mmc_blk_data *md; int ret = -6; md = mmc_blk_get(inode->i_bdev->bd_disk); if (md) { if (md->usage == 2) check_disk_change(inode->i_bdev); ret = 0; if ((filp->f_mode & 2) && md->read_only) ret = -30; } return ret; } static int mmc_blk_release(struct inode *inode, struct file *filp) { struct mmc_blk_data *md = inode->i_bdev->bd_disk->private_data; mmc_blk_put(md); return 0; } static int mmc_blk_getgeo(struct block_device *bdev, struct hd_geometry *geo) { geo->cylinders = get_capacity(bdev->bd_disk) / (4 * 16); geo->heads = 4; geo->sectors = 16; return 0; } static struct block_device_operations mmc_bdops = { .open = mmc_blk_open, .release = mmc_blk_release, .getgeo = mmc_blk_getgeo, .owner = ((struct module *)0), }; struct mmc_blk_request { struct mmc_request mrq; struct mmc_command cmd; struct mmc_command stop; struct mmc_data data; }; static int mmc_blk_prep_rq(struct mmc_queue *mq, struct request *req) { struct mmc_blk_data *md = mq->data; int stat = 0; if (!md || !mq->card) { printk("<3>" "%s: killing request - no device/host\n", req->rq_disk->disk_name); stat = 1; } return stat; } static u32 mmc_sd_num_wr_blocks(struct mmc_card *card) { int err; u32 blocks; struct mmc_request mrq; struct mmc_command cmd; struct mmc_data data; unsigned int timeout_us; struct scatterlist sg; memset(&cmd, 0, sizeof(struct mmc_command)); cmd.opcode = 55; cmd.arg = card->rca << 16; cmd.flags = ((1 << 0)|(1 << 2)|(1 << 4)) | (0 << 5); err = mmc_wait_for_cmd(card->host, &cmd, 0); if ((err != 0) || !(cmd.resp[0] & (1 << 5))) return (u32)-1; memset(&cmd, 0, sizeof(struct mmc_command)); cmd.opcode = 22; cmd.arg = 0; cmd.flags = ((1 << 0)|(1 << 2)|(1 << 4)) | (1 << 5); memset(&data, 0, sizeof(struct mmc_data)); data.timeout_ns = card->csd.tacc_ns * 100; data.timeout_clks = card->csd.tacc_clks * 100; timeout_us = data.timeout_ns / 1000; timeout_us += data.timeout_clks * 1000 / (card->host->ios.clock / 1000); if (timeout_us > 100000) { data.timeout_ns = 100000000; data.timeout_clks = 0; } data.blksz = 4; data.blocks = 1; data.flags = (1 << 9); data.sg = &sg; data.sg_len = 1; memset(&mrq, 0, sizeof(struct mmc_request)); mrq.cmd = &cmd; mrq.data = &data; sg_init_one(&sg, &blocks, 4); mmc_wait_for_req(card->host, &mrq); if (cmd.error != 0 || data.error != 0) return (u32)-1; blocks = (__builtin_constant_p((__u32)(( __u32)(__be32)(blocks))) ? ({ __u32 __x = ((( __u32)(__be32)(blocks))); ((__u32)( (((__u32)(__x) & (__u32)0x000000ffUL) << 24) | (((__u32)(__x) & (__u32)0x0000ff00UL) << 8) | (((__u32)(__x) & (__u32)0x00ff0000UL) >> 8) | (((__u32)(__x) & (__u32)0xff000000UL) >> 24) )); }) : __fswab32((( __u32)(__be32)(blocks)))); return blocks; } static int mmc_blk_issue_rq(struct mmc_queue *mq, struct request *req) { struct mmc_blk_data *md = mq->data; struct mmc_card *card = md->queue.card; struct mmc_blk_request brq; int ret; if (mmc_card_claim_host(card)) goto cmd_err; do { struct mmc_command cmd; u32 readcmd, writecmd; memset(&brq, 0, sizeof(struct mmc_blk_request)); brq.mrq.cmd = &brq.cmd; brq.mrq.data = &brq.data; brq.cmd.arg = req->sector << 9; brq.cmd.flags = ((1 << 0)|(1 << 2)|(1 << 4)) | (1 << 5); brq.data.blksz = 1 << md->block_bits; brq.data.blocks = req->nr_sectors >> (md->block_bits - 9); brq.stop.opcode = 12; brq.stop.arg = 0; brq.stop.flags = ((1 << 0)|(1 << 2)|(1 << 4)|(1 << 3)) | (0 << 5); mmc_set_data_timeout(&brq.data, card, ((req)->cmd_flags & 1) != 0); if (((req)->cmd_flags & 1) != 0 && !(card->host->caps & (1 << 1)) && !((card)->state & (1<<3))) brq.data.blocks = 1; if (brq.data.blocks > 1) { brq.data.flags |= (1 << 11); brq.mrq.stop = &brq.stop; readcmd = 18; writecmd = 25; } else { brq.mrq.stop = ((void *)0); readcmd = 17; writecmd = 24; } if (((req)->cmd_flags & 1) == 0) { brq.cmd.opcode = readcmd; brq.data.flags |= (1 << 9); } else { brq.cmd.opcode = writecmd; brq.data.flags |= (1 << 8); } brq.data.sg = mq->sg; brq.data.sg_len = blk_rq_map_sg(req->q, req, brq.data.sg); mmc_wait_for_req(card->host, &brq.mrq); if (brq.cmd.error) { printk("<3>" "%s: error %d sending read/write command\n", req->rq_disk->disk_name, brq.cmd.error); goto cmd_err; } if (brq.data.error) { printk("<3>" "%s: error %d transferring data\n", req->rq_disk->disk_name, brq.data.error); goto cmd_err; } if (brq.stop.error) { printk("<3>" "%s: error %d sending stop command\n", req->rq_disk->disk_name, brq.stop.error); goto cmd_err; } if (((req)->cmd_flags & 1) != 0) { do { int err; cmd.opcode = 13; cmd.arg = card->rca << 16; cmd.flags = ((1 << 0)|(1 << 2)|(1 << 4)) | (0 << 5); err = mmc_wait_for_cmd(card->host, &cmd, 5); if (err) { printk("<3>" "%s: error %d requesting status\n", req->rq_disk->disk_name, err); goto cmd_err; } } while (!(cmd.resp[0] & (1 << 8))); # 325 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c" } do { local_irq_disable(); do { do { } while (0); (void)0; (void)(&md->lock); } while (0); } while (0); ret = end_that_request_chunk(req, 1, brq.data.bytes_xfered); if (!ret) { add_disk_randomness(req->rq_disk); blkdev_dequeue_request(req); end_that_request_last(req, 1); } do { local_irq_enable(); do { do { } while (0); (void)0; (void)(&md->lock); } while (0); } while (0); } while (ret); mmc_release_host((card)->host); return 1; cmd_err: ret = 1; # 360 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c" if (((req)->cmd_flags & 1) != 0 && ((card)->state & (1<<3))) { u32 blocks; unsigned int bytes; blocks = mmc_sd_num_wr_blocks(card); if (blocks != (u32)-1) { if (card->csd.write_partial) bytes = blocks << md->block_bits; else bytes = blocks << 9; do { local_irq_disable(); do { do { } while (0); (void)0; (void)(&md->lock); } while (0); } while (0); ret = end_that_request_chunk(req, 1, bytes); do { local_irq_enable(); do { do { } while (0); (void)0; (void)(&md->lock); } while (0); } while (0); } } else if (((req)->cmd_flags & 1) != 0 && (card->host->caps & (1 << 1))) { do { local_irq_disable(); do { do { } while (0); (void)0; (void)(&md->lock); } while (0); } while (0); ret = end_that_request_chunk(req, 1, brq.data.bytes_xfered); do { local_irq_enable(); do { do { } while (0); (void)0; (void)(&md->lock); } while (0); } while (0); } mmc_release_host((card)->host); do { local_irq_disable(); do { do { } while (0); (void)0; (void)(&md->lock); } while (0); } while (0); while (ret) { ret = end_that_request_chunk(req, 0, req->current_nr_sectors << 9); } add_disk_randomness(req->rq_disk); blkdev_dequeue_request(req); end_that_request_last(req, 0); do { local_irq_enable(); do { do { } while (0); (void)0; (void)(&md->lock); } while (0); } while (0); return 0; } static unsigned long dev_use[(256 >> 3)/(8*sizeof(unsigned long))]; static inline __attribute__((always_inline)) int mmc_blk_readonly(struct mmc_card *card) { return ((card)->state & (1<<4)) || !(card->csd.cmdclass & (1<<4)); } static struct mmc_blk_data *mmc_blk_alloc(struct mmc_card *card) { struct mmc_blk_data *md; int devidx, ret; devidx = find_next_zero_bit((dev_use), ((256 >> 3)), 0); if (devidx >= (256 >> 3)) return ERR_PTR(-28); __set_bit(devidx, dev_use); md = kmalloc(sizeof(struct mmc_blk_data), ((( gfp_t)0x10u) | (( gfp_t)0x40u) | (( gfp_t)0x80u))); if (!md) { ret = -12; goto out; } memset(md, 0, sizeof(struct mmc_blk_data)); md->read_only = mmc_blk_readonly(card); md->block_bits = 9; md->disk = alloc_disk(1 << 3); if (md->disk == ((void *)0)) { ret = -12; goto err_kfree; } do { *(&md->lock) = (spinlock_t) { .raw_lock = { }, }; } while (0); md->usage = 1; ret = mmc_init_queue(&md->queue, card, &md->lock); if (ret) goto err_putdisk; md->queue.prep_fn = mmc_blk_prep_rq; md->queue.issue_fn = mmc_blk_issue_rq; md->queue.data = md; md->disk->major = major; md->disk->first_minor = devidx << 3; md->disk->fops = &mmc_bdops; md->disk->private_data = md; md->disk->queue = md->queue.queue; md->disk->driverfs_dev = &card->dev; # 474 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c" sprintf(md->disk->disk_name, "mmcblk%d", devidx); blk_queue_hardsect_size(md->queue.queue, 1 << md->block_bits); set_capacity(md->disk, card->csd.capacity << (card->csd.read_blkbits - 9)); return md; err_putdisk: put_disk(md->disk); err_kfree: kfree(md); out: return ERR_PTR(ret); } static int mmc_blk_set_blksize(struct mmc_blk_data *md, struct mmc_card *card) { struct mmc_command cmd; int err; mmc_card_claim_host(card); cmd.opcode = 16; cmd.arg = 1 << md->block_bits; cmd.flags = ((1 << 0)|(1 << 2)|(1 << 4)) | (0 << 5); err = mmc_wait_for_cmd(card->host, &cmd, 5); mmc_release_host((card)->host); if (err) { printk("<3>" "%s: unable to set block size to %d: %d\n", md->disk->disk_name, cmd.arg, err); return -22; } return 0; } static int mmc_blk_probe(struct mmc_card *card) { struct mmc_blk_data *md; int err; if (!(card->csd.cmdclass & (1<<2))) return -19; md = mmc_blk_alloc(card); if (IS_ERR(md)) return PTR_ERR(md); err = mmc_blk_set_blksize(md, card); if (err) goto out; printk("<6>" "%s: %s %s %lluKiB %s\n", md->disk->disk_name, ((card)->dev.bus_id), ((card)->cid.prod_name), (unsigned long long)(get_capacity(md->disk) >> 1), md->read_only ? "(ro)" : ""); dev_set_drvdata(&(card)->dev, md); add_disk(md->disk); return 0; out: mmc_blk_put(md); return err; } static void mmc_blk_remove(struct mmc_card *card) { struct mmc_blk_data *md = dev_get_drvdata(&(card)->dev); if (md) { int devidx; del_gendisk(md->disk); md->disk->queue = ((void *)0); devidx = md->disk->first_minor >> 3; __clear_bit(devidx, dev_use); mmc_blk_put(md); } dev_set_drvdata(&(card)->dev, ((void *)0)); } # 597 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c" static struct mmc_driver mmc_driver = { .drv = { .name = "mmcblk", }, .probe = mmc_blk_probe, .remove = mmc_blk_remove, .suspend = ((void *)0), .resume = ((void *)0), }; static int __attribute__ ((__section__ (".init.text"))) mmc_blk_init(void) { int res = -12; res = register_blkdev(major, "mmc"); if (res < 0) { printk("<4>" "Unable to get major %d for MMC media: %d\n", major, res); goto out; } if (major == 0) major = res; return mmc_register_driver(&mmc_driver); out: return res; } static void __attribute__((__used__)) __attribute__ ((__section__(".exit.text"))) mmc_blk_exit(void) { mmc_unregister_driver(&mmc_driver); unregister_blkdev(major, "mmc"); } static initcall_t __initcall_mmc_blk_init __attribute__((__used__)) __attribute__((__section__(".initcall" "6" ".init"))) = mmc_blk_init;; static exitcall_t __exitcall_mmc_blk_exit __attribute__((__used__)) __attribute__ ((__section__ (".exitcall.exit"))) = mmc_blk_exit;; ; ; static inline __attribute__((always_inline)) int *__check_major(void) { return(&(major)); }; static char __param_str_major[] = "mmc_block" "." "major"; static struct kernel_param const __param_major __attribute__((__used__)) __attribute__ ((unused,__section__ ("__param"),aligned(sizeof(void *)))) = { __param_str_major, 0444, param_set_int, param_get_int, &major }; ; ;