Authors: Tim Yamin Mike Frysinger Martin Schlemmer This patch neatens up the 2.6.0 headers for user-space usage and allows backward compatibility on a variety of applications which are designed for 2.4 headers. diff -ur linux-2.6.0/include/linux/bitmap.h linux-2.6.0/include/linux.gentoo/bitmap.h --- linux-2.6.0/include/linux/bitmap.h 2003-12-27 19:22:38.000000000 +0000 +++ linux-2.6.0/include/linux.gentoo/bitmap.h 2003-12-27 19:19:31.000000000 +0000 @@ -1,6 +1,7 @@ #ifndef __LINUX_BITMAP_H #define __LINUX_BITMAP_H +#ifdef __KERNEL__ #ifndef __ASSEMBLY__ #include @@ -155,5 +156,5 @@ #endif #endif /* __ASSEMBLY__ */ - +#endif /* __KERNEL__ */ #endif /* __LINUX_BITMAP_H */ diff -ur linux-2.6.0/include/linux/buffer_head.h linux-2.6.0/include/linux.gentoo/buffer_head.h --- linux-2.6.0/include/linux/buffer_head.h 2003-12-27 19:22:38.000000000 +0000 +++ linux-2.6.0/include/linux.gentoo/buffer_head.h 2003-12-27 19:19:31.000000000 +0000 @@ -34,6 +34,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) { while (test_set_buffer_locked(bh)) diff -ur linux-2.6.0/include/linux/compiler-gcc2.h linux-2.6.0/include/linux.gentoo/compiler-gcc2.h --- linux-2.6.0/include/linux/compiler-gcc2.h 2003-12-27 19:22:38.000000000 +0000 +++ linux-2.6.0/include/linux.gentoo/compiler-gcc2.h 2003-12-27 19:19:31.000000000 +0000 @@ -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 -ur linux-2.6.1/include/linux/cpumask.h linux-2.6.1/include/linux.gentoo/cpumask.h --- linux-2.6.1/include/linux/cpumask.h 2003-12-27 19:22:38.000000000 +0000 +++ linux-2.6.1/include/linux.gentoo/cpumask.h 2003-12-27 19:19:31.000000000 +0000 @@ -1,6 +1,8 @@ #ifndef __LINUX_CPUMASK_H #define __LINUX_CPUMASK_H +#ifdef __KERNEL__ + #include #include #include @@ -68,4 +70,5 @@ cpu < NR_CPUS; \ cpu = next_online_cpu(cpu,map)) +#endif /* __KERNEL__ */ #endif /* __LINUX_CPUMASK_H */ diff -ur linux-2.6.0/include/linux/ext2_fs_sb.h linux-2.6.0/include/linux.gentoo/ext2_fs_sb.h --- linux-2.6.0/include/linux/ext2_fs_sb.h 2003-12-27 19:22:38.000000000 +0000 +++ linux-2.6.0/include/linux.gentoo/ext2_fs_sb.h 2003-12-27 19:19:31.000000000 +0000 @@ -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 -ur linux-2.6.0/include/linux/list.h linux-2.6.0/include/linux.gentoo/list.h --- linux-2.6.0/include/linux/list.h 2003-12-27 19:22:38.000000000 +0000 +++ linux-2.6.0/include/linux.gentoo/list.h 2003-12-27 19:19:31.000000000 +0000 @@ -584,7 +584,6 @@ pos && ({ n = pos->next; 1; }) && \ ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \ pos = n) -#else -#warning "don't include kernel headers in userspace" + #endif /* __KERNEL__ */ #endif diff -ur linux-2.6.0/include/linux/mod_devicetable.h linux-2.6.0/include/linux.gentoo/mod_devicetable.h --- linux-2.6.0/include/linux/mod_devicetable.h 2003-12-27 19:22:38.000000000 +0000 +++ linux-2.6.0/include/linux.gentoo/mod_devicetable.h 2003-12-27 19:19:31.000000000 +0000 @@ -10,7 +10,6 @@ #ifdef __KERNEL__ #include typedef unsigned long kernel_ulong_t; -#endif #define PCI_ANY_ID (~0) @@ -147,5 +146,5 @@ #define CCW_DEVICE_ID_MATCH_DEVICE_TYPE 0x04 #define CCW_DEVICE_ID_MATCH_DEVICE_MODEL 0x08 - +#endif /* __KERNEL__ */ #endif /* LINUX_MOD_DEVICETABLE_H */ diff -ur linux-2.6.6/include/linux/radix-tree.h linux-2.6.6/include/linux.gentoo/radix-tree.h --- linux-2.6.6/include/linux/radix-tree.h 2003-12-27 19:22:38.000000000 +0000 +++ linux-2.6.6/include/linux.gentoo/radix-tree.h 2003-12-27 19:19:31.000000000 +0000 @@ -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 -ur linux-2.6.0/include/linux/smp.h linux-2.6.0/include/linux.gentoo/smp.h --- linux-2.6.0/include/linux/smp.h 2003-12-27 19:22:38.000000000 +0000 +++ linux-2.6.0/include/linux.gentoo/smp.h 2003-12-27 19:19:31.000000000 +0000 @@ -6,6 +6,8 @@ * Alan Cox. */ + +#ifdef __KERNEL__ #include #ifdef CONFIG_SMP @@ -112,4 +114,5 @@ #define put_cpu() preempt_enable() #define put_cpu_no_resched() preempt_enable_no_resched() +#endif /* __KERNEL__ */ #endif /* __LINUX_SMP_H */ diff -ur linux-2.6.0/include/linux/spinlock.h linux-2.6.0/include/linux.gentoo/spinlock.h --- linux-2.6.0/include/linux/spinlock.h 2003-12-27 19:22:38.000000000 +0000 +++ linux-2.6.0/include/linux.gentoo/spinlock.h 2003-12-27 19:19:31.000000000 +0000 @@ -183,6 +183,7 @@ #define _raw_write_trylock(lock) ({ (void)(lock); (1); }) #endif /* !SMP */ +#ifdef __KERNEL__ /* * Define the various spin_lock and rw_lock methods. Note we define these @@ -465,4 +466,5 @@ #endif } +#endif /* __KERNEL__ */ #endif /* __LINUX_SPINLOCK_H */ diff -ur linux-2.6.0/include/linux/time.h linux-2.6.0/include/linux.gentoo/time.h --- linux-2.6.0/include/linux/time.h 2003-12-27 19:22:38.000000000 +0000 +++ linux-2.6.0/include/linux.gentoo/time.h 2003-12-27 19:19:31.000000000 +0000 @@ -4,24 +4,31 @@ #include #include +#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__ #include @@ -281,6 +281,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, @@ -298,6 +300,7 @@ )*60 + min /* now have minutes */ )*60 + sec; /* finally seconds */ } +#endif extern struct timespec xtime; extern struct timespec wall_to_monotonic; @@ -351,15 +358,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 -ur linux-2.6.0/include/linux/workqueue.h linux-2.6.0/include/linux.gentoo/workqueue.h --- linux-2.6.0/include/linux/workqueue.h 2003-12-27 19:22:38.000000000 +0000 +++ linux-2.6.0/include/linux.gentoo/workqueue.h 2003-12-27 19:19:31.000000000 +0000 @@ -5,6 +5,8 @@ #ifndef _LINUX_WORKQUEUE_H #define _LINUX_WORKQUEUE_H +#ifdef __KERNEL__ + #include #include @@ -73,5 +75,7 @@ return del_timer_sync(&work->timer); } +#endif /* __KERNEL__ */ + #endif diff -ur linux-2.6.0/include/asm-i386/mpspec.h linux-2.6.0/include/asm-i386/mpspec.h --- linux-2.6.0/include/asm-i386/mpspec.h 2004-01-19 20:18:36.000000000 +0000 +++ linux-2.6.0/include/asm-i386/mpspec.h 2004-01-19 20:01:11.000000000 +0000 @@ -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 -ur linux-2.6.0/include/asm-i386/processor.h linux-2.6.0/include/asm-i386/processor.h --- linux-2.6.0/include/asm-i386/processor.h 2004-01-19 20:18:36.000000000 +0000 +++ linux-2.6.0/include/asm-i386/processor.h 2004-01-19 20:01:11.000000000 +0000 @@ -8,7 +8,9 @@ #define __ASM_I386_PROCESSOR_H #include +#ifdef __KERNEL__ #include +#endif #include #include #include diff -ur linux-2.6.0/include/asm-i386/semaphore.h linux-2.6.0/include/asm-i386/semaphore.h --- linux-2.6.0/include/asm-i386/semaphore.h 2004-01-19 20:18:36.000000000 +0000 +++ linux-2.6.0/include/asm-i386/semaphore.h 2004-01-19 20:01:11.000000000 +0000 @@ -3,8 +3,6 @@ #include -#ifdef __KERNEL__ - /* * SMP- and interrupt-safe semaphores.. * @@ -214,4 +212,3 @@ } #endif -#endif diff -ur linux-2.6.0/include/asm-i386/signal.h linux-2.6.0/include/asm-i386/signal.h --- linux-2.6.0/include/asm-i386/signal.h 2004-01-19 20:18:36.000000000 +0000 +++ linux-2.6.0/include/asm-i386/signal.h 2004-01-19 20:01:11.000000000 +0000 @@ -26,7 +26,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__ */ @@ -155,6 +157,7 @@ #else /* Here we must cater to libcs that poke about in kernel headers. */ +#ifndef _SIGNAL_H struct sigaction { union { __sighandler_t _sa_handler; @@ -164,17 +167,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 *ss_sp; int ss_flags; size_t ss_size; } stack_t; +#endif #ifdef __KERNEL__ #include diff -ur linux-2.6.0/include/asm-i386/smp.h linux-2.6.0/include/asm-i386/smp.h --- linux-2.6.0/include/asm-i386/smp.h 2004-01-19 20:18:36.000000000 +0000 +++ linux-2.6.0/include/asm-i386/smp.h 2004-01-19 20:01:11.000000000 +0000 @@ -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 -ur linux-2.6.0/include/linux/types.h linux-2.6.0/include/linux.gentoo/types.h --- linux-2.6.0/include/linux/types.h 2004-01-19 20:18:36.000000000 +0000 +++ linux-2.6.0/include/linux.gentoo/types.h 2004-01-19 20:01:11.000000000 +0000 @@ -19,12 +19,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; @@ -34,7 +46,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; @@ -49,7 +63,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 -ur linux-2.6.0/include/asm-generic/siginfo.h linux-2.6.0/include/asm-generic/siginfo.h --- linux-2.6.0/include/asm-generic/siginfo.h 2004-01-19 20:18:36.000000000 +0000 +++ linux-2.6.0/include/asm-generic/siginfo.h 2004-01-19 20:01:11.000000000 +0000 @@ -4,10 +4,12 @@ #include #include +#ifndef _SIGNAL_H typedef union sigval { int sival_int; void *sival_ptr; } sigval_t; +#endif /* * This is the size (including padding) of the part of the @@ -31,7 +33,7 @@ #endif #ifndef HAVE_ARCH_SIGINFO_T - +#ifndef _SIGNAL_H typedef struct siginfo { int si_signo; int si_errno; @@ -86,7 +88,7 @@ } _sigpoll; } _sifields; } siginfo_t; - +#endif #endif /* @@ -238,7 +240,7 @@ #endif #ifndef HAVE_ARCH_SIGEVENT_T - +#ifndef _SIGNAL_H typedef struct sigevent { sigval_t sigev_value; int sigev_signo; @@ -253,7 +255,7 @@ } _sigev_thread; } _sigev_un; } sigevent_t; - +#endif #endif #define sigev_notify_function _sigev_un._sigev_thread._function diff -ur linux-2.6.0/include/linux/jiffies.h linux-2.6.0/include/linux.gentoo/jiffies.h --- linux-2.6.0/include/linux/jiffies.h 2004-01-19 20:18:36.000000000 +0000 +++ linux-2.6.0/include/linux.gentoo/jiffies.h 2004-01-19 20:01:11.000000000 +0000 @@ -13,15 +13,15 @@ * without holding read_lock_irq(&xtime_lock). * get_jiffies_64() will do this for you as appropriate. */ -extern u64 jiffies_64; +extern __u64 jiffies_64; extern unsigned long volatile 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 -ur linux-2.6.0/include/linux/i2c.h linux-2.6.0/include/linux.gentoo/i2c.h --- linux-2.6.0/include/linux/i2c.h 2004-02-07 13:29:15.099504640 -0500 +++ linux-2.6.0/include/linux.gentoo/i2c.h 2004-02-07 13:35:53.956869104 -0500 @@ -28,10 +28,18 @@ #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 ------------------------------------------------ */ @@ -109,6 +117,7 @@ * events. */ +#ifdef __KERNEL__ struct i2c_driver { struct module *owner; char name[32]; @@ -268,6 +277,7 @@ { dev_set_drvdata (&dev->dev, data); } +#endif /*flags for the driver struct: */ #define I2C_DF_NOTIFY 0x01 /* notify on bus (de/a)ttaches */ @@ -599,11 +609,13 @@ #define i2c_is_isa_adapter(adapptr) \ ((adapptr)->algo->id == I2C_ALGO_ISA) +#ifdef __KERNEL__ /* Tiny delay function used by the i2c bus drivers */ static inline void i2c_delay(signed long timeout) { set_current_state(TASK_INTERRUPTIBLE); schedule_timeout(timeout); } +#endif #endif /* _LINUX_I2C_H */ diff -ur linux-2.6.3/include/linux/usbdevice_fs.h linux-2.6.3/include/linux/usbdevice_fs.h --- linux-2.6.3/include/linux/usbdevice_fs.h 2004-02-22 16:52:07.000000000 +0000 +++ linux-2.6.3/include/linux/usbdevice_fs.h 2004-02-22 22:10:45.000000000 +0000 @@ -31,6 +31,7 @@ #ifndef _LINUX_USBDEVICE_FS_H #define _LINUX_USBDEVICE_FS_H +#include #include /* --------------------------------------------------------------------- */ diff -ur linux-2.6.4/include/asm-i386/ipc.h linux-2.6.4-gentoo/include/asm-i386/ipc.h --- linux-2.6.4/include/asm-i386/ipc.h 2004-03-13 13:05:04.000026816 +0000 +++ linux-2.6.4-gentoo/include/asm-i386/ipc.h 2004-03-13 13:11:56.486319368 +0000 @@ -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 -ur linux-2.6.4/include/linux/compiler-gcc3.h linux-2.6.4-gentoo/include/linux/compiler-gcc3.h --- linux-2.6.4/include/linux/compiler-gcc3.h 2004-03-13 13:04:57.718981680 +0000 +++ linux-2.6.4-gentoo/include/linux/compiler-gcc3.h 2004-03-13 13:15:55.937917192 +0000 @@ -3,6 +3,8 @@ /* These definitions are for GCC v3.x. */ #include +#ifdef __KERNEL__ + #if __GNUC_MINOR__ >= 1 # define inline __inline__ __attribute__((always_inline)) # define __inline__ __inline__ __attribute__((always_inline)) @@ -25,3 +27,5 @@ #if __GNUC_MINOR__ >= 1 #define noinline __attribute__((noinline)) #endif + +#endif /* __KERNEL__ */ diff -ur linux-2.6.4/include/linux/mroute.h linux-2.6.4-gentoo/include/linux/mroute.h --- linux-2.6.4/include/linux/mroute.h 2004-03-13 13:04:54.084534200 +0000 +++ linux-2.6.4-gentoo/include/linux/mroute.h 2004-03-13 13:14:04.356880088 +0000 @@ -1,6 +1,7 @@ #ifndef __LINUX_MROUTE_H #define __LINUX_MROUTE_H +#include #include #include diff -ur linux-2.6.6/include/asm-ppc/signal.h linux-2.6.6-gentoo/include/asm-ppc/signal.h --- linux-2.6.6/include/asm-ppc/signal.h 2004-06-02 18:30:17.329072696 +0100 +++ linux-2.6.6-gentoo/include/asm-ppc/signal.h 2004-06-02 18:35:04.093477880 +0100 @@ -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 @@ -125,28 +127,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; void (*sa_restorer)(void); }; +#ifndef _SIGNAL_H struct sigaction { __sighandler_t sa_handler; unsigned long sa_flags; void (*sa_restorer)(void); sigset_t sa_mask; /* mask last for extensibility */ }; +#endif struct k_sigaction { struct sigaction sa; }; +#ifndef _SIGNAL_H typedef struct sigaltstack { void *ss_sp; int ss_flags; size_t ss_size; } stack_t; +#endif #ifdef __KERNEL__ #include diff -ur linux-2.6.6/include/asm-x86_64/processor.h linux-2.6.6-gentoo/include/asm-x86_64/processor.h --- linux-2.6.6/include/asm-x86_64/processor.h 2004-06-02 19:25:24.000000000 +0100 +++ linux-2.6.6-gentoo/include/asm-x86_64/processor.h 2004-06-02 19:24:31.000000000 +0100 @@ -189,17 +189,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 { @@ -207,16 +207,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 @@ int ioperm; unsigned long *io_bitmap_ptr; /* cached TLS descriptors. */ - u64 tls_array[GDT_ENTRY_TLS_ENTRIES]; + __u64 tls_array[GDT_ENTRY_TLS_ENTRIES]; }; #define INIT_THREAD {} diff -ur linux-2.6.6/include/asm-x86_64/system.h linux-2.6.6-gentoo/include/asm-x86_64/system.h --- linux-2.6.6/include/asm-x86_64/system.h 2004-06-02 19:25:27.000000000 +0100 +++ linux-2.6.6-gentoo/include/asm-x86_64/system.h 2004-06-02 19:25:17.000000000 +0100 @@ -5,6 +5,30 @@ #include #include +/* + * 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__ #ifdef CONFIG_SMP @@ -114,30 +138,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 -ur linux-2.6.6/include/linux/socket.h linux-2.6.6-gentoo/include/linux/socket.h --- linux-2.6.6/include/linux/socket.h 2004-05-25 17:47:07.000000000 +0100 +++ linux-2.6.6-gentoo/include/linux/socket.h 2004-06-02 21:19:49.000000000 +0100 @@ -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 -ur linux-2.6.6/include/linux/audit.h linux-2.6.6-gentoo/include/linux/audit.h --- linux-2.6.6/include/linux/audit.h 2004-05-25 17:47:07.000000000 +0100 +++ linux-2.6.6-gentoo/include/linux/audit.h 2004-06-02 21:19:21.000000000 +0100 @@ -97,6 +97,7 @@ #define AUDIT_FAIL_PANIC 2 #ifndef __KERNEL__ +#include struct audit_message { struct nlmsghdr nlh; char data[1200]; diff -ur linux-2.6.6/include/asm-x86_64/sigcontext.h linux-2.6.6-gentoo/include/asm-x86_64/sigcontext.h --- linux-2.6.6/include/asm-x86_64/sigcontext.h 2004-05-25 17:47:07.000000000 +0100 +++ linux-2.6.6-gentoo/include/asm-x86_64/sigcontext.h 2004-06-02 22:04:52.000000000 +0100 @@ -6,6 +6,8 @@ /* FXSAVE frame */ /* Note: reserved1/2 may someday contain valuable data. Always save/restore them when you change signal frames. */ + +#ifndef _SIGNAL_H struct _fpstate { __u16 cwd; __u16 swd; @@ -52,3 +54,4 @@ }; #endif +#endif diff -ur linux-2.6.6/include/linux/gfp.h linux-2.6.6-gentoo/include/linux/gfp.h --- linux-2.6.6/include/linux/gfp.h 2004-04-04 04:36:52.000000000 +0100 +++ linux-2.6.6-gentoo/include/linux/gfp.h 2004-05-11 19:51:06.412779200 +0100 @@ -48,6 +48,7 @@ #define GFP_DMA __GFP_DMA +#ifdef __KERNEL__ /* * There is only one page-allocator function, and two main namespaces to @@ -96,4 +97,5 @@ void page_alloc_init(void); +#endif /* __KERNEL__ */ #endif /* __LINUX_GFP_H */ diff -ur linux-2.6.6/include/linux/percpu.h linux-2.6.6-gentoo/include/linux/percpu.h --- linux-2.6.6/include/linux/percpu.h 2004-04-04 04:38:14.000000000 +0100 +++ linux-2.6.6-gentoo/include/linux/percpu.h 2004-05-11 19:33:00.987788880 +0100 @@ -1,5 +1,6 @@ #ifndef __LINUX_PERCPU_H #define __LINUX_PERCPU_H +#include #include /* For preempt_disable() */ #include /* For kmalloc() */ #include diff -ur linux-2.6.6/include/linux/percpu_counter.h linux-2.6.6-gentoo/include/linux/percpu_counter.h --- linux-2.6.6/include/linux/percpu_counter.h 2004-04-04 04:37:23.000000000 +0100 +++ linux-2.6.6-gentoo/include/linux/percpu_counter.h 2004-05-11 19:46:31.423583912 +0100 @@ -4,6 +4,7 @@ * WARNING: these things are HUGE. 4 kbytes per counter on 32-way P4. */ +#include #include #include #include