diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/asm-alpha/signal.h linux-2.6.11.3~patched/include/asm-alpha/signal.h --- linux-2.6.11.3/include/asm-alpha/signal.h 2005-03-13 08:44:27.000000000 +0200 +++ linux-2.6.11.3~patched/include/asm-alpha/signal.h 2005-03-13 21:43:22.329186792 +0200 @@ -24,7 +24,9 @@ /* Here we must cater to libcs that poke about in kernel headers. */ #define NSIG 32 +#ifndef __sigset_t_defined typedef unsigned long sigset_t; +#endif #endif /* __KERNEL__ */ @@ -158,6 +160,7 @@ #else /* Here we must cater to libcs that poke about in kernel headers. */ +#ifndef _SIGNAL_H struct sigaction { union { __sighandler_t _sa_handler; @@ -166,26 +169,31 @@ sigset_t sa_mask; int sa_flags; }; +#endif #define sa_handler _u._sa_handler #define sa_sigaction _u._sa_sigaction #endif /* __KERNEL__ */ +#ifndef _SIGNAL_H typedef struct sigaltstack { void __user *ss_sp; int ss_flags; size_t ss_size; } stack_t; +#endif /* sigstack(2) is deprecated, and will be withdrawn in a future version of the X/Open CAE Specification. Use sigaltstack instead. It is only implemented here for OSF/1 compatibility. */ +#ifndef _SIGNAL_H struct sigstack { void __user *ss_sp; int ss_onstack; }; +#endif #ifdef __KERNEL__ #include diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/asm-generic/siginfo.h linux-2.6.11.3~patched/include/asm-generic/siginfo.h --- linux-2.6.11.3/include/asm-generic/siginfo.h 2005-03-13 08:44:17.000000000 +0200 +++ linux-2.6.11.3~patched/include/asm-generic/siginfo.h 2005-03-13 21:44:20.724309384 +0200 @@ -5,10 +5,12 @@ #include #include +#ifndef _SIGNAL_H typedef union sigval { int sival_int; void __user *sival_ptr; } sigval_t; +#endif /* * This is the size (including padding) of the part of the @@ -37,7 +39,7 @@ #endif #ifndef HAVE_ARCH_SIGINFO_T - +#ifndef _SIGNAL_H typedef struct siginfo { int si_signo; int si_errno; @@ -92,7 +94,7 @@ } _sigpoll; } _sifields; } siginfo_t; - +#endif #endif /* @@ -242,6 +244,7 @@ #define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE/sizeof(int)) - 3) #endif +#ifndef _SIGNAL_H typedef struct sigevent { sigval_t sigev_value; int sigev_signo; @@ -256,7 +259,7 @@ } _sigev_thread; } _sigev_un; } sigevent_t; - +#endif #define sigev_notify_function _sigev_un._sigev_thread._function #define sigev_notify_attributes _sigev_un._sigev_thread._attribute #define sigev_notify_thread_id _sigev_un._tid diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/asm-i386/cache.h linux-2.6.11.3~patched/include/asm-i386/cache.h --- linux-2.6.11.3/include/asm-i386/cache.h 2005-03-13 08:44:01.000000000 +0200 +++ linux-2.6.11.3~patched/include/asm-i386/cache.h 2005-03-13 21:43:22.291192568 +0200 @@ -7,7 +7,11 @@ #include /* L1 cache line size */ +#ifndef CONFIG_X86_L1_CACHE_SHIFT +#define L1_CACHE_SHIFT 7 /* 7 is given with X86_GENERIC kernel config */ +#else #define L1_CACHE_SHIFT (CONFIG_X86_L1_CACHE_SHIFT) +#endif #define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT) #define L1_CACHE_SHIFT_MAX 7 /* largest L1 which this arch supports */ diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/asm-i386/ipc.h linux-2.6.11.3~patched/include/asm-i386/ipc.h --- linux-2.6.11.3/include/asm-i386/ipc.h 2005-03-13 08:44:40.000000000 +0200 +++ linux-2.6.11.3~patched/include/asm-i386/ipc.h 2005-03-13 21:43:22.250198800 +0200 @@ -6,6 +6,8 @@ * * See arch/i386/kernel/sys_i386.c for ugly details.. */ + +#include struct ipc_kludge { struct msgbuf __user *msgp; long msgtyp; diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/asm-i386/mpspec.h linux-2.6.11.3~patched/include/asm-i386/mpspec.h --- linux-2.6.11.3/include/asm-i386/mpspec.h 2005-03-13 08:43:57.000000000 +0200 +++ linux-2.6.11.3~patched/include/asm-i386/mpspec.h 2005-03-13 21:43:22.231201688 +0200 @@ -3,7 +3,7 @@ #include #include -#include +#include extern int mp_bus_id_to_type [MAX_MP_BUSSES]; extern int mp_bus_id_to_node [MAX_MP_BUSSES]; diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/asm-i386/processor.h linux-2.6.11.3~patched/include/asm-i386/processor.h --- linux-2.6.11.3/include/asm-i386/processor.h 2005-03-13 08:44:01.000000000 +0200 +++ linux-2.6.11.3~patched/include/asm-i386/processor.h 2005-03-13 21:43:22.292192416 +0200 @@ -8,7 +8,9 @@ #define __ASM_I386_PROCESSOR_H #include +#ifdef __KERNEL__ #include +#endif #include #include #include @@ -415,8 +417,10 @@ /* * .. and then another 0x100 bytes for emergency kernel stack */ - unsigned long stack[64]; -} __attribute__((packed)); + #ifndef stack /* LVM2-Userspace defines this as a function... */ + unsigned long stack[64]; + #endif +} __attribute__((packed)); #define ARCH_MIN_TASKALIGN 16 @@ -504,7 +508,9 @@ extern int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); extern unsigned long thread_saved_pc(struct task_struct *tsk); +#ifdef __KERNEL__ void show_trace(struct task_struct *task, unsigned long *stack); +#endif unsigned long get_wchan(struct task_struct *p); diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/asm-i386/semaphore.h linux-2.6.11.3~patched/include/asm-i386/semaphore.h --- linux-2.6.11.3/include/asm-i386/semaphore.h 2005-03-13 08:44:16.000000000 +0200 +++ linux-2.6.11.3~patched/include/asm-i386/semaphore.h 2005-03-13 21:43:22.232201536 +0200 @@ -3,8 +3,6 @@ #include -#ifdef __KERNEL__ - /* * SMP- and interrupt-safe semaphores.. * @@ -196,4 +194,3 @@ } #endif -#endif diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/asm-i386/signal.h linux-2.6.11.3~patched/include/asm-i386/signal.h --- linux-2.6.11.3/include/asm-i386/signal.h 2005-03-13 08:44:10.000000000 +0200 +++ linux-2.6.11.3~patched/include/asm-i386/signal.h 2005-03-13 21:43:22.236200928 +0200 @@ -27,7 +27,9 @@ /* Here we must cater to libcs that poke about in kernel headers. */ #define NSIG 32 +#ifndef __sigset_t_defined typedef unsigned long sigset_t; +#endif #endif /* __KERNEL__ */ @@ -160,6 +162,7 @@ #else /* Here we must cater to libcs that poke about in kernel headers. */ +#ifndef _SIGNAL_H struct sigaction { union { __sighandler_t _sa_handler; @@ -169,17 +172,20 @@ unsigned long sa_flags; void (*sa_restorer)(void); }; +#endif #define sa_handler _u._sa_handler #define sa_sigaction _u._sa_sigaction #endif /* __KERNEL__ */ +#ifndef _SIGNAL_H typedef struct sigaltstack { void __user *ss_sp; int ss_flags; size_t ss_size; } stack_t; +#endif #ifdef __KERNEL__ #include diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/asm-i386/smp.h linux-2.6.11.3~patched/include/asm-i386/smp.h --- linux-2.6.11.3/include/asm-i386/smp.h 2005-03-13 08:44:50.000000000 +0200 +++ linux-2.6.11.3~patched/include/asm-i386/smp.h 2005-03-13 21:43:22.237200776 +0200 @@ -70,7 +70,7 @@ #ifdef APIC_DEFINITION extern int hard_smp_processor_id(void); #else -#include +#include static inline int hard_smp_processor_id(void) { /* we don't want to mark this access volatile - bad code generation */ diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/asm-i386/system.h linux-2.6.11.3~patched/include/asm-i386/system.h --- linux-2.6.11.3/include/asm-i386/system.h 2005-03-13 08:43:59.000000000 +0200 +++ linux-2.6.11.3~patched/include/asm-i386/system.h 2005-03-13 21:43:22.291192568 +0200 @@ -244,26 +244,26 @@ #endif static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old, - unsigned long new, int size) + unsigned long _new, int size) { unsigned long prev; switch (size) { case 1: __asm__ __volatile__(LOCK_PREFIX "cmpxchgb %b1,%2" : "=a"(prev) - : "q"(new), "m"(*__xg(ptr)), "0"(old) + : "q"(_new), "m"(*__xg(ptr)), "0"(old) : "memory"); return prev; case 2: __asm__ __volatile__(LOCK_PREFIX "cmpxchgw %w1,%2" : "=a"(prev) - : "q"(new), "m"(*__xg(ptr)), "0"(old) + : "q"(_new), "m"(*__xg(ptr)), "0"(old) : "memory"); return prev; case 4: __asm__ __volatile__(LOCK_PREFIX "cmpxchgl %1,%2" : "=a"(prev) - : "q"(new), "m"(*__xg(ptr)), "0"(old) + : "q"(_new), "m"(*__xg(ptr)), "0"(old) : "memory"); return prev; } diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/asm-ia64/fpu.h linux-2.6.11.3~patched/include/asm-ia64/fpu.h --- linux-2.6.11.3/include/asm-ia64/fpu.h 2005-03-13 08:44:42.000000000 +0200 +++ linux-2.6.11.3~patched/include/asm-ia64/fpu.h 2005-03-13 21:43:22.323187704 +0200 @@ -53,13 +53,20 @@ | FPSR_S3 (FPSF_DEFAULT | FPSF_TD)) # ifndef __ASSEMBLY__ +# ifndef __KERNEL__ +# include + /* Versioning, newer glibc's declare ia64_fpreg without telling us + -- plasmaroo */ +# endif +# if !defined(RTLD_DEEPBIND) || !defined(_BITS_SIGCONTEXT_H) || defined(__KERNEL__) struct ia64_fpreg { union { unsigned long bits[2]; long double __dummy; /* force 16-byte alignment */ } u; }; +# endif # endif /* __ASSEMBLY__ */ diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/asm-ia64/unistd.h linux-2.6.11.3~patched/include/asm-ia64/unistd.h --- linux-2.6.11.3/include/asm-ia64/unistd.h 2005-03-13 08:44:06.000000000 +0200 +++ linux-2.6.11.3~patched/include/asm-ia64/unistd.h 2005-03-13 21:43:22.298191504 +0200 @@ -121,7 +121,7 @@ #define __NR_setdomainname 1129 #define __NR_uname 1130 #define __NR_adjtimex 1131 -/* 1132 was __NR_create_module */ +#define __NR_create_module 1132 #define __NR_init_module 1133 #define __NR_delete_module 1134 /* 1135 was __NR_get_kernel_syms */ diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/asm-parisc/bitops.h linux-2.6.11.3~patched/include/asm-parisc/bitops.h --- linux-2.6.11.3/include/asm-parisc/bitops.h 2005-03-13 08:43:59.000000000 +0200 +++ linux-2.6.11.3~patched/include/asm-parisc/bitops.h 2005-03-13 21:43:22.299191352 +0200 @@ -203,8 +203,6 @@ return !!(*addr & mask); } -#ifdef __KERNEL__ - /** * __ffs - find first bit in word. returns 0 to "BITS_PER_LONG-1". * @word: The word to search @@ -224,6 +222,7 @@ * cycles for each mispredicted branch. */ +#ifndef __ffs_X static __inline__ unsigned long __ffs(unsigned long x) { unsigned long ret; @@ -254,6 +253,7 @@ : "+r" (x), "=r" (ret) ); return ret; } +#endif /* Undefined if no bit is zero. */ #define ffz(x) __ffs(~x) @@ -345,8 +345,6 @@ #endif } -#endif /* __KERNEL__ */ - /* * This implementation of find_{first,next}_zero_bit was stolen from * Linus' asm-alpha/bitops.h. @@ -486,7 +484,7 @@ size -= result; offset &= 31UL; if (offset) { - tmp = cpu_to_le32p(p++); + tmp = __cpu_to_le32p(p++); tmp |= ~0UL >> (32-offset); if (size < 32) goto found_first; @@ -496,14 +494,14 @@ result += 32; } while (size >= 32) { - if ((tmp = cpu_to_le32p(p++)) != ~0U) + if ((tmp = __cpu_to_le32p(p++)) != ~0U) goto found_middle; result += 32; size -= 32; } if (!size) return result; - tmp = cpu_to_le32p(p); + tmp = __cpu_to_le32p(p); found_first: tmp |= ~0U << size; found_middle: diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/asm-parisc/hardware.h linux-2.6.11.3~patched/include/asm-parisc/hardware.h --- linux-2.6.11.3/include/asm-parisc/hardware.h 2005-03-13 08:44:31.000000000 +0200 +++ linux-2.6.11.3~patched/include/asm-parisc/hardware.h 2005-03-13 21:43:22.299191352 +0200 @@ -45,41 +45,41 @@ struct parisc_driver; struct io_module { - volatile uint32_t nothing; /* reg 0 */ - volatile uint32_t io_eim; - volatile uint32_t io_dc_adata; - volatile uint32_t io_ii_cdata; - volatile uint32_t io_dma_link; /* reg 4 */ - volatile uint32_t io_dma_command; - volatile uint32_t io_dma_address; - volatile uint32_t io_dma_count; - volatile uint32_t io_flex; /* reg 8 */ - volatile uint32_t io_spa_address; - volatile uint32_t reserved1[2]; - volatile uint32_t io_command; /* reg 12 */ - volatile uint32_t io_status; - volatile uint32_t io_control; - volatile uint32_t io_data; - volatile uint32_t reserved2; /* reg 16 */ - volatile uint32_t chain_addr; - volatile uint32_t sub_mask_clr; - volatile uint32_t reserved3[13]; - volatile uint32_t undefined[480]; - volatile uint32_t unpriv[512]; + volatile __u32 nothing; /* reg 0 */ + volatile __u32 io_eim; + volatile __u32 io_dc_adata; + volatile __u32 io_ii_cdata; + volatile __u32 io_dma_link; /* reg 4 */ + volatile __u32 io_dma_command; + volatile __u32 io_dma_address; + volatile __u32 io_dma_count; + volatile __u32 io_flex; /* reg 8 */ + volatile __u32 io_spa_address; + volatile __u32 reserved1[2]; + volatile __u32 io_command; /* reg 12 */ + volatile __u32 io_status; + volatile __u32 io_control; + volatile __u32 io_data; + volatile __u32 reserved2; /* reg 16 */ + volatile __u32 chain_addr; + volatile __u32 sub_mask_clr; + volatile __u32 reserved3[13]; + volatile __u32 undefined[480]; + volatile __u32 unpriv[512]; }; struct bc_module { - volatile uint32_t unused1[12]; - volatile uint32_t io_command; - volatile uint32_t io_status; - volatile uint32_t io_control; - volatile uint32_t unused2[1]; - volatile uint32_t io_err_resp; - volatile uint32_t io_err_info; - volatile uint32_t io_err_req; - volatile uint32_t unused3[11]; - volatile uint32_t io_io_low; - volatile uint32_t io_io_high; + volatile __u32 unused1[12]; + volatile __u32 io_command; + volatile __u32 io_status; + volatile __u32 io_control; + volatile __u32 unused2[1]; + volatile __u32 io_err_resp; + volatile __u32 io_err_info; + volatile __u32 io_err_req; + volatile __u32 unused3[11]; + volatile __u32 io_io_low; + volatile __u32 io_io_high; }; #define HPHW_NPROC 0 diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/asm-parisc/processor.h linux-2.6.11.3~patched/include/asm-parisc/processor.h --- linux-2.6.11.3/include/asm-parisc/processor.h 2005-03-13 08:44:45.000000000 +0200 +++ linux-2.6.11.3~patched/include/asm-parisc/processor.h 2005-03-13 21:43:22.300191200 +0200 @@ -12,11 +12,11 @@ #include #include +#include #include #include #include #include -#include #include #endif /* __ASSEMBLY__ */ diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/asm-parisc/types.h linux-2.6.11.3~patched/include/asm-parisc/types.h --- linux-2.6.11.3/include/asm-parisc/types.h 2005-03-13 08:44:08.000000000 +0200 +++ linux-2.6.11.3~patched/include/asm-parisc/types.h 2005-03-13 21:43:22.309189832 +0200 @@ -19,7 +19,7 @@ typedef __signed__ int __s32; typedef unsigned int __u32; -#if defined(__GNUC__) && !defined(__STRICT_ANSI__) +#if defined(__GNUC__) typedef __signed__ long long __s64; typedef unsigned long long __u64; #endif diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/asm-ppc/bitops.h linux-2.6.11.3~patched/include/asm-ppc/bitops.h --- linux-2.6.11.3/include/asm-ppc/bitops.h 2005-03-13 08:44:26.000000000 +0200 +++ linux-2.6.11.3~patched/include/asm-ppc/bitops.h 2005-03-13 21:43:22.324187552 +0200 @@ -2,9 +2,9 @@ * bitops.h: Bit string operations on the ppc */ -#ifdef __KERNEL__ #ifndef _PPC_BITOPS_H #define _PPC_BITOPS_H +#ifdef __KERNEL__ #include #include @@ -251,6 +251,8 @@ return __ilog2(x & -x) + 1; } +#endif /* __KERNEL__ */ + /* * fls: find last (most-significant) bit set. * Note fls(0) = 0, fls(1) = 1, fls(0x80000000) = 32. @@ -263,6 +265,8 @@ return 32 - lz; } +#ifdef __KERNEL__ + /* * hweightN: returns the hamming weight (i.e. the number * of bits set) of a N-bit word @@ -456,5 +460,6 @@ #define minix_test_bit(nr,addr) ext2_test_bit(nr,addr) #define minix_find_first_zero_bit(addr,size) ext2_find_first_zero_bit(addr,size) -#endif /* _PPC_BITOPS_H */ #endif /* __KERNEL__ */ +#endif /* _PPC_BITOPS_H */ + diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/asm-ppc/signal.h linux-2.6.11.3~patched/include/asm-ppc/signal.h --- linux-2.6.11.3/include/asm-ppc/signal.h 2005-03-13 08:44:05.000000000 +0200 +++ linux-2.6.11.3~patched/include/asm-ppc/signal.h 2005-03-13 21:43:22.251198648 +0200 @@ -17,9 +17,11 @@ typedef unsigned long old_sigset_t; /* at least 32 bits */ +#ifndef __sigset_t_defined typedef struct { unsigned long sig[_NSIG_WORDS]; } sigset_t; +#endif #define SIGHUP 1 #define SIGINT 2 @@ -129,28 +131,51 @@ #define SIG_ERR ((__sighandler_t)-1) /* error return from signal */ struct old_sigaction { +#ifdef __USE_POSIX199309 +# ifdef sa_handler +# undef sa_handler +# endif +# ifdef sa_sigaction +# undef sa_sigaction +# endif + union + { + /* Used if SA_SIGINFO is not set. */ + __sighandler_t sa_handler; + /* Used if SA_SIGINFO is set. */ + void (*sa_sigaction) (int, siginfo_t *, void *); + } + __sigaction_handler; +# define sa_handler __sigaction_handler.sa_handler +# define sa_sigaction __sigaction_handler.sa_sigaction +#else __sighandler_t sa_handler; +#endif old_sigset_t sa_mask; unsigned long sa_flags; __sigrestore_t sa_restorer; }; +#ifndef _SIGNAL_H struct sigaction { __sighandler_t sa_handler; unsigned long sa_flags; __sigrestore_t sa_restorer; sigset_t sa_mask; /* mask last for extensibility */ }; +#endif struct k_sigaction { struct sigaction sa; }; +#ifndef _SIGNAL_H typedef struct sigaltstack { void __user *ss_sp; int ss_flags; size_t ss_size; } stack_t; +#endif #ifdef __KERNEL__ #include diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/asm-ppc/unaligned.h linux-2.6.11.3~patched/include/asm-ppc/unaligned.h --- linux-2.6.11.3/include/asm-ppc/unaligned.h 2005-03-13 08:44:30.000000000 +0200 +++ linux-2.6.11.3~patched/include/asm-ppc/unaligned.h 2005-03-13 21:43:22.309189832 +0200 @@ -1,4 +1,3 @@ -#ifdef __KERNEL__ #ifndef __PPC_UNALIGNED_H #define __PPC_UNALIGNED_H @@ -15,4 +14,3 @@ #define put_unaligned(val, ptr) ((void)( *(ptr) = (val) )) #endif -#endif /* __KERNEL__ */ diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/asm-ppc64/page.h linux-2.6.11.3~patched/include/asm-ppc64/page.h --- linux-2.6.11.3/include/asm-ppc64/page.h 2005-03-13 08:43:59.000000000 +0200 +++ linux-2.6.11.3~patched/include/asm-ppc64/page.h 2005-03-13 21:43:22.321188008 +0200 @@ -91,6 +91,12 @@ /* to align the pointer to the (next) page boundary */ #define PAGE_ALIGN(addr) _ALIGN(addr, PAGE_SIZE) +#ifdef STRICT_MM_TYPECHECKS +typedef struct { unsigned long pte; } pte_t; +#else +typedef unsigned long pte_t; +#endif + #ifdef __KERNEL__ #ifndef __ASSEMBLY__ #include @@ -129,7 +135,6 @@ * These are used to make use of C type-checking. * Entries in the pte table are 64b, while entries in the pgd & pmd are 32b. */ -typedef struct { unsigned long pte; } pte_t; typedef struct { unsigned int pmd; } pmd_t; typedef struct { unsigned int pgd; } pgd_t; typedef struct { unsigned long pgprot; } pgprot_t; @@ -148,7 +153,6 @@ /* * .. while these make it easier on the compiler */ -typedef unsigned long pte_t; typedef unsigned int pmd_t; typedef unsigned int pgd_t; typedef unsigned long pgprot_t; diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/asm-ppc64/processor.h linux-2.6.11.3~patched/include/asm-ppc64/processor.h --- linux-2.6.11.3/include/asm-ppc64/processor.h 2005-03-13 08:44:45.000000000 +0200 +++ linux-2.6.11.3~patched/include/asm-ppc64/processor.h 2005-03-13 21:43:22.310189680 +0200 @@ -565,9 +565,9 @@ unsigned long pad[3]; /* was saved_msr, saved_softe */ #ifdef CONFIG_ALTIVEC /* Complete AltiVec register set */ - vector128 vr[32] __attribute((aligned(16))); + __vector128 vr[32] __attribute((aligned(16))); /* AltiVec status */ - vector128 vscr __attribute((aligned(16))); + __vector128 vscr __attribute((aligned(16))); unsigned long vrsave; int used_vr; /* set if process has used altivec */ #endif /* CONFIG_ALTIVEC */ diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/asm-ppc64/spinlock.h linux-2.6.11.3~patched/include/asm-ppc64/spinlock.h --- linux-2.6.11.3/include/asm-ppc64/spinlock.h 2005-03-13 08:44:45.000000000 +0200 +++ linux-2.6.11.3~patched/include/asm-ppc64/spinlock.h 2005-03-13 21:43:22.321188008 +0200 @@ -35,9 +35,10 @@ #endif } rwlock_t; -#ifdef __KERNEL__ #define SPIN_LOCK_UNLOCKED (spinlock_t) { 0 } +#ifdef __KERNEL__ + #define spin_is_locked(x) ((x)->lock != 0) #define spin_lock_init(x) do { *(x) = SPIN_LOCK_UNLOCKED; } while(0) diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/asm-sparc/signal.h linux-2.6.11.3~patched/include/asm-sparc/signal.h --- linux-2.6.11.3/include/asm-sparc/signal.h 2005-03-13 08:44:28.000000000 +0200 +++ linux-2.6.11.3~patched/include/asm-sparc/signal.h 2005-03-13 21:43:22.323187704 +0200 @@ -106,7 +106,9 @@ #ifndef __ASSEMBLY__ +#ifndef __sigset_t_defined typedef unsigned long __old_sigset_t; +#endif typedef struct { unsigned long sig[_NSIG_WORDS]; diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/asm-sparc64/signal.h linux-2.6.11.3~patched/include/asm-sparc64/signal.h --- linux-2.6.11.3/include/asm-sparc64/signal.h 2005-03-13 08:44:15.000000000 +0200 +++ linux-2.6.11.3~patched/include/asm-sparc64/signal.h 2005-03-13 21:43:22.322187856 +0200 @@ -110,7 +110,9 @@ #ifndef __ASSEMBLY__ +#ifndef __sigset_t_defined typedef unsigned long __old_sigset_t; /* at least 32 bits */ +#endif typedef struct { unsigned long sig[_NSIG_WORDS]; diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/asm-x86_64/bitops.h linux-2.6.11.3~patched/include/asm-x86_64/bitops.h --- linux-2.6.11.3/include/asm-x86_64/bitops.h 2005-03-13 08:44:23.000000000 +0200 +++ linux-2.6.11.3~patched/include/asm-x86_64/bitops.h 2005-03-13 21:43:22.297191656 +0200 @@ -384,8 +384,6 @@ #endif /* __KERNEL__ */ -#ifdef __KERNEL__ - #define ext2_set_bit(nr,addr) \ __test_and_set_bit((nr),(unsigned long*)addr) #define ext2_set_bit_atomic(lock,nr,addr) \ @@ -413,6 +411,4 @@ #define ARCH_HAS_ATOMIC_UNSIGNED 1 -#endif /* __KERNEL__ */ - #endif /* _X86_64_BITOPS_H */ diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/asm-x86_64/pda.h linux-2.6.11.3~patched/include/asm-x86_64/pda.h --- linux-2.6.11.3/include/asm-x86_64/pda.h 2005-03-13 08:44:47.000000000 +0200 +++ linux-2.6.11.3~patched/include/asm-x86_64/pda.h 2005-03-13 21:43:22.294192112 +0200 @@ -35,7 +35,7 @@ * have to mention %fs/%gs. So it needs to be done this Torvaldian way. */ #define sizeof_field(type,field) (sizeof(((type *)0)->field)) -#define typeof_field(type,field) typeof(((type *)0)->field) +#define typeof_field(type,field) __typeof__(((type *)0)->field) extern void __bad_pda_field(void); diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/asm-x86_64/processor.h linux-2.6.11.3~patched/include/asm-x86_64/processor.h --- linux-2.6.11.3/include/asm-x86_64/processor.h 2005-03-13 08:44:43.000000000 +0200 +++ linux-2.6.11.3~patched/include/asm-x86_64/processor.h 2005-03-13 21:43:22.252198496 +0200 @@ -183,17 +183,17 @@ #define INVALID_IO_BITMAP_OFFSET 0x8000 struct i387_fxsave_struct { - u16 cwd; - u16 swd; - u16 twd; - u16 fop; - u64 rip; - u64 rdp; - u32 mxcsr; - u32 mxcsr_mask; - u32 st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */ - u32 xmm_space[64]; /* 16*16 bytes for each XMM-reg = 128 bytes */ - u32 padding[24]; + __u16 cwd; + __u16 swd; + __u16 twd; + __u16 fop; + __u64 rip; + __u64 rdp; + __u32 mxcsr; + __u32 mxcsr_mask; + __u32 st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */ + __u32 xmm_space[64]; /* 16*16 bytes for each XMM-reg = 128 bytes */ + __u32 padding[24]; } __attribute__ ((aligned (16))); union i387_union { @@ -201,16 +201,16 @@ }; struct tss_struct { - u32 reserved1; - u64 rsp0; - u64 rsp1; - u64 rsp2; - u64 reserved2; - u64 ist[7]; - u32 reserved3; - u32 reserved4; - u16 reserved5; - u16 io_bitmap_base; + __u32 reserved1; + __u64 rsp0; + __u64 rsp1; + __u64 rsp2; + __u64 reserved2; + __u64 ist[7]; + __u32 reserved3; + __u32 reserved4; + __u16 reserved5; + __u16 io_bitmap_base; /* * The extra 1 is there because the CPU will access an * additional byte beyond the end of the IO permission @@ -252,7 +252,7 @@ unsigned long *io_bitmap_ptr; unsigned io_bitmap_max; /* cached TLS descriptors. */ - u64 tls_array[GDT_ENTRY_TLS_ENTRIES]; + __u64 tls_array[GDT_ENTRY_TLS_ENTRIES]; } __attribute__((aligned(16))); #define INIT_THREAD {} diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/asm-x86_64/sigcontext.h linux-2.6.11.3~patched/include/asm-x86_64/sigcontext.h --- linux-2.6.11.3/include/asm-x86_64/sigcontext.h 2005-03-13 08:44:15.000000000 +0200 +++ linux-2.6.11.3~patched/include/asm-x86_64/sigcontext.h 2005-03-13 21:43:22.269195912 +0200 @@ -7,6 +7,12 @@ /* FXSAVE frame */ /* Note: reserved1/2 may someday contain valuable data. Always save/restore them when you change signal frames. */ + +#ifndef __KERNEL__ +#include /* Pulls in which contains both /* + /* of these structures... */ +#else +#ifndef _SIGNAL_H struct _fpstate { __u16 cwd; __u16 swd; @@ -53,3 +59,5 @@ }; #endif +#endif +#endif diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/asm-x86_64/system.h linux-2.6.11.3~patched/include/asm-x86_64/system.h --- linux-2.6.11.3/include/asm-x86_64/system.h 2005-03-13 08:44:38.000000000 +0200 +++ linux-2.6.11.3~patched/include/asm-x86_64/system.h 2005-03-13 21:46:19.052320792 +0200 @@ -4,6 +4,32 @@ #include #include #include +#include /* for LOCK_PREFIX... */ + +/* + * Alternative inline assembly with input. + * + * Pecularities: + * No memory clobber here. + * Argument numbers start with 1. + * Best is to use constraints that are fixed size (like (%1) ... "r") + * If you use variable sized constraints like "m" or "g" in the + * replacement maake sure to pad to the worst case length. + */ + +#define alternative_input(oldinstr, newinstr, feature, input) \ + asm volatile ("661:\n\t" oldinstr "\n662:\n" \ + ".section .altinstructions,\"a\"\n" \ + " .align 8\n" \ + " .quad 661b\n" /* label */ \ + " .quad 663f\n" /* new instruction */ \ + " .byte %c0\n" /* feature bit */ \ + " .byte 662b-661b\n" /* sourcelen */ \ + " .byte 664f-663f\n" /* replacementlen */ \ + ".previous\n" \ + ".section .altinstr_replacement,\"ax\"\n" \ + "663:\n\t" newinstr "\n664:\n" /* replacement */ \ + ".previous" :: "i" (feature), input) #ifdef __KERNEL__ @@ -114,30 +140,6 @@ ".previous" :: "i" (feature) : "memory") /* - * Alternative inline assembly with input. - * - * Pecularities: - * No memory clobber here. - * Argument numbers start with 1. - * Best is to use constraints that are fixed size (like (%1) ... "r") - * If you use variable sized constraints like "m" or "g" in the - * replacement maake sure to pad to the worst case length. - */ -#define alternative_input(oldinstr, newinstr, feature, input...) \ - asm volatile ("661:\n\t" oldinstr "\n662:\n" \ - ".section .altinstructions,\"a\"\n" \ - " .align 8\n" \ - " .quad 661b\n" /* label */ \ - " .quad 663f\n" /* new instruction */ \ - " .byte %c0\n" /* feature bit */ \ - " .byte 662b-661b\n" /* sourcelen */ \ - " .byte 664f-663f\n" /* replacementlen */ \ - ".previous\n" \ - ".section .altinstr_replacement,\"ax\"\n" \ - "663:\n\t" newinstr "\n664:\n" /* replacement */ \ - ".previous" :: "i" (feature), ##input) - -/* * Clear and set 'TS' bit respectively */ #define clts() __asm__ __volatile__ ("clts") diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/audit.h linux-2.6.11.3~patched/include/linux/audit.h --- linux-2.6.11.3/include/linux/audit.h 2005-03-13 08:44:27.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/audit.h 2005-03-13 21:43:22.268196064 +0200 @@ -97,6 +97,7 @@ #define AUDIT_FAIL_PANIC 2 #ifndef __KERNEL__ +#include struct audit_message { struct nlmsghdr nlh; char data[1200]; diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/bitmap.h linux-2.6.11.3~patched/include/linux/bitmap.h --- linux-2.6.11.3/include/linux/bitmap.h 2005-03-13 08:44:45.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/bitmap.h 2005-03-13 21:43:22.194207312 +0200 @@ -1,6 +1,7 @@ #ifndef __LINUX_BITMAP_H #define __LINUX_BITMAP_H +#ifdef __KERNEL__ #ifndef __ASSEMBLY__ #include @@ -251,5 +252,5 @@ } #endif /* __ASSEMBLY__ */ - +#endif /* __KERNEL__ */ #endif /* __LINUX_BITMAP_H */ diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/buffer_head.h linux-2.6.11.3~patched/include/linux/buffer_head.h --- linux-2.6.11.3/include/linux/buffer_head.h 2005-03-13 08:44:01.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/buffer_head.h 2005-03-13 21:43:22.207205336 +0200 @@ -37,6 +37,8 @@ #define MAX_BUF_PER_PAGE (PAGE_CACHE_SIZE / 512) +#ifdef __KERNEL__ + struct page; struct buffer_head; struct address_space; @@ -283,6 +285,8 @@ __wait_on_buffer(bh); } +#endif /* __KERNEL__ */ + static inline void lock_buffer(struct buffer_head *bh) { might_sleep(); diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/capi.h linux-2.6.11.3~patched/include/linux/capi.h --- linux-2.6.11.3/include/linux/capi.h 2005-03-13 08:44:27.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/capi.h 2005-03-13 21:43:22.308189984 +0200 @@ -17,6 +17,7 @@ #ifndef __KERNEL__ #include #endif +#include /* * CAPI_REGISTER diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/compiler-gcc2.h linux-2.6.11.3~patched/include/linux/compiler-gcc2.h --- linux-2.6.11.3/include/linux/compiler-gcc2.h 2005-03-13 08:44:44.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/compiler-gcc2.h 2005-03-13 21:43:22.208205184 +0200 @@ -12,7 +12,9 @@ # define __builtin_expect(x, expected_value) (x) #endif +#ifndef __attribute_used__ #define __attribute_used__ __attribute__((__unused__)) +#endif /* * The attribute `pure' is not implemented in GCC versions earlier diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/compiler.h linux-2.6.11.3~patched/include/linux/compiler.h --- linux-2.6.11.3/include/linux/compiler.h 2005-03-13 08:44:29.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/compiler.h 2005-03-13 21:47:16.875530328 +0200 @@ -31,6 +31,19 @@ # define __release(x) (void)0 # define __cond_lock(x) (x) #endif +#endif + +#if (__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1) +#define inline __inline__ +#define __inline__ __inline__ +#define __inline __inline__ +#ifndef asm +# define asm __asm__ +#endif +#ifndef volatile +# define volatile __volatile__ +#endif +#endif #ifdef __KERNEL__ @@ -62,7 +75,11 @@ /* Optimization barrier */ #ifndef barrier -# define barrier() __memory_barrier() +# ifdef mb +# define barrier() mb() +# else +# define barrier() __asm__ __volatile__ ("" : : : "memory") +# endif #endif #ifndef RELOC_HIDE @@ -74,8 +91,6 @@ #endif /* __ASSEMBLY__ */ -#endif /* __KERNEL__ */ - /* * Allow us to mark functions as 'deprecated' and have gcc emit a nice * warning for each use, in hopes of speeding the functions removal. @@ -145,4 +160,10 @@ #define __always_inline inline #endif +#ifdef __cplusplus +#define __cast__(_to) (_to) +#else +#define __cast__(_to) +#endif + #endif /* __LINUX_COMPILER_H */ diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/cpumask.h linux-2.6.11.3~patched/include/linux/cpumask.h --- linux-2.6.11.3/include/linux/cpumask.h 2005-03-13 08:44:21.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/cpumask.h 2005-03-13 21:43:39.629556736 +0200 @@ -1,5 +1,6 @@ #ifndef __LINUX_CPUMASK_H #define __LINUX_CPUMASK_H +#ifdef __KERNEL__ /* * Cpumasks provide a bitmap suitable for representing the @@ -374,4 +375,5 @@ #define for_each_online_cpu(cpu) for_each_cpu_mask((cpu), cpu_online_map) #define for_each_present_cpu(cpu) for_each_cpu_mask((cpu), cpu_present_map) +#endif /* __KERNEL__ */ #endif /* __LINUX_CPUMASK_H */ diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/crc-ccitt.h linux-2.6.11.3~patched/include/linux/crc-ccitt.h --- linux-2.6.11.3/include/linux/crc-ccitt.h 2005-03-13 08:44:24.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/crc-ccitt.h 2005-03-13 21:43:22.307190136 +0200 @@ -4,11 +4,11 @@ #include -extern u16 const crc_ccitt_table[256]; +extern __u16 const crc_ccitt_table[256]; -extern u16 crc_ccitt(u16 crc, const u8 *buffer, size_t len); +extern __u16 crc_ccitt(__u16 crc, const __u8 *buffer, size_t len); -static inline u16 crc_ccitt_byte(u16 crc, const u8 c) +static inline __u16 crc_ccitt_byte(__u16 crc, const __u8 c) { return (crc >> 8) ^ crc_ccitt_table[(crc ^ c) & 0xff]; } diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/ext2_fs_sb.h linux-2.6.11.3~patched/include/linux/ext2_fs_sb.h --- linux-2.6.11.3/include/linux/ext2_fs_sb.h 2005-03-13 08:44:41.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/ext2_fs_sb.h 2005-03-13 21:43:22.217203816 +0200 @@ -46,9 +46,9 @@ int s_inode_size; int s_first_ino; spinlock_t s_next_gen_lock; - u32 s_next_generation; + __u32 s_next_generation; unsigned long s_dir_count; - u8 *s_debts; + __u8 *s_debts; struct percpu_counter s_freeblocks_counter; struct percpu_counter s_freeinodes_counter; struct percpu_counter s_dirs_counter; diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/gfp.h linux-2.6.11.3~patched/include/linux/gfp.h --- linux-2.6.11.3/include/linux/gfp.h 2005-03-13 08:44:15.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/gfp.h 2005-03-13 21:43:22.277194696 +0200 @@ -59,6 +59,7 @@ #define GFP_DMA __GFP_DMA +#ifdef __KERNEL__ /* * There is only one page-allocator function, and two main namespaces to @@ -131,4 +132,5 @@ void page_alloc_init(void); +#endif /* __KERNEL__ */ #endif /* __LINUX_GFP_H */ diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/hiddev.h linux-2.6.11.3~patched/include/linux/hiddev.h --- linux-2.6.11.3/include/linux/hiddev.h 2005-03-13 08:44:15.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/hiddev.h 2005-03-13 21:43:22.290192720 +0200 @@ -33,6 +33,8 @@ * The event structure itself */ +#define HID_MAX_USAGES 1024 /* From: drivers/usb/input/hid.h */ + struct hiddev_event { unsigned hid; signed int value; diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/i2c.h linux-2.6.11.3~patched/include/linux/i2c.h --- linux-2.6.11.3/include/linux/i2c.h 2005-03-13 08:44:11.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/i2c.h 2005-03-13 21:43:22.248199104 +0200 @@ -28,11 +28,19 @@ #ifndef _LINUX_I2C_H #define _LINUX_I2C_H -#include -#include +#ifdef __KERNEL__ +# include +# include +#else +# define __KERNEL__ +# include +# undef __KERNEL__ +#endif #include +#ifdef __KERNEL__ #include /* for struct device */ #include +#endif /* --- General options ------------------------------------------------ */ @@ -101,6 +109,7 @@ * events. */ +#ifdef __KERNEL__ struct i2c_driver { struct module *owner; char name[32]; @@ -260,6 +269,7 @@ { dev_set_drvdata (&dev->dev, data); } +#endif /*flags for the driver struct: */ #define I2C_DF_NOTIFY 0x01 /* notify on bus (de/a)ttaches */ diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/jiffies.h linux-2.6.11.3~patched/include/linux/jiffies.h --- linux-2.6.11.3/include/linux/jiffies.h 2005-03-13 08:44:00.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/jiffies.h 2005-03-13 21:45:08.955977056 +0200 @@ -81,15 +81,15 @@ * without sampling the sequence number in xtime_lock. * get_jiffies_64() will do this for you as appropriate. */ -extern u64 __jiffy_data jiffies_64; +extern __u64 __jiffy_data jiffies_64; extern unsigned long volatile __jiffy_data jiffies; #if (BITS_PER_LONG < 64) -u64 get_jiffies_64(void); +__u64 get_jiffies_64(void); #else -static inline u64 get_jiffies_64(void) +static inline __u64 get_jiffies_64(void) { - return (u64)jiffies; + return (__u64)jiffies; } #endif diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/list.h linux-2.6.11.3~patched/include/linux/list.h --- linux-2.6.11.3/include/linux/list.h 2005-03-13 08:44:28.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/list.h 2005-03-13 21:47:56.330532256 +0200 @@ -1,8 +1,6 @@ #ifndef _LINUX_LIST_H #define _LINUX_LIST_H -#ifdef __KERNEL__ - #include #include #include @@ -38,20 +36,22 @@ (ptr)->next = (ptr); (ptr)->prev = (ptr); \ } while (0) +#if defined(__KERNEL__) || defined(__LINUX_KEYBOARD_H) + /* * Insert a new entry between two known consecutive entries. * * This is only for internal list manipulation where we know * the prev/next entries already! */ -static inline void __list_add(struct list_head *new, +static inline void __list_add(struct list_head *_new, struct list_head *prev, struct list_head *next) { - next->prev = new; - new->next = next; - new->prev = prev; - prev->next = new; + next->prev = _new; + _new->next = next; + _new->prev = prev; + prev->next = _new; } /** @@ -62,9 +62,9 @@ * Insert a new entry after the specified head. * This is good for implementing stacks. */ -static inline void list_add(struct list_head *new, struct list_head *head) +static inline void list_add(struct list_head *_new, struct list_head *head) { - __list_add(new, head, head->next); + __list_add(_new, head, head->next); } /** @@ -75,9 +75,9 @@ * Insert a new entry before the specified head. * This is useful for implementing queues. */ -static inline void list_add_tail(struct list_head *new, struct list_head *head) +static inline void list_add_tail(struct list_head *_new, struct list_head *head) { - __list_add(new, head->prev, head); + __list_add(_new, head->prev, head); } /* @@ -86,14 +86,14 @@ * This is only for internal list manipulation where we know * the prev/next entries already! */ -static inline void __list_add_rcu(struct list_head * new, +static inline void __list_add_rcu(struct list_head * _new, struct list_head * prev, struct list_head * next) { - new->next = next; - new->prev = prev; + _new->next = next; + _new->prev = prev; smp_wmb(); - next->prev = new; - prev->next = new; + next->prev = _new; + prev->next = _new; } /** @@ -112,9 +112,9 @@ * the _rcu list-traversal primitives, such as * list_for_each_entry_rcu(). */ -static inline void list_add_rcu(struct list_head *new, struct list_head *head) +static inline void list_add_rcu(struct list_head *_new, struct list_head *head) { - __list_add_rcu(new, head, head->next); + __list_add_rcu(_new, head, head->next); } /** @@ -133,10 +133,10 @@ * the _rcu list-traversal primitives, such as * list_for_each_entry_rcu(). */ -static inline void list_add_tail_rcu(struct list_head *new, +static inline void list_add_tail_rcu(struct list_head *_new, struct list_head *head) { - __list_add_rcu(new, head->prev, head); + __list_add_rcu(_new, head->prev, head); } /* @@ -161,8 +161,8 @@ static inline void list_del(struct list_head *entry) { __list_del(entry->prev, entry->next); - entry->next = LIST_POISON1; - entry->prev = LIST_POISON2; + entry->next = __cast__(list_head*) LIST_POISON1; + entry->prev = __cast__(list_head*) LIST_POISON2; } /** @@ -192,7 +192,7 @@ static inline void list_del_rcu(struct list_head *entry) { __list_del(entry->prev, entry->next); - entry->prev = LIST_POISON2; + entry->prev = __cast__(list_head*) LIST_POISON2; } /* @@ -513,8 +513,8 @@ static inline void __hlist_del(struct hlist_node *n) { - struct hlist_node *next = n->next; - struct hlist_node **pprev = n->pprev; + struct hlist_node *next = __cast__(hlist_node*) n->next; + struct hlist_node **pprev = __cast__(hlist_node**) n->pprev; *pprev = next; if (next) next->pprev = pprev; @@ -523,8 +523,8 @@ static inline void hlist_del(struct hlist_node *n) { __hlist_del(n); - n->next = LIST_POISON1; - n->pprev = LIST_POISON2; + n->next = __cast__(hlist_node*) LIST_POISON1; + n->pprev = __cast__(hlist_node**) LIST_POISON2; } /** @@ -549,7 +549,7 @@ static inline void hlist_del_rcu(struct hlist_node *n) { __hlist_del(n); - n->pprev = LIST_POISON2; + n->pprev = __cast__(hlist_node**) LIST_POISON2; } static inline void hlist_del_init(struct hlist_node *n) @@ -700,8 +700,5 @@ pos && ({ prefetch(pos->next); 1;}) && \ ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \ pos = rcu_dereference(pos->next)) - -#else -#warning "don't include kernel headers in userspace" -#endif /* __KERNEL__ */ +#endif #endif diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/mod_devicetable.h linux-2.6.11.3~patched/include/linux/mod_devicetable.h --- linux-2.6.11.3/include/linux/mod_devicetable.h 2005-03-13 08:44:43.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/mod_devicetable.h 2005-03-13 21:43:22.217203816 +0200 @@ -8,6 +8,7 @@ #define LINUX_MOD_DEVICETABLE_H #ifdef __KERNEL__ +#ifndef __KERNEL_ULONG_T__ #include typedef unsigned long kernel_ulong_t; #endif @@ -164,5 +165,5 @@ } devs[PNP_MAX_DEVICES]; }; - +#endif /* __KERNEL__ */ #endif /* LINUX_MOD_DEVICETABLE_H */ diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/mroute.h linux-2.6.11.3~patched/include/linux/mroute.h --- linux-2.6.11.3/include/linux/mroute.h 2005-03-13 08:44:26.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/mroute.h 2005-03-13 21:43:22.251198648 +0200 @@ -1,6 +1,7 @@ #ifndef __LINUX_MROUTE_H #define __LINUX_MROUTE_H +#include #include #include diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/percpu.h linux-2.6.11.3~patched/include/linux/percpu.h --- linux-2.6.11.3/include/linux/percpu.h 2005-03-13 08:44:41.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/percpu.h 2005-03-13 21:43:22.282193936 +0200 @@ -1,5 +1,6 @@ #ifndef __LINUX_PERCPU_H #define __LINUX_PERCPU_H +#include #include /* For preempt_disable() */ #include /* For kmalloc() */ #include diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/percpu_counter.h linux-2.6.11.3~patched/include/linux/percpu_counter.h --- linux-2.6.11.3/include/linux/percpu_counter.h 2005-03-13 08:44:27.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/percpu_counter.h 2005-03-13 21:43:22.282193936 +0200 @@ -6,6 +6,7 @@ * WARNING: these things are HUGE. 4 kbytes per counter on 32-way P4. */ +#include #include #include #include diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/pid.h linux-2.6.11.3~patched/include/linux/pid.h --- linux-2.6.11.3/include/linux/pid.h 2005-03-13 08:44:15.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/pid.h 2005-03-13 21:43:22.284193632 +0200 @@ -1,6 +1,8 @@ #ifndef _LINUX_PID_H #define _LINUX_PID_H +#include + enum pid_type { PIDTYPE_PID, @@ -30,6 +32,8 @@ extern void FASTCALL(detach_pid(struct task_struct *task, enum pid_type)); +#ifdef __KERNEL__ + /* * look up a PID in the hash table. Must be called with the tasklist_lock * held. @@ -52,4 +56,5 @@ hlist_unhashed(&(task)->pids[type].pid_chain)); \ } \ +#endif /* __KERNEL__ */ #endif /* _LINUX_PID_H */ diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/preempt.h linux-2.6.11.3~patched/include/linux/preempt.h --- linux-2.6.11.3/include/linux/preempt.h 2005-03-13 08:44:15.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/preempt.h 2005-03-13 21:43:22.329186792 +0200 @@ -8,6 +8,7 @@ #include #include +#include /* barrier() <--> mb() */ #ifdef CONFIG_DEBUG_PREEMPT extern void fastcall add_preempt_count(int val); diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/prefetch.h linux-2.6.11.3~patched/include/linux/prefetch.h --- linux-2.6.11.3/include/linux/prefetch.h 2005-03-13 08:44:43.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/prefetch.h 2005-03-13 21:43:22.305190440 +0200 @@ -10,6 +10,7 @@ #ifndef _LINUX_PREFETCH_H #define _LINUX_PREFETCH_H +#include #include #include #include @@ -59,9 +60,9 @@ { #ifdef ARCH_HAS_PREFETCH char *cp; - char *end = addr + len; + char *end = __cast__(char *) addr + len; - for (cp = addr; cp < end; cp += PREFETCH_STRIDE) + for (cp = __cast__(char *) addr; cp < end; cp += PREFETCH_STRIDE) prefetch(cp); #endif } diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/radix-tree.h linux-2.6.11.3~patched/include/linux/radix-tree.h --- linux-2.6.11.3/include/linux/radix-tree.h 2005-03-13 08:44:16.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/radix-tree.h 2005-03-13 21:43:22.217203816 +0200 @@ -44,6 +44,8 @@ (root)->rnode = NULL; \ } while (0) +#ifdef __KERNEL__ + int radix_tree_insert(struct radix_tree_root *, unsigned long, void *); void *radix_tree_lookup(struct radix_tree_root *, unsigned long); void *radix_tree_delete(struct radix_tree_root *, unsigned long); @@ -68,4 +70,5 @@ preempt_enable(); } +#endif /* __KERNEL__ */ #endif /* _LINUX_RADIX_TREE_H */ diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/sem.h linux-2.6.11.3~patched/include/linux/sem.h --- linux-2.6.11.3/include/linux/sem.h 2005-03-13 08:44:22.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/sem.h 2005-03-13 21:43:22.295191960 +0200 @@ -1,6 +1,7 @@ #ifndef _LINUX_SEM_H #define _LINUX_SEM_H +#include #include #include diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/smp.h linux-2.6.11.3~patched/include/linux/smp.h --- linux-2.6.11.3/include/linux/smp.h 2005-03-13 08:44:28.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/smp.h 2005-03-13 21:43:22.218203664 +0200 @@ -6,6 +6,8 @@ * Alan Cox. */ + +#ifdef __KERNEL__ #include extern void cpu_idle(void); @@ -142,4 +144,5 @@ #define put_cpu() preempt_enable() #define put_cpu_no_resched() preempt_enable_no_resched() +#endif /* __KERNEL__ */ #endif /* __LINUX_SMP_H */ diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/socket.h linux-2.6.11.3~patched/include/linux/socket.h --- linux-2.6.11.3/include/linux/socket.h 2005-03-13 08:44:31.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/socket.h 2005-03-13 21:43:22.268196064 +0200 @@ -16,6 +16,10 @@ /* _SS_MAXSIZE value minus size of ss_family */ } __attribute__ ((aligned(_K_SS_ALIGNSIZE))); /* force desired alignment */ +#ifndef _SYS_SOCKET_H +typedef unsigned short sa_family_t; +#endif + #if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) #include /* for CONFIG_COMPAT */ @@ -26,8 +30,6 @@ #include /* pid_t */ #include /* __user */ -typedef unsigned short sa_family_t; - /* * 1003.1g requires sa_family_t and that sa_data is char. */ diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/spinlock.h linux-2.6.11.3~patched/include/linux/spinlock.h --- linux-2.6.11.3/include/linux/spinlock.h 2005-03-13 08:44:26.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/spinlock.h 2005-03-13 21:43:22.219203512 +0200 @@ -437,6 +437,7 @@ } while (0) #endif /* !SMP */ +#ifdef __KERNEL__ /* * Define the various spin_lock and rw_lock methods. Note we define these @@ -603,4 +604,5 @@ */ #define spin_can_lock(lock) (!spin_is_locked(lock)) +#endif /* __KERNEL__ */ #endif /* __LINUX_SPINLOCK_H */ diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/time.h linux-2.6.11.3~patched/include/linux/time.h --- linux-2.6.11.3/include/linux/time.h 2005-03-13 08:44:29.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/time.h 2005-03-13 21:43:22.221203208 +0200 @@ -7,24 +7,31 @@ #include #endif +#ifndef _SYS_TIME_H #ifndef _STRUCT_TIMESPEC +#ifndef __timespec_defined #define _STRUCT_TIMESPEC struct timespec { time_t tv_sec; /* seconds */ long tv_nsec; /* nanoseconds */ }; +#endif /* __timespec_defined */ #endif /* _STRUCT_TIMESPEC */ +#ifndef _STRUCT_TIMEVAL struct timeval { time_t tv_sec; /* seconds */ suseconds_t tv_usec; /* microseconds */ }; +#endif /* _STRUCT_TIMEVAL */ struct timezone { int tz_minuteswest; /* minutes west of Greenwich */ int tz_dsttime; /* type of dst correction */ }; +#endif /* _SYS_TIME_H */ + #ifdef __KERNEL__ /* Parameters used to convert the timespec values */ @@ -60,6 +67,8 @@ * machines were long is 32-bit! (However, as time_t is signed, we * will already get problems at other places on 2038-01-19 03:14:08) */ + +#ifndef _TIME_H static inline unsigned long mktime (unsigned int year, unsigned int mon, unsigned int day, unsigned int hour, @@ -77,6 +86,7 @@ )*60 + min /* now have minutes */ )*60 + sec; /* finally seconds */ } +#endif extern struct timespec xtime; extern struct timespec wall_to_monotonic; @@ -139,15 +149,19 @@ #define ITIMER_VIRTUAL 1 #define ITIMER_PROF 2 +#ifndef _TIME_H struct itimerspec { struct timespec it_interval; /* timer period */ struct timespec it_value; /* timer expiration */ }; +#endif /* _TIME_H */ +#ifndef _SYS_TIME_H struct itimerval { struct timeval it_interval; /* timer interval */ struct timeval it_value; /* current value */ }; +#endif /* _SYS_TIME_H */ /* diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/types.h linux-2.6.11.3~patched/include/linux/types.h --- linux-2.6.11.3/include/linux/types.h 2005-03-13 08:44:40.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/types.h 2005-03-13 21:43:22.237200776 +0200 @@ -17,12 +17,24 @@ typedef __u32 __kernel_dev_t; +#ifndef _SYS_SELECT_H typedef __kernel_fd_set fd_set; +#endif +#ifndef __dev_t_defined typedef __kernel_dev_t dev_t; +#endif +#ifndef __ino_t_defined typedef __kernel_ino_t ino_t; +#endif +#ifndef __mode_t_defined typedef __kernel_mode_t mode_t; +#endif +#ifndef __nlink_t_defined typedef __kernel_nlink_t nlink_t; +#endif +#ifndef __off_t_defined typedef __kernel_off_t off_t; +#endif typedef __kernel_pid_t pid_t; typedef __kernel_daddr_t daddr_t; typedef __kernel_key_t key_t; @@ -33,7 +45,9 @@ #ifdef __KERNEL__ typedef __kernel_uid32_t uid_t; +#define __uid_t_defined typedef __kernel_gid32_t gid_t; +#define __gid_t_defined typedef __kernel_uid16_t uid16_t; typedef __kernel_gid16_t gid16_t; @@ -48,7 +62,9 @@ */ #else typedef __kernel_uid_t uid_t; +#define __uid_t_defined typedef __kernel_gid_t gid_t; +#define __gid_t_defined #endif /* __KERNEL__ */ #if defined(__GNUC__) && !defined(__STRICT_ANSI__) diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/usbdevice_fs.h linux-2.6.11.3~patched/include/linux/usbdevice_fs.h --- linux-2.6.11.3/include/linux/usbdevice_fs.h 2005-03-13 08:44:14.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/usbdevice_fs.h 2005-03-13 21:43:22.250198800 +0200 @@ -31,6 +31,7 @@ #ifndef _LINUX_USBDEVICE_FS_H #define _LINUX_USBDEVICE_FS_H +#include #include /* --------------------------------------------------------------------- */ diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/videodev2.h linux-2.6.11.3~patched/include/linux/videodev2.h --- linux-2.6.11.3/include/linux/videodev2.h 2005-03-13 08:44:29.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/videodev2.h 2005-03-13 21:43:22.305190440 +0200 @@ -13,6 +13,8 @@ * Justin Schoeman * et al. */ + +#include #ifdef __KERNEL__ #include /* need struct timeval */ #endif diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/wait.h linux-2.6.11.3~patched/include/linux/wait.h --- linux-2.6.11.3/include/linux/wait.h 2005-03-13 08:44:27.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/wait.h 2005-03-13 21:43:22.285193480 +0200 @@ -17,10 +17,9 @@ #define P_PID 1 #define P_PGID 2 -#ifdef __KERNEL__ - #include #include +#include #include #include #include @@ -116,6 +115,8 @@ extern void FASTCALL(add_wait_queue_exclusive(wait_queue_head_t *q, wait_queue_t * wait)); extern void FASTCALL(remove_wait_queue(wait_queue_head_t *q, wait_queue_t * wait)); +#ifdef __KERNEL__ + static inline void __add_wait_queue(wait_queue_head_t *head, wait_queue_t *new) { list_add(&new->task_list, &head->task_list); @@ -136,6 +137,8 @@ list_del(&old->task_list); } +#endif /* __KERNEL__ */ + void FASTCALL(__wake_up(wait_queue_head_t *q, unsigned int mode, int nr, void *key)); extern void FASTCALL(__wake_up_locked(wait_queue_head_t *q, unsigned int mode)); extern void FASTCALL(__wake_up_sync(wait_queue_head_t *q, unsigned int mode, int nr)); @@ -280,6 +283,8 @@ __ret; \ }) +#ifdef __KERNEL__ + /* * Must be called with the spinlock in the wait_queue_head_t held. */ @@ -299,6 +304,8 @@ __remove_wait_queue(q, wait); } +#endif /* __KERNEL__ */ + /* * These are the old interfaces to sleep waiting for an event. * They are racy. DO NOT use them, use the wait_event* interfaces above. @@ -395,6 +402,4 @@ return out_of_line_wait_on_bit_lock(word, bit, action, mode); } -#endif /* __KERNEL__ */ - #endif diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/include/linux/workqueue.h linux-2.6.11.3~patched/include/linux/workqueue.h --- linux-2.6.11.3/include/linux/workqueue.h 2005-03-13 08:44:31.000000000 +0200 +++ linux-2.6.11.3~patched/include/linux/workqueue.h 2005-03-13 21:43:22.230201840 +0200 @@ -5,6 +5,8 @@ #ifndef _LINUX_WORKQUEUE_H #define _LINUX_WORKQUEUE_H +#ifdef __KERNEL__ + #include #include #include @@ -86,4 +88,6 @@ return ret; } +#endif /* __KERNEL__ */ + #endif diff -Naur --exclude='*.orig' --exclude='*.rej' linux-2.6.11.3/scripts/mod/file2alias.c linux-2.6.11.3~patched/scripts/mod/file2alias.c --- linux-2.6.11.3/scripts/mod/file2alias.c 2005-03-13 08:44:26.000000000 +0200 +++ linux-2.6.11.3~patched/scripts/mod/file2alias.c 2005-03-13 21:43:22.293192264 +0200 @@ -10,6 +10,8 @@ * of the GNU General Public License, incorporated herein by reference. */ +#define __KERNEL__ +#define __KERNEL_ULONG_T__ #include "modpost.h" /* We use the ELF typedefs for kernel_ulong_t but bite the bullet and