1 // /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
2 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c"
5 # 1 "./include/linux/autoconf.h" 1
7 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c"
8 # 19 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c"
9 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/moduleparam.h" 1
13 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/init.h" 1
17 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/compiler.h" 1
18 # 42 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/compiler.h"
19 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/compiler-gcc4.h" 1
23 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/compiler-gcc.h" 1
24 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/compiler-gcc4.h" 2
25 # 43 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/compiler.h" 2
26 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/init.h" 2
27 # 63 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/init.h"
28 typedef int (*initcall_t)(void);
29 typedef void (*exitcall_t)(void);
31 extern initcall_t __con_initcall_start[], __con_initcall_end[];
32 extern initcall_t __security_initcall_start[], __security_initcall_end[];
35 extern char saved_command_line[];
36 extern unsigned int reset_devices;
39 extern void setup_arch(char **);
40 # 114 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/init.h"
41 struct obs_kernel_param {
43 int (*setup_func)(char *);
46 # 149 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/init.h"
47 void __attribute__ ((__section__ (".init.text"))) parse_early_param(void);
48 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/moduleparam.h" 2
49 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/stringify.h" 1
50 # 6 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/moduleparam.h" 2
51 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kernel.h" 1
52 # 10 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kernel.h"
53 # 1 "/usr/lib/gcc/sh4-unknown-linux-gnu/4.1.1/include/stdarg.h" 1 3 4
54 # 43 "/usr/lib/gcc/sh4-unknown-linux-gnu/4.1.1/include/stdarg.h" 3 4
55 typedef __builtin_va_list __gnuc_va_list;
56 # 105 "/usr/lib/gcc/sh4-unknown-linux-gnu/4.1.1/include/stdarg.h" 3 4
57 typedef __gnuc_va_list va_list;
58 # 11 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kernel.h" 2
59 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/linkage.h" 1
63 # 1 "include2/asm/linkage.h" 1
64 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/linkage.h" 2
65 # 12 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kernel.h" 2
66 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/stddef.h" 1
67 # 15 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/stddef.h"
72 # 13 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kernel.h" 2
73 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/types.h" 1
74 # 14 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/types.h"
75 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/posix_types.h" 1
76 # 36 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/posix_types.h"
78 unsigned long fds_bits [(1024/(8 * sizeof(unsigned long)))];
82 typedef void (*__kernel_sighandler_t)(int);
85 typedef int __kernel_key_t;
86 typedef int __kernel_mqd_t;
88 # 1 "include2/asm/posix_types.h" 1
89 # 10 "include2/asm/posix_types.h"
90 typedef unsigned long __kernel_ino_t;
91 typedef unsigned short __kernel_mode_t;
92 typedef unsigned short __kernel_nlink_t;
93 typedef long __kernel_off_t;
94 typedef int __kernel_pid_t;
95 typedef unsigned short __kernel_ipc_pid_t;
96 typedef unsigned short __kernel_uid_t;
97 typedef unsigned short __kernel_gid_t;
98 typedef unsigned int __kernel_size_t;
99 typedef int __kernel_ssize_t;
100 typedef int __kernel_ptrdiff_t;
101 typedef long __kernel_time_t;
102 typedef long __kernel_suseconds_t;
103 typedef long __kernel_clock_t;
104 typedef int __kernel_timer_t;
105 typedef int __kernel_clockid_t;
106 typedef int __kernel_daddr_t;
107 typedef char * __kernel_caddr_t;
108 typedef unsigned short __kernel_uid16_t;
109 typedef unsigned short __kernel_gid16_t;
110 typedef unsigned int __kernel_uid32_t;
111 typedef unsigned int __kernel_gid32_t;
113 typedef unsigned short __kernel_old_uid_t;
114 typedef unsigned short __kernel_old_gid_t;
115 typedef unsigned short __kernel_old_dev_t;
118 typedef long long __kernel_loff_t;
132 static __inline__ __attribute__((always_inline)) void __FD_SET(unsigned long __fd, __kernel_fd_set *__fdsetp)
134 unsigned long __tmp = __fd / (8 * sizeof(unsigned long));
135 unsigned long __rem = __fd % (8 * sizeof(unsigned long));
136 __fdsetp->fds_bits[__tmp] |= (1UL<<__rem);
140 static __inline__ __attribute__((always_inline)) void __FD_CLR(unsigned long __fd, __kernel_fd_set *__fdsetp)
142 unsigned long __tmp = __fd / (8 * sizeof(unsigned long));
143 unsigned long __rem = __fd % (8 * sizeof(unsigned long));
144 __fdsetp->fds_bits[__tmp] &= ~(1UL<<__rem);
149 static __inline__ __attribute__((always_inline)) int __FD_ISSET(unsigned long __fd, const __kernel_fd_set *__p)
151 unsigned long __tmp = __fd / (8 * sizeof(unsigned long));
152 unsigned long __rem = __fd % (8 * sizeof(unsigned long));
153 return (__p->fds_bits[__tmp] & (1UL<<__rem)) != 0;
161 static __inline__ __attribute__((always_inline)) void __FD_ZERO(__kernel_fd_set *__p)
163 unsigned long *__tmp = __p->fds_bits;
166 if (__builtin_constant_p((1024/(8 * sizeof(unsigned long))))) {
167 switch ((1024/(8 * sizeof(unsigned long)))) {
169 __tmp[ 0] = 0; __tmp[ 1] = 0;
170 __tmp[ 2] = 0; __tmp[ 3] = 0;
171 __tmp[ 4] = 0; __tmp[ 5] = 0;
172 __tmp[ 6] = 0; __tmp[ 7] = 0;
173 __tmp[ 8] = 0; __tmp[ 9] = 0;
174 __tmp[10] = 0; __tmp[11] = 0;
175 __tmp[12] = 0; __tmp[13] = 0;
176 __tmp[14] = 0; __tmp[15] = 0;
180 __tmp[ 0] = 0; __tmp[ 1] = 0;
181 __tmp[ 2] = 0; __tmp[ 3] = 0;
182 __tmp[ 4] = 0; __tmp[ 5] = 0;
183 __tmp[ 6] = 0; __tmp[ 7] = 0;
187 __tmp[ 0] = 0; __tmp[ 1] = 0;
188 __tmp[ 2] = 0; __tmp[ 3] = 0;
192 __i = (1024/(8 * sizeof(unsigned long)));
199 # 48 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/posix_types.h" 2
200 # 15 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/types.h" 2
201 # 1 "include2/asm/types.h" 1
207 typedef unsigned short umode_t;
214 typedef __signed__ char __s8;
215 typedef unsigned char __u8;
217 typedef __signed__ short __s16;
218 typedef unsigned short __u16;
220 typedef __signed__ int __s32;
221 typedef unsigned int __u32;
224 typedef __signed__ long long __s64;
225 typedef unsigned long long __u64;
226 # 39 "include2/asm/types.h"
227 typedef __signed__ char s8;
228 typedef unsigned char u8;
230 typedef __signed__ short s16;
231 typedef unsigned short u16;
233 typedef __signed__ int s32;
234 typedef unsigned int u32;
236 typedef __signed__ long long s64;
237 typedef unsigned long long u64;
241 typedef u32 dma_addr_t;
244 typedef u64 sector_t;
249 typedef u64 blkcnt_t;
250 # 16 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/types.h" 2
254 typedef __u32 __kernel_dev_t;
256 typedef __kernel_fd_set fd_set;
257 typedef __kernel_dev_t dev_t;
258 typedef __kernel_ino_t ino_t;
259 typedef __kernel_mode_t mode_t;
260 typedef __kernel_nlink_t nlink_t;
261 typedef __kernel_off_t off_t;
262 typedef __kernel_pid_t pid_t;
263 typedef __kernel_daddr_t daddr_t;
264 typedef __kernel_key_t key_t;
265 typedef __kernel_suseconds_t suseconds_t;
266 typedef __kernel_timer_t timer_t;
267 typedef __kernel_clockid_t clockid_t;
268 typedef __kernel_mqd_t mqd_t;
273 typedef __kernel_uid32_t uid_t;
274 typedef __kernel_gid32_t gid_t;
275 typedef __kernel_uid16_t uid16_t;
276 typedef __kernel_gid16_t gid16_t;
280 typedef __kernel_old_uid_t old_uid_t;
281 typedef __kernel_old_gid_t old_gid_t;
282 # 58 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/types.h"
283 typedef __kernel_loff_t loff_t;
284 # 67 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/types.h"
285 typedef __kernel_size_t size_t;
290 typedef __kernel_ssize_t ssize_t;
295 typedef __kernel_ptrdiff_t ptrdiff_t;
300 typedef __kernel_time_t time_t;
305 typedef __kernel_clock_t clock_t;
310 typedef __kernel_caddr_t caddr_t;
314 typedef unsigned char u_char;
315 typedef unsigned short u_short;
316 typedef unsigned int u_int;
317 typedef unsigned long u_long;
320 typedef unsigned char unchar;
321 typedef unsigned short ushort;
322 typedef unsigned int uint;
323 typedef unsigned long ulong;
328 typedef __u8 u_int8_t;
330 typedef __u16 u_int16_t;
331 typedef __s16 int16_t;
332 typedef __u32 u_int32_t;
333 typedef __s32 int32_t;
337 typedef __u8 uint8_t;
338 typedef __u16 uint16_t;
339 typedef __u32 uint32_t;
342 typedef __u64 uint64_t;
343 typedef __u64 u_int64_t;
344 typedef __s64 int64_t;
345 # 175 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/types.h"
346 typedef __u16 __le16;
347 typedef __u16 __be16;
348 typedef __u32 __le32;
349 typedef __u32 __be32;
351 typedef __u64 __le64;
352 typedef __u64 __be64;
356 typedef unsigned gfp_t;
361 typedef u32 resource_size_t;
367 __kernel_daddr_t f_tfree;
368 __kernel_ino_t f_tinode;
372 # 14 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kernel.h" 2
374 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/bitops.h" 1
375 # 9 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/bitops.h"
376 # 1 "include2/asm/bitops.h" 1
381 # 1 "include2/asm/system.h" 1
382 # 66 "include2/asm/system.h"
383 static inline __attribute__((always_inline)) void sched_cacheflush(void)
386 # 82 "include2/asm/system.h"
387 static inline __attribute__((always_inline)) unsigned long tas(volatile int *m)
389 unsigned long retval;
391 __asm__ __volatile__ ("tas.b @%1\n\t"
393 : "=r" (retval): "r" (m): "t", "memory");
396 # 136 "include2/asm/system.h"
397 static inline __attribute__((always_inline)) void local_irq_enable(void)
399 unsigned long __dummy0, __dummy1;
401 __asm__ __volatile__("stc sr, %0\n\t"
403 "stc r6_bank, %1\n\t"
406 : "=&r" (__dummy0), "=r" (__dummy1)
410 # 164 "include2/asm/system.h"
411 static inline __attribute__((always_inline)) void local_irq_disable(void)
413 unsigned long __dummy;
414 __asm__ __volatile__("stc sr, %0\n\t"
422 static inline __attribute__((always_inline)) void set_bl_bit(void)
424 unsigned long __dummy0, __dummy1;
426 __asm__ __volatile__ ("stc sr, %0\n\t"
430 : "=&r" (__dummy0), "=r" (__dummy1)
431 : "r" (0x10000000), "r" (0xffffff0f)
435 static inline __attribute__((always_inline)) void clear_bl_bit(void)
437 unsigned long __dummy0, __dummy1;
439 __asm__ __volatile__ ("stc sr, %0\n\t"
442 : "=&r" (__dummy0), "=r" (__dummy1)
446 # 210 "include2/asm/system.h"
447 static inline __attribute__((always_inline)) unsigned long local_irq_save(void)
449 unsigned long flags, __dummy;
451 __asm__ __volatile__("stc sr, %1\n\t"
457 : "=&z" (flags), "=&r" (__dummy)
462 # 270 "include2/asm/system.h"
463 static inline __attribute__((always_inline)) unsigned long xchg_u32(volatile u32 *m, unsigned long val)
465 unsigned long flags, retval;
467 flags = local_irq_save();
470 do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0);
474 static inline __attribute__((always_inline)) unsigned long xchg_u8(volatile u8 *m, unsigned long val)
476 unsigned long flags, retval;
478 flags = local_irq_save();
481 do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0);
485 extern void __xchg_called_with_bad_pointer(void);
486 # 317 "include2/asm/system.h"
487 static inline __attribute__((always_inline)) unsigned long __cmpxchg_u32(volatile int * m, unsigned long old,
493 flags = local_irq_save();
497 do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0);
503 extern void __cmpxchg_called_with_bad_pointer(void);
507 static inline __attribute__((always_inline)) unsigned long __cmpxchg(volatile void * ptr, unsigned long old,
508 unsigned long new, int size)
512 return __cmpxchg_u32(ptr, old, new);
514 __cmpxchg_called_with_bad_pointer();
517 # 360 "include2/asm/system.h"
518 void disable_hlt(void);
519 void enable_hlt(void);
520 # 6 "include2/asm/bitops.h" 2
522 # 1 "include2/asm/byteorder.h" 1
523 # 11 "include2/asm/byteorder.h"
524 static __inline__ __attribute__((always_inline)) __attribute__((__const__)) __u32 ___arch__swab32(__u32 x)
526 __asm__("swap.b %0, %0\n\t"
534 static __inline__ __attribute__((always_inline)) __attribute__((__const__)) __u16 ___arch__swab16(__u16 x)
536 __asm__("swap.b %0, %0"
542 static inline __attribute__((always_inline)) __u64 ___arch__swab64(__u64 val)
545 struct { __u32 a,b; } s;
549 w.s.b = ___arch__swab32(v.s.a);
550 w.s.a = ___arch__swab32(v.s.b);
553 # 51 "include2/asm/byteorder.h"
554 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/byteorder/little_endian.h" 1
555 # 12 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/byteorder/little_endian.h"
556 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/byteorder/swab.h" 1
557 # 133 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/byteorder/swab.h"
558 static __inline__ __attribute__((always_inline)) __attribute__((__const__)) __u16 __fswab16(__u16 x)
560 return ___arch__swab16(x);
562 static __inline__ __attribute__((always_inline)) __u16 __swab16p(const __u16 *x)
564 return ___arch__swab16(*(x));
566 static __inline__ __attribute__((always_inline)) void __swab16s(__u16 *addr)
568 do { *(addr) = ___arch__swab16(*((addr))); } while (0);
571 static __inline__ __attribute__((always_inline)) __attribute__((__const__)) __u32 __fswab32(__u32 x)
573 return ___arch__swab32(x);
575 static __inline__ __attribute__((always_inline)) __u32 __swab32p(const __u32 *x)
577 return ___arch__swab32(*(x));
579 static __inline__ __attribute__((always_inline)) void __swab32s(__u32 *addr)
581 do { *(addr) = ___arch__swab32(*((addr))); } while (0);
585 static __inline__ __attribute__((always_inline)) __attribute__((__const__)) __u64 __fswab64(__u64 x)
589 __u32 l = x & ((1ULL<<32)-1);
590 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)))));
595 static __inline__ __attribute__((always_inline)) __u64 __swab64p(const __u64 *x)
597 return ___arch__swab64(*(x));
599 static __inline__ __attribute__((always_inline)) void __swab64s(__u64 *addr)
601 do { *(addr) = ___arch__swab64(*((addr))); } while (0);
603 # 13 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/byteorder/little_endian.h" 2
604 # 43 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/byteorder/little_endian.h"
605 static inline __attribute__((always_inline)) __le64 __cpu_to_le64p(const __u64 *p)
609 static inline __attribute__((always_inline)) __u64 __le64_to_cpup(const __le64 *p)
613 static inline __attribute__((always_inline)) __le32 __cpu_to_le32p(const __u32 *p)
617 static inline __attribute__((always_inline)) __u32 __le32_to_cpup(const __le32 *p)
621 static inline __attribute__((always_inline)) __le16 __cpu_to_le16p(const __u16 *p)
625 static inline __attribute__((always_inline)) __u16 __le16_to_cpup(const __le16 *p)
629 static inline __attribute__((always_inline)) __be64 __cpu_to_be64p(const __u64 *p)
631 return ( __be64)__swab64p(p);
633 static inline __attribute__((always_inline)) __u64 __be64_to_cpup(const __be64 *p)
635 return __swab64p((__u64 *)p);
637 static inline __attribute__((always_inline)) __be32 __cpu_to_be32p(const __u32 *p)
639 return ( __be32)__swab32p(p);
641 static inline __attribute__((always_inline)) __u32 __be32_to_cpup(const __be32 *p)
643 return __swab32p((__u32 *)p);
645 static inline __attribute__((always_inline)) __be16 __cpu_to_be16p(const __u16 *p)
647 return ( __be16)__swab16p(p);
649 static inline __attribute__((always_inline)) __u16 __be16_to_cpup(const __be16 *p)
651 return __swab16p((__u16 *)p);
653 # 104 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/byteorder/little_endian.h"
654 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/byteorder/generic.h" 1
655 # 154 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/byteorder/generic.h"
656 extern __u32 ntohl(__be32);
657 extern __be32 htonl(__u32);
658 extern __u16 ntohs(__be16);
659 extern __be16 htons(__u16);
660 # 105 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/byteorder/little_endian.h" 2
661 # 52 "include2/asm/byteorder.h" 2
662 # 8 "include2/asm/bitops.h" 2
664 static inline __attribute__((always_inline)) void set_bit(int nr, volatile void * addr)
667 volatile unsigned int *a = addr;
671 mask = 1 << (nr & 0x1f);
672 flags = local_irq_save();
674 do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0);
682 static inline __attribute__((always_inline)) void clear_bit(int nr, volatile void * addr)
685 volatile unsigned int *a = addr;
689 mask = 1 << (nr & 0x1f);
690 flags = local_irq_save();
692 do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0);
695 static inline __attribute__((always_inline)) void change_bit(int nr, volatile void * addr)
698 volatile unsigned int *a = addr;
702 mask = 1 << (nr & 0x1f);
703 flags = local_irq_save();
705 do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0);
708 static inline __attribute__((always_inline)) int test_and_set_bit(int nr, volatile void * addr)
711 volatile unsigned int *a = addr;
715 mask = 1 << (nr & 0x1f);
716 flags = local_irq_save();
717 retval = (mask & *a) != 0;
719 do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0);
724 static inline __attribute__((always_inline)) int test_and_clear_bit(int nr, volatile void * addr)
727 volatile unsigned int *a = addr;
731 mask = 1 << (nr & 0x1f);
732 flags = local_irq_save();
733 retval = (mask & *a) != 0;
735 do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0);
740 static inline __attribute__((always_inline)) int test_and_change_bit(int nr, volatile void * addr)
743 volatile unsigned int *a = addr;
747 mask = 1 << (nr & 0x1f);
748 flags = local_irq_save();
749 retval = (mask & *a) != 0;
751 do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0);
756 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/non-atomic.h" 1
757 # 18 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/non-atomic.h"
758 static inline __attribute__((always_inline)) void __set_bit(int nr, volatile unsigned long *addr)
760 unsigned long mask = (1UL << ((nr) % 32));
761 unsigned long *p = ((unsigned long *)addr) + ((nr) / 32);
766 static inline __attribute__((always_inline)) void __clear_bit(int nr, volatile unsigned long *addr)
768 unsigned long mask = (1UL << ((nr) % 32));
769 unsigned long *p = ((unsigned long *)addr) + ((nr) / 32);
773 # 43 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/non-atomic.h"
774 static inline __attribute__((always_inline)) void __change_bit(int nr, volatile unsigned long *addr)
776 unsigned long mask = (1UL << ((nr) % 32));
777 unsigned long *p = ((unsigned long *)addr) + ((nr) / 32);
781 # 60 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/non-atomic.h"
782 static inline __attribute__((always_inline)) int __test_and_set_bit(int nr, volatile unsigned long *addr)
784 unsigned long mask = (1UL << ((nr) % 32));
785 unsigned long *p = ((unsigned long *)addr) + ((nr) / 32);
786 unsigned long old = *p;
789 return (old & mask) != 0;
791 # 79 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/non-atomic.h"
792 static inline __attribute__((always_inline)) int __test_and_clear_bit(int nr, volatile unsigned long *addr)
794 unsigned long mask = (1UL << ((nr) % 32));
795 unsigned long *p = ((unsigned long *)addr) + ((nr) / 32);
796 unsigned long old = *p;
799 return (old & mask) != 0;
803 static inline __attribute__((always_inline)) int __test_and_change_bit(int nr,
804 volatile unsigned long *addr)
806 unsigned long mask = (1UL << ((nr) % 32));
807 unsigned long *p = ((unsigned long *)addr) + ((nr) / 32);
808 unsigned long old = *p;
811 return (old & mask) != 0;
819 static inline __attribute__((always_inline)) int test_bit(int nr, const volatile unsigned long *addr)
821 return 1UL & (addr[((nr) / 32)] >> (nr & (32 -1)));
823 # 102 "include2/asm/bitops.h" 2
825 static inline __attribute__((always_inline)) unsigned long ffz(unsigned long word)
827 unsigned long result;
833 : "=r" (result), "=r" (word)
834 : "0" (~0L), "1" (word)
845 static inline __attribute__((always_inline)) unsigned long __ffs(unsigned long word)
847 unsigned long result;
853 : "=r" (result), "=r" (word)
854 : "0" (~0L), "1" (word)
859 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/find.h" 1
863 extern unsigned long find_next_bit(const unsigned long *addr, unsigned long
864 size, unsigned long offset);
866 extern unsigned long find_next_zero_bit(const unsigned long *addr, unsigned
867 long size, unsigned long offset);
868 # 138 "include2/asm/bitops.h" 2
869 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/ffs.h" 1
870 # 12 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/ffs.h"
871 static inline __attribute__((always_inline)) int ffs(int x)
899 # 139 "include2/asm/bitops.h" 2
900 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/hweight.h" 1
906 extern unsigned int hweight32(unsigned int w);
907 extern unsigned int hweight16(unsigned int w);
908 extern unsigned int hweight8(unsigned int w);
909 extern unsigned long hweight64(__u64 w);
910 # 140 "include2/asm/bitops.h" 2
911 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/sched.h" 1
912 # 13 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/sched.h"
913 static inline __attribute__((always_inline)) int sched_find_first_bit(const unsigned long *b)
922 if (__builtin_expect(!!(b[0]), 0))
924 if (__builtin_expect(!!(b[1]), 0))
925 return __ffs(b[1]) + 32;
926 if (__builtin_expect(!!(b[2]), 0))
927 return __ffs(b[2]) + 64;
929 return __ffs(b[3]) + 96;
930 return __ffs(b[4]) + 128;
935 # 141 "include2/asm/bitops.h" 2
936 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/ext2-non-atomic.h" 1
940 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/le.h" 1
941 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/ext2-non-atomic.h" 2
942 # 142 "include2/asm/bitops.h" 2
943 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/ext2-atomic.h" 1
944 # 143 "include2/asm/bitops.h" 2
945 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/minix.h" 1
946 # 144 "include2/asm/bitops.h" 2
947 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/fls.h" 1
948 # 12 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/fls.h"
949 static inline __attribute__((always_inline)) int fls(int x)
955 if (!(x & 0xffff0000u)) {
959 if (!(x & 0xff000000u)) {
963 if (!(x & 0xf0000000u)) {
967 if (!(x & 0xc0000000u)) {
971 if (!(x & 0x80000000u)) {
977 # 145 "include2/asm/bitops.h" 2
978 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bitops/fls64.h" 1
984 static inline __attribute__((always_inline)) int fls64(__u64 x)
991 # 146 "include2/asm/bitops.h" 2
992 # 10 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/bitops.h" 2
994 static __inline__ __attribute__((always_inline)) int get_bitmask_order(unsigned int count)
1002 static __inline__ __attribute__((always_inline)) int get_count_order(unsigned int count)
1006 order = fls(count) - 1;
1007 if (count & (count - 1))
1012 static inline __attribute__((always_inline)) unsigned long hweight_long(unsigned long w)
1014 return sizeof(w) == 4 ? hweight32(w) : hweight64(w);
1023 static inline __attribute__((always_inline)) __u32 rol32(__u32 word, unsigned int shift)
1025 return (word << shift) | (word >> (32 - shift));
1034 static inline __attribute__((always_inline)) __u32 ror32(__u32 word, unsigned int shift)
1036 return (word >> shift) | (word << (32 - shift));
1039 static inline __attribute__((always_inline)) unsigned fls_long(unsigned long l)
1045 # 16 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kernel.h" 2
1047 # 1 "include2/asm/bug.h" 1
1048 # 17 "include2/asm/bug.h"
1049 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/bug.h" 1
1050 # 18 "include2/asm/bug.h" 2
1051 # 18 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kernel.h" 2
1053 extern const char linux_banner[];
1054 # 48 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kernel.h"
1055 extern int console_printk[];
1065 # 96 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kernel.h"
1066 extern struct atomic_notifier_head panic_notifier_list;
1067 extern long (*panic_blink)(long time);
1068 void panic(const char * fmt, ...)
1069 __attribute__ ((noreturn, format (printf, 1, 2)));
1070 extern void oops_enter(void);
1071 extern void oops_exit(void);
1072 extern int oops_may_print(void);
1073 void do_exit(long error_code)
1074 __attribute__((noreturn));
1075 void complete_and_exit(struct completion *, long)
1076 __attribute__((noreturn));
1077 extern unsigned long simple_strtoul(const char *,char **,unsigned int);
1078 extern long simple_strtol(const char *,char **,unsigned int);
1079 extern unsigned long long simple_strtoull(const char *,char **,unsigned int);
1080 extern long long simple_strtoll(const char *,char **,unsigned int);
1081 extern int sprintf(char * buf, const char * fmt, ...)
1082 __attribute__ ((format (printf, 2, 3)));
1083 extern int vsprintf(char *buf, const char *, va_list)
1084 __attribute__ ((format (printf, 2, 0)));
1085 extern int snprintf(char * buf, size_t size, const char * fmt, ...)
1086 __attribute__ ((format (printf, 3, 4)));
1087 extern int vsnprintf(char *buf, size_t size, const char *fmt, va_list args)
1088 __attribute__ ((format (printf, 3, 0)));
1089 extern int scnprintf(char * buf, size_t size, const char * fmt, ...)
1090 __attribute__ ((format (printf, 3, 4)));
1091 extern int vscnprintf(char *buf, size_t size, const char *fmt, va_list args)
1092 __attribute__ ((format (printf, 3, 0)));
1093 extern char *kasprintf(gfp_t gfp, const char *fmt, ...)
1094 __attribute__ ((format (printf, 2, 3)));
1096 extern int sscanf(const char *, const char *, ...)
1097 __attribute__ ((format (scanf, 2, 3)));
1098 extern int vsscanf(const char *, const char *, va_list)
1099 __attribute__ ((format (scanf, 2, 0)));
1101 extern int get_option(char **str, int *pint);
1102 extern char *get_options(const char *str, int nints, int *ints);
1103 extern unsigned long long memparse(char *ptr, char **retptr);
1105 extern int core_kernel_text(unsigned long addr);
1106 extern int __kernel_text_address(unsigned long addr);
1107 extern int kernel_text_address(unsigned long addr);
1108 extern int session_of_pgrp(int pgrp);
1110 extern void dump_thread(struct pt_regs *regs, struct user *dump);
1113 int vprintk(const char *fmt, va_list args)
1114 __attribute__ ((format (printf, 1, 0)));
1115 int printk(const char * fmt, ...)
1116 __attribute__ ((format (printf, 1, 2)));
1117 # 156 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kernel.h"
1118 unsigned long int_sqrt(unsigned long);
1120 static inline __attribute__((always_inline)) int __attribute__((pure)) long_log2(unsigned long x)
1123 for (x >>= 1; x > 0; x >>= 1)
1128 static inline __attribute__((always_inline)) unsigned long
1129 __attribute__((__const__)) roundup_pow_of_two(unsigned long x)
1131 return 1UL << fls_long(x - 1);
1134 extern int printk_ratelimit(void);
1135 extern int __printk_ratelimit(int ratelimit_jiffies, int ratelimit_burst);
1137 static inline __attribute__((always_inline)) void console_silent(void)
1139 (console_printk[0]) = 0;
1142 static inline __attribute__((always_inline)) void console_verbose(void)
1144 if ((console_printk[0]))
1145 (console_printk[0]) = 15;
1148 extern void bust_spinlocks(int yes);
1149 extern int oops_in_progress;
1150 extern int panic_timeout;
1151 extern int panic_on_oops;
1152 extern int panic_on_unrecovered_nmi;
1154 extern const char *print_tainted(void);
1155 extern void add_taint(unsigned);
1158 extern enum system_states {
1164 SYSTEM_SUSPEND_DISK,
1166 # 212 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kernel.h"
1167 extern void dump_stack(void);
1174 static inline __attribute__((always_inline)) int __attribute__ ((format (printf, 1, 2))) pr_debug(const char * fmt, ...)
1178 # 326 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kernel.h"
1181 unsigned long loads[3];
1182 unsigned long totalram;
1183 unsigned long freeram;
1184 unsigned long sharedram;
1185 unsigned long bufferram;
1186 unsigned long totalswap;
1187 unsigned long freeswap;
1188 unsigned short procs;
1190 unsigned long totalhigh;
1191 unsigned long freehigh;
1192 unsigned int mem_unit;
1193 char _f[20-2*sizeof(long)-sizeof(int)];
1195 # 7 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/moduleparam.h" 2
1196 # 29 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/moduleparam.h"
1197 struct kernel_param;
1200 typedef int (*param_set_fn)(const char *val, struct kernel_param *kp);
1202 typedef int (*param_get_fn)(char *buffer, struct kernel_param *kp);
1204 struct kernel_param {
1213 struct kparam_string {
1214 unsigned int maxlen;
1225 unsigned int elemsize;
1228 # 95 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/moduleparam.h"
1229 extern int parse_args(const char *name,
1231 struct kernel_param *params,
1233 int (*unknown)(char *param, char *val));
1241 extern int param_set_byte(const char *val, struct kernel_param *kp);
1242 extern int param_get_byte(char *buffer, struct kernel_param *kp);
1245 extern int param_set_short(const char *val, struct kernel_param *kp);
1246 extern int param_get_short(char *buffer, struct kernel_param *kp);
1249 extern int param_set_ushort(const char *val, struct kernel_param *kp);
1250 extern int param_get_ushort(char *buffer, struct kernel_param *kp);
1253 extern int param_set_int(const char *val, struct kernel_param *kp);
1254 extern int param_get_int(char *buffer, struct kernel_param *kp);
1257 extern int param_set_uint(const char *val, struct kernel_param *kp);
1258 extern int param_get_uint(char *buffer, struct kernel_param *kp);
1261 extern int param_set_long(const char *val, struct kernel_param *kp);
1262 extern int param_get_long(char *buffer, struct kernel_param *kp);
1265 extern int param_set_ulong(const char *val, struct kernel_param *kp);
1266 extern int param_get_ulong(char *buffer, struct kernel_param *kp);
1269 extern int param_set_charp(const char *val, struct kernel_param *kp);
1270 extern int param_get_charp(char *buffer, struct kernel_param *kp);
1273 extern int param_set_bool(const char *val, struct kernel_param *kp);
1274 extern int param_get_bool(char *buffer, struct kernel_param *kp);
1277 extern int param_set_invbool(const char *val, struct kernel_param *kp);
1278 extern int param_get_invbool(char *buffer, struct kernel_param *kp);
1279 # 159 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/moduleparam.h"
1280 extern int param_array_set(const char *val, struct kernel_param *kp);
1281 extern int param_array_get(char *buffer, struct kernel_param *kp);
1283 extern int param_set_copystring(const char *val, struct kernel_param *kp);
1284 extern int param_get_string(char *buffer, struct kernel_param *kp);
1290 extern int module_param_sysfs_setup(struct module *mod,
1291 struct kernel_param *kparam,
1292 unsigned int num_params);
1294 extern void module_param_sysfs_remove(struct module *mod);
1295 # 20 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c" 2
1296 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/module.h" 1
1297 # 9 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/module.h"
1298 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 1
1302 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/auxvec.h" 1
1306 # 1 "include2/asm/auxvec.h" 1
1307 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/auxvec.h" 2
1308 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2
1309 # 40 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h"
1310 struct sched_param {
1314 # 1 "include2/asm/param.h" 1
1315 # 45 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2
1317 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/capability.h" 1
1318 # 32 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/capability.h"
1319 typedef struct __user_cap_header_struct {
1322 } *cap_user_header_t;
1324 typedef struct __user_cap_data_struct {
1332 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock.h" 1
1333 # 49 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock.h"
1334 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/preempt.h" 1
1335 # 9 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/preempt.h"
1336 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/thread_info.h" 1
1337 # 13 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/thread_info.h"
1338 struct restart_block {
1339 long (*fn)(struct restart_block *);
1340 unsigned long arg0, arg1, arg2, arg3;
1343 extern long do_no_restart_syscall(struct restart_block *parm);
1346 # 1 "include2/asm/thread_info.h" 1
1347 # 13 "include2/asm/thread_info.h"
1348 # 1 "include2/asm/page.h" 1
1349 # 44 "include2/asm/page.h"
1350 extern void (*clear_page)(void *to);
1351 extern void (*copy_page)(void *to, void *from);
1353 extern unsigned long shm_align_mask;
1356 extern void clear_page_slow(void *to);
1357 extern void copy_page_slow(void *to, void *from);
1366 extern void clear_user_page(void *to, unsigned long address, struct page *pg);
1367 extern void copy_user_page(void *to, void *from, unsigned long address, struct page *pg);
1368 extern void __clear_user_page(void *to, void *orig_to);
1369 extern void __copy_user_page(void *to, void *from, void *orig_to);
1370 # 72 "include2/asm/page.h"
1371 typedef struct { unsigned long pte; } pte_t;
1372 typedef struct { unsigned long pgd; } pgd_t;
1373 typedef struct { unsigned long pgprot; } pgprot_t;
1374 # 119 "include2/asm/page.h"
1375 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/memory_model.h" 1
1376 # 120 "include2/asm/page.h" 2
1377 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/page.h" 1
1378 # 10 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/page.h"
1379 static __inline__ __attribute__((always_inline)) __attribute__((__const__)) int get_order(unsigned long size)
1383 size = (size - 1) >> (12 - 1);
1391 # 121 "include2/asm/page.h" 2
1392 # 14 "include2/asm/thread_info.h" 2
1395 # 1 "include2/asm/processor.h" 1
1396 # 15 "include2/asm/processor.h"
1397 # 1 "include2/asm/cache.h" 1
1398 # 12 "include2/asm/cache.h"
1399 # 1 "include/asm/cpu/cache.h" 1
1400 # 13 "include2/asm/cache.h" 2
1401 # 24 "include2/asm/cache.h"
1405 unsigned int linesz;
1407 unsigned int way_size;
1413 unsigned int way_incr;
1414 unsigned int entry_shift;
1415 unsigned int entry_mask;
1422 unsigned int alias_mask;
1424 unsigned int n_aliases;
1426 unsigned long flags;
1428 # 16 "include2/asm/processor.h" 2
1429 # 1 "include2/asm/ptrace.h" 1
1430 # 52 "include2/asm/ptrace.h"
1432 unsigned long regs[16];
1469 extern void show_regs(struct pt_regs *);
1470 # 102 "include2/asm/ptrace.h"
1471 static inline __attribute__((always_inline)) unsigned long profile_pc(struct pt_regs *regs)
1473 unsigned long pc = ((regs)->pc);
1475 if (pc >= 0xa0000000UL && pc < 0xc0000000UL)
1479 # 17 "include2/asm/processor.h" 2
1480 # 1 "include2/asm/cpu-features.h" 1
1481 # 18 "include2/asm/processor.h" 2
1482 # 37 "include2/asm/processor.h"
1488 CPU_SH7705, CPU_SH7706, CPU_SH7707,
1489 CPU_SH7708, CPU_SH7708S, CPU_SH7708R,
1490 CPU_SH7709, CPU_SH7709A, CPU_SH7710,
1491 CPU_SH7729, CPU_SH7300,
1494 CPU_SH7750, CPU_SH7750S, CPU_SH7750R, CPU_SH7751, CPU_SH7751R,
1495 CPU_SH7760, CPU_ST40RA, CPU_ST40GX1, CPU_SH4_202, CPU_SH4_501,
1496 CPU_SH73180, CPU_SH7343, CPU_SH7770, CPU_SH7780, CPU_SH7781,
1504 unsigned long loops_per_jiffy;
1506 struct cache_info icache;
1507 struct cache_info dcache;
1508 struct cache_info scache;
1510 unsigned long flags;
1511 } __attribute__ ((aligned((1 << 5))));
1513 extern struct sh_cpuinfo boot_cpu_data;
1514 # 107 "include2/asm/processor.h"
1515 struct sh_fpu_hard_struct {
1516 unsigned long fp_regs[16];
1517 unsigned long xfp_regs[16];
1518 unsigned long fpscr;
1525 struct sh_fpu_soft_struct {
1526 unsigned long fp_regs[16];
1527 unsigned long xfp_regs[16];
1528 unsigned long fpscr;
1531 unsigned char lookahead;
1532 unsigned long entry_pc;
1535 union sh_fpu_union {
1536 struct sh_fpu_hard_struct hard;
1537 struct sh_fpu_soft_struct soft;
1540 struct thread_struct {
1544 unsigned long trap_no, error_code;
1545 unsigned long address;
1547 unsigned long ubc_pc;
1550 union sh_fpu_union fpu;
1558 extern int ubc_usercnt;
1559 # 172 "include2/asm/processor.h"
1564 extern void release_thread(struct task_struct *);
1572 extern int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags);
1573 # 194 "include2/asm/processor.h"
1574 static __inline__ __attribute__((always_inline)) void disable_fpu(void)
1576 unsigned long __dummy;
1579 __asm__ __volatile__("stc sr, %0\n\t"
1583 : "r" (0x00008000));
1586 static __inline__ __attribute__((always_inline)) void enable_fpu(void)
1588 unsigned long __dummy;
1591 __asm__ __volatile__("stc sr, %0\n\t"
1595 : "r" (~0x00008000));
1598 static __inline__ __attribute__((always_inline)) void release_fpu(struct pt_regs *regs)
1600 regs->sr |= 0x00008000;
1603 static __inline__ __attribute__((always_inline)) void grab_fpu(struct pt_regs *regs)
1605 regs->sr &= ~0x00008000;
1609 extern void save_fpu(struct task_struct *__tsk, struct pt_regs *regs);
1610 # 258 "include2/asm/processor.h"
1611 extern unsigned long get_wchan(struct task_struct *p);
1612 # 271 "include2/asm/processor.h"
1613 static inline __attribute__((always_inline)) void prefetch(void *x)
1615 __asm__ __volatile__ ("pref @%0\n\t" : : "r" (x) : "memory");
1622 extern int vsyscall_init(void);
1623 # 17 "include2/asm/thread_info.h" 2
1625 struct thread_info {
1626 struct task_struct *task;
1627 struct exec_domain *exec_domain;
1628 unsigned long flags;
1631 mm_segment_t addr_limit;
1632 struct restart_block restart_block;
1633 unsigned long previous_sp;
1635 __u8 supervisor_stack[0];
1637 # 63 "include2/asm/thread_info.h"
1638 register unsigned long current_stack_pointer asm("r15") __attribute__((__used__));
1641 static inline __attribute__((always_inline)) struct thread_info *current_thread_info(void)
1643 struct thread_info *ti;
1645 __asm__("stc r7_bank, %0" : "=r" (ti));
1646 # 82 "include2/asm/thread_info.h"
1649 # 22 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/thread_info.h" 2
1650 # 30 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/thread_info.h"
1651 static inline __attribute__((always_inline)) void set_ti_thread_flag(struct thread_info *ti, int flag)
1653 set_bit(flag,&ti->flags);
1656 static inline __attribute__((always_inline)) void clear_ti_thread_flag(struct thread_info *ti, int flag)
1658 clear_bit(flag,&ti->flags);
1661 static inline __attribute__((always_inline)) int test_and_set_ti_thread_flag(struct thread_info *ti, int flag)
1663 return test_and_set_bit(flag,&ti->flags);
1666 static inline __attribute__((always_inline)) int test_and_clear_ti_thread_flag(struct thread_info *ti, int flag)
1668 return test_and_clear_bit(flag,&ti->flags);
1671 static inline __attribute__((always_inline)) int test_ti_thread_flag(struct thread_info *ti, int flag)
1673 return test_bit(flag,&ti->flags);
1675 # 10 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/preempt.h" 2
1676 # 50 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock.h" 2
1677 # 78 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock.h"
1678 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock_types.h" 1
1679 # 12 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock_types.h"
1680 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/lockdep.h" 1
1681 # 243 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/lockdep.h"
1682 static inline __attribute__((always_inline)) void lockdep_off(void)
1686 static inline __attribute__((always_inline)) void lockdep_on(void)
1690 static inline __attribute__((always_inline)) int lockdep_internal(void)
1694 # 270 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/lockdep.h"
1695 struct lock_class_key { };
1696 # 13 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock_types.h" 2
1701 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock_types_up.h" 1
1702 # 29 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock_types_up.h"
1703 typedef struct { } raw_spinlock_t;
1715 # 18 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock_types.h" 2
1719 raw_spinlock_t raw_lock;
1720 # 32 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock_types.h"
1726 raw_rwlock_t raw_lock;
1727 # 48 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock_types.h"
1729 # 79 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock.h" 2
1731 extern int __attribute__((section(".spinlock.text"))) generic__raw_read_trylock(raw_rwlock_t *lock);
1739 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock_up.h" 1
1740 # 89 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock.h" 2
1741 # 134 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock.h"
1742 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock_api_up.h" 1
1743 # 135 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock.h" 2
1744 # 259 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock.h"
1745 # 1 "include2/asm/atomic.h" 1
1746 # 10 "include2/asm/atomic.h"
1747 typedef struct { volatile int counter; } atomic_t;
1748 # 25 "include2/asm/atomic.h"
1749 static inline __attribute__((always_inline)) void atomic_add(int i, atomic_t *v)
1751 # 39 "include2/asm/atomic.h"
1752 unsigned long flags;
1754 flags = local_irq_save();
1756 do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0);
1760 static inline __attribute__((always_inline)) void atomic_sub(int i, atomic_t *v)
1762 # 61 "include2/asm/atomic.h"
1763 unsigned long flags;
1765 flags = local_irq_save();
1767 do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0);
1770 # 77 "include2/asm/atomic.h"
1771 static inline __attribute__((always_inline)) int atomic_add_return(int i, atomic_t *v)
1774 # 92 "include2/asm/atomic.h"
1775 unsigned long flags;
1777 flags = local_irq_save();
1781 do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0);
1789 static inline __attribute__((always_inline)) int atomic_sub_return(int i, atomic_t *v)
1792 # 121 "include2/asm/atomic.h"
1793 unsigned long flags;
1795 flags = local_irq_save();
1799 do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0);
1804 # 152 "include2/asm/atomic.h"
1805 static inline __attribute__((always_inline)) int atomic_cmpxchg(atomic_t *v, int old, int new)
1808 unsigned long flags;
1810 flags = local_irq_save();
1812 if (__builtin_expect(!!(ret == old), 1))
1814 do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0);
1821 static inline __attribute__((always_inline)) int atomic_add_unless(atomic_t *v, int a, int u)
1824 unsigned long flags;
1826 flags = local_irq_save();
1830 do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0);
1836 static inline __attribute__((always_inline)) void atomic_clear_mask(unsigned int mask, atomic_t *v)
1838 # 197 "include2/asm/atomic.h"
1839 unsigned long flags;
1841 flags = local_irq_save();
1842 *(long *)v &= ~mask;
1843 do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0);
1847 static inline __attribute__((always_inline)) void atomic_set_mask(unsigned int mask, atomic_t *v)
1849 # 219 "include2/asm/atomic.h"
1850 unsigned long flags;
1852 flags = local_irq_save();
1854 do { if ((flags & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0);
1864 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/atomic.h" 1
1865 # 71 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/atomic.h"
1866 typedef atomic_t atomic_long_t;
1869 static inline __attribute__((always_inline)) long atomic_long_read(atomic_long_t *l)
1871 atomic_t *v = (atomic_t *)l;
1873 return (long)((v)->counter);
1876 static inline __attribute__((always_inline)) void atomic_long_set(atomic_long_t *l, long i)
1878 atomic_t *v = (atomic_t *)l;
1880 ((v)->counter = (i));
1883 static inline __attribute__((always_inline)) void atomic_long_inc(atomic_long_t *l)
1885 atomic_t *v = (atomic_t *)l;
1890 static inline __attribute__((always_inline)) void atomic_long_dec(atomic_long_t *l)
1892 atomic_t *v = (atomic_t *)l;
1897 static inline __attribute__((always_inline)) void atomic_long_add(long i, atomic_long_t *l)
1899 atomic_t *v = (atomic_t *)l;
1904 static inline __attribute__((always_inline)) void atomic_long_sub(long i, atomic_long_t *l)
1906 atomic_t *v = (atomic_t *)l;
1910 # 234 "include2/asm/atomic.h" 2
1911 # 260 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/spinlock.h" 2
1917 extern int _atomic_dec_and_lock(atomic_t *atomic, spinlock_t *lock);
1918 # 46 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/capability.h" 2
1919 # 1 "include2/asm/current.h" 1
1920 # 11 "include2/asm/current.h"
1923 static __inline__ __attribute__((always_inline)) struct task_struct * get_current(void)
1925 return current_thread_info()->task;
1927 # 47 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/capability.h" 2
1928 # 58 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/capability.h"
1929 typedef __u32 kernel_cap_t;
1930 # 295 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/capability.h"
1931 extern kernel_cap_t cap_bset;
1932 # 323 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/capability.h"
1933 static inline __attribute__((always_inline)) kernel_cap_t cap_combine(kernel_cap_t a, kernel_cap_t b)
1940 static inline __attribute__((always_inline)) kernel_cap_t cap_intersect(kernel_cap_t a, kernel_cap_t b)
1947 static inline __attribute__((always_inline)) kernel_cap_t cap_drop(kernel_cap_t a, kernel_cap_t drop)
1950 (dest) = (a) & ~(drop);
1954 static inline __attribute__((always_inline)) kernel_cap_t cap_invert(kernel_cap_t c)
1960 # 360 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/capability.h"
1961 int capable(int cap);
1962 int __capable(struct task_struct *t, int cap);
1963 # 47 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2
1964 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/threads.h" 1
1965 # 48 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2
1968 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/timex.h" 1
1969 # 57 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/timex.h"
1970 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/time.h" 1
1977 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/seqlock.h" 1
1978 # 32 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/seqlock.h"
1983 # 57 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/seqlock.h"
1984 static inline __attribute__((always_inline)) void write_seqlock(seqlock_t *sl)
1986 do { do { } while (0); (void)0; (void)(&sl->lock); } while (0);
1988 __asm__ __volatile__("": : :"memory");
1991 static inline __attribute__((always_inline)) void write_sequnlock(seqlock_t *sl)
1993 __asm__ __volatile__("": : :"memory");
1995 do { do { } while (0); (void)0; (void)(&sl->lock); } while (0);
1998 static inline __attribute__((always_inline)) int write_tryseqlock(seqlock_t *sl)
2000 int ret = (({ do { do { } while (0); (void)0; (void)(&sl->lock); } while (0); 1; }));
2004 __asm__ __volatile__("": : :"memory");
2010 static inline __attribute__((always_inline)) __attribute__((always_inline)) unsigned read_seqbegin(const seqlock_t *sl)
2012 unsigned ret = sl->sequence;
2013 __asm__ __volatile__("": : :"memory");
2016 # 98 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/seqlock.h"
2017 static inline __attribute__((always_inline)) __attribute__((always_inline)) int read_seqretry(const seqlock_t *sl, unsigned iv)
2019 __asm__ __volatile__("": : :"memory");
2020 return (iv & 1) | (sl->sequence ^ iv);
2022 # 112 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/seqlock.h"
2023 typedef struct seqcount {
2031 static inline __attribute__((always_inline)) unsigned read_seqcount_begin(const seqcount_t *s)
2033 unsigned ret = s->sequence;
2034 __asm__ __volatile__("": : :"memory");
2043 static inline __attribute__((always_inline)) int read_seqcount_retry(const seqcount_t *s, unsigned iv)
2045 __asm__ __volatile__("": : :"memory");
2046 return (iv & 1) | (s->sequence ^ iv);
2054 static inline __attribute__((always_inline)) void write_seqcount_begin(seqcount_t *s)
2057 __asm__ __volatile__("": : :"memory");
2060 static inline __attribute__((always_inline)) void write_seqcount_end(seqcount_t *s)
2062 __asm__ __volatile__("": : :"memory");
2065 # 8 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/time.h" 2
2078 suseconds_t tv_usec;
2085 # 39 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/time.h"
2086 static inline __attribute__((always_inline)) int timespec_equal(struct timespec *a, struct timespec *b)
2088 return (a->tv_sec == b->tv_sec) && (a->tv_nsec == b->tv_nsec);
2096 static inline __attribute__((always_inline)) int timespec_compare(struct timespec *lhs, struct timespec *rhs)
2098 if (lhs->tv_sec < rhs->tv_sec)
2100 if (lhs->tv_sec > rhs->tv_sec)
2102 return lhs->tv_nsec - rhs->tv_nsec;
2105 static inline __attribute__((always_inline)) int timeval_compare(struct timeval *lhs, struct timeval *rhs)
2107 if (lhs->tv_sec < rhs->tv_sec)
2109 if (lhs->tv_sec > rhs->tv_sec)
2111 return lhs->tv_usec - rhs->tv_usec;
2114 extern unsigned long mktime(const unsigned int year, const unsigned int mon,
2115 const unsigned int day, const unsigned int hour,
2116 const unsigned int min, const unsigned int sec);
2118 extern void set_normalized_timespec(struct timespec *ts, time_t sec, long nsec);
2123 static inline __attribute__((always_inline)) struct timespec timespec_sub(struct timespec lhs,
2124 struct timespec rhs)
2126 struct timespec ts_delta;
2127 set_normalized_timespec(&ts_delta, lhs.tv_sec - rhs.tv_sec,
2128 lhs.tv_nsec - rhs.tv_nsec);
2138 extern struct timespec xtime;
2139 extern struct timespec wall_to_monotonic;
2140 extern seqlock_t xtime_lock;
2142 void timekeeping_init(void);
2144 static inline __attribute__((always_inline)) unsigned long get_seconds(void)
2146 return xtime.tv_sec;
2149 struct timespec current_kernel_time(void);
2154 extern void do_gettimeofday(struct timeval *tv);
2155 extern int do_settimeofday(struct timespec *tv);
2156 extern int do_sys_settimeofday(struct timespec *tv, struct timezone *tz);
2158 extern long do_utimes(int dfd, char *filename, struct timeval *times);
2160 extern int do_setitimer(int which, struct itimerval *value,
2161 struct itimerval *ovalue);
2162 extern unsigned int alarm_setitimer(unsigned int seconds);
2163 extern int do_getitimer(int which, struct itimerval *value);
2164 extern void getnstimeofday(struct timespec *tv);
2166 extern struct timespec timespec_trunc(struct timespec t, unsigned gran);
2167 extern int timekeeping_is_continuous(void);
2168 # 129 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/time.h"
2169 static inline __attribute__((always_inline)) s64 timespec_to_ns(const struct timespec *ts)
2171 return ((s64) ts->tv_sec * 1000000000L) + ts->tv_nsec;
2173 # 141 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/time.h"
2174 static inline __attribute__((always_inline)) s64 timeval_to_ns(const struct timeval *tv)
2176 return ((s64) tv->tv_sec * 1000000000L) +
2177 tv->tv_usec * 1000L;
2186 extern struct timespec ns_to_timespec(const s64 nsec);
2194 extern struct timeval ns_to_timeval(const s64 nsec);
2201 static inline __attribute__((always_inline)) void timespec_add_ns(struct timespec *a, u64 ns)
2204 while(__builtin_expect(!!(ns >= 1000000000L), 0)) {
2210 # 195 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/time.h"
2212 struct timespec it_interval;
2213 struct timespec it_value;
2217 struct timeval it_interval;
2218 struct timeval it_value;
2220 # 58 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/timex.h" 2
2221 # 100 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/timex.h"
2234 struct timeval time;
2246 int :32; int :32; int :32; int :32;
2247 int :32; int :32; int :32; int :32;
2248 int :32; int :32; int :32; int :32;
2250 # 187 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/timex.h"
2251 # 1 "include2/asm/timex.h" 1
2252 # 11 "include2/asm/timex.h"
2253 typedef unsigned long long cycles_t;
2255 static __inline__ __attribute__((always_inline)) cycles_t get_cycles (void)
2259 # 188 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/timex.h" 2
2266 extern unsigned long tick_usec;
2267 extern unsigned long tick_nsec;
2273 extern int time_status;
2274 extern long time_maxerror;
2275 extern long time_esterror;
2277 extern long time_freq;
2279 extern long time_adjust;
2281 extern void ntp_clear(void);
2287 static inline __attribute__((always_inline)) int ntp_synced(void)
2289 return !(time_status & 0x0040);
2291 # 277 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/timex.h"
2292 static inline __attribute__((always_inline)) void time_interpolator_reset(void)
2296 static inline __attribute__((always_inline)) void time_interpolator_update(long delta_nsec)
2305 extern u64 current_tick_length(void);
2307 extern void second_overflow(void);
2308 extern void update_ntp_one_tick(void);
2309 extern int do_adjtimex(struct timex *);
2310 # 51 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2
2311 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/jiffies.h" 1
2315 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/calc64.h" 1
2320 # 1 "include2/asm/div64.h" 1
2321 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/div64.h" 1
2322 # 35 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/div64.h"
2323 extern uint32_t __div64_32(uint64_t *dividend, uint32_t divisor);
2324 # 1 "include2/asm/div64.h" 2
2325 # 6 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/calc64.h" 2
2326 # 20 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/calc64.h"
2327 static inline __attribute__((always_inline)) unsigned long do_div_llr(const long long dividend,
2328 const long divisor, long *remainder)
2330 u64 result = dividend;
2332 *(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; });
2333 return (unsigned long) result;
2342 static inline __attribute__((always_inline)) long div_long_long_rem_signed(const long long dividend,
2343 const long divisor, long *remainder)
2347 if (__builtin_expect(!!(dividend < 0), 0)) {
2348 res = -do_div_llr((-dividend), divisor, remainder);
2349 *remainder = -(*remainder);
2351 res = do_div_llr((dividend), divisor, remainder);
2355 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/jiffies.h" 2
2356 # 81 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/jiffies.h"
2357 extern u64 __attribute__((section(".data"))) jiffies_64;
2358 extern unsigned long volatile __attribute__((section(".data"))) jiffies;
2361 u64 get_jiffies_64(void);
2362 # 267 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/jiffies.h"
2363 static inline __attribute__((always_inline)) unsigned int jiffies_to_msecs(const unsigned long j)
2366 return (1000L / 100) * j;
2374 static inline __attribute__((always_inline)) unsigned int jiffies_to_usecs(const unsigned long j)
2377 return (1000000L / 100) * j;
2385 static inline __attribute__((always_inline)) unsigned long msecs_to_jiffies(const unsigned int m)
2387 if (m > jiffies_to_msecs(((~0UL >> 1)-1)))
2388 return ((~0UL >> 1)-1);
2390 return (m + (1000L / 100) - 1) / (1000L / 100);
2398 static inline __attribute__((always_inline)) unsigned long usecs_to_jiffies(const unsigned int u)
2400 if (u > jiffies_to_usecs(((~0UL >> 1)-1)))
2401 return ((~0UL >> 1)-1);
2403 return (u + (1000000L / 100) - 1) / (1000000L / 100);
2410 # 326 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/jiffies.h"
2411 static __inline__ __attribute__((always_inline)) unsigned long
2412 timespec_to_jiffies(const struct timespec *value)
2414 unsigned long sec = value->tv_sec;
2415 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;
2417 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)){
2418 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);
2421 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)))))))))) +
2422 (((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)))))))))) >>
2423 (((32 - 7) + 29) - (32 - 7)))) >> (32 - 7);
2427 static __inline__ __attribute__((always_inline)) void
2428 jiffies_to_timespec(const unsigned long jiffies, struct timespec *value)
2434 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)))))));
2435 value->tv_sec = do_div_llr((nsec), 1000000000L, &value->tv_nsec);
2437 # 365 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/jiffies.h"
2438 static __inline__ __attribute__((always_inline)) unsigned long
2439 timeval_to_jiffies(const struct timeval *value)
2441 unsigned long sec = value->tv_sec;
2442 long usec = value->tv_usec;
2444 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)){
2445 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);
2448 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)))))))))) +
2449 (((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)) >>
2450 (((32 - 7) + 19) - (32 - 7)))) >> (32 - 7);
2453 static __inline__ __attribute__((always_inline)) void
2454 jiffies_to_timeval(const unsigned long jiffies, struct timeval *value)
2460 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)))))));
2463 value->tv_sec = do_div_llr((nsec), 1000000000L, &tv_usec);
2465 value->tv_usec = tv_usec;
2471 static inline __attribute__((always_inline)) clock_t jiffies_to_clock_t(long x)
2474 return x / (100 / 100);
2482 static inline __attribute__((always_inline)) unsigned long clock_t_to_jiffies(unsigned long x)
2485 if (x >= ~0UL / (100 / 100))
2487 return x * (100 / 100);
2488 # 427 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/jiffies.h"
2491 static inline __attribute__((always_inline)) u64 jiffies_64_to_clock_t(u64 x)
2494 ({ 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; });
2495 # 442 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/jiffies.h"
2499 static inline __attribute__((always_inline)) u64 nsec_to_clock_t(u64 x)
2502 ({ 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; });
2503 # 462 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/jiffies.h"
2506 # 52 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2
2507 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rbtree.h" 1
2508 # 100 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rbtree.h"
2511 unsigned long rb_parent_color;
2514 struct rb_node *rb_right;
2515 struct rb_node *rb_left;
2516 } __attribute__((aligned(sizeof(long))));
2521 struct rb_node *rb_node;
2523 # 123 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rbtree.h"
2524 static inline __attribute__((always_inline)) void rb_set_parent(struct rb_node *rb, struct rb_node *p)
2526 rb->rb_parent_color = (rb->rb_parent_color & 3) | (unsigned long)p;
2528 static inline __attribute__((always_inline)) void rb_set_color(struct rb_node *rb, int color)
2530 rb->rb_parent_color = (rb->rb_parent_color & ~1) | color;
2532 # 139 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rbtree.h"
2533 extern void rb_insert_color(struct rb_node *, struct rb_root *);
2534 extern void rb_erase(struct rb_node *, struct rb_root *);
2537 extern struct rb_node *rb_next(struct rb_node *);
2538 extern struct rb_node *rb_prev(struct rb_node *);
2539 extern struct rb_node *rb_first(struct rb_root *);
2540 extern struct rb_node *rb_last(struct rb_root *);
2543 extern void rb_replace_node(struct rb_node *victim, struct rb_node *new,
2544 struct rb_root *root);
2546 static inline __attribute__((always_inline)) void rb_link_node(struct rb_node * node, struct rb_node * parent,
2547 struct rb_node ** rb_link)
2549 node->rb_parent_color = (unsigned long )parent;
2550 node->rb_left = node->rb_right = ((void *)0);
2554 # 53 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2
2556 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/cpumask.h" 1
2557 # 86 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/cpumask.h"
2558 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/bitmap.h" 1
2566 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/string.h" 1
2567 # 16 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/string.h"
2568 extern char *strndup_user(const char *, long);
2573 # 1 "include2/asm/string.h" 1
2574 # 12 "include2/asm/string.h"
2575 static inline __attribute__((always_inline)) char *strcpy(char *__dest, const char *__src)
2577 register char *__xdest = __dest;
2578 unsigned long __dummy;
2580 __asm__ __volatile__("1:\n\t"
2581 "mov.b @%1+, %2\n\t"
2586 : "=r" (__dest), "=r" (__src), "=&z" (__dummy)
2587 : "0" (__dest), "1" (__src)
2594 static inline __attribute__((always_inline)) char *strncpy(char *__dest, const char *__src, size_t __n)
2596 register char *__xdest = __dest;
2597 unsigned long __dummy;
2602 __asm__ __volatile__(
2604 "mov.b @%1+, %2\n\t"
2612 : "=r" (__dest), "=r" (__src), "=&z" (__dummy)
2613 : "0" (__dest), "1" (__src), "r" (__src+__n)
2620 static inline __attribute__((always_inline)) int strcmp(const char *__cs, const char *__ct)
2623 unsigned long __dummy;
2625 __asm__ __volatile__(
2628 "mov.b @%0+, %2\n\t"
2633 " mov.b @%1+, %3\n\t"
2638 : "=r" (__cs), "=r" (__ct), "=&r" (__res), "=&z" (__dummy)
2639 : "0" (__cs), "1" (__ct)
2646 static inline __attribute__((always_inline)) int strncmp(const char *__cs, const char *__ct, size_t __n)
2649 unsigned long __dummy;
2654 __asm__ __volatile__(
2657 "mov.b @%0+, %2\n\t"
2660 " cmp/eq #0, %3\n\t"
2662 " cmp/eq %3, %2\n\t"
2664 " mov.b @%1+, %3\n\t"
2670 :"=r" (__cs), "=r" (__ct), "=&r" (__res), "=&z" (__dummy)
2671 : "0" (__cs), "1" (__ct), "r" (__cs+__n)
2678 extern void *memset(void *__s, int __c, size_t __count);
2681 extern void *memcpy(void *__to, __const__ void *__from, size_t __n);
2684 extern void *memmove(void *__dest, __const__ void *__src, size_t __n);
2687 extern void *memchr(const void *__s, int __c, size_t __n);
2690 extern size_t strlen(const char *);
2693 extern int strcasecmp(const char *, const char *);
2694 # 22 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/string.h" 2
2695 # 30 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/string.h"
2696 size_t strlcpy(char *, const char *, size_t);
2699 extern char * strcat(char *, const char *);
2702 extern char * strncat(char *, const char *, __kernel_size_t);
2705 extern size_t strlcat(char *, const char *, __kernel_size_t);
2706 # 48 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/string.h"
2707 extern int strnicmp(const char *, const char *, __kernel_size_t);
2710 extern char * strchr(const char *,int);
2713 extern char * strnchr(const char *, size_t, int);
2716 extern char * strrchr(const char *,int);
2718 extern char * strstrip(char *);
2720 extern char * strstr(const char *,const char *);
2726 extern __kernel_size_t strnlen(const char *,__kernel_size_t);
2729 extern char * strpbrk(const char *,const char *);
2732 extern char * strsep(char **,const char *);
2735 extern __kernel_size_t strspn(const char *,const char *);
2738 extern __kernel_size_t strcspn(const char *,const char *);
2739 # 92 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/string.h"
2740 extern void * memscan(void *,int,__kernel_size_t);
2743 extern int memcmp(const void *,const void *,__kernel_size_t);
2749 extern char *kstrdup(const char *s, gfp_t gfp);
2750 extern void *kmemdup(const void *src, size_t len, gfp_t gfp);
2751 # 9 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/bitmap.h" 2
2752 # 84 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/bitmap.h"
2753 extern int __bitmap_empty(const unsigned long *bitmap, int bits);
2754 extern int __bitmap_full(const unsigned long *bitmap, int bits);
2755 extern int __bitmap_equal(const unsigned long *bitmap1,
2756 const unsigned long *bitmap2, int bits);
2757 extern void __bitmap_complement(unsigned long *dst, const unsigned long *src,
2759 extern void __bitmap_shift_right(unsigned long *dst,
2760 const unsigned long *src, int shift, int bits);
2761 extern void __bitmap_shift_left(unsigned long *dst,
2762 const unsigned long *src, int shift, int bits);
2763 extern void __bitmap_and(unsigned long *dst, const unsigned long *bitmap1,
2764 const unsigned long *bitmap2, int bits);
2765 extern void __bitmap_or(unsigned long *dst, const unsigned long *bitmap1,
2766 const unsigned long *bitmap2, int bits);
2767 extern void __bitmap_xor(unsigned long *dst, const unsigned long *bitmap1,
2768 const unsigned long *bitmap2, int bits);
2769 extern void __bitmap_andnot(unsigned long *dst, const unsigned long *bitmap1,
2770 const unsigned long *bitmap2, int bits);
2771 extern int __bitmap_intersects(const unsigned long *bitmap1,
2772 const unsigned long *bitmap2, int bits);
2773 extern int __bitmap_subset(const unsigned long *bitmap1,
2774 const unsigned long *bitmap2, int bits);
2775 extern int __bitmap_weight(const unsigned long *bitmap, int bits);
2777 extern int bitmap_scnprintf(char *buf, unsigned int len,
2778 const unsigned long *src, int nbits);
2779 extern int __bitmap_parse(const char *buf, unsigned int buflen, int is_user,
2780 unsigned long *dst, int nbits);
2781 extern int bitmap_parse_user(const char *ubuf, unsigned int ulen,
2782 unsigned long *dst, int nbits);
2783 extern int bitmap_scnlistprintf(char *buf, unsigned int len,
2784 const unsigned long *src, int nbits);
2785 extern int bitmap_parselist(const char *buf, unsigned long *maskp,
2787 extern void bitmap_remap(unsigned long *dst, const unsigned long *src,
2788 const unsigned long *old, const unsigned long *new, int bits);
2789 extern int bitmap_bitremap(int oldbit,
2790 const unsigned long *old, const unsigned long *new, int bits);
2791 extern int bitmap_find_free_region(unsigned long *bitmap, int bits, int order);
2792 extern void bitmap_release_region(unsigned long *bitmap, int pos, int order);
2793 extern int bitmap_allocate_region(unsigned long *bitmap, int pos, int order);
2801 static inline __attribute__((always_inline)) void bitmap_zero(unsigned long *dst, int nbits)
2806 int len = (((nbits)+32 -1)/32) * sizeof(unsigned long);
2807 memset(dst, 0, len);
2811 static inline __attribute__((always_inline)) void bitmap_fill(unsigned long *dst, int nbits)
2813 size_t nlongs = (((nbits)+32 -1)/32);
2815 int len = (nlongs - 1) * sizeof(unsigned long);
2816 memset(dst, 0xff, len);
2818 dst[nlongs - 1] = ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL );
2821 static inline __attribute__((always_inline)) void bitmap_copy(unsigned long *dst, const unsigned long *src,
2827 int len = (((nbits)+32 -1)/32) * sizeof(unsigned long);
2828 memcpy(dst, src, len);
2832 static inline __attribute__((always_inline)) void bitmap_and(unsigned long *dst, const unsigned long *src1,
2833 const unsigned long *src2, int nbits)
2836 *dst = *src1 & *src2;
2838 __bitmap_and(dst, src1, src2, nbits);
2841 static inline __attribute__((always_inline)) void bitmap_or(unsigned long *dst, const unsigned long *src1,
2842 const unsigned long *src2, int nbits)
2845 *dst = *src1 | *src2;
2847 __bitmap_or(dst, src1, src2, nbits);
2850 static inline __attribute__((always_inline)) void bitmap_xor(unsigned long *dst, const unsigned long *src1,
2851 const unsigned long *src2, int nbits)
2854 *dst = *src1 ^ *src2;
2856 __bitmap_xor(dst, src1, src2, nbits);
2859 static inline __attribute__((always_inline)) void bitmap_andnot(unsigned long *dst, const unsigned long *src1,
2860 const unsigned long *src2, int nbits)
2863 *dst = *src1 & ~(*src2);
2865 __bitmap_andnot(dst, src1, src2, nbits);
2868 static inline __attribute__((always_inline)) void bitmap_complement(unsigned long *dst, const unsigned long *src,
2872 *dst = ~(*src) & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL );
2874 __bitmap_complement(dst, src, nbits);
2877 static inline __attribute__((always_inline)) int bitmap_equal(const unsigned long *src1,
2878 const unsigned long *src2, int nbits)
2881 return ! ((*src1 ^ *src2) & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL ));
2883 return __bitmap_equal(src1, src2, nbits);
2886 static inline __attribute__((always_inline)) int bitmap_intersects(const unsigned long *src1,
2887 const unsigned long *src2, int nbits)
2890 return ((*src1 & *src2) & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL )) != 0;
2892 return __bitmap_intersects(src1, src2, nbits);
2895 static inline __attribute__((always_inline)) int bitmap_subset(const unsigned long *src1,
2896 const unsigned long *src2, int nbits)
2899 return ! ((*src1 & ~(*src2)) & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL ));
2901 return __bitmap_subset(src1, src2, nbits);
2904 static inline __attribute__((always_inline)) int bitmap_empty(const unsigned long *src, int nbits)
2907 return ! (*src & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL ));
2909 return __bitmap_empty(src, nbits);
2912 static inline __attribute__((always_inline)) int bitmap_full(const unsigned long *src, int nbits)
2915 return ! (~(*src) & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL ));
2917 return __bitmap_full(src, nbits);
2920 static inline __attribute__((always_inline)) int bitmap_weight(const unsigned long *src, int nbits)
2923 return hweight_long(*src & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL ));
2924 return __bitmap_weight(src, nbits);
2927 static inline __attribute__((always_inline)) void bitmap_shift_right(unsigned long *dst,
2928 const unsigned long *src, int n, int nbits)
2933 __bitmap_shift_right(dst, src, n, nbits);
2936 static inline __attribute__((always_inline)) void bitmap_shift_left(unsigned long *dst,
2937 const unsigned long *src, int n, int nbits)
2940 *dst = (*src << n) & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL );
2942 __bitmap_shift_left(dst, src, n, nbits);
2945 static inline __attribute__((always_inline)) int bitmap_parse(const char *buf, unsigned int buflen,
2946 unsigned long *maskp, int nmaskbits)
2948 return __bitmap_parse(buf, buflen, 0, maskp, nmaskbits);
2950 # 87 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/cpumask.h" 2
2952 typedef struct { unsigned long bits[(((1)+32 -1)/32)]; } cpumask_t;
2953 extern cpumask_t _unused_cpumask_arg_;
2956 static inline __attribute__((always_inline)) void __cpu_set(int cpu, volatile cpumask_t *dstp)
2958 set_bit(cpu, dstp->bits);
2962 static inline __attribute__((always_inline)) void __cpu_clear(int cpu, volatile cpumask_t *dstp)
2964 clear_bit(cpu, dstp->bits);
2968 static inline __attribute__((always_inline)) void __cpus_setall(cpumask_t *dstp, int nbits)
2970 bitmap_fill(dstp->bits, nbits);
2974 static inline __attribute__((always_inline)) void __cpus_clear(cpumask_t *dstp, int nbits)
2976 bitmap_zero(dstp->bits, nbits);
2983 static inline __attribute__((always_inline)) int __cpu_test_and_set(int cpu, cpumask_t *addr)
2985 return test_and_set_bit(cpu, addr->bits);
2989 static inline __attribute__((always_inline)) void __cpus_and(cpumask_t *dstp, const cpumask_t *src1p,
2990 const cpumask_t *src2p, int nbits)
2992 bitmap_and(dstp->bits, src1p->bits, src2p->bits, nbits);
2996 static inline __attribute__((always_inline)) void __cpus_or(cpumask_t *dstp, const cpumask_t *src1p,
2997 const cpumask_t *src2p, int nbits)
2999 bitmap_or(dstp->bits, src1p->bits, src2p->bits, nbits);
3003 static inline __attribute__((always_inline)) void __cpus_xor(cpumask_t *dstp, const cpumask_t *src1p,
3004 const cpumask_t *src2p, int nbits)
3006 bitmap_xor(dstp->bits, src1p->bits, src2p->bits, nbits);
3011 static inline __attribute__((always_inline)) void __cpus_andnot(cpumask_t *dstp, const cpumask_t *src1p,
3012 const cpumask_t *src2p, int nbits)
3014 bitmap_andnot(dstp->bits, src1p->bits, src2p->bits, nbits);
3018 static inline __attribute__((always_inline)) void __cpus_complement(cpumask_t *dstp,
3019 const cpumask_t *srcp, int nbits)
3021 bitmap_complement(dstp->bits, srcp->bits, nbits);
3025 static inline __attribute__((always_inline)) int __cpus_equal(const cpumask_t *src1p,
3026 const cpumask_t *src2p, int nbits)
3028 return bitmap_equal(src1p->bits, src2p->bits, nbits);
3032 static inline __attribute__((always_inline)) int __cpus_intersects(const cpumask_t *src1p,
3033 const cpumask_t *src2p, int nbits)
3035 return bitmap_intersects(src1p->bits, src2p->bits, nbits);
3039 static inline __attribute__((always_inline)) int __cpus_subset(const cpumask_t *src1p,
3040 const cpumask_t *src2p, int nbits)
3042 return bitmap_subset(src1p->bits, src2p->bits, nbits);
3046 static inline __attribute__((always_inline)) int __cpus_empty(const cpumask_t *srcp, int nbits)
3048 return bitmap_empty(srcp->bits, nbits);
3052 static inline __attribute__((always_inline)) int __cpus_full(const cpumask_t *srcp, int nbits)
3054 return bitmap_full(srcp->bits, nbits);
3058 static inline __attribute__((always_inline)) int __cpus_weight(const cpumask_t *srcp, int nbits)
3060 return bitmap_weight(srcp->bits, nbits);
3065 static inline __attribute__((always_inline)) void __cpus_shift_right(cpumask_t *dstp,
3066 const cpumask_t *srcp, int n, int nbits)
3068 bitmap_shift_right(dstp->bits, srcp->bits, n, nbits);
3073 static inline __attribute__((always_inline)) void __cpus_shift_left(cpumask_t *dstp,
3074 const cpumask_t *srcp, int n, int nbits)
3076 bitmap_shift_left(dstp->bits, srcp->bits, n, nbits);
3078 # 270 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/cpumask.h"
3079 static inline __attribute__((always_inline)) int __cpumask_scnprintf(char *buf, int len,
3080 const cpumask_t *srcp, int nbits)
3082 return bitmap_scnprintf(buf, len, srcp->bits, nbits);
3087 static inline __attribute__((always_inline)) int __cpumask_parse_user(const char *buf, int len,
3088 cpumask_t *dstp, int nbits)
3090 return bitmap_parse_user(buf, len, dstp->bits, nbits);
3095 static inline __attribute__((always_inline)) int __cpulist_scnprintf(char *buf, int len,
3096 const cpumask_t *srcp, int nbits)
3098 return bitmap_scnlistprintf(buf, len, srcp->bits, nbits);
3102 static inline __attribute__((always_inline)) int __cpulist_parse(const char *buf, cpumask_t *dstp, int nbits)
3104 return bitmap_parselist(buf, dstp->bits, nbits);
3109 static inline __attribute__((always_inline)) int __cpu_remap(int oldbit,
3110 const cpumask_t *oldp, const cpumask_t *newp, int nbits)
3112 return bitmap_bitremap(oldbit, oldp->bits, newp->bits, nbits);
3117 static inline __attribute__((always_inline)) void __cpus_remap(cpumask_t *dstp, const cpumask_t *srcp,
3118 const cpumask_t *oldp, const cpumask_t *newp, int nbits)
3120 bitmap_remap(dstp->bits, srcp->bits, oldp->bits, newp->bits, nbits);
3122 # 380 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/cpumask.h"
3123 extern cpumask_t cpu_possible_map;
3124 extern cpumask_t cpu_online_map;
3125 extern cpumask_t cpu_present_map;
3126 # 55 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2
3127 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/errno.h" 1
3131 # 1 "include2/asm/errno.h" 1
3135 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/errno.h" 1
3139 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/errno-base.h" 1
3140 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/errno.h" 2
3141 # 5 "include2/asm/errno.h" 2
3142 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/errno.h" 2
3143 # 56 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2
3144 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/nodemask.h" 1
3145 # 86 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/nodemask.h"
3146 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/numa.h" 1
3147 # 87 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/nodemask.h" 2
3149 typedef struct { unsigned long bits[((((1 << 0))+32 -1)/32)]; } nodemask_t;
3150 extern nodemask_t _unused_nodemask_arg_;
3153 static inline __attribute__((always_inline)) void __node_set(int node, volatile nodemask_t *dstp)
3155 set_bit(node, dstp->bits);
3159 static inline __attribute__((always_inline)) void __node_clear(int node, volatile nodemask_t *dstp)
3161 clear_bit(node, dstp->bits);
3165 static inline __attribute__((always_inline)) void __nodes_setall(nodemask_t *dstp, int nbits)
3167 bitmap_fill(dstp->bits, nbits);
3171 static inline __attribute__((always_inline)) void __nodes_clear(nodemask_t *dstp, int nbits)
3173 bitmap_zero(dstp->bits, nbits);
3181 static inline __attribute__((always_inline)) int __node_test_and_set(int node, nodemask_t *addr)
3183 return test_and_set_bit(node, addr->bits);
3188 static inline __attribute__((always_inline)) void __nodes_and(nodemask_t *dstp, const nodemask_t *src1p,
3189 const nodemask_t *src2p, int nbits)
3191 bitmap_and(dstp->bits, src1p->bits, src2p->bits, nbits);
3196 static inline __attribute__((always_inline)) void __nodes_or(nodemask_t *dstp, const nodemask_t *src1p,
3197 const nodemask_t *src2p, int nbits)
3199 bitmap_or(dstp->bits, src1p->bits, src2p->bits, nbits);
3204 static inline __attribute__((always_inline)) void __nodes_xor(nodemask_t *dstp, const nodemask_t *src1p,
3205 const nodemask_t *src2p, int nbits)
3207 bitmap_xor(dstp->bits, src1p->bits, src2p->bits, nbits);
3212 static inline __attribute__((always_inline)) void __nodes_andnot(nodemask_t *dstp, const nodemask_t *src1p,
3213 const nodemask_t *src2p, int nbits)
3215 bitmap_andnot(dstp->bits, src1p->bits, src2p->bits, nbits);
3220 static inline __attribute__((always_inline)) void __nodes_complement(nodemask_t *dstp,
3221 const nodemask_t *srcp, int nbits)
3223 bitmap_complement(dstp->bits, srcp->bits, nbits);
3228 static inline __attribute__((always_inline)) int __nodes_equal(const nodemask_t *src1p,
3229 const nodemask_t *src2p, int nbits)
3231 return bitmap_equal(src1p->bits, src2p->bits, nbits);
3236 static inline __attribute__((always_inline)) int __nodes_intersects(const nodemask_t *src1p,
3237 const nodemask_t *src2p, int nbits)
3239 return bitmap_intersects(src1p->bits, src2p->bits, nbits);
3244 static inline __attribute__((always_inline)) int __nodes_subset(const nodemask_t *src1p,
3245 const nodemask_t *src2p, int nbits)
3247 return bitmap_subset(src1p->bits, src2p->bits, nbits);
3251 static inline __attribute__((always_inline)) int __nodes_empty(const nodemask_t *srcp, int nbits)
3253 return bitmap_empty(srcp->bits, nbits);
3257 static inline __attribute__((always_inline)) int __nodes_full(const nodemask_t *srcp, int nbits)
3259 return bitmap_full(srcp->bits, nbits);
3263 static inline __attribute__((always_inline)) int __nodes_weight(const nodemask_t *srcp, int nbits)
3265 return bitmap_weight(srcp->bits, nbits);
3270 static inline __attribute__((always_inline)) void __nodes_shift_right(nodemask_t *dstp,
3271 const nodemask_t *srcp, int n, int nbits)
3273 bitmap_shift_right(dstp->bits, srcp->bits, n, nbits);
3278 static inline __attribute__((always_inline)) void __nodes_shift_left(nodemask_t *dstp,
3279 const nodemask_t *srcp, int n, int nbits)
3281 bitmap_shift_left(dstp->bits, srcp->bits, n, nbits);
3288 static inline __attribute__((always_inline)) int __first_node(const nodemask_t *srcp)
3290 return ({ int __x = ((1 << 0)); int __y = (find_next_bit((srcp->bits), ((1 << 0)), 0)); __x < __y ? __x: __y; });
3294 static inline __attribute__((always_inline)) int __next_node(int n, const nodemask_t *srcp)
3296 return ({ int __x = ((1 << 0)); int __y = (find_next_bit(srcp->bits, (1 << 0), n+1)); __x < __y ? __x: __y; });
3298 # 251 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/nodemask.h"
3299 static inline __attribute__((always_inline)) int __first_unset_node(const nodemask_t *maskp)
3301 return ({ int __x = ((1 << 0)); int __y = (find_next_zero_bit((maskp->bits), ((1 << 0)), 0)); __x < __y ? __x: __y; });
3304 # 285 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/nodemask.h"
3305 static inline __attribute__((always_inline)) int __nodemask_scnprintf(char *buf, int len,
3306 const nodemask_t *srcp, int nbits)
3308 return bitmap_scnprintf(buf, len, srcp->bits, nbits);
3313 static inline __attribute__((always_inline)) int __nodemask_parse_user(const char *buf, int len,
3314 nodemask_t *dstp, int nbits)
3316 return bitmap_parse_user(buf, len, dstp->bits, nbits);
3321 static inline __attribute__((always_inline)) int __nodelist_scnprintf(char *buf, int len,
3322 const nodemask_t *srcp, int nbits)
3324 return bitmap_scnlistprintf(buf, len, srcp->bits, nbits);
3328 static inline __attribute__((always_inline)) int __nodelist_parse(const char *buf, nodemask_t *dstp, int nbits)
3330 return bitmap_parselist(buf, dstp->bits, nbits);
3335 static inline __attribute__((always_inline)) int __node_remap(int oldbit,
3336 const nodemask_t *oldp, const nodemask_t *newp, int nbits)
3338 return bitmap_bitremap(oldbit, oldp->bits, newp->bits, nbits);
3343 static inline __attribute__((always_inline)) void __nodes_remap(nodemask_t *dstp, const nodemask_t *srcp,
3344 const nodemask_t *oldp, const nodemask_t *newp, int nbits)
3346 bitmap_remap(dstp->bits, srcp->bits, oldp->bits, newp->bits, nbits);
3348 # 345 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/nodemask.h"
3349 extern nodemask_t node_online_map;
3350 extern nodemask_t node_possible_map;
3351 # 57 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2
3354 # 1 "include2/asm/semaphore.h" 1
3355 # 17 "include2/asm/semaphore.h"
3356 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rwsem.h" 1
3357 # 19 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rwsem.h"
3358 struct rw_semaphore;
3361 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rwsem-spinlock.h" 1
3362 # 16 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rwsem-spinlock.h"
3363 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h" 1
3370 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/poison.h" 1
3371 # 8 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h" 2
3372 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/prefetch.h" 1
3373 # 58 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/prefetch.h"
3374 static inline __attribute__((always_inline)) void prefetch_range(void *addr, size_t len)
3378 char *end = addr + len;
3380 for (cp = addr; cp < end; cp += (1 << 5))
3384 # 9 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h" 2
3385 # 21 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h"
3387 struct list_head *next, *prev;
3395 static inline __attribute__((always_inline)) void INIT_LIST_HEAD(struct list_head *list)
3400 # 43 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h"
3401 static inline __attribute__((always_inline)) void __list_add(struct list_head *new,
3402 struct list_head *prev,
3403 struct list_head *next)
3410 # 67 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h"
3411 static inline __attribute__((always_inline)) void list_add(struct list_head *new, struct list_head *head)
3413 __list_add(new, head, head->next);
3415 # 84 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h"
3416 static inline __attribute__((always_inline)) void list_add_tail(struct list_head *new, struct list_head *head)
3418 __list_add(new, head->prev, head);
3427 static inline __attribute__((always_inline)) void __list_add_rcu(struct list_head * new,
3428 struct list_head * prev, struct list_head * next)
3432 __asm__ __volatile__("": : :"memory");
3436 # 121 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h"
3437 static inline __attribute__((always_inline)) void list_add_rcu(struct list_head *new, struct list_head *head)
3439 __list_add_rcu(new, head, head->next);
3441 # 142 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h"
3442 static inline __attribute__((always_inline)) void list_add_tail_rcu(struct list_head *new,
3443 struct list_head *head)
3445 __list_add_rcu(new, head->prev, head);
3447 # 155 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h"
3448 static inline __attribute__((always_inline)) void __list_del(struct list_head * prev, struct list_head * next)
3453 # 168 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h"
3454 static inline __attribute__((always_inline)) void list_del(struct list_head *entry)
3456 __list_del(entry->prev, entry->next);
3457 entry->next = ((void *) 0x00100100);
3458 entry->prev = ((void *) 0x00200200);
3460 # 202 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h"
3461 static inline __attribute__((always_inline)) void list_del_rcu(struct list_head *entry)
3463 __list_del(entry->prev, entry->next);
3464 entry->prev = ((void *) 0x00200200);
3473 static inline __attribute__((always_inline)) void list_replace(struct list_head *old,
3474 struct list_head *new)
3476 new->next = old->next;
3477 new->next->prev = new;
3478 new->prev = old->prev;
3479 new->prev->next = new;
3482 static inline __attribute__((always_inline)) void list_replace_init(struct list_head *old,
3483 struct list_head *new)
3485 list_replace(old, new);
3486 INIT_LIST_HEAD(old);
3488 # 238 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h"
3489 static inline __attribute__((always_inline)) void list_replace_rcu(struct list_head *old,
3490 struct list_head *new)
3492 new->next = old->next;
3493 new->prev = old->prev;
3494 __asm__ __volatile__("": : :"memory");
3495 new->next->prev = new;
3496 new->prev->next = new;
3497 old->prev = ((void *) 0x00200200);
3504 static inline __attribute__((always_inline)) void list_del_init(struct list_head *entry)
3506 __list_del(entry->prev, entry->next);
3507 INIT_LIST_HEAD(entry);
3515 static inline __attribute__((always_inline)) void list_move(struct list_head *list, struct list_head *head)
3517 __list_del(list->prev, list->next);
3518 list_add(list, head);
3526 static inline __attribute__((always_inline)) void list_move_tail(struct list_head *list,
3527 struct list_head *head)
3529 __list_del(list->prev, list->next);
3530 list_add_tail(list, head);
3538 static inline __attribute__((always_inline)) int list_is_last(const struct list_head *list,
3539 const struct list_head *head)
3541 return list->next == head;
3548 static inline __attribute__((always_inline)) int list_empty(const struct list_head *head)
3550 return head->next == head;
3552 # 315 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h"
3553 static inline __attribute__((always_inline)) int list_empty_careful(const struct list_head *head)
3555 struct list_head *next = head->next;
3556 return (next == head) && (next == head->prev);
3559 static inline __attribute__((always_inline)) void __list_splice(struct list_head *list,
3560 struct list_head *head)
3562 struct list_head *first = list->next;
3563 struct list_head *last = list->prev;
3564 struct list_head *at = head->next;
3578 static inline __attribute__((always_inline)) void list_splice(struct list_head *list, struct list_head *head)
3580 if (!list_empty(list))
3581 __list_splice(list, head);
3583 # 353 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h"
3584 static inline __attribute__((always_inline)) void list_splice_init(struct list_head *list,
3585 struct list_head *head)
3587 if (!list_empty(list)) {
3588 __list_splice(list, head);
3589 INIT_LIST_HEAD(list);
3592 # 607 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h"
3594 struct hlist_node *first;
3598 struct hlist_node *next, **pprev;
3604 static inline __attribute__((always_inline)) void INIT_HLIST_NODE(struct hlist_node *h)
3606 h->next = ((void *)0);
3607 h->pprev = ((void *)0);
3610 static inline __attribute__((always_inline)) int hlist_unhashed(const struct hlist_node *h)
3615 static inline __attribute__((always_inline)) int hlist_empty(const struct hlist_head *h)
3620 static inline __attribute__((always_inline)) void __hlist_del(struct hlist_node *n)
3622 struct hlist_node *next = n->next;
3623 struct hlist_node **pprev = n->pprev;
3626 next->pprev = pprev;
3629 static inline __attribute__((always_inline)) void hlist_del(struct hlist_node *n)
3632 n->next = ((void *) 0x00100100);
3633 n->pprev = ((void *) 0x00200200);
3635 # 669 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h"
3636 static inline __attribute__((always_inline)) void hlist_del_rcu(struct hlist_node *n)
3639 n->pprev = ((void *) 0x00200200);
3642 static inline __attribute__((always_inline)) void hlist_del_init(struct hlist_node *n)
3644 if (!hlist_unhashed(n)) {
3649 # 690 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h"
3650 static inline __attribute__((always_inline)) void hlist_replace_rcu(struct hlist_node *old,
3651 struct hlist_node *new)
3653 struct hlist_node *next = old->next;
3656 new->pprev = old->pprev;
3657 __asm__ __volatile__("": : :"memory");
3659 new->next->pprev = &new->next;
3661 old->pprev = ((void *) 0x00200200);
3664 static inline __attribute__((always_inline)) void hlist_add_head(struct hlist_node *n, struct hlist_head *h)
3666 struct hlist_node *first = h->first;
3669 first->pprev = &n->next;
3671 n->pprev = &h->first;
3673 # 734 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h"
3674 static inline __attribute__((always_inline)) void hlist_add_head_rcu(struct hlist_node *n,
3675 struct hlist_head *h)
3677 struct hlist_node *first = h->first;
3679 n->pprev = &h->first;
3680 __asm__ __volatile__("": : :"memory");
3682 first->pprev = &n->next;
3687 static inline __attribute__((always_inline)) void hlist_add_before(struct hlist_node *n,
3688 struct hlist_node *next)
3690 n->pprev = next->pprev;
3692 next->pprev = &n->next;
3696 static inline __attribute__((always_inline)) void hlist_add_after(struct hlist_node *n,
3697 struct hlist_node *next)
3699 next->next = n->next;
3701 next->pprev = &n->next;
3704 next->next->pprev = &next->next;
3706 # 785 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h"
3707 static inline __attribute__((always_inline)) void hlist_add_before_rcu(struct hlist_node *n,
3708 struct hlist_node *next)
3710 n->pprev = next->pprev;
3712 __asm__ __volatile__("": : :"memory");
3713 next->pprev = &n->next;
3716 # 813 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/list.h"
3717 static inline __attribute__((always_inline)) void hlist_add_after_rcu(struct hlist_node *prev,
3718 struct hlist_node *n)
3720 n->next = prev->next;
3721 n->pprev = &prev->next;
3722 __asm__ __volatile__("": : :"memory");
3725 n->next->pprev = &n->next;
3727 # 17 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rwsem-spinlock.h" 2
3733 struct rwsem_waiter;
3734 # 31 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rwsem-spinlock.h"
3735 struct rw_semaphore {
3737 spinlock_t wait_lock;
3738 struct list_head wait_list;
3743 # 52 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rwsem-spinlock.h"
3744 extern void __init_rwsem(struct rw_semaphore *sem, const char *name,
3745 struct lock_class_key *key);
3746 # 62 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rwsem-spinlock.h"
3747 extern void __down_read(struct rw_semaphore *sem);
3748 extern int __down_read_trylock(struct rw_semaphore *sem);
3749 extern void __down_write(struct rw_semaphore *sem);
3750 extern void __down_write_nested(struct rw_semaphore *sem, int subclass);
3751 extern int __down_write_trylock(struct rw_semaphore *sem);
3752 extern void __up_read(struct rw_semaphore *sem);
3753 extern void __up_write(struct rw_semaphore *sem);
3754 extern void __downgrade_write(struct rw_semaphore *sem);
3756 static inline __attribute__((always_inline)) int rwsem_is_locked(struct rw_semaphore *sem)
3758 return (sem->activity != 0);
3760 # 23 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rwsem.h" 2
3768 extern void down_read(struct rw_semaphore *sem);
3773 extern int down_read_trylock(struct rw_semaphore *sem);
3778 extern void down_write(struct rw_semaphore *sem);
3783 extern int down_write_trylock(struct rw_semaphore *sem);
3788 extern void up_read(struct rw_semaphore *sem);
3793 extern void up_write(struct rw_semaphore *sem);
3798 extern void downgrade_write(struct rw_semaphore *sem);
3799 # 18 "include2/asm/semaphore.h" 2
3800 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/wait.h" 1
3801 # 28 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/wait.h"
3802 typedef struct __wait_queue wait_queue_t;
3803 typedef int (*wait_queue_func_t)(wait_queue_t *wait, unsigned mode, int sync, void *key);
3804 int default_wake_function(wait_queue_t *wait, unsigned mode, int sync, void *key);
3806 struct __wait_queue {
3810 wait_queue_func_t func;
3811 struct list_head task_list;
3814 struct wait_bit_key {
3819 struct wait_bit_queue {
3820 struct wait_bit_key key;
3824 struct __wait_queue_head {
3826 struct list_head task_list;
3828 typedef struct __wait_queue_head wait_queue_head_t;
3831 # 80 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/wait.h"
3832 extern void init_waitqueue_head(wait_queue_head_t *q);
3834 static inline __attribute__((always_inline)) void init_waitqueue_entry(wait_queue_t *q, struct task_struct *p)
3838 q->func = default_wake_function;
3841 static inline __attribute__((always_inline)) void init_waitqueue_func_entry(wait_queue_t *q,
3842 wait_queue_func_t func)
3845 q->private = ((void *)0);
3849 static inline __attribute__((always_inline)) int waitqueue_active(wait_queue_head_t *q)
3851 return !list_empty(&q->task_list);
3853 # 111 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/wait.h"
3854 extern void add_wait_queue(wait_queue_head_t *q, wait_queue_t * wait);
3855 extern void add_wait_queue_exclusive(wait_queue_head_t *q, wait_queue_t * wait);
3856 extern void remove_wait_queue(wait_queue_head_t *q, wait_queue_t * wait);
3858 static inline __attribute__((always_inline)) void __add_wait_queue(wait_queue_head_t *head, wait_queue_t *new)
3860 list_add(&new->task_list, &head->task_list);
3866 static inline __attribute__((always_inline)) void __add_wait_queue_tail(wait_queue_head_t *head,
3869 list_add_tail(&new->task_list, &head->task_list);
3872 static inline __attribute__((always_inline)) void __remove_wait_queue(wait_queue_head_t *head,
3875 list_del(&old->task_list);
3878 void __wake_up(wait_queue_head_t *q, unsigned int mode, int nr, void *key);
3879 extern void __wake_up_locked(wait_queue_head_t *q, unsigned int mode);
3880 extern void __wake_up_sync(wait_queue_head_t *q, unsigned int mode, int nr);
3881 void __wake_up_bit(wait_queue_head_t *, void *, int);
3882 int __wait_on_bit(wait_queue_head_t *, struct wait_bit_queue *, int (*)(void *), unsigned);
3883 int __wait_on_bit_lock(wait_queue_head_t *, struct wait_bit_queue *, int (*)(void *), unsigned);
3884 void wake_up_bit(void *, int);
3885 int out_of_line_wait_on_bit(void *, int, int (*)(void *), unsigned);
3886 int out_of_line_wait_on_bit_lock(void *, int, int (*)(void *), unsigned);
3887 wait_queue_head_t *bit_waitqueue(void *, int);
3888 # 342 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/wait.h"
3889 static inline __attribute__((always_inline)) void add_wait_queue_exclusive_locked(wait_queue_head_t *q,
3890 wait_queue_t * wait)
3892 wait->flags |= 0x01;
3893 __add_wait_queue_tail(q, wait);
3899 static inline __attribute__((always_inline)) void remove_wait_queue_locked(wait_queue_head_t *q,
3900 wait_queue_t * wait)
3902 __remove_wait_queue(q, wait);
3910 extern void sleep_on(wait_queue_head_t *q);
3911 extern long sleep_on_timeout(wait_queue_head_t *q, signed long timeout);
3913 extern void interruptible_sleep_on(wait_queue_head_t *q);
3914 extern long interruptible_sleep_on_timeout(wait_queue_head_t *q, signed long timeout);
3920 void prepare_to_wait(wait_queue_head_t *q, wait_queue_t *wait, int state);
3922 void prepare_to_wait_exclusive(wait_queue_head_t *q, wait_queue_t *wait, int state);
3924 void finish_wait(wait_queue_head_t *q, wait_queue_t *wait);
3925 int autoremove_wake_function(wait_queue_t *wait, unsigned mode, int sync, void *key);
3926 int wake_bit_function(wait_queue_t *wait, unsigned mode, int sync, void *key);
3927 # 420 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/wait.h"
3928 static inline __attribute__((always_inline)) int wait_on_bit(void *word, int bit,
3929 int (*action)(void *), unsigned mode)
3931 if (!test_bit(bit, word))
3933 return out_of_line_wait_on_bit(word, bit, action, mode);
3935 # 444 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/wait.h"
3936 static inline __attribute__((always_inline)) int wait_on_bit_lock(void *word, int bit,
3937 int (*action)(void *), unsigned mode)
3939 if (!test_and_set_bit(bit, word))
3941 return out_of_line_wait_on_bit_lock(word, bit, action, mode);
3943 # 19 "include2/asm/semaphore.h" 2
3951 wait_queue_head_t wait;
3953 # 42 "include2/asm/semaphore.h"
3954 static inline __attribute__((always_inline)) void sema_init (struct semaphore *sem, int val)
3962 ((&sem->count)->counter = (val));
3964 init_waitqueue_head(&sem->wait);
3967 static inline __attribute__((always_inline)) void init_MUTEX (struct semaphore *sem)
3972 static inline __attribute__((always_inline)) void init_MUTEX_LOCKED (struct semaphore *sem)
3976 # 72 "include2/asm/semaphore.h"
3977 void __down(struct semaphore * sem);
3978 int __down_interruptible(struct semaphore * sem);
3979 int __down_trylock(struct semaphore * sem);
3980 void __up(struct semaphore * sem);
3982 extern spinlock_t semaphore_wake_lock;
3984 static inline __attribute__((always_inline)) void down(struct semaphore * sem)
3986 do { do { } while (0); } while (0);
3987 if (atomic_sub_return(1,(&sem->count)) < 0)
3991 static inline __attribute__((always_inline)) int down_interruptible(struct semaphore * sem)
3995 do { do { } while (0); } while (0);
3996 if (atomic_sub_return(1,(&sem->count)) < 0)
3997 ret = __down_interruptible(sem);
4001 static inline __attribute__((always_inline)) int down_trylock(struct semaphore * sem)
4005 if (atomic_sub_return(1,(&sem->count)) < 0)
4006 ret = __down_trylock(sem);
4014 static inline __attribute__((always_inline)) void up(struct semaphore * sem)
4016 if (atomic_add_return(1,(&sem->count)) <= 0)
4019 # 60 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2
4022 # 1 "include2/asm/mmu.h" 1
4023 # 14 "include2/asm/mmu.h"
4024 typedef unsigned long mm_context_id_t;
4030 # 47 "include2/asm/mmu.h"
4036 unsigned long flags;
4044 struct pmb_entry *next;
4046 struct pmb_entry *link;
4050 int __set_pmb_entry(unsigned long vpn, unsigned long ppn,
4051 unsigned long flags, int *entry);
4052 int set_pmb_entry(struct pmb_entry *pmbe);
4053 void clear_pmb_entry(struct pmb_entry *pmbe);
4054 struct pmb_entry *pmb_alloc(unsigned long vpn, unsigned long ppn,
4055 unsigned long flags);
4056 void pmb_free(struct pmb_entry *pmbe);
4057 long pmb_remap(unsigned long virt, unsigned long phys,
4058 unsigned long size, unsigned long flags);
4059 void pmb_unmap(unsigned long addr);
4060 # 63 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2
4061 # 1 "include2/asm/cputime.h" 1
4065 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/cputime.h" 1
4072 typedef unsigned long cputime_t;
4073 # 23 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/cputime.h"
4074 typedef u64 cputime64_t;
4075 # 5 "include2/asm/cputime.h" 2
4076 # 64 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2
4078 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/smp.h" 1
4079 # 10 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/smp.h"
4080 extern void cpu_idle(void);
4081 # 87 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/smp.h"
4082 static inline __attribute__((always_inline)) int up_smp_call_function(void)
4086 # 99 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/smp.h"
4087 static inline __attribute__((always_inline)) void smp_send_reschedule(int cpu) { }
4088 # 131 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/smp.h"
4089 void smp_setup_processor_id(void);
4090 # 66 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2
4091 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sem.h" 1
4095 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ipc.h" 1
4096 # 9 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ipc.h"
4102 __kernel_uid_t cuid;
4103 __kernel_gid_t cgid;
4104 __kernel_mode_t mode;
4109 # 1 "include2/asm/ipcbuf.h" 1
4110 # 14 "include2/asm/ipcbuf.h"
4114 __kernel_uid32_t uid;
4115 __kernel_gid32_t gid;
4116 __kernel_uid32_t cuid;
4117 __kernel_gid32_t cgid;
4118 __kernel_mode_t mode;
4119 unsigned short __pad1;
4121 unsigned short __pad2;
4122 unsigned long __unused1;
4123 unsigned long __unused2;
4125 # 22 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ipc.h" 2
4126 # 54 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ipc.h"
4127 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kref.h" 1
4128 # 23 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kref.h"
4133 void kref_init(struct kref *kref);
4134 void kref_get(struct kref *kref);
4135 int kref_put(struct kref *kref, void (*release) (struct kref *kref));
4136 # 55 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ipc.h" 2
4141 struct kern_ipc_perm
4156 struct ipc_namespace {
4158 struct ipc_ids *ids[3];
4173 extern struct ipc_namespace init_ipc_ns;
4174 # 104 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ipc.h"
4175 static inline __attribute__((always_inline)) int copy_ipcs(unsigned long flags, struct task_struct *tsk)
4181 static inline __attribute__((always_inline)) struct ipc_namespace *get_ipc_ns(struct ipc_namespace *ns)
4190 static inline __attribute__((always_inline)) void put_ipc_ns(struct ipc_namespace *ns)
4196 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sem.h" 2
4197 # 23 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sem.h"
4199 struct ipc_perm sem_perm;
4200 __kernel_time_t sem_otime;
4201 __kernel_time_t sem_ctime;
4202 struct sem *sem_base;
4203 struct sem_queue *sem_pending;
4204 struct sem_queue **sem_pending_last;
4205 struct sem_undo *undo;
4206 unsigned short sem_nsems;
4210 # 1 "include2/asm/sembuf.h" 1
4211 # 14 "include2/asm/sembuf.h"
4213 struct ipc64_perm sem_perm;
4214 __kernel_time_t sem_otime;
4215 unsigned long __unused1;
4216 __kernel_time_t sem_ctime;
4217 unsigned long __unused2;
4218 unsigned long sem_nsems;
4219 unsigned long __unused3;
4220 unsigned long __unused4;
4222 # 36 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sem.h" 2
4226 unsigned short sem_num;
4234 struct semid_ds *buf;
4235 unsigned short *array;
4236 struct seminfo *__buf;
4252 # 82 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sem.h"
4263 struct kern_ipc_perm sem_perm;
4267 struct sem *sem_base;
4268 struct sem_queue *sem_pending;
4269 struct sem_queue **sem_pending_last;
4270 struct sem_undo *undo;
4271 unsigned long sem_nsems;
4276 struct sem_queue * next;
4277 struct sem_queue ** prev;
4278 struct task_struct* sleeper;
4279 struct sem_undo * undo;
4282 struct sem_array * sma;
4284 struct sembuf * sops;
4293 struct sem_undo * proc_next;
4294 struct sem_undo * id_next;
4302 struct sem_undo_list {
4305 struct sem_undo *proc_list;
4309 struct sem_undo_list *undo_list;
4314 extern int copy_semundo(unsigned long clone_flags, struct task_struct *tsk);
4315 extern void exit_sem(struct task_struct *tsk);
4316 # 67 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2
4317 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/signal.h" 1
4321 # 1 "include2/asm/signal.h" 1
4330 # 18 "include2/asm/signal.h"
4331 typedef unsigned long old_sigset_t;
4334 unsigned long sig[(64 / 32)];
4336 # 109 "include2/asm/signal.h"
4337 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/signal.h" 1
4338 # 17 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/signal.h"
4339 typedef void __signalfn_t(int);
4340 typedef __signalfn_t *__sighandler_t;
4342 typedef void __restorefn_t(void);
4343 typedef __restorefn_t *__sigrestore_t;
4344 # 110 "include2/asm/signal.h" 2
4347 struct old_sigaction {
4348 __sighandler_t sa_handler;
4349 old_sigset_t sa_mask;
4350 unsigned long sa_flags;
4351 void (*sa_restorer)(void);
4355 __sighandler_t sa_handler;
4356 unsigned long sa_flags;
4357 void (*sa_restorer)(void);
4361 struct k_sigaction {
4362 struct sigaction sa;
4364 # 147 "include2/asm/signal.h"
4365 typedef struct sigaltstack {
4372 # 1 "include2/asm/sigcontext.h" 1
4377 unsigned long oldmask;
4380 unsigned long sc_regs[16];
4381 unsigned long sc_pc;
4382 unsigned long sc_pr;
4383 unsigned long sc_sr;
4384 unsigned long sc_gbr;
4385 unsigned long sc_mach;
4386 unsigned long sc_macl;
4390 unsigned long sc_fpregs[16];
4391 unsigned long sc_xfpregs[16];
4392 unsigned int sc_fpscr;
4393 unsigned int sc_fpul;
4394 unsigned int sc_ownedfp;
4397 # 155 "include2/asm/signal.h" 2
4398 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/signal.h" 2
4399 # 1 "include2/asm/siginfo.h" 1
4403 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/siginfo.h" 1
4410 typedef union sigval {
4414 # 40 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/siginfo.h"
4415 typedef struct siginfo {
4421 int _pad[((128 - (3 * sizeof(int))) / sizeof(int))];
4433 char _pad[sizeof( uid_t) - sizeof(int)];
4469 # 251 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/siginfo.h"
4470 typedef struct sigevent {
4471 sigval_t sigev_value;
4475 int _pad[((64 - (sizeof(int) * 2 + sizeof(sigval_t))) / sizeof(int))];
4479 void (*_function)(sigval_t);
4492 void do_schedule_next_timer(struct siginfo *info);
4498 static inline __attribute__((always_inline)) void copy_siginfo(struct siginfo *to, struct siginfo *from)
4500 if (from->si_code < 0)
4501 memcpy(to, from, sizeof(*to));
4504 memcpy(to, from, (3 * sizeof(int)) + sizeof(from->_sifields._sigchld));
4509 extern int copy_siginfo_to_user(struct siginfo *to, struct siginfo *from);
4510 # 5 "include2/asm/siginfo.h" 2
4511 # 6 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/signal.h" 2
4512 # 15 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/signal.h"
4514 struct list_head list;
4517 struct user_struct *user;
4524 struct list_head list;
4527 # 39 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/signal.h"
4528 static inline __attribute__((always_inline)) void sigaddset(sigset_t *set, int _sig)
4530 unsigned long sig = _sig - 1;
4532 set->sig[0] |= 1UL << sig;
4534 set->sig[sig / 32] |= 1UL << (sig % 32);
4537 static inline __attribute__((always_inline)) void sigdelset(sigset_t *set, int _sig)
4539 unsigned long sig = _sig - 1;
4541 set->sig[0] &= ~(1UL << sig);
4543 set->sig[sig / 32] &= ~(1UL << (sig % 32));
4546 static inline __attribute__((always_inline)) int sigismember(sigset_t *set, int _sig)
4548 unsigned long sig = _sig - 1;
4550 return 1 & (set->sig[0] >> sig);
4552 return 1 & (set->sig[sig / 32] >> (sig % 32));
4555 static inline __attribute__((always_inline)) int sigfindinword(unsigned long word)
4562 static inline __attribute__((always_inline)) int sigisemptyset(sigset_t *set)
4564 extern void _NSIG_WORDS_is_unsupported_size(void);
4565 switch ((64 / 32)) {
4567 return (set->sig[3] | set->sig[2] |
4568 set->sig[1] | set->sig[0]) == 0;
4570 return (set->sig[1] | set->sig[0]) == 0;
4572 return set->sig[0] == 0;
4574 _NSIG_WORDS_is_unsupported_size();
4578 # 120 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/signal.h"
4579 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(); } }
4582 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(); } }
4585 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(); } }
4586 # 150 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/signal.h"
4587 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(); } }
4592 static inline __attribute__((always_inline)) void sigemptyset(sigset_t *set)
4594 switch ((64 / 32)) {
4596 memset(set, 0, sizeof(sigset_t));
4598 case 2: set->sig[1] = 0;
4599 case 1: set->sig[0] = 0;
4604 static inline __attribute__((always_inline)) void sigfillset(sigset_t *set)
4606 switch ((64 / 32)) {
4608 memset(set, -1, sizeof(sigset_t));
4610 case 2: set->sig[1] = -1;
4611 case 1: set->sig[0] = -1;
4618 static inline __attribute__((always_inline)) void sigaddsetmask(sigset_t *set, unsigned long mask)
4620 set->sig[0] |= mask;
4623 static inline __attribute__((always_inline)) void sigdelsetmask(sigset_t *set, unsigned long mask)
4625 set->sig[0] &= ~mask;
4628 static inline __attribute__((always_inline)) int sigtestsetmask(sigset_t *set, unsigned long mask)
4630 return (set->sig[0] & mask) != 0;
4633 static inline __attribute__((always_inline)) void siginitset(sigset_t *set, unsigned long mask)
4636 switch ((64 / 32)) {
4638 memset(&set->sig[1], 0, sizeof(long)*((64 / 32)-1));
4640 case 2: set->sig[1] = 0;
4645 static inline __attribute__((always_inline)) void siginitsetinv(sigset_t *set, unsigned long mask)
4647 set->sig[0] = ~mask;
4648 switch ((64 / 32)) {
4650 memset(&set->sig[1], -1, sizeof(long)*((64 / 32)-1));
4652 case 2: set->sig[1] = -1;
4659 static inline __attribute__((always_inline)) void init_sigpending(struct sigpending *sig)
4661 sigemptyset(&sig->signal);
4662 INIT_LIST_HEAD(&sig->list);
4665 extern void flush_sigqueue(struct sigpending *queue);
4668 static inline __attribute__((always_inline)) int valid_signal(unsigned long sig)
4670 return sig <= 64 ? 1 : 0;
4673 extern int group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p);
4674 extern int __group_send_sig_info(int, struct siginfo *, struct task_struct *);
4675 extern long do_sigpending(void *, unsigned long);
4676 extern int sigprocmask(int, sigset_t *, sigset_t *);
4679 extern int get_signal_to_deliver(siginfo_t *info, struct k_sigaction *return_ka, struct pt_regs *regs, void *cookie);
4680 # 68 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2
4681 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/securebits.h" 1
4687 extern unsigned securebits;
4688 # 69 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2
4689 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs_struct.h" 1
4700 struct dentry * root, * pwd, * altroot;
4701 struct vfsmount * rootmnt, * pwdmnt, * altrootmnt;
4710 extern void exit_fs(struct task_struct *);
4711 extern void set_fs_altroot(void);
4712 extern void set_fs_root(struct fs_struct *, struct vfsmount *, struct dentry *);
4713 extern void set_fs_pwd(struct fs_struct *, struct vfsmount *, struct dentry *);
4714 extern struct fs_struct *copy_fs_struct(struct fs_struct *);
4715 extern void put_fs_struct(struct fs_struct *);
4716 # 70 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2
4718 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/completion.h" 1
4719 # 13 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/completion.h"
4722 wait_queue_head_t wait;
4724 # 39 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/completion.h"
4725 static inline __attribute__((always_inline)) void init_completion(struct completion *x)
4728 init_waitqueue_head(&x->wait);
4731 extern void wait_for_completion(struct completion *);
4732 extern int wait_for_completion_interruptible(struct completion *x);
4733 extern unsigned long wait_for_completion_timeout(struct completion *x, unsigned long timeout);
4735 extern unsigned long wait_for_completion_interruptible_timeout( struct completion *x, unsigned long timeout);
4738 extern void complete(struct completion *);
4739 extern void complete_all(struct completion *);
4740 # 72 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2
4741 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pid.h" 1
4745 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rcupdate.h" 1
4746 # 38 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rcupdate.h"
4747 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/cache.h" 1
4748 # 39 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rcupdate.h" 2
4751 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/percpu.h" 1
4756 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/slab.h" 1
4757 # 12 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/slab.h"
4758 typedef struct kmem_cache kmem_cache_t;
4760 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/gfp.h" 1
4764 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h" 1
4765 # 27 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h"
4767 struct list_head free_list;
4768 unsigned long nr_free;
4772 # 49 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h"
4773 enum zone_stat_item {
4778 NR_SLAB_RECLAIMABLE,
4779 NR_SLAB_UNRECLAIMABLE,
4786 # 70 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h"
4787 NR_VM_ZONE_STAT_ITEMS };
4789 struct per_cpu_pages {
4793 struct list_head list;
4796 struct per_cpu_pageset {
4797 struct per_cpu_pages pcp[2];
4811 # 113 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h"
4813 # 127 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h"
4815 # 139 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h"
4818 # 156 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h"
4821 unsigned long free_pages;
4822 unsigned long pages_min, pages_low, pages_high;
4823 # 168 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h"
4824 unsigned long lowmem_reserve[MAX_NR_ZONES];
4825 # 179 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h"
4826 struct per_cpu_pageset pageset[1];
4836 struct free_area free_area[11];
4842 spinlock_t lru_lock;
4843 struct list_head active_list;
4844 struct list_head inactive_list;
4845 unsigned long nr_scan_active;
4846 unsigned long nr_scan_inactive;
4847 unsigned long nr_active;
4848 unsigned long nr_inactive;
4849 unsigned long pages_scanned;
4850 int all_unreclaimable;
4853 atomic_t reclaim_in_progress;
4856 atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
4857 # 227 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h"
4863 # 258 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h"
4864 wait_queue_head_t * wait_table;
4865 unsigned long wait_table_hash_nr_entries;
4866 unsigned long wait_table_bits;
4871 struct pglist_data *zone_pgdat;
4873 unsigned long zone_start_pfn;
4874 # 279 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h"
4875 unsigned long spanned_pages;
4876 unsigned long present_pages;
4883 # 306 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h"
4885 struct zone *zones[(1 << 0) * MAX_NR_ZONES + 1];
4887 # 320 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h"
4888 extern struct page *mem_map;
4889 # 334 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h"
4890 struct bootmem_data;
4891 typedef struct pglist_data {
4892 struct zone node_zones[MAX_NR_ZONES];
4893 struct zonelist node_zonelists[MAX_NR_ZONES];
4896 struct page *node_mem_map;
4898 struct bootmem_data *bdata;
4899 # 353 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h"
4900 unsigned long node_start_pfn;
4901 unsigned long node_present_pages;
4902 unsigned long node_spanned_pages;
4905 wait_queue_head_t kswapd_wait;
4906 struct task_struct *kswapd;
4907 int kswapd_max_order;
4909 # 372 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h"
4910 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/memory_hotplug.h" 1
4914 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h" 1
4915 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/memory_hotplug.h" 2
4918 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/notifier.h" 1
4919 # 13 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/notifier.h"
4920 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mutex.h" 1
4921 # 47 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mutex.h"
4925 spinlock_t wait_lock;
4926 struct list_head wait_list;
4927 # 60 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mutex.h"
4934 struct mutex_waiter {
4935 struct list_head list;
4936 struct task_struct *task;
4942 # 105 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mutex.h"
4943 extern void __mutex_init(struct mutex *lock, const char *name,
4944 struct lock_class_key *key);
4952 static inline __attribute__((always_inline)) int mutex_is_locked(struct mutex *lock)
4954 return ((&lock->count)->counter) != 1;
4961 extern void mutex_lock(struct mutex *lock);
4962 extern int mutex_lock_interruptible(struct mutex *lock);
4963 # 136 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mutex.h"
4964 extern int mutex_trylock(struct mutex *lock);
4965 extern void mutex_unlock(struct mutex *lock);
4966 # 14 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/notifier.h" 2
4968 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/srcu.h" 1
4969 # 30 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/srcu.h"
4970 struct srcu_struct_array {
4974 struct srcu_struct {
4976 struct srcu_struct_array *per_cpu_ref;
4986 int init_srcu_struct(struct srcu_struct *sp);
4987 void cleanup_srcu_struct(struct srcu_struct *sp);
4988 int srcu_read_lock(struct srcu_struct *sp) ;
4989 void srcu_read_unlock(struct srcu_struct *sp, int idx) ;
4990 void synchronize_srcu(struct srcu_struct *sp);
4991 long srcu_batches_completed(struct srcu_struct *sp);
4992 # 16 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/notifier.h" 2
4993 # 50 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/notifier.h"
4994 struct notifier_block {
4995 int (*notifier_call)(struct notifier_block *, unsigned long, void *);
4996 struct notifier_block *next;
5000 struct atomic_notifier_head {
5002 struct notifier_block *head;
5005 struct blocking_notifier_head {
5006 struct rw_semaphore rwsem;
5007 struct notifier_block *head;
5010 struct raw_notifier_head {
5011 struct notifier_block *head;
5014 struct srcu_notifier_head {
5016 struct srcu_struct srcu;
5017 struct notifier_block *head;
5019 # 89 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/notifier.h"
5020 extern void srcu_init_notifier_head(struct srcu_notifier_head *nh);
5021 # 115 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/notifier.h"
5022 extern int atomic_notifier_chain_register(struct atomic_notifier_head *,
5023 struct notifier_block *);
5024 extern int blocking_notifier_chain_register(struct blocking_notifier_head *,
5025 struct notifier_block *);
5026 extern int raw_notifier_chain_register(struct raw_notifier_head *,
5027 struct notifier_block *);
5028 extern int srcu_notifier_chain_register(struct srcu_notifier_head *,
5029 struct notifier_block *);
5031 extern int atomic_notifier_chain_unregister(struct atomic_notifier_head *,
5032 struct notifier_block *);
5033 extern int blocking_notifier_chain_unregister(struct blocking_notifier_head *,
5034 struct notifier_block *);
5035 extern int raw_notifier_chain_unregister(struct raw_notifier_head *,
5036 struct notifier_block *);
5037 extern int srcu_notifier_chain_unregister(struct srcu_notifier_head *,
5038 struct notifier_block *);
5040 extern int atomic_notifier_call_chain(struct atomic_notifier_head *,
5041 unsigned long val, void *v);
5042 extern int blocking_notifier_call_chain(struct blocking_notifier_head *,
5043 unsigned long val, void *v);
5044 extern int raw_notifier_call_chain(struct raw_notifier_head *,
5045 unsigned long val, void *v);
5046 extern int srcu_notifier_call_chain(struct srcu_notifier_head *,
5047 unsigned long val, void *v);
5048 # 8 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/memory_hotplug.h" 2
5053 # 140 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/memory_hotplug.h"
5054 static inline __attribute__((always_inline)) void pgdat_resize_lock(struct pglist_data *p, unsigned long *f) {}
5055 static inline __attribute__((always_inline)) void pgdat_resize_unlock(struct pglist_data *p, unsigned long *f) {}
5056 static inline __attribute__((always_inline)) void pgdat_resize_init(struct pglist_data *pgdat) {}
5058 static inline __attribute__((always_inline)) unsigned zone_span_seqbegin(struct zone *zone)
5062 static inline __attribute__((always_inline)) int zone_span_seqretry(struct zone *zone, unsigned iv)
5066 static inline __attribute__((always_inline)) void zone_span_writelock(struct zone *zone) {}
5067 static inline __attribute__((always_inline)) void zone_span_writeunlock(struct zone *zone) {}
5068 static inline __attribute__((always_inline)) void zone_seqlock_init(struct zone *zone) {}
5070 static inline __attribute__((always_inline)) int mhp_notimplemented(const char *func)
5072 printk("<4>" "%s() called, with CONFIG_MEMORY_HOTPLUG disabled\n", func);
5078 static inline __attribute__((always_inline)) int __remove_pages(struct zone *zone, unsigned long start_pfn,
5079 unsigned long nr_pages)
5081 printk("<4>" "%s() called, not yet supported\n", (__func__));
5086 extern int add_memory(int nid, u64 start, u64 size);
5087 extern int arch_add_memory(int nid, u64 start, u64 size);
5088 extern int remove_memory(u64 start, u64 size);
5089 extern int sparse_add_one_section(struct zone *zone, unsigned long start_pfn,
5091 # 373 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h" 2
5093 void __get_zone_counts(unsigned long *active, unsigned long *inactive,
5094 unsigned long *free, struct pglist_data *pgdat);
5095 void get_zone_counts(unsigned long *active, unsigned long *inactive,
5096 unsigned long *free);
5097 void build_all_zonelists(void);
5098 void wakeup_kswapd(struct zone *zone, int order);
5099 int zone_watermark_ok(struct zone *z, int order, unsigned long mark,
5100 int classzone_idx, int alloc_flags);
5102 extern int init_currently_empty_zone(struct zone *zone, unsigned long start_pfn,
5103 unsigned long size);
5108 static inline __attribute__((always_inline)) void memory_present(int nid, unsigned long start, unsigned long end) {}
5109 # 401 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h"
5110 static inline __attribute__((always_inline)) int populated_zone(struct zone *zone)
5112 return (!!zone->present_pages);
5115 static inline __attribute__((always_inline)) int is_highmem_idx(enum zone_type idx)
5124 static inline __attribute__((always_inline)) int is_normal_idx(enum zone_type idx)
5126 return (idx == ZONE_NORMAL);
5135 static inline __attribute__((always_inline)) int is_highmem(struct zone *zone)
5144 static inline __attribute__((always_inline)) int is_normal(struct zone *zone)
5146 return zone == zone->zone_pgdat->node_zones + ZONE_NORMAL;
5149 static inline __attribute__((always_inline)) int is_dma32(struct zone *zone)
5158 static inline __attribute__((always_inline)) int is_dma(struct zone *zone)
5160 return zone == zone->zone_pgdat->node_zones + ZONE_DMA;
5166 int min_free_kbytes_sysctl_handler(struct ctl_table *, int, struct file *,
5167 void *, size_t *, loff_t *);
5168 extern int sysctl_lowmem_reserve_ratio[MAX_NR_ZONES-1];
5169 int lowmem_reserve_ratio_sysctl_handler(struct ctl_table *, int, struct file *,
5170 void *, size_t *, loff_t *);
5171 int percpu_pagelist_fraction_sysctl_handler(struct ctl_table *, int, struct file *,
5172 void *, size_t *, loff_t *);
5173 int sysctl_min_unmapped_ratio_sysctl_handler(struct ctl_table *, int,
5174 struct file *, void *, size_t *, loff_t *);
5175 int sysctl_min_slab_ratio_sysctl_handler(struct ctl_table *, int,
5176 struct file *, void *, size_t *, loff_t *);
5178 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/topology.h" 1
5179 # 34 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/topology.h"
5180 # 1 "include2/asm/topology.h" 1
5184 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/topology.h" 1
5185 # 5 "include2/asm/topology.h" 2
5186 # 35 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/topology.h" 2
5187 # 470 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h" 2
5195 extern struct pglist_data contig_page_data;
5196 # 488 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h"
5197 extern struct pglist_data *first_online_pgdat(void);
5198 extern struct pglist_data *next_online_pgdat(struct pglist_data *pgdat);
5199 extern struct zone *next_zone(struct zone *zone);
5200 # 681 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmzone.h"
5201 void memory_present(int nid, unsigned long start, unsigned long end);
5202 unsigned long __attribute__ ((__section__ (".init.text"))) node_memmap_size_bytes(int, unsigned long, unsigned long);
5203 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/gfp.h" 2
5207 struct vm_area_struct;
5208 # 86 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/gfp.h"
5209 static inline __attribute__((always_inline)) enum zone_type gfp_zone(gfp_t flags)
5211 if (flags & (( gfp_t)0x01u))
5213 # 98 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/gfp.h"
5216 # 117 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/gfp.h"
5217 static inline __attribute__((always_inline)) void arch_free_page(struct page *page, int order) { }
5220 extern struct page *
5221 __alloc_pages(gfp_t, unsigned int, struct zonelist *);
5223 static inline __attribute__((always_inline)) struct page *alloc_pages_node(int nid, gfp_t gfp_mask,
5226 if (__builtin_expect(!!(order >= 11), 0))
5233 return __alloc_pages(gfp_mask, order,
5234 (&contig_page_data)->node_zonelists + gfp_zone(gfp_mask));
5236 # 157 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/gfp.h"
5237 extern unsigned long __get_free_pages(gfp_t gfp_mask, unsigned int order);
5238 extern unsigned long get_zeroed_page(gfp_t gfp_mask);
5246 extern void __free_pages(struct page *page, unsigned int order);
5247 extern void free_pages(unsigned long addr, unsigned int order);
5248 extern void free_hot_page(struct page *page);
5249 extern void free_cold_page(struct page *page);
5254 void page_alloc_init(void);
5258 static inline __attribute__((always_inline)) void drain_node_pages(int node) { };
5259 # 15 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/slab.h" 2
5260 # 58 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/slab.h"
5261 extern void __attribute__ ((__section__ (".init.text"))) kmem_cache_init(void);
5263 extern kmem_cache_t *kmem_cache_create(const char *, size_t, size_t, unsigned long,
5264 void (*)(void *, kmem_cache_t *, unsigned long),
5265 void (*)(void *, kmem_cache_t *, unsigned long));
5266 extern void kmem_cache_destroy(kmem_cache_t *);
5267 extern int kmem_cache_shrink(kmem_cache_t *);
5268 extern void *kmem_cache_alloc(kmem_cache_t *, gfp_t);
5269 extern void *kmem_cache_zalloc(struct kmem_cache *, gfp_t);
5270 extern void kmem_cache_free(kmem_cache_t *, void *);
5271 extern unsigned int kmem_cache_size(kmem_cache_t *);
5272 extern const char *kmem_cache_name(kmem_cache_t *);
5275 struct cache_sizes {
5277 kmem_cache_t *cs_cachep;
5278 kmem_cache_t *cs_dmacachep;
5280 extern struct cache_sizes malloc_sizes[];
5282 extern void *__kmalloc(size_t, gfp_t);
5283 # 126 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/slab.h"
5284 static inline __attribute__((always_inline)) void *kmalloc(size_t size, gfp_t flags)
5286 if (__builtin_constant_p(size)) {
5293 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kmalloc_sizes.h" 1
5295 if (size <= 32) goto found; else i++;
5297 if (size <= 64) goto found; else i++;
5299 if (size <= 96) goto found; else i++;
5301 if (size <= 128) goto found; else i++;
5303 if (size <= 192) goto found; else i++;
5305 if (size <= 256) goto found; else i++;
5306 if (size <= 512) goto found; else i++;
5307 if (size <= 1024) goto found; else i++;
5308 if (size <= 2048) goto found; else i++;
5309 if (size <= 4096) goto found; else i++;
5310 if (size <= 8192) goto found; else i++;
5311 if (size <= 16384) goto found; else i++;
5312 if (size <= 32768) goto found; else i++;
5313 if (size <= 65536) goto found; else i++;
5314 if (size <= 131072) goto found; else i++;
5315 # 136 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/slab.h" 2
5318 extern void __you_cannot_kmalloc_that_much(void);
5319 __you_cannot_kmalloc_that_much();
5322 return kmem_cache_alloc((flags & (( gfp_t)0x01u)) ?
5323 malloc_sizes[i].cs_dmacachep :
5324 malloc_sizes[i].cs_cachep, flags);
5326 return __kmalloc(size, flags);
5328 # 166 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/slab.h"
5329 extern void *__kzalloc(size_t, gfp_t);
5336 static inline __attribute__((always_inline)) void *kzalloc(size_t size, gfp_t flags)
5338 if (__builtin_constant_p(size)) {
5345 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kmalloc_sizes.h" 1
5347 if (size <= 32) goto found; else i++;
5349 if (size <= 64) goto found; else i++;
5351 if (size <= 96) goto found; else i++;
5353 if (size <= 128) goto found; else i++;
5355 if (size <= 192) goto found; else i++;
5357 if (size <= 256) goto found; else i++;
5358 if (size <= 512) goto found; else i++;
5359 if (size <= 1024) goto found; else i++;
5360 if (size <= 2048) goto found; else i++;
5361 if (size <= 4096) goto found; else i++;
5362 if (size <= 8192) goto found; else i++;
5363 if (size <= 16384) goto found; else i++;
5364 if (size <= 32768) goto found; else i++;
5365 if (size <= 65536) goto found; else i++;
5366 if (size <= 131072) goto found; else i++;
5367 # 183 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/slab.h" 2
5370 extern void __you_cannot_kzalloc_that_much(void);
5371 __you_cannot_kzalloc_that_much();
5374 return kmem_cache_zalloc((flags & (( gfp_t)0x01u)) ?
5375 malloc_sizes[i].cs_dmacachep :
5376 malloc_sizes[i].cs_cachep, flags);
5378 return __kzalloc(size, flags);
5387 static inline __attribute__((always_inline)) void *kcalloc(size_t n, size_t size, gfp_t flags)
5389 if (n != 0 && size > (~0UL) / n)
5391 return kzalloc(n * size, flags);
5394 extern void kfree(const void *);
5395 extern unsigned int ksize(const void *);
5396 extern int slab_is_available(void);
5397 # 240 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/slab.h"
5398 static inline __attribute__((always_inline)) void *kmem_cache_alloc_node(kmem_cache_t *cachep, gfp_t flags, int node)
5400 return kmem_cache_alloc(cachep, flags);
5402 static inline __attribute__((always_inline)) void *kmalloc_node(size_t size, gfp_t flags, int node)
5404 return kmalloc(size, flags);
5408 extern int kmem_cache_reap(int);
5409 extern int kmem_ptr_validate(kmem_cache_t *cachep, void *ptr);
5410 # 289 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/slab.h"
5411 extern kmem_cache_t *vm_area_cachep;
5412 extern kmem_cache_t *names_cachep;
5413 extern kmem_cache_t *files_cachep;
5414 extern kmem_cache_t *filp_cachep;
5415 extern kmem_cache_t *fs_cachep;
5416 extern kmem_cache_t *sighand_cachep;
5417 extern kmem_cache_t *bio_cachep;
5418 # 6 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/percpu.h" 2
5423 # 1 "include2/asm/percpu.h" 1
5427 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/percpu.h" 1
5428 # 5 "include2/asm/percpu.h" 2
5429 # 11 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/percpu.h" 2
5430 # 57 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/percpu.h"
5431 static inline __attribute__((always_inline)) void percpu_depopulate(void *__pdata, int cpu)
5435 static inline __attribute__((always_inline)) void __percpu_depopulate_mask(void *__pdata, cpumask_t *mask)
5439 static inline __attribute__((always_inline)) void *percpu_populate(void *__pdata, size_t size, gfp_t gfp,
5442 return ({ (void)(cpu); (__pdata); });
5445 static inline __attribute__((always_inline)) int __percpu_populate_mask(void *__pdata, size_t size, gfp_t gfp,
5451 static inline __attribute__((always_inline)) __attribute__((always_inline)) void *__percpu_alloc_mask(size_t size, gfp_t gfp, cpumask_t *mask)
5453 return kzalloc(size, gfp);
5456 static inline __attribute__((always_inline)) void percpu_free(void *__pdata)
5460 # 42 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rcupdate.h" 2
5461 # 50 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rcupdate.h"
5463 struct rcu_head *next;
5464 void (*func)(struct rcu_head *head);
5466 # 64 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rcupdate.h"
5467 struct rcu_ctrlblk {
5480 static inline __attribute__((always_inline)) int rcu_batch_before(long a, long b)
5486 static inline __attribute__((always_inline)) int rcu_batch_after(long a, long b)
5504 struct rcu_head *nxtlist;
5505 struct rcu_head **nxttail;
5507 struct rcu_head *curlist;
5508 struct rcu_head **curtail;
5509 struct rcu_head *donelist;
5510 struct rcu_head **donetail;
5513 struct rcu_head barrier;
5516 extern __typeof__(struct rcu_data) per_cpu__rcu_data;
5517 extern __typeof__(struct rcu_data) per_cpu__rcu_bh_data;
5525 static inline __attribute__((always_inline)) void rcu_qsctr_inc(int cpu)
5527 struct rcu_data *rdp = &(*((void)(cpu), &per_cpu__rcu_data));
5528 rdp->passed_quiesc = 1;
5530 static inline __attribute__((always_inline)) void rcu_bh_qsctr_inc(int cpu)
5532 struct rcu_data *rdp = &(*((void)(cpu), &per_cpu__rcu_bh_data));
5533 rdp->passed_quiesc = 1;
5536 extern int rcu_pending(int cpu);
5537 extern int rcu_needs_cpu(int cpu);
5538 # 272 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rcupdate.h"
5539 extern void rcu_init(void);
5540 extern void rcu_check_callbacks(int cpu, int user);
5541 extern void rcu_restart_cpu(int cpu);
5542 extern long rcu_batches_completed(void);
5543 extern long rcu_batches_completed_bh(void);
5546 extern void call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *head));
5548 extern void call_rcu_bh(struct rcu_head *head, void (*func)(struct rcu_head *head));
5550 extern void synchronize_rcu(void);
5551 void synchronize_idle(void);
5552 extern void rcu_barrier(void);
5553 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pid.h" 2
5562 # 42 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pid.h"
5568 struct hlist_node pid_chain;
5570 struct hlist_head tasks[PIDTYPE_MAX];
5571 struct rcu_head rcu;
5576 struct hlist_node node;
5580 static inline __attribute__((always_inline)) struct pid *get_pid(struct pid *pid)
5583 atomic_add(1,(&pid->count));
5587 extern void put_pid(struct pid *pid);
5588 extern struct task_struct *pid_task(struct pid *pid, enum pid_type);
5589 extern struct task_struct *get_pid_task(struct pid *pid, enum pid_type);
5592 extern struct pid *get_task_pid(struct task_struct *task, enum pid_type type);
5598 extern int attach_pid(struct task_struct *task, enum pid_type type, int nr);
5601 extern void detach_pid(struct task_struct *task, enum pid_type);
5602 extern void transfer_pid(struct task_struct *old, struct task_struct *new, enum pid_type);
5609 extern struct pid *find_pid(int nr);
5614 extern struct pid *find_get_pid(int nr);
5615 extern struct pid *find_ge_pid(int nr);
5617 extern struct pid *alloc_pid(void);
5618 extern void free_pid(struct pid *pid);
5620 static inline __attribute__((always_inline)) pid_t pid_nr(struct pid *pid)
5627 # 73 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2
5630 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/seccomp.h" 1
5631 # 28 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/seccomp.h"
5632 typedef struct { } seccomp_t;
5636 static inline __attribute__((always_inline)) int has_secure_computing(struct thread_info *ti)
5640 # 76 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2
5642 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/futex.h" 1
5646 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 1
5647 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/futex.h" 2
5648 # 33 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/futex.h"
5649 struct robust_list {
5650 struct robust_list *next;
5652 # 45 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/futex.h"
5653 struct robust_list_head {
5657 struct robust_list list;
5666 # 69 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/futex.h"
5667 struct robust_list *list_op_pending;
5669 # 96 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/futex.h"
5670 long do_futex(u32 *uaddr, int op, u32 val, unsigned long timeout,
5671 u32 *uaddr2, u32 val2, u32 val3);
5674 handle_futex_death(u32 *uaddr, struct task_struct *curr, int pi);
5677 extern void exit_robust_list(struct task_struct *curr);
5678 extern void exit_pi_state_list(struct task_struct *curr);
5679 # 78 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2
5680 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rtmutex.h" 1
5681 # 16 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rtmutex.h"
5682 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/plist.h" 1
5683 # 80 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/plist.h"
5685 struct list_head prio_list;
5686 struct list_head node_list;
5694 struct plist_head plist;
5696 # 128 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/plist.h"
5697 static inline __attribute__((always_inline)) void
5698 plist_head_init(struct plist_head *head, spinlock_t *lock)
5700 INIT_LIST_HEAD(&head->prio_list);
5701 INIT_LIST_HEAD(&head->node_list);
5713 static inline __attribute__((always_inline)) void plist_node_init(struct plist_node *node, int prio)
5716 plist_head_init(&node->plist, ((void *)0));
5719 extern void plist_add(struct plist_node *node, struct plist_head *head);
5720 extern void plist_del(struct plist_node *node, struct plist_head *head);
5721 # 200 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/plist.h"
5722 static inline __attribute__((always_inline)) int plist_head_empty(const struct plist_head *head)
5724 return list_empty(&head->node_list);
5732 static inline __attribute__((always_inline)) int plist_node_empty(const struct plist_node *node)
5734 return plist_head_empty(&node->plist);
5736 # 242 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/plist.h"
5737 static inline __attribute__((always_inline)) struct plist_node* plist_first(const struct plist_head *head)
5739 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) );});
5742 # 17 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rtmutex.h" 2
5743 # 26 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rtmutex.h"
5745 spinlock_t wait_lock;
5746 struct plist_head wait_list;
5747 struct task_struct *owner;
5756 struct rt_mutex_waiter;
5757 struct hrtimer_sleeper;
5764 static inline __attribute__((always_inline)) int rt_mutex_debug_check_no_locks_freed(const void *from,
5769 # 80 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/rtmutex.h"
5770 static inline __attribute__((always_inline)) int rt_mutex_is_locked(struct rt_mutex *lock)
5772 return lock->owner != ((void *)0);
5775 extern void __rt_mutex_init(struct rt_mutex *lock, const char *name);
5776 extern void rt_mutex_destroy(struct rt_mutex *lock);
5778 extern void rt_mutex_lock(struct rt_mutex *lock);
5779 extern int rt_mutex_lock_interruptible(struct rt_mutex *lock,
5780 int detect_deadlock);
5781 extern int rt_mutex_timed_lock(struct rt_mutex *lock,
5782 struct hrtimer_sleeper *timeout,
5783 int detect_deadlock);
5785 extern int rt_mutex_trylock(struct rt_mutex *lock);
5787 extern void rt_mutex_unlock(struct rt_mutex *lock);
5788 # 79 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2
5791 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/param.h" 1
5792 # 82 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2
5793 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/resource.h" 1
5800 # 23 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/resource.h"
5802 struct timeval ru_utime;
5803 struct timeval ru_stime;
5821 unsigned long rlim_cur;
5822 unsigned long rlim_max;
5824 # 70 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/resource.h"
5825 # 1 "include2/asm/resource.h" 1
5829 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/resource.h" 1
5830 # 5 "include2/asm/resource.h" 2
5831 # 71 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/resource.h" 2
5833 int getrusage(struct task_struct *p, int who, struct rusage *ru);
5834 # 83 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2
5835 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/timer.h" 1
5843 struct tvec_t_base_s;
5846 struct list_head entry;
5847 unsigned long expires;
5849 void (*function)(unsigned long);
5852 struct tvec_t_base_s *base;
5855 extern struct tvec_t_base_s boot_tvec_bases;
5856 # 33 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/timer.h"
5857 void init_timer(struct timer_list * timer);
5859 static inline __attribute__((always_inline)) void setup_timer(struct timer_list * timer,
5860 void (*function)(unsigned long),
5863 timer->function = function;
5867 # 54 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/timer.h"
5868 static inline __attribute__((always_inline)) int timer_pending(const struct timer_list * timer)
5870 return timer->entry.next != ((void *)0);
5873 extern void add_timer_on(struct timer_list *timer, int cpu);
5874 extern int del_timer(struct timer_list * timer);
5875 extern int __mod_timer(struct timer_list *timer, unsigned long expires);
5876 extern int mod_timer(struct timer_list *timer, unsigned long expires);
5878 extern unsigned long next_timer_interrupt(void);
5879 # 80 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/timer.h"
5880 static inline __attribute__((always_inline)) void add_timer(struct timer_list *timer)
5882 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);
5883 __mod_timer(timer, timer->expires);
5885 # 96 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/timer.h"
5886 extern void init_timers(void);
5887 extern void run_local_timers(void);
5889 extern int it_real_fn(struct hrtimer *);
5890 # 84 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2
5891 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hrtimer.h" 1
5892 # 19 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hrtimer.h"
5893 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ktime.h" 1
5894 # 46 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ktime.h"
5907 # 138 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ktime.h"
5908 static inline __attribute__((always_inline)) ktime_t ktime_set(const long secs, const unsigned long nsecs)
5910 return (ktime_t) { .tv = { .sec = secs, .nsec = nsecs } };
5912 # 150 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ktime.h"
5913 static inline __attribute__((always_inline)) ktime_t ktime_sub(const ktime_t lhs, const ktime_t rhs)
5917 res.tv64 = lhs.tv64 - rhs.tv64;
5918 if (res.tv.nsec < 0)
5919 res.tv.nsec += 1000000000L;
5923 # 168 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ktime.h"
5924 static inline __attribute__((always_inline)) ktime_t ktime_add(const ktime_t add1, const ktime_t add2)
5928 res.tv64 = add1.tv64 + add2.tv64;
5929 # 181 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ktime.h"
5930 if (res.tv.nsec >= 1000000000L)
5931 res.tv64 += (u32)-1000000000L;
5935 # 194 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ktime.h"
5936 extern ktime_t ktime_add_ns(const ktime_t kt, u64 nsec);
5944 static inline __attribute__((always_inline)) ktime_t timespec_to_ktime(const struct timespec ts)
5946 return (ktime_t) { .tv = { .sec = (s32)ts.tv_sec,
5947 .nsec = (s32)ts.tv_nsec } };
5956 static inline __attribute__((always_inline)) ktime_t timeval_to_ktime(const struct timeval tv)
5958 return (ktime_t) { .tv = { .sec = (s32)tv.tv_sec,
5959 .nsec = (s32)tv.tv_usec * 1000 } };
5968 static inline __attribute__((always_inline)) struct timespec ktime_to_timespec(const ktime_t kt)
5970 return (struct timespec) { .tv_sec = (time_t) kt.tv.sec,
5971 .tv_nsec = (long) kt.tv.nsec };
5980 static inline __attribute__((always_inline)) struct timeval ktime_to_timeval(const ktime_t kt)
5982 return (struct timeval) {
5983 .tv_sec = (time_t) kt.tv.sec,
5984 .tv_usec = (suseconds_t) (kt.tv.nsec / 1000L) };
5993 static inline __attribute__((always_inline)) u64 ktime_to_ns(const ktime_t kt)
5995 return (u64) kt.tv.sec * 1000000000L + kt.tv.nsec;
5997 # 268 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ktime.h"
5998 extern void ktime_get_ts(struct timespec *ts);
5999 # 20 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hrtimer.h" 2
6012 enum hrtimer_restart {
6019 struct hrtimer_base;
6020 # 52 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hrtimer.h"
6022 struct rb_node node;
6024 int (*function)(struct hrtimer *);
6025 struct hrtimer_base *base;
6027 # 66 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hrtimer.h"
6028 struct hrtimer_sleeper {
6029 struct hrtimer timer;
6030 struct task_struct *task;
6032 # 85 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hrtimer.h"
6033 struct hrtimer_base {
6036 struct rb_root active;
6037 struct rb_node *first;
6039 ktime_t (*get_time)(void);
6040 ktime_t (*get_softirq_time)(void);
6041 struct hrtimer *curr_timer;
6042 ktime_t softirq_time;
6043 struct lock_class_key lock_key;
6045 # 108 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hrtimer.h"
6046 extern void hrtimer_init(struct hrtimer *timer, clockid_t which_clock,
6047 enum hrtimer_mode mode);
6050 extern int hrtimer_start(struct hrtimer *timer, ktime_t tim,
6051 const enum hrtimer_mode mode);
6052 extern int hrtimer_cancel(struct hrtimer *timer);
6053 extern int hrtimer_try_to_cancel(struct hrtimer *timer);
6058 extern ktime_t hrtimer_get_remaining(const struct hrtimer *timer);
6059 extern int hrtimer_get_res(const clockid_t which_clock, struct timespec *tp);
6065 static inline __attribute__((always_inline)) int hrtimer_active(const struct hrtimer *timer)
6067 return ((struct rb_node *)((&timer->node)->rb_parent_color & ~3)) != &timer->node;
6071 extern unsigned long
6072 hrtimer_forward(struct hrtimer *timer, ktime_t now, ktime_t interval);
6075 extern long hrtimer_nanosleep(struct timespec *rqtp,
6076 struct timespec *rmtp,
6077 const enum hrtimer_mode mode,
6078 const clockid_t clockid);
6079 extern long hrtimer_nanosleep_restart(struct restart_block *restart_block);
6081 extern void hrtimer_init_sleeper(struct hrtimer_sleeper *sl,
6082 struct task_struct *tsk);
6085 extern void hrtimer_run_queues(void);
6088 extern void __attribute__ ((__section__ (".init.text"))) hrtimers_init(void);
6089 # 85 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2
6094 struct futex_pi_state;
6095 # 107 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h"
6096 extern unsigned long avenrun[];
6097 # 121 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h"
6098 extern unsigned long total_forks;
6099 extern int nr_threads;
6100 extern __typeof__(unsigned long) per_cpu__process_counts;
6101 extern int nr_processes(void);
6102 extern unsigned long nr_running(void);
6103 extern unsigned long nr_uninterruptible(void);
6104 extern unsigned long nr_active(void);
6105 extern unsigned long nr_iowait(void);
6106 extern unsigned long weighted_cpuload(const int cpu);
6107 # 186 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h"
6108 extern rwlock_t tasklist_lock;
6109 extern spinlock_t mmlist_lock;
6113 extern void sched_init(void);
6114 extern void sched_init_smp(void);
6115 extern void init_idle(struct task_struct *idle, int cpu);
6117 extern cpumask_t nohz_cpu_mask;
6119 extern void show_state(void);
6120 extern void show_regs(struct pt_regs *);
6127 extern void show_stack(struct task_struct *task, unsigned long *sp);
6129 void io_schedule(void);
6130 long io_schedule_timeout(long timeout);
6132 extern void cpu_init (void);
6133 extern void trap_init(void);
6134 extern void update_process_times(int user);
6135 extern void scheduler_tick(void);
6142 static inline __attribute__((always_inline)) void softlockup_tick(void)
6145 static inline __attribute__((always_inline)) void spawn_softlockup_task(void)
6148 static inline __attribute__((always_inline)) void touch_softlockup_watchdog(void)
6157 extern int in_sched_functions(unsigned long addr);
6160 extern signed long schedule_timeout(signed long timeout);
6161 extern signed long schedule_timeout_interruptible(signed long timeout);
6162 extern signed long schedule_timeout_uninterruptible(signed long timeout);
6163 void schedule(void);
6170 extern int sysctl_max_map_count;
6172 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/aio.h" 1
6177 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/workqueue.h" 1
6178 # 12 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/workqueue.h"
6179 struct workqueue_struct;
6181 struct work_struct {
6182 unsigned long pending;
6183 struct list_head entry;
6184 void (*func)(void *);
6187 struct timer_list timer;
6190 struct execute_work {
6191 struct work_struct work;
6193 # 57 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/workqueue.h"
6194 extern struct workqueue_struct *__create_workqueue(const char *name,
6199 extern void destroy_workqueue(struct workqueue_struct *wq);
6201 extern int queue_work(struct workqueue_struct *wq, struct work_struct *work);
6202 extern int queue_delayed_work(struct workqueue_struct *wq, struct work_struct *work, unsigned long delay);
6203 extern int queue_delayed_work_on(int cpu, struct workqueue_struct *wq,
6204 struct work_struct *work, unsigned long delay);
6205 extern void flush_workqueue(struct workqueue_struct *wq);
6207 extern int schedule_work(struct work_struct *work);
6208 extern int schedule_delayed_work(struct work_struct *work, unsigned long delay);
6210 extern int schedule_delayed_work_on(int cpu, struct work_struct *work, unsigned long delay);
6211 extern int schedule_on_each_cpu(void (*func)(void *info), void *info);
6212 extern void flush_scheduled_work(void);
6213 extern int current_is_keventd(void);
6214 extern int keventd_up(void);
6216 extern void init_workqueues(void);
6217 void cancel_rearming_delayed_work(struct work_struct *work);
6218 void cancel_rearming_delayed_workqueue(struct workqueue_struct *,
6219 struct work_struct *);
6220 int execute_in_process_context(void (*fn)(void *), void *,
6221 struct execute_work *);
6228 static inline __attribute__((always_inline)) int cancel_delayed_work(struct work_struct *work)
6232 ret = del_timer(&work->timer);
6234 clear_bit(0, &work->pending);
6237 # 6 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/aio.h" 2
6238 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/aio_abi.h" 1
6239 # 32 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/aio_abi.h"
6240 typedef unsigned long aio_context_t;
6244 IOCB_CMD_PWRITE = 1,
6246 IOCB_CMD_FDSYNC = 3,
6252 IOCB_CMD_PREADV = 7,
6253 IOCB_CMD_PWRITEV = 8,
6263 # 70 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/aio_abi.h"
6267 __u32 aio_key, aio_reserved1;
6271 __u16 aio_lio_opcode;
6280 __u64 aio_reserved2;
6281 __u64 aio_reserved3;
6283 # 7 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/aio.h" 2
6284 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/uio.h" 1
6285 # 20 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/uio.h"
6289 __kernel_size_t iov_len;
6298 # 54 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/uio.h"
6299 static inline __attribute__((always_inline)) size_t iov_length(const struct iovec *iov, unsigned long nr_segs)
6304 for (seg = 0; seg < nr_segs; seg++)
6305 ret += iov[seg].iov_len;
6309 unsigned long iov_shorten(struct iovec *iov, unsigned long nr_segs, size_t to);
6310 # 8 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/aio.h" 2
6319 # 87 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/aio.h"
6321 struct list_head ki_run_list;
6326 struct file *ki_filp;
6327 struct kioctx *ki_ctx;
6328 int (*ki_cancel)(struct kiocb *, struct io_event *);
6329 ssize_t (*ki_retry)(struct kiocb *);
6330 void (*ki_dtor)(struct kiocb *);
6334 struct task_struct *tsk;
6338 wait_queue_t ki_wait;
6343 unsigned short ki_opcode;
6348 struct iovec ki_inline_vec;
6349 struct iovec *ki_iovec;
6350 unsigned long ki_nr_segs;
6351 unsigned long ki_cur_seg;
6353 struct list_head ki_list;
6356 # 144 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/aio.h"
6364 unsigned compat_features;
6365 unsigned incompat_features;
6366 unsigned header_length;
6369 struct io_event io_events[0];
6375 struct aio_ring_info {
6376 unsigned long mmap_base;
6377 unsigned long mmap_size;
6379 struct page **ring_pages;
6380 spinlock_t ring_lock;
6385 struct page *internal_pages[8];
6391 struct mm_struct *mm;
6394 unsigned long user_id;
6395 struct kioctx *next;
6397 wait_queue_head_t wait;
6399 spinlock_t ctx_lock;
6402 struct list_head active_reqs;
6403 struct list_head run_list;
6408 struct aio_ring_info ring_info;
6410 struct work_struct wq;
6414 extern unsigned aio_max_size;
6416 extern ssize_t wait_on_sync_kiocb(struct kiocb *iocb);
6417 extern int aio_put_req(struct kiocb *iocb);
6418 extern void kick_iocb(struct kiocb *iocb);
6419 extern int aio_complete(struct kiocb *iocb, long res, long res2);
6420 extern void __put_ioctx(struct kioctx *ctx);
6422 extern void exit_aio(struct mm_struct *mm);
6423 extern struct kioctx *lookup_ioctx(unsigned long ctx_id);
6424 extern int io_submit_one(struct kioctx *ctx, struct iocb *user_iocb, struct iocb *iocb);
6428 struct kioctx *lookup_ioctx(unsigned long ctx_id);
6429 int io_submit_one(struct kioctx *ctx, struct iocb *user_iocb, struct iocb *iocb);
6430 # 245 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/aio.h"
6431 static inline __attribute__((always_inline)) struct kiocb *list_kiocb(struct list_head *h)
6433 return ({ const typeof( ((struct kiocb *)0)->ki_list ) *__mptr = (h); (struct kiocb *)( (char *)__mptr - __builtin_offsetof(struct kiocb,ki_list) );});
6437 extern unsigned long aio_nr;
6438 extern unsigned long aio_max_nr;
6439 # 251 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2
6441 extern unsigned long
6442 arch_get_unmapped_area(struct file *, unsigned long, unsigned long,
6443 unsigned long, unsigned long);
6444 extern unsigned long
6445 arch_get_unmapped_area_topdown(struct file *filp, unsigned long addr,
6446 unsigned long len, unsigned long pgoff,
6447 unsigned long flags);
6448 extern void arch_unmap_area(struct mm_struct *, unsigned long);
6449 extern void arch_unmap_area_topdown(struct mm_struct *, unsigned long);
6450 # 284 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h"
6451 typedef unsigned long mm_counter_t;
6452 # 300 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h"
6454 struct vm_area_struct * mmap;
6455 struct rb_root mm_rb;
6456 struct vm_area_struct * mmap_cache;
6457 unsigned long (*get_unmapped_area) (struct file *filp,
6458 unsigned long addr, unsigned long len,
6459 unsigned long pgoff, unsigned long flags);
6460 void (*unmap_area) (struct mm_struct *mm, unsigned long addr);
6461 unsigned long mmap_base;
6462 unsigned long task_size;
6463 unsigned long cached_hole_size;
6464 unsigned long free_area_cache;
6469 struct rw_semaphore mmap_sem;
6470 spinlock_t page_table_lock;
6472 struct list_head mmlist;
6480 mm_counter_t _file_rss;
6481 mm_counter_t _anon_rss;
6483 unsigned long hiwater_rss;
6484 unsigned long hiwater_vm;
6486 unsigned long total_vm, locked_vm, shared_vm, exec_vm;
6487 unsigned long stack_vm, reserved_vm, def_flags, nr_ptes;
6488 unsigned long start_code, end_code, start_data, end_data;
6489 unsigned long start_brk, brk, start_stack;
6490 unsigned long arg_start, arg_end, env_start, env_end;
6492 unsigned long saved_auxv[44];
6494 unsigned dumpable:2;
6495 cpumask_t cpu_vm_mask;
6498 mm_context_t context;
6501 unsigned long swap_token_time;
6506 struct completion *core_startup_done, core_done;
6509 rwlock_t ioctx_list_lock;
6510 struct kioctx *ioctx_list;
6513 struct sighand_struct {
6515 struct k_sigaction action[64];
6519 struct pacct_struct {
6522 unsigned long ac_mem;
6523 cputime_t ac_utime, ac_stime;
6524 unsigned long ac_minflt, ac_majflt;
6526 # 381 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h"
6527 struct signal_struct {
6531 wait_queue_head_t wait_chldexit;
6534 struct task_struct *curr_target;
6537 struct sigpending shared_pending;
6540 int group_exit_code;
6546 struct task_struct *group_exit_task;
6550 int group_stop_count;
6554 struct list_head posix_timers;
6557 struct hrtimer real_timer;
6558 struct task_struct *tsk;
6559 ktime_t it_real_incr;
6562 cputime_t it_prof_expires, it_virt_expires;
6563 cputime_t it_prof_incr, it_virt_incr;
6572 struct tty_struct *tty;
6580 cputime_t utime, stime, cutime, cstime;
6581 unsigned long nvcsw, nivcsw, cnvcsw, cnivcsw;
6582 unsigned long min_flt, maj_flt, cmin_flt, cmaj_flt;
6590 unsigned long long sched_time;
6591 # 455 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h"
6592 struct rlimit rlim[15];
6594 struct list_head cpu_timers[3];
6595 # 472 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h"
6597 # 515 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h"
6598 struct user_struct {
6602 atomic_t sigpending;
6604 atomic_t inotify_watches;
6605 atomic_t inotify_devs;
6608 unsigned long mq_bytes;
6609 unsigned long locked_shm;
6617 struct list_head uidhash_list;
6621 extern struct user_struct *find_user(uid_t);
6623 extern struct user_struct root_user;
6626 struct backing_dev_info;
6627 struct reclaim_state;
6628 # 593 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h"
6629 static inline __attribute__((always_inline)) int sched_info_on(void)
6648 # 722 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h"
6657 gid_t small_block[32];
6661 # 750 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h"
6662 extern struct group_info *groups_alloc(int gidsetsize);
6663 extern void groups_free(struct group_info *group_info);
6664 extern int set_current_groups(struct group_info *group_info);
6665 extern int groups_search(struct group_info *group_info, gid_t grp);
6673 static inline __attribute__((always_inline)) void prefetch_stack(struct task_struct *t) { }
6676 struct audit_context;
6678 struct pipe_inode_info;
6679 struct uts_namespace;
6683 SLEEP_NONINTERACTIVE,
6690 struct task_struct {
6691 volatile long state;
6692 struct thread_info *thread_info;
6694 unsigned long flags;
6695 unsigned long ptrace;
6705 int prio, static_prio, normal_prio;
6706 struct list_head run_list;
6707 struct prio_array *array;
6709 unsigned short ioprio;
6713 unsigned long sleep_avg;
6714 unsigned long long timestamp, last_ran;
6715 unsigned long long sched_time;
6716 enum sleep_type sleep_type;
6718 unsigned long policy;
6719 cpumask_t cpus_allowed;
6720 unsigned int time_slice, first_time_slice;
6726 struct list_head tasks;
6731 struct list_head ptrace_children;
6732 struct list_head ptrace_list;
6734 struct mm_struct *mm, *active_mm;
6737 struct linux_binfmt *binfmt;
6739 int exit_code, exit_signal;
6742 unsigned long personality;
6743 unsigned did_exec:1;
6746 # 844 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h"
6747 struct task_struct *real_parent;
6748 struct task_struct *parent;
6753 struct list_head children;
6754 struct list_head sibling;
6755 struct task_struct *group_leader;
6758 struct pid_link pids[PIDTYPE_MAX];
6759 struct list_head thread_group;
6761 struct completion *vfork_done;
6763 int *clear_child_tid;
6765 unsigned long rt_priority;
6766 cputime_t utime, stime;
6767 unsigned long nvcsw, nivcsw;
6768 struct timespec start_time;
6770 unsigned long min_flt, maj_flt;
6772 cputime_t it_prof_expires, it_virt_expires;
6773 unsigned long long it_sched_expires;
6774 struct list_head cpu_timers[3];
6777 uid_t uid,euid,suid,fsuid;
6778 gid_t gid,egid,sgid,fsgid;
6779 struct group_info *group_info;
6780 kernel_cap_t cap_effective, cap_inheritable, cap_permitted;
6781 unsigned keep_capabilities:1;
6782 struct user_struct *user;
6783 # 893 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h"
6784 unsigned char fpu_counter;
6791 int link_count, total_link_count;
6794 struct sysv_sem sysvsem;
6797 struct thread_struct thread;
6799 struct fs_struct *fs;
6801 struct files_struct *files;
6803 struct nsproxy *nsproxy;
6805 struct signal_struct *signal;
6806 struct sighand_struct *sighand;
6808 sigset_t blocked, real_blocked;
6809 sigset_t saved_sigmask;
6810 struct sigpending pending;
6812 unsigned long sas_ss_sp;
6814 int (*notifier)(void *priv);
6815 void *notifier_data;
6816 sigset_t *notifier_mask;
6819 struct audit_context *audit_context;
6826 spinlock_t alloc_lock;
6833 struct plist_head pi_waiters;
6835 struct rt_mutex_waiter *pi_blocked_on;
6836 # 975 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h"
6840 struct reclaim_state *reclaim_state;
6842 struct backing_dev_info *backing_dev_info;
6844 struct io_context *io_context;
6846 unsigned long ptrace_message;
6847 siginfo_t *last_siginfo;
6854 wait_queue_t *io_wait;
6856 u64 rchar, wchar, syscr, syscw;
6857 # 1010 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h"
6858 struct robust_list_head *robust_list;
6862 struct list_head pi_state_list;
6863 struct futex_pi_state *pi_state_cache;
6866 struct rcu_head rcu;
6871 struct pipe_inode_info *splice_pipe;
6877 static inline __attribute__((always_inline)) pid_t process_group(struct task_struct *tsk)
6879 return tsk->signal->pgrp;
6882 static inline __attribute__((always_inline)) struct pid *task_pid(struct task_struct *task)
6884 return task->pids[PIDTYPE_PID].pid;
6887 static inline __attribute__((always_inline)) struct pid *task_tgid(struct task_struct *task)
6889 return task->group_leader->pids[PIDTYPE_PID].pid;
6892 static inline __attribute__((always_inline)) struct pid *task_pgrp(struct task_struct *task)
6894 return task->group_leader->pids[PIDTYPE_PGID].pid;
6897 static inline __attribute__((always_inline)) struct pid *task_session(struct task_struct *task)
6899 return task->group_leader->pids[PIDTYPE_SID].pid;
6901 # 1062 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h"
6902 static inline __attribute__((always_inline)) int pid_alive(struct task_struct *p)
6904 return p->pids[PIDTYPE_PID].pid != ((void *)0);
6913 static inline __attribute__((always_inline)) int is_init(struct task_struct *tsk)
6915 return tsk->pid == 1;
6918 extern struct pid *cad_pid;
6920 extern void free_task(struct task_struct *tsk);
6923 extern void __put_task_struct(struct task_struct *t);
6925 static inline __attribute__((always_inline)) void put_task_struct(struct task_struct *t)
6927 if ((atomic_sub_return(1, (&t->usage)) == 0))
6928 __put_task_struct(t);
6930 # 1148 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h"
6931 static inline __attribute__((always_inline)) int set_cpus_allowed(struct task_struct *p, cpumask_t new_mask)
6933 if (!test_bit((0), (new_mask).bits))
6939 extern unsigned long long sched_clock(void);
6940 extern unsigned long long
6941 current_sched_time(const struct task_struct *current_task);
6942 # 1170 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h"
6943 static inline __attribute__((always_inline)) void idle_task_exit(void) {}
6946 extern void sched_idle_next(void);
6949 extern int rt_mutex_getprio(struct task_struct *p);
6950 extern void rt_mutex_setprio(struct task_struct *p, int prio);
6951 extern void rt_mutex_adjust_pi(struct task_struct *p);
6952 # 1187 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h"
6953 extern void set_user_nice(struct task_struct *p, long nice);
6954 extern int task_prio(const struct task_struct *p);
6955 extern int task_nice(const struct task_struct *p);
6956 extern int can_nice(const struct task_struct *p, const int nice);
6957 extern int task_curr(const struct task_struct *p);
6958 extern int idle_cpu(int cpu);
6959 extern int sched_setscheduler(struct task_struct *, int, struct sched_param *);
6960 extern struct task_struct *idle_task(int cpu);
6961 extern struct task_struct *curr_task(int cpu);
6962 extern void set_curr_task(int cpu, struct task_struct *p);
6969 extern struct exec_domain default_exec_domain;
6971 union thread_union {
6972 struct thread_info thread_info;
6973 unsigned long stack[((1UL << 12) * 2)/sizeof(long)];
6977 static inline __attribute__((always_inline)) int kstack_end(void *addr)
6982 return !(((unsigned long)addr+sizeof(void*)-1) & (((1UL << 12) * 2)-sizeof(void*)));
6986 extern union thread_union init_thread_union;
6987 extern struct task_struct init_task;
6989 extern struct mm_struct init_mm;
6992 extern struct task_struct *find_task_by_pid_type(int type, int pid);
6993 extern void set_special_pids(pid_t session, pid_t pgrp);
6994 extern void __set_special_pids(pid_t session, pid_t pgrp);
6997 extern struct user_struct * alloc_uid(uid_t);
6998 static inline __attribute__((always_inline)) struct user_struct *get_uid(struct user_struct *u)
7000 atomic_add(1,(&u->__count));
7003 extern void free_uid(struct user_struct *);
7004 extern void switch_uid(struct user_struct *);
7008 extern void do_timer(unsigned long ticks);
7010 extern int wake_up_state(struct task_struct * tsk, unsigned int state);
7011 extern int wake_up_process(struct task_struct * tsk);
7012 extern void wake_up_new_task(struct task_struct * tsk, unsigned long clone_flags);
7017 static inline __attribute__((always_inline)) void kick_process(struct task_struct *tsk) { }
7019 extern void sched_fork(struct task_struct * p, int clone_flags);
7020 extern void sched_exit(struct task_struct * p);
7022 extern int in_group_p(gid_t);
7023 extern int in_egroup_p(gid_t);
7025 extern void proc_caches_init(void);
7026 extern void flush_signals(struct task_struct *);
7027 extern void flush_signal_handlers(struct task_struct *, int force_default);
7028 extern int dequeue_signal(struct task_struct *tsk, sigset_t *mask, siginfo_t *info);
7030 static inline __attribute__((always_inline)) int dequeue_signal_lock(struct task_struct *tsk, sigset_t *mask, siginfo_t *info)
7032 unsigned long flags;
7035 do { flags = local_irq_save(); do { do { } while (0); (void)0; (void)(&tsk->sighand->siglock); } while (0); } while (0);
7036 ret = dequeue_signal(tsk, mask, info);
7037 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);
7042 extern void block_all_signals(int (*notifier)(void *priv), void *priv,
7044 extern void unblock_all_signals(void);
7045 extern void release_task(struct task_struct * p);
7046 extern int send_sig_info(int, struct siginfo *, struct task_struct *);
7047 extern int send_group_sig_info(int, struct siginfo *, struct task_struct *);
7048 extern int force_sigsegv(int, struct task_struct *);
7049 extern int force_sig_info(int, struct siginfo *, struct task_struct *);
7050 extern int __kill_pgrp_info(int sig, struct siginfo *info, struct pid *pgrp);
7051 extern int kill_pgrp_info(int sig, struct siginfo *info, struct pid *pgrp);
7052 extern int kill_pid_info(int sig, struct siginfo *info, struct pid *pid);
7053 extern int kill_pid_info_as_uid(int, struct siginfo *, struct pid *, uid_t, uid_t, u32);
7054 extern int kill_pgrp(struct pid *pid, int sig, int priv);
7055 extern int kill_pid(struct pid *pid, int sig, int priv);
7056 extern int __kill_pg_info(int sig, struct siginfo *info, pid_t pgrp);
7057 extern int kill_pg_info(int, struct siginfo *, pid_t);
7058 extern int kill_proc_info(int, struct siginfo *, pid_t);
7059 extern void do_notify_parent(struct task_struct *, int);
7060 extern void force_sig(int, struct task_struct *);
7061 extern void force_sig_specific(int, struct task_struct *);
7062 extern int send_sig(int, struct task_struct *, int);
7063 extern void zap_other_threads(struct task_struct *p);
7064 extern int kill_pg(pid_t, int, int);
7065 extern int kill_proc(pid_t, int, int);
7066 extern struct sigqueue *sigqueue_alloc(void);
7067 extern void sigqueue_free(struct sigqueue *);
7068 extern int send_sigqueue(int, struct sigqueue *, struct task_struct *);
7069 extern int send_group_sigqueue(int, struct sigqueue *, struct task_struct *);
7070 extern int do_sigaction(int, struct k_sigaction *, struct k_sigaction *);
7071 extern int do_sigaltstack(const stack_t *, stack_t *, unsigned long);
7073 static inline __attribute__((always_inline)) int kill_cad_pid(int sig, int priv)
7075 return kill_pid(cad_pid, sig, priv);
7083 static inline __attribute__((always_inline)) int is_si_special(const struct siginfo *info)
7085 return info <= ((struct siginfo *) 2);
7090 static inline __attribute__((always_inline)) int on_sig_stack(unsigned long sp)
7092 return (sp - get_current()->sas_ss_sp < get_current()->sas_ss_size);
7095 static inline __attribute__((always_inline)) int sas_ss_flags(unsigned long sp)
7097 return (get_current()->sas_ss_size == 0 ? 2
7098 : on_sig_stack(sp) ? 1 : 0);
7104 extern struct mm_struct * mm_alloc(void);
7107 extern void __mmdrop(struct mm_struct *);
7108 static inline __attribute__((always_inline)) void mmdrop(struct mm_struct * mm)
7110 if ((atomic_sub_return(1, (&mm->mm_count)) == 0))
7115 extern void mmput(struct mm_struct *);
7117 extern struct mm_struct *get_task_mm(struct task_struct *task);
7119 extern void mm_release(struct task_struct *, struct mm_struct *);
7121 extern int copy_thread(int, unsigned long, unsigned long, unsigned long, struct task_struct *, struct pt_regs *);
7122 extern void flush_thread(void);
7123 extern void exit_thread(void);
7125 extern void exit_files(struct task_struct *);
7126 extern void __cleanup_signal(struct signal_struct *);
7127 extern void __cleanup_sighand(struct sighand_struct *);
7128 extern void exit_itimers(struct signal_struct *);
7130 extern void do_group_exit(int);
7132 extern void daemonize(const char *, ...);
7133 extern int allow_signal(int);
7134 extern int disallow_signal(int);
7135 extern struct task_struct *child_reaper;
7137 extern int do_execve(char *, char * *, char * *, struct pt_regs *);
7138 extern long do_fork(unsigned long, unsigned long, struct pt_regs *, unsigned long, int *, int *);
7139 struct task_struct *fork_idle(int);
7141 extern void set_task_comm(struct task_struct *tsk, char *from);
7142 extern void get_task_comm(char *to, struct task_struct *tsk);
7143 # 1411 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h"
7144 static inline __attribute__((always_inline)) int has_group_leader_pid(struct task_struct *p)
7146 return p->pid == p->tgid;
7149 static inline __attribute__((always_inline)) struct task_struct *next_thread(const struct task_struct *p)
7151 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) );});
7155 static inline __attribute__((always_inline)) int thread_group_empty(struct task_struct *p)
7157 return list_empty(&p->thread_group);
7159 # 1439 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h"
7160 static inline __attribute__((always_inline)) void task_lock(struct task_struct *p)
7162 do { do { } while (0); (void)0; (void)(&p->alloc_lock); } while (0);
7165 static inline __attribute__((always_inline)) void task_unlock(struct task_struct *p)
7167 do { do { } while (0); (void)0; (void)(&p->alloc_lock); } while (0);
7170 extern struct sighand_struct *lock_task_sighand(struct task_struct *tsk,
7171 unsigned long *flags);
7173 static inline __attribute__((always_inline)) void unlock_task_sighand(struct task_struct *tsk,
7174 unsigned long *flags)
7176 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);
7184 static inline __attribute__((always_inline)) void setup_thread_stack(struct task_struct *p, struct task_struct *org)
7186 *(p)->thread_info = *(org)->thread_info;
7187 (p)->thread_info->task = p;
7190 static inline __attribute__((always_inline)) unsigned long *end_of_stack(struct task_struct *p)
7192 return (unsigned long *)(p->thread_info + 1);
7200 static inline __attribute__((always_inline)) void set_tsk_thread_flag(struct task_struct *tsk, int flag)
7202 set_ti_thread_flag((tsk)->thread_info, flag);
7205 static inline __attribute__((always_inline)) void clear_tsk_thread_flag(struct task_struct *tsk, int flag)
7207 clear_ti_thread_flag((tsk)->thread_info, flag);
7210 static inline __attribute__((always_inline)) int test_and_set_tsk_thread_flag(struct task_struct *tsk, int flag)
7212 return test_and_set_ti_thread_flag((tsk)->thread_info, flag);
7215 static inline __attribute__((always_inline)) int test_and_clear_tsk_thread_flag(struct task_struct *tsk, int flag)
7217 return test_and_clear_ti_thread_flag((tsk)->thread_info, flag);
7220 static inline __attribute__((always_inline)) int test_tsk_thread_flag(struct task_struct *tsk, int flag)
7222 return test_ti_thread_flag((tsk)->thread_info, flag);
7225 static inline __attribute__((always_inline)) void set_tsk_need_resched(struct task_struct *tsk)
7227 set_tsk_thread_flag(tsk,3);
7230 static inline __attribute__((always_inline)) void clear_tsk_need_resched(struct task_struct *tsk)
7232 clear_tsk_thread_flag(tsk,3);
7235 static inline __attribute__((always_inline)) int signal_pending(struct task_struct *p)
7237 return __builtin_expect(!!(test_tsk_thread_flag(p,2)), 0);
7240 static inline __attribute__((always_inline)) int need_resched(void)
7242 return __builtin_expect(!!(test_ti_thread_flag(current_thread_info(), 3)), 0);
7244 # 1531 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h"
7245 extern int cond_resched(void);
7246 extern int cond_resched_lock(spinlock_t * lock);
7247 extern int cond_resched_softirq(void);
7248 # 1549 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h"
7249 static inline __attribute__((always_inline)) int lock_need_resched(spinlock_t *lock)
7251 if (0 || need_resched())
7260 extern void recalc_sigpending_tsk(struct task_struct *t);
7261 extern void recalc_sigpending(void);
7263 extern void signal_wake_up(struct task_struct *t, int resume_stopped);
7264 # 1582 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h"
7265 static inline __attribute__((always_inline)) unsigned int task_cpu(const struct task_struct *p)
7270 static inline __attribute__((always_inline)) void set_task_cpu(struct task_struct *p, unsigned int cpu)
7279 static inline __attribute__((always_inline)) void arch_pick_mmap_layout(struct mm_struct *mm)
7281 mm->mmap_base = (0x7c000000UL / 3);
7282 mm->get_unmapped_area = arch_get_unmapped_area;
7283 mm->unmap_area = arch_unmap_area;
7287 extern long sched_setaffinity(pid_t pid, cpumask_t new_mask);
7288 extern long sched_getaffinity(pid_t pid, cpumask_t *mask);
7290 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sysdev.h" 1
7291 # 24 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sysdev.h"
7292 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kobject.h" 1
7293 # 22 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kobject.h"
7294 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sysfs.h" 1
7295 # 16 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sysfs.h"
7301 struct module * owner;
7305 struct attribute_group {
7307 struct attribute ** attrs;
7309 # 52 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sysfs.h"
7310 struct vm_area_struct;
7312 struct bin_attribute {
7313 struct attribute attr;
7316 ssize_t (*read)(struct kobject *, char *, loff_t, size_t);
7317 ssize_t (*write)(struct kobject *, char *, loff_t, size_t);
7318 int (*mmap)(struct kobject *, struct bin_attribute *attr,
7319 struct vm_area_struct *vma);
7323 ssize_t (*show)(struct kobject *, struct attribute *,char *);
7324 ssize_t (*store)(struct kobject *,struct attribute *,const char *, size_t);
7327 struct sysfs_dirent {
7329 struct list_head s_sibling;
7330 struct list_head s_children;
7334 struct dentry * s_dentry;
7335 struct iattr * s_iattr;
7338 # 90 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sysfs.h"
7339 extern int __attribute__((warn_unused_result))
7340 sysfs_create_dir(struct kobject *);
7343 sysfs_remove_dir(struct kobject *);
7345 extern int __attribute__((warn_unused_result))
7346 sysfs_rename_dir(struct kobject *, const char *new_name);
7348 extern int __attribute__((warn_unused_result))
7349 sysfs_create_file(struct kobject *, const struct attribute *);
7351 extern int __attribute__((warn_unused_result))
7352 sysfs_update_file(struct kobject *, const struct attribute *);
7354 extern int __attribute__((warn_unused_result))
7355 sysfs_chmod_file(struct kobject *kobj, struct attribute *attr, mode_t mode);
7358 sysfs_remove_file(struct kobject *, const struct attribute *);
7360 extern int __attribute__((warn_unused_result))
7361 sysfs_create_link(struct kobject * kobj, struct kobject * target, const char * name);
7364 sysfs_remove_link(struct kobject *, const char * name);
7366 int __attribute__((warn_unused_result)) sysfs_create_bin_file(struct kobject *kobj,
7367 struct bin_attribute *attr);
7368 void sysfs_remove_bin_file(struct kobject *kobj, struct bin_attribute *attr);
7370 int __attribute__((warn_unused_result)) sysfs_create_group(struct kobject *,
7371 const struct attribute_group *);
7372 void sysfs_remove_group(struct kobject *, const struct attribute_group *);
7373 void sysfs_notify(struct kobject * k, char *dir, char *attr);
7375 extern int __attribute__((warn_unused_result)) sysfs_init(void);
7376 # 23 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kobject.h" 2
7377 # 35 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kobject.h"
7378 extern char uevent_helper[];
7381 extern u64 uevent_seqnum;
7384 typedef int kobject_action_t;
7385 enum kobject_action {
7386 KOBJ_ADD = ( kobject_action_t) 0x01,
7387 KOBJ_REMOVE = ( kobject_action_t) 0x02,
7388 KOBJ_CHANGE = ( kobject_action_t) 0x03,
7389 KOBJ_MOUNT = ( kobject_action_t) 0x04,
7390 KOBJ_UMOUNT = ( kobject_action_t) 0x05,
7391 KOBJ_OFFLINE = ( kobject_action_t) 0x06,
7392 KOBJ_ONLINE = ( kobject_action_t) 0x07,
7396 const char * k_name;
7399 struct list_head entry;
7400 struct kobject * parent;
7402 struct kobj_type * ktype;
7403 struct dentry * dentry;
7404 wait_queue_head_t poll;
7407 extern int kobject_set_name(struct kobject *, const char *, ...)
7408 __attribute__((format(printf,2,3)));
7410 static inline __attribute__((always_inline)) const char * kobject_name(const struct kobject * kobj)
7412 return kobj->k_name;
7415 extern void kobject_init(struct kobject *);
7416 extern void kobject_cleanup(struct kobject *);
7418 extern int __attribute__((warn_unused_result)) kobject_add(struct kobject *);
7419 extern void kobject_del(struct kobject *);
7421 extern int __attribute__((warn_unused_result)) kobject_rename(struct kobject *, const char *new_name);
7423 extern int __attribute__((warn_unused_result)) kobject_register(struct kobject *);
7424 extern void kobject_unregister(struct kobject *);
7426 extern struct kobject * kobject_get(struct kobject *);
7427 extern void kobject_put(struct kobject *);
7429 extern struct kobject *kobject_add_dir(struct kobject *, const char *);
7431 extern char * kobject_get_path(struct kobject *, gfp_t);
7434 void (*release)(struct kobject *);
7435 struct sysfs_ops * sysfs_ops;
7436 struct attribute ** default_attrs;
7438 # 114 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kobject.h"
7439 struct kset_uevent_ops {
7440 int (*filter)(struct kset *kset, struct kobject *kobj);
7441 const char *(*name)(struct kset *kset, struct kobject *kobj);
7442 int (*uevent)(struct kset *kset, struct kobject *kobj, char **envp,
7443 int num_envp, char *buffer, int buffer_size);
7447 struct subsystem * subsys;
7448 struct kobj_type * ktype;
7449 struct list_head list;
7450 spinlock_t list_lock;
7451 struct kobject kobj;
7452 struct kset_uevent_ops * uevent_ops;
7456 extern void kset_init(struct kset * k);
7457 extern int __attribute__((warn_unused_result)) kset_add(struct kset * k);
7458 extern int __attribute__((warn_unused_result)) kset_register(struct kset * k);
7459 extern void kset_unregister(struct kset * k);
7461 static inline __attribute__((always_inline)) struct kset * to_kset(struct kobject * kobj)
7463 return kobj ? ({ const typeof( ((struct kset *)0)->kobj ) *__mptr = (kobj); (struct kset *)( (char *)__mptr - __builtin_offsetof(struct kset,kobj) );}) : ((void *)0);
7466 static inline __attribute__((always_inline)) struct kset * kset_get(struct kset * k)
7468 return k ? to_kset(kobject_get(&k->kobj)) : ((void *)0);
7471 static inline __attribute__((always_inline)) void kset_put(struct kset * k)
7473 kobject_put(&k->kobj);
7476 static inline __attribute__((always_inline)) struct kobj_type * get_ktype(struct kobject * k)
7478 if (k->kset && k->kset->ktype)
7479 return k->kset->ktype;
7484 extern struct kobject * kset_find_obj(struct kset *, const char *);
7485 # 170 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kobject.h"
7488 struct rw_semaphore rwsem;
7490 # 193 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kobject.h"
7491 extern struct subsystem kernel_subsys;
7493 extern struct subsystem hypervisor_subsys;
7494 # 242 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kobject.h"
7495 extern void subsystem_init(struct subsystem *);
7496 extern int __attribute__((warn_unused_result)) subsystem_register(struct subsystem *);
7497 extern void subsystem_unregister(struct subsystem *);
7499 static inline __attribute__((always_inline)) struct subsystem * subsys_get(struct subsystem * s)
7501 return s ? ({ const typeof( ((struct subsystem *)0)->kset ) *__mptr = (kset_get(&s->kset)); (struct subsystem *)( (char *)__mptr - __builtin_offsetof(struct subsystem,kset) );}) : ((void *)0);
7504 static inline __attribute__((always_inline)) void subsys_put(struct subsystem * s)
7509 struct subsys_attribute {
7510 struct attribute attr;
7511 ssize_t (*show)(struct subsystem *, char *);
7512 ssize_t (*store)(struct subsystem *, const char *, size_t);
7515 extern int __attribute__((warn_unused_result)) subsys_create_file(struct subsystem * ,
7516 struct subsys_attribute *);
7519 void kobject_uevent(struct kobject *kobj, enum kobject_action action);
7521 int add_uevent_var(char **envp, int num_envp, int *cur_index,
7522 char *buffer, int buffer_size, int *cur_len,
7523 const char *format, ...)
7524 __attribute__((format (printf, 7, 8)));
7525 # 25 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sysdev.h" 2
7526 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pm.h" 1
7527 # 34 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pm.h"
7528 typedef int pm_request_t;
7529 # 43 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pm.h"
7530 typedef int pm_dev_t;
7531 # 56 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pm.h"
7534 PM_SYS_UNKNOWN = 0x00000000,
7535 PM_SYS_KBC = 0x41d00303,
7536 PM_SYS_COM = 0x41d00500,
7537 PM_SYS_IRDA = 0x41d00510,
7538 PM_SYS_FDC = 0x41d00700,
7539 PM_SYS_VGA = 0x41d00900,
7540 PM_SYS_PCMCIA = 0x41d00e00,
7542 # 75 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pm.h"
7545 typedef int (*pm_callback)(struct pm_dev *dev, pm_request_t rqst, void *data);
7554 pm_callback callback;
7557 unsigned long flags;
7558 unsigned long state;
7559 unsigned long prev_state;
7561 struct list_head entry;
7570 extern void (*pm_idle)(void);
7571 extern void (*pm_power_off)(void);
7573 typedef int suspend_state_t;
7581 typedef int suspend_disk_method_t;
7590 suspend_disk_method_t pm_disk_mode;
7591 int (*valid)(suspend_state_t state);
7592 int (*prepare)(suspend_state_t state);
7593 int (*enter)(suspend_state_t state);
7594 int (*finish)(suspend_state_t state);
7597 extern void pm_set_ops(struct pm_ops *);
7598 extern struct pm_ops *pm_ops;
7599 extern int pm_suspend(suspend_state_t state);
7608 typedef struct pm_message {
7611 # 203 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pm.h"
7612 struct dev_pm_info {
7613 pm_message_t power_state;
7614 unsigned can_wakeup:1;
7624 extern void device_pm_set_parent(struct device * dev, struct device * parent);
7626 extern int device_power_down(pm_message_t state);
7627 extern void device_power_up(void);
7628 extern void device_resume(void);
7629 # 243 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pm.h"
7630 static inline __attribute__((always_inline)) int device_suspend(pm_message_t state)
7638 static inline __attribute__((always_inline)) int dpm_runtime_suspend(struct device * dev, pm_message_t state)
7643 static inline __attribute__((always_inline)) void dpm_runtime_resume(struct device * dev)
7646 # 26 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sysdev.h" 2
7651 struct sysdev_class {
7652 struct list_head drivers;
7655 int (*shutdown)(struct sys_device *);
7656 int (*suspend)(struct sys_device *, pm_message_t state);
7657 int (*resume)(struct sys_device *);
7661 struct sysdev_class_attribute {
7662 struct attribute attr;
7663 ssize_t (*show)(struct sysdev_class *, char *);
7664 ssize_t (*store)(struct sysdev_class *, const char *, size_t);
7666 # 54 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sysdev.h"
7667 extern int sysdev_class_register(struct sysdev_class *);
7668 extern void sysdev_class_unregister(struct sysdev_class *);
7670 extern int sysdev_class_create_file(struct sysdev_class *,
7671 struct sysdev_class_attribute *);
7672 extern void sysdev_class_remove_file(struct sysdev_class *,
7673 struct sysdev_class_attribute *);
7678 struct sysdev_driver {
7679 struct list_head entry;
7680 int (*add)(struct sys_device *);
7681 int (*remove)(struct sys_device *);
7682 int (*shutdown)(struct sys_device *);
7683 int (*suspend)(struct sys_device *, pm_message_t state);
7684 int (*resume)(struct sys_device *);
7688 extern int sysdev_driver_register(struct sysdev_class *, struct sysdev_driver *);
7689 extern void sysdev_driver_unregister(struct sysdev_class *, struct sysdev_driver *);
7699 struct sysdev_class * cls;
7700 struct kobject kobj;
7703 extern int sysdev_register(struct sys_device *);
7704 extern void sysdev_unregister(struct sys_device *);
7707 struct sysdev_attribute {
7708 struct attribute attr;
7709 ssize_t (*show)(struct sys_device *, char *);
7710 ssize_t (*store)(struct sys_device *, const char *, size_t);
7712 # 108 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sysdev.h"
7713 extern int sysdev_create_file(struct sys_device *, struct sysdev_attribute *);
7714 extern void sysdev_remove_file(struct sys_device *, struct sysdev_attribute *);
7715 # 1608 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h" 2
7716 extern int sched_mc_power_savings, sched_smt_power_savings;
7717 extern struct sysdev_attribute attr_sched_mc_power_savings, attr_sched_smt_power_savings;
7718 extern int sched_create_sysfs_power_savings_entries(struct sysdev_class *cls);
7720 extern void normalize_rt_tasks(void);
7721 # 1682 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sched.h"
7722 static inline __attribute__((always_inline)) int frozen(struct task_struct *p) { return 0; }
7723 static inline __attribute__((always_inline)) int freezing(struct task_struct *p) { return 0; }
7724 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); }
7725 static inline __attribute__((always_inline)) int thaw_process(struct task_struct *p) { return 1; }
7726 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); }
7728 static inline __attribute__((always_inline)) void refrigerator(void) {}
7729 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; }
7730 static inline __attribute__((always_inline)) void thaw_processes(void) {}
7732 static inline __attribute__((always_inline)) int try_to_freeze(void) { return 0; }
7733 # 10 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/module.h" 2
7736 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/stat.h" 1
7742 # 1 "include2/asm/stat.h" 1
7746 struct __old_kernel_stat {
7747 unsigned short st_dev;
7748 unsigned short st_ino;
7749 unsigned short st_mode;
7750 unsigned short st_nlink;
7751 unsigned short st_uid;
7752 unsigned short st_gid;
7753 unsigned short st_rdev;
7754 unsigned long st_size;
7755 unsigned long st_atime;
7756 unsigned long st_mtime;
7757 unsigned long st_ctime;
7761 unsigned short st_dev;
7762 unsigned short __pad1;
7763 unsigned long st_ino;
7764 unsigned short st_mode;
7765 unsigned short st_nlink;
7766 unsigned short st_uid;
7767 unsigned short st_gid;
7768 unsigned short st_rdev;
7769 unsigned short __pad2;
7770 unsigned long st_size;
7771 unsigned long st_blksize;
7772 unsigned long st_blocks;
7773 unsigned long st_atime;
7774 unsigned long st_atime_nsec;
7775 unsigned long st_mtime;
7776 unsigned long st_mtime_nsec;
7777 unsigned long st_ctime;
7778 unsigned long st_ctime_nsec;
7779 unsigned long __unused4;
7780 unsigned long __unused5;
7789 unsigned long long st_dev;
7790 unsigned char __pad0[4];
7792 unsigned long st_ino;
7793 unsigned int st_mode;
7794 unsigned int st_nlink;
7796 unsigned long st_uid;
7797 unsigned long st_gid;
7799 unsigned long long st_rdev;
7800 unsigned char __pad3[4];
7803 unsigned long st_blksize;
7805 unsigned long long st_blocks;
7807 unsigned long st_atime;
7808 unsigned long st_atime_nsec;
7810 unsigned long st_mtime;
7811 unsigned long st_mtime_nsec;
7813 unsigned long st_ctime;
7814 unsigned long st_ctime_nsec;
7816 unsigned long __unused1;
7817 unsigned long __unused2;
7819 # 7 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/stat.h" 2
7820 # 59 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/stat.h"
7830 struct timespec atime;
7831 struct timespec mtime;
7832 struct timespec ctime;
7833 unsigned long blksize;
7834 unsigned long long blocks;
7836 # 13 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/module.h" 2
7839 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kmod.h" 1
7840 # 33 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kmod.h"
7841 static inline __attribute__((always_inline)) int request_module(const char * name, ...) { return -38; }
7847 extern int call_usermodehelper_keys(char *path, char *argv[], char *envp[],
7848 struct key *session_keyring, int wait);
7850 static inline __attribute__((always_inline)) int
7851 call_usermodehelper(char *path, char **argv, char **envp, int wait)
7853 return call_usermodehelper_keys(path, argv, envp, ((void *)0), wait);
7856 extern void usermodehelper_init(void);
7859 extern int call_usermodehelper_pipe(char *path, char *argv[], char *envp[],
7860 struct file **filp);
7861 # 16 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/module.h" 2
7862 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/elf.h" 1
7868 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/elf-em.h" 1
7869 # 7 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/elf.h" 2
7870 # 1 "include2/asm/elf.h" 1
7876 # 1 "include2/asm/user.h" 1
7877 # 30 "include2/asm/user.h"
7878 struct user_fpu_struct {
7879 unsigned long fp_regs[16];
7880 unsigned long xfp_regs[16];
7881 unsigned long fpscr;
7886 struct pt_regs regs;
7887 struct user_fpu_struct fpu;
7892 unsigned long start_code;
7893 unsigned long start_data;
7894 unsigned long start_stack;
7896 struct regs * u_ar0;
7897 struct user_fpu_struct* u_fpstate;
7898 unsigned long magic;
7901 # 7 "include2/asm/elf.h" 2
7902 # 53 "include2/asm/elf.h"
7903 typedef unsigned long elf_greg_t;
7906 typedef elf_greg_t elf_gregset_t[(sizeof (struct pt_regs) / sizeof(elf_greg_t))];
7908 typedef struct user_fpu_struct elf_fpregset_t;
7909 # 115 "include2/asm/elf.h"
7911 extern int dump_task_regs (struct task_struct *, elf_gregset_t *);
7912 extern int dump_task_fpu (struct task_struct *, elf_fpregset_t *);
7913 # 126 "include2/asm/elf.h"
7914 struct linux_binprm;
7915 extern int arch_setup_additional_pages(struct linux_binprm *bprm,
7916 int executable_stack);
7918 extern unsigned int vdso_enabled;
7919 extern void __kernel_vsyscall;
7920 # 8 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/elf.h" 2
7921 # 17 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/elf.h"
7922 typedef __u32 Elf32_Addr;
7923 typedef __u16 Elf32_Half;
7924 typedef __u32 Elf32_Off;
7925 typedef __s32 Elf32_Sword;
7926 typedef __u32 Elf32_Word;
7929 typedef __u64 Elf64_Addr;
7930 typedef __u16 Elf64_Half;
7931 typedef __s16 Elf64_SHalf;
7932 typedef __u64 Elf64_Off;
7933 typedef __s32 Elf64_Sword;
7934 typedef __u32 Elf64_Word;
7935 typedef __u64 Elf64_Xword;
7936 typedef __s64 Elf64_Sxword;
7937 # 107 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/elf.h"
7938 typedef struct dynamic{
7953 # 130 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/elf.h"
7954 typedef struct elf32_rel {
7955 Elf32_Addr r_offset;
7959 typedef struct elf64_rel {
7960 Elf64_Addr r_offset;
7964 typedef struct elf32_rela{
7965 Elf32_Addr r_offset;
7967 Elf32_Sword r_addend;
7970 typedef struct elf64_rela {
7971 Elf64_Addr r_offset;
7973 Elf64_Sxword r_addend;
7976 typedef struct elf32_sym{
7978 Elf32_Addr st_value;
7980 unsigned char st_info;
7981 unsigned char st_other;
7982 Elf32_Half st_shndx;
7985 typedef struct elf64_sym {
7987 unsigned char st_info;
7988 unsigned char st_other;
7989 Elf64_Half st_shndx;
7990 Elf64_Addr st_value;
7991 Elf64_Xword st_size;
7997 typedef struct elf32_hdr{
7998 unsigned char e_ident[16];
8000 Elf32_Half e_machine;
8001 Elf32_Word e_version;
8006 Elf32_Half e_ehsize;
8007 Elf32_Half e_phentsize;
8009 Elf32_Half e_shentsize;
8011 Elf32_Half e_shstrndx;
8014 typedef struct elf64_hdr {
8015 unsigned char e_ident[16];
8017 Elf64_Half e_machine;
8018 Elf64_Word e_version;
8023 Elf64_Half e_ehsize;
8024 Elf64_Half e_phentsize;
8026 Elf64_Half e_shentsize;
8028 Elf64_Half e_shstrndx;
8037 typedef struct elf32_phdr{
8042 Elf32_Word p_filesz;
8048 typedef struct elf64_phdr {
8054 Elf64_Xword p_filesz;
8055 Elf64_Xword p_memsz;
8056 Elf64_Xword p_align;
8058 # 269 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/elf.h"
8062 Elf32_Word sh_flags;
8064 Elf32_Off sh_offset;
8068 Elf32_Word sh_addralign;
8069 Elf32_Word sh_entsize;
8072 typedef struct elf64_shdr {
8075 Elf64_Xword sh_flags;
8077 Elf64_Off sh_offset;
8078 Elf64_Xword sh_size;
8081 Elf64_Xword sh_addralign;
8082 Elf64_Xword sh_entsize;
8084 # 342 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/elf.h"
8085 typedef struct elf32_note {
8086 Elf32_Word n_namesz;
8087 Elf32_Word n_descsz;
8092 typedef struct elf64_note {
8093 Elf64_Word n_namesz;
8094 Elf64_Word n_descsz;
8100 extern Elf32_Dyn _DYNAMIC [];
8101 # 17 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/module.h" 2
8105 # 1 "include2/asm/local.h" 1
8109 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/local.h" 1
8114 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hardirq.h" 1
8119 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/smp_lock.h" 1
8120 # 6 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hardirq.h" 2
8122 # 1 "include2/asm/hardirq.h" 1
8127 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq.h" 1
8128 # 20 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq.h"
8129 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irqreturn.h" 1
8130 # 19 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irqreturn.h"
8131 typedef int irqreturn_t;
8132 # 21 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq.h" 2
8134 # 1 "include2/asm/irq.h" 1
8135 # 14 "include2/asm/irq.h"
8136 # 1 "include2/asm/machvec.h" 1
8137 # 15 "include2/asm/machvec.h"
8138 # 1 "include/asm/machtypes.h" 1
8139 # 16 "include2/asm/machvec.h" 2
8140 # 1 "include2/asm/machvec_init.h" 1
8141 # 17 "include2/asm/machvec.h" 2
8145 struct sh_machine_vector {
8146 void (*mv_setup)(char **cmdline_p);
8147 const char *mv_name;
8150 u8 (*mv_inb)(unsigned long);
8151 u16 (*mv_inw)(unsigned long);
8152 u32 (*mv_inl)(unsigned long);
8153 void (*mv_outb)(u8, unsigned long);
8154 void (*mv_outw)(u16, unsigned long);
8155 void (*mv_outl)(u32, unsigned long);
8157 u8 (*mv_inb_p)(unsigned long);
8158 u16 (*mv_inw_p)(unsigned long);
8159 u32 (*mv_inl_p)(unsigned long);
8160 void (*mv_outb_p)(u8, unsigned long);
8161 void (*mv_outw_p)(u16, unsigned long);
8162 void (*mv_outl_p)(u32, unsigned long);
8164 void (*mv_insb)(unsigned long, void *dst, unsigned long count);
8165 void (*mv_insw)(unsigned long, void *dst, unsigned long count);
8166 void (*mv_insl)(unsigned long, void *dst, unsigned long count);
8167 void (*mv_outsb)(unsigned long, const void *src, unsigned long count);
8168 void (*mv_outsw)(unsigned long, const void *src, unsigned long count);
8169 void (*mv_outsl)(unsigned long, const void *src, unsigned long count);
8171 u8 (*mv_readb)(void *);
8172 u16 (*mv_readw)(void *);
8173 u32 (*mv_readl)(void *);
8174 void (*mv_writeb)(u8, void *);
8175 void (*mv_writew)(u16, void *);
8176 void (*mv_writel)(u32, void *);
8178 int (*mv_irq_demux)(int irq);
8180 void (*mv_init_irq)(void);
8181 void (*mv_init_pci)(void);
8183 void (*mv_heartbeat)(void);
8185 void *(*mv_consistent_alloc)(struct device *, size_t, dma_addr_t *, gfp_t);
8186 int (*mv_consistent_free)(struct device *, size_t, void *, dma_addr_t);
8188 void *(*mv_ioport_map)(unsigned long port, unsigned int size);
8189 void (*mv_ioport_unmap)(void *);
8192 extern struct sh_machine_vector sh_mv;
8193 # 15 "include2/asm/irq.h" 2
8194 # 340 "include2/asm/irq.h"
8195 extern void disable_irq(unsigned int);
8196 extern void disable_irq_nosync(unsigned int);
8197 extern void enable_irq(unsigned int);
8202 extern void make_maskreg_irq(unsigned int irq);
8203 extern unsigned short *irq_mask_register;
8208 void init_IRQ_pint(void);
8213 extern void make_ipr_irq(unsigned int irq, unsigned int addr,
8214 int pos, int priority);
8215 extern void make_imask_irq(unsigned int irq);
8216 # 706 "include2/asm/irq.h"
8219 unsigned char ipr_offset, ipr_shift;
8220 unsigned char msk_offset, msk_shift;
8221 unsigned char priority;
8224 void make_intc2_irq(struct intc2_data *);
8225 void init_IRQ_intc2(void);
8228 extern int shmse_irq_demux(int irq);
8230 static inline __attribute__((always_inline)) int generic_irq_demux(int irq)
8234 # 23 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq.h" 2
8236 # 1 "include2/asm/irq_regs.h" 1
8237 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/irq_regs.h" 1
8238 # 21 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/irq_regs.h"
8239 extern __typeof__(struct pt_regs *) per_cpu____irq_regs;
8241 static inline __attribute__((always_inline)) struct pt_regs *get_irq_regs(void)
8243 return per_cpu____irq_regs;
8246 static inline __attribute__((always_inline)) struct pt_regs *set_irq_regs(struct pt_regs *new_regs)
8248 struct pt_regs *old_regs, **pp_regs = &per_cpu____irq_regs;
8250 old_regs = *pp_regs;
8251 *pp_regs = new_regs;
8254 # 1 "include2/asm/irq_regs.h" 2
8255 # 25 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq.h" 2
8258 typedef void (*irq_flow_handler_t)(unsigned int irq,
8259 struct irq_desc *desc);
8260 # 70 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq.h"
8261 struct proc_dir_entry;
8262 # 94 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq.h"
8265 unsigned int (*startup)(unsigned int irq);
8266 void (*shutdown)(unsigned int irq);
8267 void (*enable)(unsigned int irq);
8268 void (*disable)(unsigned int irq);
8270 void (*ack)(unsigned int irq);
8271 void (*mask)(unsigned int irq);
8272 void (*mask_ack)(unsigned int irq);
8273 void (*unmask)(unsigned int irq);
8274 void (*eoi)(unsigned int irq);
8276 void (*end)(unsigned int irq);
8277 void (*set_affinity)(unsigned int irq, cpumask_t dest);
8278 int (*retrigger)(unsigned int irq);
8279 int (*set_type)(unsigned int irq, unsigned int flow_type);
8280 int (*set_wake)(unsigned int irq, unsigned int on);
8281 # 121 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq.h"
8282 const char *typename;
8284 # 147 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq.h"
8286 irq_flow_handler_t handle_irq;
8287 struct irq_chip *chip;
8290 struct irqaction *action;
8291 unsigned int status;
8294 unsigned int wake_depth;
8295 unsigned int irq_count;
8296 unsigned int irqs_unhandled;
8298 # 168 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq.h"
8299 struct proc_dir_entry *dir;
8301 } __attribute__((__aligned__((1 << 5))));
8303 extern struct irq_desc irq_desc[(112 + 0 + 122)];
8309 typedef struct irq_chip hw_irq_controller;
8311 typedef struct irq_desc irq_desc_t;
8316 # 1 "include2/asm/hw_irq.h" 1
8322 extern atomic_t irq_err_count;
8323 # 186 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq.h" 2
8325 extern int setup_irq(unsigned int irq, struct irqaction *new);
8326 # 201 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq.h"
8327 static inline __attribute__((always_inline)) void set_native_irq_info(int irq, cpumask_t mask)
8330 # 244 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq.h"
8331 static inline __attribute__((always_inline)) void set_balance_irq_affinity(unsigned int irq, cpumask_t mask)
8339 static inline __attribute__((always_inline)) int select_smp_affinity(unsigned int irq)
8345 extern int no_irq_affinity;
8348 extern int handle_IRQ_event(unsigned int irq, struct irqaction *action);
8354 extern void handle_level_irq(unsigned int irq, struct irq_desc *desc);
8355 extern void handle_fasteoi_irq(unsigned int irq, struct irq_desc *desc);
8356 extern void handle_edge_irq(unsigned int irq, struct irq_desc *desc);
8357 extern void handle_simple_irq(unsigned int irq, struct irq_desc *desc);
8358 extern void handle_percpu_irq(unsigned int irq, struct irq_desc *desc);
8359 extern void handle_bad_irq(unsigned int irq, struct irq_desc *desc);
8365 extern const char *handle_irq_name(irq_flow_handler_t handle);
8372 extern unsigned int __do_IRQ(unsigned int irq);
8373 # 294 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq.h"
8374 static inline __attribute__((always_inline)) void generic_handle_irq(unsigned int irq)
8376 struct irq_desc *desc = irq_desc + irq;
8381 if (__builtin_expect(!!(desc->handle_irq), 1))
8382 desc->handle_irq(irq, desc);
8389 extern void note_interrupt(unsigned int irq, struct irq_desc *desc,
8393 void check_irq_resend(struct irq_desc *desc, unsigned int irq);
8396 extern void init_irq_proc(void);
8399 extern int noirqdebug_setup(char *str);
8402 extern int can_request_irq(unsigned int irq, unsigned long irqflags);
8405 extern struct irq_chip no_irq_chip;
8406 extern struct irq_chip dummy_irq_chip;
8409 set_irq_chip_and_handler(unsigned int irq, struct irq_chip *chip,
8410 irq_flow_handler_t handle);
8412 __set_irq_handler(unsigned int irq, irq_flow_handler_t handle, int is_chained);
8417 static inline __attribute__((always_inline)) void
8418 set_irq_handler(unsigned int irq, irq_flow_handler_t handle)
8420 __set_irq_handler(irq, handle, 0);
8428 static inline __attribute__((always_inline)) void
8429 set_irq_chained_handler(unsigned int irq,
8430 irq_flow_handler_t handle)
8432 __set_irq_handler(irq, handle, 1);
8436 extern int create_irq(void);
8437 extern void destroy_irq(unsigned int irq);
8440 static inline __attribute__((always_inline)) int irq_has_action(unsigned int irq)
8442 struct irq_desc *desc = irq_desc + irq;
8443 return desc->action != ((void *)0);
8447 extern void dynamic_irq_init(unsigned int irq);
8448 extern void dynamic_irq_cleanup(unsigned int irq);
8451 extern int set_irq_chip(unsigned int irq, struct irq_chip *chip);
8452 extern int set_irq_data(unsigned int irq, void *data);
8453 extern int set_irq_chip_data(unsigned int irq, void *data);
8454 extern int set_irq_type(unsigned int irq, unsigned int type);
8455 # 6 "include2/asm/hardirq.h" 2
8459 unsigned int __softirq_pending;
8460 } __attribute__((__aligned__((1 << 5)))) irq_cpustat_t;
8462 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq_cpustat.h" 1
8463 # 20 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irq_cpustat.h"
8464 extern irq_cpustat_t irq_stat[];
8465 # 13 "include2/asm/hardirq.h" 2
8467 extern void ack_bad_irq(unsigned int irq);
8468 # 8 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hardirq.h" 2
8469 # 95 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hardirq.h"
8473 static inline __attribute__((always_inline)) void account_system_vtime(struct task_struct *tsk)
8476 # 129 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hardirq.h"
8477 extern void irq_exit(void);
8478 # 6 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/local.h" 2
8479 # 22 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/local.h"
8484 # 5 "include2/asm/local.h" 2
8485 # 21 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/module.h" 2
8487 # 1 "include2/asm/module.h" 1
8495 struct mod_arch_specific {
8498 # 23 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/module.h" 2
8499 # 34 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/module.h"
8500 struct kernel_symbol
8502 unsigned long value;
8506 struct modversion_info
8509 char name[(64 - sizeof(unsigned long))];
8514 struct module_attribute {
8515 struct attribute attr;
8516 ssize_t (*show)(struct module_attribute *, struct module *, char *);
8517 ssize_t (*store)(struct module_attribute *, struct module *,
8518 const char *, size_t count);
8519 void (*setup)(struct module *, const char *);
8520 int (*test)(struct module *);
8521 void (*free)(struct module *);
8524 struct module_kobject
8526 struct kobject kobj;
8531 extern int init_module(void);
8532 extern void cleanup_module(void);
8535 struct exception_table_entry;
8537 const struct exception_table_entry *
8538 search_extable(const struct exception_table_entry *first,
8539 const struct exception_table_entry *last,
8540 unsigned long value);
8541 void sort_extable(struct exception_table_entry *start,
8542 struct exception_table_entry *finish);
8543 void sort_main_extable(void);
8545 extern struct subsystem module_subsys;
8546 # 165 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/module.h"
8547 const struct exception_table_entry *search_exception_tables(unsigned long add);
8549 struct notifier_block;
8550 # 484 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/module.h"
8551 static inline __attribute__((always_inline)) const struct exception_table_entry *
8552 search_module_extables(unsigned long addr)
8558 static inline __attribute__((always_inline)) struct module *module_text_address(unsigned long addr)
8564 static inline __attribute__((always_inline)) struct module *__module_text_address(unsigned long addr)
8569 static inline __attribute__((always_inline)) int is_module_address(unsigned long addr)
8579 static inline __attribute__((always_inline)) void __module_get(struct module *module)
8583 static inline __attribute__((always_inline)) int try_module_get(struct module *module)
8588 static inline __attribute__((always_inline)) void module_put(struct module *module)
8597 static inline __attribute__((always_inline)) const char *module_address_lookup(unsigned long addr,
8598 unsigned long *symbolsize,
8599 unsigned long *offset,
8605 static inline __attribute__((always_inline)) struct module *module_get_kallsym(unsigned int symnum,
8606 unsigned long *value,
8607 char *type, char *name,
8613 static inline __attribute__((always_inline)) unsigned long module_kallsyms_lookup_name(const char *name)
8618 static inline __attribute__((always_inline)) int is_exported(const char *name, const struct module *mod)
8623 static inline __attribute__((always_inline)) int register_module_notifier(struct notifier_block * nb)
8629 static inline __attribute__((always_inline)) int unregister_module_notifier(struct notifier_block * nb)
8636 static inline __attribute__((always_inline)) void print_modules(void)
8640 struct device_driver;
8643 static inline __attribute__((always_inline)) void module_add_driver(struct module *module, struct device_driver *driver)
8647 static inline __attribute__((always_inline)) void module_remove_driver(struct device_driver *driver)
8650 # 21 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c" 2
8655 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" 1
8656 # 9 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h"
8657 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/limits.h" 1
8658 # 10 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" 2
8659 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ioctl.h" 1
8663 # 1 "include2/asm/ioctl.h" 1
8664 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/ioctl.h" 1
8665 # 51 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/ioctl.h"
8666 extern unsigned int __invalid_size_argument_for_IOC;
8667 # 1 "include2/asm/ioctl.h" 2
8668 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ioctl.h" 2
8669 # 11 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" 2
8670 # 35 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h"
8671 struct files_stat_struct {
8676 extern struct files_stat_struct files_stat;
8677 extern int get_max_files(void);
8679 struct inodes_stat_t {
8684 extern struct inodes_stat_t inodes_stat;
8686 extern int leases_enable, lease_break_time;
8689 extern int dir_notify_enable;
8690 # 270 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h"
8691 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kdev_t.h" 1
8692 # 21 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/kdev_t.h"
8693 static inline __attribute__((always_inline)) int old_valid_dev(dev_t dev)
8695 return ((unsigned int) ((dev) >> 20)) < 256 && ((unsigned int) ((dev) & ((1U << 20) - 1))) < 256;
8698 static inline __attribute__((always_inline)) u16 old_encode_dev(dev_t dev)
8700 return (((unsigned int) ((dev) >> 20)) << 8) | ((unsigned int) ((dev) & ((1U << 20) - 1)));
8703 static inline __attribute__((always_inline)) dev_t old_decode_dev(u16 val)
8705 return ((((val >> 8) & 255) << 20) | (val & 255));
8708 static inline __attribute__((always_inline)) int new_valid_dev(dev_t dev)
8713 static inline __attribute__((always_inline)) u32 new_encode_dev(dev_t dev)
8715 unsigned major = ((unsigned int) ((dev) >> 20));
8716 unsigned minor = ((unsigned int) ((dev) & ((1U << 20) - 1)));
8717 return (minor & 0xff) | (major << 8) | ((minor & ~0xff) << 12);
8720 static inline __attribute__((always_inline)) dev_t new_decode_dev(u32 dev)
8722 unsigned major = (dev & 0xfff00) >> 8;
8723 unsigned minor = (dev & 0xff) | ((dev >> 12) & 0xfff00);
8724 return (((major) << 20) | (minor));
8727 static inline __attribute__((always_inline)) int huge_valid_dev(dev_t dev)
8732 static inline __attribute__((always_inline)) u64 huge_encode_dev(dev_t dev)
8734 return new_encode_dev(dev);
8737 static inline __attribute__((always_inline)) dev_t huge_decode_dev(u64 dev)
8739 return new_decode_dev(dev);
8742 static inline __attribute__((always_inline)) int sysv_valid_dev(dev_t dev)
8744 return ((unsigned int) ((dev) >> 20)) < (1<<14) && ((unsigned int) ((dev) & ((1U << 20) - 1))) < (1<<18);
8747 static inline __attribute__((always_inline)) u32 sysv_encode_dev(dev_t dev)
8749 return ((unsigned int) ((dev) & ((1U << 20) - 1))) | (((unsigned int) ((dev) >> 20)) << 18);
8752 static inline __attribute__((always_inline)) unsigned sysv_major(u32 dev)
8754 return (dev >> 18) & 0x3fff;
8757 static inline __attribute__((always_inline)) unsigned sysv_minor(u32 dev)
8759 return dev & 0x3ffff;
8761 # 271 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" 2
8762 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dcache.h" 1
8763 # 12 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dcache.h"
8766 # 33 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dcache.h"
8770 const unsigned char *name;
8773 struct dentry_stat_t {
8780 extern struct dentry_stat_t dentry_stat;
8787 static inline __attribute__((always_inline)) unsigned long
8788 partial_name_hash(unsigned long c, unsigned long prevhash)
8790 return (prevhash + (c << 4) + (c >> 4)) * 11;
8797 static inline __attribute__((always_inline)) unsigned long end_name_hash(unsigned long hash)
8799 return (unsigned int) hash;
8803 static inline __attribute__((always_inline)) unsigned int
8804 full_name_hash(const unsigned char *name, unsigned int len)
8806 unsigned long hash = 0;
8808 hash = partial_name_hash(*name++, hash);
8809 return end_name_hash(hash);
8812 struct dcookie_struct;
8818 unsigned int d_flags;
8820 struct inode *d_inode;
8826 struct hlist_node d_hash;
8827 struct dentry *d_parent;
8830 struct list_head d_lru;
8835 struct list_head d_child;
8836 struct rcu_head d_rcu;
8838 struct list_head d_subdirs;
8839 struct list_head d_alias;
8840 unsigned long d_time;
8841 struct dentry_operations *d_op;
8842 struct super_block *d_sb;
8848 unsigned char d_iname[36];
8857 enum dentry_d_lock_class
8859 DENTRY_D_LOCK_NORMAL,
8860 DENTRY_D_LOCK_NESTED
8863 struct dentry_operations {
8864 int (*d_revalidate)(struct dentry *, struct nameidata *);
8865 int (*d_hash) (struct dentry *, struct qstr *);
8866 int (*d_compare) (struct dentry *, struct qstr *, struct qstr *);
8867 int (*d_delete)(struct dentry *);
8868 void (*d_release)(struct dentry *);
8869 void (*d_iput)(struct dentry *, struct inode *);
8871 # 179 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dcache.h"
8872 extern spinlock_t dcache_lock;
8873 # 197 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dcache.h"
8874 static inline __attribute__((always_inline)) void __d_drop(struct dentry *dentry)
8876 if (!(dentry->d_flags & 0x0010)) {
8877 dentry->d_flags |= 0x0010;
8878 hlist_del_rcu(&dentry->d_hash);
8882 static inline __attribute__((always_inline)) void d_drop(struct dentry *dentry)
8884 do { do { } while (0); (void)0; (void)(&dcache_lock); } while (0);
8885 do { do { } while (0); (void)0; (void)(&dentry->d_lock); } while (0);
8887 do { do { } while (0); (void)0; (void)(&dentry->d_lock); } while (0);
8888 do { do { } while (0); (void)0; (void)(&dcache_lock); } while (0);
8891 static inline __attribute__((always_inline)) int dname_external(struct dentry *dentry)
8893 return dentry->d_name.name != dentry->d_iname;
8899 extern void d_instantiate(struct dentry *, struct inode *);
8900 extern struct dentry * d_instantiate_unique(struct dentry *, struct inode *);
8901 extern struct dentry * d_materialise_unique(struct dentry *, struct inode *);
8902 extern void d_delete(struct dentry *);
8905 extern struct dentry * d_alloc(struct dentry *, const struct qstr *);
8906 extern struct dentry * d_alloc_anon(struct inode *);
8907 extern struct dentry * d_splice_alias(struct inode *, struct dentry *);
8908 extern void shrink_dcache_sb(struct super_block *);
8909 extern void shrink_dcache_parent(struct dentry *);
8910 extern void shrink_dcache_for_umount(struct super_block *);
8911 extern int d_invalidate(struct dentry *);
8914 extern struct dentry * d_alloc_root(struct inode *);
8917 extern void d_genocide(struct dentry *);
8919 extern struct dentry *d_find_alias(struct inode *);
8920 extern void d_prune_aliases(struct inode *);
8923 extern int have_submounts(struct dentry *);
8928 extern void d_rehash(struct dentry *);
8929 # 262 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dcache.h"
8930 static inline __attribute__((always_inline)) void d_add(struct dentry *entry, struct inode *inode)
8932 d_instantiate(entry, inode);
8935 # 276 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dcache.h"
8936 static inline __attribute__((always_inline)) struct dentry *d_add_unique(struct dentry *entry, struct inode *inode)
8940 res = d_instantiate_unique(entry, inode);
8941 d_rehash(res != ((void *)0) ? res : entry);
8946 extern void d_move(struct dentry *, struct dentry *);
8949 extern struct dentry * d_lookup(struct dentry *, struct qstr *);
8950 extern struct dentry * __d_lookup(struct dentry *, struct qstr *);
8951 extern struct dentry * d_hash_and_lookup(struct dentry *, struct qstr *);
8954 extern int d_validate(struct dentry *, struct dentry *);
8956 extern char * d_path(struct dentry *, struct vfsmount *, char *, int);
8957 # 313 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dcache.h"
8958 static inline __attribute__((always_inline)) struct dentry *dget(struct dentry *dentry)
8961 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);
8962 atomic_add(1,(&dentry->d_count));
8967 extern struct dentry * dget_locked(struct dentry *);
8968 # 331 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dcache.h"
8969 static inline __attribute__((always_inline)) int d_unhashed(struct dentry *dentry)
8971 return (dentry->d_flags & 0x0010);
8974 static inline __attribute__((always_inline)) struct dentry *dget_parent(struct dentry *dentry)
8978 do { do { } while (0); (void)0; (void)(&dentry->d_lock); } while (0);
8979 ret = dget(dentry->d_parent);
8980 do { do { } while (0); (void)0; (void)(&dentry->d_lock); } while (0);
8984 extern void dput(struct dentry *);
8986 static inline __attribute__((always_inline)) int d_mountpoint(struct dentry *dentry)
8988 return dentry->d_mounted;
8991 extern struct vfsmount *lookup_mnt(struct vfsmount *, struct dentry *);
8992 extern struct vfsmount *__lookup_mnt(struct vfsmount *, struct dentry *, int);
8993 extern struct dentry *lookup_create(struct nameidata *nd, int is_dir);
8995 extern int sysctl_vfs_cache_pressure;
8996 # 272 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" 2
9001 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/radix-tree.h" 1
9002 # 29 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/radix-tree.h"
9003 struct radix_tree_root {
9004 unsigned int height;
9006 struct radix_tree_node *rnode;
9008 # 51 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/radix-tree.h"
9009 int radix_tree_insert(struct radix_tree_root *, unsigned long, void *);
9010 void *radix_tree_lookup(struct radix_tree_root *, unsigned long);
9011 void **radix_tree_lookup_slot(struct radix_tree_root *, unsigned long);
9012 void *radix_tree_delete(struct radix_tree_root *, unsigned long);
9014 radix_tree_gang_lookup(struct radix_tree_root *root, void **results,
9015 unsigned long first_index, unsigned int max_items);
9016 int radix_tree_preload(gfp_t gfp_mask);
9017 void radix_tree_init(void);
9018 void *radix_tree_tag_set(struct radix_tree_root *root,
9019 unsigned long index, unsigned int tag);
9020 void *radix_tree_tag_clear(struct radix_tree_root *root,
9021 unsigned long index, unsigned int tag);
9022 int radix_tree_tag_get(struct radix_tree_root *root,
9023 unsigned long index, unsigned int tag);
9025 radix_tree_gang_lookup_tag(struct radix_tree_root *root, void **results,
9026 unsigned long first_index, unsigned int max_items,
9028 int radix_tree_tagged(struct radix_tree_root *root, unsigned int tag);
9030 static inline __attribute__((always_inline)) void radix_tree_preload_end(void)
9034 # 277 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" 2
9035 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/prio_tree.h" 1
9036 # 14 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/prio_tree.h"
9037 struct raw_prio_tree_node {
9038 struct prio_tree_node *left;
9039 struct prio_tree_node *right;
9040 struct prio_tree_node *parent;
9043 struct prio_tree_node {
9044 struct prio_tree_node *left;
9045 struct prio_tree_node *right;
9046 struct prio_tree_node *parent;
9047 unsigned long start;
9051 struct prio_tree_root {
9052 struct prio_tree_node *prio_tree_node;
9053 unsigned short index_bits;
9061 struct prio_tree_iter {
9062 struct prio_tree_node *cur;
9064 unsigned long value;
9067 struct prio_tree_root *root;
9068 unsigned long r_index;
9069 unsigned long h_index;
9072 static inline __attribute__((always_inline)) void prio_tree_iter_init(struct prio_tree_iter *iter,
9073 struct prio_tree_root *root, unsigned long r_index, unsigned long h_index)
9076 iter->r_index = r_index;
9077 iter->h_index = h_index;
9078 iter->cur = ((void *)0);
9080 # 84 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/prio_tree.h"
9081 static inline __attribute__((always_inline)) int prio_tree_empty(const struct prio_tree_root *root)
9083 return root->prio_tree_node == ((void *)0);
9086 static inline __attribute__((always_inline)) int prio_tree_root(const struct prio_tree_node *node)
9088 return node->parent == node;
9091 static inline __attribute__((always_inline)) int prio_tree_left_empty(const struct prio_tree_node *node)
9093 return node->left == node;
9096 static inline __attribute__((always_inline)) int prio_tree_right_empty(const struct prio_tree_node *node)
9098 return node->right == node;
9102 struct prio_tree_node *prio_tree_replace(struct prio_tree_root *root,
9103 struct prio_tree_node *old, struct prio_tree_node *node);
9104 struct prio_tree_node *prio_tree_insert(struct prio_tree_root *root,
9105 struct prio_tree_node *node);
9106 void prio_tree_remove(struct prio_tree_root *root, struct prio_tree_node *node);
9107 struct prio_tree_node *prio_tree_next(struct prio_tree_iter *iter);
9108 # 278 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" 2
9109 # 286 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h"
9114 struct pipe_inode_info;
9115 struct poll_table_struct;
9117 struct vm_area_struct;
9120 extern void __attribute__ ((__section__ (".init.text"))) inode_init(unsigned long);
9121 extern void __attribute__ ((__section__ (".init.text"))) inode_init_early(void);
9122 extern void __attribute__ ((__section__ (".init.text"))) mnt_init(unsigned long);
9123 extern void __attribute__ ((__section__ (".init.text"))) files_init(unsigned long);
9126 typedef int (get_block_t)(struct inode *inode, sector_t iblock,
9127 struct buffer_head *bh_result, int create);
9128 typedef void (dio_iodone_t)(struct kiocb *iocb, loff_t offset,
9129 ssize_t bytes, void *private);
9130 # 335 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h"
9132 unsigned int ia_valid;
9137 struct timespec ia_atime;
9138 struct timespec ia_mtime;
9139 struct timespec ia_ctime;
9146 struct file *ia_file;
9152 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/quota.h" 1
9153 # 44 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/quota.h"
9154 typedef __kernel_uid32_t qid_t;
9155 typedef __u64 qsize_t;
9157 extern spinlock_t dq_data_lock;
9158 # 105 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/quota.h"
9160 __u64 dqb_bhardlimit;
9161 __u64 dqb_bsoftlimit;
9163 __u64 dqb_ihardlimit;
9164 __u64 dqb_isoftlimit;
9165 __u64 dqb_curinodes;
9170 # 126 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/quota.h"
9182 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dqblk_xfs.h" 1
9183 # 50 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dqblk_xfs.h"
9184 typedef struct fs_disk_quota {
9189 __u64 d_blk_hardlimit;
9190 __u64 d_blk_softlimit;
9191 __u64 d_ino_hardlimit;
9192 __u64 d_ino_softlimit;
9201 __u64 d_rtb_hardlimit;
9202 __u64 d_rtb_softlimit;
9209 # 137 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dqblk_xfs.h"
9210 typedef struct fs_qfilestat {
9216 typedef struct fs_quota_stat {
9220 fs_qfilestat_t qs_uquota;
9221 fs_qfilestat_t qs_gquota;
9223 __s32 qs_btimelimit;
9224 __s32 qs_itimelimit;
9225 __s32 qs_rtbtimelimit;
9226 __u16 qs_bwarnlimit;
9227 __u16 qs_iwarnlimit;
9229 # 138 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/quota.h" 2
9230 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dqblk_v1.h" 1
9231 # 21 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dqblk_v1.h"
9232 struct v1_mem_dqinfo {
9234 # 139 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/quota.h" 2
9235 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dqblk_v2.h" 1
9236 # 20 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/dqblk_v2.h"
9237 struct v2_mem_dqinfo {
9238 unsigned int dqi_blocks;
9239 unsigned int dqi_free_blk;
9240 unsigned int dqi_free_entry;
9242 # 140 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/quota.h" 2
9243 # 151 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/quota.h"
9245 __u32 dqb_bhardlimit;
9246 __u32 dqb_bsoftlimit;
9247 qsize_t dqb_curspace;
9248 __u32 dqb_ihardlimit;
9249 __u32 dqb_isoftlimit;
9250 __u32 dqb_curinodes;
9258 struct quota_format_type;
9261 struct quota_format_type *dqi_format;
9262 struct list_head dqi_dirty_list;
9263 unsigned long dqi_flags;
9264 unsigned int dqi_bgrace;
9265 unsigned int dqi_igrace;
9267 struct v1_mem_dqinfo v1_i;
9268 struct v2_mem_dqinfo v2_i;
9278 extern void mark_info_dirty(struct super_block *sb, int type);
9292 int allocated_dquots;
9297 extern struct dqstats dqstats;
9298 # 213 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/quota.h"
9300 struct hlist_node dq_hash;
9301 struct list_head dq_inuse;
9302 struct list_head dq_free;
9303 struct list_head dq_dirty;
9304 struct mutex dq_lock;
9306 wait_queue_head_t dq_wait_unused;
9307 struct super_block *dq_sb;
9310 unsigned long dq_flags;
9312 struct mem_dqblk dq_dqb;
9321 struct quota_format_ops {
9322 int (*check_quota_file)(struct super_block *sb, int type);
9323 int (*read_file_info)(struct super_block *sb, int type);
9324 int (*write_file_info)(struct super_block *sb, int type);
9325 int (*free_file_info)(struct super_block *sb, int type);
9326 int (*read_dqblk)(struct dquot *dquot);
9327 int (*commit_dqblk)(struct dquot *dquot);
9328 int (*release_dqblk)(struct dquot *dquot);
9332 struct dquot_operations {
9333 int (*initialize) (struct inode *, int);
9334 int (*drop) (struct inode *);
9335 int (*alloc_space) (struct inode *, qsize_t, int);
9336 int (*alloc_inode) (const struct inode *, unsigned long);
9337 int (*free_space) (struct inode *, qsize_t);
9338 int (*free_inode) (const struct inode *, unsigned long);
9339 int (*transfer) (struct inode *, struct iattr *);
9340 int (*write_dquot) (struct dquot *);
9341 int (*acquire_dquot) (struct dquot *);
9342 int (*release_dquot) (struct dquot *);
9343 int (*mark_dirty) (struct dquot *);
9344 int (*write_info) (struct super_block *, int);
9348 struct quotactl_ops {
9349 int (*quota_on)(struct super_block *, int, int, char *);
9350 int (*quota_off)(struct super_block *, int);
9351 int (*quota_sync)(struct super_block *, int);
9352 int (*get_info)(struct super_block *, int, struct if_dqinfo *);
9353 int (*set_info)(struct super_block *, int, struct if_dqinfo *);
9354 int (*get_dqblk)(struct super_block *, int, qid_t, struct if_dqblk *);
9355 int (*set_dqblk)(struct super_block *, int, qid_t, struct if_dqblk *);
9356 int (*get_xstate)(struct super_block *, struct fs_quota_stat *);
9357 int (*set_xstate)(struct super_block *, unsigned int, int);
9358 int (*get_xquota)(struct super_block *, int, qid_t, struct fs_disk_quota *);
9359 int (*set_xquota)(struct super_block *, int, qid_t, struct fs_disk_quota *);
9362 struct quota_format_type {
9364 struct quota_format_ops *qf_ops;
9365 struct module *qf_owner;
9366 struct quota_format_type *qf_next;
9374 struct mutex dqio_mutex;
9375 struct mutex dqonoff_mutex;
9376 struct rw_semaphore dqptr_sem;
9377 struct inode *files[2];
9378 struct mem_dqinfo info[2];
9379 struct quota_format_ops *ops[2];
9383 int mark_dquot_dirty(struct dquot *dquot);
9384 # 307 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/quota.h"
9385 int register_quota_format(struct quota_format_type *fmt);
9386 void unregister_quota_format(struct quota_format_type *fmt);
9388 struct quota_module_name {
9392 # 357 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" 2
9393 # 384 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h"
9394 enum positive_aop_returns {
9395 AOP_WRITEPAGE_ACTIVATE = 0x80000,
9396 AOP_TRUNCATED_PAGE = 0x80001,
9403 struct address_space;
9404 struct writeback_control;
9406 struct address_space_operations {
9407 int (*writepage)(struct page *page, struct writeback_control *wbc);
9408 int (*readpage)(struct file *, struct page *);
9409 void (*sync_page)(struct page *);
9412 int (*writepages)(struct address_space *, struct writeback_control *);
9415 int (*set_page_dirty)(struct page *page);
9417 int (*readpages)(struct file *filp, struct address_space *mapping,
9418 struct list_head *pages, unsigned nr_pages);
9424 int (*prepare_write)(struct file *, struct page *, unsigned, unsigned);
9425 int (*commit_write)(struct file *, struct page *, unsigned, unsigned);
9427 sector_t (*bmap)(struct address_space *, sector_t);
9428 void (*invalidatepage) (struct page *, unsigned long);
9429 int (*releasepage) (struct page *, gfp_t);
9430 ssize_t (*direct_IO)(int, struct kiocb *, const struct iovec *iov,
9431 loff_t offset, unsigned long nr_segs);
9432 struct page* (*get_xip_page)(struct address_space *, sector_t,
9435 int (*migratepage) (struct address_space *,
9436 struct page *, struct page *);
9439 struct backing_dev_info;
9440 struct address_space {
9442 struct radix_tree_root page_tree;
9444 unsigned int i_mmap_writable;
9445 struct prio_tree_root i_mmap;
9446 struct list_head i_mmap_nonlinear;
9447 spinlock_t i_mmap_lock;
9448 unsigned int truncate_count;
9449 unsigned long nrpages;
9450 unsigned long writeback_index;
9451 const struct address_space_operations *a_ops;
9452 unsigned long flags;
9453 struct backing_dev_info *backing_dev_info;
9454 spinlock_t private_lock;
9455 struct list_head private_list;
9456 struct address_space *assoc_mapping;
9457 } __attribute__((aligned(sizeof(long))));
9464 struct block_device {
9466 struct inode * bd_inode;
9468 struct mutex bd_mutex;
9469 struct mutex bd_mount_mutex;
9470 struct list_head bd_inodes;
9474 struct list_head bd_holder_list;
9476 struct block_device * bd_contains;
9477 unsigned bd_block_size;
9478 struct hd_struct * bd_part;
9480 unsigned bd_part_count;
9482 struct gendisk * bd_disk;
9483 struct list_head bd_list;
9484 struct backing_dev_info *bd_inode_backing_dev_info;
9491 unsigned long bd_private;
9493 # 491 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h"
9494 enum bdev_bd_mutex_lock_class
9500 # 506 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h"
9501 int mapping_tagged(struct address_space *mapping, int tag);
9506 static inline __attribute__((always_inline)) int mapping_mapped(struct address_space *mapping)
9508 return !prio_tree_empty(&mapping->i_mmap) ||
9509 !list_empty(&mapping->i_mmap_nonlinear);
9518 static inline __attribute__((always_inline)) int mapping_writably_mapped(struct address_space *mapping)
9520 return mapping->i_mmap_writable != 0;
9522 # 539 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h"
9524 struct hlist_node i_hash;
9525 struct list_head i_list;
9526 struct list_head i_sb_list;
9527 struct list_head i_dentry;
9528 unsigned long i_ino;
9531 unsigned int i_nlink;
9536 struct timespec i_atime;
9537 struct timespec i_mtime;
9538 struct timespec i_ctime;
9539 unsigned int i_blkbits;
9540 unsigned long i_version;
9542 unsigned short i_bytes;
9544 struct mutex i_mutex;
9545 struct rw_semaphore i_alloc_sem;
9546 struct inode_operations *i_op;
9547 const struct file_operations *i_fop;
9548 struct super_block *i_sb;
9549 struct file_lock *i_flock;
9550 struct address_space *i_mapping;
9551 struct address_space i_data;
9555 struct list_head i_devices;
9557 struct pipe_inode_info *i_pipe;
9558 struct block_device *i_bdev;
9559 struct cdev *i_cdev;
9566 unsigned long i_dnotify_mask;
9567 struct dnotify_struct *i_dnotify;
9571 struct list_head inotify_watches;
9572 struct mutex inotify_mutex;
9575 unsigned long i_state;
9576 unsigned long dirtied_when;
9578 unsigned int i_flags;
9580 atomic_t i_writecount;
9589 # 617 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h"
9590 enum inode_i_mutex_lock_class
9598 # 636 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h"
9599 static inline __attribute__((always_inline)) loff_t i_size_read(struct inode *inode)
9601 # 655 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h"
9602 return inode->i_size;
9607 static inline __attribute__((always_inline)) void i_size_write(struct inode *inode, loff_t i_size)
9609 # 671 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h"
9610 inode->i_size = i_size;
9614 static inline __attribute__((always_inline)) unsigned iminor(struct inode *inode)
9616 return ((unsigned int) ((inode->i_rdev) & ((1U << 20) - 1)));
9619 static inline __attribute__((always_inline)) unsigned imajor(struct inode *inode)
9621 return ((unsigned int) ((inode->i_rdev) >> 20));
9624 extern struct block_device *I_BDEV(struct inode *inode);
9626 struct fown_struct {
9629 enum pid_type pid_type;
9637 struct file_ra_state {
9638 unsigned long start;
9640 unsigned long flags;
9641 unsigned long cache_hit;
9642 unsigned long prev_page;
9643 unsigned long ahead_start;
9644 unsigned long ahead_size;
9645 unsigned long ra_pages;
9646 unsigned long mmap_hit;
9647 unsigned long mmap_miss;
9658 struct list_head fu_list;
9659 struct rcu_head fu_rcuhead;
9661 struct dentry *f_dentry;
9662 struct vfsmount *f_vfsmnt;
9663 const struct file_operations *f_op;
9665 unsigned int f_flags;
9668 struct fown_struct f_owner;
9669 unsigned int f_uid, f_gid;
9670 struct file_ra_state f_ra;
9672 unsigned long f_version;
9681 struct list_head f_ep_links;
9682 spinlock_t f_ep_lock;
9684 struct address_space *f_mapping;
9686 extern spinlock_t files_lock;
9687 # 779 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h"
9688 typedef struct files_struct *fl_owner_t;
9690 struct file_lock_operations {
9691 void (*fl_insert)(struct file_lock *);
9692 void (*fl_remove)(struct file_lock *);
9693 void (*fl_copy_lock)(struct file_lock *, struct file_lock *);
9694 void (*fl_release_private)(struct file_lock *);
9697 struct lock_manager_operations {
9698 int (*fl_compare_owner)(struct file_lock *, struct file_lock *);
9699 void (*fl_notify)(struct file_lock *);
9700 void (*fl_copy_lock)(struct file_lock *, struct file_lock *);
9701 void (*fl_release_private)(struct file_lock *);
9702 void (*fl_break)(struct file_lock *);
9703 int (*fl_mylease)(struct file_lock *, struct file_lock *);
9704 int (*fl_change)(struct file_lock **, int);
9708 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/nfs_fs_i.h" 1
9714 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/nfs.h" 1
9715 # 39 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/nfs.h"
9734 NFSERR_OPNOTSUPP = 45,
9735 NFSERR_NAMETOOLONG = 63,
9736 NFSERR_NOTEMPTY = 66,
9741 NFSERR_BADHANDLE = 10001,
9742 NFSERR_NOT_SYNC = 10002,
9743 NFSERR_BAD_COOKIE = 10003,
9744 NFSERR_NOTSUPP = 10004,
9745 NFSERR_TOOSMALL = 10005,
9746 NFSERR_SERVERFAULT = 10006,
9747 NFSERR_BADTYPE = 10007,
9748 NFSERR_JUKEBOX = 10008,
9749 NFSERR_SAME = 10009,
9750 NFSERR_DENIED = 10010,
9751 NFSERR_EXPIRED = 10011,
9752 NFSERR_LOCKED = 10012,
9753 NFSERR_GRACE = 10013,
9754 NFSERR_FHEXPIRED = 10014,
9755 NFSERR_SHARE_DENIED = 10015,
9756 NFSERR_WRONGSEC = 10016,
9757 NFSERR_CLID_INUSE = 10017,
9758 NFSERR_RESOURCE = 10018,
9759 NFSERR_MOVED = 10019,
9760 NFSERR_NOFILEHANDLE = 10020,
9761 NFSERR_MINOR_VERS_MISMATCH = 10021,
9762 NFSERR_STALE_CLIENTID = 10022,
9763 NFSERR_STALE_STATEID = 10023,
9764 NFSERR_OLD_STATEID = 10024,
9765 NFSERR_BAD_STATEID = 10025,
9766 NFSERR_BAD_SEQID = 10026,
9767 NFSERR_NOT_SAME = 10027,
9768 NFSERR_LOCK_RANGE = 10028,
9769 NFSERR_SYMLINK = 10029,
9770 NFSERR_RESTOREFH = 10030,
9771 NFSERR_LEASE_MOVED = 10031,
9772 NFSERR_ATTRNOTSUPP = 10032,
9773 NFSERR_NO_GRACE = 10033,
9774 NFSERR_RECLAIM_BAD = 10034,
9775 NFSERR_RECLAIM_CONFLICT = 10035,
9776 NFSERR_BAD_XDR = 10036,
9777 NFSERR_LOCKS_HELD = 10037,
9778 NFSERR_OPENMODE = 10038,
9779 NFSERR_BADOWNER = 10039,
9780 NFSERR_BADCHAR = 10040,
9781 NFSERR_BADNAME = 10041,
9782 NFSERR_BAD_RANGE = 10042,
9783 NFSERR_LOCK_NOTSUPP = 10043,
9784 NFSERR_OP_ILLEGAL = 10044,
9785 NFSERR_DEADLOCK = 10045,
9786 NFSERR_FILE_OPEN = 10046,
9787 NFSERR_ADMIN_REVOKED = 10047,
9788 NFSERR_CB_PATH_DOWN = 10048,
9789 NFSERR_REPLAY_ME = 10049
9807 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sunrpc/msg_prot.h" 1
9808 # 18 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sunrpc/msg_prot.h"
9809 typedef u32 rpc_authflavor_t;
9811 enum rpc_auth_flavors {
9818 RPC_AUTH_MAXFLAVOR = 8,
9820 RPC_AUTH_GSS_KRB5 = 390003,
9821 RPC_AUTH_GSS_KRB5I = 390004,
9822 RPC_AUTH_GSS_KRB5P = 390005,
9823 RPC_AUTH_GSS_LKEY = 390006,
9824 RPC_AUTH_GSS_LKEYI = 390007,
9825 RPC_AUTH_GSS_LKEYP = 390008,
9826 RPC_AUTH_GSS_SPKM = 390009,
9827 RPC_AUTH_GSS_SPKMI = 390010,
9828 RPC_AUTH_GSS_SPKMP = 390011,
9839 enum rpc_reply_stat {
9840 RPC_MSG_ACCEPTED = 0,
9844 enum rpc_accept_stat {
9846 RPC_PROG_UNAVAIL = 1,
9847 RPC_PROG_MISMATCH = 2,
9848 RPC_PROC_UNAVAIL = 3,
9849 RPC_GARBAGE_ARGS = 4,
9853 enum rpc_reject_stat {
9858 enum rpc_auth_stat {
9860 RPC_AUTH_BADCRED = 1,
9861 RPC_AUTH_REJECTEDCRED = 2,
9862 RPC_AUTH_BADVERF = 3,
9863 RPC_AUTH_REJECTEDVERF = 4,
9864 RPC_AUTH_TOOWEAK = 5,
9866 RPCSEC_GSS_CREDPROBLEM = 13,
9867 RPCSEC_GSS_CTXPROBLEM = 14
9869 # 104 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/sunrpc/msg_prot.h"
9870 typedef __be32 rpc_fraghdr;
9871 # 131 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/nfs.h" 2
9879 unsigned short size;
9880 unsigned char data[128];
9887 static inline __attribute__((always_inline)) int nfs_compare_fh(const struct nfs_fh *a, const struct nfs_fh *b)
9889 return a->size != b->size || memcmp(a->data, b->data, a->size) != 0;
9892 static inline __attribute__((always_inline)) void nfs_copy_fh(struct nfs_fh *target, const struct nfs_fh *source)
9894 target->size = source->size;
9895 memcpy(target->data, source->data, source->size);
9897 # 165 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/nfs.h"
9898 enum nfs3_stable_how {
9903 # 7 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/nfs_fs_i.h" 2
9905 struct nlm_lockowner;
9910 struct nfs_lock_info {
9912 struct nlm_lockowner *owner;
9913 struct list_head list;
9916 struct nfs4_lock_state;
9917 struct nfs4_lock_info {
9918 struct nfs4_lock_state *owner;
9920 # 800 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" 2
9923 struct file_lock *fl_next;
9924 struct list_head fl_link;
9925 struct list_head fl_block;
9926 fl_owner_t fl_owner;
9927 unsigned int fl_pid;
9928 wait_queue_head_t fl_wait;
9929 struct file *fl_file;
9930 unsigned char fl_flags;
9931 unsigned char fl_type;
9935 struct fasync_struct * fl_fasync;
9936 unsigned long fl_break_time;
9938 struct file_lock_operations *fl_ops;
9939 struct lock_manager_operations *fl_lmops;
9941 struct nfs_lock_info nfs_fl;
9942 struct nfs4_lock_info nfs4_fl;
9945 # 832 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h"
9946 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fcntl.h" 1
9950 # 1 "include2/asm/fcntl.h" 1
9951 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/fcntl.h" 1
9952 # 114 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/fcntl.h"
9961 # 137 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/fcntl.h"
9970 # 1 "include2/asm/fcntl.h" 2
9971 # 5 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fcntl.h" 2
9972 # 833 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" 2
9974 extern int fcntl_getlk(struct file *, struct flock *);
9975 extern int fcntl_setlk(unsigned int, struct file *, unsigned int,
9979 extern int fcntl_getlk64(struct file *, struct flock64 *);
9980 extern int fcntl_setlk64(unsigned int, struct file *, unsigned int,
9984 extern void send_sigio(struct fown_struct *fown, int fd, int band);
9985 extern int fcntl_setlease(unsigned int fd, struct file *filp, long arg);
9986 extern int fcntl_getlease(struct file *filp);
9989 extern int do_sync_file_range(struct file *file, loff_t offset, loff_t endbyte,
9990 unsigned int flags);
9993 extern void locks_init_lock(struct file_lock *);
9994 extern void locks_copy_lock(struct file_lock *, struct file_lock *);
9995 extern void locks_remove_posix(struct file *, fl_owner_t);
9996 extern void locks_remove_flock(struct file *);
9997 extern int posix_test_lock(struct file *, struct file_lock *, struct file_lock *);
9998 extern int posix_lock_file_conf(struct file *, struct file_lock *, struct file_lock *);
9999 extern int posix_lock_file(struct file *, struct file_lock *);
10000 extern int posix_lock_file_wait(struct file *, struct file_lock *);
10001 extern int posix_unblock_lock(struct file *, struct file_lock *);
10002 extern int flock_lock_file_wait(struct file *filp, struct file_lock *fl);
10003 extern int __break_lease(struct inode *inode, unsigned int flags);
10004 extern void lease_get_mtime(struct inode *, struct timespec *time);
10005 extern int setlease(struct file *, long, struct file_lock **);
10006 extern int lease_modify(struct file_lock **, int);
10007 extern int lock_may_read(struct inode *, loff_t start, unsigned long count);
10008 extern int lock_may_write(struct inode *, loff_t start, unsigned long count);
10010 struct fasync_struct {
10013 struct fasync_struct *fa_next;
10014 struct file *fa_file;
10020 extern int fasync_helper(int, struct file *, int, struct fasync_struct **);
10022 extern void kill_fasync(struct fasync_struct **, int, int);
10024 extern void __kill_fasync(struct fasync_struct *, int, int);
10026 extern int __f_setown(struct file *filp, struct pid *, enum pid_type, int force);
10027 extern int f_setown(struct file *filp, unsigned long arg, int force);
10028 extern void f_delown(struct file *filp);
10029 extern pid_t f_getown(struct file *filp);
10030 extern int send_sigurg(struct fown_struct *fown);
10031 # 900 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h"
10032 extern struct list_head super_blocks;
10033 extern spinlock_t sb_lock;
10037 struct super_block {
10038 struct list_head s_list;
10040 unsigned long s_blocksize;
10041 unsigned char s_blocksize_bits;
10042 unsigned char s_dirt;
10043 unsigned long long s_maxbytes;
10044 struct file_system_type *s_type;
10045 struct super_operations *s_op;
10046 struct dquot_operations *dq_op;
10047 struct quotactl_ops *s_qcop;
10048 struct export_operations *s_export_op;
10049 unsigned long s_flags;
10050 unsigned long s_magic;
10051 struct dentry *s_root;
10052 struct rw_semaphore s_umount;
10053 struct mutex s_lock;
10056 int s_need_sync_fs;
10061 struct xattr_handler **s_xattr;
10063 struct list_head s_inodes;
10064 struct list_head s_dirty;
10065 struct list_head s_io;
10066 struct hlist_head s_anon;
10067 struct list_head s_files;
10069 struct block_device *s_bdev;
10070 struct list_head s_instances;
10071 struct quota_info s_dquot;
10074 wait_queue_head_t s_wait_unfrozen;
10084 struct mutex s_vfs_rename_mutex;
10091 extern struct timespec current_fs_time(struct super_block *sb);
10098 SB_FREEZE_WRITE = 1,
10099 SB_FREEZE_TRANS = 2,
10105 static inline __attribute__((always_inline)) void get_fs_excl(void)
10107 atomic_add(1,(&get_current()->fs_excl));
10110 static inline __attribute__((always_inline)) void put_fs_excl(void)
10112 atomic_sub(1,(&get_current()->fs_excl));
10115 static inline __attribute__((always_inline)) int has_fs_excl(void)
10117 return ((&get_current()->fs_excl)->counter);
10124 static inline __attribute__((always_inline)) void lock_super(struct super_block * sb)
10127 mutex_lock(&sb->s_lock);
10130 static inline __attribute__((always_inline)) void unlock_super(struct super_block * sb)
10133 mutex_unlock(&sb->s_lock);
10139 extern int vfs_permission(struct nameidata *, int);
10140 extern int vfs_create(struct inode *, struct dentry *, int, struct nameidata *);
10141 extern int vfs_mkdir(struct inode *, struct dentry *, int);
10142 extern int vfs_mknod(struct inode *, struct dentry *, int, dev_t);
10143 extern int vfs_symlink(struct inode *, struct dentry *, const char *, int);
10144 extern int vfs_link(struct dentry *, struct inode *, struct dentry *);
10145 extern int vfs_rmdir(struct inode *, struct dentry *);
10146 extern int vfs_unlink(struct inode *, struct dentry *);
10147 extern int vfs_rename(struct inode *, struct dentry *, struct inode *, struct dentry *);
10152 extern void dentry_unhash(struct dentry *dentry);
10157 extern int file_permission(struct file *, int);
10158 # 1046 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h"
10159 int generic_osync_inode(struct inode *, struct address_space *, int);
10167 typedef int (*filldir_t)(void *, const char *, int, loff_t, u64, unsigned);
10169 struct block_device_operations {
10170 int (*open) (struct inode *, struct file *);
10171 int (*release) (struct inode *, struct file *);
10172 int (*ioctl) (struct inode *, struct file *, unsigned, unsigned long);
10173 long (*unlocked_ioctl) (struct file *, unsigned, unsigned long);
10174 long (*compat_ioctl) (struct file *, unsigned, unsigned long);
10175 int (*direct_access) (struct block_device *, sector_t, unsigned long *);
10176 int (*media_changed) (struct gendisk *);
10177 int (*revalidate_disk) (struct gendisk *);
10178 int (*getgeo)(struct block_device *, struct hd_geometry *);
10179 struct module *owner;
10181 # 1078 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h"
10190 } read_descriptor_t;
10192 typedef int (*read_actor_t)(read_descriptor_t *, struct page *, unsigned long, unsigned long);
10193 # 1101 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h"
10194 struct file_operations {
10195 struct module *owner;
10196 loff_t (*llseek) (struct file *, loff_t, int);
10197 ssize_t (*read) (struct file *, char *, size_t, loff_t *);
10198 ssize_t (*write) (struct file *, const char *, size_t, loff_t *);
10199 ssize_t (*aio_read) (struct kiocb *, const struct iovec *, unsigned long, loff_t);
10200 ssize_t (*aio_write) (struct kiocb *, const struct iovec *, unsigned long, loff_t);
10201 int (*readdir) (struct file *, void *, filldir_t);
10202 unsigned int (*poll) (struct file *, struct poll_table_struct *);
10203 int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long);
10204 long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long);
10205 long (*compat_ioctl) (struct file *, unsigned int, unsigned long);
10206 int (*mmap) (struct file *, struct vm_area_struct *);
10207 int (*open) (struct inode *, struct file *);
10208 int (*flush) (struct file *, fl_owner_t id);
10209 int (*release) (struct inode *, struct file *);
10210 int (*fsync) (struct file *, struct dentry *, int datasync);
10211 int (*aio_fsync) (struct kiocb *, int datasync);
10212 int (*fasync) (int, struct file *, int);
10213 int (*lock) (struct file *, int, struct file_lock *);
10214 ssize_t (*sendfile) (struct file *, loff_t *, size_t, read_actor_t, void *);
10215 ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int);
10216 unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);
10217 int (*check_flags)(int);
10218 int (*dir_notify)(struct file *filp, unsigned long arg);
10219 int (*flock) (struct file *, int, struct file_lock *);
10220 ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int);
10221 ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int);
10224 struct inode_operations {
10225 int (*create) (struct inode *,struct dentry *,int, struct nameidata *);
10226 struct dentry * (*lookup) (struct inode *,struct dentry *, struct nameidata *);
10227 int (*link) (struct dentry *,struct inode *,struct dentry *);
10228 int (*unlink) (struct inode *,struct dentry *);
10229 int (*symlink) (struct inode *,struct dentry *,const char *);
10230 int (*mkdir) (struct inode *,struct dentry *,int);
10231 int (*rmdir) (struct inode *,struct dentry *);
10232 int (*mknod) (struct inode *,struct dentry *,int,dev_t);
10233 int (*rename) (struct inode *, struct dentry *,
10234 struct inode *, struct dentry *);
10235 int (*readlink) (struct dentry *, char *,int);
10236 void * (*follow_link) (struct dentry *, struct nameidata *);
10237 void (*put_link) (struct dentry *, struct nameidata *, void *);
10238 void (*truncate) (struct inode *);
10239 int (*permission) (struct inode *, int, struct nameidata *);
10240 int (*setattr) (struct dentry *, struct iattr *);
10241 int (*getattr) (struct vfsmount *mnt, struct dentry *, struct kstat *);
10242 int (*setxattr) (struct dentry *, const char *,const void *,size_t,int);
10243 ssize_t (*getxattr) (struct dentry *, const char *, void *, size_t);
10244 ssize_t (*listxattr) (struct dentry *, char *, size_t);
10245 int (*removexattr) (struct dentry *, const char *);
10246 void (*truncate_range)(struct inode *, loff_t, loff_t);
10251 ssize_t rw_copy_check_uvector(int type, const struct iovec * uvector,
10252 unsigned long nr_segs, unsigned long fast_segs,
10253 struct iovec *fast_pointer,
10254 struct iovec **ret_pointer);
10256 extern ssize_t vfs_read(struct file *, char *, size_t, loff_t *);
10257 extern ssize_t vfs_write(struct file *, const char *, size_t, loff_t *);
10258 extern ssize_t vfs_readv(struct file *, const struct iovec *,
10259 unsigned long, loff_t *);
10260 extern ssize_t vfs_writev(struct file *, const struct iovec *,
10261 unsigned long, loff_t *);
10267 struct super_operations {
10268 struct inode *(*alloc_inode)(struct super_block *sb);
10269 void (*destroy_inode)(struct inode *);
10271 void (*read_inode) (struct inode *);
10273 void (*dirty_inode) (struct inode *);
10274 int (*write_inode) (struct inode *, int);
10275 void (*put_inode) (struct inode *);
10276 void (*drop_inode) (struct inode *);
10277 void (*delete_inode) (struct inode *);
10278 void (*put_super) (struct super_block *);
10279 void (*write_super) (struct super_block *);
10280 int (*sync_fs)(struct super_block *sb, int wait);
10281 void (*write_super_lockfs) (struct super_block *);
10282 void (*unlockfs) (struct super_block *);
10283 int (*statfs) (struct dentry *, struct kstatfs *);
10284 int (*remount_fs) (struct super_block *, int *, char *);
10285 void (*clear_inode) (struct inode *);
10286 void (*umount_begin) (struct vfsmount *, int);
10288 int (*show_options)(struct seq_file *, struct vfsmount *);
10289 int (*show_stats)(struct seq_file *, struct vfsmount *);
10295 # 1216 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h"
10296 extern void __mark_inode_dirty(struct inode *, int);
10297 static inline __attribute__((always_inline)) void mark_inode_dirty(struct inode *inode)
10299 __mark_inode_dirty(inode, (1 | 2 | 4));
10302 static inline __attribute__((always_inline)) void mark_inode_dirty_sync(struct inode *inode)
10304 __mark_inode_dirty(inode, 1);
10307 static inline __attribute__((always_inline)) void inc_nlink(struct inode *inode)
10312 static inline __attribute__((always_inline)) void inode_inc_link_count(struct inode *inode)
10315 mark_inode_dirty(inode);
10318 static inline __attribute__((always_inline)) void drop_nlink(struct inode *inode)
10323 static inline __attribute__((always_inline)) void clear_nlink(struct inode *inode)
10325 inode->i_nlink = 0;
10328 static inline __attribute__((always_inline)) void inode_dec_link_count(struct inode *inode)
10331 mark_inode_dirty(inode);
10334 extern void touch_atime(struct vfsmount *mnt, struct dentry *dentry);
10335 static inline __attribute__((always_inline)) void file_accessed(struct file *file)
10337 if (!(file->f_flags & 01000000))
10338 touch_atime(file->f_vfsmnt, file->f_dentry);
10341 int sync_inode(struct inode *inode, struct writeback_control *wbc);
10342 # 1349 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h"
10343 struct export_operations {
10344 struct dentry *(*decode_fh)(struct super_block *sb, __u32 *fh, int fh_len, int fh_type,
10345 int (*acceptable)(void *context, struct dentry *de),
10347 int (*encode_fh)(struct dentry *de, __u32 *fh, int *max_len,
10351 int (*get_name)(struct dentry *parent, char *name,
10352 struct dentry *child);
10353 struct dentry * (*get_parent)(struct dentry *child);
10354 struct dentry * (*get_dentry)(struct super_block *sb, void *inump);
10357 struct dentry * (*find_exported_dentry)(
10358 struct super_block *sb, void *obj, void *parent,
10359 int (*acceptable)(void *context, struct dentry *de),
10365 extern struct dentry *
10366 find_exported_dentry(struct super_block *sb, void *obj, void *parent,
10367 int (*acceptable)(void *context, struct dentry *de),
10370 struct file_system_type {
10373 int (*get_sb) (struct file_system_type *, int,
10374 const char *, void *, struct vfsmount *);
10375 void (*kill_sb) (struct super_block *);
10376 struct module *owner;
10377 struct file_system_type * next;
10378 struct list_head fs_supers;
10379 struct lock_class_key s_lock_key;
10380 struct lock_class_key s_umount_key;
10383 extern int get_sb_bdev(struct file_system_type *fs_type,
10384 int flags, const char *dev_name, void *data,
10385 int (*fill_super)(struct super_block *, void *, int),
10386 struct vfsmount *mnt);
10387 extern int get_sb_single(struct file_system_type *fs_type,
10388 int flags, void *data,
10389 int (*fill_super)(struct super_block *, void *, int),
10390 struct vfsmount *mnt);
10391 extern int get_sb_nodev(struct file_system_type *fs_type,
10392 int flags, void *data,
10393 int (*fill_super)(struct super_block *, void *, int),
10394 struct vfsmount *mnt);
10395 void generic_shutdown_super(struct super_block *sb);
10396 void kill_block_super(struct super_block *sb);
10397 void kill_anon_super(struct super_block *sb);
10398 void kill_litter_super(struct super_block *sb);
10399 void deactivate_super(struct super_block *sb);
10400 int set_anon_super(struct super_block *s, void *data);
10401 struct super_block *sget(struct file_system_type *type,
10402 int (*test)(struct super_block *,void *),
10403 int (*set)(struct super_block *,void *),
10405 extern int get_sb_pseudo(struct file_system_type *, char *,
10406 struct super_operations *ops, unsigned long,
10407 struct vfsmount *mnt);
10408 extern int simple_set_mnt(struct vfsmount *mnt, struct super_block *sb);
10409 int __put_super(struct super_block *sb);
10410 int __put_super_and_need_restart(struct super_block *sb);
10411 void unnamed_dev_init(void);
10419 extern int register_filesystem(struct file_system_type *);
10420 extern int unregister_filesystem(struct file_system_type *);
10421 extern struct vfsmount *kern_mount(struct file_system_type *);
10422 extern int may_umount_tree(struct vfsmount *);
10423 extern int may_umount(struct vfsmount *);
10424 extern void umount_tree(struct vfsmount *, int, struct list_head *);
10425 extern void release_mounts(struct list_head *);
10426 extern long do_mount(char *, char *, char *, unsigned long, void *);
10427 extern struct vfsmount *copy_tree(struct vfsmount *, struct dentry *, int);
10428 extern void mnt_set_mountpoint(struct vfsmount *, struct dentry *,
10429 struct vfsmount *);
10431 extern int vfs_statfs(struct dentry *, struct kstatfs *);
10434 extern struct subsystem fs_subsys;
10439 extern int locks_mandatory_locked(struct inode *);
10440 extern int locks_mandatory_area(int, struct inode *, struct file *, loff_t, size_t);
10441 # 1455 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h"
10442 static inline __attribute__((always_inline)) int locks_verify_locked(struct inode *inode)
10444 if ((((inode)->i_sb->s_flags & (64)) && ((inode)->i_mode & (0002000 | 00010)) == 0002000))
10445 return locks_mandatory_locked(inode);
10449 extern int rw_verify_area(int, struct file *, loff_t *, size_t);
10451 static inline __attribute__((always_inline)) int locks_verify_truncate(struct inode *inode,
10455 if (inode->i_flock && (((inode)->i_sb->s_flags & (64)) && ((inode)->i_mode & (0002000 | 00010)) == 0002000))
10456 return locks_mandatory_area(
10458 size < inode->i_size ? size : inode->i_size,
10459 (size < inode->i_size ? inode->i_size - size
10460 : size - inode->i_size)
10465 static inline __attribute__((always_inline)) int break_lease(struct inode *inode, unsigned int mode)
10467 if (inode->i_flock)
10468 return __break_lease(inode, mode);
10474 extern int do_truncate(struct dentry *, loff_t start, unsigned int time_attrs,
10475 struct file *filp);
10476 extern long do_sys_open(int fdf, const char *filename, int flags,
10478 extern struct file *filp_open(const char *, int, int);
10479 extern struct file * dentry_open(struct dentry *, struct vfsmount *, int);
10480 extern int filp_close(struct file *, fl_owner_t id);
10481 extern char * getname(const char *);
10484 extern void __attribute__ ((__section__ (".init.text"))) vfs_caches_init_early(void);
10485 extern void __attribute__ ((__section__ (".init.text"))) vfs_caches_init(unsigned long);
10486 # 1509 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h"
10487 extern int register_blkdev(unsigned int, const char *);
10488 extern int unregister_blkdev(unsigned int, const char *);
10489 extern struct block_device *bdget(dev_t);
10490 extern void bd_set_size(struct block_device *, loff_t size);
10491 extern void bd_forget(struct inode *inode);
10492 extern void bdput(struct block_device *);
10493 extern struct block_device *open_by_devnum(dev_t, unsigned);
10494 extern struct block_device *open_partition_by_devnum(dev_t, unsigned);
10495 extern const struct address_space_operations def_blk_aops;
10499 extern const struct file_operations def_blk_fops;
10500 extern const struct file_operations def_chr_fops;
10501 extern const struct file_operations bad_sock_fops;
10502 extern const struct file_operations def_fifo_fops;
10504 extern int ioctl_by_bdev(struct block_device *, unsigned, unsigned long);
10505 extern int blkdev_ioctl(struct inode *, struct file *, unsigned, unsigned long);
10506 extern int blkdev_driver_ioctl(struct inode *inode, struct file *file,
10507 struct gendisk *disk, unsigned cmd,
10508 unsigned long arg);
10509 extern long compat_blkdev_ioctl(struct file *, unsigned, unsigned long);
10510 extern int blkdev_get(struct block_device *, mode_t, unsigned);
10511 extern int blkdev_put(struct block_device *);
10512 extern int blkdev_put_partition(struct block_device *);
10513 extern int bd_claim(struct block_device *, void *);
10514 extern void bd_release(struct block_device *);
10516 extern int bd_claim_by_disk(struct block_device *, void *, struct gendisk *);
10517 extern void bd_release_from_disk(struct block_device *, struct gendisk *);
10518 # 1548 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h"
10519 extern int alloc_chrdev_region(dev_t *, unsigned, unsigned, const char *);
10520 extern int register_chrdev_region(dev_t, unsigned, const char *);
10521 extern int register_chrdev(unsigned int, const char *,
10522 const struct file_operations *);
10523 extern int unregister_chrdev(unsigned int, const char *);
10524 extern void unregister_chrdev_region(dev_t, unsigned);
10525 extern int chrdev_open(struct inode *, struct file *);
10526 extern void chrdev_show(struct seq_file *,off_t);
10533 extern const char *__bdevname(dev_t, char *buffer);
10534 extern const char *bdevname(struct block_device *bdev, char *buffer);
10535 extern struct block_device *lookup_bdev(const char *);
10536 extern struct block_device *open_bdev_excl(const char *, int, void *);
10537 extern void close_bdev_excl(struct block_device *);
10538 extern void blkdev_show(struct seq_file *,off_t);
10543 extern void init_special_inode(struct inode *, umode_t, dev_t);
10546 extern void make_bad_inode(struct inode *);
10547 extern int is_bad_inode(struct inode *);
10549 extern const struct file_operations read_fifo_fops;
10550 extern const struct file_operations write_fifo_fops;
10551 extern const struct file_operations rdwr_fifo_fops;
10553 extern int fs_may_remount_ro(struct super_block *);
10554 # 1595 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h"
10555 extern int check_disk_change(struct block_device *);
10556 extern int __invalidate_device(struct block_device *);
10557 extern int invalidate_partition(struct gendisk *, int);
10559 extern int invalidate_inodes(struct super_block *);
10560 unsigned long invalidate_mapping_pages(struct address_space *mapping,
10561 unsigned long start, unsigned long end);
10562 unsigned long invalidate_inode_pages(struct address_space *mapping);
10563 static inline __attribute__((always_inline)) void invalidate_remote_inode(struct inode *inode)
10565 if ((((inode->i_mode) & 00170000) == 0100000) || (((inode->i_mode) & 00170000) == 0040000) ||
10566 (((inode->i_mode) & 00170000) == 0120000))
10567 invalidate_inode_pages(inode->i_mapping);
10569 extern int invalidate_inode_pages2(struct address_space *mapping);
10570 extern int invalidate_inode_pages2_range(struct address_space *mapping,
10571 unsigned long start, unsigned long end);
10572 extern int write_inode_now(struct inode *, int);
10573 extern int filemap_fdatawrite(struct address_space *);
10574 extern int filemap_flush(struct address_space *);
10575 extern int filemap_fdatawait(struct address_space *);
10576 extern int filemap_write_and_wait(struct address_space *mapping);
10577 extern int filemap_write_and_wait_range(struct address_space *mapping,
10578 loff_t lstart, loff_t lend);
10579 extern int wait_on_page_writeback_range(struct address_space *mapping,
10580 unsigned long start, unsigned long end);
10581 extern int __filemap_fdatawrite_range(struct address_space *mapping,
10582 loff_t start, loff_t end, int sync_mode);
10584 extern long do_fsync(struct file *file, int datasync);
10585 extern void sync_supers(void);
10586 extern void sync_filesystems(int wait);
10587 extern void __fsync_super(struct super_block *sb);
10588 extern void emergency_sync(void);
10589 extern void emergency_remount(void);
10590 extern int do_remount_sb(struct super_block *sb, int flags,
10591 void *data, int force);
10593 extern sector_t bmap(struct inode *, sector_t);
10595 extern int notify_change(struct dentry *, struct iattr *);
10596 extern int permission(struct inode *, int, struct nameidata *);
10597 extern int generic_permission(struct inode *, int,
10598 int (*check_acl)(struct inode *, int));
10600 extern int get_write_access(struct inode *);
10601 extern int deny_write_access(struct file *);
10602 static inline __attribute__((always_inline)) void put_write_access(struct inode * inode)
10604 atomic_sub(1,(&inode->i_writecount));
10606 static inline __attribute__((always_inline)) void allow_write_access(struct file *file)
10609 atomic_add(1,(&file->f_dentry->d_inode->i_writecount));
10611 extern int do_pipe(int *);
10612 extern struct file *create_read_pipe(struct file *f);
10613 extern struct file *create_write_pipe(void);
10614 extern void free_write_pipe(struct file *);
10616 extern int open_namei(int dfd, const char *, int, int, struct nameidata *);
10617 extern int may_open(struct nameidata *, int, int);
10619 extern int kernel_read(struct file *, unsigned long, char *, unsigned long);
10620 extern struct file * open_exec(const char *);
10623 extern int is_subdir(struct dentry *, struct dentry *);
10624 extern ino_t find_inode_number(struct dentry *, struct qstr *);
10626 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/err.h" 1
10627 # 22 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/err.h"
10628 static inline __attribute__((always_inline)) void *ERR_PTR(long error)
10630 return (void *) error;
10633 static inline __attribute__((always_inline)) long PTR_ERR(const void *ptr)
10638 static inline __attribute__((always_inline)) long IS_ERR(const void *ptr)
10640 return __builtin_expect(!!(((unsigned long)ptr) >= (unsigned long)-4095), 0);
10642 # 1667 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h" 2
10645 extern loff_t default_llseek(struct file *file, loff_t offset, int origin);
10647 extern loff_t vfs_llseek(struct file *file, loff_t offset, int origin);
10649 extern void inode_init_once(struct inode *);
10650 extern void iput(struct inode *);
10651 extern struct inode * igrab(struct inode *);
10652 extern ino_t iunique(struct super_block *, ino_t);
10653 extern int inode_needs_sync(struct inode *inode);
10654 extern void generic_delete_inode(struct inode *inode);
10655 extern void generic_drop_inode(struct inode *inode);
10657 extern struct inode *ilookup5_nowait(struct super_block *sb,
10658 unsigned long hashval, int (*test)(struct inode *, void *),
10660 extern struct inode *ilookup5(struct super_block *sb, unsigned long hashval,
10661 int (*test)(struct inode *, void *), void *data);
10662 extern struct inode *ilookup(struct super_block *sb, unsigned long ino);
10664 extern struct inode * iget5_locked(struct super_block *, unsigned long, int (*test)(struct inode *, void *), int (*set)(struct inode *, void *), void *);
10665 extern struct inode * iget_locked(struct super_block *, unsigned long);
10666 extern void unlock_new_inode(struct inode *);
10668 static inline __attribute__((always_inline)) struct inode *iget(struct super_block *sb, unsigned long ino)
10670 struct inode *inode = iget_locked(sb, ino);
10672 if (inode && (inode->i_state & 64)) {
10673 sb->s_op->read_inode(inode);
10674 unlock_new_inode(inode);
10680 extern void __iget(struct inode * inode);
10681 extern void clear_inode(struct inode *);
10682 extern void destroy_inode(struct inode *);
10683 extern struct inode *new_inode(struct super_block *);
10684 extern int remove_suid(struct dentry *);
10685 extern void remove_dquot_ref(struct super_block *, int, struct list_head *);
10687 extern void __insert_inode_hash(struct inode *, unsigned long hashval);
10688 extern void remove_inode_hash(struct inode *);
10689 static inline __attribute__((always_inline)) void insert_inode_hash(struct inode *inode) {
10690 __insert_inode_hash(inode, inode->i_ino);
10693 extern struct file * get_empty_filp(void);
10694 extern void file_move(struct file *f, struct list_head *list);
10695 extern void file_kill(struct file *f);
10698 extern void submit_bio(int, struct bio *);
10699 extern int bdev_read_only(struct block_device *);
10701 extern int set_blocksize(struct block_device *, int);
10702 extern int sb_set_blocksize(struct super_block *, int);
10703 extern int sb_min_blocksize(struct super_block *, int);
10705 extern int generic_file_mmap(struct file *, struct vm_area_struct *);
10706 extern int generic_file_readonly_mmap(struct file *, struct vm_area_struct *);
10707 extern int file_read_actor(read_descriptor_t * desc, struct page *page, unsigned long offset, unsigned long size);
10708 extern int file_send_actor(read_descriptor_t * desc, struct page *page, unsigned long offset, unsigned long size);
10709 int generic_write_checks(struct file *file, loff_t *pos, size_t *count, int isblk);
10710 extern ssize_t generic_file_aio_read(struct kiocb *, const struct iovec *, unsigned long, loff_t);
10711 extern ssize_t generic_file_aio_write(struct kiocb *, const struct iovec *, unsigned long, loff_t);
10712 extern ssize_t generic_file_aio_write_nolock(struct kiocb *, const struct iovec *,
10713 unsigned long, loff_t);
10714 extern ssize_t generic_file_direct_write(struct kiocb *, const struct iovec *,
10715 unsigned long *, loff_t, loff_t *, size_t, size_t);
10716 extern ssize_t generic_file_buffered_write(struct kiocb *, const struct iovec *,
10717 unsigned long, loff_t, loff_t *, size_t, ssize_t);
10718 extern ssize_t do_sync_read(struct file *filp, char *buf, size_t len, loff_t *ppos);
10719 extern ssize_t do_sync_write(struct file *filp, const char *buf, size_t len, loff_t *ppos);
10720 extern ssize_t generic_file_sendfile(struct file *, loff_t *, size_t, read_actor_t, void *);
10721 extern void do_generic_mapping_read(struct address_space *mapping,
10722 struct file_ra_state *, struct file *,
10723 loff_t *, read_descriptor_t *, read_actor_t);
10726 extern ssize_t generic_file_splice_read(struct file *, loff_t *,
10727 struct pipe_inode_info *, size_t, unsigned int);
10728 extern ssize_t generic_file_splice_write(struct pipe_inode_info *,
10729 struct file *, loff_t *, size_t, unsigned int);
10730 extern ssize_t generic_splice_sendpage(struct pipe_inode_info *pipe,
10731 struct file *out, loff_t *, size_t len, unsigned int flags);
10732 extern long do_splice_direct(struct file *in, loff_t *ppos, struct file *out,
10733 size_t len, unsigned int flags);
10736 file_ra_state_init(struct file_ra_state *ra, struct address_space *mapping);
10737 extern loff_t no_llseek(struct file *file, loff_t offset, int origin);
10738 extern loff_t generic_file_llseek(struct file *file, loff_t offset, int origin);
10739 extern loff_t remote_llseek(struct file *file, loff_t offset, int origin);
10740 extern int generic_file_open(struct inode * inode, struct file * filp);
10741 extern int nonseekable_open(struct inode * inode, struct file * filp);
10742 # 1778 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h"
10743 static inline __attribute__((always_inline)) int xip_truncate_page(struct address_space *mapping, loff_t from)
10749 static inline __attribute__((always_inline)) void do_generic_file_read(struct file * filp, loff_t *ppos,
10750 read_descriptor_t * desc,
10751 read_actor_t actor)
10753 do_generic_mapping_read(filp->f_mapping,
10762 ssize_t __blockdev_direct_IO(int rw, struct kiocb *iocb, struct inode *inode,
10763 struct block_device *bdev, const struct iovec *iov, loff_t offset,
10764 unsigned long nr_segs, get_block_t get_block, dio_iodone_t end_io,
10773 static inline __attribute__((always_inline)) ssize_t blockdev_direct_IO(int rw, struct kiocb *iocb,
10774 struct inode *inode, struct block_device *bdev, const struct iovec *iov,
10775 loff_t offset, unsigned long nr_segs, get_block_t get_block,
10776 dio_iodone_t end_io)
10778 return __blockdev_direct_IO(rw, iocb, inode, bdev, iov, offset,
10779 nr_segs, get_block, end_io, DIO_LOCKING);
10782 static inline __attribute__((always_inline)) ssize_t blockdev_direct_IO_no_locking(int rw, struct kiocb *iocb,
10783 struct inode *inode, struct block_device *bdev, const struct iovec *iov,
10784 loff_t offset, unsigned long nr_segs, get_block_t get_block,
10785 dio_iodone_t end_io)
10787 return __blockdev_direct_IO(rw, iocb, inode, bdev, iov, offset,
10788 nr_segs, get_block, end_io, DIO_NO_LOCKING);
10791 static inline __attribute__((always_inline)) ssize_t blockdev_direct_IO_own_locking(int rw, struct kiocb *iocb,
10792 struct inode *inode, struct block_device *bdev, const struct iovec *iov,
10793 loff_t offset, unsigned long nr_segs, get_block_t get_block,
10794 dio_iodone_t end_io)
10796 return __blockdev_direct_IO(rw, iocb, inode, bdev, iov, offset,
10797 nr_segs, get_block, end_io, DIO_OWN_LOCKING);
10801 extern const struct file_operations generic_ro_fops;
10805 extern int vfs_readlink(struct dentry *, char *, int, const char *);
10806 extern int vfs_follow_link(struct nameidata *, const char *);
10807 extern int page_readlink(struct dentry *, char *, int);
10808 extern void *page_follow_link_light(struct dentry *, struct nameidata *);
10809 extern void page_put_link(struct dentry *, struct nameidata *, void *);
10810 extern int __page_symlink(struct inode *inode, const char *symname, int len,
10812 extern int page_symlink(struct inode *inode, const char *symname, int len);
10813 extern struct inode_operations page_symlink_inode_operations;
10814 extern int generic_readlink(struct dentry *, char *, int);
10815 extern void generic_fillattr(struct inode *, struct kstat *);
10816 extern int vfs_getattr(struct vfsmount *, struct dentry *, struct kstat *);
10817 void inode_add_bytes(struct inode *inode, loff_t bytes);
10818 void inode_sub_bytes(struct inode *inode, loff_t bytes);
10819 loff_t inode_get_bytes(struct inode *inode);
10820 void inode_set_bytes(struct inode *inode, loff_t bytes);
10822 extern int vfs_readdir(struct file *, filldir_t, void *);
10824 extern int vfs_stat(char *, struct kstat *);
10825 extern int vfs_lstat(char *, struct kstat *);
10826 extern int vfs_stat_fd(int dfd, char *, struct kstat *);
10827 extern int vfs_lstat_fd(int dfd, char *, struct kstat *);
10828 extern int vfs_fstat(unsigned int, struct kstat *);
10830 extern int vfs_ioctl(struct file *, unsigned int, unsigned int, unsigned long);
10832 extern struct file_system_type *get_fs_type(const char *name);
10833 extern struct super_block *get_super(struct block_device *);
10834 extern struct super_block *user_get_super(dev_t);
10835 extern void drop_super(struct super_block *sb);
10837 extern int dcache_dir_open(struct inode *, struct file *);
10838 extern int dcache_dir_close(struct inode *, struct file *);
10839 extern loff_t dcache_dir_lseek(struct file *, loff_t, int);
10840 extern int dcache_readdir(struct file *, void *, filldir_t);
10841 extern int simple_getattr(struct vfsmount *, struct dentry *, struct kstat *);
10842 extern int simple_statfs(struct dentry *, struct kstatfs *);
10843 extern int simple_link(struct dentry *, struct inode *, struct dentry *);
10844 extern int simple_unlink(struct inode *, struct dentry *);
10845 extern int simple_rmdir(struct inode *, struct dentry *);
10846 extern int simple_rename(struct inode *, struct dentry *, struct inode *, struct dentry *);
10847 extern int simple_sync_file(struct file *, struct dentry *, int);
10848 extern int simple_empty(struct dentry *);
10849 extern int simple_readpage(struct file *file, struct page *page);
10850 extern int simple_prepare_write(struct file *file, struct page *page,
10851 unsigned offset, unsigned to);
10852 extern int simple_commit_write(struct file *file, struct page *page,
10853 unsigned offset, unsigned to);
10855 extern struct dentry *simple_lookup(struct inode *, struct dentry *, struct nameidata *);
10856 extern ssize_t generic_read_dir(struct file *, char *, size_t, loff_t *);
10857 extern const struct file_operations simple_dir_operations;
10858 extern struct inode_operations simple_dir_inode_operations;
10859 struct tree_descr { char *name; const struct file_operations *ops; int mode; };
10860 struct dentry *d_alloc_name(struct dentry *, const char *);
10861 extern int simple_fill_super(struct super_block *, int, struct tree_descr *);
10862 extern int simple_pin_fs(struct file_system_type *, struct vfsmount **mount, int *count);
10863 extern void simple_release_fs(struct vfsmount **mount, int *count);
10865 extern ssize_t simple_read_from_buffer(void *, size_t, loff_t *, const void *, size_t);
10866 # 1909 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h"
10867 extern int inode_change_ok(struct inode *, struct iattr *);
10868 extern int __attribute__((warn_unused_result)) inode_setattr(struct inode *, struct iattr *);
10870 extern void file_update_time(struct file *file);
10872 static inline __attribute__((always_inline)) ino_t parent_ino(struct dentry *dentry)
10876 do { do { } while (0); (void)0; (void)(&dentry->d_lock); } while (0);
10877 res = dentry->d_parent->d_inode->i_ino;
10878 do { do { } while (0); (void)0; (void)(&dentry->d_lock); } while (0);
10883 extern int unshare_files(void);
10891 struct simple_transaction_argresp {
10898 char *simple_transaction_get(struct file *file, const char *buf,
10900 ssize_t simple_transaction_read(struct file *file, char *buf,
10901 size_t size, loff_t *pos);
10902 int simple_transaction_release(struct inode *inode, struct file *file);
10904 static inline __attribute__((always_inline)) void simple_transaction_set(struct file *file, size_t n)
10906 struct simple_transaction_argresp *ar = file->private_data;
10908 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);
10914 __asm__ __volatile__("": : :"memory");
10917 # 1990 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h"
10918 static inline __attribute__((always_inline)) void __attribute__((format(printf, 1, 2)))
10919 __simple_attr_check_format(const char *fmt, ...)
10924 int simple_attr_open(struct inode *inode, struct file *file,
10925 u64 (*get)(void *), void (*set)(void *, u64),
10927 int simple_attr_close(struct inode *inode, struct file *file);
10928 ssize_t simple_attr_read(struct file *file, char *buf,
10929 size_t len, loff_t *ppos);
10930 ssize_t simple_attr_write(struct file *file, const char *buf,
10931 size_t len, loff_t *ppos);
10932 # 2017 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/fs.h"
10933 static inline __attribute__((always_inline)) char *alloc_secdata(void)
10938 static inline __attribute__((always_inline)) void free_secdata(void *secdata)
10940 # 26 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c" 2
10942 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hdreg.h" 1
10947 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ata.h" 1
10948 # 38 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ata.h"
10951 ATA_MAX_DEVICES = 2,
10953 ATA_SECT_SIZE = 512,
10954 ATA_MAX_SECTORS = 256,
10955 ATA_MAX_SECTORS_LBA48 = 65535,
10957 ATA_ID_WORDS = 256,
10958 ATA_ID_SERNO_OFS = 10,
10959 ATA_ID_FW_REV_OFS = 23,
10960 ATA_ID_PROD_OFS = 27,
10961 ATA_ID_OLD_PIO_MODES = 51,
10962 ATA_ID_FIELD_VALID = 53,
10963 ATA_ID_MWDMA_MODES = 63,
10964 ATA_ID_PIO_MODES = 64,
10965 ATA_ID_EIDE_DMA_MIN = 65,
10966 ATA_ID_EIDE_PIO = 67,
10967 ATA_ID_EIDE_PIO_IORDY = 68,
10968 ATA_ID_UDMA_MODES = 88,
10969 ATA_ID_MAJOR_VER = 80,
10970 ATA_ID_PIO4 = (1 << 1),
10972 ATA_PCI_CTL_OFS = 2,
10973 ATA_SERNO_LEN = 20,
10974 ATA_UDMA0 = (1 << 0),
10975 ATA_UDMA1 = ATA_UDMA0 | (1 << 1),
10976 ATA_UDMA2 = ATA_UDMA1 | (1 << 2),
10977 ATA_UDMA3 = ATA_UDMA2 | (1 << 3),
10978 ATA_UDMA4 = ATA_UDMA3 | (1 << 4),
10979 ATA_UDMA5 = ATA_UDMA4 | (1 << 5),
10980 ATA_UDMA6 = ATA_UDMA5 | (1 << 6),
10981 ATA_UDMA7 = ATA_UDMA6 | (1 << 7),
10984 ATA_UDMA_MASK_40C = ATA_UDMA2,
10988 ATA_PRD_TBL_SZ = (ATA_MAX_PRD * ATA_PRD_SZ),
10989 ATA_PRD_EOT = (1 << 31),
10991 ATA_DMA_TABLE_OFS = 4,
10992 ATA_DMA_STATUS = 2,
10994 ATA_DMA_WR = (1 << 3),
10995 ATA_DMA_START = (1 << 0),
10996 ATA_DMA_INTR = (1 << 2),
10997 ATA_DMA_ERR = (1 << 1),
10998 ATA_DMA_ACTIVE = (1 << 0),
11001 ATA_HOB = (1 << 7),
11002 ATA_NIEN = (1 << 1),
11003 ATA_LBA = (1 << 6),
11004 ATA_DEV1 = (1 << 4),
11005 ATA_DEVICE_OBS = (1 << 7) | (1 << 5),
11006 ATA_DEVCTL_OBS = (1 << 3),
11007 ATA_BUSY = (1 << 7),
11008 ATA_DRDY = (1 << 6),
11010 ATA_DRQ = (1 << 3),
11011 ATA_ERR = (1 << 0),
11012 ATA_SRST = (1 << 2),
11013 ATA_ICRC = (1 << 7),
11014 ATA_UNC = (1 << 6),
11015 ATA_IDNF = (1 << 4),
11016 ATA_ABORTED = (1 << 2),
11019 ATA_REG_DATA = 0x00,
11020 ATA_REG_ERR = 0x01,
11021 ATA_REG_NSECT = 0x02,
11022 ATA_REG_LBAL = 0x03,
11023 ATA_REG_LBAM = 0x04,
11024 ATA_REG_LBAH = 0x05,
11025 ATA_REG_DEVICE = 0x06,
11026 ATA_REG_STATUS = 0x07,
11028 ATA_REG_FEATURE = ATA_REG_ERR,
11029 ATA_REG_CMD = ATA_REG_STATUS,
11030 ATA_REG_BYTEL = ATA_REG_LBAM,
11031 ATA_REG_BYTEH = ATA_REG_LBAH,
11032 ATA_REG_DEVSEL = ATA_REG_DEVICE,
11033 ATA_REG_IRQ = ATA_REG_NSECT,
11036 ATA_CMD_CHK_POWER = 0xE5,
11037 ATA_CMD_STANDBY = 0xE2,
11038 ATA_CMD_IDLE = 0xE3,
11039 ATA_CMD_EDD = 0x90,
11040 ATA_CMD_FLUSH = 0xE7,
11041 ATA_CMD_FLUSH_EXT = 0xEA,
11042 ATA_CMD_ID_ATA = 0xEC,
11043 ATA_CMD_ID_ATAPI = 0xA1,
11044 ATA_CMD_READ = 0xC8,
11045 ATA_CMD_READ_EXT = 0x25,
11046 ATA_CMD_WRITE = 0xCA,
11047 ATA_CMD_WRITE_EXT = 0x35,
11048 ATA_CMD_WRITE_FUA_EXT = 0x3D,
11049 ATA_CMD_FPDMA_READ = 0x60,
11050 ATA_CMD_FPDMA_WRITE = 0x61,
11051 ATA_CMD_PIO_READ = 0x20,
11052 ATA_CMD_PIO_READ_EXT = 0x24,
11053 ATA_CMD_PIO_WRITE = 0x30,
11054 ATA_CMD_PIO_WRITE_EXT = 0x34,
11055 ATA_CMD_READ_MULTI = 0xC4,
11056 ATA_CMD_READ_MULTI_EXT = 0x29,
11057 ATA_CMD_WRITE_MULTI = 0xC5,
11058 ATA_CMD_WRITE_MULTI_EXT = 0x39,
11059 ATA_CMD_WRITE_MULTI_FUA_EXT = 0xCE,
11060 ATA_CMD_SET_FEATURES = 0xEF,
11061 ATA_CMD_PACKET = 0xA0,
11062 ATA_CMD_VERIFY = 0x40,
11063 ATA_CMD_VERIFY_EXT = 0x42,
11064 ATA_CMD_STANDBYNOW1 = 0xE0,
11065 ATA_CMD_IDLEIMMEDIATE = 0xE1,
11066 ATA_CMD_INIT_DEV_PARAMS = 0x91,
11067 ATA_CMD_READ_NATIVE_MAX = 0xF8,
11068 ATA_CMD_READ_NATIVE_MAX_EXT = 0x27,
11069 ATA_CMD_READ_LOG_EXT = 0x2f,
11072 ATA_LOG_SATA_NCQ = 0x10,
11075 SETFEATURES_XFER = 0x03,
11076 XFER_UDMA_7 = 0x47,
11077 XFER_UDMA_6 = 0x46,
11078 XFER_UDMA_5 = 0x45,
11079 XFER_UDMA_4 = 0x44,
11080 XFER_UDMA_3 = 0x43,
11081 XFER_UDMA_2 = 0x42,
11082 XFER_UDMA_1 = 0x41,
11083 XFER_UDMA_0 = 0x40,
11084 XFER_MW_DMA_4 = 0x24,
11085 XFER_MW_DMA_3 = 0x23,
11086 XFER_MW_DMA_2 = 0x22,
11087 XFER_MW_DMA_1 = 0x21,
11088 XFER_MW_DMA_0 = 0x20,
11089 XFER_SW_DMA_2 = 0x12,
11090 XFER_SW_DMA_1 = 0x11,
11091 XFER_SW_DMA_0 = 0x10,
11099 XFER_PIO_SLOW = 0x00,
11101 SETFEATURES_WC_ON = 0x02,
11102 SETFEATURES_WC_OFF = 0x82,
11105 ATAPI_PKT_DMA = (1 << 0),
11106 ATAPI_DMADIR = (1 << 2),
11108 ATAPI_CDB_LEN = 16,
11112 ATA_CBL_PATA40 = 1,
11113 ATA_CBL_PATA80 = 2,
11114 ATA_CBL_PATA_UNK = 3,
11122 SCR_NOTIFICATION = 4,
11125 SERR_DATA_RECOVERED = (1 << 0),
11126 SERR_COMM_RECOVERED = (1 << 1),
11127 SERR_DATA = (1 << 8),
11128 SERR_PERSISTENT = (1 << 9),
11129 SERR_PROTOCOL = (1 << 10),
11130 SERR_INTERNAL = (1 << 11),
11131 SERR_PHYRDY_CHG = (1 << 16),
11132 SERR_DEV_XCHG = (1 << 26),
11135 ATA_TFLAG_LBA48 = (1 << 0),
11136 ATA_TFLAG_ISADDR = (1 << 1),
11137 ATA_TFLAG_DEVICE = (1 << 2),
11138 ATA_TFLAG_WRITE = (1 << 3),
11139 ATA_TFLAG_LBA = (1 << 4),
11140 ATA_TFLAG_FUA = (1 << 5),
11141 ATA_TFLAG_POLLING = (1 << 6),
11144 enum ata_tf_protocols {
11152 ATA_PROT_ATAPI_NODATA,
11153 ATA_PROT_ATAPI_DMA,
11157 ATA_IOC_GET_IO32 = 0x309,
11158 ATA_IOC_SET_IO32 = 0x324,
11168 struct ata_taskfile {
11169 unsigned long flags;
11190 # 308 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ata.h"
11191 static inline __attribute__((always_inline)) unsigned int ata_id_major_version(const u16 *id)
11195 if (id[ATA_ID_MAJOR_VER] == 0xFFFF)
11198 for (mver = 14; mver >= 1; mver--)
11199 if (id[ATA_ID_MAJOR_VER] & (1 << mver))
11204 static inline __attribute__((always_inline)) int ata_id_current_chs_valid(const u16 *id)
11209 return (id[53] & 0x01) &&
11216 static inline __attribute__((always_inline)) int ata_id_is_cfa(const u16 *id)
11222 if (ata_id_major_version(id) >= 3 && id[82] != 0xFFFF &&
11223 (id[82] & ( 1 << 2)))
11228 static inline __attribute__((always_inline)) int atapi_cdb_len(const u16 *dev_id)
11230 u16 tmp = dev_id[0] & 0x3;
11234 default: return -1;
11238 static inline __attribute__((always_inline)) int is_atapi_taskfile(const struct ata_taskfile *tf)
11240 return (tf->protocol == ATA_PROT_ATAPI) ||
11241 (tf->protocol == ATA_PROT_ATAPI_NODATA) ||
11242 (tf->protocol == ATA_PROT_ATAPI_DMA);
11245 static inline __attribute__((always_inline)) int is_multi_taskfile(struct ata_taskfile *tf)
11247 return (tf->command == ATA_CMD_READ_MULTI) ||
11248 (tf->command == ATA_CMD_WRITE_MULTI) ||
11249 (tf->command == ATA_CMD_READ_MULTI_EXT) ||
11250 (tf->command == ATA_CMD_WRITE_MULTI_EXT) ||
11251 (tf->command == ATA_CMD_WRITE_MULTI_FUA_EXT);
11254 static inline __attribute__((always_inline)) int ata_ok(u8 status)
11256 return ((status & (ATA_BUSY | ATA_DRDY | ATA_DF | ATA_DRQ | ATA_ERR))
11260 static inline __attribute__((always_inline)) int lba_28_ok(u64 block, u32 n_block)
11263 return ((block + n_block - 1) < ((u64)1 << 28)) && (n_block <= 256);
11266 static inline __attribute__((always_inline)) int lba_48_ok(u64 block, u32 n_block)
11269 return ((block + n_block - 1) < ((u64)1 << 48)) && (n_block <= 65536);
11271 # 6 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hdreg.h" 2
11272 # 90 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hdreg.h"
11273 typedef unsigned char task_ioreg_t;
11274 typedef unsigned long sata_ioreg_t;
11276 typedef union ide_reg_valid_s {
11280 unsigned error_feature : 1;
11281 unsigned sector : 1;
11282 unsigned nsector : 1;
11285 unsigned select : 1;
11286 unsigned status_command : 1;
11288 unsigned data_hob : 1;
11289 unsigned error_feature_hob : 1;
11290 unsigned sector_hob : 1;
11291 unsigned nsector_hob : 1;
11292 unsigned lcyl_hob : 1;
11293 unsigned hcyl_hob : 1;
11294 unsigned select_hob : 1;
11295 unsigned control_hob : 1;
11299 typedef struct ide_task_request_s {
11300 task_ioreg_t io_ports[8];
11301 task_ioreg_t hob_ports[8];
11302 ide_reg_valid_t out_flags;
11303 ide_reg_valid_t in_flags;
11306 unsigned long out_size;
11307 unsigned long in_size;
11308 } ide_task_request_t;
11310 typedef struct ide_ioctl_request_s {
11311 ide_task_request_t *task_request;
11312 unsigned char *out_buffer;
11313 unsigned char *in_buffer;
11314 } ide_ioctl_request_t;
11316 struct hd_drive_cmd_hdr {
11317 task_ioreg_t command;
11318 task_ioreg_t sector_number;
11319 task_ioreg_t feature;
11320 task_ioreg_t sector_count;
11323 typedef struct hd_drive_task_hdr {
11325 task_ioreg_t feature;
11326 task_ioreg_t sector_count;
11327 task_ioreg_t sector_number;
11328 task_ioreg_t low_cylinder;
11329 task_ioreg_t high_cylinder;
11330 task_ioreg_t device_head;
11331 task_ioreg_t command;
11334 typedef struct hd_drive_hob_hdr {
11336 task_ioreg_t feature;
11337 task_ioreg_t sector_count;
11338 task_ioreg_t sector_number;
11339 task_ioreg_t low_cylinder;
11340 task_ioreg_t high_cylinder;
11341 task_ioreg_t device_head;
11342 task_ioreg_t control;
11344 # 375 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hdreg.h"
11345 struct hd_geometry {
11346 unsigned char heads;
11347 unsigned char sectors;
11348 unsigned short cylinders;
11349 unsigned long start;
11351 # 427 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hdreg.h"
11357 # 447 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hdreg.h"
11358 struct hd_driveid {
11359 unsigned short config;
11360 unsigned short cyls;
11361 unsigned short reserved2;
11362 unsigned short heads;
11363 unsigned short track_bytes;
11364 unsigned short sector_bytes;
11365 unsigned short sectors;
11366 unsigned short vendor0;
11367 unsigned short vendor1;
11368 unsigned short vendor2;
11369 unsigned char serial_no[20];
11370 unsigned short buf_type;
11371 unsigned short buf_size;
11374 unsigned short ecc_bytes;
11375 unsigned char fw_rev[8];
11376 unsigned char model[40];
11377 unsigned char max_multsect;
11378 unsigned char vendor3;
11379 unsigned short dword_io;
11380 unsigned char vendor4;
11381 unsigned char capability;
11387 unsigned short reserved50;
11388 unsigned char vendor5;
11389 unsigned char tPIO;
11390 unsigned char vendor6;
11391 unsigned char tDMA;
11392 unsigned short field_valid;
11397 unsigned short cur_cyls;
11398 unsigned short cur_heads;
11399 unsigned short cur_sectors;
11400 unsigned short cur_capacity0;
11401 unsigned short cur_capacity1;
11402 unsigned char multsect;
11403 unsigned char multsect_valid;
11404 unsigned int lba_capacity;
11405 unsigned short dma_1word;
11406 unsigned short dma_mword;
11407 unsigned short eide_pio_modes;
11408 unsigned short eide_dma_min;
11409 unsigned short eide_dma_time;
11410 unsigned short eide_pio;
11411 unsigned short eide_pio_iordy;
11412 unsigned short words69_70[2];
11416 unsigned short words71_74[4];
11419 unsigned short queue_depth;
11423 unsigned short words76_79[4];
11424 unsigned short major_rev_num;
11425 unsigned short minor_rev_num;
11426 unsigned short command_set_1;
11427 # 533 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hdreg.h"
11428 unsigned short command_set_2;
11429 # 551 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hdreg.h"
11430 unsigned short cfsse;
11431 # 563 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hdreg.h"
11432 unsigned short cfs_enable_1;
11433 # 582 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hdreg.h"
11434 unsigned short cfs_enable_2;
11435 # 601 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hdreg.h"
11436 unsigned short csf_default;
11437 # 613 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hdreg.h"
11438 unsigned short dma_ultra;
11439 unsigned short trseuc;
11440 unsigned short trsEuc;
11441 unsigned short CurAPMvalues;
11442 unsigned short mprc;
11443 unsigned short hw_config;
11444 # 636 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hdreg.h"
11445 unsigned short acoustic;
11449 unsigned short msrqs;
11450 unsigned short sxfert;
11451 unsigned short sal;
11453 unsigned long long lba_capacity_2;
11454 unsigned short words104_125[22];
11455 unsigned short last_lun;
11456 unsigned short word127;
11464 unsigned short dlf;
11465 # 667 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/hdreg.h"
11466 unsigned short csfo;
11474 unsigned short words130_155[26];
11475 unsigned short word156;
11476 unsigned short words157_159[3];
11477 unsigned short cfa_power;
11484 unsigned short words161_175[15];
11485 unsigned short words176_205[30];
11486 unsigned short words206_254[49];
11487 unsigned short integrity_word;
11492 # 28 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c" 2
11494 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h" 1
11499 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/major.h" 1
11500 # 6 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h" 2
11501 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/genhd.h" 1
11502 # 16 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/genhd.h"
11506 DOS_EXTENDED_PARTITION = 5,
11507 LINUX_EXTENDED_PARTITION = 0x85,
11508 WIN98_EXTENDED_PARTITION = 0x0f,
11510 LINUX_SWAP_PARTITION = 0x82,
11511 LINUX_RAID_PARTITION = 0xfd,
11513 SOLARIS_X86_PARTITION = LINUX_SWAP_PARTITION,
11514 NEW_SOLARIS_X86_PARTITION = 0xbf,
11516 DM6_AUX1PARTITION = 0x51,
11517 DM6_AUX3PARTITION = 0x53,
11518 DM6_PARTITION = 0x54,
11519 EZD_PARTITION = 0x55,
11521 FREEBSD_PARTITION = 0xa5,
11522 OPENBSD_PARTITION = 0xa6,
11523 NETBSD_PARTITION = 0xa9,
11524 BSDI_PARTITION = 0xb7,
11525 MINIX_PARTITION = 0x81,
11526 UNIXWARE_PARTITION = 0x63,
11528 # 61 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/genhd.h"
11529 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/device.h" 1
11530 # 14 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/device.h"
11531 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ioport.h" 1
11532 # 17 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ioport.h"
11534 resource_size_t start;
11535 resource_size_t end;
11537 unsigned long flags;
11538 struct resource *parent, *sibling, *child;
11541 struct resource_list {
11542 struct resource_list *next;
11543 struct resource *res;
11544 struct pci_dev *dev;
11546 # 94 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ioport.h"
11547 extern struct resource ioport_resource;
11548 extern struct resource iomem_resource;
11550 extern int request_resource(struct resource *root, struct resource *new);
11551 extern struct resource * ____request_resource(struct resource *root, struct resource *new);
11552 extern int release_resource(struct resource *new);
11553 extern int insert_resource(struct resource *parent, struct resource *new);
11554 extern int allocate_resource(struct resource *root, struct resource *new,
11555 resource_size_t size, resource_size_t min,
11556 resource_size_t max, resource_size_t align,
11557 void (*alignf)(void *, struct resource *,
11558 resource_size_t, resource_size_t),
11559 void *alignf_data);
11560 int adjust_resource(struct resource *res, resource_size_t start,
11561 resource_size_t size);
11564 extern int find_next_system_ram(struct resource *res);
11571 extern struct resource * __request_region(struct resource *,
11572 resource_size_t start,
11573 resource_size_t n, const char *name);
11580 extern int __check_region(struct resource *, resource_size_t, resource_size_t);
11581 extern void __release_region(struct resource *, resource_size_t,
11584 static inline __attribute__((always_inline)) int __attribute__((deprecated)) check_region(resource_size_t s,
11587 return __check_region(&ioport_resource, s, n);
11589 # 15 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/device.h" 2
11591 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/klist.h" 1
11592 # 20 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/klist.h"
11596 struct list_head k_list;
11597 void (*get)(struct klist_node *);
11598 void (*put)(struct klist_node *);
11602 extern void klist_init(struct klist * k, void (*get)(struct klist_node *),
11603 void (*put)(struct klist_node *));
11605 struct klist_node {
11606 struct klist * n_klist;
11607 struct list_head n_node;
11609 struct completion n_removed;
11612 extern void klist_add_tail(struct klist_node * n, struct klist * k);
11613 extern void klist_add_head(struct klist_node * n, struct klist * k);
11615 extern void klist_del(struct klist_node * n);
11616 extern void klist_remove(struct klist_node * n);
11618 extern int klist_node_attached(struct klist_node * n);
11621 struct klist_iter {
11622 struct klist * i_klist;
11623 struct list_head * i_head;
11624 struct klist_node * i_cur;
11628 extern void klist_iter_init(struct klist * k, struct klist_iter * i);
11629 extern void klist_iter_init_node(struct klist * k, struct klist_iter * i,
11630 struct klist_node * n);
11631 extern void klist_iter_exit(struct klist_iter * i);
11632 extern struct klist_node * klist_next(struct klist_iter * i);
11633 # 17 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/device.h" 2
11634 # 31 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/device.h"
11636 struct device_driver;
11638 struct class_device;
11643 struct subsystem subsys;
11644 struct kset drivers;
11645 struct kset devices;
11646 struct klist klist_devices;
11647 struct klist klist_drivers;
11649 struct bus_attribute * bus_attrs;
11650 struct device_attribute * dev_attrs;
11651 struct driver_attribute * drv_attrs;
11653 int (*match)(struct device * dev, struct device_driver * drv);
11654 int (*uevent)(struct device *dev, char **envp,
11655 int num_envp, char *buffer, int buffer_size);
11656 int (*probe)(struct device * dev);
11657 int (*remove)(struct device * dev);
11658 void (*shutdown)(struct device * dev);
11660 int (*suspend)(struct device * dev, pm_message_t state);
11661 int (*suspend_late)(struct device * dev, pm_message_t state);
11662 int (*resume_early)(struct device * dev);
11663 int (*resume)(struct device * dev);
11666 extern int __attribute__((warn_unused_result)) bus_register(struct bus_type * bus);
11667 extern void bus_unregister(struct bus_type * bus);
11669 extern int __attribute__((warn_unused_result)) bus_rescan_devices(struct bus_type * bus);
11673 int bus_for_each_dev(struct bus_type * bus, struct device * start, void * data,
11674 int (*fn)(struct device *, void *));
11675 struct device * bus_find_device(struct bus_type *bus, struct device *start,
11676 void *data, int (*match)(struct device *, void *));
11678 int __attribute__((warn_unused_result)) bus_for_each_drv(struct bus_type *bus,
11679 struct device_driver *start, void *data,
11680 int (*fn)(struct device_driver *, void *));
11684 struct bus_attribute {
11685 struct attribute attr;
11686 ssize_t (*show)(struct bus_type *, char * buf);
11687 ssize_t (*store)(struct bus_type *, const char * buf, size_t count);
11693 extern int __attribute__((warn_unused_result)) bus_create_file(struct bus_type *,
11694 struct bus_attribute *);
11695 extern void bus_remove_file(struct bus_type *, struct bus_attribute *);
11697 struct device_driver {
11699 struct bus_type * bus;
11701 struct completion unloaded;
11702 struct kobject kobj;
11703 struct klist klist_devices;
11704 struct klist_node knode_bus;
11706 struct module * owner;
11708 int (*probe) (struct device * dev);
11709 int (*remove) (struct device * dev);
11710 void (*shutdown) (struct device * dev);
11711 int (*suspend) (struct device * dev, pm_message_t state);
11712 int (*resume) (struct device * dev);
11714 unsigned int multithread_probe:1;
11718 extern int __attribute__((warn_unused_result)) driver_register(struct device_driver * drv);
11719 extern void driver_unregister(struct device_driver * drv);
11721 extern struct device_driver * get_driver(struct device_driver * drv);
11722 extern void put_driver(struct device_driver * drv);
11723 extern struct device_driver *driver_find(const char *name, struct bus_type *bus);
11724 extern int driver_probe_done(void);
11728 struct driver_attribute {
11729 struct attribute attr;
11730 ssize_t (*show)(struct device_driver *, char * buf);
11731 ssize_t (*store)(struct device_driver *, const char * buf, size_t count);
11737 extern int __attribute__((warn_unused_result)) driver_create_file(struct device_driver *,
11738 struct driver_attribute *);
11739 extern void driver_remove_file(struct device_driver *, struct driver_attribute *);
11741 extern int __attribute__((warn_unused_result)) driver_for_each_device(struct device_driver * drv,
11742 struct device *start, void *data,
11743 int (*fn)(struct device *, void *));
11744 struct device * driver_find_device(struct device_driver *drv,
11745 struct device *start, void *data,
11746 int (*match)(struct device *, void *));
11753 struct module * owner;
11755 struct subsystem subsys;
11756 struct list_head children;
11757 struct list_head devices;
11758 struct list_head interfaces;
11759 struct semaphore sem;
11761 struct kobject *virtual_dir;
11763 struct class_attribute * class_attrs;
11764 struct class_device_attribute * class_dev_attrs;
11765 struct device_attribute * dev_attrs;
11767 int (*uevent)(struct class_device *dev, char **envp,
11768 int num_envp, char *buffer, int buffer_size);
11769 int (*dev_uevent)(struct device *dev, char **envp, int num_envp,
11770 char *buffer, int buffer_size);
11772 void (*release)(struct class_device *dev);
11773 void (*class_release)(struct class *class);
11774 void (*dev_release)(struct device *dev);
11776 int (*suspend)(struct device *, pm_message_t state);
11777 int (*resume)(struct device *);
11780 extern int __attribute__((warn_unused_result)) class_register(struct class *);
11781 extern void class_unregister(struct class *);
11784 struct class_attribute {
11785 struct attribute attr;
11786 ssize_t (*show)(struct class *, char * buf);
11787 ssize_t (*store)(struct class *, const char * buf, size_t count);
11793 extern int __attribute__((warn_unused_result)) class_create_file(struct class *,
11794 const struct class_attribute *);
11795 extern void class_remove_file(struct class *, const struct class_attribute *);
11797 struct class_device_attribute {
11798 struct attribute attr;
11799 ssize_t (*show)(struct class_device *, char * buf);
11800 ssize_t (*store)(struct class_device *, const char * buf, size_t count);
11807 extern int __attribute__((warn_unused_result)) class_device_create_file(struct class_device *,
11808 const struct class_device_attribute *);
11809 # 231 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/device.h"
11810 struct class_device {
11811 struct list_head node;
11813 struct kobject kobj;
11814 struct class * class;
11816 struct class_device_attribute *devt_attr;
11817 struct class_device_attribute uevent_attr;
11818 struct device * dev;
11820 struct class_device *parent;
11821 struct attribute_group ** groups;
11823 void (*release)(struct class_device *dev);
11824 int (*uevent)(struct class_device *dev, char **envp,
11825 int num_envp, char *buffer, int buffer_size);
11829 static inline __attribute__((always_inline)) void *
11830 class_get_devdata (struct class_device *dev)
11832 return dev->class_data;
11835 static inline __attribute__((always_inline)) void
11836 class_set_devdata (struct class_device *dev, void *data)
11838 dev->class_data = data;
11842 extern int __attribute__((warn_unused_result)) class_device_register(struct class_device *);
11843 extern void class_device_unregister(struct class_device *);
11844 extern void class_device_initialize(struct class_device *);
11845 extern int __attribute__((warn_unused_result)) class_device_add(struct class_device *);
11846 extern void class_device_del(struct class_device *);
11848 extern int class_device_rename(struct class_device *, char *);
11850 extern struct class_device * class_device_get(struct class_device *);
11851 extern void class_device_put(struct class_device *);
11853 extern void class_device_remove_file(struct class_device *,
11854 const struct class_device_attribute *);
11855 extern int __attribute__((warn_unused_result)) class_device_create_bin_file(struct class_device *,
11856 struct bin_attribute *);
11857 extern void class_device_remove_bin_file(struct class_device *,
11858 struct bin_attribute *);
11860 struct class_interface {
11861 struct list_head node;
11862 struct class *class;
11864 int (*add) (struct class_device *, struct class_interface *);
11865 void (*remove) (struct class_device *, struct class_interface *);
11866 int (*add_dev) (struct device *, struct class_interface *);
11867 void (*remove_dev) (struct device *, struct class_interface *);
11870 extern int __attribute__((warn_unused_result)) class_interface_register(struct class_interface *);
11871 extern void class_interface_unregister(struct class_interface *);
11873 extern struct class *class_create(struct module *owner, const char *name);
11874 extern void class_destroy(struct class *cls);
11875 extern struct class_device *class_device_create(struct class *cls,
11876 struct class_device *parent,
11878 struct device *device,
11879 const char *fmt, ...)
11880 __attribute__((format(printf,5,6)));
11881 extern void class_device_destroy(struct class *cls, dev_t devt);
11884 struct device_attribute {
11885 struct attribute attr;
11886 ssize_t (*show)(struct device *dev, struct device_attribute *attr,
11888 ssize_t (*store)(struct device *dev, struct device_attribute *attr,
11889 const char *buf, size_t count);
11895 extern int __attribute__((warn_unused_result)) device_create_file(struct device *device,
11896 struct device_attribute * entry);
11897 extern void device_remove_file(struct device * dev, struct device_attribute * attr);
11898 extern int __attribute__((warn_unused_result)) device_create_bin_file(struct device *dev,
11899 struct bin_attribute *attr);
11900 extern void device_remove_bin_file(struct device *dev,
11901 struct bin_attribute *attr);
11903 struct klist klist_children;
11904 struct klist_node knode_parent;
11905 struct klist_node knode_driver;
11906 struct klist_node knode_bus;
11907 struct device * parent;
11909 struct kobject kobj;
11911 unsigned is_registered:1;
11912 struct device_attribute uevent_attr;
11913 struct device_attribute *devt_attr;
11915 struct semaphore sem;
11919 struct bus_type * bus;
11920 struct device_driver *driver;
11923 void *platform_data;
11925 void *firmware_data;
11927 struct dev_pm_info power;
11930 u64 coherent_dma_mask;
11936 struct list_head dma_pools;
11938 struct dma_coherent_mem *dma_mem;
11942 struct list_head node;
11943 struct class *class;
11945 struct attribute_group **groups;
11947 void (*release)(struct device * dev);
11950 static inline __attribute__((always_inline)) void *
11951 dev_get_drvdata (struct device *dev)
11953 return dev->driver_data;
11956 static inline __attribute__((always_inline)) void
11957 dev_set_drvdata (struct device *dev, void *data)
11959 dev->driver_data = data;
11962 static inline __attribute__((always_inline)) int device_is_registered(struct device *dev)
11964 return dev->is_registered;
11970 extern int __attribute__((warn_unused_result)) device_register(struct device * dev);
11971 extern void device_unregister(struct device * dev);
11972 extern void device_initialize(struct device * dev);
11973 extern int __attribute__((warn_unused_result)) device_add(struct device * dev);
11974 extern void device_del(struct device * dev);
11975 extern int __attribute__((warn_unused_result)) device_for_each_child(struct device *, void *,
11976 int (*fn)(struct device *, void *));
11977 extern int device_rename(struct device *dev, char *new_name);
11983 extern int __attribute__((warn_unused_result)) device_bind_driver(struct device *dev);
11984 extern void device_release_driver(struct device * dev);
11985 extern int __attribute__((warn_unused_result)) device_attach(struct device * dev);
11986 extern int __attribute__((warn_unused_result)) driver_attach(struct device_driver *drv);
11987 extern int __attribute__((warn_unused_result)) device_reprobe(struct device *dev);
11992 extern struct device *device_create(struct class *cls, struct device *parent,
11993 dev_t devt, const char *fmt, ...)
11994 __attribute__((format(printf,4,5)));
11995 extern void device_destroy(struct class *cls, dev_t devt);
11997 extern int virtual_device_parent(struct device *dev);
12005 extern int (*platform_notify)(struct device * dev);
12007 extern int (*platform_notify_remove)(struct device * dev);
12014 extern struct device * get_device(struct device * dev);
12015 extern void put_device(struct device * dev);
12019 extern void device_shutdown(void);
12023 extern int __attribute__((warn_unused_result)) firmware_register(struct subsystem *);
12024 extern void firmware_unregister(struct subsystem *);
12027 extern const char *dev_driver_string(struct device *dev);
12028 # 62 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/genhd.h" 2
12034 unsigned char boot_ind;
12035 unsigned char head;
12036 unsigned char sector;
12038 unsigned char sys_ind;
12039 unsigned char end_head;
12040 unsigned char end_sector;
12041 unsigned char end_cyl;
12044 } __attribute__((packed));
12047 sector_t start_sect;
12049 struct kobject kobj;
12050 struct kobject *holder_dir;
12051 unsigned ios[2], sectors[2];
12052 int policy, partno;
12061 struct disk_stats {
12062 unsigned long sectors[2];
12063 unsigned long ios[2];
12064 unsigned long merges[2];
12065 unsigned long ticks[2];
12066 unsigned long io_ticks;
12067 unsigned long time_in_queue;
12075 char disk_name[32];
12076 struct hd_struct **part;
12077 int part_uevent_suppress;
12078 struct block_device_operations *fops;
12079 struct request_queue *queue;
12080 void *private_data;
12084 struct device *driverfs_dev;
12085 struct kobject kobj;
12086 struct kobject *holder_dir;
12087 struct kobject *slave_dir;
12089 struct timer_rand_state *random;
12093 unsigned long stamp;
12098 struct disk_stats dkstats;
12103 struct disk_attribute {
12104 struct attribute attr;
12105 ssize_t (*show)(struct gendisk *, char *);
12106 ssize_t (*store)(struct gendisk *, const char *, size_t);
12108 # 173 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/genhd.h"
12109 static inline __attribute__((always_inline)) void disk_stat_set_all(struct gendisk *gendiskp, int value) {
12110 memset(&gendiskp->dkstats, value, sizeof (struct disk_stats));
12112 # 212 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/genhd.h"
12113 static inline __attribute__((always_inline)) int init_disk_stats(struct gendisk *disk)
12118 static inline __attribute__((always_inline)) void free_disk_stats(struct gendisk *disk)
12124 extern void disk_round_stats(struct gendisk *disk);
12127 extern int get_blkdev_list(char *, int);
12128 extern void add_disk(struct gendisk *disk);
12129 extern void del_gendisk(struct gendisk *gp);
12130 extern void unlink_gendisk(struct gendisk *gp);
12131 extern struct gendisk *get_gendisk(dev_t dev, int *part);
12133 extern void set_device_ro(struct block_device *bdev, int flag);
12134 extern void set_disk_ro(struct gendisk *disk, int flag);
12137 extern void add_disk_randomness(struct gendisk *disk);
12138 extern void rand_initialize_disk(struct gendisk *disk);
12140 static inline __attribute__((always_inline)) sector_t get_start_sect(struct block_device *bdev)
12142 return bdev->bd_contains == bdev ? 0 : bdev->bd_part->start_sect;
12144 static inline __attribute__((always_inline)) sector_t get_capacity(struct gendisk *disk)
12146 return disk->capacity;
12148 static inline __attribute__((always_inline)) void set_capacity(struct gendisk *disk, sector_t size)
12150 disk->capacity = size;
12152 # 399 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/genhd.h"
12153 char *disk_name (struct gendisk *hd, int part, char *buf);
12155 extern int rescan_partitions(struct gendisk *disk, struct block_device *bdev);
12156 extern void add_partition(struct gendisk *, int, sector_t, sector_t);
12157 extern void delete_partition(struct gendisk *, int);
12159 extern struct gendisk *alloc_disk_node(int minors, int node_id);
12160 extern struct gendisk *alloc_disk(int minors);
12161 extern struct kobject *get_disk(struct gendisk *disk);
12162 extern void put_disk(struct gendisk *disk);
12164 extern void blk_register_region(dev_t dev, unsigned long range,
12165 struct module *module,
12166 struct kobject *(*probe)(dev_t, int *, void *),
12167 int (*lock)(dev_t, void *),
12169 extern void blk_unregister_region(dev_t dev, unsigned long range);
12171 static inline __attribute__((always_inline)) struct block_device *bdget_disk(struct gendisk *disk, int index)
12173 return bdget((((disk->major) << 20) | (disk->first_minor)) + index);
12175 # 7 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h" 2
12179 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pagemap.h" 1
12186 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h" 1
12187 # 17 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h"
12188 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/debug_locks.h" 1
12192 struct task_struct;
12194 extern int debug_locks;
12195 extern int debug_locks_silent;
12200 extern int debug_locks_off(void);
12201 # 46 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/debug_locks.h"
12202 struct task_struct;
12210 static inline __attribute__((always_inline)) void debug_show_all_locks(void)
12214 static inline __attribute__((always_inline)) void debug_show_held_locks(struct task_struct *task)
12218 static inline __attribute__((always_inline)) void
12219 debug_check_no_locks_freed(const void *from, unsigned long len)
12223 static inline __attribute__((always_inline)) void
12224 debug_check_no_locks_held(struct task_struct *task)
12227 # 18 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h" 2
12228 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/backing-dev.h" 1
12229 # 16 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/backing-dev.h"
12232 BDI_write_congested,
12233 BDI_read_congested,
12237 typedef int (congested_fn)(void *, int);
12239 struct backing_dev_info {
12240 unsigned long ra_pages;
12241 unsigned long state;
12242 unsigned int capabilities;
12243 congested_fn *congested_fn;
12244 void *congested_data;
12245 void (*unplug_io_fn)(struct backing_dev_info *, struct page *);
12246 void *unplug_io_data;
12248 # 61 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/backing-dev.h"
12249 extern struct backing_dev_info default_backing_dev_info;
12250 void default_unplug_io_fn(struct backing_dev_info *bdi, struct page *page);
12252 int writeback_acquire(struct backing_dev_info *bdi);
12253 int writeback_in_progress(struct backing_dev_info *bdi);
12254 void writeback_release(struct backing_dev_info *bdi);
12256 static inline __attribute__((always_inline)) int bdi_congested(struct backing_dev_info *bdi, int bdi_bits)
12258 if (bdi->congested_fn)
12259 return bdi->congested_fn(bdi->congested_data, bdi_bits);
12260 return (bdi->state & bdi_bits);
12263 static inline __attribute__((always_inline)) int bdi_read_congested(struct backing_dev_info *bdi)
12265 return bdi_congested(bdi, 1 << BDI_read_congested);
12268 static inline __attribute__((always_inline)) int bdi_write_congested(struct backing_dev_info *bdi)
12270 return bdi_congested(bdi, 1 << BDI_write_congested);
12273 static inline __attribute__((always_inline)) int bdi_rw_congested(struct backing_dev_info *bdi)
12275 return bdi_congested(bdi, (1 << BDI_read_congested)|
12276 (1 << BDI_write_congested));
12278 # 19 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h" 2
12279 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm_types.h" 1
12280 # 9 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm_types.h"
12281 struct address_space;
12282 # 18 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm_types.h"
12284 unsigned long flags;
12287 atomic_t _mapcount;
12293 unsigned long private;
12300 struct address_space *mapping;
12312 unsigned long index;
12313 struct list_head lru;
12314 # 65 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm_types.h"
12316 # 20 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h" 2
12322 extern unsigned long max_mapnr;
12325 extern unsigned long num_physpages;
12326 extern void * high_memory;
12327 extern unsigned long vmalloc_earlyreserve;
12328 extern int page_cluster;
12331 extern int sysctl_legacy_va_layout;
12337 # 1 "include2/asm/pgtable.h" 1
12338 # 15 "include2/asm/pgtable.h"
12339 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/pgtable-nopmd.h" 1
12345 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/pgtable-nopud.h" 1
12346 # 13 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/pgtable-nopud.h"
12347 typedef struct { pgd_t pgd; } pud_t;
12348 # 25 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/pgtable-nopud.h"
12349 static inline __attribute__((always_inline)) int pgd_none(pgd_t pgd) { return 0; }
12350 static inline __attribute__((always_inline)) int pgd_bad(pgd_t pgd) { return 0; }
12351 static inline __attribute__((always_inline)) int pgd_present(pgd_t pgd) { return 1; }
12352 static inline __attribute__((always_inline)) void pgd_clear(pgd_t *pgd) { }
12353 # 38 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/pgtable-nopud.h"
12354 static inline __attribute__((always_inline)) pud_t * pud_offset(pgd_t * pgd, unsigned long address)
12356 return (pud_t *)pgd;
12358 # 7 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/pgtable-nopmd.h" 2
12359 # 15 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/pgtable-nopmd.h"
12360 typedef struct { pud_t pud; } pmd_t;
12361 # 27 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/pgtable-nopmd.h"
12362 static inline __attribute__((always_inline)) int pud_none(pud_t pud) { return 0; }
12363 static inline __attribute__((always_inline)) int pud_bad(pud_t pud) { return 0; }
12364 static inline __attribute__((always_inline)) int pud_present(pud_t pud) { return 1; }
12365 static inline __attribute__((always_inline)) void pud_clear(pud_t *pud) { }
12366 # 41 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/pgtable-nopmd.h"
12367 static inline __attribute__((always_inline)) pmd_t * pmd_offset(pud_t * pud, unsigned long address)
12369 return (pmd_t *)pud;
12371 # 16 "include2/asm/pgtable.h" 2
12377 # 1 "include2/asm/addrspace.h" 1
12378 # 14 "include2/asm/addrspace.h"
12379 # 1 "include/asm/cpu/addrspace.h" 1
12380 # 15 "include2/asm/addrspace.h" 2
12381 # 22 "include2/asm/pgtable.h" 2
12382 # 1 "include2/asm/fixmap.h" 1
12383 # 48 "include2/asm/fixmap.h"
12384 enum fixed_addresses {
12389 __end_of_fixed_addresses
12392 extern void __set_fixmap (enum fixed_addresses idx,
12393 unsigned long phys, pgprot_t flags);
12394 # 80 "include2/asm/fixmap.h"
12395 extern void __this_fixmap_does_not_exist(void);
12402 static inline __attribute__((always_inline)) unsigned long fix_to_virt(const unsigned int idx)
12404 # 98 "include2/asm/fixmap.h"
12405 if (idx >= __end_of_fixed_addresses)
12406 __this_fixmap_does_not_exist();
12408 return ((0xe0000000 - (1UL << 12)) - ((idx) << 12));
12411 static inline __attribute__((always_inline)) unsigned long virt_to_fix(const unsigned long vaddr)
12413 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);
12414 return (((0xe0000000 - (1UL << 12)) - ((vaddr)&(~((1UL << 12)-1)))) >> 12);
12416 # 23 "include2/asm/pgtable.h" 2
12418 extern pgd_t swapper_pg_dir[1024];
12419 extern void paging_init(void);
12425 extern unsigned long empty_zero_page[(1UL << 12) / sizeof(unsigned long)];
12426 # 215 "include2/asm/pgtable.h"
12427 static inline __attribute__((always_inline)) int pte_read(pte_t pte) { return ((pte).pte) & 0x040; }
12428 static inline __attribute__((always_inline)) int pte_exec(pte_t pte) { return ((pte).pte) & 0x040; }
12429 static inline __attribute__((always_inline)) int pte_dirty(pte_t pte){ return ((pte).pte) & 0x004; }
12430 static inline __attribute__((always_inline)) int pte_young(pte_t pte){ return ((pte).pte) & 0x400; }
12431 static inline __attribute__((always_inline)) int pte_file(pte_t pte) { return ((pte).pte) & 0x001; }
12432 static inline __attribute__((always_inline)) int pte_write(pte_t pte){ return ((pte).pte) & 0x020; }
12433 static inline __attribute__((always_inline)) int pte_not_present(pte_t pte){ return !(((pte).pte) & 0x100); }
12435 static inline __attribute__((always_inline)) pte_t pte_rdprotect(pte_t pte) { (*(&pte) = ((pte_t) { (((pte).pte) & ~0x040) } )); return pte; }
12436 static inline __attribute__((always_inline)) pte_t pte_exprotect(pte_t pte) { (*(&pte) = ((pte_t) { (((pte).pte) & ~0x040) } )); return pte; }
12437 static inline __attribute__((always_inline)) pte_t pte_mkclean(pte_t pte) { (*(&pte) = ((pte_t) { (((pte).pte) & ~0x004) } )); return pte; }
12438 static inline __attribute__((always_inline)) pte_t pte_mkold(pte_t pte) { (*(&pte) = ((pte_t) { (((pte).pte) & ~0x400) } )); return pte; }
12439 static inline __attribute__((always_inline)) pte_t pte_wrprotect(pte_t pte) { (*(&pte) = ((pte_t) { (((pte).pte) & ~0x020) } )); return pte; }
12440 static inline __attribute__((always_inline)) pte_t pte_mkread(pte_t pte) { (*(&pte) = ((pte_t) { (((pte).pte) | 0x040) } )); return pte; }
12441 static inline __attribute__((always_inline)) pte_t pte_mkexec(pte_t pte) { (*(&pte) = ((pte_t) { (((pte).pte) | 0x040) } )); return pte; }
12442 static inline __attribute__((always_inline)) pte_t pte_mkdirty(pte_t pte) { (*(&pte) = ((pte_t) { (((pte).pte) | 0x004) } )); return pte; }
12443 static inline __attribute__((always_inline)) pte_t pte_mkyoung(pte_t pte) { (*(&pte) = ((pte_t) { (((pte).pte) | 0x400) } )); return pte; }
12444 static inline __attribute__((always_inline)) pte_t pte_mkwrite(pte_t pte) { (*(&pte) = ((pte_t) { (((pte).pte) | 0x020) } )); return pte; }
12445 # 242 "include2/asm/pgtable.h"
12446 static inline __attribute__((always_inline)) pgprot_t pgprot_noncached(pgprot_t _prot)
12448 unsigned long prot = ((_prot).pgprot);
12451 return ((pgprot_t) { (prot) } );
12453 # 260 "include2/asm/pgtable.h"
12454 static inline __attribute__((always_inline)) pte_t pte_modify(pte_t pte, pgprot_t newprot)
12455 { (*(&pte) = ((pte_t) { ((((pte).pte) & ((~((1UL << 12)-1)) | 0x400 | 0x008 | 0x004)) | ((newprot).pgprot)) } )); return pte; }
12456 # 291 "include2/asm/pgtable.h"
12457 struct vm_area_struct;
12458 extern void update_mmu_cache(struct vm_area_struct * vma,
12459 unsigned long address, pte_t pte);
12460 # 313 "include2/asm/pgtable.h"
12461 typedef pte_t *pte_addr_t;
12462 # 324 "include2/asm/pgtable.h"
12464 # 337 "include2/asm/pgtable.h"
12465 extern pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep);
12468 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/pgtable.h" 1
12469 # 130 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/pgtable.h"
12471 static inline __attribute__((always_inline)) void ptep_set_wrprotect(struct mm_struct *mm, unsigned long address, pte_t *ptep)
12473 pte_t old_pte = *ptep;
12474 (*(ptep) = pte_wrprotect(old_pte));
12476 # 215 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/pgtable.h"
12477 void pgd_clear_bad(pgd_t *);
12478 void pud_clear_bad(pud_t *);
12479 void pmd_clear_bad(pmd_t *);
12481 static inline __attribute__((always_inline)) int pgd_none_or_clear_bad(pgd_t *pgd)
12483 if (pgd_none(*pgd))
12485 if (__builtin_expect(!!(pgd_bad(*pgd)), 0)) {
12486 pgd_clear_bad(pgd);
12492 static inline __attribute__((always_inline)) int pud_none_or_clear_bad(pud_t *pud)
12494 if (pud_none(*pud))
12496 if (__builtin_expect(!!(pud_bad(*pud)), 0)) {
12497 pud_clear_bad(pud);
12503 static inline __attribute__((always_inline)) int pmd_none_or_clear_bad(pmd_t *pmd)
12505 if ((!((((((*pmd).pud).pgd).pgd)))))
12507 if (__builtin_expect(!!(((((((((*pmd).pud).pgd).pgd))) & (~(~((1UL << 12)-1)) & ~0x040)) != (0x100 | 0x020 | 0x400 | 0x004))), 0)) {
12508 pmd_clear_bad(pmd);
12513 # 341 "include2/asm/pgtable.h" 2
12514 # 41 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h" 2
12515 # 60 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h"
12516 struct vm_area_struct {
12517 struct mm_struct * vm_mm;
12518 unsigned long vm_start;
12519 unsigned long vm_end;
12523 struct vm_area_struct *vm_next;
12525 pgprot_t vm_page_prot;
12526 unsigned long vm_flags;
12528 struct rb_node vm_rb;
12538 struct list_head list;
12540 struct vm_area_struct *head;
12543 struct raw_prio_tree_node prio_tree_node;
12552 struct list_head anon_vma_node;
12553 struct anon_vma *anon_vma;
12556 struct vm_operations_struct * vm_ops;
12559 unsigned long vm_pgoff;
12561 struct file * vm_file;
12562 void * vm_private_data;
12563 unsigned long vm_truncate_count;
12578 struct vm_list_struct {
12579 struct vm_list_struct *next;
12580 struct vm_area_struct *vma;
12582 # 190 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h"
12583 extern pgprot_t protection_map[16];
12591 struct vm_operations_struct {
12592 void (*open)(struct vm_area_struct * area);
12593 void (*close)(struct vm_area_struct * area);
12594 struct page * (*nopage)(struct vm_area_struct * area, unsigned long address, int *type);
12595 unsigned long (*nopfn)(struct vm_area_struct * area, unsigned long address);
12596 int (*populate)(struct vm_area_struct * area, unsigned long address, unsigned long len, pgprot_t prot, unsigned long pgoff, int nonblock);
12600 int (*page_mkwrite)(struct vm_area_struct *vma, struct page *page);
12612 # 227 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h"
12613 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/page-flags.h" 1
12614 # 254 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/page-flags.h"
12617 int test_clear_page_dirty(struct page *page);
12618 int test_clear_page_writeback(struct page *page);
12619 int test_set_page_writeback(struct page *page);
12621 static inline __attribute__((always_inline)) void clear_page_dirty(struct page *page)
12623 test_clear_page_dirty(page);
12626 static inline __attribute__((always_inline)) void set_page_writeback(struct page *page)
12628 test_set_page_writeback(page);
12630 # 228 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h" 2
12631 # 251 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h"
12632 static inline __attribute__((always_inline)) int put_page_testzero(struct page *page)
12635 return (atomic_sub_return(1, (&page->_count)) == 0);
12642 static inline __attribute__((always_inline)) int get_page_unless_zero(struct page *page)
12645 return atomic_add_unless((&page->_count), 1, 0);
12648 static inline __attribute__((always_inline)) int page_count(struct page *page)
12650 if (__builtin_expect(!!(test_bit(14, &(page)->flags)), 0))
12651 page = (struct page *)((page)->private);
12652 return ((&page->_count)->counter);
12655 static inline __attribute__((always_inline)) void get_page(struct page *page)
12657 if (__builtin_expect(!!(test_bit(14, &(page)->flags)), 0))
12658 page = (struct page *)((page)->private);
12660 atomic_add(1,(&page->_count));
12667 static inline __attribute__((always_inline)) void init_page_count(struct page *page)
12669 ((&page->_count)->counter = (1));
12672 void put_page(struct page *page);
12673 void put_pages_list(struct list_head *pages);
12675 void split_page(struct page *page, unsigned int order);
12676 # 431 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h"
12677 static inline __attribute__((always_inline)) enum zone_type page_zonenum(struct page *page)
12679 return (page->flags >> (((((sizeof(unsigned long)*8) - 0) - 0) - 1) * (1 != 0))) & ((1UL << 1) - 1);
12683 extern struct zone *zone_table[];
12685 static inline __attribute__((always_inline)) int page_zone_id(struct page *page)
12687 return (page->flags >> (((((sizeof(unsigned long)*8) - 0) - 0) - 1) * (1 != 0))) & ((1UL << (0 + 1)) - 1);
12689 static inline __attribute__((always_inline)) struct zone *page_zone(struct page *page)
12691 return zone_table[page_zone_id(page)];
12694 static inline __attribute__((always_inline)) unsigned long zone_to_nid(struct zone *zone)
12703 static inline __attribute__((always_inline)) unsigned long page_to_nid(struct page *page)
12705 if ((0 > 0 || 0 == 0))
12706 return (page->flags >> ((((sizeof(unsigned long)*8) - 0) - 0) * (0 != 0))) & ((1UL << 0) - 1);
12708 return zone_to_nid(page_zone(page));
12710 static inline __attribute__((always_inline)) unsigned long page_to_section(struct page *page)
12712 return (page->flags >> (((sizeof(unsigned long)*8) - 0) * (0 != 0))) & ((1UL << 0) - 1);
12715 static inline __attribute__((always_inline)) void set_page_zone(struct page *page, enum zone_type zone)
12717 page->flags &= ~(((1UL << 1) - 1) << (((((sizeof(unsigned long)*8) - 0) - 0) - 1) * (1 != 0)));
12718 page->flags |= (zone & ((1UL << 1) - 1)) << (((((sizeof(unsigned long)*8) - 0) - 0) - 1) * (1 != 0));
12721 static inline __attribute__((always_inline)) void set_page_node(struct page *page, unsigned long node)
12723 page->flags &= ~(((1UL << 0) - 1) << ((((sizeof(unsigned long)*8) - 0) - 0) * (0 != 0)));
12724 page->flags |= (node & ((1UL << 0) - 1)) << ((((sizeof(unsigned long)*8) - 0) - 0) * (0 != 0));
12726 static inline __attribute__((always_inline)) void set_page_section(struct page *page, unsigned long section)
12728 page->flags &= ~(((1UL << 0) - 1) << (((sizeof(unsigned long)*8) - 0) * (0 != 0)));
12729 page->flags |= (section & ((1UL << 0) - 1)) << (((sizeof(unsigned long)*8) - 0) * (0 != 0));
12732 static inline __attribute__((always_inline)) void set_page_links(struct page *page, enum zone_type zone,
12733 unsigned long node, unsigned long pfn)
12735 set_page_zone(page, zone);
12736 set_page_node(page, node);
12737 set_page_section(page, ((pfn) >> 0));
12743 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/vmstat.h" 1
12744 # 34 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/vmstat.h"
12745 enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT,
12746 PGALLOC_DMA, PGALLOC_NORMAL ,
12747 PGFREE, PGACTIVATE, PGDEACTIVATE,
12748 PGFAULT, PGMAJFAULT,
12749 PGREFILL_DMA, PGREFILL_NORMAL ,
12750 PGSTEAL_DMA, PGSTEAL_NORMAL ,
12751 PGSCAN_KSWAPD_DMA, PGSCAN_KSWAPD_NORMAL ,
12752 PGSCAN_DIRECT_DMA, PGSCAN_DIRECT_NORMAL ,
12753 PGINODESTEAL, SLABS_SCANNED, KSWAPD_STEAL, KSWAPD_INODESTEAL,
12754 PAGEOUTRUN, ALLOCSTALL, PGROTATED,
12758 struct vm_event_state {
12759 unsigned long event[NR_VM_EVENT_ITEMS];
12762 extern __typeof__(struct vm_event_state) per_cpu__vm_event_states;
12764 static inline __attribute__((always_inline)) void __count_vm_event(enum vm_event_item item)
12766 per_cpu__vm_event_states.event[item]++;
12769 static inline __attribute__((always_inline)) void count_vm_event(enum vm_event_item item)
12771 (*({ extern int simple_identifier_vm_event_states(void); do { } while (0); &per_cpu__vm_event_states; })).event[item]++;
12775 static inline __attribute__((always_inline)) void __count_vm_events(enum vm_event_item item, long delta)
12777 per_cpu__vm_event_states.event[item] += delta;
12780 static inline __attribute__((always_inline)) void count_vm_events(enum vm_event_item item, long delta)
12782 (*({ extern int simple_identifier_vm_event_states(void); do { } while (0); &per_cpu__vm_event_states; })).event[item] += delta;
12786 extern void all_vm_events(unsigned long *);
12787 extern void vm_events_fold_cpu(int cpu);
12788 # 96 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/vmstat.h"
12789 extern atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
12791 static inline __attribute__((always_inline)) void zone_page_state_add(long x, struct zone *zone,
12792 enum zone_stat_item item)
12794 atomic_long_add(x, &zone->vm_stat[item]);
12795 atomic_long_add(x, &vm_stat[item]);
12798 static inline __attribute__((always_inline)) unsigned long global_page_state(enum zone_stat_item item)
12800 long x = atomic_long_read(&vm_stat[item]);
12808 static inline __attribute__((always_inline)) unsigned long zone_page_state(struct zone *zone,
12809 enum zone_stat_item item)
12811 long x = atomic_long_read(&zone->vm_stat[item]);
12818 # 165 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/vmstat.h"
12819 static inline __attribute__((always_inline)) void zap_zone_vm_stats(struct zone *zone)
12821 memset(zone->vm_stat, 0, sizeof(zone->vm_stat));
12824 extern void inc_zone_state(struct zone *, enum zone_stat_item);
12825 # 192 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/vmstat.h"
12826 static inline __attribute__((always_inline)) void __mod_zone_page_state(struct zone *zone,
12827 enum zone_stat_item item, int delta)
12829 zone_page_state_add(delta, zone, item);
12832 static inline __attribute__((always_inline)) void __inc_zone_state(struct zone *zone, enum zone_stat_item item)
12834 atomic_long_inc(&zone->vm_stat[item]);
12835 atomic_long_inc(&vm_stat[item]);
12838 static inline __attribute__((always_inline)) void __inc_zone_page_state(struct page *page,
12839 enum zone_stat_item item)
12841 __inc_zone_state(page_zone(page), item);
12844 static inline __attribute__((always_inline)) void __dec_zone_page_state(struct page *page,
12845 enum zone_stat_item item)
12847 atomic_long_dec(&page_zone(page)->vm_stat[item]);
12848 atomic_long_dec(&vm_stat[item]);
12850 # 225 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/vmstat.h"
12851 static inline __attribute__((always_inline)) void refresh_cpu_vm_stats(int cpu) { }
12852 static inline __attribute__((always_inline)) void refresh_vm_stats(void) { }
12853 # 498 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h" 2
12855 static inline __attribute__((always_inline)) __attribute__((always_inline)) void *lowmem_page_address(struct page *page)
12857 return ((void *)((unsigned long)(((unsigned long)((page) - mem_map) + ((0x0C000000 >> 12))) << 12)+0x80000000));
12859 # 540 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h"
12860 extern struct address_space swapper_space;
12861 static inline __attribute__((always_inline)) struct address_space *page_mapping(struct page *page)
12863 struct address_space *mapping = page->mapping;
12865 if (__builtin_expect(!!(0), 0))
12866 mapping = &swapper_space;
12867 else if (__builtin_expect(!!((unsigned long)mapping & 1), 0))
12868 mapping = ((void *)0);
12872 static inline __attribute__((always_inline)) int PageAnon(struct page *page)
12874 return ((unsigned long)page->mapping & 1) != 0;
12881 static inline __attribute__((always_inline)) unsigned long page_index(struct page *page)
12883 if (__builtin_expect(!!(0), 0))
12884 return ((page)->private);
12885 return page->index;
12893 static inline __attribute__((always_inline)) void reset_page_mapcount(struct page *page)
12895 ((&(page)->_mapcount)->counter = (-1));
12898 static inline __attribute__((always_inline)) int page_mapcount(struct page *page)
12900 return ((&(page)->_mapcount)->counter) + 1;
12906 static inline __attribute__((always_inline)) int page_mapped(struct page *page)
12908 return ((&(page)->_mapcount)->counter) >= 0;
12910 # 622 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h"
12911 extern void show_free_areas(void);
12914 struct page *shmem_nopage(struct vm_area_struct *vma,
12915 unsigned long address, int *type);
12916 int shmem_set_policy(struct vm_area_struct *vma, struct mempolicy *new);
12917 struct mempolicy *shmem_get_policy(struct vm_area_struct *vma,
12918 unsigned long addr);
12919 int shmem_lock(struct file *file, int lock, struct user_struct *user);
12920 # 652 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h"
12921 struct file *shmem_file_setup(char *name, loff_t size, unsigned long flags);
12922 extern int shmem_mmap(struct file *file, struct vm_area_struct *vma);
12924 int shmem_zero_setup(struct vm_area_struct *);
12925 # 665 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h"
12926 static inline __attribute__((always_inline)) int can_do_mlock(void)
12930 if (get_current()->signal->rlim[8].rlim_cur != 0)
12934 extern int user_shm_lock(size_t, struct user_struct *);
12935 extern void user_shm_unlock(size_t, struct user_struct *);
12940 struct zap_details {
12941 struct vm_area_struct *nonlinear_vma;
12942 struct address_space *check_mapping;
12943 unsigned long first_index;
12944 unsigned long last_index;
12945 spinlock_t *i_mmap_lock;
12946 unsigned long truncate_count;
12949 struct page *vm_normal_page(struct vm_area_struct *, unsigned long, pte_t);
12950 unsigned long zap_page_range(struct vm_area_struct *vma, unsigned long address,
12951 unsigned long size, struct zap_details *);
12952 unsigned long unmap_vmas(struct mmu_gather **tlb,
12953 struct vm_area_struct *start_vma, unsigned long start_addr,
12954 unsigned long end_addr, unsigned long *nr_accounted,
12955 struct zap_details *);
12956 void free_pgd_range(struct mmu_gather **tlb, unsigned long addr,
12957 unsigned long end, unsigned long floor, unsigned long ceiling);
12958 void free_pgtables(struct mmu_gather **tlb, struct vm_area_struct *start_vma,
12959 unsigned long floor, unsigned long ceiling);
12960 int copy_page_range(struct mm_struct *dst, struct mm_struct *src,
12961 struct vm_area_struct *vma);
12962 int zeromap_page_range(struct vm_area_struct *vma, unsigned long from,
12963 unsigned long size, pgprot_t prot);
12964 void unmap_mapping_range(struct address_space *mapping,
12965 loff_t const holebegin, loff_t const holelen, int even_cows);
12967 static inline __attribute__((always_inline)) void unmap_shared_mapping_range(struct address_space *mapping,
12968 loff_t const holebegin, loff_t const holelen)
12970 unmap_mapping_range(mapping, holebegin, holelen, 0);
12973 extern int vmtruncate(struct inode * inode, loff_t offset);
12974 extern int vmtruncate_range(struct inode * inode, loff_t offset, loff_t end);
12975 extern int install_page(struct mm_struct *mm, struct vm_area_struct *vma, unsigned long addr, struct page *page, pgprot_t prot);
12976 extern int install_file_pte(struct mm_struct *mm, struct vm_area_struct *vma, unsigned long addr, unsigned long pgoff, pgprot_t prot);
12979 extern int __handle_mm_fault(struct mm_struct *mm,struct vm_area_struct *vma,
12980 unsigned long address, int write_access);
12982 static inline __attribute__((always_inline)) int handle_mm_fault(struct mm_struct *mm,
12983 struct vm_area_struct *vma, unsigned long address,
12986 return __handle_mm_fault(mm, vma, address, write_access) &
12989 # 739 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h"
12990 extern int make_pages_present(unsigned long addr, unsigned long end);
12991 extern int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, int len, int write);
12992 void install_arg_page(struct vm_area_struct *, struct page *, unsigned long);
12994 int get_user_pages(struct task_struct *tsk, struct mm_struct *mm, unsigned long start,
12995 int len, int write, int force, struct page **pages, struct vm_area_struct **vmas);
12996 void print_bad_pte(struct vm_area_struct *, pte_t, unsigned long);
12998 extern int try_to_release_page(struct page * page, gfp_t gfp_mask);
12999 extern void do_invalidatepage(struct page *page, unsigned long offset);
13001 int __set_page_dirty_nobuffers(struct page *page);
13002 int redirty_page_for_writepage(struct writeback_control *wbc,
13003 struct page *page);
13004 int set_page_dirty(struct page *page);
13005 int set_page_dirty_lock(struct page *page);
13006 int clear_page_dirty_for_io(struct page *page);
13008 extern unsigned long do_mremap(unsigned long addr,
13009 unsigned long old_len, unsigned long new_len,
13010 unsigned long flags, unsigned long new_addr);
13011 # 772 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h"
13012 typedef int (*shrinker_t)(int nr_to_scan, gfp_t gfp_mask);
13021 extern struct shrinker *set_shrinker(int, shrinker_t);
13022 extern void remove_shrinker(struct shrinker *shrinker);
13030 static inline __attribute__((always_inline)) int vma_wants_writenotify(struct vm_area_struct *vma)
13032 unsigned int vm_flags = vma->vm_flags;
13035 if ((vm_flags & (0x00000002|0x00000008)) != ((0x00000002|0x00000008)))
13039 if (vma->vm_ops && vma->vm_ops->page_mkwrite)
13043 if (((vma->vm_page_prot).pgprot) !=
13044 ((protection_map[vm_flags & (0x00000001|0x00000002|0x00000004|0x00000008)]).pgprot))
13049 if (vm_flags & (0x00000400|0x02000000))
13053 return vma->vm_file && vma->vm_file->f_mapping &&
13054 (!(((vma->vm_file->f_mapping)->backing_dev_info)->capabilities & 0x00000001));
13057 extern pte_t *get_locked_pte(struct mm_struct *mm, unsigned long addr, spinlock_t **ptl);
13059 int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address);
13060 int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address);
13061 int __pte_alloc(struct mm_struct *mm, pmd_t *pmd, unsigned long address);
13062 int __pte_alloc_kernel(pmd_t *pmd, unsigned long address);
13069 static inline __attribute__((always_inline)) pud_t *pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address)
13071 return (__builtin_expect(!!(pgd_none(*pgd)), 0) && __pud_alloc(mm, pgd, address))?
13072 ((void *)0): pud_offset(pgd, address);
13075 static inline __attribute__((always_inline)) pmd_t *pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address)
13077 return (__builtin_expect(!!(pud_none(*pud)), 0) && __pmd_alloc(mm, pud, address))?
13078 ((void *)0): pmd_offset(pud, address);
13080 # 890 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h"
13081 extern void free_area_init(unsigned long * zones_size);
13082 extern void free_area_init_node(int nid, pg_data_t *pgdat,
13083 unsigned long * zones_size, unsigned long zone_start_pfn,
13084 unsigned long *zholes_size);
13085 # 943 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h"
13086 extern void set_dma_reserve(unsigned long new_dma_reserve);
13087 extern void memmap_init_zone(unsigned long, int, unsigned long, unsigned long);
13088 extern void setup_per_zone_pages_min(void);
13089 extern void mem_init(void);
13090 extern void show_mem(void);
13091 extern void si_meminfo(struct sysinfo * val);
13092 extern void si_meminfo_node(struct sysinfo *val, int nid);
13093 extern void zonetable_add(struct zone *zone, int nid, enum zone_type zid,
13094 unsigned long pfn, unsigned long size);
13099 static inline __attribute__((always_inline)) void setup_per_cpu_pageset(void) {}
13103 void vma_prio_tree_add(struct vm_area_struct *, struct vm_area_struct *old);
13104 void vma_prio_tree_insert(struct vm_area_struct *, struct prio_tree_root *);
13105 void vma_prio_tree_remove(struct vm_area_struct *, struct prio_tree_root *);
13106 struct vm_area_struct *vma_prio_tree_next(struct vm_area_struct *vma,
13107 struct prio_tree_iter *iter);
13113 static inline __attribute__((always_inline)) void vma_nonlinear_insert(struct vm_area_struct *vma,
13114 struct list_head *list)
13116 vma->shared.vm_set.parent = ((void *)0);
13117 list_add_tail(&vma->shared.vm_set.list, list);
13121 extern int __vm_enough_memory(long pages, int cap_sys_admin);
13122 extern void vma_adjust(struct vm_area_struct *vma, unsigned long start,
13123 unsigned long end, unsigned long pgoff, struct vm_area_struct *insert);
13124 extern struct vm_area_struct *vma_merge(struct mm_struct *,
13125 struct vm_area_struct *prev, unsigned long addr, unsigned long end,
13126 unsigned long vm_flags, struct anon_vma *, struct file *, unsigned long,
13127 struct mempolicy *);
13128 extern struct anon_vma *find_mergeable_anon_vma(struct vm_area_struct *);
13129 extern int split_vma(struct mm_struct *,
13130 struct vm_area_struct *, unsigned long addr, int new_below);
13131 extern int insert_vm_struct(struct mm_struct *, struct vm_area_struct *);
13132 extern void __vma_link_rb(struct mm_struct *, struct vm_area_struct *,
13133 struct rb_node **, struct rb_node *);
13134 extern void unlink_file_vma(struct vm_area_struct *);
13135 extern struct vm_area_struct *copy_vma(struct vm_area_struct **,
13136 unsigned long addr, unsigned long len, unsigned long pgoff);
13137 extern void exit_mmap(struct mm_struct *);
13138 extern int may_expand_vm(struct mm_struct *mm, unsigned long npages);
13140 extern unsigned long get_unmapped_area(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);
13142 extern unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
13143 unsigned long len, unsigned long prot,
13144 unsigned long flag, unsigned long pgoff);
13146 static inline __attribute__((always_inline)) unsigned long do_mmap(struct file *file, unsigned long addr,
13147 unsigned long len, unsigned long prot,
13148 unsigned long flag, unsigned long offset)
13150 unsigned long ret = -22;
13151 if ((offset + (((len)+(1UL << 12)-1)&(~((1UL << 12)-1)))) < offset)
13153 if (!(offset & ~(~((1UL << 12)-1))))
13154 ret = do_mmap_pgoff(file, addr, len, prot, flag, offset >> 12);
13159 extern int do_munmap(struct mm_struct *, unsigned long, size_t);
13161 extern unsigned long do_brk(unsigned long, unsigned long);
13164 extern unsigned long page_unuse(struct page *);
13165 extern void truncate_inode_pages(struct address_space *, loff_t);
13166 extern void truncate_inode_pages_range(struct address_space *,
13167 loff_t lstart, loff_t lend);
13170 extern struct page *filemap_nopage(struct vm_area_struct *, unsigned long, int *);
13171 extern int filemap_populate(struct vm_area_struct *, unsigned long,
13172 unsigned long, pgprot_t, unsigned long, int);
13175 int write_one_page(struct page *page, int wait);
13183 int do_page_cache_readahead(struct address_space *mapping, struct file *filp,
13184 unsigned long offset, unsigned long nr_to_read);
13185 int force_page_cache_readahead(struct address_space *mapping, struct file *filp,
13186 unsigned long offset, unsigned long nr_to_read);
13187 unsigned long page_cache_readahead(struct address_space *mapping,
13188 struct file_ra_state *ra,
13190 unsigned long offset,
13191 unsigned long size);
13192 void handle_ra_miss(struct address_space *mapping,
13193 struct file_ra_state *ra, unsigned long offset);
13194 unsigned long max_sane_readahead(unsigned long nr);
13197 extern int expand_stack(struct vm_area_struct *vma, unsigned long address);
13203 extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long addr);
13204 extern struct vm_area_struct * find_vma_prev(struct mm_struct * mm, unsigned long addr,
13205 struct vm_area_struct **pprev);
13209 static inline __attribute__((always_inline)) struct vm_area_struct * find_vma_intersection(struct mm_struct * mm, unsigned long start_addr, unsigned long end_addr)
13211 struct vm_area_struct * vma = find_vma(mm,start_addr);
13213 if (vma && end_addr <= vma->vm_start)
13218 static inline __attribute__((always_inline)) unsigned long vma_pages(struct vm_area_struct *vma)
13220 return (vma->vm_end - vma->vm_start) >> 12;
13223 pgprot_t vm_get_page_prot(unsigned long vm_flags);
13224 struct vm_area_struct *find_extend_vma(struct mm_struct *, unsigned long addr);
13225 struct page *vmalloc_to_page(void *addr);
13226 unsigned long vmalloc_to_pfn(void *addr);
13227 int remap_pfn_range(struct vm_area_struct *, unsigned long addr,
13228 unsigned long pfn, unsigned long size, pgprot_t);
13229 int vm_insert_page(struct vm_area_struct *, unsigned long addr, struct page *);
13231 struct page *follow_page(struct vm_area_struct *, unsigned long address,
13232 unsigned int foll_flags);
13239 void vm_stat_account(struct mm_struct *, unsigned long, struct file *, long);
13240 # 1105 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h"
13241 static inline __attribute__((always_inline)) void
13242 kernel_map_pages(struct page *page, int numpages, int enable) {}
13245 extern struct vm_area_struct *get_gate_vma(struct task_struct *tsk);
13247 int in_gate_area_no_task(unsigned long addr);
13248 int in_gate_area(struct task_struct *task, unsigned long addr);
13249 # 1121 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mm.h"
13250 int drop_caches_sysctl_handler(struct ctl_table *, int, struct file *,
13251 void *, size_t *, loff_t *);
13252 unsigned long shrink_slab(unsigned long scanned, gfp_t gfp_mask,
13253 unsigned long lru_pages);
13254 void drop_pagecache(void);
13255 void drop_slab(void);
13260 extern int randomize_va_space;
13263 __attribute__((weak)) const char *arch_vma_name(struct vm_area_struct *vma);
13264 # 8 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pagemap.h" 2
13267 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/highmem.h" 1
13274 # 1 "include2/asm/cacheflush.h" 1
13280 # 1 "include/asm/cpu/cacheflush.h" 1
13281 # 19 "include/asm/cpu/cacheflush.h"
13282 void flush_cache_all(void);
13283 void flush_cache_mm(struct mm_struct *mm);
13284 void flush_cache_range(struct vm_area_struct *vma, unsigned long start,
13285 unsigned long end);
13286 void flush_cache_page(struct vm_area_struct *vma, unsigned long addr,
13287 unsigned long pfn);
13288 void flush_dcache_page(struct page *pg);
13293 void flush_icache_range(unsigned long start, unsigned long end);
13294 void flush_cache_sigtramp(unsigned long addr);
13295 void flush_icache_user_range(struct vm_area_struct *vma, struct page *page,
13296 unsigned long addr, int len);
13301 void p3_cache_init(void);
13306 extern int remap_area_pages(unsigned long addr, unsigned long phys_addr,
13307 unsigned long size, unsigned long flags);
13308 # 7 "include2/asm/cacheflush.h" 2
13311 extern void __flush_wback_region(void *start, int size);
13313 extern void __flush_purge_region(void *start, int size);
13315 extern void __flush_invalidate_region(void *start, int size);
13316 # 8 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/highmem.h" 2
13319 static inline __attribute__((always_inline)) void flush_anon_page(struct page *page, unsigned long vmaddr)
13325 static inline __attribute__((always_inline)) void flush_kernel_dcache_page(struct page *page)
13328 # 31 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/highmem.h"
13329 static inline __attribute__((always_inline)) unsigned int nr_free_highpages(void) { return 0; }
13334 static inline __attribute__((always_inline)) void *kmap(struct page *page)
13336 do { do { } while (0); } while (0);
13337 return lowmem_page_address(page);
13339 # 53 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/highmem.h"
13340 static inline __attribute__((always_inline)) void clear_user_highpage(struct page *page, unsigned long vaddr)
13342 void *addr = lowmem_page_address(page);
13343 clear_user_page(addr, vaddr, page);
13346 __asm__ __volatile__("": : :"memory");
13350 static inline __attribute__((always_inline)) struct page *
13351 alloc_zeroed_user_highpage(struct vm_area_struct *vma, unsigned long vaddr)
13353 struct page *page = alloc_pages_node(((0)), ((( gfp_t)0x10u) | (( gfp_t)0x40u) | (( gfp_t)0x80u) | (( gfp_t)0x20000u) | (( gfp_t)0x02u)), 0);
13356 clear_user_highpage(page, vaddr);
13362 static inline __attribute__((always_inline)) void clear_highpage(struct page *page)
13364 void *kaddr = lowmem_page_address(page);
13372 static inline __attribute__((always_inline)) void memclear_highpage_flush(struct page *page, unsigned int offset, unsigned int size)
13376 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);
13378 kaddr = lowmem_page_address(page);
13379 memset((char *)kaddr + offset, 0, size);
13380 flush_dcache_page(page);
13384 static inline __attribute__((always_inline)) void copy_user_highpage(struct page *to, struct page *from, unsigned long vaddr)
13388 vfrom = lowmem_page_address(from);
13389 vto = lowmem_page_address(to);
13390 copy_user_page(vto, vfrom, vaddr, to);
13394 __asm__ __volatile__("": : :"memory");
13397 static inline __attribute__((always_inline)) void copy_highpage(struct page *to, struct page *from)
13401 vfrom = lowmem_page_address(from);
13402 vto = lowmem_page_address(to);
13403 copy_page(vto, vfrom);
13407 # 11 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pagemap.h" 2
13409 # 1 "include2/asm/uaccess.h" 1
13410 # 93 "include2/asm/uaccess.h"
13411 static inline __attribute__((always_inline)) int __access_ok(unsigned long addr, unsigned long size)
13413 unsigned long flag, tmp;
13415 __asm__("stc r7_bank, %0\n\t"
13416 "mov.l @(8,%0), %0\n\t"
13423 : "=&z" (flag), "=r" (tmp)
13424 : "r" (addr), "1" (size)
13431 static inline __attribute__((always_inline)) int access_ok(int type, const void *p, unsigned long size)
13433 unsigned long addr = (unsigned long)p;
13434 return __access_ok(addr, size);
13436 # 144 "include2/asm/uaccess.h"
13437 struct __large_struct { unsigned long buf[100]; };
13438 # 298 "include2/asm/uaccess.h"
13439 extern void __get_user_unknown(void);
13440 # 408 "include2/asm/uaccess.h"
13441 extern void __put_user_unknown(void);
13445 extern __kernel_size_t __copy_user(void *to, const void *from, __kernel_size_t n);
13446 # 449 "include2/asm/uaccess.h"
13447 extern __kernel_size_t __clear_user(void *addr, __kernel_size_t size);
13448 # 458 "include2/asm/uaccess.h"
13449 static __inline__ __attribute__((always_inline)) int
13450 __strncpy_from_user(unsigned long __dest, unsigned long __src, int __count)
13452 __kernel_size_t res;
13453 unsigned long __dummy, _d, _s;
13455 __asm__ __volatile__(
13457 "mov.b @%2+, %1\n\t"
13458 "cmp/eq #0, %1\n\t"
13461 "mov.b %1, @%3\n\t"
13468 ".section .fixup,\"ax\"\n"
13476 ".section __ex_table,\"a\"\n"
13480 : "=r" (res), "=&z" (__dummy), "=r" (_s), "=r" (_d)
13481 : "0" (__count), "2" (__src), "3" (__dest), "r" (__count),
13487 # 508 "include2/asm/uaccess.h"
13488 static __inline__ __attribute__((always_inline)) long __strnlen_user(const char *__s, long __n)
13491 unsigned long __dummy;
13493 __asm__ __volatile__(
13495 "cmp/eq %4, %0\n\t"
13498 "mov.b @(%0,%3), %1\n\t"
13503 ".section .fixup,\"ax\"\n"
13511 ".section __ex_table,\"a\"\n"
13515 : "=z" (res), "=&r" (__dummy)
13516 : "0" (0), "r" (__s), "r" (__n)
13521 static __inline__ __attribute__((always_inline)) long strnlen_user(const char *s, long n)
13523 if (!((unsigned long)(s) < (current_thread_info()->addr_limit.seg)))
13526 return __strnlen_user(s, n);
13528 # 564 "include2/asm/uaccess.h"
13529 struct exception_table_entry
13531 unsigned long insn, fixup;
13534 extern int fixup_exception(struct pt_regs *regs);
13535 # 13 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pagemap.h" 2
13536 # 22 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pagemap.h"
13537 static inline __attribute__((always_inline)) gfp_t mapping_gfp_mask(struct address_space * mapping)
13539 return ( gfp_t)mapping->flags & (( gfp_t)((1 << 20) - 1));
13546 static inline __attribute__((always_inline)) void mapping_set_gfp_mask(struct address_space *m, gfp_t mask)
13548 m->flags = (m->flags & ~( unsigned long)(( gfp_t)((1 << 20) - 1))) |
13549 ( unsigned long)mask;
13551 # 52 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pagemap.h"
13552 void release_pages(struct page **pages, int nr, int cold);
13558 static inline __attribute__((always_inline)) struct page *page_cache_alloc(struct address_space *x)
13560 return alloc_pages_node(((0)), mapping_gfp_mask(x), 0);
13563 static inline __attribute__((always_inline)) struct page *page_cache_alloc_cold(struct address_space *x)
13565 return alloc_pages_node(((0)), mapping_gfp_mask(x)|(( gfp_t)0x100u), 0);
13569 typedef int filler_t(void *, struct page *);
13571 extern struct page * find_get_page(struct address_space *mapping,
13572 unsigned long index);
13573 extern struct page * find_lock_page(struct address_space *mapping,
13574 unsigned long index);
13575 extern struct page * find_trylock_page(
13576 struct address_space *mapping, unsigned long index);
13577 extern struct page * find_or_create_page(struct address_space *mapping,
13578 unsigned long index, gfp_t gfp_mask);
13579 unsigned find_get_pages(struct address_space *mapping, unsigned long start,
13580 unsigned int nr_pages, struct page **pages);
13581 unsigned find_get_pages_contig(struct address_space *mapping, unsigned long start,
13582 unsigned int nr_pages, struct page **pages);
13583 unsigned find_get_pages_tag(struct address_space *mapping, unsigned long *index,
13584 int tag, unsigned int nr_pages, struct page **pages);
13589 static inline __attribute__((always_inline)) struct page *grab_cache_page(struct address_space *mapping, unsigned long index)
13591 return find_or_create_page(mapping, index, mapping_gfp_mask(mapping));
13594 extern struct page * grab_cache_page_nowait(struct address_space *mapping,
13595 unsigned long index);
13596 extern struct page * read_cache_page(struct address_space *mapping,
13597 unsigned long index, filler_t *filler,
13599 extern int read_cache_pages(struct address_space *mapping,
13600 struct list_head *pages, filler_t *filler, void *data);
13602 static inline __attribute__((always_inline)) struct page *read_mapping_page(struct address_space *mapping,
13603 unsigned long index, void *data)
13605 filler_t *filler = (filler_t *)mapping->a_ops->readpage;
13606 return read_cache_page(mapping, index, filler, data);
13609 int add_to_page_cache(struct page *page, struct address_space *mapping,
13610 unsigned long index, gfp_t gfp_mask);
13611 int add_to_page_cache_lru(struct page *page, struct address_space *mapping,
13612 unsigned long index, gfp_t gfp_mask);
13613 extern void remove_from_page_cache(struct page *page);
13614 extern void __remove_from_page_cache(struct page *page);
13619 static inline __attribute__((always_inline)) loff_t page_offset(struct page *page)
13621 return ((loff_t)page->index) << 12;
13624 static inline __attribute__((always_inline)) unsigned long linear_page_index(struct vm_area_struct *vma,
13625 unsigned long address)
13627 unsigned long pgoff = (address - vma->vm_start) >> 12;
13628 pgoff += vma->vm_pgoff;
13629 return pgoff >> (12 - 12);
13632 extern void __lock_page(struct page *page);
13633 extern void __lock_page_nosync(struct page *page);
13634 extern void unlock_page(struct page *page);
13639 static inline __attribute__((always_inline)) void lock_page(struct page *page)
13641 do { do { } while (0); } while (0);
13642 if (test_and_set_bit(0, &(page)->flags))
13650 static inline __attribute__((always_inline)) void lock_page_nosync(struct page *page)
13652 do { do { } while (0); } while (0);
13653 if (test_and_set_bit(0, &(page)->flags))
13654 __lock_page_nosync(page);
13661 extern void wait_on_page_bit(struct page *page, int bit_nr);
13662 # 170 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/pagemap.h"
13663 static inline __attribute__((always_inline)) void wait_on_page_locked(struct page *page)
13665 if (test_bit(0, &(page)->flags))
13666 wait_on_page_bit(page, 0);
13672 static inline __attribute__((always_inline)) void wait_on_page_writeback(struct page *page)
13674 if (test_bit(12, &(page)->flags))
13675 wait_on_page_bit(page, 12);
13678 extern void end_page_writeback(struct page *page);
13686 static inline __attribute__((always_inline)) int fault_in_pages_writeable(char *uaddr, int size)
13694 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; });
13696 char *end = uaddr + size - 1;
13702 if (((unsigned long)uaddr & (~((1UL << 12)-1))) !=
13703 ((unsigned long)end & (~((1UL << 12)-1))))
13704 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; });
13709 static inline __attribute__((always_inline)) void fault_in_pages_readable(const char *uaddr, int size)
13714 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; });
13716 const char *end = uaddr + size - 1;
13718 if (((unsigned long)uaddr & (~((1UL << 12)-1))) !=
13719 ((unsigned long)end & (~((1UL << 12)-1))))
13720 ({ 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; });
13723 # 11 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h" 2
13726 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mempool.h" 1
13727 # 9 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mempool.h"
13730 typedef void * (mempool_alloc_t)(gfp_t gfp_mask, void *pool_data);
13731 typedef void (mempool_free_t)(void *element, void *pool_data);
13733 typedef struct mempool_s {
13740 mempool_alloc_t *alloc;
13741 mempool_free_t *free;
13742 wait_queue_head_t wait;
13745 extern mempool_t *mempool_create(int min_nr, mempool_alloc_t *alloc_fn,
13746 mempool_free_t *free_fn, void *pool_data);
13747 extern mempool_t *mempool_create_node(int min_nr, mempool_alloc_t *alloc_fn,
13748 mempool_free_t *free_fn, void *pool_data, int nid);
13750 extern int mempool_resize(mempool_t *pool, int new_min_nr, gfp_t gfp_mask);
13751 extern void mempool_destroy(mempool_t *pool);
13752 extern void * mempool_alloc(mempool_t *pool, gfp_t gfp_mask);
13753 extern void mempool_free(void *element, mempool_t *pool);
13759 void *mempool_alloc_slab(gfp_t gfp_mask, void *pool_data);
13760 void mempool_free_slab(void *element, void *pool_data);
13761 static inline __attribute__((always_inline)) mempool_t *
13762 mempool_create_slab_pool(int min_nr, struct kmem_cache *kc)
13764 return mempool_create(min_nr, mempool_alloc_slab, mempool_free_slab,
13772 void *mempool_kmalloc(gfp_t gfp_mask, void *pool_data);
13773 void *mempool_kzalloc(gfp_t gfp_mask, void *pool_data);
13774 void mempool_kfree(void *element, void *pool_data);
13775 static inline __attribute__((always_inline)) mempool_t *mempool_create_kmalloc_pool(int min_nr, size_t size)
13777 return mempool_create(min_nr, mempool_kmalloc, mempool_kfree,
13780 static inline __attribute__((always_inline)) mempool_t *mempool_create_kzalloc_pool(int min_nr, size_t size)
13782 return mempool_create(min_nr, mempool_kzalloc, mempool_kfree,
13790 void *mempool_alloc_pages(gfp_t gfp_mask, void *pool_data);
13791 void mempool_free_pages(void *element, void *pool_data);
13792 static inline __attribute__((always_inline)) mempool_t *mempool_create_page_pool(int min_nr, int order)
13794 return mempool_create(min_nr, mempool_alloc_pages, mempool_free_pages,
13795 (void *)(long)order);
13797 # 14 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h" 2
13798 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/bio.h" 1
13799 # 25 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/bio.h"
13800 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ioprio.h" 1
13801 # 25 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/ioprio.h"
13815 IOPRIO_WHO_PROCESS = 1,
13825 static inline __attribute__((always_inline)) int task_ioprio(struct task_struct *task)
13827 ({ 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); });
13828 return ((task->ioprio) & ((1UL << (13)) - 1));
13831 static inline __attribute__((always_inline)) int task_nice_ioprio(struct task_struct *task)
13833 return (task_nice(task) + 20) / 5;
13839 extern int ioprio_best(unsigned short aprio, unsigned short bprio);
13840 # 26 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/bio.h" 2
13843 # 1 "include2/asm/io.h" 1
13844 # 31 "include2/asm/io.h"
13845 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/iomap.h" 1
13846 # 28 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/iomap.h"
13847 extern unsigned int ioread8(void *);
13848 extern unsigned int ioread16(void *);
13849 extern unsigned int ioread16be(void *);
13850 extern unsigned int ioread32(void *);
13851 extern unsigned int ioread32be(void *);
13853 extern void iowrite8(u8, void *);
13854 extern void iowrite16(u16, void *);
13855 extern void iowrite16be(u16, void *);
13856 extern void iowrite32(u32, void *);
13857 extern void iowrite32be(u32, void *);
13858 # 51 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/asm-generic/iomap.h"
13859 extern void ioread8_rep(void *port, void *buf, unsigned long count);
13860 extern void ioread16_rep(void *port, void *buf, unsigned long count);
13861 extern void ioread32_rep(void *port, void *buf, unsigned long count);
13863 extern void iowrite8_rep(void *port, const void *buf, unsigned long count);
13864 extern void iowrite16_rep(void *port, const void *buf, unsigned long count);
13865 extern void iowrite32_rep(void *port, const void *buf, unsigned long count);
13868 extern void *ioport_map(unsigned long port, unsigned int nr);
13869 extern void ioport_unmap(void *);
13873 extern void *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
13874 extern void pci_iounmap(struct pci_dev *dev, void *);
13875 # 32 "include2/asm/io.h" 2
13876 # 40 "include2/asm/io.h"
13877 # 1 "include2/asm/io_generic.h" 1
13878 # 14 "include2/asm/io_generic.h"
13879 u8 generic_inb(unsigned long);
13880 u16 generic_inw(unsigned long);
13881 u32 generic_inl(unsigned long);
13883 void generic_outb(u8, unsigned long);
13884 void generic_outw(u16, unsigned long);
13885 void generic_outl(u32, unsigned long);
13887 u8 generic_inb_p(unsigned long);
13888 u16 generic_inw_p(unsigned long);
13889 u32 generic_inl_p(unsigned long);
13890 void generic_outb_p(u8, unsigned long);
13891 void generic_outw_p(u16, unsigned long);
13892 void generic_outl_p(u32, unsigned long);
13894 void generic_insb(unsigned long, void *dst, unsigned long count);
13895 void generic_insw(unsigned long, void *dst, unsigned long count);
13896 void generic_insl(unsigned long, void *dst, unsigned long count);
13897 void generic_outsb(unsigned long, const void *src, unsigned long count);
13898 void generic_outsw(unsigned long, const void *src, unsigned long count);
13899 void generic_outsl(unsigned long, const void *src, unsigned long count);
13901 u8 generic_readb(void *);
13902 u16 generic_readw(void *);
13903 u32 generic_readl(void *);
13904 void generic_writeb(u8, void *);
13905 void generic_writew(u16, void *);
13906 void generic_writel(u32, void *);
13908 void *generic_ioremap(unsigned long offset, unsigned long size);
13909 void generic_iounmap(void *addr);
13911 void *generic_ioport_map(unsigned long addr, unsigned int size);
13912 void generic_ioport_unmap(void *addr);
13913 # 41 "include2/asm/io.h" 2
13914 # 110 "include2/asm/io.h"
13915 void __raw_writesl(unsigned long addr, const void *data, int longlen);
13916 void __raw_readsl(unsigned long addr, void *data, int longlen);
13917 # 175 "include2/asm/io.h"
13918 static inline __attribute__((always_inline)) void __set_io_port_base(unsigned long pbase)
13920 extern unsigned long generic_io_base;
13922 generic_io_base = pbase;
13926 extern void memcpy_fromio(void *, volatile void *, unsigned long);
13927 extern void memcpy_toio(volatile void *, const void *, unsigned long);
13928 extern void memset_io(volatile void *, int, unsigned long);
13931 static inline __attribute__((always_inline)) unsigned char ctrl_inb(unsigned long addr)
13933 return *(volatile unsigned char*)addr;
13936 static inline __attribute__((always_inline)) unsigned short ctrl_inw(unsigned long addr)
13938 return *(volatile unsigned short*)addr;
13941 static inline __attribute__((always_inline)) unsigned int ctrl_inl(unsigned long addr)
13943 return *(volatile unsigned long*)addr;
13946 static inline __attribute__((always_inline)) void ctrl_outb(unsigned char b, unsigned long addr)
13948 *(volatile unsigned char*)addr = b;
13951 static inline __attribute__((always_inline)) void ctrl_outw(unsigned short b, unsigned long addr)
13953 *(volatile unsigned short*)addr = b;
13956 static inline __attribute__((always_inline)) void ctrl_outl(unsigned int b, unsigned long addr)
13958 *(volatile unsigned long*)addr = b;
13961 static inline __attribute__((always_inline)) void ctrl_delay(void)
13963 ctrl_inw(0xa0000000);
13965 # 230 "include2/asm/io.h"
13966 static inline __attribute__((always_inline)) unsigned long virt_to_phys(volatile void *address)
13968 return (((unsigned long)(address)) & 0x1fffffff);
13971 static inline __attribute__((always_inline)) void *phys_to_virt(unsigned long address)
13973 return (void *)((__typeof__(address))(((unsigned long)(address) & 0x1fffffff) | 0x80000000));
13975 # 267 "include2/asm/io.h"
13976 void *__ioremap(unsigned long offset, unsigned long size,
13977 unsigned long flags);
13978 void __iounmap(void *addr);
13984 static inline __attribute__((always_inline)) void *
13985 __ioremap_mode(unsigned long offset, unsigned long size, unsigned long flags)
13987 unsigned long last_addr = offset + size - 1;
13995 if (__builtin_expect(!!((((unsigned long)(offset)) & 0xe0000000) < 0xc0000000 && (((unsigned long)(last_addr)) & 0xe0000000) < 0xc0000000), 1)) {
13996 if (__builtin_expect(!!(flags & 0x008), 0))
13997 return (void *)((__typeof__(offset))(((unsigned long)(offset) & 0x1fffffff) | 0x80000000));
13999 return (void *)((__typeof__(offset))(((unsigned long)(offset) & 0x1fffffff) | 0xa0000000));
14002 return __ioremap(offset, size, flags);
14004 # 29 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/bio.h" 2
14005 # 57 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/bio.h"
14007 struct page *bv_page;
14008 unsigned int bv_len;
14009 unsigned int bv_offset;
14014 typedef int (bio_end_io_t) (struct bio *, unsigned int, int);
14015 typedef void (bio_destructor_t) (struct bio *);
14022 sector_t bi_sector;
14024 struct bio *bi_next;
14025 struct block_device *bi_bdev;
14026 unsigned long bi_flags;
14027 unsigned long bi_rw;
14031 unsigned short bi_vcnt;
14032 unsigned short bi_idx;
14037 unsigned short bi_phys_segments;
14042 unsigned short bi_hw_segments;
14044 unsigned int bi_size;
14051 unsigned int bi_hw_front_size;
14052 unsigned int bi_hw_back_size;
14054 unsigned int bi_max_vecs;
14056 struct bio_vec *bi_io_vec;
14058 bio_end_io_t *bi_end_io;
14063 bio_destructor_t *bi_destructor;
14065 # 268 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/bio.h"
14067 struct bio bio1, bio2;
14068 struct bio_vec bv1, bv2;
14072 extern struct bio_pair *bio_split(struct bio *bi, mempool_t *pool,
14073 int first_sectors);
14074 extern mempool_t *bio_split_pool;
14075 extern void bio_pair_release(struct bio_pair *dbio);
14077 extern struct bio_set *bioset_create(int, int, int);
14078 extern void bioset_free(struct bio_set *);
14080 extern struct bio *bio_alloc(gfp_t, int);
14081 extern struct bio *bio_alloc_bioset(gfp_t, int, struct bio_set *);
14082 extern void bio_put(struct bio *);
14083 extern void bio_free(struct bio *, struct bio_set *);
14085 extern void bio_endio(struct bio *, unsigned int, int);
14086 struct request_queue;
14087 extern int bio_phys_segments(struct request_queue *, struct bio *);
14088 extern int bio_hw_segments(struct request_queue *, struct bio *);
14090 extern void __bio_clone(struct bio *, struct bio *);
14091 extern struct bio *bio_clone(struct bio *, gfp_t);
14093 extern void bio_init(struct bio *);
14095 extern int bio_add_page(struct bio *, struct page *, unsigned int,unsigned int);
14096 extern int bio_add_pc_page(struct request_queue *, struct bio *, struct page *,
14097 unsigned int, unsigned int);
14098 extern int bio_get_nr_vecs(struct block_device *);
14099 extern struct bio *bio_map_user(struct request_queue *, struct block_device *,
14100 unsigned long, unsigned int, int);
14102 extern struct bio *bio_map_user_iov(struct request_queue *,
14103 struct block_device *,
14104 struct sg_iovec *, int, int);
14105 extern void bio_unmap_user(struct bio *);
14106 extern struct bio *bio_map_kern(struct request_queue *, void *, unsigned int,
14108 extern void bio_set_pages_dirty(struct bio *bio);
14109 extern void bio_check_pages_dirty(struct bio *bio);
14110 extern struct bio *bio_copy_user(struct request_queue *, unsigned long, unsigned int, int);
14111 extern int bio_uncopy_user(struct bio *);
14112 void zero_fill_bio(struct bio *bio);
14113 # 352 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/bio.h"
14114 static inline __attribute__((always_inline)) char *__bio_kmap_irq(struct bio *bio, unsigned short idx,
14115 unsigned long *flags)
14117 return (lowmem_page_address(((&((bio)->bi_io_vec[(idx)])))->bv_page) + ((&((bio)->bi_io_vec[(idx)])))->bv_offset);
14119 # 15 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h" 2
14123 # 1 "include2/asm/scatterlist.h" 1
14127 struct scatterlist {
14128 struct page * page;
14129 unsigned int offset;
14130 dma_addr_t dma_address;
14131 unsigned int length;
14133 # 19 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h" 2
14136 # 1 "include2/asm/div64.h" 1
14137 # 22 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h" 2
14138 # 36 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h"
14139 struct scsi_ioctl_command;
14141 struct request_queue;
14142 typedef struct request_queue request_queue_t;
14143 struct elevator_queue;
14144 typedef struct elevator_queue elevator_t;
14145 struct request_pm_state;
14154 struct as_io_context {
14157 void (*dtor)(struct as_io_context *aic);
14158 void (*exit)(struct as_io_context *aic);
14160 unsigned long state;
14161 atomic_t nr_queued;
14162 atomic_t nr_dispatched;
14166 unsigned long last_end_request;
14167 unsigned long ttime_total;
14168 unsigned long ttime_samples;
14169 unsigned long ttime_mean;
14171 unsigned int seek_samples;
14172 sector_t last_request_pos;
14174 sector_t seek_mean;
14178 struct cfq_io_context {
14179 struct rb_node rb_node;
14182 struct cfq_queue *cfqq[2];
14184 struct io_context *ioc;
14186 unsigned long last_end_request;
14187 sector_t last_request_pos;
14188 unsigned long last_queue;
14190 unsigned long ttime_total;
14191 unsigned long ttime_samples;
14192 unsigned long ttime_mean;
14194 unsigned int seek_samples;
14196 sector_t seek_mean;
14198 struct list_head queue_list;
14200 void (*dtor)(struct io_context *);
14201 void (*exit)(struct io_context *);
14209 struct io_context {
14211 struct task_struct *task;
14213 unsigned int ioprio_changed;
14218 unsigned long last_waited;
14219 int nr_batch_requests;
14221 struct as_io_context *aic;
14222 struct rb_root cic_root;
14225 void put_io_context(struct io_context *ioc);
14226 void exit_io_context(void);
14227 struct io_context *get_io_context(gfp_t gfp_flags, int node);
14228 void copy_io_context(struct io_context **pdst, struct io_context **psrc);
14229 void swap_io_context(struct io_context **ioc1, struct io_context **ioc2);
14232 typedef void (rq_end_io_fn)(struct request *, int);
14234 struct request_list {
14238 mempool_t *rq_pool;
14239 wait_queue_head_t wait[2];
14245 enum rq_cmd_type_bits {
14249 REQ_TYPE_PM_SUSPEND,
14250 REQ_TYPE_PM_RESUME,
14251 REQ_TYPE_PM_SHUTDOWN,
14254 REQ_TYPE_LINUX_BLOCK,
14262 REQ_TYPE_ATA_TASKFILE,
14265 # 172 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h"
14270 REQ_LB_OP_EJECT = 0x40,
14271 REQ_LB_OP_FLUSH = 0x41,
14277 enum rq_flag_bits {
14292 __REQ_ORDERED_COLOR,
14298 # 229 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h"
14300 struct list_head queuelist;
14301 struct list_head donelist;
14303 request_queue_t *q;
14305 unsigned int cmd_flags;
14306 enum rq_cmd_type_bits cmd_type;
14313 sector_t hard_sector;
14314 unsigned long nr_sectors;
14315 unsigned long hard_nr_sectors;
14317 unsigned int current_nr_sectors;
14320 unsigned int hard_cur_sectors;
14323 struct bio *biotail;
14325 struct hlist_node hash;
14332 struct rb_node rb_node;
14333 void *completion_data;
14340 void *elevator_private;
14341 void *elevator_private2;
14343 struct gendisk *rq_disk;
14344 unsigned long start_time;
14349 unsigned short nr_phys_segments;
14356 unsigned short nr_hw_segments;
14358 unsigned short ioprio;
14371 unsigned int cmd_len;
14372 unsigned char cmd[16];
14374 unsigned int data_len;
14375 unsigned int sense_len;
14379 unsigned int timeout;
14385 rq_end_io_fn *end_io;
14393 struct request_pm_state
14402 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/elevator.h" 1
14410 typedef int (elevator_merge_fn) (request_queue_t *, struct request **,
14413 typedef void (elevator_merge_req_fn) (request_queue_t *, struct request *, struct request *);
14415 typedef void (elevator_merged_fn) (request_queue_t *, struct request *, int);
14417 typedef int (elevator_dispatch_fn) (request_queue_t *, int);
14419 typedef void (elevator_add_req_fn) (request_queue_t *, struct request *);
14420 typedef int (elevator_queue_empty_fn) (request_queue_t *);
14421 typedef struct request *(elevator_request_list_fn) (request_queue_t *, struct request *);
14422 typedef void (elevator_completed_req_fn) (request_queue_t *, struct request *);
14423 typedef int (elevator_may_queue_fn) (request_queue_t *, int);
14425 typedef int (elevator_set_req_fn) (request_queue_t *, struct request *, gfp_t);
14426 typedef void (elevator_put_req_fn) (request_queue_t *, struct request *);
14427 typedef void (elevator_activate_req_fn) (request_queue_t *, struct request *);
14428 typedef void (elevator_deactivate_req_fn) (request_queue_t *, struct request *);
14430 typedef void *(elevator_init_fn) (request_queue_t *, elevator_t *);
14431 typedef void (elevator_exit_fn) (elevator_t *);
14433 struct elevator_ops
14435 elevator_merge_fn *elevator_merge_fn;
14436 elevator_merged_fn *elevator_merged_fn;
14437 elevator_merge_req_fn *elevator_merge_req_fn;
14439 elevator_dispatch_fn *elevator_dispatch_fn;
14440 elevator_add_req_fn *elevator_add_req_fn;
14441 elevator_activate_req_fn *elevator_activate_req_fn;
14442 elevator_deactivate_req_fn *elevator_deactivate_req_fn;
14444 elevator_queue_empty_fn *elevator_queue_empty_fn;
14445 elevator_completed_req_fn *elevator_completed_req_fn;
14447 elevator_request_list_fn *elevator_former_req_fn;
14448 elevator_request_list_fn *elevator_latter_req_fn;
14450 elevator_set_req_fn *elevator_set_req_fn;
14451 elevator_put_req_fn *elevator_put_req_fn;
14453 elevator_may_queue_fn *elevator_may_queue_fn;
14455 elevator_init_fn *elevator_init_fn;
14456 elevator_exit_fn *elevator_exit_fn;
14457 void (*trim)(struct io_context *);
14462 struct elv_fs_entry {
14463 struct attribute attr;
14464 ssize_t (*show)(elevator_t *, char *);
14465 ssize_t (*store)(elevator_t *, const char *, size_t);
14471 struct elevator_type
14473 struct list_head list;
14474 struct elevator_ops ops;
14475 struct elv_fs_entry *elevator_attrs;
14476 char elevator_name[(16)];
14477 struct module *elevator_owner;
14483 struct elevator_queue
14485 struct elevator_ops *ops;
14486 void *elevator_data;
14487 struct kobject kobj;
14488 struct elevator_type *elevator_type;
14489 struct mutex sysfs_lock;
14490 struct hlist_head *hash;
14496 extern void elv_dispatch_sort(request_queue_t *, struct request *);
14497 extern void elv_dispatch_add_tail(request_queue_t *, struct request *);
14498 extern void elv_add_request(request_queue_t *, struct request *, int, int);
14499 extern void __elv_add_request(request_queue_t *, struct request *, int, int);
14500 extern void elv_insert(request_queue_t *, struct request *, int);
14501 extern int elv_merge(request_queue_t *, struct request **, struct bio *);
14502 extern void elv_merge_requests(request_queue_t *, struct request *,
14504 extern void elv_merged_request(request_queue_t *, struct request *, int);
14505 extern void elv_dequeue_request(request_queue_t *, struct request *);
14506 extern void elv_requeue_request(request_queue_t *, struct request *);
14507 extern int elv_queue_empty(request_queue_t *);
14508 extern struct request *elv_next_request(struct request_queue *q);
14509 extern struct request *elv_former_request(request_queue_t *, struct request *);
14510 extern struct request *elv_latter_request(request_queue_t *, struct request *);
14511 extern int elv_register_queue(request_queue_t *q);
14512 extern void elv_unregister_queue(request_queue_t *q);
14513 extern int elv_may_queue(request_queue_t *, int);
14514 extern void elv_completed_request(request_queue_t *, struct request *);
14515 extern int elv_set_request(request_queue_t *, struct request *, gfp_t);
14516 extern void elv_put_request(request_queue_t *, struct request *);
14521 extern int elv_register(struct elevator_type *);
14522 extern void elv_unregister(struct elevator_type *);
14527 extern ssize_t elv_iosched_show(request_queue_t *, char *);
14528 extern ssize_t elv_iosched_store(request_queue_t *, const char *, size_t);
14530 extern int elevator_init(request_queue_t *, char *);
14531 extern void elevator_exit(elevator_t *);
14532 extern int elv_rq_merge_ok(struct request *, struct bio *);
14537 extern struct request *elv_rb_former_request(request_queue_t *, struct request *);
14538 extern struct request *elv_rb_latter_request(request_queue_t *, struct request *);
14543 extern struct request *elv_rb_add(struct rb_root *, struct request *);
14544 extern void elv_rb_del(struct rb_root *, struct request *);
14545 extern struct request *elv_rb_find(struct rb_root *, sector_t);
14546 # 163 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/elevator.h"
14552 # 333 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h" 2
14554 typedef int (merge_request_fn) (request_queue_t *, struct request *,
14556 typedef int (merge_requests_fn) (request_queue_t *, struct request *,
14558 typedef void (request_fn_proc) (request_queue_t *q);
14559 typedef int (make_request_fn) (request_queue_t *q, struct bio *bio);
14560 typedef int (prep_rq_fn) (request_queue_t *, struct request *);
14561 typedef void (unplug_fn) (request_queue_t *);
14564 typedef int (merge_bvec_fn) (request_queue_t *, struct bio *, struct bio_vec *);
14565 typedef void (activity_fn) (void *data, int rw);
14566 typedef int (issue_flush_fn) (request_queue_t *, struct gendisk *, sector_t *);
14567 typedef void (prepare_flush_fn) (request_queue_t *, struct request *);
14568 typedef void (softirq_done_fn)(struct request *);
14570 enum blk_queue_state {
14575 struct blk_queue_tag {
14576 struct request **tag_index;
14577 unsigned long *tag_map;
14578 struct list_head busy_list;
14581 int real_max_depth;
14585 struct request_queue
14590 struct list_head queue_head;
14591 struct request *last_merge;
14592 elevator_t *elevator;
14597 struct request_list rq;
14599 request_fn_proc *request_fn;
14600 merge_request_fn *back_merge_fn;
14601 merge_request_fn *front_merge_fn;
14602 merge_requests_fn *merge_requests_fn;
14603 make_request_fn *make_request_fn;
14604 prep_rq_fn *prep_rq_fn;
14605 unplug_fn *unplug_fn;
14606 merge_bvec_fn *merge_bvec_fn;
14607 activity_fn *activity_fn;
14608 issue_flush_fn *issue_flush_fn;
14609 prepare_flush_fn *prepare_flush_fn;
14610 softirq_done_fn *softirq_done_fn;
14615 sector_t end_sector;
14616 struct request *boundary_rq;
14621 struct timer_list unplug_timer;
14623 unsigned long unplug_delay;
14624 struct work_struct unplug_work;
14626 struct backing_dev_info backing_dev_info;
14634 void *activity_data;
14639 unsigned long bounce_pfn;
14645 unsigned long queue_flags;
14652 spinlock_t __queue_lock;
14653 spinlock_t *queue_lock;
14658 struct kobject kobj;
14663 unsigned long nr_requests;
14664 unsigned int nr_congestion_on;
14665 unsigned int nr_congestion_off;
14666 unsigned int nr_batching;
14668 unsigned int max_sectors;
14669 unsigned int max_hw_sectors;
14670 unsigned short max_phys_segments;
14671 unsigned short max_hw_segments;
14672 unsigned short hardsect_size;
14673 unsigned int max_segment_size;
14675 unsigned long seg_boundary_mask;
14676 unsigned int dma_alignment;
14678 struct blk_queue_tag *queue_tags;
14680 unsigned int nr_sorted;
14681 unsigned int in_flight;
14686 unsigned int sg_timeout;
14687 unsigned int sg_reserved_size;
14695 unsigned int ordered, next_ordered, ordseq;
14696 int orderr, ordcolor;
14697 struct request pre_flush_rq, bar_rq, post_flush_rq;
14698 struct request *orig_bar_rq;
14699 unsigned int bi_size;
14701 struct mutex sysfs_lock;
14703 # 494 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h"
14705 # 506 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h"
14706 QUEUE_ORDERED_NONE = 0x00,
14707 QUEUE_ORDERED_DRAIN = 0x01,
14708 QUEUE_ORDERED_TAG = 0x02,
14710 QUEUE_ORDERED_PREFLUSH = 0x10,
14711 QUEUE_ORDERED_POSTFLUSH = 0x20,
14712 QUEUE_ORDERED_FUA = 0x40,
14714 QUEUE_ORDERED_DRAIN_FLUSH = QUEUE_ORDERED_DRAIN |
14715 QUEUE_ORDERED_PREFLUSH | QUEUE_ORDERED_POSTFLUSH,
14716 QUEUE_ORDERED_DRAIN_FUA = QUEUE_ORDERED_DRAIN |
14717 QUEUE_ORDERED_PREFLUSH | QUEUE_ORDERED_FUA,
14718 QUEUE_ORDERED_TAG_FLUSH = QUEUE_ORDERED_TAG |
14719 QUEUE_ORDERED_PREFLUSH | QUEUE_ORDERED_POSTFLUSH,
14720 QUEUE_ORDERED_TAG_FUA = QUEUE_ORDERED_TAG |
14721 QUEUE_ORDERED_PREFLUSH | QUEUE_ORDERED_FUA,
14726 QUEUE_ORDSEQ_STARTED = 0x01,
14727 QUEUE_ORDSEQ_DRAIN = 0x02,
14728 QUEUE_ORDSEQ_PREFLUSH = 0x04,
14729 QUEUE_ORDSEQ_BAR = 0x08,
14730 QUEUE_ORDSEQ_POSTFLUSH = 0x10,
14731 QUEUE_ORDSEQ_DONE = 0x20,
14733 # 568 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h"
14734 static inline __attribute__((always_inline)) int blk_queue_full(struct request_queue *q, int rw)
14737 return test_bit(3, &q->queue_flags);
14738 return test_bit(4, &q->queue_flags);
14741 static inline __attribute__((always_inline)) void blk_set_queue_full(struct request_queue *q, int rw)
14744 set_bit(3, &q->queue_flags);
14746 set_bit(4, &q->queue_flags);
14749 static inline __attribute__((always_inline)) void blk_clear_queue_full(struct request_queue *q, int rw)
14752 clear_bit(3, &q->queue_flags);
14754 clear_bit(4, &q->queue_flags);
14756 # 608 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h"
14757 extern unsigned long blk_max_low_pfn, blk_max_pfn;
14758 # 622 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h"
14759 extern int init_emergency_isa_pool(void);
14760 extern void blk_queue_bounce(request_queue_t *q, struct bio **bio);
14761 # 638 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h"
14762 extern int blk_register_queue(struct gendisk *disk);
14763 extern void blk_unregister_queue(struct gendisk *disk);
14764 extern void register_disk(struct gendisk *dev);
14765 extern void generic_make_request(struct bio *bio);
14766 extern void blk_put_request(struct request *);
14767 extern void __blk_put_request(request_queue_t *, struct request *);
14768 extern void blk_end_sync_rq(struct request *rq, int error);
14769 extern struct request *blk_get_request(request_queue_t *, int, gfp_t);
14770 extern void blk_insert_request(request_queue_t *, struct request *, int, void *);
14771 extern void blk_requeue_request(request_queue_t *, struct request *);
14772 extern void blk_plug_device(request_queue_t *);
14773 extern int blk_remove_plug(request_queue_t *);
14774 extern void blk_recount_segments(request_queue_t *, struct bio *);
14775 extern int scsi_cmd_ioctl(struct file *, struct gendisk *, unsigned int, void *);
14776 extern int sg_scsi_ioctl(struct file *, struct request_queue *,
14777 struct gendisk *, struct scsi_ioctl_command *);
14778 extern void blk_start_queue(request_queue_t *q);
14779 extern void blk_stop_queue(request_queue_t *q);
14780 extern void blk_sync_queue(struct request_queue *q);
14781 extern void __blk_stop_queue(request_queue_t *q);
14782 extern void blk_run_queue(request_queue_t *);
14783 extern void blk_start_queueing(request_queue_t *);
14784 extern void blk_queue_activity_fn(request_queue_t *, activity_fn *, void *);
14785 extern int blk_rq_map_user(request_queue_t *, struct request *, void *, unsigned int);
14786 extern int blk_rq_unmap_user(struct bio *, unsigned int);
14787 extern int blk_rq_map_kern(request_queue_t *, struct request *, void *, unsigned int, gfp_t);
14788 extern int blk_rq_map_user_iov(request_queue_t *, struct request *, struct sg_iovec *, int);
14789 extern int blk_execute_rq(request_queue_t *, struct gendisk *,
14790 struct request *, int);
14791 extern void blk_execute_rq_nowait(request_queue_t *, struct gendisk *,
14792 struct request *, int, rq_end_io_fn *);
14794 static inline __attribute__((always_inline)) request_queue_t *bdev_get_queue(struct block_device *bdev)
14796 return bdev->bd_disk->queue;
14799 static inline __attribute__((always_inline)) void blk_run_backing_dev(struct backing_dev_info *bdi,
14802 if (bdi && bdi->unplug_io_fn)
14803 bdi->unplug_io_fn(bdi, page);
14806 static inline __attribute__((always_inline)) void blk_run_address_space(struct address_space *mapping)
14809 blk_run_backing_dev(mapping->backing_dev_info, ((void *)0));
14811 # 697 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h"
14812 extern int end_that_request_first(struct request *, int, int);
14813 extern int end_that_request_chunk(struct request *, int, int);
14814 extern void end_that_request_last(struct request *, int);
14815 extern void end_request(struct request *req, int uptodate);
14816 extern void blk_complete_request(struct request *);
14817 # 711 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h"
14818 static inline __attribute__((always_inline)) void blkdev_dequeue_request(struct request *req)
14820 elv_dequeue_request(req->q, req);
14826 extern request_queue_t *blk_init_queue_node(request_fn_proc *rfn,
14827 spinlock_t *lock, int node_id);
14828 extern request_queue_t *blk_init_queue(request_fn_proc *, spinlock_t *);
14829 extern void blk_cleanup_queue(request_queue_t *);
14830 extern void blk_queue_make_request(request_queue_t *, make_request_fn *);
14831 extern void blk_queue_bounce_limit(request_queue_t *, u64);
14832 extern void blk_queue_max_sectors(request_queue_t *, unsigned int);
14833 extern void blk_queue_max_phys_segments(request_queue_t *, unsigned short);
14834 extern void blk_queue_max_hw_segments(request_queue_t *, unsigned short);
14835 extern void blk_queue_max_segment_size(request_queue_t *, unsigned int);
14836 extern void blk_queue_hardsect_size(request_queue_t *, unsigned short);
14837 extern void blk_queue_stack_limits(request_queue_t *t, request_queue_t *b);
14838 extern void blk_queue_segment_boundary(request_queue_t *, unsigned long);
14839 extern void blk_queue_prep_rq(request_queue_t *, prep_rq_fn *pfn);
14840 extern void blk_queue_merge_bvec(request_queue_t *, merge_bvec_fn *);
14841 extern void blk_queue_dma_alignment(request_queue_t *, int);
14842 extern void blk_queue_softirq_done(request_queue_t *, softirq_done_fn *);
14843 extern struct backing_dev_info *blk_get_backing_dev_info(struct block_device *bdev);
14844 extern int blk_queue_ordered(request_queue_t *, unsigned, prepare_flush_fn *);
14845 extern void blk_queue_issue_flush_fn(request_queue_t *, issue_flush_fn *);
14846 extern int blk_do_ordered(request_queue_t *, struct request **);
14847 extern unsigned blk_ordered_cur_seq(request_queue_t *);
14848 extern unsigned blk_ordered_req_seq(struct request *);
14849 extern void blk_ordered_complete_seq(request_queue_t *, unsigned, int);
14851 extern int blk_rq_map_sg(request_queue_t *, struct request *, struct scatterlist *);
14852 extern void blk_dump_rq_flags(struct request *, char *);
14853 extern void generic_unplug_device(request_queue_t *);
14854 extern void __generic_unplug_device(request_queue_t *);
14855 extern long nr_blockdev_pages(void);
14857 int blk_get_queue(request_queue_t *);
14858 request_queue_t *blk_alloc_queue(gfp_t);
14859 request_queue_t *blk_alloc_queue_node(gfp_t, int);
14860 extern void blk_put_queue(request_queue_t *);
14868 extern int blk_queue_start_tag(request_queue_t *, struct request *);
14869 extern struct request *blk_queue_find_tag(request_queue_t *, int);
14870 extern void blk_queue_end_tag(request_queue_t *, struct request *);
14871 extern int blk_queue_init_tags(request_queue_t *, int, struct blk_queue_tag *);
14872 extern void blk_queue_free_tags(request_queue_t *);
14873 extern int blk_queue_resize_tags(request_queue_t *, int);
14874 extern void blk_queue_invalidate_tags(request_queue_t *);
14875 extern long blk_congestion_wait(int rw, long timeout);
14876 extern struct blk_queue_tag *blk_init_tags(int);
14877 extern void blk_free_tags(struct blk_queue_tag *);
14878 extern void blk_congestion_end(int rw);
14880 static inline __attribute__((always_inline)) struct request *blk_map_queue_find_tag(struct blk_queue_tag *bqt,
14883 if (__builtin_expect(!!(bqt == ((void *)0) || tag >= bqt->real_max_depth), 0))
14884 return ((void *)0);
14885 return bqt->tag_index[tag];
14888 extern void blk_rq_bio_prep(request_queue_t *, struct request *, struct bio *);
14889 extern int blkdev_issue_flush(struct block_device *, sector_t *);
14890 # 793 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/blkdev.h"
14891 static inline __attribute__((always_inline)) int queue_hardsect_size(request_queue_t *q)
14895 if (q && q->hardsect_size)
14896 retval = q->hardsect_size;
14901 static inline __attribute__((always_inline)) int bdev_hardsect_size(struct block_device *bdev)
14903 return queue_hardsect_size(bdev_get_queue(bdev));
14906 static inline __attribute__((always_inline)) int queue_dma_alignment(request_queue_t *q)
14910 if (q && q->dma_alignment)
14911 retval = q->dma_alignment;
14917 static inline __attribute__((always_inline)) unsigned int blksize_bits(unsigned int size)
14919 unsigned int bits = 8;
14923 } while (size > 256);
14927 static inline __attribute__((always_inline)) unsigned int block_size(struct block_device *bdev)
14929 return bdev->bd_block_size;
14932 typedef struct {struct page *v;} Sector;
14934 unsigned char *read_dev_sector(struct block_device *, sector_t, Sector *);
14936 static inline __attribute__((always_inline)) void put_dev_sector(Sector p)
14941 struct work_struct;
14942 int kblockd_schedule_work(struct work_struct *work);
14943 void kblockd_flush(void);
14944 # 30 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c" 2
14946 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/scatterlist.h" 1
14954 static inline __attribute__((always_inline)) void sg_set_buf(struct scatterlist *sg, const void *buf,
14955 unsigned int buflen)
14957 sg->page = (mem_map + ((((unsigned long)(buf)-0x80000000) >> 12) - ((0x0C000000 >> 12))));
14958 sg->offset = ((unsigned long)(buf) & ~(~((1UL << 12)-1)));
14959 sg->length = buflen;
14962 static inline __attribute__((always_inline)) void sg_init_one(struct scatterlist *sg, const void *buf,
14963 unsigned int buflen)
14965 memset(sg, 0, sizeof(*sg));
14966 sg_set_buf(sg, buf, buflen);
14968 # 32 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c" 2
14970 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmc/card.h" 1
14971 # 13 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmc/card.h"
14972 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmc/mmc.h" 1
14973 # 12 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmc/mmc.h"
14974 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/interrupt.h" 1
14975 # 13 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/interrupt.h"
14976 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/irqflags.h" 1
14977 # 14 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/interrupt.h" 2
14978 # 67 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/interrupt.h"
14979 typedef irqreturn_t (*irq_handler_t)(int, void *);
14982 irq_handler_t handler;
14983 unsigned long flags;
14987 struct irqaction *next;
14989 struct proc_dir_entry *dir;
14992 extern irqreturn_t no_action(int cpl, void *dev_id);
14993 extern int request_irq(unsigned int, irq_handler_t handler,
14994 unsigned long, const char *, void *);
14995 extern void free_irq(unsigned int, void *);
14996 # 104 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/interrupt.h"
14997 extern void disable_irq_nosync(unsigned int irq);
14998 extern void disable_irq(unsigned int irq);
14999 extern void enable_irq(unsigned int irq);
15000 # 119 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/interrupt.h"
15001 static inline __attribute__((always_inline)) void disable_irq_nosync_lockdep(unsigned int irq)
15003 disable_irq_nosync(irq);
15009 static inline __attribute__((always_inline)) void disable_irq_nosync_lockdep_irqsave(unsigned int irq, unsigned long *flags)
15011 disable_irq_nosync(irq);
15017 static inline __attribute__((always_inline)) void disable_irq_lockdep(unsigned int irq)
15025 static inline __attribute__((always_inline)) void enable_irq_lockdep(unsigned int irq)
15033 static inline __attribute__((always_inline)) void enable_irq_lockdep_irqrestore(unsigned int irq, unsigned long *flags)
15042 extern int set_irq_wake(unsigned int irq, unsigned int on);
15044 static inline __attribute__((always_inline)) int enable_irq_wake(unsigned int irq)
15046 return set_irq_wake(irq, 1);
15049 static inline __attribute__((always_inline)) int disable_irq_wake(unsigned int irq)
15051 return set_irq_wake(irq, 0);
15053 # 195 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/interrupt.h"
15054 static inline __attribute__((always_inline)) void __attribute__((deprecated)) cli(void)
15056 local_irq_disable();
15058 static inline __attribute__((always_inline)) void __attribute__((deprecated)) sti(void)
15060 local_irq_enable();
15062 static inline __attribute__((always_inline)) void __attribute__((deprecated)) save_flags(unsigned long *x)
15064 __asm__("stc sr, %0; and #0xf0, %0" : "=&z" (*x) : : "memory" );
15067 static inline __attribute__((always_inline)) void __attribute__((deprecated)) restore_flags(unsigned long x)
15069 do { if ((x & 0x000000f0) != 0x000000f0) local_irq_enable(); } while (0);
15072 static inline __attribute__((always_inline)) void __attribute__((deprecated)) save_and_cli(unsigned long *x)
15074 *x = local_irq_save();
15079 extern void local_bh_disable(void);
15080 extern void __local_bh_enable(void);
15081 extern void _local_bh_enable(void);
15082 extern void local_bh_enable(void);
15083 extern void local_bh_enable_ip(unsigned long ip);
15105 struct softirq_action
15107 void (*action)(struct softirq_action *);
15111 void do_softirq(void);
15112 extern void open_softirq(int nr, void (*action)(struct softirq_action*), void *data);
15113 extern void softirq_init(void);
15115 extern void raise_softirq_irqoff(unsigned int nr);
15116 extern void raise_softirq(unsigned int nr);
15117 # 280 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/interrupt.h"
15118 struct tasklet_struct
15120 struct tasklet_struct *next;
15121 unsigned long state;
15123 void (*func)(unsigned long);
15124 unsigned long data;
15126 # 296 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/interrupt.h"
15129 TASKLET_STATE_SCHED,
15132 # 324 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/interrupt.h"
15133 extern void __tasklet_schedule(struct tasklet_struct *t);
15135 static inline __attribute__((always_inline)) void tasklet_schedule(struct tasklet_struct *t)
15137 if (!test_and_set_bit(TASKLET_STATE_SCHED, &t->state))
15138 __tasklet_schedule(t);
15141 extern void __tasklet_hi_schedule(struct tasklet_struct *t);
15143 static inline __attribute__((always_inline)) void tasklet_hi_schedule(struct tasklet_struct *t)
15145 if (!test_and_set_bit(TASKLET_STATE_SCHED, &t->state))
15146 __tasklet_hi_schedule(t);
15150 static inline __attribute__((always_inline)) void tasklet_disable_nosync(struct tasklet_struct *t)
15152 atomic_add(1,(&t->count));
15153 __asm__ __volatile__("": : :"memory");
15156 static inline __attribute__((always_inline)) void tasklet_disable(struct tasklet_struct *t)
15158 tasklet_disable_nosync(t);
15160 __asm__ __volatile__("": : :"memory");
15163 static inline __attribute__((always_inline)) void tasklet_enable(struct tasklet_struct *t)
15165 __asm__ __volatile__("": : :"memory");
15166 atomic_sub(1,(&t->count));
15169 static inline __attribute__((always_inline)) void tasklet_hi_enable(struct tasklet_struct *t)
15171 __asm__ __volatile__("": : :"memory");
15172 atomic_sub(1,(&t->count));
15175 extern void tasklet_kill(struct tasklet_struct *t);
15176 extern void tasklet_kill_immediate(struct tasklet_struct *t, unsigned int cpu);
15177 extern void tasklet_init(struct tasklet_struct *t,
15178 void (*func)(unsigned long), unsigned long data);
15179 # 413 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/interrupt.h"
15180 extern unsigned long probe_irq_on(void);
15181 extern int probe_irq_off(unsigned long);
15182 extern unsigned int probe_irq_mask(unsigned long);
15183 # 13 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmc/mmc.h" 2
15188 struct mmc_request;
15190 struct mmc_command {
15194 unsigned int flags;
15195 # 54 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmc/mmc.h"
15196 unsigned int retries;
15197 unsigned int error;
15198 # 64 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmc/mmc.h"
15199 struct mmc_data *data;
15200 struct mmc_request *mrq;
15204 unsigned int timeout_ns;
15205 unsigned int timeout_clks;
15206 unsigned int blksz;
15207 unsigned int blocks;
15208 unsigned int error;
15209 unsigned int flags;
15216 unsigned int bytes_xfered;
15218 struct mmc_command *stop;
15219 struct mmc_request *mrq;
15221 unsigned int sg_len;
15222 struct scatterlist *sg;
15225 struct mmc_request {
15226 struct mmc_command *cmd;
15227 struct mmc_data *data;
15228 struct mmc_command *stop;
15231 void (*done)(struct mmc_request *);
15237 extern int mmc_wait_for_req(struct mmc_host *, struct mmc_request *);
15238 extern int mmc_wait_for_cmd(struct mmc_host *, struct mmc_command *, int);
15239 extern int mmc_wait_for_app_cmd(struct mmc_host *, unsigned int,
15240 struct mmc_command *, int);
15242 extern void mmc_set_data_timeout(struct mmc_data *, const struct mmc_card *, int);
15244 extern int __mmc_claim_host(struct mmc_host *host, struct mmc_card *card);
15246 static inline __attribute__((always_inline)) void mmc_claim_host(struct mmc_host *host)
15248 __mmc_claim_host(host, (struct mmc_card *)-1);
15251 extern void mmc_release_host(struct mmc_host *host);
15252 # 14 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmc/card.h" 2
15255 unsigned int manfid;
15257 unsigned int serial;
15258 unsigned short oemid;
15259 unsigned short year;
15260 unsigned char hwrev;
15261 unsigned char fwrev;
15262 unsigned char month;
15266 unsigned char mmca_vsn;
15267 unsigned short cmdclass;
15268 unsigned short tacc_clks;
15269 unsigned int tacc_ns;
15270 unsigned int r2w_factor;
15271 unsigned int max_dtr;
15272 unsigned int read_blkbits;
15273 unsigned int write_blkbits;
15274 unsigned int capacity;
15275 unsigned int read_partial:1,
15282 unsigned char sda_vsn;
15283 unsigned char bus_widths;
15294 struct list_head node;
15295 struct mmc_host *host;
15298 unsigned int state;
15307 struct mmc_cid cid;
15308 struct mmc_csd csd;
15311 # 95 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmc/card.h"
15312 struct mmc_driver {
15313 struct device_driver drv;
15314 int (*probe)(struct mmc_card *);
15315 void (*remove)(struct mmc_card *);
15316 int (*suspend)(struct mmc_card *, pm_message_t);
15317 int (*resume)(struct mmc_card *);
15320 extern int mmc_register_driver(struct mmc_driver *);
15321 extern void mmc_unregister_driver(struct mmc_driver *);
15323 static inline __attribute__((always_inline)) int mmc_card_claim_host(struct mmc_card *card)
15325 return __mmc_claim_host(card->host, card);
15327 # 34 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c" 2
15328 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmc/host.h" 1
15329 # 15 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmc/host.h"
15331 unsigned int clock;
15332 unsigned short vdd;
15333 # 44 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmc/host.h"
15334 unsigned char bus_mode;
15339 unsigned char chip_select;
15345 unsigned char power_mode;
15351 unsigned char bus_width;
15357 struct mmc_host_ops {
15358 void (*request)(struct mmc_host *host, struct mmc_request *req);
15359 void (*set_ios)(struct mmc_host *host, struct mmc_ios *ios);
15360 int (*get_ro)(struct mmc_host *host);
15367 struct device *dev;
15368 struct class_device class_dev;
15370 const struct mmc_host_ops *ops;
15371 unsigned int f_min;
15372 unsigned int f_max;
15375 unsigned long caps;
15382 unsigned int max_seg_size;
15383 unsigned short max_hw_segs;
15384 unsigned short max_phys_segs;
15385 unsigned short max_sectors;
15386 unsigned short unused;
15389 struct mmc_ios ios;
15396 struct list_head cards;
15398 wait_queue_head_t wq;
15400 struct mmc_card *card_busy;
15401 struct mmc_card *card_selected;
15403 struct work_struct detect;
15405 unsigned long private[0] __attribute__((__aligned__((1 << 5))));
15408 extern struct mmc_host *mmc_alloc_host(int extra, struct device *);
15409 extern int mmc_add_host(struct mmc_host *);
15410 extern void mmc_remove_host(struct mmc_host *);
15411 extern void mmc_free_host(struct mmc_host *);
15413 static inline __attribute__((always_inline)) void *mmc_priv(struct mmc_host *host)
15415 return (void *)host->private;
15421 extern int mmc_suspend_host(struct mmc_host *, pm_message_t);
15422 extern int mmc_resume_host(struct mmc_host *);
15424 extern void mmc_detect_change(struct mmc_host *, unsigned long delay);
15425 extern void mmc_request_done(struct mmc_host *, struct mmc_request *);
15426 # 35 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c" 2
15427 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmc/protocol.h" 1
15428 # 131 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/include/linux/mmc/protocol.h"
15437 u8 read_bl_partial;
15438 u8 write_blk_misalign;
15439 u8 read_blk_misalign;
15462 u8 write_bl_partial;
15463 u8 file_format_grp;
15465 u8 perm_write_protect;
15466 u8 tmp_write_protect;
15470 # 36 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c" 2
15476 # 1 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_queue.h" 1
15481 struct task_struct;
15484 struct mmc_card *card;
15485 struct completion thread_complete;
15486 wait_queue_head_t thread_wq;
15487 struct semaphore thread_sem;
15488 unsigned int flags;
15489 struct request *req;
15490 int (*prep_fn)(struct mmc_queue *, struct request *);
15491 int (*issue_fn)(struct mmc_queue *, struct request *);
15493 struct request_queue *queue;
15494 struct scatterlist *sg;
15497 struct mmc_io_request {
15498 struct request *rq;
15500 struct mmc_command selcmd;
15501 struct mmc_command cmd[4];
15504 extern int mmc_init_queue(struct mmc_queue *, struct mmc_card *, spinlock_t *);
15505 extern void mmc_cleanup_queue(struct mmc_queue *);
15506 extern void mmc_queue_suspend(struct mmc_queue *);
15507 extern void mmc_queue_resume(struct mmc_queue *);
15508 # 42 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c" 2
15520 struct mmc_blk_data {
15522 struct gendisk *disk;
15523 struct mmc_queue queue;
15525 unsigned int usage;
15526 unsigned int block_bits;
15527 unsigned int read_only;
15530 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) } };
15532 static struct mmc_blk_data *mmc_blk_get(struct gendisk *disk)
15534 struct mmc_blk_data *md;
15536 mutex_lock(&open_lock);
15537 md = disk->private_data;
15538 if (md && md->usage == 0)
15542 mutex_unlock(&open_lock);
15547 static void mmc_blk_put(struct mmc_blk_data *md)
15549 mutex_lock(&open_lock);
15551 if (md->usage == 0) {
15552 put_disk(md->disk);
15553 mmc_cleanup_queue(&md->queue);
15556 mutex_unlock(&open_lock);
15559 static int mmc_blk_open(struct inode *inode, struct file *filp)
15561 struct mmc_blk_data *md;
15564 md = mmc_blk_get(inode->i_bdev->bd_disk);
15566 if (md->usage == 2)
15567 check_disk_change(inode->i_bdev);
15570 if ((filp->f_mode & 2) && md->read_only)
15577 static int mmc_blk_release(struct inode *inode, struct file *filp)
15579 struct mmc_blk_data *md = inode->i_bdev->bd_disk->private_data;
15586 mmc_blk_getgeo(struct block_device *bdev, struct hd_geometry *geo)
15588 geo->cylinders = get_capacity(bdev->bd_disk) / (4 * 16);
15594 static struct block_device_operations mmc_bdops = {
15595 .open = mmc_blk_open,
15596 .release = mmc_blk_release,
15597 .getgeo = mmc_blk_getgeo,
15598 .owner = ((struct module *)0),
15601 struct mmc_blk_request {
15602 struct mmc_request mrq;
15603 struct mmc_command cmd;
15604 struct mmc_command stop;
15605 struct mmc_data data;
15608 static int mmc_blk_prep_rq(struct mmc_queue *mq, struct request *req)
15610 struct mmc_blk_data *md = mq->data;
15616 if (!md || !mq->card) {
15617 printk("<3>" "%s: killing request - no device/host\n",
15618 req->rq_disk->disk_name);
15625 static u32 mmc_sd_num_wr_blocks(struct mmc_card *card)
15630 struct mmc_request mrq;
15631 struct mmc_command cmd;
15632 struct mmc_data data;
15633 unsigned int timeout_us;
15635 struct scatterlist sg;
15637 memset(&cmd, 0, sizeof(struct mmc_command));
15640 cmd.arg = card->rca << 16;
15641 cmd.flags = ((1 << 0)|(1 << 2)|(1 << 4)) | (0 << 5);
15643 err = mmc_wait_for_cmd(card->host, &cmd, 0);
15644 if ((err != 0) || !(cmd.resp[0] & (1 << 5)))
15647 memset(&cmd, 0, sizeof(struct mmc_command));
15651 cmd.flags = ((1 << 0)|(1 << 2)|(1 << 4)) | (1 << 5);
15653 memset(&data, 0, sizeof(struct mmc_data));
15655 data.timeout_ns = card->csd.tacc_ns * 100;
15656 data.timeout_clks = card->csd.tacc_clks * 100;
15658 timeout_us = data.timeout_ns / 1000;
15659 timeout_us += data.timeout_clks * 1000 /
15660 (card->host->ios.clock / 1000);
15662 if (timeout_us > 100000) {
15663 data.timeout_ns = 100000000;
15664 data.timeout_clks = 0;
15669 data.flags = (1 << 9);
15673 memset(&mrq, 0, sizeof(struct mmc_request));
15678 sg_init_one(&sg, &blocks, 4);
15680 mmc_wait_for_req(card->host, &mrq);
15682 if (cmd.error != 0 || data.error != 0)
15685 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))));
15690 static int mmc_blk_issue_rq(struct mmc_queue *mq, struct request *req)
15692 struct mmc_blk_data *md = mq->data;
15693 struct mmc_card *card = md->queue.card;
15694 struct mmc_blk_request brq;
15697 if (mmc_card_claim_host(card))
15701 struct mmc_command cmd;
15702 u32 readcmd, writecmd;
15704 memset(&brq, 0, sizeof(struct mmc_blk_request));
15705 brq.mrq.cmd = &brq.cmd;
15706 brq.mrq.data = &brq.data;
15708 brq.cmd.arg = req->sector << 9;
15709 brq.cmd.flags = ((1 << 0)|(1 << 2)|(1 << 4)) | (1 << 5);
15710 brq.data.blksz = 1 << md->block_bits;
15711 brq.data.blocks = req->nr_sectors >> (md->block_bits - 9);
15712 brq.stop.opcode = 12;
15714 brq.stop.flags = ((1 << 0)|(1 << 2)|(1 << 4)|(1 << 3)) | (0 << 5);
15716 mmc_set_data_timeout(&brq.data, card, ((req)->cmd_flags & 1) != 0);
15724 if (((req)->cmd_flags & 1) != 0 &&
15725 !(card->host->caps & (1 << 1)) &&
15726 !((card)->state & (1<<3)))
15727 brq.data.blocks = 1;
15729 if (brq.data.blocks > 1) {
15730 brq.data.flags |= (1 << 11);
15731 brq.mrq.stop = &brq.stop;
15735 brq.mrq.stop = ((void *)0);
15740 if (((req)->cmd_flags & 1) == 0) {
15741 brq.cmd.opcode = readcmd;
15742 brq.data.flags |= (1 << 9);
15744 brq.cmd.opcode = writecmd;
15745 brq.data.flags |= (1 << 8);
15748 brq.data.sg = mq->sg;
15749 brq.data.sg_len = blk_rq_map_sg(req->q, req, brq.data.sg);
15751 mmc_wait_for_req(card->host, &brq.mrq);
15752 if (brq.cmd.error) {
15753 printk("<3>" "%s: error %d sending read/write command\n",
15754 req->rq_disk->disk_name, brq.cmd.error);
15758 if (brq.data.error) {
15759 printk("<3>" "%s: error %d transferring data\n",
15760 req->rq_disk->disk_name, brq.data.error);
15764 if (brq.stop.error) {
15765 printk("<3>" "%s: error %d sending stop command\n",
15766 req->rq_disk->disk_name, brq.stop.error);
15770 if (((req)->cmd_flags & 1) != 0) {
15775 cmd.arg = card->rca << 16;
15776 cmd.flags = ((1 << 0)|(1 << 2)|(1 << 4)) | (0 << 5);
15777 err = mmc_wait_for_cmd(card->host, &cmd, 5);
15779 printk("<3>" "%s: error %d requesting status\n",
15780 req->rq_disk->disk_name, err);
15783 } while (!(cmd.resp[0] & (1 << 8)));
15784 # 325 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c"
15790 do { local_irq_disable(); do { do { } while (0); (void)0; (void)(&md->lock); } while (0); } while (0);
15791 ret = end_that_request_chunk(req, 1, brq.data.bytes_xfered);
15796 add_disk_randomness(req->rq_disk);
15797 blkdev_dequeue_request(req);
15798 end_that_request_last(req, 1);
15800 do { local_irq_enable(); do { do { } while (0); (void)0; (void)(&md->lock); } while (0); } while (0);
15803 mmc_release_host((card)->host);
15809 # 360 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c"
15810 if (((req)->cmd_flags & 1) != 0 && ((card)->state & (1<<3))) {
15812 unsigned int bytes;
15814 blocks = mmc_sd_num_wr_blocks(card);
15815 if (blocks != (u32)-1) {
15816 if (card->csd.write_partial)
15817 bytes = blocks << md->block_bits;
15819 bytes = blocks << 9;
15820 do { local_irq_disable(); do { do { } while (0); (void)0; (void)(&md->lock); } while (0); } while (0);
15821 ret = end_that_request_chunk(req, 1, bytes);
15822 do { local_irq_enable(); do { do { } while (0); (void)0; (void)(&md->lock); } while (0); } while (0);
15824 } else if (((req)->cmd_flags & 1) != 0 &&
15825 (card->host->caps & (1 << 1))) {
15826 do { local_irq_disable(); do { do { } while (0); (void)0; (void)(&md->lock); } while (0); } while (0);
15827 ret = end_that_request_chunk(req, 1, brq.data.bytes_xfered);
15828 do { local_irq_enable(); do { do { } while (0); (void)0; (void)(&md->lock); } while (0); } while (0);
15831 mmc_release_host((card)->host);
15833 do { local_irq_disable(); do { do { } while (0); (void)0; (void)(&md->lock); } while (0); } while (0);
15835 ret = end_that_request_chunk(req, 0,
15836 req->current_nr_sectors << 9);
15839 add_disk_randomness(req->rq_disk);
15840 blkdev_dequeue_request(req);
15841 end_that_request_last(req, 0);
15842 do { local_irq_enable(); do { do { } while (0); (void)0; (void)(&md->lock); } while (0); } while (0);
15849 static unsigned long dev_use[(256 >> 3)/(8*sizeof(unsigned long))];
15851 static inline __attribute__((always_inline)) int mmc_blk_readonly(struct mmc_card *card)
15853 return ((card)->state & (1<<4)) ||
15854 !(card->csd.cmdclass & (1<<4));
15857 static struct mmc_blk_data *mmc_blk_alloc(struct mmc_card *card)
15859 struct mmc_blk_data *md;
15862 devidx = find_next_zero_bit((dev_use), ((256 >> 3)), 0);
15863 if (devidx >= (256 >> 3))
15864 return ERR_PTR(-28);
15865 __set_bit(devidx, dev_use);
15867 md = kmalloc(sizeof(struct mmc_blk_data), ((( gfp_t)0x10u) | (( gfp_t)0x40u) | (( gfp_t)0x80u)));
15873 memset(md, 0, sizeof(struct mmc_blk_data));
15879 md->read_only = mmc_blk_readonly(card);
15886 md->block_bits = 9;
15888 md->disk = alloc_disk(1 << 3);
15889 if (md->disk == ((void *)0)) {
15894 do { *(&md->lock) = (spinlock_t) { .raw_lock = { }, }; } while (0);
15897 ret = mmc_init_queue(&md->queue, card, &md->lock);
15901 md->queue.prep_fn = mmc_blk_prep_rq;
15902 md->queue.issue_fn = mmc_blk_issue_rq;
15903 md->queue.data = md;
15905 md->disk->major = major;
15906 md->disk->first_minor = devidx << 3;
15907 md->disk->fops = &mmc_bdops;
15908 md->disk->private_data = md;
15909 md->disk->queue = md->queue.queue;
15910 md->disk->driverfs_dev = &card->dev;
15911 # 474 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c"
15912 sprintf(md->disk->disk_name, "mmcblk%d", devidx);
15914 blk_queue_hardsect_size(md->queue.queue, 1 << md->block_bits);
15920 set_capacity(md->disk, card->csd.capacity << (card->csd.read_blkbits - 9));
15924 put_disk(md->disk);
15928 return ERR_PTR(ret);
15932 mmc_blk_set_blksize(struct mmc_blk_data *md, struct mmc_card *card)
15934 struct mmc_command cmd;
15937 mmc_card_claim_host(card);
15939 cmd.arg = 1 << md->block_bits;
15940 cmd.flags = ((1 << 0)|(1 << 2)|(1 << 4)) | (0 << 5);
15941 err = mmc_wait_for_cmd(card->host, &cmd, 5);
15942 mmc_release_host((card)->host);
15945 printk("<3>" "%s: unable to set block size to %d: %d\n",
15946 md->disk->disk_name, cmd.arg, err);
15953 static int mmc_blk_probe(struct mmc_card *card)
15955 struct mmc_blk_data *md;
15961 if (!(card->csd.cmdclass & (1<<2)))
15964 md = mmc_blk_alloc(card);
15966 return PTR_ERR(md);
15968 err = mmc_blk_set_blksize(md, card);
15972 printk("<6>" "%s: %s %s %lluKiB %s\n",
15973 md->disk->disk_name, ((card)->dev.bus_id), ((card)->cid.prod_name),
15974 (unsigned long long)(get_capacity(md->disk) >> 1),
15975 md->read_only ? "(ro)" : "");
15977 dev_set_drvdata(&(card)->dev, md);
15978 add_disk(md->disk);
15987 static void mmc_blk_remove(struct mmc_card *card)
15989 struct mmc_blk_data *md = dev_get_drvdata(&(card)->dev);
15994 del_gendisk(md->disk);
15999 md->disk->queue = ((void *)0);
16001 devidx = md->disk->first_minor >> 3;
16002 __clear_bit(devidx, dev_use);
16006 dev_set_drvdata(&(card)->dev, ((void *)0));
16008 # 597 "/mnt/data/_home/mano/linuxsh/kernel/linux-2.6.19-rc2-work/drivers/mmc/mmc_block.c"
16009 static struct mmc_driver mmc_driver = {
16013 .probe = mmc_blk_probe,
16014 .remove = mmc_blk_remove,
16015 .suspend = ((void *)0),
16016 .resume = ((void *)0),
16019 static int __attribute__ ((__section__ (".init.text"))) mmc_blk_init(void)
16023 res = register_blkdev(major, "mmc");
16025 printk("<4>" "Unable to get major %d for MMC media: %d\n",
16032 return mmc_register_driver(&mmc_driver);
16038 static void __attribute__((__used__)) __attribute__ ((__section__(".exit.text"))) mmc_blk_exit(void)
16040 mmc_unregister_driver(&mmc_driver);
16041 unregister_blkdev(major, "mmc");
16044 static initcall_t __initcall_mmc_blk_init __attribute__((__used__)) __attribute__((__section__(".initcall" "6" ".init"))) = mmc_blk_init;;
16045 static exitcall_t __exitcall_mmc_blk_exit __attribute__((__used__)) __attribute__ ((__section__ (".exitcall.exit"))) = mmc_blk_exit;;
16050 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 }; ;