Sfoglia il codice sorgente

toolchain/kernel-headers: remove ancient (and unused) patches

Peter Korsgaard 16 anni fa
parent
commit
d141a6985a

+ 0 - 13527
toolchain/kernel-headers/linux-libc-headers-2.6.11-nios2nommu.patch.conditional

@@ -1,13527 +0,0 @@
---- linux/include/asm-generic/4level-fixup.h
-+++ linux/include/asm-generic/4level-fixup.h
-@@ -0,0 +1,34 @@
-+#ifndef _4LEVEL_FIXUP_H
-+#define _4LEVEL_FIXUP_H
-+
-+#define __ARCH_HAS_4LEVEL_HACK
-+
-+#define PUD_SIZE			PGDIR_SIZE
-+#define PUD_MASK			PGDIR_MASK
-+#define PTRS_PER_PUD			1
-+
-+#define pud_t				pgd_t
-+
-+#define pmd_alloc(mm, pud, address)			\
-+({	pmd_t *ret;					\
-+	if (pgd_none(*pud))				\
-+ 		ret = __pmd_alloc(mm, pud, address);	\
-+ 	else						\
-+		ret = pmd_offset(pud, address);		\
-+ 	ret;						\
-+})
-+
-+#define pud_alloc(mm, pgd, address)	(pgd)
-+#define pud_offset(pgd, start)		(pgd)
-+#define pud_none(pud)			0
-+#define pud_bad(pud)			0
-+#define pud_present(pud)		1
-+#define pud_ERROR(pud)			do { } while (0)
-+#define pud_clear(pud)			pgd_clear(pud)
-+
-+#undef pud_free_tlb
-+#define pud_free_tlb(tlb, x)            do { } while (0)
-+#define pud_free(x)			do { } while (0)
-+#define __pud_free_tlb(tlb, x)		do { } while (0)
-+
-+#endif
---- linux/include/asm-generic/bitops.h
-+++ linux/include/asm-generic/bitops.h
-@@ -0,0 +1,81 @@
-+#ifndef _ASM_GENERIC_BITOPS_H_
-+#define _ASM_GENERIC_BITOPS_H_
-+
-+/*
-+ * For the benefit of those who are trying to port Linux to another
-+ * architecture, here are some C-language equivalents.  You should
-+ * recode these in the native assembly language, if at all possible.
-+ * To guarantee atomicity, these routines call cli() and sti() to
-+ * disable interrupts while they operate.  (You have to provide inline
-+ * routines to cli() and sti().)
-+ *
-+ * Also note, these routines assume that you have 32 bit longs.
-+ * You will have to change this if you are trying to port Linux to the
-+ * Alpha architecture or to a Cray.  :-)
-+ * 
-+ * C language equivalents written by Theodore Ts'o, 9/26/92
-+ */
-+
-+extern __inline__ int set_bit(int nr,long * addr)
-+{
-+	int	mask, retval;
-+
-+	addr += nr >> 5;
-+	mask = 1 << (nr & 0x1f);
-+	cli();
-+	retval = (mask & *addr) != 0;
-+	*addr |= mask;
-+	sti();
-+	return retval;
-+}
-+
-+extern __inline__ int clear_bit(int nr, long * addr)
-+{
-+	int	mask, retval;
-+
-+	addr += nr >> 5;
-+	mask = 1 << (nr & 0x1f);
-+	cli();
-+	retval = (mask & *addr) != 0;
-+	*addr &= ~mask;
-+	sti();
-+	return retval;
-+}
-+
-+extern __inline__ int test_bit(int nr, const unsigned long * addr)
-+{
-+	int	mask;
-+
-+	addr += nr >> 5;
-+	mask = 1 << (nr & 0x1f);
-+	return ((mask & *addr) != 0);
-+}
-+
-+/*
-+ * fls: find last bit set.
-+ */
-+
-+#define fls(x) generic_fls(x)
-+
-+#ifdef __KERNEL__
-+
-+/*
-+ * ffs: find first bit set. This is defined the same way as
-+ * the libc and compiler builtin ffs routines, therefore
-+ * differs in spirit from the above ffz (man ffs).
-+ */
-+
-+#define ffs(x) generic_ffs(x)
-+
-+/*
-+ * hweightN: returns the hamming weight (i.e. the number
-+ * of bits set) of a N-bit word
-+ */
-+
-+#define hweight32(x) generic_hweight32(x)
-+#define hweight16(x) generic_hweight16(x)
-+#define hweight8(x) generic_hweight8(x)
-+
-+#endif /* __KERNEL__ */
-+
-+#endif /* _ASM_GENERIC_BITOPS_H */
---- linux/include/asm-generic/bug.h
-+++ linux/include/asm-generic/bug.h
-@@ -0,0 +1,34 @@
-+#ifndef _ASM_GENERIC_BUG_H
-+#define _ASM_GENERIC_BUG_H
-+
-+#include <linux/compiler.h>
-+// #include <linux/config.h>
-+
-+#ifndef HAVE_ARCH_BUG
-+#define BUG() do { \
-+	printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \
-+	panic("BUG!"); \
-+} while (0)
-+#endif
-+
-+#ifndef HAVE_ARCH_PAGE_BUG
-+#define PAGE_BUG(page) do { \
-+	printk("page BUG for page at %p\n", page); \
-+	BUG(); \
-+} while (0)
-+#endif
-+
-+#ifndef HAVE_ARCH_BUG_ON
-+#define BUG_ON(condition) do { if (unlikely((condition)!=0)) BUG(); } while(0)
-+#endif
-+
-+#ifndef HAVE_ARCH_WARN_ON
-+#define WARN_ON(condition) do { \
-+	if (unlikely((condition)!=0)) { \
-+		printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \
-+		dump_stack(); \
-+	} \
-+} while (0)
-+#endif
-+
-+#endif
---- linux/include/asm-generic/cpumask_arith.h
-+++ linux/include/asm-generic/cpumask_arith.h
-@@ -0,0 +1,49 @@
-+#ifndef __ASM_GENERIC_CPUMASK_ARITH_H
-+#define __ASM_GENERIC_CPUMASK_ARITH_H
-+
-+/*
-+ * Arithmetic type -based cpu bitmaps. A single unsigned long is used
-+ * to contain the whole cpu bitmap.
-+ */
-+
-+#define cpu_set(cpu, map)		set_bit(cpu, &(map))
-+#define cpu_clear(cpu, map)		clear_bit(cpu, &(map))
-+#define cpu_isset(cpu, map)		test_bit(cpu, &(map))
-+#define cpu_test_and_set(cpu, map)	test_and_set_bit(cpu, &(map))
-+
-+#define cpus_and(dst,src1,src2)		do { dst = (src1) & (src2); } while (0)
-+#define cpus_or(dst,src1,src2)		do { dst = (src1) | (src2); } while (0)
-+#define cpus_clear(map)			do { map = 0; } while (0)
-+#define cpus_complement(map)		do { map = ~(map); } while (0)
-+#define cpus_equal(map1, map2)		((map1) == (map2))
-+#define cpus_empty(map)			((map) == 0)
-+#define cpus_addr(map)			(&(map))
-+
-+#if BITS_PER_LONG == 32
-+#define cpus_weight(map)		hweight32(map)
-+#elif BITS_PER_LONG == 64
-+#define cpus_weight(map)		hweight64(map)
-+#endif
-+
-+#define cpus_shift_right(dst, src, n)	do { dst = (src) >> (n); } while (0)
-+#define cpus_shift_left(dst, src, n)	do { dst = (src) << (n); } while (0)
-+
-+#define any_online_cpu(map)			\
-+({						\
-+	cpumask_t __tmp__;			\
-+	cpus_and(__tmp__, map, cpu_online_map);	\
-+	__tmp__ ? first_cpu(__tmp__) : NR_CPUS;	\
-+})
-+
-+#define CPU_MASK_ALL	(~((cpumask_t)0) >> (8*sizeof(cpumask_t) - NR_CPUS))
-+#define CPU_MASK_NONE	((cpumask_t)0)
-+
-+/* only ever use this for things that are _never_ used on large boxen */
-+#define cpus_coerce(map)		((unsigned long)(map))
-+#define cpus_promote(map)		({ map; })
-+#define cpumask_of_cpu(cpu)		({ ((cpumask_t)1) << (cpu); })
-+
-+#define first_cpu(map)			__ffs(map)
-+#define next_cpu(cpu, map)		find_next_bit(&(map), NR_CPUS, cpu + 1)
-+
-+#endif /* __ASM_GENERIC_CPUMASK_ARITH_H */
---- linux/include/asm-generic/cpumask_array.h
-+++ linux/include/asm-generic/cpumask_array.h
-@@ -0,0 +1,54 @@
-+#ifndef __ASM_GENERIC_CPUMASK_ARRAY_H
-+#define __ASM_GENERIC_CPUMASK_ARRAY_H
-+
-+/*
-+ * Array-based cpu bitmaps. An array of unsigned longs is used to contain
-+ * the bitmap, and then contained in a structure so it may be passed by
-+ * value.
-+ */
-+
-+#define CPU_ARRAY_SIZE		BITS_TO_LONGS(NR_CPUS)
-+
-+#define cpu_set(cpu, map)		set_bit(cpu, (map).mask)
-+#define cpu_clear(cpu, map)		clear_bit(cpu, (map).mask)
-+#define cpu_isset(cpu, map)		test_bit(cpu, (map).mask)
-+#define cpu_test_and_set(cpu, map)	test_and_set_bit(cpu, (map).mask)
-+
-+#define cpus_and(dst,src1,src2)	bitmap_and((dst).mask,(src1).mask, (src2).mask, NR_CPUS)
-+#define cpus_or(dst,src1,src2)	bitmap_or((dst).mask, (src1).mask, (src2).mask, NR_CPUS)
-+#define cpus_clear(map)		bitmap_clear((map).mask, NR_CPUS)
-+#define cpus_complement(map)	bitmap_complement((map).mask, NR_CPUS)
-+#define cpus_equal(map1, map2)	bitmap_equal((map1).mask, (map2).mask, NR_CPUS)
-+#define cpus_empty(map)		bitmap_empty(map.mask, NR_CPUS)
-+#define cpus_addr(map)		((map).mask)
-+#define cpus_weight(map)		bitmap_weight((map).mask, NR_CPUS)
-+#define cpus_shift_right(d, s, n)	bitmap_shift_right((d).mask, (s).mask, n, NR_CPUS)
-+#define cpus_shift_left(d, s, n)	bitmap_shift_left((d).mask, (s).mask, n, NR_CPUS)
-+#define first_cpu(map)		find_first_bit((map).mask, NR_CPUS)
-+#define next_cpu(cpu, map)	find_next_bit((map).mask, NR_CPUS, cpu + 1)
-+
-+/* only ever use this for things that are _never_ used on large boxen */
-+#define cpus_coerce(map)	((map).mask[0])
-+#define cpus_promote(map)	({ cpumask_t __cpu_mask = CPU_MASK_NONE;\
-+					__cpu_mask.mask[0] = map;	\
-+					__cpu_mask;			\
-+				})
-+#define cpumask_of_cpu(cpu)	({ cpumask_t __cpu_mask = CPU_MASK_NONE;\
-+					cpu_set(cpu, __cpu_mask);	\
-+					__cpu_mask;			\
-+				})
-+#define any_online_cpu(map)			\
-+({						\
-+	cpumask_t __tmp__;			\
-+	cpus_and(__tmp__, map, cpu_online_map);	\
-+	find_first_bit(__tmp__.mask, NR_CPUS);	\
-+})
-+
-+
-+/*
-+ * um, these need to be usable as static initializers
-+ */
-+#define CPU_MASK_ALL	{ {[0 ... CPU_ARRAY_SIZE-1] = ~0UL} }
-+#define CPU_MASK_NONE	{ {[0 ... CPU_ARRAY_SIZE-1] =  0UL} }
-+
-+#endif /* __ASM_GENERIC_CPUMASK_ARRAY_H */
---- linux/include/asm-generic/cpumask_const_reference.h
-+++ linux/include/asm-generic/cpumask_const_reference.h
-@@ -0,0 +1,29 @@
-+#ifndef __ASM_GENERIC_CPUMASK_CONST_REFERENCE_H
-+#define __ASM_GENERIC_CPUMASK_CONST_REFERENCE_H
-+
-+struct cpumask_ref {
-+	const cpumask_t *val;
-+};
-+
-+typedef const struct cpumask_ref cpumask_const_t;
-+
-+#define mk_cpumask_const(map)		((cpumask_const_t){ &(map) })
-+#define cpu_isset_const(cpu, map)	cpu_isset(cpu, *(map).val)
-+
-+#define cpus_and_const(dst,src1,src2)	cpus_and(dst,*(src1).val,*(src2).val)
-+#define cpus_or_const(dst,src1,src2)	cpus_or(dst,*(src1).val,*(src2).val)
-+
-+#define cpus_equal_const(map1, map2)	cpus_equal(*(map1).val, *(map2).val)
-+
-+#define cpus_copy_const(map1, map2)	bitmap_copy((map1).mask, (map2).val->mask, NR_CPUS)
-+
-+#define cpus_empty_const(map)		cpus_empty(*(map).val)
-+#define cpus_weight_const(map)		cpus_weight(*(map).val)
-+#define first_cpu_const(map)		first_cpu(*(map).val)
-+#define next_cpu_const(cpu, map)	next_cpu(cpu, *(map).val)
-+
-+/* only ever use this for things that are _never_ used on large boxen */
-+#define cpus_coerce_const(map)		cpus_coerce(*(map).val)
-+#define any_online_cpu_const(map)	any_online_cpu(*(map).val)
-+
-+#endif /* __ASM_GENERIC_CPUMASK_CONST_REFERENCE_H */
---- linux/include/asm-generic/cpumask_const_value.h
-+++ linux/include/asm-generic/cpumask_const_value.h
-@@ -0,0 +1,21 @@
-+#ifndef __ASM_GENERIC_CPUMASK_CONST_VALUE_H
-+#define __ASM_GENERIC_CPUMASK_CONST_VALUE_H
-+
-+typedef const cpumask_t cpumask_const_t;
-+
-+#define mk_cpumask_const(map)		(map)
-+#define cpu_isset_const(cpu, map)	cpu_isset(cpu, map)
-+#define cpus_and_const(dst,src1,src2)	cpus_and(dst, src1, src2)
-+#define cpus_or_const(dst,src1,src2)	cpus_or(dst, src1, src2)
-+#define cpus_equal_const(map1, map2)	cpus_equal(map1, map2)
-+#define cpus_empty_const(map)		cpus_empty(map)
-+#define cpus_copy_const(map1, map2)	do { map1 = (cpumask_t)map2; } while (0)
-+#define cpus_weight_const(map)		cpus_weight(map)
-+#define first_cpu_const(map)		first_cpu(map)
-+#define next_cpu_const(cpu, map)	next_cpu(cpu, map)
-+
-+/* only ever use this for things that are _never_ used on large boxen */
-+#define cpus_coerce_const(map)		cpus_coerce(map)
-+#define any_online_cpu_const(map)	any_online_cpu(map)
-+
-+#endif /* __ASM_GENERIC_CPUMASK_CONST_VALUE_H */
---- linux/include/asm-generic/cpumask.h
-+++ linux/include/asm-generic/cpumask.h
-@@ -0,0 +1,40 @@
-+#ifndef __ASM_GENERIC_CPUMASK_H
-+#define __ASM_GENERIC_CPUMASK_H
-+
-+// #include <linux/config.h>
-+#include <linux/kernel.h>
-+#include <linux/threads.h>
-+#include <linux/types.h>
-+#include <linux/bitmap.h>
-+
-+#if NR_CPUS > BITS_PER_LONG && NR_CPUS != 1
-+#define CPU_ARRAY_SIZE		BITS_TO_LONGS(NR_CPUS)
-+
-+struct cpumask
-+{
-+	unsigned long mask[CPU_ARRAY_SIZE];
-+};
-+
-+typedef struct cpumask cpumask_t;
-+
-+#else
-+typedef unsigned long cpumask_t;
-+#endif
-+
-+#ifdef CONFIG_SMP
-+#if NR_CPUS > BITS_PER_LONG
-+#include <asm-generic/cpumask_array.h>
-+#else
-+#include <asm-generic/cpumask_arith.h>
-+#endif
-+#else
-+#include <asm-generic/cpumask_up.h>
-+#endif
-+
-+#if NR_CPUS <= 4*BITS_PER_LONG
-+#include <asm-generic/cpumask_const_value.h>
-+#else
-+#include <asm-generic/cpumask_const_reference.h>
-+#endif
-+
-+#endif /* __ASM_GENERIC_CPUMASK_H */
---- linux/include/asm-generic/cpumask_up.h
-+++ linux/include/asm-generic/cpumask_up.h
-@@ -0,0 +1,59 @@
-+#ifndef __ASM_GENERIC_CPUMASK_UP_H
-+#define __ASM_GENERIC_CPUMASK_UP_H
-+
-+#define cpus_coerce(map)	(map)
-+
-+#define cpu_set(cpu, map)		do { (void)(cpu); cpus_coerce(map) = 1UL; } while (0)
-+#define cpu_clear(cpu, map)		do { (void)(cpu); cpus_coerce(map) = 0UL; } while (0)
-+#define cpu_isset(cpu, map)		((void)(cpu), cpus_coerce(map) != 0UL)
-+#define cpu_test_and_set(cpu, map)	((void)(cpu), test_and_set_bit(0, &(map)))
-+
-+#define cpus_and(dst, src1, src2)					\
-+	do {								\
-+		if (cpus_coerce(src1) && cpus_coerce(src2))		\
-+			cpus_coerce(dst) = 1UL;				\
-+		else							\
-+			cpus_coerce(dst) = 0UL;				\
-+	} while (0)
-+
-+#define cpus_or(dst, src1, src2)					\
-+	do {								\
-+		if (cpus_coerce(src1) || cpus_coerce(src2))		\
-+			cpus_coerce(dst) = 1UL;				\
-+		else							\
-+			cpus_coerce(dst) = 0UL;				\
-+	} while (0)
-+
-+#define cpus_clear(map)			do { cpus_coerce(map) = 0UL; } while (0)
-+
-+#define cpus_complement(map)						\
-+	do {								\
-+		cpus_coerce(map) = !cpus_coerce(map);			\
-+	} while (0)
-+
-+#define cpus_equal(map1, map2)		(cpus_coerce(map1) == cpus_coerce(map2))
-+#define cpus_empty(map)			(cpus_coerce(map) == 0UL)
-+#define cpus_addr(map)			(&(map))
-+#define cpus_weight(map)		(cpus_coerce(map) ? 1UL : 0UL)
-+#define cpus_shift_right(d, s, n)	do { cpus_coerce(d) = 0UL; } while (0)
-+#define cpus_shift_left(d, s, n)	do { cpus_coerce(d) = 0UL; } while (0)
-+#define first_cpu(map)			(cpus_coerce(map) ? 0 : 1)
-+#define next_cpu(cpu, map)		1
-+
-+/* only ever use this for things that are _never_ used on large boxen */
-+#define cpus_promote(map)						\
-+	({								\
-+		cpumask_t __tmp__;					\
-+		cpus_coerce(__tmp__) = map;				\
-+		__tmp__;						\
-+	})
-+#define cpumask_of_cpu(cpu)		((void)(cpu), cpus_promote(1))
-+#define any_online_cpu(map)		(cpus_coerce(map) ? 0 : 1)
-+
-+/*
-+ * um, these need to be usable as static initializers
-+ */
-+#define CPU_MASK_ALL	1UL
-+#define CPU_MASK_NONE	0UL
-+
-+#endif /* __ASM_GENERIC_CPUMASK_UP_H */
---- linux/include/asm-generic/cputime.h
-+++ linux/include/asm-generic/cputime.h
-@@ -0,0 +1,64 @@
-+#ifndef _ASM_GENERIC_CPUTIME_H
-+#define _ASM_GENERIC_CPUTIME_H
-+
-+#include <linux/time.h>
-+#include <linux/jiffies.h>
-+
-+typedef unsigned long cputime_t;
-+
-+#define cputime_zero			(0UL)
-+#define cputime_max			((~0UL >> 1) - 1)
-+#define cputime_add(__a, __b)		((__a) +  (__b))
-+#define cputime_sub(__a, __b)		((__a) -  (__b))
-+#define cputime_eq(__a, __b)		((__a) == (__b))
-+#define cputime_gt(__a, __b)		((__a) >  (__b))
-+#define cputime_ge(__a, __b)		((__a) >= (__b))
-+#define cputime_lt(__a, __b)		((__a) <  (__b))
-+#define cputime_le(__a, __b)		((__a) <= (__b))
-+#define cputime_to_jiffies(__ct)	(__ct)
-+#define jiffies_to_cputime(__hz)	(__hz)
-+
-+typedef u64 cputime64_t;
-+
-+#define cputime64_zero (0ULL)
-+#define cputime64_add(__a, __b)		((__a) + (__b))
-+#define cputime64_to_jiffies64(__ct)	(__ct)
-+#define cputime_to_cputime64(__ct)	((u64) __ct)
-+
-+
-+/*
-+ * Convert cputime to milliseconds and back.
-+ */
-+#define cputime_to_msecs(__ct)		jiffies_to_msecs(__ct)
-+#define msecs_to_cputime(__msecs)	msecs_to_jiffies(__msecs)
-+
-+/*
-+ * Convert cputime to seconds and back.
-+ */
-+#define cputime_to_secs(jif)		((jif) / HZ)
-+#define secs_to_cputime(sec)		((sec) * HZ)
-+
-+/*
-+ * Convert cputime to timespec and back.
-+ */
-+#define timespec_to_cputime(__val)	timespec_to_jiffies(__val)
-+#define cputime_to_timespec(__ct,__val)	jiffies_to_timespec(__ct,__val)
-+
-+/*
-+ * Convert cputime to timeval and back.
-+ */
-+#define timeval_to_cputime(__val)	timeval_to_jiffies(__val)
-+#define cputime_to_timeval(__ct,__val)	jiffies_to_timeval(__ct,__val)
-+
-+/*
-+ * Convert cputime to clock and back.
-+ */
-+#define cputime_to_clock_t(__ct)	jiffies_to_clock_t(__ct)
-+#define clock_t_to_cputime(__x)		clock_t_to_jiffies(__x)
-+
-+/*
-+ * Convert cputime64 to clock.
-+ */
-+#define cputime64_to_clock_t(__ct)	jiffies_64_to_clock_t(__ct)
-+
-+#endif
---- linux/include/asm-generic/div64.h
-+++ linux/include/asm-generic/div64.h
-@@ -0,0 +1,58 @@
-+#ifndef _ASM_GENERIC_DIV64_H
-+#define _ASM_GENERIC_DIV64_H
-+/*
-+ * Copyright (C) 2003 Bernardo Innocenti <bernie@develer.com>
-+ * Based on former asm-ppc/div64.h and asm-m68knommu/div64.h
-+ *
-+ * The semantics of do_div() are:
-+ *
-+ * uint32_t do_div(uint64_t *n, uint32_t base)
-+ * {
-+ * 	uint32_t remainder = *n % base;
-+ * 	*n = *n / base;
-+ * 	return remainder;
-+ * }
-+ *
-+ * NOTE: macro parameter n is evaluated multiple times,
-+ *       beware of side effects!
-+ */
-+
-+#include <linux/types.h>
-+#include <linux/compiler.h>
-+
-+#if BITS_PER_LONG == 64
-+
-+# define do_div(n,base) ({					\
-+	uint32_t __base = (base);				\
-+	uint32_t __rem;						\
-+	__rem = ((uint64_t)(n)) % __base;			\
-+	(n) = ((uint64_t)(n)) / __base;				\
-+	__rem;							\
-+ })
-+
-+#elif BITS_PER_LONG == 32
-+
-+extern uint32_t __div64_32(uint64_t *dividend, uint32_t divisor);
-+
-+/* The unnecessary pointer compare is there
-+ * to check for type safety (n must be 64bit)
-+ */
-+# define do_div(n,base) ({				\
-+	uint32_t __base = (base);			\
-+	uint32_t __rem;					\
-+	(void)(((typeof((n)) *)0) == ((uint64_t *)0));	\
-+	if (likely(((n) >> 32) == 0)) {			\
-+		__rem = (uint32_t)(n) % __base;		\
-+		(n) = (uint32_t)(n) / __base;		\
-+	} else 						\
-+		__rem = __div64_32(&(n), __base);	\
-+	__rem;						\
-+ })
-+
-+#else /* BITS_PER_LONG == ?? */
-+
-+# error do_div() does not yet support the C64
-+
-+#endif /* BITS_PER_LONG */
-+
-+#endif /* _ASM_GENERIC_DIV64_H */
---- linux/include/asm-generic/dma-mapping-broken.h
-+++ linux/include/asm-generic/dma-mapping-broken.h
-@@ -0,0 +1,22 @@
-+#ifndef _ASM_GENERIC_DMA_MAPPING_H
-+#define _ASM_GENERIC_DMA_MAPPING_H
-+
-+/* This is used for archs that do not support DMA */
-+
-+
-+static inline void *
-+dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle,
-+		   int flag)
-+{
-+	BUG();
-+	return NULL;
-+}
-+
-+static inline void
-+dma_free_coherent(struct device *dev, size_t size, void *cpu_addr,
-+		    dma_addr_t dma_handle)
-+{
-+	BUG();
-+}
-+
-+#endif /* _ASM_GENERIC_DMA_MAPPING_H */
---- linux/include/asm-generic/dma-mapping.h
-+++ linux/include/asm-generic/dma-mapping.h
-@@ -0,0 +1,309 @@
-+/* Copyright (C) 2002 by James.Bottomley@HansenPartnership.com 
-+ *
-+ * Implements the generic device dma API via the existing pci_ one
-+ * for unconverted architectures
-+ */
-+
-+#ifndef _ASM_GENERIC_DMA_MAPPING_H
-+#define _ASM_GENERIC_DMA_MAPPING_H
-+
-+// #include <linux/config.h>
-+
-+#ifdef CONFIG_PCI
-+
-+/* we implement the API below in terms of the existing PCI one,
-+ * so include it */
-+#include <linux/pci.h>
-+/* need struct page definitions */
-+#include <linux/mm.h>
-+
-+static inline int
-+dma_supported(struct device *dev, u64 mask)
-+{
-+	BUG_ON(dev->bus != &pci_bus_type);
-+
-+	return pci_dma_supported(to_pci_dev(dev), mask);
-+}
-+
-+static inline int
-+dma_set_mask(struct device *dev, u64 dma_mask)
-+{
-+	BUG_ON(dev->bus != &pci_bus_type);
-+
-+	return pci_set_dma_mask(to_pci_dev(dev), dma_mask);
-+}
-+
-+static inline void *
-+dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle,
-+		   int flag)
-+{
-+	BUG_ON(dev->bus != &pci_bus_type);
-+
-+	return pci_alloc_consistent(to_pci_dev(dev), size, dma_handle);
-+}
-+
-+static inline void
-+dma_free_coherent(struct device *dev, size_t size, void *cpu_addr,
-+		    dma_addr_t dma_handle)
-+{
-+	BUG_ON(dev->bus != &pci_bus_type);
-+
-+	pci_free_consistent(to_pci_dev(dev), size, cpu_addr, dma_handle);
-+}
-+
-+static inline dma_addr_t
-+dma_map_single(struct device *dev, void *cpu_addr, size_t size,
-+	       enum dma_data_direction direction)
-+{
-+	BUG_ON(dev->bus != &pci_bus_type);
-+
-+	return pci_map_single(to_pci_dev(dev), cpu_addr, size, (int)direction);
-+}
-+
-+static inline void
-+dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size,
-+		 enum dma_data_direction direction)
-+{
-+	BUG_ON(dev->bus != &pci_bus_type);
-+
-+	pci_unmap_single(to_pci_dev(dev), dma_addr, size, (int)direction);
-+}
-+
-+static inline dma_addr_t
-+dma_map_page(struct device *dev, struct page *page,
-+	     unsigned long offset, size_t size,
-+	     enum dma_data_direction direction)
-+{
-+	BUG_ON(dev->bus != &pci_bus_type);
-+
-+	return pci_map_page(to_pci_dev(dev), page, offset, size, (int)direction);
-+}
-+
-+static inline void
-+dma_unmap_page(struct device *dev, dma_addr_t dma_address, size_t size,
-+	       enum dma_data_direction direction)
-+{
-+	BUG_ON(dev->bus != &pci_bus_type);
-+
-+	pci_unmap_page(to_pci_dev(dev), dma_address, size, (int)direction);
-+}
-+
-+static inline int
-+dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
-+	   enum dma_data_direction direction)
-+{
-+	BUG_ON(dev->bus != &pci_bus_type);
-+
-+	return pci_map_sg(to_pci_dev(dev), sg, nents, (int)direction);
-+}
-+
-+static inline void
-+dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nhwentries,
-+	     enum dma_data_direction direction)
-+{
-+	BUG_ON(dev->bus != &pci_bus_type);
-+
-+	pci_unmap_sg(to_pci_dev(dev), sg, nhwentries, (int)direction);
-+}
-+
-+static inline void
-+dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, size_t size,
-+			enum dma_data_direction direction)
-+{
-+	BUG_ON(dev->bus != &pci_bus_type);
-+
-+	pci_dma_sync_single_for_cpu(to_pci_dev(dev), dma_handle,
-+				    size, (int)direction);
-+}
-+
-+static inline void
-+dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle, size_t size,
-+			   enum dma_data_direction direction)
-+{
-+	BUG_ON(dev->bus != &pci_bus_type);
-+
-+	pci_dma_sync_single_for_device(to_pci_dev(dev), dma_handle,
-+				       size, (int)direction);
-+}
-+
-+static inline void
-+dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, int nelems,
-+		    enum dma_data_direction direction)
-+{
-+	BUG_ON(dev->bus != &pci_bus_type);
-+
-+	pci_dma_sync_sg_for_cpu(to_pci_dev(dev), sg, nelems, (int)direction);
-+}
-+
-+static inline void
-+dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, int nelems,
-+		       enum dma_data_direction direction)
-+{
-+	BUG_ON(dev->bus != &pci_bus_type);
-+
-+	pci_dma_sync_sg_for_device(to_pci_dev(dev), sg, nelems, (int)direction);
-+}
-+
-+static inline int
-+dma_mapping_error(dma_addr_t dma_addr)
-+{
-+	return pci_dma_mapping_error(dma_addr);
-+}
-+
-+
-+#else
-+
-+static inline int
-+dma_supported(struct device *dev, u64 mask)
-+{
-+	return 0;
-+}
-+
-+static inline int
-+dma_set_mask(struct device *dev, u64 dma_mask)
-+{
-+	BUG();
-+	return 0;
-+}
-+
-+static inline void *
-+dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle,
-+		   int flag)
-+{
-+	BUG();
-+	return NULL;
-+}
-+
-+static inline void
-+dma_free_coherent(struct device *dev, size_t size, void *cpu_addr,
-+		    dma_addr_t dma_handle)
-+{
-+	BUG();
-+}
-+
-+static inline dma_addr_t
-+dma_map_single(struct device *dev, void *cpu_addr, size_t size,
-+	       enum dma_data_direction direction)
-+{
-+	BUG();
-+	return 0;
-+}
-+
-+static inline void
-+dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size,
-+		 enum dma_data_direction direction)
-+{
-+	BUG();
-+}
-+
-+static inline dma_addr_t
-+dma_map_page(struct device *dev, struct page *page,
-+	     unsigned long offset, size_t size,
-+	     enum dma_data_direction direction)
-+{
-+	BUG();
-+	return 0;
-+}
-+
-+static inline void
-+dma_unmap_page(struct device *dev, dma_addr_t dma_address, size_t size,
-+	       enum dma_data_direction direction)
-+{
-+	BUG();
-+}
-+
-+static inline int
-+dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
-+	   enum dma_data_direction direction)
-+{
-+	BUG();
-+	return 0;
-+}
-+
-+static inline void
-+dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nhwentries,
-+	     enum dma_data_direction direction)
-+{
-+	BUG();
-+}
-+
-+static inline void
-+dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, size_t size,
-+			enum dma_data_direction direction)
-+{
-+	BUG();
-+}
-+
-+static inline void
-+dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle, size_t size,
-+			   enum dma_data_direction direction)
-+{
-+	BUG();
-+}
-+
-+static inline void
-+dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, int nelems,
-+		    enum dma_data_direction direction)
-+{
-+	BUG();
-+}
-+
-+static inline void
-+dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, int nelems,
-+		       enum dma_data_direction direction)
-+{
-+	BUG();
-+}
-+
-+static inline int
-+dma_error(dma_addr_t dma_addr)
-+{
-+	return 0;
-+}
-+
-+#endif
-+
-+/* Now for the API extensions over the pci_ one */
-+
-+#define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f)
-+#define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h)
-+#define dma_is_consistent(d)	(1)
-+
-+static inline int
-+dma_get_cache_alignment(void)
-+{
-+	/* no easy way to get cache size on all processors, so return
-+	 * the maximum possible, to be safe */
-+	return (1 << L1_CACHE_SHIFT_MAX);
-+}
-+
-+static inline void
-+dma_sync_single_range_for_cpu(struct device *dev, dma_addr_t dma_handle,
-+			      unsigned long offset, size_t size,
-+			      enum dma_data_direction direction)
-+{
-+	/* just sync everything, that's all the pci API can do */
-+	dma_sync_single_for_cpu(dev, dma_handle, offset+size, direction);
-+}
-+
-+static inline void
-+dma_sync_single_range_for_device(struct device *dev, dma_addr_t dma_handle,
-+				 unsigned long offset, size_t size,
-+				 enum dma_data_direction direction)
-+{
-+	/* just sync everything, that's all the pci API can do */
-+	dma_sync_single_for_device(dev, dma_handle, offset+size, direction);
-+}
-+
-+static inline void
-+dma_cache_sync(void *vaddr, size_t size,
-+	       enum dma_data_direction direction)
-+{
-+	/* could define this in terms of the dma_cache ... operations,
-+	 * but if you get this on a platform, you should convert the platform
-+	 * to using the generic device DMA API */
-+	BUG();
-+}
-+
-+#endif
-+
---- linux/include/asm-generic/errno-base.h
-+++ linux/include/asm-generic/errno-base.h
-@@ -0,0 +1,39 @@
-+#ifndef _ASM_GENERIC_ERRNO_BASE_H
-+#define _ASM_GENERIC_ERRNO_BASE_H
-+
-+#define	EPERM		 1	/* Operation not permitted */
-+#define	ENOENT		 2	/* No such file or directory */
-+#define	ESRCH		 3	/* No such process */
-+#define	EINTR		 4	/* Interrupted system call */
-+#define	EIO		 5	/* I/O error */
-+#define	ENXIO		 6	/* No such device or address */
-+#define	E2BIG		 7	/* Argument list too long */
-+#define	ENOEXEC		 8	/* Exec format error */
-+#define	EBADF		 9	/* Bad file number */
-+#define	ECHILD		10	/* No child processes */
-+#define	EAGAIN		11	/* Try again */
-+#define	ENOMEM		12	/* Out of memory */
-+#define	EACCES		13	/* Permission denied */
-+#define	EFAULT		14	/* Bad address */
-+#define	ENOTBLK		15	/* Block device required */
-+#define	EBUSY		16	/* Device or resource busy */
-+#define	EEXIST		17	/* File exists */
-+#define	EXDEV		18	/* Cross-device link */
-+#define	ENODEV		19	/* No such device */
-+#define	ENOTDIR		20	/* Not a directory */
-+#define	EISDIR		21	/* Is a directory */
-+#define	EINVAL		22	/* Invalid argument */
-+#define	ENFILE		23	/* File table overflow */
-+#define	EMFILE		24	/* Too many open files */
-+#define	ENOTTY		25	/* Not a typewriter */
-+#define	ETXTBSY		26	/* Text file busy */
-+#define	EFBIG		27	/* File too large */
-+#define	ENOSPC		28	/* No space left on device */
-+#define	ESPIPE		29	/* Illegal seek */
-+#define	EROFS		30	/* Read-only file system */
-+#define	EMLINK		31	/* Too many links */
-+#define	EPIPE		32	/* Broken pipe */
-+#define	EDOM		33	/* Math argument out of domain of func */
-+#define	ERANGE		34	/* Math result not representable */
-+
-+#endif
---- linux/include/asm-generic/errno.h
-+++ linux/include/asm-generic/errno.h
-@@ -0,0 +1,105 @@
-+#ifndef _ASM_GENERIC_ERRNO_H
-+#define _ASM_GENERIC_ERRNO_H
-+
-+#include <asm-generic/errno-base.h>
-+
-+#define	EDEADLK		35	/* Resource deadlock would occur */
-+#define	ENAMETOOLONG	36	/* File name too long */
-+#define	ENOLCK		37	/* No record locks available */
-+#define	ENOSYS		38	/* Function not implemented */
-+#define	ENOTEMPTY	39	/* Directory not empty */
-+#define	ELOOP		40	/* Too many symbolic links encountered */
-+#define	EWOULDBLOCK	EAGAIN	/* Operation would block */
-+#define	ENOMSG		42	/* No message of desired type */
-+#define	EIDRM		43	/* Identifier removed */
-+#define	ECHRNG		44	/* Channel number out of range */
-+#define	EL2NSYNC	45	/* Level 2 not synchronized */
-+#define	EL3HLT		46	/* Level 3 halted */
-+#define	EL3RST		47	/* Level 3 reset */
-+#define	ELNRNG		48	/* Link number out of range */
-+#define	EUNATCH		49	/* Protocol driver not attached */
-+#define	ENOCSI		50	/* No CSI structure available */
-+#define	EL2HLT		51	/* Level 2 halted */
-+#define	EBADE		52	/* Invalid exchange */
-+#define	EBADR		53	/* Invalid request descriptor */
-+#define	EXFULL		54	/* Exchange full */
-+#define	ENOANO		55	/* No anode */
-+#define	EBADRQC		56	/* Invalid request code */
-+#define	EBADSLT		57	/* Invalid slot */
-+
-+#define	EDEADLOCK	EDEADLK
-+
-+#define	EBFONT		59	/* Bad font file format */
-+#define	ENOSTR		60	/* Device not a stream */
-+#define	ENODATA		61	/* No data available */
-+#define	ETIME		62	/* Timer expired */
-+#define	ENOSR		63	/* Out of streams resources */
-+#define	ENONET		64	/* Machine is not on the network */
-+#define	ENOPKG		65	/* Package not installed */
-+#define	EREMOTE		66	/* Object is remote */
-+#define	ENOLINK		67	/* Link has been severed */
-+#define	EADV		68	/* Advertise error */
-+#define	ESRMNT		69	/* Srmount error */
-+#define	ECOMM		70	/* Communication error on send */
-+#define	EPROTO		71	/* Protocol error */
-+#define	EMULTIHOP	72	/* Multihop attempted */
-+#define	EDOTDOT		73	/* RFS specific error */
-+#define	EBADMSG		74	/* Not a data message */
-+#define	EOVERFLOW	75	/* Value too large for defined data type */
-+#define	ENOTUNIQ	76	/* Name not unique on network */
-+#define	EBADFD		77	/* File descriptor in bad state */
-+#define	EREMCHG		78	/* Remote address changed */
-+#define	ELIBACC		79	/* Can not access a needed shared library */
-+#define	ELIBBAD		80	/* Accessing a corrupted shared library */
-+#define	ELIBSCN		81	/* .lib section in a.out corrupted */
-+#define	ELIBMAX		82	/* Attempting to link in too many shared libraries */
-+#define	ELIBEXEC	83	/* Cannot exec a shared library directly */
-+#define	EILSEQ		84	/* Illegal byte sequence */
-+#define	ERESTART	85	/* Interrupted system call should be restarted */
-+#define	ESTRPIPE	86	/* Streams pipe error */
-+#define	EUSERS		87	/* Too many users */
-+#define	ENOTSOCK	88	/* Socket operation on non-socket */
-+#define	EDESTADDRREQ	89	/* Destination address required */
-+#define	EMSGSIZE	90	/* Message too long */
-+#define	EPROTOTYPE	91	/* Protocol wrong type for socket */
-+#define	ENOPROTOOPT	92	/* Protocol not available */
-+#define	EPROTONOSUPPORT	93	/* Protocol not supported */
-+#define	ESOCKTNOSUPPORT	94	/* Socket type not supported */
-+#define	EOPNOTSUPP	95	/* Operation not supported on transport endpoint */
-+#define	EPFNOSUPPORT	96	/* Protocol family not supported */
-+#define	EAFNOSUPPORT	97	/* Address family not supported by protocol */
-+#define	EADDRINUSE	98	/* Address already in use */
-+#define	EADDRNOTAVAIL	99	/* Cannot assign requested address */
-+#define	ENETDOWN	100	/* Network is down */
-+#define	ENETUNREACH	101	/* Network is unreachable */
-+#define	ENETRESET	102	/* Network dropped connection because of reset */
-+#define	ECONNABORTED	103	/* Software caused connection abort */
-+#define	ECONNRESET	104	/* Connection reset by peer */
-+#define	ENOBUFS		105	/* No buffer space available */
-+#define	EISCONN		106	/* Transport endpoint is already connected */
-+#define	ENOTCONN	107	/* Transport endpoint is not connected */
-+#define	ESHUTDOWN	108	/* Cannot send after transport endpoint shutdown */
-+#define	ETOOMANYREFS	109	/* Too many references: cannot splice */
-+#define	ETIMEDOUT	110	/* Connection timed out */
-+#define	ECONNREFUSED	111	/* Connection refused */
-+#define	EHOSTDOWN	112	/* Host is down */
-+#define	EHOSTUNREACH	113	/* No route to host */
-+#define	EALREADY	114	/* Operation already in progress */
-+#define	EINPROGRESS	115	/* Operation now in progress */
-+#define	ESTALE		116	/* Stale NFS file handle */
-+#define	EUCLEAN		117	/* Structure needs cleaning */
-+#define	ENOTNAM		118	/* Not a XENIX named type file */
-+#define	ENAVAIL		119	/* No XENIX semaphores available */
-+#define	EISNAM		120	/* Is a named type file */
-+#define	EREMOTEIO	121	/* Remote I/O error */
-+#define	EDQUOT		122	/* Quota exceeded */
-+
-+#define	ENOMEDIUM	123	/* No medium found */
-+#define	EMEDIUMTYPE	124	/* Wrong medium type */
-+#define	ECANCELED	125	/* Operation Canceled */
-+#define	ENOKEY		126	/* Required key not available */
-+#define	EKEYEXPIRED	127	/* Key has expired */
-+#define	EKEYREVOKED	128	/* Key has been revoked */
-+#define	EKEYREJECTED	129	/* Key was rejected by service */
-+
-+#endif
---- linux/include/asm-generic/hdreg.h
-+++ linux/include/asm-generic/hdreg.h
-@@ -0,0 +1,8 @@
-+#warning <asm/hdreg.h> is obsolete, please do not use it
-+
-+#ifndef __ASM_GENERIC_HDREG_H
-+#define __ASM_GENERIC_HDREG_H
-+
-+typedef unsigned long ide_ioreg_t;
-+
-+#endif /* __ASM_GENERIC_HDREG_H */
---- linux/include/asm-generic/ide_iops.h
-+++ linux/include/asm-generic/ide_iops.h
-@@ -0,0 +1,38 @@
-+/* Generic I/O and MEMIO string operations.  */
-+
-+#define __ide_insw	insw
-+#define __ide_insl	insl
-+#define __ide_outsw	outsw
-+#define __ide_outsl	outsl
-+
-+static __inline__ void __ide_mm_insw(void __iomem *port, void *addr, u32 count)
-+{
-+	while (count--) {
-+		*(u16 *)addr = readw(port);
-+		addr += 2;
-+	}
-+}
-+
-+static __inline__ void __ide_mm_insl(void __iomem *port, void *addr, u32 count)
-+{
-+	while (count--) {
-+		*(u32 *)addr = readl(port);
-+		addr += 4;
-+	}
-+}
-+
-+static __inline__ void __ide_mm_outsw(void __iomem *port, void *addr, u32 count)
-+{
-+	while (count--) {
-+		writew(*(u16 *)addr, port);
-+		addr += 2;
-+	}
-+}
-+
-+static __inline__ void __ide_mm_outsl(void __iomem * port, void *addr, u32 count)
-+{
-+	while (count--) {
-+		writel(*(u32 *)addr, port);
-+		addr += 4;
-+	}
-+}
---- linux/include/asm-generic/iomap.h
-+++ linux/include/asm-generic/iomap.h
-@@ -0,0 +1,63 @@
-+#ifndef __GENERIC_IO_H
-+#define __GENERIC_IO_H
-+
-+#include <linux/linkage.h>
-+
-+/*
-+ * These are the "generic" interfaces for doing new-style
-+ * memory-mapped or PIO accesses. Architectures may do
-+ * their own arch-optimized versions, these just act as
-+ * wrappers around the old-style IO register access functions:
-+ * read[bwl]/write[bwl]/in[bwl]/out[bwl]
-+ *
-+ * Don't include this directly, include it from <asm/io.h>.
-+ */
-+
-+/*
-+ * Read/write from/to an (offsettable) iomem cookie. It might be a PIO
-+ * access or a MMIO access, these functions don't care. The info is
-+ * encoded in the hardware mapping set up by the mapping functions
-+ * (or the cookie itself, depending on implementation and hw).
-+ *
-+ * The generic routines just encode the PIO/MMIO as part of the
-+ * cookie, and coldly assume that the MMIO IO mappings are not
-+ * in the low address range. Architectures for which this is not
-+ * true can't use this generic implementation.
-+ */
-+extern unsigned int fastcall ioread8(void __iomem *);
-+extern unsigned int fastcall ioread16(void __iomem *);
-+extern unsigned int fastcall ioread32(void __iomem *);
-+
-+extern void fastcall iowrite8(u8, void __iomem *);
-+extern void fastcall iowrite16(u16, void __iomem *);
-+extern void fastcall iowrite32(u32, void __iomem *);
-+
-+/*
-+ * "string" versions of the above. Note that they
-+ * use native byte ordering for the accesses (on
-+ * the assumption that IO and memory agree on a
-+ * byte order, and CPU byteorder is irrelevant).
-+ *
-+ * They do _not_ update the port address. If you
-+ * want MMIO that copies stuff laid out in MMIO
-+ * memory across multiple ports, use "memcpy_toio()"
-+ * and friends.
-+ */
-+extern void fastcall ioread8_rep(void __iomem *port, void *buf, unsigned long count);
-+extern void fastcall ioread16_rep(void __iomem *port, void *buf, unsigned long count);
-+extern void fastcall ioread32_rep(void __iomem *port, void *buf, unsigned long count);
-+
-+extern void fastcall iowrite8_rep(void __iomem *port, const void *buf, unsigned long count);
-+extern void fastcall iowrite16_rep(void __iomem *port, const void *buf, unsigned long count);
-+extern void fastcall iowrite32_rep(void __iomem *port, const void *buf, unsigned long count);
-+
-+/* Create a virtual mapping cookie for an IO port range */
-+extern void __iomem *ioport_map(unsigned long port, unsigned int nr);
-+extern void ioport_unmap(void __iomem *);
-+
-+/* Create a virtual mapping cookie for a PCI BAR (memory or IO) */
-+struct pci_dev;
-+extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
-+extern void pci_iounmap(struct pci_dev *dev, void __iomem *);
-+
-+#endif
---- linux/include/asm-generic/local.h
-+++ linux/include/asm-generic/local.h
-@@ -0,0 +1,118 @@
-+#ifndef _ASM_GENERIC_LOCAL_H
-+#define _ASM_GENERIC_LOCAL_H
-+
-+// #include <linux/config.h>
-+#include <linux/percpu.h>
-+#include <linux/hardirq.h>
-+#include <asm/types.h>
-+
-+/* An unsigned long type for operations which are atomic for a single
-+ * CPU.  Usually used in combination with per-cpu variables. */
-+
-+#if BITS_PER_LONG == 32
-+/* Implement in terms of atomics. */
-+
-+/* Don't use typedef: don't want them to be mixed with atomic_t's. */
-+typedef struct
-+{
-+	atomic_t a;
-+} local_t;
-+
-+#define LOCAL_INIT(i)	{ ATOMIC_INIT(i) }
-+
-+#define local_read(l)	((unsigned long)atomic_read(&(l)->a))
-+#define local_set(l,i)	atomic_set((&(l)->a),(i))
-+#define local_inc(l)	atomic_inc(&(l)->a)
-+#define local_dec(l)	atomic_dec(&(l)->a)
-+#define local_add(i,l)	atomic_add((i),(&(l)->a))
-+#define local_sub(i,l)	atomic_sub((i),(&(l)->a))
-+
-+/* Non-atomic variants, ie. preemption disabled and won't be touched
-+ * in interrupt, etc.  Some archs can optimize this case well. */
-+#define __local_inc(l)		local_set((l), local_read(l) + 1)
-+#define __local_dec(l)		local_set((l), local_read(l) - 1)
-+#define __local_add(i,l)	local_set((l), local_read(l) + (i))
-+#define __local_sub(i,l)	local_set((l), local_read(l) - (i))
-+
-+#else /* ... can't use atomics. */
-+/* Implement in terms of three variables.
-+   Another option would be to use local_irq_save/restore. */
-+
-+typedef struct
-+{
-+	/* 0 = in hardirq, 1 = in softirq, 2 = usermode. */
-+	unsigned long v[3];
-+} local_t;
-+
-+#define _LOCAL_VAR(l)	((l)->v[!in_interrupt() + !in_irq()])
-+
-+#define LOCAL_INIT(i)	{ { (i), 0, 0 } }
-+
-+static inline unsigned long local_read(local_t *l)
-+{
-+	return l->v[0] + l->v[1] + l->v[2];
-+}
-+
-+static inline void local_set(local_t *l, unsigned long v)
-+{
-+	l->v[0] = v;
-+	l->v[1] = l->v[2] = 0;
-+}
-+
-+static inline void local_inc(local_t *l)
-+{
-+	preempt_disable();
-+	_LOCAL_VAR(l)++;
-+	preempt_enable();
-+}
-+
-+static inline void local_dec(local_t *l)
-+{
-+	preempt_disable();
-+	_LOCAL_VAR(l)--;
-+	preempt_enable();
-+}
-+
-+static inline void local_add(unsigned long v, local_t *l)
-+{
-+	preempt_disable();
-+	_LOCAL_VAR(l) += v;
-+	preempt_enable();
-+}
-+
-+static inline void local_sub(unsigned long v, local_t *l)
-+{
-+	preempt_disable();
-+	_LOCAL_VAR(l) -= v;
-+	preempt_enable();
-+}
-+
-+/* Non-atomic variants, ie. preemption disabled and won't be touched
-+ * in interrupt, etc.  Some archs can optimize this case well. */
-+#define __local_inc(l)		((l)->v[0]++)
-+#define __local_dec(l)		((l)->v[0]--)
-+#define __local_add(i,l)	((l)->v[0] += (i))
-+#define __local_sub(i,l)	((l)->v[0] -= (i))
-+
-+#endif /* Non-atomic implementation */
-+
-+/* Use these for per-cpu local_t variables: on some archs they are
-+ * much more efficient than these naive implementations.  Note they take
-+ * a variable (eg. mystruct.foo), not an address.
-+ */
-+#define cpu_local_read(v)	local_read(&__get_cpu_var(v))
-+#define cpu_local_set(v, i)	local_set(&__get_cpu_var(v), (i))
-+#define cpu_local_inc(v)	local_inc(&__get_cpu_var(v))
-+#define cpu_local_dec(v)	local_dec(&__get_cpu_var(v))
-+#define cpu_local_add(i, v)	local_add((i), &__get_cpu_var(v))
-+#define cpu_local_sub(i, v)	local_sub((i), &__get_cpu_var(v))
-+
-+/* Non-atomic increments, ie. preemption disabled and won't be touched
-+ * in interrupt, etc.  Some archs can optimize this case well.
-+ */
-+#define __cpu_local_inc(v)	__local_inc(&__get_cpu_var(v))
-+#define __cpu_local_dec(v)	__local_dec(&__get_cpu_var(v))
-+#define __cpu_local_add(i, v)	__local_add((i), &__get_cpu_var(v))
-+#define __cpu_local_sub(i, v)	__local_sub((i), &__get_cpu_var(v))
-+
-+#endif /* _ASM_GENERIC_LOCAL_H */
---- linux/include/asm-generic/pci-dma-compat.h
-+++ linux/include/asm-generic/pci-dma-compat.h
-@@ -0,0 +1,107 @@
-+/* include this file if the platform implements the dma_ DMA Mapping API
-+ * and wants to provide the pci_ DMA Mapping API in terms of it */
-+
-+#ifndef _ASM_GENERIC_PCI_DMA_COMPAT_H
-+#define _ASM_GENERIC_PCI_DMA_COMPAT_H
-+
-+#include <linux/dma-mapping.h>
-+
-+/* note pci_set_dma_mask isn't here, since it's a public function
-+ * exported from drivers/pci, use dma_supported instead */
-+
-+static inline int
-+pci_dma_supported(struct pci_dev *hwdev, u64 mask)
-+{
-+	return dma_supported(hwdev == NULL ? NULL : &hwdev->dev, mask);
-+}
-+
-+static inline void *
-+pci_alloc_consistent(struct pci_dev *hwdev, size_t size,
-+		     dma_addr_t *dma_handle)
-+{
-+	return dma_alloc_coherent(hwdev == NULL ? NULL : &hwdev->dev, size, dma_handle, GFP_ATOMIC);
-+}
-+
-+static inline void
-+pci_free_consistent(struct pci_dev *hwdev, size_t size,
-+		    void *vaddr, dma_addr_t dma_handle)
-+{
-+	dma_free_coherent(hwdev == NULL ? NULL : &hwdev->dev, size, vaddr, dma_handle);
-+}
-+
-+static inline dma_addr_t
-+pci_map_single(struct pci_dev *hwdev, void *ptr, size_t size, int direction)
-+{
-+	return dma_map_single(hwdev == NULL ? NULL : &hwdev->dev, ptr, size, (enum dma_data_direction)direction);
-+}
-+
-+static inline void
-+pci_unmap_single(struct pci_dev *hwdev, dma_addr_t dma_addr,
-+		 size_t size, int direction)
-+{
-+	dma_unmap_single(hwdev == NULL ? NULL : &hwdev->dev, dma_addr, size, (enum dma_data_direction)direction);
-+}
-+
-+static inline dma_addr_t
-+pci_map_page(struct pci_dev *hwdev, struct page *page,
-+	     unsigned long offset, size_t size, int direction)
-+{
-+	return dma_map_page(hwdev == NULL ? NULL : &hwdev->dev, page, offset, size, (enum dma_data_direction)direction);
-+}
-+
-+static inline void
-+pci_unmap_page(struct pci_dev *hwdev, dma_addr_t dma_address,
-+	       size_t size, int direction)
-+{
-+	dma_unmap_page(hwdev == NULL ? NULL : &hwdev->dev, dma_address, size, (enum dma_data_direction)direction);
-+}
-+
-+static inline int
-+pci_map_sg(struct pci_dev *hwdev, struct scatterlist *sg,
-+	   int nents, int direction)
-+{
-+	return dma_map_sg(hwdev == NULL ? NULL : &hwdev->dev, sg, nents, (enum dma_data_direction)direction);
-+}
-+
-+static inline void
-+pci_unmap_sg(struct pci_dev *hwdev, struct scatterlist *sg,
-+	     int nents, int direction)
-+{
-+	dma_unmap_sg(hwdev == NULL ? NULL : &hwdev->dev, sg, nents, (enum dma_data_direction)direction);
-+}
-+
-+static inline void
-+pci_dma_sync_single_for_cpu(struct pci_dev *hwdev, dma_addr_t dma_handle,
-+		    size_t size, int direction)
-+{
-+	dma_sync_single_for_cpu(hwdev == NULL ? NULL : &hwdev->dev, dma_handle, size, (enum dma_data_direction)direction);
-+}
-+
-+static inline void
-+pci_dma_sync_single_for_device(struct pci_dev *hwdev, dma_addr_t dma_handle,
-+		    size_t size, int direction)
-+{
-+	dma_sync_single_for_device(hwdev == NULL ? NULL : &hwdev->dev, dma_handle, size, (enum dma_data_direction)direction);
-+}
-+
-+static inline void
-+pci_dma_sync_sg_for_cpu(struct pci_dev *hwdev, struct scatterlist *sg,
-+		int nelems, int direction)
-+{
-+	dma_sync_sg_for_cpu(hwdev == NULL ? NULL : &hwdev->dev, sg, nelems, (enum dma_data_direction)direction);
-+}
-+
-+static inline void
-+pci_dma_sync_sg_for_device(struct pci_dev *hwdev, struct scatterlist *sg,
-+		int nelems, int direction)
-+{
-+	dma_sync_sg_for_device(hwdev == NULL ? NULL : &hwdev->dev, sg, nelems, (enum dma_data_direction)direction);
-+}
-+
-+static inline int
-+pci_dma_mapping_error(dma_addr_t dma_addr)
-+{
-+	return dma_mapping_error(dma_addr);
-+}
-+
-+#endif
---- linux/include/asm-generic/pci.h
-+++ linux/include/asm-generic/pci.h
-@@ -0,0 +1,34 @@
-+/*
-+ * linux/include/asm-generic/pci.h
-+ *
-+ *  Copyright (C) 2003 Russell King
-+ */
-+#ifndef _ASM_GENERIC_PCI_H
-+#define _ASM_GENERIC_PCI_H
-+
-+/**
-+ * pcibios_resource_to_bus - convert resource to PCI bus address
-+ * @dev: device which owns this resource
-+ * @region: converted bus-centric region (start,end)
-+ * @res: resource to convert
-+ *
-+ * Convert a resource to a PCI device bus address or bus window.
-+ */
-+static inline void
-+pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region,
-+			 struct resource *res)
-+{
-+	region->start = res->start;
-+	region->end = res->end;
-+}
-+
-+#define pcibios_scan_all_fns(a, b)	0
-+
-+#ifndef HAVE_ARCH_PCI_GET_LEGACY_IDE_IRQ
-+static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel)
-+{
-+	return channel ? 15 : 14;
-+}
-+#endif /* HAVE_ARCH_PCI_GET_LEGACY_IDE_IRQ */
-+
-+#endif
---- linux/include/asm-generic/percpu.h
-+++ linux/include/asm-generic/percpu.h
-@@ -0,0 +1,42 @@
-+#ifndef _ASM_GENERIC_PERCPU_H_
-+#define _ASM_GENERIC_PERCPU_H_
-+#include <linux/compiler.h>
-+
-+#define __GENERIC_PER_CPU
-+#ifdef CONFIG_SMP
-+
-+extern unsigned long __per_cpu_offset[NR_CPUS];
-+
-+/* Separate out the type, so (int[3], foo) works. */
-+#define DEFINE_PER_CPU(type, name) \
-+    __attribute__((__section__(".data.percpu"))) __typeof__(type) per_cpu__##name
-+
-+/* var is in discarded region: offset to particular copy we want */
-+#define per_cpu(var, cpu) (*RELOC_HIDE(&per_cpu__##var, __per_cpu_offset[cpu]))
-+#define __get_cpu_var(var) per_cpu(var, smp_processor_id())
-+
-+/* A macro to avoid #include hell... */
-+#define percpu_modcopy(pcpudst, src, size)			\
-+do {								\
-+	unsigned int __i;					\
-+	for (__i = 0; __i < NR_CPUS; __i++)			\
-+		if (cpu_possible(__i))				\
-+			memcpy((pcpudst)+__per_cpu_offset[__i],	\
-+			       (src), (size));			\
-+} while (0)
-+#else /* ! SMP */
-+
-+#define DEFINE_PER_CPU(type, name) \
-+    __typeof__(type) per_cpu__##name
-+
-+#define per_cpu(var, cpu)			(*((void)cpu, &per_cpu__##var))
-+#define __get_cpu_var(var)			per_cpu__##var
-+
-+#endif	/* SMP */
-+
-+#define DECLARE_PER_CPU(type, name) extern __typeof__(type) per_cpu__##name
-+
-+#define EXPORT_PER_CPU_SYMBOL(var) EXPORT_SYMBOL(per_cpu__##var)
-+#define EXPORT_PER_CPU_SYMBOL_GPL(var) EXPORT_SYMBOL_GPL(per_cpu__##var)
-+
-+#endif /* _ASM_GENERIC_PERCPU_H_ */
---- linux/include/asm-generic/pgtable.h
-+++ linux/include/asm-generic/pgtable.h
-@@ -0,0 +1,137 @@
-+#ifndef _ASM_GENERIC_PGTABLE_H
-+#define _ASM_GENERIC_PGTABLE_H
-+
-+#ifndef __HAVE_ARCH_PTEP_ESTABLISH
-+/*
-+ * Establish a new mapping:
-+ *  - flush the old one
-+ *  - update the page tables
-+ *  - inform the TLB about the new one
-+ *
-+ * We hold the mm semaphore for reading and vma->vm_mm->page_table_lock.
-+ *
-+ * Note: the old pte is known to not be writable, so we don't need to
-+ * worry about dirty bits etc getting lost.
-+ */
-+#ifndef __HAVE_ARCH_SET_PTE_ATOMIC
-+#define ptep_establish(__vma, __address, __ptep, __entry)		\
-+do {				  					\
-+	set_pte(__ptep, __entry);					\
-+	flush_tlb_page(__vma, __address);				\
-+} while (0)
-+#else /* __HAVE_ARCH_SET_PTE_ATOMIC */
-+#define ptep_establish(__vma, __address, __ptep, __entry)		\
-+do {				  					\
-+	set_pte_atomic(__ptep, __entry);				\
-+	flush_tlb_page(__vma, __address);				\
-+} while (0)
-+#endif /* __HAVE_ARCH_SET_PTE_ATOMIC */
-+#endif
-+
-+#ifndef __HAVE_ARCH_PTEP_SET_ACCESS_FLAGS
-+/*
-+ * Largely same as above, but only sets the access flags (dirty,
-+ * accessed, and writable). Furthermore, we know it always gets set
-+ * to a "more permissive" setting, which allows most architectures
-+ * to optimize this.
-+ */
-+#define ptep_set_access_flags(__vma, __address, __ptep, __entry, __dirty) \
-+do {				  					  \
-+	set_pte(__ptep, __entry);					  \
-+	flush_tlb_page(__vma, __address);				  \
-+} while (0)
-+#endif
-+
-+#ifndef __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG
-+static inline int ptep_test_and_clear_young(pte_t *ptep)
-+{
-+	pte_t pte = *ptep;
-+	if (!pte_young(pte))
-+		return 0;
-+	set_pte(ptep, pte_mkold(pte));
-+	return 1;
-+}
-+#endif
-+
-+#ifndef __HAVE_ARCH_PTEP_CLEAR_YOUNG_FLUSH
-+#define ptep_clear_flush_young(__vma, __address, __ptep)		\
-+({									\
-+	int __young = ptep_test_and_clear_young(__ptep);		\
-+	if (__young)							\
-+		flush_tlb_page(__vma, __address);			\
-+	__young;							\
-+})
-+#endif
-+
-+#ifndef __HAVE_ARCH_PTEP_TEST_AND_CLEAR_DIRTY
-+static inline int ptep_test_and_clear_dirty(pte_t *ptep)
-+{
-+	pte_t pte = *ptep;
-+	if (!pte_dirty(pte))
-+		return 0;
-+	set_pte(ptep, pte_mkclean(pte));
-+	return 1;
-+}
-+#endif
-+
-+#ifndef __HAVE_ARCH_PTEP_CLEAR_DIRTY_FLUSH
-+#define ptep_clear_flush_dirty(__vma, __address, __ptep)		\
-+({									\
-+	int __dirty = ptep_test_and_clear_dirty(__ptep);		\
-+	if (__dirty)							\
-+		flush_tlb_page(__vma, __address);			\
-+	__dirty;							\
-+})
-+#endif
-+
-+#ifndef __HAVE_ARCH_PTEP_GET_AND_CLEAR
-+static inline pte_t ptep_get_and_clear(pte_t *ptep)
-+{
-+	pte_t pte = *ptep;
-+	pte_clear(ptep);
-+	return pte;
-+}
-+#endif
-+
-+#ifndef __HAVE_ARCH_PTEP_CLEAR_FLUSH
-+#define ptep_clear_flush(__vma, __address, __ptep)			\
-+({									\
-+	pte_t __pte = ptep_get_and_clear(__ptep);			\
-+	flush_tlb_page(__vma, __address);				\
-+	__pte;								\
-+})
-+#endif
-+
-+#ifndef __HAVE_ARCH_PTEP_SET_WRPROTECT
-+static inline void ptep_set_wrprotect(pte_t *ptep)
-+{
-+	pte_t old_pte = *ptep;
-+	set_pte(ptep, pte_wrprotect(old_pte));
-+}
-+#endif
-+
-+#ifndef __HAVE_ARCH_PTEP_MKDIRTY
-+static inline void ptep_mkdirty(pte_t *ptep)
-+{
-+	pte_t old_pte = *ptep;
-+	set_pte(ptep, pte_mkdirty(old_pte));
-+}
-+#endif
-+
-+#ifndef __HAVE_ARCH_PTE_SAME
-+#define pte_same(A,B)	(pte_val(A) == pte_val(B))
-+#endif
-+
-+#ifndef __HAVE_ARCH_PAGE_TEST_AND_CLEAR_DIRTY
-+#define page_test_and_clear_dirty(page) (0)
-+#endif
-+
-+#ifndef __HAVE_ARCH_PAGE_TEST_AND_CLEAR_YOUNG
-+#define page_test_and_clear_young(page) (0)
-+#endif
-+
-+#ifndef __HAVE_ARCH_PGD_OFFSET_GATE
-+#define pgd_offset_gate(mm, addr)	pgd_offset(mm, addr)
-+#endif
-+
-+#endif /* _ASM_GENERIC_PGTABLE_H */
---- linux/include/asm-generic/pgtable-nopmd.h
-+++ linux/include/asm-generic/pgtable-nopmd.h
-@@ -0,0 +1,60 @@
-+#ifndef _PGTABLE_NOPMD_H
-+#define _PGTABLE_NOPMD_H
-+
-+#ifndef __ASSEMBLY__
-+
-+#include <asm-generic/pgtable-nopud.h>
-+
-+/*
-+ * Having the pmd type consist of a pud gets the size right, and allows
-+ * us to conceptually access the pud entry that this pmd is folded into
-+ * without casting.
-+ */
-+typedef struct { pud_t pud; } pmd_t;
-+
-+#define PMD_SHIFT	PUD_SHIFT
-+#define PTRS_PER_PMD	1
-+#define PMD_SIZE  	(1UL << PMD_SHIFT)
-+#define PMD_MASK  	(~(PMD_SIZE-1))
-+
-+/*
-+ * The "pud_xxx()" functions here are trivial for a folded two-level
-+ * setup: the pmd is never bad, and a pmd always exists (as it's folded
-+ * into the pud entry)
-+ */
-+static inline int pud_none(pud_t pud)		{ return 0; }
-+static inline int pud_bad(pud_t pud)		{ return 0; }
-+static inline int pud_present(pud_t pud)	{ return 1; }
-+static inline void pud_clear(pud_t *pud)	{ }
-+#define pmd_ERROR(pmd)				(pud_ERROR((pmd).pud))
-+
-+#define pud_populate(mm, pmd, pte)		do { } while (0)
-+
-+/*
-+ * (pmds are folded into puds so this doesn't get actually called,
-+ * but the define is needed for a generic inline function.)
-+ */
-+#define set_pud(pudptr, pudval)			set_pmd((pmd_t *)(pudptr), (pmd_t) { pudval })
-+
-+static inline pmd_t * pmd_offset(pud_t * pud, unsigned long address)
-+{
-+	return (pmd_t *)pud;
-+}
-+
-+#define pmd_val(x)				(pud_val((x).pud))
-+#define __pmd(x)				((pmd_t) { __pud(x) } )
-+
-+#define pud_page(pud)				(pmd_page((pmd_t){ pud }))
-+#define pud_page_kernel(pud)			(pmd_page_kernel((pmd_t){ pud }))
-+
-+/*
-+ * allocating and freeing a pmd is trivial: the 1-entry pmd is
-+ * inside the pud, so has no extra memory associated with it.
-+ */
-+#define pmd_alloc_one(mm, address)		NULL
-+#define pmd_free(x)				do { } while (0)
-+#define __pmd_free_tlb(tlb, x)			do { } while (0)
-+
-+#endif /* __ASSEMBLY__ */
-+
-+#endif /* _PGTABLE_NOPMD_H */
---- linux/include/asm-generic/pgtable-nopud.h
-+++ linux/include/asm-generic/pgtable-nopud.h
-@@ -0,0 +1,56 @@
-+#ifndef _PGTABLE_NOPUD_H
-+#define _PGTABLE_NOPUD_H
-+
-+#ifndef __ASSEMBLY__
-+
-+/*
-+ * Having the pud type consist of a pgd gets the size right, and allows
-+ * us to conceptually access the pgd entry that this pud is folded into
-+ * without casting.
-+ */
-+typedef struct { pgd_t pgd; } pud_t;
-+
-+#define PUD_SHIFT	PGDIR_SHIFT
-+#define PTRS_PER_PUD	1
-+#define PUD_SIZE  	(1UL << PUD_SHIFT)
-+#define PUD_MASK  	(~(PUD_SIZE-1))
-+
-+/*
-+ * The "pgd_xxx()" functions here are trivial for a folded two-level
-+ * setup: the pud is never bad, and a pud always exists (as it's folded
-+ * into the pgd entry)
-+ */
-+static inline int pgd_none(pgd_t pgd)		{ return 0; }
-+static inline int pgd_bad(pgd_t pgd)		{ return 0; }
-+static inline int pgd_present(pgd_t pgd)	{ return 1; }
-+static inline void pgd_clear(pgd_t *pgd)	{ }
-+#define pud_ERROR(pud)				(pgd_ERROR((pud).pgd))
-+
-+#define pgd_populate(mm, pgd, pud)		do { } while (0)
-+/*
-+ * (puds are folded into pgds so this doesn't get actually called,
-+ * but the define is needed for a generic inline function.)
-+ */
-+#define set_pgd(pgdptr, pgdval)			set_pud((pud_t *)(pgdptr), (pud_t) { pgdval })
-+
-+static inline pud_t * pud_offset(pgd_t * pgd, unsigned long address)
-+{
-+	return (pud_t *)pgd;
-+}
-+
-+#define pud_val(x)				(pgd_val((x).pgd))
-+#define __pud(x)				((pud_t) { __pgd(x) } )
-+
-+#define pgd_page(pgd)				(pud_page((pud_t){ pgd }))
-+#define pgd_page_kernel(pgd)			(pud_page_kernel((pud_t){ pgd }))
-+
-+/*
-+ * allocating and freeing a pud is trivial: the 1-entry pud is
-+ * inside the pgd, so has no extra memory associated with it.
-+ */
-+#define pud_alloc_one(mm, address)		NULL
-+#define pud_free(x)				do { } while (0)
-+#define __pud_free_tlb(tlb, x)			do { } while (0)
-+
-+#endif /* __ASSEMBLY__ */
-+#endif /* _PGTABLE_NOPUD_H */
---- linux/include/asm-generic/resource.h
-+++ linux/include/asm-generic/resource.h
-@@ -0,0 +1,60 @@
-+#ifndef _ASM_GENERIC_RESOURCE_H
-+#define _ASM_GENERIC_RESOURCE_H
-+
-+/*
-+ * Resource limits
-+ */
-+
-+/* Allow arch to control resource order */
-+#ifndef __ARCH_RLIMIT_ORDER
-+#define RLIMIT_CPU		0	/* CPU time in ms */
-+#define RLIMIT_FSIZE		1	/* Maximum filesize */
-+#define RLIMIT_DATA		2	/* max data size */
-+#define RLIMIT_STACK		3	/* max stack size */
-+#define RLIMIT_CORE		4	/* max core file size */
-+#define RLIMIT_RSS		5	/* max resident set size */
-+#define RLIMIT_NPROC		6	/* max number of processes */
-+#define RLIMIT_NOFILE		7	/* max number of open files */
-+#define RLIMIT_MEMLOCK		8	/* max locked-in-memory address space */
-+#define RLIMIT_AS		9	/* address space limit */
-+#define RLIMIT_LOCKS		10	/* maximum file locks held */
-+#define RLIMIT_SIGPENDING	11	/* max number of pending signals */
-+#define RLIMIT_MSGQUEUE		12	/* maximum bytes in POSIX mqueues */
-+
-+#define RLIM_NLIMITS		13
-+#endif
-+
-+/*
-+ * SuS says limits have to be unsigned.
-+ * Which makes a ton more sense anyway.
-+ */
-+#ifndef RLIM_INFINITY
-+#define RLIM_INFINITY	(~0UL)
-+#endif
-+
-+#ifndef _STK_LIM_MAX
-+#define _STK_LIM_MAX	RLIM_INFINITY
-+#endif
-+
-+#ifdef __KERNEL__
-+
-+#define INIT_RLIMITS							\
-+{									\
-+	[RLIMIT_CPU]		= { RLIM_INFINITY, RLIM_INFINITY },	\
-+	[RLIMIT_FSIZE]		= { RLIM_INFINITY, RLIM_INFINITY },	\
-+	[RLIMIT_DATA]		= { RLIM_INFINITY, RLIM_INFINITY },	\
-+	[RLIMIT_STACK]		= {      _STK_LIM, _STK_LIM_MAX  },	\
-+	[RLIMIT_CORE]		= {             0, RLIM_INFINITY },	\
-+	[RLIMIT_RSS]		= { RLIM_INFINITY, RLIM_INFINITY },	\
-+	[RLIMIT_NPROC]		= {             0,             0 },	\
-+	[RLIMIT_NOFILE]		= {      INR_OPEN,     INR_OPEN  },	\
-+	[RLIMIT_MEMLOCK]	= {   MLOCK_LIMIT,   MLOCK_LIMIT },	\
-+	[RLIMIT_AS]		= { RLIM_INFINITY, RLIM_INFINITY },	\
-+	[RLIMIT_LOCKS]		= { RLIM_INFINITY, RLIM_INFINITY },	\
-+	[RLIMIT_SIGPENDING]	= { MAX_SIGPENDING, MAX_SIGPENDING },	\
-+	[RLIMIT_MSGQUEUE]	= { MQ_BYTES_MAX, MQ_BYTES_MAX },	\
-+}
-+
-+#endif	/* __KERNEL__ */
-+
-+#endif
---- linux/include/asm-generic/rmap.h
-+++ linux/include/asm-generic/rmap.h
-@@ -0,0 +1,90 @@
-+#ifndef _GENERIC_RMAP_H
-+#define _GENERIC_RMAP_H
-+/*
-+ * linux/include/asm-generic/rmap.h
-+ *
-+ * Architecture dependent parts of the reverse mapping code,
-+ * this version should work for most architectures with a
-+ * 'normal' page table layout.
-+ *
-+ * We use the struct page of the page table page to find out
-+ * the process and full address of a page table entry:
-+ * - page->mapping points to the process' mm_struct
-+ * - page->index has the high bits of the address
-+ * - the lower bits of the address are calculated from the
-+ *   offset of the page table entry within the page table page
-+ *
-+ * For CONFIG_HIGHPTE, we need to represent the address of a pte in a
-+ * scalar pte_addr_t.  The pfn of the pte's page is shifted left by PAGE_SIZE
-+ * bits and is then ORed with the byte offset of the pte within its page.
-+ *
-+ * For CONFIG_HIGHMEM4G, the pte_addr_t is 32 bits.  20 for the pfn, 12 for
-+ * the offset.
-+ *
-+ * For CONFIG_HIGHMEM64G, the pte_addr_t is 64 bits.  52 for the pfn, 12 for
-+ * the offset.
-+ */
-+#include <linux/mm.h>
-+
-+static inline void pgtable_add_rmap(struct page * page, struct mm_struct * mm, unsigned long address)
-+{
-+#ifdef BROKEN_PPC_PTE_ALLOC_ONE
-+	/* OK, so PPC calls pte_alloc() before mem_map[] is setup ... ;( */
-+	extern int mem_init_done;
-+
-+	if (!mem_init_done)
-+		return;
-+#endif
-+	page->mapping = (void *)mm;
-+	page->index = address & ~((PTRS_PER_PTE * PAGE_SIZE) - 1);
-+	inc_page_state(nr_page_table_pages);
-+}
-+
-+static inline void pgtable_remove_rmap(struct page * page)
-+{
-+	page->mapping = NULL;
-+	page->index = 0;
-+	dec_page_state(nr_page_table_pages);
-+}
-+
-+static inline struct mm_struct * ptep_to_mm(pte_t * ptep)
-+{
-+	struct page * page = kmap_atomic_to_page(ptep);
-+	return (struct mm_struct *) page->mapping;
-+}
-+
-+static inline unsigned long ptep_to_address(pte_t * ptep)
-+{
-+	struct page * page = kmap_atomic_to_page(ptep);
-+	unsigned long low_bits;
-+	low_bits = ((unsigned long)ptep & ~PAGE_MASK) * PTRS_PER_PTE;
-+	return page->index + low_bits;
-+}
-+
-+#ifdef CONFIG_HIGHPTE
-+static inline pte_addr_t ptep_to_paddr(pte_t *ptep)
-+{
-+	pte_addr_t paddr;
-+	paddr = ((pte_addr_t)page_to_pfn(kmap_atomic_to_page(ptep))) << PAGE_SHIFT;
-+	return paddr + (pte_addr_t)((unsigned long)ptep & ~PAGE_MASK);
-+}
-+#else
-+static inline pte_addr_t ptep_to_paddr(pte_t *ptep)
-+{
-+	return (pte_addr_t)ptep;
-+}
-+#endif
-+
-+#ifndef CONFIG_HIGHPTE
-+static inline pte_t *rmap_ptep_map(pte_addr_t pte_paddr)
-+{
-+	return (pte_t *)pte_paddr;
-+}
-+
-+static inline void rmap_ptep_unmap(pte_t *pte)
-+{
-+	return;
-+}
-+#endif
-+
-+#endif /* _GENERIC_RMAP_H */
---- linux/include/asm-generic/rtc.h
-+++ linux/include/asm-generic/rtc.h
-@@ -0,0 +1,213 @@
-+/* 
-+ * inclue/asm-generic/rtc.h
-+ *
-+ * Author: Tom Rini <trini@mvista.com>
-+ *
-+ * Based on:
-+ * drivers/char/rtc.c
-+ *
-+ * Please read the COPYING file for all license details.
-+ */
-+
-+#ifndef __ASM_RTC_H__
-+#define __ASM_RTC_H__
-+
-+#ifdef __KERNEL__
-+
-+#include <linux/mc146818rtc.h>
-+#include <linux/rtc.h>
-+#include <linux/bcd.h>
-+
-+#define RTC_PIE 0x40		/* periodic interrupt enable */
-+#define RTC_AIE 0x20		/* alarm interrupt enable */
-+#define RTC_UIE 0x10		/* update-finished interrupt enable */
-+
-+/* some dummy definitions */
-+#define RTC_BATT_BAD 0x100	/* battery bad */
-+#define RTC_SQWE 0x08		/* enable square-wave output */
-+#define RTC_DM_BINARY 0x04	/* all time/date values are BCD if clear */
-+#define RTC_24H 0x02		/* 24 hour mode - else hours bit 7 means pm */
-+#define RTC_DST_EN 0x01	        /* auto switch DST - works f. USA only */
-+
-+/*
-+ * Returns true if a clock update is in progress
-+ */
-+static inline unsigned char rtc_is_updating(void)
-+{
-+	unsigned char uip;
-+
-+	spin_lock_irq(&rtc_lock);
-+	uip = (CMOS_READ(RTC_FREQ_SELECT) & RTC_UIP);
-+	spin_unlock_irq(&rtc_lock);
-+	return uip;
-+}
-+
-+static inline unsigned int get_rtc_time(struct rtc_time *time)
-+{
-+	unsigned long uip_watchdog = jiffies;
-+	unsigned char ctrl;
-+#ifdef CONFIG_MACH_DECSTATION
-+	unsigned int real_year;
-+#endif
-+
-+	/*
-+	 * read RTC once any update in progress is done. The update
-+	 * can take just over 2ms. We wait 10 to 20ms. There is no need to
-+	 * to poll-wait (up to 1s - eeccch) for the falling edge of RTC_UIP.
-+	 * If you need to know *exactly* when a second has started, enable
-+	 * periodic update complete interrupts, (via ioctl) and then 
-+	 * immediately read /dev/rtc which will block until you get the IRQ.
-+	 * Once the read clears, read the RTC time (again via ioctl). Easy.
-+	 */
-+
-+	if (rtc_is_updating() != 0)
-+		while (jiffies - uip_watchdog < 2*HZ/100) {
-+			barrier();
-+			cpu_relax();
-+		}
-+
-+	/*
-+	 * Only the values that we read from the RTC are set. We leave
-+	 * tm_wday, tm_yday and tm_isdst untouched. Even though the
-+	 * RTC has RTC_DAY_OF_WEEK, we ignore it, as it is only updated
-+	 * by the RTC when initially set to a non-zero value.
-+	 */
-+	spin_lock_irq(&rtc_lock);
-+	time->tm_sec = CMOS_READ(RTC_SECONDS);
-+	time->tm_min = CMOS_READ(RTC_MINUTES);
-+	time->tm_hour = CMOS_READ(RTC_HOURS);
-+	time->tm_mday = CMOS_READ(RTC_DAY_OF_MONTH);
-+	time->tm_mon = CMOS_READ(RTC_MONTH);
-+	time->tm_year = CMOS_READ(RTC_YEAR);
-+#ifdef CONFIG_MACH_DECSTATION
-+	real_year = CMOS_READ(RTC_DEC_YEAR);
-+#endif
-+	ctrl = CMOS_READ(RTC_CONTROL);
-+	spin_unlock_irq(&rtc_lock);
-+
-+	if (!(ctrl & RTC_DM_BINARY) || RTC_ALWAYS_BCD)
-+	{
-+		BCD_TO_BIN(time->tm_sec);
-+		BCD_TO_BIN(time->tm_min);
-+		BCD_TO_BIN(time->tm_hour);
-+		BCD_TO_BIN(time->tm_mday);
-+		BCD_TO_BIN(time->tm_mon);
-+		BCD_TO_BIN(time->tm_year);
-+	}
-+
-+#ifdef CONFIG_MACH_DECSTATION
-+	time->tm_year += real_year - 72;
-+#endif
-+
-+	/*
-+	 * Account for differences between how the RTC uses the values
-+	 * and how they are defined in a struct rtc_time;
-+	 */
-+	if (time->tm_year <= 69)
-+		time->tm_year += 100;
-+
-+	time->tm_mon--;
-+
-+	return RTC_24H;
-+}
-+
-+/* Set the current date and time in the real time clock. */
-+static inline int set_rtc_time(struct rtc_time *time)
-+{
-+	unsigned char mon, day, hrs, min, sec;
-+	unsigned char save_control, save_freq_select;
-+	unsigned int yrs;
-+#ifdef CONFIG_MACH_DECSTATION
-+	unsigned int real_yrs, leap_yr;
-+#endif
-+
-+	yrs = time->tm_year;
-+	mon = time->tm_mon + 1;   /* tm_mon starts at zero */
-+	day = time->tm_mday;
-+	hrs = time->tm_hour;
-+	min = time->tm_min;
-+	sec = time->tm_sec;
-+
-+	if (yrs > 255)	/* They are unsigned */
-+		return -EINVAL;
-+
-+	spin_lock_irq(&rtc_lock);
-+#ifdef CONFIG_MACH_DECSTATION
-+	real_yrs = yrs;
-+	leap_yr = ((!((yrs + 1900) % 4) && ((yrs + 1900) % 100)) ||
-+			!((yrs + 1900) % 400));
-+	yrs = 72;
-+
-+	/*
-+	 * We want to keep the year set to 73 until March
-+	 * for non-leap years, so that Feb, 29th is handled
-+	 * correctly.
-+	 */
-+	if (!leap_yr && mon < 3) {
-+		real_yrs--;
-+		yrs = 73;
-+	}
-+#endif
-+	/* These limits and adjustments are independent of
-+	 * whether the chip is in binary mode or not.
-+	 */
-+	if (yrs > 169) {
-+		spin_unlock_irq(&rtc_lock);
-+		return -EINVAL;
-+	}
-+
-+	if (yrs >= 100)
-+		yrs -= 100;
-+
-+	if (!(CMOS_READ(RTC_CONTROL) & RTC_DM_BINARY)
-+	    || RTC_ALWAYS_BCD) {
-+		BIN_TO_BCD(sec);
-+		BIN_TO_BCD(min);
-+		BIN_TO_BCD(hrs);
-+		BIN_TO_BCD(day);
-+		BIN_TO_BCD(mon);
-+		BIN_TO_BCD(yrs);
-+	}
-+
-+	save_control = CMOS_READ(RTC_CONTROL);
-+	CMOS_WRITE((save_control|RTC_SET), RTC_CONTROL);
-+	save_freq_select = CMOS_READ(RTC_FREQ_SELECT);
-+	CMOS_WRITE((save_freq_select|RTC_DIV_RESET2), RTC_FREQ_SELECT);
-+
-+#ifdef CONFIG_MACH_DECSTATION
-+	CMOS_WRITE(real_yrs, RTC_DEC_YEAR);
-+#endif
-+	CMOS_WRITE(yrs, RTC_YEAR);
-+	CMOS_WRITE(mon, RTC_MONTH);
-+	CMOS_WRITE(day, RTC_DAY_OF_MONTH);
-+	CMOS_WRITE(hrs, RTC_HOURS);
-+	CMOS_WRITE(min, RTC_MINUTES);
-+	CMOS_WRITE(sec, RTC_SECONDS);
-+
-+	CMOS_WRITE(save_control, RTC_CONTROL);
-+	CMOS_WRITE(save_freq_select, RTC_FREQ_SELECT);
-+
-+	spin_unlock_irq(&rtc_lock);
-+
-+	return 0;
-+}
-+
-+static inline unsigned int get_rtc_ss(void)
-+{
-+	struct rtc_time h;
-+
-+	get_rtc_time(&h);
-+	return h.tm_sec;
-+}
-+
-+static inline int get_rtc_pll(struct rtc_pll_info *pll)
-+{
-+	return -EINVAL;
-+}
-+static inline int set_rtc_pll(struct rtc_pll_info *pll)
-+{
-+	return -EINVAL;
-+}
-+
-+#endif /* __KERNEL__ */
-+#endif /* __ASM_RTC_H__ */
---- linux/include/asm-generic/sections.h
-+++ linux/include/asm-generic/sections.h
-@@ -0,0 +1,13 @@
-+#ifndef _ASM_GENERIC_SECTIONS_H_
-+#define _ASM_GENERIC_SECTIONS_H_
-+
-+/* References to section boundaries */
-+
-+extern char _text[], _stext[], _etext[];
-+extern char _data[], _sdata[], _edata[];
-+extern char __bss_start[], __bss_stop[];
-+extern char __init_begin[], __init_end[];
-+extern char _sinittext[], _einittext[];
-+extern char _end[];
-+
-+#endif /* _ASM_GENERIC_SECTIONS_H_ */
---- linux/include/asm-generic/siginfo.h
-+++ linux/include/asm-generic/siginfo.h
-@@ -0,0 +1,288 @@
-+#ifndef _ASM_GENERIC_SIGINFO_H
-+#define _ASM_GENERIC_SIGINFO_H
-+
-+#include <linux/compiler.h>
-+#include <linux/types.h>
-+#include <linux/resource.h>
-+
-+typedef union sigval {
-+	int sival_int;
-+	void __user *sival_ptr;
-+} sigval_t;
-+
-+/*
-+ * This is the size (including padding) of the part of the
-+ * struct siginfo that is before the union.
-+ */
-+#ifndef __ARCH_SI_PREAMBLE_SIZE
-+#define __ARCH_SI_PREAMBLE_SIZE	(3 * sizeof(int))
-+#endif
-+
-+#define SI_MAX_SIZE	128
-+#ifndef SI_PAD_SIZE
-+#define SI_PAD_SIZE	((SI_MAX_SIZE - __ARCH_SI_PREAMBLE_SIZE) / sizeof(int))
-+#endif
-+
-+#ifndef __ARCH_SI_UID_T
-+#define __ARCH_SI_UID_T	uid_t
-+#endif
-+
-+/*
-+ * The default "si_band" type is "long", as specified by POSIX.
-+ * However, some architectures want to override this to "int"
-+ * for historical compatibility reasons, so we allow that.
-+ */
-+#ifndef __ARCH_SI_BAND_T
-+#define __ARCH_SI_BAND_T long
-+#endif
-+
-+#ifndef HAVE_ARCH_SIGINFO_T
-+
-+typedef struct siginfo {
-+	int si_signo;
-+	int si_errno;
-+	int si_code;
-+
-+	union {
-+		int _pad[SI_PAD_SIZE];
-+
-+		/* kill() */
-+		struct {
-+			pid_t _pid;		/* sender's pid */
-+			__ARCH_SI_UID_T _uid;	/* sender's uid */
-+		} _kill;
-+
-+		/* POSIX.1b timers */
-+		struct {
-+			timer_t _tid;		/* timer id */
-+			int _overrun;		/* overrun count */
-+			char _pad[sizeof( __ARCH_SI_UID_T) - sizeof(int)];
-+			sigval_t _sigval;	/* same as below */
-+			int _sys_private;       /* not to be passed to user */
-+		} _timer;
-+
-+		/* POSIX.1b signals */
-+		struct {
-+			pid_t _pid;		/* sender's pid */
-+			__ARCH_SI_UID_T _uid;	/* sender's uid */
-+			sigval_t _sigval;
-+		} _rt;
-+
-+		/* SIGCHLD */
-+		struct {
-+			pid_t _pid;		/* which child */
-+			__ARCH_SI_UID_T _uid;	/* sender's uid */
-+			int _status;		/* exit code */
-+			clock_t _utime;
-+			clock_t _stime;
-+		} _sigchld;
-+
-+		/* SIGILL, SIGFPE, SIGSEGV, SIGBUS */
-+		struct {
-+			void __user *_addr; /* faulting insn/memory ref. */
-+#ifdef __ARCH_SI_TRAPNO
-+			int _trapno;	/* TRAP # which caused the signal */
-+#endif
-+		} _sigfault;
-+
-+		/* SIGPOLL */
-+		struct {
-+			__ARCH_SI_BAND_T _band;	/* POLL_IN, POLL_OUT, POLL_MSG */
-+			int _fd;
-+		} _sigpoll;
-+	} _sifields;
-+} siginfo_t;
-+
-+#endif
-+
-+/*
-+ * How these fields are to be accessed.
-+ */
-+#define si_pid		_sifields._kill._pid
-+#define si_uid		_sifields._kill._uid
-+#define si_tid		_sifields._timer._tid
-+#define si_overrun	_sifields._timer._overrun
-+#define si_sys_private  _sifields._timer._sys_private
-+#define si_status	_sifields._sigchld._status
-+#define si_utime	_sifields._sigchld._utime
-+#define si_stime	_sifields._sigchld._stime
-+#define si_value	_sifields._rt._sigval
-+#define si_int		_sifields._rt._sigval.sival_int
-+#define si_ptr		_sifields._rt._sigval.sival_ptr
-+#define si_addr		_sifields._sigfault._addr
-+#ifdef __ARCH_SI_TRAPNO
-+#define si_trapno	_sifields._sigfault._trapno
-+#endif
-+#define si_band		_sifields._sigpoll._band
-+#define si_fd		_sifields._sigpoll._fd
-+
-+#ifdef __KERNEL__
-+#define __SI_MASK	0xffff0000u
-+#define __SI_KILL	(0 << 16)
-+#define __SI_TIMER	(1 << 16)
-+#define __SI_POLL	(2 << 16)
-+#define __SI_FAULT	(3 << 16)
-+#define __SI_CHLD	(4 << 16)
-+#define __SI_RT		(5 << 16)
-+#define __SI_MESGQ	(6 << 16)
-+#define __SI_CODE(T,N)	((T) | ((N) & 0xffff))
-+#else
-+#define __SI_KILL	0
-+#define __SI_TIMER	0
-+#define __SI_POLL	0
-+#define __SI_FAULT	0
-+#define __SI_CHLD	0
-+#define __SI_RT		0
-+#define __SI_MESGQ	0
-+#define __SI_CODE(T,N)	(N)
-+#endif
-+
-+/*
-+ * si_code values
-+ * Digital reserves positive values for kernel-generated signals.
-+ */
-+#define SI_USER		0		/* sent by kill, sigsend, raise */
-+#define SI_KERNEL	0x80		/* sent by the kernel from somewhere */
-+#define SI_QUEUE	-1		/* sent by sigqueue */
-+#define SI_TIMER __SI_CODE(__SI_TIMER,-2) /* sent by timer expiration */
-+#define SI_MESGQ __SI_CODE(__SI_MESGQ,-3) /* sent by real time mesq state change */
-+#define SI_ASYNCIO	-4		/* sent by AIO completion */
-+#define SI_SIGIO	-5		/* sent by queued SIGIO */
-+#define SI_TKILL	-6		/* sent by tkill system call */
-+#define SI_DETHREAD	-7		/* sent by execve() killing subsidiary threads */
-+
-+#define SI_FROMUSER(siptr)	((siptr)->si_code <= 0)
-+#define SI_FROMKERNEL(siptr)	((siptr)->si_code > 0)
-+
-+/*
-+ * SIGILL si_codes
-+ */
-+#define ILL_ILLOPC	(__SI_FAULT|1)	/* illegal opcode */
-+#define ILL_ILLOPN	(__SI_FAULT|2)	/* illegal operand */
-+#define ILL_ILLADR	(__SI_FAULT|3)	/* illegal addressing mode */
-+#define ILL_ILLTRP	(__SI_FAULT|4)	/* illegal trap */
-+#define ILL_PRVOPC	(__SI_FAULT|5)	/* privileged opcode */
-+#define ILL_PRVREG	(__SI_FAULT|6)	/* privileged register */
-+#define ILL_COPROC	(__SI_FAULT|7)	/* coprocessor error */
-+#define ILL_BADSTK	(__SI_FAULT|8)	/* internal stack error */
-+#define NSIGILL		8
-+
-+/*
-+ * SIGFPE si_codes
-+ */
-+#define FPE_INTDIV	(__SI_FAULT|1)	/* integer divide by zero */
-+#define FPE_INTOVF	(__SI_FAULT|2)	/* integer overflow */
-+#define FPE_FLTDIV	(__SI_FAULT|3)	/* floating point divide by zero */
-+#define FPE_FLTOVF	(__SI_FAULT|4)	/* floating point overflow */
-+#define FPE_FLTUND	(__SI_FAULT|5)	/* floating point underflow */
-+#define FPE_FLTRES	(__SI_FAULT|6)	/* floating point inexact result */
-+#define FPE_FLTINV	(__SI_FAULT|7)	/* floating point invalid operation */
-+#define FPE_FLTSUB	(__SI_FAULT|8)	/* subscript out of range */
-+#define NSIGFPE		8
-+
-+/*
-+ * SIGSEGV si_codes
-+ */
-+#define SEGV_MAPERR	(__SI_FAULT|1)	/* address not mapped to object */
-+#define SEGV_ACCERR	(__SI_FAULT|2)	/* invalid permissions for mapped object */
-+#define NSIGSEGV	2
-+
-+/*
-+ * SIGBUS si_codes
-+ */
-+#define BUS_ADRALN	(__SI_FAULT|1)	/* invalid address alignment */
-+#define BUS_ADRERR	(__SI_FAULT|2)	/* non-existant physical address */
-+#define BUS_OBJERR	(__SI_FAULT|3)	/* object specific hardware error */
-+#define NSIGBUS		3
-+
-+/*
-+ * SIGTRAP si_codes
-+ */
-+#define TRAP_BRKPT	(__SI_FAULT|1)	/* process breakpoint */
-+#define TRAP_TRACE	(__SI_FAULT|2)	/* process trace trap */
-+#define NSIGTRAP	2
-+
-+/*
-+ * SIGCHLD si_codes
-+ */
-+#define CLD_EXITED	(__SI_CHLD|1)	/* child has exited */
-+#define CLD_KILLED	(__SI_CHLD|2)	/* child was killed */
-+#define CLD_DUMPED	(__SI_CHLD|3)	/* child terminated abnormally */
-+#define CLD_TRAPPED	(__SI_CHLD|4)	/* traced child has trapped */
-+#define CLD_STOPPED	(__SI_CHLD|5)	/* child has stopped */
-+#define CLD_CONTINUED	(__SI_CHLD|6)	/* stopped child has continued */
-+#define NSIGCHLD	6
-+
-+/*
-+ * SIGPOLL si_codes
-+ */
-+#define POLL_IN		(__SI_POLL|1)	/* data input available */
-+#define POLL_OUT	(__SI_POLL|2)	/* output buffers available */
-+#define POLL_MSG	(__SI_POLL|3)	/* input message available */
-+#define POLL_ERR	(__SI_POLL|4)	/* i/o error */
-+#define POLL_PRI	(__SI_POLL|5)	/* high priority input available */
-+#define POLL_HUP	(__SI_POLL|6)	/* device disconnected */
-+#define NSIGPOLL	6
-+
-+/*
-+ * sigevent definitions
-+ * 
-+ * It seems likely that SIGEV_THREAD will have to be handled from 
-+ * userspace, libpthread transmuting it to SIGEV_SIGNAL, which the
-+ * thread manager then catches and does the appropriate nonsense.
-+ * However, everything is written out here so as to not get lost.
-+ */
-+#define SIGEV_SIGNAL	0	/* notify via signal */
-+#define SIGEV_NONE	1	/* other notification: meaningless */
-+#define SIGEV_THREAD	2	/* deliver via thread creation */
-+#define SIGEV_THREAD_ID 4	/* deliver to thread */
-+
-+#define SIGEV_MAX_SIZE	64
-+#ifndef SIGEV_PAD_SIZE
-+#define SIGEV_PAD_SIZE	((SIGEV_MAX_SIZE/sizeof(int)) - 3)
-+#endif
-+
-+typedef struct sigevent {
-+	sigval_t sigev_value;
-+	int sigev_signo;
-+	int sigev_notify;
-+	union {
-+		int _pad[SIGEV_PAD_SIZE];
-+		 int _tid;
-+
-+		struct {
-+			void (*_function)(sigval_t);
-+			void *_attribute;	/* really pthread_attr_t */
-+		} _sigev_thread;
-+	} _sigev_un;
-+} sigevent_t;
-+
-+#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
-+
-+#ifdef __KERNEL__
-+
-+struct siginfo;
-+void do_schedule_next_timer(struct siginfo *info);
-+
-+#ifndef HAVE_ARCH_COPY_SIGINFO
-+
-+#include <linux/string.h>
-+
-+static inline void copy_siginfo(struct siginfo *to, struct siginfo *from)
-+{
-+	if (from->si_code < 0)
-+		memcpy(to, from, sizeof(*to));
-+	else
-+		/* _sigchld is currently the largest know union member */
-+		memcpy(to, from, __ARCH_SI_PREAMBLE_SIZE + sizeof(from->_sifields._sigchld));
-+}
-+
-+#endif
-+
-+extern int copy_siginfo_to_user(struct siginfo __user *to, struct siginfo *from);
-+
-+#endif /* __KERNEL__ */
-+
-+#endif
---- linux/include/asm-generic/statfs.h
-+++ linux/include/asm-generic/statfs.h
-@@ -0,0 +1,51 @@
-+#ifndef _GENERIC_STATFS_H
-+#define _GENERIC_STATFS_H
-+
-+#ifndef __KERNEL_STRICT_NAMES
-+# include <linux/types.h>
-+typedef __kernel_fsid_t	fsid_t;
-+#endif
-+
-+struct statfs {
-+	__u32 f_type;
-+	__u32 f_bsize;
-+	__u32 f_blocks;
-+	__u32 f_bfree;
-+	__u32 f_bavail;
-+	__u32 f_files;
-+	__u32 f_ffree;
-+	__kernel_fsid_t f_fsid;
-+	__u32 f_namelen;
-+	__u32 f_frsize;
-+	__u32 f_spare[5];
-+};
-+
-+struct statfs64 {
-+	__u32 f_type;
-+	__u32 f_bsize;
-+	__u64 f_blocks;
-+	__u64 f_bfree;
-+	__u64 f_bavail;
-+	__u64 f_files;
-+	__u64 f_ffree;
-+	__kernel_fsid_t f_fsid;
-+	__u32 f_namelen;
-+	__u32 f_frsize;
-+	__u32 f_spare[5];
-+};
-+
-+struct compat_statfs64 {
-+	__u32 f_type;
-+	__u32 f_bsize;
-+	__u64 f_blocks;
-+	__u64 f_bfree;
-+	__u64 f_bavail;
-+	__u64 f_files;
-+	__u64 f_ffree;
-+	__kernel_fsid_t f_fsid;
-+	__u32 f_namelen;
-+	__u32 f_frsize;
-+	__u32 f_spare[5];
-+};
-+
-+#endif
---- linux/include/asm-generic/termios.h
-+++ linux/include/asm-generic/termios.h
-@@ -0,0 +1,69 @@
-+/* termios.h: generic termios/termio user copying/translation
-+ */
-+
-+#ifndef _ASM_GENERIC_TERMIOS_H
-+#define _ASM_GENERIC_TERMIOS_H
-+
-+#include <asm/uaccess.h>
-+
-+#ifndef __ARCH_TERMIO_GETPUT
-+
-+/*
-+ * Translate a "termio" structure into a "termios". Ugh.
-+ */
-+static inline int user_termio_to_kernel_termios(struct termios *termios,
-+						struct termio __user *termio)
-+{
-+	unsigned short tmp;
-+
-+	if (get_user(tmp, &termio->c_iflag) < 0)
-+		goto fault;
-+	termios->c_iflag = (0xffff0000 & termios->c_iflag) | tmp;
-+
-+	if (get_user(tmp, &termio->c_oflag) < 0)
-+		goto fault;
-+	termios->c_oflag = (0xffff0000 & termios->c_oflag) | tmp;
-+
-+	if (get_user(tmp, &termio->c_cflag) < 0)
-+		goto fault;
-+	termios->c_cflag = (0xffff0000 & termios->c_cflag) | tmp;
-+
-+	if (get_user(tmp, &termio->c_lflag) < 0)
-+		goto fault;
-+	termios->c_lflag = (0xffff0000 & termios->c_lflag) | tmp;
-+
-+	if (get_user(termios->c_line, &termio->c_line) < 0)
-+		goto fault;
-+
-+	if (copy_from_user(termios->c_cc, termio->c_cc, NCC) != 0)
-+		goto fault;
-+
-+	return 0;
-+
-+ fault:
-+	return -EFAULT;
-+}
-+
-+/*
-+ * Translate a "termios" structure into a "termio". Ugh.
-+ */
-+static inline int kernel_termios_to_user_termio(struct termio __user *termio,
-+						struct termios *termios)
-+{
-+	if (put_user(termios->c_iflag, &termio->c_iflag) < 0 ||
-+	    put_user(termios->c_oflag, &termio->c_oflag) < 0 ||
-+	    put_user(termios->c_cflag, &termio->c_cflag) < 0 ||
-+	    put_user(termios->c_lflag, &termio->c_lflag) < 0 ||
-+	    put_user(termios->c_line,  &termio->c_line) < 0 ||
-+	    copy_to_user(termio->c_cc, termios->c_cc, NCC) != 0)
-+		return -EFAULT;
-+
-+	return 0;
-+}
-+
-+#define user_termios_to_kernel_termios(k, u) copy_from_user(k, u, sizeof(struct termios))
-+#define kernel_termios_to_user_termios(u, k) copy_to_user(u, k, sizeof(struct termios))
-+
-+#endif	/* __ARCH_TERMIO_GETPUT */
-+
-+#endif /* _ASM_GENERIC_TERMIOS_H */
---- linux/include/asm-generic/tlb.h
-+++ linux/include/asm-generic/tlb.h
-@@ -0,0 +1,160 @@
-+/* asm-generic/tlb.h
-+ *
-+ *	Generic TLB shootdown code
-+ *
-+ * Copyright 2001 Red Hat, Inc.
-+ * Based on code from mm/memory.c Copyright Linus Torvalds and others.
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version
-+ * 2 of the License, or (at your option) any later version.
-+ */
-+#ifndef _ASM_GENERIC__TLB_H
-+#define _ASM_GENERIC__TLB_H
-+
-+// #include <linux/config.h>
-+#include <linux/swap.h>
-+#include <asm/pgalloc.h>
-+#include <asm/tlbflush.h>
-+
-+/*
-+ * For UP we don't need to worry about TLB flush
-+ * and page free order so much..
-+ */
-+#ifdef CONFIG_SMP
-+  #define FREE_PTE_NR	506
-+  #define tlb_fast_mode(tlb) ((tlb)->nr == ~0U)
-+#else
-+  #define FREE_PTE_NR	1
-+  #define tlb_fast_mode(tlb) 1
-+#endif
-+
-+/* struct mmu_gather is an opaque type used by the mm code for passing around
-+ * any data needed by arch specific code for tlb_remove_page.  This structure
-+ * can be per-CPU or per-MM as the page table lock is held for the duration of
-+ * TLB shootdown.
-+ */
-+struct mmu_gather {
-+	struct mm_struct	*mm;
-+	unsigned int		nr;	/* set to ~0U means fast mode */
-+	unsigned int		need_flush;/* Really unmapped some ptes? */
-+	unsigned int		fullmm; /* non-zero means full mm flush */
-+	unsigned long		freed;
-+	struct page *		pages[FREE_PTE_NR];
-+};
-+
-+/* Users of the generic TLB shootdown code must declare this storage space. */
-+DECLARE_PER_CPU(struct mmu_gather, mmu_gathers);
-+
-+/* tlb_gather_mmu
-+ *	Return a pointer to an initialized struct mmu_gather.
-+ */
-+static inline struct mmu_gather *
-+tlb_gather_mmu(struct mm_struct *mm, unsigned int full_mm_flush)
-+{
-+	struct mmu_gather *tlb = &per_cpu(mmu_gathers, smp_processor_id());
-+
-+	tlb->mm = mm;
-+
-+	/* Use fast mode if only one CPU is online */
-+	tlb->nr = num_online_cpus() > 1 ? 0U : ~0U;
-+
-+	tlb->fullmm = full_mm_flush;
-+	tlb->freed = 0;
-+
-+	return tlb;
-+}
-+
-+static inline void
-+tlb_flush_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end)
-+{
-+	if (!tlb->need_flush)
-+		return;
-+	tlb->need_flush = 0;
-+	tlb_flush(tlb);
-+	if (!tlb_fast_mode(tlb)) {
-+		free_pages_and_swap_cache(tlb->pages, tlb->nr);
-+		tlb->nr = 0;
-+	}
-+}
-+
-+/* tlb_finish_mmu
-+ *	Called at the end of the shootdown operation to free up any resources
-+ *	that were required.  The page table lock is still held at this point.
-+ */
-+static inline void
-+tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end)
-+{
-+	int freed = tlb->freed;
-+	struct mm_struct *mm = tlb->mm;
-+	int rss = mm->rss;
-+
-+	if (rss < freed)
-+		freed = rss;
-+	mm->rss = rss - freed;
-+	tlb_flush_mmu(tlb, start, end);
-+
-+	/* keep the page table cache within bounds */
-+	check_pgt_cache();
-+}
-+
-+static inline unsigned int
-+tlb_is_full_mm(struct mmu_gather *tlb)
-+{
-+	return tlb->fullmm;
-+}
-+
-+/* tlb_remove_page
-+ *	Must perform the equivalent to __free_pte(pte_get_and_clear(ptep)), while
-+ *	handling the additional races in SMP caused by other CPUs caching valid
-+ *	mappings in their TLBs.
-+ */
-+static inline void tlb_remove_page(struct mmu_gather *tlb, struct page *page)
-+{
-+	tlb->need_flush = 1;
-+	if (tlb_fast_mode(tlb)) {
-+		free_page_and_swap_cache(page);
-+		return;
-+	}
-+	tlb->pages[tlb->nr++] = page;
-+	if (tlb->nr >= FREE_PTE_NR)
-+		tlb_flush_mmu(tlb, 0, 0);
-+}
-+
-+/**
-+ * tlb_remove_tlb_entry - remember a pte unmapping for later tlb invalidation.
-+ *
-+ * Record the fact that pte's were really umapped in ->need_flush, so we can
-+ * later optimise away the tlb invalidate.   This helps when userspace is
-+ * unmapping already-unmapped pages, which happens quite a lot.
-+ */
-+#define tlb_remove_tlb_entry(tlb, ptep, address)		\
-+	do {							\
-+		tlb->need_flush = 1;				\
-+		__tlb_remove_tlb_entry(tlb, ptep, address);	\
-+	} while (0)
-+
-+#define pte_free_tlb(tlb, ptep)					\
-+	do {							\
-+		tlb->need_flush = 1;				\
-+		__pte_free_tlb(tlb, ptep);			\
-+	} while (0)
-+
-+#ifndef __ARCH_HAS_4LEVEL_HACK
-+#define pud_free_tlb(tlb, pudp)					\
-+	do {							\
-+		tlb->need_flush = 1;				\
-+		__pud_free_tlb(tlb, pudp);			\
-+	} while (0)
-+#endif
-+
-+#define pmd_free_tlb(tlb, pmdp)					\
-+	do {							\
-+		tlb->need_flush = 1;				\
-+		__pmd_free_tlb(tlb, pmdp);			\
-+	} while (0)
-+
-+#define tlb_migrate_finish(mm) do {} while (0)
-+
-+#endif /* _ASM_GENERIC__TLB_H */
---- linux/include/asm-generic/topology.h
-+++ linux/include/asm-generic/topology.h
-@@ -0,0 +1,48 @@
-+/*
-+ * linux/include/asm-generic/topology.h
-+ *
-+ * Written by: Matthew Dobson, IBM Corporation
-+ *
-+ * Copyright (C) 2002, IBM Corp.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ * Send feedback to <colpatch@us.ibm.com>
-+ */
-+#ifndef _ASM_GENERIC_TOPOLOGY_H
-+#define _ASM_GENERIC_TOPOLOGY_H
-+
-+/* Other architectures wishing to use this simple topology API should fill
-+   in the below functions as appropriate in their own <asm/topology.h> file. */
-+#ifndef cpu_to_node
-+#define cpu_to_node(cpu)	(0)
-+#endif
-+#ifndef parent_node
-+#define parent_node(node)	(0)
-+#endif
-+#ifndef node_to_cpumask
-+#define node_to_cpumask(node)	(cpu_online_map)
-+#endif
-+#ifndef node_to_first_cpu
-+#define node_to_first_cpu(node)	(0)
-+#endif
-+#ifndef pcibus_to_cpumask
-+#define pcibus_to_cpumask(bus)	(cpu_online_map)
-+#endif
-+
-+#endif /* _ASM_GENERIC_TOPOLOGY_H */
---- linux/include/asm-generic/uaccess.h
-+++ linux/include/asm-generic/uaccess.h
-@@ -0,0 +1,26 @@
-+#ifndef _ASM_GENERIC_UACCESS_H_
-+#define _ASM_GENERIC_UACCESS_H_
-+
-+/*
-+ * This macro should be used instead of __get_user() when accessing
-+ * values at locations that are not known to be aligned.
-+ */
-+#define __get_user_unaligned(x, ptr)					\
-+({									\
-+	__typeof__ (*(ptr)) __x;					\
-+	__copy_from_user(&__x, (ptr), sizeof(*(ptr))) ? -EFAULT : 0;	\
-+	(x) = __x;							\
-+})
-+
-+
-+/*
-+ * This macro should be used instead of __put_user() when accessing
-+ * values at locations that are not known to be aligned.
-+ */
-+#define __put_user_unaligned(x, ptr)					\
-+({									\
-+	__typeof__ (*(ptr)) __x = (x);					\
-+	__copy_to_user((ptr), &__x, sizeof(*(ptr))) ? -EFAULT : 0;	\
-+})
-+
-+#endif /* _ASM_GENERIC_UACCESS_H */
---- linux/include/asm-generic/unaligned.h
-+++ linux/include/asm-generic/unaligned.h
-@@ -0,0 +1,20 @@
-+#ifndef _ASM_GENERIC_UNALIGNED_H_
-+#define _ASM_GENERIC_UNALIGNED_H_
-+
-+/*
-+ * For the benefit of those who are trying to port Linux to another
-+ * architecture, here are some C-language equivalents. 
-+ */
-+
-+#include <asm/string.h>
-+
-+
-+#define get_unaligned(ptr) \
-+  ({ __typeof__(*(ptr)) __tmp; memcpy(&__tmp, (ptr), sizeof(*(ptr))); __tmp; })
-+
-+#define put_unaligned(val, ptr)				\
-+  ({ __typeof__(*(ptr)) __tmp = (val);			\
-+     memcpy((ptr), &__tmp, sizeof(*(ptr)));		\
-+     (void)0; })
-+
-+#endif /* _ASM_GENERIC_UNALIGNED_H */
---- linux/include/asm-generic/vmlinux.lds.h
-+++ linux/include/asm-generic/vmlinux.lds.h
-@@ -0,0 +1,90 @@
-+#ifndef LOAD_OFFSET
-+#define LOAD_OFFSET 0
-+#endif
-+
-+#ifndef VMLINUX_SYMBOL
-+#define VMLINUX_SYMBOL(_sym_) _sym_
-+#endif
-+
-+#define RODATA								\
-+	.rodata           : AT(ADDR(.rodata) - LOAD_OFFSET) {		\
-+		*(.rodata) *(.rodata.*)					\
-+		*(__vermagic)		/* Kernel version magic */	\
-+	}								\
-+									\
-+	.rodata1          : AT(ADDR(.rodata1) - LOAD_OFFSET) {		\
-+		*(.rodata1)						\
-+	}								\
-+									\
-+	/* PCI quirks */						\
-+	.pci_fixup        : AT(ADDR(.pci_fixup) - LOAD_OFFSET) {	\
-+		VMLINUX_SYMBOL(__start_pci_fixups_early) = .;		\
-+		*(.pci_fixup_early)					\
-+		VMLINUX_SYMBOL(__end_pci_fixups_early) = .;		\
-+		VMLINUX_SYMBOL(__start_pci_fixups_header) = .;		\
-+		*(.pci_fixup_header)					\
-+		VMLINUX_SYMBOL(__end_pci_fixups_header) = .;		\
-+		VMLINUX_SYMBOL(__start_pci_fixups_final) = .;		\
-+		*(.pci_fixup_final)					\
-+		VMLINUX_SYMBOL(__end_pci_fixups_final) = .;		\
-+		VMLINUX_SYMBOL(__start_pci_fixups_enable) = .;		\
-+		*(.pci_fixup_enable)					\
-+		VMLINUX_SYMBOL(__end_pci_fixups_enable) = .;		\
-+	}								\
-+									\
-+	/* Kernel symbol table: Normal symbols */			\
-+	__ksymtab         : AT(ADDR(__ksymtab) - LOAD_OFFSET) {		\
-+		VMLINUX_SYMBOL(__start___ksymtab) = .;			\
-+		*(__ksymtab)						\
-+		VMLINUX_SYMBOL(__stop___ksymtab) = .;			\
-+	}								\
-+									\
-+	/* Kernel symbol table: GPL-only symbols */			\
-+	__ksymtab_gpl     : AT(ADDR(__ksymtab_gpl) - LOAD_OFFSET) {	\
-+		VMLINUX_SYMBOL(__start___ksymtab_gpl) = .;		\
-+		*(__ksymtab_gpl)					\
-+		VMLINUX_SYMBOL(__stop___ksymtab_gpl) = .;		\
-+	}								\
-+									\
-+	/* Kernel symbol table: Normal symbols */			\
-+	__kcrctab         : AT(ADDR(__kcrctab) - LOAD_OFFSET) {		\
-+		VMLINUX_SYMBOL(__start___kcrctab) = .;			\
-+		*(__kcrctab)						\
-+		VMLINUX_SYMBOL(__stop___kcrctab) = .;			\
-+	}								\
-+									\
-+	/* Kernel symbol table: GPL-only symbols */			\
-+	__kcrctab_gpl     : AT(ADDR(__kcrctab_gpl) - LOAD_OFFSET) {	\
-+		VMLINUX_SYMBOL(__start___kcrctab_gpl) = .;		\
-+		*(__kcrctab_gpl)					\
-+		VMLINUX_SYMBOL(__stop___kcrctab_gpl) = .;		\
-+	}								\
-+									\
-+	/* Kernel symbol table: strings */				\
-+        __ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) {	\
-+		*(__ksymtab_strings)					\
-+	}								\
-+									\
-+	/* Built-in module parameters. */				\
-+	__param : AT(ADDR(__param) - LOAD_OFFSET) {			\
-+		VMLINUX_SYMBOL(__start___param) = .;			\
-+		*(__param)						\
-+		VMLINUX_SYMBOL(__stop___param) = .;			\
-+	}
-+
-+#define SECURITY_INIT							\
-+	.security_initcall.init : {					\
-+		VMLINUX_SYMBOL(__security_initcall_start) = .;		\
-+		*(.security_initcall.init) 				\
-+		VMLINUX_SYMBOL(__security_initcall_end) = .;		\
-+	}
-+
-+#define SCHED_TEXT							\
-+		VMLINUX_SYMBOL(__sched_text_start) = .;			\
-+		*(.sched.text)						\
-+		VMLINUX_SYMBOL(__sched_text_end) = .;
-+
-+#define LOCK_TEXT							\
-+		VMLINUX_SYMBOL(__lock_text_start) = .;			\
-+		*(.spinlock.text)					\
-+		VMLINUX_SYMBOL(__lock_text_end) = .;
---- linux/include/asm-generic/xor.h
-+++ linux/include/asm-generic/xor.h
-@@ -0,0 +1,718 @@
-+/*
-+ * include/asm-generic/xor.h
-+ *
-+ * Generic optimized RAID-5 checksumming functions.
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2, or (at your option)
-+ * any later version.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * (for example /usr/src/linux/COPYING); if not, write to the Free
-+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ */
-+
-+#include <asm/processor.h>
-+
-+static void
-+xor_8regs_2(unsigned long bytes, unsigned long *p1, unsigned long *p2)
-+{
-+	long lines = bytes / (sizeof (long)) / 8;
-+
-+	do {
-+		p1[0] ^= p2[0];
-+		p1[1] ^= p2[1];
-+		p1[2] ^= p2[2];
-+		p1[3] ^= p2[3];
-+		p1[4] ^= p2[4];
-+		p1[5] ^= p2[5];
-+		p1[6] ^= p2[6];
-+		p1[7] ^= p2[7];
-+		p1 += 8;
-+		p2 += 8;
-+	} while (--lines > 0);
-+}
-+
-+static void
-+xor_8regs_3(unsigned long bytes, unsigned long *p1, unsigned long *p2,
-+	    unsigned long *p3)
-+{
-+	long lines = bytes / (sizeof (long)) / 8;
-+
-+	do {
-+		p1[0] ^= p2[0] ^ p3[0];
-+		p1[1] ^= p2[1] ^ p3[1];
-+		p1[2] ^= p2[2] ^ p3[2];
-+		p1[3] ^= p2[3] ^ p3[3];
-+		p1[4] ^= p2[4] ^ p3[4];
-+		p1[5] ^= p2[5] ^ p3[5];
-+		p1[6] ^= p2[6] ^ p3[6];
-+		p1[7] ^= p2[7] ^ p3[7];
-+		p1 += 8;
-+		p2 += 8;
-+		p3 += 8;
-+	} while (--lines > 0);
-+}
-+
-+static void
-+xor_8regs_4(unsigned long bytes, unsigned long *p1, unsigned long *p2,
-+	    unsigned long *p3, unsigned long *p4)
-+{
-+	long lines = bytes / (sizeof (long)) / 8;
-+
-+	do {
-+		p1[0] ^= p2[0] ^ p3[0] ^ p4[0];
-+		p1[1] ^= p2[1] ^ p3[1] ^ p4[1];
-+		p1[2] ^= p2[2] ^ p3[2] ^ p4[2];
-+		p1[3] ^= p2[3] ^ p3[3] ^ p4[3];
-+		p1[4] ^= p2[4] ^ p3[4] ^ p4[4];
-+		p1[5] ^= p2[5] ^ p3[5] ^ p4[5];
-+		p1[6] ^= p2[6] ^ p3[6] ^ p4[6];
-+		p1[7] ^= p2[7] ^ p3[7] ^ p4[7];
-+		p1 += 8;
-+		p2 += 8;
-+		p3 += 8;
-+		p4 += 8;
-+	} while (--lines > 0);
-+}
-+
-+static void
-+xor_8regs_5(unsigned long bytes, unsigned long *p1, unsigned long *p2,
-+	    unsigned long *p3, unsigned long *p4, unsigned long *p5)
-+{
-+	long lines = bytes / (sizeof (long)) / 8;
-+
-+	do {
-+		p1[0] ^= p2[0] ^ p3[0] ^ p4[0] ^ p5[0];
-+		p1[1] ^= p2[1] ^ p3[1] ^ p4[1] ^ p5[1];
-+		p1[2] ^= p2[2] ^ p3[2] ^ p4[2] ^ p5[2];
-+		p1[3] ^= p2[3] ^ p3[3] ^ p4[3] ^ p5[3];
-+		p1[4] ^= p2[4] ^ p3[4] ^ p4[4] ^ p5[4];
-+		p1[5] ^= p2[5] ^ p3[5] ^ p4[5] ^ p5[5];
-+		p1[6] ^= p2[6] ^ p3[6] ^ p4[6] ^ p5[6];
-+		p1[7] ^= p2[7] ^ p3[7] ^ p4[7] ^ p5[7];
-+		p1 += 8;
-+		p2 += 8;
-+		p3 += 8;
-+		p4 += 8;
-+		p5 += 8;
-+	} while (--lines > 0);
-+}
-+
-+static void
-+xor_32regs_2(unsigned long bytes, unsigned long *p1, unsigned long *p2)
-+{
-+	long lines = bytes / (sizeof (long)) / 8;
-+
-+	do {
-+		register long d0, d1, d2, d3, d4, d5, d6, d7;
-+		d0 = p1[0];	/* Pull the stuff into registers	*/
-+		d1 = p1[1];	/*  ... in bursts, if possible.		*/
-+		d2 = p1[2];
-+		d3 = p1[3];
-+		d4 = p1[4];
-+		d5 = p1[5];
-+		d6 = p1[6];
-+		d7 = p1[7];
-+		d0 ^= p2[0];
-+		d1 ^= p2[1];
-+		d2 ^= p2[2];
-+		d3 ^= p2[3];
-+		d4 ^= p2[4];
-+		d5 ^= p2[5];
-+		d6 ^= p2[6];
-+		d7 ^= p2[7];
-+		p1[0] = d0;	/* Store the result (in bursts)		*/
-+		p1[1] = d1;
-+		p1[2] = d2;
-+		p1[3] = d3;
-+		p1[4] = d4;
-+		p1[5] = d5;
-+		p1[6] = d6;
-+		p1[7] = d7;
-+		p1 += 8;
-+		p2 += 8;
-+	} while (--lines > 0);
-+}
-+
-+static void
-+xor_32regs_3(unsigned long bytes, unsigned long *p1, unsigned long *p2,
-+	    unsigned long *p3)
-+{
-+	long lines = bytes / (sizeof (long)) / 8;
-+
-+	do {
-+		register long d0, d1, d2, d3, d4, d5, d6, d7;
-+		d0 = p1[0];	/* Pull the stuff into registers	*/
-+		d1 = p1[1];	/*  ... in bursts, if possible.		*/
-+		d2 = p1[2];
-+		d3 = p1[3];
-+		d4 = p1[4];
-+		d5 = p1[5];
-+		d6 = p1[6];
-+		d7 = p1[7];
-+		d0 ^= p2[0];
-+		d1 ^= p2[1];
-+		d2 ^= p2[2];
-+		d3 ^= p2[3];
-+		d4 ^= p2[4];
-+		d5 ^= p2[5];
-+		d6 ^= p2[6];
-+		d7 ^= p2[7];
-+		d0 ^= p3[0];
-+		d1 ^= p3[1];
-+		d2 ^= p3[2];
-+		d3 ^= p3[3];
-+		d4 ^= p3[4];
-+		d5 ^= p3[5];
-+		d6 ^= p3[6];
-+		d7 ^= p3[7];
-+		p1[0] = d0;	/* Store the result (in bursts)		*/
-+		p1[1] = d1;
-+		p1[2] = d2;
-+		p1[3] = d3;
-+		p1[4] = d4;
-+		p1[5] = d5;
-+		p1[6] = d6;
-+		p1[7] = d7;
-+		p1 += 8;
-+		p2 += 8;
-+		p3 += 8;
-+	} while (--lines > 0);
-+}
-+
-+static void
-+xor_32regs_4(unsigned long bytes, unsigned long *p1, unsigned long *p2,
-+	    unsigned long *p3, unsigned long *p4)
-+{
-+	long lines = bytes / (sizeof (long)) / 8;
-+
-+	do {
-+		register long d0, d1, d2, d3, d4, d5, d6, d7;
-+		d0 = p1[0];	/* Pull the stuff into registers	*/
-+		d1 = p1[1];	/*  ... in bursts, if possible.		*/
-+		d2 = p1[2];
-+		d3 = p1[3];
-+		d4 = p1[4];
-+		d5 = p1[5];
-+		d6 = p1[6];
-+		d7 = p1[7];
-+		d0 ^= p2[0];
-+		d1 ^= p2[1];
-+		d2 ^= p2[2];
-+		d3 ^= p2[3];
-+		d4 ^= p2[4];
-+		d5 ^= p2[5];
-+		d6 ^= p2[6];
-+		d7 ^= p2[7];
-+		d0 ^= p3[0];
-+		d1 ^= p3[1];
-+		d2 ^= p3[2];
-+		d3 ^= p3[3];
-+		d4 ^= p3[4];
-+		d5 ^= p3[5];
-+		d6 ^= p3[6];
-+		d7 ^= p3[7];
-+		d0 ^= p4[0];
-+		d1 ^= p4[1];
-+		d2 ^= p4[2];
-+		d3 ^= p4[3];
-+		d4 ^= p4[4];
-+		d5 ^= p4[5];
-+		d6 ^= p4[6];
-+		d7 ^= p4[7];
-+		p1[0] = d0;	/* Store the result (in bursts)		*/
-+		p1[1] = d1;
-+		p1[2] = d2;
-+		p1[3] = d3;
-+		p1[4] = d4;
-+		p1[5] = d5;
-+		p1[6] = d6;
-+		p1[7] = d7;
-+		p1 += 8;
-+		p2 += 8;
-+		p3 += 8;
-+		p4 += 8;
-+	} while (--lines > 0);
-+}
-+
-+static void
-+xor_32regs_5(unsigned long bytes, unsigned long *p1, unsigned long *p2,
-+	    unsigned long *p3, unsigned long *p4, unsigned long *p5)
-+{
-+	long lines = bytes / (sizeof (long)) / 8;
-+
-+	do {
-+		register long d0, d1, d2, d3, d4, d5, d6, d7;
-+		d0 = p1[0];	/* Pull the stuff into registers	*/
-+		d1 = p1[1];	/*  ... in bursts, if possible.		*/
-+		d2 = p1[2];
-+		d3 = p1[3];
-+		d4 = p1[4];
-+		d5 = p1[5];
-+		d6 = p1[6];
-+		d7 = p1[7];
-+		d0 ^= p2[0];
-+		d1 ^= p2[1];
-+		d2 ^= p2[2];
-+		d3 ^= p2[3];
-+		d4 ^= p2[4];
-+		d5 ^= p2[5];
-+		d6 ^= p2[6];
-+		d7 ^= p2[7];
-+		d0 ^= p3[0];
-+		d1 ^= p3[1];
-+		d2 ^= p3[2];
-+		d3 ^= p3[3];
-+		d4 ^= p3[4];
-+		d5 ^= p3[5];
-+		d6 ^= p3[6];
-+		d7 ^= p3[7];
-+		d0 ^= p4[0];
-+		d1 ^= p4[1];
-+		d2 ^= p4[2];
-+		d3 ^= p4[3];
-+		d4 ^= p4[4];
-+		d5 ^= p4[5];
-+		d6 ^= p4[6];
-+		d7 ^= p4[7];
-+		d0 ^= p5[0];
-+		d1 ^= p5[1];
-+		d2 ^= p5[2];
-+		d3 ^= p5[3];
-+		d4 ^= p5[4];
-+		d5 ^= p5[5];
-+		d6 ^= p5[6];
-+		d7 ^= p5[7];
-+		p1[0] = d0;	/* Store the result (in bursts)		*/
-+		p1[1] = d1;
-+		p1[2] = d2;
-+		p1[3] = d3;
-+		p1[4] = d4;
-+		p1[5] = d5;
-+		p1[6] = d6;
-+		p1[7] = d7;
-+		p1 += 8;
-+		p2 += 8;
-+		p3 += 8;
-+		p4 += 8;
-+		p5 += 8;
-+	} while (--lines > 0);
-+}
-+
-+static void
-+xor_8regs_p_2(unsigned long bytes, unsigned long *p1, unsigned long *p2)
-+{
-+	long lines = bytes / (sizeof (long)) / 8 - 1;
-+	prefetchw(p1);
-+	prefetch(p2);
-+
-+	do {
-+		prefetchw(p1+8);
-+		prefetch(p2+8);
-+ once_more:
-+		p1[0] ^= p2[0];
-+		p1[1] ^= p2[1];
-+		p1[2] ^= p2[2];
-+		p1[3] ^= p2[3];
-+		p1[4] ^= p2[4];
-+		p1[5] ^= p2[5];
-+		p1[6] ^= p2[6];
-+		p1[7] ^= p2[7];
-+		p1 += 8;
-+		p2 += 8;
-+	} while (--lines > 0);
-+	if (lines == 0)
-+		goto once_more;
-+}
-+
-+static void
-+xor_8regs_p_3(unsigned long bytes, unsigned long *p1, unsigned long *p2,
-+	    unsigned long *p3)
-+{
-+	long lines = bytes / (sizeof (long)) / 8 - 1;
-+	prefetchw(p1);
-+	prefetch(p2);
-+	prefetch(p3);
-+
-+	do {
-+		prefetchw(p1+8);
-+		prefetch(p2+8);
-+		prefetch(p3+8);
-+ once_more:
-+		p1[0] ^= p2[0] ^ p3[0];
-+		p1[1] ^= p2[1] ^ p3[1];
-+		p1[2] ^= p2[2] ^ p3[2];
-+		p1[3] ^= p2[3] ^ p3[3];
-+		p1[4] ^= p2[4] ^ p3[4];
-+		p1[5] ^= p2[5] ^ p3[5];
-+		p1[6] ^= p2[6] ^ p3[6];
-+		p1[7] ^= p2[7] ^ p3[7];
-+		p1 += 8;
-+		p2 += 8;
-+		p3 += 8;
-+	} while (--lines > 0);
-+	if (lines == 0)
-+		goto once_more;
-+}
-+
-+static void
-+xor_8regs_p_4(unsigned long bytes, unsigned long *p1, unsigned long *p2,
-+	    unsigned long *p3, unsigned long *p4)
-+{
-+	long lines = bytes / (sizeof (long)) / 8 - 1;
-+
-+	prefetchw(p1);
-+	prefetch(p2);
-+	prefetch(p3);
-+	prefetch(p4);
-+
-+	do {
-+		prefetchw(p1+8);
-+		prefetch(p2+8);
-+		prefetch(p3+8);
-+		prefetch(p4+8);
-+ once_more:
-+		p1[0] ^= p2[0] ^ p3[0] ^ p4[0];
-+		p1[1] ^= p2[1] ^ p3[1] ^ p4[1];
-+		p1[2] ^= p2[2] ^ p3[2] ^ p4[2];
-+		p1[3] ^= p2[3] ^ p3[3] ^ p4[3];
-+		p1[4] ^= p2[4] ^ p3[4] ^ p4[4];
-+		p1[5] ^= p2[5] ^ p3[5] ^ p4[5];
-+		p1[6] ^= p2[6] ^ p3[6] ^ p4[6];
-+		p1[7] ^= p2[7] ^ p3[7] ^ p4[7];
-+		p1 += 8;
-+		p2 += 8;
-+		p3 += 8;
-+		p4 += 8;
-+	} while (--lines > 0);
-+	if (lines == 0)
-+		goto once_more;
-+}
-+
-+static void
-+xor_8regs_p_5(unsigned long bytes, unsigned long *p1, unsigned long *p2,
-+	    unsigned long *p3, unsigned long *p4, unsigned long *p5)
-+{
-+	long lines = bytes / (sizeof (long)) / 8 - 1;
-+
-+	prefetchw(p1);
-+	prefetch(p2);
-+	prefetch(p3);
-+	prefetch(p4);
-+	prefetch(p5);
-+
-+	do {
-+		prefetchw(p1+8);
-+		prefetch(p2+8);
-+		prefetch(p3+8);
-+		prefetch(p4+8);
-+		prefetch(p5+8);
-+ once_more:
-+		p1[0] ^= p2[0] ^ p3[0] ^ p4[0] ^ p5[0];
-+		p1[1] ^= p2[1] ^ p3[1] ^ p4[1] ^ p5[1];
-+		p1[2] ^= p2[2] ^ p3[2] ^ p4[2] ^ p5[2];
-+		p1[3] ^= p2[3] ^ p3[3] ^ p4[3] ^ p5[3];
-+		p1[4] ^= p2[4] ^ p3[4] ^ p4[4] ^ p5[4];
-+		p1[5] ^= p2[5] ^ p3[5] ^ p4[5] ^ p5[5];
-+		p1[6] ^= p2[6] ^ p3[6] ^ p4[6] ^ p5[6];
-+		p1[7] ^= p2[7] ^ p3[7] ^ p4[7] ^ p5[7];
-+		p1 += 8;
-+		p2 += 8;
-+		p3 += 8;
-+		p4 += 8;
-+		p5 += 8;
-+	} while (--lines > 0);
-+	if (lines == 0)
-+		goto once_more;
-+}
-+
-+static void
-+xor_32regs_p_2(unsigned long bytes, unsigned long *p1, unsigned long *p2)
-+{
-+	long lines = bytes / (sizeof (long)) / 8 - 1;
-+
-+	prefetchw(p1);
-+	prefetch(p2);
-+
-+	do {
-+		register long d0, d1, d2, d3, d4, d5, d6, d7;
-+
-+		prefetchw(p1+8);
-+		prefetch(p2+8);
-+ once_more:
-+		d0 = p1[0];	/* Pull the stuff into registers	*/
-+		d1 = p1[1];	/*  ... in bursts, if possible.		*/
-+		d2 = p1[2];
-+		d3 = p1[3];
-+		d4 = p1[4];
-+		d5 = p1[5];
-+		d6 = p1[6];
-+		d7 = p1[7];
-+		d0 ^= p2[0];
-+		d1 ^= p2[1];
-+		d2 ^= p2[2];
-+		d3 ^= p2[3];
-+		d4 ^= p2[4];
-+		d5 ^= p2[5];
-+		d6 ^= p2[6];
-+		d7 ^= p2[7];
-+		p1[0] = d0;	/* Store the result (in bursts)		*/
-+		p1[1] = d1;
-+		p1[2] = d2;
-+		p1[3] = d3;
-+		p1[4] = d4;
-+		p1[5] = d5;
-+		p1[6] = d6;
-+		p1[7] = d7;
-+		p1 += 8;
-+		p2 += 8;
-+	} while (--lines > 0);
-+	if (lines == 0)
-+		goto once_more;
-+}
-+
-+static void
-+xor_32regs_p_3(unsigned long bytes, unsigned long *p1, unsigned long *p2,
-+	    unsigned long *p3)
-+{
-+	long lines = bytes / (sizeof (long)) / 8 - 1;
-+
-+	prefetchw(p1);
-+	prefetch(p2);
-+	prefetch(p3);
-+
-+	do {
-+		register long d0, d1, d2, d3, d4, d5, d6, d7;
-+
-+		prefetchw(p1+8);
-+		prefetch(p2+8);
-+		prefetch(p3+8);
-+ once_more:
-+		d0 = p1[0];	/* Pull the stuff into registers	*/
-+		d1 = p1[1];	/*  ... in bursts, if possible.		*/
-+		d2 = p1[2];
-+		d3 = p1[3];
-+		d4 = p1[4];
-+		d5 = p1[5];
-+		d6 = p1[6];
-+		d7 = p1[7];
-+		d0 ^= p2[0];
-+		d1 ^= p2[1];
-+		d2 ^= p2[2];
-+		d3 ^= p2[3];
-+		d4 ^= p2[4];
-+		d5 ^= p2[5];
-+		d6 ^= p2[6];
-+		d7 ^= p2[7];
-+		d0 ^= p3[0];
-+		d1 ^= p3[1];
-+		d2 ^= p3[2];
-+		d3 ^= p3[3];
-+		d4 ^= p3[4];
-+		d5 ^= p3[5];
-+		d6 ^= p3[6];
-+		d7 ^= p3[7];
-+		p1[0] = d0;	/* Store the result (in bursts)		*/
-+		p1[1] = d1;
-+		p1[2] = d2;
-+		p1[3] = d3;
-+		p1[4] = d4;
-+		p1[5] = d5;
-+		p1[6] = d6;
-+		p1[7] = d7;
-+		p1 += 8;
-+		p2 += 8;
-+		p3 += 8;
-+	} while (--lines > 0);
-+	if (lines == 0)
-+		goto once_more;
-+}
-+
-+static void
-+xor_32regs_p_4(unsigned long bytes, unsigned long *p1, unsigned long *p2,
-+	    unsigned long *p3, unsigned long *p4)
-+{
-+	long lines = bytes / (sizeof (long)) / 8 - 1;
-+
-+	prefetchw(p1);
-+	prefetch(p2);
-+	prefetch(p3);
-+	prefetch(p4);
-+
-+	do {
-+		register long d0, d1, d2, d3, d4, d5, d6, d7;
-+
-+		prefetchw(p1+8);
-+		prefetch(p2+8);
-+		prefetch(p3+8);
-+		prefetch(p4+8);
-+ once_more:
-+		d0 = p1[0];	/* Pull the stuff into registers	*/
-+		d1 = p1[1];	/*  ... in bursts, if possible.		*/
-+		d2 = p1[2];
-+		d3 = p1[3];
-+		d4 = p1[4];
-+		d5 = p1[5];
-+		d6 = p1[6];
-+		d7 = p1[7];
-+		d0 ^= p2[0];
-+		d1 ^= p2[1];
-+		d2 ^= p2[2];
-+		d3 ^= p2[3];
-+		d4 ^= p2[4];
-+		d5 ^= p2[5];
-+		d6 ^= p2[6];
-+		d7 ^= p2[7];
-+		d0 ^= p3[0];
-+		d1 ^= p3[1];
-+		d2 ^= p3[2];
-+		d3 ^= p3[3];
-+		d4 ^= p3[4];
-+		d5 ^= p3[5];
-+		d6 ^= p3[6];
-+		d7 ^= p3[7];
-+		d0 ^= p4[0];
-+		d1 ^= p4[1];
-+		d2 ^= p4[2];
-+		d3 ^= p4[3];
-+		d4 ^= p4[4];
-+		d5 ^= p4[5];
-+		d6 ^= p4[6];
-+		d7 ^= p4[7];
-+		p1[0] = d0;	/* Store the result (in bursts)		*/
-+		p1[1] = d1;
-+		p1[2] = d2;
-+		p1[3] = d3;
-+		p1[4] = d4;
-+		p1[5] = d5;
-+		p1[6] = d6;
-+		p1[7] = d7;
-+		p1 += 8;
-+		p2 += 8;
-+		p3 += 8;
-+		p4 += 8;
-+	} while (--lines > 0);
-+	if (lines == 0)
-+		goto once_more;
-+}
-+
-+static void
-+xor_32regs_p_5(unsigned long bytes, unsigned long *p1, unsigned long *p2,
-+	    unsigned long *p3, unsigned long *p4, unsigned long *p5)
-+{
-+	long lines = bytes / (sizeof (long)) / 8 - 1;
-+
-+	prefetchw(p1);
-+	prefetch(p2);
-+	prefetch(p3);
-+	prefetch(p4);
-+	prefetch(p5);
-+
-+	do {
-+		register long d0, d1, d2, d3, d4, d5, d6, d7;
-+
-+		prefetchw(p1+8);
-+		prefetch(p2+8);
-+		prefetch(p3+8);
-+		prefetch(p4+8);
-+		prefetch(p5+8);
-+ once_more:
-+		d0 = p1[0];	/* Pull the stuff into registers	*/
-+		d1 = p1[1];	/*  ... in bursts, if possible.		*/
-+		d2 = p1[2];
-+		d3 = p1[3];
-+		d4 = p1[4];
-+		d5 = p1[5];
-+		d6 = p1[6];
-+		d7 = p1[7];
-+		d0 ^= p2[0];
-+		d1 ^= p2[1];
-+		d2 ^= p2[2];
-+		d3 ^= p2[3];
-+		d4 ^= p2[4];
-+		d5 ^= p2[5];
-+		d6 ^= p2[6];
-+		d7 ^= p2[7];
-+		d0 ^= p3[0];
-+		d1 ^= p3[1];
-+		d2 ^= p3[2];
-+		d3 ^= p3[3];
-+		d4 ^= p3[4];
-+		d5 ^= p3[5];
-+		d6 ^= p3[6];
-+		d7 ^= p3[7];
-+		d0 ^= p4[0];
-+		d1 ^= p4[1];
-+		d2 ^= p4[2];
-+		d3 ^= p4[3];
-+		d4 ^= p4[4];
-+		d5 ^= p4[5];
-+		d6 ^= p4[6];
-+		d7 ^= p4[7];
-+		d0 ^= p5[0];
-+		d1 ^= p5[1];
-+		d2 ^= p5[2];
-+		d3 ^= p5[3];
-+		d4 ^= p5[4];
-+		d5 ^= p5[5];
-+		d6 ^= p5[6];
-+		d7 ^= p5[7];
-+		p1[0] = d0;	/* Store the result (in bursts)		*/
-+		p1[1] = d1;
-+		p1[2] = d2;
-+		p1[3] = d3;
-+		p1[4] = d4;
-+		p1[5] = d5;
-+		p1[6] = d6;
-+		p1[7] = d7;
-+		p1 += 8;
-+		p2 += 8;
-+		p3 += 8;
-+		p4 += 8;
-+		p5 += 8;
-+	} while (--lines > 0);
-+	if (lines == 0)
-+		goto once_more;
-+}
-+
-+static struct xor_block_template xor_block_8regs = {
-+	.name = "8regs",
-+	.do_2 = xor_8regs_2,
-+	.do_3 = xor_8regs_3,
-+	.do_4 = xor_8regs_4,
-+	.do_5 = xor_8regs_5,
-+};
-+
-+static struct xor_block_template xor_block_32regs = {
-+	.name = "32regs",
-+	.do_2 = xor_32regs_2,
-+	.do_3 = xor_32regs_3,
-+	.do_4 = xor_32regs_4,
-+	.do_5 = xor_32regs_5,
-+};
-+
-+static struct xor_block_template xor_block_8regs_p = {
-+	.name = "8regs_prefetch",
-+	.do_2 = xor_8regs_p_2,
-+	.do_3 = xor_8regs_p_3,
-+	.do_4 = xor_8regs_p_4,
-+	.do_5 = xor_8regs_p_5,
-+};
-+
-+static struct xor_block_template xor_block_32regs_p = {
-+	.name = "32regs_prefetch",
-+	.do_2 = xor_32regs_p_2,
-+	.do_3 = xor_32regs_p_3,
-+	.do_4 = xor_32regs_p_4,
-+	.do_5 = xor_32regs_p_5,
-+};
-+
-+#define XOR_TRY_TEMPLATES			\
-+	do {					\
-+		xor_speed(&xor_block_8regs);	\
-+		xor_speed(&xor_block_8regs_p);	\
-+		xor_speed(&xor_block_32regs);	\
-+		xor_speed(&xor_block_32regs_p);	\
-+	} while (0)
---- linux/include/asm-nios2nommu/altera_juart.h
-+++ linux/include/asm-nios2nommu/altera_juart.h
-@@ -0,0 +1,36 @@
-+/*------------------------------------------------------------------------
-+ *
-+ *  linux/drivers/serial/altera_juart.h
-+ *
-+ *  Driver for Altera JTAG UART core with Avalon interface
-+ *
-+ * Copyright (C) 2004 Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * History:
-+ *    Jun/20/2005   DGT Microtronix Datacom NiosII
-+ *
-+ -----------------------------------------------------------------------*/
-+
-+#ifndef _ALTERA_JUART_H_
-+    #define _ALTERA_JUART_H_
-+
-+    /* jtag uart details needed outside of the driver itself:           */
-+    /*  by: arch/kernel/start.c - boot time error message(s)            */
-+
-+    void jtaguart_console_write
-+            (       struct console  *co,
-+             const  char            *s,
-+                    unsigned int     count);
-+
-+#endif  /* _ALTERA_JUART_H_ */
---- linux/include/asm-nios2nommu/a.out.h
-+++ linux/include/asm-nios2nommu/a.out.h
-@@ -0,0 +1,85 @@
-+/* $Id: a.out.h,v 1.4 2004/03/30 19:35:04 ken-h Exp $ */
-+/*
-+ * Copyright (C) 2004 Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+#ifndef __NIOS2NOMMU_A_OUT_H__
-+#define __NIOS2NOMMU_A_OUT_H__
-+
-+#define SPARC_PGSIZE    0x1000        /* Thanks to the sun4 architecture... */
-+#define SEGMENT_SIZE    SPARC_PGSIZE  /* whee... */
-+
-+struct exec {
-+	unsigned char a_dynamic:1;      /* A __DYNAMIC is in this image */
-+	unsigned char a_toolversion:7;
-+	unsigned char a_machtype;
-+	unsigned short a_info;
-+	unsigned long a_text;		/* length of text, in bytes */
-+	unsigned long a_data;		/* length of data, in bytes */
-+	unsigned long a_bss;		/* length of bss, in bytes */
-+	unsigned long a_syms;		/* length of symbol table, in bytes */
-+	unsigned long a_entry;		/* where program begins */
-+	unsigned long a_trsize;
-+	unsigned long a_drsize;
-+};
-+
-+#define INIT_EXEC {				\
-+	.a_dynamic	= 0,			\
-+	.a_toolversion	= 0,			\
-+	.a_machtype	= 0,			\
-+	.a_info		= 0,			\
-+	.a_text		= 0,			\
-+	.a_data		= 0,			\
-+	.a_bss		= 0,			\
-+	.a_syms		= 0,			\
-+	.a_entry	= 0,			\
-+	.a_trsize	= 0,			\
-+	.a_drsize	= 0,			\
-+}
-+
-+/* Where in the file does the text information begin? */
-+#define N_TXTOFF(x)     (N_MAGIC(x) == ZMAGIC ? 0 : sizeof (struct exec))
-+
-+/* Where do the Symbols start? */
-+#define N_SYMOFF(x)     (N_TXTOFF(x) + (x).a_text +   \
-+                         (x).a_data + (x).a_trsize +  \
-+                         (x).a_drsize)
-+
-+/* Where does text segment go in memory after being loaded? */
-+#define N_TXTADDR(x)    (((N_MAGIC(x) == ZMAGIC) &&        \
-+	                 ((x).a_entry < SPARC_PGSIZE)) ?   \
-+                          0 : SPARC_PGSIZE)
-+
-+/* And same for the data segment.. */
-+#define N_DATADDR(x) (N_MAGIC(x)==OMAGIC ?         \
-+                      (N_TXTADDR(x) + (x).a_text)  \
-+                       : (_N_SEGMENT_ROUND (_N_TXTENDADDR(x))))
-+
-+#define N_TRSIZE(a)	((a).a_trsize)
-+#define N_DRSIZE(a)	((a).a_drsize)
-+#define N_SYMSIZE(a)	((a).a_syms)
-+
-+#ifdef __KERNEL__
-+
-+#define STACK_TOP	TASK_SIZE
-+
-+#endif
-+
-+#endif /* __NIOS2NOMMU_A_OUT_H__ */
---- linux/include/asm-nios2nommu/asm-macros.h
-+++ linux/include/asm-nios2nommu/asm-macros.h
-@@ -0,0 +1,331 @@
-+/*
-+ * Macro used to simplify coding multi-line assembler.
-+ * Some of the bit test macro can simplify down to one line
-+ * depending on the mask value.
-+ *
-+ * Copyright (C) 2004 Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+/*
-+ * ANDs reg2 with mask and places the result in reg1.
-+ *
-+ * You cannnot use the same register for reg1 & reg2.
-+ */
-+
-+.macro ANDI32	reg1,reg2,mask
-+ .if \mask & 0xffff
-+  .if \mask & 0xffff0000
-+	movhi	\reg1,%hi(\mask)
-+	movui	\reg1,%lo(\mask)
-+	and	\reg1,\reg1,\reg2
-+  .else
-+	andi	\reg1,\reg2,%lo(\mask)
-+  .endif
-+ .else
-+	andhi	\reg1,\reg2,%hi(\mask)
-+ .endif
-+.endm
-+
-+/*
-+ * ORs reg2 with mask and places the result in reg1.
-+ *
-+ * It is safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro ORI32	reg1,reg2,mask
-+ .if \mask & 0xffff
-+  .if \mask & 0xffff0000
-+	orhi	\reg1,\reg2,%hi(\mask)
-+	ori	\reg1,\reg2,%lo(\mask)
-+  .else
-+	ori	\reg1,\reg2,%lo(\mask)
-+  .endif
-+ .else
-+	orhi	\reg1,\reg2,%hi(\mask)
-+ .endif
-+.endm
-+
-+/*
-+ * XORs reg2 with mask and places the result in reg1.
-+ *
-+ * It is safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro XORI32	reg1,reg2,mask
-+ .if \mask & 0xffff
-+  .if \mask & 0xffff0000
-+	xorhi	\reg1,\reg2,%hi(\mask)
-+	xori	\reg1,\reg1,%lo(\mask)
-+  .else
-+	xori	\reg1,\reg2,%lo(\mask)
-+  .endif
-+ .else
-+	xorhi	\reg1,\reg2,%hi(\mask)
-+ .endif
-+.endm
-+
-+/*
-+ * This is a support macro for BTBZ & BTBNZ.  It checks
-+ * the bit to make sure it is valid 32 value.
-+ *
-+ * It is safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro BT	reg1,reg2,bit
-+.if \bit > 31
-+ .err 
-+.else
-+ .if \bit < 16
-+	andi	\reg1,\reg2,(1 << \bit)
-+ .else
-+	andhi	\reg1,\reg2,(1 << (\bit - 16))
-+ .endif
-+.endif
-+.endm
-+
-+/*
-+ * Tests the bit in reg2 and branches to label if the
-+ * bit is zero.  The result of the bit test is stored in reg1.
-+ *
-+ * It is safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro BTBZ	reg1,reg2,bit,label
-+	BT	\reg1,\reg2,\bit
-+	beq	\reg1,r0,\label
-+.endm
-+
-+/*
-+ * Tests the bit in reg2 and branches to label if the
-+ * bit is non-zero.  The result of the bit test is stored in reg1.
-+ *
-+ * It is safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro BTBNZ	reg1,reg2,bit,label
-+	BT	\reg1,\reg2,\bit
-+	bne	\reg1,r0,\label
-+.endm
-+
-+/*
-+ * Tests the bit in reg2 and then compliments the bit in reg2.
-+ * The result of the bit test is stored in reg1.
-+ *
-+ * It is NOT safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro BTC	reg1,reg2,bit
-+.if \bit > 31
-+ .err 
-+.else
-+ .if \bit < 16
-+	andi	\reg1,\reg2,(1 << \bit)
-+	xori	\reg2,\reg2,(1 << \bit)
-+ .else
-+	andhi	\reg1,\reg2,(1 << (\bit - 16))
-+	xorhi	\reg2,\reg2,(1 << (\bit - 16))
-+ .endif
-+.endif
-+.endm
-+
-+/*
-+ * Tests the bit in reg2 and then sets the bit in reg2.
-+ * The result of the bit test is stored in reg1.
-+ *
-+ * It is NOT safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro BTS	reg1,reg2,bit
-+.if \bit > 31
-+ .err 
-+.else
-+ .if \bit < 16
-+	andi	\reg1,\reg2,(1 << \bit)
-+	ori	\reg2,\reg2,(1 << \bit)
-+ .else
-+	andhi	\reg1,\reg2,(1 << (\bit - 16))
-+	orhi	\reg2,\reg2,(1 << (\bit - 16))
-+ .endif
-+.endif
-+.endm
-+
-+/*
-+ * Tests the bit in reg2 and then resets the bit in reg2.
-+ * The result of the bit test is stored in reg1.
-+ *
-+ * It is NOT safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro BTR	reg1,reg2,bit
-+.if \bit > 31
-+ .err 
-+.else
-+ .if \bit < 16
-+	andi	\reg1,\reg2,(1 << \bit)
-+	andi	\reg2,\reg2,%lo(~(1 << \bit))
-+ .else
-+	andhi	\reg1,\reg2,(1 << (\bit - 16))
-+	andhi	\reg2,\reg2,%lo(~(1 << (\bit - 16)))
-+ .endif
-+.endif
-+.endm
-+
-+/*
-+ * Tests the bit in reg2 and then compliments the bit in reg2.
-+ * The result of the bit test is stored in reg1.  If the 
-+ * original bit was zero it branches to label.
-+ *
-+ * It is NOT safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro BTCBZ	reg1,reg2,bit,label
-+	BTC	\reg1,\reg2,\bit
-+	beq	\reg1,r0,\label
-+.endm
-+
-+/*
-+ * Tests the bit in reg2 and then compliments the bit in reg2.
-+ * The result of the bit test is stored in reg1.  If the 
-+ * original bit was non-zero it branches to label.
-+ *
-+ * It is NOT safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro BTCBNZ	reg1,reg2,bit,label
-+	BTC	\reg1,\reg2,\bit
-+	bne	\reg1,r0,\label
-+.endm
-+
-+/*
-+ * Tests the bit in reg2 and then sets the bit in reg2.
-+ * The result of the bit test is stored in reg1.  If the 
-+ * original bit was zero it branches to label.
-+ *
-+ * It is NOT safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro BTSBZ	reg1,reg2,bit,label
-+	BTS	\reg1,\reg2,\bit
-+	beq	\reg1,r0,\label
-+.endm
-+
-+/*
-+ * Tests the bit in reg2 and then sets the bit in reg2.
-+ * The result of the bit test is stored in reg1.  If the 
-+ * original bit was non-zero it branches to label.
-+ *
-+ * It is NOT safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro BTSBNZ	reg1,reg2,bit,label
-+	BTS	\reg1,\reg2,\bit
-+	bne	\reg1,r0,\label
-+.endm
-+
-+/*
-+ * Tests the bit in reg2 and then resets the bit in reg2.
-+ * The result of the bit test is stored in reg1.  If the 
-+ * original bit was zero it branches to label.
-+ *
-+ * It is NOT safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro BTRBZ	reg1,reg2,bit,label
-+	BTR	\reg1,\reg2,\bit
-+	bne	\reg1,r0,\label
-+.endm
-+
-+/*
-+ * Tests the bit in reg2 and then resets the bit in reg2.
-+ * The result of the bit test is stored in reg1.  If the 
-+ * original bit was non-zero it branches to label.
-+ *
-+ * It is NOT safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro BTRBNZ	reg1,reg2,bit,label
-+	BTR	\reg1,\reg2,\bit
-+	bne	\reg1,r0,\label
-+.endm
-+
-+/*
-+ * Tests the bits in mask against reg2 stores the result in reg1.
-+ * If the all the bits in the mask are zero it branches to label.
-+ *
-+ * It is safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro TSTBZ	reg1,reg2,mask,label
-+	ANDI32	\reg1,\reg2,\mask
-+	beq	\reg1,r0,\label
-+.endm
-+
-+/*
-+ * Tests the bits in mask against reg2 stores the result in reg1.
-+ * If the any of the bits in the mask are 1 it branches to label.
-+ *
-+ * It is safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro TSTBNZ	reg1,reg2,mask,label
-+	ANDI32	\reg1,\reg2,\mask
-+	bne	\reg1,r0,\label
-+.endm
-+
-+/*
-+ * Pushes reg onto the stack.
-+ */
-+
-+.macro PUSH	reg
-+	addi	sp,sp,-4
-+	stw	\reg,0(sp)
-+.endm
-+
-+/*
-+ * Pops the top of the stack into reg.
-+ */
-+
-+.macro POP	reg
-+	ldw	\reg,0(sp)
-+	addi	sp,sp,4
-+.endm
-+
-+/*
-+ * Clears reg
-+ */
-+
-+.macro CLR	reg
-+	  mov	\reg,r0
-+.endm
-+
-+/*
-+ * The preprocessor macro does not work for
-+ * the nios2 compiler. Undefine ENTRY and define
-+ * a real assembler macro.
-+ */
-+#undef ENTRY
-+#define ENTRY(name) ASM_ENTRY name
-+
-+.macro ASM_ENTRY name
-+.globl \name
-+__ALIGN
-+  \name:
-+.endm
---- linux/include/asm-nios2nommu/atomic.h
-+++ linux/include/asm-nios2nommu/atomic.h
-@@ -0,0 +1,190 @@
-+//vic - add 'atomic_add/sub_return', 'atomic_add_negative'
-+//vic     from v850 architecture
-+
-+/* atomic.h: 
-+ *
-+ * Copyright (C) 2004 Microtronix Datacom Ltd.
-+ * Copyright (C) 2001 Vic Phillips (vic@microtronix.com)
-+ *
-+ * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu)
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef __ARCH_NIOS2NOMMU_ATOMIC__
-+#define __ARCH_NIOS2NOMMU_ATOMIC__
-+
-+#include <asm/system.h>
-+
-+typedef struct { int counter; } atomic_t;
-+#define ATOMIC_INIT(i)	{ (i) }
-+
-+#define atomic_read(v)		((v)->counter)
-+#define atomic_set(v, i)	(((v)->counter) = i)
-+
-+
-+extern __inline__ void atomic_add(int i, atomic_t *v)
-+{
-+	unsigned long flags;
-+
-+	local_irq_save(flags);
-+	v->counter += i;
-+	local_irq_restore(flags);
-+}
-+
-+extern __inline__ int atomic_add_negative(int i, atomic_t *v)
-+{
-+	unsigned long flags;
-+	int result;
-+
-+	local_irq_save(flags);
-+	v->counter += i;
-+	result = (v->counter < 0);
-+	local_irq_restore(flags);
-+	return result;
-+}
-+
-+extern __inline__ void atomic_sub(int i, atomic_t *v)
-+{
-+	unsigned long flags;
-+
-+	local_irq_save(flags);
-+	v->counter -= i;
-+	local_irq_restore(flags);
-+}
-+
-+extern __inline__ int atomic_sub_and_test(int i, atomic_t *v)
-+{
-+	int result;
-+	unsigned long flags;
-+
-+	local_irq_save(flags);
-+	v->counter -= i;
-+	result = (v->counter == 0);
-+	local_irq_restore(flags);
-+	return result;
-+}
-+
-+extern __inline__ void atomic_inc(atomic_t *v)
-+{
-+	unsigned long flags;
-+
-+	local_irq_save(flags);
-+	v->counter += 1;
-+	local_irq_restore(flags);
-+}
-+
-+extern __inline__ int atomic_inc_and_test(atomic_t *v)
-+{
-+	unsigned long flags;
-+	int result;
-+
-+	local_irq_save(flags);
-+	v->counter += 1;
-+	result = (v->counter == 0);
-+	local_irq_restore(flags);
-+	return result;
-+}
-+
-+extern __inline__ void atomic_dec(atomic_t *v)
-+{
-+	int i = 1;					/* the compiler optimizes better this way */
-+	unsigned long flags;
-+
-+	local_irq_save(flags);
-+	v->counter -= i;
-+	local_irq_restore(flags);
-+}
-+
-+extern __inline__ int atomic_dec_and_test(atomic_t *v)
-+{
-+	int result;
-+	int i = 1;					/* the compiler optimizes better this way */
-+	unsigned long flags;
-+
-+	local_irq_save(flags);
-+	v->counter -= i;
-+	result = (v->counter == 0);
-+	local_irq_restore(flags);
-+	return result;
-+}
-+
-+extern __inline__ int atomic_inc_return(atomic_t *v)
-+{
-+	int result;
-+	unsigned long flags;
-+
-+	local_irq_save(flags);
-+	result = ++v->counter;
-+	local_irq_restore(flags);
-+	return result;
-+}
-+
-+extern __inline__ int atomic_dec_return(atomic_t *v)
-+{
-+	int result;
-+	int i = 1;					/* the compiler optimizes better this way */
-+	unsigned long flags;
-+
-+	local_irq_save(flags);
-+	v->counter -= i;
-+	result = v->counter;
-+	local_irq_restore(flags);
-+	return result;
-+}
-+
-+extern __inline__ int atomic_add_return (int i, volatile atomic_t *v)
-+{
-+	int res;
-+	unsigned long flags;
-+
-+	local_irq_save(flags);
-+	res = v->counter + i;
-+	v->counter = res;
-+	local_irq_restore(flags);
-+
-+	return res;
-+}
-+
-+static __inline__ int atomic_sub_return (int i, volatile atomic_t *v)
-+{
-+	int res;
-+	unsigned long flags;
-+
-+	local_irq_save(flags);
-+	res = v->counter - i;
-+	v->counter = res;
-+	local_irq_restore(flags);
-+
-+	return res;
-+}
-+
-+#define atomic_dec_return(v) atomic_sub_return(1,(v))
-+#define atomic_inc_return(v) atomic_add_return(1,(v))
-+
-+/* Atomic operations are already serializing */
-+#define smp_mb__before_atomic_dec()	barrier()
-+#define smp_mb__after_atomic_dec()	barrier()
-+#define smp_mb__before_atomic_inc()	barrier()
-+#define smp_mb__after_atomic_inc()	barrier()
-+
-+
-+#endif /* !(__ARCH_NIOS2NOMMU_ATOMIC__) */
-+
-+
---- linux/include/asm-nios2nommu/bitops.h
-+++ linux/include/asm-nios2nommu/bitops.h
-@@ -0,0 +1,472 @@
-+#ifndef _ASM_NIOS_BITOPS_H_
-+#define _ASM_NIOS_BITOPS_H_
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/bitops.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#ifdef __KERNEL__
-+// #include <linux/config.h>
-+#include <linux/compiler.h>
-+#include <asm/byteorder.h>	/* swab32 */
-+#include <asm/system.h>
-+#endif
-+
-+/*
-+ * Adapted to NIOS from generic bitops.h:
-+ *
-+ * For the benefit of those who are trying to port Linux to another
-+ * architecture, here are some C-language equivalents.  You should
-+ * recode these in the native assembly language, if at all possible.
-+ * To guarantee atomicity, these routines call cli() and sti() to
-+ * disable interrupts while they operate.  (You have to provide inline
-+ * routines to cli() and sti().)
-+ *
-+ * Also note, these routines assume that you have 32 bit integers.
-+ * You will have to change this if you are trying to port Linux to the
-+ * Alpha architecture or to a Cray.  :-)
-+ *
-+ * C language equivalents written by Theodore Ts'o, 9/26/92
-+ */
-+
-+/*
-+ *	Generic ffs().
-+ */
-+static inline int ffs(int x)
-+{
-+	int r = 1;
-+
-+	if (!x)
-+		return 0;
-+	if (!(x & 0xffff)) {
-+		x >>= 16;
-+		r += 16;
-+	}
-+	if (!(x & 0xff)) {
-+		x >>= 8;
-+		r += 8;
-+	}
-+	if (!(x & 0xf)) {
-+		x >>= 4;
-+		r += 4;
-+	}
-+	if (!(x & 3)) {
-+		x >>= 2;
-+		r += 2;
-+	}
-+	if (!(x & 1)) {
-+		x >>= 1;
-+		r += 1;
-+	}
-+	return r;
-+}
-+
-+/*
-+ *	Generic __ffs().
-+ */
-+static inline int __ffs(int x)
-+{
-+	int r = 0;
-+
-+	if (!x)
-+		return 0;
-+	if (!(x & 0xffff)) {
-+		x >>= 16;
-+		r += 16;
-+	}
-+	if (!(x & 0xff)) {
-+		x >>= 8;
-+		r += 8;
-+	}
-+	if (!(x & 0xf)) {
-+		x >>= 4;
-+		r += 4;
-+	}
-+	if (!(x & 3)) {
-+		x >>= 2;
-+		r += 2;
-+	}
-+	if (!(x & 1)) {
-+		x >>= 1;
-+		r += 1;
-+	}
-+	return r;
-+}
-+
-+/*
-+ * fls: find last bit set.
-+ */
-+#define fls(x) generic_fls(x)
-+
-+
-+/*
-+ * Every architecture must define this function. It's the fastest
-+ * way of searching a 140-bit bitmap where the first 100 bits are
-+ * unlikely to be set. It's guaranteed that at least one of the 140
-+ * bits is cleared.
-+ */
-+static inline int sched_find_first_bit(unsigned long *b)
-+{
-+	if (unlikely(b[0]))
-+		return __ffs(b[0]);
-+	if (unlikely(b[1]))
-+		return __ffs(b[1]) + 32;
-+	if (unlikely(b[2]))
-+		return __ffs(b[2]) + 64;
-+	if (b[3])
-+		return __ffs(b[3]) + 96;
-+	return __ffs(b[4]) + 128;
-+}
-+
-+/*
-+ * ffz = Find First Zero in word. Undefined if no zero exists,
-+ * so code should check against ~0UL first..
-+ */
-+static __inline__ unsigned long ffz(unsigned long word)
-+{
-+	unsigned long result = 0;
-+
-+	while(word & 1) {
-+		result++;
-+		word >>= 1;
-+	}
-+	return result;
-+}
-+
-+
-+static __inline__ void set_bit(int nr, volatile unsigned long * addr)
-+{
-+	int 	* a = (int *) addr;
-+	int	mask;
-+	unsigned long flags;
-+
-+	a += nr >> 5;
-+	mask = 1 << (nr & 0x1f);
-+	local_irq_save(flags);
-+	*a |= mask;
-+	local_irq_restore(flags);
-+}
-+
-+static __inline__ void __set_bit(int nr, volatile unsigned long * addr)
-+{
-+	int 	* a = (int *) addr;
-+	int	mask;
-+
-+	a += nr >> 5;
-+	mask = 1 << (nr & 0x1f);
-+	*a |= mask;
-+}
-+
-+/*
-+ * clear_bit() doesn't provide any barrier for the compiler.
-+ */
-+#define smp_mb__before_clear_bit()	barrier()
-+#define smp_mb__after_clear_bit()	barrier()
-+
-+static __inline__ void clear_bit(int nr, volatile unsigned long * addr)
-+{
-+	int 	* a = (int *) addr;
-+	int	mask;
-+	unsigned long flags;
-+
-+	a += nr >> 5;
-+	mask = 1 << (nr & 0x1f);
-+	local_irq_save(flags);
-+	*a &= ~mask;
-+	local_irq_restore(flags);
-+}
-+
-+static __inline__ void __clear_bit(int nr, volatile unsigned long * addr)
-+{
-+	int 	* a = (int *) addr;
-+	int	mask;
-+
-+	a += nr >> 5;
-+	mask = 1 << (nr & 0x1f);
-+	*a &= ~mask;
-+}
-+
-+static __inline__ void change_bit(int nr, volatile unsigned long * addr)
-+{
-+	int mask, flags;
-+	unsigned long *ADDR = (unsigned long *) addr;
-+
-+	ADDR += nr >> 5;
-+	mask = 1 << (nr & 31);
-+	local_irq_save(flags);
-+	*ADDR ^= mask;
-+	local_irq_restore(flags);
-+}
-+
-+static __inline__ void __change_bit(int nr, volatile unsigned long * addr)
-+{
-+	int mask;
-+	unsigned long *ADDR = (unsigned long *) addr;
-+
-+	ADDR += nr >> 5;
-+	mask = 1 << (nr & 31);
-+	*ADDR ^= mask;
-+}
-+
-+static __inline__ int test_and_set_bit(int nr, volatile unsigned long * addr)
-+{
-+	int	mask, retval;
-+	volatile unsigned int *a = (volatile unsigned int *) addr;
-+	unsigned long flags;
-+
-+	a += nr >> 5;
-+	mask = 1 << (nr & 0x1f);
-+	local_irq_save(flags);
-+	retval = (mask & *a) != 0;
-+	*a |= mask;
-+	local_irq_restore(flags);
-+
-+	return retval;
-+}
-+
-+static __inline__ int __test_and_set_bit(int nr, volatile unsigned long * addr)
-+{
-+	int	mask, retval;
-+	volatile unsigned int *a = (volatile unsigned int *) addr;
-+
-+	a += nr >> 5;
-+	mask = 1 << (nr & 0x1f);
-+	retval = (mask & *a) != 0;
-+	*a |= mask;
-+	return retval;
-+}
-+
-+static __inline__ int test_and_clear_bit(int nr, volatile unsigned long * addr)
-+{
-+	int	mask, retval;
-+	volatile unsigned int *a = (volatile unsigned int *) addr;
-+	unsigned long flags;
-+
-+	a += nr >> 5;
-+	mask = 1 << (nr & 0x1f);
-+	local_irq_save(flags);
-+	retval = (mask & *a) != 0;
-+	*a &= ~mask;
-+	local_irq_restore(flags);
-+
-+	return retval;
-+}
-+
-+static __inline__ int __test_and_clear_bit(int nr, volatile unsigned long * addr)
-+{
-+	int	mask, retval;
-+	volatile unsigned int *a = (volatile unsigned int *) addr;
-+
-+	a += nr >> 5;
-+	mask = 1 << (nr & 0x1f);
-+	retval = (mask & *a) != 0;
-+	*a &= ~mask;
-+	return retval;
-+}
-+
-+static __inline__ int test_and_change_bit(int nr, volatile unsigned long * addr)
-+{
-+	int	mask, retval;
-+	volatile unsigned int *a = (volatile unsigned int *) addr;
-+	unsigned long flags;
-+
-+	a += nr >> 5;
-+	mask = 1 << (nr & 0x1f);
-+	local_irq_save(flags);
-+	retval = (mask & *a) != 0;
-+	*a ^= mask;
-+	local_irq_restore(flags);
-+
-+	return retval;
-+}
-+
-+static __inline__ int __test_and_change_bit(int nr, volatile unsigned long * addr)
-+{
-+	int	mask, retval;
-+	volatile unsigned int *a = (volatile unsigned int *) addr;
-+
-+	a += nr >> 5;
-+	mask = 1 << (nr & 0x1f);
-+	retval = (mask & *a) != 0;
-+	*a ^= mask;
-+	return retval;
-+}
-+
-+/*
-+ * This routine doesn't need to be atomic.
-+ */
-+static __inline__ int __constant_test_bit(int nr, const volatile unsigned long * addr)
-+{
-+	return ((1UL << (nr & 31)) & (((const volatile unsigned int *) addr)[nr >> 5])) != 0;
-+}
-+
-+static __inline__ int __test_bit(int nr, const volatile unsigned long * addr)
-+{
-+	int 	* a = (int *) addr;
-+	int	mask;
-+
-+	a += nr >> 5;
-+	mask = 1 << (nr & 0x1f);
-+	return ((mask & *a) != 0);
-+}
-+
-+#define test_bit(nr,addr) \
-+(__builtin_constant_p(nr) ? \
-+ __constant_test_bit((nr),(unsigned long *)(addr)) : \
-+ __test_bit((nr),(unsigned long *)(addr)))
-+
-+
-+/* find_next_zero_bit() finds the first zero bit in a bit string of length
-+ * 'size' bits, starting the search at bit 'offset'. This is largely based
-+ * on Linus's ALPHA routines, which are pretty portable BTW.
-+ */
-+
-+extern __inline__ unsigned long find_next_zero_bit(void *addr, unsigned long size, unsigned long offset)
-+{
-+	unsigned long *p = ((unsigned long *) addr) + (offset >> 5);
-+	unsigned long result = offset & ~31UL;
-+	unsigned long tmp;
-+
-+	if (offset >= size)
-+		return size;
-+	size -= result;
-+	offset &= 31UL;
-+	if (offset) {
-+		tmp = *(p++);
-+		tmp |= ~0UL >> (32-offset);
-+		if (size < 32)
-+			goto found_first;
-+		if (~tmp)
-+			goto found_middle;
-+		size -= 32;
-+		result += 32;
-+	}
-+	while (size & ~31UL) {
-+		if (~(tmp = *(p++)))
-+			goto found_middle;
-+		result += 32;
-+		size -= 32;
-+	}
-+	if (!size)
-+		return result;
-+	tmp = *p;
-+
-+found_first:
-+	tmp |= ~0UL << size;
-+	if (tmp == ~0UL)
-+		return result + size;
-+found_middle:
-+	return result + ffz(tmp);
-+}
-+
-+/*
-+ * Find next one bit in a bitmap reasonably efficiently.
-+ */
-+extern __inline__ unsigned long find_next_bit(const unsigned long *addr,
-+	unsigned long size, unsigned long offset)
-+{
-+	unsigned int *p = ((unsigned int *) addr) + (offset >> 5);
-+	unsigned int result = offset & ~31UL;
-+	unsigned int tmp;
-+
-+	if (offset >= size)
-+		return size;
-+	size -= result;
-+	offset &= 31UL;
-+	if (offset) {
-+		tmp = *p++;
-+		tmp &= ~0UL << offset;
-+		if (size < 32)
-+			goto found_first;
-+		if (tmp)
-+			goto found_middle;
-+		size -= 32;
-+		result += 32;
-+	}
-+	while (size >= 32) {
-+		if ((tmp = *p++) != 0)
-+			goto found_middle;
-+		result += 32;
-+		size -= 32;
-+	}
-+	if (!size)
-+		return result;
-+	tmp = *p;
-+
-+found_first:
-+	tmp &= ~0UL >> (32 - size);
-+	if (tmp == 0UL)        /* Are any bits set? */
-+		return result + size; /* Nope. */
-+found_middle:
-+	return result + __ffs(tmp);
-+}
-+
-+/*
-+ * hweightN: returns the hamming weight (i.e. the number
-+ * of bits set) of a N-bit word
-+ */
-+
-+#define hweight32(x) generic_hweight32(x)
-+#define hweight16(x) generic_hweight16(x)
-+#define hweight8(x) generic_hweight8(x)
-+
-+/* Linus sez that gcc can optimize the following correctly, we'll see if this
-+ * holds on the Sparc as it does for the ALPHA.
-+ */
-+
-+#define find_first_zero_bit(addr, size) \
-+        find_next_zero_bit((addr), (size), 0)
-+#define find_first_bit(addr, size) \
-+        find_next_bit((addr), (size), 0)
-+
-+/* Now for the ext2 filesystem bit operations and helper routines.
-+ *
-+ * Both NIOS and ext2 are little endian, so these are the same as above.
-+ */
-+
-+#define ext2_set_bit   test_and_set_bit
-+#define ext2_clear_bit test_and_clear_bit
-+#define ext2_test_bit  test_bit
-+
-+#define ext2_set_bit_atomic(lock, nr, addr)		\
-+	({						\
-+		int ret;				\
-+		spin_lock(lock);			\
-+		ret = ext2_set_bit((nr),(unsigned long *) (addr));	\
-+		spin_unlock(lock);			\
-+		ret;					\
-+	})
-+
-+#define ext2_clear_bit_atomic(lock, nr, addr)		\
-+	({						\
-+		int ret;				\
-+		spin_lock(lock);			\
-+		ret = ext2_clear_bit((nr),(unsigned long *) (addr));	\
-+		spin_unlock(lock);			\
-+		ret;					\
-+	})
-+
-+#define ext2_find_first_zero_bit find_first_zero_bit
-+#define ext2_find_next_zero_bit  find_next_zero_bit
-+
-+#endif /* _ASM_NIOS_BITOPS_H */
---- linux/include/asm-nios2nommu/bootinfo.h
-+++ linux/include/asm-nios2nommu/bootinfo.h
-@@ -0,0 +1,2 @@
-+
-+/* Nothing for nios2nommu */
---- linux/include/asm-nios2nommu/bug.h
-+++ linux/include/asm-nios2nommu/bug.h
-@@ -0,0 +1,48 @@
-+#ifndef _NIOS2NOMMU_BUG_H
-+#define _NIOS2NOMMU_BUG_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/bug.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#define BUG() do { \
-+  printk("%s(%d): kernel BUG!\n", __FILE__, __LINE__); \
-+} while (0)
-+
-+#define BUG_ON(condition) do { \
-+	if (unlikely((condition)!=0)) \
-+		BUG(); \
-+} while(0)
-+
-+#define PAGE_BUG(page) do { \
-+         BUG(); \
-+} while (0)
-+
-+#define WARN_ON(condition) do { \
-+	if (unlikely((condition)!=0)) { \
-+		printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \
-+		dump_stack(); \
-+	} \
-+} while (0)
-+
-+#endif
---- linux/include/asm-nios2nommu/bugs.h
-+++ linux/include/asm-nios2nommu/bugs.h
-@@ -0,0 +1,40 @@
-+#ifndef __ASM_NIOS_BUGS_H
-+#define __ASM_NIOS_BUGS_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/bugs.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ *  Copyright (C) 1994  Linus Torvalds
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+/*
-+ * This is included by init/main.c to check for architecture-dependent bugs.
-+ *
-+ * Needs:
-+ *	void check_bugs(void);
-+ */
-+
-+static void check_bugs(void)
-+{
-+}
-+
-+#endif
---- linux/include/asm-nios2nommu/byteorder.h
-+++ linux/include/asm-nios2nommu/byteorder.h
-@@ -0,0 +1,38 @@
-+#ifndef __ASM_NIOS_BYTEORDER_H
-+#define __ASM_NIOS_BYTEORDER_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/byteorder.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm/types.h>
-+
-+#if defined(__GNUC__) && !defined(__STRICT_ANSI__) || defined(__KERNEL__)
-+#  define __BYTEORDER_HAS_U64__
-+#  define __SWAB_64_THRU_32__
-+#endif
-+
-+#include <linux/byteorder/little_endian.h>
-+
-+#endif
-+
---- linux/include/asm-nios2nommu/cachectl.h
-+++ linux/include/asm-nios2nommu/cachectl.h
-@@ -0,0 +1,36 @@
-+/*
-+ * Copyright (C) 2004 Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef _NIOS2NOMMU_CACHECTL_H
-+#define _NIOS2NOMMU_CACHECTL_H
-+
-+/* Definitions for the cacheflush system call.  */
-+
-+#define FLUSH_SCOPE_LINE    1	/* Flush a cache line */
-+#define FLUSH_SCOPE_PAGE    2	/* Flush a page */
-+#define FLUSH_SCOPE_ALL     3	/* Flush the whole cache -- superuser only */
-+
-+#define FLUSH_CACHE_DATA    1	/* Writeback and flush data cache */
-+#define FLUSH_CACHE_INSN    2	/* Flush instruction cache */
-+#define FLUSH_CACHE_BOTH    3	/* Flush both caches */
-+
-+#endif /* _NIOS2NOMMU_CACHECTL_H */
---- linux/include/asm-nios2nommu/cacheflush.h
-+++ linux/include/asm-nios2nommu/cacheflush.h
-@@ -0,0 +1,59 @@
-+#ifndef _NIOS2NOMMU_CACHEFLUSH_H
-+#define _NIOS2NOMMU_CACHEFLUSH_H
-+
-+/*
-+ * Ported from m68knommu.
-+ *
-+ * (C) Copyright 2003, Microtronix Datacom Ltd.
-+ * (C) Copyright 2000-2002, Greg Ungerer <gerg@snapgear.com>
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+#include <linux/mm.h>
-+
-+extern void cache_push (unsigned long vaddr, int len);
-+extern void dcache_push (unsigned long vaddr, int len);
-+extern void icache_push (unsigned long vaddr, int len);
-+extern void cache_push_all (void);
-+extern void cache_clear (unsigned long paddr, int len);
-+
-+#define flush_cache_all()			__flush_cache_all()
-+#define flush_cache_mm(mm)			do { } while (0)
-+#define flush_cache_range(vma, start, end)	cache_push(start, end - start)
-+#define flush_cache_page(vma, vmaddr)		do { } while (0)
-+#define flush_dcache_range(start,end)		dcache_push(start, end - start)
-+#define flush_dcache_page(page)			do { } while (0)
-+#define flush_dcache_mmap_lock(mapping)		do { } while (0)
-+#define flush_dcache_mmap_unlock(mapping)	do { } while (0)
-+#define flush_icache_range(start,end)		cache_push(start, end - start)
-+#define flush_icache_page(vma,pg)		do { } while (0)
-+#define flush_icache_user_range(vma,pg,adr,len)	do { } while (0)
-+
-+#define copy_to_user_page(vma, page, vaddr, dst, src, len) \
-+	memcpy(dst, src, len)
-+#define copy_from_user_page(vma, page, vaddr, dst, src, len) \
-+	memcpy(dst, src, len)
-+
-+
-+extern inline void __flush_cache_all(void)
-+{
-+	cache_push_all();
-+}
-+
-+#endif /* _NIOS2NOMMU_CACHEFLUSH_H */
---- linux/include/asm-nios2nommu/cache.h
-+++ linux/include/asm-nios2nommu/cache.h
-@@ -0,0 +1,34 @@
-+/*
-+ * Copyright (C) 2004 Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+#ifndef __ARCH_NIOS2NOMMU_CACHE_H
-+#define __ARCH_NIOS2NOMMU_CACHE_H
-+
-+#include <asm/nios.h>
-+
-+/* bytes per L1 cache line */
-+#define        L1_CACHE_BYTES	nasys_icache_line_size 	/* this need to be at least 1 */
-+
-+
-+#define __cacheline_aligned
-+#define ____cacheline_aligned
-+
-+#endif
---- linux/include/asm-nios2nommu/ChangeLog
-+++ linux/include/asm-nios2nommu/ChangeLog
-@@ -0,0 +1,14 @@
-+2004-06-29  Ken Hill  <khill@microtronix.com>
-+
-+	* bitops.h (find_next_zero_bit): Fix problem with with masking for found_first
-+	handling. The masking of the upper bits for size < 32 bits would set all
-+	the bits to 1. Removing any zero's there may have been.
-+
-+2004-06-02  Ken Hill  <khill@microtronix.com>
-+
-+	* processor.h (TASK_SIZE): Change na_sdram_end to nasys_program_mem_end to remove
-+	dependancy on quartus memory component name.
-+
-+	* page.h (PAGE_OFFSET): Change na_sdram to nasys_program_mem to remove
-+	dependancy on quartus memory component name.
-+
---- linux/include/asm-nios2nommu/checksum.h
-+++ linux/include/asm-nios2nommu/checksum.h
-@@ -0,0 +1,320 @@
-+#ifndef __NIOS2_CHECKSUM_H
-+#define __NIOS2_CHECKSUM_H
-+
-+/*  checksum.h:  IP/UDP/TCP checksum routines on the NIOS.
-+ *
-+ *  Copyright(C) 1995 Linus Torvalds
-+ *  Copyright(C) 1995 Miguel de Icaza
-+ *  Copyright(C) 1996 David S. Miller
-+ *  Copyright(C) 2001 Ken Hill
-+ *  Copyright(C) 2004 Microtronix Datacom Ltd.
-+ *
-+ * derived from:
-+ *	Alpha checksum c-code
-+ *      ix86 inline assembly
-+ *      Spar nommu
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+
-+/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-+
-+/*
-+ * computes the checksum of the TCP/UDP pseudo-header
-+ * returns a 16-bit checksum, already complemented
-+ */
-+
-+extern inline unsigned short csum_tcpudp_magic(unsigned long saddr,
-+					       unsigned long daddr,
-+					       unsigned short len,
-+					       unsigned short proto,
-+					       unsigned int sum)
-+{
-+    barrier();
-+	__asm__ __volatile__(
-+"		add	%0, %3, %0\n"
-+"		bgeu	%0, %3, 1f\n"
-+"		addi	%0, %0, 1\n"
-+"1:		add	%0, %4, %0\n"
-+"		bgeu	%0, %4, 1f\n"
-+"		addi	%0, %0, 1\n"
-+"1:		add	%0, %5, %0\n"
-+"		bgeu	%0, %5, 1f\n"
-+"		addi	%0, %0, 1\n"
-+"1:\n"
-+/*
-+		We need the carry from the addition of 16-bit
-+		significant addition, so we zap out the low bits
-+		in one half, zap out the high bits in another,
-+		shift them both up to the top 16-bits of a word
-+		and do the carry producing addition, finally
-+		shift the result back down to the low 16-bits.
-+
-+		Actually, we can further optimize away two shifts
-+		because we know the low bits of the original
-+		value will be added to zero-only bits so cannot
-+		affect the addition result nor the final carry
-+		bit.
-+*/
-+"		slli	%1,%0, 16\n"		/* Need a copy to fold with */
-+						/* Bring the LOW 16 bits up */
-+"		add	%0, %1, %0\n"		/* add and set carry, neat eh? */
-+"		cmpltu	r15, %0, %1\n"		/* get remaining carry bit */
-+"		srli	%0, %0, 16\n"		/* shift back down the result */
-+"		add	%0, %0, r15\n"
-+"		nor	%0, %0, %0\n"		/* negate */
-+	        : "=&r" (sum), "=&r" (saddr)
-+		: "0" (sum), "1" (saddr), "r" (ntohl(len+proto)), "r" (daddr)
-+		: "r15");
-+		return ((unsigned short) sum); 
-+    barrier();
-+}
-+
-+
-+/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-+
-+
-+  extern inline unsigned short from32to16(unsigned long x)
-+  {
-+    barrier();
-+	__asm__ __volatile__(
-+		"add	%0, %1, %0\n"
-+		"cmpltu	r15, %0, %1\n"
-+		"srli	%0, %0, 16\n"
-+		"add	%0, %0, r15\n"
-+		: "=r" (x)
-+		: "r" (x << 16), "0" (x)
-+		: "r15");
-+	return x;
-+    barrier();
-+  }
-+
-+
-+/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-+
-+
-+extern inline unsigned long do_csum(const unsigned char * buff, int len)
-+{
-+ int odd, count;
-+ unsigned long result = 0;
-+
-+    barrier();
-+ if (len <= 0)
-+ 	goto out;
-+ odd = 1 & (unsigned long) buff;
-+ if (odd) {
-+////result = *buff;                     // dgt: Big    endian
-+ 	result = *buff << 8;                // dgt: Little endian
-+
-+ 	len--;
-+ 	buff++;
-+ }
-+ count = len >> 1;		/* nr of 16-bit words.. */
-+ if (count) {
-+ 	if (2 & (unsigned long) buff) {
-+ 		result += *(unsigned short *) buff;
-+ 		count--;
-+ 		len -= 2;
-+ 		buff += 2;
-+ 	}
-+ 	count >>= 1;		/* nr of 32-bit words.. */
-+ 	if (count) {
-+ 	        unsigned long carry = 0;
-+ 		do {
-+ 			unsigned long w = *(unsigned long *) buff;
-+ 			count--;
-+ 			buff += 4;
-+ 			result += carry;
-+ 			result += w;
-+ 			carry = (w > result);
-+ 		} while (count);
-+ 		result += carry;
-+ 		result = (result & 0xffff) + (result >> 16);
-+ 	}
-+ 	if (len & 2) {
-+ 		result += *(unsigned short *) buff;
-+ 		buff += 2;
-+ 	}
-+ }
-+ if (len & 1)
-+ 	result += *buff;  /* This is little machine, byte is right */
-+ result = from32to16(result);
-+ if (odd)
-+ 	result = ((result >> 8) & 0xff) | ((result & 0xff) << 8);
-+out:
-+	return result;
-+    barrier();
-+  }
-+
-+
-+/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-+
-+
-+/* ihl is always 5 or greater, almost always is 5, iph is always word
-+ * aligned but can fail to be dword aligned very often.
-+ */
-+
-+  extern inline unsigned short ip_fast_csum(const unsigned char *iph, unsigned int ihl)
-+  {
-+	unsigned int sum;
-+
-+    barrier();
-+	__asm__ __volatile__(
-+"		andi	r8, %1, 2\n"	/* Remember original alignment */
-+"		ldw	%0, (%1)\n"	/* 16 or 32 bit boundary */
-+"		beq	r8, r0, 1f\n"	/* Aligned on 32 bit boundary, go */
-+"		srli	%0, %0, 16\n"	/* Get correct 16 bits */
-+"		addi	%2, %2, -1\n"	/* Take off for 4 bytes, pickup last 2 at end */
-+"		addi	%1, %1, 2\n"	/* Adjust pointer to 32 bit boundary */
-+"		br	2f\n"
-+"1:\n"
-+"		addi	%2, %2, -1\n"
-+"		addi	%1, %1, 4\n"	/* Bump ptr a long word */
-+"2:\n"
-+"		ldw     r9, (%1)\n"
-+"1:\n"
-+"		add     %0, r9, %0\n"
-+"		bgeu	%0, r9, 2f\n"
-+"		addi	%0, %0, 1\n"
-+"2:\n"
-+"		addi	%1, %1, 4\n"
-+"		addi	%2, %2, -1\n"
-+"		ldw     r9, (%1)\n"
-+"		bne	%2, r0, 1b\n"
-+"		beq	r8, r0, 1f\n"	/* 32 bit boundary time to leave */
-+"		srli	r9, r9, 16\n"	/* 16 bit boundary, get correct 16 bits */
-+"		add     %0, r9, %0\n"
-+"		bgeu	%0, r9, 1f\n"
-+"		addi	%0, %0, 1\n"
-+"1:\n"
-+"		slli	%2, %0, 16\n"
-+"		add     %0, %2, %0\n"
-+"		cmpltu	r8, %0, %2\n"
-+"		srli	%0, %0, 16\n"
-+"		add	%0, %0, r8\n"
-+"		nor     %0, %0, %0\n"
-+		: "=&r" (sum), "=&r" (iph), "=&r" (ihl)
-+		: "1" (iph), "2" (ihl)
-+		: "r8", "r9");
-+	return sum;
-+    barrier();
-+  }
-+
-+/*these 2 functions are now in checksum.c */
-+unsigned int csum_partial(const unsigned char * buff, int len, unsigned int sum);
-+unsigned int csum_partial_copy(const char *src, char *dst, int len, int sum);
-+
-+/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-+
-+/*
-+ * the same as csum_partial_copy, but copies from user space.
-+ *
-+ * here even more important to align src and dst on a 32-bit (or even
-+ * better 64-bit) boundary
-+ */
-+extern inline unsigned int
-+csum_partial_copy_from_user(const char *src, char *dst, int len, int sum, int *csum_err)
-+{
-+    barrier();
-+	if (csum_err) *csum_err = 0;
-+	memcpy(dst, src, len);
-+	return csum_partial(dst, len, sum);
-+    barrier();
-+}
-+
-+#define csum_partial_copy_nocheck(src, dst, len, sum)	\
-+	csum_partial_copy ((src), (dst), (len), (sum))
-+
-+
-+/*
-+ * this routine is used for miscellaneous IP-like checksums, mainly
-+ * in icmp.c
-+ */
-+
-+extern inline unsigned short ip_compute_csum(unsigned char * buff, int len)
-+{
-+    barrier();
-+ return ~from32to16(do_csum(buff,len));
-+    barrier();
-+}
-+
-+
-+/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-+
-+
-+#define csum_partial_copy_fromuser(s, d, l, w)  \
-+                     csum_partial_copy((char *) (s), (d), (l), (w))
-+
-+
-+/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-+
-+
-+/*
-+ *	Fold a partial checksum without adding pseudo headers
-+ */
-+extern __inline__ unsigned int csum_fold(unsigned int sum)
-+{
-+    barrier();
-+	__asm__ __volatile__(
-+		"add	%0, %1, %0\n"
-+		"cmpltu	r8, %0, %1\n"
-+		"srli	%0, %0, 16\n"
-+		"add	%0, %0, r8\n"
-+		"nor	%0, %0, %0\n"
-+		: "=r" (sum)
-+		: "r" (sum << 16), "0" (sum)
-+		: "r8"); 
-+	return sum;
-+    barrier();
-+}
-+
-+
-+/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-+
-+
-+extern __inline__ unsigned long csum_tcpudp_nofold(unsigned long saddr,
-+						   unsigned long daddr,
-+						   unsigned short len,
-+						   unsigned short proto,
-+						   unsigned int sum)
-+{
-+    barrier();
-+	__asm__ __volatile__(
-+		"add	%0, %1, %0\n"
-+		"cmpltu	r8, %0, %1\n"
-+		"add	%0, %0, r8\n"	/* add carry */
-+		"add	%0, %2, %0\n"
-+		"cmpltu	r8, %0, %2\n"
-+		"add	%0, %0, r8\n"	/* add carry */
-+		"add	%0, %3, %0\n"
-+		"cmpltu	r8, %0, %3\n"
-+		"add	%0, %0, r8\n"	/* add carry */
-+		: "=r" (sum), "=r" (saddr)
-+		: "r" (daddr), "r" ( (ntohs(len)<<16) + (proto*256) ),
-+		  "0" (sum),
-+		  "1" (saddr)
-+		: "r8");
-+
-+	return sum;
-+    barrier();
-+}
-+
-+
-+#endif /* (__NIOS2_CHECKSUM_H) */
---- linux/include/asm-nios2nommu/cprefix.h
-+++ linux/include/asm-nios2nommu/cprefix.h
-@@ -0,0 +1,38 @@
-+/* cprefix.h:  This file is included by assembly source which needs
-+ *             to know what the c-label prefixes are. The newer versions
-+ *	       of cpp that come with gcc predefine such things to help
-+ *	       us out. The reason this stuff is needed is to make
-+ *	       solaris compiles of the kernel work.
-+ *
-+ * Copyright (C) 2004 Microtronix Datacom Ltd.
-+ * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+#ifndef __NIOS2_CPREFIX_H
-+#define __NIOS2_CPREFIX_H
-+
-+#define C_LABEL_PREFIX
-+
-+#define CONCAT(a, b) CONCAT2(a, b)
-+#define CONCAT2(a, b) a##b
-+
-+#define C_LABEL(name) CONCAT(C_LABEL_PREFIX, name)
-+
-+#endif /* !(__NIOS2_CPREFIX_H) */
---- linux/include/asm-nios2nommu/cpumask.h
-+++ linux/include/asm-nios2nommu/cpumask.h
-@@ -0,0 +1,28 @@
-+/*
-+ * All rights reserved.          
-+ *
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef _ASM_NIOS2NOMMU_CPUMASK_H
-+#define _ASM_NIOS2NOMMU_CPUMASK_H
-+
-+#include <asm-generic/cpumask.h>
-+
-+#endif /* _ASM_NIOS2NOMMU_CPUMASK_H */
---- linux/include/asm-nios2nommu/cputime.h
-+++ linux/include/asm-nios2nommu/cputime.h
-@@ -0,0 +1,31 @@
-+/*
-+ *	cputime.h
-+ *	(C) Copyright 2004, Microtronix Datacom Ltd.
-+ *
-+ * Taken from m68knommu
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef __NIOS2NOMMU_CPUTIME_H
-+#define __NIOS2NOMMU_CPUTIME_H
-+
-+#include <asm-generic/cputime.h>
-+
-+#endif /* __NIOS@NOMMU_CPUTIME_H */
---- linux/include/asm-nios2nommu/current.h
-+++ linux/include/asm-nios2nommu/current.h
-@@ -0,0 +1,39 @@
-+#ifndef _NIOS2NOMMU_CURRENT_H
-+#define _NIOS2NOMMU_CURRENT_H
-+/*
-+ *	current.h
-+ *	(C) Copyright 2000, Lineo, David McCullough <davidm@uclinux.org>
-+ *	(C) Copyright 2002, Greg Ungerer (gerg@snapgear.com)
-+ *	(C) Copyright 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#include <linux/thread_info.h>
-+
-+struct task_struct;
-+
-+static inline struct task_struct *get_current(void)
-+{
-+	return(current_thread_info()->task);
-+}
-+
-+#define	current	get_current()
-+
-+#endif /* _NIOS2NOMMU_CURRENT_H */
---- linux/include/asm-nios2nommu/delay.h
-+++ linux/include/asm-nios2nommu/delay.h
-@@ -0,0 +1,96 @@
-+#ifndef _NIOS_DELAY_H
-+#define _NIOS_DELAY_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/delay.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004      dgt     NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm/param.h>
-+
-+extern __inline__ void __delay(unsigned long loops)
-+{
-+	int dummy;
-+
-+	__asm__ __volatile__(
-+        "1:  \n\t"
-+        "    beq    %0,zero,2f\n\t"
-+        "    addi   %0, %0, -1\n\t" 
-+        "    br     1b\n\t" 
-+        "2:  \n\t" 
-+
-+        :  "=r" (dummy)                     /* Need output for optimizer */
-+
-+        :  "0" (loops)                      /* %0  Input                */
-+        );
-+}
-+
-+/*
-+ * Note that 19 * 226 == 4294 ==~ 2^32 / 10^6, so
-+ * loops = (4294 * usecs * loops_per_jiffy * HZ) / 2^32.
-+ *
-+ * The mul instruction gives us loops = (a * b) / 2^32.
-+ * We choose a = usecs * 19 * HZ and b = loops_per_jiffy * 226
-+ * because this lets us support a wide range of HZ and
-+ * loops_per_jiffy values without either a or b overflowing 2^32.
-+ * Thus we need usecs * HZ <= (2^32 - 1) / 19 = 226050910 and
-+ * loops_per_jiffy <= (2^32 - 1) / 226 = 19004280
-+ * (which corresponds to ~3800 bogomips at HZ = 100).
-+ *  -- paulus
-+ */
-+#define __MAX_UDELAY	(226050910UL/HZ)	/* maximum udelay argument */
-+#define __MAX_NDELAY	(4294967295UL/HZ)	/* maximum ndelay argument */
-+
-+extern unsigned long loops_per_jiffy;
-+
-+extern __inline__ void __udelay(unsigned int x)
-+{
-+	unsigned int loops;
-+
-+	__asm__("mulxuu %0,%1,%2" : "=r" (loops) :
-+		"r" (x), "r" (loops_per_jiffy * 226));
-+	__delay(loops);
-+}
-+
-+extern __inline__ void __ndelay(unsigned int x)
-+{
-+	unsigned int loops;
-+
-+	__asm__("mulxuu %0,%1,%2" : "=r" (loops) :
-+		"r" (x), "r" (loops_per_jiffy * 5));
-+	__delay(loops);
-+}
-+
-+extern void __bad_udelay(void);		/* deliberately undefined */
-+extern void __bad_ndelay(void);		/* deliberately undefined */
-+
-+#define udelay(n) (__builtin_constant_p(n)? \
-+	((n) > __MAX_UDELAY? __bad_udelay(): __udelay((n) * (19 * HZ))) : \
-+	__udelay((n) * (19 * HZ)))
-+
-+#define ndelay(n) (__builtin_constant_p(n)? \
-+	((n) > __MAX_NDELAY? __bad_ndelay(): __ndelay((n) * HZ)) : \
-+	__ndelay((n) * HZ))
-+
-+#define muldiv(a, b, c)    (((a)*(b))/(c))
-+
-+#endif /* defined(_NIOS_DELAY_H) */
---- linux/include/asm-nios2nommu/div64.h
-+++ linux/include/asm-nios2nommu/div64.h
-@@ -0,0 +1,31 @@
-+#ifndef __ASMNIOS_DIV64_H
-+#define __ASMNIOS_DIV64_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/div64.h
-+ *
-+ * Derived from m68knommu
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm-generic/div64.h>
-+
-+#endif
-+
---- linux/include/asm-nios2nommu/dma.h
-+++ linux/include/asm-nios2nommu/dma.h
-@@ -0,0 +1,57 @@
-+/* $Id: dma.h,v 1.6 2005/04/07 21:00:26 wentao Exp $
-+ *
-+ * Copyright 2004 (C) Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef _ASM_NIOS2_DMA_H
-+#define _ASM_NIOS2_DMA_H
-+
-+#include <linux/kernel.h>
-+#include <asm/asm-offsets.h>
-+
-+#define MAX_DMA_ADDRESS	(LINUX_SDRAM_END)
-+
-+int request_dma(unsigned int, const char *);
-+void free_dma(unsigned int);
-+void enable_dma(unsigned int dmanr);
-+void disable_dma(unsigned int dmanr);
-+void set_dma_count(unsigned int dmanr, unsigned int count);
-+int get_dma_residue(unsigned int dmanr);
-+void nios2_set_dma_data_width(unsigned int dmanr, unsigned int width);
-+
-+void nios2_set_dma_handler(unsigned int dmanr, int (*handler)(void*, int), void* user);
-+int nios2_request_dma(const char *);
-+
-+void nios2_set_dma_mode(unsigned int dmanr, unsigned int mode);
-+void nios2_set_dma_rcon(unsigned int dmanr, unsigned int set);
-+void nios2_set_dma_wcon(unsigned int dmanr, unsigned int set);
-+void nios2_set_dma_raddr(unsigned int dmanr, unsigned int a);
-+void nios2_set_dma_waddr(unsigned int dmanr, unsigned int a);
-+
-+static inline unsigned long claim_dma_lock(void)
-+{
-+}
-+
-+static inline void release_dma_lock(unsigned long flags)
-+{
-+}
-+
-+#endif /* !(_ASM_NIOS2_DMA_H) */
---- linux/include/asm-nios2nommu/dma-mapping.h
-+++ linux/include/asm-nios2nommu/dma-mapping.h
-@@ -0,0 +1,133 @@
-+/*
-+ *  include/asm-nios2nommu/dma-mapping.h
-+ *
-+ *  This file exists so that #include <dma-mapping.h> doesn't break anything.
-+ */
-+
-+#ifndef _ASM_DMA_MAPPING_H
-+#define _ASM_DMA_MAPPING_H
-+
-+#include <asm/scatterlist.h>
-+#include <linux/mm.h>
-+#include <asm/io.h>
-+#include <asm/cacheflush.h>
-+
-+static inline void *dma_alloc_coherent(struct device *dev, size_t size,
-+			 dma_addr_t *dma_handle, int flag)
-+{
-+	BUG();
-+	return 0;
-+}
-+
-+static inline void dma_free_coherent(struct device *dev, size_t size,
-+		       void *vaddr, dma_addr_t dma_handle)
-+{
-+	BUG();
-+}
-+
-+/**
-+ * dma_map_single - map a single buffer for streaming DMA
-+ * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices
-+ * @cpu_addr: CPU direct mapped address of buffer
-+ * @size: size of buffer to map
-+ * @dir: DMA transfer direction
-+ *
-+ * Ensure that any data held in the cache is appropriately discarded
-+ * or written back.
-+ *
-+ * The device owns this memory once this call has completed.  The CPU
-+ * can regain ownership by calling dma_unmap_single() or
-+ * dma_sync_single_for_cpu().
-+ */
-+static inline dma_addr_t
-+dma_map_single(struct device *dev, void *cpu_addr, size_t size,
-+	       enum dma_data_direction dir)
-+{
-+	cache_push ((unsigned long)cpu_addr, size);
-+	return virt_to_bus((unsigned long)cpu_addr);
-+}
-+
-+/**
-+ * dma_unmap_single - unmap a single buffer previously mapped
-+ * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices
-+ * @handle: DMA address of buffer
-+ * @size: size of buffer to map
-+ * @dir: DMA transfer direction
-+ *
-+ * Unmap a single streaming mode DMA translation.  The handle and size
-+ * must match what was provided in the previous dma_map_single() call.
-+ * All other usages are undefined.
-+ *
-+ * After this call, reads by the CPU to the buffer are guaranteed to see
-+ * whatever the device wrote there.
-+ */
-+static inline void
-+dma_unmap_single(struct device *dev, dma_addr_t handle, size_t size,
-+		 enum dma_data_direction dir)
-+{
-+	cache_clear((unsigned long)bus_to_virt(handle), size);
-+}
-+
-+/**
-+ * dma_map_sg - map a set of SG buffers for streaming mode DMA
-+ * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices
-+ * @sg: list of buffers
-+ * @nents: number of buffers to map
-+ * @dir: DMA transfer direction
-+ *
-+ * Map a set of buffers described by scatterlist in streaming
-+ * mode for DMA.  This is the scatter-gather version of the
-+ * above dma_map_single interface.  Here the scatter gather list
-+ * elements are each tagged with the appropriate dma address
-+ * and length.  They are obtained via sg_dma_{address,length}(SG).
-+ *
-+ * NOTE: An implementation may be able to use a smaller number of
-+ *       DMA address/length pairs than there are SG table elements.
-+ *       (for example via virtual mapping capabilities)
-+ *       The routine returns the number of addr/length pairs actually
-+ *       used, at most nents.
-+ *
-+ * Device ownership issues as mentioned above for dma_map_single are
-+ * the same here.
-+ */
-+static inline int
-+dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
-+	   enum dma_data_direction dir)
-+{
-+	int i;
-+
-+	for (i = 0; i < nents; i++, sg++) {
-+		char *virt;
-+
-+		sg->dma_address = page_to_bus(sg->page) + sg->offset;
-+		virt = page_address(sg->page) + sg->offset;
-+		cache_push ((unsigned long)virt, sg->length);
-+	}
-+
-+	return nents;
-+}
-+
-+/**
-+ * dma_unmap_sg - unmap a set of SG buffers mapped by dma_map_sg
-+ * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices
-+ * @sg: list of buffers
-+ * @nents: number of buffers to map
-+ * @dir: DMA transfer direction
-+ *
-+ * Unmap a set of streaming mode DMA translations.
-+ * Again, CPU read rules concerning calls here are the same as for
-+ * dma_unmap_single() above.
-+ */
-+static inline void
-+dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nents,
-+	     enum dma_data_direction dir)
-+{
-+	int i;
-+
-+	for (i = 0; i < nents; i++, sg++) {
-+		char *virt;
-+		virt = page_address(sg->page) + sg->offset;
-+		cache_clear ((unsigned long)virt, sg->length);
-+	}
-+}
-+#endif /* _ASM_DMA_MAPPING_H */
---- linux/include/asm-nios2nommu/elf.h
-+++ linux/include/asm-nios2nommu/elf.h
-@@ -0,0 +1,141 @@
-+#ifndef __NIOS2_ELF_H
-+#define __NIOS2_ELF_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/elf.h
-+ *
-+ * Nio2 ELF relocation types
-+ *
-+ * Derived from M68knommu
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ * Mar/18/2004		xwt		NiosII relocation types added
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+// #include <linux/config.h>
-+#include <asm/ptrace.h>
-+#include <asm/user.h>
-+
-+#define R_NIOS2_NONE			0
-+#define R_NIOS2_S16				1
-+#define R_NIOS2_U16				2
-+#define R_NIOS2_PCREL16			3
-+#define R_NIOS2_CALL26			4
-+#define R_NIOS2_IMM5			5
-+#define R_NIOS2_CACHE_OPX 		6
-+#define R_NIOS2_IMM6			7
-+#define R_NIOS2_IMM8			8
-+#define R_NIOS2_HI16			9
-+#define R_NIOS2_LO16			10
-+#define R_NIOS2_HIADJ16 		11
-+#define R_NIOS2_BFD_RELOC_32	12
-+#define R_NIOS2_BFD_RELOC_16	13
-+#define R_NIOS2_BFD_RELOC_8 	14
-+#define R_NIOS2_GPREL			15
-+#define R_NIOS2_GNU_VTINHERIT 	16
-+#define R_NIOS2_GNU_VTENTRY  	17
-+#define R_NIOS2_UJMP			18
-+#define R_NIOS2_CJMP			19
-+#define R_NIOS2_CALLR			20
-+#define R_NIOS2_ALIGN			21
-+/* Keep this the last entry.  */
-+#define R_NIOS2_NUM				22
-+
-+typedef unsigned long elf_greg_t;
-+
-+#define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof(elf_greg_t))
-+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-+
-+typedef unsigned long elf_fpregset_t;
-+
-+/*
-+ * This is used to ensure we don't load something for the wrong architecture.
-+ */
-+#define elf_check_arch(x) \
-+	((x)->e_machine == EM_ALTERA_NIOS2)
-+
-+/*
-+ * These are used to set parameters in the core dumps.
-+ */
-+#define ELF_CLASS	ELFCLASS32
-+#define ELF_DATA	ELFDATA2LSB
-+#define ELF_ARCH	EM_ALTERA_NIOS2
-+
-+#define ELF_PLAT_INIT(_r, load_addr)	_r->a1 = 0
-+
-+#define USE_ELF_CORE_DUMP
-+#define ELF_EXEC_PAGESIZE	4096
-+
-+/* This is the location that an ET_DYN program is loaded if exec'ed.  Typical
-+   use of this is to invoke "./ld.so someprog" to test out a new version of
-+   the loader.  We need to make sure that it is out of the way of the program
-+   that it will "exec", and that there is sufficient room for the brk.  */
-+
-+#define ELF_ET_DYN_BASE         0xD0000000UL
-+
-+/* regs is struct pt_regs, pr_reg is elf_gregset_t (which is
-+   now struct_user_regs, they are different) */
-+
-+#define ELF_CORE_COPY_REGS(pr_reg, regs)				\
-+	/* Bleech. */							\
-+	pr_reg[0] = regs->r1;						\
-+	pr_reg[1] = regs->r2;						\
-+	pr_reg[2] = regs->r3;						\
-+	pr_reg[3] = regs->r4;						\
-+	pr_reg[4] = regs->r5;						\
-+	pr_reg[5] = regs->r6;						\
-+	pr_reg[6] = regs->r7;						\
-+	pr_reg[7] = regs->r8;						\
-+	pr_reg[8] = regs->r9;						\
-+	pr_reg[9] = regs->r10;						\
-+	pr_reg[10] = regs->r11;						\
-+	pr_reg[11] = regs->r12;						\
-+	pr_reg[12] = regs->r13;						\
-+	pr_reg[13] = regs->r14;						\
-+	pr_reg[14] = regs->r15;						\
-+	pr_reg[23] = regs->sp;						\
-+	pr_reg[26] = regs->estatus;					\
-+	{								\
-+	  struct switch_stack *sw = ((struct switch_stack *)regs) - 1;	\
-+	  pr_reg[15] = sw->r16;						\
-+	  pr_reg[16] = sw->r17;						\
-+	  pr_reg[17] = sw->r18;						\
-+	  pr_reg[18] = sw->r19;						\
-+	  pr_reg[19] = sw->r20;						\
-+	  pr_reg[20] = sw->r21;						\
-+	  pr_reg[21] = sw->r22;						\
-+	  pr_reg[22] = sw->r23;						\
-+	  pr_reg[24] = sw->fp;						\
-+	  pr_reg[25] = sw->gp;						\
-+	}
-+
-+/* This yields a mask that user programs can use to figure out what
-+   instruction set this cpu supports.  */
-+
-+#define ELF_HWCAP	(0)
-+
-+/* This yields a string that ld.so will use to load implementation
-+   specific libraries for optimization.  This is more specific in
-+   intent than poking at uname or /proc/cpuinfo.  */
-+
-+#define ELF_PLATFORM  (NULL)
-+
-+#ifdef __KERNEL__
-+#define SET_PERSONALITY(ex, ibcs2) set_personality((ibcs2)?PER_SVR4:PER_LINUX)
-+#endif
-+
-+#endif
---- linux/include/asm-nios2nommu/entry.h
-+++ linux/include/asm-nios2nommu/entry.h
-@@ -0,0 +1,188 @@
-+/*
-+ * Hacked from m68knommu port.
-+ *
-+ *  Copyright(C) 2004 Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef __NIOS2NOMMU_ENTRY_H
-+#define __NIOS2NOMMU_ENTRY_H
-+
-+#ifdef __ASSEMBLY__
-+
-+// #include <linux/config.h>
-+#include <asm/setup.h>
-+#include <asm/page.h>
-+#include <asm/asm-offsets.h>
-+
-+/*
-+ * Stack layout in 'ret_from_exception':
-+ *
-+ * This allows access to the syscall arguments in registers r4-r8
-+ *
-+ *	 0(sp) - r8
-+ *	 4(sp) - r9
-+ *	 8(sp) - r10
-+ *	 C(sp) - r11
-+ *	10(sp) - r12
-+ *	14(sp) - r13
-+ *	18(sp) - r14
-+ *	1C(sp) - r15
-+ *	20(sp) - r1
-+ *	24(sp) - r2
-+ *	28(sp) - r3
-+ *	2C(sp) - r4
-+ *	30(sp) - r5
-+ *	34(sp) - r6
-+ *	38(sp) - r7
-+ *	3C(sp) - orig_r2
-+ *	40(sp) - ra
-+ *	44(sp) - fp
-+ *	48(sp) - sp
-+ *	4C(sp) - gp
-+ *	50(sp) - estatus
-+ *	54(sp) - status_extension
-+ *	58(sp) - ea
-+ *
-+ */
-+
-+/* process bits for task_struct.flags */
-+PF_TRACESYS_OFF = 3
-+PF_TRACESYS_BIT = 5
-+PF_PTRACED_OFF = 3
-+PF_PTRACED_BIT = 4
-+PF_DTRACE_OFF = 1
-+PF_DTRACE_BIT = 5
-+
-+LENOSYS = 38
-+
-+/*
-+ * This defines the normal kernel pt-regs layout.
-+ *
-+ */
-+
-+/*
-+ * Standard Nios2 interrupt entry and exit macros.
-+ * Must be called with interrupts disabled.
-+ */
-+.macro SAVE_ALL
-+	movia	r24,status_extension	// Read status extension
-+	ldw	r24,0(r24)
-+	andi	r24,r24,PS_S_ASM
-+	bne	r24,r0,1f		// In supervisor mode, already on kernel stack
-+	movia	r24,_current_thread	// Switch to current kernel stack
-+	ldw	r24,0(r24)		//  using the thread_info
-+	addi	r24,r24,THREAD_SIZE_ASM-PT_REGS_SIZE
-+	stw	sp,PT_SP(r24)		// Save user stack before changing
-+	mov	sp,r24
-+	br	2f
-+
-+1:	mov	r24,sp
-+	addi	sp,sp,-PT_REGS_SIZE	// Backup the kernel stack pointer
-+	stw	r24,PT_SP(sp)
-+2:	stw	r1,PT_R1(sp)
-+	stw	r2,PT_R2(sp)
-+	stw	r3,PT_R3(sp)
-+	stw	r4,PT_R4(sp)
-+	stw	r5,PT_R5(sp)
-+	stw	r6,PT_R6(sp)
-+	stw	r7,PT_R7(sp)
-+	stw	r8,PT_R8(sp)
-+	stw	r9,PT_R9(sp)
-+	stw	r10,PT_R10(sp)
-+	stw	r11,PT_R11(sp)
-+	stw	r12,PT_R12(sp)
-+	stw	r13,PT_R13(sp)
-+	stw	r14,PT_R14(sp)
-+	stw	r15,PT_R15(sp)
-+	stw	r2,PT_ORIG_R2(sp)
-+	stw	ra,PT_RA(sp)
-+	stw	fp,PT_FP(sp)
-+	stw	gp,PT_GP(sp)
-+	rdctl	r24,estatus
-+	stw	r24,PT_ESTATUS(sp)
-+	movia	r24,status_extension	// Read status extension
-+	ldw	r1,0(r24)
-+	stw	r1,PT_STATUS_EXTENSION(sp)	// Store user/supervisor status
-+	ORI32	r1,r1,PS_S_ASM			// Set supervisor mode
-+	stw	r1,0(r24)
-+	stw	ea,PT_EA(sp)
-+.endm
-+
-+.macro RESTORE_ALL
-+	ldw	r1,PT_STATUS_EXTENSION(sp)	// Restore user/supervisor status
-+	movia	r24,status_extension
-+	stw	r1,0(r24)
-+	ldw	r1,PT_R1(sp)		// Restore registers
-+	ldw	r2,PT_R2(sp)
-+	ldw	r3,PT_R3(sp)
-+	ldw	r4,PT_R4(sp)
-+	ldw	r5,PT_R5(sp)
-+	ldw	r6,PT_R6(sp)
-+	ldw	r7,PT_R7(sp)
-+	ldw	r8,PT_R8(sp)
-+	ldw	r9,PT_R9(sp)
-+	ldw	r10,PT_R10(sp)
-+	ldw	r11,PT_R11(sp)
-+	ldw	r12,PT_R12(sp)
-+	ldw	r13,PT_R13(sp)
-+	ldw	r14,PT_R14(sp)
-+	ldw	r15,PT_R15(sp)
-+	ldw	ra,PT_RA(sp)
-+	ldw	fp,PT_FP(sp)
-+	ldw	gp,PT_GP(sp)
-+	ldw	r24,PT_ESTATUS(sp)
-+	wrctl	estatus,r24
-+	ldw	ea,PT_EA(sp)
-+	ldw	sp,PT_SP(sp)		// Restore sp last
-+.endm
-+
-+.macro	SAVE_SWITCH_STACK
-+	addi	sp,sp,-SWITCH_STACK_SIZE
-+	stw	r16,SW_R16(sp)
-+	stw	r17,SW_R17(sp)
-+	stw	r18,SW_R18(sp)
-+	stw	r19,SW_R19(sp)
-+	stw	r20,SW_R20(sp)
-+	stw	r21,SW_R21(sp)
-+	stw	r22,SW_R22(sp)
-+	stw	r23,SW_R23(sp)
-+	stw	fp,SW_FP(sp)
-+	stw	gp,SW_GP(sp)
-+	stw	ra,SW_RA(sp)
-+.endm
-+
-+.macro	RESTORE_SWITCH_STACK
-+	ldw	r16,SW_R16(sp)
-+	ldw	r17,SW_R17(sp)
-+	ldw	r18,SW_R18(sp)
-+	ldw	r19,SW_R19(sp)
-+	ldw	r20,SW_R20(sp)
-+	ldw	r21,SW_R21(sp)
-+	ldw	r22,SW_R22(sp)
-+	ldw	r23,SW_R23(sp)
-+	ldw	fp,SW_FP(sp)
-+	ldw	gp,SW_GP(sp)
-+	ldw	ra,SW_RA(sp)
-+	addi	sp,sp,SWITCH_STACK_SIZE
-+.endm
-+
-+#endif /* __ASSEMBLY__ */
-+#endif /* __NIOS2NOMMU_ENTRY_H */
---- linux/include/asm-nios2nommu/errno.h
-+++ linux/include/asm-nios2nommu/errno.h
-@@ -0,0 +1,6 @@
-+#ifndef _NIOS2NOMMU_ERRNO_H
-+#define _NIOS2NOMMU_ERRNO_H
-+
-+#include <asm-generic/errno.h>
-+
-+#endif /* _NIOS2NOMMU_ERRNO_H */
---- linux/include/asm-nios2nommu/fcntl.h
-+++ linux/include/asm-nios2nommu/fcntl.h
-@@ -0,0 +1,110 @@
-+/*
-+ * This file came from the m68k port.
-+ *
-+ * Copyright (C) 2004 Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+#ifndef _NIOS2_FCNTL_H
-+#define _NIOS2_FCNTL_H
-+
-+/* open/fcntl - O_SYNC is only implemented on blocks devices and on files
-+   located on an ext2 file system */
-+#define O_ACCMODE	  0003
-+#define O_RDONLY	    00
-+#define O_WRONLY	    01
-+#define O_RDWR		    02
-+#define O_CREAT		  0100	/* not fcntl */
-+#define O_EXCL		  0200	/* not fcntl */
-+#define O_NOCTTY	  0400	/* not fcntl */
-+#define O_TRUNC		 01000	/* not fcntl */
-+#define O_APPEND	 02000
-+#define O_NONBLOCK	 04000
-+#define O_NDELAY	O_NONBLOCK
-+#define O_SYNC		010000
-+#define FASYNC		020000	/* fcntl, for BSD compatibility */
-+#define O_DIRECTORY	040000	/* must be a directory */
-+#define O_NOFOLLOW	0100000	/* don't follow links */
-+#define O_DIRECT	0200000	/* direct disk access hint - currently ignored */
-+#define O_LARGEFILE	0400000
-+#define O_NOATIME	01000000
-+
-+#define F_DUPFD		0	/* dup */
-+#define F_GETFD		1	/* get close_on_exec */
-+#define F_SETFD		2	/* set/clear close_on_exec */
-+#define F_GETFL		3	/* get file->f_flags */
-+#define F_SETFL		4	/* set file->f_flags */
-+#define F_GETLK		5
-+#define F_SETLK		6
-+#define F_SETLKW	7
-+
-+#define F_SETOWN	8	/*  for sockets. */
-+#define F_GETOWN	9	/*  for sockets. */
-+#define F_SETSIG	10	/*  for sockets. */
-+#define F_GETSIG	11	/*  for sockets. */
-+
-+#define F_GETLK64	12	/*  using 'struct flock64' */
-+#define F_SETLK64	13
-+#define F_SETLKW64	14
-+
-+/* for F_[GET|SET]FL */
-+#define FD_CLOEXEC	1	/* actually anything with low bit set goes */
-+
-+/* for posix fcntl() and lockf() */
-+#define F_RDLCK		0
-+#define F_WRLCK		1
-+#define F_UNLCK		2
-+
-+/* for old implementation of bsd flock () */
-+#define F_EXLCK		4	/* or 3 */
-+#define F_SHLCK		8	/* or 4 */
-+
-+/* for leases */
-+#define F_INPROGRESS	16
-+
-+/* operations for bsd flock(), also used by the kernel implementation */
-+#define LOCK_SH		1	/* shared lock */
-+#define LOCK_EX		2	/* exclusive lock */
-+#define LOCK_NB		4	/* or'd with one of the above to prevent
-+				   blocking */
-+#define LOCK_UN		8	/* remove lock */
-+
-+#define LOCK_MAND	32	/* This is a mandatory flock */
-+#define LOCK_READ	64	/* ... Which allows concurrent read operations */
-+#define LOCK_WRITE	128	/* ... Which allows concurrent write operations */
-+#define LOCK_RW		192	/* ... Which allows concurrent read & write ops */
-+
-+struct flock {
-+	short l_type;
-+	short l_whence;
-+	off_t l_start;
-+	off_t l_len;
-+	pid_t l_pid;
-+};
-+
-+struct flock64 {
-+	short  l_type;
-+	short  l_whence;
-+	loff_t l_start;
-+	loff_t l_len;
-+	pid_t  l_pid;
-+};
-+
-+#define F_LINUX_SPECIFIC_BASE	1024
-+#endif /* _NIOS2_FCNTL_H */
---- linux/include/asm-nios2nommu/flat.h
-+++ linux/include/asm-nios2nommu/flat.h
-@@ -0,0 +1,126 @@
-+/*
-+ * include/asm-nios2nommu/flat.h -- uClinux bFLT relocations
-+ *
-+ *  Copyright (C) 2004,05  Microtronix Datacom Ltd
-+ *
-+ * This file is subject to the terms and conditions of the GNU General
-+ * Public License.  See the file COPYING in the main directory of this
-+ * archive for more details.
-+ *
-+ * Written by Wentao Xu <wentao@microtronix.com>
-+ */
-+
-+#ifndef __NIOS2_FLAT_H__
-+#define __NIOS2_FLAT_H__
-+
-+#define	flat_reloc_valid(reloc, size)	((reloc) <= (size + 0x8000))
-+
-+/* The stack is 64-bit aligned for Nios II, so (sp - 1) shall
-+ * be 64-bit aligned, where -1 is for argc
-+ */
-+#define	flat_stack_align(sp)		(sp = (unsigned long *)(((unsigned long)sp - 1) & (-8)))
-+
-+/* The uClibc port for Nios II expects the argc is followed by argv and envp */
-+#define	flat_argvp_envp_on_stack()	1
-+
-+#define	flat_old_ram_flag(flags)	(flags)
-+
-+/* We store the type of relocation in the top 4 bits of the `relval.' */
-+
-+/* Convert a relocation entry into an address.  */
-+static inline unsigned long
-+flat_get_relocate_addr (unsigned long relval)
-+{
-+	return relval & 0x0fffffff; /* Mask out top 4-bits */
-+}
-+
-+#define FLAT_NIOS2_RELOC_TYPE(relval) ((relval) >> 28)
-+
-+#define FLAT_NIOS2_R_32			0 /* Normal 32-bit reloc */
-+#define FLAT_NIOS2_R_HI_LO		1 /* High 16-bits + low 16-bits field */
-+#define FLAT_NIOS2_R_HIADJ_LO	2 /* High 16-bits adjust + low 16-bits field */
-+#define FLAT_NIOS2_R_CALL26		4 /* Call imm26 */
-+
-+/* Extract the address to be relocated from the symbol reference at rp;
-+ * relval is the raw relocation-table entry from which RP is derived.
-+ * rp shall always be 32-bit aligned
-+ */
-+static inline unsigned long flat_get_addr_from_rp (unsigned long *rp,
-+						   unsigned long relval,
-+						   unsigned long flags)
-+{
-+	switch (FLAT_NIOS2_RELOC_TYPE(relval))
-+	{
-+	case FLAT_NIOS2_R_32:
-+		/* Simple 32-bit address. The loader expect it in bigger endian */
-+		return htonl(*rp);
-+
-+	case FLAT_NIOS2_R_HI_LO:
-+		/* get the two 16-bit immediate value from instructions, then
-+		 * construct a 32-bit value. Again the loader expect bigger endian
-+		 */
-+		return htonl ((((rp[0] >> 6) & 0xFFFF) << 16 ) | 
-+					  ((rp[1] >> 6) & 0xFFFF));
-+
-+	case FLAT_NIOS2_R_HIADJ_LO:
-+		{
-+		/* get the two 16-bit immediate value from instructions, then
-+		 * construct a 32-bit value. Again the loader expect bigger endian
-+		 */
-+		 unsigned int low, high;
-+		 high = (rp[0] >> 6) & 0xFFFF;
-+		 low  = (rp[1] >> 6) & 0xFFFF;
-+		 
-+		 if ((low >> 15) & 1) high--;
-+		 
-+		 return htonl ((high << 16 ) | low );
-+		}
-+	case FLAT_NIOS2_R_CALL26:
-+		/* the 26-bit immediate value is actually 28-bit */
-+		return htonl(((*rp) >> 6) << 2);
-+
-+	default:
-+		return ~0;	/* bogus value */
-+	}
-+}
-+
-+/* Insert the address addr into the symbol reference at rp;
-+ * relval is the raw relocation-table entry from which rp is derived.
-+ * rp shall always be 32-bit aligned
-+ */
-+static inline void flat_put_addr_at_rp (unsigned long *rp, unsigned long addr,
-+					unsigned long relval)
-+{
-+	unsigned long exist_val;
-+	switch (FLAT_NIOS2_RELOC_TYPE (relval)) {
-+	case FLAT_NIOS2_R_32:
-+		/* Simple 32-bit address.  */
-+		*rp = addr;
-+		break;
-+
-+	case FLAT_NIOS2_R_HI_LO:
-+		exist_val = rp[0];
-+		rp[0] = ((((exist_val >> 22) << 16) | (addr >> 16)) << 6) | (exist_val & 0x3F);
-+		exist_val = rp[1];
-+		rp[1] = ((((exist_val >> 22) << 16) | (addr & 0xFFFF)) << 6) | (exist_val & 0x3F);
-+		break;
-+
-+	case FLAT_NIOS2_R_HIADJ_LO:
-+		{
-+		unsigned int high = (addr >> 16);
-+		if ((addr >> 15) & 1) 
-+			high = (high + 1) & 0xFFFF;
-+		exist_val = rp[0];
-+		rp[0] = ((((exist_val >> 22) << 16) | high) << 6) | (exist_val & 0x3F);
-+		exist_val = rp[1];
-+		rp[1] = ((((exist_val >> 22) << 16) | (addr & 0xFFFF)) << 6) | (exist_val & 0x3F);
-+		break;
-+		}
-+	case FLAT_NIOS2_R_CALL26:
-+		/* the opcode of CALL is 0, so just store the value */
-+		*rp = ((addr >> 2) << 6);
-+		break;
-+	}
-+}
-+
-+#endif /* __NIOS2_FLAT_H__ */
---- linux/include/asm-nios2nommu/hardirq.h
-+++ linux/include/asm-nios2nommu/hardirq.h
-@@ -0,0 +1,53 @@
-+/*
-+ * Ported from m68knommu
-+ *
-+ * Copyright (C) 2003, Microtronix Datacom Ltd.
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+#ifndef __NIOS2_HARDIRQ_H
-+#define __NIOS2_HARDIRQ_H
-+
-+// #include <linux/config.h>
-+#include <linux/cache.h>
-+#include <linux/threads.h>
-+
-+typedef struct {
-+	unsigned int __softirq_pending;
-+} ____cacheline_aligned irq_cpustat_t;
-+
-+#include <linux/irq_cpustat.h>	/* Standard mappings for irq_cpustat_t above */
-+
-+#define HARDIRQ_BITS	8
-+
-+/*
-+ * The hardirq mask has to be large enough to have
-+ * space for potentially all IRQ sources in the system
-+ * nesting on a single CPU:
-+ */
-+#if (1 << HARDIRQ_BITS) < NR_IRQS
-+# error HARDIRQ_BITS is too low!
-+#endif
-+
-+#ifdef CONFIG_SMP
-+# error nios2nommu SMP is not available
-+#endif /* CONFIG_SMP */
-+
-+#endif /* __NIOS2_HARDIRQ_H */
---- linux/include/asm-nios2nommu/hdreg.h
-+++ linux/include/asm-nios2nommu/hdreg.h
-@@ -0,0 +1,30 @@
-+/*
-+ *  Copyright (C) 1994-1996  Linus Torvalds & authors
-+ *  Copyright (C) 2002  Wentau Xu (www.microtronix.com)
-+ *  copyright (C) 2004  Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef __NIOS2_HDREG_H
-+#define __NIOS2_HDREG_H
-+
-+typedef unsigned long ide_ioreg_t;
-+
-+#endif /* __NIOS2_HDREG_H */
---- linux/include/asm-nios2nommu/hw_irq.h
-+++ linux/include/asm-nios2nommu/hw_irq.h
-@@ -0,0 +1,16 @@
-+#ifndef _ASM_HW_IRQ_H
-+#define _ASM_HW_IRQ_H
-+
-+/*
-+ *	linux/include/asm/hw_irq.h
-+ *
-+ *	(C) 1992, 1993 Linus Torvalds, (C) 1997 Ingo Molnar
-+ *
-+ *	moved some of the old arch/i386/kernel/irq.h to here. VY
-+ *
-+ *	IRQ/IPI changes taken from work by Thomas Radke
-+ *	<tomsoft@informatik.tu-chemnitz.de>
-+ */
-+
-+
-+#endif /* _ASM_HW_IRQ_H */
---- linux/include/asm-nios2nommu/ide.h
-+++ linux/include/asm-nios2nommu/ide.h
-@@ -0,0 +1,47 @@
-+/*
-+ *  linux/include/asm-niosnommu2/ide.h
-+ *
-+ *  Copyright (C) 1994-1996  Linus Torvalds & authors
-+ *  Copyright (C) 2004	     Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef __ASMNIOS2_IDE_H
-+#define __ASMNIOS2_IDE_H
-+
-+#ifdef __KERNEL__
-+#undef MAX_HWIFS		/* we're going to force it */
-+
-+#ifndef MAX_HWIFS
-+#define MAX_HWIFS	1
-+#endif
-+
-+#define IDE_ARCH_OBSOLETE_INIT
-+#define IDE_ARCH_OBSOLETE_DEFAULTS
-+#define ide_default_io_base(i)		((unsigned long)na_ide_ide)
-+#define ide_default_irq(b)			(na_ide_ide_irq)
-+#define ide_init_default_irq(base)	ide_default_irq(base)
-+#define ide_default_io_ctl(base)	((base) + (0xE*4))
-+
-+#include <asm-generic/ide_iops.h>
-+
-+#endif /* __KERNEL__ */
-+
-+#endif /* __ASMNIOS2_IDE_H */
---- linux/include/asm-nios2nommu/init.h
-+++ linux/include/asm-nios2nommu/init.h
-@@ -0,0 +1,22 @@
-+/*
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+#error "<asm/init.h> should never be used - use <linux/init.h> instead"
---- linux/include/asm-nios2nommu/ioctl.h
-+++ linux/include/asm-nios2nommu/ioctl.h
-@@ -0,0 +1,100 @@
-+/* $Id: ioctl.h,v 1.3 2004/02/12 23:06:40 ken-h Exp $
-+ *
-+ * linux/ioctl.h for Linux by H.H. Bergman.
-+ *
-+ * Copyright (C) 2004,  Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef _NIOS2_IOCTL_H
-+#define _NIOS2_IOCTL_H
-+
-+/* ioctl command encoding: 32 bits total, command in lower 16 bits,
-+ * size of the parameter structure in the lower 14 bits of the
-+ * upper 16 bits.
-+ * Encoding the size of the parameter structure in the ioctl request
-+ * is useful for catching programs compiled with old versions
-+ * and to avoid overwriting user space outside the user buffer area.
-+ * The highest 2 bits are reserved for indicating the ``access mode''.
-+ * NOTE: This limits the max parameter size to 16kB -1 !
-+ */
-+
-+/*
-+ * I don't really have any idea about what this should look like, so
-+ * for the time being, this is heavily based on the PC definitions.
-+ */
-+
-+/*
-+ * The following is for compatibility across the various Linux
-+ * platforms.  The i386 ioctl numbering scheme doesn't really enforce
-+ * a type field.  De facto, however, the top 8 bits of the lower 16
-+ * bits are indeed used as a type field, so we might just as well make
-+ * this explicit here.  Please be sure to use the decoding macros
-+ * below from now on.
-+ */
-+#define _IOC_NRBITS	8
-+#define _IOC_TYPEBITS	8
-+#define _IOC_SIZEBITS	14
-+#define _IOC_DIRBITS	2
-+
-+#define _IOC_NRMASK	((1 << _IOC_NRBITS)-1)
-+#define _IOC_TYPEMASK	((1 << _IOC_TYPEBITS)-1)
-+#define _IOC_SIZEMASK	((1 << _IOC_SIZEBITS)-1)
-+#define _IOC_DIRMASK	((1 << _IOC_DIRBITS)-1)
-+
-+#define _IOC_NRSHIFT	0
-+#define _IOC_TYPESHIFT	(_IOC_NRSHIFT+_IOC_NRBITS)
-+#define _IOC_SIZESHIFT	(_IOC_TYPESHIFT+_IOC_TYPEBITS)
-+#define _IOC_DIRSHIFT	(_IOC_SIZESHIFT+_IOC_SIZEBITS)
-+
-+/*
-+ * Direction bits.
-+ */
-+#define _IOC_NONE	0U
-+#define _IOC_WRITE	1U
-+#define _IOC_READ	2U
-+
-+#define _IOC(dir,type,nr,size) \
-+	(((dir)  << _IOC_DIRSHIFT) | \
-+	 ((type) << _IOC_TYPESHIFT) | \
-+	 ((nr)   << _IOC_NRSHIFT) | \
-+	 ((size) << _IOC_SIZESHIFT))
-+
-+/* used to create numbers */
-+#define _IO(type,nr)		_IOC(_IOC_NONE,(type),(nr),0)
-+#define _IOR(type,nr,size)	_IOC(_IOC_READ,(type),(nr),sizeof(size))
-+#define _IOW(type,nr,size)	_IOC(_IOC_WRITE,(type),(nr),sizeof(size))
-+#define _IOWR(type,nr,size)	_IOC(_IOC_READ|_IOC_WRITE,(type),(nr),sizeof(size))
-+
-+/* used to decode ioctl numbers.. */
-+#define _IOC_DIR(nr)		(((nr) >> _IOC_DIRSHIFT) & _IOC_DIRMASK)
-+#define _IOC_TYPE(nr)		(((nr) >> _IOC_TYPESHIFT) & _IOC_TYPEMASK)
-+#define _IOC_NR(nr)		(((nr) >> _IOC_NRSHIFT) & _IOC_NRMASK)
-+#define _IOC_SIZE(nr)		(((nr) >> _IOC_SIZESHIFT) & _IOC_SIZEMASK)
-+
-+/* ...and for the drivers/sound files... */
-+
-+#define IOC_IN		(_IOC_WRITE << _IOC_DIRSHIFT)
-+#define IOC_OUT		(_IOC_READ << _IOC_DIRSHIFT)
-+#define IOC_INOUT	((_IOC_WRITE|_IOC_READ) << _IOC_DIRSHIFT)
-+#define IOCSIZE_MASK	(_IOC_SIZEMASK << _IOC_SIZESHIFT)
-+#define IOCSIZE_SHIFT	(_IOC_SIZESHIFT)
-+
-+#endif /* _NIOS2_IOCTL_H */
---- linux/include/asm-nios2nommu/ioctls.h
-+++ linux/include/asm-nios2nommu/ioctls.h
-@@ -0,0 +1,103 @@
-+/*
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef __ARCH_NIOS2_IOCTLS_H__
-+#define __ARCH_NIOS2_IOCTLS_H__
-+
-+#include <asm/ioctl.h>
-+
-+/* 0x54 is just a magic number to make these relatively unique ('T') */
-+
-+#define TCGETS		0x5401
-+#define TCSETS		0x5402
-+#define TCSETSW		0x5403
-+#define TCSETSF		0x5404
-+#define TCGETA		0x5405
-+#define TCSETA		0x5406
-+#define TCSETAW		0x5407
-+#define TCSETAF		0x5408
-+#define TCSBRK		0x5409
-+#define TCXONC		0x540A
-+#define TCFLSH		0x540B
-+#define TIOCEXCL	0x540C
-+#define TIOCNXCL	0x540D
-+#define TIOCSCTTY	0x540E
-+#define TIOCGPGRP	0x540F
-+#define TIOCSPGRP	0x5410
-+#define TIOCOUTQ	0x5411
-+#define TIOCSTI		0x5412
-+#define TIOCGWINSZ	0x5413
-+#define TIOCSWINSZ	0x5414
-+#define TIOCMGET	0x5415
-+#define TIOCMBIS	0x5416
-+#define TIOCMBIC	0x5417
-+#define TIOCMSET	0x5418
-+#define TIOCGSOFTCAR	0x5419
-+#define TIOCSSOFTCAR	0x541A
-+#define FIONREAD	0x541B
-+#define TIOCINQ		FIONREAD
-+#define TIOCLINUX	0x541C
-+#define TIOCCONS	0x541D
-+#define TIOCGSERIAL	0x541E
-+#define TIOCSSERIAL	0x541F
-+#define TIOCPKT		0x5420
-+#define FIONBIO		0x5421
-+#define TIOCNOTTY	0x5422
-+#define TIOCSETD	0x5423
-+#define TIOCGETD	0x5424
-+#define TCSBRKP		0x5425	/* Needed for POSIX tcsendbreak() */
-+#define TIOCTTYGSTRUCT	0x5426  /* For debugging only */
-+#define TIOCSBRK	0x5427  /* BSD compatibility */
-+#define TIOCCBRK	0x5428  /* BSD compatibility */
-+#define TIOCGSID	0x5429  /* Return the session ID of FD */
-+#define TIOCGPTN	_IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
-+#define TIOCSPTLCK	_IOW('T',0x31, int)  /* Lock/unlock Pty */
-+
-+#define FIONCLEX	0x5450  /* these numbers need to be adjusted. */
-+#define FIOCLEX		0x5451
-+#define FIOASYNC	0x5452
-+#define TIOCSERCONFIG	0x5453
-+#define TIOCSERGWILD	0x5454
-+#define TIOCSERSWILD	0x5455
-+#define TIOCGLCKTRMIOS	0x5456
-+#define TIOCSLCKTRMIOS	0x5457
-+#define TIOCSERGSTRUCT	0x5458 /* For debugging only */
-+#define TIOCSERGETLSR   0x5459 /* Get line status register */
-+#define TIOCSERGETMULTI 0x545A /* Get multiport config  */
-+#define TIOCSERSETMULTI 0x545B /* Set multiport config */
-+
-+#define TIOCMIWAIT	0x545C	/* wait for a change on serial input line(s) */
-+#define TIOCGICOUNT	0x545D	/* read serial port inline interrupt counts */
-+#define FIOQSIZE	0x545E
-+
-+/* Used for packet mode */
-+#define TIOCPKT_DATA		 0
-+#define TIOCPKT_FLUSHREAD	 1
-+#define TIOCPKT_FLUSHWRITE	 2
-+#define TIOCPKT_STOP		 4
-+#define TIOCPKT_START		 8
-+#define TIOCPKT_NOSTOP		16
-+#define TIOCPKT_DOSTOP		32
-+
-+#define TIOCSER_TEMT    0x01	/* Transmitter physically empty */
-+
-+#endif /* __ARCH_NIOS2_IOCTLS_H__ */
---- linux/include/asm-nios2nommu/io.h
-+++ linux/include/asm-nios2nommu/io.h
-@@ -0,0 +1,240 @@
-+/*
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef __NIOS2_IO_H
-+#define __NIOS2_IO_H
-+
-+#ifdef __KERNEL__
-+
-+#include <linux/kernel.h>
-+
-+#include <asm/page.h>      /* IO address mapping routines need this */
-+#include <asm/system.h>
-+#include <asm/unaligned.h>
-+
-+extern void insw(unsigned long port, void *dst, unsigned long count);
-+extern void outsw(unsigned long port, void *src, unsigned long count);
-+extern void insl(unsigned long port, void *dst, unsigned long count);
-+extern void outsl(unsigned long port, void *src, unsigned long count);
-+
-+
-+/*
-+ * readX/writeX() are used to access memory mapped devices. On some
-+ * architectures the memory mapped IO stuff needs to be accessed
-+ * differently. On the Nios architecture, we just read/write the
-+ * memory location directly.
-+ */
-+
-+#define readb(addr) 	\
-+({						\
-+	unsigned char __res;\
-+	__asm__ __volatile__( \
-+		"ldbuio %0, 0(%1)" \
-+		: "=r"(__res)	\
-+		: "r" (addr));	\
-+	__res;				\
-+})
-+
-+#define readw(addr) 	\
-+({						\
-+	unsigned short __res;\
-+	__asm__ __volatile__( \
-+		"ldhuio %0, 0(%1)" \
-+		: "=r"(__res)	\
-+		: "r" (addr));	\
-+	__res;				\
-+})
-+
-+#define readl(addr) 	\
-+({						\
-+	unsigned int __res;\
-+	__asm__ __volatile__( \
-+		"ldwio %0, 0(%1)" \
-+		: "=r"(__res)	\
-+		: "r" (addr));	\
-+	__res;				\
-+})
-+
-+#define writeb(b,addr)	\
-+({						\
-+	__asm__ __volatile__( \
-+		"stbio %0, 0(%1)" \
-+		: : "r"(b), "r" (addr));	\
-+})
-+
-+#define writew(b,addr)	\
-+({						\
-+	__asm__ __volatile__( \
-+		"sthio %0, 0(%1)" \
-+		: : "r"(b), "r" (addr));	\
-+})
-+
-+#define writel(b,addr)	\
-+({						\
-+	__asm__ __volatile__( \
-+		"stwio %0, 0(%1)" \
-+		: : "r"(b), "r" (addr));	\
-+})
-+
-+#define __raw_readb readb
-+#define __raw_readw readw
-+#define __raw_readl readl
-+#define __raw_writeb writeb
-+#define __raw_writew writew
-+#define __raw_writel writel
-+
-+#define mmiowb()
-+
-+/*
-+ *	make the short names macros so specific devices
-+ *	can override them as required
-+ */
-+
-+#define memset_io(addr,c,len)	memset((void *)(((unsigned int)(addr)) | 0x80000000),(c),(len))
-+#define memcpy_fromio(to,from,len)	memcpy((to),(void *)(((unsigned int)(from)) | 0x80000000),(len))
-+#define memcpy_toio(to,from,len)	memcpy((void *)(((unsigned int)(to)) | 0x80000000),(from),(len))
-+
-+#define inb(addr)    readb(addr)
-+#define inw(addr)    readw(addr)
-+#define inl(addr)    readl(addr)
-+
-+#define outb(x,addr) ((void) writeb(x,addr))
-+#define outw(x,addr) ((void) writew(x,addr))
-+#define outl(x,addr) ((void) writel(x,addr))
-+
-+#define inb_p(addr)    inb(addr)
-+#define inw_p(addr)    inw(addr)
-+#define inl_p(addr)    inl(addr)
-+
-+#define outb_p(x,addr) outb(x,addr)
-+#define outw_p(x,addr) outw(x,addr)
-+#define outl_p(x,addr) outl(x,addr)
-+
-+
-+
-+extern inline void insb(unsigned long port, void *dst, unsigned long count)
-+{
-+	unsigned char *p=(unsigned char*)dst;
-+	while (count--)
-+		*p++ = inb(port);
-+}
-+
-+/* See arch/niosnommu/io.c for optimized version */
-+extern inline void _insw(unsigned long port, void *dst, unsigned long count)
-+{
-+	unsigned short *p=(unsigned short*)dst;
-+	while (count--)
-+		*p++ = inw(port);
-+}
-+
-+/* See arch/niosnommu/kernel/io.c for unaligned destination pointer */
-+extern inline void _insl(unsigned long port, void *dst, unsigned long count)
-+{
-+	unsigned long *p=(unsigned long*)dst;
-+	while (count--)
-+		*p++ = inl(port);
-+}
-+
-+extern inline void outsb(unsigned long port, void *src, unsigned long count)
-+{
-+	unsigned char *p=(unsigned char*)src;
-+	while (count--) 
-+        outb( *p++, port );
-+}
-+
-+/* See arch/niosnommu/io.c for optimized version */
-+extern inline void _outsw(unsigned long port, void *src, unsigned long count)
-+{
-+	unsigned short *p=(unsigned short*)src;
-+	while (count--) 
-+        outw( *p++, port );
-+}
-+
-+/* See arch/niosnommu/kernel/io.c for unaligned source pointer */
-+extern inline void _outsl(unsigned long port, void *src, unsigned long count)
-+{
-+	unsigned long *p=(unsigned long*)src;
-+	while (count--) 
-+        outl( *p++, port );
-+}
-+
-+
-+
-+extern inline void mapioaddr(unsigned long physaddr, unsigned long virt_addr,
-+			     int bus, int rdonly)
-+{
-+	return;
-+}
-+
-+//vic - copied from m68knommu
-+
-+/* Values for nocacheflag and cmode */
-+#define IOMAP_FULL_CACHING		0
-+#define IOMAP_NOCACHE_SER		1
-+#define IOMAP_NOCACHE_NONSER		2
-+#define IOMAP_WRITETHROUGH		3
-+
-+extern void *__ioremap(unsigned long physaddr, unsigned long size, int cacheflag);
-+extern void __iounmap(void *addr, unsigned long size);
-+
-+extern inline void *ioremap(unsigned long physaddr, unsigned long size)
-+{
-+	return __ioremap(physaddr, size, IOMAP_NOCACHE_SER);
-+}
-+extern inline void *ioremap_nocache(unsigned long physaddr, unsigned long size)
-+{
-+	return __ioremap(physaddr, size, IOMAP_NOCACHE_SER);
-+}
-+extern inline void *ioremap_writethrough(unsigned long physaddr, unsigned long size)
-+{
-+	return __ioremap(physaddr, size, IOMAP_WRITETHROUGH);
-+}
-+extern inline void *ioremap_fullcache(unsigned long physaddr, unsigned long size)
-+{
-+	return __ioremap(physaddr, size, IOMAP_FULL_CACHING);
-+}
-+
-+extern void iounmap(void *addr);
-+
-+
-+#define IO_SPACE_LIMIT 0xffffffff
-+
-+#define dma_cache_inv(_start,_size)		do { } while (0)
-+#define dma_cache_wback(_start,_size)		do { } while (0)
-+#define dma_cache_wback_inv(_start,_size)	do { } while (0)
-+
-+/* Pages to physical address... */
-+#define page_to_phys(page)      ((page - mem_map) << PAGE_SHIFT)
-+#define page_to_bus(page)       ((page - mem_map) << PAGE_SHIFT)
-+
-+#define mm_ptov(vaddr)		((void *) (vaddr))
-+#define mm_vtop(vaddr)		((unsigned long) (vaddr))
-+#define phys_to_virt(vaddr)	((void *) (vaddr))
-+#define virt_to_phys(vaddr)	((unsigned long) (vaddr))
-+
-+#define virt_to_bus virt_to_phys
-+#define bus_to_virt phys_to_virt
-+
-+#endif /* __KERNEL__ */
-+
-+#endif /* !(__NIOS2_IO_H) */
-+
---- linux/include/asm-nios2nommu/ipcbuf.h
-+++ linux/include/asm-nios2nommu/ipcbuf.h
-@@ -0,0 +1,49 @@
-+#ifndef __NIOS2_IPCBUF_H__
-+#define __NIOS2_IPCBUF_H__
-+
-+/* Copied from asm-m68k/ipcbuf.h
-+ * The user_ipc_perm structure for Nios architecture.
-+ * Note extra padding because this structure is passed back and forth
-+ * between kernel and user space.
-+ *
-+ * Pad space is left for:
-+ * - 32-bit mode_t and seq
-+ * - 2 miscellaneous 32-bit values
-+ * 
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+struct ipc64_perm
-+{
-+	__kernel_key_t		key;
-+	__kernel_uid32_t	uid;
-+	__kernel_gid32_t	gid;
-+	__kernel_uid32_t	cuid;
-+	__kernel_gid32_t	cgid;
-+	__kernel_mode_t		mode;
-+	unsigned short		__pad1;
-+	unsigned short		seq;
-+	unsigned short		__pad2;
-+	unsigned long		__unused1;
-+	unsigned long		__unused2;
-+};
-+
-+#endif /* __NIOS2_IPCBUF_H__ */
---- linux/include/asm-nios2nommu/ipc.h
-+++ linux/include/asm-nios2nommu/ipc.h
-@@ -0,0 +1,51 @@
-+#ifndef __NIOS2_IPC_H__
-+#define __NIOS2_IPC_H__
-+
-+/* Copied from sparc version
-+ * These are used to wrap system calls on the Nios.
-+ *
-+ * See arch/niosnommu/kernel/sys_nios.c for ugly details..
-+ *
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+struct ipc_kludge {
-+	struct msgbuf *msgp;
-+	long msgtyp;
-+};
-+
-+#define SEMOP		 1
-+#define SEMGET		 2
-+#define SEMCTL		 3
-+#define MSGSND		11
-+#define MSGRCV		12
-+#define MSGGET		13
-+#define MSGCTL		14
-+#define SHMAT		21
-+#define SHMDT		22
-+#define SHMGET		23
-+#define SHMCTL		24
-+
-+/* Used by the DIPC package, try and avoid reusing it */
-+#define DIPC            25
-+
-+#define IPCCALL(version,op)	((version)<<16 | (op))
-+
-+#endif
---- linux/include/asm-nios2nommu/irq.h
-+++ linux/include/asm-nios2nommu/irq.h
-@@ -0,0 +1,182 @@
-+/*
-+ * 21Mar2001    1.1    dgt/microtronix
-+ *
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+
-+#ifndef _NIOS2NOMMU_IRQ_H_
-+#define _NIOS2NOMMU_IRQ_H_
-+
-+extern void disable_irq(unsigned int);
-+extern void enable_irq(unsigned int);
-+
-+// #include <linux/config.h>
-+#include <linux/interrupt.h>
-+
-+#define	SYS_IRQS	32
-+#define	NR_IRQS		SYS_IRQS
-+
-+/*
-+ * Interrupt source definitions
-+ * General interrupt sources are the level 1-7.
-+ * Adding an interrupt service routine for one of these sources
-+ * results in the addition of that routine to a chain of routines.
-+ * Each one is called in succession.  Each individual interrupt
-+ * service routine should determine if the device associated with
-+ * that routine requires service.
-+ */
-+
-+#define IRQ01		(1)	/* level 1  interrupt */
-+#define IRQ02		(2)	/* level 2  interrupt */
-+#define IRQ03		(3)	/* level 3  interrupt */
-+#define IRQ04		(4)	/* level 4  interrupt */
-+#define IRQ05		(5)	/* level 5  interrupt */
-+#define IRQ06		(6)	/* level 6  interrupt */
-+#define IRQ07		(7)	/* level 7  interrupt */
-+#define IRQ08		(8)	/* level 8  interrupt */
-+#define IRQ09		(9)	/* level 9  interrupt */
-+#define IRQ0A		(10)	/* level 10 interrupt */
-+#define IRQ0B		(11)	/* level 11 interrupt */
-+#define IRQ0C		(12)	/* level 12 interrupt */
-+#define IRQ0D		(13)	/* level 13 interrupt */
-+#define IRQ0E		(14)	/* level 14 interrupt */
-+#define IRQ0F		(15)	/* level 15 interrupt */
-+#define IRQ10		(16)	/* level 16 interrupt */
-+#define IRQ12		(17)	/* level 17 interrupt */
-+#define IRQ13		(18)	/* level 18 interrupt */
-+#define IRQ14		(19)	/* level 19 interrupt */
-+#define IRQ15		(20)	/* level 20 interrupt */
-+#define IRQ16		(21)	/* level 21 interrupt */
-+#define IRQ17		(22)	/* level 22 interrupt */
-+#define IRQ18		(23)	/* level 23 interrupt */
-+#define IRQ19		(24)	/* level 24 interrupt */
-+#define IRQ1A		(25)	/* level 25 interrupt */
-+#define IRQ1B		(26)	/* level 26 interrupt */
-+#define IRQ1C		(27)	/* level 27 interrupt */
-+#define IRQ1D		(28)	/* level 28 interrupt */
-+#define IRQ1E		(29)	/* level 29 interrupt */
-+#define IRQ1F		(30)	/* level 30 interrupt */
-+#define IRQ20		(31)	/* level 31 interrupt */
-+#define IRQ21		(32)	/* level 32 interrupt */
-+
-+#define IRQMAX		IRQ21
-+
-+/*
-+ * "Generic" interrupt sources
-+ */
-+
-+/*
-+ * Machine specific interrupt sources.
-+ *
-+ * Adding an interrupt service routine for a source with this bit
-+ * set indicates a special machine specific interrupt source.
-+ * The machine specific files define these sources.
-+ *
-+ * Removed, they are not used by any one.
-+ */
-+
-+/*
-+ * various flags for request_irq()
-+ */
-+#define IRQ_FLG_LOCK	(0x0001)	/* handler is not replaceable	*/
-+#define IRQ_FLG_REPLACE	(0x0002)	/* replace existing handler	*/
-+#define IRQ_FLG_FAST	(0x0004)
-+#define IRQ_FLG_SLOW	(0x0008)
-+#define IRQ_FLG_STD	(0x8000)	/* internally used		*/
-+
-+/*
-+ * Functions to set and clear the interrupt mask.
-+ */
-+
-+/*
-+ * Use a zero to clean the bit.
-+ */
-+static inline void clrimr(int mask)
-+{
-+	int flags;
-+
-+	local_irq_save(flags);
-+	__asm__ __volatile__(
-+	"rdctl	r8, ienable\n"
-+	"and	r8,r8,%0\n"
-+	"wrctl	ienable, r8\n"
-+	: /* No output */
-+	: "r" (mask)
-+	: "r8");
-+	local_irq_restore(flags);
-+}
-+
-+/*
-+ * Use a one to set the bit.
-+ */
-+static inline void setimr(int mask)
-+{
-+	int flags;
-+
-+	local_irq_save(flags);
-+	__asm__ __volatile__(
-+	"rdctl	r8, ienable\n"
-+	"or	r8,r8,%0\n"
-+	"wrctl	ienable, r8\n"
-+	: /* No output */
-+	: "r" (mask)
-+	: "r8");
-+	local_irq_restore(flags);
-+}
-+
-+/*
-+ * This structure is used to chain together the ISRs for a particular
-+ * interrupt source (if it supports chaining).
-+ */
-+typedef struct irq_node {
-+	irqreturn_t	(*handler)(int, void *, struct pt_regs *);
-+	unsigned long	flags;
-+	void		*dev_id;
-+	const char	*devname;
-+	struct irq_node *next;
-+} irq_node_t;
-+
-+/*
-+ * This function returns a new irq_node_t
-+ */
-+extern irq_node_t *new_irq_node(void);
-+
-+/*
-+ * This structure has only 4 elements for speed reasons
-+ */
-+typedef struct irq_handler {
-+	irqreturn_t	(*handler)(int, void *, struct pt_regs *);
-+	unsigned long	flags;
-+	void		*dev_id;
-+	const char	*devname;
-+} irq_handler_t;
-+
-+/* count of spurious interrupts */
-+extern volatile unsigned int num_spurious;
-+
-+#define disable_irq_nosync(i) disable_irq(i)
-+
-+#ifndef irq_canonicalize
-+#define irq_canonicalize(i)	(i)
-+#endif
-+
-+#endif /* _NIOS2NOMMU_IRQ_H_ */
---- linux/include/asm-nios2nommu/kmap_types.h
-+++ linux/include/asm-nios2nommu/kmap_types.h
-@@ -0,0 +1,43 @@
-+/*
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef _ASM_KMAP_TYPES_H
-+#define _ASM_KMAP_TYPES_H
-+
-+enum km_type {
-+	KM_BOUNCE_READ,
-+	KM_SKB_SUNRPC_DATA,
-+	KM_SKB_DATA_SOFTIRQ,
-+	KM_USER0,
-+	KM_USER1,
-+	KM_BIO_SRC_IRQ,
-+	KM_BIO_DST_IRQ,
-+	KM_PTE0,
-+	KM_PTE1,
-+	KM_IRQ0,
-+	KM_IRQ1,
-+	KM_SOFTIRQ0,
-+	KM_SOFTIRQ1,
-+	KM_TYPE_NR
-+};
-+
-+#endif
---- linux/include/asm-nios2nommu/linkage.h
-+++ linux/include/asm-nios2nommu/linkage.h
-@@ -0,0 +1,29 @@
-+/*
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef __ASM_LINKAGE_H
-+#define __ASM_LINKAGE_H
-+
-+#define __ALIGN .align 3
-+#define __ALIGN_STR ".align 3"
-+
-+#endif
---- linux/include/asm-nios2nommu/linux_logo.h
-+++ linux/include/asm-nios2nommu/linux_logo.h
-@@ -0,0 +1,953 @@
-+/* $Id: linux_logo.h,v 1.3 2004/02/12 23:06:40 ken-h Exp $
-+ * include/asm-nios/linux_logo.h: This is a linux logo
-+ *                                 to be displayed on boot.
-+ *
-+ * Copyright (C) 1996 Larry Ewing (lewing@isc.tamu.edu)
-+ * Copyright (C) 1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
-+ * Copyright (C) 2004 Micrtronix Datacom Ltd.
-+ *
-+ * You can put anything here, but:
-+ * LINUX_LOGO_COLORS has to be less than 224
-+ * image size has to be 80x80
-+ * values have to start from 0x20
-+ * (i.e. RGB(linux_logo_red[0],
-+ *	     linux_logo_green[0],
-+ *	     linux_logo_blue[0]) is color 0x20)
-+ * BW image has to be 80x80 as well, with MS bit
-+ * on the left
-+ * Serial_console ascii image can be any size,
-+ * but should contain %s to display the version
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+ 
-+#include <linux/init.h>
-+#include <linux/version.h>
-+
-+#define linux_logo_banner "Linux/NIOS2 version " UTS_RELEASE
-+
-+#define __HAVE_ARCH_LINUX_LOGO
-+#define __HAVE_ARCH_LINUX_LOGO16
-+
-+#define LINUX_LOGO_COLORS	221
-+
-+#ifdef INCLUDE_LINUX_LOGO_DATA
-+
-+unsigned char linux_logo_red[] __initdata = {
-+    0x00, 0x06, 0x0a, 0x0e, 0x16, 0x1a, 0x1e, 0x22,
-+    0x12, 0x00, 0x2a, 0x36, 0x42, 0x4e, 0x4a, 0x56,
-+    0x26, 0x46, 0x2e, 0x32, 0x52, 0x3a, 0x02, 0x65,
-+    0x5e, 0x3e, 0x74, 0x8a, 0xa2, 0x9a, 0x86, 0xc6,
-+    0xc3, 0x65, 0xbb, 0xd2, 0xda, 0xd6, 0xe2, 0xf6,
-+    0xfd, 0xae, 0x7b, 0xdd, 0xea, 0x6a, 0xaa, 0xe7,
-+    0xbe, 0x5a, 0xee, 0x9e, 0x95, 0x80, 0x76, 0x79,
-+    0x62, 0x36, 0x9a, 0xe2, 0xec, 0xe1, 0xb8, 0xd7,
-+    0xaf, 0x25, 0xbc, 0xc0, 0xef, 0xea, 0xe8, 0xe8,
-+    0xf5, 0xf1, 0xda, 0xd3, 0x79, 0xdb, 0xf4, 0xf6,
-+    0xf6, 0xf6, 0xe2, 0x3d, 0xb4, 0xce, 0xe6, 0xee,
-+    0xf6, 0x68, 0xd8, 0xec, 0xf5, 0xc6, 0xc8, 0x9c,
-+    0x89, 0xd2, 0xee, 0xcb, 0xb9, 0xd2, 0x66, 0x5e,
-+    0x8b, 0xbe, 0xa8, 0xd5, 0xca, 0xb6, 0xae, 0x9c,
-+    0xc5, 0xbe, 0xbe, 0xca, 0x90, 0xb2, 0x9a, 0xa8,
-+    0xb6, 0xf2, 0xce, 0xfa, 0xb2, 0x6e, 0xa6, 0xfe,
-+    0xf6, 0xec, 0xfe, 0xd2, 0xea, 0xf5, 0xf2, 0xf2,
-+    0xe9, 0xee, 0xf6, 0xf2, 0xee, 0xf6, 0xda, 0xd4,
-+    0xfa, 0xca, 0xf2, 0xf6, 0xfe, 0xf2, 0xda, 0xe4,
-+    0xf6, 0xdd, 0xf2, 0xee, 0xfa, 0xf0, 0x12, 0x4a,
-+    0xd6, 0xf2, 0x8e, 0xf2, 0xf6, 0xf6, 0xb5, 0xf1,
-+    0x26, 0x9a, 0xea, 0xf6, 0xe0, 0xd2, 0x16, 0x9a,
-+    0x2e, 0xd2, 0x70, 0xd6, 0x46, 0x7c, 0xb4, 0x62,
-+    0xda, 0xee, 0xd6, 0xa3, 0x74, 0xa7, 0xa2, 0xe0,
-+    0xae, 0xbe, 0xce, 0xe2, 0xa3, 0x8e, 0x6d, 0x8e,
-+    0x32, 0xaf, 0x50, 0x9e, 0x5b, 0x8a, 0x98, 0x82,
-+    0x7a, 0x82, 0x56, 0x7c, 0x8a, 0x56, 0x5e, 0x86,
-+    0x6a, 0x52, 0x59, 0x64, 0x5e,
-+};
-+
-+unsigned char linux_logo_green[] __initdata = {
-+    0x00, 0x06, 0x0a, 0x0e, 0x16, 0x1a, 0x1e, 0x22,
-+    0x12, 0x00, 0x2a, 0x36, 0x42, 0x4e, 0x4a, 0x56,
-+    0x26, 0x46, 0x2e, 0x32, 0x52, 0x3a, 0x02, 0x65,
-+    0x5e, 0x3e, 0x74, 0x8a, 0xa2, 0x9a, 0x86, 0xc6,
-+    0xc3, 0x62, 0xbb, 0xd2, 0xda, 0xd6, 0xe2, 0xf6,
-+    0xfd, 0xae, 0x7b, 0xdd, 0xea, 0x6a, 0xaa, 0xe7,
-+    0xbe, 0x5a, 0xee, 0x9e, 0x95, 0x80, 0x62, 0x5c,
-+    0x4e, 0x26, 0x72, 0xaa, 0xba, 0xaf, 0x90, 0xae,
-+    0x92, 0x1a, 0xa4, 0x85, 0xb6, 0xbe, 0xc3, 0xc8,
-+    0xcf, 0xd0, 0xc2, 0xce, 0x57, 0xa2, 0xd6, 0xda,
-+    0xda, 0xd7, 0xb8, 0x2a, 0x7b, 0x91, 0xae, 0xca,
-+    0xda, 0x45, 0x9e, 0xb2, 0xd7, 0x9b, 0x90, 0x76,
-+    0x5c, 0xa2, 0xbe, 0xa6, 0x85, 0x96, 0x4e, 0x46,
-+    0x66, 0x92, 0x7a, 0x9a, 0x96, 0x9d, 0x9a, 0x6b,
-+    0x8a, 0x8e, 0xb2, 0xca, 0x90, 0xa6, 0x79, 0x7c,
-+    0xb6, 0xf2, 0xce, 0xfa, 0xb2, 0x6e, 0xa6, 0xfa,
-+    0xea, 0xd7, 0xf6, 0xbc, 0xda, 0xde, 0xda, 0xe6,
-+    0xca, 0xd8, 0xea, 0xe0, 0xcc, 0xf2, 0xce, 0xb2,
-+    0xee, 0xa2, 0xd6, 0xe6, 0xf6, 0xd7, 0xc5, 0xb8,
-+    0xc6, 0xb9, 0xce, 0xde, 0xce, 0xc6, 0x0e, 0x36,
-+    0xae, 0xbe, 0x86, 0xba, 0xbe, 0xe6, 0x8e, 0xc4,
-+    0x1e, 0x8e, 0xae, 0xba, 0xb2, 0xa6, 0x12, 0x7a,
-+    0x20, 0xc6, 0x64, 0xaa, 0x2f, 0x70, 0x85, 0x46,
-+    0xce, 0xd6, 0xa6, 0x6e, 0x51, 0x72, 0x92, 0xa6,
-+    0x87, 0x96, 0xa2, 0xd6, 0x85, 0x7a, 0x6a, 0x6e,
-+    0x22, 0x76, 0x36, 0x76, 0x3c, 0x6e, 0x63, 0x53,
-+    0x66, 0x62, 0x42, 0x50, 0x56, 0x42, 0x56, 0x56,
-+    0x56, 0x3e, 0x51, 0x52, 0x56,
-+};
-+
-+unsigned char linux_logo_blue[] __initdata = {
-+    0x00, 0x06, 0x0a, 0x0e, 0x16, 0x1a, 0x1e, 0x22,
-+    0x12, 0x01, 0x2a, 0x36, 0x42, 0x4e, 0x4a, 0x56,
-+    0x26, 0x46, 0x2e, 0x32, 0x52, 0x3a, 0x06, 0x65,
-+    0x5e, 0x3e, 0x74, 0x8a, 0xa2, 0x9a, 0x86, 0xc6,
-+    0xc3, 0x59, 0xbb, 0xd2, 0xda, 0xd6, 0xe2, 0xf6,
-+    0xfd, 0xae, 0x7b, 0xdd, 0xea, 0x6a, 0xaa, 0xe7,
-+    0xbe, 0x5a, 0xee, 0x9e, 0x95, 0x80, 0x2e, 0x08,
-+    0x0a, 0x06, 0x0a, 0x0b, 0x0b, 0x0f, 0x0c, 0x0f,
-+    0x3d, 0x09, 0x73, 0x09, 0x0d, 0x0a, 0x10, 0x1e,
-+    0x2d, 0x13, 0x86, 0xba, 0x19, 0x0a, 0x36, 0x3c,
-+    0x26, 0x14, 0x0d, 0x06, 0x07, 0x0a, 0x0b, 0x0f,
-+    0x4a, 0x06, 0x0a, 0x0c, 0x2b, 0x0a, 0x0b, 0x0a,
-+    0x06, 0x0a, 0x0a, 0x11, 0x0b, 0x0a, 0x0a, 0x1e,
-+    0x0f, 0x0d, 0x0a, 0x0b, 0x22, 0x6a, 0x72, 0x0b,
-+    0x0b, 0x22, 0x90, 0xca, 0x90, 0x92, 0x3c, 0x2c,
-+    0xb6, 0xf2, 0xce, 0xfa, 0xb2, 0x6e, 0xa6, 0xea,
-+    0xb6, 0x7c, 0xda, 0x8e, 0xa6, 0x87, 0x66, 0xb6,
-+    0x81, 0x6a, 0xc6, 0x9a, 0x5b, 0xd2, 0xb6, 0x6a,
-+    0xca, 0x45, 0x92, 0xb2, 0xca, 0x52, 0x8a, 0x3e,
-+    0x2e, 0x66, 0x66, 0xae, 0x3e, 0x47, 0x06, 0x0e,
-+    0x52, 0x36, 0x6a, 0x0e, 0x0e, 0xbe, 0x2c, 0x0e,
-+    0x0a, 0x5a, 0x0d, 0x0e, 0x3e, 0x0a, 0x06, 0x2e,
-+    0x06, 0x9e, 0x4e, 0x36, 0x06, 0x58, 0x24, 0x06,
-+    0x9e, 0xae, 0x3a, 0x08, 0x08, 0x07, 0x5e, 0x0a,
-+    0x32, 0x2e, 0x2a, 0xb2, 0x43, 0x48, 0x5f, 0x2e,
-+    0x06, 0x06, 0x07, 0x24, 0x06, 0x32, 0x06, 0x06,
-+    0x46, 0x2e, 0x22, 0x06, 0x06, 0x1e, 0x4c, 0x06,
-+    0x3a, 0x22, 0x42, 0x34, 0x42,
-+};
-+
-+unsigned char linux_logo[] __initdata = {
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x22, 0x22,
-+    0x22, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
-+    0x26, 0x26, 0x25, 0x28, 0x23, 0x22, 0x21, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x29, 0x29, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x21, 0x23, 0x25, 0x2a, 0x2b, 0x2c, 0x2d, 0x2d,
-+    0x2d, 0x2e, 0x2c, 0x2b, 0x2a, 0x25, 0x28, 0x22,
-+    0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x29, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22,
-+    0x24, 0x2a, 0x2c, 0x2f, 0x2c, 0x30, 0x30, 0x24,
-+    0x25, 0x27, 0x2b, 0x2c, 0x2f, 0x31, 0x32, 0x25,
-+    0x23, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x29, 0x29, 0x29, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x25,
-+    0x33, 0x34, 0x35, 0x21, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x21, 0x2b, 0x2f, 0x2c,
-+    0x30, 0x28, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x24, 0x33,
-+    0x2d, 0x27, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x21, 0x31,
-+    0x2d, 0x32, 0x24, 0x21, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x29, 0x29, 0x29, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x21, 0x28, 0x2a, 0x34,
-+    0x25, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x23, 0x32, 0x27, 0x21, 0x36,
-+    0x2a, 0x2d, 0x2a, 0x28, 0x21, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x29, 0x20, 0x29, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x22, 0x26, 0x2c, 0x35,
-+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x25, 0x2f, 0x37, 0x32, 0x22,
-+    0x36, 0x35, 0x31, 0x27, 0x22, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x29, 0x29, 0x29, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x23, 0x2a, 0x2f, 0x22,
-+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x26, 0x38, 0x38, 0x35, 0x25,
-+    0x36, 0x21, 0x2d, 0x2b, 0x24, 0x21, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x21, 0x24, 0x39, 0x39, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x25, 0x2b, 0x30, 0x28, 0x22,
-+    0x36, 0x36, 0x27, 0x34, 0x30, 0x23, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x29, 0x29, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x21, 0x26, 0x2d, 0x26, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x22, 0x22, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x2d, 0x33, 0x28, 0x21, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x29, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x22, 0x30, 0x2f, 0x23, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x2b, 0x2c, 0x25, 0x21, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x29, 0x29, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x23, 0x2a, 0x34, 0x36, 0x36,
-+    0x36, 0x21, 0x22, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x21, 0x23, 0x22, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x28, 0x34, 0x27, 0x22, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x29, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x23, 0x32, 0x2f, 0x36, 0x36,
-+    0x21, 0x21, 0x24, 0x27, 0x21, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x28, 0x27, 0x22, 0x33, 0x24, 0x36,
-+    0x36, 0x36, 0x36, 0x22, 0x2f, 0x2a, 0x23, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x29, 0x29, 0x29, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x23, 0x32, 0x2f, 0x36, 0x36,
-+    0x30, 0x3a, 0x38, 0x24, 0x24, 0x36, 0x36, 0x36,
-+    0x23, 0x2f, 0x3b, 0x3c, 0x3d, 0x30, 0x25, 0x21,
-+    0x36, 0x36, 0x36, 0x36, 0x2f, 0x32, 0x23, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x23, 0x32, 0x2f, 0x36, 0x23,
-+    0x3e, 0x3f, 0x40, 0x3a, 0x22, 0x36, 0x36, 0x21,
-+    0x41, 0x42, 0x43, 0x44, 0x45, 0x3e, 0x23, 0x21,
-+    0x36, 0x36, 0x36, 0x36, 0x2f, 0x33, 0x28, 0x21,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x29, 0x20, 0x29, 0x29, 0x29, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x23, 0x32, 0x2f, 0x36, 0x2b,
-+    0x44, 0x40, 0x46, 0x47, 0x35, 0x36, 0x36, 0x26,
-+    0x43, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x2e, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x31, 0x35, 0x24, 0x21,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x23, 0x32, 0x34, 0x36, 0x4d,
-+    0x4e, 0x25, 0x2f, 0x46, 0x4a, 0x22, 0x23, 0x32,
-+    0x4f, 0x50, 0x21, 0x31, 0x51, 0x52, 0x53, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x31, 0x35, 0x24, 0x21,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x29, 0x20, 0x29, 0x29, 0x29, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x23, 0x2a, 0x2f, 0x21, 0x3a,
-+    0x4d, 0x21, 0x31, 0x54, 0x55, 0x28, 0x30, 0x2b,
-+    0x4b, 0x4d, 0x36, 0x23, 0x32, 0x50, 0x3f, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x2e, 0x39, 0x24, 0x21,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x29, 0x20, 0x29, 0x20, 0x29, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x23, 0x2a, 0x38, 0x23, 0x37,
-+    0x55, 0x36, 0x28, 0x3a, 0x56, 0x57, 0x57, 0x58,
-+    0x3c, 0x4d, 0x36, 0x36, 0x36, 0x40, 0x40, 0x21,
-+    0x36, 0x36, 0x36, 0x36, 0x2e, 0x39, 0x24, 0x21,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x29, 0x29, 0x29, 0x20, 0x29, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x22, 0x30, 0x51, 0x23, 0x35,
-+    0x43, 0x25, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e,
-+    0x5f, 0x60, 0x61, 0x36, 0x31, 0x47, 0x3b, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x31, 0x2c, 0x25, 0x21,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x22, 0x30, 0x2f, 0x23, 0x22,
-+    0x40, 0x62, 0x63, 0x5d, 0x64, 0x65, 0x66, 0x67,
-+    0x68, 0x69, 0x66, 0x5e, 0x6a, 0x6b, 0x2a, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x33, 0x2e, 0x26, 0x21,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x22, 0x27, 0x2f, 0x23, 0x36,
-+    0x6c, 0x63, 0x6d, 0x64, 0x5c, 0x66, 0x69, 0x6e,
-+    0x6f, 0x70, 0x71, 0x69, 0x69, 0x72, 0x6c, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x33, 0x34, 0x27, 0x22,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x22, 0x27, 0x34, 0x26, 0x73,
-+    0x74, 0x75, 0x76, 0x64, 0x65, 0x77, 0x69, 0x78,
-+    0x70, 0x71, 0x71, 0x71, 0x72, 0x5f, 0x5e, 0x21,
-+    0x36, 0x36, 0x36, 0x36, 0x25, 0x38, 0x2a, 0x23,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x22, 0x26, 0x2d, 0x33, 0x79,
-+    0x63, 0x7a, 0x7b, 0x5c, 0x66, 0x69, 0x6e, 0x7c,
-+    0x71, 0x71, 0x69, 0x7d, 0x7e, 0x7a, 0x7f, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x21, 0x51, 0x2b, 0x28,
-+    0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x22, 0x26, 0x2d, 0x32, 0x24,
-+    0x80, 0x81, 0x64, 0x82, 0x77, 0x69, 0x71, 0x71,
-+    0x69, 0x83, 0x84, 0x85, 0x7a, 0x85, 0x86, 0x36,
-+    0x21, 0x2b, 0x23, 0x36, 0x36, 0x39, 0x2e, 0x26,
-+    0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x22, 0x27, 0x2d, 0x33, 0x21,
-+    0x87, 0x88, 0x89, 0x72, 0x67, 0x66, 0x5f, 0x89,
-+    0x8a, 0x63, 0x85, 0x8b, 0x8c, 0x8d, 0x41, 0x36,
-+    0x36, 0x2d, 0x3a, 0x35, 0x36, 0x24, 0x51, 0x32,
-+    0x28, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x22, 0x30, 0x2f, 0x33, 0x21,
-+    0x55, 0x8e, 0x8f, 0x8a, 0x7d, 0x5e, 0x90, 0x7e,
-+    0x75, 0x75, 0x90, 0x62, 0x40, 0x3f, 0x49, 0x23,
-+    0x36, 0x24, 0x3a, 0x3a, 0x24, 0x36, 0x2e, 0x31,
-+    0x26, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x21, 0x28, 0x33, 0x37, 0x25, 0x22,
-+    0x3b, 0x50, 0x8e, 0x8f, 0x90, 0x7e, 0x90, 0x63,
-+    0x74, 0x91, 0x92, 0x42, 0x93, 0x4b, 0x45, 0x2c,
-+    0x36, 0x36, 0x33, 0x39, 0x21, 0x36, 0x22, 0x51,
-+    0x33, 0x28, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x22, 0x27, 0x2e, 0x2e, 0x36, 0x21,
-+    0x94, 0x3f, 0x50, 0x95, 0x96, 0x8f, 0x8f, 0x97,
-+    0x8e, 0x42, 0x50, 0x43, 0x47, 0x48, 0x48, 0x98,
-+    0x21, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x39,
-+    0x2e, 0x27, 0x23, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x22, 0x24, 0x2b, 0x38, 0x28, 0x36, 0x32,
-+    0x4c, 0x4b, 0x50, 0x50, 0x50, 0x42, 0x42, 0x50,
-+    0x50, 0x40, 0x45, 0x99, 0x48, 0x48, 0x48, 0x48,
-+    0x34, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x23,
-+    0x2f, 0x2b, 0x24, 0x21, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x21, 0x28, 0x32, 0x51, 0x32, 0x28, 0x21, 0x98,
-+    0x48, 0x47, 0x9a, 0x50, 0x50, 0x50, 0x50, 0x50,
-+    0x9a, 0x4f, 0x9b, 0x48, 0x48, 0x48, 0x48, 0x48,
-+    0x93, 0x23, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x2a, 0x2f, 0x2a, 0x28, 0x21, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
-+    0x23, 0x30, 0x2e, 0x2c, 0x36, 0x21, 0x51, 0x9b,
-+    0x48, 0x48, 0x52, 0x3f, 0x50, 0x50, 0x40, 0x4b,
-+    0x47, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
-+    0x48, 0x34, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x2d, 0x31, 0x27, 0x23, 0x21, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x23,
-+    0x27, 0x2c, 0x2d, 0x21, 0x36, 0x28, 0x44, 0x48,
-+    0x48, 0x48, 0x48, 0x47, 0x46, 0x4f, 0x47, 0x48,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
-+    0x48, 0x9c, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x28, 0x51, 0x39, 0x26, 0x22, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x25,
-+    0x35, 0x51, 0x28, 0x36, 0x36, 0x9d, 0x48, 0x48,
-+    0x48, 0x48, 0x48, 0x48, 0x9b, 0x48, 0x48, 0x48,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
-+    0x48, 0x4f, 0x28, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x28, 0x38, 0x2b, 0x25, 0x22, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x24, 0x33,
-+    0x51, 0x25, 0x36, 0x36, 0x23, 0x40, 0x9b, 0x48,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
-+    0x9b, 0x99, 0x2b, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x30, 0x2f, 0x33, 0x24, 0x21,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x21, 0x23, 0x30, 0x34,
-+    0x27, 0x36, 0x36, 0x36, 0x2a, 0x40, 0x47, 0x48,
-+    0x48, 0x48, 0x48, 0x9b, 0x99, 0x99, 0x9b, 0x48,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x9b, 0x47, 0x52,
-+    0x46, 0x4f, 0x37, 0x21, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x30, 0x34, 0x2a, 0x23,
-+    0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x22, 0x25, 0x39, 0x2c,
-+    0x36, 0x36, 0x36, 0x21, 0x31, 0x4e, 0x9a, 0x4c,
-+    0x47, 0x9b, 0x9b, 0x52, 0x46, 0x4f, 0x52, 0x9b,
-+    0x9b, 0x9b, 0x47, 0x4f, 0x45, 0x9a, 0x93, 0x93,
-+    0x3f, 0x93, 0x98, 0x28, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x36, 0x39, 0x2c, 0x26,
-+    0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x23, 0x2a, 0x34, 0x28,
-+    0x36, 0x36, 0x36, 0x22, 0x38, 0x98, 0x44, 0x99,
-+    0x9b, 0x48, 0x48, 0x9b, 0x4c, 0x48, 0x48, 0x48,
-+    0x48, 0x48, 0x48, 0x47, 0x52, 0x46, 0x43, 0x93,
-+    0x40, 0x40, 0x43, 0x53, 0x21, 0x23, 0x33, 0x23,
-+    0x36, 0x36, 0x36, 0x36, 0x36, 0x21, 0x2f, 0x32,
-+    0x28, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x21, 0x24, 0x2b, 0x31, 0x36,
-+    0x36, 0x22, 0x36, 0x24, 0x9e, 0x4f, 0x9b, 0x48,
-+    0x48, 0x48, 0x48, 0x9b, 0x99, 0x9f, 0x52, 0x48,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x47,
-+    0x4f, 0x9a, 0x3f, 0x46, 0x38, 0x36, 0x21, 0x30,
-+    0x26, 0x36, 0x36, 0x36, 0x36, 0x36, 0x39, 0x2c,
-+    0x25, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x22, 0x26, 0x2e, 0x33, 0x36,
-+    0x25, 0x25, 0x36, 0x4d, 0x52, 0x48, 0x48, 0x48,
-+    0x47, 0x9f, 0x48, 0x48, 0x48, 0xa0, 0xa1, 0xa2,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
-+    0x48, 0x47, 0x44, 0x93, 0x43, 0x23, 0x36, 0x36,
-+    0x26, 0x24, 0x36, 0x36, 0x36, 0x36, 0x28, 0x2f,
-+    0x2a, 0x23, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x23, 0x2a, 0x51, 0x24, 0x36,
-+    0x2a, 0x36, 0x28, 0x44, 0x48, 0x48, 0x48, 0x48,
-+    0xa3, 0xa4, 0x48, 0x48, 0x9f, 0xa5, 0xa6, 0x9f,
-+    0x48, 0x48, 0x48, 0xa2, 0xa7, 0x47, 0x48, 0x48,
-+    0x48, 0x48, 0x9b, 0x4b, 0x44, 0x37, 0x36, 0x23,
-+    0x28, 0x30, 0x22, 0x36, 0x36, 0x36, 0x36, 0x2d,
-+    0x35, 0x24, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x21, 0x28, 0x2b, 0x34, 0x36, 0x25,
-+    0x24, 0x36, 0x4a, 0x48, 0x48, 0x48, 0x48, 0x48,
-+    0xa8, 0xa1, 0x48, 0x48, 0x9f, 0xa9, 0xa6, 0x9f,
-+    0x48, 0x48, 0xaa, 0xa1, 0xa5, 0x9f, 0x48, 0x48,
-+    0x48, 0x48, 0x48, 0x9b, 0x52, 0x3f, 0x21, 0x30,
-+    0x35, 0x25, 0x30, 0x36, 0x36, 0x36, 0x36, 0x32,
-+    0x2d, 0x26, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x22, 0x26, 0x2e, 0x35, 0x36, 0x2a,
-+    0x36, 0x24, 0x4f, 0x48, 0x52, 0x52, 0x48, 0x48,
-+    0xab, 0xac, 0xa0, 0x48, 0xad, 0xa6, 0xa6, 0x9f,
-+    0x48, 0xa2, 0xa9, 0xa6, 0xa2, 0x48, 0x48, 0x48,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x47, 0x32, 0x30,
-+    0x2a, 0x23, 0x30, 0x23, 0x36, 0x36, 0x36, 0x21,
-+    0x2f, 0x32, 0x23, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x21, 0x23, 0x2a, 0x51, 0x28, 0x28, 0x25,
-+    0x36, 0x3a, 0x48, 0x48, 0xae, 0xaf, 0x48, 0x48,
-+    0xad, 0xac, 0xa1, 0x9f, 0xa2, 0xa9, 0xa9, 0xa2,
-+    0x48, 0xab, 0x78, 0xa7, 0x48, 0x48, 0x48, 0x48,
-+    0x9f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x38, 0x21,
-+    0x36, 0x36, 0x22, 0x27, 0x36, 0x36, 0x36, 0x36,
-+    0x2e, 0x35, 0x24, 0x21, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x22, 0x25, 0x2c, 0x34, 0x36, 0x30, 0x21,
-+    0x23, 0x43, 0x48, 0x48, 0xb0, 0xb1, 0xb2, 0x9f,
-+    0x48, 0xb3, 0xa5, 0xb3, 0xab, 0xa9, 0xa9, 0xb3,
-+    0xb4, 0xa9, 0xb5, 0xb0, 0x48, 0x48, 0xa0, 0xa5,
-+    0xa1, 0xad, 0x48, 0x48, 0x48, 0x48, 0x94, 0x36,
-+    0x36, 0x36, 0x36, 0x32, 0x36, 0x36, 0x36, 0x36,
-+    0x2a, 0x2e, 0x26, 0x22, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x21, 0x23, 0x2a, 0x51, 0x25, 0x21, 0x2a, 0x36,
-+    0x2e, 0x9b, 0x48, 0x48, 0x48, 0xb6, 0xb7, 0xa4,
-+    0xa2, 0xa7, 0xb5, 0x78, 0x6f, 0x6f, 0x6e, 0x6f,
-+    0xa9, 0xb5, 0xab, 0x48, 0x9f, 0xab, 0xa9, 0xa1,
-+    0xaa, 0x48, 0x48, 0x48, 0x48, 0x48, 0x98, 0x36,
-+    0x36, 0x36, 0x36, 0x32, 0x36, 0x36, 0x36, 0x36,
-+    0x22, 0x2f, 0x30, 0x22, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x22, 0x25, 0x2c, 0x34, 0x36, 0x24, 0x28, 0x36,
-+    0x54, 0x48, 0x48, 0x48, 0x48, 0xa2, 0xa8, 0xa1,
-+    0xa5, 0xa6, 0x6e, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f,
-+    0x6f, 0x78, 0xa5, 0xa0, 0xa0, 0x78, 0xa6, 0xa2,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x9a, 0x36,
-+    0x36, 0x36, 0x36, 0x30, 0x36, 0x36, 0x36, 0x36,
-+    0x21, 0x2f, 0x32, 0x23, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
-+    0x28, 0x32, 0x2f, 0x28, 0x36, 0x27, 0x22, 0x21,
-+    0x43, 0x48, 0x4b, 0xa2, 0x9f, 0x48, 0xa2, 0xa1,
-+    0xb8, 0x6e, 0x6e, 0xb5, 0x78, 0x6f, 0x78, 0x78,
-+    0x6e, 0x6f, 0x78, 0xb5, 0xa6, 0xa1, 0xa0, 0x48,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x4b, 0x21,
-+    0x36, 0x36, 0x21, 0x26, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x34, 0x2b, 0x28, 0x21, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22,
-+    0x25, 0x2c, 0x39, 0x36, 0x36, 0x30, 0x22, 0x25,
-+    0x52, 0x48, 0xa3, 0xb1, 0xb6, 0xb3, 0xaa, 0xac,
-+    0x68, 0x68, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f,
-+    0x78, 0x6f, 0x6f, 0xb5, 0xa6, 0xb4, 0x48, 0x9f,
-+    0xb4, 0xb4, 0xa2, 0x9f, 0x48, 0x48, 0x4f, 0x21,
-+    0x36, 0x36, 0x22, 0x26, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x2c, 0x35, 0x24, 0x21, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22,
-+    0x30, 0x2d, 0x21, 0x36, 0x36, 0x32, 0x23, 0x2a,
-+    0x47, 0x48, 0xa2, 0xb6, 0xaf, 0xb9, 0xba, 0x68,
-+    0x6e, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x78,
-+    0x6f, 0x6f, 0xa6, 0x6f, 0xb5, 0xa0, 0xaa, 0xa6,
-+    0xa6, 0xa9, 0xb2, 0xb3, 0x48, 0x48, 0x4c, 0x22,
-+    0x36, 0x36, 0x24, 0x23, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x2c, 0x39, 0x24, 0x21, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x28,
-+    0x33, 0x2e, 0x36, 0x36, 0x23, 0x31, 0x27, 0x39,
-+    0x9b, 0x48, 0x48, 0x48, 0xb0, 0xb0, 0xba, 0xb8,
-+    0x68, 0x68, 0x69, 0x78, 0x6f, 0xb5, 0x6f, 0xb5,
-+    0x78, 0x78, 0x78, 0x78, 0x78, 0xa5, 0xbb, 0xa9,
-+    0xa5, 0x48, 0x48, 0x48, 0x48, 0x48, 0x4c, 0x23,
-+    0x36, 0x36, 0x26, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x2c, 0x39, 0x24, 0x21, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x28,
-+    0x2b, 0x39, 0x36, 0x36, 0x36, 0x26, 0x32, 0x31,
-+    0x9b, 0x48, 0x48, 0x48, 0x48, 0x9f, 0xac, 0x68,
-+    0xbc, 0x6e, 0x6e, 0x6e, 0xb5, 0x6f, 0x6e, 0x6f,
-+    0x6f, 0x78, 0x78, 0xb5, 0xb5, 0xa5, 0x9f, 0x9f,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x46, 0x22,
-+    0x36, 0x21, 0x26, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x2c, 0x35, 0x24, 0x21, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x24,
-+    0x35, 0x39, 0x36, 0x36, 0x36, 0x36, 0x26, 0x2d,
-+    0x9b, 0x48, 0x48, 0xb0, 0xaa, 0xb3, 0xbd, 0xb8,
-+    0xb8, 0x68, 0x6e, 0x6e, 0xb5, 0x6f, 0x78, 0x6e,
-+    0x78, 0x6f, 0x78, 0x78, 0xb5, 0xa9, 0xa2, 0x48,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x9a, 0x36,
-+    0x24, 0x27, 0xbe, 0x24, 0x25, 0x28, 0x21, 0x36,
-+    0x36, 0x34, 0x2b, 0x28, 0x21, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x25,
-+    0x39, 0x4d, 0xbf, 0x84, 0x81, 0x57, 0x21, 0x39,
-+    0x52, 0x48, 0x48, 0x62, 0xb1, 0xc0, 0xc1, 0xc1,
-+    0xb8, 0xb8, 0x68, 0xbc, 0x6e, 0x6e, 0x6e, 0x78,
-+    0x78, 0x78, 0x78, 0x6e, 0x78, 0xa9, 0xa0, 0xab,
-+    0xb3, 0xa2, 0x48, 0x48, 0x48, 0x48, 0x53, 0x28,
-+    0x23, 0x36, 0x36, 0x36, 0x21, 0x28, 0x2c, 0x30,
-+    0x21, 0x38, 0x33, 0x28, 0x21, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x21, 0x22, 0x22, 0x28, 0x30,
-+    0x2d, 0xc2, 0x7a, 0xc3, 0xc4, 0xc4, 0x7f, 0x22,
-+    0x51, 0x52, 0x48, 0x48, 0xb0, 0xaa, 0xa8, 0xbd,
-+    0x68, 0xb8, 0xb8, 0x68, 0x68, 0x6e, 0x6e, 0x6f,
-+    0x6e, 0x6e, 0xb5, 0x6e, 0x78, 0xab, 0xab, 0xb5,
-+    0x78, 0xa6, 0xb3, 0xc5, 0xac, 0xac, 0xc6, 0x61,
-+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x30, 0x32,
-+    0x25, 0x4d, 0x2b, 0x28, 0x21, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x21, 0x23, 0x24, 0x26, 0x30, 0x33, 0x31,
-+    0x4d, 0x91, 0x5b, 0xc3, 0xc4, 0xc4, 0xc4, 0x5a,
-+    0x21, 0x2e, 0x46, 0x48, 0x48, 0x48, 0xb0, 0x64,
-+    0xc1, 0xb8, 0xb8, 0xb8, 0x68, 0x71, 0x6e, 0x6e,
-+    0x6f, 0x71, 0x6f, 0x6f, 0xa6, 0xa0, 0x9f, 0xb4,
-+    0xb4, 0xa0, 0xa1, 0xb7, 0xc7, 0x69, 0x66, 0xc8,
-+    0x36, 0x36, 0x36, 0x36, 0x36, 0x21, 0x26, 0x25,
-+    0x83, 0xc9, 0x2c, 0x25, 0x21, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x21, 0x28, 0x30, 0x35, 0x2d, 0x2f, 0x37, 0x4a,
-+    0x60, 0x85, 0xca, 0xcb, 0xc4, 0xc4, 0xc4, 0x82,
-+    0x86, 0x36, 0x32, 0x3f, 0xa2, 0xa4, 0xa8, 0xa9,
-+    0xb8, 0xb8, 0xb8, 0xb8, 0x68, 0x6e, 0x6e, 0x6e,
-+    0x6e, 0x71, 0x6f, 0x71, 0xa6, 0xb4, 0x9f, 0x9f,
-+    0x48, 0x48, 0x48, 0xcc, 0xc3, 0xc7, 0xcd, 0xce,
-+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x21, 0x57,
-+    0x77, 0x66, 0x34, 0x27, 0x22, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x23, 0x30, 0x31, 0xcf, 0x91, 0x7e, 0x90, 0x90,
-+    0x8b, 0x5b, 0xc3, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0x5d, 0xd0, 0x36, 0x24, 0xd1, 0xb1, 0xaf, 0xaa,
-+    0xba, 0xb8, 0x68, 0x68, 0x68, 0x71, 0x6e, 0x6e,
-+    0x6e, 0x6f, 0x6e, 0x78, 0xa1, 0xa9, 0xa1, 0xb0,
-+    0x9f, 0x9b, 0x99, 0xcc, 0x64, 0x5c, 0x8b, 0xd0,
-+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x73, 0x5d,
-+    0x82, 0x5c, 0xd2, 0x2a, 0x23, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
-+    0x24, 0x2b, 0xcf, 0x8b, 0x5b, 0x76, 0x5b, 0x5b,
-+    0x7b, 0xc3, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc7, 0x5e, 0x22, 0x36, 0x21, 0x3a, 0x99, 0x48,
-+    0xa2, 0xa8, 0xb7, 0xc1, 0xb8, 0x68, 0x68, 0xbc,
-+    0x68, 0x6e, 0xb5, 0xb4, 0xb4, 0xab, 0xb5, 0xa1,
-+    0xb0, 0x4f, 0x3f, 0xd3, 0x7b, 0x7b, 0x85, 0x80,
-+    0xbe, 0x36, 0x36, 0x36, 0x21, 0xd4, 0x7e, 0x7b,
-+    0x64, 0x64, 0xd5, 0x35, 0x24, 0x21, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22,
-+    0x26, 0x31, 0xd6, 0x5b, 0x64, 0xc3, 0xc3, 0xcb,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0x66, 0xd7, 0x36, 0x36, 0x36, 0x2c, 0x4b,
-+    0xd8, 0xd9, 0xb3, 0xa8, 0xbd, 0xbd, 0xbd, 0xbd,
-+    0xa9, 0xab, 0xb3, 0xa5, 0xa2, 0x9f, 0xa2, 0xa1,
-+    0x6a, 0x9a, 0x3f, 0xda, 0x76, 0x76, 0x7a, 0x63,
-+    0xdb, 0xdc, 0x86, 0xdc, 0xdd, 0x90, 0x5b, 0x64,
-+    0xc3, 0xc3, 0xde, 0x2d, 0x27, 0x23, 0x21, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
-+    0x26, 0x2d, 0x91, 0x5b, 0x64, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc7, 0x83, 0xce, 0x36, 0x36, 0x36, 0x30,
-+    0xb1, 0xd9, 0x48, 0xa1, 0xb2, 0xb0, 0xb0, 0xb3,
-+    0xa2, 0x48, 0xa7, 0xbd, 0xa9, 0xa2, 0x48, 0x9f,
-+    0xaa, 0x9a, 0x3f, 0xb1, 0x5b, 0x7b, 0xdf, 0x85,
-+    0x7e, 0x90, 0x63, 0x90, 0x85, 0x5b, 0xc3, 0xc4,
-+    0xc4, 0xcb, 0x5d, 0xd5, 0x39, 0x26, 0x23, 0x21,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22,
-+    0x26, 0x2d, 0xe0, 0xdf, 0x64, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc7, 0x88, 0x36, 0x36, 0x36, 0x36,
-+    0x2d, 0x9b, 0x48, 0xb9, 0xaf, 0xa2, 0xa2, 0xb9,
-+    0xa8, 0x9f, 0x48, 0xa7, 0xb7, 0xd9, 0x48, 0x48,
-+    0x9b, 0x45, 0x3f, 0xe1, 0x6d, 0x7b, 0xca, 0xdf,
-+    0x7a, 0x8b, 0x8b, 0x7a, 0x5b, 0x64, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc3, 0xe2, 0x37, 0x35, 0x26, 0x23,
-+    0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22,
-+    0x26, 0x2e, 0xe0, 0x7a, 0x7b, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc7, 0x72, 0x73, 0x36, 0x36, 0x36,
-+    0x24, 0x52, 0x48, 0xa3, 0xaf, 0x9f, 0x48, 0xb6,
-+    0xaf, 0xa2, 0x48, 0x9f, 0xe3, 0xd8, 0x48, 0x48,
-+    0x48, 0x46, 0x42, 0xd6, 0x7a, 0x7b, 0x64, 0x7b,
-+    0x76, 0x5b, 0x5b, 0x76, 0x7b, 0xc3, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xcb, 0x64, 0xe2, 0x4d, 0x2c, 0x27,
-+    0x23, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
-+    0x25, 0x31, 0xe4, 0x8b, 0x7b, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc7, 0x89, 0xbe, 0x36, 0x36,
-+    0x32, 0x47, 0x48, 0x4f, 0xa0, 0x48, 0x48, 0xe3,
-+    0x92, 0x9f, 0x48, 0x9f, 0x48, 0x48, 0x48, 0x48,
-+    0x48, 0x4b, 0x2f, 0x8f, 0x7a, 0x7b, 0xc3, 0xcb,
-+    0xc3, 0x64, 0x64, 0xc3, 0xc3, 0xcb, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc3, 0x5d, 0xe5, 0x2c,
-+    0x26, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
-+    0x25, 0x31, 0xe4, 0x85, 0x7b, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0x66, 0x57, 0x27, 0x4d,
-+    0x4b, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
-+    0x99, 0x34, 0xbe, 0xdb, 0x7a, 0x7b, 0xc3, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc3, 0xe4,
-+    0x32, 0x28, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22,
-+    0x26, 0x2d, 0xe4, 0x85, 0x7b, 0xcb, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc7, 0x5f, 0x92, 0x48,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x44,
-+    0x35, 0x36, 0xce, 0xdd, 0x7a, 0x7b, 0xcb, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xcb, 0xc3, 0xe1,
-+    0x2b, 0x24, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x23,
-+    0x30, 0x2f, 0xd6, 0x8b, 0x7b, 0xcb, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0x66, 0x89, 0x45,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x9b, 0x4e, 0x25,
-+    0x36, 0x36, 0x61, 0xdb, 0x6d, 0x64, 0xcb, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xcb, 0x7b, 0xdf, 0xe5,
-+    0x32, 0x28, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x28,
-+    0x33, 0xe6, 0x63, 0xdf, 0xc3, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc3, 0x72, 0x81, 0xe7,
-+    0x46, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
-+    0x48, 0x48, 0x48, 0x48, 0x3f, 0x2c, 0x36, 0x36,
-+    0x36, 0x36, 0xe8, 0x8f, 0x6d, 0x64, 0xcb, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc3, 0xca, 0x8b, 0xcf, 0x2c,
-+    0x26, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x24,
-+    0x35, 0x96, 0x75, 0xca, 0xc3, 0xcb, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xcb, 0x7b, 0x81, 0xdb,
-+    0x73, 0x3b, 0x44, 0x9b, 0x48, 0x48, 0x48, 0x9b,
-+    0x99, 0x43, 0x94, 0x2c, 0x21, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x73, 0xdb, 0x7a, 0x7b, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0x64, 0x76, 0x7a, 0x91, 0xd5, 0x31, 0x30,
-+    0x28, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x24,
-+    0x39, 0x97, 0x75, 0xdf, 0x7b, 0x64, 0xc3, 0xc3,
-+    0xcb, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0x7b, 0x7a, 0xe9,
-+    0xea, 0x36, 0x21, 0x26, 0x2b, 0x39, 0x33, 0x30,
-+    0x23, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x21, 0xea, 0xdd, 0x8b, 0x7b, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc3, 0x64, 0x64,
-+    0x76, 0x85, 0xe0, 0xd5, 0x34, 0x2b, 0x27, 0x28,
-+    0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x28,
-+    0x33, 0xeb, 0x63, 0x7e, 0x7a, 0x6d, 0xdf, 0x5b,
-+    0x76, 0x7b, 0x64, 0x64, 0xc3, 0xcb, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xcb, 0x76, 0x85, 0xdb,
-+    0x79, 0x22, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x21, 0xec, 0xdd, 0x75, 0x76, 0xc3, 0xc4,
-+    0xc4, 0xc4, 0xcb, 0xc3, 0x64, 0x76, 0xdf, 0x8b,
-+    0xd6, 0xd5, 0x2f, 0x35, 0x30, 0x24, 0x22, 0x21,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x23,
-+    0x27, 0x31, 0xed, 0xeb, 0xdd, 0x74, 0x63, 0x90,
-+    0x7e, 0x75, 0x8b, 0x6d, 0xdf, 0x76, 0x64, 0xc3,
-+    0xcb, 0xcb, 0xcb, 0xcb, 0x64, 0x7a, 0x84, 0xee,
-+    0x79, 0xbe, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x21, 0xea, 0xee, 0x63, 0x6d, 0x7b, 0x64,
-+    0xcb, 0xc3, 0x64, 0x7b, 0xdf, 0x75, 0x63, 0x96,
-+    0x38, 0x39, 0x2a, 0x24, 0x23, 0x21, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
-+    0x28, 0x27, 0x35, 0x2d, 0x41, 0xd5, 0xe7, 0x8f,
-+    0xdb, 0xdd, 0xe9, 0x74, 0x84, 0x90, 0x85, 0x6d,
-+    0x5b, 0x7b, 0x7b, 0xca, 0x6d, 0x90, 0xdb, 0xef,
-+    0xec, 0x22, 0x36, 0x36, 0x28, 0x30, 0x30, 0x30,
-+    0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x25, 0x36,
-+    0x36, 0x21, 0xd4, 0x80, 0xe9, 0x7e, 0x6d, 0x76,
-+    0xca, 0x76, 0x6d, 0x85, 0x63, 0xdb, 0xd5, 0x34,
-+    0x33, 0x26, 0x23, 0x21, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x21, 0x23, 0x24, 0x27, 0x2a, 0x35, 0x2e, 0x2f,
-+    0x41, 0xf0, 0xf1, 0x6c, 0x80, 0xee, 0xdb, 0x74,
-+    0x84, 0x90, 0x75, 0x7e, 0x74, 0x8f, 0xef, 0x79,
-+    0xe8, 0x2b, 0x9d, 0x41, 0x2f, 0x34, 0x2d, 0x2d,
-+    0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x34, 0x2f, 0x38,
-+    0x4d, 0x37, 0xf2, 0xf3, 0x8f, 0x74, 0x63, 0x7e,
-+    0x75, 0x7e, 0x63, 0xe9, 0x88, 0xe6, 0x31, 0x2a,
-+    0x24, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x21, 0x22, 0x23, 0x24, 0x26, 0x30,
-+    0x33, 0x39, 0x2e, 0x51, 0x41, 0xd2, 0x6c, 0xf3,
-+    0x80, 0xee, 0xee, 0xee, 0xf4, 0xf3, 0xd7, 0xf5,
-+    0x41, 0x34, 0x35, 0x32, 0x30, 0x27, 0x27, 0x27,
-+    0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x30, 0x2a,
-+    0x2b, 0x34, 0xf6, 0xec, 0xf7, 0x8f, 0xdd, 0xe9,
-+    0xe9, 0xdd, 0xee, 0x6c, 0x41, 0x39, 0x27, 0x28,
-+    0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x22,
-+    0x28, 0x24, 0x26, 0x2a, 0x33, 0x2c, 0x2f, 0x41,
-+    0xf8, 0xd7, 0x79, 0x79, 0x79, 0xec, 0xf9, 0x51,
-+    0x39, 0x30, 0x24, 0x23, 0x22, 0x22, 0x22, 0x22,
-+    0x22, 0x22, 0x21, 0x22, 0x22, 0x22, 0x22, 0x23,
-+    0x24, 0x2a, 0x31, 0xfa, 0xea, 0x79, 0xf3, 0x80,
-+    0xf7, 0xdc, 0xfb, 0x2f, 0x35, 0x26, 0x23, 0x21,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x21, 0x22, 0x23, 0x28, 0x25, 0x30, 0x2b,
-+    0x31, 0x2f, 0xf6, 0xfa, 0xfa, 0x2f, 0x2e, 0x33,
-+    0x26, 0x23, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x21, 0x28, 0x27, 0x35, 0x34, 0xfa, 0xfa, 0xfa,
-+    0xfc, 0xf6, 0x2e, 0x33, 0x25, 0x23, 0x21, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x23, 0x28,
-+    0x26, 0x30, 0x32, 0x2b, 0x33, 0x2a, 0x26, 0x28,
-+    0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x21, 0x23, 0x25, 0x30, 0x33, 0x35, 0x35,
-+    0x2b, 0x2a, 0x26, 0x28, 0x22, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
-+    0x21, 0x22, 0x23, 0x28, 0x28, 0x23, 0x22, 0x21,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x21, 0x23, 0x28, 0x24, 0x24,
-+    0x28, 0x23, 0x22, 0x21, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+};
-+
-+unsigned char linux_logo16[1];
-+
-+#endif /* INCLUDE_LINUX_LOGO_DATA */
-+
-+#include <linux/linux_logo.h>
-+
---- linux/include/asm-nios2nommu/local.h
-+++ linux/include/asm-nios2nommu/local.h
-@@ -0,0 +1,28 @@
-+/*
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef __NIOS2NOMMU_LOCAL_H
-+#define __NIOS2NOMMU_LOCAL_H
-+
-+#include <asm-generic/local.h>
-+
-+#endif /* __NIOS2NOMMU_LOCAL_H */
---- linux/include/asm-nios2nommu/mc146818rtc.h
-+++ linux/include/asm-nios2nommu/mc146818rtc.h
-@@ -0,0 +1,29 @@
-+/*
-+ * Machine dependent access functions for RTC registers.
-+ *
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+#ifndef _NIOS2_MC146818RTC_H
-+#define _NIOS2_MC146818RTC_H
-+
-+/* empty include file to satisfy the include in genrtc.c/ide-geometry.c */
-+
-+#endif /* _NIOS2_MC146818RTC_H */
---- linux/include/asm-nios2nommu/mman.h
-+++ linux/include/asm-nios2nommu/mman.h
-@@ -0,0 +1,68 @@
-+/*
-+ * Copied from the m68k port.
-+ *
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef __NIOS2_MMAN_H__
-+#define __NIOS2_MMAN_H__
-+
-+#define PROT_READ	0x1		/* page can be read */
-+#define PROT_WRITE	0x2		/* page can be written */
-+#define PROT_EXEC	0x4		/* page can be executed */
-+#define PROT_SEM	0x8		/* page may be used for atomic ops */
-+#define PROT_NONE	0x0		/* page can not be accessed */
-+#define PROT_GROWSDOWN	0x01000000	/* mprotect flag: extend change to start of growsdown vma */
-+#define PROT_GROWSUP	0x02000000	/* mprotect flag: extend change to end of growsup vma */
-+
-+#define MAP_SHARED	0x01		/* Share changes */
-+#define MAP_PRIVATE	0x02		/* Changes are private */
-+#define MAP_TYPE	0x0f		/* Mask for type of mapping */
-+#define MAP_FIXED	0x10		/* Interpret addr exactly */
-+#define MAP_ANONYMOUS	0x20		/* don't use a file */
-+
-+#define MAP_GROWSDOWN	0x0100		/* stack-like segment */
-+#define MAP_DENYWRITE	0x0800		/* ETXTBSY */
-+#define MAP_EXECUTABLE	0x1000		/* mark it as an executable */
-+#define MAP_LOCKED	0x2000		/* pages are locked */
-+#define MAP_NORESERVE	0x4000		/* don't check for reservations */
-+#define MAP_POPULATE	0x8000		/* populate (prefault) pagetables */
-+#define MAP_NONBLOCK	0x10000		/* do not block on IO */
-+
-+#define MS_ASYNC	1		/* sync memory asynchronously */
-+#define MS_INVALIDATE	2		/* invalidate the caches */
-+#define MS_SYNC		4		/* synchronous memory sync */
-+
-+#define MCL_CURRENT	1		/* lock all current mappings */
-+#define MCL_FUTURE	2		/* lock all future mappings */
-+
-+#define MADV_NORMAL	0x0		/* default page-in behavior */
-+#define MADV_RANDOM	0x1		/* page-in minimum required */
-+#define MADV_SEQUENTIAL	0x2		/* read-ahead aggressively */
-+#define MADV_WILLNEED	0x3		/* pre-fault pages */
-+#define MADV_DONTNEED	0x4		/* discard these pages */
-+
-+/* compatibility flags */
-+#define MAP_ANON	MAP_ANONYMOUS
-+#define MAP_FILE	0
-+
-+#endif /* __NIOS2_MMAN_H__ */
-+
---- linux/include/asm-nios2nommu/mmu_context.h
-+++ linux/include/asm-nios2nommu/mmu_context.h
-@@ -0,0 +1,58 @@
-+/*
-+ *
-+ * Taken from the m68knommu.
-+ *
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef __NIOS2NOMMU_MMU_CONTEXT_H
-+#define __NIOS2NOMMU_MMU_CONTEXT_H
-+
-+#include <linux/config.h>
-+#include <asm/setup.h>
-+#include <asm/page.h>
-+#include <asm/pgalloc.h>
-+
-+static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
-+{
-+}
-+
-+extern inline int
-+init_new_context(struct task_struct *tsk, struct mm_struct *mm)
-+{
-+	// mm->context = virt_to_phys(mm->pgd);
-+	return(0);
-+}
-+
-+#define destroy_context(mm)		do { } while(0)
-+
-+static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next, struct task_struct *tsk)
-+{
-+}
-+
-+#define deactivate_mm(tsk,mm)	do { } while (0)
-+
-+extern inline void activate_mm(struct mm_struct *prev_mm,
-+			       struct mm_struct *next_mm)
-+{
-+}
-+
-+#endif
---- linux/include/asm-nios2nommu/mmu.h
-+++ linux/include/asm-nios2nommu/mmu.h
-@@ -0,0 +1,36 @@
-+/*
-+ *
-+ * Taken from the m68knommu.
-+ * 
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef __NIOS2NOMMU_MMU_H
-+#define __NIOS2NOMMU_MMU_H
-+
-+/* Copyright (C) 2002, David McCullough <davidm@snapgear.com> */
-+
-+typedef struct {
-+	struct vm_list_struct	*vmlist;
-+	unsigned long		end_brk;
-+} mm_context_t;
-+
-+#endif /* __NIOS2NOMMU_MMU_H */
---- linux/include/asm-nios2nommu/module.h
-+++ linux/include/asm-nios2nommu/module.h
-@@ -0,0 +1,36 @@
-+#ifndef _NIOS2_MODULE_H
-+#define _NIOS2_MODULE_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/module.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+struct mod_arch_specific
-+{
-+};
-+
-+#define Elf_Shdr Elf32_Shdr
-+#define Elf_Sym Elf32_Sym
-+#define Elf_Ehdr Elf32_Ehdr
-+
-+#endif /* _NIOS_MODULE_H */
---- linux/include/asm-nios2nommu/msgbuf.h
-+++ linux/include/asm-nios2nommu/msgbuf.h
-@@ -0,0 +1,56 @@
-+/*
-+ * Taken from the m68k.
-+ *
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef _NIOS2_MSGBUF_H
-+#define _NIOS2_MSGBUF_H
-+
-+/* 
-+ * The msqid64_ds structure for nios2 architecture.
-+ * Note extra padding because this structure is passed back and forth
-+ * between kernel and user space.
-+ *
-+ * Pad space is left for:
-+ * - 64-bit time_t to solve y2038 problem
-+ * - 2 miscellaneous 32-bit values
-+ */
-+
-+struct msqid64_ds {
-+	struct ipc64_perm msg_perm;
-+	__kernel_time_t msg_stime;	/* last msgsnd time */
-+	unsigned long	__unused1;
-+	__kernel_time_t msg_rtime;	/* last msgrcv time */
-+	unsigned long	__unused2;
-+	__kernel_time_t msg_ctime;	/* last change time */
-+	unsigned long	__unused3;
-+	unsigned long  msg_cbytes;	/* current number of bytes on queue */
-+	unsigned long  msg_qnum;	/* number of messages in queue */
-+	unsigned long  msg_qbytes;	/* max number of bytes on queue */
-+	__kernel_pid_t msg_lspid;	/* pid of last msgsnd */
-+	__kernel_pid_t msg_lrpid;	/* last receive pid */
-+	unsigned long  __unused4;
-+	unsigned long  __unused5;
-+};
-+
-+#endif /* _NIOS2_MSGBUF_H */
-+
---- linux/include/asm-nios2nommu/namei.h
-+++ linux/include/asm-nios2nommu/namei.h
-@@ -0,0 +1,36 @@
-+/*
-+ * linux/include/asm-nios/namei.h
-+ * Moved from m68k version
-+ * Included from linux/fs/namei.c
-+ *
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef __NIOS2_NAMEI_H
-+#define __NIOS2_NAMEI_H
-+
-+/* This dummy routine maybe changed to something useful
-+ * for /usr/gnemul/ emulation stuff.
-+ * Look at asm-sparc/namei.h for details.
-+ */
-+
-+#define __emul_prefix() NULL
-+
-+#endif
---- linux/include/asm-nios2nommu/ndma.h
-+++ linux/include/asm-nios2nommu/ndma.h
-@@ -0,0 +1,64 @@
-+#ifndef __NDMA_H__
-+  #define __NDMA_H__
-+
-+    #ifndef __ASSEMBLY__
-+
-+// DMA Registers
-+typedef volatile struct
-+{
-+  int np_dmastatus;        // status register
-+  int np_dmareadaddress;   // read address
-+  int np_dmawriteaddress;  // write address
-+  int np_dmalength;        // length in bytes
-+  int np_dmareserved1;     // reserved
-+  int np_dmareserved2;     // reserved
-+  int np_dmacontrol;       // control register
-+  int np_dmareserved3;     // control register alternate
-+} np_dma;
-+
-+// DMA Register Bits
-+enum
-+{
-+  np_dmacontrol_byte_bit  = 0, // Byte transaction
-+  np_dmacontrol_hw_bit    = 1, // Half-word transaction
-+  np_dmacontrol_word_bit  = 2, // Word transaction
-+  np_dmacontrol_go_bit    = 3, // enable execution
-+  np_dmacontrol_i_en_bit  = 4, // enable interrupt
-+  np_dmacontrol_reen_bit  = 5, // Enable read end-of-packet
-+  np_dmacontrol_ween_bit  = 6, // Enable write end-of-packet
-+  np_dmacontrol_leen_bit  = 7, // Enable length=0 transaction end
-+  np_dmacontrol_rcon_bit  = 8, // Read from a fixed address
-+  np_dmacontrol_wcon_bit  = 9, // Write to a fixed address
-+  np_dmacontrol_doubleword_bit = 10, // Double-word transaction
-+  np_dmacontrol_quadword_bit = 11, // Quad-word transaction
-+ 
-+  np_dmastatus_done_bit   = 0, // 1 when done.  Status write clears.
-+  np_dmastatus_busy_bit   = 1, // 1 when busy.
-+  np_dmastatus_reop_bit   = 2, // read-eop received
-+  np_dmastatus_weop_bit   = 3, // write-eop received
-+  np_dmastatus_len_bit    = 4, // requested length transacted
-+ 
-+  np_dmacontrol_byte_mask = (1 << 0), // Byte transaction
-+  np_dmacontrol_hw_mask   = (1 << 1), // Half-word transaction
-+  np_dmacontrol_word_mask = (1 << 2), // Word transaction
-+  np_dmacontrol_go_mask   = (1 << 3), // enable execution
-+  np_dmacontrol_i_en_mask = (1 << 4), // enable interrupt
-+  np_dmacontrol_reen_mask = (1 << 5), // Enable read end-of-packet
-+  np_dmacontrol_ween_mask = (1 << 6), // Enable write end-of-packet
-+  np_dmacontrol_leen_mask = (1 << 7), // Enable length=0 transaction end
-+  np_dmacontrol_rcon_mask = (1 << 8), // Read from a fixed address
-+  np_dmacontrol_wcon_mask = (1 << 9), // Write to a fixed address
-+  np_dmacontrol_doubleword_mask = (1 << 10), // Double-word transaction
-+  np_dmacontrol_quadword_mask = (1 << 11), // Quad-word transaction
-+ 
-+  np_dmastatus_done_mask  = (1 << 0), // 1 when done.  Status write clears.
-+  np_dmastatus_busy_mask  = (1 << 1), // 1 when busy.
-+  np_dmastatus_reop_mask  = (1 << 2), // read-eop received
-+  np_dmastatus_weop_mask  = (1 << 3), // write-eop received
-+  np_dmastatus_len_mask   = (1 << 4), // requested length transacted
-+};
-+
-+    #endif /* __ASSEMBLY__ */
-+
-+#endif
-+/* End of File */
---- linux/include/asm-nios2nommu/nios.h
-+++ linux/include/asm-nios2nommu/nios.h
-@@ -0,0 +1,7 @@
-+#ifndef __NIOS_H__
-+#define __NIOS_H__
-+
-+#include "nios2_system.h"
-+
-+#endif
-+
---- linux/include/asm-nios2nommu/page.h
-+++ linux/include/asm-nios2nommu/page.h
-@@ -0,0 +1,135 @@
-+/*
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef _NIOS2_PAGE_H
-+#define _NIOS2_PAGE_H
-+
-+/* copied from m68knommu arch */
-+// #include <linux/config.h>
-+
-+/* PAGE_SHIFT determines the page size */
-+
-+#define PAGE_SHIFT	(12)
-+#define PAGE_SIZE	(1UL << PAGE_SHIFT)
-+#define PAGE_MASK	(~(PAGE_SIZE-1))
-+
-+#ifdef __KERNEL__
-+
-+#include <asm/setup.h>
-+
-+#if PAGE_SHIFT < 13
-+#define THREAD_SIZE (8192)
-+#else
-+#define THREAD_SIZE PAGE_SIZE
-+#endif
-+ 
-+#ifndef __ASSEMBLY__
-+ 
-+#define get_user_page(vaddr)		__get_free_page(GFP_KERNEL)
-+#define free_user_page(page, addr)	free_page(addr)
-+
-+#define clear_page(page)	memset((page), 0, PAGE_SIZE)
-+#define copy_page(to,from)	memcpy((to), (from), PAGE_SIZE)
-+
-+#define clear_user_page(page, vaddr, pg)	clear_page(page)
-+#define copy_user_page(to, from, vaddr, pg)	copy_page(to, from)
-+
-+/*
-+ * These are used to make use of C type-checking..
-+ */
-+typedef struct { unsigned long pte; } pte_t;
-+typedef struct { unsigned long pmd[16]; } pmd_t;
-+typedef struct { unsigned long pgd; } pgd_t;
-+typedef struct { unsigned long pgprot; } pgprot_t;
-+
-+#define pte_val(x)	((x).pte)
-+#define pmd_val(x)	((&x)->pmd[0])
-+#define pgd_val(x)	((x).pgd)
-+#define pgprot_val(x)	((x).pgprot)
-+
-+#define __pte(x)	((pte_t) { (x) } )
-+#define __pmd(x)	((pmd_t) { (x) } )
-+#define __pgd(x)	((pgd_t) { (x) } )
-+#define __pgprot(x)	((pgprot_t) { (x) } )
-+
-+/* to align the pointer to the (next) page boundary */
-+#define PAGE_ALIGN(addr)	(((addr)+PAGE_SIZE-1)&PAGE_MASK)
-+
-+/* Pure 2^n version of get_order */
-+extern __inline__ int get_order(unsigned long size)
-+{
-+	int order;
-+
-+	size = (size-1) >> (PAGE_SHIFT-1);
-+	order = -1;
-+	do {
-+		size >>= 1;
-+		order++;
-+	} while (size);
-+	return order;
-+}
-+
-+extern unsigned long memory_start;
-+extern unsigned long memory_end;
-+
-+#endif /* !__ASSEMBLY__ */
-+#include <asm/nios.h>
-+#define PAGE_OFFSET		((int)(nasys_program_mem))
-+
-+#ifndef __ASSEMBLY__
-+
-+#define __pa(vaddr)		virt_to_phys((void *)vaddr)
-+#define __va(paddr)		phys_to_virt((unsigned long)paddr)
-+
-+#define MAP_NR(addr)		(((unsigned long)(addr)-PAGE_OFFSET) >> PAGE_SHIFT)
-+
-+#define virt_to_pfn(kaddr)	(__pa(kaddr) >> PAGE_SHIFT)
-+#define pfn_to_virt(pfn)	__va((pfn) << PAGE_SHIFT)
-+
-+#define virt_to_page(addr)	(mem_map + (((unsigned long)(addr)-PAGE_OFFSET) >> PAGE_SHIFT))
-+#define page_to_virt(page)	((((page) - mem_map) << PAGE_SHIFT) + PAGE_OFFSET)
-+#define VALID_PAGE(page)	((page - mem_map) < max_mapnr)
-+
-+#define pfn_to_page(pfn)	virt_to_page(pfn_to_virt(pfn))
-+#define page_to_pfn(page)	virt_to_pfn(page_to_virt(page))
-+
-+#define	virt_addr_valid(kaddr)	(((void *)(kaddr) >= (void *)PAGE_OFFSET) && \
-+				((void *)(kaddr) < (void *)memory_end))
-+
-+#ifdef CONFIG_NO_KERNEL_MSG
-+#define	BUG_PRINT()
-+#else
-+#define	BUG_PRINT() printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__)
-+#endif
-+
-+#ifdef na_cpu_oci_core
-+#define BUG_PANIC()	asm volatile ("break") /* drop to debugger */
-+#else
-+// #define BUG_PANIC()	while(1)
-+#define BUG_PANIC()	panic("BUG!")
-+#endif
-+
-+#endif /* __ASSEMBLY__ */
-+
-+#endif /* __KERNEL__ */
-+
-+#endif /* _NIOS2_PAGE_H */
---- linux/include/asm-nios2nommu/param.h
-+++ linux/include/asm-nios2nommu/param.h
-@@ -0,0 +1,49 @@
-+#ifndef _NIOS_PARAM_H
-+#define _NIOS_PARAM_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/param.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#ifndef HZ
-+#define HZ 100
-+#endif
-+
-+#ifdef __KERNEL__
-+#define	USER_HZ		HZ
-+#define	CLOCKS_PER_SEC	(USER_HZ)
-+#endif
-+
-+#define EXEC_PAGESIZE	4096
-+
-+#ifndef NGROUPS
-+#define NGROUPS		32
-+#endif
-+
-+#ifndef NOGROUP
-+#define NOGROUP		(-1)
-+#endif
-+
-+#define MAXHOSTNAMELEN	64	/* max length of hostname */
-+
-+#endif
---- linux/include/asm-nios2nommu/pci.h
-+++ linux/include/asm-nios2nommu/pci.h
-@@ -0,0 +1,75 @@
-+#ifndef _ASM_NIOS2NOMMU_PCI_H
-+#define _ASM_NIOS2NOMMU_PCI_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/pci.h
-+ *
-+ * Derived from asm-m68k/pci_m68k.h
-+ *              - m68k specific PCI declarations, by Wout Klaren.
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm/scatterlist.h>
-+
-+struct pci_ops;
-+
-+/*
-+ * Structure with hardware dependent information and functions of the
-+ * PCI bus.
-+ */
-+
-+struct pci_bus_info
-+{
-+	/*
-+	 * Resources of the PCI bus.
-+	 */
-+
-+	struct resource mem_space;
-+	struct resource io_space;
-+
-+	/*
-+	 * System dependent functions.
-+	 */
-+
-+	struct pci_ops *m68k_pci_ops;
-+
-+	void (*fixup)(int pci_modify);
-+	void (*conf_device)(struct pci_dev *dev);
-+};
-+
-+#define pcibios_assign_all_busses()	0
-+
-+extern inline void pcibios_set_master(struct pci_dev *dev)
-+{
-+	/* No special bus mastering setup handling */
-+}
-+
-+extern inline void pcibios_penalize_isa_irq(int irq)
-+{
-+	/* We don't do dynamic PCI IRQ allocation */
-+}
-+
-+/* The PCI address space does equal the physical memory
-+ * address space.  The networking and block device layers use
-+ * this boolean for bounce buffer decisions.
-+ */
-+#define PCI_DMA_BUS_IS_PHYS	(1)
-+
-+#endif /* _ASM_NIOS2NOMMU_PCI_H */
---- linux/include/asm-nios2nommu/percpu.h
-+++ linux/include/asm-nios2nommu/percpu.h
-@@ -0,0 +1,30 @@
-+#ifndef __ARCH_NIOS2NOMMU_PERCPU__
-+#define __ARCH_NIOS2NOMMU_PERCPU__
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/percpu.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm-generic/percpu.h>
-+
-+#endif /* __ARCH_NIOS2NOMMU_PERCPU__ */
---- linux/include/asm-nios2nommu/pgalloc.h
-+++ linux/include/asm-nios2nommu/pgalloc.h
-@@ -0,0 +1,32 @@
-+#ifndef _NIOS2NOMMU_PGALLOC_H
-+#define _NIOS2NOMMU_PGALLOC_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/pgalloc.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm/setup.h>
-+
-+#define check_pgt_cache()	do { } while (0)
-+
-+#endif /* _NIOS2NOMMU_PGALLOC_H */
---- linux/include/asm-nios2nommu/pgtable.h
-+++ linux/include/asm-nios2nommu/pgtable.h
-@@ -0,0 +1,104 @@
-+#ifndef _NIOS_PGTABLE_H
-+#define _NIOS_PGTABLE_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/pgtable.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+#include <asm-generic/4level-fixup.h>
-+
-+//vic - this bit copied from m68knommu version
-+// #include <linux/config.h>
-+#include <asm/setup.h>
-+#include <asm/io.h>
-+
-+typedef pte_t *pte_addr_t;
-+
-+#define pgd_present(pgd)     	(1)       /* pages are always present on NO_MM */
-+#define pgd_none(pgd)		(0)
-+#define pgd_bad(pgd)		(0)
-+#define pgd_clear(pgdp)
-+#define kern_addr_valid(addr) 	(1)
-+#define	pmd_offset(a, b)	((void *)0)
-+
-+#define PAGE_NONE		__pgprot(0)    /* these mean nothing to NO_MM */
-+#define PAGE_SHARED		__pgprot(0)    /* these mean nothing to NO_MM */
-+#define PAGE_COPY		__pgprot(0)    /* these mean nothing to NO_MM */
-+#define PAGE_READONLY		__pgprot(0)    /* these mean nothing to NO_MM */
-+#define PAGE_KERNEL		__pgprot(0)    /* these mean nothing to NO_MM */
-+//vic - this bit copied from m68knommu version
-+
-+extern void paging_init(void);
-+#define swapper_pg_dir ((pgd_t *) 0)
-+
-+#define __swp_type(x)		(0)
-+#define __swp_offset(x)		(0)
-+#define __swp_entry(typ,off)	((swp_entry_t) { ((typ) | ((off) << 7)) })
-+#define __pte_to_swp_entry(pte)	((swp_entry_t) { pte_val(pte) })
-+#define __swp_entry_to_pte(x)	((pte_t) { (x).val })
-+
-+static inline int pte_file(pte_t pte) { return 0; }
-+
-+/*
-+ * ZERO_PAGE is a global shared page that is always zero: used
-+ * for zero-mapped memory areas etc..
-+ */
-+#define ZERO_PAGE(vaddr)	(virt_to_page(0))
-+
-+extern unsigned int kobjsize(const void *objp);
-+extern int is_in_rom(unsigned long);
-+
-+/*
-+ * No page table caches to initialise
-+ */
-+#define pgtable_cache_init()   do { } while (0)
-+#define io_remap_page_range(vma, vaddr, paddr, size, prot) \
-+	remap_pfn_range(vma, vaddr, (paddr) >> PAGE_SHIFT, size, prot)
-+
-+extern inline void flush_cache_mm(struct mm_struct *mm)
-+{
-+}
-+
-+extern inline void flush_cache_range(struct mm_struct *mm,
-+				     unsigned long start,
-+				     unsigned long end)
-+{
-+}
-+
-+/* Push the page at kernel virtual address and clear the icache */
-+extern inline void flush_page_to_ram (unsigned long address)
-+{
-+}
-+
-+/* Push n pages at kernel virtual address and clear the icache */
-+extern inline void flush_pages_to_ram (unsigned long address, int n)
-+{
-+}
-+
-+/*
-+ * All 32bit addresses are effectively valid for vmalloc...
-+ * Sort of meaningless for non-VM targets.
-+ */
-+#define	VMALLOC_START	0
-+#define	VMALLOC_END	0xffffffff
-+
-+#endif /* _NIOS_PGTABLE_H */
---- linux/include/asm-nios2nommu/pio_struct.h
-+++ linux/include/asm-nios2nommu/pio_struct.h
-@@ -0,0 +1,14 @@
-+// PIO Peripheral
-+
-+// PIO Registers
-+typedef volatile struct
-+	{
-+	int np_piodata;          // read/write, up to 32 bits
-+	int np_piodirection;     // write/readable, up to 32 bits, 1->output bit
-+	int np_piointerruptmask; // write/readable, up to 32 bits, 1->enable interrupt
-+	int np_pioedgecapture;   // read, up to 32 bits, cleared by any write
-+	} np_pio;
-+
-+// PIO Routines
-+void nr_pio_showhex(int value); // shows low byte on pio named na_seven_seg_pio
-+
---- linux/include/asm-nios2nommu/poll.h
-+++ linux/include/asm-nios2nommu/poll.h
-@@ -0,0 +1,46 @@
-+#ifndef __NIOS2_POLL_H
-+#define __NIOS2_POLL_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/poll.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#define POLLIN		  1
-+#define POLLPRI		  2
-+#define POLLOUT		  4
-+#define POLLERR		  8
-+#define POLLHUP		 16
-+#define POLLNVAL	 32
-+#define POLLRDNORM	 64
-+#define POLLWRNORM	POLLOUT
-+#define POLLRDBAND	128
-+#define POLLWRBAND	256
-+#define POLLMSG		0x0400
-+
-+struct pollfd {
-+	int fd;
-+	short events;
-+	short revents;
-+};
-+
-+#endif
---- linux/include/asm-nios2nommu/posix_types.h
-+++ linux/include/asm-nios2nommu/posix_types.h
-@@ -0,0 +1,89 @@
-+#ifndef __ARCH_NIOS2_POSIX_TYPES_H
-+#define __ARCH_NIOS2_POSIX_TYPES_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/posix_types.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+/*
-+ * This file is generally used by user-level software, so you need to
-+ * be a little careful about namespace pollution etc.  Also, we cannot
-+ * assume GCC is being used.
-+ */
-+
-+typedef unsigned long	__kernel_ino_t;
-+typedef unsigned short	__kernel_mode_t;
-+typedef unsigned short	__kernel_nlink_t;
-+typedef long		__kernel_off_t;
-+typedef int		__kernel_pid_t;
-+typedef unsigned short	__kernel_ipc_pid_t;
-+typedef unsigned short	__kernel_uid_t;
-+typedef unsigned short	__kernel_gid_t;
-+typedef unsigned int	__kernel_size_t;
-+typedef int		__kernel_ssize_t;
-+typedef int		__kernel_ptrdiff_t;
-+typedef long		__kernel_time_t;
-+typedef long		__kernel_suseconds_t;
-+typedef long		__kernel_clock_t;
-+typedef int		__kernel_timer_t;
-+typedef int		__kernel_clockid_t;
-+typedef int		__kernel_daddr_t;
-+typedef char *		__kernel_caddr_t;
-+typedef unsigned short	__kernel_uid16_t;
-+typedef unsigned short	__kernel_gid16_t;
-+typedef unsigned int	__kernel_uid32_t;
-+typedef unsigned int	__kernel_gid32_t;
-+
-+typedef unsigned short	__kernel_old_uid_t;
-+typedef unsigned short	__kernel_old_gid_t;
-+typedef unsigned short	__kernel_old_dev_t;
-+
-+#ifdef __GNUC__
-+typedef long long	__kernel_loff_t;
-+#endif
-+
-+typedef struct {
-+#if defined(__KERNEL__) || defined(__USE_ALL)
-+	int	val[2];
-+#else /* !defined(__KERNEL__) && !defined(__USE_ALL) */
-+	int	__val[2];
-+#endif /* !defined(__KERNEL__) && !defined(__USE_ALL) */
-+} __kernel_fsid_t;
-+
-+#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2)
-+
-+#undef	__FD_SET
-+#define	__FD_SET(d, set)	((set)->fds_bits[__FDELT(d)] |= __FDMASK(d))
-+
-+#undef	__FD_CLR
-+#define	__FD_CLR(d, set)	((set)->fds_bits[__FDELT(d)] &= ~__FDMASK(d))
-+
-+#undef	__FD_ISSET
-+#define	__FD_ISSET(d, set)	((set)->fds_bits[__FDELT(d)] & __FDMASK(d))
-+
-+#undef	__FD_ZERO
-+#define __FD_ZERO(fdsetp) (memset (fdsetp, 0, sizeof(*(fd_set *)fdsetp)))
-+
-+#endif /* defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) */
-+
-+#endif
---- linux/include/asm-nios2nommu/preem_latency.h
-+++ linux/include/asm-nios2nommu/preem_latency.h
-@@ -0,0 +1,39 @@
-+#ifndef _ASM_PREEM_LATENCY_H
-+#define _ASM_PREEM_LATENCY_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/preem_latency.h
-+ *
-+ * timing support for preempt-stats patch
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm/nios.h>
-+
-+#define readclock(low) \
-+do {\
-+	*(volatile unsigned long *)na_Counter_64_bit=1;	\
-+	low=*(volatile unsigned long *)na_Counter_64_bit; \
-+} while (0)
-+#define readclock_init()
-+
-+#endif /* _ASM_PREEM_LATENCY_H */
---- linux/include/asm-nios2nommu/processor.h
-+++ linux/include/asm-nios2nommu/processor.h
-@@ -0,0 +1,148 @@
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/processor.h
-+ *
-+ * Copyright (C) 1994 David S. Miller (davem@caip.rutgers.edu)
-+ * Copyright (C) 2001  Ken Hill (khill@microtronix.com)    
-+ *                     Vic Phillips (vic@microtronix.com)
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * hacked from:
-+ *      include/asm-sparc/processor.h
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ * Nov/02/2003      dgt     Fix task_size
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+#ifndef __ASM_NIOS_PROCESSOR_H
-+#define __ASM_NIOS_PROCESSOR_H
-+
-+#define NIOS2_FLAG_KTHREAD	0x00000001	/* task is a kernel thread */
-+#define NIOS2_FLAG_COPROC	0x00000002	/* Thread used coprocess */
-+#define NIOS2_FLAG_DEBUG	0x00000004	/* task is being debugged */
-+
-+#define NIOS2_OP_NOP 0x1883a
-+#define NIOS2_OP_BREAK	0x3da03a
-+
-+#ifndef __ASSEMBLY__
-+
-+/*
-+ * Default implementation of macro that returns current
-+ * instruction pointer ("program counter").
-+ */
-+#define current_text_addr() ({ __label__ _l; _l: &&_l;})
-+
-+#include <linux/a.out.h>
-+#include <linux/string.h>
-+
-+#include <asm/ptrace.h>
-+#include <asm/signal.h>
-+#include <asm/segment.h>
-+#include <asm/current.h>
-+#include <asm/system.h> /* for get_hi_limit */
-+
-+/*
-+ * Bus types
-+ */
-+#define EISA_bus 0
-+#define EISA_bus__is_a_macro /* for versions in ksyms.c */
-+#define MCA_bus 0
-+#define MCA_bus__is_a_macro /* for versions in ksyms.c */
-+
-+/*
-+ * The nios has no problems with write protection
-+ */
-+#define wp_works_ok 1
-+#define wp_works_ok__is_a_macro /* for versions in ksyms.c */
-+
-+/* Whee, this is STACK_TOP and the lowest kernel address too... */
-+#if 0
-+#define KERNBASE        0x00000000  /* First address the kernel will eventually be */
-+#define TASK_SIZE	(KERNBASE)
-+#define MAX_USER_ADDR	TASK_SIZE
-+#define MMAP_SEARCH_START (TASK_SIZE/3)
-+#endif
-+
-+#define TASK_SIZE	((unsigned int) nasys_program_mem_end)   //...this is better...
-+
-+/*
-+ * This decides where the kernel will search for a free chunk of vm
-+ * space during mmap's. We won't be using it
-+ */
-+#define TASK_UNMAPPED_BASE	0
-+
-+/* The Nios processor specific thread struct. */
-+struct thread_struct {
-+	struct pt_regs *kregs;
-+
-+	/* For signal handling */
-+	unsigned long sig_address;
-+	unsigned long sig_desc;
-+
-+	/* Context switch saved kernel state. */
-+	unsigned long ksp;
-+	unsigned long kpsr;
-+	unsigned long kesr;
-+
-+	/* Flags are defined below */
-+
-+	unsigned long flags;
-+	int current_ds;
-+	struct exec core_exec;     /* just what it says. */
-+};
-+
-+#define INIT_MMAP { &init_mm, (0), (0), \
-+		    __pgprot(0x0) , VM_READ | VM_WRITE | VM_EXEC }
-+
-+#define INIT_THREAD  { \
-+	.kregs		= 0,			\
-+	.sig_address	= 0,			\
-+	.sig_desc	= 0,			\
-+	.ksp		= 0,			\
-+	.kpsr		= 0,			\
-+	.kesr		= PS_S,			\
-+	.flags		= NIOS2_FLAG_KTHREAD,	\
-+	.current_ds	= __KERNEL_DS,		\
-+	.core_exec	= INIT_EXEC		\
-+}
-+
-+/* Free all resources held by a thread. */
-+extern void release_thread(struct task_struct *);
-+
-+extern unsigned long thread_saved_pc(struct task_struct *t);
-+
-+extern void start_thread(struct pt_regs * regs, unsigned long pc, unsigned long sp);
-+
-+/* Prepare to copy thread state - unlazy all lazy status */
-+#define prepare_to_copy(tsk)	do { } while (0)
-+
-+extern int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags);
-+
-+unsigned long get_wchan(struct task_struct *p);
-+
-+#define KSTK_EIP(tsk)  ((tsk)->thread.kregs->ea)
-+#define KSTK_ESP(tsk)  ((tsk)->thread.kregs->sp)
-+
-+#ifdef __KERNEL__
-+/* Allocation and freeing of basic task resources. */
-+
-+//;dgt2;#define alloc_task_struct() ((struct task_struct *) xx..see..linux..fork..xx __get_free_pages(GFP_KERNEL,1))
-+//;dgt2;#define get_task_struct(tsk) xx..see..linux..sched.h...atomic_inc(&mem_map[MAP_NR(tsk)].count)
-+
-+#endif
-+
-+#define cpu_relax()    do { } while (0)
-+#endif /* __ASSEMBLY__ */
-+#endif /* __ASM_NIOS_PROCESSOR_H */
---- linux/include/asm-nios2nommu/ptrace.h
-+++ linux/include/asm-nios2nommu/ptrace.h
-@@ -0,0 +1,141 @@
-+/*
-+ * Taken from the m68k port.
-+ *
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+#ifndef _NIOS2NOMMU_PTRACE_H
-+#define _NIOS2NOMMU_PTRACE_H
-+
-+#ifndef __ASSEMBLY__
-+
-+#define PTR_R0		0
-+#define PTR_R1		1
-+#define PTR_R2		2
-+#define PTR_R3		3
-+#define PTR_R4		4
-+#define PTR_R5		5
-+#define PTR_R6		6
-+#define PTR_R7		7
-+#define PTR_R8		8
-+#define PTR_R9		9
-+#define PTR_R10		10
-+#define PTR_R11		11
-+#define PTR_R12		12
-+#define PTR_R13		13
-+#define PTR_R14		14
-+#define PTR_R15		15
-+#define PTR_R16		16
-+#define PTR_R17		17
-+#define PTR_R18		18
-+#define PTR_R19		19
-+#define PTR_R20		20
-+#define PTR_R21		21
-+#define PTR_R22		22
-+#define PTR_R23		23
-+#define PTR_R24		24
-+#define PTR_R25		25
-+#define PTR_GP		26
-+#define PTR_SP		27
-+#define PTR_FP		28
-+#define PTR_EA		29
-+#define PTR_BA		30
-+#define PTR_RA		31
-+#define PTR_STATUS	32
-+#define PTR_ESTATUS	33
-+#define PTR_BSTATUS	34
-+#define PTR_IENABLE	35
-+#define PTR_IPENDING	36
-+
-+/* this struct defines the way the registers are stored on the
-+   stack during a system call. 
-+
-+   There is a fake_regs in setup.c that has to match pt_regs.*/
-+
-+struct pt_regs {
-+	unsigned long  r8;
-+	unsigned long  r9;
-+	unsigned long  r10;
-+	unsigned long  r11;
-+	unsigned long  r12;
-+	unsigned long  r13;
-+	unsigned long  r14;
-+	unsigned long  r15;
-+	unsigned long  r1;
-+	unsigned long  r2;
-+	unsigned long  r3;
-+	unsigned long  r4;
-+	unsigned long  r5;
-+	unsigned long  r6;
-+	unsigned long  r7;
-+	unsigned long  orig_r2;
-+	unsigned long  ra;
-+	unsigned long  fp;
-+	unsigned long  sp;
-+	unsigned long  gp;
-+	unsigned long  estatus;
-+	unsigned long  status_extension;
-+	unsigned long  ea;
-+};
-+
-+
-+/*
-+ * This is the extended stack used by signal handlers and the context
-+ * switcher: it's pushed after the normal "struct pt_regs".
-+ */
-+struct switch_stack {
-+	unsigned long  r16;
-+	unsigned long  r17;
-+	unsigned long  r18;
-+	unsigned long  r19;
-+	unsigned long  r20;
-+	unsigned long  r21;
-+	unsigned long  r22;
-+	unsigned long  r23;
-+	unsigned long  fp;
-+	unsigned long  gp;
-+	unsigned long  ra;
-+};
-+
-+/* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */
-+#define PTRACE_GETREGS            12
-+#define PTRACE_SETREGS            13
-+#ifdef CONFIG_FPU
-+#define PTRACE_GETFPREGS          14
-+#define PTRACE_SETFPREGS          15
-+#endif
-+
-+#ifdef __KERNEL__
-+
-+#ifndef PS_S
-+#define PS_S  (0x00000001)
-+#endif
-+#ifndef PS_T
-+#define PS_T  (0x00000002)
-+#endif
-+
-+#define user_mode(regs) (!((regs)->status_extension & PS_S))
-+#define instruction_pointer(regs) ((regs)->ra)
-+#define profile_pc(regs) instruction_pointer(regs)
-+extern void show_regs(struct pt_regs *);
-+
-+#endif /* __KERNEL__ */
-+#endif /* __ASSEMBLY__ */
-+#endif /* _NIOS2NOMMU_PTRACE_H */
---- linux/include/asm-nios2nommu/resource.h
-+++ linux/include/asm-nios2nommu/resource.h
-@@ -0,0 +1,73 @@
-+#ifndef _NIOS2NOMMU_RESOURCE_H
-+#define _NIOS2NOMMU_RESOURCE_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * Resource limits
-+ *
-+ * include/asm-nios2nommu/resource.h
-+ *
-+ * Derived from M68knommu
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#define RLIMIT_CPU	0		/* CPU time in ms */
-+#define RLIMIT_FSIZE	1		/* Maximum filesize */
-+#define RLIMIT_DATA	2		/* max data size */
-+#define RLIMIT_STACK	3		/* max stack size */
-+#define RLIMIT_CORE	4		/* max core file size */
-+#define RLIMIT_RSS	5		/* max resident set size */
-+#define RLIMIT_NPROC	6		/* max number of processes */
-+#define RLIMIT_NOFILE	7		/* max number of open files */
-+#define RLIMIT_MEMLOCK	8		/* max locked-in-memory address space */
-+#define RLIMIT_AS	9		/* address space limit */
-+#define RLIMIT_LOCKS	10		/* maximum file locks held */
-+#define RLIMIT_SIGPENDING 11		/* max number of pending signals */
-+#define RLIMIT_MSGQUEUE 12		/* maximum bytes in POSIX mqueues */
-+
-+#define RLIM_NLIMITS	13
-+
-+/*
-+ * SuS says limits have to be unsigned.
-+ * Which makes a ton more sense anyway.
-+ */
-+#define RLIM_INFINITY	(~0UL)
-+
-+#ifdef __KERNEL__
-+
-+#define INIT_RLIMITS					\
-+{							\
-+	{ RLIM_INFINITY, RLIM_INFINITY },		\
-+	{ RLIM_INFINITY, RLIM_INFINITY },		\
-+	{ RLIM_INFINITY, RLIM_INFINITY },		\
-+	{      _STK_LIM, RLIM_INFINITY },		\
-+	{             0, RLIM_INFINITY },		\
-+	{ RLIM_INFINITY, RLIM_INFINITY },		\
-+	{             0,             0 },		\
-+	{      INR_OPEN,     INR_OPEN  },		\
-+	{   MLOCK_LIMIT,   MLOCK_LIMIT },		\
-+	{ RLIM_INFINITY, RLIM_INFINITY },		\
-+	{ RLIM_INFINITY, RLIM_INFINITY },		\
-+	{ MAX_SIGPENDING, MAX_SIGPENDING },		\
-+	{ MQ_BYTES_MAX, MQ_BYTES_MAX },			\
-+}
-+
-+#endif /* __KERNEL__ */
-+
-+#endif /* _NIOS2NOMMU_RESOURCE_H */
---- linux/include/asm-nios2nommu/rmap.h
-+++ linux/include/asm-nios2nommu/rmap.h
-@@ -0,0 +1,2 @@
-+/* Do not need anything here */
-+
---- linux/include/asm-nios2nommu/scatterlist.h
-+++ linux/include/asm-nios2nommu/scatterlist.h
-@@ -0,0 +1,42 @@
-+#ifndef _NIOS2NOMMU_SCATTERLIST_H
-+#define _NIOS2NOMMU_SCATTERLIST_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/scatterlist.h
-+ *
-+ * Derived from M68knommu
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+#include <linux/mm.h>
-+
-+struct scatterlist {
-+	struct page	*page;
-+	unsigned int	offset;
-+	dma_addr_t	dma_address;
-+	unsigned int	length;
-+};
-+
-+#define sg_address(sg) (page_address((sg)->page) + (sg)->offset
-+#define sg_dma_address(sg)	((sg)->dma_address)
-+#define sg_dma_len(sg)		((sg)->length)
-+
-+#define ISA_DMA_THRESHOLD	(0xffffffff)
-+
-+#endif /* !(_NIOS2NOMMU_SCATTERLIST_H) */
---- linux/include/asm-nios2nommu/sections.h
-+++ linux/include/asm-nios2nommu/sections.h
-@@ -0,0 +1,30 @@
-+#ifndef _NIOS2NOMMU_SECTIONS_H
-+#define _NIOS2NOMMU_SECTIONS_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/sections.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm-generic/sections.h>
-+
-+#endif /* _NIOS2NOMMU_SECTIONS_H */
---- linux/include/asm-nios2nommu/segment.h
-+++ linux/include/asm-nios2nommu/segment.h
-@@ -0,0 +1,75 @@
-+#ifndef _NIOS2NOMMU_SEGMENT_H
-+#define _NIOS2NOMMU_SEGMENT_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/segment.h
-+ *
-+ * Derived from M68knommu
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+/* define constants */
-+/* Address spaces (FC0-FC2) */
-+#define USER_DATA     (1)
-+#ifndef __USER_DS
-+#define __USER_DS     (USER_DATA)
-+#endif
-+#define USER_PROGRAM  (2)
-+#define SUPER_DATA    (5)
-+#ifndef __KERNEL_DS
-+#define __KERNEL_DS   (SUPER_DATA)
-+#endif
-+#define SUPER_PROGRAM (6)
-+#define CPU_SPACE     (7)
-+
-+#ifndef __ASSEMBLY__
-+
-+typedef struct {
-+	unsigned long seg;
-+} mm_segment_t;
-+
-+#define MAKE_MM_SEG(s)	((mm_segment_t) { (s) })
-+#define USER_DS		MAKE_MM_SEG(__USER_DS)
-+#define KERNEL_DS	MAKE_MM_SEG(__KERNEL_DS)
-+
-+/*
-+ * Get/set the SFC/DFC registers for MOVES instructions
-+ */
-+
-+static inline mm_segment_t get_fs(void)
-+{
-+    return USER_DS;
-+}
-+
-+static inline mm_segment_t get_ds(void)
-+{
-+    /* return the supervisor data space code */
-+    return KERNEL_DS;
-+}
-+
-+static inline void set_fs(mm_segment_t val)
-+{
-+}
-+
-+#define segment_eq(a,b)	((a).seg == (b).seg)
-+
-+#endif /* __ASSEMBLY__ */
-+
-+#endif /* _NIOS2NOMMU_SEGMENT_H */
---- linux/include/asm-nios2nommu/semaphore.h
-+++ linux/include/asm-nios2nommu/semaphore.h
-@@ -0,0 +1,155 @@
-+#ifndef _NIOS2NOMMU_SEMAPHORE_H
-+#define _NIOS2NOMMU_SEMAPHORE_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/semaphore.h
-+ *
-+ * Interrupt-safe semaphores..
-+ *
-+ * Derived from M68knommu
-+ *
-+ * (C) Copyright 1996 Linus Torvalds
-+ * m68k version by Andreas Schwab
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+#define RW_LOCK_BIAS		 0x01000000
-+
-+#ifndef __ASSEMBLY__
-+
-+#include <linux/linkage.h>
-+#include <linux/wait.h>
-+#include <linux/spinlock.h>
-+#include <linux/rwsem.h>
-+
-+#include <asm/system.h>
-+#include <asm/atomic.h>
-+
-+struct semaphore {
-+	atomic_t count;
-+	atomic_t waking;
-+	wait_queue_head_t wait;
-+};
-+
-+#define __SEMAPHORE_INITIALIZER(name, n)				\
-+{									\
-+	.count		= ATOMIC_INIT(n),				\
-+	.waking		= ATOMIC_INIT(0),				\
-+	.wait		= __WAIT_QUEUE_HEAD_INITIALIZER((name).wait)	\
-+}
-+
-+#define __MUTEX_INITIALIZER(name) \
-+	__SEMAPHORE_INITIALIZER(name,1)
-+
-+#define __DECLARE_SEMAPHORE_GENERIC(name,count) \
-+	struct semaphore name = __SEMAPHORE_INITIALIZER(name,count)
-+
-+#define DECLARE_MUTEX(name) __DECLARE_SEMAPHORE_GENERIC(name,1)
-+#define DECLARE_MUTEX_LOCKED(name) __DECLARE_SEMAPHORE_GENERIC(name,0)
-+
-+extern inline void sema_init (struct semaphore *sem, int val)
-+{
-+	*sem = (struct semaphore)__SEMAPHORE_INITIALIZER(*sem, val);
-+}
-+
-+static inline void init_MUTEX (struct semaphore *sem)
-+{
-+	sema_init(sem, 1);
-+}
-+
-+static inline void init_MUTEX_LOCKED (struct semaphore *sem)
-+{
-+	sema_init(sem, 0);
-+}
-+
-+asmlinkage void __down(struct semaphore * sem);
-+asmlinkage int  __down_interruptible(struct semaphore * sem);
-+asmlinkage int  __down_trylock(struct semaphore * sem);
-+asmlinkage void __up(struct semaphore * sem);
-+
-+asmlinkage void __down_failed(void /* special register calling convention */);
-+asmlinkage int  __down_failed_interruptible(void  /* params in registers */);
-+asmlinkage int  __down_failed_trylock(void  /* params in registers */);
-+asmlinkage void __up_wakeup(void /* special register calling convention */);
-+
-+extern spinlock_t semaphore_wake_lock;
-+
-+/*
-+ * This is ugly, but we want the default case to fall through.
-+ * "down_failed" is a special asm handler that calls the C
-+ * routine that actually waits.
-+ */
-+extern inline void down(struct semaphore * sem)
-+{
-+	might_sleep();
-+
-+  #if 0
-+    ...Nios2 has no atomic "decrement memory"....
-+  #else
-+	if (atomic_dec_return(&sem->count) < 0)
-+		__down(sem);
-+  #endif
-+}
-+
-+extern inline int down_interruptible(struct semaphore * sem)
-+{
-+	int ret = 0;
-+
-+
-+	might_sleep();
-+
-+  #if 0
-+    ...Nios2 has no atomic "decrement memory"....
-+  #else
-+	if(atomic_dec_return(&sem->count) < 0)
-+		ret = __down_interruptible(sem);
-+	return ret;
-+  #endif
-+}
-+
-+extern inline int down_trylock(struct semaphore * sem)
-+{
-+  #if 0
-+    ...Nios2 has no atomic "decrement memory"....
-+  #else
-+	int ret = 0;
-+
-+	if (atomic_dec_return (&sem->count) < 0)
-+		ret = __down_trylock(sem);
-+	return ret;
-+  #endif
-+}
-+
-+/*
-+ * Note! This is subtle. We jump to wake people up only if
-+ * the semaphore was negative (== somebody was waiting on it).
-+ * The default case (no contention) will result in NO
-+ * jumps for both down() and up().
-+ */
-+extern inline void up(struct semaphore * sem)
-+{
-+  #if 0
-+    ...Nios2 has no atomic "increment memory"....
-+  #else
-+	if (atomic_inc_return(&sem->count) <= 0)
-+		__up(sem);
-+  #endif
-+}
-+
-+#endif /* __ASSEMBLY__ */
-+
-+#endif
---- linux/include/asm-nios2nommu/semaphore-helper.h
-+++ linux/include/asm-nios2nommu/semaphore-helper.h
-@@ -0,0 +1,101 @@
-+#ifndef _NIOS2NOMMU_SEMAPHORE_HELPER_H
-+#define _NIOS2NOMMU_SEMAPHORE_HELPER_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/semaphore.h
-+ *
-+ * SMP- and interrupt-safe semaphores helper functions.
-+ *
-+ * Derived from M68knommu
-+ *
-+ * (C) Copyright 1996 Linus Torvalds
-+ * m68k version by Andreas Schwab
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+// #include <linux/config.h>
-+
-+/*
-+ * These two _must_ execute atomically wrt each other.
-+ */
-+static inline void wake_one_more(struct semaphore * sem)
-+{
-+	atomic_inc(&sem->waking);
-+}
-+
-+static inline int waking_non_zero(struct semaphore *sem)
-+{
-+	int ret;
-+	unsigned long flags;
-+
-+	spin_lock_irqsave(&semaphore_wake_lock, flags);
-+	ret = 0;
-+	if (atomic_read(&sem->waking) > 0) {
-+		atomic_dec(&sem->waking);
-+		ret = 1;
-+	}
-+	spin_unlock_irqrestore(&semaphore_wake_lock, flags);
-+	return ret;
-+}
-+
-+/*
-+ * waking_non_zero_interruptible:
-+ *	1	got the lock
-+ *	0	go to sleep
-+ *	-EINTR	interrupted
-+ */
-+static inline int waking_non_zero_interruptible(struct semaphore *sem,
-+						struct task_struct *tsk)
-+{
-+	int ret;
-+	unsigned long flags;
-+
-+	spin_lock_irqsave(&semaphore_wake_lock, flags);
-+	ret = 0;
-+	if (atomic_read(&sem->waking) > 0) {
-+		atomic_dec(&sem->waking);
-+		ret = 1;
-+	} else if (signal_pending(tsk)) {
-+		atomic_inc(&sem->count);
-+		ret = -EINTR;
-+	}
-+	spin_unlock_irqrestore(&semaphore_wake_lock, flags);
-+	return ret;
-+}
-+
-+/*
-+ * waking_non_zero_trylock:
-+ *	1	failed to lock
-+ *	0	got the lock
-+ */
-+static inline int waking_non_zero_trylock(struct semaphore *sem)
-+{
-+	int ret;
-+	unsigned long flags;
-+
-+	spin_lock_irqsave(&semaphore_wake_lock, flags);
-+	ret = 1;
-+	if (atomic_read(&sem->waking) > 0) {
-+		atomic_dec(&sem->waking);
-+		ret = 0;
-+	} else
-+		atomic_inc(&sem->count);
-+	spin_unlock_irqrestore(&semaphore_wake_lock, flags);
-+	return ret;
-+}
-+
-+#endif
---- linux/include/asm-nios2nommu/sembuf.h
-+++ linux/include/asm-nios2nommu/sembuf.h
-@@ -0,0 +1,48 @@
-+#ifndef _NIOS_SEMBUF_H
-+#define _NIOS_SEMBUF_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/sembuf.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+/* 
-+ * Note extra padding because this structure is passed back and forth
-+ * between kernel and user space.
-+ *
-+ * Pad space is left for:
-+ * - 64-bit time_t to solve y2038 problem
-+ * - 2 miscellaneous 32-bit values
-+ */
-+
-+struct semid64_ds {
-+	struct ipc64_perm sem_perm;		/* permissions .. see ipc.h */
-+	__kernel_time_t	sem_otime;		/* last semop time */
-+	unsigned long	__unused1;
-+	__kernel_time_t	sem_ctime;		/* last change time */
-+	unsigned long	__unused2;
-+	unsigned long	sem_nsems;		/* no. of semaphores in array */
-+	unsigned long	__unused3;
-+	unsigned long	__unused4;
-+};
-+
-+#endif /* _NIOS_SEMBUF_H */
---- linux/include/asm-nios2nommu/setup.h
-+++ linux/include/asm-nios2nommu/setup.h
-@@ -0,0 +1,31 @@
-+/*	Copied from i386 port.
-+ *	Just a place holder. We don't want to have to test x86 before
-+ *	we include stuff
-+ *
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef _NIOS2_SETUP_H
-+#define _NIOS2_SETUP_H
-+
-+#define COMMAND_LINE_SIZE 512
-+
-+#endif /* _NIOS2_SETUP_H */
---- linux/include/asm-nios2nommu/shmbuf.h
-+++ linux/include/asm-nios2nommu/shmbuf.h
-@@ -0,0 +1,64 @@
-+#ifndef _NIOS_SHMBUF_H
-+#define _NIOS_SHMBUF_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/shmbuf.h
-+ *
-+ * Derived from m68knommu
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+/* Note extra padding because this structure is passed back and forth
-+ * between kernel and user space.
-+ *
-+ * Pad space is left for:
-+ * - 64-bit time_t to solve y2038 problem
-+ * - 2 miscellaneous 32-bit values
-+ */
-+
-+struct shmid64_ds {
-+	struct ipc64_perm	shm_perm;	/* operation perms */
-+	size_t			shm_segsz;	/* size of segment (bytes) */
-+	__kernel_time_t		shm_atime;	/* last attach time */
-+	unsigned long		__unused1;
-+	__kernel_time_t		shm_dtime;	/* last detach time */
-+	unsigned long		__unused2;
-+	__kernel_time_t		shm_ctime;	/* last change time */
-+	unsigned long		__unused3;
-+	__kernel_pid_t		shm_cpid;	/* pid of creator */
-+	__kernel_pid_t		shm_lpid;	/* pid of last operator */
-+	unsigned long		shm_nattch;	/* no. of current attaches */
-+	unsigned long		__unused4;
-+	unsigned long		__unused5;
-+};
-+
-+struct shminfo64 {
-+	unsigned long	shmmax;
-+	unsigned long	shmmin;
-+	unsigned long	shmmni;
-+	unsigned long	shmseg;
-+	unsigned long	shmall;
-+	unsigned long	__unused1;
-+	unsigned long	__unused2;
-+	unsigned long	__unused3;
-+	unsigned long	__unused4;
-+};
-+
-+#endif /* _NIOS_SHMBUF_H */
---- linux/include/asm-nios2nommu/shmparam.h
-+++ linux/include/asm-nios2nommu/shmparam.h
-@@ -0,0 +1,30 @@
-+#ifndef __NIOS2NOMMU_SHMPARAM_H__
-+#define __NIOS2NOMMU_SHMPARAM_H__
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/shmparam.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#define	SHMLBA		PAGE_SIZE	/* attach addr a multiple of this */
-+
-+#endif /* __NIOS2NOMMU_SHMPARAM_H__ */
---- linux/include/asm-nios2nommu/sigcontext.h
-+++ linux/include/asm-nios2nommu/sigcontext.h
-@@ -0,0 +1,35 @@
-+/*
-+ * Taken from the m68knommu.
-+ *
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ * 
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef _ASM_NIOS2NOMMU_SIGCONTEXT_H
-+#define _ASM_NIOS2NOMMU_SIGCONTEXT_H
-+
-+#include <asm/ptrace.h>
-+
-+struct sigcontext {
-+	struct pt_regs regs;
-+	unsigned long  sc_mask; 	/* old sigmask */
-+};
-+
-+#endif
---- linux/include/asm-nios2nommu/siginfo.h
-+++ linux/include/asm-nios2nommu/siginfo.h
-@@ -0,0 +1,28 @@
-+/*
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef _NIOS2NOMMU_SIGINFO_H
-+#define _NIOS2NOMMU_SIGINFO_H
-+
-+#include <asm-generic/siginfo.h>
-+
-+#endif
---- linux/include/asm-nios2nommu/signal.h
-+++ linux/include/asm-nios2nommu/signal.h
-@@ -0,0 +1,207 @@
-+/*
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef _NIOS2_SIGNAL_H
-+#define _NIOS2_SIGNAL_H
-+
-+#include <linux/types.h>
-+
-+/* Avoid too many header ordering problems.  */
-+struct siginfo;
-+
-+#ifdef __KERNEL__
-+/* Most things should be clean enough to redefine this at will, if care
-+   is taken to make libc match.  */
-+
-+#define _NSIG		64
-+#define _NSIG_BPW	32
-+#define _NSIG_WORDS	(_NSIG / _NSIG_BPW)
-+
-+typedef unsigned long old_sigset_t;		/* at least 32 bits */
-+
-+typedef struct {
-+	unsigned long sig[_NSIG_WORDS];
-+} sigset_t;
-+
-+#else
-+/* Here we must cater to libcs that poke about in kernel headers.  */
-+
-+#define NSIG		32
-+typedef unsigned long sigset_t;
-+
-+#endif /* __KERNEL__ */
-+
-+#define SIGHUP		 1
-+#define SIGINT		 2
-+#define SIGQUIT		 3
-+#define SIGILL		 4
-+#define SIGTRAP		 5
-+#define SIGABRT		 6
-+#define SIGIOT		 6
-+#define SIGBUS		 7
-+#define SIGFPE		 8
-+#define SIGKILL		 9
-+#define SIGUSR1		10
-+#define SIGSEGV		11
-+#define SIGUSR2		12
-+#define SIGPIPE		13
-+#define SIGALRM		14
-+#define SIGTERM		15
-+#define SIGSTKFLT	16
-+#define SIGCHLD		17
-+#define SIGCONT		18
-+#define SIGSTOP		19
-+#define SIGTSTP		20
-+#define SIGTTIN		21
-+#define SIGTTOU		22
-+#define SIGURG		23
-+#define SIGXCPU		24
-+#define SIGXFSZ		25
-+#define SIGVTALRM	26
-+#define SIGPROF		27
-+#define SIGWINCH	28
-+#define SIGIO		29
-+#define SIGPOLL		SIGIO
-+/*
-+#define SIGLOST		29
-+*/
-+#define SIGPWR		30
-+#define SIGSYS		31
-+#define	SIGUNUSED	31
-+
-+/* These should not be considered constants from userland.  */
-+#define SIGRTMIN	32
-+#define SIGRTMAX	_NSIG-1
-+
-+/*
-+ * SA_FLAGS values:
-+ *
-+ * SA_ONSTACK indicates that a registered stack_t will be used.
-+ * SA_INTERRUPT is a no-op, but left due to historical reasons. Use the
-+ * SA_RESTART flag to get restarting signals (which were the default long ago)
-+ * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
-+ * SA_RESETHAND clears the handler when the signal is delivered.
-+ * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies.
-+ * SA_NODEFER prevents the current signal from being masked in the handler.
-+ *
-+ * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
-+ * Unix names RESETHAND and NODEFER respectively.
-+ */
-+#define SA_NOCLDSTOP	0x00000001
-+#define SA_NOCLDWAIT	0x00000002 /* not supported yet */
-+#define SA_SIGINFO	0x00000004
-+#define SA_ONSTACK	0x08000000
-+#define SA_RESTART	0x10000000
-+#define SA_NODEFER	0x40000000
-+#define SA_RESETHAND	0x80000000
-+
-+#define SA_NOMASK	SA_NODEFER
-+#define SA_ONESHOT	SA_RESETHAND
-+#define SA_INTERRUPT	0x20000000 /* dummy -- ignored */
-+
-+#define SA_RESTORER	0x04000000
-+
-+/* 
-+ * sigaltstack controls
-+ */
-+#define SS_ONSTACK	1
-+#define SS_DISABLE	2
-+
-+#define MINSIGSTKSZ	2048
-+#define SIGSTKSZ	8192
-+
-+#ifdef __KERNEL__
-+/*
-+ * These values of sa_flags are used only by the kernel as part of the
-+ * irq handling routines.
-+ *
-+ * SA_INTERRUPT is also used by the irq handling routines.
-+ * SA_SHIRQ is for shared interrupt support on PCI and EISA.
-+ */
-+#define SA_PROBE		SA_ONESHOT
-+#define SA_SAMPLE_RANDOM	SA_RESTART
-+#define SA_SHIRQ		0x04000000
-+#endif
-+
-+#define SIG_BLOCK          0	/* for blocking signals */
-+#define SIG_UNBLOCK        1	/* for unblocking signals */
-+#define SIG_SETMASK        2	/* for setting the signal mask */
-+
-+/* Type of a signal handler.  */
-+typedef void (*__sighandler_t)(int);
-+
-+#define SIG_DFL	((__sighandler_t)0)	/* default signal handling */
-+#define SIG_IGN	((__sighandler_t)1)	/* ignore signal */
-+#define SIG_ERR	((__sighandler_t)-1)	/* error return from signal */
-+
-+#ifdef __KERNEL__
-+struct old_sigaction {
-+	__sighandler_t sa_handler;
-+	old_sigset_t sa_mask;
-+	unsigned long sa_flags;
-+	void (*sa_restorer)(void);
-+};
-+
-+struct sigaction {
-+	__sighandler_t sa_handler;
-+	unsigned long sa_flags;
-+	void (*sa_restorer)(void);
-+	sigset_t sa_mask;		/* mask last for extensibility */
-+};
-+
-+struct k_sigaction {
-+	struct sigaction sa;
-+};
-+#else
-+/* Here we must cater to libcs that poke about in kernel headers.  */
-+
-+struct sigaction {
-+	union {
-+	  __sighandler_t _sa_handler;
-+	  void (*_sa_sigaction)(int, struct siginfo *, void *);
-+	} _u;
-+	sigset_t sa_mask;
-+	unsigned long sa_flags;
-+	void (*sa_restorer)(void);
-+};
-+
-+#define sa_handler	_u._sa_handler
-+#define sa_sigaction	_u._sa_sigaction
-+
-+#endif /* __KERNEL__ */
-+
-+typedef struct sigaltstack {
-+	void *ss_sp;
-+	int ss_flags;
-+	size_t ss_size;
-+} stack_t;
-+
-+#ifdef __KERNEL__
-+
-+#include <asm/sigcontext.h>
-+#undef __HAVE_ARCH_SIG_BITOPS
-+
-+#define ptrace_signal_deliver(regs, cookie) do { } while (0)
-+
-+#endif /* __KERNEL__ */
-+
-+#endif /* _NIOS2_SIGNAL_H */
---- linux/include/asm-nios2nommu/smp.h
-+++ linux/include/asm-nios2nommu/smp.h
-@@ -0,0 +1,34 @@
-+#ifndef __ASM_SMP_H
-+#define __ASM_SMP_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/smp.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+// #include <linux/config.h>
-+
-+#ifdef CONFIG_SMP
-+#error SMP not supported
-+#endif
-+
-+#endif
---- linux/include/asm-nios2nommu/socket.h
-+++ linux/include/asm-nios2nommu/socket.h
-@@ -0,0 +1,74 @@
-+#ifndef _ASM_SOCKET_H
-+#define _ASM_SOCKET_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/socket.h
-+ *
-+ * Derived from m68knommu
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm/sockios.h>
-+
-+/* For setsockopt(2) */
-+#define SOL_SOCKET	1
-+
-+#define SO_DEBUG	1
-+#define SO_REUSEADDR	2
-+#define SO_TYPE		3
-+#define SO_ERROR	4
-+#define SO_DONTROUTE	5
-+#define SO_BROADCAST	6
-+#define SO_SNDBUF	7
-+#define SO_RCVBUF	8
-+#define SO_KEEPALIVE	9
-+#define SO_OOBINLINE	10
-+#define SO_NO_CHECK	11
-+#define SO_PRIORITY	12
-+#define SO_LINGER	13
-+#define SO_BSDCOMPAT	14
-+/* To add :#define SO_REUSEPORT 15 */
-+#define SO_PASSCRED	16
-+#define SO_PEERCRED	17
-+#define SO_RCVLOWAT	18
-+#define SO_SNDLOWAT	19
-+#define SO_RCVTIMEO	20
-+#define SO_SNDTIMEO	21
-+
-+/* Security levels - as per NRL IPv6 - don't actually do anything */
-+#define SO_SECURITY_AUTHENTICATION		22
-+#define SO_SECURITY_ENCRYPTION_TRANSPORT	23
-+#define SO_SECURITY_ENCRYPTION_NETWORK		24
-+
-+#define SO_BINDTODEVICE	25
-+
-+/* Socket filtering */
-+#define SO_ATTACH_FILTER        26
-+#define SO_DETACH_FILTER        27
-+
-+#define SO_PEERNAME             28
-+#define SO_TIMESTAMP		29
-+#define SCM_TIMESTAMP		SO_TIMESTAMP
-+
-+#define SO_ACCEPTCONN		30
-+
-+#define SO_PEERSEC		31      /* ;dgt2;tmp;                   */
-+
-+#endif /* _ASM_SOCKET_H */
---- linux/include/asm-nios2nommu/sockios.h
-+++ linux/include/asm-nios2nommu/sockios.h
-@@ -0,0 +1,38 @@
-+#ifndef _ASM_NIOS_SOCKIOS_H
-+#define _ASM_NIOS_SOCKIOS_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/sockios.h
-+ *
-+ * Socket-level I/O control calls.
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#define FIOSETOWN 	0x8901
-+#define SIOCSPGRP	0x8902
-+#define FIOGETOWN	0x8903
-+#define SIOCGPGRP	0x8904
-+#define SIOCATMARK	0x8905
-+#define SIOCGSTAMP	0x8906		/* Get stamp */
-+
-+#endif /* !(_ASM_NIOS_SOCKIOS_H) */
-+
---- linux/include/asm-nios2nommu/spi.h
-+++ linux/include/asm-nios2nommu/spi.h
-@@ -0,0 +1,92 @@
-+#ifndef _ASM_SPI_H_
-+#define _ASM_SPI_H_ 1
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/spi.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm/nios.h>
-+
-+int  register_NIOS_SPI( void );
-+void unregister_NIOS_SPI( void );
-+
-+#if defined(MODULE)
-+void cleanup_module( void );
-+int  init_module( void );
-+#endif
-+
-+#if defined(__KERNEL__)
-+int  spi_reset  ( void );
-+#endif
-+
-+
-+#define clockCS 0x01
-+#define temperatureCS 0x02
-+
-+#define clock_read_base 0x00
-+#define clock_write_base 0x80
-+#define clock_read_control 0x0F
-+#define clock_read_trickle 0x11
-+
-+#define clock_read_sec 0x00
-+#define clock_read_min 0x01
-+#define clock_read_hour 0x02
-+#define clock_read_day 0x03
-+#define clock_read_date 0x04
-+#define clock_read_month 0x05
-+#define clock_read_year 0x06
-+
-+#define clock_write_control 0x8F
-+#define clock_write_trickle 0x91
-+#define clock_write_sec 0x80
-+#define clock_write_min 0x81
-+#define clock_write_hour 0x82
-+#define clock_write_day 0x83
-+#define clock_write_date 0x84
-+#define clock_write_month 0x85
-+#define clock_write_year 0x86
-+
-+#define clock_write_ram_start 0xA0
-+#define clock_write_ram_end 0x100
-+#define clock_read_ram_start 0x20
-+#define clock_read_ram_end 0x80
-+
-+
-+#define	clock_sec_def 0x11
-+#define clock_min_def 0x59
-+#define clock_hour_def 0x71
-+#define clock_day_def 0x00
-+#define clock_date_def 0x20
-+#define clock_month_def 0x12
-+#define clock_year_def 0x34
-+
-+#define temp_read_base 0x00
-+#define temp_write_base 0x80
-+#define temp_read_control 0x00
-+#define temp_write_control 0x80
-+#define temp_read_msb 0x02
-+#define temp_read_lsb 0x01
-+
-+#define MAX_TEMP_VAR 10
-+
-+#endif /*_ASM_SPI_H_*/
---- linux/include/asm-nios2nommu/spinlock.h
-+++ linux/include/asm-nios2nommu/spinlock.h
-@@ -0,0 +1,30 @@
-+#ifndef __NIOS_SPINLOCK_H
-+#define __NIOS_SPINLOCK_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/spinlock.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#error "Nios doesn't do SMP yet"
-+
-+#endif
---- linux/include/asm-nios2nommu/spi_struct.h
-+++ linux/include/asm-nios2nommu/spi_struct.h
-@@ -0,0 +1,57 @@
-+// SPI Registers
-+typedef volatile struct
-+  {
-+  int np_spirxdata;       // Read-only, 1-16 bit
-+  int np_spitxdata;       // Write-only, same width as rxdata
-+  int np_spistatus;       // Read-only, 9-bit
-+  int np_spicontrol;      // Read/Write, 9-bit
-+  int np_spireserved;     // reserved
-+  int np_spislaveselect;  // Read/Write, 1-16 bit, master only
-+  int np_spiendofpacket;  // Read/write, same width as txdata, rxdata.
-+  } np_spi;
-+
-+// SPI Status Register Bits
-+enum
-+  {
-+  np_spistatus_eop_bit  = 9,
-+  np_spistatus_e_bit    = 8,
-+  np_spistatus_rrdy_bit = 7,
-+  np_spistatus_trdy_bit = 6,
-+  np_spistatus_tmt_bit  = 5,
-+  np_spistatus_toe_bit  = 4,
-+  np_spistatus_roe_bit  = 3,
-+
-+  np_spistatus_eop_mask  = (1 << 9),
-+  np_spistatus_e_mask    = (1 << 8),
-+  np_spistatus_rrdy_mask = (1 << 7),
-+  np_spistatus_trdy_mask = (1 << 6),
-+  np_spistatus_tmt_mask  = (1 << 5),
-+  np_spistatus_toe_mask  = (1 << 4),
-+  np_spistatus_roe_mask  = (1 << 3),
-+  };
-+
-+// SPI Control Register Bits
-+enum
-+  {
-+  np_spicontrol_sso_bit   = 10,
-+  np_spicontrol_ieop_bit  = 9,
-+  np_spicontrol_ie_bit    = 8,
-+  np_spicontrol_irrdy_bit = 7,
-+  np_spicontrol_itrdy_bit = 6,
-+  np_spicontrol_itoe_bit  = 4,
-+  np_spicontrol_iroe_bit  = 3,
-+
-+  np_spicontrol_sso_mask   = (1 << 10),
-+  np_spicontrol_ieop_mask  = (1 << 9),
-+  np_spicontrol_ie_mask    = (1 << 8),
-+  np_spicontrol_irrdy_mask = (1 << 7),
-+  np_spicontrol_itrdy_mask = (1 << 6),
-+  np_spicontrol_itoe_mask  = (1 << 4),
-+  np_spicontrol_iroe_mask  = (1 << 3),
-+  };
-+
-+// SPI Routines.
-+int nr_spi_rxchar(np_spi *spiBase);
-+int nr_spi_txchar(int i, np_spi *spiBase);
-+
-+
---- linux/include/asm-nios2nommu/statfs.h
-+++ linux/include/asm-nios2nommu/statfs.h
-@@ -0,0 +1,30 @@
-+#ifndef _NIOS2NOMMU_STATFS_H
-+#define _NIOS2NOMMU_STATFS_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/statfs.h
-+ *
-+ * Derived from M68knommu
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm-generic/statfs.h>
-+
-+#endif /* _NIOS2NOMMU_STATFS_H */
---- linux/include/asm-nios2nommu/stat.h
-+++ linux/include/asm-nios2nommu/stat.h
-@@ -0,0 +1,102 @@
-+#ifndef _ASMNIOS2NOMMU_STAT_H
-+#define _ASMNIOS2NOMMU_STAT_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/stat.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+struct __old_kernel_stat {
-+	unsigned short st_dev;
-+	unsigned short st_ino;
-+	unsigned short st_mode;
-+	unsigned short st_nlink;
-+	unsigned short st_uid;
-+	unsigned short st_gid;
-+	unsigned short st_rdev;
-+	unsigned long  st_size;
-+	unsigned long  st_atime;
-+	unsigned long  st_mtime;
-+	unsigned long  st_ctime;
-+};
-+
-+struct stat {
-+	unsigned short st_dev;
-+	unsigned short __pad1;
-+	unsigned long st_ino;
-+	unsigned short st_mode;
-+	unsigned short st_nlink;
-+	unsigned short st_uid;
-+	unsigned short st_gid;
-+	unsigned short st_rdev;
-+	unsigned short __pad2;
-+	unsigned long  st_size;
-+	unsigned long  st_blksize;
-+	unsigned long  st_blocks;
-+	unsigned long  st_atime;
-+	unsigned long  __unused1;
-+	unsigned long  st_mtime;
-+	unsigned long  __unused2;
-+	unsigned long  st_ctime;
-+	unsigned long  __unused3;
-+	unsigned long  __unused4;
-+	unsigned long  __unused5;
-+};
-+
-+/* This matches struct stat64 in glibc2.1, hence the absolutely
-+ * insane amounts of padding around dev_t's.
-+ */
-+struct stat64 {
-+	unsigned long long	st_dev;
-+	unsigned char	__pad1[4];
-+
-+#define STAT64_HAS_BROKEN_ST_INO	1
-+	unsigned long	__st_ino;
-+
-+	unsigned int	st_mode;
-+	unsigned int	st_nlink;
-+
-+	unsigned long	st_uid;
-+	unsigned long	st_gid;
-+
-+	unsigned long long	st_rdev;
-+	unsigned char	__pad3[4];
-+
-+	long long	st_size;
-+	unsigned long	st_blksize;
-+
-+	unsigned long	__pad4;		/* future possible st_blocks high bits */
-+	unsigned long	st_blocks;	/* Number 512-byte blocks allocated. */
-+
-+	unsigned long	st_atime;
-+	unsigned long	st_atime_nsec;
-+
-+	unsigned long	st_mtime;
-+	unsigned long	st_mtime_nsec;
-+
-+	unsigned long	st_ctime;
-+	unsigned long	st_ctime_nsec;
-+
-+	unsigned long long	st_ino;
-+};
-+
-+#endif
---- linux/include/asm-nios2nommu/string.h
-+++ linux/include/asm-nios2nommu/string.h
-@@ -0,0 +1,45 @@
-+#ifndef __NIOS_STRING_H__
-+#define __NIOS_STRING_H__
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/string.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#ifdef __KERNEL__ /* only set these up for kernel code */
-+
-+#define __HAVE_ARCH_MEMMOVE
-+void * memmove(void * d, const void * s, size_t count);
-+#define __HAVE_ARCH_MEMCPY
-+extern void * memcpy(void *d, const void *s, size_t count);
-+#define __HAVE_ARCH_MEMSET
-+extern void * memset(void * s,int c,size_t count);
-+
-+#if 0
-+#define __HAVE_ARCH_BCOPY
-+#define __HAVE_ARCH_STRLEN
-+#endif
-+
-+#endif /* KERNEL */
-+
-+#endif /* !(__NIOS_STRING_H__) */
---- linux/include/asm-nios2nommu/system.h
-+++ linux/include/asm-nios2nommu/system.h
-@@ -0,0 +1,172 @@
-+/*
-+ * Taken from the m68k.
-+ *
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef _NIOS2NOMMU_SYSTEM_H
-+#define _NIOS2NOMMU_SYSTEM_H
-+
-+// #include <linux/config.h> /* get configuration macros */
-+#include <linux/linkage.h>
-+#include <asm/segment.h>
-+#include <asm/entry.h>
-+#include <asm/nios.h>
-+
-+/*
-+ * switch_to(n) should switch tasks to task ptr, first checking that
-+ * ptr isn't the current task, in which case it does nothing.  This
-+ * also clears the TS-flag if the task we switched to has used the
-+ * math co-processor latest.
-+ */
-+
-+/*
-+ */
-+asmlinkage void resume(void);
-+#define switch_to(prev,next,last)				\
-+{								\
-+  void *_last;							\
-+  __asm__ __volatile__(						\
-+  	"mov	r4, %1\n"					\
-+	"mov	r5, %2\n"					\
-+	"call	resume\n"					\
-+	"mov	%0,r4\n"					\
-+       : "=r" (_last)						\
-+       : "r" (prev), "r" (next)					\
-+       : "r4","r5","r7","r8","ra");	\
-+  (last) = _last;						\
-+}
-+
-+#define local_irq_enable() __asm__ __volatile__ (  \
-+	"rdctl	r8, status\n"			   \
-+	"ori	r8, r8, 1\n"			   \
-+	"wrctl	status, r8\n"			   \
-+	: : : "r8")	  
-+
-+#define local_irq_disable() __asm__ __volatile__ ( \
-+	"rdctl	r8, status\n"			   \
-+	"andi	r8, r8, 0xfffe\n"		   \
-+	"wrctl	status, r8\n"			   \
-+	: : : "r8")
-+
-+#define local_save_flags(x) __asm__ __volatile__ (	\
-+	"rdctl	r8, status\n"				\
-+	"mov	%0, r8\n"				\
-+	:"=r" (x) : : "r8", "memory")
-+
-+#define local_irq_restore(x) __asm__ __volatile__ (	\
-+	"mov	r8, %0\n"				\
-+	"wrctl	status, r8\n"				\
-+	: :"r" (x) : "memory")
-+
-+/* For spinlocks etc */
-+#define local_irq_save(x) do { local_save_flags(x); local_irq_disable(); } while (0)
-+
-+#define	irqs_disabled()					\
-+({							\
-+	unsigned long flags;				\
-+	local_save_flags(flags);			\
-+	((flags & NIOS2_STATUS_PIE_MSK) == 0x0);	\
-+})
-+
-+#define iret() __asm__ __volatile__ ("eret": : :"memory", "ea")
-+
-+/*
-+ * Force strict CPU ordering.
-+ * Not really required on m68k...
-+ */
-+#define nop()  asm volatile ("nop"::)
-+#define mb()   asm volatile (""   : : :"memory")
-+#define rmb()  asm volatile (""   : : :"memory")
-+#define wmb()  asm volatile (""   : : :"memory")
-+#define set_rmb(var, value)    do { xchg(&var, value); } while (0)
-+#define set_mb(var, value)     set_rmb(var, value)
-+#define set_wmb(var, value)    do { var = value; wmb(); } while (0)
-+
-+#ifdef CONFIG_SMP
-+#define smp_mb()	mb()
-+#define smp_rmb()	rmb()
-+#define smp_wmb()	wmb()
-+#define smp_read_barrier_depends()	read_barrier_depends()
-+#else
-+#define smp_mb()	barrier()
-+#define smp_rmb()	barrier()
-+#define smp_wmb()	barrier()
-+#define smp_read_barrier_depends()	do { } while(0)
-+#endif
-+
-+#define xchg(ptr,x) ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr))))
-+#define tas(ptr) (xchg((ptr),1))
-+
-+struct __xchg_dummy { unsigned long a[100]; };
-+#define __xg(x) ((volatile struct __xchg_dummy *)(x))
-+
-+static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int size)
-+{
-+  unsigned long tmp, flags;
-+
-+  local_irq_save(flags);
-+
-+  switch (size) {
-+  case 1:
-+    __asm__ __volatile__( \
-+      "ldb	%0, %2\n" \
-+      "stb	%1, %2\n" \
-+    : "=&r" (tmp) : "r" (x), "m" (*__xg(ptr)) : "memory");
-+    break;
-+  case 2:
-+    __asm__ __volatile__( \
-+      "ldh	%0, %2\n" \
-+      "sth	%1, %2\n" \
-+    : "=&r" (tmp) : "r" (x), "m" (*__xg(ptr)) : "memory");
-+    break;
-+  case 4:
-+    __asm__ __volatile__( \
-+      "ldw	%0, %2\n" \
-+      "stw	%1, %2\n" \
-+    : "=&r" (tmp) : "r" (x), "m" (*__xg(ptr)) : "memory");
-+    break;
-+  }
-+  local_irq_restore(flags);
-+  return tmp;
-+}
-+
-+/*
-+ * Atomic compare and exchange.  Compare OLD with MEM, if identical,
-+ * store NEW in MEM.  Return the initial value in MEM.  Success is
-+ * indicated by comparing RETURN with OLD.
-+ */
-+#define __HAVE_ARCH_CMPXCHG	1
-+
-+static __inline__ unsigned long
-+cmpxchg(volatile int *p, int old, int new)
-+{
-+	unsigned long flags;
-+	int prev;
-+
-+	local_irq_save(flags);
-+	if ((prev = *p) == old)
-+		*p = new;
-+	local_irq_restore(flags);
-+	return(prev);
-+}
-+
-+#endif /* _NIOS2NOMMU_SYSTEM_H */
---- linux/include/asm-nios2nommu/termbits.h
-+++ linux/include/asm-nios2nommu/termbits.h
-@@ -0,0 +1,199 @@
-+#ifndef __ARCH_NIOS_TERMBITS_H__
-+#define __ARCH_NIOS_TERMBITS_H__
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/termbits.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <linux/posix_types.h>
-+
-+typedef unsigned char	cc_t;
-+typedef unsigned int	speed_t;
-+typedef unsigned int	tcflag_t;
-+
-+#define NCCS 19
-+struct termios {
-+	tcflag_t c_iflag;		/* input mode flags */
-+	tcflag_t c_oflag;		/* output mode flags */
-+	tcflag_t c_cflag;		/* control mode flags */
-+	tcflag_t c_lflag;		/* local mode flags */
-+	cc_t c_line;			/* line discipline */
-+	cc_t c_cc[NCCS];		/* control characters */
-+};
-+
-+/* c_cc characters */
-+#define VINTR 0
-+#define VQUIT 1
-+#define VERASE 2
-+#define VKILL 3
-+#define VEOF 4
-+#define VTIME 5
-+#define VMIN 6
-+#define VSWTC 7
-+#define VSTART 8
-+#define VSTOP 9
-+#define VSUSP 10
-+#define VEOL 11
-+#define VREPRINT 12
-+#define VDISCARD 13
-+#define VWERASE 14
-+#define VLNEXT 15
-+#define VEOL2 16
-+
-+
-+/* c_iflag bits */
-+#define IGNBRK	0000001
-+#define BRKINT	0000002
-+#define IGNPAR	0000004
-+#define PARMRK	0000010
-+#define INPCK	0000020
-+#define ISTRIP	0000040
-+#define INLCR	0000100
-+#define IGNCR	0000200
-+#define ICRNL	0000400
-+#define IUCLC	0001000
-+#define IXON	0002000
-+#define IXANY	0004000
-+#define IXOFF	0010000
-+#define IMAXBEL	0020000
-+#define IUTF8	0040000
-+
-+/* c_oflag bits */
-+#define OPOST	0000001
-+#define OLCUC	0000002
-+#define ONLCR	0000004
-+#define OCRNL	0000010
-+#define ONOCR	0000020
-+#define ONLRET	0000040
-+#define OFILL	0000100
-+#define OFDEL	0000200
-+#define NLDLY	0000400
-+#define   NL0	0000000
-+#define   NL1	0000400
-+#define CRDLY	0003000
-+#define   CR0	0000000
-+#define   CR1	0001000
-+#define   CR2	0002000
-+#define   CR3	0003000
-+#define TABDLY	0014000
-+#define   TAB0	0000000
-+#define   TAB1	0004000
-+#define   TAB2	0010000
-+#define   TAB3	0014000
-+#define   XTABS	0014000
-+#define BSDLY	0020000
-+#define   BS0	0000000
-+#define   BS1	0020000
-+#define VTDLY	0040000
-+#define   VT0	0000000
-+#define   VT1	0040000
-+#define FFDLY	0100000
-+#define   FF0	0000000
-+#define   FF1	0100000
-+
-+/* c_cflag bit meaning */
-+#define CBAUD	0010017
-+#define  B0	0000000		/* hang up */
-+#define  B50	0000001
-+#define  B75	0000002
-+#define  B110	0000003
-+#define  B134	0000004
-+#define  B150	0000005
-+#define  B200	0000006
-+#define  B300	0000007
-+#define  B600	0000010
-+#define  B1200	0000011
-+#define  B1800	0000012
-+#define  B2400	0000013
-+#define  B4800	0000014
-+#define  B9600	0000015
-+#define  B19200	0000016
-+#define  B38400	0000017
-+#define EXTA B19200
-+#define EXTB B38400
-+#define CSIZE	0000060
-+#define   CS5	0000000
-+#define   CS6	0000020
-+#define   CS7	0000040
-+#define   CS8	0000060
-+#define CSTOPB	0000100
-+#define CREAD	0000200
-+#define PARENB	0000400
-+#define PARODD	0001000
-+#define HUPCL	0002000
-+#define CLOCAL	0004000
-+#define CBAUDEX 0010000
-+#define    B57600 0010001
-+#define   B115200 0010002
-+#define   B230400 0010003
-+#define   B460800 0010004
-+#define   B500000 0010005
-+#define   B576000 0010006
-+#define   B921600 0010007
-+#define  B1000000 0010010
-+#define  B1152000 0010011
-+#define  B1500000 0010012
-+#define  B2000000 0010013
-+#define  B2500000 0010014
-+#define  B3000000 0010015
-+#define  B3500000 0010016
-+#define  B4000000 0010017
-+#define CIBAUD	  002003600000	/* input baud rate (not used) */
-+#define CMSPAR	  010000000000		/* mark or space (stick) parity */
-+#define CRTSCTS	  020000000000		/* flow control */
-+
-+/* c_lflag bits */
-+#define ISIG	0000001
-+#define ICANON	0000002
-+#define XCASE	0000004
-+#define ECHO	0000010
-+#define ECHOE	0000020
-+#define ECHOK	0000040
-+#define ECHONL	0000100
-+#define NOFLSH	0000200
-+#define TOSTOP	0000400
-+#define ECHOCTL	0001000
-+#define ECHOPRT	0002000
-+#define ECHOKE	0004000
-+#define FLUSHO	0010000
-+#define PENDIN	0040000
-+#define IEXTEN	0100000
-+
-+
-+/* tcflow() and TCXONC use these */
-+#define	TCOOFF		0
-+#define	TCOON		1
-+#define	TCIOFF		2
-+#define	TCION		3
-+
-+/* tcflush() and TCFLSH use these */
-+#define	TCIFLUSH	0
-+#define	TCOFLUSH	1
-+#define	TCIOFLUSH	2
-+
-+/* tcsetattr uses these */
-+#define	TCSANOW		0
-+#define	TCSADRAIN	1
-+#define	TCSAFLUSH	2
-+
-+#endif /* __ARCH_NIOS_TERMBITS_H__ */
---- linux/include/asm-nios2nommu/termios.h
-+++ linux/include/asm-nios2nommu/termios.h
-@@ -0,0 +1,132 @@
-+#ifndef _NIOS_TERMIOS_H
-+#define _NIOS_TERMIOS_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/termios.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm/termbits.h>
-+#include <asm/ioctls.h>
-+ 
-+struct winsize {
-+	unsigned short ws_row;
-+	unsigned short ws_col;
-+	unsigned short ws_xpixel;
-+	unsigned short ws_ypixel;
-+};
-+
-+#define NCC 8
-+struct termio {
-+	unsigned short c_iflag;		/* input mode flags */
-+	unsigned short c_oflag;		/* output mode flags */
-+	unsigned short c_cflag;		/* control mode flags */
-+	unsigned short c_lflag;		/* local mode flags */
-+	unsigned char c_line;		/* line discipline */
-+	unsigned char c_cc[NCC];	/* control characters */
-+};
-+
-+#ifdef __KERNEL__
-+/*	intr=^C		quit=^|		erase=del	kill=^U
-+	eof=^D		vtime=\0	vmin=\1		sxtc=\0
-+	start=^Q	stop=^S		susp=^Z		eol=\0
-+	reprint=^R	discard=^U	werase=^W	lnext=^V
-+	eol2=\0
-+*/
-+#define INIT_C_CC "\003\034\177\025\004\0\1\0\021\023\032\0\022\017\027\026\0"
-+#endif
-+
-+/* modem lines */
-+#define TIOCM_LE	0x001
-+#define TIOCM_DTR	0x002
-+#define TIOCM_RTS	0x004
-+#define TIOCM_ST	0x008
-+#define TIOCM_SR	0x010
-+#define TIOCM_CTS	0x020
-+#define TIOCM_CAR	0x040
-+#define TIOCM_RNG	0x080
-+#define TIOCM_DSR	0x100
-+#define TIOCM_CD	TIOCM_CAR
-+#define TIOCM_RI	TIOCM_RNG
-+#define TIOCM_OUT1	0x2000
-+#define TIOCM_OUT2	0x4000
-+#define TIOCM_LOOP	0x8000
-+
-+/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
-+
-+/* line disciplines */
-+#define N_TTY		0
-+#define N_SLIP		1
-+#define N_MOUSE		2
-+#define N_PPP		3
-+#define N_STRIP		4
-+#define N_AX25		5
-+#define N_X25		6	/* X.25 async */
-+#define N_6PACK		7
-+#define N_MASC		8	/* Reserved for Mobitex module <kaz@cafe.net> */
-+#define N_R3964		9	/* Reserved for Simatic R3964 module */
-+#define N_PROFIBUS_FDL	10	/* Reserved for Profibus <Dave@mvhi.com> */
-+#define N_IRDA		11	/* Linux IrDa - http://irda.sourceforge.net/ */
-+#define N_SMSBLOCK	12	/* SMS block mode - for talking to GSM data cards about SMS messages */
-+#define N_HDLC		13	/* synchronous HDLC */
-+#define N_SYNC_PPP	14
-+#define N_HCI		15  /* Bluetooth HCI UART */
-+
-+#ifdef __KERNEL__
-+
-+/*
-+ * Translate a "termio" structure into a "termios". Ugh.
-+ */
-+#define user_termio_to_kernel_termios(termios, termio) \
-+({ \
-+	unsigned short tmp; \
-+	get_user(tmp, &(termio)->c_iflag); \
-+	(termios)->c_iflag = (0xffff0000 & ((termios)->c_iflag)) | tmp; \
-+	get_user(tmp, &(termio)->c_oflag); \
-+	(termios)->c_oflag = (0xffff0000 & ((termios)->c_oflag)) | tmp; \
-+	get_user(tmp, &(termio)->c_cflag); \
-+	(termios)->c_cflag = (0xffff0000 & ((termios)->c_cflag)) | tmp; \
-+	get_user(tmp, &(termio)->c_lflag); \
-+	(termios)->c_lflag = (0xffff0000 & ((termios)->c_lflag)) | tmp; \
-+	get_user((termios)->c_line, &(termio)->c_line); \
-+	copy_from_user((termios)->c_cc, (termio)->c_cc, NCC); \
-+})
-+
-+/*
-+ * Translate a "termios" structure into a "termio". Ugh.
-+ */
-+#define kernel_termios_to_user_termio(termio, termios) \
-+({ \
-+	put_user((termios)->c_iflag, &(termio)->c_iflag); \
-+	put_user((termios)->c_oflag, &(termio)->c_oflag); \
-+	put_user((termios)->c_cflag, &(termio)->c_cflag); \
-+	put_user((termios)->c_lflag, &(termio)->c_lflag); \
-+	put_user((termios)->c_line,  &(termio)->c_line); \
-+	copy_to_user((termio)->c_cc, (termios)->c_cc, NCC); \
-+})
-+
-+#define user_termios_to_kernel_termios(k, u) copy_from_user(k, u, sizeof(struct termios))
-+#define kernel_termios_to_user_termios(u, k) copy_to_user(u, k, sizeof(struct termios))
-+
-+#endif	/* __KERNEL__ */
-+
-+#endif /* _NIOS_TERMIOS_H */
---- linux/include/asm-nios2nommu/thread_info.h
-+++ linux/include/asm-nios2nommu/thread_info.h
-@@ -0,0 +1,127 @@
-+/* thread_info.h: niosnommu low-level thread information
-+ * adapted from the m68knommu
-+ *
-+ * Copyright (C) 2004 Microtronix Datacom Ltd.
-+ * Copyright (C) 2002 Microtronix Datacom 
-+ *
-+ * - Incorporating suggestions made by Linus Torvalds and Dave Miller
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef _ASM_THREAD_INFO_H
-+#define _ASM_THREAD_INFO_H
-+
-+#include <asm/page.h>
-+
-+#ifdef __KERNEL__
-+
-+#ifndef __ASSEMBLY__
-+
-+/*
-+ * low level task data.
-+ */
-+struct thread_info {
-+	struct task_struct *task;		/* main task structure */
-+	struct exec_domain *exec_domain;	/* execution domain */
-+	unsigned long	   flags;		/* low level flags */
-+	int		   cpu;			/* cpu we're on */
-+	int		   preempt_count;	/* 0 => preemptable, <0 => BUG*/
-+	struct restart_block restart_block;
-+};
-+
-+/*
-+ * macros/functions for gaining access to the thread information structure
-+ */
-+#define INIT_THREAD_INFO(tsk)			\
-+{						\
-+	.task		= &tsk,			\
-+	.exec_domain	= &default_exec_domain,	\
-+	.flags		= 0,			\
-+	.cpu		= 0,			\
-+	.preempt_count	= 1,			\
-+	.restart_block	= {			\
-+		.fn = do_no_restart_syscall,	\
-+	},					\
-+}
-+
-+#define init_thread_info	(init_thread_union.thread_info)
-+#define init_stack		(init_thread_union.stack)
-+
-+
-+/* how to get the thread information struct from C
-+   usable only in supervisor mode */
-+static inline struct thread_info *current_thread_info(void)
-+{
-+	struct thread_info *ti;
-+	__asm__ __volatile__(
-+		"mov	%0, sp\n"
-+		"and	%0, %0, %1\n"
-+		: "=&r"(ti)
-+		: "r" (~(THREAD_SIZE-1))
-+		);
-+	return ti;
-+}
-+
-+/* thread information allocation */
-+#define alloc_thread_info(tsk) ((struct thread_info *) \
-+				__get_free_pages(GFP_KERNEL, 1))
-+#define free_thread_info(ti)	free_pages((unsigned long) (ti), 1)
-+#define put_thread_info(ti)	put_task_struct((ti)->task)
-+
-+#define	PREEMPT_ACTIVE	0x4000000
-+
-+/*
-+ * thread information flag bit numbers
-+ */
-+#define TIF_SYSCALL_TRACE 	0	/* syscall trace active */
-+#define TIF_NOTIFY_RESUME 	1	/* resumption notification requested */
-+#define TIF_SIGPENDING	  	2	/* signal pending */
-+#define TIF_NEED_RESCHED  	3	/* rescheduling necessary */
-+#define TIF_POLLING_NRFLAG	4	/* true if poll_idle() is polling
-+					   TIF_NEED_RESCHED */
-+#define TIF_MEMDIE		5
-+
-+/* as above, but as bit values */
-+#define _TIF_SYSCALL_TRACE	(1<<TIF_SYSCALL_TRACE)
-+#define _TIF_NOTIFY_RESUME	(1<<TIF_NOTIFY_RESUME)
-+#define _TIF_SIGPENDING		(1<<TIF_SIGPENDING)
-+#define _TIF_NEED_RESCHED	(1<<TIF_NEED_RESCHED)
-+#define _TIF_POLLING_NRFLAG	(1<<TIF_POLLING_NRFLAG)
-+
-+#define _TIF_WORK_MASK		0x0000FFFE	/* work to do on interrupt/exception return */
-+
-+#else /* __ASSEMBLY__ */
-+
-+/* how to get the thread information struct from ASM 
-+   usable only in supervisor mode */
-+.macro GET_THREAD_INFO reg 
-+.if THREAD_SIZE & 0xffff0000
-+	andhi	\reg, sp, %hi(~(THREAD_SIZE-1))
-+.else
-+	addi	\reg, r0, %lo(~(THREAD_SIZE-1))
-+	and	\reg, \reg, sp
-+.endif
-+.endm
-+
-+#endif /* __ASSEMBLY__ */
-+
-+#endif /* __KERNEL__ */
-+
-+#endif /* _ASM_THREAD_INFO_H */
---- linux/include/asm-nios2nommu/timer_struct.h
-+++ linux/include/asm-nios2nommu/timer_struct.h
-@@ -0,0 +1,38 @@
-+
-+// ----------------------------------------------
-+// Timer Peripheral
-+
-+// Timer Registers
-+typedef volatile struct
-+	{
-+	int np_timerstatus;  // read only, 2 bits (any write to clear TO)
-+	int np_timercontrol; // write/readable, 4 bits
-+	int np_timerperiodl; // write/readable, 16 bits
-+	int np_timerperiodh; // write/readable, 16 bits
-+	int np_timersnapl;   // read only, 16 bits
-+	int np_timersnaph;   // read only, 16 bits
-+	} np_timer;
-+
-+// Timer Register Bits
-+enum
-+	{
-+	np_timerstatus_run_bit    = 1, // timer is running
-+	np_timerstatus_to_bit     = 0, // timer has timed out
-+
-+	np_timercontrol_stop_bit  = 3, // stop the timer
-+	np_timercontrol_start_bit = 2, // start the timer
-+	np_timercontrol_cont_bit  = 1, // continous mode
-+	np_timercontrol_ito_bit   = 0, // enable time out interrupt
-+
-+	np_timerstatus_run_mask    = (1<<1), // timer is running
-+	np_timerstatus_to_mask     = (1<<0), // timer has timed out
-+
-+	np_timercontrol_stop_mask  = (1<<3), // stop the timer
-+	np_timercontrol_start_mask = (1<<2), // start the timer
-+	np_timercontrol_cont_mask  = (1<<1), // continous mode
-+	np_timercontrol_ito_mask   = (1<<0)  // enable time out interrupt
-+	};
-+
-+// Timer Routines
-+int nr_timer_milliseconds(void);	// Starts on first call, hogs timer1.
-+
---- linux/include/asm-nios2nommu/timex.h
-+++ linux/include/asm-nios2nommu/timex.h
-@@ -0,0 +1,48 @@
-+#ifndef _ASMNIOS2NOMMU_TIMEX_H
-+#define _ASMNIOS2NOMMU_TIMEX_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/timex.h
-+ *
-+ * timex specifications
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm/nios.h>
-+
-+
-+#define CLOCK_TICK_RATE	nasys_clock_freq /* Underlying HZ */
-+
-+#define CLOCK_TICK_FACTOR	20	/* Factor of both 1000000 and CLOCK_TICK_RATE */
-+
-+#define FINETUNE ((((((long)LATCH * HZ - CLOCK_TICK_RATE) << SHIFT_HZ) * \
-+	(1000000/CLOCK_TICK_FACTOR) / (CLOCK_TICK_RATE/CLOCK_TICK_FACTOR)) \
-+		<< (SHIFT_SCALE-SHIFT_HZ)) / HZ)
-+
-+typedef unsigned long cycles_t;
-+
-+static inline cycles_t get_cycles(void)
-+{
-+	return 0;
-+}
-+
-+#endif
---- linux/include/asm-nios2nommu/tlbflush.h
-+++ linux/include/asm-nios2nommu/tlbflush.h
-@@ -0,0 +1,86 @@
-+#ifndef _NIOS2NOMMU_TLBFLUSH_H
-+#define _NIOS2NOMMU_TLBFLUSH_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/tlbflush.h
-+ *
-+ * Ported from m68knommu.
-+ *
-+ * Copyright (C) 2003 Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+#include <asm/setup.h>
-+
-+/*
-+ * flush all user-space atc entries.
-+ */
-+static inline void __flush_tlb(void)
-+{
-+	BUG();
-+}
-+
-+static inline void __flush_tlb_one(unsigned long addr)
-+{
-+	BUG();
-+}
-+
-+#define flush_tlb() __flush_tlb()
-+
-+/*
-+ * flush all atc entries (both kernel and user-space entries).
-+ */
-+static inline void flush_tlb_all(void)
-+{
-+	BUG();
-+}
-+
-+static inline void flush_tlb_mm(struct mm_struct *mm)
-+{
-+	BUG();
-+}
-+
-+static inline void flush_tlb_page(struct vm_area_struct *vma, unsigned long addr)
-+{
-+	BUG();
-+}
-+
-+static inline void flush_tlb_range(struct mm_struct *mm,
-+				   unsigned long start, unsigned long end)
-+{
-+	BUG();
-+}
-+
-+extern inline void flush_tlb_kernel_page(unsigned long addr)
-+{
-+	BUG();
-+}
-+
-+extern inline void flush_tlb_pgtables(struct mm_struct *mm,
-+				      unsigned long start, unsigned long end)
-+{
-+	BUG();
-+}
-+
-+#endif /* _NIOS2NOMMU_TLBFLUSH_H */
---- linux/include/asm-nios2nommu/tlb.h
-+++ linux/include/asm-nios2nommu/tlb.h
-@@ -0,0 +1,35 @@
-+#ifndef __NIOS_TLB_H__
-+#define __NIOS_TLB_H__
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/tlb.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ *  Copyright (C) 2003  Microtronix Datacom Ltd
-+ *  Copyright (C) 2002  NEC Corporation
-+ *  Copyright (C) 2002  Miles Bader <miles@gnu.org>
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Written by Miles Bader <miles@gnu.org>
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+#define tlb_flush(tlb)	((void)0)
-+
-+#include <asm-generic/tlb.h>
-+
-+#endif /* __NIOS_TLB_H__ */
-+
---- linux/include/asm-nios2nommu/topology.h
-+++ linux/include/asm-nios2nommu/topology.h
-@@ -0,0 +1,30 @@
-+#ifndef _ASM_NIOS2NOMMU_TOPOLOGY_H
-+#define _ASM_NIOS2NOMMU_TOPOLOGY_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/topology.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm-generic/topology.h>
-+
-+#endif /* _ASM_NIOS2NOMMU_TOPOLOGY_H */
---- linux/include/asm-nios2nommu/traps.h
-+++ linux/include/asm-nios2nommu/traps.h
-@@ -0,0 +1,27 @@
-+/*
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+#ifndef _NIOS2_TRAPS_H
-+#define _NIOS2_TRAPS_H
-+
-+#define TRAP_ID_SYSCALL 0
-+#define TRAP_ID_APPDEBUG 1
-+#endif /* !(_NIOS2_TRAPS_H) */
---- linux/include/asm-nios2nommu/types.h
-+++ linux/include/asm-nios2nommu/types.h
-@@ -0,0 +1,93 @@
-+#ifndef _NIOS_TYPES_H
-+#define _NIOS_TYPES_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/types.h
-+ *
-+ * Derived from m68knommu
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+/*
-+ * This file is never included by application software unless
-+ * explicitly requested (e.g., via linux/types.h) in which case the
-+ * application is Linux specific so (user-) name space pollution is
-+ * not a major issue.  However, for interoperability, libraries still
-+ * need to be careful to avoid a name clashes.
-+ */
-+
-+#ifndef __ASSEMBLY__
-+
-+typedef unsigned short umode_t;
-+
-+/*
-+ * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
-+ * header files exported to user space
-+ */
-+
-+typedef __signed__ char __s8;
-+typedef unsigned char __u8;
-+
-+typedef __signed__ short __s16;
-+typedef unsigned short __u16;
-+
-+typedef __signed__ int __s32;
-+typedef unsigned int __u32;
-+
-+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-+typedef __signed__ long long __s64;
-+typedef unsigned long long __u64;
-+#endif
-+
-+#endif /* __ASSEMBLY__ */
-+
-+/*
-+ * These aren't exported outside the kernel to avoid name space clashes
-+ */
-+#ifdef __KERNEL__
-+
-+#define BITS_PER_LONG 32
-+
-+#ifndef __ASSEMBLY__
-+
-+typedef signed char s8;
-+typedef unsigned char u8;
-+
-+typedef signed short s16;
-+typedef unsigned short u16;
-+
-+typedef signed int s32;
-+typedef unsigned int u32;
-+
-+typedef signed long long s64;
-+typedef unsigned long long u64;
-+
-+/* DMA addresses are always 32-bits wide */
-+
-+typedef u32 dma_addr_t;
-+typedef u32 dma64_addr_t;
-+
-+typedef unsigned short kmem_bufctl_t;
-+
-+#endif /* __ASSEMBLY__ */
-+
-+#endif /* __KERNEL__ */
-+
-+#endif /* _NIOS_TYPES_H */
---- linux/include/asm-nios2nommu/uaccess.h
-+++ linux/include/asm-nios2nommu/uaccess.h
-@@ -0,0 +1,183 @@
-+#ifndef __NIOS2NOMMU_UACCESS_H
-+#define __NIOS2NOMMU_UACCESS_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * asm-nios2nommu/uaccess.h
-+ *
-+ * User space memory access functions
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Ported from asm-m68knommu/uaccess.h --wentao
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <linux/sched.h>
-+#include <linux/mm.h>
-+#include <asm/segment.h>
-+#include <asm/nios.h>
-+
-+#define VERIFY_READ	0
-+#define VERIFY_WRITE	1
-+
-+#define access_ok(type,addr,size)	_access_ok((unsigned long)(addr),(size))
-+
-+static inline int _access_ok(unsigned long addr, unsigned long size)
-+{
-+	return (((unsigned long)addr < (unsigned long)nasys_program_mem_end) &&
-+		(((unsigned long)addr >= (unsigned long)nasys_program_mem)));
-+}
-+
-+extern inline int verify_area(int type, const void * addr, unsigned long size)
-+{
-+	return access_ok(type,addr,size)?0:-EFAULT;
-+}
-+
-+/*
-+ * The exception table consists of pairs of addresses: the first is the
-+ * address of an instruction that is allowed to fault, and the second is
-+ * the address at which the program should continue.  No registers are
-+ * modified, so it is entirely up to the continuation code to figure out
-+ * what to do.
-+ *
-+ * All the routines below use bits of fixup code that are out of line
-+ * with the main instruction path.  This means when everything is well,
-+ * we don't even have to jump over them.  Further, they do not intrude
-+ * on our cache or tlb entries.
-+ */
-+
-+#define ARCH_HAS_SEARCH_EXTABLE
-+//;dgt2;tmp;
-+
-+struct exception_table_entry
-+{
-+	unsigned long insn, fixup;
-+};
-+
-+/* Returns 0 if exception not found and fixup otherwise.  */
-+extern unsigned long search_exception_table(unsigned long);
-+
-+
-+/*
-+ * These are the main single-value transfer routines.  They automatically
-+ * use the right size if we just have the right pointer type.
-+ */
-+
-+#define put_user(x, ptr)				\
-+({							\
-+    int __pu_err = 0;					\
-+    typeof(*(ptr)) __pu_val = (x);			\
-+    switch (sizeof (*(ptr))) {				\
-+    case 1:						\
-+    case 2:						\
-+    case 4:						\
-+    case 8:						\
-+	memcpy(ptr, &__pu_val, sizeof (*(ptr))); \
-+	break;						\
-+    default:						\
-+	__pu_err = __put_user_bad();			\
-+	break;						\
-+    }							\
-+    __pu_err;						\
-+})
-+#define __put_user(x, ptr) put_user(x, ptr)
-+
-+extern int __put_user_bad(void);
-+
-+/*
-+ * Tell gcc we read from memory instead of writing: this is because
-+ * we do not write to any memory gcc knows about, so there are no
-+ * aliasing issues.
-+ */
-+
-+#define __ptr(x) ((unsigned long *)(x))
-+
-+#define get_user(x, ptr)					\
-+({								\
-+    int __gu_err = 0;						\
-+    typeof(*(ptr)) __gu_val = 0;				\
-+    switch (sizeof(*(ptr))) {					\
-+    case 1:						\
-+    case 2:						\
-+    case 4:						\
-+    case 8:						\
-+	memcpy(&__gu_val, ptr, sizeof (*(ptr))); \
-+	break;							\
-+    default:							\
-+	__gu_val = 0;						\
-+	__gu_err = __get_user_bad();				\
-+	break;							\
-+    }								\
-+    (x) = __gu_val;						\
-+    __gu_err;							\
-+})
-+#define __get_user(x, ptr) get_user(x, ptr)
-+
-+extern int __get_user_bad(void);
-+
-+#define copy_from_user(to, from, n)		(memcpy(to, from, n), 0)
-+#define copy_to_user(to, from, n)		(memcpy(to, from, n), 0)
-+
-+#define __copy_from_user(to, from, n) copy_from_user(to, from, n)
-+#define __copy_to_user(to, from, n) copy_to_user(to, from, n)
-+#define __copy_to_user_inatomic __copy_to_user
-+#define __copy_from_user_inatomic __copy_from_user
-+
-+#define copy_to_user_ret(to,from,n,retval) ({ if (copy_to_user(to,from,n)) return retval; })
-+
-+#define copy_from_user_ret(to,from,n,retval) ({ if (copy_from_user(to,from,n)) return retval; })
-+
-+/*
-+ * Copy a null terminated string from userspace.
-+ */
-+
-+static inline long
-+strncpy_from_user(char *dst, const char *src, long count)
-+{
-+	char *tmp;
-+	strncpy(dst, src, count);
-+	for (tmp = dst; *tmp && count > 0; tmp++, count--)
-+		;
-+	return(tmp - dst); /* DAVIDM should we count a NUL ?  check getname */
-+}
-+
-+/*
-+ * Return the size of a string (including the ending 0)
-+ *
-+ * Return 0 on exception, a value greater than N if too long
-+ */
-+static inline long strnlen_user(const char *src, long n)
-+{
-+	return(strlen(src) + 1); /* DAVIDM make safer */
-+}
-+
-+#define strlen_user(str) strnlen_user(str, 32767)
-+
-+/*
-+ * Zero Userspace
-+ */
-+
-+static inline unsigned long
-+clear_user(void *to, unsigned long n)
-+{
-+	memset(to, 0, n);
-+    return(0);
-+}
-+
-+#endif /* _NIOS2NOMMU_UACCESS_H */
---- linux/include/asm-nios2nommu/uart_struct.h
-+++ linux/include/asm-nios2nommu/uart_struct.h
-@@ -0,0 +1,83 @@
-+
-+// UART Registers
-+typedef volatile struct
-+	{
-+	int np_uartrxdata;      // Read-only, 8-bit
-+	int np_uarttxdata;      // Write-only, 8-bit
-+	int np_uartstatus;      // Read-only, 8-bit
-+	int np_uartcontrol;     // Read/Write, 9-bit
-+	int np_uartdivisor;     // Read/Write, 16-bit, optional
-+	int np_uartendofpacket; // Read/Write, end-of-packet character
-+	} np_uart;
-+
-+// UART Status Register Bits
-+enum
-+	{
-+	np_uartstatus_eop_bit  = 12,
-+	np_uartstatus_cts_bit  = 11,
-+	np_uartstatus_dcts_bit = 10,
-+	np_uartstatus_e_bit    = 8,
-+	np_uartstatus_rrdy_bit = 7,
-+	np_uartstatus_trdy_bit = 6,
-+	np_uartstatus_tmt_bit  = 5,
-+	np_uartstatus_toe_bit  = 4,
-+	np_uartstatus_roe_bit  = 3,
-+	np_uartstatus_brk_bit  = 2,
-+	np_uartstatus_fe_bit   = 1,
-+	np_uartstatus_pe_bit   = 0,
-+
-+	np_uartstatus_eop_mask  = (1<<12),
-+	np_uartstatus_cts_mask  = (1<<11),
-+	np_uartstatus_dcts_mask = (1<<10),
-+	np_uartstatus_e_mask    = (1<<8),
-+	np_uartstatus_rrdy_mask = (1<<7),
-+	np_uartstatus_trdy_mask = (1<<6),
-+	np_uartstatus_tmt_mask  = (1<<5),
-+	np_uartstatus_toe_mask  = (1<<4),
-+	np_uartstatus_roe_mask  = (1<<3),
-+	np_uartstatus_brk_mask  = (1<<2),
-+	np_uartstatus_fe_mask   = (1<<1),
-+	np_uartstatus_pe_mask   = (1<<0)
-+	};
-+
-+// UART Control Register Bits
-+enum
-+	{
-+	np_uartcontrol_ieop_bit  = 12,
-+	np_uartcontrol_rts_bit   = 11,
-+	np_uartcontrol_idcts_bit = 10,
-+	np_uartcontrol_tbrk_bit  = 9,
-+	np_uartcontrol_ie_bit    = 8,
-+	np_uartcontrol_irrdy_bit = 7,
-+	np_uartcontrol_itrdy_bit = 6,
-+	np_uartcontrol_itmt_bit  = 5,
-+	np_uartcontrol_itoe_bit  = 4,
-+	np_uartcontrol_iroe_bit  = 3,
-+	np_uartcontrol_ibrk_bit  = 2,
-+	np_uartcontrol_ife_bit   = 1,
-+	np_uartcontrol_ipe_bit   = 0,
-+
-+	np_uartcontrol_ieop_mask  = (1<<12),
-+	np_uartcontrol_rts_mask   = (1<<11),
-+	np_uartcontrol_idcts_mask = (1<<10),
-+	np_uartcontrol_tbrk_mask  = (1<<9),
-+	np_uartcontrol_ie_mask    = (1<<8),
-+	np_uartcontrol_irrdy_mask = (1<<7),
-+	np_uartcontrol_itrdy_mask = (1<<6),
-+	np_uartcontrol_itmt_mask  = (1<<5),
-+	np_uartcontrol_itoe_mask  = (1<<4),
-+	np_uartcontrol_iroe_mask  = (1<<3),
-+	np_uartcontrol_ibrk_mask  = (1<<2),
-+	np_uartcontrol_ife_mask   = (1<<1),
-+	np_uartcontrol_ipe_mask   = (1<<0)
-+	};
-+
-+// UART Routines
-+int nr_uart_rxchar(np_uart *uartBase);        // 0 for default UART
-+void nr_uart_txcr(void);
-+void nr_uart_txchar(int c,np_uart *uartBase); // 0 for default UART
-+void nr_uart_txhex(int x);                     // 16 or 32 bits
-+void nr_uart_txhex16(short x);
-+void nr_uart_txhex32(long x);
-+void nr_uart_txstring(char *s);
-+
---- linux/include/asm-nios2nommu/ucontext.h
-+++ linux/include/asm-nios2nommu/ucontext.h
-@@ -0,0 +1,63 @@
-+#ifndef _NIOSKNOMMU_UCONTEXT_H
-+#define _NIOSKNOMMU_UCONTEXT_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/ucontext.h
-+ *
-+ * Derived from M68knommu
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+typedef int greg_t;
-+#define NGREG 32
-+typedef greg_t gregset_t[NGREG];
-+
-+#ifdef CONFIG_FPU
-+typedef struct fpregset {
-+	int f_pcr;
-+	int f_psr;
-+	int f_fpiaddr;
-+	int f_fpregs[8][3];
-+} fpregset_t;
-+#endif
-+
-+struct mcontext {
-+	int version;
-+	int status_extension;
-+	gregset_t gregs;
-+#ifdef CONFIG_FPU
-+	fpregset_t fpregs;
-+#endif
-+};
-+
-+#define MCONTEXT_VERSION 2
-+
-+struct ucontext {
-+	unsigned long	  uc_flags;
-+	struct ucontext  *uc_link;
-+	stack_t		  uc_stack;
-+	struct mcontext	  uc_mcontext;
-+#ifdef CONFIG_FPU
-+	unsigned long	  uc_filler[80];
-+#endif
-+	sigset_t	  uc_sigmask;	/* mask last for extensibility */
-+};
-+
-+#endif
---- linux/include/asm-nios2nommu/unaligned.h
-+++ linux/include/asm-nios2nommu/unaligned.h
-@@ -0,0 +1,43 @@
-+#ifndef __NIOS_UNALIGNED_H
-+#define __NIOS_UNALIGNED_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/unaligned.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+/*
-+ * The nios cannot do unaligned accesses itself. 
-+ */ 
-+
-+#define get_unaligned(ptr) ({			\
-+	typeof((*(ptr))) x;			\
-+	memcpy(&x, (void*)ptr, sizeof(*(ptr)));	\
-+	x;					\
-+})
-+
-+#define put_unaligned(val, ptr) ({		\
-+	typeof((*(ptr))) x = val;		\
-+	memcpy((void*)ptr, &x, sizeof(*(ptr)));	\
-+})
-+
-+#endif /* __NIOS_UNALIGNED_H */
---- linux/include/asm-nios2nommu/unistd.h
-+++ linux/include/asm-nios2nommu/unistd.h
-@@ -0,0 +1,686 @@
-+#ifndef _ASM_NIOS_UNISTD_H_
-+#define _ASM_NIOS_UNISTD_H_
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/unistd.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * //vic - kernel_thread moved to process.c
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm/traps.h>
-+
-+/* TRAP isr expects the trap# (syscall=#TRAP_ID_SYSCALL) in r2,
-+ *  the syscall # in r3, and arguments in r4, r5, ...
-+ * Return argument expected in r2.
-+ */
-+
-+#define __NR_restart_syscall      0
-+#define __NR_exit		  1
-+#define __NR_fork		  2
-+#define __NR_read		  3
-+#define __NR_write		  4
-+#define __NR_open		  5
-+#define __NR_close		  6
-+#define __NR_waitpid		  7
-+#define __NR_creat		  8
-+#define __NR_link		  9
-+#define __NR_unlink		 10
-+#define __NR_execve		 11
-+#define __NR_chdir		 12
-+#define __NR_time		 13
-+#define __NR_mknod		 14
-+#define __NR_chmod		 15
-+#define __NR_chown		 16
-+#define __NR_break		 17
-+#define __NR_oldstat		 18
-+#define __NR_lseek		 19
-+#define __NR_getpid		 20
-+#define __NR_mount		 21
-+#define __NR_umount		 22
-+#define __NR_setuid		 23
-+#define __NR_getuid		 24
-+#define __NR_stime		 25
-+#define __NR_ptrace		 26
-+#define __NR_alarm		 27
-+#define __NR_oldfstat		 28
-+#define __NR_pause		 29
-+#define __NR_utime		 30
-+#define __NR_stty		 31
-+#define __NR_gtty		 32
-+#define __NR_access		 33
-+#define __NR_nice		 34
-+#define __NR_ftime		 35
-+#define __NR_sync		 36
-+#define __NR_kill		 37
-+#define __NR_rename		 38
-+#define __NR_mkdir		 39
-+#define __NR_rmdir		 40
-+#define __NR_dup		 41
-+#define __NR_pipe		 42
-+#define __NR_times		 43
-+#define __NR_prof		 44
-+#define __NR_brk		 45
-+#define __NR_setgid		 46
-+#define __NR_getgid		 47
-+#define __NR_signal		 48
-+#define __NR_geteuid		 49
-+#define __NR_getegid		 50
-+#define __NR_acct		 51
-+#define __NR_umount2		 52	//vic #define __NR_phys		 52
-+#define __NR_lock		 53
-+#define __NR_ioctl		 54
-+#define __NR_fcntl		 55
-+#define __NR_mpx		 56
-+#define __NR_setpgid		 57
-+#define __NR_ulimit		 58
-+#define __NR_oldolduname	 59
-+#define __NR_umask		 60
-+#define __NR_chroot		 61
-+#define __NR_ustat		 62
-+#define __NR_dup2		 63
-+#define __NR_getppid		 64
-+#define __NR_getpgrp		 65
-+#define __NR_setsid		 66
-+#define __NR_sigaction		 67
-+#define __NR_sgetmask		 68
-+#define __NR_ssetmask		 69
-+#define __NR_setreuid		 70
-+#define __NR_setregid		 71
-+#define __NR_sigsuspend		 72
-+#define __NR_sigpending		 73
-+#define __NR_sethostname	 74
-+#define __NR_setrlimit		 75
-+#define __NR_getrlimit		 76
-+#define __NR_getrusage		 77
-+#define __NR_gettimeofday	 78
-+#define __NR_settimeofday	 79
-+#define __NR_getgroups		 80
-+#define __NR_setgroups		 81
-+#define __NR_select		 82
-+#define __NR_symlink		 83
-+#define __NR_oldlstat		 84
-+#define __NR_readlink		 85
-+#define __NR_uselib		 86
-+#define __NR_swapon		 87
-+#define __NR_reboot		 88
-+#define __NR_readdir		 89
-+#define __NR_mmap		 90
-+#define __NR_munmap		 91
-+#define __NR_truncate		 92
-+#define __NR_ftruncate		 93
-+#define __NR_fchmod		 94
-+#define __NR_fchown		 95
-+#define __NR_getpriority	 96
-+#define __NR_setpriority	 97
-+#define __NR_profil		 98
-+#define __NR_statfs		 99
-+#define __NR_fstatfs		100
-+#define __NR_ioperm		101
-+#define __NR_socketcall		102
-+#define __NR_syslog		103
-+#define __NR_setitimer		104
-+#define __NR_getitimer		105
-+#define __NR_stat		106
-+#define __NR_lstat		107
-+#define __NR_fstat		108
-+#define __NR_olduname		109
-+#define __NR_iopl		/* 110 */ not supported
-+#define __NR_vhangup		111
-+#define __NR_idle		/* 112 */ Obsolete
-+#define __NR_vm86		/* 113 */ not supported
-+#define __NR_wait4		114
-+#define __NR_swapoff		115
-+#define __NR_sysinfo		116
-+#define __NR_ipc		117
-+#define __NR_fsync		118
-+#define __NR_sigreturn		119
-+#define __NR_clone		120
-+#define __NR_setdomainname	121
-+#define __NR_uname		122
-+#define __NR_cacheflush		123
-+#define __NR_adjtimex		124
-+#define __NR_mprotect		125
-+#define __NR_sigprocmask	126
-+#define __NR_create_module	127
-+#define __NR_init_module	128
-+#define __NR_delete_module	129
-+#define __NR_get_kernel_syms	130
-+#define __NR_quotactl		131
-+#define __NR_getpgid		132
-+#define __NR_fchdir		133
-+#define __NR_bdflush		134
-+#define __NR_sysfs		135
-+#define __NR_personality	136
-+#define __NR_afs_syscall	137 /* Syscall for Andrew File System */
-+#define __NR_setfsuid		138
-+#define __NR_setfsgid		139
-+#define __NR__llseek		140
-+#define __NR_getdents		141
-+#define __NR__newselect		142
-+#define __NR_flock		143
-+#define __NR_msync		144
-+#define __NR_readv		145
-+#define __NR_writev		146
-+#define __NR_getsid		147
-+#define __NR_fdatasync		148
-+#define __NR__sysctl		149
-+#define __NR_mlock		150
-+#define __NR_munlock		151
-+#define __NR_mlockall		152
-+#define __NR_munlockall		153
-+#define __NR_sched_setparam		154
-+#define __NR_sched_getparam		155
-+#define __NR_sched_setscheduler		156
-+#define __NR_sched_getscheduler		157
-+#define __NR_sched_yield		158
-+#define __NR_sched_get_priority_max	159
-+#define __NR_sched_get_priority_min	160
-+#define __NR_sched_rr_get_interval	161
-+#define __NR_nanosleep		162
-+#define __NR_mremap		163
-+#define __NR_setresuid		164
-+#define __NR_getresuid		165
-+#define __NR_getpagesize	166
-+#define __NR_query_module	167
-+#define __NR_poll		168
-+#define __NR_nfsservctl		169
-+#define __NR_setresgid		170
-+#define __NR_getresgid		171
-+#define __NR_prctl		172
-+#define __NR_rt_sigreturn	173
-+#define __NR_rt_sigaction	174
-+#define __NR_rt_sigprocmask	175
-+#define __NR_rt_sigpending	176
-+#define __NR_rt_sigtimedwait	177
-+#define __NR_rt_sigqueueinfo	178
-+#define __NR_rt_sigsuspend	179
-+#define __NR_pread		180
-+#define __NR_pwrite		181
-+#define __NR_lchown		182
-+#define __NR_getcwd		183
-+#define __NR_capget		184
-+#define __NR_capset		185
-+#define __NR_sigaltstack	186
-+#define __NR_sendfile		187
-+#define __NR_getpmsg		188	/* some people actually want streams */
-+#define __NR_putpmsg		189	/* some people actually want streams */
-+#define __NR_vfork		190
-+#define __NR_ugetrlimit		191
-+#define __NR_mmap2		192
-+#define __NR_truncate64		193
-+#define __NR_ftruncate64	194
-+#define __NR_stat64		195
-+#define __NR_lstat64		196
-+#define __NR_fstat64		197
-+#define __NR_chown32		198
-+#define __NR_getuid32		199
-+#define __NR_getgid32		200
-+#define __NR_geteuid32		201
-+#define __NR_getegid32		202
-+#define __NR_setreuid32		203
-+#define __NR_setregid32		204
-+#define __NR_getgroups32	205
-+#define __NR_setgroups32	206
-+#define __NR_fchown32		207
-+#define __NR_setresuid32	208
-+#define __NR_getresuid32	209
-+#define __NR_setresgid32	210
-+#define __NR_getresgid32	211
-+#define __NR_lchown32		212
-+#define __NR_setuid32		213
-+#define __NR_setgid32		214
-+#define __NR_setfsuid32		215
-+#define __NR_setfsgid32		216
-+#define __NR_pivot_root		217
-+/* 218 unused */
-+/* 219 unused */
-+#define __NR_getdents64		220
-+#define __NR_gettid		221
-+#define __NR_tkill		222
-+#define __NR_setxattr		223
-+#define __NR_lsetxattr		224
-+#define __NR_fsetxattr		225
-+#define __NR_getxattr		226
-+#define __NR_lgetxattr		227
-+#define __NR_fgetxattr		228
-+#define __NR_listxattr		229
-+#define __NR_llistxattr		230
-+#define __NR_flistxattr		231
-+#define __NR_removexattr	232
-+#define __NR_lremovexattr	233
-+#define __NR_fremovexattr	234
-+#define __NR_futex		235
-+#define __NR_sendfile64		236
-+#define __NR_mincore		237
-+#define __NR_madvise		238
-+#define __NR_fcntl64		239
-+#define __NR_readahead		240
-+#define __NR_io_setup		241
-+#define __NR_io_destroy		242
-+#define __NR_io_getevents	243
-+#define __NR_io_submit		244
-+#define __NR_io_cancel		245
-+#define __NR_fadvise64		246
-+#define __NR_exit_group		247
-+#define __NR_lookup_dcookie	248
-+#define __NR_epoll_create	249
-+#define __NR_epoll_ctl		250
-+#define __NR_epoll_wait		251
-+#define __NR_remap_file_pages	252
-+#define __NR_set_tid_address	253
-+#define __NR_timer_create	254
-+#define __NR_timer_settime	255
-+#define __NR_timer_gettime	256
-+#define __NR_timer_getoverrun	257
-+#define __NR_timer_delete	258
-+#define __NR_clock_settime	259
-+#define __NR_clock_gettime	260
-+#define __NR_clock_getres	261
-+#define __NR_clock_nanosleep	262
-+#define __NR_statfs64		263
-+#define __NR_fstatfs64		264
-+#define __NR_tgkill		265
-+#define __NR_utimes		266
-+#define __NR_fadvise64_64	267
-+#define __NR_mbind		268
-+#define __NR_get_mempolicy	269
-+#define __NR_set_mempolicy	270
-+#define __NR_mq_open		271
-+#define __NR_mq_unlink		272
-+#define __NR_mq_timedsend	273
-+#define __NR_mq_timedreceive	274
-+#define __NR_mq_notify		275
-+#define __NR_mq_getsetattr	276
-+#define __NR_waitid		277
-+#define __NR_sys_setaltroot	278
-+#define __NR_add_key		279
-+#define __NR_request_key	280
-+#define __NR_keyctl		281
-+
-+#define NR_syscalls		282
-+
-+/* user-visible error numbers are in the range -1 - -122: see
-+   <asm-nios2nommu/errno.h> */
-+
-+#define __syscall_return(type, res) \
-+do { \
-+	if ((unsigned long)(res) >= (unsigned long)(-125)) { \
-+                                                                        \
-+                /* avoid using res which is declared to be in           \
-+                    register r2; errno might expand to a function       \
-+                    call and clobber it.                          */    \
-+                                                                        \
-+		int __err = -(res); \
-+		errno = __err; \
-+		res = -1; \
-+	} \
-+	return (type) (res); \
-+} while (0)
-+
-+#define _syscall0(type,name) \
-+type name(void) \
-+{ \
-+    long __res;                                             \
-+                                                            \
-+    __asm__ __volatile__ (                                  \
-+                                                            \
-+        "    \n\t"                                          \
-+                                                            \
-+        "    movi    r2,    %2\n\t"   /* TRAP_ID_SYSCALL */ \
-+        "    movi    r3,    %1\n\t"   /* __NR_##name     */ \
-+                                                            \
-+        "    trap\n\t"                                      \
-+        "    mov     %0,    r2\n\t"   /* syscall rtn     */ \
-+                                                            \
-+        "    \n\t"                                          \
-+                                                            \
-+        :   "=r" (__res)              /* %0              */ \
-+                                                            \
-+        :   "i" (__NR_##name)         /* %1              */ \
-+          , "i" (TRAP_ID_SYSCALL)     /* %2              */ \
-+                                                            \
-+        :   "r2"                      /* Clobbered       */ \
-+          , "r3"                      /* Clobbered       */ \
-+        );                                                  \
-+                                                            \
-+__syscall_return(type,__res); \
-+}
-+
-+//;dgt2;tmp;can we RELY on syscall1 arg a
-+//;dgt2;tmp; already being in r4 ?
-+#define _syscall1(type,name,atype,a) \
-+type name(atype a) \
-+{ \
-+    long __res;                                             \
-+                                                            \
-+    __asm__ __volatile__ (                                  \
-+                                                            \
-+        "    \n\t"                                          \
-+                                                            \
-+        "    movi    r2,    %2\n\t"   /* TRAP_ID_SYSCALL */ \
-+        "    movi    r3,    %1\n\t"   /* __NR_##name     */ \
-+        "    mov     r4,    %3\n\t"   /* (long) a        */ \
-+                                                            \
-+        "    trap\n\t"                                      \
-+        "    mov     %0,    r2\n\t"   /* syscall rtn     */ \
-+                                                            \
-+        "    \n\t"                                          \
-+                                                            \
-+        :   "=r" (__res)              /* %0              */ \
-+                                                            \
-+        :   "i" (__NR_##name)         /* %1              */ \
-+          , "i" (TRAP_ID_SYSCALL)     /* %2              */ \
-+          , "r" ((long) a)            /* %3              */ \
-+                                                            \
-+        :   "r2"                      /* Clobbered       */ \
-+          , "r3"                      /* Clobbered       */ \
-+          , "r4"                      /* Clobbered       */ \
-+        );                                                  \
-+                                                            \
-+__syscall_return(type,__res); \
-+}
-+
-+//;dgt2;tmp;can we RELY on syscall2 args a,b
-+//;dgt2;tmp; already being in r4,r5 ?
-+#define _syscall2(type,name,atype,a,btype,b) \
-+type name(atype a,btype b) \
-+{ \
-+    long __res;                                             \
-+                                                            \
-+    __asm__ __volatile__ (                                  \
-+                                                            \
-+        "    \n\t"                                          \
-+                                                            \
-+        "    movi    r2,    %2\n\t"   /* TRAP_ID_SYSCALL */ \
-+        "    movi    r3,    %1\n\t"   /* __NR_##name     */ \
-+        "    mov     r4,    %3\n\t"   /* (long) a        */ \
-+        "    mov     r5,    %4\n\t"   /* (long) b        */ \
-+                                                            \
-+        "    trap\n\t"                                      \
-+        "    mov     %0,    r2\n\t"   /* syscall rtn     */ \
-+                                                            \
-+        "    \n\t"                                          \
-+                                                            \
-+        :   "=r" (__res)              /* %0              */ \
-+                                                            \
-+        :   "i" (__NR_##name)         /* %1              */ \
-+          , "i" (TRAP_ID_SYSCALL)     /* %2              */ \
-+          , "r" ((long) a)            /* %3              */ \
-+          , "r" ((long) b)            /* %4              */ \
-+                                                            \
-+        :   "r2"                      /* Clobbered       */ \
-+          , "r3"                      /* Clobbered       */ \
-+          , "r4"                      /* Clobbered       */ \
-+          , "r5"                      /* Clobbered       */ \
-+        );                                                  \
-+                                                            \
-+__syscall_return(type,__res); \
-+}
-+
-+//;dgt2;tmp;can we RELY on syscall3 args a,b,c
-+//;dgt2;tmp; already being in r4,r5,r6 ?
-+#define _syscall3(type,name,atype,a,btype,b,ctype,c) \
-+type name(atype a,btype b,ctype c) \
-+{ \
-+    long __res;                                             \
-+                                                            \
-+    __asm__ __volatile__ (                                  \
-+                                                            \
-+        "    \n\t"                                          \
-+                                                            \
-+        "    movi    r2,    %2\n\t"   /* TRAP_ID_SYSCALL */ \
-+        "    movi    r3,    %1\n\t"   /* __NR_##name     */ \
-+        "    mov     r4,    %3\n\t"   /* (long) a        */ \
-+        "    mov     r5,    %4\n\t"   /* (long) b        */ \
-+        "    mov     r6,    %5\n\t"   /* (long) c        */ \
-+                                                            \
-+        "    trap\n\t"                                      \
-+        "    mov     %0,    r2\n\t"   /* syscall rtn     */ \
-+                                                            \
-+        "    \n\t"                                          \
-+                                                            \
-+        :   "=r" (__res)              /* %0              */ \
-+                                                            \
-+        :   "i" (__NR_##name)         /* %1              */ \
-+          , "i" (TRAP_ID_SYSCALL)     /* %2              */ \
-+          , "r" ((long) a)            /* %3              */ \
-+          , "r" ((long) b)            /* %4              */ \
-+          , "r" ((long) c)            /* %5              */ \
-+                                                            \
-+        :   "r2"                      /* Clobbered       */ \
-+          , "r3"                      /* Clobbered       */ \
-+          , "r4"                      /* Clobbered       */ \
-+          , "r5"                      /* Clobbered       */ \
-+          , "r6"                      /* Clobbered       */ \
-+        );                                                  \
-+                                                            \
-+__syscall_return(type,__res); \
-+}
-+
-+//;dgt2;tmp;can we RELY on syscall4 args a,b,c,d
-+//;dgt2;tmp; already being in r4,r5,r6,r7 ?
-+#define _syscall4(type,name,atype,a,btype,b,ctype,c,dtype,d) \
-+type name (atype a, btype b, ctype c, dtype d) \
-+{ \
-+    long __res;                                             \
-+                                                            \
-+    __asm__ __volatile__ (                                  \
-+                                                            \
-+        "    \n\t"                                          \
-+                                                            \
-+        "    movi    r2,    %2\n\t"   /* TRAP_ID_SYSCALL */ \
-+        "    movi    r3,    %1\n\t"   /* __NR_##name     */ \
-+        "    mov     r4,    %3\n\t"   /* (long) a        */ \
-+        "    mov     r5,    %4\n\t"   /* (long) b        */ \
-+        "    mov     r6,    %5\n\t"   /* (long) c        */ \
-+        "    mov     r7,    %6\n\t"   /* (long) d        */ \
-+                                                            \
-+        "    trap\n\t"                                      \
-+        "    mov     %0,    r2\n\t"   /* syscall rtn     */ \
-+                                                            \
-+        "    \n\t"                                          \
-+                                                            \
-+        :   "=r" (__res)              /* %0              */ \
-+                                                            \
-+        :   "i" (__NR_##name)         /* %1              */ \
-+          , "i" (TRAP_ID_SYSCALL)     /* %2              */ \
-+          , "r" ((long) a)            /* %3              */ \
-+          , "r" ((long) b)            /* %4              */ \
-+          , "r" ((long) c)            /* %5              */ \
-+          , "r" ((long) d)            /* %6              */ \
-+                                                            \
-+        :   "r2"                      /* Clobbered       */ \
-+          , "r3"                      /* Clobbered       */ \
-+          , "r4"                      /* Clobbered       */ \
-+          , "r5"                      /* Clobbered       */ \
-+          , "r6"                      /* Clobbered       */ \
-+          , "r7"                      /* Clobbered       */ \
-+        );                                                  \
-+                                                            \
-+__syscall_return(type,__res); \
-+}
-+
-+//;dgt2;tmp;can we RELY on syscall5 args a,b,c,d
-+//;dgt2;tmp; already being in r4,r5,r6,r7 ?
-+#define _syscall5(type,name,atype,a,btype,b,ctype,c,dtype,d,etype,e) \
-+type name (atype a,btype b,ctype c,dtype d,etype e) \
-+{ \
-+    long __res;                                             \
-+                                                            \
-+    __asm__ __volatile__ (                                  \
-+                                                            \
-+        "    \n\t"                                          \
-+                                                            \
-+        "    movi    r2,    %2\n\t"   /* TRAP_ID_SYSCALL */ \
-+        "    movi    r3,    %1\n\t"   /* __NR_##name     */ \
-+        "    mov     r4,    %3\n\t"   /* (long) a        */ \
-+        "    mov     r5,    %4\n\t"   /* (long) b        */ \
-+        "    mov     r6,    %5\n\t"   /* (long) c        */ \
-+        "    mov     r7,    %6\n\t"   /* (long) c        */ \
-+        "    mov     r8,    %7\n\t"   /* (long) e        */ \
-+                                                            \
-+        "    trap\n\t"                                      \
-+        "    mov     %0,    r2\n\t"   /* syscall rtn     */ \
-+                                                            \
-+        "    \n\t"                                          \
-+                                                            \
-+        :   "=r" (__res)              /* %0              */ \
-+                                                            \
-+        :   "i" (__NR_##name)         /* %1              */ \
-+          , "i" (TRAP_ID_SYSCALL)     /* %2              */ \
-+          , "r" ((long) a)            /* %3              */ \
-+          , "r" ((long) b)            /* %4              */ \
-+          , "r" ((long) c)            /* %5              */ \
-+          , "r" ((long) d)            /* %6              */ \
-+          , "r" ((long) e)            /* %7              */ \
-+                                                            \
-+        :   "r2"                      /* Clobbered       */ \
-+          , "r3"                      /* Clobbered       */ \
-+          , "r4"                      /* Clobbered       */ \
-+          , "r5"                      /* Clobbered       */ \
-+          , "r6"                      /* Clobbered       */ \
-+          , "r7"                      /* Clobbered       */ \
-+          , "r8"                      /* Clobbered       */ \
-+        );                                                  \
-+                                                            \
-+__syscall_return(type,__res); \
-+}
-+
-+//;dgt2;tmp;can we RELY on syscall6 args a,b,c,d
-+//;dgt2;tmp; already being in r4,r5,r6,r7 ?
-+#define _syscall6(type,name,atype,a,btype,b,ctype,c,dtype,d,etype,e,ftype,f) \
-+type name (atype a,btype b,ctype c,dtype d,etype e,ftype f) \
-+{ \
-+    long __res;                                             \
-+                                                            \
-+    __asm__ __volatile__ (                                  \
-+                                                            \
-+        "    \n\t"                                          \
-+                                                            \
-+        "    movi    r2,    %2\n\t"   /* TRAP_ID_SYSCALL */ \
-+        "    movi    r3,    %1\n\t"   /* __NR_##name     */ \
-+        "    mov     r4,    %3\n\t"   /* (long) a        */ \
-+        "    mov     r5,    %4\n\t"   /* (long) b        */ \
-+        "    mov     r6,    %5\n\t"   /* (long) c        */ \
-+        "    mov     r7,    %6\n\t"   /* (long) c        */ \
-+        "    mov     r8,    %7\n\t"   /* (long) e        */ \
-+        "    mov     r9,    %8\n\t"   /* (long) f        */ \
-+                                                            \
-+        "    trap\n\t"                                      \
-+        "    mov     %0,    r2\n\t"   /* syscall rtn     */ \
-+                                                            \
-+        "    \n\t"                                          \
-+                                                            \
-+        :   "=r" (__res)              /* %0              */ \
-+                                                            \
-+        :   "i" (__NR_##name)         /* %1              */ \
-+          , "i" (TRAP_ID_SYSCALL)     /* %2              */ \
-+          , "r" ((long) a)            /* %3              */ \
-+          , "r" ((long) b)            /* %4              */ \
-+          , "r" ((long) c)            /* %5              */ \
-+          , "r" ((long) d)            /* %6              */ \
-+          , "r" ((long) e)            /* %7              */ \
-+          , "r" ((long) f)            /* %8              */ \
-+                                                            \
-+        :   "r2"                      /* Clobbered       */ \
-+          , "r3"                      /* Clobbered       */ \
-+          , "r4"                      /* Clobbered       */ \
-+          , "r5"                      /* Clobbered       */ \
-+          , "r6"                      /* Clobbered       */ \
-+          , "r7"                      /* Clobbered       */ \
-+          , "r8"                      /* Clobbered       */ \
-+          , "r9"                      /* Clobbered       */ \
-+        );                                                  \
-+                                                            \
-+__syscall_return(type,__res); \
-+}
-+
-+#ifdef __KERNEL__
-+#define __ARCH_WANT_IPC_PARSE_VERSION
-+#define __ARCH_WANT_OLD_READDIR
-+#define __ARCH_WANT_OLD_STAT
-+#define __ARCH_WANT_STAT64
-+#define __ARCH_WANT_SYS_ALARM
-+#define __ARCH_WANT_SYS_GETHOSTNAME
-+#define __ARCH_WANT_SYS_PAUSE
-+#define __ARCH_WANT_SYS_SGETMASK
-+#define __ARCH_WANT_SYS_SIGNAL
-+#define __ARCH_WANT_SYS_TIME
-+#define __ARCH_WANT_SYS_UTIME
-+#define __ARCH_WANT_SYS_WAITPID
-+#define __ARCH_WANT_SYS_SOCKETCALL
-+#define __ARCH_WANT_SYS_FADVISE64
-+#define __ARCH_WANT_SYS_GETPGRP
-+#define __ARCH_WANT_SYS_LLSEEK
-+#define __ARCH_WANT_SYS_NICE
-+#define __ARCH_WANT_SYS_OLD_GETRLIMIT
-+#define __ARCH_WANT_SYS_OLDUMOUNT
-+#define __ARCH_WANT_SYS_SIGPENDING
-+#define __ARCH_WANT_SYS_SIGPROCMASK
-+#define __ARCH_WANT_SYS_RT_SIGACTION
-+#endif
-+
-+#ifdef __KERNEL_SYSCALLS__
-+
-+/*
-+ * we need this inline - forking from kernel space will result
-+ * in NO COPY ON WRITE (!!!), until an execve is executed. This
-+ * is no problem, but for the stack. This is handled by not letting
-+ * main() use the stack at all after fork(). Thus, no function
-+ * calls - which means inline code for fork too, as otherwise we
-+ * would use the stack upon exit from 'fork()'.
-+ *
-+ * Actually only pause and fork are needed inline, so that there
-+ * won't be any messing with the stack from main(), but we define
-+ * some others too.
-+ */
-+#define __NR__exit __NR_exit
-+static inline _syscall0(int,pause)
-+static inline _syscall0(int,sync)
-+static inline _syscall0(pid_t,setsid)
-+static inline _syscall3(int,write,int,fd,const char *,buf,off_t,count)
-+static inline _syscall3(int,read,int,fd,char *,buf,off_t,count)
-+static inline _syscall3(off_t,lseek,int,fd,off_t,offset,int,count)
-+static inline _syscall1(int,dup,int,fd)
-+static inline _syscall3(int,execve,const char *,file,char **,argv,char **,envp)
-+static inline _syscall3(int,open,const char *,file,int,flag,int,mode)
-+static inline _syscall1(int,close,int,fd)
-+static inline _syscall1(int,_exit,int,exitcode)
-+static inline _syscall3(pid_t,waitpid,pid_t,pid,int *,wait_stat,int,options)
-+static inline _syscall1(int,delete_module,const char *,name)
-+
-+static inline pid_t wait(int * wait_stat)
-+{
-+	return waitpid(-1,wait_stat,0);
-+}
-+
-+#endif
-+
-+/*
-+ * "Conditional" syscalls
-+ *
-+ * What we want is __attribute__((weak,alias("sys_ni_syscall"))),
-+ * but it doesn't work on all toolchains, so we just do it by hand
-+ */
-+#define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall");
-+
-+#endif /* _ASM_NIOS_UNISTD_H_ */
---- linux/include/asm-nios2nommu/user.h
-+++ linux/include/asm-nios2nommu/user.h
-@@ -0,0 +1,112 @@
-+#ifndef _NIOS2NOMMU_USER_H
-+#define _NIOS2NOMMU_USER_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/user.h
-+ *
-+ * Derived from M68knommu
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm/page.h>
-+
-+/* Core file format: The core file is written in such a way that gdb
-+   can understand it and provide useful information to the user (under
-+   linux we use the 'trad-core' bfd).  There are quite a number of
-+   obstacles to being able to view the contents of the floating point
-+   registers, and until these are solved you will not be able to view the
-+   contents of them.  Actually, you can read in the core file and look at
-+   the contents of the user struct to find out what the floating point
-+   registers contain.
-+   The actual file contents are as follows:
-+   UPAGE: 1 page consisting of a user struct that tells gdb what is present
-+   in the file.  Directly after this is a copy of the task_struct, which
-+   is currently not used by gdb, but it may come in useful at some point.
-+   All of the registers are stored as part of the upage.  The upage should
-+   always be only one page.
-+   DATA: The data area is stored.  We use current->end_text to
-+   current->brk to pick up all of the user variables, plus any memory
-+   that may have been malloced.  No attempt is made to determine if a page
-+   is demand-zero or if a page is totally unused, we just cover the entire
-+   range.  All of the addresses are rounded in such a way that an integral
-+   number of pages is written.
-+   STACK: We need the stack information in order to get a meaningful
-+   backtrace.  We need to write the data from (esp) to
-+   current->start_stack, so we round each of these off in order to be able
-+   to write an integer number of pages.
-+   The minimum core file size is 3 pages, or 12288 bytes.
-+*/
-+
-+struct user_m68kfp_struct {
-+	unsigned long  fpregs[8*3];	/* fp0-fp7 registers */
-+	unsigned long  fpcntl[3];	/* fp control regs */
-+};
-+
-+/* This is needs more work, probably should look like gdb useage */
-+struct user_regs_struct {
-+	long r1,r2,r3,r4,r5,r6,r7,r8;
-+	long r9,r10,r11,r12,r13,r14,r15;
-+	long r16,r17,r18,r19,r20,r21,r22,r23;
-+	long gp;
-+	long sp;
-+	long ra;
-+	long fp;
-+	long orig_r2;
-+	long estatus;
-+	long status_extension;
-+	long ea;
-+};
-+
-+	
-+/* When the kernel dumps core, it starts by dumping the user struct -
-+   this will be used by gdb to figure out where the data and stack segments
-+   are within the file, and what virtual addresses to use. */
-+struct user{
-+/* We start with the registers, to mimic the way that "memory" is returned
-+   from the ptrace(3,...) function.  */
-+  struct user_regs_struct regs;	/* Where the registers are actually stored */
-+/* ptrace does not yet supply these.  Someday.... */
-+  int u_fpvalid;		/* True if math co-processor being used. */
-+                                /* for this mess. Not yet used. */
-+  struct user_m68kfp_struct m68kfp; /* Math Co-processor registers. */
-+/* The rest of this junk is to help gdb figure out what goes where */
-+  unsigned long int u_tsize;	/* Text segment size (pages). */
-+  unsigned long int u_dsize;	/* Data segment size (pages). */
-+  unsigned long int u_ssize;	/* Stack segment size (pages). */
-+  unsigned long start_code;     /* Starting virtual address of text. */
-+  unsigned long start_stack;	/* Starting virtual address of stack area.
-+				   This is actually the bottom of the stack,
-+				   the top of the stack is always found in the
-+				   esp register.  */
-+  long int signal;     		/* Signal that caused the core dump. */
-+  int reserved;			/* No longer used */
-+  struct user_regs_struct *u_ar0;
-+				/* Used by gdb to help find the values for */
-+				/* the registers. */
-+  struct user_m68kfp_struct* u_fpstate;	/* Math Co-processor pointer. */
-+  unsigned long magic;		/* To uniquely identify a core file */
-+  char u_comm[32];		/* User command that was responsible */
-+};
-+#define NBPG PAGE_SIZE
-+#define UPAGES 1
-+#define HOST_TEXT_START_ADDR (u.start_code)
-+#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
-+
-+#endif
---- linux/include/asm-nios2nommu/virtconvert.h
-+++ linux/include/asm-nios2nommu/virtconvert.h
-@@ -0,0 +1,47 @@
-+#ifndef __NIOS_VIRT_CONVERT__
-+#define __NIOS_VIRT_CONVERT__
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/virtconvert.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+/*
-+ * Macros used for converting between virtual and physical mappings.
-+ */
-+
-+#ifdef __KERNEL__
-+
-+// #include <linux/config.h>
-+#include <asm/setup.h>
-+#include <asm/page.h>
-+
-+#define mm_ptov(vaddr)		((void *) (vaddr))
-+#define mm_vtop(vaddr)		((unsigned long) (vaddr))
-+#define phys_to_virt(vaddr)	((void *) (vaddr))
-+#define virt_to_phys(vaddr)	((unsigned long) (vaddr))
-+
-+#define virt_to_bus virt_to_phys
-+#define bus_to_virt phys_to_virt
-+
-+#endif /*__KERNEL__ */
-+#endif /*__NIOS_VIRT_CONVERT__*/

+ 0 - 75
toolchain/kernel-headers/linux-libc-headers-2.6.11.0-mips-nptl.patch

@@ -1,75 +0,0 @@
-diff -urN linux-libc-headers-2.6.11.0/include/asm-mips/inst.h linux-libc-headers-2.6.11.0-nptl/include/asm-mips/inst.h
---- linux-libc-headers-2.6.11.0/include/asm-mips/inst.h	2004-10-31 13:54:20.000000000 -0600
-+++ linux-libc-headers-2.6.11.0-nptl/include/asm-mips/inst.h	2005-05-04 23:15:45.890613280 -0500
-@@ -28,7 +28,7 @@
- 	sdl_op, sdr_op, swr_op, cache_op,
- 	ll_op, lwc1_op, lwc2_op, pref_op,
- 	lld_op, ldc1_op, ldc2_op, ld_op,
--	sc_op, swc1_op, swc2_op, major_3b_op, /* Opcode 0x3b is unused */
-+	sc_op, swc1_op, swc2_op, rdhwr_op,
- 	scd_op, sdc1_op, sdc2_op, sd_op
- };
- 
-diff -urN linux-libc-headers-2.6.11.0/include/asm-mips/unistd.h linux-libc-headers-2.6.11.0-nptl/include/asm-mips/unistd.h
---- linux-libc-headers-2.6.11.0/include/asm-mips/unistd.h	2005-01-08 08:02:51.000000000 -0600
-+++ linux-libc-headers-2.6.11.0-nptl/include/asm-mips/unistd.h	2005-05-04 23:16:48.240229738 -0500
-@@ -303,16 +303,17 @@
- #define __NR_add_key			(__NR_Linux + 280)
- #define __NR_request_key		(__NR_Linux + 281)
- #define __NR_keyctl			(__NR_Linux + 282)
-+#define __NR_set_thread_area		(__NR_Linux + 283)
- 
- /*
-  * Offset of the last Linux o32 flavoured syscall
-  */
--#define __NR_Linux_syscalls		282
-+#define __NR_Linux_syscalls		283
- 
- #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
- 
- #define __NR_O32_Linux			4000
--#define __NR_O32_Linux_syscalls		282
-+#define __NR_O32_Linux_syscalls		283
- 
- #if _MIPS_SIM == _MIPS_SIM_ABI64
- 
-@@ -562,16 +563,17 @@
- #define __NR_add_key			(__NR_Linux + 239)
- #define __NR_request_key		(__NR_Linux + 240)
- #define __NR_keyctl			(__NR_Linux + 241)
-+#define __NR_set_thread_area		(__NR_Linux + 242)
- 
- /*
-  * Offset of the last Linux 64-bit flavoured syscall
-  */
--#define __NR_Linux_syscalls		241
-+#define __NR_Linux_syscalls		242
- 
- #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */
- 
- #define __NR_64_Linux			5000
--#define __NR_64_Linux_syscalls		241
-+#define __NR_64_Linux_syscalls		242
- 
- #if _MIPS_SIM == _MIPS_SIM_NABI32
- 
-@@ -825,16 +827,17 @@
- #define __NR_add_key			(__NR_Linux + 243)
- #define __NR_request_key		(__NR_Linux + 244)
- #define __NR_keyctl			(__NR_Linux + 245)
-+#define __NR_set_thread_area		(__NR_Linux + 246)
- 
- /*
-  * Offset of the last N32 flavoured syscall
-  */
--#define __NR_Linux_syscalls		245
-+#define __NR_Linux_syscalls		246
- 
- #endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */
- 
- #define __NR_N32_Linux			6000
--#define __NR_N32_Linux_syscalls		245
-+#define __NR_N32_Linux_syscalls		246
- 
- #ifndef __ASSEMBLY__
- 

+ 0 - 18
toolchain/kernel-headers/linux-libc-headers-2.6.11.0.patch

@@ -1,18 +0,0 @@
---- linux/include/linux/netfilter_ipv4/ip_nat.h.orig	2005-03-21 16:18:40.000000000 -0700
-+++ linux/include/linux/netfilter_ipv4/ip_nat.h	2005-03-21 16:23:54.000000000 -0700
-@@ -66,6 +66,15 @@
- 	struct ip_conntrack_manip manip;
- };
- 
-+/* For backwards compat: don't use in modern code. */
-+struct ip_nat_multi_range_compat
-+{
-+	unsigned int rangesize; /* Must be 1. */
-+
-+	/* hangs off end. */
-+	struct ip_nat_range range[1];
-+};
-+
- #define ip_nat_multi_range ip_nat_multi_range_compat
- 
- #endif

+ 0 - 166
toolchain/kernel-headers/linux-libc-headers-2.6.12.0-arm-eabi.patch

@@ -1,166 +0,0 @@
---- linux-libc-headers-2.6.12.0/include/asm-arm/unistd.h	2005-07-06 03:17:41.000000000 +0300
-+++ linux-libc-headers-2.6.12.0-arm-eabi/include/asm-arm/unistd.h	2006-06-05 17:14:09.000000000 +0300
-@@ -15,10 +15,12 @@
- 
- #include <linux/linkage.h>
- 
--#if defined(__thumb__)
-+#define __NR_OABI_SYSCALL_BASE	0x900000
-+
-+#if defined(__thumb__) || defined(__ARM_EABI__)
- #define __NR_SYSCALL_BASE	0
- #else
--#define __NR_SYSCALL_BASE	0x900000
-+#define __NR_SYSCALL_BASE	__NR_OABI_SYSCALL_BASE
- #endif
- 
- /*
-@@ -365,13 +375,13 @@
- #define __sys1(x) __sys2(x)
- 
- #ifndef __syscall
--#if defined(__thumb__)
--#define __syscall(name)					\
--	"push	{r7}\n\t"				\
--	"mov	r7, #" __sys1(__NR_##name) "\n\t"	\
--	"swi	0\n\t"					\
--	"pop	{r7}"
-+#if defined(__thumb__) || defined(__ARM_EABI__)
-+#define __SYS_REG(name) register long __sysreg __asm__("r7") = __NR_##name;
-+#define __SYS_REG_LIST(regs...) "r" (__sysreg) , ##regs
-+#define __syscall(name) "swi\t0"
- #else
-+#define __SYS_REG(name)
-+#define __SYS_REG_LIST(regs...) regs
- #define __syscall(name) "swi\t" __sys1(__NR_##name) ""
- #endif
- #endif
-@@ -387,33 +397,34 @@
- 
- #define _syscall0(type,name)						\
- type name(void) {							\
-+  __SYS_REG(name)							\
-   register long __res_r0 __asm__("r0");					\
-   long __res;								\
-   __asm__ __volatile__ (						\
-   __syscall(name)							\
- 	: "=r" (__res_r0)						\
--	:								\
--	: "lr");							\
-+	: __SYS_REG_LIST() );						\
-   __res = __res_r0;							\
-   __syscall_return(type,__res);						\
- }
- 
- #define _syscall1(type,name,type1,arg1) 				\
- type name(type1 arg1) { 						\
-+  __SYS_REG(name)							\
-   register long __r0 __asm__("r0") = (long)arg1;			\
-   register long __res_r0 __asm__("r0");					\
-   long __res;								\
-   __asm__ __volatile__ (						\
-   __syscall(name)							\
- 	: "=r" (__res_r0)						\
--	: "r" (__r0)							\
--	: "lr");							\
-+	: __SYS_REG_LIST( "0" (__r0) ) );				\
-   __res = __res_r0;							\
-   __syscall_return(type,__res);						\
- }
- 
- #define _syscall2(type,name,type1,arg1,type2,arg2)			\
- type name(type1 arg1,type2 arg2) {					\
-+  __SYS_REG(name)							\
-   register long __r0 __asm__("r0") = (long)arg1;			\
-   register long __r1 __asm__("r1") = (long)arg2;			\
-   register long __res_r0 __asm__("r0");					\
-@@ -421,8 +432,7 @@
-   __asm__ __volatile__ (						\
-   __syscall(name)							\
- 	: "=r" (__res_r0)						\
--	: "r" (__r0),"r" (__r1) 					\
--	: "lr");							\
-+	: __SYS_REG_LIST( "0" (__r0), "r" (__r1) ) );			\
-   __res = __res_r0;							\
-   __syscall_return(type,__res);						\
- }
-@@ -430,6 +440,7 @@
- 
- #define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3)		\
- type name(type1 arg1,type2 arg2,type3 arg3) {				\
-+  __SYS_REG(name)							\
-   register long __r0 __asm__("r0") = (long)arg1;			\
-   register long __r1 __asm__("r1") = (long)arg2;			\
-   register long __r2 __asm__("r2") = (long)arg3;			\
-@@ -438,8 +449,7 @@
-   __asm__ __volatile__ (						\
-   __syscall(name)							\
- 	: "=r" (__res_r0)						\
--	: "r" (__r0),"r" (__r1),"r" (__r2)				\
--	: "lr");							\
-+	: __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2) ) );	\
-   __res = __res_r0;							\
-   __syscall_return(type,__res);						\
- }
-@@ -447,6 +457,7 @@
- 
- #define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4)\
- type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) {		\
-+  __SYS_REG(name)							\
-   register long __r0 __asm__("r0") = (long)arg1;			\
-   register long __r1 __asm__("r1") = (long)arg2;			\
-   register long __r2 __asm__("r2") = (long)arg3;			\
-@@ -456,8 +467,7 @@
-   __asm__ __volatile__ (						\
-   __syscall(name)							\
- 	: "=r" (__res_r0)						\
--	: "r" (__r0),"r" (__r1),"r" (__r2),"r" (__r3)			\
--	: "lr");							\
-+	: __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2), "r" (__r3) ) ); \
-   __res = __res_r0;							\
-   __syscall_return(type,__res);						\
- }
-@@ -465,6 +475,7 @@
- 
- #define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5)	\
- type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) {	\
-+  __SYS_REG(name)							\
-   register long __r0 __asm__("r0") = (long)arg1;			\
-   register long __r1 __asm__("r1") = (long)arg2;			\
-   register long __r2 __asm__("r2") = (long)arg3;			\
-@@ -475,14 +486,15 @@
-   __asm__ __volatile__ (						\
-   __syscall(name)							\
- 	: "=r" (__res_r0)						\
--	: "r" (__r0),"r" (__r1),"r" (__r2),"r" (__r3),"r" (__r4)	\
--	: "lr");							\
-+	: __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2),		\
-+			  "r" (__r3), "r" (__r4) ) );			\
-   __res = __res_r0;							\
-   __syscall_return(type,__res);						\
- }
- 
- #define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5,type6,arg6)	\
- type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5, type6 arg6) {	\
-+  __SYS_REG(name)							\
-   register long __r0 __asm__("r0") = (long)arg1;			\
-   register long __r1 __asm__("r1") = (long)arg2;			\
-   register long __r2 __asm__("r2") = (long)arg3;			\
-@@ -494,14 +506,15 @@
-   __asm__ __volatile__ (						\
-   __syscall(name)							\
- 	: "=r" (__res_r0)						\
--	: "r" (__r0),"r" (__r1),"r" (__r2),"r" (__r3), "r" (__r4),"r" (__r5)		\
--	: "lr");							\
-+	: __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2),		\
-+			  "r" (__r3), "r" (__r4), "r" (__r5) ) );	\
-   __res = __res_r0;							\
-   __syscall_return(type,__res);						\
- }
- 
- #ifdef __KERNEL_SYSCALLS__
- 
-+#include <linux/compiler.h>
- #include <linux/types.h>
- #include <linux/syscalls.h>
- 

+ 0 - 30
toolchain/kernel-headers/linux-libc-headers-2.6.12.0-config-base-small.patch

@@ -1,30 +0,0 @@
-diff -urN linux-libc-headers-2.6.12.0/include/linux/threads.h linux-libc-headers-2.6.12.0-patched/include/linux/threads.h
---- linux-libc-headers-2.6.12.0/include/linux/threads.h	2005-07-05 19:17:23.000000000 -0500
-+++ linux-libc-headers-2.6.12.0-patched/include/linux/threads.h	2005-08-18 11:39:15.000000000 -0500
-@@ -24,12 +24,11 @@
- /*
-  * This controls the default maximum pid allocated to a process
-  */
--#define PID_MAX_DEFAULT (CONFIG_BASE_SMALL ? 0x1000 : 0x8000)
-+#define PID_MAX_DEFAULT 0x8000
- 
- /*
-  * A maximum of 4 million PIDs should be enough for a while:
-  */
--#define PID_MAX_LIMIT (CONFIG_BASE_SMALL ? PAGE_SIZE * 8 : \
--	(sizeof(long) > 4 ? 4 * 1024 * 1024 : PID_MAX_DEFAULT))
-+#define PID_MAX_LIMIT (sizeof(long) > 4 ? 4 * 1024 * 1024 : PID_MAX_DEFAULT)
- 
- #endif
-diff -urN linux-libc-headers-2.6.12.0/include/linux/vt_kern.h linux-libc-headers-2.6.12.0-patched/include/linux/vt_kern.h
---- linux-libc-headers-2.6.12.0/include/linux/vt_kern.h	2005-07-05 19:17:23.000000000 -0500
-+++ linux-libc-headers-2.6.12.0-patched/include/linux/vt_kern.h	2005-08-18 11:39:30.000000000 -0500
-@@ -77,7 +77,7 @@
-  * we can easily avoid touching user space while holding the console spinlock.
-  */
- 
--#define CON_BUF_SIZE (CONFIG_BASE_SMALL ? 256 : PAGE_SIZE)
-+#define CON_BUF_SIZE PAGE_SIZE
- extern char con_buf[CON_BUF_SIZE];
- extern struct semaphore con_buf_sem;
- 

+ 0 - 12
toolchain/kernel-headers/linux-libc-headers-2.6.12.0-i2c_msg.patch

@@ -1,12 +0,0 @@
-diff -urpN linux-libc-headers-2.6.12.0/include/linux/i2c-dev.h linux-libc-headers-2.6.12.0-patched/include/linux/i2c-dev.h
---- linux-libc-headers-2.6.12.0/include/linux/i2c-dev.h	2005-07-06 02:17:21.000000000 +0200
-+++ linux-libc-headers-2.6.12.0-patched/include/linux/i2c-dev.h	2006-04-26 13:10:56.000000000 +0200
-@@ -44,8 +44,6 @@ struct i2c_msg {
- #define I2C_M_NO_RD_ACK		0x0800
- 	short len;		/* msg length				*/
- 	char *buf;		/* pointer to msg data			*/
--	int err;
--	short done;
- };
- 
- /* To determine what functionality is present */

+ 0 - 90
toolchain/kernel-headers/linux-libc-headers-2.6.12.0-mips-nptl.patch

@@ -1,90 +0,0 @@
-diff -urN linux-libc-headers-2.6.12.0/include/asm-mips/inst.h linux-libc-headers-2.6.12.0-mips-nptl/include/asm-mips/inst.h
---- linux-libc-headers-2.6.12.0/include/asm-mips/inst.h	2004-10-31 13:54:20.000000000 -0600
-+++ linux-libc-headers-2.6.12.0-mips-nptl/include/asm-mips/inst.h	2005-08-10 21:20:57.000000000 -0500
-@@ -28,7 +28,7 @@
- 	sdl_op, sdr_op, swr_op, cache_op,
- 	ll_op, lwc1_op, lwc2_op, pref_op,
- 	lld_op, ldc1_op, ldc2_op, ld_op,
--	sc_op, swc1_op, swc2_op, major_3b_op, /* Opcode 0x3b is unused */
-+	sc_op, swc1_op, swc2_op, rdhwr_op,
- 	scd_op, sdc1_op, sdc2_op, sd_op
- };
- 
-@@ -62,10 +62,10 @@
- 	spimi_op, unused_rt_op_0x05, unused_rt_op_0x06, unused_rt_op_0x07,
- 	tgei_op, tgeiu_op, tlti_op, tltiu_op,
- 	teqi_op, unused_0x0d_rt_op, tnei_op, unused_0x0f_rt_op,
--	bltzal_op, bgezal_op, bltzall_op, bgezall_op
--	/*
--	 * The others (0x14 - 0x1f) are unused.
-- 	 */
-+	bltzal_op, bgezal_op, bltzall_op, bgezall_op,
-+	rt_op_0x14, rt_op_0x15, rt_op_0x16, rt_op_0x17,
-+	rt_op_0x18, rt_op_0x19, rt_op_0x1a, rt_op_0x1b,
-+	bposge32_op, rt_op_0x1d, rt_op_0x1e, rt_op_0x1f
- };
- 
- /*
-diff -urN linux-libc-headers-2.6.12.0/include/asm-mips/unistd.h linux-libc-headers-2.6.12.0-mips-nptl/include/asm-mips/unistd.h
---- linux-libc-headers-2.6.12.0/include/asm-mips/unistd.h	2005-07-05 19:17:29.000000000 -0500
-+++ linux-libc-headers-2.6.12.0-mips-nptl/include/asm-mips/unistd.h	2005-08-10 21:22:27.000000000 -0500
-@@ -303,16 +303,17 @@
- #define __NR_add_key			(__NR_Linux + 280)
- #define __NR_request_key		(__NR_Linux + 281)
- #define __NR_keyctl			(__NR_Linux + 282)
-+#define __NR_set_thread_area		(__NR_Linux + 283)
- 
- /*
-  * Offset of the last Linux o32 flavoured syscall
-  */
--#define __NR_Linux_syscalls		282
-+#define __NR_Linux_syscalls		283
- 
- #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
- 
- #define __NR_O32_Linux			4000
--#define __NR_O32_Linux_syscalls		282
-+#define __NR_O32_Linux_syscalls		283
- 
- #if _MIPS_SIM == _MIPS_SIM_ABI64
- 
-@@ -562,16 +563,17 @@
- #define __NR_add_key			(__NR_Linux + 239)
- #define __NR_request_key		(__NR_Linux + 240)
- #define __NR_keyctl			(__NR_Linux + 241)
-+#define __NR_set_thread_area		(__NR_Linux + 242)
- 
- /*
-  * Offset of the last Linux 64-bit flavoured syscall
-  */
--#define __NR_Linux_syscalls		241
-+#define __NR_Linux_syscalls		242
- 
- #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */
- 
- #define __NR_64_Linux			5000
--#define __NR_64_Linux_syscalls		241
-+#define __NR_64_Linux_syscalls		242
- 
- #if _MIPS_SIM == _MIPS_SIM_NABI32
- 
-@@ -825,16 +827,17 @@
- #define __NR_add_key			(__NR_Linux + 243)
- #define __NR_request_key		(__NR_Linux + 244)
- #define __NR_keyctl			(__NR_Linux + 245)
-+#define __NR_set_thread_area		(__NR_Linux + 246)
- 
- /*
-  * Offset of the last N32 flavoured syscall
-  */
--#define __NR_Linux_syscalls		245
-+#define __NR_Linux_syscalls		246
- 
- #endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */
- 
- #define __NR_N32_Linux			6000
--#define __NR_N32_Linux_syscalls		245
-+#define __NR_N32_Linux_syscalls		246
- 
- #ifndef __ASSEMBLY__
- 

+ 0 - 8153
toolchain/kernel-headers/linux-libc-headers-2.6.8-cleanup.patch

@@ -1,8153 +0,0 @@
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/addrspace.h linux-libc-headers-2.6.8.0/include/asm-mips/addrspace.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/addrspace.h	2004-03-28 07:51:50.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/addrspace.h	2004-08-26 05:53:12.000000000 -0500
-@@ -10,7 +10,23 @@
- #ifndef _ASM_ADDRSPACE_H
- #define _ASM_ADDRSPACE_H
- 
--#include <spaces.h>
-+/**********************************************************************/
-+/* Include the common bits for #include <spaces.h> */
-+#ifndef __mips64
-+
-+#define CAC_BASE		0x80000000
-+#define IO_BASE			0xa0000000
-+#define UNCAC_BASE		0xa0000000
-+#define MAP_BASE		0xc0000000
-+
-+/*
-+ * This handles the memory map.
-+ * We handle pages at KSEG0 for kernels with 32 bit address space.
-+ */
-+#define PAGE_OFFSET		0x80000000UL
-+
-+#endif /* ndef __mips64 */
-+/**********************************************************************/
- 
- /*
-  *  Configure language
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/asmmacro.h linux-libc-headers-2.6.8.0/include/asm-mips/asmmacro.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/asmmacro.h	2004-08-18 13:15:41.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/asmmacro.h	2004-08-26 05:14:41.000000000 -0500
-@@ -9,10 +9,10 @@
- #define _ASM_ASMMACRO_H
-  
-  
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- #include <asm/asmmacro-32.h>
- #endif
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- #include <asm/asmmacro-64.h>
- #endif
- 
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/checksum.h linux-libc-headers-2.6.8.0/include/asm-mips/checksum.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/checksum.h	2004-06-23 16:52:45.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/checksum.h	2004-08-26 05:14:41.000000000 -0500
-@@ -125,7 +125,7 @@
- {
- 	__asm__(
- 	".set\tnoat\t\t\t# csum_tcpudp_nofold\n\t"
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- 	"addu\t%0, %2\n\t"
- 	"sltu\t$1, %0, %2\n\t"
- 	"addu\t%0, $1\n\t"
-@@ -138,7 +138,7 @@
- 	"sltu\t$1, %0, %4\n\t"
- 	"addu\t%0, $1\n\t"
- #endif
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- 	"daddu\t%0, %2\n\t"
- 	"daddu\t%0, %3\n\t"
- 	"daddu\t%0, %4\n\t"
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/compat.h linux-libc-headers-2.6.8.0/include/asm-mips/compat.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/compat.h	2003-12-15 12:47:02.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/compat.h	2004-08-26 05:23:05.000000000 -0500
-@@ -8,64 +8,64 @@
- 
- #define COMPAT_USER_HZ	100
- 
--typedef u32		compat_size_t;
--typedef s32		compat_ssize_t;
--typedef s32		compat_time_t;
--typedef s32		compat_clock_t;
--typedef s32		compat_suseconds_t;
--
--typedef s32		compat_pid_t;
--typedef s32		compat_uid_t;
--typedef s32		compat_gid_t;
--typedef u32		compat_mode_t;
--typedef u32		compat_ino_t;
--typedef u32		compat_dev_t;
--typedef s32		compat_off_t;
--typedef s64		compat_loff_t;
--typedef u32		compat_nlink_t;
--typedef s32		compat_ipc_pid_t;
--typedef s32		compat_daddr_t;
--typedef s32		compat_caddr_t;
-+typedef __u32		compat_size_t;
-+typedef __s32		compat_ssize_t;
-+typedef __s32		compat_time_t;
-+typedef __s32		compat_clock_t;
-+typedef __s32		compat_suseconds_t;
-+
-+typedef __s32		compat_pid_t;
-+typedef __s32		compat_uid_t;
-+typedef __s32		compat_gid_t;
-+typedef __u32		compat_mode_t;
-+typedef __u32		compat_ino_t;
-+typedef __u32		compat_dev_t;
-+typedef __s32		compat_off_t;
-+typedef __s64		compat_loff_t;
-+typedef __u32		compat_nlink_t;
-+typedef __s32		compat_ipc_pid_t;
-+typedef __s32		compat_daddr_t;
-+typedef __s32		compat_caddr_t;
- typedef struct {
--	s32	val[2];
-+	__s32	val[2];
- } compat_fsid_t;
- 
--typedef s32		compat_int_t;
--typedef s32		compat_long_t;
--typedef u32		compat_uint_t;
--typedef u32		compat_ulong_t;
-+typedef __s32		compat_int_t;
-+typedef __s32		compat_long_t;
-+typedef __u32		compat_uint_t;
-+typedef __u32		compat_ulong_t;
- 
- struct compat_timespec {
- 	compat_time_t	tv_sec;
--	s32		tv_nsec;
-+	__s32		tv_nsec;
- };
- 
- struct compat_timeval {
- 	compat_time_t	tv_sec;
--	s32		tv_usec;
-+	__s32		tv_usec;
- };
- 
- struct compat_stat {
- 	compat_dev_t	st_dev;
--	s32		st_pad1[3];
-+	__s32		st_pad1[3];
- 	compat_ino_t	st_ino;
- 	compat_mode_t	st_mode;
- 	compat_nlink_t	st_nlink;
- 	compat_uid_t	st_uid;
- 	compat_gid_t	st_gid;
- 	compat_dev_t	st_rdev;
--	s32		st_pad2[2];
-+	__s32		st_pad2[2];
- 	compat_off_t	st_size;
--	s32		st_pad3;
-+	__s32		st_pad3;
- 	compat_time_t	st_atime;
--	s32		st_atime_nsec;
-+	__s32		st_atime_nsec;
- 	compat_time_t	st_mtime;
--	s32		st_mtime_nsec;
-+	__s32		st_mtime_nsec;
- 	compat_time_t	st_ctime;
--	s32		st_ctime_nsec;
--	s32		st_blksize;
--	s32		st_blocks;
--	s32		st_pad4[14];
-+	__s32		st_ctime_nsec;
-+	__s32		st_blksize;
-+	__s32		st_blocks;
-+	__s32		st_pad4[14];
- };
- 
- struct compat_flock {
-@@ -73,10 +73,10 @@
- 	short		l_whence;
- 	compat_off_t	l_start;
- 	compat_off_t	l_len;
--	s32		l_sysid;
-+	__s32		l_sysid;
- 	compat_pid_t	l_pid;
- 	short		__unused;
--	s32		pad[4];
-+	__s32		pad[4];
- };
- 
- #define F_GETLK64	33
-@@ -107,12 +107,12 @@
- 
- #define COMPAT_RLIM_INFINITY	0x7fffffffUL
- 
--typedef u32		compat_old_sigset_t;	/* at least 32 bits */
-+typedef __u32		compat_old_sigset_t;	/* at least 32 bits */
- 
- #define _COMPAT_NSIG		128		/* Don't ask !$@#% ...  */
- #define _COMPAT_NSIG_BPW	32
- 
--typedef u32		compat_sigset_word;
-+typedef __u32		compat_sigset_word;
- 
- #define COMPAT_OFF_T_MAX	0x7fffffff
- #define COMPAT_LOFF_T_MAX	0x7fffffffffffffffL
-@@ -123,7 +123,7 @@
-  * as pointers because the syscall entry code will have
-  * appropriately comverted them already.
-  */
--typedef u32		compat_uptr_t;
-+typedef __u32		compat_uptr_t;
- 
- static inline void *compat_ptr(compat_uptr_t uptr)
- {
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/ddb5xxx/ddb5074.h linux-libc-headers-2.6.8.0/include/asm-mips/ddb5xxx/ddb5074.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/ddb5xxx/ddb5074.h	2003-12-15 12:47:03.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/ddb5xxx/ddb5074.h	2004-08-26 13:21:48.000000000 -0500
-@@ -34,5 +34,5 @@
- extern void ddb5074_led_d2(int on);
- extern void ddb5074_led_d3(int on);
- 
--extern void nile4_irq_setup(u32 base);
-+extern void nile4_irq_setup(__u32 base);
- #endif
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/ddb5xxx/ddb5476.h linux-libc-headers-2.6.8.0/include/asm-mips/ddb5xxx/ddb5476.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/ddb5xxx/ddb5476.h	2003-12-15 12:47:03.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/ddb5xxx/ddb5476.h	2004-08-26 05:24:06.000000000 -0500
-@@ -145,13 +145,13 @@
- extern void nile4_enable_irq(int nile4_irq);
- extern void nile4_disable_irq(int nile4_irq);
- extern void nile4_disable_irq_all(void);
--extern u16 nile4_get_irq_stat(int cpu_irq);
-+extern __u16 nile4_get_irq_stat(int cpu_irq);
- extern void nile4_enable_irq_output(int cpu_irq);
- extern void nile4_disable_irq_output(int cpu_irq);
- extern void nile4_set_pci_irq_polarity(int pci_irq, int high);
- extern void nile4_set_pci_irq_level_or_edge(int pci_irq, int level);
- extern void nile4_clear_irq(int nile4_irq);
--extern void nile4_clear_irq_mask(u32 mask);
--extern u8 nile4_i8259_iack(void);
-+extern void nile4_clear_irq_mask(__u32 mask);
-+extern __u8 nile4_i8259_iack(void);
- extern void nile4_dump_irq_status(void);        /* Debug */
- #endif /* !__ASSEMBLY__ */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/ddb5xxx/ddb5xxx.h linux-libc-headers-2.6.8.0/include/asm-mips/ddb5xxx/ddb5xxx.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/ddb5xxx/ddb5xxx.h	2004-01-17 17:03:47.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/ddb5xxx/ddb5xxx.h	2004-08-26 05:24:01.000000000 -0500
-@@ -177,46 +177,46 @@
-  * interrupt load
-  */
- #ifndef CONFIG_DDB5074
--    volatile u32 *p = (volatile u32 *)0xbfc00000;
-+    volatile __u32 *p = (volatile __u32 *)0xbfc00000;
-     (void)(*p);
- #endif
- }
- 
--static inline void ddb_out32(u32 offset, u32 val)
-+static inline void ddb_out32(__u32 offset, __u32 val)
- {
--    *(volatile u32 *)(DDB_BASE+offset) = val;
-+    *(volatile __u32 *)(DDB_BASE+offset) = val;
-     ddb_sync();
- }
- 
--static inline u32 ddb_in32(u32 offset)
-+static inline __u32 ddb_in32(__u32 offset)
- {
--    u32 val = *(volatile u32 *)(DDB_BASE+offset);
-+    __u32 val = *(volatile __u32 *)(DDB_BASE+offset);
-     ddb_sync();
-     return val;
- }
- 
--static inline void ddb_out16(u32 offset, u16 val)
-+static inline void ddb_out16(__u32 offset, __u16 val)
- {
--    *(volatile u16 *)(DDB_BASE+offset) = val;
-+    *(volatile __u16 *)(DDB_BASE+offset) = val;
-     ddb_sync();
- }
- 
--static inline u16 ddb_in16(u32 offset)
-+static inline __u16 ddb_in16(__u32 offset)
- {
--    u16 val = *(volatile u16 *)(DDB_BASE+offset);
-+    __u16 val = *(volatile __u16 *)(DDB_BASE+offset);
-     ddb_sync();
-     return val;
- }
- 
--static inline void ddb_out8(u32 offset, u8 val)
-+static inline void ddb_out8(__u32 offset, __u8 val)
- {
--    *(volatile u8 *)(DDB_BASE+offset) = val;
-+    *(volatile __u8 *)(DDB_BASE+offset) = val;
-     ddb_sync();
- }
- 
--static inline u8 ddb_in8(u32 offset)
-+static inline __u8 ddb_in8(__u32 offset)
- {
--    u8 val = *(volatile u8 *)(DDB_BASE+offset);
-+    __u8 val = *(volatile __u8 *)(DDB_BASE+offset);
-     ddb_sync();
-     return val;
- }
-@@ -226,10 +226,10 @@
-  *  Physical Device Address Registers
-  */
- 
--extern u32
--ddb_calc_pdar(u32 phys, u32 size, int width, int on_memory_bus, int pci_visible);
-+extern __u32
-+ddb_calc_pdar(__u32 phys, __u32 size, int width, int on_memory_bus, int pci_visible);
- extern void
--ddb_set_pdar(u32 pdar, u32 phys, u32 size, int width,
-+ddb_set_pdar(__u32 pdar, __u32 phys, __u32 size, int width,
- 	     int on_memory_bus, int pci_visible);
- 
- /*
-@@ -248,7 +248,7 @@
- #define DDB_PCI_ACCESS_32    0x10    /* for pci init0/1 regs */
- 
- 
--extern void ddb_set_pmr(u32 pmr, u32 type, u32 addr, u32 options);
-+extern void ddb_set_pmr(__u32 pmr, __u32 type, __u32 addr, __u32 options);
- 
- /*
-  * we need to reset pci bus when we start up and shutdown
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/dec/ioasic.h linux-libc-headers-2.6.8.0/include/asm-mips/dec/ioasic.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/dec/ioasic.h	2004-01-17 17:03:47.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/dec/ioasic.h	2004-08-26 05:25:44.000000000 -0500
-@@ -18,14 +18,14 @@
- 
- extern spinlock_t ioasic_ssr_lock;
- 
--extern volatile u32 *ioasic_base;
-+extern volatile __u32 *ioasic_base;
- 
--static inline void ioasic_write(unsigned int reg, u32 v)
-+static inline void ioasic_write(unsigned int reg, __u32 v)
- {
- 	ioasic_base[reg / 4] = v;
- }
- 
--static inline u32 ioasic_read(unsigned int reg)
-+static inline __u32 ioasic_read(unsigned int reg)
- {
- 	return ioasic_base[reg / 4];
- }
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/dec/kn02.h linux-libc-headers-2.6.8.0/include/asm-mips/dec/kn02.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/dec/kn02.h	2004-01-17 17:03:47.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/dec/kn02.h	2004-08-26 05:25:47.000000000 -0500
-@@ -97,7 +97,7 @@
- 
- 
- #ifndef __ASSEMBLY__
--extern u32 cached_kn02_csr;
-+extern __u32 cached_kn02_csr;
- extern spinlock_t kn02_lock;
- extern void init_kn02_irqs(int base);
- #endif
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/elf.h linux-libc-headers-2.6.8.0/include/asm-mips/elf.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/elf.h	2004-03-28 07:51:51.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/elf.h	2004-08-26 05:17:25.000000000 -0500
-@@ -122,7 +122,7 @@
- typedef double elf_fpreg_t;
- typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
- 
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- 
- /*
-  * This is used to ensure we don't load something for the wrong architecture.
-@@ -150,9 +150,9 @@
-  */
- #define ELF_CLASS	ELFCLASS32
- 
--#endif /* CONFIG_MIPS32 */
-+#endif /* ndef __mips64 */
- 
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- /*
-  * This is used to ensure we don't load something for the wrong architecture.
-  */
-@@ -174,7 +174,7 @@
-  */
- #define ELF_CLASS	ELFCLASS64
- 
--#endif /* CONFIG_MIPS64 */
-+#endif /* __mips64 */
- 
- /*
-  * These are used to set parameters in the core dumps.
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/galileo-boards/ev96100.h linux-libc-headers-2.6.8.0/include/asm-mips/galileo-boards/ev96100.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/galileo-boards/ev96100.h	2004-03-28 07:51:53.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/galileo-boards/ev96100.h	2004-08-26 05:23:12.000000000 -0500
-@@ -46,9 +46,9 @@
-  * bytes when running bigendian.
-  */
- #define __GT_READ(ofs)							\
--	(*(volatile u32 *)(GT64120_BASE+(ofs)))
-+	(*(volatile __u32 *)(GT64120_BASE+(ofs)))
- #define __GT_WRITE(ofs, data)						\
--	do { *(volatile u32 *)(GT64120_BASE+(ofs)) = (data); } while (0)
-+	do { *(volatile __u32 *)(GT64120_BASE+(ofs)) = (data); } while (0)
- #define GT_READ(ofs)		le32_to_cpu(__GT_READ(ofs))
- #define GT_WRITE(ofs, data)	__GT_WRITE(ofs, cpu_to_le32(data))
- 
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/galileo-boards/gt96100.h linux-libc-headers-2.6.8.0/include/asm-mips/galileo-boards/gt96100.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/galileo-boards/gt96100.h	2004-03-28 07:51:53.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/galileo-boards/gt96100.h	2004-08-26 05:23:17.000000000 -0500
-@@ -27,9 +27,9 @@
- #define MIPS_GT96100_BASE (KSEG1ADDR(0x14000000))
- 
- #define GT96100_WRITE(ofs, data) \
--    *(volatile u32 *)(MIPS_GT96100_BASE+ofs) = cpu_to_le32(data)
-+    *(volatile __u32 *)(MIPS_GT96100_BASE+ofs) = cpu_to_le32(data)
- #define GT96100_READ(ofs) \
--    le32_to_cpu(*(volatile u32 *)(MIPS_GT96100_BASE+ofs))
-+    le32_to_cpu(*(volatile __u32 *)(MIPS_GT96100_BASE+ofs))
- 
- #define GT96100_ETH_IO_SIZE 0x4000
- 
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/gt64120.h linux-libc-headers-2.6.8.0/include/asm-mips/gt64120.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/gt64120.h	2004-03-28 07:51:51.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/gt64120.h	2004-08-26 05:22:36.000000000 -0500
-@@ -420,9 +420,9 @@
-  * bytes when running bigendian.  We also provide non-swapping versions.
-  */
- #define __GT_READ(ofs)							\
--	(*(volatile u32 *)(GT64120_BASE+(ofs)))
-+	(*(volatile __u32 *)(GT64120_BASE+(ofs)))
- #define __GT_WRITE(ofs, data)						\
--	do { *(volatile u32 *)(GT64120_BASE+(ofs)) = (data); } while (0)
-+	do { *(volatile __u32 *)(GT64120_BASE+(ofs)) = (data); } while (0)
- #define GT_READ(ofs)		le32_to_cpu(__GT_READ(ofs))
- #define GT_WRITE(ofs, data)	__GT_WRITE(ofs, cpu_to_le32(data))
- 
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/io.h linux-libc-headers-2.6.8.0/include/asm-mips/io.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/io.h	2004-03-28 07:51:51.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/io.h	2004-08-26 05:24:16.000000000 -0500
-@@ -173,14 +173,14 @@
- 	unsigned long flags)
- {
- 	if (cpu_has_64bit_addresses) {
--		u64 base = UNCAC_BASE;
-+		__u64 base = UNCAC_BASE;
- 
- 		/*
- 		 * R10000 supports a 2 bit uncached attribute therefore
- 		 * UNCAC_BASE may not equal IO_BASE.
- 		 */
- 		if (flags == _CACHE_UNCACHED)
--			base = (u64) IO_BASE;
-+			base = (__u64) IO_BASE;
- 		return (void *) (unsigned long) (base + offset);
- 	}
- 
-@@ -245,10 +245,10 @@
- #define __raw_readb(addr)	(*(volatile unsigned char *)(addr))
- #define __raw_readw(addr)	(*(volatile unsigned short *)(addr))
- #define __raw_readl(addr)	(*(volatile unsigned int *)(addr))
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- #define ____raw_readq(addr)						\
- ({									\
--	u64 __res;							\
-+	__u64 __res;							\
- 									\
- 	__asm__ __volatile__ (						\
- 		"	.set	mips3		# ____raw_readq	\n"	\
-@@ -263,7 +263,7 @@
- #define __raw_readq(addr)						\
- ({									\
- 	unsigned long __flags;						\
--	u64 __res;							\
-+	__u64 __res;							\
- 									\
- 	local_irq_save(__flags);					\
- 	__res = ____raw_readq(addr);					\
-@@ -271,7 +271,7 @@
- 	__res;								\
- })
- #endif
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- #define ____raw_readq(addr)	(*(volatile unsigned long *)(addr))
- #define __raw_readq(addr)	____raw_readq(addr)
- #endif
-@@ -288,10 +288,10 @@
- #define __raw_writeb(b,addr)	((*(volatile unsigned char *)(addr)) = (b))
- #define __raw_writew(w,addr)	((*(volatile unsigned short *)(addr)) = (w))
- #define __raw_writel(l,addr)	((*(volatile unsigned int *)(addr)) = (l))
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- #define ____raw_writeq(val,addr)						\
- ({									\
--	u64 __tmp;							\
-+	__u64 __tmp;							\
- 									\
- 	__asm__ __volatile__ (						\
- 		"	.set	mips3				\n"	\
-@@ -313,7 +313,7 @@
- 	local_irq_restore(__flags);					\
- })
- #endif
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- #define ____raw_writeq(q,addr)	((*(volatile unsigned long *)(addr)) = (q))
- #define __raw_writeq(q,addr)	____raw_writeq(q, addr)
- #endif
-@@ -400,28 +400,28 @@
- {
- 	port = __swizzle_addr_b(port);
- 
--	*(volatile u8 *)(mips_io_port_base + port) = __ioswab8(val);
-+	*(volatile __u8 *)(mips_io_port_base + port) = __ioswab8(val);
- }
- 
- static inline void __outw(unsigned short val, unsigned long port)
- {
- 	port = __swizzle_addr_w(port);
- 
--	*(volatile u16 *)(mips_io_port_base + port) = __ioswab16(val);
-+	*(volatile __u16 *)(mips_io_port_base + port) = __ioswab16(val);
- }
- 
- static inline void __outl(unsigned int val, unsigned long port)
- {
- 	port = __swizzle_addr_l(port);
- 
--	*(volatile u32 *)(mips_io_port_base + port) = __ioswab32(val);
-+	*(volatile __u32 *)(mips_io_port_base + port) = __ioswab32(val);
- }
- 
- static inline void __outb_p(unsigned char val, unsigned long port)
- {
- 	port = __swizzle_addr_b(port);
- 
--	*(volatile u8 *)(mips_io_port_base + port) = __ioswab8(val);
-+	*(volatile __u8 *)(mips_io_port_base + port) = __ioswab8(val);
- 	SLOW_DOWN_IO;
- }
- 
-@@ -429,7 +429,7 @@
- {
- 	port = __swizzle_addr_w(port);
- 
--	*(volatile u16 *)(mips_io_port_base + port) = __ioswab16(val);
-+	*(volatile __u16 *)(mips_io_port_base + port) = __ioswab16(val);
- 	SLOW_DOWN_IO;
- }
- 
-@@ -437,7 +437,7 @@
- {
- 	port = __swizzle_addr_l(port);
- 
--	*(volatile u32 *)(mips_io_port_base + port) = __ioswab32(val);
-+	*(volatile __u32 *)(mips_io_port_base + port) = __ioswab32(val);
- 	SLOW_DOWN_IO;
- }
- 
-@@ -452,30 +452,30 @@
- {
- 	port = __swizzle_addr_b(port);
- 
--	return __ioswab8(*(volatile u8 *)(mips_io_port_base + port));
-+	return __ioswab8(*(volatile __u8 *)(mips_io_port_base + port));
- }
- 
- static inline unsigned short __inw(unsigned long port)
- {
- 	port = __swizzle_addr_w(port);
- 
--	return __ioswab16(*(volatile u16 *)(mips_io_port_base + port));
-+	return __ioswab16(*(volatile __u16 *)(mips_io_port_base + port));
- }
- 
- static inline unsigned int __inl(unsigned long port)
- {
- 	port = __swizzle_addr_l(port);
- 
--	return __ioswab32(*(volatile u32 *)(mips_io_port_base + port));
-+	return __ioswab32(*(volatile __u32 *)(mips_io_port_base + port));
- }
- 
- static inline unsigned char __inb_p(unsigned long port)
- {
--	u8 __val;
-+	__u8 __val;
- 
- 	port = __swizzle_addr_b(port);
- 
--	__val = *(volatile u8 *)(mips_io_port_base + port);
-+	__val = *(volatile __u8 *)(mips_io_port_base + port);
- 	SLOW_DOWN_IO;
- 
- 	return __ioswab8(__val);
-@@ -483,11 +483,11 @@
- 
- static inline unsigned short __inw_p(unsigned long port)
- {
--	u16 __val;
-+	__u16 __val;
- 
- 	port = __swizzle_addr_w(port);
- 
--	__val = *(volatile u16 *)(mips_io_port_base + port);
-+	__val = *(volatile __u16 *)(mips_io_port_base + port);
- 	SLOW_DOWN_IO;
- 
- 	return __ioswab16(__val);
-@@ -495,11 +495,11 @@
- 
- static inline unsigned int __inl_p(unsigned long port)
- {
--	u32 __val;
-+	__u32 __val;
- 
- 	port = __swizzle_addr_l(port);
- 
--	__val = *(volatile u32 *)(mips_io_port_base + port);
-+	__val = *(volatile __u32 *)(mips_io_port_base + port);
- 	SLOW_DOWN_IO;
- 
- 	return __ioswab32(__val);
-@@ -515,7 +515,7 @@
- static inline void __outsb(unsigned long port, void *addr, unsigned int count)
- {
- 	while (count--) {
--		outb(*(u8 *)addr, port);
-+		outb(*(__u8 *)addr, port);
- 		addr++;
- 	}
- }
-@@ -523,7 +523,7 @@
- static inline void __insb(unsigned long port, void *addr, unsigned int count)
- {
- 	while (count--) {
--		*(u8 *)addr = inb(port);
-+		*(__u8 *)addr = inb(port);
- 		addr++;
- 	}
- }
-@@ -531,7 +531,7 @@
- static inline void __outsw(unsigned long port, void *addr, unsigned int count)
- {
- 	while (count--) {
--		outw(*(u16 *)addr, port);
-+		outw(*(__u16 *)addr, port);
- 		addr += 2;
- 	}
- }
-@@ -539,7 +539,7 @@
- static inline void __insw(unsigned long port, void *addr, unsigned int count)
- {
- 	while (count--) {
--		*(u16 *)addr = inw(port);
-+		*(__u16 *)addr = inw(port);
- 		addr += 2;
- 	}
- }
-@@ -547,7 +547,7 @@
- static inline void __outsl(unsigned long port, void *addr, unsigned int count)
- {
- 	while (count--) {
--		outl(*(u32 *)addr, port);
-+		outl(*(__u32 *)addr, port);
- 		addr += 4;
- 	}
- }
-@@ -555,7 +555,7 @@
- static inline void __insl(unsigned long port, void *addr, unsigned int count)
- {
- 	while (count--) {
--		*(u32 *)addr = inl(port);
-+		*(__u32 *)addr = inl(port);
- 		addr += 4;
- 	}
- }
-@@ -617,7 +617,7 @@
- #define __CSR_32_ADJUST 0
- #endif
- 
--#define csr_out32(v,a) (*(volatile u32 *)((unsigned long)(a) + __CSR_32_ADJUST) = (v))
--#define csr_in32(a)    (*(volatile u32 *)((unsigned long)(a) + __CSR_32_ADJUST))
-+#define csr_out32(v,a) (*(volatile __u32 *)((unsigned long)(a) + __CSR_32_ADJUST) = (v))
-+#define csr_in32(a)    (*(volatile __u32 *)((unsigned long)(a) + __CSR_32_ADJUST))
- 
- #endif /* _ASM_IO_H */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/ip32/mace.h linux-libc-headers-2.6.8.0/include/asm-mips/ip32/mace.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/ip32/mace.h	2004-06-09 07:00:41.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/ip32/mace.h	2004-08-26 05:14:41.000000000 -0500
-@@ -22,7 +22,7 @@
- #undef BIT
- #define BIT(x) (1ULL << (x))
- 
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- typedef struct {
- 	volatile unsigned long long reg;
- } mace64_t;
-@@ -32,7 +32,7 @@
- 	volatile unsigned long reg;
- } mace32_t;
- #endif
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- typedef struct {
- 	volatile unsigned long reg;
- } mace64_t;
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/it8172/it8172.h linux-libc-headers-2.6.8.0/include/asm-mips/it8172/it8172.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/it8172/it8172.h	2003-12-15 12:47:03.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/it8172/it8172.h	2004-08-26 05:22:54.000000000 -0500
-@@ -336,13 +336,13 @@
- #define TIMER_TIDR				0x0E
- 
- 
--#define IT_WRITE(ofs, data) *(volatile u32 *)KSEG1ADDR((IT8172_BASE+ofs)) = data
--#define IT_READ(ofs, data)  data = *(volatile u32 *)KSEG1ADDR((IT8172_BASE+ofs))
-+#define IT_WRITE(ofs, data) *(volatile __u32 *)KSEG1ADDR((IT8172_BASE+ofs)) = data
-+#define IT_READ(ofs, data)  data = *(volatile __u32 *)KSEG1ADDR((IT8172_BASE+ofs))
- 
--#define IT_IO_WRITE(ofs, data) *(volatile u32 *)KSEG1ADDR((IT8172_PCI_IO_BASE+ofs)) = data
--#define IT_IO_READ(ofs, data)  data = *(volatile u32 *)KSEG1ADDR((IT8172_PCI_IO_BASE+ofs))
-+#define IT_IO_WRITE(ofs, data) *(volatile __u32 *)KSEG1ADDR((IT8172_PCI_IO_BASE+ofs)) = data
-+#define IT_IO_READ(ofs, data)  data = *(volatile __u32 *)KSEG1ADDR((IT8172_PCI_IO_BASE+ofs))
- 
--#define IT_IO_WRITE16(ofs, data) *(volatile u16 *)KSEG1ADDR((IT8172_PCI_IO_BASE+ofs)) = data
--#define IT_IO_READ16(ofs, data)  data = *(volatile u16 *)KSEG1ADDR((IT8172_PCI_IO_BASE+ofs))
-+#define IT_IO_WRITE16(ofs, data) *(volatile __u16 *)KSEG1ADDR((IT8172_PCI_IO_BASE+ofs)) = data
-+#define IT_IO_READ16(ofs, data)  data = *(volatile __u16 *)KSEG1ADDR((IT8172_PCI_IO_BASE+ofs))
- 
- #endif
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/lasat/head.h linux-libc-headers-2.6.8.0/include/asm-mips/lasat/head.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/lasat/head.h	2003-12-15 12:47:03.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/lasat/head.h	2004-08-26 05:23:42.000000000 -0500
-@@ -10,12 +10,12 @@
- #ifndef _LANGUAGE_ASSEMBLY
- #include <linux/types.h>
- struct bootloader_header {
--	u32 magic[2];
--	u32 version;
--	u32 image_start;
--	u32 image_size;
--	u32 kernel_start;
--	u32 kernel_entry;
-+	__u32 magic[2];
-+	__u32 version;
-+	__u32 image_start;
-+	__u32 image_size;
-+	__u32 kernel_start;
-+	__u32 kernel_entry;
- };
- #endif
- 
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/lasat/lasat.h linux-libc-headers-2.6.8.0/include/asm-mips/lasat/lasat.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/lasat/lasat.h	2004-06-09 07:00:42.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/lasat/lasat.h	2004-08-26 05:23:50.000000000 -0500
-@@ -25,9 +25,9 @@
- #ifndef _LANGUAGE_ASSEMBLY
- 
- extern struct lasat_misc {
--	volatile u32 *reset_reg;
--	volatile u32 *flash_wp_reg;
--	u32 flash_wp_bit;
-+	volatile __u32 *reset_reg;
-+	volatile __u32 *flash_wp_reg;
-+	__u32 flash_wp_bit;
- } *lasat_misc;
- 
- enum lasat_mtdparts {
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/m48t35.h linux-libc-headers-2.6.8.0/include/asm-mips/m48t35.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/m48t35.h	2004-01-17 17:03:44.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/m48t35.h	2004-08-26 05:23:39.000000000 -0500
-@@ -8,15 +8,15 @@
- extern spinlock_t rtc_lock;
- 
- struct m48t35_rtc {
--	volatile u8	pad[0x7ff8];    /* starts at 0x7ff8 */
--	volatile u8	control;
--	volatile u8	sec;
--	volatile u8	min;
--	volatile u8	hour;
--	volatile u8	day;
--	volatile u8	date;
--	volatile u8	month;
--	volatile u8	year;
-+	volatile __u8	pad[0x7ff8];    /* starts at 0x7ff8 */
-+	volatile __u8	control;
-+	volatile __u8	sec;
-+	volatile __u8	min;
-+	volatile __u8	hour;
-+	volatile __u8	day;
-+	volatile __u8	date;
-+	volatile __u8	month;
-+	volatile __u8	year;
- };
- 
- #define M48T35_RTC_SET		0x80
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/mips-boards/bonito64.h linux-libc-headers-2.6.8.0/include/asm-mips/mips-boards/bonito64.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/mips-boards/bonito64.h	2004-03-28 07:51:54.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/mips-boards/bonito64.h	2004-08-26 05:21:59.000000000 -0500
-@@ -34,7 +34,7 @@
- extern unsigned long _pcictrl_bonito;
- extern unsigned long _pcictrl_bonito_pcicfg;
- 
--#define BONITO(x)		*(volatile u32 *)(_pcictrl_bonito + (x))
-+#define BONITO(x)		*(volatile __u32 *)(_pcictrl_bonito + (x))
- 
- #endif /* __ASSEMBLY__ */
- 
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/mips-boards/generic.h linux-libc-headers-2.6.8.0/include/asm-mips/mips-boards/generic.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/mips-boards/generic.h	2004-03-28 07:51:54.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/mips-boards/generic.h	2004-08-26 05:22:06.000000000 -0500
-@@ -74,7 +74,7 @@
- #define MIPS_REVISION_CORID_CORE_EMUL_BON  0x63
- #define MIPS_REVISION_CORID_CORE_EMUL_MSC  0x65
- 
--#define MIPS_REVISION_CORID (((*(volatile u32 *)ioremap(MIPS_REVISION_REG, 4)) >> 10) & 0x3f)
-+#define MIPS_REVISION_CORID (((*(volatile __u32 *)ioremap(MIPS_REVISION_REG, 4)) >> 10) & 0x3f)
- 
- extern unsigned int mips_revision_corid;
- 
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/mips-boards/msc01_pci.h linux-libc-headers-2.6.8.0/include/asm-mips/mips-boards/msc01_pci.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/mips-boards/msc01_pci.h	2004-03-28 07:51:54.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/mips-boards/msc01_pci.h	2004-08-26 05:22:10.000000000 -0500
-@@ -212,8 +212,8 @@
- 
- #define MSC01_PCI_REG_BASE	_pcictrl_msc
- 
--#define MSC_WRITE(reg, data)	do { *(volatile u32 *)(reg) = data; } while (0)
--#define MSC_READ(reg, data)	do { data = *(volatile u32 *)(reg); } while (0)
-+#define MSC_WRITE(reg, data)	do { *(volatile __u32 *)(reg) = data; } while (0)
-+#define MSC_READ(reg, data)	do { data = *(volatile __u32 *)(reg); } while (0)
- 
- /*
-  * Registers absolute addresses
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/mipsregs.h linux-libc-headers-2.6.8.0/include/asm-mips/mipsregs.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/mipsregs.h	2004-08-18 13:15:41.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/mipsregs.h	2004-08-26 13:00:51.000000000 -0500
-@@ -14,7 +14,6 @@
- #define _ASM_MIPSREGS_H
- 
- #include <linux/linkage.h>
--#include <asm/hazards.h>
- 
- /*
-  * The following macros are especially useful for __asm__
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/mmu_context.h linux-libc-headers-2.6.8.0/include/asm-mips/mmu_context.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/mmu_context.h	2004-08-18 13:15:41.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/mmu_context.h	2004-08-26 05:14:41.000000000 -0500
-@@ -27,12 +27,12 @@
-  */
- #define TLBMISS_HANDLER_SETUP_PGD(pgd) \
- 	pgd_current[smp_processor_id()] = (unsigned long)(pgd)
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- #define TLBMISS_HANDLER_SETUP() \
- 	write_c0_context((unsigned long) smp_processor_id() << 23); \
- 	TLBMISS_HANDLER_SETUP_PGD(swapper_pg_dir)
- #endif
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- #define TLBMISS_HANDLER_SETUP() \
- 	write_c0_context((unsigned long) &pgd_current[smp_processor_id()] << 23); \
- 	TLBMISS_HANDLER_SETUP_PGD(swapper_pg_dir)
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/module.h linux-libc-headers-2.6.8.0/include/asm-mips/module.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/module.h	2004-08-18 13:15:41.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/module.h	2004-08-26 05:14:41.000000000 -0500
-@@ -21,7 +21,7 @@
-   Elf64_Sxword r_addend;		/* Addend.  */
- } Elf64_Mips_Rela;
- 
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- 
- #define Elf_Shdr	Elf32_Shdr
- #define Elf_Sym		Elf32_Sym
-@@ -29,7 +29,7 @@
- 
- #endif
- 
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- 
- #define Elf_Shdr	Elf64_Shdr
- #define Elf_Sym		Elf64_Sym
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/msgbuf.h linux-libc-headers-2.6.8.0/include/asm-mips/msgbuf.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/msgbuf.h	2004-01-17 17:03:44.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/msgbuf.h	2004-08-26 05:15:04.000000000 -0500
-@@ -14,25 +14,25 @@
- 
- struct msqid64_ds {
- 	struct ipc64_perm msg_perm;
--#if defined(CONFIG_MIPS32) && !defined(CONFIG_CPU_LITTLE_ENDIAN)
-+#if !defined(__mips64) && !defined(CONFIG_CPU_LITTLE_ENDIAN)
- 	unsigned long	__unused1;
- #endif
- 	__kernel_time_t msg_stime;	/* last msgsnd time */
--#if defined(CONFIG_MIPS32) && defined(CONFIG_CPU_LITTLE_ENDIAN)
-+#if !defined(__mips64) && defined(CONFIG_CPU_LITTLE_ENDIAN)
- 	unsigned long	__unused1;
- #endif
--#if defined(CONFIG_MIPS32) && !defined(CONFIG_CPU_LITTLE_ENDIAN)
-+#if !defined(__mips64) && !defined(CONFIG_CPU_LITTLE_ENDIAN)
- 	unsigned long	__unused2;
- #endif
- 	__kernel_time_t msg_rtime;	/* last msgrcv time */
--#if defined(CONFIG_MIPS32) && defined(CONFIG_CPU_LITTLE_ENDIAN)
-+#if !defined(__mips64) && defined(CONFIG_CPU_LITTLE_ENDIAN)
- 	unsigned long	__unused2;
- #endif
--#if defined(CONFIG_MIPS32) && !defined(CONFIG_CPU_LITTLE_ENDIAN)
-+#if !defined(__mips64) && !defined(CONFIG_CPU_LITTLE_ENDIAN)
- 	unsigned long	__unused3;
- #endif
- 	__kernel_time_t msg_ctime;	/* last change time */
--#if defined(CONFIG_MIPS32) && defined(CONFIG_CPU_LITTLE_ENDIAN)
-+#if !defined(__mips64) && defined(CONFIG_CPU_LITTLE_ENDIAN)
- 	unsigned long	__unused3;
- #endif
- 	unsigned long  msg_cbytes;	/* current number of bytes on queue */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/nile4.h linux-libc-headers-2.6.8.0/include/asm-mips/nile4.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/nile4.h	2003-12-15 12:47:02.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/nile4.h	2004-08-26 05:22:46.000000000 -0500
-@@ -202,45 +202,45 @@
- 
- static inline void nile4_sync(void)
- {
--    volatile u32 *p = (volatile u32 *)0xbfc00000;
-+    volatile __u32 *p = (volatile __u32 *)0xbfc00000;
-     (void)(*p);
- }
- 
--static inline void nile4_out32(u32 offset, u32 val)
-+static inline void nile4_out32(__u32 offset, __u32 val)
- {
--    *(volatile u32 *)(NILE4_BASE+offset) = val;
-+    *(volatile __u32 *)(NILE4_BASE+offset) = val;
-     nile4_sync();
- }
- 
--static inline u32 nile4_in32(u32 offset)
-+static inline __u32 nile4_in32(__u32 offset)
- {
--    u32 val = *(volatile u32 *)(NILE4_BASE+offset);
-+    __u32 val = *(volatile __u32 *)(NILE4_BASE+offset);
-     nile4_sync();
-     return val;
- }
- 
--static inline void nile4_out16(u32 offset, u16 val)
-+static inline void nile4_out16(__u32 offset, __u16 val)
- {
--    *(volatile u16 *)(NILE4_BASE+offset) = val;
-+    *(volatile __u16 *)(NILE4_BASE+offset) = val;
-     nile4_sync();
- }
- 
--static inline u16 nile4_in16(u32 offset)
-+static inline __u16 nile4_in16(__u32 offset)
- {
--    u16 val = *(volatile u16 *)(NILE4_BASE+offset);
-+    __u16 val = *(volatile __u16 *)(NILE4_BASE+offset);
-     nile4_sync();
-     return val;
- }
- 
--static inline void nile4_out8(u32 offset, u8 val)
-+static inline void nile4_out8(__u32 offset, __u8 val)
- {
--    *(volatile u8 *)(NILE4_BASE+offset) = val;
-+    *(volatile __u8 *)(NILE4_BASE+offset) = val;
-     nile4_sync();
- }
- 
--static inline u8 nile4_in8(u32 offset)
-+static inline __u8 nile4_in8(__u32 offset)
- {
--    u8 val = *(volatile u8 *)(NILE4_BASE+offset);
-+    __u8 val = *(volatile __u8 *)(NILE4_BASE+offset);
-     nile4_sync();
-     return val;
- }
-@@ -250,7 +250,7 @@
-      *  Physical Device Address Registers
-      */
- 
--extern void nile4_set_pdar(u32 pdar, u32 phys, u32 size, int width,
-+extern void nile4_set_pdar(__u32 pdar, __u32 phys, __u32 size, int width,
- 			   int on_memory_bus, int visible);
- 
- 
-@@ -276,7 +276,7 @@
- #define NILE4_PCI_IACK_BASE	NILE4_PCI_IO_BASE
- 
- 
--extern void nile4_set_pmr(u32 pmr, u32 type, u32 addr);
-+extern void nile4_set_pmr(__u32 pmr, __u32 type, __u32 addr);
- 
- 
-     /*
-@@ -296,14 +296,14 @@
- extern void nile4_enable_irq(unsigned int nile4_irq);
- extern void nile4_disable_irq(unsigned int nile4_irq);
- extern void nile4_disable_irq_all(void);
--extern u16 nile4_get_irq_stat(int cpu_irq);
-+extern __u16 nile4_get_irq_stat(int cpu_irq);
- extern void nile4_enable_irq_output(int cpu_irq);
- extern void nile4_disable_irq_output(int cpu_irq);
- extern void nile4_set_pci_irq_polarity(int pci_irq, int high);
- extern void nile4_set_pci_irq_level_or_edge(int pci_irq, int level);
- extern void nile4_clear_irq(int nile4_irq);
--extern void nile4_clear_irq_mask(u32 mask);
--extern u8 nile4_i8259_iack(void);
-+extern void nile4_clear_irq_mask(__u32 mask);
-+extern __u8 nile4_i8259_iack(void);
- extern void nile4_dump_irq_status(void);	/* Debug */
- 
- #endif
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/paccess.h linux-libc-headers-2.6.8.0/include/asm-mips/paccess.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/paccess.h	2004-01-17 17:03:44.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/paccess.h	2004-08-26 05:17:48.000000000 -0500
-@@ -14,11 +14,12 @@
- #define _ASM_PACCESS_H
- 
- #include <linux/errno.h>
-+#include <linux/linkage.h>
- 
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- #define __PA_ADDR	".word"
- #endif
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- #define __PA_ADDR	".dword"
- #endif
- 
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/pci/bridge.h linux-libc-headers-2.6.8.0/include/asm-mips/pci/bridge.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/pci/bridge.h	2004-03-28 07:51:54.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/pci/bridge.h	2004-08-26 05:25:40.000000000 -0500
-@@ -48,9 +48,9 @@
-  * All accesses to bridge hardware registers must be done
-  * using 32-bit loads and stores.
-  */
--typedef u32	bridgereg_t;
-+typedef __u32	bridgereg_t;
- 
--typedef u64	bridge_ate_t;
-+typedef __u64	bridge_ate_t;
- 
- /* pointers to bridge ATEs
-  * are always "pointer to volatile"
-@@ -199,37 +199,37 @@
- 
- 	/* PCI Device Configuration Spaces 0x020000-0x027FFF */
- 	union {				/* make all access sizes available. */
--		u8	c[0x1000 / 1];
--		u16	s[0x1000 / 2];
--		u32	l[0x1000 / 4];
--		u64	d[0x1000 / 8];
-+		__u8	c[0x1000 / 1];
-+		__u16	s[0x1000 / 2];
-+		__u32	l[0x1000 / 4];
-+		__u64	d[0x1000 / 8];
- 		union {
--			u8	c[0x100 / 1];
--			u16	s[0x100 / 2];
--			u32	l[0x100 / 4];
--			u64	d[0x100 / 8];
-+			__u8	c[0x100 / 1];
-+			__u16	s[0x100 / 2];
-+			__u32	l[0x100 / 4];
-+			__u64	d[0x100 / 8];
- 		} f[8];
- 	} b_type0_cfg_dev[8];					/* 0x020000 */
- 
-     /* PCI Type 1 Configuration Space 0x028000-0x028FFF */
- 	union {				/* make all access sizes available. */
--		u8	c[0x1000 / 1];
--		u16	s[0x1000 / 2];
--		u32	l[0x1000 / 4];
--		u64	d[0x1000 / 8];
-+		__u8	c[0x1000 / 1];
-+		__u16	s[0x1000 / 2];
-+		__u32	l[0x1000 / 4];
-+		__u64	d[0x1000 / 8];
- 	} b_type1_cfg;					/* 0x028000-0x029000 */
- 
- 	char	_pad_029000[0x007000];			/* 0x029000-0x030000 */
- 
- 	/* PCI Interrupt Acknowledge Cycle 0x030000 */
- 	union {
--		u8	c[8 / 1];
--		u16	s[8 / 2];
--		u32	l[8 / 4];
--		u64	d[8 / 8];
-+		__u8	c[8 / 1];
-+		__u16	s[8 / 2];
-+		__u32	l[8 / 4];
-+		__u64	d[8 / 8];
- 	} b_pci_iack;						/* 0x030000 */
- 
--	u8	_pad_030007[0x04fff8];			/* 0x030008-0x07FFFF */
-+	__u8	_pad_030007[0x04fff8];			/* 0x030008-0x07FFFF */
- 
- 	/* External Address Translation Entry RAM 0x080000-0x0FFFFF */
- 	bridge_ate_t    b_ext_ate_ram[0x10000];
-@@ -239,10 +239,10 @@
- 
- 	/* PCI/GIO Device Spaces 0x200000-0xBFFFFF */
- 	union {				/* make all access sizes available. */
--		u8	c[0x100000 / 1];
--		u16	s[0x100000 / 2];
--		u32	l[0x100000 / 4];
--		u64	d[0x100000 / 8];
-+		__u8	c[0x100000 / 1];
-+		__u16	s[0x100000 / 2];
-+		__u32	l[0x100000 / 4];
-+		__u64	d[0x100000 / 8];
- 	} b_devio_raw[10];				/* 0x200000 */
- 
- 	/* b_devio macro is a bit strange; it reflects the
-@@ -253,10 +253,10 @@
- 
- 	/* External Flash Proms 1,0 0xC00000-0xFFFFFF */
- 	union {		/* make all access sizes available. */
--		u8	c[0x400000 / 1];	/* read-only */
--		u16	s[0x400000 / 2];	/* read-write */
--		u32	l[0x400000 / 4];	/* read-only */
--		u64	d[0x400000 / 8];	/* read-only */
-+		__u8	c[0x400000 / 1];	/* read-only */
-+		__u16	s[0x400000 / 2];	/* read-write */
-+		__u32	l[0x400000 / 4];	/* read-only */
-+		__u64	d[0x400000 / 8];	/* read-only */
- 	} b_external_flash;			/* 0xC00000 */
- } bridge_t;
- 
-@@ -266,9 +266,9 @@
-  */
- typedef struct bridge_err_cmdword_s {
- 	union {
--		u32		cmd_word;
-+		__u32		cmd_word;
- 		struct {
--			u32	didn:4,		/* Destination ID */
-+			__u32	didn:4,		/* Destination ID */
- 				sidn:4,		/* Source ID	  */
- 				pactyp:4,	/* Packet type	  */
- 				tnum:5,		/* Trans Number	  */
-@@ -799,17 +799,17 @@
- #ifndef __ASSEMBLY__
- /* Address translation entry for mapped pci32 accesses */
- typedef union ate_u {
--	u64	ent;
-+	__u64	ent;
- 	struct ate_s {
--		u64	rmf:16;
--		u64	addr:36;
--		u64	targ:4;
--		u64	reserved:3;
--		u64	barrier:1;
--		u64	prefetch:1;
--		u64	precise:1;
--		u64	coherent:1;
--		u64	valid:1;
-+		__u64	rmf:16;
-+		__u64	addr:36;
-+		__u64	targ:4;
-+		__u64	reserved:3;
-+		__u64	barrier:1;
-+		__u64	prefetch:1;
-+		__u64	precise:1;
-+		__u64	coherent:1;
-+		__u64	valid:1;
- 	} field;
- } ate_t;
- #endif /* !__ASSEMBLY__ */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/pci_channel.h linux-libc-headers-2.6.8.0/include/asm-mips/pci_channel.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/pci_channel.h	2004-03-28 07:51:52.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/pci_channel.h	2004-08-26 05:21:47.000000000 -0500
-@@ -41,6 +41,6 @@
- /*
-  * board supplied pci irq fixup routine
-  */
--extern int pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin);
-+extern int pcibios_map_irq(struct pci_dev *dev, __u8 slot, __u8 pin);
- 
- #endif  /* __ASM_PCI_CHANNEL_H */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/pgalloc.h linux-libc-headers-2.6.8.0/include/asm-mips/pgalloc.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/pgalloc.h	2004-06-09 07:00:41.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/pgalloc.h	2004-08-26 05:14:41.000000000 -0500
-@@ -85,7 +85,7 @@
- 
- #define __pte_free_tlb(tlb,pte)		tlb_remove_page((tlb),(pte))
- 
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- #define pgd_populate(mm, pmd, pte)	BUG()
- 
- /*
-@@ -97,7 +97,7 @@
- #define __pmd_free_tlb(tlb,x)		do { } while (0)
- #endif
- 
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- 
- #define pgd_populate(mm, pgd, pmd)	set_pgd(pgd, __pgd(pmd))
- 
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/prctl.h linux-libc-headers-2.6.8.0/include/asm-mips/prctl.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/prctl.h	2003-12-15 12:47:02.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/prctl.h	2004-08-26 05:21:43.000000000 -0500
-@@ -12,21 +12,21 @@
- #define PRDA ((struct prda *) PRDA_ADDRESS)
- 
- struct prda_sys {
--	pid_t t_pid;
--        u32   t_hint;
--        u32   t_dlactseq;
--        u32   t_fpflags;
--        u32   t_prid;		/* processor type, $prid CP0 register */
--        u32   t_dlendseq;
--        u64   t_unused1[5];
--        pid_t t_rpid;
--        s32   t_resched;
--        u32   t_unused[8];
--        u32   t_cpu;		/* current/last cpu */
-+	pid_t   t_pid;
-+        __u32   t_hint;
-+        __u32   t_dlactseq;
-+        __u32   t_fpflags;
-+        __u32   t_prid;		/* processor type, $prid CP0 register */
-+        __u32   t_dlendseq;
-+        __u64   t_unused1[5];
-+        pid_t   t_rpid;
-+        __s32   t_resched;
-+        __u32   t_unused[8];
-+        __u32   t_cpu;		/* current/last cpu */
- 
- 	/* FIXME: The signal information, not supported by Linux now */
--	u32   t_flags;		/* if true, then the sigprocmask is in userspace */
--	u32   t_sigprocmask [1]; /* the sigprocmask */
-+	__u32   t_flags;		/* if true, then the sigprocmask is in userspace */
-+	__u32   t_sigprocmask [1]; /* the sigprocmask */
- };
- 
- struct prda {
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/processor.h linux-libc-headers-2.6.8.0/include/asm-mips/processor.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/processor.h	2004-08-18 13:15:41.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/processor.h	2004-08-26 05:23:24.000000000 -0500
-@@ -102,7 +102,7 @@
- #define MCA_bus 0
- #define MCA_bus__is_a_macro /* for versions in ksyms.c */
- 
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- /*
-  * User space process size: 2GB. This is hardcoded into a few places,
-  * so don't change it unless you know what you are doing.
-@@ -116,7 +116,7 @@
- #define TASK_UNMAPPED_BASE	(PAGE_ALIGN(TASK_SIZE / 3))
- #endif
- 
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- /*
-  * User space process size: 1TB. This is hardcoded into a few places,
-  * so don't change it unless you know what you are doing.  TASK_SIZE
-@@ -142,7 +142,7 @@
- 
- #define NUM_FPU_REGS	32
- 
--typedef u64 fpureg_t;
-+typedef __u64 fpureg_t;
- 
- struct mips_fpu_hard_struct {
- 	fpureg_t	fpr[NUM_FPU_REGS];
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/ptrace.h linux-libc-headers-2.6.8.0/include/asm-mips/ptrace.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/ptrace.h	2004-03-28 07:51:52.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/ptrace.h	2004-08-26 05:14:41.000000000 -0500
-@@ -27,7 +27,7 @@
-  * system call/exception. As usual the registers k0/k1 aren't being saved.
-  */
- struct pt_regs {
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- 	/* Pad bytes for argument save space on the stack. */
- 	unsigned long pad0[6];
- #endif
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/serial.h linux-libc-headers-2.6.8.0/include/asm-mips/serial.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/serial.h	2004-08-18 13:15:41.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/serial.h	2004-08-26 13:21:37.000000000 -0500
-@@ -68,7 +68,7 @@
- 
- #define _JAZZ_SERIAL_INIT(int, base)					\
- 	{ .baud_base = JAZZ_BASE_BAUD, .irq = int, .flags = STD_COM_FLAGS,	\
--	  .iomem_base = (u8 *) base, .iomem_reg_shift = 0,			\
-+	  .iomem_base = (__u8 *) base, .iomem_reg_shift = 0,			\
- 	  .io_type = SERIAL_IO_MEM }
- #define JAZZ_SERIAL_PORT_DEFNS						\
- 	_JAZZ_SERIAL_INIT(JAZZ_SERIAL1_IRQ, JAZZ_SERIAL1_BASE),		\
-@@ -243,7 +243,7 @@
- #define _JAGUAR_ATX_SERIAL_INIT(int, base)				\
- 	{ baud_base: JAGUAR_ATX_BASE_BAUD, irq: int,			\
- 	  flags: (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST),		\
--	  iomem_base: (u8 *) base, iomem_reg_shift: 2,			\
-+	  iomem_base: (__u8 *) base, iomem_reg_shift: 2,		\
- 	  io_type: SERIAL_IO_MEM }
- #define MOMENCO_JAGUAR_ATX_SERIAL_PORT_DEFNS				\
- 	_JAGUAR_ATX_SERIAL_INIT(JAGUAR_ATX_SERIAL1_IRQ, JAGUAR_ATX_SERIAL1_BASE)
-@@ -260,7 +260,7 @@
- 
- #define _OCELOT_SERIAL_INIT(int, base)					\
- 	{ .baud_base = OCELOT_BASE_BAUD, .irq = int, .flags = STD_COM_FLAGS,	\
--	  .iomem_base = (u8 *) base, .iomem_reg_shift = 2,			\
-+	  .iomem_base = (__u8 *) base, .iomem_reg_shift = 2,			\
- 	  .io_type = SERIAL_IO_MEM }
- #define MOMENCO_OCELOT_SERIAL_PORT_DEFNS				\
- 	_OCELOT_SERIAL_INIT(OCELOT_SERIAL1_IRQ, OCELOT_SERIAL1_BASE)
-@@ -281,7 +281,7 @@
- 
- #define _OCELOT_G_SERIAL_INIT(int, base)				\
- 	{ .baud_base = OCELOT_G_BASE_BAUD, .irq = int, .flags = STD_COM_FLAGS,\
--	  .iomem_base = (u8 *) base, .iomem_reg_shift = 2,			\
-+	  .iomem_base = (__u8 *) base, .iomem_reg_shift = 2,			\
- 	  .io_type = SERIAL_IO_MEM }
- #define MOMENCO_OCELOT_G_SERIAL_PORT_DEFNS				\
- 	_OCELOT_G_SERIAL_INIT(OCELOT_G_SERIAL1_IRQ, OCELOT_G_SERIAL1_BASE)
-@@ -303,7 +303,7 @@
- 	{ .baud_base		= OCELOT_C_BASE_BAUD,			\
- 	  .irq			= (int),				\
- 	  .flags		= STD_COM_FLAGS,			\
--	  .iomem_base		= (u8 *) base,				\
-+	  .iomem_base		= (__u8 *) base,			\
- 	  .iomem_reg_shift	= 2,					\
- 	  .io_type		= SERIAL_IO_MEM				\
- 	 }
-@@ -318,10 +318,10 @@
- #include <asm/ddb5xxx/ddb5477.h>
- #define DDB5477_SERIAL_PORT_DEFNS                                       \
-         { .baud_base = BASE_BAUD, .irq = VRC5477_IRQ_UART0, 		\
--	  .flags = STD_COM_FLAGS, .iomem_base = (u8*)0xbfa04200, 	\
-+	  .flags = STD_COM_FLAGS, .iomem_base = (__u8*)0xbfa04200, 	\
- 	  .iomem_reg_shift = 3, .io_type = SERIAL_IO_MEM},		\
-         { .baud_base = BASE_BAUD, .irq = VRC5477_IRQ_UART1, 		\
--	  .flags = STD_COM_FLAGS, .iomem_base = (u8*)0xbfa04240, 	\
-+	  .flags = STD_COM_FLAGS, .iomem_base = (__u8*)0xbfa04240, 	\
- 	  .iomem_reg_shift = 3, .io_type = SERIAL_IO_MEM},
- #else
- #define DDB5477_SERIAL_PORT_DEFNS
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sgi/hpc3.h linux-libc-headers-2.6.8.0/include/asm-mips/sgi/hpc3.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sgi/hpc3.h	2003-12-15 12:47:03.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/sgi/hpc3.h	2004-08-26 05:24:34.000000000 -0500
-@@ -17,8 +17,8 @@
- 
- /* An HPC DMA descriptor. */
- struct hpc_dma_desc {
--	u32 pbuf;	/* physical address of data buffer */
--	u32 cntinfo;	/* counter and info bits */
-+	__u32 pbuf;	/* physical address of data buffer */
-+	__u32 cntinfo;	/* counter and info bits */
- #define HPCDMA_EOX	0x80000000 /* last desc in chain for tx */
- #define HPCDMA_EOR	0x80000000 /* last desc in chain for rx */
- #define HPCDMA_EOXP	0x40000000 /* end of packet for tx */
-@@ -30,15 +30,15 @@
- #define HPCDMA_OWN	0x00004000 /* Denotes ring buffer ownership on rx */
- #define HPCDMA_BCNT	0x00003fff /* size in bytes of this dma buffer */
- 
--	u32 pnext;	/* paddr of next hpc_dma_desc if any */
-+	__u32 pnext;	/* paddr of next hpc_dma_desc if any */
- };
- 
- /* The set of regs for each HPC3 PBUS DMA channel. */
- struct hpc3_pbus_dmacregs {
--	volatile u32 pbdma_bptr;	/* pbus dma channel buffer ptr */
--	volatile u32 pbdma_dptr;	/* pbus dma channel desc ptr */
--	u32 _unused0[0x1000/4 - 2];	/* padding */
--	volatile u32 pbdma_ctrl;	/* pbus dma channel control register has
-+	volatile __u32 pbdma_bptr;	/* pbus dma channel buffer ptr */
-+	volatile __u32 pbdma_dptr;	/* pbus dma channel desc ptr */
-+	__u32 _unused0[0x1000/4 - 2];	/* padding */
-+	volatile __u32 pbdma_ctrl;	/* pbus dma channel control register has
- 					 * copletely different meaning for read
- 					 * compared with write */
- 	/* read */
-@@ -55,20 +55,20 @@
- #define HPC3_PDMACTRL_FB	0x003f0000 /* Ptr to beginning of fifo */
- #define HPC3_PDMACTRL_FE	0x3f000000 /* Ptr to end of fifo */
- 
--	u32 _unused1[0x1000/4 - 1];	/* padding */
-+	__u32 _unused1[0x1000/4 - 1];	/* padding */
- };
- 
- /* The HPC3 SCSI registers, this does not include external ones. */
- struct hpc3_scsiregs {
--	volatile u32 cbptr;	/* current dma buffer ptr, diagnostic use only */
--	volatile u32 ndptr;	/* next dma descriptor ptr */
--	u32 _unused0[0x1000/4 - 2];	/* padding */
--	volatile u32 bcd;	/* byte count info */
-+	volatile __u32 cbptr;	/* current dma buffer ptr, diagnostic use only */
-+	volatile __u32 ndptr;	/* next dma descriptor ptr */
-+	__u32 _unused0[0x1000/4 - 2];	/* padding */
-+	volatile __u32 bcd;	/* byte count info */
- #define HPC3_SBCD_BCNTMSK 0x00003fff /* bytes to transfer from/to memory */
- #define HPC3_SBCD_XIE     0x00004000 /* Send IRQ when done with cur buf */
- #define HPC3_SBCD_EOX     0x00008000 /* Indicates this is last buf in chain */
- 
--	volatile u32 ctrl;    /* control register */
-+	volatile __u32 ctrl;    /* control register */
- #define HPC3_SCTRL_IRQ    0x01 /* IRQ asserted, either dma done or parity */
- #define HPC3_SCTRL_ENDIAN 0x02 /* DMA endian mode, 0=big 1=little */
- #define HPC3_SCTRL_DIR    0x04 /* DMA direction, 1=dev2mem 0=mem2dev */
-@@ -78,9 +78,9 @@
- #define HPC3_SCTRL_CRESET 0x40 /* Resets dma channel and external controller */
- #define HPC3_SCTRL_PERR   0x80 /* Bad parity on HPC3 iface to scsi controller */
- 
--	volatile u32 gfptr;	/* current GIO fifo ptr */
--	volatile u32 dfptr;	/* current device fifo ptr */
--	volatile u32 dconfig;	/* DMA configuration register */
-+	volatile __u32 gfptr;	/* current GIO fifo ptr */
-+	volatile __u32 dfptr;	/* current device fifo ptr */
-+	volatile __u32 dconfig;	/* DMA configuration register */
- #define HPC3_SDCFG_HCLK 0x00001 /* Enable DMA half clock mode */
- #define HPC3_SDCFG_D1   0x00006 /* Cycles to spend in D1 state */
- #define HPC3_SDCFG_D2   0x00038 /* Cycles to spend in D2 state */
-@@ -92,7 +92,7 @@
- #define HPC3_SDCFG_POLL 0x08000 /* hd_dreq polarity control */
- #define HPC3_SDCFG_ERLY 0x30000 /* hd_dreq behavior control bits */
- 
--	volatile u32 pconfig;	/* PIO configuration register */
-+	volatile __u32 pconfig;	/* PIO configuration register */
- #define HPC3_SPCFG_P3   0x0003 /* Cycles to spend in P3 state */
- #define HPC3_SPCFG_P2W  0x001c /* Cycles to spend in P2 state for writes */
- #define HPC3_SPCFG_P2R  0x01e0 /* Cycles to spend in P2 state for reads */
-@@ -102,21 +102,21 @@
- #define HPC3_SPCFG_EPAR 0x4000 /* Enable parity checking for PIO */
- #define HPC3_SPCFG_FUJI 0x8000 /* Fujitsu scsi controller mode for faster dma/pio */
- 
--	u32 _unused1[0x1000/4 - 6];	/* padding */
-+	__u32 _unused1[0x1000/4 - 6];	/* padding */
- };
- 
- /* SEEQ ethernet HPC3 registers, only one seeq per HPC3. */
- struct hpc3_ethregs {
- 	/* Receiver registers. */
--	volatile u32 rx_cbptr;   /* current dma buffer ptr, diagnostic use only */
--	volatile u32 rx_ndptr;   /* next dma descriptor ptr */
--	u32 _unused0[0x1000/4 - 2];	/* padding */
--	volatile u32 rx_bcd;	/* byte count info */
-+	volatile __u32 rx_cbptr;   /* current dma buffer ptr, diagnostic use only */
-+	volatile __u32 rx_ndptr;   /* next dma descriptor ptr */
-+	__u32 _unused0[0x1000/4 - 2];	/* padding */
-+	volatile __u32 rx_bcd;	/* byte count info */
- #define HPC3_ERXBCD_BCNTMSK 0x00003fff /* bytes to be sent to memory */
- #define HPC3_ERXBCD_XIE     0x20000000 /* HPC3 interrupts cpu at end of this buf */
- #define HPC3_ERXBCD_EOX     0x80000000 /* flags this as end of descriptor chain */
- 
--	volatile u32 rx_ctrl;	/* control register */
-+	volatile __u32 rx_ctrl;	/* control register */
- #define HPC3_ERXCTRL_STAT50 0x0000003f /* Receive status reg bits of Seeq8003 */
- #define HPC3_ERXCTRL_STAT6  0x00000040 /* Rdonly irq status */
- #define HPC3_ERXCTRL_STAT7  0x00000080 /* Rdonlt old/new status bit from Seeq */
-@@ -125,15 +125,15 @@
- #define HPC3_ERXCTRL_AMASK  0x00000400 /* Tells if ACTIVE inhibits PIO's to hpc3 */
- #define HPC3_ERXCTRL_RBO    0x00000800 /* Receive buffer overflow if set to 1 */
- 
--	volatile u32 rx_gfptr;	/* current GIO fifo ptr */
--	volatile u32 rx_dfptr;	/* current device fifo ptr */
--	u32 _unused1;		/* padding */
--	volatile u32 rx_reset;	/* reset register */
-+	volatile __u32 rx_gfptr;	/* current GIO fifo ptr */
-+	volatile __u32 rx_dfptr;	/* current device fifo ptr */
-+	__u32 _unused1;		/* padding */
-+	volatile __u32 rx_reset;	/* reset register */
- #define HPC3_ERXRST_CRESET 0x1	/* Reset dma channel and external controller */
- #define HPC3_ERXRST_CLRIRQ 0x2	/* Clear channel interrupt */
- #define HPC3_ERXRST_LBACK  0x4	/* Enable diagnostic loopback mode of Seeq8003 */
- 
--	volatile u32 rx_dconfig;	/* DMA configuration register */
-+	volatile __u32 rx_dconfig;	/* DMA configuration register */
- #define HPC3_ERXDCFG_D1    0x0000f /* Cycles to spend in D1 state for PIO */
- #define HPC3_ERXDCFG_D2    0x000f0 /* Cycles to spend in D2 state for PIO */
- #define HPC3_ERXDCFG_D3    0x00f00 /* Cycles to spend in D3 state for PIO */
-@@ -143,26 +143,26 @@
- #define HPC3_ERXDCFG_FIRQ  0x08000 /* Another bad packet timeout enable */
- #define HPC3_ERXDCFG_PTO   0x30000 /* Programmed timeout value for above two */
- 
--	volatile u32 rx_pconfig;	/* PIO configuration register */
-+	volatile __u32 rx_pconfig;	/* PIO configuration register */
- #define HPC3_ERXPCFG_P1    0x000f /* Cycles to spend in P1 state for PIO */
- #define HPC3_ERXPCFG_P2    0x00f0 /* Cycles to spend in P2 state for PIO */
- #define HPC3_ERXPCFG_P3    0x0f00 /* Cycles to spend in P3 state for PIO */
- #define HPC3_ERXPCFG_TST   0x1000 /* Diagnistic ram test feature bit */
- 
--	u32 _unused2[0x1000/4 - 8];	/* padding */
-+	__u32 _unused2[0x1000/4 - 8];	/* padding */
- 
- 	/* Transmitter registers. */
--	volatile u32 tx_cbptr;	/* current dma buffer ptr, diagnostic use only */
--	volatile u32 tx_ndptr;	/* next dma descriptor ptr */
--	u32 _unused3[0x1000/4 - 2];	/* padding */
--	volatile u32 tx_bcd;		/* byte count info */
-+	volatile __u32 tx_cbptr;	/* current dma buffer ptr, diagnostic use only */
-+	volatile __u32 tx_ndptr;	/* next dma descriptor ptr */
-+	__u32 _unused3[0x1000/4 - 2];	/* padding */
-+	volatile __u32 tx_bcd;		/* byte count info */
- #define HPC3_ETXBCD_BCNTMSK 0x00003fff	/* bytes to be read from memory */
- #define HPC3_ETXBCD_ESAMP   0x10000000	/* if set, too late to add descriptor */
- #define HPC3_ETXBCD_XIE     0x20000000	/* Interrupt cpu at end of cur desc */
- #define HPC3_ETXBCD_EOP     0x40000000	/* Last byte of cur buf is end of packet */
- #define HPC3_ETXBCD_EOX     0x80000000	/* This buf is the end of desc chain */
- 
--	volatile u32 tx_ctrl;		/* control register */
-+	volatile __u32 tx_ctrl;		/* control register */
- #define HPC3_ETXCTRL_STAT30 0x0000000f	/* Rdonly copy of seeq tx stat reg */
- #define HPC3_ETXCTRL_STAT4  0x00000010	/* Indicate late collision occurred */
- #define HPC3_ETXCTRL_STAT75 0x000000e0	/* Rdonly irq status from seeq */
-@@ -170,9 +170,9 @@
- #define HPC3_ETXCTRL_ACTIVE 0x00000200	/* DMA tx channel is active */
- #define HPC3_ETXCTRL_AMASK  0x00000400	/* Indicates ACTIVE inhibits PIO's */
- 
--	volatile u32 tx_gfptr;		/* current GIO fifo ptr */
--	volatile u32 tx_dfptr;		/* current device fifo ptr */
--	u32 _unused4[0x1000/4 - 4];	/* padding */
-+	volatile __u32 tx_gfptr;		/* current GIO fifo ptr */
-+	volatile __u32 tx_dfptr;		/* current device fifo ptr */
-+	__u32 _unused4[0x1000/4 - 4];	/* padding */
- };
- 
- struct hpc3_regs {
-@@ -188,7 +188,7 @@
- 	/* Here are where the hpc3 fifo's can be directly accessed
- 	 * via PIO accesses.  Under normal operation we never stick
- 	 * our grubby paws in here so it's just padding. */
--	u32 _unused0[0x18000/4];
-+	__u32 _unused0[0x18000/4];
- 
- 	/* HPC3 irq status regs.  Due to a peculiar bug you need to
- 	 * look at two different register addresses to get at all of
-@@ -197,42 +197,42 @@
- 	 * reliably report bits 9:5 of the hpc3 irq status.  I told
- 	 * you it was a peculiar bug. ;-)
- 	 */
--	volatile u32 istat0;		/* Irq status, only bits <4:0> reliable. */
-+	volatile __u32 istat0;		/* Irq status, only bits <4:0> reliable. */
- #define HPC3_ISTAT_PBIMASK	0x0ff	/* irq bits for pbus devs 0 --> 7 */
- #define HPC3_ISTAT_SC0MASK	0x100	/* irq bit for scsi channel 0 */
- #define HPC3_ISTAT_SC1MASK	0x200	/* irq bit for scsi channel 1 */
- 
--	volatile u32 gio_misc;		/* GIO misc control bits. */
-+	volatile __u32 gio_misc;		/* GIO misc control bits. */
- #define HPC3_GIOMISC_ERTIME	0x1	/* Enable external timer real time. */
- #define HPC3_GIOMISC_DENDIAN	0x2	/* dma descriptor endian, 1=lit 0=big */
- 
--	volatile u32 eeprom;		/* EEPROM data reg. */
-+	volatile __u32 eeprom;		/* EEPROM data reg. */
- #define HPC3_EEPROM_EPROT	0x01	/* Protect register enable */
- #define HPC3_EEPROM_CSEL	0x02	/* Chip select */
- #define HPC3_EEPROM_ECLK	0x04	/* EEPROM clock */
- #define HPC3_EEPROM_DATO	0x08	/* Data out */
- #define HPC3_EEPROM_DATI	0x10	/* Data in */
- 
--	volatile u32 istat1;		/* Irq status, only bits <9:5> reliable. */
--	volatile u32 bestat;		/* Bus error interrupt status reg. */
-+	volatile __u32 istat1;		/* Irq status, only bits <9:5> reliable. */
-+	volatile __u32 bestat;		/* Bus error interrupt status reg. */
- #define HPC3_BESTAT_BLMASK	0x000ff	/* Bus lane where bad parity occurred */
- #define HPC3_BESTAT_CTYPE	0x00100	/* Bus cycle type, 0=PIO 1=DMA */
- #define HPC3_BESTAT_PIDSHIFT	9
- #define HPC3_BESTAT_PIDMASK	0x3f700	/* DMA channel parity identifier */
- 
--	u32 _unused1[0x14000/4 - 5];	/* padding */
-+	__u32 _unused1[0x14000/4 - 5];	/* padding */
- 	
- 	/* Now direct PIO per-HPC3 peripheral access to external regs. */
--	volatile u32 scsi0_ext[256];	/* SCSI channel 0 external regs */
--	u32 _unused2[0x7c00/4];
--	volatile u32 scsi1_ext[256];	/* SCSI channel 1 external regs */
--	u32 _unused3[0x7c00/4];
--	volatile u32 eth_ext[320];	/* Ethernet external registers */
--	u32 _unused4[0x3b00/4];
-+	volatile __u32 scsi0_ext[256];	/* SCSI channel 0 external regs */
-+	__u32 _unused2[0x7c00/4];
-+	volatile __u32 scsi1_ext[256];	/* SCSI channel 1 external regs */
-+	__u32 _unused3[0x7c00/4];
-+	volatile __u32 eth_ext[320];	/* Ethernet external registers */
-+	__u32 _unused4[0x3b00/4];
- 
- 	/* Per-peripheral device external registers and DMA/PIO control. */
--	volatile u32 pbus_extregs[16][256];
--	volatile u32 pbus_dmacfg[8][128];
-+	volatile __u32 pbus_extregs[16][256];
-+	volatile __u32 pbus_dmacfg[8][128];
- 	/* Cycles to spend in D3 for reads */
- #define HPC3_DMACFG_D3R_MASK		0x00000001
- #define HPC3_DMACFG_D3R_SHIFT		0
-@@ -262,7 +262,7 @@
- #define HPC3_DMACFG_BURST_SHIFT	22
- 	/* Use live pbus_dreq unsynchronized signal */
- #define HPC3_DMACFG_DRQLIVE		0x08000000
--	volatile u32 pbus_piocfg[16][64];
-+	volatile __u32 pbus_piocfg[16][64];
- 	/* Cycles to spend in P2 state for reads */
- #define HPC3_PIOCFG_P2R_MASK		0x00001
- #define HPC3_PIOCFG_P2R_SHIFT		0
-@@ -287,21 +287,21 @@
- #define HPC3_PIOCFG_EVENHI		0x80000
- 
- 	/* PBUS PROM control regs. */
--	volatile u32 pbus_promwe;	/* PROM write enable register */
-+	volatile __u32 pbus_promwe;	/* PROM write enable register */
- #define HPC3_PROM_WENAB	0x1	/* Enable writes to the PROM */
- 
--	u32 _unused5[0x0800/4 - 1];
--	volatile u32 pbus_promswap;	/* Chip select swap reg */
-+	__u32 _unused5[0x0800/4 - 1];
-+	volatile __u32 pbus_promswap;	/* Chip select swap reg */
- #define HPC3_PROM_SWAP	0x1	/* invert GIO addr bit to select prom0 or prom1 */
- 
--	u32 _unused6[0x0800/4 - 1];
--	volatile u32 pbus_gout;	/* PROM general purpose output reg */
-+	__u32 _unused6[0x0800/4 - 1];
-+	volatile __u32 pbus_gout;	/* PROM general purpose output reg */
- #define HPC3_PROM_STAT	0x1	/* General purpose status bit in gout */
- 
--	u32 _unused7[0x1000/4 - 1];
--	volatile u32 rtcregs[14];	/* Dallas clock registers */
--	u32 _unused8[50];
--	volatile u32 bbram[8192-50-14];	/* Battery backed ram */
-+	__u32 _unused7[0x1000/4 - 1];
-+	volatile __u32 rtcregs[14];	/* Dallas clock registers */
-+	__u32 _unused8[50];
-+	volatile __u32 bbram[8192-50-14];	/* Battery backed ram */
- };
- 
- /* 
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sgi/ioc.h linux-libc-headers-2.6.8.0/include/asm-mips/sgi/ioc.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sgi/ioc.h	2004-03-28 07:51:54.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/sgi/ioc.h	2004-08-26 05:24:48.000000000 -0500
-@@ -22,26 +22,26 @@
-  */
- 
- struct sgioc_uart_regs {
--	u8 _ctrl1[3];
--	volatile u8 ctrl1;
--	u8 _data1[3];
--	volatile u8 data1;
--	u8 _ctrl2[3];
--	volatile u8 ctrl2;
--	u8 _data2[3];
--	volatile u8 data2;
-+	__u8 _ctrl1[3];
-+	volatile __u8 ctrl1;
-+	__u8 _data1[3];
-+	volatile __u8 data1;
-+	__u8 _ctrl2[3];
-+	volatile __u8 ctrl2;
-+	__u8 _data2[3];
-+	volatile __u8 data2;
- };
- 
- struct sgioc_keyb_regs {
--	u8 _data[3];
--	volatile u8 data;
--	u8 _command[3];
--	volatile u8 command;
-+	__u8 _data[3];
-+	volatile __u8 data;
-+	__u8 _command[3];
-+	volatile __u8 command;
- };
- 
- struct sgint_regs {
--	u8 _istat0[3];
--	volatile u8 istat0;		/* Interrupt status zero */
-+	__u8 _istat0[3];
-+	volatile __u8 istat0;		/* Interrupt status zero */
- #define SGINT_ISTAT0_FFULL	0x01
- #define SGINT_ISTAT0_SCSI0	0x02
- #define SGINT_ISTAT0_SCSI1	0x04
-@@ -50,10 +50,10 @@
- #define SGINT_ISTAT0_PPORT	0x20
- #define SGINT_ISTAT0_HPC2	0x40
- #define SGINT_ISTAT0_LIO2	0x80
--	u8 _imask0[3];
--	volatile u8 imask0;		/* Interrupt mask zero */
--	u8 _istat1[3];
--	volatile u8 istat1;		/* Interrupt status one */
-+	__u8 _imask0[3];
-+	volatile __u8 imask0;		/* Interrupt mask zero */
-+	__u8 _istat1[3];
-+	volatile __u8 istat1;		/* Interrupt status one */
- #define SGINT_ISTAT1_ISDNI	0x01
- #define SGINT_ISTAT1_PWR	0x02
- #define SGINT_ISTAT1_ISDNH	0x04
-@@ -62,29 +62,29 @@
- #define SGINT_ISTAT1_AFAIL	0x20
- #define SGINT_ISTAT1_VIDEO	0x40
- #define SGINT_ISTAT1_GIO2	0x80
--	u8 _imask1[3];
--	volatile u8 imask1;		/* Interrupt mask one */
--	u8 _vmeistat[3];
--	volatile u8 vmeistat;		/* VME interrupt status */
--	u8 _cmeimask0[3];
--	volatile u8 cmeimask0;		/* VME interrupt mask zero */
--	u8 _cmeimask1[3];
--	volatile u8 cmeimask1;		/* VME interrupt mask one */
--	u8 _cmepol[3];
--	volatile u8 cmepol;		/* VME polarity */
--	u8 _tclear[3];
--	volatile u8 tclear;
--	u8 _errstat[3];
--	volatile u8 errstat;	/* Error status reg, reserved on INT2 */
--	u32 _unused0[2];
--	u8 _tcnt0[3];
--	volatile u8 tcnt0;		/* counter 0 */
--	u8 _tcnt1[3];
--	volatile u8 tcnt1;		/* counter 1 */
--	u8 _tcnt2[3];
--	volatile u8 tcnt2;		/* counter 2 */
--	u8 _tcword[3];
--	volatile u8 tcword;		/* control word */
-+	__u8 _imask1[3];
-+	volatile __u8 imask1;		/* Interrupt mask one */
-+	__u8 _vmeistat[3];
-+	volatile __u8 vmeistat;		/* VME interrupt status */
-+	__u8 _cmeimask0[3];
-+	volatile __u8 cmeimask0;		/* VME interrupt mask zero */
-+	__u8 _cmeimask1[3];
-+	volatile __u8 cmeimask1;		/* VME interrupt mask one */
-+	__u8 _cmepol[3];
-+	volatile __u8 cmepol;		/* VME polarity */
-+	__u8 _tclear[3];
-+	volatile __u8 tclear;
-+	__u8 _errstat[3];
-+	volatile __u8 errstat;	/* Error status reg, reserved on INT2 */
-+	__u32 _unused0[2];
-+	__u8 _tcnt0[3];
-+	volatile __u8 tcnt0;		/* counter 0 */
-+	__u8 _tcnt1[3];
-+	volatile __u8 tcnt1;		/* counter 1 */
-+	__u8 _tcnt2[3];
-+	volatile __u8 tcnt2;		/* counter 2 */
-+	__u8 _tcword[3];
-+	volatile __u8 tcword;		/* control word */
- #define SGINT_TCWORD_BCD	0x01	/* Use BCD mode for counters */
- #define SGINT_TCWORD_MMASK	0x0e	/* Mode bitmask. */
- #define SGINT_TCWORD_MITC	0x00	/* IRQ on terminal count (doesn't work) */
-@@ -115,55 +115,55 @@
- #define SGINT_TCSAMP_COUNTER	((SGINT_TIMER_CLOCK / HZ) + 255)
- 
- /* We need software copies of these because they are write only. */
--extern u8 sgi_ioc_reset, sgi_ioc_write;
-+extern __u8 sgi_ioc_reset, sgi_ioc_write;
- 
- struct sgioc_regs {
- 	struct pi1_regs pport;
--	u32 _unused0[2];
-+	__u32 _unused0[2];
- 	struct sgioc_uart_regs serport;
- 	struct sgioc_keyb_regs kbdmouse;
--	u8 _gcsel[3];
--	volatile u8 gcsel;
--	u8 _genctrl[3];
--	volatile u8 genctrl;
--	u8 _panel[3];
--	volatile u8 panel;
-+	__u8 _gcsel[3];
-+	volatile __u8 gcsel;
-+	__u8 _genctrl[3];
-+	volatile __u8 genctrl;
-+	__u8 _panel[3];
-+	volatile __u8 panel;
- #define SGIOC_PANEL_POWERON	0x01
- #define SGIOC_PANEL_POWERINTR	0x02
- #define SGIOC_PANEL_VOLDNINTR	0x10
- #define SGIOC_PANEL_VOLDNHOLD	0x20
- #define SGIOC_PANEL_VOLUPINTR	0x40
- #define SGIOC_PANEL_VOLUPHOLD	0x80
--	u32 _unused1;
--	u8 _sysid[3];
--	volatile u8 sysid;
-+	__u32 _unused1;
-+	__u8 _sysid[3];
-+	volatile __u8 sysid;
- #define SGIOC_SYSID_FULLHOUSE	0x01
- #define SGIOC_SYSID_BOARDREV(x)	((x & 0xe0) > 5) 
- #define SGIOC_SYSID_CHIPREV(x)	((x & 0x1e) > 1)
--	u32 _unused2;
--	u8 _read[3];
--	volatile u8 read;
--	u32 _unused3;
--	u8 _dmasel[3];
--	volatile u8 dmasel;
-+	__u32 _unused2;
-+	__u8 _read[3];
-+	volatile __u8 read;
-+	__u32 _unused3;
-+	__u8 _dmasel[3];
-+	volatile __u8 dmasel;
- #define SGIOC_DMASEL_SCLK10MHZ	0x00	/* use 10MHZ serial clock */
- #define SGIOC_DMASEL_ISDNB	0x01	/* enable isdn B */
- #define SGIOC_DMASEL_ISDNA	0x02	/* enable isdn A */
- #define SGIOC_DMASEL_PPORT	0x04	/* use parallel DMA */
- #define SGIOC_DMASEL_SCLK667MHZ	0x10	/* use 6.67MHZ serial clock */
- #define SGIOC_DMASEL_SCLKEXT	0x20	/* use external serial clock */
--	u32 _unused4;
--	u8 _reset[3];
--	volatile u8 reset;
-+	__u32 _unused4;
-+	__u8 _reset[3];
-+	volatile __u8 reset;
- #define SGIOC_RESET_PPORT	0x01	/* 0=parport reset, 1=nornal */
- #define SGIOC_RESET_KBDMOUSE	0x02	/* 0=kbdmouse reset, 1=normal */
- #define SGIOC_RESET_EISA	0x04	/* 0=eisa reset, 1=normal */
- #define SGIOC_RESET_ISDN	0x08	/* 0=isdn reset, 1=normal */
- #define SGIOC_RESET_LC0OFF	0x10	/* guiness: turn led off (red, else green) */
- #define SGIOC_RESET_LC1OFF	0x20	/* guiness: turn led off (green, else amber) */
--	u32 _unused5;
--	u8 _write[3];
--	volatile u8 write;
-+	__u32 _unused5;
-+	__u8 _write[3];
-+	volatile __u8 write;
- #define SGIOC_WRITE_NTHRESH	0x01	/* use 4.5db threshhold */
- #define SGIOC_WRITE_TPSPEED	0x02	/* use 100ohm TP speed */
- #define SGIOC_WRITE_EPSEL	0x04	/* force cable mode: 1=AUI 0=TP */
-@@ -172,10 +172,10 @@
- #define SGIOC_WRITE_U0AMODE	0x20	/* 1=PC 0=MAC UART mode */
- #define SGIOC_WRITE_MLO		0x40	/* 1=4.75V 0=+5V */
- #define SGIOC_WRITE_MHI		0x80	/* 1=5.25V 0=+5V */
--	u32 _unused6;
-+	__u32 _unused6;
- 	struct sgint_regs int3;
--	u32 _unused7[16];
--	volatile u32 extio;		/* FullHouse only */
-+	__u32 _unused7[16];
-+	volatile __u32 extio;		/* FullHouse only */
- #define EXTIO_S0_IRQ_3		0x8000	/* S0: vid.vsync */
- #define EXTIO_S0_IRQ_2		0x4000	/* S0: gfx.fifofull */
- #define EXTIO_S0_IRQ_1		0x2000	/* S0: gfx.int */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sgi/mc.h linux-libc-headers-2.6.8.0/include/asm-mips/sgi/mc.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sgi/mc.h	2003-12-15 12:47:03.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/sgi/mc.h	2004-08-26 05:25:28.000000000 -0500
-@@ -14,8 +14,8 @@
- #define _SGI_MC_H
- 
- struct sgimc_regs {
--	u32 _unused0;
--	volatile u32 cpuctrl0;	/* CPU control register 0, readwrite */
-+	__u32 _unused0;
-+	volatile __u32 cpuctrl0;	/* CPU control register 0, readwrite */
- #define SGIMC_CCTRL0_REFS	0x0000000f /* REFS mask */
- #define SGIMC_CCTRL0_EREFRESH	0x00000010 /* Memory refresh enable */
- #define SGIMC_CCTRL0_EPERRGIO	0x00000020 /* GIO parity error enable */
-@@ -35,8 +35,8 @@
- #define SGIMC_CCTRL0_CMEMBADPAR	0x02000000 /* Generate bad perr from cpu to mem */
- #define SGIMC_CCTRL0_R4KNOCHKPARR 0x04000000 /* Don't chk parity on mem data reads */
- #define SGIMC_CCTRL0_GIOBTOB	0x08000000 /* Allow GIO back to back writes */
--	u32 _unused1;
--	volatile u32 cpuctrl1;	/* CPU control register 1, readwrite */
-+	__u32 _unused1;
-+	volatile __u32 cpuctrl1;	/* CPU control register 1, readwrite */
- #define SGIMC_CCTRL1_EGIOTIMEO	0x00000010 /* GIO bus timeout enable */
- #define SGIMC_CCTRL1_FIXEDEHPC	0x00001000 /* Fixed HPC endianness */
- #define SGIMC_CCTRL1_LITTLEHPC	0x00002000 /* Little endian HPC */
-@@ -45,33 +45,33 @@
- #define SGIMC_CCTRL1_FIXEDEEXP1	0x00010000 /* Fixed EXP1 endianness */
- #define SGIMC_CCTRL1_LITTLEEXP1	0x00020000 /* Little endian EXP1 */
- 
--	u32 _unused2;
--	volatile u32 watchdogt;	/* Watchdog reg rdonly, write clears */
-+	__u32 _unused2;
-+	volatile __u32 watchdogt;	/* Watchdog reg rdonly, write clears */
- 
--	u32 _unused3;
--	volatile u32 systemid;	/* MC system ID register, readonly */
-+	__u32 _unused3;
-+	volatile __u32 systemid;	/* MC system ID register, readonly */
- #define SGIMC_SYSID_MASKREV	0x0000000f /* Revision of MC controller */
- #define SGIMC_SYSID_EPRESENT	0x00000010 /* Indicates presence of EISA bus */
- 
--	u32 _unused4[3];
--	volatile u32 divider;	/* Divider reg for RPSS */
-+	__u32 _unused4[3];
-+	volatile __u32 divider;	/* Divider reg for RPSS */
- 
--	u32 _unused5;
--	volatile u32 eeprom;	/* EEPROM byte reg for r4k */
-+	__u32 _unused5;
-+	volatile __u32 eeprom;	/* EEPROM byte reg for r4k */
- #define SGIMC_EEPROM_PRE	0x00000001 /* eeprom chip PRE pin assertion */
- #define SGIMC_EEPROM_CSEL	0x00000002 /* Active high, eeprom chip select */
- #define SGIMC_EEPROM_SECLOCK	0x00000004 /* EEPROM serial clock */
- #define SGIMC_EEPROM_SDATAO	0x00000008 /* Serial EEPROM data-out */
- #define SGIMC_EEPROM_SDATAI	0x00000010 /* Serial EEPROM data-in */
- 
--	u32 _unused6[3];
--	volatile u32 rcntpre;	/* Preload refresh counter */
-+	__u32 _unused6[3];
-+	volatile __u32 rcntpre;	/* Preload refresh counter */
- 
--	u32 _unused7;
--	volatile u32 rcounter;	/* Readonly refresh counter */
-+	__u32 _unused7;
-+	volatile __u32 rcounter;	/* Readonly refresh counter */
- 
--	u32 _unused8[13];
--	volatile u32 giopar;	/* Parameter word for GIO64 */
-+	__u32 _unused8[13];
-+	volatile __u32 giopar;	/* Parameter word for GIO64 */
- #define SGIMC_GIOPAR_HPC64	0x00000001 /* HPC talks to GIO using 64-bits */
- #define SGIMC_GIOPAR_GFX64	0x00000002 /* GFX talks to GIO using 64-bits */
- #define SGIMC_GIOPAR_EXP064	0x00000004 /* EXP(slot0) talks using 64-bits */
-@@ -89,36 +89,36 @@
- #define SGIMC_GIOPAR_PLINEEXP0	0x00004000 /* EXP(slot0) has pipeline attr */
- #define SGIMC_GIOPAR_PLINEEXP1	0x00008000 /* EXP(slot1) has pipeline attr */
- 
--	u32 _unused9;
--	volatile u32 cputp;	/* CPU bus arb time period */
-+	__u32 _unused9;
-+	volatile __u32 cputp;	/* CPU bus arb time period */
- 
--	u32 _unused10[3];
--	volatile u32 lbursttp;	/* Time period for long bursts */
-+	__u32 _unused10[3];
-+	volatile __u32 lbursttp;	/* Time period for long bursts */
- 
- 	/* MC chip can drive up to 4 bank 4 SIMMs each. All SIMMs in bank must
- 	 * be the same size. The size encoding for supported SIMMs is bellow */
--	u32 _unused11[9];
--	volatile u32 mconfig0;	/* Memory config register zero */
--	u32 _unused12;
--	volatile u32 mconfig1;	/* Memory config register one */
-+	__u32 _unused11[9];
-+	volatile __u32 mconfig0;	/* Memory config register zero */
-+	__u32 _unused12;
-+	volatile __u32 mconfig1;	/* Memory config register one */
- #define SGIMC_MCONFIG_BASEADDR	0x000000ff /* Base address of bank*/
- #define SGIMC_MCONFIG_RMASK	0x00001f00 /* Ram config bitmask */
- #define SGIMC_MCONFIG_BVALID	0x00002000 /* Bank is valid */
- #define SGIMC_MCONFIG_SBANKS	0x00004000 /* Number of subbanks */
- 
--	u32 _unused13;
--	volatile u32 cmacc;        /* Mem access config for CPU */
--	u32 _unused14;
--	volatile u32 gmacc;        /* Mem access config for GIO */
-+	__u32 _unused13;
-+	volatile __u32 cmacc;        /* Mem access config for CPU */
-+	__u32 _unused14;
-+	volatile __u32 gmacc;        /* Mem access config for GIO */
- 
- 	/* This define applies to both cmacc and gmacc registers above. */
- #define SGIMC_MACC_ALIASBIG	0x20000000 /* 512MB home for alias */
- 
- 	/* Error address/status regs from GIO and CPU perspectives. */
--	u32 _unused15;
--	volatile u32 cerr;	/* Error address reg for CPU */
--	u32 _unused16;
--	volatile u32 cstat;	/* Status reg for CPU */
-+	__u32 _unused15;
-+	volatile __u32 cerr;	/* Error address reg for CPU */
-+	__u32 _unused16;
-+	volatile __u32 cstat;	/* Status reg for CPU */
- #define SGIMC_CSTAT_RD		0x00000100 /* read parity error */
- #define SGIMC_CSTAT_PAR		0x00000200 /* CPU parity error */
- #define SGIMC_CSTAT_ADDR	0x00000400 /* memory bus error bad addr */
-@@ -128,10 +128,10 @@
- #define SGIMC_CSTAT_PAR_MASK	0x00001f00 /* parity error mask */
- #define SGIMC_CSTAT_RD_PAR	(SGIMC_CSTAT_RD | SGIMC_CSTAT_PAR)
- 
--	u32 _unused17;
--	volatile u32 gerr;	/* Error address reg for GIO */
--	u32 _unused18;
--	volatile u32 gstat;	/* Status reg for GIO */
-+	__u32 _unused17;
-+	volatile __u32 gerr;	/* Error address reg for GIO */
-+	__u32 _unused18;
-+	volatile __u32 gstat;	/* Status reg for GIO */
- #define SGIMC_GSTAT_RD		0x00000100 /* read parity error */
- #define SGIMC_GSTAT_WR		0x00000200 /* write parity error */
- #define SGIMC_GSTAT_TIME	0x00000400 /* GIO bus timed out */
-@@ -142,76 +142,76 @@
- #define SGIMC_GSTAT_PIO_WR	0x00008000 /* write data parity on pio */
- 
- 	/* Special hard bus locking registers. */
--	u32 _unused19;
--	volatile u32 syssembit;		/* Uni-bit system semaphore */
--	u32 _unused20;
--	volatile u32 mlock;		/* Global GIO memory access lock */
--	u32 _unused21;
--	volatile u32 elock;		/* Locks EISA from GIO accesses */
-+	__u32 _unused19;
-+	volatile __u32 syssembit;	/* Uni-bit system semaphore */
-+	__u32 _unused20;
-+	volatile __u32 mlock;		/* Global GIO memory access lock */
-+	__u32 _unused21;
-+	volatile __u32 elock;		/* Locks EISA from GIO accesses */
- 
- 	/* GIO dma control registers. */
--	u32 _unused22[15];
--	volatile u32 gio_dma_trans;	/* DMA mask to translation GIO addrs */
--	u32 _unused23;
--	volatile u32 gio_dma_sbits;	/* DMA GIO addr substitution bits */
--	u32 _unused24;
--	volatile u32 dma_intr_cause;	/* DMA IRQ cause indicator bits */
--	u32 _unused25;
--	volatile u32 dma_ctrl;		/* Main DMA control reg */
-+	__u32 _unused22[15];
-+	volatile __u32 gio_dma_trans;	/* DMA mask to translation GIO addrs */
-+	__u32 _unused23;
-+	volatile __u32 gio_dma_sbits;	/* DMA GIO addr substitution bits */
-+	__u32 _unused24;
-+	volatile __u32 dma_intr_cause;	/* DMA IRQ cause indicator bits */
-+	__u32 _unused25;
-+	volatile __u32 dma_ctrl;	/* Main DMA control reg */
- 
- 	/* DMA TLB entry 0 */
--	u32 _unused26[5];
--	volatile u32 dtlb_hi0;
--	u32 _unused27;
--	volatile u32 dtlb_lo0;
-+	__u32 _unused26[5];
-+	volatile __u32 dtlb_hi0;
-+	__u32 _unused27;
-+	volatile __u32 dtlb_lo0;
- 
- 	/* DMA TLB entry 1 */
--	u32 _unused28;
--	volatile u32 dtlb_hi1;
--	u32 _unused29;
--	volatile u32 dtlb_lo1;
-+	__u32 _unused28;
-+	volatile __u32 dtlb_hi1;
-+	__u32 _unused29;
-+	volatile __u32 dtlb_lo1;
- 
- 	/* DMA TLB entry 2 */
--	u32 _unused30;
--	volatile u32 dtlb_hi2;
--	u32 _unused31;
--	volatile u32 dtlb_lo2;
-+	__u32 _unused30;
-+	volatile __u32 dtlb_hi2;
-+	__u32 _unused31;
-+	volatile __u32 dtlb_lo2;
- 
- 	/* DMA TLB entry 3 */
--	u32 _unused32;
--	volatile u32 dtlb_hi3;
--	u32 _unused33;
--	volatile u32 dtlb_lo3;
-+	__u32 _unused32;
-+	volatile __u32 dtlb_hi3;
-+	__u32 _unused33;
-+	volatile __u32 dtlb_lo3;
- 	
--	u32 _unused34[0x0392];
-+	__u32 _unused34[0x0392];
- 	
--	u32 _unused35;
--	volatile u32 rpsscounter;	/* Chirps at 100ns */
-+	__u32 _unused35;
-+	volatile __u32 rpsscounter;	/* Chirps at 100ns */
- 
--	u32 _unused36[0x1000/4-2*4];
-+	__u32 _unused36[0x1000/4-2*4];
- 	
--	u32 _unused37;
--	volatile u32 maddronly;		/* Address DMA goes at */
--	u32 _unused38;
--	volatile u32 maddrpdeflts;	/* Same as above, plus set defaults */
--	u32 _unused39;
--	volatile u32 dmasz;		/* DMA count */
--	u32 _unused40;
--	volatile u32 ssize;		/* DMA stride size */
--	u32 _unused41;
--	volatile u32 gmaddronly;	/* Set GIO DMA but don't start trans */
--	u32 _unused42;
--	volatile u32 dmaddnpgo;		/* Set GIO DMA addr + start transfer */
--	u32 _unused43;
--	volatile u32 dmamode;		/* DMA mode config bit settings */
--	u32 _unused44;
--	volatile u32 dmaccount;		/* Zoom and byte count for DMA */
--	u32 _unused45;
--	volatile u32 dmastart;		/* Pedal to the metal. */
--	u32 _unused46;
--	volatile u32 dmarunning;	/* DMA op is in progress */
--	u32 _unused47;
--	volatile u32 maddrdefstart;	/* Set dma addr, defaults, and kick it */
-+	__u32 _unused37;
-+	volatile __u32 maddronly;	/* Address DMA goes at */
-+	__u32 _unused38;
-+	volatile __u32 maddrpdeflts;	/* Same as above, plus set defaults */
-+	__u32 _unused39;
-+	volatile __u32 dmasz;		/* DMA count */
-+	__u32 _unused40;
-+	volatile __u32 ssize;		/* DMA stride size */
-+	__u32 _unused41;
-+	volatile __u32 gmaddronly;	/* Set GIO DMA but don't start trans */
-+	__u32 _unused42;
-+	volatile __u32 dmaddnpgo;	/* Set GIO DMA addr + start transfer */
-+	__u32 _unused43;
-+	volatile __u32 dmamode;		/* DMA mode config bit settings */
-+	__u32 _unused44;
-+	volatile __u32 dmaccount;	/* Zoom and byte count for DMA */
-+	__u32 _unused45;
-+	volatile __u32 dmastart;	/* Pedal to the metal. */
-+	__u32 _unused46;
-+	volatile __u32 dmarunning;	/* DMA op is in progress */
-+	__u32 _unused47;
-+	volatile __u32 maddrdefstart;	/* Set dma addr, defaults, and kick it */
- };
- 
- extern struct sgimc_regs *sgimc;
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sgiarcs.h linux-libc-headers-2.6.8.0/include/asm-mips/sgiarcs.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sgiarcs.h	2004-03-28 07:51:52.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/sgiarcs.h	2004-08-26 05:21:53.000000000 -0500
-@@ -164,11 +164,11 @@
- /* This prom has a bolixed design. */
- struct linux_bigint {
- #ifdef __MIPSEL__
--	u32 lo;
--	s32 hi;
-+	__u32 lo;
-+	__s32 hi;
- #else /* !(__MIPSEL__) */
--	s32 hi;
--	u32 lo;
-+	__s32 hi;
-+	__u32 lo;
- #endif
- };
- 
-@@ -366,7 +366,7 @@
-  * Macros for calling a 32-bit ARC implementation from 64-bit code
-  */
- 
--#if defined(CONFIG_MIPS64) && defined(CONFIG_ARC32)
-+#if defined(__mips64) && defined(CONFIG_ARC32)
- 
- #define __arc_clobbers							\
- 	"$2","$3" /* ... */, "$8","$9","$10","$11",			\
-@@ -475,10 +475,10 @@
- 	__res;								\
- })
- 
--#endif /* defined(CONFIG_MIPS64) && defined(CONFIG_ARC32) */
-+#endif /* defined(__mips64) && defined(CONFIG_ARC32) */
- 
--#if (defined(CONFIG_MIPS32) && defined(CONFIG_ARC32)) ||		\
--    (defined(CONFIG_MIPS64) && defined(CONFIG_ARC64))
-+#if (!defined(__mips64) && defined(CONFIG_ARC32)) ||		\
-+    (defined(__mips64) && defined(CONFIG_ARC64))
- 
- #define ARC_CALL0(dest)							\
- ({	long __res;							\
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/siginfo.h linux-libc-headers-2.6.8.0/include/asm-mips/siginfo.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/siginfo.h	2004-06-09 07:00:41.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/siginfo.h	2004-08-26 05:14:41.000000000 -0500
-@@ -66,10 +66,10 @@
- 
- 		/* SIGPOLL, SIGXFSZ (To do ...)  */
- 		struct {
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- 			int _band;	/* POLL_IN, POLL_OUT, POLL_MSG */
- #endif
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- 			long _band;	/* POLL_IN, POLL_OUT, POLL_MSG */
- #endif
- 			int _fd;
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sim.h linux-libc-headers-2.6.8.0/include/asm-mips/sim.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sim.h	2004-03-28 07:51:52.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/sim.h	2004-08-26 05:17:16.000000000 -0500
-@@ -18,7 +18,7 @@
- #define __str2(x) #x
- #define __str(x) __str2(x)
- 
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- 
- #define save_static_function(symbol)					\
- __asm__ (								\
-@@ -43,9 +43,9 @@
- 
- #define nabi_no_regargs
- 
--#endif /* CONFIG_MIPS32 */
-+#endif /* ndef __mips64 */
- 
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- 
- #define save_static_function(symbol)					\
- __asm__ (								\
-@@ -78,6 +78,6 @@
- 	unsigned long __dummy6,						\
- 	unsigned long __dummy7,
- 
--#endif /* CONFIG_MIPS64 */
-+#endif /* __mips64 */
- 
- #endif /* _ASM_SIM_H */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/arch.h linux-libc-headers-2.6.8.0/include/asm-mips/sn/arch.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/arch.h	2004-06-09 07:00:42.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/sn/arch.h	2004-08-26 05:26:16.000000000 -0500
-@@ -17,8 +17,8 @@
- #include <asm/sn/sn0/arch.h>
- #endif
- 
--typedef u64	hubreg_t;
--typedef u64	nic_t;
-+typedef __u64	hubreg_t;
-+typedef __u64	nic_t;
- 
- #define cputonasid(cpu)			(cpu_data[(cpu)].p_nasid)
- #define cputoslice(cpu)			(cpu_data[(cpu)].p_slice)
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/gda.h linux-libc-headers-2.6.8.0/include/asm-mips/sn/gda.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/gda.h	2003-12-15 12:47:02.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/sn/gda.h	2004-08-26 05:26:30.000000000 -0500
-@@ -44,11 +44,11 @@
- #ifndef __ASSEMBLY__
- 
- typedef struct gda {
--	u32	g_magic;	/* GDA magic number */
--	u16	g_version;	/* Version of this structure */
--	u16	g_masterid;	/* The NASID:CPUNUM of the master cpu */
--	u32	g_promop;	/* Passes requests from the kernel to prom */
--	u32	g_vds;		/* Store the virtual dipswitches here */
-+	__u32	g_magic;	/* GDA magic number */
-+	__u16	g_version;	/* Version of this structure */
-+	__u16	g_masterid;	/* The NASID:CPUNUM of the master cpu */
-+	__u32	g_promop;	/* Passes requests from the kernel to prom */
-+	__u32	g_vds;		/* Store the virtual dipswitches here */
- 	void	**g_hooked_norm;/* ptr to pda loc for norm hndlr */
- 	void	**g_hooked_utlb;/* ptr to pda loc for utlb hndlr */
- 	void	**g_hooked_xtlb;/* ptr to pda loc for xtlb hndlr */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/ioc3.h linux-libc-headers-2.6.8.0/include/asm-mips/sn/ioc3.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/ioc3.h	2003-12-15 12:47:02.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/sn/ioc3.h	2004-08-26 05:26:06.000000000 -0500
-@@ -8,23 +8,23 @@
- /* SUPERIO uart register map */
- typedef volatile struct ioc3_uartregs {
- 	union {
--		volatile u8	rbr;	/* read only, DLAB == 0 */
--		volatile u8	thr;	/* write only, DLAB == 0 */
--		volatile u8	dll;	/* DLAB == 1 */
-+		volatile __u8	rbr;	/* read only, DLAB == 0 */
-+		volatile __u8	thr;	/* write only, DLAB == 0 */
-+		volatile __u8	dll;	/* DLAB == 1 */
- 	} u1;
- 	union {
--		volatile u8	ier;	/* DLAB == 0 */
--		volatile u8	dlm;	/* DLAB == 1 */
-+		volatile __u8	ier;	/* DLAB == 0 */
-+		volatile __u8	dlm;	/* DLAB == 1 */
- 	} u2;
- 	union {
--		volatile u8	iir;	/* read only */
--		volatile u8	fcr;	/* write only */
-+		volatile __u8	iir;	/* read only */
-+		volatile __u8	fcr;	/* write only */
- 	} u3;
--	volatile u8	    iu_lcr;
--	volatile u8	    iu_mcr;
--	volatile u8	    iu_lsr;
--	volatile u8	    iu_msr;
--	volatile u8	    iu_scr;
-+	volatile __u8	    iu_lcr;
-+	volatile __u8	    iu_mcr;
-+	volatile __u8	    iu_lsr;
-+	volatile __u8	    iu_msr;
-+	volatile __u8	    iu_scr;
- } ioc3_uregs_t;
- 
- #define iu_rbr u1.rbr
-@@ -36,29 +36,29 @@
- #define iu_fcr u3.fcr
- 
- struct ioc3_sioregs {
--	volatile u8		fill[0x141];	/* starts at 0x141 */
-+	volatile __u8		fill[0x141];	/* starts at 0x141 */
- 
--	volatile u8		uartc;
--	volatile u8		kbdcg;
-+	volatile __u8		uartc;
-+	volatile __u8		kbdcg;
- 
--	volatile u8		fill0[0x150 - 0x142 - 1];
-+	volatile __u8		fill0[0x150 - 0x142 - 1];
- 
--	volatile u8		pp_data;
--	volatile u8		pp_dsr;
--	volatile u8		pp_dcr;
-+	volatile __u8		pp_data;
-+	volatile __u8		pp_dsr;
-+	volatile __u8		pp_dcr;
- 
--	volatile u8		fill1[0x158 - 0x152 - 1];
-+	volatile __u8		fill1[0x158 - 0x152 - 1];
- 
--	volatile u8		pp_fifa;
--	volatile u8		pp_cfgb;
--	volatile u8		pp_ecr;
-+	volatile __u8		pp_fifa;
-+	volatile __u8		pp_cfgb;
-+	volatile __u8		pp_ecr;
- 
--	volatile u8		fill2[0x168 - 0x15a - 1];
-+	volatile __u8		fill2[0x168 - 0x15a - 1];
- 
--	volatile u8		rtcad;
--	volatile u8		rtcdat;
-+	volatile __u8		rtcad;
-+	volatile __u8		rtcdat;
- 
--	volatile u8		fill3[0x170 - 0x169 - 1];
-+	volatile __u8		fill3[0x170 - 0x169 - 1];
- 
- 	struct ioc3_uartregs    uartb;	/* 0x20170  */
- 	struct ioc3_uartregs    uarta;	/* 0x20178  */
-@@ -66,103 +66,103 @@
- 
- /* Register layout of IOC3 in configuration space.  */
- struct ioc3 {
--	volatile u32	pad0[7];	/* 0x00000  */
--	volatile u32	sio_ir;		/* 0x0001c  */
--	volatile u32	sio_ies;	/* 0x00020  */
--	volatile u32	sio_iec;	/* 0x00024  */
--	volatile u32	sio_cr;		/* 0x00028  */
--	volatile u32	int_out;	/* 0x0002c  */
--	volatile u32	mcr;		/* 0x00030  */
-+	volatile __u32	pad0[7];	/* 0x00000  */
-+	volatile __u32	sio_ir;		/* 0x0001c  */
-+	volatile __u32	sio_ies;	/* 0x00020  */
-+	volatile __u32	sio_iec;	/* 0x00024  */
-+	volatile __u32	sio_cr;		/* 0x00028  */
-+	volatile __u32	int_out;	/* 0x0002c  */
-+	volatile __u32	mcr;		/* 0x00030  */
- 
- 	/* General Purpose I/O registers  */
--	volatile u32	gpcr_s;		/* 0x00034  */
--	volatile u32	gpcr_c;		/* 0x00038  */
--	volatile u32	gpdr;		/* 0x0003c  */
--	volatile u32	gppr_0;		/* 0x00040  */
--	volatile u32	gppr_1;		/* 0x00044  */
--	volatile u32	gppr_2;		/* 0x00048  */
--	volatile u32	gppr_3;		/* 0x0004c  */
--	volatile u32	gppr_4;		/* 0x00050  */
--	volatile u32	gppr_5;		/* 0x00054  */
--	volatile u32	gppr_6;		/* 0x00058  */
--	volatile u32	gppr_7;		/* 0x0005c  */
--	volatile u32	gppr_8;		/* 0x00060  */
--	volatile u32	gppr_9;		/* 0x00064  */
--	volatile u32	gppr_10;	/* 0x00068  */
--	volatile u32	gppr_11;	/* 0x0006c  */
--	volatile u32	gppr_12;	/* 0x00070  */
--	volatile u32	gppr_13;	/* 0x00074  */
--	volatile u32	gppr_14;	/* 0x00078  */
--	volatile u32	gppr_15;	/* 0x0007c  */
-+	volatile __u32	gpcr_s;		/* 0x00034  */
-+	volatile __u32	gpcr_c;		/* 0x00038  */
-+	volatile __u32	gpdr;		/* 0x0003c  */
-+	volatile __u32	gppr_0;		/* 0x00040  */
-+	volatile __u32	gppr_1;		/* 0x00044  */
-+	volatile __u32	gppr_2;		/* 0x00048  */
-+	volatile __u32	gppr_3;		/* 0x0004c  */
-+	volatile __u32	gppr_4;		/* 0x00050  */
-+	volatile __u32	gppr_5;		/* 0x00054  */
-+	volatile __u32	gppr_6;		/* 0x00058  */
-+	volatile __u32	gppr_7;		/* 0x0005c  */
-+	volatile __u32	gppr_8;		/* 0x00060  */
-+	volatile __u32	gppr_9;		/* 0x00064  */
-+	volatile __u32	gppr_10;	/* 0x00068  */
-+	volatile __u32	gppr_11;	/* 0x0006c  */
-+	volatile __u32	gppr_12;	/* 0x00070  */
-+	volatile __u32	gppr_13;	/* 0x00074  */
-+	volatile __u32	gppr_14;	/* 0x00078  */
-+	volatile __u32	gppr_15;	/* 0x0007c  */
- 
- 	/* Parallel Port Registers  */
--	volatile u32	ppbr_h_a;	/* 0x00080  */
--	volatile u32	ppbr_l_a;	/* 0x00084  */
--	volatile u32	ppcr_a;		/* 0x00088  */
--	volatile u32	ppcr;		/* 0x0008c  */
--	volatile u32	ppbr_h_b;	/* 0x00090  */
--	volatile u32	ppbr_l_b;	/* 0x00094  */
--	volatile u32	ppcr_b;		/* 0x00098  */
-+	volatile __u32	ppbr_h_a;	/* 0x00080  */
-+	volatile __u32	ppbr_l_a;	/* 0x00084  */
-+	volatile __u32	ppcr_a;		/* 0x00088  */
-+	volatile __u32	ppcr;		/* 0x0008c  */
-+	volatile __u32	ppbr_h_b;	/* 0x00090  */
-+	volatile __u32	ppbr_l_b;	/* 0x00094  */
-+	volatile __u32	ppcr_b;		/* 0x00098  */
- 
- 	/* Keyboard and Mouse Registers  */
--	volatile u32	km_csr;		/* 0x0009c  */
--	volatile u32	k_rd;		/* 0x000a0  */
--	volatile u32	m_rd;		/* 0x000a4  */
--	volatile u32	k_wd;		/* 0x000a8  */
--	volatile u32	m_wd;		/* 0x000ac  */
-+	volatile __u32	km_csr;		/* 0x0009c  */
-+	volatile __u32	k_rd;		/* 0x000a0  */
-+	volatile __u32	m_rd;		/* 0x000a4  */
-+	volatile __u32	k_wd;		/* 0x000a8  */
-+	volatile __u32	m_wd;		/* 0x000ac  */
- 
- 	/* Serial Port Registers  */
--	volatile u32	sbbr_h;		/* 0x000b0  */
--	volatile u32	sbbr_l;		/* 0x000b4  */
--	volatile u32	sscr_a;		/* 0x000b8  */
--	volatile u32	stpir_a;	/* 0x000bc  */
--	volatile u32	stcir_a;	/* 0x000c0  */
--	volatile u32	srpir_a;	/* 0x000c4  */
--	volatile u32	srcir_a;	/* 0x000c8  */
--	volatile u32	srtr_a;		/* 0x000cc  */
--	volatile u32	shadow_a;	/* 0x000d0  */
--	volatile u32	sscr_b;		/* 0x000d4  */
--	volatile u32	stpir_b;	/* 0x000d8  */
--	volatile u32	stcir_b;	/* 0x000dc  */
--	volatile u32	srpir_b;	/* 0x000e0  */
--	volatile u32	srcir_b;	/* 0x000e4  */
--	volatile u32	srtr_b;		/* 0x000e8  */
--	volatile u32	shadow_b;	/* 0x000ec  */
-+	volatile __u32	sbbr_h;		/* 0x000b0  */
-+	volatile __u32	sbbr_l;		/* 0x000b4  */
-+	volatile __u32	sscr_a;		/* 0x000b8  */
-+	volatile __u32	stpir_a;	/* 0x000bc  */
-+	volatile __u32	stcir_a;	/* 0x000c0  */
-+	volatile __u32	srpir_a;	/* 0x000c4  */
-+	volatile __u32	srcir_a;	/* 0x000c8  */
-+	volatile __u32	srtr_a;		/* 0x000cc  */
-+	volatile __u32	shadow_a;	/* 0x000d0  */
-+	volatile __u32	sscr_b;		/* 0x000d4  */
-+	volatile __u32	stpir_b;	/* 0x000d8  */
-+	volatile __u32	stcir_b;	/* 0x000dc  */
-+	volatile __u32	srpir_b;	/* 0x000e0  */
-+	volatile __u32	srcir_b;	/* 0x000e4  */
-+	volatile __u32	srtr_b;		/* 0x000e8  */
-+	volatile __u32	shadow_b;	/* 0x000ec  */
- 
- 	/* Ethernet Registers  */
--	volatile u32	emcr;		/* 0x000f0  */
--	volatile u32	eisr;		/* 0x000f4  */
--	volatile u32	eier;		/* 0x000f8  */
--	volatile u32	ercsr;		/* 0x000fc  */
--	volatile u32	erbr_h;		/* 0x00100  */
--	volatile u32	erbr_l;		/* 0x00104  */
--	volatile u32	erbar;		/* 0x00108  */
--	volatile u32	ercir;		/* 0x0010c  */
--	volatile u32	erpir;		/* 0x00110  */
--	volatile u32	ertr;		/* 0x00114  */
--	volatile u32	etcsr;		/* 0x00118  */
--	volatile u32	ersr;		/* 0x0011c  */
--	volatile u32	etcdc;		/* 0x00120  */
--	volatile u32	ebir;		/* 0x00124  */
--	volatile u32	etbr_h;		/* 0x00128  */
--	volatile u32	etbr_l;		/* 0x0012c  */
--	volatile u32	etcir;		/* 0x00130  */
--	volatile u32	etpir;		/* 0x00134  */
--	volatile u32	emar_h;		/* 0x00138  */
--	volatile u32	emar_l;		/* 0x0013c  */
--	volatile u32	ehar_h;		/* 0x00140  */
--	volatile u32	ehar_l;		/* 0x00144  */
--	volatile u32	micr;		/* 0x00148  */
--	volatile u32	midr_r;		/* 0x0014c  */
--	volatile u32	midr_w;		/* 0x00150  */
--	volatile u32	pad1[(0x20000 - 0x00154) / 4];
-+	volatile __u32	emcr;		/* 0x000f0  */
-+	volatile __u32	eisr;		/* 0x000f4  */
-+	volatile __u32	eier;		/* 0x000f8  */
-+	volatile __u32	ercsr;		/* 0x000fc  */
-+	volatile __u32	erbr_h;		/* 0x00100  */
-+	volatile __u32	erbr_l;		/* 0x00104  */
-+	volatile __u32	erbar;		/* 0x00108  */
-+	volatile __u32	ercir;		/* 0x0010c  */
-+	volatile __u32	erpir;		/* 0x00110  */
-+	volatile __u32	ertr;		/* 0x00114  */
-+	volatile __u32	etcsr;		/* 0x00118  */
-+	volatile __u32	ersr;		/* 0x0011c  */
-+	volatile __u32	etcdc;		/* 0x00120  */
-+	volatile __u32	ebir;		/* 0x00124  */
-+	volatile __u32	etbr_h;		/* 0x00128  */
-+	volatile __u32	etbr_l;		/* 0x0012c  */
-+	volatile __u32	etcir;		/* 0x00130  */
-+	volatile __u32	etpir;		/* 0x00134  */
-+	volatile __u32	emar_h;		/* 0x00138  */
-+	volatile __u32	emar_l;		/* 0x0013c  */
-+	volatile __u32	ehar_h;		/* 0x00140  */
-+	volatile __u32	ehar_l;		/* 0x00144  */
-+	volatile __u32	micr;		/* 0x00148  */
-+	volatile __u32	midr_r;		/* 0x0014c  */
-+	volatile __u32	midr_w;		/* 0x00150  */
-+	volatile __u32	pad1[(0x20000 - 0x00154) / 4];
- 
- 	/* SuperIO Registers  XXX */
- 	struct ioc3_sioregs	sregs;	/* 0x20000 */
--	volatile u32	pad2[(0x40000 - 0x20180) / 4];
-+	volatile __u32	pad2[(0x40000 - 0x20180) / 4];
- 
- 	/* SSRAM Diagnostic Access */
--	volatile u32	ssram[(0x80000 - 0x40000) / 4];
-+	volatile __u32	ssram[(0x80000 - 0x40000) / 4];
- 
- 	/* Bytebus device offsets
- 	   0x80000 -   Access to the generic devices selected with   DEV0
-@@ -179,8 +179,8 @@
-  * Ethernet RX Buffer
-  */
- struct ioc3_erxbuf {
--	u32	w0;			/* first word (valid,bcnt,cksum) */
--	u32	err;			/* second word various errors */
-+	__u32	w0;			/* first word (valid,bcnt,cksum) */
-+	__u32	err;			/* second word various errors */
- 	/* next comes n bytes of padding */
- 	/* then the received ethernet frame itself */
- };
-@@ -208,11 +208,11 @@
-  */
- #define ETXD_DATALEN    104
- struct ioc3_etxd {
--	u32	cmd;				/* command field */
--	u32	bufcnt;				/* buffer counts field */
--	u64	p1;				/* buffer pointer 1 */
--	u64	p2;				/* buffer pointer 2 */
--	u8	data[ETXD_DATALEN];		/* opt. tx data */
-+	__u32	cmd;				/* command field */
-+	__u32	bufcnt;				/* buffer counts field */
-+	__u64	p1;				/* buffer pointer 1 */
-+	__u64	p2;				/* buffer pointer 2 */
-+	__u8	data[ETXD_DATALEN];		/* opt. tx data */
- };
- 
- #define ETXD_BYTECNT_MASK	0x000007ff	/* total byte count */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/klconfig.h linux-libc-headers-2.6.8.0/include/asm-mips/sn/klconfig.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/klconfig.h	2004-03-28 07:51:55.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/sn/klconfig.h	2004-08-26 05:26:13.000000000 -0500
-@@ -64,9 +64,9 @@
- #define KLCFGINFO_MAGIC	0xbeedbabe
- 
- #ifdef FRUTEST
--typedef u64 klconf_off_t;
-+typedef __u64 klconf_off_t;
- #else
--typedef s32 klconf_off_t;
-+typedef __s32 klconf_off_t;
- #endif
- 
- /*
-@@ -160,8 +160,8 @@
- /* Functions/macros needed to use this structure */
- 
- typedef struct kl_config_hdr {
--	u64		ch_magic;	/* set this to KLCFGINFO_MAGIC */
--	u32		ch_version;    /* structure version number */
-+	__u64		ch_magic;	/* set this to KLCFGINFO_MAGIC */
-+	__u32		ch_version;    /* structure version number */
- 	klconf_off_t	ch_malloc_hdr_off; /* offset of ch_malloc_hdr */
- 	klconf_off_t	ch_cons_off;       /* offset of ch_cons */
- 	klconf_off_t	ch_board_info;	/* the link list of boards */
-@@ -609,14 +609,14 @@
- 
- /* Info holders for various hardware components */
- 
--typedef u64 *pci_t;
--typedef u64 *vmeb_t;
--typedef u64 *vmed_t;
--typedef u64 *fddi_t;
--typedef u64 *scsi_t;
--typedef u64 *mio_t;
--typedef u64 *graphics_t;
--typedef u64 *router_t;
-+typedef __u64 *pci_t;
-+typedef __u64 *vmeb_t;
-+typedef __u64 *vmed_t;
-+typedef __u64 *fddi_t;
-+typedef __u64 *scsi_t;
-+typedef __u64 *mio_t;
-+typedef __u64 *graphics_t;
-+typedef __u64 *router_t;
- 
- /*
-  * The port info in ip27_cfg area translates to a lboart_t in the
-@@ -659,7 +659,7 @@
- 	klport_t	hub_port;		/* hub is connected to this */
- 	nic_t		hub_box_nic;		/* nic of containing box */
- 	klconf_off_t	hub_mfg_nic;		/* MFG NIC string */
--	u64		hub_speed;		/* Speed of hub in HZ */
-+	__u64		hub_speed;		/* Speed of hub in HZ */
- } klhub_t ;
- 
- typedef struct klhub_uart_s {			/* HUB */
-@@ -716,8 +716,8 @@
- #define MAX_PCI_SLOTS 8
- 
- typedef struct klpci_device_s {
--	s32	pci_device_id;	/* 32 bits of vendor/device ID. */
--	s32	pci_device_pad;	/* 32 bits of padding. */
-+	__s32	pci_device_id;	/* 32 bits of vendor/device ID. */
-+	__s32	pci_device_pad;	/* 32 bits of padding. */
- } klpci_device_t;
- 
- #define BRIDGE_STRUCT_VERSION	2
-@@ -767,7 +767,7 @@
- 	nic_t		rou_box_nic ;         /* nic of the containing module */
-     	klport_t 	rou_port[MAX_ROUTER_PORTS + 1] ; /* array index 1 to 6 */
- 	klconf_off_t	rou_mfg_nic ;     /* MFG NIC string */
--	u64	rou_vector;	  /* vector from master node */
-+	__u64	rou_vector;	  /* vector from master node */
- } klrou_t ;
- 
- /*
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/kldir.h linux-libc-headers-2.6.8.0/include/asm-mips/sn/kldir.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/kldir.h	2004-01-17 17:03:49.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/sn/kldir.h	2004-08-26 05:26:25.000000000 -0500
-@@ -210,7 +210,7 @@
- 
- #ifndef __ASSEMBLY__
- typedef struct kldir_ent_s {
--	u64		magic;		/* Indicates validity of entry      */
-+	__u64		magic;		/* Indicates validity of entry      */
- 	off_t		offset;		/* Offset from start of node space  */
- #if defined(CONFIG_SGI_IO)	/* FIXME */
- 	__psunsigned_t	pointer;	/* Pointer to area in some cases    */
-@@ -218,7 +218,7 @@
- 	unsigned long	pointer;	/* Pointer to area in some cases    */
- #endif
- 	size_t		size;		/* Size in bytes 		    */
--	u64		count;		/* Repeat count if array, 1 if not  */
-+	__u64		count;		/* Repeat count if array, 1 if not  */
- 	size_t		stride;		/* Stride if array, 0 if not        */
- 	char		rsvd[16];	/* Pad entry to 0x40 bytes          */
- 	/* NOTE: These 16 bytes are used in the Partition KLDIR
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/launch.h linux-libc-headers-2.6.8.0/include/asm-mips/sn/launch.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/launch.h	2004-01-17 17:03:49.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/sn/launch.h	2004-08-26 05:25:52.000000000 -0500
-@@ -62,14 +62,14 @@
- #ifndef __ASSEMBLY__
- 
- typedef int launch_state_t;
--typedef void (*launch_proc_t)(u64 call_parm);
-+typedef void (*launch_proc_t)(__u64 call_parm);
- 
- typedef struct launch_s {
--	volatile u64		magic;	/* Magic number                     */
--	volatile u64		busy;	/* Slave currently active           */
-+	volatile __u64		magic;	/* Magic number                     */
-+	volatile __u64		busy;	/* Slave currently active           */
- 	volatile launch_proc_t	call_addr;	/* Func. for slave to call  */
--	volatile u64		call_addr_c;	/* 1's complement of call_addr*/
--	volatile u64		call_parm;	/* Single parm passed to call*/
-+	volatile __u64		call_addr_c;	/* 1's complement of call_addr*/
-+	volatile __u64		call_parm;	/* Single parm passed to call*/
- 	volatile void *stack_addr;	/* Stack pointer for slave function */
- 	volatile void *gp_addr;		/* Global pointer for slave func.   */
- 	volatile char 		*bevutlb;/* Address of bev utlb ex handler   */
-@@ -84,7 +84,7 @@
- 
- #define LAUNCH_SLAVE	(*(void (*)(int nasid, int cpu, \
- 				    launch_proc_t call_addr, \
--				    u64 call_parm, \
-+				    __u64 call_parm, \
- 				    void *stack_addr, \
- 				    void *gp_addr)) \
- 			 IP27PROM_LAUNCHSLAVE)
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/sn0/hubio.h linux-libc-headers-2.6.8.0/include/asm-mips/sn/sn0/hubio.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/sn0/hubio.h	2003-12-15 12:47:02.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/sn/sn0/hubio.h	2004-08-26 05:27:21.000000000 -0500
-@@ -172,9 +172,9 @@
- #ifndef __ASSEMBLY__
- 
- typedef union hubii_wid_u {
--	u64	wid_reg_value;
-+	__u64	wid_reg_value;
- 	struct {
--		u64 	wid_rsvd: 	32,	/* unused */
-+		__u64 	wid_rsvd: 	32,	/* unused */
-                    	wid_rev_num:	 4,	/* revision number */
-                    	wid_part_num:	16,	/* the widget type: hub=c101 */
-                    	wid_mfg_num:	11,	/* Manufacturer id (IBM) */
-@@ -184,9 +184,9 @@
- 
- 
- typedef union hubii_wcr_u {
--	u64	wcr_reg_value;
-+	__u64	wcr_reg_value;
- 	struct {
--		u64 	wcr_rsvd: 	41,	/* unused */
-+		__u64 	wcr_rsvd: 	41,	/* unused */
-                    	wcr_e_thresh:	 5,	/* elasticity threshold */
- 			wcr_dir_con:	 1,	/* widget direct connect */
-                    	wcr_f_bad_pkt:	 1,	/* Force bad llp pkt enable */
-@@ -200,9 +200,9 @@
- #define	iwcr_dir_con	wcr_fields_s.wcr_dir_con
- 
- typedef union hubii_wstat_u {
--	u64      reg_value;
-+	__u64      reg_value;
- 	struct {
--		u64	rsvd1:		31,
-+		__u64	rsvd1:		31,
- 			crazy:		 1,	/* Crazy bit		*/
- 			rsvd2:		 8,
- 			llp_tx_cnt:	 8, 	/* LLP Xmit retry counter */
-@@ -217,9 +217,9 @@
- 
- 
- typedef union hubii_ilcsr_u {
--	u64	icsr_reg_value;
-+	__u64	icsr_reg_value;
- 	struct {
--		u64 	icsr_rsvd: 	22,	/* unused */
-+		__u64 	icsr_rsvd: 	22,	/* unused */
-                    	icsr_max_burst:	10,	/* max burst */
-                         icsr_rsvd4:	 6,	/* reserved */
-                    	icsr_max_retry:	10,	/* max retry */
-@@ -237,9 +237,9 @@
- 
- 
- typedef union hubii_iowa_u {
--	u64	iowa_reg_value;
-+	__u64	iowa_reg_value;
- 	struct {
--		u64 	iowa_rsvd: 	48,	/* unused */
-+		__u64 	iowa_rsvd: 	48,	/* unused */
-                        	iowa_wxoac:	 8,	/* xtalk widget access bits */
-                    	iowa_rsvd1:	 7,	/* xtalk widget access bits */
-                   	iowa_w0oac:	 1;	/* xtalk widget access bits */
-@@ -247,9 +247,9 @@
- } hubii_iowa_t;
- 
- typedef union hubii_iiwa_u {
--	u64	iiwa_reg_value;
-+	__u64	iiwa_reg_value;
- 	struct {
--		u64 	iiwa_rsvd: 	48,	/* unused */
-+		__u64 	iiwa_rsvd: 	48,	/* unused */
- 			iiwa_wxiac:	 8,	/* hub wid access bits */
- 			iiwa_rsvd1:	 7,	/* reserved */
- 			iiwa_w0iac:	 1;	/* hub wid0 access */
-@@ -257,9 +257,9 @@
- } hubii_iiwa_t;
- 
- typedef union	hubii_illr_u {
--	u64	illr_reg_value;
-+	__u64	illr_reg_value;
- 	struct {
--		u64 	illr_rsvd: 	32,	/* unused */
-+		__u64 	illr_rsvd: 	32,	/* unused */
- 			illr_cb_cnt:	16,	/* checkbit error count */
-                    	illr_sn_cnt:	16;	/* sequence number count */
-         } illr_fields_s;
-@@ -271,9 +271,9 @@
- /* io_perf_sel allows the caller to specify what tests will be
-    performed */
- typedef union io_perf_sel {
--	u64 perf_sel_reg;
-+	__u64 perf_sel_reg;
- 	struct {
--		u64 	perf_rsvd  : 48,
-+		__u64 	perf_rsvd  : 48,
- 		        perf_icct  :  8,
- 		        perf_ippr1 :  4,
-   		        perf_ippr0 :  4;
-@@ -284,9 +284,9 @@
-    hardware problems there is only one counter, not two. */
- 
- typedef union io_perf_cnt {
--	u64	perf_cnt;
-+	__u64	perf_cnt;
- 	struct {
--		u64	perf_rsvd1 : 32,
-+		__u64	perf_rsvd1 : 32,
-   			        perf_rsvd2 : 12,
-   			        perf_cnt   : 20;
- 	} perf_cnt_bits;
-@@ -442,9 +442,9 @@
-  */
- #ifndef __ASSEMBLY__
- typedef union icrba_u {
--	u64	reg_value;
-+	__u64	reg_value;
- 	struct {
--		u64 	resvd: 	6,
-+		__u64 	resvd: 	6,
- 			stall_bte0: 1,	/* Stall BTE 0 */
- 			stall_bte1: 1,	/* Stall BTE 1 */
- 			error:	1,	/* CRB has an error	*/
-@@ -464,10 +464,10 @@
-    runtime selection of the format based on the REV_ID field of the
-    NI_STATUS_REV_ID register. */
- typedef union h1_icrba_u {
--	u64	reg_value;
-+	__u64	reg_value;
- 
- 	struct {
--		u64 	resvd: 	6,
-+		__u64 	resvd: 	6,
- 			unused:	1,	/* Unused but RW!!	*/
- 			error:	1,	/* CRB has an error	*/
- 			ecode:	4,	/* Error Code 		*/
-@@ -525,9 +525,9 @@
-  */
- #ifndef __ASSEMBLY__
- typedef union icrbb_u {
--	u64	reg_value;
-+	__u64	reg_value;
- 	struct {
--	    u64	rsvd1:	5,
-+	    __u64	rsvd1:	5,
- 		btenum:	1,	/* BTE to which entry belongs to */
- 		cohtrans: 1,	/* Coherent transaction	*/
- 		xtsize:	2,	/* Xtalk operation size
-@@ -567,9 +567,9 @@
-    runtime selection of the format based on the REV_ID field of the
-    NI_STATUS_REV_ID register. */
- typedef union h1_icrbb_u {
--	u64	reg_value;
-+	__u64	reg_value;
- 	struct {
--		u64	rsvd1:	5,
-+		__u64	rsvd1:	5,
- 			btenum:	1,	/* BTE to which entry belongs to */
- 			cohtrans: 1,	/* Coherent transaction	*/
- 			xtsize:	2,	/* Xtalk operation size
-@@ -683,9 +683,9 @@
- #ifndef __ASSEMBLY__
- 
- typedef union icrbc_s {
--	u64	reg_value;
-+	__u64	reg_value;
- 	struct {
--		u64	rsvd:	6,
-+		__u64	rsvd:	6,
- 			sleep:	1,
- 			pricnt: 4,	/* Priority count sent with Read req */
- 			pripsc: 4,	/* Priority Pre scalar 	*/
-@@ -720,9 +720,9 @@
- 
- #ifndef __ASSEMBLY__
- typedef union icrbd_s {
--	u64	reg_value;
-+	__u64	reg_value;
- 	struct {
--	    u64	rsvd:	38,
-+	    __u64	rsvd:	38,
- 		toutvld: 1,	/* Timeout in progress for this CRB */
- 		ctxtvld: 1,	/* Context field below is valid	*/
- 		rsvd2:	1,
-@@ -742,9 +742,9 @@
- 
- 
- typedef union hubii_ifdr_u {
--	u64	hi_ifdr_value;
-+	__u64	hi_ifdr_value;
- 	struct {
--		u64	ifdr_rsvd:	49,
-+		__u64	ifdr_rsvd:	49,
- 	                ifdr_maxrp:	 7,
- 	                ifdr_rsvd1:	 1,
-                       	ifdr_maxrq:	 7;
-@@ -801,9 +801,9 @@
- #ifndef __ASSEMBLY__
- 
- typedef union iprte_a {
--	u64	entry;
-+	__u64	entry;
- 	struct {
--	    u64	rsvd1     : 7,  /* Reserved field 		*/
-+	    __u64	rsvd1     : 7,  /* Reserved field 		*/
- 		valid     : 1,	/* Maps to a timeout entry	*/
- 		rsvd2     : 1,
- 		srcnode   : 9,	/* Node which did this PIO	*/
-@@ -835,9 +835,9 @@
-  */
- 
- typedef union iprb_u {
--	u64	reg_value;
-+	__u64	reg_value;
- 	struct {
--	    u64	rsvd1:	15,
-+	    __u64	rsvd1:	15,
- 		error:	1,	/* Widget rcvd wr resp pkt w/ error */
- 		ovflow:	5,	/* Over flow count. perf measurement */
- 		fire_and_forget: 1, /* Launch Write without response */
-@@ -877,9 +877,9 @@
-  */
- #ifndef __ASSEMBLY__
- typedef union icrbp_a {
--	u64   ip_reg;	    /* the entire register value	*/
-+	__u64   ip_reg;	    /* the entire register value	*/
- 	struct {
--	     u64 error:	1,  /*    63, error occurred		*/
-+	     __u64 error:	1,  /*    63, error occurred		*/
- 		ln_uce:	1,  /*    62: uncorrectable memory 	*/
- 		ln_ae:	1,  /*    61: protection violation 	*/
- 		ln_werr:1,  /*    60: write access error 	*/
-@@ -919,9 +919,9 @@
- 
- #ifndef __ASSEMBLY__
- typedef union hubii_idsr {
--	u64 iin_reg;
-+	__u64 iin_reg;
- 	struct {
--		u64 rsvd1 : 35,
-+		__u64 rsvd1 : 35,
- 	            isent : 1,
- 	            rsvd2 : 3,
- 	            ienable: 1,
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/sn0/hubmd.h linux-libc-headers-2.6.8.0/include/asm-mips/sn/sn0/hubmd.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/sn0/hubmd.h	2004-01-17 17:03:49.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/sn/sn0/hubmd.h	2004-08-26 05:27:00.000000000 -0500
-@@ -541,7 +541,7 @@
-  */
- 
- struct dir_error_reg {
--	u64	uce_vld:   1,	/*    63: valid directory uce 	*/
-+	__u64	uce_vld:   1,	/*    63: valid directory uce 	*/
- 		ae_vld:	   1,	/*    62: valid dir prot ecc error */
- 		ce_vld:	   1,	/*    61: valid correctable ECC err*/
- 		rsvd1:	  19,	/* 60-42: reserved		*/
-@@ -555,13 +555,13 @@
- };
- 
- typedef union md_dir_error {
--	u64	derr_reg;	/* the entire register 		*/
-+	__u64	derr_reg;	/* the entire register 		*/
- 	struct dir_error_reg derr_fmt;	/* the register format		*/
- } md_dir_error_t;
- 
- 
- struct mem_error_reg {
--	u64	uce_vld:   1,	/*    63: valid memory uce 	*/
-+	__u64	uce_vld:   1,	/*    63: valid memory uce 	*/
- 		ce_vld:	   1,	/*    62: valid correctable ECC err*/
- 		rsvd1:	  22,	/* 61-40: reserved		*/
- 		bad_syn:   8,	/* 39-32: bad mem ecc syndrome	*/
-@@ -573,13 +573,13 @@
- 
- 
- typedef union md_mem_error {
--	u64	merr_reg;	/* the entire register 		*/
-+	__u64	merr_reg;	/* the entire register 		*/
- 	struct mem_error_reg  merr_fmt; /* format of the mem_error reg  */
- } md_mem_error_t;
- 
- 
- struct proto_error_reg {
--	u64	valid:	   1,	/*    63: valid protocol error	*/
-+	__u64	valid:	   1,	/*    63: valid protocol error	*/
- 		rsvd1:	   2,	/* 62-61: reserved		*/
- 		initiator:11,	/* 60-50: id of request initiator*/
- 		backoff:   2,	/* 49-48: backoff control	*/
-@@ -594,7 +594,7 @@
- };
- 
- typedef union md_proto_error {
--	u64	perr_reg;	/* the entire register 		*/
-+	__u64	perr_reg;	/* the entire register 		*/
- 	struct proto_error_reg	perr_fmt; /* format of the register	*/
- } md_proto_error_t;
- 
-@@ -642,7 +642,7 @@
- 
- 
- struct md_pdir_high_fmt {
--	u64	pd_hi_unused   : 16,
-+	__u64	pd_hi_unused   : 16,
- 		pd_hi_bvec     : 38,
- 		pd_hi_unused1  : 3,
- 		pd_hi_ecc      : 7;
-@@ -651,14 +651,14 @@
- 
- typedef union md_pdir_high {
- 	/* The 48 bits of standard directory, upper word */
--	u64	pd_hi_val;
-+	__u64	pd_hi_val;
- 	struct md_pdir_high_fmt pd_hi_fmt;
- }md_pdir_high_t;
- 
- 
- struct md_pdir_low_shared_fmt {
- 	/* The meaning of lower directory, shared */
--	u64	pds_lo_unused	: 16,
-+	__u64	pds_lo_unused	: 16,
- 		pds_lo_bvec	: 26,
- 		pds_lo_cnt	:  6,
- 		pds_lo_state	:  3,
-@@ -670,7 +670,7 @@
- 
- struct md_pdir_low_exclusive_fmt {
- 	/* The meaning of lower directory, exclusive */
--	u64	pde_lo_unused	: 31,
-+	__u64	pde_lo_unused	: 31,
- 		pde_lo_ptr	: 11,
- 		pde_lo_unused1	:  6,
- 		pde_lo_state	:  3,
-@@ -683,7 +683,7 @@
- 
- typedef union md_pdir_loent {
- 	/* The 48 bits of premium directory, lower word */
--	u64	pd_lo_val;
-+	__u64	pd_lo_val;
- 	struct md_pdir_low_exclusive_fmt pde_lo_fmt;
- 	struct md_pdir_low_shared_fmt	pds_lo_fmt;
- }md_pdir_low_t;
-@@ -711,25 +711,25 @@
- } bddir_entry_t;
- 
- typedef struct	dir_mem_entry	{
--        u64		prcpf[MAX_REGIONS];
-+        __u64		prcpf[MAX_REGIONS];
-         bddir_entry_t	directory_words[MD_PAGE_SIZE/CACHE_SLINE_SIZE];
- } dir_mem_entry_t;
- 
- 
- 
- typedef union md_perf_sel {
--	u64 	perf_sel_reg;
-+	__u64 	perf_sel_reg;
- 	struct	{
--		u64	perf_rsvd : 60,
-+		__u64	perf_rsvd : 60,
- 		        perf_en   :  1,
- 			perf_sel  :  3;
- 	} perf_sel_bits;
- } md_perf_sel_t;
- 
- typedef union md_perf_cnt {
--	u64	perf_cnt;
-+	__u64	perf_cnt;
- 	struct	{
--		u64	perf_rsvd : 44,
-+		__u64	perf_rsvd : 44,
- 	                perf_cnt  : 20;
- 	} perf_cnt_bits;
- } md_perf_cnt_t;
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/sn0/hubni.h linux-libc-headers-2.6.8.0/include/asm-mips/sn/sn0/hubni.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/sn0/hubni.h	2003-12-15 12:47:02.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/sn/sn0/hubni.h	2004-08-26 05:26:48.000000000 -0500
-@@ -229,9 +229,9 @@
- #ifndef __ASSEMBLY__
- 
- typedef union	hubni_port_error_u {
--	u64	nipe_reg_value;
-+	__u64	nipe_reg_value;
- 	struct {
--	    u64	nipe_rsvd:	26,	/* unused */
-+	    __u64    nipe_rsvd:	26,	/* unused */
- 		nipe_lnk_reset:	 1,	/* link reset */
- 		nipe_intl_err:	 1,	/* internal error */
- 		nipe_bad_msg:	 1,	/* bad message */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/sn0/hubpi.h linux-libc-headers-2.6.8.0/include/asm-mips/sn/sn0/hubpi.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/sn0/hubpi.h	2003-12-15 12:47:02.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/sn/sn0/hubpi.h	2004-08-26 05:26:36.000000000 -0500
-@@ -312,7 +312,7 @@
-  */
- 
- struct err_stack_format {
--	u64	sk_addr	   : 33,   /* address */
-+	__u64	sk_addr	   : 33,   /* address */
- 		sk_cmd	   :  8,   /* message command */
- 		sk_crb_sts : 10,   /* status from RRB or WRB */
- 		sk_rw_rb   :  1,   /* RRB == 0, WRB == 1 */
-@@ -323,12 +323,12 @@
- };
- 
- typedef union pi_err_stack {
--	u64	pi_stk_word;
-+	__u64	pi_stk_word;
- 	struct	err_stack_format pi_stk_fmt;
- } pi_err_stack_t;
- 
- struct err_status0_format {
--	u64	s0_valid   :  1,   /* Valid */
-+	__u64	s0_valid   :  1,   /* Valid */
- 		s0_ovr_run :  1,   /* Overrun, spooled to memory */
- 		s0_addr	   : 37,   /* address */
- 		s0_cmd	   :  8,   /* message command */
-@@ -338,12 +338,12 @@
- };
- 
- typedef union pi_err_stat0 {
--	u64	pi_stat0_word;
-+	__u64	pi_stat0_word;
- 	struct err_status0_format pi_stat0_fmt;
- } pi_err_stat0_t;
- 
- struct err_status1_format {
--	u64	s1_src	   : 11,   /* message source */
-+	__u64	s1_src	   : 11,   /* message source */
- 		s1_crb_sts : 10,   /* status from RRB or WRB */
- 		s1_rw_rb   :  1,   /* RRB == 0, WRB == 1 */
- 		s1_crb_num :  3,   /* WRB (0 to 7) or RRB (0 to 4) */
-@@ -353,11 +353,11 @@
- };
- 
- typedef union pi_err_stat1 {
--	u64	pi_stat1_word;
-+	__u64	pi_stat1_word;
- 	struct err_status1_format pi_stat1_fmt;
- } pi_err_stat1_t;
- 
--typedef u64	rtc_time_t;
-+typedef __u64	rtc_time_t;
- 
- #endif /* !__ASSEMBLY__ */
- 
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/stackframe.h linux-libc-headers-2.6.8.0/include/asm-mips/stackframe.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/stackframe.h	2004-08-18 13:15:41.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/stackframe.h	2004-08-26 05:14:41.000000000 -0500
-@@ -25,7 +25,7 @@
- 
- 		.macro	SAVE_TEMP
- 		mfhi	v1
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- 		LONG_S	$8, PT_R8(sp)
- 		LONG_S	$9, PT_R9(sp)
- #endif
-@@ -55,7 +55,7 @@
- 
- #ifdef CONFIG_SMP
- 		.macro	get_saved_sp	/* SMP variation */
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- 		mfc0	k0, CP0_CONTEXT
- 		lui	k1, %hi(kernelsp)
- 		srl	k0, k0, 23
-@@ -63,7 +63,7 @@
- 		addu	k1, k0
- 		LONG_L	k1, %lo(kernelsp)(k1)
- #endif
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- 		MFC0	k1, CP0_CONTEXT
- 		dsra	k1, 23
- 		lui	k0, %hi(pgd_current)
-@@ -76,13 +76,13 @@
- 		.endm
- 
- 		.macro	set_saved_sp stackp temp temp2
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- 		mfc0	\temp, CP0_CONTEXT
- 		srl	\temp, 23
- 		sll	\temp, 2
- 		LONG_S	\stackp, kernelsp(\temp)
- #endif
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- 		lw	\temp, TI_CPU(gp)
- 		dsll	\temp, 3
- 		lui	\temp2, %hi(kernelsp)
-@@ -127,7 +127,7 @@
- 		LONG_S	$6, PT_R6(sp)
- 		MFC0	v1, CP0_EPC
- 		LONG_S	$7, PT_R7(sp)
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- 		LONG_S	$8, PT_R8(sp)
- 		LONG_S	$9, PT_R9(sp)
- #endif
-@@ -156,7 +156,7 @@
- 
- 		.macro	RESTORE_TEMP
- 		LONG_L	$24, PT_LO(sp)
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- 		LONG_L	$8, PT_R8(sp)
- 		LONG_L	$9, PT_R9(sp)
- #endif
-@@ -204,7 +204,7 @@
- 		LONG_L	$31, PT_R31(sp)
- 		LONG_L	$28, PT_R28(sp)
- 		LONG_L	$25, PT_R25(sp)
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- 		LONG_L	$8, PT_R8(sp)
- 		LONG_L	$9, PT_R9(sp)
- #endif
-@@ -249,7 +249,7 @@
- 		LONG_L	$31, PT_R31(sp)
- 		LONG_L	$28, PT_R28(sp)
- 		LONG_L	$25, PT_R25(sp)
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- 		LONG_L	$8, PT_R8(sp)
- 		LONG_L	$9, PT_R9(sp)
- #endif
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/system.h linux-libc-headers-2.6.8.0/include/asm-mips/system.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/system.h	2004-08-18 13:15:42.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/system.h	2004-08-28 18:13:39.000000000 -0500
-@@ -15,10 +15,11 @@
- #include <asm/sgidefs.h>
- 
- #include <linux/kernel.h>
-+#include <linux/linkage.h>
- 
- #include <asm/addrspace.h>
- #include <asm/ptrace.h>
--#include <asm/hazards.h>
-+#include <asm/types.h>
- 
- __asm__ (
- 	".macro\tlocal_irq_enable\n\t"
-@@ -311,7 +312,7 @@
- 	return retval;
- }
- 
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- static inline __u64 __xchg_u64(volatile __u64 * m, __u64 val)
- {
- 	__u64 retval;
-@@ -406,7 +407,7 @@
- 	return retval;
- }
- 
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- static inline unsigned long __cmpxchg_u64(volatile int * m, unsigned long old,
- 	unsigned long new)
- {
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/tx4927/tx4927_mips.h linux-libc-headers-2.6.8.0/include/asm-mips/tx4927/tx4927_mips.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/tx4927/tx4927_mips.h	2003-12-15 12:47:03.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/tx4927/tx4927_mips.h	2004-08-26 05:22:30.000000000 -0500
-@@ -36,15 +36,15 @@
- 		".set\tmips0");
- }
- 
--#define reg_rd08(r)    ((u8 )(*((vu8 *)(r))))
--#define reg_rd16(r)    ((u16)(*((vu16*)(r))))
--#define reg_rd32(r)    ((u32)(*((vu32*)(r))))
--#define reg_rd64(r)    ((u64)(*((vu64*)(r))))
-+#define reg_rd08(r)    ((__u8 )(*((vu8 *)(r))))
-+#define reg_rd16(r)    ((__u16)(*((vu16*)(r))))
-+#define reg_rd32(r)    ((__u32)(*((vu32*)(r))))
-+#define reg_rd64(r)    ((__u64)(*((vu64*)(r))))
- 
--#define reg_wr08(r,v)  ((*((vu8 *)(r)))=((u8 )(v)))
--#define reg_wr16(r,v)  ((*((vu16*)(r)))=((u16)(v)))
--#define reg_wr32(r,v)  ((*((vu32*)(r)))=((u32)(v)))
--#define reg_wr64(r,v)  ((*((vu64*)(r)))=((u64)(v)))
-+#define reg_wr08(r,v)  ((*((vu8 *)(r)))=((__u8 )(v)))
-+#define reg_wr16(r,v)  ((*((vu16*)(r)))=((__u16)(v)))
-+#define reg_wr32(r,v)  ((*((vu32*)(r)))=((__u32)(v)))
-+#define reg_wr64(r,v)  ((*((vu64*)(r)))=((__u64)(v)))
- 
- typedef volatile __signed char vs8;
- typedef volatile unsigned char vu8;
-@@ -55,10 +55,10 @@
- typedef volatile __signed int vs32;
- typedef volatile unsigned int vu32;
- 
--typedef  s8  s08;
-+typedef  __s8  s08;
- typedef vs8 vs08;
- 
--typedef  u8  u08;
-+typedef  __u8  u08;
- typedef vu8 vu08;
- 
- 
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/unaligned.h linux-libc-headers-2.6.8.0/include/asm-mips/unaligned.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/unaligned.h	2004-08-15 15:38:27.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/unaligned.h	2004-08-26 05:22:21.000000000 -0500
-@@ -17,7 +17,7 @@
-  *
-  * This macro should be used for accessing values larger in size than
-  * single bytes at locations that are expected to be improperly aligned,
-- * e.g. retrieving a u16 value from a location not u16-aligned.
-+ * e.g. retrieving a __u16 value from a location not __u16-aligned.
-  *
-  * Note that unaligned accesses can be very expensive on some architectures.
-  */
-@@ -31,7 +31,7 @@
-  *
-  * This macro should be used for placing values larger in size than
-  * single bytes at locations that are expected to be improperly aligned,
-- * e.g. writing a u16 value to a location not u16-aligned.
-+ * e.g. writing a __u16 value to a location not __u16-aligned.
-  *
-  * Note that unaligned accesses can be very expensive on some architectures.
-  */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/xtalk/xwidget.h linux-libc-headers-2.6.8.0/include/asm-mips/xtalk/xwidget.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/xtalk/xwidget.h	2003-12-15 12:47:03.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/xtalk/xwidget.h	2004-08-26 05:23:33.000000000 -0500
-@@ -92,7 +92,7 @@
-  * defined here
-  */
- #ifndef __ASSEMBLY__
--typedef u32 widgetreg_t;
-+typedef __u32 widgetreg_t;
- 
- /* widget configuration registers */
- typedef volatile struct widget_cfg {
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/acpi.h linux-libc-headers-2.6.8.0/include/linux/acpi.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/acpi.h	2004-08-18 13:16:01.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/acpi.h	2004-08-26 05:41:49.000000000 -0500
-@@ -51,49 +51,49 @@
- 
- struct acpi_table_rsdp {
- 	char			signature[8];
--	u8			checksum;
-+	__u8			checksum;
- 	char			oem_id[6];
--	u8			revision;
--	u32			rsdt_address;
-+	__u8			revision;
-+	__u32			rsdt_address;
- } __attribute__ ((packed));
- 
- struct acpi20_table_rsdp {
- 	char			signature[8];
--	u8			checksum;
-+	__u8			checksum;
- 	char			oem_id[6];
--	u8			revision;
--	u32			rsdt_address;
--	u32			length;
--	u64			xsdt_address;
--	u8			ext_checksum;
--	u8			reserved[3];
-+	__u8			revision;
-+	__u32			rsdt_address;
-+	__u32			length;
-+	__u64			xsdt_address;
-+	__u8			ext_checksum;
-+	__u8			reserved[3];
- } __attribute__ ((packed));
- 
- typedef struct {
--	u8			type;
--	u8			length;
-+	__u8			type;
-+	__u8			length;
- } __attribute__ ((packed)) acpi_table_entry_header;
- 
- /* Root System Description Table (RSDT) */
- 
- struct acpi_table_rsdt {
- 	struct acpi_table_header header;
--	u32			entry[8];
-+	__u32			entry[8];
- } __attribute__ ((packed));
- 
- /* Extended System Description Table (XSDT) */
- 
- struct acpi_table_xsdt {
- 	struct acpi_table_header header;
--	u64			entry[1];
-+	__u64			entry[1];
- } __attribute__ ((packed));
- 
- /* Fixed ACPI Description Table (FADT) */
- 
- struct acpi_table_fadt {
- 	struct acpi_table_header header;
--	u32 facs_addr;
--	u32 dsdt_addr;
-+	__u32 facs_addr;
-+	__u32 dsdt_addr;
- 	/* ... */
- } __attribute__ ((packed));
- 
-@@ -101,10 +101,10 @@
- 
- struct acpi_table_madt {
- 	struct acpi_table_header header;
--	u32			lapic_address;
-+	__u32			lapic_address;
- 	struct {
--		u32			pcat_compat:1;
--		u32			reserved:31;
-+		__u32			pcat_compat:1;
-+		__u32			reserved:31;
- 	}			flags;
- } __attribute__ ((packed));
- 
-@@ -122,85 +122,85 @@
- };
- 
- typedef struct {
--	u16			polarity:2;
--	u16			trigger:2;
--	u16			reserved:12;
-+	__u16			polarity:2;
-+	__u16			trigger:2;
-+	__u16			reserved:12;
- } __attribute__ ((packed)) acpi_interrupt_flags;
- 
- struct acpi_table_lapic {
- 	acpi_table_entry_header	header;
--	u8			acpi_id;
--	u8			id;
-+	__u8			acpi_id;
-+	__u8			id;
- 	struct {
--		u32			enabled:1;
--		u32			reserved:31;
-+		__u32			enabled:1;
-+		__u32			reserved:31;
- 	}			flags;
- } __attribute__ ((packed));
- 
- struct acpi_table_ioapic {
- 	acpi_table_entry_header	header;
--	u8			id;
--	u8			reserved;
--	u32			address;
--	u32			global_irq_base;
-+	__u8			id;
-+	__u8			reserved;
-+	__u32			address;
-+	__u32			global_irq_base;
- } __attribute__ ((packed));
- 
- struct acpi_table_int_src_ovr {
- 	acpi_table_entry_header	header;
--	u8			bus;
--	u8			bus_irq;
--	u32			global_irq;
-+	__u8			bus;
-+	__u8			bus_irq;
-+	__u32			global_irq;
- 	acpi_interrupt_flags	flags;
- } __attribute__ ((packed));
- 
- struct acpi_table_nmi_src {
- 	acpi_table_entry_header	header;
- 	acpi_interrupt_flags	flags;
--	u32			global_irq;
-+	__u32			global_irq;
- } __attribute__ ((packed));
- 
- struct acpi_table_lapic_nmi {
- 	acpi_table_entry_header	header;
--	u8			acpi_id;
-+	__u8			acpi_id;
- 	acpi_interrupt_flags	flags;
--	u8			lint;
-+	__u8			lint;
- } __attribute__ ((packed));
- 
- struct acpi_table_lapic_addr_ovr {
- 	acpi_table_entry_header	header;
--	u8			reserved[2];
--	u64			address;
-+	__u8			reserved[2];
-+	__u64			address;
- } __attribute__ ((packed));
- 
- struct acpi_table_iosapic {
- 	acpi_table_entry_header	header;
--	u8			id;
--	u8			reserved;
--	u32			global_irq_base;
--	u64			address;
-+	__u8			id;
-+	__u8			reserved;
-+	__u32			global_irq_base;
-+	__u64			address;
- } __attribute__ ((packed));
- 
- struct acpi_table_lsapic {
- 	acpi_table_entry_header	header;
--	u8			acpi_id;
--	u8			id;
--	u8			eid;
--	u8			reserved[3];
-+	__u8			acpi_id;
-+	__u8			id;
-+	__u8			eid;
-+	__u8			reserved[3];
- 	struct {
--		u32			enabled:1;
--		u32			reserved:31;
-+		__u32			enabled:1;
-+		__u32			reserved:31;
- 	}			flags;
- } __attribute__ ((packed));
- 
- struct acpi_table_plat_int_src {
- 	acpi_table_entry_header	header;
- 	acpi_interrupt_flags	flags;
--	u8			type;	/* See acpi_interrupt_type */
--	u8			id;
--	u8			eid;
--	u8			iosapic_vector;
--	u32			global_irq;
--	u32			reserved;
-+	__u8			type;	/* See acpi_interrupt_type */
-+	__u8			id;
-+	__u8			eid;
-+	__u8			iosapic_vector;
-+	__u32			global_irq;
-+	__u32			reserved;
- } __attribute__ ((packed));
- 
- enum acpi_interrupt_id {
-@@ -213,21 +213,21 @@
- #define	ACPI_SPACE_MEM		0
- 
- struct acpi_gen_regaddr {
--	u8  space_id;
--	u8  bit_width;
--	u8  bit_offset;
--	u8  resv;
--	u32 addrl;
--	u32 addrh;
-+	__u8  space_id;
-+	__u8  bit_width;
-+	__u8  bit_offset;
-+	__u8  resv;
-+	__u32 addrl;
-+	__u32 addrh;
- } __attribute__ ((packed));
- 
- struct acpi_table_hpet {
- 	struct acpi_table_header header;
--	u32 id;
-+	__u32 id;
- 	struct acpi_gen_regaddr addr;
--	u8 number;
--	u16 min_tick;
--	u8 page_protect;
-+	__u8 number;
-+	__u16 min_tick;
-+	__u8 page_protect;
- } __attribute__ ((packed));
- 
- /*
-@@ -236,17 +236,17 @@
-  */
- struct acpi_table_sbf
- {
--	u8 sbf_signature[4];
--	u32 sbf_len;
--	u8 sbf_revision;
--	u8 sbf_csum;
--	u8 sbf_oemid[6];
--	u8 sbf_oemtable[8];
--	u8 sbf_revdata[4];
--	u8 sbf_creator[4];
--	u8 sbf_crearev[4];
--	u8 sbf_cmos;
--	u8 sbf_spare[3];
-+	__u8 sbf_signature[4];
-+	__u32 sbf_len;
-+	__u8 sbf_revision;
-+	__u8 sbf_csum;
-+	__u8 sbf_oemid[6];
-+	__u8 sbf_oemtable[8];
-+	__u8 sbf_revdata[4];
-+	__u8 sbf_creator[4];
-+	__u8 sbf_crearev[4];
-+	__u8 sbf_cmos;
-+	__u8 sbf_spare[3];
- } __attribute__ ((packed));
- 
- /*
-@@ -256,8 +256,8 @@
- 
- struct acpi_table_srat {
- 	struct acpi_table_header header;
--	u32			table_revision;
--	u64			reserved;
-+	__u32			table_revision;
-+	__u64			reserved;
- } __attribute__ ((packed));
- 
- enum acpi_srat_entry_id {
-@@ -268,31 +268,31 @@
- 
- struct acpi_table_processor_affinity {
- 	acpi_table_entry_header	header;
--	u8			proximity_domain;
--	u8			apic_id;
-+	__u8			proximity_domain;
-+	__u8			apic_id;
- 	struct {
--		u32			enabled:1;
--		u32			reserved:31;
-+		__u32			enabled:1;
-+		__u32			reserved:31;
- 	}			flags;
--	u8			lsapic_eid;
--	u8			reserved[7];
-+	__u8			lsapic_eid;
-+	__u8			reserved[7];
- } __attribute__ ((packed));
- 
- struct acpi_table_memory_affinity {
- 	acpi_table_entry_header	header;
--	u8			proximity_domain;
--	u8			reserved1[5];
--	u32			base_addr_lo;
--	u32			base_addr_hi;
--	u32			length_lo;
--	u32			length_hi;
--	u32			memory_type;	/* See acpi_address_range_id */
-+	__u8			proximity_domain;
-+	__u8			reserved1[5];
-+	__u32			base_addr_lo;
-+	__u32			base_addr_hi;
-+	__u32			length_lo;
-+	__u32			length_hi;
-+	__u32			memory_type;	/* See acpi_address_range_id */
- 	struct {
--		u32			enabled:1;
--		u32			hot_pluggable:1;
--		u32			reserved:30;
-+		__u32			enabled:1;
-+		__u32			hot_pluggable:1;
-+		__u32			reserved:30;
- 	}			flags;
--	u64			reserved2;
-+	__u64			reserved2;
- } __attribute__ ((packed));
- 
- enum acpi_address_range_id {
-@@ -310,17 +310,17 @@
- 
- struct acpi_table_slit {
- 	struct acpi_table_header header;
--	u64			localities;
--	u8			entry[1];	/* real size = localities^2 */
-+	__u64			localities;
-+	__u8			entry[1];	/* real size = localities^2 */
- } __attribute__ ((packed));
- 
- /* Smart Battery Description Table (SBST) */
- 
- struct acpi_table_sbst {
- 	struct acpi_table_header header;
--	u32			warning;	/* Warn user */
--	u32			low;		/* Critical sleep */
--	u32			critical;	/* Critical shutdown */
-+	__u32			warning;	/* Warn user */
-+	__u32			low;		/* Critical sleep */
-+	__u32			critical;	/* Critical shutdown */
- } __attribute__ ((packed));
- 
- /* Embedded Controller Boot Resources Table (ECDT) */
-@@ -329,8 +329,8 @@
- 	struct acpi_table_header 	header;
- 	struct acpi_generic_address	ec_control;
- 	struct acpi_generic_address	ec_data;
--	u32				uid;
--	u8				gpe_bit;
-+	__u32				uid;
-+	__u8				gpe_bit;
- 	char				ec_id[0];
- } __attribute__ ((packed));
- 
-@@ -338,9 +338,9 @@
- 
- struct acpi_table_mcfg {
- 	struct acpi_table_header	header;
--	u8				reserved[8];
--	u32				base_address;
--	u32				base_reserved;
-+	__u8				reserved[8];
-+	__u32				base_address;
-+	__u32				base_reserved;
- } __attribute__ ((packed));
- 
- /* Table Handlers */
-@@ -396,7 +396,7 @@
- 
- extern int acpi_mp_config;
- 
--extern u32 pci_mmcfg_base_addr;
-+extern __u32 pci_mmcfg_base_addr;
- 
- extern int sbf_port ;
- 
-@@ -411,20 +411,20 @@
- 
- #endif 	/*!CONFIG_ACPI_BOOT*/
- 
--unsigned int acpi_register_gsi (u32 gsi, int edge_level, int active_high_low);
--int acpi_gsi_to_irq (u32 gsi, unsigned int *irq);
-+unsigned int acpi_register_gsi (__u32 gsi, int edge_level, int active_high_low);
-+int acpi_gsi_to_irq (__u32 gsi, unsigned int *irq);
- 
- #ifdef CONFIG_ACPI_PCI
- 
- struct acpi_prt_entry {
- 	struct list_head	node;
- 	struct acpi_pci_id	id;
--	u8			pin;
-+	__u8			pin;
- 	struct {
- 		acpi_handle		handle;
--		u32			index;
-+		__u32			index;
- 	}			link;
--	u32			irq;
-+	__u32			irq;
- };
- 
- struct acpi_prt_list {
-@@ -451,8 +451,8 @@
- 
- #ifdef CONFIG_ACPI_EC
- 
--int ec_read(u8 addr, u8 *val);
--int ec_write(u8 addr, u8 val);
-+int ec_read(__u8 addr, __u8 *val);
-+int ec_write(__u8 addr, __u8 val);
- 
- #endif /*CONFIG_ACPI_EC*/
- 
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/affs_fs_i.h linux-libc-headers-2.6.8.0/include/linux/affs_fs_i.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/affs_fs_i.h	2003-12-31 17:46:48.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/affs_fs_i.h	2004-08-26 05:41:49.000000000 -0500
-@@ -9,13 +9,13 @@
- //#define AFFS_CACHE_SIZE		(4*4)
- 
- #define AFFS_MAX_PREALLOC	32
--#define AFFS_LC_SIZE		(AFFS_CACHE_SIZE/sizeof(u32)/2)
-+#define AFFS_LC_SIZE		(AFFS_CACHE_SIZE/sizeof(__u32)/2)
- #define AFFS_AC_SIZE		(AFFS_CACHE_SIZE/sizeof(struct affs_ext_key)/2)
- #define AFFS_AC_MASK		(AFFS_AC_SIZE-1)
- 
- struct affs_ext_key {
--	u32	ext;				/* idx of the extended block */
--	u32	key;				/* block number */
-+	__u32	ext;				/* idx of the extended block */
-+	__u32	key;				/* block number */
- };
- 
- 
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/affs_fs_sb.h linux-libc-headers-2.6.8.0/include/linux/affs_fs_sb.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/affs_fs_sb.h	2004-08-18 13:16:01.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/affs_fs_sb.h	2004-08-26 05:41:49.000000000 -0500
-@@ -9,8 +9,8 @@
-  */
- 
- struct affs_bm_info {
--	u32 bm_key;			/* Disk block number */
--	u32 bm_free;			/* Free blocks in here */
-+	__u32 bm_key;			/* Disk block number */
-+	__u32 bm_free;			/* Free blocks in here */
- };
- 
- #define SF_INTL		0x0001		/* International filesystem. */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/affs_hardblocks.h linux-libc-headers-2.6.8.0/include/linux/affs_hardblocks.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/affs_hardblocks.h	2003-12-15 12:46:58.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/affs_hardblocks.h	2004-08-26 05:41:49.000000000 -0500
-@@ -4,59 +4,59 @@
- /* Just the needed definitions for the RDB of an Amiga HD. */
- 
- struct RigidDiskBlock {
--	u32	rdb_ID;
--	u32	rdb_SummedLongs;
--	s32	rdb_ChkSum;
--	u32	rdb_HostID;
--	u32	rdb_BlockBytes;
--	u32	rdb_Flags;
--	u32	rdb_BadBlockList;
--	u32	rdb_PartitionList;
--	u32	rdb_FileSysHeaderList;
--	u32	rdb_DriveInit;
--	u32	rdb_Reserved1[6];
--	u32	rdb_Cylinders;
--	u32	rdb_Sectors;
--	u32	rdb_Heads;
--	u32	rdb_Interleave;
--	u32	rdb_Park;
--	u32	rdb_Reserved2[3];
--	u32	rdb_WritePreComp;
--	u32	rdb_ReducedWrite;
--	u32	rdb_StepRate;
--	u32	rdb_Reserved3[5];
--	u32	rdb_RDBBlocksLo;
--	u32	rdb_RDBBlocksHi;
--	u32	rdb_LoCylinder;
--	u32	rdb_HiCylinder;
--	u32	rdb_CylBlocks;
--	u32	rdb_AutoParkSeconds;
--	u32	rdb_HighRDSKBlock;
--	u32	rdb_Reserved4;
-+	__u32	rdb_ID;
-+	__u32	rdb_SummedLongs;
-+	__s32	rdb_ChkSum;
-+	__u32	rdb_HostID;
-+	__u32	rdb_BlockBytes;
-+	__u32	rdb_Flags;
-+	__u32	rdb_BadBlockList;
-+	__u32	rdb_PartitionList;
-+	__u32	rdb_FileSysHeaderList;
-+	__u32	rdb_DriveInit;
-+	__u32	rdb_Reserved1[6];
-+	__u32	rdb_Cylinders;
-+	__u32	rdb_Sectors;
-+	__u32	rdb_Heads;
-+	__u32	rdb_Interleave;
-+	__u32	rdb_Park;
-+	__u32	rdb_Reserved2[3];
-+	__u32	rdb_WritePreComp;
-+	__u32	rdb_ReducedWrite;
-+	__u32	rdb_StepRate;
-+	__u32	rdb_Reserved3[5];
-+	__u32	rdb_RDBBlocksLo;
-+	__u32	rdb_RDBBlocksHi;
-+	__u32	rdb_LoCylinder;
-+	__u32	rdb_HiCylinder;
-+	__u32	rdb_CylBlocks;
-+	__u32	rdb_AutoParkSeconds;
-+	__u32	rdb_HighRDSKBlock;
-+	__u32	rdb_Reserved4;
- 	char	rdb_DiskVendor[8];
- 	char	rdb_DiskProduct[16];
- 	char	rdb_DiskRevision[4];
- 	char	rdb_ControllerVendor[8];
- 	char	rdb_ControllerProduct[16];
- 	char	rdb_ControllerRevision[4];
--	u32	rdb_Reserved5[10];
-+	__u32	rdb_Reserved5[10];
- };
- 
- #define	IDNAME_RIGIDDISK	0x5244534B	/* "RDSK" */
- 
- struct PartitionBlock {
--	u32	pb_ID;
--	u32	pb_SummedLongs;
--	s32	pb_ChkSum;
--	u32	pb_HostID;
--	u32	pb_Next;
--	u32	pb_Flags;
--	u32	pb_Reserved1[2];
--	u32	pb_DevFlags;
--	u8	pb_DriveName[32];
--	u32	pb_Reserved2[15];
--	u32	pb_Environment[17];
--	u32	pb_EReserved[15];
-+	__u32	pb_ID;
-+	__u32	pb_SummedLongs;
-+	__s32	pb_ChkSum;
-+	__u32	pb_HostID;
-+	__u32	pb_Next;
-+	__u32	pb_Flags;
-+	__u32	pb_Reserved1[2];
-+	__u32	pb_DevFlags;
-+	__u8	pb_DriveName[32];
-+	__u32	pb_Reserved2[15];
-+	__u32	pb_Environment[17];
-+	__u32	pb_EReserved[15];
- };
- 
- #define	IDNAME_PARTITION	0x50415254	/* "PART" */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/amigaffs.h linux-libc-headers-2.6.8.0/include/linux/amigaffs.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/amigaffs.h	2003-12-31 17:46:48.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/amigaffs.h	2004-08-26 05:41:49.000000000 -0500
-@@ -64,90 +64,90 @@
- #define AFFS_DATA(bh)		(((struct affs_data_head *)(bh)->b_data)->data)
- 
- struct affs_date {
--	u32 days;
--	u32 mins;
--	u32 ticks;
-+	__u32 days;
-+	__u32 mins;
-+	__u32 ticks;
- };
- 
- struct affs_short_date {
--	u16 days;
--	u16 mins;
--	u16 ticks;
-+	__u16 days;
-+	__u16 mins;
-+	__u16 ticks;
- };
- 
- struct affs_root_head {
--	u32 ptype;
--	u32 spare1;
--	u32 spare2;
--	u32 hash_size;
--	u32 spare3;
--	u32 checksum;
--	u32 hashtable[1];
-+	__u32 ptype;
-+	__u32 spare1;
-+	__u32 spare2;
-+	__u32 hash_size;
-+	__u32 spare3;
-+	__u32 checksum;
-+	__u32 hashtable[1];
- };
- 
- struct affs_root_tail {
--	u32 bm_flag;
--	u32 bm_blk[AFFS_ROOT_BMAPS];
--	u32 bm_ext;
-+	__u32 bm_flag;
-+	__u32 bm_blk[AFFS_ROOT_BMAPS];
-+	__u32 bm_ext;
- 	struct affs_date root_change;
--	u8 disk_name[32];
--	u32 spare1;
--	u32 spare2;
-+	__u8 disk_name[32];
-+	__u32 spare1;
-+	__u32 spare2;
- 	struct affs_date disk_change;
- 	struct affs_date disk_create;
--	u32 spare3;
--	u32 spare4;
--	u32 dcache;
--	u32 stype;
-+	__u32 spare3;
-+	__u32 spare4;
-+	__u32 dcache;
-+	__u32 stype;
- };
- 
- struct affs_head {
--	u32 ptype;
--	u32 key;
--	u32 block_count;
--	u32 spare1;
--	u32 first_data;
--	u32 checksum;
--	u32 table[1];
-+	__u32 ptype;
-+	__u32 key;
-+	__u32 block_count;
-+	__u32 spare1;
-+	__u32 first_data;
-+	__u32 checksum;
-+	__u32 table[1];
- };
- 
- struct affs_tail {
--	u32 spare1;
--	u16 uid;
--	u16 gid;
--	u32 protect;
--	u32 size;
--	u8 comment[92];
-+	__u32 spare1;
-+	__u16 uid;
-+	__u16 gid;
-+	__u32 protect;
-+	__u32 size;
-+	__u8 comment[92];
- 	struct affs_date change;
--	u8 name[32];
--	u32 spare2;
--	u32 original;
--	u32 link_chain;
--	u32 spare[5];
--	u32 hash_chain;
--	u32 parent;
--	u32 extension;
--	u32 stype;
-+	__u8 name[32];
-+	__u32 spare2;
-+	__u32 original;
-+	__u32 link_chain;
-+	__u32 spare[5];
-+	__u32 hash_chain;
-+	__u32 parent;
-+	__u32 extension;
-+	__u32 stype;
- };
- 
- struct slink_front
- {
--	u32 ptype;
--	u32 key;
--	u32 spare1[3];
--	u32 checksum;
--	u8 symname[1];	/* depends on block size */
-+	__u32 ptype;
-+	__u32 key;
-+	__u32 spare1[3];
-+	__u32 checksum;
-+	__u8 symname[1];	/* depends on block size */
- };
- 
- struct affs_data_head
- {
--	u32 ptype;
--	u32 key;
--	u32 sequence;
--	u32 size;
--	u32 next;
--	u32 checksum;
--	u8 data[1];	/* depends on block size */
-+	__u32 ptype;
-+	__u32 key;
-+	__u32 sequence;
-+	__u32 size;
-+	__u32 next;
-+	__u32 checksum;
-+	__u8 data[1];	/* depends on block size */
- };
- 
- /* Permission bits */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/ata.h linux-libc-headers-2.6.8.0/include/linux/ata.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/ata.h	2004-08-18 13:16:01.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/ata.h	2004-08-26 05:41:49.000000000 -0500
-@@ -34,7 +34,7 @@
- 	ATA_MAX_PRD		= 256,	/* we could make these 256/256 */
- 	ATA_SECT_SIZE		= 512,
- 	ATA_SECT_SIZE_MASK	= (ATA_SECT_SIZE - 1),
--	ATA_SECT_DWORDS		= ATA_SECT_SIZE / sizeof(u32),
-+	ATA_SECT_DWORDS		= ATA_SECT_SIZE / sizeof(__u32),
- 
- 	ATA_ID_WORDS		= 256,
- 	ATA_ID_PROD_OFS		= 27,
-@@ -176,31 +176,31 @@
- /* core structures */
- 
- struct ata_prd {
--	u32			addr;
--	u32			flags_len;
-+	__u32			addr;
-+	__u32			flags_len;
- } __attribute__((packed));
- 
- struct ata_taskfile {
- 	unsigned long		flags;		/* ATA_TFLAG_xxx */
--	u8			protocol;	/* ATA_PROT_xxx */
-+	__u8			protocol;	/* ATA_PROT_xxx */
- 
--	u8			ctl;		/* control reg */
-+	__u8			ctl;		/* control reg */
- 
--	u8			hob_feature;	/* additional data */
--	u8			hob_nsect;	/* to support LBA48 */
--	u8			hob_lbal;
--	u8			hob_lbam;
--	u8			hob_lbah;
-+	__u8			hob_feature;	/* additional data */
-+	__u8			hob_nsect;	/* to support LBA48 */
-+	__u8			hob_lbal;
-+	__u8			hob_lbam;
-+	__u8			hob_lbah;
- 
--	u8			feature;
--	u8			nsect;
--	u8			lbal;
--	u8			lbam;
--	u8			lbah;
-+	__u8			feature;
-+	__u8			nsect;
-+	__u8			lbal;
-+	__u8			lbam;
-+	__u8			lbah;
- 
--	u8			device;
-+	__u8			device;
- 
--	u8			command;	/* IO operation */
-+	__u8			command;	/* IO operation */
- };
- 
- #define ata_id_is_ata(dev)	(((dev)->id[0] & (1 << 15)) == 0)
-@@ -213,12 +213,12 @@
- #define ata_id_has_dma(dev)	((dev)->id[49] & (1 << 8))
- #define ata_id_removeable(dev)	((dev)->id[0] & (1 << 7))
- #define ata_id_u32(dev,n)	\
--	(((u32) (dev)->id[(n) + 1] << 16) | ((u32) (dev)->id[(n)]))
-+	(((__u32) (dev)->id[(n) + 1] << 16) | ((__u32) (dev)->id[(n)]))
- #define ata_id_u64(dev,n)	\
--	( ((u64) dev->id[(n) + 3] << 48) |	\
--	  ((u64) dev->id[(n) + 2] << 32) |	\
--	  ((u64) dev->id[(n) + 1] << 16) |	\
--	  ((u64) dev->id[(n) + 0]) )
-+	( ((__u64) dev->id[(n) + 3] << 48) |	\
-+	  ((__u64) dev->id[(n) + 2] << 32) |	\
-+	  ((__u64) dev->id[(n) + 1] << 16) |	\
-+	  ((__u64) dev->id[(n) + 0]) )
- 
- static inline int is_atapi_taskfile(struct ata_taskfile *tf)
- {
-@@ -226,7 +226,7 @@
- 	       (tf->protocol == ATA_PROT_ATAPI_DMA);
- }
- 
--static inline int ata_ok(u8 status)
-+static inline int ata_ok(__u8 status)
- {
- 	return ((status & (ATA_BUSY | ATA_DRDY | ATA_DF | ATA_DRQ | ATA_ERR))
- 			== ATA_DRDY);
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/bitops.h linux-libc-headers-2.6.8.0/include/linux/bitops.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/bitops.h	2004-06-09 07:00:49.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/bitops.h	2004-08-26 05:41:49.000000000 -0500
-@@ -114,7 +114,7 @@
- 	return generic_hweight32((unsigned int)(w >> 32)) +
- 				generic_hweight32((unsigned int)w);
- #else
--	u64 res;
-+	__u64 res;
- 	res = (w & 0x5555555555555555ul) + ((w >> 1) & 0x5555555555555555ul);
- 	res = (res & 0x3333333333333333ul) + ((res >> 2) & 0x3333333333333333ul);
- 	res = (res & 0x0F0F0F0F0F0F0F0Ful) + ((res >> 4) & 0x0F0F0F0F0F0F0F0Ful);
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/compat.h linux-libc-headers-2.6.8.0/include/linux/compat.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/compat.h	2004-06-09 07:00:49.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/compat.h	2004-08-26 05:41:49.000000000 -0500
-@@ -78,9 +78,9 @@
- };
- 
- struct compat_dirent {
--	u32		d_ino;
-+	__u32		d_ino;
- 	compat_off_t	d_off;
--	u16		d_reclen;
-+	__u16		d_reclen;
- 	char		d_name[256];
- };
- 
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/console.h linux-libc-headers-2.6.8.0/include/linux/console.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/console.h	2004-08-18 13:16:02.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/console.h	2004-08-26 05:41:49.000000000 -0500
-@@ -49,9 +49,9 @@
- 	int	(*con_scrolldelta)(struct vc_data *, int);
- 	int	(*con_set_origin)(struct vc_data *);
- 	void	(*con_save_screen)(struct vc_data *);
--	u8	(*con_build_attr)(struct vc_data *, u8, u8, u8, u8, u8);
--	void	(*con_invert_region)(struct vc_data *, u16 *, int);
--	u16    *(*con_screen_pos)(struct vc_data *, int);
-+	__u8	(*con_build_attr)(struct vc_data *, __u8, __u8, __u8, __u8, __u8);
-+	void	(*con_invert_region)(struct vc_data *, __u16 *, int);
-+	__u16    *(*con_screen_pos)(struct vc_data *, int);
- 	unsigned long (*con_getxy)(struct vc_data *, unsigned long, int *, int *);
- };
- 
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/cpufreq.h linux-libc-headers-2.6.8.0/include/linux/cpufreq.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/cpufreq.h	2004-06-23 16:52:53.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/cpufreq.h	2004-08-26 05:41:49.000000000 -0500
-@@ -103,7 +103,7 @@
- 	unsigned int cpu;	/* cpu nr */
- 	unsigned int old;
- 	unsigned int new;
--	u8 flags;		/* flags of cpufreq_driver, see below. */
-+	__u8 flags;		/* flags of cpufreq_driver, see below. */
- };
- 
- 
-@@ -120,13 +120,13 @@
- {
- #if BITS_PER_LONG == 32
- 
--	u64 result = ((u64) old) * ((u64) mult);
-+	__u64 result = ((__u64) old) * ((__u64) mult);
- 	do_div(result, div);
- 	return (unsigned long) result;
- 
- #elif BITS_PER_LONG == 64
- 
--	unsigned long result = old * ((u64) mult);
-+	unsigned long result = old * ((__u64) mult);
- 	result /= div;
- 	return result;
- 
-@@ -178,7 +178,7 @@
- struct cpufreq_driver {
- 	struct module           *owner;
- 	char			name[CPUFREQ_NAME_LEN];
--	u8			flags;
-+	__u8			flags;
- 
- 	/* needed by all drivers */
- 	int	(*init)		(struct cpufreq_policy *policy);
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/cramfs_fs.h linux-libc-headers-2.6.8.0/include/linux/cramfs_fs.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/cramfs_fs.h	2004-01-05 12:42:27.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/cramfs_fs.h	2004-08-26 05:41:49.000000000 -0500
-@@ -2,9 +2,9 @@
- #define __CRAMFS_H
- 
- 
--typedef unsigned char u8;
--typedef unsigned short u16;
--typedef unsigned int u32;
-+typedef unsigned char __u8;
-+typedef unsigned short __u16;
-+typedef unsigned int __u32;
- 
- 
- #define CRAMFS_MAGIC		0x28cd3d45	/* some random number */
-@@ -31,9 +31,9 @@
-  * Reasonably terse representation of the inode data.
-  */
- struct cramfs_inode {
--	u32 mode:CRAMFS_MODE_WIDTH, uid:CRAMFS_UID_WIDTH;
-+	__u32 mode:CRAMFS_MODE_WIDTH, uid:CRAMFS_UID_WIDTH;
- 	/* SIZE for device files is i_rdev */
--	u32 size:CRAMFS_SIZE_WIDTH, gid:CRAMFS_GID_WIDTH;
-+	__u32 size:CRAMFS_SIZE_WIDTH, gid:CRAMFS_GID_WIDTH;
- 	/* NAMELEN is the length of the file name, divided by 4 and
-            rounded up.  (cramfs doesn't support hard links.) */
- 	/* OFFSET: For symlinks and non-empty regular files, this
-@@ -42,27 +42,27 @@
- 	   see README).  For non-empty directories it is the offset
- 	   (divided by 4) of the inode of the first file in that
- 	   directory.  For anything else, offset is zero. */
--	u32 namelen:CRAMFS_NAMELEN_WIDTH, offset:CRAMFS_OFFSET_WIDTH;
-+	__u32 namelen:CRAMFS_NAMELEN_WIDTH, offset:CRAMFS_OFFSET_WIDTH;
- };
- 
- struct cramfs_info {
--	u32 crc;
--	u32 edition;
--	u32 blocks;
--	u32 files;
-+	__u32 crc;
-+	__u32 edition;
-+	__u32 blocks;
-+	__u32 files;
- };
- 
- /*
-  * Superblock information at the beginning of the FS.
-  */
- struct cramfs_super {
--	u32 magic;			/* 0x28cd3d45 - random number */
--	u32 size;			/* length in bytes */
--	u32 flags;			/* feature flags */
--	u32 future;			/* reserved for future use */
--	u8 signature[16];		/* "Compressed ROMFS" */
-+	__u32 magic;			/* 0x28cd3d45 - random number */
-+	__u32 size;			/* length in bytes */
-+	__u32 flags;			/* feature flags */
-+	__u32 future;			/* reserved for future use */
-+	__u8 signature[16];		/* "Compressed ROMFS" */
- 	struct cramfs_info fsid;	/* unique filesystem info */
--	u8 name[16];			/* user-defined name */
-+	__u8 name[16];			/* user-defined name */
- 	struct cramfs_inode root;	/* root inode data */
- };
- 
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/crc32.h linux-libc-headers-2.6.8.0/include/linux/crc32.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/crc32.h	2003-12-15 12:46:57.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/crc32.h	2004-08-26 05:41:49.000000000 -0500
-@@ -7,9 +7,9 @@
- 
- #include <linux/types.h>
- 
--extern u32  crc32_le(u32 crc, unsigned char const *p, size_t len);
--extern u32  crc32_be(u32 crc, unsigned char const *p, size_t len);
--extern u32  bitreverse(u32 in);
-+extern __u32  crc32_le(__u32 crc, unsigned char const *p, size_t len);
-+extern __u32  crc32_be(__u32 crc, unsigned char const *p, size_t len);
-+extern __u32  bitreverse(__u32 in);
- 
- #define crc32(seed, data, length)  crc32_le(seed, (unsigned char const *)data, length)
- 
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/crypto.h linux-libc-headers-2.6.8.0/include/linux/crypto.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/crypto.h	2004-04-19 16:13:51.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/crypto.h	2004-08-26 05:41:49.000000000 -0500
-@@ -63,28 +63,28 @@
- struct cipher_alg {
- 	unsigned int cia_min_keysize;
- 	unsigned int cia_max_keysize;
--	int (*cia_setkey)(void *ctx, const u8 *key,
--	                  unsigned int keylen, u32 *flags);
--	void (*cia_encrypt)(void *ctx, u8 *dst, const u8 *src);
--	void (*cia_decrypt)(void *ctx, u8 *dst, const u8 *src);
-+	int (*cia_setkey)(void *ctx, const __u8 *key,
-+	                  unsigned int keylen, __u32 *flags);
-+	void (*cia_encrypt)(void *ctx, __u8 *dst, const __u8 *src);
-+	void (*cia_decrypt)(void *ctx, __u8 *dst, const __u8 *src);
- };
- 
- struct digest_alg {
- 	unsigned int dia_digestsize;
- 	void (*dia_init)(void *ctx);
--	void (*dia_update)(void *ctx, const u8 *data, unsigned int len);
--	void (*dia_final)(void *ctx, u8 *out);
--	int (*dia_setkey)(void *ctx, const u8 *key,
--	                  unsigned int keylen, u32 *flags);
-+	void (*dia_update)(void *ctx, const __u8 *data, unsigned int len);
-+	void (*dia_final)(void *ctx, __u8 *out);
-+	int (*dia_setkey)(void *ctx, const __u8 *key,
-+	                  unsigned int keylen, __u32 *flags);
- };
- 
- struct compress_alg {
- 	int (*coa_init)(void *ctx);
- 	void (*coa_exit)(void *ctx);
--	int (*coa_compress)(void *ctx, const u8 *src, unsigned int slen,
--	                    u8 *dst, unsigned int *dlen);
--	int (*coa_decompress)(void *ctx, const u8 *src, unsigned int slen,
--	                      u8 *dst, unsigned int *dlen);
-+	int (*coa_compress)(void *ctx, const __u8 *src, unsigned int slen,
-+	                    __u8 *dst, unsigned int *dlen);
-+	int (*coa_decompress)(void *ctx, const __u8 *src, unsigned int slen,
-+	                      __u8 *dst, unsigned int *dlen);
- };
- 
- #define cra_cipher	cra_u.cipher
-@@ -93,7 +93,7 @@
- 
- struct crypto_alg {
- 	struct list_head cra_list;
--	u32 cra_flags;
-+	__u32 cra_flags;
- 	unsigned int cra_blocksize;
- 	unsigned int cra_ctxsize;
- 	const char cra_name[CRYPTO_MAX_ALG_NAME];
-@@ -116,7 +116,7 @@
- /*
-  * Algorithm query interface.
-  */
--int crypto_alg_available(const char *name, u32 flags);
-+int crypto_alg_available(const char *name, __u32 flags);
- 
- /*
-  * Transforms: user-instantiated objects which encapsulate algorithms
-@@ -128,9 +128,9 @@
- struct cipher_tfm {
- 	void *cit_iv;
- 	unsigned int cit_ivsize;
--	u32 cit_mode;
-+	__u32 cit_mode;
- 	int (*cit_setkey)(struct crypto_tfm *tfm,
--	                  const u8 *key, unsigned int keylen);
-+	                  const __u8 *key, unsigned int keylen);
- 	int (*cit_encrypt)(struct crypto_tfm *tfm,
- 			   struct scatterlist *dst,
- 			   struct scatterlist *src,
-@@ -138,7 +138,7 @@
- 	int (*cit_encrypt_iv)(struct crypto_tfm *tfm,
- 	                      struct scatterlist *dst,
- 	                      struct scatterlist *src,
--	                      unsigned int nbytes, u8 *iv);
-+	                      unsigned int nbytes, __u8 *iv);
- 	int (*cit_decrypt)(struct crypto_tfm *tfm,
- 			   struct scatterlist *dst,
- 			   struct scatterlist *src,
-@@ -146,19 +146,19 @@
- 	int (*cit_decrypt_iv)(struct crypto_tfm *tfm,
- 			   struct scatterlist *dst,
- 			   struct scatterlist *src,
--			   unsigned int nbytes, u8 *iv);
--	void (*cit_xor_block)(u8 *dst, const u8 *src);
-+			   unsigned int nbytes, __u8 *iv);
-+	void (*cit_xor_block)(__u8 *dst, const __u8 *src);
- };
- 
- struct digest_tfm {
- 	void (*dit_init)(struct crypto_tfm *tfm);
- 	void (*dit_update)(struct crypto_tfm *tfm,
- 	                   struct scatterlist *sg, unsigned int nsg);
--	void (*dit_final)(struct crypto_tfm *tfm, u8 *out);
-+	void (*dit_final)(struct crypto_tfm *tfm, __u8 *out);
- 	void (*dit_digest)(struct crypto_tfm *tfm, struct scatterlist *sg,
--	                   unsigned int nsg, u8 *out);
-+	                   unsigned int nsg, __u8 *out);
- 	int (*dit_setkey)(struct crypto_tfm *tfm,
--	                  const u8 *key, unsigned int keylen);
-+	                  const __u8 *key, unsigned int keylen);
- #ifdef CONFIG_CRYPTO_HMAC
- 	void *dit_hmac_block;
- #endif
-@@ -166,11 +166,11 @@
- 
- struct compress_tfm {
- 	int (*cot_compress)(struct crypto_tfm *tfm,
--	                    const u8 *src, unsigned int slen,
--	                    u8 *dst, unsigned int *dlen);
-+	                    const __u8 *src, unsigned int slen,
-+	                    __u8 *dst, unsigned int *dlen);
- 	int (*cot_decompress)(struct crypto_tfm *tfm,
--	                      const u8 *src, unsigned int slen,
--	                      u8 *dst, unsigned int *dlen);
-+	                      const __u8 *src, unsigned int slen,
-+	                      __u8 *dst, unsigned int *dlen);
- };
- 
- #define crt_cipher	crt_u.cipher
-@@ -179,7 +179,7 @@
- 
- struct crypto_tfm {
- 
--	u32 crt_flags;
-+	__u32 crt_flags;
- 	
- 	union {
- 		struct cipher_tfm cipher;
-@@ -203,7 +203,7 @@
-  * crypto_free_tfm() frees up the transform and any associated resources,
-  * then drops the refcount on the associated algorithm.
-  */
--struct crypto_tfm *crypto_alloc_tfm(const char *alg_name, u32 tfm_flags);
-+struct crypto_tfm *crypto_alloc_tfm(const char *alg_name, __u32 tfm_flags);
- void crypto_free_tfm(struct crypto_tfm *tfm);
- 
- /*
-@@ -219,7 +219,7 @@
- 	return module_name(tfm->__crt_alg->cra_module);
- }
- 
--static inline u32 crypto_tfm_alg_type(struct crypto_tfm *tfm)
-+static inline __u32 crypto_tfm_alg_type(struct crypto_tfm *tfm)
- {
- 	return tfm->__crt_alg->cra_flags & CRYPTO_ALG_TYPE_MASK;
- }
-@@ -270,7 +270,7 @@
- 	tfm->crt_digest.dit_update(tfm, sg, nsg);
- }
- 
--static inline void crypto_digest_final(struct crypto_tfm *tfm, u8 *out)
-+static inline void crypto_digest_final(struct crypto_tfm *tfm, __u8 *out)
- {
- 	BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_DIGEST);
- 	tfm->crt_digest.dit_final(tfm, out);
-@@ -278,14 +278,14 @@
- 
- static inline void crypto_digest_digest(struct crypto_tfm *tfm,
-                                         struct scatterlist *sg,
--                                        unsigned int nsg, u8 *out)
-+                                        unsigned int nsg, __u8 *out)
- {
- 	BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_DIGEST);
- 	tfm->crt_digest.dit_digest(tfm, sg, nsg, out);
- }
- 
- static inline int crypto_digest_setkey(struct crypto_tfm *tfm,
--                                       const u8 *key, unsigned int keylen)
-+                                       const __u8 *key, unsigned int keylen)
- {
- 	BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_DIGEST);
- 	if (tfm->crt_digest.dit_setkey == NULL)
-@@ -294,7 +294,7 @@
- }
- 
- static inline int crypto_cipher_setkey(struct crypto_tfm *tfm,
--                                       const u8 *key, unsigned int keylen)
-+                                       const __u8 *key, unsigned int keylen)
- {
- 	BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
- 	return tfm->crt_cipher.cit_setkey(tfm, key, keylen);
-@@ -312,7 +312,7 @@
- static inline int crypto_cipher_encrypt_iv(struct crypto_tfm *tfm,
-                                            struct scatterlist *dst,
-                                            struct scatterlist *src,
--                                           unsigned int nbytes, u8 *iv)
-+                                           unsigned int nbytes, __u8 *iv)
- {
- 	BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
- 	BUG_ON(tfm->crt_cipher.cit_mode == CRYPTO_TFM_MODE_ECB);
-@@ -331,7 +331,7 @@
- static inline int crypto_cipher_decrypt_iv(struct crypto_tfm *tfm,
-                                            struct scatterlist *dst,
-                                            struct scatterlist *src,
--                                           unsigned int nbytes, u8 *iv)
-+                                           unsigned int nbytes, __u8 *iv)
- {
- 	BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
- 	BUG_ON(tfm->crt_cipher.cit_mode == CRYPTO_TFM_MODE_ECB);
-@@ -339,30 +339,30 @@
- }
- 
- static inline void crypto_cipher_set_iv(struct crypto_tfm *tfm,
--                                        const u8 *src, unsigned int len)
-+                                        const __u8 *src, unsigned int len)
- {
- 	BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
- 	memcpy(tfm->crt_cipher.cit_iv, src, len);
- }
- 
- static inline void crypto_cipher_get_iv(struct crypto_tfm *tfm,
--                                        u8 *dst, unsigned int len)
-+                                        __u8 *dst, unsigned int len)
- {
- 	BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
- 	memcpy(dst, tfm->crt_cipher.cit_iv, len);
- }
- 
- static inline int crypto_comp_compress(struct crypto_tfm *tfm,
--                                       const u8 *src, unsigned int slen,
--                                       u8 *dst, unsigned int *dlen)
-+                                       const __u8 *src, unsigned int slen,
-+                                       __u8 *dst, unsigned int *dlen)
- {
- 	BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_COMPRESS);
- 	return tfm->crt_compress.cot_compress(tfm, src, slen, dst, dlen);
- }
- 
- static inline int crypto_comp_decompress(struct crypto_tfm *tfm,
--                                         const u8 *src, unsigned int slen,
--                                         u8 *dst, unsigned int *dlen)
-+                                         const __u8 *src, unsigned int slen,
-+                                         __u8 *dst, unsigned int *dlen)
- {
- 	BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_COMPRESS);
- 	return tfm->crt_compress.cot_decompress(tfm, src, slen, dst, dlen);
-@@ -372,13 +372,13 @@
-  * HMAC support.
-  */
- #ifdef CONFIG_CRYPTO_HMAC
--void crypto_hmac_init(struct crypto_tfm *tfm, u8 *key, unsigned int *keylen);
-+void crypto_hmac_init(struct crypto_tfm *tfm, __u8 *key, unsigned int *keylen);
- void crypto_hmac_update(struct crypto_tfm *tfm,
-                         struct scatterlist *sg, unsigned int nsg);
--void crypto_hmac_final(struct crypto_tfm *tfm, u8 *key,
--                       unsigned int *keylen, u8 *out);
--void crypto_hmac(struct crypto_tfm *tfm, u8 *key, unsigned int *keylen,
--                 struct scatterlist *sg, unsigned int nsg, u8 *out);
-+void crypto_hmac_final(struct crypto_tfm *tfm, __u8 *key,
-+                       unsigned int *keylen, __u8 *out);
-+void crypto_hmac(struct crypto_tfm *tfm, __u8 *key, unsigned int *keylen,
-+                 struct scatterlist *sg, unsigned int nsg, __u8 *out);
- #endif	/* CONFIG_CRYPTO_HMAC */
- 
- #endif	/* _LINUX_CRYPTO_H */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/cycx_drv.h linux-libc-headers-2.6.8.0/include/linux/cycx_drv.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/cycx_drv.h	2003-12-15 12:46:57.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/cycx_drv.h	2004-08-26 05:41:49.000000000 -0500
-@@ -14,9 +14,9 @@
- * ============================================================================
- * 1999/10/23	acme		cycxhw_t cleanup
- * 1999/01/03	acme		more judicious use of data types...
--*				uclong, ucchar, etc deleted, the u8, u16, u32
-+*				uclong, ucchar, etc deleted, the __u8, __u16, __u32
- *				types are the portable way to go.
--* 1999/01/03	acme		judicious use of data types... u16, u32, etc
-+* 1999/01/03	acme		judicious use of data types... __u16, __u32, etc
- * 1998/12/26	acme	 	FIXED_BUFFERS, CONF_OFFSET,
- *                               removal of cy_read{bwl}
- * 1998/08/08	acme	 	Initial version.
-@@ -46,18 +46,18 @@
-  *	@reserved - reserved for future use
-  */
- struct cycx_hw {
--	u32 fwid;
-+	__u32 fwid;
- 	int irq;
- 	void *dpmbase;
--	u32 dpmsize;
--	u32 reserved[5];
-+	__u32 dpmsize;
-+	__u32 reserved[5];
- };
- 
- /* Function Prototypes */
--extern int cycx_setup(struct cycx_hw *hw, void *sfm, u32 len);
-+extern int cycx_setup(struct cycx_hw *hw, void *sfm, __u32 len);
- extern int cycx_down(struct cycx_hw *hw);
--extern int cycx_peek(struct cycx_hw *hw, u32 addr, void *buf, u32 len);
--extern int cycx_poke(struct cycx_hw *hw, u32 addr, void *buf, u32 len);
-+extern int cycx_peek(struct cycx_hw *hw, __u32 addr, void *buf, __u32 len);
-+extern int cycx_poke(struct cycx_hw *hw, __u32 addr, void *buf, __u32 len);
- extern int cycx_exec(void *addr);
- 
- extern void cycx_inten(struct cycx_hw *hw);
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/cycx_x25.h linux-libc-headers-2.6.8.0/include/linux/cycx_x25.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/cycx_x25.h	2003-12-15 12:46:58.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/cycx_x25.h	2004-08-26 05:41:49.000000000 -0500
-@@ -38,10 +38,10 @@
- /* Data Structures */
- /* X.25 Command Block. */
- struct cycx_x25_cmd {
--	u16 command PACKED;
--	u16 link    PACKED; /* values: 0 or 1 */
--	u16 len     PACKED; /* values: 0 thru 0x205 (517) */
--	u32 buf     PACKED;
-+	__u16 command PACKED;
-+	__u16 link    PACKED; /* values: 0 or 1 */
-+	__u16 len     PACKED; /* values: 0 thru 0x205 (517) */
-+	__u32 buf     PACKED;
- };
- 
- /* Defines for the 'command' field. */
-@@ -92,34 +92,34 @@
-  *	@flags - see dosx25.doc, in portuguese, for details
-  */
- struct cycx_x25_config {
--	u8  link	PACKED;
--	u8  speed	PACKED;
--	u8  clock	PACKED;
--	u8  n2		PACKED;
--	u8  n2win	PACKED;
--	u8  n3win	PACKED;
--	u8  nvc		PACKED;
--	u8  pktlen	PACKED;
--	u8  locaddr	PACKED;
--	u8  remaddr	PACKED;
--	u16 t1		PACKED;
--	u16 t2		PACKED;
--	u8  t21		PACKED;
--	u8  npvc	PACKED;
--	u8  t23		PACKED;
--	u8  flags	PACKED;
-+	__u8  link	PACKED;
-+	__u8  speed	PACKED;
-+	__u8  clock	PACKED;
-+	__u8  n2		PACKED;
-+	__u8  n2win	PACKED;
-+	__u8  n3win	PACKED;
-+	__u8  nvc		PACKED;
-+	__u8  pktlen	PACKED;
-+	__u8  locaddr	PACKED;
-+	__u8  remaddr	PACKED;
-+	__u16 t1		PACKED;
-+	__u16 t2		PACKED;
-+	__u8  t21		PACKED;
-+	__u8  npvc	PACKED;
-+	__u8  t23		PACKED;
-+	__u8  flags	PACKED;
- };
- 
- struct cycx_x25_stats {
--	u16 rx_crc_errors	PACKED;
--	u16 rx_over_errors	PACKED;
--	u16 n2_tx_frames 	PACKED;
--	u16 n2_rx_frames 	PACKED;
--	u16 tx_timeouts 	PACKED;
--	u16 rx_timeouts 	PACKED;
--	u16 n3_tx_packets 	PACKED;
--	u16 n3_rx_packets 	PACKED;
--	u16 tx_aborts	 	PACKED;
--	u16 rx_aborts	 	PACKED;
-+	__u16 rx_crc_errors	PACKED;
-+	__u16 rx_over_errors	PACKED;
-+	__u16 n2_tx_frames 	PACKED;
-+	__u16 n2_rx_frames 	PACKED;
-+	__u16 tx_timeouts 	PACKED;
-+	__u16 rx_timeouts 	PACKED;
-+	__u16 n3_tx_packets 	PACKED;
-+	__u16 n3_rx_packets 	PACKED;
-+	__u16 tx_aborts	 	PACKED;
-+	__u16 rx_aborts	 	PACKED;
- };
- #endif	/* _CYCX_X25_H */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/device.h linux-libc-headers-2.6.8.0/include/linux/device.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/device.h	2004-08-18 13:16:02.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/device.h	2004-08-26 05:41:49.000000000 -0500
-@@ -57,7 +57,7 @@
- 	struct device * (*add)	(struct device * parent, char * bus_id);
- 	int		(*hotplug) (struct device *dev, char **envp, 
- 				    int num_envp, char *buffer, int buffer_size);
--	int		(*suspend)(struct device * dev, u32 state);
-+	int		(*suspend)(struct device * dev, __u32 state);
- 	int		(*resume)(struct device * dev);
- };
- 
-@@ -105,8 +105,8 @@
- 	int	(*probe)	(struct device * dev);
- 	int 	(*remove)	(struct device * dev);
- 	void	(*shutdown)	(struct device * dev);
--	int	(*suspend)	(struct device * dev, u32 state, u32 level);
--	int	(*resume)	(struct device * dev, u32 level);
-+	int	(*suspend)	(struct device * dev, __u32 state, __u32 level);
-+	int	(*resume)	(struct device * dev, __u32 level);
- };
- 
- 
-@@ -262,17 +262,17 @@
- 	void		*platform_data;	/* Platform specific data (e.g. ACPI,
- 					   BIOS data relevant to device) */
- 	struct dev_pm_info	power;
--	u32		power_state;	/* Current operating state. In
-+	__u32		power_state;	/* Current operating state. In
- 					   ACPI-speak, this is D0-D3, D0
- 					   being fully functional, and D3
- 					   being off. */
- 
- 	unsigned char *saved_state;	/* saved device state */
--	u32		detach_state;	/* State to enter when device is
-+	__u32		detach_state;	/* State to enter when device is
- 					   detached from its driver. */
- 
--	u64		*dma_mask;	/* dma mask (if dma'able device) */
--	u64		coherent_dma_mask;/* Like dma_mask, but for
-+	__u64		*dma_mask;	/* dma mask (if dma'able device) */
-+	__u64		coherent_dma_mask;/* Like dma_mask, but for
- 					     alloc_coherent mappings as
- 					     not all hardware supports
- 					     64 bit addresses for consistent
-@@ -360,9 +360,9 @@
- 
- struct platform_device {
- 	char		* name;
--	u32		id;
-+	__u32		id;
- 	struct device	dev;
--	u32		num_resources;
-+	__u32		num_resources;
- 	struct resource	* resource;
- };
- 
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/divert.h linux-libc-headers-2.6.8.0/include/linux/divert.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/divert.h	2004-06-09 07:00:49.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/divert.h	2004-08-26 05:41:49.000000000 -0500
-@@ -27,10 +27,10 @@
- {
- 	int		divert;  /* are we active */
- 	unsigned int protos;	/* protocols */
--	u16		tcp_dst[MAX_DIVERT_PORTS]; /* specific tcp dst ports to divert */
--	u16		tcp_src[MAX_DIVERT_PORTS]; /* specific tcp src ports to divert */
--	u16		udp_dst[MAX_DIVERT_PORTS]; /* specific udp dst ports to divert */
--	u16		udp_src[MAX_DIVERT_PORTS]; /* specific udp src ports to divert */
-+	__u16		tcp_dst[MAX_DIVERT_PORTS]; /* specific tcp dst ports to divert */
-+	__u16		tcp_src[MAX_DIVERT_PORTS]; /* specific tcp src ports to divert */
-+	__u16		udp_dst[MAX_DIVERT_PORTS]; /* specific udp dst ports to divert */
-+	__u16		udp_src[MAX_DIVERT_PORTS]; /* specific udp src ports to divert */
- };
- 
- /*
-@@ -40,12 +40,12 @@
- 
- typedef union _divert_cf_arg
- {
--	s16		int16;
--	u16		uint16;
--	s32		int32;
--	u32		uint32;
--	s64		int64;
--	u64		uint64;
-+	__s16		int16;
-+	__u16		uint16;
-+	__s32		int32;
-+	__u32		uint32;
-+	__s64		int64;
-+	__u64		uint64;
- 	void	*ptr;
- } divert_cf_arg;
- 
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/eeprom.h linux-libc-headers-2.6.8.0/include/linux/eeprom.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/eeprom.h	2003-12-19 07:05:15.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/eeprom.h	2004-08-26 13:26:38.000000000 -0500
-@@ -26,15 +26,15 @@
- 	unsigned	ee_state;
- 
- 	spinlock_t	*lock;
--	u32		*cache;
-+	__u32		*cache;
- };
- 
- 
--u8   eeprom_readb(struct eeprom *ee, unsigned address);
--void eeprom_read(struct eeprom *ee, unsigned address, u8 *bytes,
-+__u8   eeprom_readb(struct eeprom *ee, unsigned address);
-+void eeprom_read(struct eeprom *ee, unsigned address, __u8 *bytes,
- 		unsigned count);
--void eeprom_writeb(struct eeprom *ee, unsigned address, u8 data);
--void eeprom_write(struct eeprom *ee, unsigned address, u8 *bytes,
-+void eeprom_writeb(struct eeprom *ee, unsigned address, __u8 data);
-+void eeprom_write(struct eeprom *ee, unsigned address, __u8 *bytes,
- 		unsigned count);
- 
- /* The EEPROM commands include the alway-set leading bit. */
-@@ -56,10 +56,10 @@
- }
- 
- /* foo. put this in a .c file */
--static inline void eeprom_update(struct eeprom *ee, u32 mask, int pol)
-+static inline void eeprom_update(struct eeprom *ee, __u32 mask, int pol)
- {
- 	unsigned long flags;
--	u32 data;
-+	__u32 data;
- 
- 	spin_lock_irqsave(ee->lock, flags);
- 	data = *ee->cache;
-@@ -106,17 +106,17 @@
- 	eeprom_update(ee, ee->eedi, pol);
- }
- 
--u16   eeprom_readw(struct eeprom *ee, unsigned address)
-+__u16   eeprom_readw(struct eeprom *ee, unsigned address)
- {
- 	unsigned i;
--	u16	res = 0;
-+	__u16	res = 0;
- 
- 	eeprom_clk_lo(ee);
- 	eeprom_update(ee, ee->eesel, 1 ^ !!(ee->polarity & EEPOL_EESEL));
- 	eeprom_send_addr(ee, address);
- 
- 	for (i=0; i<16; i++) {
--		u32 data;
-+		__u32 data;
- 		eeprom_clk_hi(ee);
- 		res <<= 1;
- 		data = readl(ee->addr);
-@@ -130,6 +130,6 @@
- }
- 
- 
--void eeprom_writeb(struct eeprom *ee, unsigned address, u8 data)
-+void eeprom_writeb(struct eeprom *ee, unsigned address, __u8 data)
- {
- }
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/efi.h linux-libc-headers-2.6.8.0/include/linux/efi.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/efi.h	2004-08-18 13:16:02.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/efi.h	2004-08-26 05:42:08.000000000 -0500
-@@ -30,12 +30,12 @@
- #define EFI_NOT_FOUND		(14 | (1UL << (BITS_PER_LONG-1)))
- 
- typedef unsigned long efi_status_t;
--typedef u8 efi_bool_t;
--typedef u16 efi_char16_t;		/* UNICODE character */
-+typedef __u8 efi_bool_t;
-+typedef __u16 efi_char16_t;		/* UNICODE character */
- 
- 
- typedef struct {
--	u8 b[16];
-+	__u8 b[16];
- } efi_guid_t;
- 
- #define EFI_GUID(a,b,c,d0,d1,d2,d3,d4,d5,d6,d7) \
-@@ -49,11 +49,11 @@
-  * Generic EFI table header
-  */
- typedef	struct {
--	u64 signature;
--	u32 revision;
--	u32 headersize;
--	u32 crc32;
--	u32 reserved;
-+	__u64 signature;
-+	__u32 revision;
-+	__u32 headersize;
-+	__u32 crc32;
-+	__u32 reserved;
- } efi_table_hdr_t;
- 
- /*
-@@ -78,14 +78,14 @@
- #define EFI_MAX_MEMORY_TYPE		14
- 
- /* Attribute values: */
--#define EFI_MEMORY_UC		((u64)0x0000000000000001ULL)	/* uncached */
--#define EFI_MEMORY_WC		((u64)0x0000000000000002ULL)	/* write-coalescing */
--#define EFI_MEMORY_WT		((u64)0x0000000000000004ULL)	/* write-through */
--#define EFI_MEMORY_WB		((u64)0x0000000000000008ULL)	/* write-back */
--#define EFI_MEMORY_WP		((u64)0x0000000000001000ULL)	/* write-protect */
--#define EFI_MEMORY_RP		((u64)0x0000000000002000ULL)	/* read-protect */
--#define EFI_MEMORY_XP		((u64)0x0000000000004000ULL)	/* execute-protect */
--#define EFI_MEMORY_RUNTIME	((u64)0x8000000000000000ULL)	/* range requires runtime mapping */
-+#define EFI_MEMORY_UC		((__u64)0x0000000000000001ULL)	/* uncached */
-+#define EFI_MEMORY_WC		((__u64)0x0000000000000002ULL)	/* write-coalescing */
-+#define EFI_MEMORY_WT		((__u64)0x0000000000000004ULL)	/* write-through */
-+#define EFI_MEMORY_WB		((__u64)0x0000000000000008ULL)	/* write-back */
-+#define EFI_MEMORY_WP		((__u64)0x0000000000001000ULL)	/* write-protect */
-+#define EFI_MEMORY_RP		((__u64)0x0000000000002000ULL)	/* read-protect */
-+#define EFI_MEMORY_XP		((__u64)0x0000000000004000ULL)	/* execute-protect */
-+#define EFI_MEMORY_RUNTIME	((__u64)0x8000000000000000ULL)	/* range requires runtime mapping */
- #define EFI_MEMORY_DESCRIPTOR_VERSION	1
- 
- #define EFI_PAGE_SHIFT		12
-@@ -96,14 +96,14 @@
-  * the case in ia64.  Need to have this fixed in the f/w.
-  */
- typedef struct {
--	u32 type;
--	u32 pad;
--	u64 phys_addr;
--	u64 virt_addr;
--	u64 num_pages;
--	u64 attribute;
-+	__u32 type;
-+	__u32 pad;
-+	__u64 phys_addr;
-+	__u64 virt_addr;
-+	__u64 num_pages;
-+	__u64 attribute;
- #if defined (__i386__)
--	u64 pad1;
-+	__u64 pad1;
- #endif
- } efi_memory_desc_t;
- 
-@@ -117,23 +117,23 @@
- #define EFI_UNSPECIFIED_TIMEZONE 0x07ff
- 
- typedef struct {
--	u16 year;
--	u8 month;
--	u8 day;
--	u8 hour;
--	u8 minute;
--	u8 second;
--	u8 pad1;
--	u32 nanosecond;
--	s16 timezone;
--	u8 daylight;
--	u8 pad2;
-+	__u16 year;
-+	__u8 month;
-+	__u8 day;
-+	__u8 hour;
-+	__u8 minute;
-+	__u8 second;
-+	__u8 pad1;
-+	__u32 nanosecond;
-+	__s16 timezone;
-+	__u8 daylight;
-+	__u8 pad2;
- } efi_time_t;
- 
- typedef struct {
--	u32 resolution;
--	u32 accuracy;
--	u8 sets_to_zero;
-+	__u32 resolution;
-+	__u32 accuracy;
-+	__u8 sets_to_zero;
- } efi_time_cap_t;
- 
- /*
-@@ -146,7 +146,7 @@
- /*
-  * EFI Runtime Services table
-  */
--#define EFI_RUNTIME_SERVICES_SIGNATURE ((u64)0x5652453544e5552ULL)
-+#define EFI_RUNTIME_SERVICES_SIGNATURE ((__u64)0x5652453544e5552ULL)
- #define EFI_RUNTIME_SERVICES_REVISION  0x00010000
- 
- typedef struct {
-@@ -169,19 +169,19 @@
- typedef efi_status_t efi_get_wakeup_time_t (efi_bool_t *enabled, efi_bool_t *pending,
- 					    efi_time_t *tm);
- typedef efi_status_t efi_set_wakeup_time_t (efi_bool_t enabled, efi_time_t *tm);
--typedef efi_status_t efi_get_variable_t (efi_char16_t *name, efi_guid_t *vendor, u32 *attr,
-+typedef efi_status_t efi_get_variable_t (efi_char16_t *name, efi_guid_t *vendor, __u32 *attr,
- 					 unsigned long *data_size, void *data);
- typedef efi_status_t efi_get_next_variable_t (unsigned long *name_size, efi_char16_t *name,
- 					      efi_guid_t *vendor);
- typedef efi_status_t efi_set_variable_t (efi_char16_t *name, efi_guid_t *vendor, 
- 					 unsigned long attr, unsigned long data_size, 
- 					 void *data);
--typedef efi_status_t efi_get_next_high_mono_count_t (u32 *count);
-+typedef efi_status_t efi_get_next_high_mono_count_t (__u32 *count);
- typedef void efi_reset_system_t (int reset_type, efi_status_t status,
- 				 unsigned long data_size, efi_char16_t *data);
- typedef efi_status_t efi_set_virtual_address_map_t (unsigned long memory_map_size,
- 						unsigned long descriptor_size,
--						u32 descriptor_version,
-+						__u32 descriptor_version,
- 						efi_memory_desc_t *virtual_map);
- 
- /*
-@@ -219,13 +219,13 @@
- 	unsigned long table;
- } efi_config_table_t;
- 
--#define EFI_SYSTEM_TABLE_SIGNATURE ((u64)0x5453595320494249ULL)
-+#define EFI_SYSTEM_TABLE_SIGNATURE ((__u64)0x5453595320494249ULL)
- #define EFI_SYSTEM_TABLE_REVISION  ((1 << 16) | 00)
- 
- typedef struct {
- 	efi_table_hdr_t hdr;
- 	unsigned long fw_vendor;	/* physical addr of CHAR16 vendor string */
--	u32 fw_revision;
-+	__u32 fw_revision;
- 	unsigned long con_in_handle;
- 	unsigned long con_in;
- 	unsigned long con_out_handle;
-@@ -293,9 +293,9 @@
- extern void efi_memmap_walk (efi_freemem_callback_t callback, void *arg);
- extern void efi_gettimeofday (struct timespec *ts);
- extern void efi_enter_virtual_mode (void);	/* switch EFI to virtual mode, if possible */
--extern u64 efi_get_iobase (void);
--extern u32 efi_mem_type (unsigned long phys_addr);
--extern u64 efi_mem_attributes (unsigned long phys_addr);
-+extern __u64 efi_get_iobase (void);
-+extern __u32 efi_mem_type (unsigned long phys_addr);
-+extern __u64 efi_mem_attributes (unsigned long phys_addr);
- extern int __init efi_uart_console_only (void);
- extern void efi_initialize_iomem_resources(struct resource *code_resource,
- 					struct resource *data_resource);
-@@ -368,9 +368,9 @@
- #define   EFI_DEV_END_ENTIRE			0xFF
- 
- struct efi_generic_dev_path {
--	u8 type;
--	u8 sub_type;
--	u16 length;
-+	__u8 type;
-+	__u8 sub_type;
-+	__u16 length;
- } __attribute ((packed));
- 
- #endif /* _LINUX_EFI_H */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/eisa.h linux-libc-headers-2.6.8.0/include/linux/eisa.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/eisa.h	2003-12-15 12:46:58.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/eisa.h	2004-08-26 05:42:08.000000000 -0500
-@@ -43,7 +43,7 @@
- 	int                   state;
- 	unsigned long         base_addr;
- 	struct resource       res[EISA_MAX_RESOURCES];
--	u64                   dma_mask;
-+	__u64                   dma_mask;
- 	struct device         dev; /* generic device */
- #ifdef CONFIG_EISA_NAMES
- 	char		      pretty_name[DEVICE_NAME_SIZE];
-@@ -91,7 +91,7 @@
- 	unsigned long    bus_base_addr;
- 	int		 slots;  /* Max slot number */
- 	int		 force_probe; /* Probe even when no slot 0 */
--	u64		 dma_mask; /* from bridge device */
-+	__u64		 dma_mask; /* from bridge device */
- 	int              bus_nr; /* Set by eisa_root_register */
- 	struct resource  eisa_root_res;	/* ditto */
- };
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/ethtool.h linux-libc-headers-2.6.8.0/include/linux/ethtool.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/ethtool.h	2004-06-23 16:52:54.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/ethtool.h	2004-08-26 13:29:11.000000000 -0500
-@@ -15,24 +15,24 @@
- 
- /* This should work for both 32 and 64 bit userland. */
- struct ethtool_cmd {
--	u32	cmd;
--	u32	supported;	/* Features this interface supports */
--	u32	advertising;	/* Features this interface advertises */
--	u16	speed;		/* The forced speed, 10Mb, 100Mb, gigabit */
--	u8	duplex;		/* Duplex, half or full */
--	u8	port;		/* Which connector port */
--	u8	phy_address;
--	u8	transceiver;	/* Which transceiver to use */
--	u8	autoneg;	/* Enable or disable autonegotiation */
--	u32	maxtxpkt;	/* Tx pkts before generating tx int */
--	u32	maxrxpkt;	/* Rx pkts before generating rx int */
--	u32	reserved[4];
-+	__u32	cmd;
-+	__u32	supported;	/* Features this interface supports */
-+	__u32	advertising;	/* Features this interface advertises */
-+	__u16	speed;		/* The forced speed, 10Mb, 100Mb, gigabit */
-+	__u8	duplex;		/* Duplex, half or full */
-+	__u8	port;		/* Which connector port */
-+	__u8	phy_address;
-+	__u8	transceiver;	/* Which transceiver to use */
-+	__u8	autoneg;	/* Enable or disable autonegotiation */
-+	__u32	maxtxpkt;	/* Tx pkts before generating tx int */
-+	__u32	maxrxpkt;	/* Rx pkts before generating rx int */
-+	__u32	reserved[4];
- };
- 
- #define ETHTOOL_BUSINFO_LEN	32
- /* these strings are set to whatever the driver author decides... */
- struct ethtool_drvinfo {
--	u32	cmd;
-+	__u32	cmd;
- 	char	driver[32];	/* driver short name, "tulip", "eepro100" */
- 	char	version[32];	/* driver version string */
- 	char	fw_version[32];	/* firmware version string, if applicable */
-@@ -40,53 +40,53 @@
- 				/* For PCI devices, use pci_name(pci_dev). */
- 	char	reserved1[32];
- 	char	reserved2[16];
--	u32	n_stats;	/* number of u64's from ETHTOOL_GSTATS */
--	u32	testinfo_len;
--	u32	eedump_len;	/* Size of data from ETHTOOL_GEEPROM (bytes) */
--	u32	regdump_len;	/* Size of data from ETHTOOL_GREGS (bytes) */
-+	__u32	n_stats;	/* number of __u64's from ETHTOOL_GSTATS */
-+	__u32	testinfo_len;
-+	__u32	eedump_len;	/* Size of data from ETHTOOL_GEEPROM (bytes) */
-+	__u32	regdump_len;	/* Size of data from ETHTOOL_GREGS (bytes) */
- };
- 
- #define SOPASS_MAX	6
- /* wake-on-lan settings */
- struct ethtool_wolinfo {
--	u32	cmd;
--	u32	supported;
--	u32	wolopts;
--	u8	sopass[SOPASS_MAX]; /* SecureOn(tm) password */
-+	__u32	cmd;
-+	__u32	supported;
-+	__u32	wolopts;
-+	__u8	sopass[SOPASS_MAX]; /* SecureOn(tm) password */
- };
- 
- /* for passing single values */
- struct ethtool_value {
--	u32	cmd;
--	u32	data;
-+	__u32	cmd;
-+	__u32	data;
- };
- 
- /* for passing big chunks of data */
- struct ethtool_regs {
--	u32	cmd;
--	u32	version; /* driver-specific, indicates different chips/revs */
--	u32	len; /* bytes */
--	u8	data[0];
-+	__u32	cmd;
-+	__u32	version; /* driver-specific, indicates different chips/revs */
-+	__u32	len; /* bytes */
-+	__u8	data[0];
- };
- 
- /* for passing EEPROM chunks */
- struct ethtool_eeprom {
--	u32	cmd;
--	u32	magic;
--	u32	offset; /* in bytes */
--	u32	len; /* in bytes */
--	u8	data[0];
-+	__u32	cmd;
-+	__u32	magic;
-+	__u32	offset; /* in bytes */
-+	__u32	len; /* in bytes */
-+	__u8	data[0];
- };
- 
- /* for configuring coalescing parameters of chip */
- struct ethtool_coalesce {
--	u32	cmd;	/* ETHTOOL_{G,S}COALESCE */
-+	__u32	cmd;	/* ETHTOOL_{G,S}COALESCE */
- 
- 	/* How many usecs to delay an RX interrupt after
- 	 * a packet arrives.  If 0, only rx_max_coalesced_frames
- 	 * is used.
- 	 */
--	u32	rx_coalesce_usecs;
-+	__u32	rx_coalesce_usecs;
- 
- 	/* How many packets to delay an RX interrupt after
- 	 * a packet arrives.  If 0, only rx_coalesce_usecs is
-@@ -94,21 +94,21 @@
- 	 * to zero as this would cause RX interrupts to never be
- 	 * generated.
- 	 */
--	u32	rx_max_coalesced_frames;
-+	__u32	rx_max_coalesced_frames;
- 
- 	/* Same as above two parameters, except that these values
- 	 * apply while an IRQ is being serviced by the host.  Not
- 	 * all cards support this feature and the values are ignored
- 	 * in that case.
- 	 */
--	u32	rx_coalesce_usecs_irq;
--	u32	rx_max_coalesced_frames_irq;
-+	__u32	rx_coalesce_usecs_irq;
-+	__u32	rx_max_coalesced_frames_irq;
- 
- 	/* How many usecs to delay a TX interrupt after
- 	 * a packet is sent.  If 0, only tx_max_coalesced_frames
- 	 * is used.
- 	 */
--	u32	tx_coalesce_usecs;
-+	__u32	tx_coalesce_usecs;
- 
- 	/* How many packets to delay a TX interrupt after
- 	 * a packet is sent.  If 0, only tx_coalesce_usecs is
-@@ -116,22 +116,22 @@
- 	 * to zero as this would cause TX interrupts to never be
- 	 * generated.
- 	 */
--	u32	tx_max_coalesced_frames;
-+	__u32	tx_max_coalesced_frames;
- 
- 	/* Same as above two parameters, except that these values
- 	 * apply while an IRQ is being serviced by the host.  Not
- 	 * all cards support this feature and the values are ignored
- 	 * in that case.
- 	 */
--	u32	tx_coalesce_usecs_irq;
--	u32	tx_max_coalesced_frames_irq;
-+	__u32	tx_coalesce_usecs_irq;
-+	__u32	tx_max_coalesced_frames_irq;
- 
- 	/* How many usecs to delay in-memory statistics
- 	 * block updates.  Some drivers do not have an in-memory
- 	 * statistic block, and in such cases this value is ignored.
- 	 * This value must not be zero.
- 	 */
--	u32	stats_block_coalesce_usecs;
-+	__u32	stats_block_coalesce_usecs;
- 
- 	/* Adaptive RX/TX coalescing is an algorithm implemented by
- 	 * some drivers to improve latency under low packet rates and
-@@ -140,18 +140,18 @@
- 	 * not implemented by the driver causes these values to be
- 	 * silently ignored.
- 	 */
--	u32	use_adaptive_rx_coalesce;
--	u32	use_adaptive_tx_coalesce;
-+	__u32	use_adaptive_rx_coalesce;
-+	__u32	use_adaptive_tx_coalesce;
- 
- 	/* When the packet rate (measured in packets per second)
- 	 * is below pkt_rate_low, the {rx,tx}_*_low parameters are
- 	 * used.
- 	 */
--	u32	pkt_rate_low;
--	u32	rx_coalesce_usecs_low;
--	u32	rx_max_coalesced_frames_low;
--	u32	tx_coalesce_usecs_low;
--	u32	tx_max_coalesced_frames_low;
-+	__u32	pkt_rate_low;
-+	__u32	rx_coalesce_usecs_low;
-+	__u32	rx_max_coalesced_frames_low;
-+	__u32	tx_coalesce_usecs_low;
-+	__u32	tx_max_coalesced_frames_low;
- 
- 	/* When the packet rate is below pkt_rate_high but above
- 	 * pkt_rate_low (both measured in packets per second) the
-@@ -162,43 +162,43 @@
- 	 * is above pkt_rate_high, the {rx,tx}_*_high parameters are
- 	 * used.
- 	 */
--	u32	pkt_rate_high;
--	u32	rx_coalesce_usecs_high;
--	u32	rx_max_coalesced_frames_high;
--	u32	tx_coalesce_usecs_high;
--	u32	tx_max_coalesced_frames_high;
-+	__u32	pkt_rate_high;
-+	__u32	rx_coalesce_usecs_high;
-+	__u32	rx_max_coalesced_frames_high;
-+	__u32	tx_coalesce_usecs_high;
-+	__u32	tx_max_coalesced_frames_high;
- 
- 	/* How often to do adaptive coalescing packet rate sampling,
- 	 * measured in seconds.  Must not be zero.
- 	 */
--	u32	rate_sample_interval;
-+	__u32	rate_sample_interval;
- };
- 
- /* for configuring RX/TX ring parameters */
- struct ethtool_ringparam {
--	u32	cmd;	/* ETHTOOL_{G,S}RINGPARAM */
-+	__u32	cmd;	/* ETHTOOL_{G,S}RINGPARAM */
- 
- 	/* Read only attributes.  These indicate the maximum number
- 	 * of pending RX/TX ring entries the driver will allow the
- 	 * user to set.
- 	 */
--	u32	rx_max_pending;
--	u32	rx_mini_max_pending;
--	u32	rx_jumbo_max_pending;
--	u32	tx_max_pending;
-+	__u32	rx_max_pending;
-+	__u32	rx_mini_max_pending;
-+	__u32	rx_jumbo_max_pending;
-+	__u32	tx_max_pending;
- 
- 	/* Values changeable by the user.  The valid values are
- 	 * in the range 1 to the "*_max_pending" counterpart above.
- 	 */
--	u32	rx_pending;
--	u32	rx_mini_pending;
--	u32	rx_jumbo_pending;
--	u32	tx_pending;
-+	__u32	rx_pending;
-+	__u32	rx_mini_pending;
-+	__u32	rx_jumbo_pending;
-+	__u32	tx_pending;
- };
- 
- /* for configuring link flow control parameters */
- struct ethtool_pauseparam {
--	u32	cmd;	/* ETHTOOL_{G,S}PAUSEPARAM */
-+	__u32	cmd;	/* ETHTOOL_{G,S}PAUSEPARAM */
- 
- 	/* If the link is being auto-negotiated (via ethtool_cmd.autoneg
- 	 * being true) the user may set 'autonet' here non-zero to have the
-@@ -210,9 +210,9 @@
- 	 * then {rx,tx}_pause force the driver to use/not-use pause
- 	 * flow control.
- 	 */
--	u32	autoneg;
--	u32	rx_pause;
--	u32	tx_pause;
-+	__u32	autoneg;
-+	__u32	rx_pause;
-+	__u32	tx_pause;
- };
- 
- #define ETH_GSTRING_LEN		32
-@@ -223,10 +223,10 @@
- 
- /* for passing string sets for data tagging */
- struct ethtool_gstrings {
--	u32	cmd;		/* ETHTOOL_GSTRINGS */
--	u32	string_set;	/* string set id e.c. ETH_SS_TEST, etc*/
--	u32	len;		/* number of strings in the string set */
--	u8	data[0];
-+	__u32	cmd;		/* ETHTOOL_GSTRINGS */
-+	__u32	string_set;	/* string set id e.c. ETH_SS_TEST, etc*/
-+	__u32	len;		/* number of strings in the string set */
-+	__u8	data[0];
- };
- 
- enum ethtool_test_flags {
-@@ -236,30 +236,30 @@
- 
- /* for requesting NIC test and getting results*/
- struct ethtool_test {
--	u32	cmd;		/* ETHTOOL_TEST */
--	u32	flags;		/* ETH_TEST_FL_xxx */
--	u32	reserved;
--	u32	len;		/* result length, in number of u64 elements */
--	u64	data[0];
-+	__u32	cmd;		/* ETHTOOL_TEST */
-+	__u32	flags;		/* ETH_TEST_FL_xxx */
-+	__u32	reserved;
-+	__u32	len;		/* result length, in number of __u64 elements */
-+	__u64	data[0];
- };
- 
- /* for dumping NIC-specific statistics */
- struct ethtool_stats {
--	u32	cmd;		/* ETHTOOL_GSTATS */
--	u32	n_stats;	/* number of u64's being returned */
--	u64	data[0];
-+	__u32	cmd;		/* ETHTOOL_GSTATS */
-+	__u32	n_stats;	/* number of __u64's being returned */
-+	__u64	data[0];
- };
- 
- struct net_device;
- 
- /* Some generic methods drivers may use in their ethtool_ops */
--u32 ethtool_op_get_link(struct net_device *dev);
--u32 ethtool_op_get_tx_csum(struct net_device *dev);
--int ethtool_op_set_tx_csum(struct net_device *dev, u32 data);
--u32 ethtool_op_get_sg(struct net_device *dev);
--int ethtool_op_set_sg(struct net_device *dev, u32 data);
--u32 ethtool_op_get_tso(struct net_device *dev);
--int ethtool_op_set_tso(struct net_device *dev, u32 data);
-+__u32 ethtool_op_get_link(struct net_device *dev);
-+__u32 ethtool_op_get_tx_csum(struct net_device *dev);
-+int ethtool_op_set_tx_csum(struct net_device *dev, __u32 data);
-+__u32 ethtool_op_get_sg(struct net_device *dev);
-+int ethtool_op_set_sg(struct net_device *dev, __u32 data);
-+__u32 ethtool_op_get_tso(struct net_device *dev);
-+int ethtool_op_set_tso(struct net_device *dev, __u32 data);
- 
- /**
-  * &ethtool_ops - Alter and report network device settings
-@@ -324,33 +324,33 @@
- 	void	(*get_regs)(struct net_device *, struct ethtool_regs *, void *);
- 	void	(*get_wol)(struct net_device *, struct ethtool_wolinfo *);
- 	int	(*set_wol)(struct net_device *, struct ethtool_wolinfo *);
--	u32	(*get_msglevel)(struct net_device *);
--	void	(*set_msglevel)(struct net_device *, u32);
-+	__u32	(*get_msglevel)(struct net_device *);
-+	void	(*set_msglevel)(struct net_device *, __u32);
- 	int	(*nway_reset)(struct net_device *);
--	u32	(*get_link)(struct net_device *);
-+	__u32	(*get_link)(struct net_device *);
- 	int	(*get_eeprom_len)(struct net_device *);
--	int	(*get_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *);
--	int	(*set_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *);
-+	int	(*get_eeprom)(struct net_device *, struct ethtool_eeprom *, __u8 *);
-+	int	(*set_eeprom)(struct net_device *, struct ethtool_eeprom *, __u8 *);
- 	int	(*get_coalesce)(struct net_device *, struct ethtool_coalesce *);
- 	int	(*set_coalesce)(struct net_device *, struct ethtool_coalesce *);
- 	void	(*get_ringparam)(struct net_device *, struct ethtool_ringparam *);
- 	int	(*set_ringparam)(struct net_device *, struct ethtool_ringparam *);
- 	void	(*get_pauseparam)(struct net_device *, struct ethtool_pauseparam*);
- 	int	(*set_pauseparam)(struct net_device *, struct ethtool_pauseparam*);
--	u32	(*get_rx_csum)(struct net_device *);
--	int	(*set_rx_csum)(struct net_device *, u32);
--	u32	(*get_tx_csum)(struct net_device *);
--	int	(*set_tx_csum)(struct net_device *, u32);
--	u32	(*get_sg)(struct net_device *);
--	int	(*set_sg)(struct net_device *, u32);
--	u32	(*get_tso)(struct net_device *);
--	int	(*set_tso)(struct net_device *, u32);
-+	__u32	(*get_rx_csum)(struct net_device *);
-+	int	(*set_rx_csum)(struct net_device *, __u32);
-+	__u32	(*get_tx_csum)(struct net_device *);
-+	int	(*set_tx_csum)(struct net_device *, __u32);
-+	__u32	(*get_sg)(struct net_device *);
-+	int	(*set_sg)(struct net_device *, __u32);
-+	__u32	(*get_tso)(struct net_device *);
-+	int	(*set_tso)(struct net_device *, __u32);
- 	int	(*self_test_count)(struct net_device *);
--	void	(*self_test)(struct net_device *, struct ethtool_test *, u64 *);
--	void	(*get_strings)(struct net_device *, u32 stringset, u8 *);
--	int	(*phys_id)(struct net_device *, u32);
-+	void	(*self_test)(struct net_device *, struct ethtool_test *, __u64 *);
-+	void	(*get_strings)(struct net_device *, __u32 stringset, __u8 *);
-+	int	(*phys_id)(struct net_device *, __u32);
- 	int	(*get_stats_count)(struct net_device *);
--	void	(*get_ethtool_stats)(struct net_device *, struct ethtool_stats *, u64 *);
-+	void	(*get_ethtool_stats)(struct net_device *, struct ethtool_stats *, __u64 *);
- 	int	(*begin)(struct net_device *);
- 	void	(*complete)(struct net_device *);
- };
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/firmware.h linux-libc-headers-2.6.8.0/include/linux/firmware.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/firmware.h	2003-12-15 12:46:58.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/firmware.h	2004-08-26 05:42:08.000000000 -0500
-@@ -5,7 +5,7 @@
- #define FIRMWARE_NAME_MAX 30 
- struct firmware {
- 	size_t size;
--	u8 *data;
-+	__u8 *data;
- };
- int request_firmware(const struct firmware **fw, const char *name,
- 		     struct device *device);
-@@ -15,5 +15,5 @@
- 	void (*cont)(const struct firmware *fw, void *context));
- 
- void release_firmware(const struct firmware *fw);
--void register_firmware(const char *name, const u8 *data, size_t size);
-+void register_firmware(const char *name, const __u8 *data, size_t size);
- #endif
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/fs.h linux-libc-headers-2.6.8.0/include/linux/fs.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/fs.h	2004-08-18 13:16:02.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/fs.h	2004-08-26 05:42:08.000000000 -0500
-@@ -198,7 +198,7 @@
- /* A jump here: 108-111 have been used for various private purposes. */
- #define BLKBSZGET  _IOR(0x12,112,size_t)
- #define BLKBSZSET  _IOW(0x12,113,size_t)
--#define BLKGETSIZE64 _IOR(0x12,114,size_t)	/* return device size in bytes (u64 *arg) */
-+#define BLKGETSIZE64 _IOR(0x12,114,size_t)	/* return device size in bytes (__u64 *arg) */
- 
- #define BMAP_IOCTL 1		/* obsolete - kept for compatibility */
- #define FIBMAP	   _IO(0x00,1)	/* bmap access */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/i2c.h linux-libc-headers-2.6.8.0/include/linux/i2c.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/i2c.h	2004-06-23 16:52:54.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/i2c.h	2004-08-26 05:42:08.000000000 -0500
-@@ -70,36 +70,36 @@
-    and probably just as fast. 
-    Note that we use i2c_adapter here, because you do not need a specific
-    smbus adapter to call this function. */
--extern s32 i2c_smbus_xfer (struct i2c_adapter * adapter, u16 addr, 
-+extern __s32 i2c_smbus_xfer (struct i2c_adapter * adapter, __u16 addr, 
-                            unsigned short flags,
--                           char read_write, u8 command, int size,
-+                           char read_write, __u8 command, int size,
-                            union i2c_smbus_data * data);
- 
- /* Now follow the 'nice' access routines. These also document the calling
-    conventions of smbus_access. */
- 
--extern s32 i2c_smbus_write_quick(struct i2c_client * client, u8 value);
--extern s32 i2c_smbus_read_byte(struct i2c_client * client);
--extern s32 i2c_smbus_write_byte(struct i2c_client * client, u8 value);
--extern s32 i2c_smbus_read_byte_data(struct i2c_client * client, u8 command);
--extern s32 i2c_smbus_write_byte_data(struct i2c_client * client,
--                                     u8 command, u8 value);
--extern s32 i2c_smbus_read_word_data(struct i2c_client * client, u8 command);
--extern s32 i2c_smbus_write_word_data(struct i2c_client * client,
--                                     u8 command, u16 value);
--extern s32 i2c_smbus_process_call(struct i2c_client * client,
--                                  u8 command, u16 value);
-+extern __s32 i2c_smbus_write_quick(struct i2c_client * client, __u8 value);
-+extern __s32 i2c_smbus_read_byte(struct i2c_client * client);
-+extern __s32 i2c_smbus_write_byte(struct i2c_client * client, __u8 value);
-+extern __s32 i2c_smbus_read_byte_data(struct i2c_client * client, __u8 command);
-+extern __s32 i2c_smbus_write_byte_data(struct i2c_client * client,
-+                                     __u8 command, __u8 value);
-+extern __s32 i2c_smbus_read_word_data(struct i2c_client * client, __u8 command);
-+extern __s32 i2c_smbus_write_word_data(struct i2c_client * client,
-+                                     __u8 command, __u16 value);
-+extern __s32 i2c_smbus_process_call(struct i2c_client * client,
-+                                  __u8 command, __u16 value);
- /* Returns the number of read bytes */
--extern s32 i2c_smbus_read_block_data(struct i2c_client * client,
--                                     u8 command, u8 *values);
--extern s32 i2c_smbus_write_block_data(struct i2c_client * client,
--                                      u8 command, u8 length,
--                                      u8 *values);
--extern s32 i2c_smbus_read_i2c_block_data(struct i2c_client * client,
--                                         u8 command, u8 *values);
--extern s32 i2c_smbus_write_i2c_block_data(struct i2c_client * client,
--                                          u8 command, u8 length,
--                                          u8 *values);
-+extern __s32 i2c_smbus_read_block_data(struct i2c_client * client,
-+                                     __u8 command, __u8 *values);
-+extern __s32 i2c_smbus_write_block_data(struct i2c_client * client,
-+                                      __u8 command, __u8 length,
-+                                      __u8 *values);
-+extern __s32 i2c_smbus_read_i2c_block_data(struct i2c_client * client,
-+                                         __u8 command, __u8 *values);
-+extern __s32 i2c_smbus_write_i2c_block_data(struct i2c_client * client,
-+                                          __u8 command, __u8 length,
-+                                          __u8 *values);
- 
- 
- /*
-@@ -203,9 +203,9 @@
- 	   using common I2C messages */
- 	int (*master_xfer)(struct i2c_adapter *adap,struct i2c_msg msgs[], 
- 	                   int num);
--	int (*smbus_xfer) (struct i2c_adapter *adap, u16 addr, 
-+	int (*smbus_xfer) (struct i2c_adapter *adap, __u16 addr, 
- 	                   unsigned short flags, char read_write,
--	                   u8 command, int size, union i2c_smbus_data * data);
-+	                   __u8 command, int size, union i2c_smbus_data * data);
- 
- 	/* --- these optional/future use for some adapter types.*/
- 	int (*slave_send)(struct i2c_adapter *,char*,int);
-@@ -215,7 +215,7 @@
- 	int (*algo_control)(struct i2c_adapter *, unsigned int, unsigned long);
- 
- 	/* To determine what the adapter supports */
--	u32 (*functionality) (struct i2c_adapter *);
-+	__u32 (*functionality) (struct i2c_adapter *);
- };
- 
- /*
-@@ -381,10 +381,10 @@
- 
- 
- /* Return the functionality mask */
--extern u32 i2c_get_functionality (struct i2c_adapter *adap);
-+extern __u32 i2c_get_functionality (struct i2c_adapter *adap);
- 
- /* Return 1 if adapter supports everything we need, 0 if not. */
--extern int i2c_check_functionality (struct i2c_adapter *adap, u32 func);
-+extern int i2c_check_functionality (struct i2c_adapter *adap, __u32 func);
- 
- /*
-  * I2C Message - used for pure i2c transaction, also from /dev interface
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/i2o-dev.h linux-libc-headers-2.6.8.0/include/linux/i2o-dev.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/i2o-dev.h	2004-06-23 16:52:54.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/i2o-dev.h	2004-08-26 05:42:08.000000000 -0500
-@@ -29,7 +29,7 @@
-  * I2O Control IOCTLs and structures
-  */
- #define I2O_MAGIC_NUMBER	'i'
--#define I2OGETIOPS		_IOR(I2O_MAGIC_NUMBER,0,u8[MAX_I2O_CONTROLLERS])
-+#define I2OGETIOPS		_IOR(I2O_MAGIC_NUMBER,0,__u8[MAX_I2O_CONTROLLERS])
- #define I2OHRTGET		_IOWR(I2O_MAGIC_NUMBER,1,struct i2o_cmd_hrtlct)
- #define I2OLCTGET		_IOWR(I2O_MAGIC_NUMBER,2,struct i2o_cmd_hrtlct)
- #define I2OPARMSET		_IOWR(I2O_MAGIC_NUMBER,3,struct i2o_cmd_psetget)
-@@ -37,7 +37,7 @@
- #define I2OSWDL 		_IOWR(I2O_MAGIC_NUMBER,5,struct i2o_sw_xfer)
- #define I2OSWUL 		_IOWR(I2O_MAGIC_NUMBER,6,struct i2o_sw_xfer)
- #define I2OSWDEL		_IOWR(I2O_MAGIC_NUMBER,7,struct i2o_sw_xfer)
--#define I2OVALIDATE		_IOR(I2O_MAGIC_NUMBER,8,u32)
-+#define I2OVALIDATE		_IOR(I2O_MAGIC_NUMBER,8,__u32)
- #define I2OHTML 		_IOWR(I2O_MAGIC_NUMBER,9,struct i2o_html)
- #define I2OEVTREG		_IOW(I2O_MAGIC_NUMBER,10,struct i2o_evt_id)
- #define I2OEVTGET		_IOR(I2O_MAGIC_NUMBER,11,struct i2o_evt_info)
-@@ -129,65 +129,65 @@
- #define I2O_BUS_CARDBUS 7
- #define I2O_BUS_UNKNOWN 0x80
- 
--typedef unsigned char u8;
--typedef unsigned short u16;
--typedef unsigned int u32;
-+typedef unsigned char __u8;
-+typedef unsigned short __u16;
-+typedef unsigned int __u32;
- 
- typedef struct _i2o_pci_bus
- {
--	u8	PciFunctionNumber;
--	u8	PciDeviceNumber;
--	u8	PciBusNumber;
--	u8	reserved;
--	u16	PciVendorID;
--	u16	PciDeviceID;
-+	__u8	PciFunctionNumber;
-+	__u8	PciDeviceNumber;
-+	__u8	PciBusNumber;
-+	__u8	reserved;
-+	__u16	PciVendorID;
-+	__u16	PciDeviceID;
- } i2o_pci_bus;
- 
- typedef struct _i2o_local_bus
- {
--	u16	LbBaseIOPort;
--	u16	reserved;
--	u32	LbBaseMemoryAddress;
-+	__u16	LbBaseIOPort;
-+	__u16	reserved;
-+	__u32	LbBaseMemoryAddress;
- } i2o_local_bus;
- 
- typedef struct _i2o_isa_bus
- {
--	u16	IsaBaseIOPort;
--	u8	CSN;
--	u8	reserved;
--	u32	IsaBaseMemoryAddress;
-+	__u16	IsaBaseIOPort;
-+	__u8	CSN;
-+	__u8	reserved;
-+	__u32	IsaBaseMemoryAddress;
- } i2o_isa_bus;
- 
- typedef struct _i2o_eisa_bus_info
- {
--	u16	EisaBaseIOPort;
--	u8	reserved;
--	u8	EisaSlotNumber;
--	u32	EisaBaseMemoryAddress;
-+	__u16	EisaBaseIOPort;
-+	__u8	reserved;
-+	__u8	EisaSlotNumber;
-+	__u32	EisaBaseMemoryAddress;
- } i2o_eisa_bus;
- 
- typedef struct _i2o_mca_bus
- {
--	u16	McaBaseIOPort;
--	u8	reserved;
--	u8	McaSlotNumber;
--	u32	McaBaseMemoryAddress;
-+	__u16	McaBaseIOPort;
-+	__u8	reserved;
-+	__u8	McaSlotNumber;
-+	__u32	McaBaseMemoryAddress;
- } i2o_mca_bus;
- 
- typedef struct _i2o_other_bus
- {
--	u16 BaseIOPort;
--	u16 reserved;
--	u32 BaseMemoryAddress;
-+	__u16 BaseIOPort;
-+	__u16 reserved;
-+	__u32 BaseMemoryAddress;
- } i2o_other_bus;
- 
- typedef struct _i2o_hrt_entry
- {
--	u32	adapter_id;
--	u32	parent_tid:12;
--	u32 	state:4;
--	u32	bus_num:8;
--	u32	bus_type:8;
-+	__u32	adapter_id;
-+	__u32	parent_tid:12;
-+	__u32 	state:4;
-+	__u32	bus_num:8;
-+	__u32	bus_type:8;
- 	union
- 	{
- 		i2o_pci_bus	pci_bus;
-@@ -201,69 +201,69 @@
- 
- typedef struct _i2o_hrt
- {
--	u16	num_entries;
--	u8	entry_len;
--	u8	hrt_version;
--	u32	change_ind;
-+	__u16	num_entries;
-+	__u8	entry_len;
-+	__u8	hrt_version;
-+	__u32	change_ind;
- 	i2o_hrt_entry hrt_entry[1];
- } i2o_hrt;
- 
- typedef struct _i2o_lct_entry
- {
--	u32	entry_size:16;
--	u32	tid:12;
--	u32	reserved:4;
--	u32	change_ind;
--	u32	device_flags;
--	u32	class_id:12;
--	u32	version:4;
--	u32	vendor_id:16;
--	u32	sub_class;
--	u32	user_tid:12;
--	u32	parent_tid:12;
--	u32	bios_info:8;
--	u8	identity_tag[8];
--	u32	event_capabilities;
-+	__u32	entry_size:16;
-+	__u32	tid:12;
-+	__u32	reserved:4;
-+	__u32	change_ind;
-+	__u32	device_flags;
-+	__u32	class_id:12;
-+	__u32	version:4;
-+	__u32	vendor_id:16;
-+	__u32	sub_class;
-+	__u32	user_tid:12;
-+	__u32	parent_tid:12;
-+	__u32	bios_info:8;
-+	__u8	identity_tag[8];
-+	__u32	event_capabilities;
- } i2o_lct_entry;
- 
- typedef struct _i2o_lct
- {
--	u32	table_size:16;
--	u32	boot_tid:12;
--	u32	lct_ver:4;
--	u32	iop_flags;
--	u32	change_ind;
-+	__u32	table_size:16;
-+	__u32	boot_tid:12;
-+	__u32	lct_ver:4;
-+	__u32	iop_flags;
-+	__u32	change_ind;
- 	i2o_lct_entry lct_entry[1];
- } i2o_lct;
- 
- typedef struct _i2o_status_block
- {
--	u16	org_id;
--	u16	reserved;
--	u16	iop_id:12;
--	u16	reserved1:4;
--	u16	host_unit_id;
--	u16	segment_number:12;
--	u16	i2o_version:4;
--	u8	iop_state;
--	u8	msg_type;
--	u16	inbound_frame_size;
--	u8	init_code;
--	u8	reserved2;
--	u32	max_inbound_frames;
--	u32	cur_inbound_frames;
--	u32	max_outbound_frames;
-+	__u16	org_id;
-+	__u16	reserved;
-+	__u16	iop_id:12;
-+	__u16	reserved1:4;
-+	__u16	host_unit_id;
-+	__u16	segment_number:12;
-+	__u16	i2o_version:4;
-+	__u8	iop_state;
-+	__u8	msg_type;
-+	__u16	inbound_frame_size;
-+	__u8	init_code;
-+	__u8	reserved2;
-+	__u32	max_inbound_frames;
-+	__u32	cur_inbound_frames;
-+	__u32	max_outbound_frames;
- 	char	product_id[24];
--	u32	expected_lct_size;
--	u32	iop_capabilities;
--	u32	desired_mem_size;
--	u32	current_mem_size;
--	u32	current_mem_base;
--	u32	desired_io_size;
--	u32	current_io_size;
--	u32	current_io_base;
--	u32	reserved3:24;
--	u32	cmd_status:8;
-+	__u32	expected_lct_size;
-+	__u32	iop_capabilities;
-+	__u32	desired_mem_size;
-+	__u32	current_mem_size;
-+	__u32	current_mem_base;
-+	__u32	desired_io_size;
-+	__u32	current_io_size;
-+	__u32	current_io_base;
-+	__u32	reserved3:24;
-+	__u32	cmd_status:8;
- } i2o_status_block;
- 
- /* Event indicator mask flags */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/isdn/capilli.h linux-libc-headers-2.6.8.0/include/linux/isdn/capilli.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/isdn/capilli.h	2004-03-28 07:52:12.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/isdn/capilli.h	2004-08-26 13:26:47.000000000 -0500
-@@ -43,20 +43,20 @@
- 	char *driver_name;			/* name of driver */
- 	int (*load_firmware)(struct capi_ctr *, capiloaddata *);
- 	void (*reset_ctr)(struct capi_ctr *);
--	void (*register_appl)(struct capi_ctr *, u16 appl,
-+	void (*register_appl)(struct capi_ctr *, __u16 appl,
- 			      capi_register_params *);
--	void (*release_appl)(struct capi_ctr *, u16 appl);
--	u16  (*send_message)(struct capi_ctr *, struct sk_buff *skb);
-+	void (*release_appl)(struct capi_ctr *, __u16 appl);
-+	__u16  (*send_message)(struct capi_ctr *, struct sk_buff *skb);
- 	
- 	char *(*procinfo)(struct capi_ctr *);
- 	int (*ctr_read_proc)(char *page, char **start, off_t off,
- 			     int count, int *eof, struct capi_ctr *card);
- 
- 	/* filled in before calling ready callback */
--	u8 manu[CAPI_MANUFACTURER_LEN];		/* CAPI_GET_MANUFACTURER */
-+	__u8 manu[CAPI_MANUFACTURER_LEN];		/* CAPI_GET_MANUFACTURER */
- 	capi_version version;			/* CAPI_GET_VERSION */
- 	capi_profile profile;			/* CAPI_GET_PROFILE */
--	u8 serial[CAPI_SERIAL_LEN];		/* CAPI_GET_SERIAL */
-+	__u8 serial[CAPI_SERIAL_LEN];		/* CAPI_GET_SERIAL */
- 
- 	/* management information for kcapi */
- 
-@@ -81,7 +81,7 @@
- void capi_ctr_reseted(struct capi_ctr * card);
- void capi_ctr_suspend_output(struct capi_ctr * card);
- void capi_ctr_resume_output(struct capi_ctr * card);
--void capi_ctr_handle_message(struct capi_ctr * card, u16 appl, struct sk_buff *skb);
-+void capi_ctr_handle_message(struct capi_ctr * card, __u16 appl, struct sk_buff *skb);
- 
- // ---------------------------------------------------------------------------
- // needed for AVM capi drivers
-@@ -102,11 +102,11 @@
- // ---------------------------------------------------------------------------
- // library functions for use by hardware controller drivers
- 
--void capilib_new_ncci(struct list_head *head, u16 applid, u32 ncci, u32 winsize);
--void capilib_free_ncci(struct list_head *head, u16 applid, u32 ncci);
--void capilib_release_appl(struct list_head *head, u16 applid);
-+void capilib_new_ncci(struct list_head *head, __u16 applid, __u32 ncci, __u32 winsize);
-+void capilib_free_ncci(struct list_head *head, __u16 applid, __u32 ncci);
-+void capilib_release_appl(struct list_head *head, __u16 applid);
- void capilib_release(struct list_head *head);
--void capilib_data_b3_conf(struct list_head *head, u16 applid, u32 ncci, u16 msgid);
--u16  capilib_data_b3_req(struct list_head *head, u16 applid, u32 ncci, u16 msgid);
-+void capilib_data_b3_conf(struct list_head *head, __u16 applid, __u32 ncci, __u16 msgid);
-+__u16  capilib_data_b3_req(struct list_head *head, __u16 applid, __u32 ncci, __u16 msgid);
- 
- #endif				/* __CAPILLI_H__ */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/jhash.h linux-libc-headers-2.6.8.0/include/linux/jhash.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/jhash.h	2004-03-28 07:52:09.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/jhash.h	2004-08-26 05:42:08.000000000 -0500
-@@ -41,19 +41,19 @@
-  * of bytes.  No alignment or length assumptions are made about
-  * the input key.
-  */
--static inline u32 jhash(const void *key, u32 length, u32 initval)
-+static inline __u32 jhash(const void *key, __u32 length, __u32 initval)
- {
--	u32 a, b, c, len;
--	const u8 *k = key;
-+	__u32 a, b, c, len;
-+	const __u8 *k = key;
- 
- 	len = length;
- 	a = b = JHASH_GOLDEN_RATIO;
- 	c = initval;
- 
- 	while (len >= 12) {
--		a += (k[0] +((u32)k[1]<<8) +((u32)k[2]<<16) +((u32)k[3]<<24));
--		b += (k[4] +((u32)k[5]<<8) +((u32)k[6]<<16) +((u32)k[7]<<24));
--		c += (k[8] +((u32)k[9]<<8) +((u32)k[10]<<16)+((u32)k[11]<<24));
-+		a += (k[0] +((__u32)k[1]<<8) +((__u32)k[2]<<16) +((__u32)k[3]<<24));
-+		b += (k[4] +((__u32)k[5]<<8) +((__u32)k[6]<<16) +((__u32)k[7]<<24));
-+		c += (k[8] +((__u32)k[9]<<8) +((__u32)k[10]<<16)+((__u32)k[11]<<24));
- 
- 		__jhash_mix(a,b,c);
- 
-@@ -63,16 +63,16 @@
- 
- 	c += length;
- 	switch (len) {
--	case 11: c += ((u32)k[10]<<24);
--	case 10: c += ((u32)k[9]<<16);
--	case 9 : c += ((u32)k[8]<<8);
--	case 8 : b += ((u32)k[7]<<24);
--	case 7 : b += ((u32)k[6]<<16);
--	case 6 : b += ((u32)k[5]<<8);
-+	case 11: c += ((__u32)k[10]<<24);
-+	case 10: c += ((__u32)k[9]<<16);
-+	case 9 : c += ((__u32)k[8]<<8);
-+	case 8 : b += ((__u32)k[7]<<24);
-+	case 7 : b += ((__u32)k[6]<<16);
-+	case 6 : b += ((__u32)k[5]<<8);
- 	case 5 : b += k[4];
--	case 4 : a += ((u32)k[3]<<24);
--	case 3 : a += ((u32)k[2]<<16);
--	case 2 : a += ((u32)k[1]<<8);
-+	case 4 : a += ((__u32)k[3]<<24);
-+	case 3 : a += ((__u32)k[2]<<16);
-+	case 2 : a += ((__u32)k[1]<<8);
- 	case 1 : a += k[0];
- 	};
- 
-@@ -81,12 +81,12 @@
- 	return c;
- }
- 
--/* A special optimized version that handles 1 or more of u32s.
-- * The length parameter here is the number of u32s in the key.
-+/* A special optimized version that handles 1 or more of __u32s.
-+ * The length parameter here is the number of __u32s in the key.
-  */
--static inline u32 jhash2(u32 *k, u32 length, u32 initval)
-+static inline __u32 jhash2(__u32 *k, __u32 length, __u32 initval)
- {
--	u32 a, b, c, len;
-+	__u32 a, b, c, len;
- 
- 	a = b = JHASH_GOLDEN_RATIO;
- 	c = initval;
-@@ -119,7 +119,7 @@
-  * NOTE: In partilar the "c += length; __jhash_mix(a,b,c);" normally
-  *       done at the end is not done here.
-  */
--static inline u32 jhash_3words(u32 a, u32 b, u32 c, u32 initval)
-+static inline __u32 jhash_3words(__u32 a, __u32 b, __u32 c, __u32 initval)
- {
- 	a += JHASH_GOLDEN_RATIO;
- 	b += JHASH_GOLDEN_RATIO;
-@@ -130,12 +130,12 @@
- 	return c;
- }
- 
--static inline u32 jhash_2words(u32 a, u32 b, u32 initval)
-+static inline __u32 jhash_2words(__u32 a, __u32 b, __u32 initval)
- {
- 	return jhash_3words(a, b, 0, initval);
- }
- 
--static inline u32 jhash_1word(u32 a, u32 initval)
-+static inline __u32 jhash_1word(__u32 a, __u32 initval)
- {
- 	return jhash_3words(a, 0, 0, initval);
- }
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/jiffies.h linux-libc-headers-2.6.8.0/include/linux/jiffies.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/jiffies.h	2004-01-17 17:04:30.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/jiffies.h	2004-08-26 13:26:33.000000000 -0500
-@@ -12,15 +12,15 @@
-  * without sampling the sequence number in 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 -urN linux-libc-headers-2.6.8.0-dist/include/linux/kernel_stat.h linux-libc-headers-2.6.8.0/include/linux/kernel_stat.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/kernel_stat.h	2004-04-19 16:13:51.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/kernel_stat.h	2004-08-26 05:42:08.000000000 -0500
-@@ -12,13 +12,13 @@
-  */
- 
- struct cpu_usage_stat {
--	u64 user;
--	u64 nice;
--	u64 system;
--	u64 softirq;
--	u64 irq;
--	u64 idle;
--	u64 iowait;
-+	__u64 user;
-+	__u64 nice;
-+	__u64 system;
-+	__u64 softirq;
-+	__u64 irq;
-+	__u64 idle;
-+	__u64 iowait;
- };
- 
- struct kernel_stat {
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/libata.h linux-libc-headers-2.6.8.0/include/linux/libata.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/libata.h	2004-08-18 13:16:03.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/libata.h	2004-08-26 05:42:08.000000000 -0500
-@@ -160,7 +160,7 @@
- struct ata_queued_cmd;
- 
- /* typedefs */
--typedef int (*ata_qc_cb_t) (struct ata_queued_cmd *qc, u8 drv_stat);
-+typedef int (*ata_qc_cb_t) (struct ata_queued_cmd *qc, __u8 drv_stat);
- 
- struct ata_ioports {
- 	unsigned long		cmd_addr;
-@@ -246,18 +246,18 @@
- };
- 
- struct ata_device {
--	u64			n_sectors;	/* size of device, if ATA */
-+	__u64			n_sectors;	/* size of device, if ATA */
- 	unsigned long		flags;		/* ATA_DFLAG_xxx */
- 	unsigned int		class;		/* ATA_DEV_xxx */
- 	unsigned int		devno;		/* 0 or 1 */
--	u16			id[ATA_ID_WORDS]; /* IDENTIFY xxx DEVICE data */
-+	__u16			id[ATA_ID_WORDS]; /* IDENTIFY xxx DEVICE data */
- 	unsigned int		pio_mode;
- 	unsigned int		udma_mode;
- 
- 	/* cache info about current transfer mode */
--	u8			xfer_protocol;	/* taskfile xfer protocol */
--	u8			read_cmd;	/* opcode to use on read */
--	u8			write_cmd;	/* opcode to use on write */
-+	__u8			xfer_protocol;	/* taskfile xfer protocol */
-+	__u8			read_cmd;	/* opcode to use on read */
-+	__u8			write_cmd;	/* opcode to use on write */
- };
- 
- struct ata_port {
-@@ -272,8 +272,8 @@
- 
- 	struct ata_ioports	ioaddr;	/* ATA cmd/ctl/dma register blocks */
- 
--	u8			ctl;	/* cache of ATA control register */
--	u8			last_ctl;	/* Cache last written value */
-+	__u8			ctl;	/* cache of ATA control register */
-+	__u8			last_ctl;	/* Cache last written value */
- 	unsigned int		bus_state;
- 	unsigned int		port_state;
- 	unsigned int		pio_mask;
-@@ -312,7 +312,7 @@
- 	void (*tf_read) (struct ata_port *ap, struct ata_taskfile *tf);
- 
- 	void (*exec_command)(struct ata_port *ap, struct ata_taskfile *tf);
--	u8   (*check_status)(struct ata_port *ap);
-+	__u8   (*check_status)(struct ata_port *ap);
- 
- 	void (*phy_reset) (struct ata_port *ap);
- 	void (*post_set_mode) (struct ata_port *ap);
-@@ -328,9 +328,9 @@
- 	irqreturn_t (*irq_handler)(int, void *, struct pt_regs *);
- 	void (*irq_clear) (struct ata_port *);
- 
--	u32 (*scr_read) (struct ata_port *ap, unsigned int sc_reg);
-+	__u32 (*scr_read) (struct ata_port *ap, unsigned int sc_reg);
- 	void (*scr_write) (struct ata_port *ap, unsigned int sc_reg,
--			   u32 val);
-+			   __u32 val);
- 
- 	int (*port_start) (struct ata_port *ap);
- 	void (*port_stop) (struct ata_port *ap);
-@@ -374,10 +374,10 @@
- extern void ata_tf_load_mmio(struct ata_port *ap, struct ata_taskfile *tf);
- extern void ata_tf_read_pio(struct ata_port *ap, struct ata_taskfile *tf);
- extern void ata_tf_read_mmio(struct ata_port *ap, struct ata_taskfile *tf);
--extern void ata_tf_to_fis(struct ata_taskfile *tf, u8 *fis, u8 pmp);
--extern void ata_tf_from_fis(u8 *fis, struct ata_taskfile *tf);
--extern u8 ata_check_status_pio(struct ata_port *ap);
--extern u8 ata_check_status_mmio(struct ata_port *ap);
-+extern void ata_tf_to_fis(struct ata_taskfile *tf, __u8 *fis, __u8 pmp);
-+extern void ata_tf_from_fis(__u8 *fis, struct ata_taskfile *tf);
-+extern __u8 ata_check_status_pio(struct ata_port *ap);
-+extern __u8 ata_check_status_mmio(struct ata_port *ap);
- extern void ata_exec_command_pio(struct ata_port *ap, struct ata_taskfile *tf);
- extern void ata_exec_command_mmio(struct ata_port *ap, struct ata_taskfile *tf);
- extern int ata_port_start (struct ata_port *ap);
-@@ -397,7 +397,7 @@
- extern void ata_bmdma_start_pio (struct ata_queued_cmd *qc);
- extern void ata_bmdma_irq_clear(struct ata_port *ap);
- extern int pci_test_config_bits(struct pci_dev *pdev, struct pci_bits *bits);
--extern void ata_qc_complete(struct ata_queued_cmd *qc, u8 drv_stat);
-+extern void ata_qc_complete(struct ata_queued_cmd *qc, __u8 drv_stat);
- extern void ata_eng_timeout(struct ata_port *ap);
- extern int ata_std_bios_param(struct scsi_device *sdev,
- 			      struct block_device *bdev,
-@@ -416,7 +416,7 @@
- 		(dev->class == ATA_DEV_ATAPI));
- }
- 
--static inline u8 ata_chk_err(struct ata_port *ap)
-+static inline __u8 ata_chk_err(struct ata_port *ap)
- {
- 	if (ap->flags & ATA_FLAG_MMIO) {
- 		return readb((void *) ap->ioaddr.error_addr);
-@@ -424,12 +424,12 @@
- 	return inb(ap->ioaddr.error_addr);
- }
- 
--static inline u8 ata_chk_status(struct ata_port *ap)
-+static inline __u8 ata_chk_status(struct ata_port *ap)
- {
- 	return ap->ops->check_status(ap);
- }
- 
--static inline u8 ata_altstatus(struct ata_port *ap)
-+static inline __u8 ata_altstatus(struct ata_port *ap)
- {
- 	if (ap->flags & ATA_FLAG_MMIO)
- 		return readb(ap->ioaddr.altstatus_addr);
-@@ -442,10 +442,10 @@
- 	ndelay(400);
- }
- 
--static inline u8 ata_busy_wait(struct ata_port *ap, unsigned int bits,
-+static inline __u8 ata_busy_wait(struct ata_port *ap, unsigned int bits,
- 			       unsigned int max)
- {
--	u8 status;
-+	__u8 status;
- 
- 	do {
- 		udelay(10);
-@@ -456,9 +456,9 @@
- 	return status;
- }
- 
--static inline u8 ata_wait_idle(struct ata_port *ap)
-+static inline __u8 ata_wait_idle(struct ata_port *ap)
- {
--	u8 status = ata_busy_wait(ap, ATA_BUSY | ATA_DRQ, 1000);
-+	__u8 status = ata_busy_wait(ap, ATA_BUSY | ATA_DRQ, 1000);
- 
- 	if (status & (ATA_BUSY | ATA_DRQ)) {
- 		unsigned long l = ap->ioaddr.status_addr;
-@@ -495,10 +495,10 @@
- 		tf->device = ATA_DEVICE_OBS | ATA_DEV1;
- }
- 
--static inline u8 ata_irq_on(struct ata_port *ap)
-+static inline __u8 ata_irq_on(struct ata_port *ap)
- {
- 	struct ata_ioports *ioaddr = &ap->ioaddr;
--	u8 tmp;
-+	__u8 tmp;
- 
- 	ap->ctl &= ~ATA_NIEN;
- 	ap->last_ctl = ap->ctl;
-@@ -514,10 +514,10 @@
- 	return tmp;
- }
- 
--static inline u8 ata_irq_ack(struct ata_port *ap, unsigned int chk_drq)
-+static inline __u8 ata_irq_ack(struct ata_port *ap, unsigned int chk_drq)
- {
- 	unsigned int bits = chk_drq ? ATA_BUSY | ATA_DRQ : ATA_BUSY;
--	u8 host_stat, post_stat, status;
-+	__u8 host_stat, post_stat, status;
- 
- 	status = ata_busy_wait(ap, bits, 1000);
- 	if (status & bits)
-@@ -545,12 +545,12 @@
- 	return status;
- }
- 
--static inline u32 scr_read(struct ata_port *ap, unsigned int reg)
-+static inline __u32 scr_read(struct ata_port *ap, unsigned int reg)
- {
- 	return ap->ops->scr_read(ap, reg);
- }
- 
--static inline void scr_write(struct ata_port *ap, unsigned int reg, u32 val)
-+static inline void scr_write(struct ata_port *ap, unsigned int reg, __u32 val)
- {
- 	ap->ops->scr_write(ap, reg, val);
- }
-@@ -589,9 +589,9 @@
- 	}
- }
- 
--static inline u8 ata_bmdma_status(struct ata_port *ap)
-+static inline __u8 ata_bmdma_status(struct ata_port *ap)
- {
--	u8 host_stat;
-+	__u8 host_stat;
- 	if (ap->flags & ATA_FLAG_MMIO) {
- 		void *mmio = (void *) ap->ioaddr.bmdma_addr;
- 		host_stat = readb(mmio + ATA_DMA_STATUS);
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/lockd/bind.h linux-libc-headers-2.6.8.0/include/linux/lockd/bind.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/lockd/bind.h	2003-12-15 12:46:58.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/lockd/bind.h	2004-08-26 05:42:08.000000000 -0500
-@@ -18,7 +18,7 @@
-  * This is the set of functions for lockd->nfsd communication
-  */
- struct nlmsvc_binding {
--	u32			(*fopen)(struct svc_rqst *,
-+	__u32			(*fopen)(struct svc_rqst *,
- 						struct nfs_fh *,
- 						struct file *);
- 	void			(*fclose)(struct file *);
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/lockd/nlm.h linux-libc-headers-2.6.8.0/include/linux/lockd/nlm.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/lockd/nlm.h	2004-01-17 17:04:34.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/lockd/nlm.h	2004-08-26 05:42:08.000000000 -0500
-@@ -11,8 +11,8 @@
- 
- 
- /* Maximum file offset in file_lock.fl_end */
--# define NLM_OFFSET_MAX		((s32) 0x7fffffff)
--# define NLM4_OFFSET_MAX	((s64) ((~(u64)0) >> 1))
-+# define NLM_OFFSET_MAX		((__s32) 0x7fffffff)
-+# define NLM4_OFFSET_MAX	((__s64) ((~(__u64)0) >> 1))
- 
- /* Return states for NLM */
- enum {
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/lockd/share.h linux-libc-headers-2.6.8.0/include/linux/lockd/share.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/lockd/share.h	2003-12-15 12:46:58.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/lockd/share.h	2004-08-26 13:26:43.000000000 -0500
-@@ -17,13 +17,13 @@
- 	struct nlm_host *	s_host;		/* client host */
- 	struct nlm_file *	s_file;		/* shared file */
- 	struct xdr_netobj	s_owner;	/* owner handle */
--	u32			s_access;	/* access mode */
--	u32			s_mode;		/* deny mode */
-+	__u32			s_access;	/* access mode */
-+	__u32			s_mode;		/* deny mode */
- };
- 
--u32	nlmsvc_share_file(struct nlm_host *, struct nlm_file *,
-+__u32	nlmsvc_share_file(struct nlm_host *, struct nlm_file *,
- 					       struct nlm_args *);
--u32	nlmsvc_unshare_file(struct nlm_host *, struct nlm_file *,
-+__u32	nlmsvc_unshare_file(struct nlm_host *, struct nlm_file *,
- 					       struct nlm_args *);
- int	nlmsvc_traverse_shares(struct nlm_host *, struct nlm_file *, int);
- 
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/lockd/sm_inter.h linux-libc-headers-2.6.8.0/include/linux/lockd/sm_inter.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/lockd/sm_inter.h	2003-12-15 12:46:58.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/lockd/sm_inter.h	2004-08-26 05:42:08.000000000 -0500
-@@ -24,23 +24,23 @@
-  * Arguments for all calls to statd
-  */
- struct nsm_args {
--	u32		addr;		/* remote address */
--	u32		prog;		/* RPC callback info */
--	u32		vers;
--	u32		proc;
--	u32		proto;		/* protocol (udp/tcp) plus server/client flag */
-+	__u32		addr;		/* remote address */
-+	__u32		prog;		/* RPC callback info */
-+	__u32		vers;
-+	__u32		proc;
-+	__u32		proto;		/* protocol (udp/tcp) plus server/client flag */
- };
- 
- /*
-  * Result returned by statd
-  */
- struct nsm_res {
--	u32		status;
--	u32		state;
-+	__u32		status;
-+	__u32		state;
- };
- 
- int		nsm_monitor(struct nlm_host *);
- int		nsm_unmonitor(struct nlm_host *);
--extern u32	nsm_local_state;
-+extern __u32	nsm_local_state;
- 
- #endif /* LINUX_LOCKD_SM_INTER_H */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/lockd/xdr.h linux-libc-headers-2.6.8.0/include/linux/lockd/xdr.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/lockd/xdr.h	2004-01-05 12:42:33.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/lockd/xdr.h	2004-08-26 05:42:08.000000000 -0500
-@@ -48,12 +48,12 @@
- struct nlm_args {
- 	struct nlm_cookie	cookie;
- 	struct nlm_lock		lock;
--	u32			block;
--	u32			reclaim;
--	u32			state;
--	u32			monitor;
--	u32			fsm_access;
--	u32			fsm_mode;
-+	__u32			block;
-+	__u32			reclaim;
-+	__u32			state;
-+	__u32			monitor;
-+	__u32			fsm_access;
-+	__u32			fsm_mode;
- };
- 
- typedef struct nlm_args nlm_args;
-@@ -63,7 +63,7 @@
-  */
- struct nlm_res {
- 	struct nlm_cookie	cookie;
--	u32			status;
-+	__u32			status;
- 	struct nlm_lock		lock;
- };
- 
-@@ -73,10 +73,10 @@
- struct nlm_reboot {
- 	char *		mon;
- 	int		len;
--	u32		state;
--	u32		addr;
--	u32		vers;
--	u32		proto;
-+	__u32		state;
-+	__u32		addr;
-+	__u32		vers;
-+	__u32		proto;
- };
- 
- /*
-@@ -84,24 +84,24 @@
-  */
- #define NLMSVC_XDRSIZE		sizeof(struct nlm_args)
- 
--int	nlmsvc_decode_testargs(struct svc_rqst *, u32 *, struct nlm_args *);
--int	nlmsvc_encode_testres(struct svc_rqst *, u32 *, struct nlm_res *);
--int	nlmsvc_decode_lockargs(struct svc_rqst *, u32 *, struct nlm_args *);
--int	nlmsvc_decode_cancargs(struct svc_rqst *, u32 *, struct nlm_args *);
--int	nlmsvc_decode_unlockargs(struct svc_rqst *, u32 *, struct nlm_args *);
--int	nlmsvc_encode_res(struct svc_rqst *, u32 *, struct nlm_res *);
--int	nlmsvc_decode_res(struct svc_rqst *, u32 *, struct nlm_res *);
--int	nlmsvc_encode_void(struct svc_rqst *, u32 *, void *);
--int	nlmsvc_decode_void(struct svc_rqst *, u32 *, void *);
--int	nlmsvc_decode_shareargs(struct svc_rqst *, u32 *, struct nlm_args *);
--int	nlmsvc_encode_shareres(struct svc_rqst *, u32 *, struct nlm_res *);
--int	nlmsvc_decode_notify(struct svc_rqst *, u32 *, struct nlm_args *);
--int	nlmsvc_decode_reboot(struct svc_rqst *, u32 *, struct nlm_reboot *);
-+int	nlmsvc_decode_testargs(struct svc_rqst *, __u32 *, struct nlm_args *);
-+int	nlmsvc_encode_testres(struct svc_rqst *, __u32 *, struct nlm_res *);
-+int	nlmsvc_decode_lockargs(struct svc_rqst *, __u32 *, struct nlm_args *);
-+int	nlmsvc_decode_cancargs(struct svc_rqst *, __u32 *, struct nlm_args *);
-+int	nlmsvc_decode_unlockargs(struct svc_rqst *, __u32 *, struct nlm_args *);
-+int	nlmsvc_encode_res(struct svc_rqst *, __u32 *, struct nlm_res *);
-+int	nlmsvc_decode_res(struct svc_rqst *, __u32 *, struct nlm_res *);
-+int	nlmsvc_encode_void(struct svc_rqst *, __u32 *, void *);
-+int	nlmsvc_decode_void(struct svc_rqst *, __u32 *, void *);
-+int	nlmsvc_decode_shareargs(struct svc_rqst *, __u32 *, struct nlm_args *);
-+int	nlmsvc_encode_shareres(struct svc_rqst *, __u32 *, struct nlm_res *);
-+int	nlmsvc_decode_notify(struct svc_rqst *, __u32 *, struct nlm_args *);
-+int	nlmsvc_decode_reboot(struct svc_rqst *, __u32 *, struct nlm_reboot *);
- /*
--int	nlmclt_encode_testargs(struct rpc_rqst *, u32 *, struct nlm_args *);
--int	nlmclt_encode_lockargs(struct rpc_rqst *, u32 *, struct nlm_args *);
--int	nlmclt_encode_cancargs(struct rpc_rqst *, u32 *, struct nlm_args *);
--int	nlmclt_encode_unlockargs(struct rpc_rqst *, u32 *, struct nlm_args *);
-+int	nlmclt_encode_testargs(struct rpc_rqst *, __u32 *, struct nlm_args *);
-+int	nlmclt_encode_lockargs(struct rpc_rqst *, __u32 *, struct nlm_args *);
-+int	nlmclt_encode_cancargs(struct rpc_rqst *, __u32 *, struct nlm_args *);
-+int	nlmclt_encode_unlockargs(struct rpc_rqst *, __u32 *, struct nlm_args *);
-  */
- 
- #endif /* LOCKD_XDR_H */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/lockd/xdr4.h linux-libc-headers-2.6.8.0/include/linux/lockd/xdr4.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/lockd/xdr4.h	2004-01-05 12:42:33.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/lockd/xdr4.h	2004-08-26 05:42:08.000000000 -0500
-@@ -22,24 +22,24 @@
- 
- 
- 
--int	nlm4svc_decode_testargs(struct svc_rqst *, u32 *, struct nlm_args *);
--int	nlm4svc_encode_testres(struct svc_rqst *, u32 *, struct nlm_res *);
--int	nlm4svc_decode_lockargs(struct svc_rqst *, u32 *, struct nlm_args *);
--int	nlm4svc_decode_cancargs(struct svc_rqst *, u32 *, struct nlm_args *);
--int	nlm4svc_decode_unlockargs(struct svc_rqst *, u32 *, struct nlm_args *);
--int	nlm4svc_encode_res(struct svc_rqst *, u32 *, struct nlm_res *);
--int	nlm4svc_decode_res(struct svc_rqst *, u32 *, struct nlm_res *);
--int	nlm4svc_encode_void(struct svc_rqst *, u32 *, void *);
--int	nlm4svc_decode_void(struct svc_rqst *, u32 *, void *);
--int	nlm4svc_decode_shareargs(struct svc_rqst *, u32 *, struct nlm_args *);
--int	nlm4svc_encode_shareres(struct svc_rqst *, u32 *, struct nlm_res *);
--int	nlm4svc_decode_notify(struct svc_rqst *, u32 *, struct nlm_args *);
--int	nlm4svc_decode_reboot(struct svc_rqst *, u32 *, struct nlm_reboot *);
-+int	nlm4svc_decode_testargs(struct svc_rqst *, __u32 *, struct nlm_args *);
-+int	nlm4svc_encode_testres(struct svc_rqst *, __u32 *, struct nlm_res *);
-+int	nlm4svc_decode_lockargs(struct svc_rqst *, __u32 *, struct nlm_args *);
-+int	nlm4svc_decode_cancargs(struct svc_rqst *, __u32 *, struct nlm_args *);
-+int	nlm4svc_decode_unlockargs(struct svc_rqst *, __u32 *, struct nlm_args *);
-+int	nlm4svc_encode_res(struct svc_rqst *, __u32 *, struct nlm_res *);
-+int	nlm4svc_decode_res(struct svc_rqst *, __u32 *, struct nlm_res *);
-+int	nlm4svc_encode_void(struct svc_rqst *, __u32 *, void *);
-+int	nlm4svc_decode_void(struct svc_rqst *, __u32 *, void *);
-+int	nlm4svc_decode_shareargs(struct svc_rqst *, __u32 *, struct nlm_args *);
-+int	nlm4svc_encode_shareres(struct svc_rqst *, __u32 *, struct nlm_res *);
-+int	nlm4svc_decode_notify(struct svc_rqst *, __u32 *, struct nlm_args *);
-+int	nlm4svc_decode_reboot(struct svc_rqst *, __u32 *, struct nlm_reboot *);
- /*
--int	nlmclt_encode_testargs(struct rpc_rqst *, u32 *, struct nlm_args *);
--int	nlmclt_encode_lockargs(struct rpc_rqst *, u32 *, struct nlm_args *);
--int	nlmclt_encode_cancargs(struct rpc_rqst *, u32 *, struct nlm_args *);
--int	nlmclt_encode_unlockargs(struct rpc_rqst *, u32 *, struct nlm_args *);
-+int	nlmclt_encode_testargs(struct rpc_rqst *, __u32 *, struct nlm_args *);
-+int	nlmclt_encode_lockargs(struct rpc_rqst *, __u32 *, struct nlm_args *);
-+int	nlmclt_encode_cancargs(struct rpc_rqst *, __u32 *, struct nlm_args *);
-+int	nlmclt_encode_unlockargs(struct rpc_rqst *, __u32 *, struct nlm_args *);
-  */
- 
- #endif /* LOCKD_XDR4_H */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/mca.h linux-libc-headers-2.6.8.0/include/linux/mca.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/mca.h	2004-08-18 13:16:03.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/mca.h	2004-08-26 05:42:08.000000000 -0500
-@@ -50,7 +50,7 @@
- };
- 
- struct mca_device {
--	u64			dma_mask;
-+	__u64			dma_mask;
- 	int			pos_id;
- 	int			slot;
- 
-@@ -91,7 +91,7 @@
- };
- 
- struct mca_bus {
--	u64			default_dma_mask;
-+	__u64			default_dma_mask;
- 	int			number;
- 	struct mca_bus_accessor_functions f;
- 	struct device		dev;
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/mii.h linux-libc-headers-2.6.8.0/include/linux/mii.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/mii.h	2004-06-23 16:52:55.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/mii.h	2004-08-26 05:42:08.000000000 -0500
-@@ -138,10 +138,10 @@
- 
- /* This structure is used in all SIOCxMIIxxx ioctl calls */
- struct mii_ioctl_data {
--	u16		phy_id;
--	u16		reg_num;
--	u16		val_in;
--	u16		val_out;
-+	__u16		phy_id;
-+	__u16		reg_num;
-+	__u16		val_in;
-+	__u16		val_out;
- };
- 
- 
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/mtd/map.h linux-libc-headers-2.6.8.0/include/linux/mtd/map.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/mtd/map.h	2004-08-18 13:16:06.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/mtd/map.h	2004-08-26 05:42:08.000000000 -0500
-@@ -36,20 +36,20 @@
- 	int buswidth; /* in octets */
- 
- #ifdef CONFIG_MTD_COMPLEX_MAPPINGS
--	u8 (*read8)(struct map_info *, unsigned long);
--	u16 (*read16)(struct map_info *, unsigned long);
--	u32 (*read32)(struct map_info *, unsigned long);  
--	u64 (*read64)(struct map_info *, unsigned long);  
-+	__u8 (*read8)(struct map_info *, unsigned long);
-+	__u16 (*read16)(struct map_info *, unsigned long);
-+	__u32 (*read32)(struct map_info *, unsigned long);  
-+	__u64 (*read64)(struct map_info *, unsigned long);  
- 	/* If it returned a 'long' I'd call it readl.
- 	 * It doesn't.
- 	 * I won't.
- 	 * dwmw2 */
- 	
- 	void (*copy_from)(struct map_info *, void *, unsigned long, ssize_t);
--	void (*write8)(struct map_info *, u8, unsigned long);
--	void (*write16)(struct map_info *, u16, unsigned long);
--	void (*write32)(struct map_info *, u32, unsigned long);
--	void (*write64)(struct map_info *, u64, unsigned long);
-+	void (*write8)(struct map_info *, __u8, unsigned long);
-+	void (*write16)(struct map_info *, __u16, unsigned long);
-+	void (*write32)(struct map_info *, __u32, unsigned long);
-+	void (*write64)(struct map_info *, __u64, unsigned long);
- 	void (*copy_to)(struct map_info *, unsigned long, const void *, ssize_t);
- 
- 	/* We can perhaps put in 'point' and 'unpoint' methods, if we really
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/mtd/nand.h linux-libc-headers-2.6.8.0/include/linux/mtd/nand.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/mtd/nand.h	2004-08-18 13:16:06.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/mtd/nand.h	2004-08-26 05:42:08.000000000 -0500
-@@ -271,8 +271,8 @@
- 	
- 	u_char		(*read_byte)(struct mtd_info *mtd);
- 	void		(*write_byte)(struct mtd_info *mtd, u_char byte);
--	u16		(*read_word)(struct mtd_info *mtd);
--	void		(*write_word)(struct mtd_info *mtd, u16 word);
-+	__u16		(*read_word)(struct mtd_info *mtd);
-+	void		(*write_word)(struct mtd_info *mtd, __u16 word);
- 	
- 	void		(*write_buf)(struct mtd_info *mtd, const u_char *buf, int len);
- 	void		(*read_buf)(struct mtd_info *mtd, u_char *buf, int len);
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/mtd/pmc551.h linux-libc-headers-2.6.8.0/include/linux/mtd/pmc551.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/mtd/pmc551.h	2004-03-28 07:52:13.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/mtd/pmc551.h	2004-08-26 05:42:08.000000000 -0500
-@@ -25,9 +25,9 @@
- struct mypriv {
-         struct pci_dev *dev;
-         u_char *start;
--        u32    base_map0;
--        u32    curr_map0;
--        u32    asize;
-+        __u32    base_map0;
-+        __u32    curr_map0;
-+        __u32    asize;
- 	struct mtd_info *nextpmc551;
- };                       
- 
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/nbd.h linux-libc-headers-2.6.8.0/include/linux/nbd.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/nbd.h	2004-03-28 07:52:09.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/nbd.h	2004-08-26 05:42:08.000000000 -0500
-@@ -45,11 +45,11 @@
-  * server. All data are in network byte order.
-  */
- struct nbd_request {
--	u32 magic;
--	u32 type;	/* == READ || == WRITE 	*/
-+	__u32 magic;
-+	__u32 type;	/* == READ || == WRITE 	*/
- 	char handle[8];
--	u64 from;
--	u32 len;
-+	__u64 from;
-+	__u32 len;
- }
- #ifdef __GNUC__
- 	__attribute__ ((packed))
-@@ -61,8 +61,8 @@
-  * it has completed an I/O request (or an error occurs).
-  */
- struct nbd_reply {
--	u32 magic;
--	u32 error;		/* 0 = ok, else error	*/
-+	__u32 magic;
-+	__u32 error;		/* 0 = ok, else error	*/
- 	char handle[8];		/* handle you got from request	*/
- };
- #endif
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/nfs_fs_i.h linux-libc-headers-2.6.8.0/include/linux/nfs_fs_i.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/nfs_fs_i.h	2004-01-17 17:04:31.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/nfs_fs_i.h	2004-08-26 05:42:08.000000000 -0500
-@@ -8,8 +8,8 @@
-  * NFS lock info
-  */
- struct nfs_lock_info {
--	u32		state;
--	u32		flags;
-+	__u32		state;
-+	__u32		flags;
- 	struct nlm_host	*host;
- };
- 
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/nfs_fs_sb.h linux-libc-headers-2.6.8.0/include/linux/nfs_fs_sb.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/nfs_fs_sb.h	2004-06-09 07:00:50.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/nfs_fs_sb.h	2004-08-26 05:42:08.000000000 -0500
-@@ -37,10 +37,10 @@
- 	struct list_head	nfs4_siblings;	/* List of other nfs_server structs
- 						 * that share the same clientid
- 						 */
--	u32			attr_bitmask[2];/* V4 bitmask representing the set
-+	__u32			attr_bitmask[2];/* V4 bitmask representing the set
- 						   of attributes supported on this
- 						   filesystem */
--	u32			acl_bitmask;	/* V4 bitmask representing the ACEs
-+	__u32			acl_bitmask;	/* V4 bitmask representing the ACEs
- 						   that are supported on this
- 						   filesystem */
- #endif
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/nfs_xdr.h linux-libc-headers-2.6.8.0/include/linux/nfs_xdr.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/nfs_xdr.h	2004-06-09 07:00:50.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/nfs_xdr.h	2004-08-26 05:42:08.000000000 -0500
-@@ -90,9 +90,9 @@
- };
- 
- struct nfs4_change_info {
--	u32			atomic;
--	u64			before;
--	u64			after;
-+	__u32			atomic;
-+	__u64			before;
-+	__u64			after;
- };
- 
- /*
-@@ -112,7 +112,7 @@
- 	} u;
- 	const struct qstr *	name;
- 	const struct nfs_server *server;	 /* Needed for ID mapping */
--	const u32 *		bitmask;
-+	const __u32 *		bitmask;
- };
- 
- struct nfs_openres {
-@@ -168,7 +168,7 @@
-  *   */
- struct nfs_lowner {
- 	__u64           clientid;
--	u32                     id;
-+	__u32                     id;
- };
- 
- struct nfs_open_to_lock {
-@@ -328,7 +328,7 @@
- 	nfs4_stateid                    stateid;
- 	struct iattr *                  iap;
- 	const struct nfs_server *	server; /* Needed for name mapping */
--	const u32 *			bitmask;
-+	const __u32 *			bitmask;
- };
- 
- struct nfs_setattrres {
-@@ -482,32 +482,32 @@
- 
- #ifdef CONFIG_NFS_V4
- 
--typedef u64 clientid4;
-+typedef __u64 clientid4;
- 
- struct nfs4_accessargs {
- 	const struct nfs_fh *		fh;
--	u32				access;
-+	__u32				access;
- };
- 
- struct nfs4_accessres {
--	u32				supported;
--	u32				access;
-+	__u32				supported;
-+	__u32				access;
- };
- 
- struct nfs4_create_arg {
--	u32				ftype;
-+	__u32				ftype;
- 	union {
- 		struct qstr *		symlink;    /* NF4LNK */
- 		struct {
--			u32		specdata1;
--			u32		specdata2;
-+			__u32		specdata1;
-+			__u32		specdata2;
- 		} device;    /* NF4BLK, NF4CHR */
- 	} u;
- 	const struct qstr *		name;
- 	const struct nfs_server *	server;
- 	const struct iattr *		attrs;
- 	const struct nfs_fh *		dir_fh;
--	const u32 *			bitmask;
-+	const __u32 *			bitmask;
- };
- 
- struct nfs4_create_res {
-@@ -519,12 +519,12 @@
- 
- struct nfs4_fsinfo_arg {
- 	const struct nfs_fh *		fh;
--	const u32 *			bitmask;
-+	const __u32 *			bitmask;
- };
- 
- struct nfs4_getattr_arg {
- 	const struct nfs_fh *		fh;
--	const u32 *			bitmask;
-+	const __u32 *			bitmask;
- };
- 
- struct nfs4_getattr_res {
-@@ -541,7 +541,7 @@
- struct nfs4_lookup_arg {
- 	const struct nfs_fh *		dir_fh;
- 	const struct qstr *		name;
--	const u32 *			bitmask;
-+	const __u32 *			bitmask;
- };
- 
- struct nfs4_lookup_res {
-@@ -551,19 +551,19 @@
- };
- 
- struct nfs4_lookup_root_arg {
--	const u32 *			bitmask;
-+	const __u32 *			bitmask;
- };
- 
- struct nfs4_pathconf_arg {
- 	const struct nfs_fh *		fh;
--	const u32 *			bitmask;
-+	const __u32 *			bitmask;
- };
- 
- struct nfs4_readdir_arg {
- 	const struct nfs_fh *		fh;
--	u64				cookie;
-+	__u64				cookie;
- 	nfs4_verifier			verifier;
--	u32				count;
-+	__u32				count;
- 	struct page **			pages;	/* zero-copy data */
- 	unsigned int			pgbase;	/* zero-copy data */
- };
-@@ -575,7 +575,7 @@
- 
- struct nfs4_readlink {
- 	const struct nfs_fh *		fh;
--	u32				count;   /* zero-copy data */
-+	__u32				count;   /* zero-copy data */
- 	struct page **			pages;   /* zero-copy data */
- };
- 
-@@ -599,23 +599,23 @@
- struct nfs4_setclientid {
- 	nfs4_verifier			sc_verifier;      /* request */
- 	char *				sc_name;	  /* request */
--	u32				sc_prog;          /* request */
-+	__u32				sc_prog;          /* request */
- 	char				sc_netid[4];	  /* request */
- 	char				sc_uaddr[24];     /* request */
--	u32				sc_cb_ident;      /* request */
-+	__u32				sc_cb_ident;      /* request */
- 	struct nfs4_client *		sc_state;	  /* response */
- };
- 
- struct nfs4_statfs_arg {
- 	const struct nfs_fh *		fh;
--	const u32 *			bitmask;
-+	const __u32 *			bitmask;
- };
- 
- struct nfs4_server_caps_res {
--	u32				attr_bitmask[2];
--	u32				acl_bitmask;
--	u32				has_links;
--	u32				has_symlinks;
-+	__u32				attr_bitmask[2];
-+	__u32				acl_bitmask;
-+	__u32				has_links;
-+	__u32				has_symlinks;
- };
- 
- #endif /* CONFIG_NFS_V4 */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/nfsd/state.h linux-libc-headers-2.6.8.0/include/linux/nfsd/state.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/nfsd/state.h	2004-08-18 13:16:07.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/nfsd/state.h	2004-08-26 05:42:08.000000000 -0500
-@@ -41,18 +41,18 @@
- 
- #define NFS4_OPAQUE_LIMIT 1024
- typedef struct {
--	u32             cl_boot;
--	u32             cl_id;
-+	__u32             cl_boot;
-+	__u32             cl_id;
- } clientid_t;
- 
- typedef struct {
--	u32             so_boot;
--	u32             so_stateownerid;
--	u32             so_fileid;
-+	__u32             so_boot;
-+	__u32             so_stateownerid;
-+	__u32             so_fileid;
- } stateid_opaque_t;
- 
- typedef struct {
--	u32                     si_generation;
-+	__u32                     si_generation;
- 	stateid_opaque_t        si_opaque;
- } stateid_t;
- #define si_boot           si_opaque.so_boot
-@@ -68,14 +68,14 @@
- /* client delegation callback info */
- struct nfs4_callback {
- 	/* SETCLIENTID info */
--	u32			cb_parsed;  /* addr parsed */
--	u32                     cb_addr;
-+	__u32			cb_parsed;  /* addr parsed */
-+	__u32                     cb_addr;
- 	unsigned short          cb_port;
--	u32                     cb_prog;
--	u32                     cb_ident;
-+	__u32                     cb_prog;
-+	__u32                     cb_ident;
- 	struct xdr_netobj	cb_netid;
- 	/* RPC client info */
--	u32			cb_set;     /* successful CB_NULL call */
-+	__u32			cb_set;     /* successful CB_NULL call */
- 	struct rpc_program      cb_program;
- 	struct rpc_stat         cb_stat;
- 	struct rpc_clnt *       cb_client;
-@@ -99,7 +99,7 @@
- 	struct xdr_netobj	cl_name; 	/* id generated by client */
- 	nfs4_verifier		cl_verifier; 	/* generated by client */
- 	time_t                  cl_time;        /* time of last lease renewal */
--	u32			cl_addr; 	/* client ipaddress */
-+	__u32			cl_addr; 	/* client ipaddress */
- 	struct svc_cred		cl_cred; 	/* setclientid principal */
- 	clientid_t		cl_clientid;	/* generated by server */
- 	nfs4_verifier		cl_confirm;	/* generated by server */
-@@ -116,7 +116,7 @@
- 	struct list_head	cr_strhash;	/* hash by cr_name */
- 	struct xdr_netobj 	cr_name; 	/* id generated by client */
- 	time_t			cr_first_state; /* first state aquisition */
--	u32			cr_expired;     /* boolean: lease expired? */
-+	__u32			cr_expired;     /* boolean: lease expired? */
- };
- 
- static inline void
-@@ -139,7 +139,7 @@
-  * is cached. 
-  */
- struct nfs4_replay {
--	u32			rp_status;
-+	__u32			rp_status;
- 	unsigned int		rp_buflen;
- 	char			*rp_buf;
- 	unsigned		intrp_allocated;
-@@ -175,9 +175,9 @@
- 	struct list_head	so_close_lru; /* tail queue */
- 	time_t			so_time; /* time of placement on so_close_lru */
- 	int			so_is_open_owner; /* 1=openowner,0=lockowner */
--	u32                     so_id;
-+	__u32                     so_id;
- 	struct nfs4_client *    so_client;
--	u32                     so_seqid;    
-+	__u32                     so_seqid;    
- 	struct xdr_netobj       so_owner;     /* open owner name */
- 	int                     so_confirmed; /* successful OPEN_CONFIRM? */
- 	struct nfs4_replay	so_replay;
-@@ -192,7 +192,7 @@
- 	struct list_head        fi_hash;    /* hash by "struct inode *" */
- 	struct list_head        fi_perfile; /* list: nfs4_stateid */
- 	struct inode		*fi_inode;
--	u32                     fi_id;      /* used with stateowner->so_id 
-+	__u32                     fi_id;      /* used with stateowner->so_id 
- 					     * for stateid_hashtbl hash */
- };
- 
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/nfsd/xdr.h linux-libc-headers-2.6.8.0/include/linux/nfsd/xdr.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/nfsd/xdr.h	2004-08-18 13:16:07.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/nfsd/xdr.h	2004-08-26 05:42:08.000000000 -0500
-@@ -83,7 +83,7 @@
- 	struct svc_fh		fh;
- 	__u32			cookie;
- 	__u32			count;
--	u32 *			buffer;
-+	__u32 *			buffer;
- };
- 
- struct nfsd_attrstat {
-@@ -107,9 +107,9 @@
- 	int			count;
- 
- 	struct readdir_cd	common;
--	u32 *			buffer;
-+	__u32 *			buffer;
- 	int			buflen;
--	u32 *			offset;
-+	__u32 *			offset;
- };
- 
- struct nfsd_statfsres {
-@@ -134,39 +134,39 @@
- #define NFS2_SVC_XDRSIZE	sizeof(union nfsd_xdrstore)
- 
- 
--int nfssvc_decode_void(struct svc_rqst *, u32 *, void *);
--int nfssvc_decode_fhandle(struct svc_rqst *, u32 *, struct nfsd_fhandle *);
--int nfssvc_decode_sattrargs(struct svc_rqst *, u32 *,
-+int nfssvc_decode_void(struct svc_rqst *, __u32 *, void *);
-+int nfssvc_decode_fhandle(struct svc_rqst *, __u32 *, struct nfsd_fhandle *);
-+int nfssvc_decode_sattrargs(struct svc_rqst *, __u32 *,
- 				struct nfsd_sattrargs *);
--int nfssvc_decode_diropargs(struct svc_rqst *, u32 *,
-+int nfssvc_decode_diropargs(struct svc_rqst *, __u32 *,
- 				struct nfsd_diropargs *);
--int nfssvc_decode_readargs(struct svc_rqst *, u32 *,
-+int nfssvc_decode_readargs(struct svc_rqst *, __u32 *,
- 				struct nfsd_readargs *);
--int nfssvc_decode_writeargs(struct svc_rqst *, u32 *,
-+int nfssvc_decode_writeargs(struct svc_rqst *, __u32 *,
- 				struct nfsd_writeargs *);
--int nfssvc_decode_createargs(struct svc_rqst *, u32 *,
-+int nfssvc_decode_createargs(struct svc_rqst *, __u32 *,
- 				struct nfsd_createargs *);
--int nfssvc_decode_renameargs(struct svc_rqst *, u32 *,
-+int nfssvc_decode_renameargs(struct svc_rqst *, __u32 *,
- 				struct nfsd_renameargs *);
--int nfssvc_decode_readlinkargs(struct svc_rqst *, u32 *,
-+int nfssvc_decode_readlinkargs(struct svc_rqst *, __u32 *,
- 				struct nfsd_readlinkargs *);
--int nfssvc_decode_linkargs(struct svc_rqst *, u32 *,
-+int nfssvc_decode_linkargs(struct svc_rqst *, __u32 *,
- 				struct nfsd_linkargs *);
--int nfssvc_decode_symlinkargs(struct svc_rqst *, u32 *,
-+int nfssvc_decode_symlinkargs(struct svc_rqst *, __u32 *,
- 				struct nfsd_symlinkargs *);
--int nfssvc_decode_readdirargs(struct svc_rqst *, u32 *,
-+int nfssvc_decode_readdirargs(struct svc_rqst *, __u32 *,
- 				struct nfsd_readdirargs *);
--int nfssvc_encode_void(struct svc_rqst *, u32 *, void *);
--int nfssvc_encode_attrstat(struct svc_rqst *, u32 *, struct nfsd_attrstat *);
--int nfssvc_encode_diropres(struct svc_rqst *, u32 *, struct nfsd_diropres *);
--int nfssvc_encode_readlinkres(struct svc_rqst *, u32 *, struct nfsd_readlinkres *);
--int nfssvc_encode_readres(struct svc_rqst *, u32 *, struct nfsd_readres *);
--int nfssvc_encode_statfsres(struct svc_rqst *, u32 *, struct nfsd_statfsres *);
--int nfssvc_encode_readdirres(struct svc_rqst *, u32 *, struct nfsd_readdirres *);
-+int nfssvc_encode_void(struct svc_rqst *, __u32 *, void *);
-+int nfssvc_encode_attrstat(struct svc_rqst *, __u32 *, struct nfsd_attrstat *);
-+int nfssvc_encode_diropres(struct svc_rqst *, __u32 *, struct nfsd_diropres *);
-+int nfssvc_encode_readlinkres(struct svc_rqst *, __u32 *, struct nfsd_readlinkres *);
-+int nfssvc_encode_readres(struct svc_rqst *, __u32 *, struct nfsd_readres *);
-+int nfssvc_encode_statfsres(struct svc_rqst *, __u32 *, struct nfsd_statfsres *);
-+int nfssvc_encode_readdirres(struct svc_rqst *, __u32 *, struct nfsd_readdirres *);
- 
- int nfssvc_encode_entry(struct readdir_cd *, const char *name,
- 				int namlen, loff_t offset, ino_t ino, unsigned int);
- 
--int nfssvc_release_fhandle(struct svc_rqst *, u32 *, struct nfsd_fhandle *);
-+int nfssvc_release_fhandle(struct svc_rqst *, __u32 *, struct nfsd_fhandle *);
- 
- #endif /* LINUX_NFSD_H */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/nfsd/xdr3.h linux-libc-headers-2.6.8.0/include/linux/nfsd/xdr3.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/nfsd/xdr3.h	2004-08-18 13:16:07.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/nfsd/xdr3.h	2004-08-26 05:42:08.000000000 -0500
-@@ -101,7 +101,7 @@
- 	__u32			dircount;
- 	__u32			count;
- 	__u32 *			verf;
--	u32 *			buffer;
-+	__u32 *			buffer;
- };
- 
- struct nfsd3_commitargs {
-@@ -167,10 +167,10 @@
- 	__u32			verf[2];
- 
- 	struct readdir_cd	common;
--	u32 *			buffer;
-+	__u32 *			buffer;
- 	int			buflen;
--	u32 *			offset;
--	u32 *			offset1;
-+	__u32 *			offset;
-+	__u32 *			offset1;
- 	struct svc_rqst *	rqstp;
- 
- };
-@@ -245,70 +245,70 @@
- 
- #define NFS3_SVC_XDRSIZE		sizeof(union nfsd3_xdrstore)
- 
--int nfs3svc_decode_fhandle(struct svc_rqst *, u32 *, struct nfsd_fhandle *);
--int nfs3svc_decode_sattrargs(struct svc_rqst *, u32 *,
-+int nfs3svc_decode_fhandle(struct svc_rqst *, __u32 *, struct nfsd_fhandle *);
-+int nfs3svc_decode_sattrargs(struct svc_rqst *, __u32 *,
- 				struct nfsd3_sattrargs *);
--int nfs3svc_decode_diropargs(struct svc_rqst *, u32 *,
-+int nfs3svc_decode_diropargs(struct svc_rqst *, __u32 *,
- 				struct nfsd3_diropargs *);
--int nfs3svc_decode_accessargs(struct svc_rqst *, u32 *,
-+int nfs3svc_decode_accessargs(struct svc_rqst *, __u32 *,
- 				struct nfsd3_accessargs *);
--int nfs3svc_decode_readargs(struct svc_rqst *, u32 *,
-+int nfs3svc_decode_readargs(struct svc_rqst *, __u32 *,
- 				struct nfsd3_readargs *);
--int nfs3svc_decode_writeargs(struct svc_rqst *, u32 *,
-+int nfs3svc_decode_writeargs(struct svc_rqst *, __u32 *,
- 				struct nfsd3_writeargs *);
--int nfs3svc_decode_createargs(struct svc_rqst *, u32 *,
-+int nfs3svc_decode_createargs(struct svc_rqst *, __u32 *,
- 				struct nfsd3_createargs *);
--int nfs3svc_decode_mkdirargs(struct svc_rqst *, u32 *,
-+int nfs3svc_decode_mkdirargs(struct svc_rqst *, __u32 *,
- 				struct nfsd3_createargs *);
--int nfs3svc_decode_mknodargs(struct svc_rqst *, u32 *,
-+int nfs3svc_decode_mknodargs(struct svc_rqst *, __u32 *,
- 				struct nfsd3_mknodargs *);
--int nfs3svc_decode_renameargs(struct svc_rqst *, u32 *,
-+int nfs3svc_decode_renameargs(struct svc_rqst *, __u32 *,
- 				struct nfsd3_renameargs *);
--int nfs3svc_decode_readlinkargs(struct svc_rqst *, u32 *,
-+int nfs3svc_decode_readlinkargs(struct svc_rqst *, __u32 *,
- 				struct nfsd3_readlinkargs *);
--int nfs3svc_decode_linkargs(struct svc_rqst *, u32 *,
-+int nfs3svc_decode_linkargs(struct svc_rqst *, __u32 *,
- 				struct nfsd3_linkargs *);
--int nfs3svc_decode_symlinkargs(struct svc_rqst *, u32 *,
-+int nfs3svc_decode_symlinkargs(struct svc_rqst *, __u32 *,
- 				struct nfsd3_symlinkargs *);
--int nfs3svc_decode_readdirargs(struct svc_rqst *, u32 *,
-+int nfs3svc_decode_readdirargs(struct svc_rqst *, __u32 *,
- 				struct nfsd3_readdirargs *);
--int nfs3svc_decode_readdirplusargs(struct svc_rqst *, u32 *,
-+int nfs3svc_decode_readdirplusargs(struct svc_rqst *, __u32 *,
- 				struct nfsd3_readdirargs *);
--int nfs3svc_decode_commitargs(struct svc_rqst *, u32 *,
-+int nfs3svc_decode_commitargs(struct svc_rqst *, __u32 *,
- 				struct nfsd3_commitargs *);
--int nfs3svc_encode_voidres(struct svc_rqst *, u32 *, void *);
--int nfs3svc_encode_attrstat(struct svc_rqst *, u32 *,
-+int nfs3svc_encode_voidres(struct svc_rqst *, __u32 *, void *);
-+int nfs3svc_encode_attrstat(struct svc_rqst *, __u32 *,
- 				struct nfsd3_attrstat *);
--int nfs3svc_encode_wccstat(struct svc_rqst *, u32 *,
-+int nfs3svc_encode_wccstat(struct svc_rqst *, __u32 *,
- 				struct nfsd3_attrstat *);
--int nfs3svc_encode_diropres(struct svc_rqst *, u32 *,
-+int nfs3svc_encode_diropres(struct svc_rqst *, __u32 *,
- 				struct nfsd3_diropres *);
--int nfs3svc_encode_accessres(struct svc_rqst *, u32 *,
-+int nfs3svc_encode_accessres(struct svc_rqst *, __u32 *,
- 				struct nfsd3_accessres *);
--int nfs3svc_encode_readlinkres(struct svc_rqst *, u32 *,
-+int nfs3svc_encode_readlinkres(struct svc_rqst *, __u32 *,
- 				struct nfsd3_readlinkres *);
--int nfs3svc_encode_readres(struct svc_rqst *, u32 *, struct nfsd3_readres *);
--int nfs3svc_encode_writeres(struct svc_rqst *, u32 *, struct nfsd3_writeres *);
--int nfs3svc_encode_createres(struct svc_rqst *, u32 *,
-+int nfs3svc_encode_readres(struct svc_rqst *, __u32 *, struct nfsd3_readres *);
-+int nfs3svc_encode_writeres(struct svc_rqst *, __u32 *, struct nfsd3_writeres *);
-+int nfs3svc_encode_createres(struct svc_rqst *, __u32 *,
- 				struct nfsd3_diropres *);
--int nfs3svc_encode_renameres(struct svc_rqst *, u32 *,
-+int nfs3svc_encode_renameres(struct svc_rqst *, __u32 *,
- 				struct nfsd3_renameres *);
--int nfs3svc_encode_linkres(struct svc_rqst *, u32 *,
-+int nfs3svc_encode_linkres(struct svc_rqst *, __u32 *,
- 				struct nfsd3_linkres *);
--int nfs3svc_encode_readdirres(struct svc_rqst *, u32 *,
-+int nfs3svc_encode_readdirres(struct svc_rqst *, __u32 *,
- 				struct nfsd3_readdirres *);
--int nfs3svc_encode_fsstatres(struct svc_rqst *, u32 *,
-+int nfs3svc_encode_fsstatres(struct svc_rqst *, __u32 *,
- 				struct nfsd3_fsstatres *);
--int nfs3svc_encode_fsinfores(struct svc_rqst *, u32 *,
-+int nfs3svc_encode_fsinfores(struct svc_rqst *, __u32 *,
- 				struct nfsd3_fsinfores *);
--int nfs3svc_encode_pathconfres(struct svc_rqst *, u32 *,
-+int nfs3svc_encode_pathconfres(struct svc_rqst *, __u32 *,
- 				struct nfsd3_pathconfres *);
--int nfs3svc_encode_commitres(struct svc_rqst *, u32 *,
-+int nfs3svc_encode_commitres(struct svc_rqst *, __u32 *,
- 				struct nfsd3_commitres *);
- 
--int nfs3svc_release_fhandle(struct svc_rqst *, u32 *,
-+int nfs3svc_release_fhandle(struct svc_rqst *, __u32 *,
- 				struct nfsd3_attrstat *);
--int nfs3svc_release_fhandle2(struct svc_rqst *, u32 *,
-+int nfs3svc_release_fhandle2(struct svc_rqst *, __u32 *,
- 				struct nfsd3_fhandle_pair *);
- int nfs3svc_encode_entry(struct readdir_cd *, const char *name,
- 				int namlen, loff_t offset, ino_t ino,
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/nfsd/xdr4.h linux-libc-headers-2.6.8.0/include/linux/nfsd/xdr4.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/nfsd/xdr4.h	2004-08-18 13:16:07.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/nfsd/xdr4.h	2004-08-26 05:42:08.000000000 -0500
-@@ -42,9 +42,9 @@
- #define NFSD4_MAX_TAGLEN	128
- #define XDR_LEN(n)                     (((n) + 3) & ~3)
- 
--typedef u32 delegation_zero_t;
--typedef u32 delegation_boot_t;
--typedef u64 delegation_id_t;
-+typedef __u32 delegation_zero_t;
-+typedef __u32 delegation_boot_t;
-+typedef __u64 delegation_id_t;
- 
- typedef struct {
- 	delegation_zero_t	ds_zero;
-@@ -53,46 +53,46 @@
- } delegation_stateid_t;
- 
- struct nfsd4_change_info {
--	u32		atomic;
--	u32		before_ctime_sec;
--	u32		before_ctime_nsec;
--	u32		after_ctime_sec;
--	u32		after_ctime_nsec;
-+	__u32		atomic;
-+	__u32		before_ctime_sec;
-+	__u32		before_ctime_nsec;
-+	__u32		after_ctime_sec;
-+	__u32		after_ctime_nsec;
- };
- 
- struct nfsd4_access {
--	u32		ac_req_access;      /* request */
--	u32		ac_supported;       /* response */
--	u32		ac_resp_access;     /* response */
-+	__u32		ac_req_access;      /* request */
-+	__u32		ac_supported;       /* response */
-+	__u32		ac_resp_access;     /* response */
- };
- 
- struct nfsd4_close {
--	u32		cl_seqid;           /* request */
-+	__u32		cl_seqid;           /* request */
- 	stateid_t	cl_stateid;         /* request+response */
- 	struct nfs4_stateowner * cl_stateowner;	/* response */
- };
- 
- struct nfsd4_commit {
--	u64		co_offset;          /* request */
--	u32		co_count;           /* request */
-+	__u64		co_offset;          /* request */
-+	__u32		co_count;           /* request */
- 	nfs4_verifier	co_verf;            /* response */
- };
- 
- struct nfsd4_create {
--	u32		cr_namelen;         /* request */
-+	__u32		cr_namelen;         /* request */
- 	char *		cr_name;            /* request */
--	u32		cr_type;            /* request */
-+	__u32		cr_type;            /* request */
- 	union {                             /* request */
- 		struct {
--			u32 namelen;
-+			__u32 namelen;
- 			char *name;
- 		} link;   /* NF4LNK */
- 		struct {
--			u32 specdata1;
--			u32 specdata2;
-+			__u32 specdata1;
-+			__u32 specdata2;
- 		} dev;    /* NF4BLK, NF4CHR */
- 	} u;
--	u32		cr_bmval[2];        /* request */
-+	__u32		cr_bmval[2];        /* request */
- 	struct iattr	cr_iattr;           /* request */
- 	struct nfsd4_change_info  cr_cinfo; /* response */
- };
-@@ -102,41 +102,41 @@
- #define cr_specdata2	u.dev.specdata2
- 
- struct nfsd4_getattr {
--	u32		ga_bmval[2];        /* request */
-+	__u32		ga_bmval[2];        /* request */
- 	struct svc_fh	*ga_fhp;            /* response */
- };
- 
- struct nfsd4_link {
--	u32		li_namelen;         /* request */
-+	__u32		li_namelen;         /* request */
- 	char *		li_name;            /* request */
- 	struct nfsd4_change_info  li_cinfo; /* response */
- };
- 
- struct nfsd4_lock_denied {
- 	struct nfs4_stateowner   *ld_sop;
--	u64             ld_start;
--	u64             ld_length;
--	u32             ld_type;
-+	__u64             ld_start;
-+	__u64             ld_length;
-+	__u32             ld_type;
- };
- 
- struct nfsd4_lock {
- 	/* request */
--	u32             lk_type;
--	u32             lk_reclaim;         /* boolean */
--	u64             lk_offset;
--	u64             lk_length;
--	u32             lk_is_new;
-+	__u32             lk_type;
-+	__u32             lk_reclaim;         /* boolean */
-+	__u64             lk_offset;
-+	__u64             lk_length;
-+	__u32             lk_is_new;
- 	union {
- 		struct {
--			u32             open_seqid;
-+			__u32             open_seqid;
- 			stateid_t       open_stateid;
--			u32             lock_seqid;
-+			__u32             lock_seqid;
- 			clientid_t      clientid;
- 			struct xdr_netobj owner;
- 		} new;
- 		struct {
- 			stateid_t       lock_stateid;
--			u32             lock_seqid;
-+			__u32             lock_seqid;
- 		} old;
- 	} v;
- 
-@@ -164,56 +164,56 @@
- 
- 
- struct nfsd4_lockt {
--	u32				lt_type;
-+	__u32				lt_type;
- 	clientid_t			lt_clientid;
- 	struct xdr_netobj		lt_owner;
--	u64				lt_offset;
--	u64				lt_length;
-+	__u64				lt_offset;
-+	__u64				lt_length;
- 	struct nfs4_stateowner * 	lt_stateowner;
- 	struct nfsd4_lock_denied  	lt_denied;
- };
- 
-  
- struct nfsd4_locku {
--	u32             lu_type;
--	u32             lu_seqid;
-+	__u32             lu_type;
-+	__u32             lu_seqid;
- 	stateid_t       lu_stateid;
--	u64             lu_offset;
--	u64             lu_length;
-+	__u64             lu_offset;
-+	__u64             lu_length;
- 	struct nfs4_stateowner  *lu_stateowner;
- };
- 
- 
- struct nfsd4_lookup {
--	u32		lo_len;             /* request */
-+	__u32		lo_len;             /* request */
- 	char *		lo_name;            /* request */
- };
- 
- struct nfsd4_putfh {
--	u32		pf_fhlen;           /* request */
-+	__u32		pf_fhlen;           /* request */
- 	char		*pf_fhval;          /* request */
- };
- 
- struct nfsd4_open {
--	u32		op_claim_type;      /* request */
-+	__u32		op_claim_type;      /* request */
- 	struct xdr_netobj op_fname;	    /* request - everything but CLAIM_PREV */
--	u32		op_delegate_type;   /* request - CLAIM_PREV only */
-+	__u32		op_delegate_type;   /* request - CLAIM_PREV only */
- 	delegation_stateid_t	op_delegate_stateid; /* request - CLAIM_DELEGATE_CUR only */
--	u32		op_create;     	    /* request */
--	u32		op_createmode;      /* request */
--	u32		op_bmval[2];        /* request */
-+	__u32		op_create;     	    /* request */
-+	__u32		op_createmode;      /* request */
-+	__u32		op_bmval[2];        /* request */
- 	union {                             /* request */
- 		struct iattr	iattr;		            /* UNCHECKED4,GUARDED4 */
- 		nfs4_verifier	verf;		                     /* EXCLUSIVE4 */
- 	} u;
- 	clientid_t	op_clientid;        /* request */
- 	struct xdr_netobj op_owner;           /* request */
--	u32		op_seqid;           /* request */
--	u32		op_share_access;    /* request */
--	u32		op_share_deny;      /* request */
-+	__u32		op_seqid;           /* request */
-+	__u32		op_share_access;    /* request */
-+	__u32		op_share_deny;      /* request */
- 	stateid_t	op_stateid;         /* response */
- 	struct nfsd4_change_info  op_cinfo; /* response */
--	u32		op_rflags;          /* response */
-+	__u32		op_rflags;          /* response */
- 	int		op_truncate;        /* used during processing */
- 	struct nfs4_stateowner *op_stateowner; /* used during processing */
- 
-@@ -223,24 +223,24 @@
- 
- struct nfsd4_open_confirm {
- 	stateid_t	oc_req_stateid		/* request */;
--	u32		oc_seqid    		/* request */;
-+	__u32		oc_seqid    		/* request */;
- 	stateid_t	oc_resp_stateid		/* response */;
- 	struct nfs4_stateowner * oc_stateowner;	/* response */
- };
- 
- struct nfsd4_open_downgrade {
- 	stateid_t       od_stateid;
--	u32             od_seqid;
--	u32             od_share_access;
--	u32             od_share_deny;
-+	__u32             od_seqid;
-+	__u32             od_share_access;
-+	__u32             od_share_deny;
- 	struct nfs4_stateowner *od_stateowner;
- };
- 
- 
- struct nfsd4_read {
- 	stateid_t	rd_stateid;         /* request */
--	u64		rd_offset;          /* request */
--	u32		rd_length;          /* request */
-+	__u64		rd_offset;          /* request */
-+	__u32		rd_length;          /* request */
- 	struct kvec	rd_iov[RPCSVC_MAXPAGES];
- 	int		rd_vlen;
- 	
-@@ -249,18 +249,18 @@
- };
- 
- struct nfsd4_readdir {
--	u64		rd_cookie;          /* request */
-+	__u64		rd_cookie;          /* request */
- 	nfs4_verifier	rd_verf;            /* request */
--	u32		rd_dircount;        /* request */
--	u32		rd_maxcount;        /* request */
--	u32		rd_bmval[2];        /* request */
-+	__u32		rd_dircount;        /* request */
-+	__u32		rd_maxcount;        /* request */
-+	__u32		rd_bmval[2];        /* request */
- 	struct svc_rqst *rd_rqstp;          /* response */
- 	struct svc_fh * rd_fhp;             /* response */
- 
- 	struct readdir_cd	common;
--	u32 *			buffer;
-+	__u32 *			buffer;
- 	int			buflen;
--	u32 *			offset;
-+	__u32 *			offset;
- };
- 
- struct nfsd4_release_lockowner {
-@@ -273,15 +273,15 @@
- };
- 
- struct nfsd4_remove {
--	u32		rm_namelen;         /* request */
-+	__u32		rm_namelen;         /* request */
- 	char *		rm_name;            /* request */
- 	struct nfsd4_change_info  rm_cinfo; /* response */
- };
- 
- struct nfsd4_rename {
--	u32		rn_snamelen;        /* request */
-+	__u32		rn_snamelen;        /* request */
- 	char *		rn_sname;           /* request */
--	u32		rn_tnamelen;        /* request */
-+	__u32		rn_tnamelen;        /* request */
- 	char *		rn_tname;           /* request */
- 	struct nfsd4_change_info  rn_sinfo; /* response */
- 	struct nfsd4_change_info  rn_tinfo; /* response */
-@@ -289,20 +289,20 @@
- 
- struct nfsd4_setattr {
- 	stateid_t	sa_stateid;         /* request */
--	u32		sa_bmval[2];        /* request */
-+	__u32		sa_bmval[2];        /* request */
- 	struct iattr	sa_iattr;           /* request */
- };
- 
- struct nfsd4_setclientid {
- 	nfs4_verifier	se_verf;            /* request */
--	u32		se_namelen;         /* request */
-+	__u32		se_namelen;         /* request */
- 	char *		se_name;            /* request */
--	u32		se_callback_prog;   /* request */
--	u32		se_callback_netid_len;  /* request */
-+	__u32		se_callback_prog;   /* request */
-+	__u32		se_callback_netid_len;  /* request */
- 	char *		se_callback_netid_val;  /* request */
--	u32		se_callback_addr_len;   /* request */
-+	__u32		se_callback_addr_len;   /* request */
- 	char *		se_callback_addr_val;   /* request */
--	u32		se_callback_ident;  /* request */
-+	__u32		se_callback_ident;  /* request */
- 	clientid_t	se_clientid;        /* response */
- 	nfs4_verifier	se_confirm;         /* response */
- };
-@@ -314,21 +314,21 @@
- 
- /* also used for NVERIFY */
- struct nfsd4_verify {
--	u32		ve_bmval[2];        /* request */
--	u32		ve_attrlen;         /* request */
-+	__u32		ve_bmval[2];        /* request */
-+	__u32		ve_attrlen;         /* request */
- 	char *		ve_attrval;         /* request */
- };
- 
- struct nfsd4_write {
- 	stateid_t	wr_stateid;         /* request */
--	u64		wr_offset;          /* request */
--	u32		wr_stable_how;      /* request */
--	u32		wr_buflen;          /* request */
-+	__u64		wr_offset;          /* request */
-+	__u32		wr_stable_how;      /* request */
-+	__u32		wr_buflen;          /* request */
- 	struct kvec	wr_vec[RPCSVC_MAXPAGES]; /* request */
- 	int		wr_vlen;
- 
--	u32		wr_bytes_written;   /* response */
--	u32		wr_how_written;     /* response */
-+	__u32		wr_bytes_written;   /* response */
-+	__u32		wr_how_written;     /* response */
- 	nfs4_verifier	wr_verifier;        /* response */
- };
- 
-@@ -370,12 +370,12 @@
- 
- struct nfsd4_compoundargs {
- 	/* scratch variables for XDR decode */
--	u32 *				p;
--	u32 *				end;
-+	__u32 *				p;
-+	__u32 *				end;
- 	struct page **			pagelist;
- 	int				pagelen;
--	u32				tmp[8];
--	u32 *				tmpp;
-+	__u32				tmp[8];
-+	__u32 *				tmpp;
- 	struct tmpbuf {
- 		struct tmpbuf *next;
- 		void (*release)(const void *);
-@@ -384,25 +384,25 @@
- 
- 	struct svc_rqst			*rqstp;
- 
--	u32				taglen;
-+	__u32				taglen;
- 	char *				tag;
--	u32				minorversion;
--	u32				opcnt;
-+	__u32				minorversion;
-+	__u32				opcnt;
- 	struct nfsd4_op			*ops;
- 	struct nfsd4_op			iops[8];
- };
- 
- struct nfsd4_compoundres {
- 	/* scratch variables for XDR encode */
--	u32 *				p;
--	u32 *				end;
-+	__u32 *				p;
-+	__u32 *				end;
- 	struct xdr_buf *		xbuf;
- 	struct svc_rqst *		rqstp;
- 
--	u32				taglen;
-+	__u32				taglen;
- 	char *				tag;
--	u32				opcnt;
--	u32 *				tagp; /* where to encode tag and  opcount */
-+	__u32				opcnt;
-+	__u32 *				tagp; /* where to encode tag and  opcount */
- };
- 
- #define NFS4_SVC_XDRSIZE		sizeof(struct nfsd4_compoundargs)
-@@ -418,16 +418,16 @@
- 	cinfo->after_ctime_nsec = fhp->fh_post_ctime.tv_nsec;
- }
- 
--int nfs4svc_encode_voidres(struct svc_rqst *, u32 *, void *);
--int nfs4svc_decode_compoundargs(struct svc_rqst *, u32 *, 
-+int nfs4svc_encode_voidres(struct svc_rqst *, __u32 *, void *);
-+int nfs4svc_decode_compoundargs(struct svc_rqst *, __u32 *, 
- 		struct nfsd4_compoundargs *);
--int nfs4svc_encode_compoundres(struct svc_rqst *, u32 *, 
-+int nfs4svc_encode_compoundres(struct svc_rqst *, __u32 *, 
- 		struct nfsd4_compoundres *);
- void nfsd4_encode_operation(struct nfsd4_compoundres *, struct nfsd4_op *);
- void nfsd4_encode_replay(struct nfsd4_compoundres *resp, struct nfsd4_op *op);
- int nfsd4_encode_fattr(struct svc_fh *fhp, struct svc_export *exp,
--		       struct dentry *dentry, u32 *buffer, int *countp, 
--		       u32 *bmval, struct svc_rqst *);
-+		       struct dentry *dentry, __u32 *buffer, int *countp, 
-+		       __u32 *bmval, struct svc_rqst *);
- extern int nfsd4_setclientid(struct svc_rqst *rqstp, 
- 		struct nfsd4_setclientid *setclid);
- extern int nfsd4_setclientid_confirm(struct svc_rqst *rqstp, 
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/pmu.h linux-libc-headers-2.6.8.0/include/linux/pmu.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/pmu.h	2004-01-17 17:04:31.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/pmu.h	2004-08-26 05:42:08.000000000 -0500
-@@ -120,15 +120,15 @@
- 
- /* no param */
- #define PMU_IOC_SLEEP		_IO('B', 0)
--/* out param: u32*	backlight value: 0 to 15 */
-+/* out param: __u32*	backlight value: 0 to 15 */
- #define PMU_IOC_GET_BACKLIGHT	_IOR('B', 1, size_t)
--/* in param: u32	backlight value: 0 to 15 */
-+/* in param: __u32	backlight value: 0 to 15 */
- #define PMU_IOC_SET_BACKLIGHT	_IOW('B', 2, size_t)
--/* out param: u32*	PMU model */
-+/* out param: __u32*	PMU model */
- #define PMU_IOC_GET_MODEL	_IOR('B', 3, size_t)
--/* out param: u32*	has_adb: 0 or 1 */
-+/* out param: __u32*	has_adb: 0 or 1 */
- #define PMU_IOC_HAS_ADB		_IOR('B', 4, size_t) 
--/* out param: u32*	can_sleep: 0 or 1 */
-+/* out param: __u32*	can_sleep: 0 or 1 */
- #define PMU_IOC_CAN_SLEEP	_IOR('B', 5, size_t) 
- /* no param, but historically was _IOR('B', 6, 0), meaning 4 bytes */
- #define PMU_IOC_GRAB_BACKLIGHT	_IOR('B', 6, size_t) 
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/reiserfs_fs.h linux-libc-headers-2.6.8.0/include/linux/reiserfs_fs.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/reiserfs_fs.h	2004-08-18 13:16:04.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/reiserfs_fs.h	2004-08-26 13:26:06.000000000 -0500
-@@ -1821,7 +1821,7 @@
-  * to use for a new object underneat it.  The locality is returned
-  * in disk byte order (le).
-  */
--u32 reiserfs_choose_packing(struct inode *dir);
-+__u32 reiserfs_choose_packing(struct inode *dir);
- 
- int is_reusable (struct super_block * s, b_blocknr_t block, int bit_value);
- void reiserfs_free_block (struct reiserfs_transaction_handle *th, struct inode *, b_blocknr_t, int for_unformatted);
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/scx200_gpio.h linux-libc-headers-2.6.8.0/include/linux/scx200_gpio.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/scx200_gpio.h	2004-01-17 17:04:32.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/scx200_gpio.h	2004-08-26 13:26:01.000000000 -0500
-@@ -1,5 +1,5 @@
- 
--u32 scx200_gpio_configure(int index, u32 set, u32 clear);
-+__u32 scx200_gpio_configure(int index, __u32 set, __u32 clear);
- void scx200_gpio_dump(unsigned index);
- 
- extern unsigned scx200_gpio_base;
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/sdladrv.h linux-libc-headers-2.6.8.0/include/linux/sdladrv.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/sdladrv.h	2003-12-15 12:46:58.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/sdladrv.h	2004-08-26 05:42:08.000000000 -0500
-@@ -55,8 +55,8 @@
- extern int sdla_inten	(sdlahw_t* hw);
- extern int sdla_intde	(sdlahw_t* hw);
- extern int sdla_intack	(sdlahw_t* hw);
--extern void S514_intack  (sdlahw_t* hw, u32 int_status);
--extern void read_S514_int_stat (sdlahw_t* hw, u32* int_status);
-+extern void S514_intack  (sdlahw_t* hw, __u32 int_status);
-+extern void read_S514_int_stat (sdlahw_t* hw, __u32* int_status);
- extern int sdla_intr	(sdlahw_t* hw);
- extern int sdla_mapmem	(sdlahw_t* hw, unsigned long addr);
- extern int sdla_peek	(sdlahw_t* hw, unsigned long addr, void* buf,
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/selection.h linux-libc-headers-2.6.8.0/include/linux/selection.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/selection.h	2004-06-23 16:52:56.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/selection.h	2004-08-26 05:42:08.000000000 -0500
-@@ -32,14 +32,14 @@
- extern int default_blu[];
- 
- extern unsigned short *screen_pos(int currcons, int w_offset, int viewed);
--extern u16 screen_glyph(int currcons, int offset);
-+extern __u16 screen_glyph(int currcons, int offset);
- extern void complement_pos(int currcons, int offset);
- extern void invert_screen(int currcons, int offset, int count, int shift);
- 
- extern void getconsxy(int currcons, unsigned char *p);
- extern void putconsxy(int currcons, unsigned char *p);
- 
--extern u16 vcs_scr_readw(int currcons, const u16 *org);
--extern void vcs_scr_writew(int currcons, u16 val, u16 *org);
-+extern __u16 vcs_scr_readw(int currcons, const __u16 *org);
-+extern void vcs_scr_writew(int currcons, __u16 val, __u16 *org);
- 
- #endif
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/serialP.h linux-libc-headers-2.6.8.0/include/linux/serialP.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/serialP.h	2004-08-18 13:16:04.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/serialP.h	2004-08-26 05:42:08.000000000 -0500
-@@ -39,8 +39,8 @@
- 	int	xmit_fifo_size;
- 	int	custom_divisor;
- 	int	count;
--	u8	*iomem_base;
--	u16	iomem_reg_shift;
-+	__u8	*iomem_base;
-+	__u16	iomem_reg_shift;
- 	unsigned short	close_delay;
- 	unsigned short	closing_wait; /* time to wait before closing */
- 	struct async_icount	icount;	
-@@ -75,8 +75,8 @@
- 	int			blocked_open; /* # of blocked opens */
-  	struct circ_buf		xmit;
-  	spinlock_t		xmit_lock;
--	u8			*iomem_base;
--	u16			iomem_reg_shift;
-+	__u8			*iomem_base;
-+	__u16			iomem_reg_shift;
- 	int			io_type;
- 	struct work_struct			work;
- 	struct tasklet_struct	tlet;
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/sunrpc/clnt.h linux-libc-headers-2.6.8.0/include/linux/sunrpc/clnt.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/sunrpc/clnt.h	2004-02-29 10:36:05.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/sunrpc/clnt.h	2004-08-26 05:42:08.000000000 -0500
-@@ -36,7 +36,7 @@
- 	atomic_t		cl_users;	/* number of references */
- 	struct rpc_xprt *	cl_xprt;	/* transport */
- 	struct rpc_procinfo *	cl_procinfo;	/* procedure info */
--	u32			cl_maxproc;	/* max procedure number */
-+	__u32			cl_maxproc;	/* max procedure number */
- 
- 	char *			cl_server;	/* server machine name */
- 	char *			cl_protname;	/* protocol name */
-@@ -75,7 +75,7 @@
- #define RPC_MAXVERSION		4
- struct rpc_program {
- 	char *			name;		/* protocol name */
--	u32			number;		/* program number */
-+	__u32			number;		/* program number */
- 	unsigned int		nrvers;		/* number of versions */
- 	struct rpc_version **	version;	/* version array */
- 	struct rpc_stat *	stats;		/* statistics */
-@@ -83,7 +83,7 @@
- };
- 
- struct rpc_version {
--	u32			number;		/* version number */
-+	__u32			number;		/* version number */
- 	unsigned int		nrprocs;	/* number of procs */
- 	struct rpc_procinfo *	procs;		/* procedure array */
- };
-@@ -92,7 +92,7 @@
-  * Procedure information
-  */
- struct rpc_procinfo {
--	u32			p_proc;		/* RPC procedure number */
-+	__u32			p_proc;		/* RPC procedure number */
- 	kxdrproc_t		p_encode;	/* XDR encode function */
- 	kxdrproc_t		p_decode;	/* XDR decode function */
- 	unsigned int		p_bufsiz;	/* req. buffer size */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/sunrpc/gss_asn1.h linux-libc-headers-2.6.8.0/include/linux/sunrpc/gss_asn1.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/sunrpc/gss_asn1.h	2004-06-23 16:52:58.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/sunrpc/gss_asn1.h	2004-08-26 13:26:25.000000000 -0500
-@@ -64,14 +64,14 @@
-    (((o1)->len == (o2)->len) && \
-     (memcmp((o1)->data,(o2)->data,(int) (o1)->len) == 0))
- 
--u32 g_verify_token_header(
-+__u32 g_verify_token_header(
-      struct xdr_netobj *mech,
-      int *body_size,
-      unsigned char **buf_in,
-      int tok_type,
-      int toksize);
- 
--u32 g_get_mech_oid(struct xdr_netobj *mech, struct xdr_netobj * in_buf);
-+__u32 g_get_mech_oid(struct xdr_netobj *mech, struct xdr_netobj * in_buf);
- 
- int g_token_size(
-      struct xdr_netobj *mech,
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/sunrpc/gss_krb5.h linux-libc-headers-2.6.8.0/include/linux/sunrpc/gss_krb5.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/sunrpc/gss_krb5.h	2004-06-23 16:52:58.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/sunrpc/gss_krb5.h	2004-08-26 13:26:21.000000000 -0500
-@@ -46,8 +46,8 @@
- 	int			sealalg;
- 	struct crypto_tfm	*enc;
- 	struct crypto_tfm	*seq;
--	s32			endtime;
--	u32			seq_send;
-+	__s32			endtime;
-+	__u32			seq_send;
- 	struct xdr_netobj	mech_used;
- };
- 
-@@ -112,35 +112,35 @@
- #define ENCTYPE_DES3_CBC_SHA1   0x0010
- #define ENCTYPE_UNKNOWN         0x01ff
- 
--s32
--make_checksum(s32 cksumtype, char *header, int hdrlen, struct xdr_buf *body,
-+__s32
-+make_checksum(__s32 cksumtype, char *header, int hdrlen, struct xdr_buf *body,
- 		   struct xdr_netobj *cksum);
- 
--u32
-+__u32
- krb5_make_token(struct krb5_ctx *context_handle, int qop_req,
- 	struct xdr_buf *input_message_buffer,
- 	struct xdr_netobj *output_message_buffer, int toktype);
- 
--u32
-+__u32
- krb5_read_token(struct krb5_ctx *context_handle,
- 	  struct xdr_netobj *input_token_buffer,
- 	  struct xdr_buf *message_buffer,
- 	  int *qop_state, int toktype);
- 
--u32
-+__u32
- krb5_encrypt(struct crypto_tfm * key,
- 	     void *iv, void *in, void *out, int length);
- 
--u32
-+__u32
- krb5_decrypt(struct crypto_tfm * key,
- 	     void *iv, void *in, void *out, int length); 
- 
--s32
-+__s32
- krb5_make_seq_num(struct crypto_tfm * key,
- 		int direction,
--		s32 seqnum, unsigned char *cksum, unsigned char *buf);
-+		__s32 seqnum, unsigned char *cksum, unsigned char *buf);
- 
--s32
-+__s32
- krb5_get_seq_num(struct crypto_tfm * key,
- 	       unsigned char *cksum,
--	       unsigned char *buf, int *direction, s32 * seqnum);
-+	       unsigned char *buf, int *direction, __s32 * seqnum);
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/sunrpc/svc.h linux-libc-headers-2.6.8.0/include/linux/sunrpc/svc.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/sunrpc/svc.h	2004-08-18 13:16:07.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/sunrpc/svc.h	2004-08-26 05:42:08.000000000 -0500
-@@ -75,20 +75,20 @@
-  */
- #define RPCSVC_MAXPAGES		((RPCSVC_MAXPAYLOAD+PAGE_SIZE-1)/PAGE_SIZE + 2)
- 
--static inline u32 svc_getu32(struct kvec *iov)
-+static inline __u32 svc_getu32(struct kvec *iov)
- {
--	u32 val, *vp;
-+	__u32 val, *vp;
- 	vp = iov->iov_base;
- 	val = *vp++;
- 	iov->iov_base = (void*)vp;
--	iov->iov_len -= sizeof(u32);
-+	iov->iov_len -= sizeof(__u32);
- 	return val;
- }
--static inline void svc_putu32(struct kvec *iov, u32 val)
-+static inline void svc_putu32(struct kvec *iov, __u32 val)
- {
--	u32 *vp = iov->iov_base + iov->iov_len;
-+	__u32 *vp = iov->iov_base + iov->iov_len;
- 	*vp = val;
--	iov->iov_len += sizeof(u32);
-+	iov->iov_len += sizeof(__u32);
- }
- 
- 	
-@@ -119,11 +119,11 @@
- 	short			rq_arghi;	/* pages available in argument page list */
- 	short			rq_resused;	/* pages used for result */
- 
--	u32			rq_xid;		/* transmission id */
--	u32			rq_prog;	/* program number */
--	u32			rq_vers;	/* program version */
--	u32			rq_proc;	/* procedure number */
--	u32			rq_prot;	/* IP protocol */
-+	__u32			rq_xid;		/* transmission id */
-+	__u32			rq_prog;	/* program number */
-+	__u32			rq_vers;	/* program version */
-+	__u32			rq_proc;	/* procedure number */
-+	__u32			rq_prot;	/* IP protocol */
- 	unsigned short
- 				rq_secure  : 1;	/* secure port */
- 
-@@ -156,7 +156,7 @@
-  * Check buffer bounds after decoding arguments
-  */
- static inline int
--xdr_argsize_check(struct svc_rqst *rqstp, u32 *p)
-+xdr_argsize_check(struct svc_rqst *rqstp, __u32 *p)
- {
- 	char *cp = (char *)p;
- 	struct kvec *vec = &rqstp->rq_arg.head[0];
-@@ -164,7 +164,7 @@
- }
- 
- static inline int
--xdr_ressize_check(struct svc_rqst *rqstp, u32 *p)
-+xdr_ressize_check(struct svc_rqst *rqstp, __u32 *p)
- {
- 	struct kvec *vec = &rqstp->rq_res.head[0];
- 	char *cp = (char*)p;
-@@ -220,19 +220,19 @@
- }
- 
- struct svc_deferred_req {
--	u32			prot;	/* protocol (UDP or TCP) */
-+	__u32			prot;	/* protocol (UDP or TCP) */
- 	struct sockaddr_in	addr;
- 	struct svc_sock		*svsk;	/* where reply must go */
- 	struct cache_deferred_req handle;
- 	int			argslen;
--	u32			args[0];
-+	__u32			args[0];
- };
- 
- /*
-  * RPC program
-  */
- struct svc_program {
--	u32			pg_prog;	/* program number */
-+	__u32			pg_prog;	/* program number */
- 	unsigned int		pg_lovers;	/* lowest version */
- 	unsigned int		pg_hivers;	/* lowest version */
- 	unsigned int		pg_nvers;	/* number of versions */
-@@ -246,16 +246,16 @@
-  * RPC program version
-  */
- struct svc_version {
--	u32			vs_vers;	/* version number */
--	u32			vs_nproc;	/* number of procedures */
-+	__u32			vs_vers;	/* version number */
-+	__u32			vs_nproc;	/* number of procedures */
- 	struct svc_procedure *	vs_proc;	/* per-procedure info */
--	u32			vs_xdrsize;	/* xdrsize needed for this version */
-+	__u32			vs_xdrsize;	/* xdrsize needed for this version */
- 
- 	/* Override dispatch function (e.g. when caching replies).
- 	 * A return value of 0 means drop the request. 
- 	 * vs_dispatch == NULL means use default dispatcher.
- 	 */
--	int			(*vs_dispatch)(struct svc_rqst *, u32 *);
-+	int			(*vs_dispatch)(struct svc_rqst *, __u32 *);
- };
- 
- /*
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/sunrpc/xprt.h linux-libc-headers-2.6.8.0/include/linux/sunrpc/xprt.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/sunrpc/xprt.h	2004-06-23 16:52:58.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/sunrpc/xprt.h	2004-08-26 05:42:08.000000000 -0500
-@@ -93,7 +93,7 @@
- 	__u32			rq_xid;		/* request XID */
- 	int			rq_cong;	/* has incremented xprt->cong */
- 	int			rq_received;	/* receive completed */
--	u32			rq_seqno;	/* gss seq no. used on req. */
-+	__u32			rq_seqno;	/* gss seq no. used on req. */
- 
- 	struct list_head	rq_list;
- 
-@@ -106,13 +106,13 @@
- 	/*
- 	 * For authentication (e.g. auth_des)
- 	 */
--	u32			rq_creddata[2];
-+	__u32			rq_creddata[2];
- 	
- 	/*
- 	 * Partial send handling
- 	 */
- 	
--	u32			rq_bytes_sent;	/* Bytes we have sent */
-+	__u32			rq_bytes_sent;	/* Bytes we have sent */
- 
- 	unsigned long		rq_xtime;	/* when transmitted */
- 	int			rq_ntrans;
-@@ -160,7 +160,7 @@
- 	/*
- 	 * State of TCP reply receive stuff
- 	 */
--	u32			tcp_recm,	/* Fragment header */
-+	__u32			tcp_recm,	/* Fragment header */
- 				tcp_xid,	/* Current XID */
- 				tcp_reclen,	/* fragment length */
- 				tcp_offset;	/* fragment offset */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/suspend.h linux-libc-headers-2.6.8.0/include/linux/suspend.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/suspend.h	2004-08-18 13:16:05.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/suspend.h	2004-08-26 05:42:08.000000000 -0500
-@@ -23,7 +23,7 @@
- #define SWAP_FILENAME_MAXLENGTH	32
- 
- struct suspend_header {
--	u32 version_code;
-+	__u32 version_code;
- 	unsigned long num_physpages;
- 	char machine[8];
- 	char version[20];
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/sysdev.h linux-libc-headers-2.6.8.0/include/linux/sysdev.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/sysdev.h	2004-03-28 07:52:11.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/sysdev.h	2004-08-26 05:42:08.000000000 -0500
-@@ -31,7 +31,7 @@
- 
- 	/* Default operations for these types of devices */
- 	int	(*shutdown)(struct sys_device *);
--	int	(*suspend)(struct sys_device *, u32 state);
-+	int	(*suspend)(struct sys_device *, __u32 state);
- 	int	(*resume)(struct sys_device *);
- 	struct kset		kset;
- };
-@@ -50,7 +50,7 @@
- 	int	(*add)(struct sys_device *);
- 	int	(*remove)(struct sys_device *);
- 	int	(*shutdown)(struct sys_device *);
--	int	(*suspend)(struct sys_device *, u32 state);
-+	int	(*suspend)(struct sys_device *, __u32 state);
- 	int	(*resume)(struct sys_device *);
- };
- 
-@@ -65,7 +65,7 @@
-  */
- 
- struct sys_device {
--	u32		id;
-+	__u32		id;
- 	struct sysdev_class	* cls;
- 	struct kobject		kobj;
- };
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/sysv_fs.h linux-libc-headers-2.6.8.0/include/linux/sysv_fs.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/sysv_fs.h	2003-12-15 12:46:58.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/sysv_fs.h	2004-08-26 05:42:08.000000000 -0500
-@@ -9,12 +9,12 @@
- 
- 
- /* inode numbers are 16 bit */
--typedef u16 sysv_ino_t;
-+typedef __u16 sysv_ino_t;
- 
- /* Block numbers are 24 bit, sometimes stored in 32 bit.
-    On Coherent FS, they are always stored in PDP-11 manner: the least
-    significant 16 bits come last. */
--typedef u32 sysv_zone_t;
-+typedef __u32 sysv_zone_t;
- 
- /* 0 is non-existent */
- #define SYSV_BADBL_INO	1	/* inode of bad blocks file */
-@@ -25,29 +25,29 @@
- #define XENIX_NICINOD	100	/* number of inode cache entries */
- #define XENIX_NICFREE	100	/* number of free block list chunk entries */
- struct xenix_super_block {
--	u16		s_isize; /* index of first data zone */
--	u32		s_fsize __packed2__; /* total number of zones of this fs */
-+	__u16		s_isize; /* index of first data zone */
-+	__u32		s_fsize __packed2__; /* total number of zones of this fs */
- 	/* the start of the free block list: */
--	u16		s_nfree;	/* number of free blocks in s_free, <= XENIX_NICFREE */
--	u32		s_free[XENIX_NICFREE]; /* first free block list chunk */
-+	__u16		s_nfree;	/* number of free blocks in s_free, <= XENIX_NICFREE */
-+	__u32		s_free[XENIX_NICFREE]; /* first free block list chunk */
- 	/* the cache of free inodes: */
--	u16		s_ninode; /* number of free inodes in s_inode, <= XENIX_NICINOD */
-+	__u16		s_ninode; /* number of free inodes in s_inode, <= XENIX_NICINOD */
- 	sysv_ino_t	s_inode[XENIX_NICINOD]; /* some free inodes */
- 	/* locks, not used by Linux: */
- 	char		s_flock;	/* lock during free block list manipulation */
- 	char		s_ilock;	/* lock during inode cache manipulation */
- 	char		s_fmod;		/* super-block modified flag */
- 	char		s_ronly;	/* flag whether fs is mounted read-only */
--	u32		s_time __packed2__; /* time of last super block update */
--	u32		s_tfree __packed2__; /* total number of free zones */
--	u16		s_tinode;	/* total number of free inodes */
--	s16		s_dinfo[4];	/* device information ?? */
-+	__u32		s_time __packed2__; /* time of last super block update */
-+	__u32		s_tfree __packed2__; /* total number of free zones */
-+	__u16		s_tinode;	/* total number of free inodes */
-+	__s16		s_dinfo[4];	/* device information ?? */
- 	char		s_fname[6];	/* file system volume name */
- 	char		s_fpack[6];	/* file system pack name */
- 	char		s_clean;	/* set to 0x46 when filesystem is properly unmounted */
- 	char		s_fill[371];
--	s32		s_magic;	/* version of file system */
--	s32		s_type;		/* type of file system: 1 for 512 byte blocks
-+	__s32		s_magic;	/* version of file system */
-+	__s32		s_type;		/* type of file system: 1 for 512 byte blocks
- 								2 for 1024 byte blocks
- 								3 for 2048 byte blocks */
- 								
-@@ -63,61 +63,61 @@
- 
- /* SystemV4 super-block data on disk */
- struct sysv4_super_block {
--	u16	s_isize;	/* index of first data zone */
--	u16	s_pad0;
--	u32	s_fsize;	/* total number of zones of this fs */
-+	__u16	s_isize;	/* index of first data zone */
-+	__u16	s_pad0;
-+	__u32	s_fsize;	/* total number of zones of this fs */
- 	/* the start of the free block list: */
--	u16	s_nfree;	/* number of free blocks in s_free, <= SYSV_NICFREE */
--	u16	s_pad1;
--	u32	s_free[SYSV_NICFREE]; /* first free block list chunk */
-+	__u16	s_nfree;	/* number of free blocks in s_free, <= SYSV_NICFREE */
-+	__u16	s_pad1;
-+	__u32	s_free[SYSV_NICFREE]; /* first free block list chunk */
- 	/* the cache of free inodes: */
--	u16	s_ninode;	/* number of free inodes in s_inode, <= SYSV_NICINOD */
--	u16	s_pad2;
-+	__u16	s_ninode;	/* number of free inodes in s_inode, <= SYSV_NICINOD */
-+	__u16	s_pad2;
- 	sysv_ino_t     s_inode[SYSV_NICINOD]; /* some free inodes */
- 	/* locks, not used by Linux: */
- 	char	s_flock;	/* lock during free block list manipulation */
- 	char	s_ilock;	/* lock during inode cache manipulation */
- 	char	s_fmod;		/* super-block modified flag */
- 	char	s_ronly;	/* flag whether fs is mounted read-only */
--	u32	s_time;		/* time of last super block update */
--	s16	s_dinfo[4];	/* device information ?? */
--	u32	s_tfree;	/* total number of free zones */
--	u16	s_tinode;	/* total number of free inodes */
--	u16	s_pad3;
-+	__u32	s_time;		/* time of last super block update */
-+	__s16	s_dinfo[4];	/* device information ?? */
-+	__u32	s_tfree;	/* total number of free zones */
-+	__u16	s_tinode;	/* total number of free inodes */
-+	__u16	s_pad3;
- 	char	s_fname[6];	/* file system volume name */
- 	char	s_fpack[6];	/* file system pack name */
--	s32	s_fill[12];
--	s32	s_state;	/* file system state: 0x7c269d38-s_time means clean */
--	s32	s_magic;	/* version of file system */
--	s32	s_type;		/* type of file system: 1 for 512 byte blocks
-+	__s32	s_fill[12];
-+	__s32	s_state;	/* file system state: 0x7c269d38-s_time means clean */
-+	__s32	s_magic;	/* version of file system */
-+	__s32	s_type;		/* type of file system: 1 for 512 byte blocks
- 								2 for 1024 byte blocks */
- };
- 
- /* SystemV2 super-block data on disk */
- struct sysv2_super_block {
--	u16	s_isize; 		/* index of first data zone */
--	u32	s_fsize __packed2__;	/* total number of zones of this fs */
-+	__u16	s_isize; 		/* index of first data zone */
-+	__u32	s_fsize __packed2__;	/* total number of zones of this fs */
- 	/* the start of the free block list: */
--	u16	s_nfree;		/* number of free blocks in s_free, <= SYSV_NICFREE */
--	u32	s_free[SYSV_NICFREE];	/* first free block list chunk */
-+	__u16	s_nfree;		/* number of free blocks in s_free, <= SYSV_NICFREE */
-+	__u32	s_free[SYSV_NICFREE];	/* first free block list chunk */
- 	/* the cache of free inodes: */
--	u16	s_ninode;		/* number of free inodes in s_inode, <= SYSV_NICINOD */
-+	__u16	s_ninode;		/* number of free inodes in s_inode, <= SYSV_NICINOD */
- 	sysv_ino_t     s_inode[SYSV_NICINOD]; /* some free inodes */
- 	/* locks, not used by Linux: */
- 	char	s_flock;		/* lock during free block list manipulation */
- 	char	s_ilock;		/* lock during inode cache manipulation */
- 	char	s_fmod;			/* super-block modified flag */
- 	char	s_ronly;		/* flag whether fs is mounted read-only */
--	u32	s_time __packed2__;	/* time of last super block update */
--	s16	s_dinfo[4];		/* device information ?? */
--	u32	s_tfree __packed2__;	/* total number of free zones */
--	u16	s_tinode;		/* total number of free inodes */
-+	__u32	s_time __packed2__;	/* time of last super block update */
-+	__s16	s_dinfo[4];		/* device information ?? */
-+	__u32	s_tfree __packed2__;	/* total number of free zones */
-+	__u16	s_tinode;		/* total number of free inodes */
- 	char	s_fname[6];		/* file system volume name */
- 	char	s_fpack[6];		/* file system pack name */
--	s32	s_fill[14];
--	s32	s_state;		/* file system state: 0xcb096f43 means clean */
--	s32	s_magic;		/* version of file system */
--	s32	s_type;			/* type of file system: 1 for 512 byte blocks
-+	__s32	s_fill[14];
-+	__s32	s_state;		/* file system state: 0xcb096f43 means clean */
-+	__s32	s_magic;		/* version of file system */
-+	__s32	s_type;			/* type of file system: 1 for 512 byte blocks
- 								2 for 1024 byte blocks */
- };
- 
-@@ -125,25 +125,25 @@
- #define V7_NICINOD     100     /* number of inode cache entries */
- #define V7_NICFREE     50      /* number of free block list chunk entries */
- struct v7_super_block {
--	u16    s_isize;        /* index of first data zone */
--	u32    s_fsize __packed2__; /* total number of zones of this fs */
-+	__u16    s_isize;        /* index of first data zone */
-+	__u32    s_fsize __packed2__; /* total number of zones of this fs */
- 	/* the start of the free block list: */
--	u16    s_nfree;        /* number of free blocks in s_free, <= V7_NICFREE */
--	u32    s_free[V7_NICFREE]; /* first free block list chunk */
-+	__u16    s_nfree;        /* number of free blocks in s_free, <= V7_NICFREE */
-+	__u32    s_free[V7_NICFREE]; /* first free block list chunk */
- 	/* the cache of free inodes: */
--	u16    s_ninode;       /* number of free inodes in s_inode, <= V7_NICINOD */
-+	__u16    s_ninode;       /* number of free inodes in s_inode, <= V7_NICINOD */
- 	sysv_ino_t      s_inode[V7_NICINOD]; /* some free inodes */
- 	/* locks, not used by Linux or V7: */
- 	char    s_flock;        /* lock during free block list manipulation */
- 	char    s_ilock;        /* lock during inode cache manipulation */
- 	char    s_fmod;         /* super-block modified flag */
- 	char    s_ronly;        /* flag whether fs is mounted read-only */
--	u32     s_time __packed2__; /* time of last super block update */
-+	__u32     s_time __packed2__; /* time of last super block update */
- 	/* the following fields are not maintained by V7: */
--	u32     s_tfree __packed2__; /* total number of free zones */
--	u16     s_tinode;       /* total number of free inodes */
--	u16     s_m;            /* interleave factor */
--	u16     s_n;            /* interleave factor */
-+	__u32     s_tfree __packed2__; /* total number of free zones */
-+	__u16     s_tinode;       /* total number of free inodes */
-+	__u16     s_m;            /* interleave factor */
-+	__u16     s_n;            /* interleave factor */
- 	char    s_fname[6];     /* file system name */
- 	char    s_fpack[6];     /* file system pack name */
- };
-@@ -152,41 +152,41 @@
- #define COH_NICINOD	100	/* number of inode cache entries */
- #define COH_NICFREE	64	/* number of free block list chunk entries */
- struct coh_super_block {
--	u16		s_isize;	/* index of first data zone */
--	u32		s_fsize __packed2__; /* total number of zones of this fs */
-+	__u16		s_isize;	/* index of first data zone */
-+	__u32		s_fsize __packed2__; /* total number of zones of this fs */
- 	/* the start of the free block list: */
--	u16 s_nfree;	/* number of free blocks in s_free, <= COH_NICFREE */
--	u32		s_free[COH_NICFREE] __packed2__; /* first free block list chunk */
-+	__u16 s_nfree;	/* number of free blocks in s_free, <= COH_NICFREE */
-+	__u32		s_free[COH_NICFREE] __packed2__; /* first free block list chunk */
- 	/* the cache of free inodes: */
--	u16		s_ninode;	/* number of free inodes in s_inode, <= COH_NICINOD */
-+	__u16		s_ninode;	/* number of free inodes in s_inode, <= COH_NICINOD */
- 	sysv_ino_t	s_inode[COH_NICINOD]; /* some free inodes */
- 	/* locks, not used by Linux: */
- 	char		s_flock;	/* lock during free block list manipulation */
- 	char		s_ilock;	/* lock during inode cache manipulation */
- 	char		s_fmod;		/* super-block modified flag */
- 	char		s_ronly;	/* flag whether fs is mounted read-only */
--	u32		s_time __packed2__; /* time of last super block update */
--	u32		s_tfree __packed2__; /* total number of free zones */
--	u16		s_tinode;	/* total number of free inodes */
--	u16		s_interleave_m;	/* interleave factor */
--	u16		s_interleave_n;
-+	__u32		s_time __packed2__; /* time of last super block update */
-+	__u32		s_tfree __packed2__; /* total number of free zones */
-+	__u16		s_tinode;	/* total number of free inodes */
-+	__u16		s_interleave_m;	/* interleave factor */
-+	__u16		s_interleave_n;
- 	char		s_fname[6];	/* file system volume name */
- 	char		s_fpack[6];	/* file system pack name */
--	u32		s_unique;	/* zero, not used */
-+	__u32		s_unique;	/* zero, not used */
- };
- 
- /* SystemV/Coherent inode data on disk */
- struct sysv_inode {
--	u16 i_mode;
--	u16 i_nlink;
--	u16 i_uid;
--	u16 i_gid;
--	u32 i_size;
--	u8  i_data[3*(10+1+1+1)];
--	u8  i_gen;
--	u32 i_atime;	/* time of last access */
--	u32 i_mtime;	/* time of last modification */
--	u32 i_ctime;	/* time of creation */
-+	__u16 i_mode;
-+	__u16 i_nlink;
-+	__u16 i_uid;
-+	__u16 i_gid;
-+	__u32 i_size;
-+	__u8  i_data[3*(10+1+1+1)];
-+	__u8  i_gen;
-+	__u32 i_atime;	/* time of last access */
-+	__u32 i_mtime;	/* time of last modification */
-+	__u32 i_ctime;	/* time of creation */
- };
- 
- /* SystemV/Coherent directory entry on disk */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/tiocl.h linux-libc-headers-2.6.8.0/include/linux/tiocl.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/tiocl.h	2003-12-15 12:46:58.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/tiocl.h	2004-08-26 05:42:08.000000000 -0500
-@@ -23,7 +23,7 @@
- 
- #define TIOCL_SELLOADLUT	5
- 	/* set characters to be considered alphabetic when selecting */
--	/* u32[8] bit array, 4 bytes-aligned with type */
-+	/* __u32[8] bit array, 4 bytes-aligned with type */
- 
- /* these two don't return a value: they write it back in the type */
- #define TIOCL_GETSHIFTSTATE	6	/* write shift state */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/umem.h linux-libc-headers-2.6.8.0/include/linux/umem.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/umem.h	2003-12-15 12:46:58.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/umem.h	2004-08-26 05:42:08.000000000 -0500
-@@ -110,19 +110,19 @@
- #define DMA_WRITE_TO_HOST 1
- 
- struct mm_dma_desc {
--	u64	pci_addr;
--	u64	local_addr;
--	u32	transfer_size;
--	u32	zero1;
--	u64	next_desc_addr;
--	u64	sem_addr;
--	u32	control_bits;
--	u32	zero2;
-+	__u64	pci_addr;
-+	__u64	local_addr;
-+	__u32	transfer_size;
-+	__u32	zero1;
-+	__u64	next_desc_addr;
-+	__u64	sem_addr;
-+	__u32	control_bits;
-+	__u32	zero2;
- 
- 	dma_addr_t data_dma_handle;
- 
- 	/* Copy of the bits */
--	u64	sem_control_bits;
-+	__u64	sem_control_bits;
- } __attribute__((aligned(8)));
- 
- #define PCI_VENDOR_ID_MICRO_MEMORY		0x1332
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/vt_buffer.h linux-libc-headers-2.6.8.0/include/linux/vt_buffer.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/vt_buffer.h	2004-01-17 17:04:33.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/vt_buffer.h	2004-08-26 05:42:08.000000000 -0500
-@@ -28,7 +28,7 @@
- #endif
- 
- #ifndef VT_BUF_HAVE_MEMSETW
--static inline void scr_memsetw(u16 *s, u16 c, unsigned int count)
-+static inline void scr_memsetw(__u16 *s, __u16 c, unsigned int count)
- {
- 	count /= 2;
- 	while (count--)
-@@ -37,7 +37,7 @@
- #endif
- 
- #ifndef VT_BUF_HAVE_MEMCPYW
--static inline void scr_memcpyw(u16 *d, const u16 *s, unsigned int count)
-+static inline void scr_memcpyw(__u16 *d, const __u16 *s, unsigned int count)
- {
- 	count /= 2;
- 	while (count--)
-@@ -46,7 +46,7 @@
- #endif
- 
- #ifndef VT_BUF_HAVE_MEMMOVEW
--static inline void scr_memmovew(u16 *d, const u16 *s, unsigned int count)
-+static inline void scr_memmovew(__u16 *d, const __u16 *s, unsigned int count)
- {
- 	if (d < s)
- 		scr_memcpyw(d, s, count);

+ 0 - 12925
toolchain/kernel-headers/linux-libc-headers-2.6.9-nios2nommu.patch.conditional

@@ -1,12925 +0,0 @@
---- linux/include/asm-generic/bitops.h
-+++ linux/include/asm-generic/bitops.h
-@@ -0,0 +1,81 @@
-+#ifndef _ASM_GENERIC_BITOPS_H_
-+#define _ASM_GENERIC_BITOPS_H_
-+
-+/*
-+ * For the benefit of those who are trying to port Linux to another
-+ * architecture, here are some C-language equivalents.  You should
-+ * recode these in the native assembly language, if at all possible.
-+ * To guarantee atomicity, these routines call cli() and sti() to
-+ * disable interrupts while they operate.  (You have to provide inline
-+ * routines to cli() and sti().)
-+ *
-+ * Also note, these routines assume that you have 32 bit longs.
-+ * You will have to change this if you are trying to port Linux to the
-+ * Alpha architecture or to a Cray.  :-)
-+ * 
-+ * C language equivalents written by Theodore Ts'o, 9/26/92
-+ */
-+
-+extern __inline__ int set_bit(int nr,long * addr)
-+{
-+	int	mask, retval;
-+
-+	addr += nr >> 5;
-+	mask = 1 << (nr & 0x1f);
-+	cli();
-+	retval = (mask & *addr) != 0;
-+	*addr |= mask;
-+	sti();
-+	return retval;
-+}
-+
-+extern __inline__ int clear_bit(int nr, long * addr)
-+{
-+	int	mask, retval;
-+
-+	addr += nr >> 5;
-+	mask = 1 << (nr & 0x1f);
-+	cli();
-+	retval = (mask & *addr) != 0;
-+	*addr &= ~mask;
-+	sti();
-+	return retval;
-+}
-+
-+extern __inline__ int test_bit(int nr, const unsigned long * addr)
-+{
-+	int	mask;
-+
-+	addr += nr >> 5;
-+	mask = 1 << (nr & 0x1f);
-+	return ((mask & *addr) != 0);
-+}
-+
-+/*
-+ * fls: find last bit set.
-+ */
-+
-+#define fls(x) generic_fls(x)
-+
-+#ifdef __KERNEL__
-+
-+/*
-+ * ffs: find first bit set. This is defined the same way as
-+ * the libc and compiler builtin ffs routines, therefore
-+ * differs in spirit from the above ffz (man ffs).
-+ */
-+
-+#define ffs(x) generic_ffs(x)
-+
-+/*
-+ * hweightN: returns the hamming weight (i.e. the number
-+ * of bits set) of a N-bit word
-+ */
-+
-+#define hweight32(x) generic_hweight32(x)
-+#define hweight16(x) generic_hweight16(x)
-+#define hweight8(x) generic_hweight8(x)
-+
-+#endif /* __KERNEL__ */
-+
-+#endif /* _ASM_GENERIC_BITOPS_H */
---- linux/include/asm-generic/bug.h
-+++ linux/include/asm-generic/bug.h
-@@ -0,0 +1,34 @@
-+#ifndef _ASM_GENERIC_BUG_H
-+#define _ASM_GENERIC_BUG_H
-+
-+#include <linux/compiler.h>
-+// #include <linux/config.h>
-+
-+#ifndef HAVE_ARCH_BUG
-+#define BUG() do { \
-+	printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \
-+	panic("BUG!"); \
-+} while (0)
-+#endif
-+
-+#ifndef HAVE_ARCH_PAGE_BUG
-+#define PAGE_BUG(page) do { \
-+	printk("page BUG for page at %p\n", page); \
-+	BUG(); \
-+} while (0)
-+#endif
-+
-+#ifndef HAVE_ARCH_BUG_ON
-+#define BUG_ON(condition) do { if (unlikely((condition)!=0)) BUG(); } while(0)
-+#endif
-+
-+#ifndef HAVE_ARCH_WARN_ON
-+#define WARN_ON(condition) do { \
-+	if (unlikely((condition)!=0)) { \
-+		printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \
-+		dump_stack(); \
-+	} \
-+} while (0)
-+#endif
-+
-+#endif
---- linux/include/asm-generic/cpumask.h
-+++ linux/include/asm-generic/cpumask.h
-@@ -0,0 +1,40 @@
-+#ifndef __ASM_GENERIC_CPUMASK_H
-+#define __ASM_GENERIC_CPUMASK_H
-+
-+// #include <linux/config.h>
-+#include <linux/kernel.h>
-+#include <linux/threads.h>
-+#include <linux/types.h>
-+#include <linux/bitmap.h>
-+
-+#if NR_CPUS > BITS_PER_LONG && NR_CPUS != 1
-+#define CPU_ARRAY_SIZE		BITS_TO_LONGS(NR_CPUS)
-+
-+struct cpumask
-+{
-+	unsigned long mask[CPU_ARRAY_SIZE];
-+};
-+
-+typedef struct cpumask cpumask_t;
-+
-+#else
-+typedef unsigned long cpumask_t;
-+#endif
-+
-+#ifdef CONFIG_SMP
-+#if NR_CPUS > BITS_PER_LONG
-+#include <asm-generic/cpumask_array.h>
-+#else
-+#include <asm-generic/cpumask_arith.h>
-+#endif
-+#else
-+#include <asm-generic/cpumask_up.h>
-+#endif
-+
-+#if NR_CPUS <= 4*BITS_PER_LONG
-+#include <asm-generic/cpumask_const_value.h>
-+#else
-+#include <asm-generic/cpumask_const_reference.h>
-+#endif
-+
-+#endif /* __ASM_GENERIC_CPUMASK_H */
---- linux/include/asm-generic/cpumask_arith.h
-+++ linux/include/asm-generic/cpumask_arith.h
-@@ -0,0 +1,49 @@
-+#ifndef __ASM_GENERIC_CPUMASK_ARITH_H
-+#define __ASM_GENERIC_CPUMASK_ARITH_H
-+
-+/*
-+ * Arithmetic type -based cpu bitmaps. A single unsigned long is used
-+ * to contain the whole cpu bitmap.
-+ */
-+
-+#define cpu_set(cpu, map)		set_bit(cpu, &(map))
-+#define cpu_clear(cpu, map)		clear_bit(cpu, &(map))
-+#define cpu_isset(cpu, map)		test_bit(cpu, &(map))
-+#define cpu_test_and_set(cpu, map)	test_and_set_bit(cpu, &(map))
-+
-+#define cpus_and(dst,src1,src2)		do { dst = (src1) & (src2); } while (0)
-+#define cpus_or(dst,src1,src2)		do { dst = (src1) | (src2); } while (0)
-+#define cpus_clear(map)			do { map = 0; } while (0)
-+#define cpus_complement(map)		do { map = ~(map); } while (0)
-+#define cpus_equal(map1, map2)		((map1) == (map2))
-+#define cpus_empty(map)			((map) == 0)
-+#define cpus_addr(map)			(&(map))
-+
-+#if BITS_PER_LONG == 32
-+#define cpus_weight(map)		hweight32(map)
-+#elif BITS_PER_LONG == 64
-+#define cpus_weight(map)		hweight64(map)
-+#endif
-+
-+#define cpus_shift_right(dst, src, n)	do { dst = (src) >> (n); } while (0)
-+#define cpus_shift_left(dst, src, n)	do { dst = (src) << (n); } while (0)
-+
-+#define any_online_cpu(map)			\
-+({						\
-+	cpumask_t __tmp__;			\
-+	cpus_and(__tmp__, map, cpu_online_map);	\
-+	__tmp__ ? first_cpu(__tmp__) : NR_CPUS;	\
-+})
-+
-+#define CPU_MASK_ALL	(~((cpumask_t)0) >> (8*sizeof(cpumask_t) - NR_CPUS))
-+#define CPU_MASK_NONE	((cpumask_t)0)
-+
-+/* only ever use this for things that are _never_ used on large boxen */
-+#define cpus_coerce(map)		((unsigned long)(map))
-+#define cpus_promote(map)		({ map; })
-+#define cpumask_of_cpu(cpu)		({ ((cpumask_t)1) << (cpu); })
-+
-+#define first_cpu(map)			__ffs(map)
-+#define next_cpu(cpu, map)		find_next_bit(&(map), NR_CPUS, cpu + 1)
-+
-+#endif /* __ASM_GENERIC_CPUMASK_ARITH_H */
---- linux/include/asm-generic/cpumask_array.h
-+++ linux/include/asm-generic/cpumask_array.h
-@@ -0,0 +1,54 @@
-+#ifndef __ASM_GENERIC_CPUMASK_ARRAY_H
-+#define __ASM_GENERIC_CPUMASK_ARRAY_H
-+
-+/*
-+ * Array-based cpu bitmaps. An array of unsigned longs is used to contain
-+ * the bitmap, and then contained in a structure so it may be passed by
-+ * value.
-+ */
-+
-+#define CPU_ARRAY_SIZE		BITS_TO_LONGS(NR_CPUS)
-+
-+#define cpu_set(cpu, map)		set_bit(cpu, (map).mask)
-+#define cpu_clear(cpu, map)		clear_bit(cpu, (map).mask)
-+#define cpu_isset(cpu, map)		test_bit(cpu, (map).mask)
-+#define cpu_test_and_set(cpu, map)	test_and_set_bit(cpu, (map).mask)
-+
-+#define cpus_and(dst,src1,src2)	bitmap_and((dst).mask,(src1).mask, (src2).mask, NR_CPUS)
-+#define cpus_or(dst,src1,src2)	bitmap_or((dst).mask, (src1).mask, (src2).mask, NR_CPUS)
-+#define cpus_clear(map)		bitmap_clear((map).mask, NR_CPUS)
-+#define cpus_complement(map)	bitmap_complement((map).mask, NR_CPUS)
-+#define cpus_equal(map1, map2)	bitmap_equal((map1).mask, (map2).mask, NR_CPUS)
-+#define cpus_empty(map)		bitmap_empty(map.mask, NR_CPUS)
-+#define cpus_addr(map)		((map).mask)
-+#define cpus_weight(map)		bitmap_weight((map).mask, NR_CPUS)
-+#define cpus_shift_right(d, s, n)	bitmap_shift_right((d).mask, (s).mask, n, NR_CPUS)
-+#define cpus_shift_left(d, s, n)	bitmap_shift_left((d).mask, (s).mask, n, NR_CPUS)
-+#define first_cpu(map)		find_first_bit((map).mask, NR_CPUS)
-+#define next_cpu(cpu, map)	find_next_bit((map).mask, NR_CPUS, cpu + 1)
-+
-+/* only ever use this for things that are _never_ used on large boxen */
-+#define cpus_coerce(map)	((map).mask[0])
-+#define cpus_promote(map)	({ cpumask_t __cpu_mask = CPU_MASK_NONE;\
-+					__cpu_mask.mask[0] = map;	\
-+					__cpu_mask;			\
-+				})
-+#define cpumask_of_cpu(cpu)	({ cpumask_t __cpu_mask = CPU_MASK_NONE;\
-+					cpu_set(cpu, __cpu_mask);	\
-+					__cpu_mask;			\
-+				})
-+#define any_online_cpu(map)			\
-+({						\
-+	cpumask_t __tmp__;			\
-+	cpus_and(__tmp__, map, cpu_online_map);	\
-+	find_first_bit(__tmp__.mask, NR_CPUS);	\
-+})
-+
-+
-+/*
-+ * um, these need to be usable as static initializers
-+ */
-+#define CPU_MASK_ALL	{ {[0 ... CPU_ARRAY_SIZE-1] = ~0UL} }
-+#define CPU_MASK_NONE	{ {[0 ... CPU_ARRAY_SIZE-1] =  0UL} }
-+
-+#endif /* __ASM_GENERIC_CPUMASK_ARRAY_H */
---- linux/include/asm-generic/cpumask_const_reference.h
-+++ linux/include/asm-generic/cpumask_const_reference.h
-@@ -0,0 +1,29 @@
-+#ifndef __ASM_GENERIC_CPUMASK_CONST_REFERENCE_H
-+#define __ASM_GENERIC_CPUMASK_CONST_REFERENCE_H
-+
-+struct cpumask_ref {
-+	const cpumask_t *val;
-+};
-+
-+typedef const struct cpumask_ref cpumask_const_t;
-+
-+#define mk_cpumask_const(map)		((cpumask_const_t){ &(map) })
-+#define cpu_isset_const(cpu, map)	cpu_isset(cpu, *(map).val)
-+
-+#define cpus_and_const(dst,src1,src2)	cpus_and(dst,*(src1).val,*(src2).val)
-+#define cpus_or_const(dst,src1,src2)	cpus_or(dst,*(src1).val,*(src2).val)
-+
-+#define cpus_equal_const(map1, map2)	cpus_equal(*(map1).val, *(map2).val)
-+
-+#define cpus_copy_const(map1, map2)	bitmap_copy((map1).mask, (map2).val->mask, NR_CPUS)
-+
-+#define cpus_empty_const(map)		cpus_empty(*(map).val)
-+#define cpus_weight_const(map)		cpus_weight(*(map).val)
-+#define first_cpu_const(map)		first_cpu(*(map).val)
-+#define next_cpu_const(cpu, map)	next_cpu(cpu, *(map).val)
-+
-+/* only ever use this for things that are _never_ used on large boxen */
-+#define cpus_coerce_const(map)		cpus_coerce(*(map).val)
-+#define any_online_cpu_const(map)	any_online_cpu(*(map).val)
-+
-+#endif /* __ASM_GENERIC_CPUMASK_CONST_REFERENCE_H */
---- linux/include/asm-generic/cpumask_const_value.h
-+++ linux/include/asm-generic/cpumask_const_value.h
-@@ -0,0 +1,21 @@
-+#ifndef __ASM_GENERIC_CPUMASK_CONST_VALUE_H
-+#define __ASM_GENERIC_CPUMASK_CONST_VALUE_H
-+
-+typedef const cpumask_t cpumask_const_t;
-+
-+#define mk_cpumask_const(map)		(map)
-+#define cpu_isset_const(cpu, map)	cpu_isset(cpu, map)
-+#define cpus_and_const(dst,src1,src2)	cpus_and(dst, src1, src2)
-+#define cpus_or_const(dst,src1,src2)	cpus_or(dst, src1, src2)
-+#define cpus_equal_const(map1, map2)	cpus_equal(map1, map2)
-+#define cpus_empty_const(map)		cpus_empty(map)
-+#define cpus_copy_const(map1, map2)	do { map1 = (cpumask_t)map2; } while (0)
-+#define cpus_weight_const(map)		cpus_weight(map)
-+#define first_cpu_const(map)		first_cpu(map)
-+#define next_cpu_const(cpu, map)	next_cpu(cpu, map)
-+
-+/* only ever use this for things that are _never_ used on large boxen */
-+#define cpus_coerce_const(map)		cpus_coerce(map)
-+#define any_online_cpu_const(map)	any_online_cpu(map)
-+
-+#endif /* __ASM_GENERIC_CPUMASK_CONST_VALUE_H */
---- linux/include/asm-generic/cpumask_up.h
-+++ linux/include/asm-generic/cpumask_up.h
-@@ -0,0 +1,59 @@
-+#ifndef __ASM_GENERIC_CPUMASK_UP_H
-+#define __ASM_GENERIC_CPUMASK_UP_H
-+
-+#define cpus_coerce(map)	(map)
-+
-+#define cpu_set(cpu, map)		do { (void)(cpu); cpus_coerce(map) = 1UL; } while (0)
-+#define cpu_clear(cpu, map)		do { (void)(cpu); cpus_coerce(map) = 0UL; } while (0)
-+#define cpu_isset(cpu, map)		((void)(cpu), cpus_coerce(map) != 0UL)
-+#define cpu_test_and_set(cpu, map)	((void)(cpu), test_and_set_bit(0, &(map)))
-+
-+#define cpus_and(dst, src1, src2)					\
-+	do {								\
-+		if (cpus_coerce(src1) && cpus_coerce(src2))		\
-+			cpus_coerce(dst) = 1UL;				\
-+		else							\
-+			cpus_coerce(dst) = 0UL;				\
-+	} while (0)
-+
-+#define cpus_or(dst, src1, src2)					\
-+	do {								\
-+		if (cpus_coerce(src1) || cpus_coerce(src2))		\
-+			cpus_coerce(dst) = 1UL;				\
-+		else							\
-+			cpus_coerce(dst) = 0UL;				\
-+	} while (0)
-+
-+#define cpus_clear(map)			do { cpus_coerce(map) = 0UL; } while (0)
-+
-+#define cpus_complement(map)						\
-+	do {								\
-+		cpus_coerce(map) = !cpus_coerce(map);			\
-+	} while (0)
-+
-+#define cpus_equal(map1, map2)		(cpus_coerce(map1) == cpus_coerce(map2))
-+#define cpus_empty(map)			(cpus_coerce(map) == 0UL)
-+#define cpus_addr(map)			(&(map))
-+#define cpus_weight(map)		(cpus_coerce(map) ? 1UL : 0UL)
-+#define cpus_shift_right(d, s, n)	do { cpus_coerce(d) = 0UL; } while (0)
-+#define cpus_shift_left(d, s, n)	do { cpus_coerce(d) = 0UL; } while (0)
-+#define first_cpu(map)			(cpus_coerce(map) ? 0 : 1)
-+#define next_cpu(cpu, map)		1
-+
-+/* only ever use this for things that are _never_ used on large boxen */
-+#define cpus_promote(map)						\
-+	({								\
-+		cpumask_t __tmp__;					\
-+		cpus_coerce(__tmp__) = map;				\
-+		__tmp__;						\
-+	})
-+#define cpumask_of_cpu(cpu)		((void)(cpu), cpus_promote(1))
-+#define any_online_cpu(map)		(cpus_coerce(map) ? 0 : 1)
-+
-+/*
-+ * um, these need to be usable as static initializers
-+ */
-+#define CPU_MASK_ALL	1UL
-+#define CPU_MASK_NONE	0UL
-+
-+#endif /* __ASM_GENERIC_CPUMASK_UP_H */
---- linux/include/asm-generic/div64.h
-+++ linux/include/asm-generic/div64.h
-@@ -0,0 +1,58 @@
-+#ifndef _ASM_GENERIC_DIV64_H
-+#define _ASM_GENERIC_DIV64_H
-+/*
-+ * Copyright (C) 2003 Bernardo Innocenti <bernie@develer.com>
-+ * Based on former asm-ppc/div64.h and asm-m68knommu/div64.h
-+ *
-+ * The semantics of do_div() are:
-+ *
-+ * uint32_t do_div(uint64_t *n, uint32_t base)
-+ * {
-+ * 	uint32_t remainder = *n % base;
-+ * 	*n = *n / base;
-+ * 	return remainder;
-+ * }
-+ *
-+ * NOTE: macro parameter n is evaluated multiple times,
-+ *       beware of side effects!
-+ */
-+
-+#include <linux/types.h>
-+#include <linux/compiler.h>
-+
-+#if BITS_PER_LONG == 64
-+
-+# define do_div(n,base) ({					\
-+	uint32_t __base = (base);				\
-+	uint32_t __rem;						\
-+	__rem = ((uint64_t)(n)) % __base;			\
-+	(n) = ((uint64_t)(n)) / __base;				\
-+	__rem;							\
-+ })
-+
-+#elif BITS_PER_LONG == 32
-+
-+extern uint32_t __div64_32(uint64_t *dividend, uint32_t divisor);
-+
-+/* The unnecessary pointer compare is there
-+ * to check for type safety (n must be 64bit)
-+ */
-+# define do_div(n,base) ({				\
-+	uint32_t __base = (base);			\
-+	uint32_t __rem;					\
-+	(void)(((typeof((n)) *)0) == ((uint64_t *)0));	\
-+	if (likely(((n) >> 32) == 0)) {			\
-+		__rem = (uint32_t)(n) % __base;		\
-+		(n) = (uint32_t)(n) / __base;		\
-+	} else 						\
-+		__rem = __div64_32(&(n), __base);	\
-+	__rem;						\
-+ })
-+
-+#else /* BITS_PER_LONG == ?? */
-+
-+# error do_div() does not yet support the C64
-+
-+#endif /* BITS_PER_LONG */
-+
-+#endif /* _ASM_GENERIC_DIV64_H */
---- linux/include/asm-generic/dma-mapping-broken.h
-+++ linux/include/asm-generic/dma-mapping-broken.h
-@@ -0,0 +1,22 @@
-+#ifndef _ASM_GENERIC_DMA_MAPPING_H
-+#define _ASM_GENERIC_DMA_MAPPING_H
-+
-+/* This is used for archs that do not support DMA */
-+
-+
-+static inline void *
-+dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle,
-+		   int flag)
-+{
-+	BUG();
-+	return 0;
-+}
-+
-+static inline void
-+dma_free_coherent(struct device *dev, size_t size, void *cpu_addr,
-+		    dma_addr_t dma_handle)
-+{
-+	BUG();
-+}
-+
-+#endif /* _ASM_GENERIC_DMA_MAPPING_H */
---- linux/include/asm-generic/dma-mapping.h
-+++ linux/include/asm-generic/dma-mapping.h
-@@ -0,0 +1,309 @@
-+/* Copyright (C) 2002 by James.Bottomley@HansenPartnership.com 
-+ *
-+ * Implements the generic device dma API via the existing pci_ one
-+ * for unconverted architectures
-+ */
-+
-+#ifndef _ASM_GENERIC_DMA_MAPPING_H
-+#define _ASM_GENERIC_DMA_MAPPING_H
-+
-+// #include <linux/config.h>
-+
-+#ifdef CONFIG_PCI
-+
-+/* we implement the API below in terms of the existing PCI one,
-+ * so include it */
-+#include <linux/pci.h>
-+/* need struct page definitions */
-+#include <linux/mm.h>
-+
-+static inline int
-+dma_supported(struct device *dev, u64 mask)
-+{
-+	BUG_ON(dev->bus != &pci_bus_type);
-+
-+	return pci_dma_supported(to_pci_dev(dev), mask);
-+}
-+
-+static inline int
-+dma_set_mask(struct device *dev, u64 dma_mask)
-+{
-+	BUG_ON(dev->bus != &pci_bus_type);
-+
-+	return pci_set_dma_mask(to_pci_dev(dev), dma_mask);
-+}
-+
-+static inline void *
-+dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle,
-+		   int flag)
-+{
-+	BUG_ON(dev->bus != &pci_bus_type);
-+
-+	return pci_alloc_consistent(to_pci_dev(dev), size, dma_handle);
-+}
-+
-+static inline void
-+dma_free_coherent(struct device *dev, size_t size, void *cpu_addr,
-+		    dma_addr_t dma_handle)
-+{
-+	BUG_ON(dev->bus != &pci_bus_type);
-+
-+	pci_free_consistent(to_pci_dev(dev), size, cpu_addr, dma_handle);
-+}
-+
-+static inline dma_addr_t
-+dma_map_single(struct device *dev, void *cpu_addr, size_t size,
-+	       enum dma_data_direction direction)
-+{
-+	BUG_ON(dev->bus != &pci_bus_type);
-+
-+	return pci_map_single(to_pci_dev(dev), cpu_addr, size, (int)direction);
-+}
-+
-+static inline void
-+dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size,
-+		 enum dma_data_direction direction)
-+{
-+	BUG_ON(dev->bus != &pci_bus_type);
-+
-+	pci_unmap_single(to_pci_dev(dev), dma_addr, size, (int)direction);
-+}
-+
-+static inline dma_addr_t
-+dma_map_page(struct device *dev, struct page *page,
-+	     unsigned long offset, size_t size,
-+	     enum dma_data_direction direction)
-+{
-+	BUG_ON(dev->bus != &pci_bus_type);
-+
-+	return pci_map_page(to_pci_dev(dev), page, offset, size, (int)direction);
-+}
-+
-+static inline void
-+dma_unmap_page(struct device *dev, dma_addr_t dma_address, size_t size,
-+	       enum dma_data_direction direction)
-+{
-+	BUG_ON(dev->bus != &pci_bus_type);
-+
-+	pci_unmap_page(to_pci_dev(dev), dma_address, size, (int)direction);
-+}
-+
-+static inline int
-+dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
-+	   enum dma_data_direction direction)
-+{
-+	BUG_ON(dev->bus != &pci_bus_type);
-+
-+	return pci_map_sg(to_pci_dev(dev), sg, nents, (int)direction);
-+}
-+
-+static inline void
-+dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nhwentries,
-+	     enum dma_data_direction direction)
-+{
-+	BUG_ON(dev->bus != &pci_bus_type);
-+
-+	pci_unmap_sg(to_pci_dev(dev), sg, nhwentries, (int)direction);
-+}
-+
-+static inline void
-+dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, size_t size,
-+			enum dma_data_direction direction)
-+{
-+	BUG_ON(dev->bus != &pci_bus_type);
-+
-+	pci_dma_sync_single_for_cpu(to_pci_dev(dev), dma_handle,
-+				    size, (int)direction);
-+}
-+
-+static inline void
-+dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle, size_t size,
-+			   enum dma_data_direction direction)
-+{
-+	BUG_ON(dev->bus != &pci_bus_type);
-+
-+	pci_dma_sync_single_for_device(to_pci_dev(dev), dma_handle,
-+				       size, (int)direction);
-+}
-+
-+static inline void
-+dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, int nelems,
-+		    enum dma_data_direction direction)
-+{
-+	BUG_ON(dev->bus != &pci_bus_type);
-+
-+	pci_dma_sync_sg_for_cpu(to_pci_dev(dev), sg, nelems, (int)direction);
-+}
-+
-+static inline void
-+dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, int nelems,
-+		       enum dma_data_direction direction)
-+{
-+	BUG_ON(dev->bus != &pci_bus_type);
-+
-+	pci_dma_sync_sg_for_device(to_pci_dev(dev), sg, nelems, (int)direction);
-+}
-+
-+static inline int
-+dma_mapping_error(dma_addr_t dma_addr)
-+{
-+	return pci_dma_mapping_error(dma_addr);
-+}
-+
-+
-+#else
-+
-+static inline int
-+dma_supported(struct device *dev, u64 mask)
-+{
-+	return 0;
-+}
-+
-+static inline int
-+dma_set_mask(struct device *dev, u64 dma_mask)
-+{
-+	BUG();
-+	return 0;
-+}
-+
-+static inline void *
-+dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle,
-+		   int flag)
-+{
-+	BUG();
-+	return NULL;
-+}
-+
-+static inline void
-+dma_free_coherent(struct device *dev, size_t size, void *cpu_addr,
-+		    dma_addr_t dma_handle)
-+{
-+	BUG();
-+}
-+
-+static inline dma_addr_t
-+dma_map_single(struct device *dev, void *cpu_addr, size_t size,
-+	       enum dma_data_direction direction)
-+{
-+	BUG();
-+	return 0;
-+}
-+
-+static inline void
-+dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size,
-+		 enum dma_data_direction direction)
-+{
-+	BUG();
-+}
-+
-+static inline dma_addr_t
-+dma_map_page(struct device *dev, struct page *page,
-+	     unsigned long offset, size_t size,
-+	     enum dma_data_direction direction)
-+{
-+	BUG();
-+	return 0;
-+}
-+
-+static inline void
-+dma_unmap_page(struct device *dev, dma_addr_t dma_address, size_t size,
-+	       enum dma_data_direction direction)
-+{
-+	BUG();
-+}
-+
-+static inline int
-+dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
-+	   enum dma_data_direction direction)
-+{
-+	BUG();
-+	return 0;
-+}
-+
-+static inline void
-+dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nhwentries,
-+	     enum dma_data_direction direction)
-+{
-+	BUG();
-+}
-+
-+static inline void
-+dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, size_t size,
-+			enum dma_data_direction direction)
-+{
-+	BUG();
-+}
-+
-+static inline void
-+dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle, size_t size,
-+			   enum dma_data_direction direction)
-+{
-+	BUG();
-+}
-+
-+static inline void
-+dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, int nelems,
-+		    enum dma_data_direction direction)
-+{
-+	BUG();
-+}
-+
-+static inline void
-+dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, int nelems,
-+		       enum dma_data_direction direction)
-+{
-+	BUG();
-+}
-+
-+static inline int
-+dma_error(dma_addr_t dma_addr)
-+{
-+	return 0;
-+}
-+
-+#endif
-+
-+/* Now for the API extensions over the pci_ one */
-+
-+#define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f)
-+#define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h)
-+#define dma_is_consistent(d)	(1)
-+
-+static inline int
-+dma_get_cache_alignment(void)
-+{
-+	/* no easy way to get cache size on all processors, so return
-+	 * the maximum possible, to be safe */
-+	return (1 << L1_CACHE_SHIFT_MAX);
-+}
-+
-+static inline void
-+dma_sync_single_range_for_cpu(struct device *dev, dma_addr_t dma_handle,
-+			      unsigned long offset, size_t size,
-+			      enum dma_data_direction direction)
-+{
-+	/* just sync everything, that's all the pci API can do */
-+	dma_sync_single_for_cpu(dev, dma_handle, offset+size, direction);
-+}
-+
-+static inline void
-+dma_sync_single_range_for_device(struct device *dev, dma_addr_t dma_handle,
-+				 unsigned long offset, size_t size,
-+				 enum dma_data_direction direction)
-+{
-+	/* just sync everything, that's all the pci API can do */
-+	dma_sync_single_for_device(dev, dma_handle, offset+size, direction);
-+}
-+
-+static inline void
-+dma_cache_sync(void *vaddr, size_t size,
-+	       enum dma_data_direction direction)
-+{
-+	/* could define this in terms of the dma_cache ... operations,
-+	 * but if you get this on a platform, you should convert the platform
-+	 * to using the generic device DMA API */
-+	BUG();
-+}
-+
-+#endif
-+
---- linux/include/asm-generic/errno-base.h
-+++ linux/include/asm-generic/errno-base.h
-@@ -0,0 +1,39 @@
-+#ifndef _ASM_GENERIC_ERRNO_BASE_H
-+#define _ASM_GENERIC_ERRNO_BASE_H
-+
-+#define	EPERM		 1	/* Operation not permitted */
-+#define	ENOENT		 2	/* No such file or directory */
-+#define	ESRCH		 3	/* No such process */
-+#define	EINTR		 4	/* Interrupted system call */
-+#define	EIO		 5	/* I/O error */
-+#define	ENXIO		 6	/* No such device or address */
-+#define	E2BIG		 7	/* Argument list too long */
-+#define	ENOEXEC		 8	/* Exec format error */
-+#define	EBADF		 9	/* Bad file number */
-+#define	ECHILD		10	/* No child processes */
-+#define	EAGAIN		11	/* Try again */
-+#define	ENOMEM		12	/* Out of memory */
-+#define	EACCES		13	/* Permission denied */
-+#define	EFAULT		14	/* Bad address */
-+#define	ENOTBLK		15	/* Block device required */
-+#define	EBUSY		16	/* Device or resource busy */
-+#define	EEXIST		17	/* File exists */
-+#define	EXDEV		18	/* Cross-device link */
-+#define	ENODEV		19	/* No such device */
-+#define	ENOTDIR		20	/* Not a directory */
-+#define	EISDIR		21	/* Is a directory */
-+#define	EINVAL		22	/* Invalid argument */
-+#define	ENFILE		23	/* File table overflow */
-+#define	EMFILE		24	/* Too many open files */
-+#define	ENOTTY		25	/* Not a typewriter */
-+#define	ETXTBSY		26	/* Text file busy */
-+#define	EFBIG		27	/* File too large */
-+#define	ENOSPC		28	/* No space left on device */
-+#define	ESPIPE		29	/* Illegal seek */
-+#define	EROFS		30	/* Read-only file system */
-+#define	EMLINK		31	/* Too many links */
-+#define	EPIPE		32	/* Broken pipe */
-+#define	EDOM		33	/* Math argument out of domain of func */
-+#define	ERANGE		34	/* Math result not representable */
-+
-+#endif
---- linux/include/asm-generic/errno.h
-+++ linux/include/asm-generic/errno.h
-@@ -0,0 +1,100 @@
-+#ifndef _ASM_GENERIC_ERRNO_H
-+#define _ASM_GENERIC_ERRNO_H
-+
-+#include <asm-generic/errno-base.h>
-+
-+#define	EDEADLK		35	/* Resource deadlock would occur */
-+#define	ENAMETOOLONG	36	/* File name too long */
-+#define	ENOLCK		37	/* No record locks available */
-+#define	ENOSYS		38	/* Function not implemented */
-+#define	ENOTEMPTY	39	/* Directory not empty */
-+#define	ELOOP		40	/* Too many symbolic links encountered */
-+#define	EWOULDBLOCK	EAGAIN	/* Operation would block */
-+#define	ENOMSG		42	/* No message of desired type */
-+#define	EIDRM		43	/* Identifier removed */
-+#define	ECHRNG		44	/* Channel number out of range */
-+#define	EL2NSYNC	45	/* Level 2 not synchronized */
-+#define	EL3HLT		46	/* Level 3 halted */
-+#define	EL3RST		47	/* Level 3 reset */
-+#define	ELNRNG		48	/* Link number out of range */
-+#define	EUNATCH		49	/* Protocol driver not attached */
-+#define	ENOCSI		50	/* No CSI structure available */
-+#define	EL2HLT		51	/* Level 2 halted */
-+#define	EBADE		52	/* Invalid exchange */
-+#define	EBADR		53	/* Invalid request descriptor */
-+#define	EXFULL		54	/* Exchange full */
-+#define	ENOANO		55	/* No anode */
-+#define	EBADRQC		56	/* Invalid request code */
-+#define	EBADSLT		57	/* Invalid slot */
-+
-+#define	EDEADLOCK	EDEADLK
-+
-+#define	EBFONT		59	/* Bad font file format */
-+#define	ENOSTR		60	/* Device not a stream */
-+#define	ENODATA		61	/* No data available */
-+#define	ETIME		62	/* Timer expired */
-+#define	ENOSR		63	/* Out of streams resources */
-+#define	ENONET		64	/* Machine is not on the network */
-+#define	ENOPKG		65	/* Package not installed */
-+#define	EREMOTE		66	/* Object is remote */
-+#define	ENOLINK		67	/* Link has been severed */
-+#define	EADV		68	/* Advertise error */
-+#define	ESRMNT		69	/* Srmount error */
-+#define	ECOMM		70	/* Communication error on send */
-+#define	EPROTO		71	/* Protocol error */
-+#define	EMULTIHOP	72	/* Multihop attempted */
-+#define	EDOTDOT		73	/* RFS specific error */
-+#define	EBADMSG		74	/* Not a data message */
-+#define	EOVERFLOW	75	/* Value too large for defined data type */
-+#define	ENOTUNIQ	76	/* Name not unique on network */
-+#define	EBADFD		77	/* File descriptor in bad state */
-+#define	EREMCHG		78	/* Remote address changed */
-+#define	ELIBACC		79	/* Can not access a needed shared library */
-+#define	ELIBBAD		80	/* Accessing a corrupted shared library */
-+#define	ELIBSCN		81	/* .lib section in a.out corrupted */
-+#define	ELIBMAX		82	/* Attempting to link in too many shared libraries */
-+#define	ELIBEXEC	83	/* Cannot exec a shared library directly */
-+#define	EILSEQ		84	/* Illegal byte sequence */
-+#define	ERESTART	85	/* Interrupted system call should be restarted */
-+#define	ESTRPIPE	86	/* Streams pipe error */
-+#define	EUSERS		87	/* Too many users */
-+#define	ENOTSOCK	88	/* Socket operation on non-socket */
-+#define	EDESTADDRREQ	89	/* Destination address required */
-+#define	EMSGSIZE	90	/* Message too long */
-+#define	EPROTOTYPE	91	/* Protocol wrong type for socket */
-+#define	ENOPROTOOPT	92	/* Protocol not available */
-+#define	EPROTONOSUPPORT	93	/* Protocol not supported */
-+#define	ESOCKTNOSUPPORT	94	/* Socket type not supported */
-+#define	EOPNOTSUPP	95	/* Operation not supported on transport endpoint */
-+#define	EPFNOSUPPORT	96	/* Protocol family not supported */
-+#define	EAFNOSUPPORT	97	/* Address family not supported by protocol */
-+#define	EADDRINUSE	98	/* Address already in use */
-+#define	EADDRNOTAVAIL	99	/* Cannot assign requested address */
-+#define	ENETDOWN	100	/* Network is down */
-+#define	ENETUNREACH	101	/* Network is unreachable */
-+#define	ENETRESET	102	/* Network dropped connection because of reset */
-+#define	ECONNABORTED	103	/* Software caused connection abort */
-+#define	ECONNRESET	104	/* Connection reset by peer */
-+#define	ENOBUFS		105	/* No buffer space available */
-+#define	EISCONN		106	/* Transport endpoint is already connected */
-+#define	ENOTCONN	107	/* Transport endpoint is not connected */
-+#define	ESHUTDOWN	108	/* Cannot send after transport endpoint shutdown */
-+#define	ETOOMANYREFS	109	/* Too many references: cannot splice */
-+#define	ETIMEDOUT	110	/* Connection timed out */
-+#define	ECONNREFUSED	111	/* Connection refused */
-+#define	EHOSTDOWN	112	/* Host is down */
-+#define	EHOSTUNREACH	113	/* No route to host */
-+#define	EALREADY	114	/* Operation already in progress */
-+#define	EINPROGRESS	115	/* Operation now in progress */
-+#define	ESTALE		116	/* Stale NFS file handle */
-+#define	EUCLEAN		117	/* Structure needs cleaning */
-+#define	ENOTNAM		118	/* Not a XENIX named type file */
-+#define	ENAVAIL		119	/* No XENIX semaphores available */
-+#define	EISNAM		120	/* Is a named type file */
-+#define	EREMOTEIO	121	/* Remote I/O error */
-+#define	EDQUOT		122	/* Quota exceeded */
-+
-+#define	ENOMEDIUM	123	/* No medium found */
-+#define	EMEDIUMTYPE	124	/* Wrong medium type */
-+
-+#endif
---- linux/include/asm-generic/hdreg.h
-+++ linux/include/asm-generic/hdreg.h
-@@ -0,0 +1,8 @@
-+#warning <asm/hdreg.h> is obsolete, please do not use it
-+
-+#ifndef __ASM_GENERIC_HDREG_H
-+#define __ASM_GENERIC_HDREG_H
-+
-+typedef unsigned long ide_ioreg_t;
-+
-+#endif /* __ASM_GENERIC_HDREG_H */
---- linux/include/asm-generic/ide_iops.h
-+++ linux/include/asm-generic/ide_iops.h
-@@ -0,0 +1,38 @@
-+/* Generic I/O and MEMIO string operations.  */
-+
-+#define __ide_insw	insw
-+#define __ide_insl	insl
-+#define __ide_outsw	outsw
-+#define __ide_outsl	outsl
-+
-+static __inline__ void __ide_mm_insw(void __iomem *port, void *addr, u32 count)
-+{
-+	while (count--) {
-+		*(u16 *)addr = readw(port);
-+		addr += 2;
-+	}
-+}
-+
-+static __inline__ void __ide_mm_insl(void __iomem *port, void *addr, u32 count)
-+{
-+	while (count--) {
-+		*(u32 *)addr = readl(port);
-+		addr += 4;
-+	}
-+}
-+
-+static __inline__ void __ide_mm_outsw(void __iomem *port, void *addr, u32 count)
-+{
-+	while (count--) {
-+		writew(*(u16 *)addr, port);
-+		addr += 2;
-+	}
-+}
-+
-+static __inline__ void __ide_mm_outsl(void __iomem * port, void *addr, u32 count)
-+{
-+	while (count--) {
-+		writel(*(u32 *)addr, port);
-+		addr += 4;
-+	}
-+}
---- linux/include/asm-generic/iomap.h
-+++ linux/include/asm-generic/iomap.h
-@@ -0,0 +1,63 @@
-+#ifndef __GENERIC_IO_H
-+#define __GENERIC_IO_H
-+
-+#include <linux/linkage.h>
-+
-+/*
-+ * These are the "generic" interfaces for doing new-style
-+ * memory-mapped or PIO accesses. Architectures may do
-+ * their own arch-optimized versions, these just act as
-+ * wrappers around the old-style IO register access functions:
-+ * read[bwl]/write[bwl]/in[bwl]/out[bwl]
-+ *
-+ * Don't include this directly, include it from <asm/io.h>.
-+ */
-+
-+/*
-+ * Read/write from/to an (offsettable) iomem cookie. It might be a PIO
-+ * access or a MMIO access, these functions don't care. The info is
-+ * encoded in the hardware mapping set up by the mapping functions
-+ * (or the cookie itself, depending on implementation and hw).
-+ *
-+ * The generic routines just encode the PIO/MMIO as part of the
-+ * cookie, and coldly assume that the MMIO IO mappings are not
-+ * in the low address range. Architectures for which this is not
-+ * true can't use this generic implementation.
-+ */
-+extern unsigned int fastcall ioread8(void __iomem *);
-+extern unsigned int fastcall ioread16(void __iomem *);
-+extern unsigned int fastcall ioread32(void __iomem *);
-+
-+extern void fastcall iowrite8(u8, void __iomem *);
-+extern void fastcall iowrite16(u16, void __iomem *);
-+extern void fastcall iowrite32(u32, void __iomem *);
-+
-+/*
-+ * "string" versions of the above. Note that they
-+ * use native byte ordering for the accesses (on
-+ * the assumption that IO and memory agree on a
-+ * byte order, and CPU byteorder is irrelevant).
-+ *
-+ * They do _not_ update the port address. If you
-+ * want MMIO that copies stuff laid out in MMIO
-+ * memory across multiple ports, use "memcpy_toio()"
-+ * and friends.
-+ */
-+extern void fastcall ioread8_rep(void __iomem *port, void *buf, unsigned long count);
-+extern void fastcall ioread16_rep(void __iomem *port, void *buf, unsigned long count);
-+extern void fastcall ioread32_rep(void __iomem *port, void *buf, unsigned long count);
-+
-+extern void fastcall iowrite8_rep(void __iomem *port, const void *buf, unsigned long count);
-+extern void fastcall iowrite16_rep(void __iomem *port, const void *buf, unsigned long count);
-+extern void fastcall iowrite32_rep(void __iomem *port, const void *buf, unsigned long count);
-+
-+/* Create a virtual mapping cookie for an IO port range */
-+extern void __iomem *ioport_map(unsigned long port, unsigned int nr);
-+extern void ioport_unmap(void __iomem *);
-+
-+/* Create a virtual mapping cookie for a PCI BAR (memory or IO) */
-+struct pci_dev;
-+extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
-+extern void pci_iounmap(struct pci_dev *dev, void __iomem *);
-+
-+#endif
---- linux/include/asm-generic/local.h
-+++ linux/include/asm-generic/local.h
-@@ -0,0 +1,118 @@
-+#ifndef _ASM_GENERIC_LOCAL_H
-+#define _ASM_GENERIC_LOCAL_H
-+
-+// #include <linux/config.h>
-+#include <linux/percpu.h>
-+#include <linux/hardirq.h>
-+#include <asm/types.h>
-+
-+/* An unsigned long type for operations which are atomic for a single
-+ * CPU.  Usually used in combination with per-cpu variables. */
-+
-+#if BITS_PER_LONG == 32
-+/* Implement in terms of atomics. */
-+
-+/* Don't use typedef: don't want them to be mixed with atomic_t's. */
-+typedef struct
-+{
-+	atomic_t a;
-+} local_t;
-+
-+#define LOCAL_INIT(i)	{ ATOMIC_INIT(i) }
-+
-+#define local_read(l)	((unsigned long)atomic_read(&(l)->a))
-+#define local_set(l,i)	atomic_set((&(l)->a),(i))
-+#define local_inc(l)	atomic_inc(&(l)->a)
-+#define local_dec(l)	atomic_dec(&(l)->a)
-+#define local_add(i,l)	atomic_add((i),(&(l)->a))
-+#define local_sub(i,l)	atomic_sub((i),(&(l)->a))
-+
-+/* Non-atomic variants, ie. preemption disabled and won't be touched
-+ * in interrupt, etc.  Some archs can optimize this case well. */
-+#define __local_inc(l)		local_set((l), local_read(l) + 1)
-+#define __local_dec(l)		local_set((l), local_read(l) - 1)
-+#define __local_add(i,l)	local_set((l), local_read(l) + (i))
-+#define __local_sub(i,l)	local_set((l), local_read(l) - (i))
-+
-+#else /* ... can't use atomics. */
-+/* Implement in terms of three variables.
-+   Another option would be to use local_irq_save/restore. */
-+
-+typedef struct
-+{
-+	/* 0 = in hardirq, 1 = in softirq, 2 = usermode. */
-+	unsigned long v[3];
-+} local_t;
-+
-+#define _LOCAL_VAR(l)	((l)->v[!in_interrupt() + !in_irq()])
-+
-+#define LOCAL_INIT(i)	{ { (i), 0, 0 } }
-+
-+static inline unsigned long local_read(local_t *l)
-+{
-+	return l->v[0] + l->v[1] + l->v[2];
-+}
-+
-+static inline void local_set(local_t *l, unsigned long v)
-+{
-+	l->v[0] = v;
-+	l->v[1] = l->v[2] = 0;
-+}
-+
-+static inline void local_inc(local_t *l)
-+{
-+	preempt_disable();
-+	_LOCAL_VAR(l)++;
-+	preempt_enable();
-+}
-+
-+static inline void local_dec(local_t *l)
-+{
-+	preempt_disable();
-+	_LOCAL_VAR(l)--;
-+	preempt_enable();
-+}
-+
-+static inline void local_add(unsigned long v, local_t *l)
-+{
-+	preempt_disable();
-+	_LOCAL_VAR(l) += v;
-+	preempt_enable();
-+}
-+
-+static inline void local_sub(unsigned long v, local_t *l)
-+{
-+	preempt_disable();
-+	_LOCAL_VAR(l) -= v;
-+	preempt_enable();
-+}
-+
-+/* Non-atomic variants, ie. preemption disabled and won't be touched
-+ * in interrupt, etc.  Some archs can optimize this case well. */
-+#define __local_inc(l)		((l)->v[0]++)
-+#define __local_dec(l)		((l)->v[0]--)
-+#define __local_add(i,l)	((l)->v[0] += (i))
-+#define __local_sub(i,l)	((l)->v[0] -= (i))
-+
-+#endif /* Non-atomic implementation */
-+
-+/* Use these for per-cpu local_t variables: on some archs they are
-+ * much more efficient than these naive implementations.  Note they take
-+ * a variable (eg. mystruct.foo), not an address.
-+ */
-+#define cpu_local_read(v)	local_read(&__get_cpu_var(v))
-+#define cpu_local_set(v, i)	local_set(&__get_cpu_var(v), (i))
-+#define cpu_local_inc(v)	local_inc(&__get_cpu_var(v))
-+#define cpu_local_dec(v)	local_dec(&__get_cpu_var(v))
-+#define cpu_local_add(i, v)	local_add((i), &__get_cpu_var(v))
-+#define cpu_local_sub(i, v)	local_sub((i), &__get_cpu_var(v))
-+
-+/* Non-atomic increments, ie. preemption disabled and won't be touched
-+ * in interrupt, etc.  Some archs can optimize this case well.
-+ */
-+#define __cpu_local_inc(v)	__local_inc(&__get_cpu_var(v))
-+#define __cpu_local_dec(v)	__local_dec(&__get_cpu_var(v))
-+#define __cpu_local_add(i, v)	__local_add((i), &__get_cpu_var(v))
-+#define __cpu_local_sub(i, v)	__local_sub((i), &__get_cpu_var(v))
-+
-+#endif /* _ASM_GENERIC_LOCAL_H */
---- linux/include/asm-generic/pci-dma-compat.h
-+++ linux/include/asm-generic/pci-dma-compat.h
-@@ -0,0 +1,107 @@
-+/* include this file if the platform implements the dma_ DMA Mapping API
-+ * and wants to provide the pci_ DMA Mapping API in terms of it */
-+
-+#ifndef _ASM_GENERIC_PCI_DMA_COMPAT_H
-+#define _ASM_GENERIC_PCI_DMA_COMPAT_H
-+
-+#include <linux/dma-mapping.h>
-+
-+/* note pci_set_dma_mask isn't here, since it's a public function
-+ * exported from drivers/pci, use dma_supported instead */
-+
-+static inline int
-+pci_dma_supported(struct pci_dev *hwdev, u64 mask)
-+{
-+	return dma_supported(hwdev == NULL ? NULL : &hwdev->dev, mask);
-+}
-+
-+static inline void *
-+pci_alloc_consistent(struct pci_dev *hwdev, size_t size,
-+		     dma_addr_t *dma_handle)
-+{
-+	return dma_alloc_coherent(hwdev == NULL ? NULL : &hwdev->dev, size, dma_handle, GFP_ATOMIC);
-+}
-+
-+static inline void
-+pci_free_consistent(struct pci_dev *hwdev, size_t size,
-+		    void *vaddr, dma_addr_t dma_handle)
-+{
-+	dma_free_coherent(hwdev == NULL ? NULL : &hwdev->dev, size, vaddr, dma_handle);
-+}
-+
-+static inline dma_addr_t
-+pci_map_single(struct pci_dev *hwdev, void *ptr, size_t size, int direction)
-+{
-+	return dma_map_single(hwdev == NULL ? NULL : &hwdev->dev, ptr, size, (enum dma_data_direction)direction);
-+}
-+
-+static inline void
-+pci_unmap_single(struct pci_dev *hwdev, dma_addr_t dma_addr,
-+		 size_t size, int direction)
-+{
-+	dma_unmap_single(hwdev == NULL ? NULL : &hwdev->dev, dma_addr, size, (enum dma_data_direction)direction);
-+}
-+
-+static inline dma_addr_t
-+pci_map_page(struct pci_dev *hwdev, struct page *page,
-+	     unsigned long offset, size_t size, int direction)
-+{
-+	return dma_map_page(hwdev == NULL ? NULL : &hwdev->dev, page, offset, size, (enum dma_data_direction)direction);
-+}
-+
-+static inline void
-+pci_unmap_page(struct pci_dev *hwdev, dma_addr_t dma_address,
-+	       size_t size, int direction)
-+{
-+	dma_unmap_page(hwdev == NULL ? NULL : &hwdev->dev, dma_address, size, (enum dma_data_direction)direction);
-+}
-+
-+static inline int
-+pci_map_sg(struct pci_dev *hwdev, struct scatterlist *sg,
-+	   int nents, int direction)
-+{
-+	return dma_map_sg(hwdev == NULL ? NULL : &hwdev->dev, sg, nents, (enum dma_data_direction)direction);
-+}
-+
-+static inline void
-+pci_unmap_sg(struct pci_dev *hwdev, struct scatterlist *sg,
-+	     int nents, int direction)
-+{
-+	dma_unmap_sg(hwdev == NULL ? NULL : &hwdev->dev, sg, nents, (enum dma_data_direction)direction);
-+}
-+
-+static inline void
-+pci_dma_sync_single_for_cpu(struct pci_dev *hwdev, dma_addr_t dma_handle,
-+		    size_t size, int direction)
-+{
-+	dma_sync_single_for_cpu(hwdev == NULL ? NULL : &hwdev->dev, dma_handle, size, (enum dma_data_direction)direction);
-+}
-+
-+static inline void
-+pci_dma_sync_single_for_device(struct pci_dev *hwdev, dma_addr_t dma_handle,
-+		    size_t size, int direction)
-+{
-+	dma_sync_single_for_device(hwdev == NULL ? NULL : &hwdev->dev, dma_handle, size, (enum dma_data_direction)direction);
-+}
-+
-+static inline void
-+pci_dma_sync_sg_for_cpu(struct pci_dev *hwdev, struct scatterlist *sg,
-+		int nelems, int direction)
-+{
-+	dma_sync_sg_for_cpu(hwdev == NULL ? NULL : &hwdev->dev, sg, nelems, (enum dma_data_direction)direction);
-+}
-+
-+static inline void
-+pci_dma_sync_sg_for_device(struct pci_dev *hwdev, struct scatterlist *sg,
-+		int nelems, int direction)
-+{
-+	dma_sync_sg_for_device(hwdev == NULL ? NULL : &hwdev->dev, sg, nelems, (enum dma_data_direction)direction);
-+}
-+
-+static inline int
-+pci_dma_mapping_error(dma_addr_t dma_addr)
-+{
-+	return dma_mapping_error(dma_addr);
-+}
-+
-+#endif
---- linux/include/asm-generic/pci.h
-+++ linux/include/asm-generic/pci.h
-@@ -0,0 +1,27 @@
-+/*
-+ * linux/include/asm-generic/pci.h
-+ *
-+ *  Copyright (C) 2003 Russell King
-+ */
-+#ifndef _ASM_GENERIC_PCI_H
-+#define _ASM_GENERIC_PCI_H
-+
-+/**
-+ * pcibios_resource_to_bus - convert resource to PCI bus address
-+ * @dev: device which owns this resource
-+ * @region: converted bus-centric region (start,end)
-+ * @res: resource to convert
-+ *
-+ * Convert a resource to a PCI device bus address or bus window.
-+ */
-+static inline void
-+pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region,
-+			 struct resource *res)
-+{
-+	region->start = res->start;
-+	region->end = res->end;
-+}
-+
-+#define pcibios_scan_all_fns(a, b)	0
-+
-+#endif
---- linux/include/asm-generic/percpu.h
-+++ linux/include/asm-generic/percpu.h
-@@ -0,0 +1,42 @@
-+#ifndef _ASM_GENERIC_PERCPU_H_
-+#define _ASM_GENERIC_PERCPU_H_
-+#include <linux/compiler.h>
-+
-+#define __GENERIC_PER_CPU
-+#ifdef CONFIG_SMP
-+
-+extern unsigned long __per_cpu_offset[NR_CPUS];
-+
-+/* Separate out the type, so (int[3], foo) works. */
-+#define DEFINE_PER_CPU(type, name) \
-+    __attribute__((__section__(".data.percpu"))) __typeof__(type) per_cpu__##name
-+
-+/* var is in discarded region: offset to particular copy we want */
-+#define per_cpu(var, cpu) (*RELOC_HIDE(&per_cpu__##var, __per_cpu_offset[cpu]))
-+#define __get_cpu_var(var) per_cpu(var, smp_processor_id())
-+
-+/* A macro to avoid #include hell... */
-+#define percpu_modcopy(pcpudst, src, size)			\
-+do {								\
-+	unsigned int __i;					\
-+	for (__i = 0; __i < NR_CPUS; __i++)			\
-+		if (cpu_possible(__i))				\
-+			memcpy((pcpudst)+__per_cpu_offset[__i],	\
-+			       (src), (size));			\
-+} while (0)
-+#else /* ! SMP */
-+
-+#define DEFINE_PER_CPU(type, name) \
-+    __typeof__(type) per_cpu__##name
-+
-+#define per_cpu(var, cpu)			(*((void)cpu, &per_cpu__##var))
-+#define __get_cpu_var(var)			per_cpu__##var
-+
-+#endif	/* SMP */
-+
-+#define DECLARE_PER_CPU(type, name) extern __typeof__(type) per_cpu__##name
-+
-+#define EXPORT_PER_CPU_SYMBOL(var) EXPORT_SYMBOL(per_cpu__##var)
-+#define EXPORT_PER_CPU_SYMBOL_GPL(var) EXPORT_SYMBOL_GPL(per_cpu__##var)
-+
-+#endif /* _ASM_GENERIC_PERCPU_H_ */
---- linux/include/asm-generic/pgtable.h
-+++ linux/include/asm-generic/pgtable.h
-@@ -0,0 +1,137 @@
-+#ifndef _ASM_GENERIC_PGTABLE_H
-+#define _ASM_GENERIC_PGTABLE_H
-+
-+#ifndef __HAVE_ARCH_PTEP_ESTABLISH
-+/*
-+ * Establish a new mapping:
-+ *  - flush the old one
-+ *  - update the page tables
-+ *  - inform the TLB about the new one
-+ *
-+ * We hold the mm semaphore for reading and vma->vm_mm->page_table_lock.
-+ *
-+ * Note: the old pte is known to not be writable, so we don't need to
-+ * worry about dirty bits etc getting lost.
-+ */
-+#ifndef __HAVE_ARCH_SET_PTE_ATOMIC
-+#define ptep_establish(__vma, __address, __ptep, __entry)		\
-+do {				  					\
-+	set_pte(__ptep, __entry);					\
-+	flush_tlb_page(__vma, __address);				\
-+} while (0)
-+#else /* __HAVE_ARCH_SET_PTE_ATOMIC */
-+#define ptep_establish(__vma, __address, __ptep, __entry)		\
-+do {				  					\
-+	set_pte_atomic(__ptep, __entry);				\
-+	flush_tlb_page(__vma, __address);				\
-+} while (0)
-+#endif /* __HAVE_ARCH_SET_PTE_ATOMIC */
-+#endif
-+
-+#ifndef __HAVE_ARCH_PTEP_SET_ACCESS_FLAGS
-+/*
-+ * Largely same as above, but only sets the access flags (dirty,
-+ * accessed, and writable). Furthermore, we know it always gets set
-+ * to a "more permissive" setting, which allows most architectures
-+ * to optimize this.
-+ */
-+#define ptep_set_access_flags(__vma, __address, __ptep, __entry, __dirty) \
-+do {				  					  \
-+	set_pte(__ptep, __entry);					  \
-+	flush_tlb_page(__vma, __address);				  \
-+} while (0)
-+#endif
-+
-+#ifndef __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG
-+static inline int ptep_test_and_clear_young(pte_t *ptep)
-+{
-+	pte_t pte = *ptep;
-+	if (!pte_young(pte))
-+		return 0;
-+	set_pte(ptep, pte_mkold(pte));
-+	return 1;
-+}
-+#endif
-+
-+#ifndef __HAVE_ARCH_PTEP_CLEAR_YOUNG_FLUSH
-+#define ptep_clear_flush_young(__vma, __address, __ptep)		\
-+({									\
-+	int __young = ptep_test_and_clear_young(__ptep);		\
-+	if (__young)							\
-+		flush_tlb_page(__vma, __address);			\
-+	__young;							\
-+})
-+#endif
-+
-+#ifndef __HAVE_ARCH_PTEP_TEST_AND_CLEAR_DIRTY
-+static inline int ptep_test_and_clear_dirty(pte_t *ptep)
-+{
-+	pte_t pte = *ptep;
-+	if (!pte_dirty(pte))
-+		return 0;
-+	set_pte(ptep, pte_mkclean(pte));
-+	return 1;
-+}
-+#endif
-+
-+#ifndef __HAVE_ARCH_PTEP_CLEAR_DIRTY_FLUSH
-+#define ptep_clear_flush_dirty(__vma, __address, __ptep)		\
-+({									\
-+	int __dirty = ptep_test_and_clear_dirty(__ptep);		\
-+	if (__dirty)							\
-+		flush_tlb_page(__vma, __address);			\
-+	__dirty;							\
-+})
-+#endif
-+
-+#ifndef __HAVE_ARCH_PTEP_GET_AND_CLEAR
-+static inline pte_t ptep_get_and_clear(pte_t *ptep)
-+{
-+	pte_t pte = *ptep;
-+	pte_clear(ptep);
-+	return pte;
-+}
-+#endif
-+
-+#ifndef __HAVE_ARCH_PTEP_CLEAR_FLUSH
-+#define ptep_clear_flush(__vma, __address, __ptep)			\
-+({									\
-+	pte_t __pte = ptep_get_and_clear(__ptep);			\
-+	flush_tlb_page(__vma, __address);				\
-+	__pte;								\
-+})
-+#endif
-+
-+#ifndef __HAVE_ARCH_PTEP_SET_WRPROTECT
-+static inline void ptep_set_wrprotect(pte_t *ptep)
-+{
-+	pte_t old_pte = *ptep;
-+	set_pte(ptep, pte_wrprotect(old_pte));
-+}
-+#endif
-+
-+#ifndef __HAVE_ARCH_PTEP_MKDIRTY
-+static inline void ptep_mkdirty(pte_t *ptep)
-+{
-+	pte_t old_pte = *ptep;
-+	set_pte(ptep, pte_mkdirty(old_pte));
-+}
-+#endif
-+
-+#ifndef __HAVE_ARCH_PTE_SAME
-+#define pte_same(A,B)	(pte_val(A) == pte_val(B))
-+#endif
-+
-+#ifndef __HAVE_ARCH_PAGE_TEST_AND_CLEAR_DIRTY
-+#define page_test_and_clear_dirty(page) (0)
-+#endif
-+
-+#ifndef __HAVE_ARCH_PAGE_TEST_AND_CLEAR_YOUNG
-+#define page_test_and_clear_young(page) (0)
-+#endif
-+
-+#ifndef __HAVE_ARCH_PGD_OFFSET_GATE
-+#define pgd_offset_gate(mm, addr)	pgd_offset(mm, addr)
-+#endif
-+
-+#endif /* _ASM_GENERIC_PGTABLE_H */
---- linux/include/asm-generic/rmap.h
-+++ linux/include/asm-generic/rmap.h
-@@ -0,0 +1,90 @@
-+#ifndef _GENERIC_RMAP_H
-+#define _GENERIC_RMAP_H
-+/*
-+ * linux/include/asm-generic/rmap.h
-+ *
-+ * Architecture dependent parts of the reverse mapping code,
-+ * this version should work for most architectures with a
-+ * 'normal' page table layout.
-+ *
-+ * We use the struct page of the page table page to find out
-+ * the process and full address of a page table entry:
-+ * - page->mapping points to the process' mm_struct
-+ * - page->index has the high bits of the address
-+ * - the lower bits of the address are calculated from the
-+ *   offset of the page table entry within the page table page
-+ *
-+ * For CONFIG_HIGHPTE, we need to represent the address of a pte in a
-+ * scalar pte_addr_t.  The pfn of the pte's page is shifted left by PAGE_SIZE
-+ * bits and is then ORed with the byte offset of the pte within its page.
-+ *
-+ * For CONFIG_HIGHMEM4G, the pte_addr_t is 32 bits.  20 for the pfn, 12 for
-+ * the offset.
-+ *
-+ * For CONFIG_HIGHMEM64G, the pte_addr_t is 64 bits.  52 for the pfn, 12 for
-+ * the offset.
-+ */
-+#include <linux/mm.h>
-+
-+static inline void pgtable_add_rmap(struct page * page, struct mm_struct * mm, unsigned long address)
-+{
-+#ifdef BROKEN_PPC_PTE_ALLOC_ONE
-+	/* OK, so PPC calls pte_alloc() before mem_map[] is setup ... ;( */
-+	extern int mem_init_done;
-+
-+	if (!mem_init_done)
-+		return;
-+#endif
-+	page->mapping = (void *)mm;
-+	page->index = address & ~((PTRS_PER_PTE * PAGE_SIZE) - 1);
-+	inc_page_state(nr_page_table_pages);
-+}
-+
-+static inline void pgtable_remove_rmap(struct page * page)
-+{
-+	page->mapping = NULL;
-+	page->index = 0;
-+	dec_page_state(nr_page_table_pages);
-+}
-+
-+static inline struct mm_struct * ptep_to_mm(pte_t * ptep)
-+{
-+	struct page * page = kmap_atomic_to_page(ptep);
-+	return (struct mm_struct *) page->mapping;
-+}
-+
-+static inline unsigned long ptep_to_address(pte_t * ptep)
-+{
-+	struct page * page = kmap_atomic_to_page(ptep);
-+	unsigned long low_bits;
-+	low_bits = ((unsigned long)ptep & ~PAGE_MASK) * PTRS_PER_PTE;
-+	return page->index + low_bits;
-+}
-+
-+#ifdef CONFIG_HIGHPTE
-+static inline pte_addr_t ptep_to_paddr(pte_t *ptep)
-+{
-+	pte_addr_t paddr;
-+	paddr = ((pte_addr_t)page_to_pfn(kmap_atomic_to_page(ptep))) << PAGE_SHIFT;
-+	return paddr + (pte_addr_t)((unsigned long)ptep & ~PAGE_MASK);
-+}
-+#else
-+static inline pte_addr_t ptep_to_paddr(pte_t *ptep)
-+{
-+	return (pte_addr_t)ptep;
-+}
-+#endif
-+
-+#ifndef CONFIG_HIGHPTE
-+static inline pte_t *rmap_ptep_map(pte_addr_t pte_paddr)
-+{
-+	return (pte_t *)pte_paddr;
-+}
-+
-+static inline void rmap_ptep_unmap(pte_t *pte)
-+{
-+	return;
-+}
-+#endif
-+
-+#endif /* _GENERIC_RMAP_H */
---- linux/include/asm-generic/rtc.h
-+++ linux/include/asm-generic/rtc.h
-@@ -0,0 +1,213 @@
-+/* 
-+ * inclue/asm-generic/rtc.h
-+ *
-+ * Author: Tom Rini <trini@mvista.com>
-+ *
-+ * Based on:
-+ * drivers/char/rtc.c
-+ *
-+ * Please read the COPYING file for all license details.
-+ */
-+
-+#ifndef __ASM_RTC_H__
-+#define __ASM_RTC_H__
-+
-+#ifdef __KERNEL__
-+
-+#include <linux/mc146818rtc.h>
-+#include <linux/rtc.h>
-+#include <linux/bcd.h>
-+
-+#define RTC_PIE 0x40		/* periodic interrupt enable */
-+#define RTC_AIE 0x20		/* alarm interrupt enable */
-+#define RTC_UIE 0x10		/* update-finished interrupt enable */
-+
-+/* some dummy definitions */
-+#define RTC_BATT_BAD 0x100	/* battery bad */
-+#define RTC_SQWE 0x08		/* enable square-wave output */
-+#define RTC_DM_BINARY 0x04	/* all time/date values are BCD if clear */
-+#define RTC_24H 0x02		/* 24 hour mode - else hours bit 7 means pm */
-+#define RTC_DST_EN 0x01	        /* auto switch DST - works f. USA only */
-+
-+/*
-+ * Returns true if a clock update is in progress
-+ */
-+static inline unsigned char rtc_is_updating(void)
-+{
-+	unsigned char uip;
-+
-+	spin_lock_irq(&rtc_lock);
-+	uip = (CMOS_READ(RTC_FREQ_SELECT) & RTC_UIP);
-+	spin_unlock_irq(&rtc_lock);
-+	return uip;
-+}
-+
-+static inline unsigned int get_rtc_time(struct rtc_time *time)
-+{
-+	unsigned long uip_watchdog = jiffies;
-+	unsigned char ctrl;
-+#ifdef CONFIG_MACH_DECSTATION
-+	unsigned int real_year;
-+#endif
-+
-+	/*
-+	 * read RTC once any update in progress is done. The update
-+	 * can take just over 2ms. We wait 10 to 20ms. There is no need to
-+	 * to poll-wait (up to 1s - eeccch) for the falling edge of RTC_UIP.
-+	 * If you need to know *exactly* when a second has started, enable
-+	 * periodic update complete interrupts, (via ioctl) and then 
-+	 * immediately read /dev/rtc which will block until you get the IRQ.
-+	 * Once the read clears, read the RTC time (again via ioctl). Easy.
-+	 */
-+
-+	if (rtc_is_updating() != 0)
-+		while (jiffies - uip_watchdog < 2*HZ/100) {
-+			barrier();
-+			cpu_relax();
-+		}
-+
-+	/*
-+	 * Only the values that we read from the RTC are set. We leave
-+	 * tm_wday, tm_yday and tm_isdst untouched. Even though the
-+	 * RTC has RTC_DAY_OF_WEEK, we ignore it, as it is only updated
-+	 * by the RTC when initially set to a non-zero value.
-+	 */
-+	spin_lock_irq(&rtc_lock);
-+	time->tm_sec = CMOS_READ(RTC_SECONDS);
-+	time->tm_min = CMOS_READ(RTC_MINUTES);
-+	time->tm_hour = CMOS_READ(RTC_HOURS);
-+	time->tm_mday = CMOS_READ(RTC_DAY_OF_MONTH);
-+	time->tm_mon = CMOS_READ(RTC_MONTH);
-+	time->tm_year = CMOS_READ(RTC_YEAR);
-+#ifdef CONFIG_MACH_DECSTATION
-+	real_year = CMOS_READ(RTC_DEC_YEAR);
-+#endif
-+	ctrl = CMOS_READ(RTC_CONTROL);
-+	spin_unlock_irq(&rtc_lock);
-+
-+	if (!(ctrl & RTC_DM_BINARY) || RTC_ALWAYS_BCD)
-+	{
-+		BCD_TO_BIN(time->tm_sec);
-+		BCD_TO_BIN(time->tm_min);
-+		BCD_TO_BIN(time->tm_hour);
-+		BCD_TO_BIN(time->tm_mday);
-+		BCD_TO_BIN(time->tm_mon);
-+		BCD_TO_BIN(time->tm_year);
-+	}
-+
-+#ifdef CONFIG_MACH_DECSTATION
-+	time->tm_year += real_year - 72;
-+#endif
-+
-+	/*
-+	 * Account for differences between how the RTC uses the values
-+	 * and how they are defined in a struct rtc_time;
-+	 */
-+	if (time->tm_year <= 69)
-+		time->tm_year += 100;
-+
-+	time->tm_mon--;
-+
-+	return RTC_24H;
-+}
-+
-+/* Set the current date and time in the real time clock. */
-+static inline int set_rtc_time(struct rtc_time *time)
-+{
-+	unsigned char mon, day, hrs, min, sec;
-+	unsigned char save_control, save_freq_select;
-+	unsigned int yrs;
-+#ifdef CONFIG_MACH_DECSTATION
-+	unsigned int real_yrs, leap_yr;
-+#endif
-+
-+	yrs = time->tm_year;
-+	mon = time->tm_mon + 1;   /* tm_mon starts at zero */
-+	day = time->tm_mday;
-+	hrs = time->tm_hour;
-+	min = time->tm_min;
-+	sec = time->tm_sec;
-+
-+	if (yrs > 255)	/* They are unsigned */
-+		return -EINVAL;
-+
-+	spin_lock_irq(&rtc_lock);
-+#ifdef CONFIG_MACH_DECSTATION
-+	real_yrs = yrs;
-+	leap_yr = ((!((yrs + 1900) % 4) && ((yrs + 1900) % 100)) ||
-+			!((yrs + 1900) % 400));
-+	yrs = 72;
-+
-+	/*
-+	 * We want to keep the year set to 73 until March
-+	 * for non-leap years, so that Feb, 29th is handled
-+	 * correctly.
-+	 */
-+	if (!leap_yr && mon < 3) {
-+		real_yrs--;
-+		yrs = 73;
-+	}
-+#endif
-+	/* These limits and adjustments are independent of
-+	 * whether the chip is in binary mode or not.
-+	 */
-+	if (yrs > 169) {
-+		spin_unlock_irq(&rtc_lock);
-+		return -EINVAL;
-+	}
-+
-+	if (yrs >= 100)
-+		yrs -= 100;
-+
-+	if (!(CMOS_READ(RTC_CONTROL) & RTC_DM_BINARY)
-+	    || RTC_ALWAYS_BCD) {
-+		BIN_TO_BCD(sec);
-+		BIN_TO_BCD(min);
-+		BIN_TO_BCD(hrs);
-+		BIN_TO_BCD(day);
-+		BIN_TO_BCD(mon);
-+		BIN_TO_BCD(yrs);
-+	}
-+
-+	save_control = CMOS_READ(RTC_CONTROL);
-+	CMOS_WRITE((save_control|RTC_SET), RTC_CONTROL);
-+	save_freq_select = CMOS_READ(RTC_FREQ_SELECT);
-+	CMOS_WRITE((save_freq_select|RTC_DIV_RESET2), RTC_FREQ_SELECT);
-+
-+#ifdef CONFIG_MACH_DECSTATION
-+	CMOS_WRITE(real_yrs, RTC_DEC_YEAR);
-+#endif
-+	CMOS_WRITE(yrs, RTC_YEAR);
-+	CMOS_WRITE(mon, RTC_MONTH);
-+	CMOS_WRITE(day, RTC_DAY_OF_MONTH);
-+	CMOS_WRITE(hrs, RTC_HOURS);
-+	CMOS_WRITE(min, RTC_MINUTES);
-+	CMOS_WRITE(sec, RTC_SECONDS);
-+
-+	CMOS_WRITE(save_control, RTC_CONTROL);
-+	CMOS_WRITE(save_freq_select, RTC_FREQ_SELECT);
-+
-+	spin_unlock_irq(&rtc_lock);
-+
-+	return 0;
-+}
-+
-+static inline unsigned int get_rtc_ss(void)
-+{
-+	struct rtc_time h;
-+
-+	get_rtc_time(&h);
-+	return h.tm_sec;
-+}
-+
-+static inline int get_rtc_pll(struct rtc_pll_info *pll)
-+{
-+	return -EINVAL;
-+}
-+static inline int set_rtc_pll(struct rtc_pll_info *pll)
-+{
-+	return -EINVAL;
-+}
-+
-+#endif /* __KERNEL__ */
-+#endif /* __ASM_RTC_H__ */
---- linux/include/asm-generic/sections.h
-+++ linux/include/asm-generic/sections.h
-@@ -0,0 +1,12 @@
-+#ifndef _ASM_GENERIC_SECTIONS_H_
-+#define _ASM_GENERIC_SECTIONS_H_
-+
-+/* References to section boundaries */
-+
-+extern char _text[], _stext[], _etext[];
-+extern char _data[], _sdata[], _edata[];
-+extern char __bss_start[], __bss_stop[];
-+extern char __init_begin[], __init_end[];
-+extern char _sinittext[], _einittext[];
-+
-+#endif /* _ASM_GENERIC_SECTIONS_H_ */
---- linux/include/asm-generic/siginfo.h
-+++ linux/include/asm-generic/siginfo.h
-@@ -0,0 +1,295 @@
-+#ifndef _ASM_GENERIC_SIGINFO_H
-+#define _ASM_GENERIC_SIGINFO_H
-+
-+#include <linux/compiler.h>
-+#include <linux/types.h>
-+#include <linux/resource.h>
-+
-+typedef union sigval {
-+	int sival_int;
-+	void __user *sival_ptr;
-+} sigval_t;
-+
-+/*
-+ * This is the size (including padding) of the part of the
-+ * struct siginfo that is before the union.
-+ */
-+#ifndef __ARCH_SI_PREAMBLE_SIZE
-+#define __ARCH_SI_PREAMBLE_SIZE	(3 * sizeof(int))
-+#endif
-+
-+#define SI_MAX_SIZE	128
-+#ifndef SI_PAD_SIZE
-+#define SI_PAD_SIZE	((SI_MAX_SIZE - __ARCH_SI_PREAMBLE_SIZE) / sizeof(int))
-+#endif
-+
-+#ifndef __ARCH_SI_UID_T
-+#define __ARCH_SI_UID_T	uid_t
-+#endif
-+
-+/*
-+ * The default "si_band" type is "long", as specified by POSIX.
-+ * However, some architectures want to override this to "int"
-+ * for historical compatibility reasons, so we allow that.
-+ */
-+#ifndef __ARCH_SI_BAND_T
-+#define __ARCH_SI_BAND_T long
-+#endif
-+
-+#ifndef HAVE_ARCH_SIGINFO_T
-+
-+typedef struct siginfo {
-+	int si_signo;
-+	int si_errno;
-+	int si_code;
-+
-+	union {
-+		int _pad[SI_PAD_SIZE];
-+
-+		/* kill() */
-+		struct {
-+			pid_t _pid;		/* sender's pid */
-+			__ARCH_SI_UID_T _uid;	/* sender's uid */
-+		} _kill;
-+
-+		/* POSIX.1b timers */
-+		struct {
-+			timer_t _tid;		/* timer id */
-+			int _overrun;		/* overrun count */
-+			char _pad[sizeof( __ARCH_SI_UID_T) - sizeof(int)];
-+			sigval_t _sigval;	/* same as below */
-+			int _sys_private;       /* not to be passed to user */
-+		} _timer;
-+
-+		/* POSIX.1b signals */
-+		struct {
-+			pid_t _pid;		/* sender's pid */
-+			__ARCH_SI_UID_T _uid;	/* sender's uid */
-+			sigval_t _sigval;
-+		} _rt;
-+
-+		/* SIGCHLD */
-+		struct {
-+			pid_t _pid;		/* which child */
-+			__ARCH_SI_UID_T _uid;	/* sender's uid */
-+			int _status;		/* exit code */
-+			clock_t _utime;
-+			clock_t _stime;
-+		} _sigchld;
-+
-+		/* SIGILL, SIGFPE, SIGSEGV, SIGBUS */
-+		struct {
-+			void __user *_addr; /* faulting insn/memory ref. */
-+#ifdef __ARCH_SI_TRAPNO
-+			int _trapno;	/* TRAP # which caused the signal */
-+#endif
-+		} _sigfault;
-+
-+		/* SIGPOLL */
-+		struct {
-+			__ARCH_SI_BAND_T _band;	/* POLL_IN, POLL_OUT, POLL_MSG */
-+			int _fd;
-+		} _sigpoll;
-+	} _sifields;
-+} siginfo_t;
-+
-+#endif
-+
-+/*
-+ * How these fields are to be accessed.
-+ */
-+#define si_pid		_sifields._kill._pid
-+#define si_uid		_sifields._kill._uid
-+#define si_tid		_sifields._timer._tid
-+#define si_overrun	_sifields._timer._overrun
-+#define si_sys_private  _sifields._timer._sys_private
-+#define si_status	_sifields._sigchld._status
-+#define si_utime	_sifields._sigchld._utime
-+#define si_stime	_sifields._sigchld._stime
-+#define si_value	_sifields._rt._sigval
-+#define si_int		_sifields._rt._sigval.sival_int
-+#define si_ptr		_sifields._rt._sigval.sival_ptr
-+#define si_addr		_sifields._sigfault._addr
-+#ifdef __ARCH_SI_TRAPNO
-+#define si_trapno	_sifields._sigfault._trapno
-+#endif
-+#define si_band		_sifields._sigpoll._band
-+#define si_fd		_sifields._sigpoll._fd
-+
-+#ifdef __KERNEL__
-+#define __SI_MASK	0xffff0000u
-+#define __SI_KILL	(0 << 16)
-+#define __SI_TIMER	(1 << 16)
-+#define __SI_POLL	(2 << 16)
-+#define __SI_FAULT	(3 << 16)
-+#define __SI_CHLD	(4 << 16)
-+#define __SI_RT		(5 << 16)
-+#define __SI_MESGQ	(6 << 16)
-+#define __SI_CODE(T,N)	((T) | ((N) & 0xffff))
-+#else
-+#define __SI_KILL	0
-+#define __SI_TIMER	0
-+#define __SI_POLL	0
-+#define __SI_FAULT	0
-+#define __SI_CHLD	0
-+#define __SI_RT		0
-+#define __SI_MESGQ	0
-+#define __SI_CODE(T,N)	(N)
-+#endif
-+
-+/*
-+ * si_code values
-+ * Digital reserves positive values for kernel-generated signals.
-+ */
-+#define SI_USER		0		/* sent by kill, sigsend, raise */
-+#define SI_KERNEL	0x80		/* sent by the kernel from somewhere */
-+#define SI_QUEUE	-1		/* sent by sigqueue */
-+#define SI_TIMER __SI_CODE(__SI_TIMER,-2) /* sent by timer expiration */
-+#define SI_MESGQ __SI_CODE(__SI_MESGQ,-3) /* sent by real time mesq state change */
-+#define SI_ASYNCIO	-4		/* sent by AIO completion */
-+#define SI_SIGIO	-5		/* sent by queued SIGIO */
-+#define SI_TKILL	-6		/* sent by tkill system call */
-+#define SI_DETHREAD	-7		/* sent by execve() killing subsidiary threads */
-+
-+#define SI_FROMUSER(siptr)	((siptr)->si_code <= 0)
-+#define SI_FROMKERNEL(siptr)	((siptr)->si_code > 0)
-+
-+#ifndef HAVE_ARCH_SI_CODES
-+/*
-+ * SIGILL si_codes
-+ */
-+#define ILL_ILLOPC	(__SI_FAULT|1)	/* illegal opcode */
-+#define ILL_ILLOPN	(__SI_FAULT|2)	/* illegal operand */
-+#define ILL_ILLADR	(__SI_FAULT|3)	/* illegal addressing mode */
-+#define ILL_ILLTRP	(__SI_FAULT|4)	/* illegal trap */
-+#define ILL_PRVOPC	(__SI_FAULT|5)	/* privileged opcode */
-+#define ILL_PRVREG	(__SI_FAULT|6)	/* privileged register */
-+#define ILL_COPROC	(__SI_FAULT|7)	/* coprocessor error */
-+#define ILL_BADSTK	(__SI_FAULT|8)	/* internal stack error */
-+#define NSIGILL		8
-+
-+/*
-+ * SIGFPE si_codes
-+ */
-+#define FPE_INTDIV	(__SI_FAULT|1)	/* integer divide by zero */
-+#define FPE_INTOVF	(__SI_FAULT|2)	/* integer overflow */
-+#define FPE_FLTDIV	(__SI_FAULT|3)	/* floating point divide by zero */
-+#define FPE_FLTOVF	(__SI_FAULT|4)	/* floating point overflow */
-+#define FPE_FLTUND	(__SI_FAULT|5)	/* floating point underflow */
-+#define FPE_FLTRES	(__SI_FAULT|6)	/* floating point inexact result */
-+#define FPE_FLTINV	(__SI_FAULT|7)	/* floating point invalid operation */
-+#define FPE_FLTSUB	(__SI_FAULT|8)	/* subscript out of range */
-+#define NSIGFPE		8
-+
-+/*
-+ * SIGSEGV si_codes
-+ */
-+#define SEGV_MAPERR	(__SI_FAULT|1)	/* address not mapped to object */
-+#define SEGV_ACCERR	(__SI_FAULT|2)	/* invalid permissions for mapped object */
-+#define NSIGSEGV	2
-+
-+/*
-+ * SIGBUS si_codes
-+ */
-+#define BUS_ADRALN	(__SI_FAULT|1)	/* invalid address alignment */
-+#define BUS_ADRERR	(__SI_FAULT|2)	/* non-existant physical address */
-+#define BUS_OBJERR	(__SI_FAULT|3)	/* object specific hardware error */
-+#define NSIGBUS		3
-+
-+/*
-+ * SIGTRAP si_codes
-+ */
-+#define TRAP_BRKPT	(__SI_FAULT|1)	/* process breakpoint */
-+#define TRAP_TRACE	(__SI_FAULT|2)	/* process trace trap */
-+#define NSIGTRAP	2
-+
-+/*
-+ * SIGCHLD si_codes
-+ */
-+#define CLD_EXITED	(__SI_CHLD|1)	/* child has exited */
-+#define CLD_KILLED	(__SI_CHLD|2)	/* child was killed */
-+#define CLD_DUMPED	(__SI_CHLD|3)	/* child terminated abnormally */
-+#define CLD_TRAPPED	(__SI_CHLD|4)	/* traced child has trapped */
-+#define CLD_STOPPED	(__SI_CHLD|5)	/* child has stopped */
-+#define CLD_CONTINUED	(__SI_CHLD|6)	/* stopped child has continued */
-+#define NSIGCHLD	6
-+
-+/*
-+ * SIGPOLL si_codes
-+ */
-+#define POLL_IN		(__SI_POLL|1)	/* data input available */
-+#define POLL_OUT	(__SI_POLL|2)	/* output buffers available */
-+#define POLL_MSG	(__SI_POLL|3)	/* input message available */
-+#define POLL_ERR	(__SI_POLL|4)	/* i/o error */
-+#define POLL_PRI	(__SI_POLL|5)	/* high priority input available */
-+#define POLL_HUP	(__SI_POLL|6)	/* device disconnected */
-+#define NSIGPOLL	6
-+
-+#endif
-+
-+/*
-+ * sigevent definitions
-+ * 
-+ * It seems likely that SIGEV_THREAD will have to be handled from 
-+ * userspace, libpthread transmuting it to SIGEV_SIGNAL, which the
-+ * thread manager then catches and does the appropriate nonsense.
-+ * However, everything is written out here so as to not get lost.
-+ */
-+#define SIGEV_SIGNAL	0	/* notify via signal */
-+#define SIGEV_NONE	1	/* other notification: meaningless */
-+#define SIGEV_THREAD	2	/* deliver via thread creation */
-+#define SIGEV_THREAD_ID 4	/* deliver to thread */
-+
-+#define SIGEV_MAX_SIZE	64
-+#ifndef SIGEV_PAD_SIZE
-+#define SIGEV_PAD_SIZE	((SIGEV_MAX_SIZE/sizeof(int)) - 3)
-+#endif
-+
-+#ifndef HAVE_ARCH_SIGEVENT_T
-+
-+typedef struct sigevent {
-+	sigval_t sigev_value;
-+	int sigev_signo;
-+	int sigev_notify;
-+	union {
-+		int _pad[SIGEV_PAD_SIZE];
-+		 int _tid;
-+
-+		struct {
-+			void (*_function)(sigval_t);
-+			void *_attribute;	/* really pthread_attr_t */
-+		} _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
-+
-+#ifdef __KERNEL__
-+
-+struct siginfo;
-+void do_schedule_next_timer(struct siginfo *info);
-+
-+#ifndef HAVE_ARCH_COPY_SIGINFO
-+
-+#include <linux/string.h>
-+
-+static inline void copy_siginfo(struct siginfo *to, struct siginfo *from)
-+{
-+	if (from->si_code < 0)
-+		memcpy(to, from, sizeof(*to));
-+	else
-+		/* _sigchld is currently the largest know union member */
-+		memcpy(to, from, __ARCH_SI_PREAMBLE_SIZE + sizeof(from->_sifields._sigchld));
-+}
-+
-+#endif
-+
-+extern int copy_siginfo_to_user(struct siginfo __user *to, struct siginfo *from);
-+
-+#endif /* __KERNEL__ */
-+
-+#endif
---- linux/include/asm-generic/statfs.h
-+++ linux/include/asm-generic/statfs.h
-@@ -0,0 +1,51 @@
-+#ifndef _GENERIC_STATFS_H
-+#define _GENERIC_STATFS_H
-+
-+#ifndef __KERNEL_STRICT_NAMES
-+# include <linux/types.h>
-+typedef __kernel_fsid_t	fsid_t;
-+#endif
-+
-+struct statfs {
-+	__u32 f_type;
-+	__u32 f_bsize;
-+	__u32 f_blocks;
-+	__u32 f_bfree;
-+	__u32 f_bavail;
-+	__u32 f_files;
-+	__u32 f_ffree;
-+	__kernel_fsid_t f_fsid;
-+	__u32 f_namelen;
-+	__u32 f_frsize;
-+	__u32 f_spare[5];
-+};
-+
-+struct statfs64 {
-+	__u32 f_type;
-+	__u32 f_bsize;
-+	__u64 f_blocks;
-+	__u64 f_bfree;
-+	__u64 f_bavail;
-+	__u64 f_files;
-+	__u64 f_ffree;
-+	__kernel_fsid_t f_fsid;
-+	__u32 f_namelen;
-+	__u32 f_frsize;
-+	__u32 f_spare[5];
-+};
-+
-+struct compat_statfs64 {
-+	__u32 f_type;
-+	__u32 f_bsize;
-+	__u64 f_blocks;
-+	__u64 f_bfree;
-+	__u64 f_bavail;
-+	__u64 f_files;
-+	__u64 f_ffree;
-+	__kernel_fsid_t f_fsid;
-+	__u32 f_namelen;
-+	__u32 f_frsize;
-+	__u32 f_spare[5];
-+};
-+
-+#endif
---- linux/include/asm-generic/tlb.h
-+++ linux/include/asm-generic/tlb.h
-@@ -0,0 +1,152 @@
-+/* asm-generic/tlb.h
-+ *
-+ *	Generic TLB shootdown code
-+ *
-+ * Copyright 2001 Red Hat, Inc.
-+ * Based on code from mm/memory.c Copyright Linus Torvalds and others.
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version
-+ * 2 of the License, or (at your option) any later version.
-+ */
-+#ifndef _ASM_GENERIC__TLB_H
-+#define _ASM_GENERIC__TLB_H
-+
-+// #include <linux/config.h>
-+#include <linux/swap.h>
-+#include <asm/pgalloc.h>
-+#include <asm/tlbflush.h>
-+
-+/*
-+ * For UP we don't need to worry about TLB flush
-+ * and page free order so much..
-+ */
-+#ifdef CONFIG_SMP
-+  #define FREE_PTE_NR	506
-+  #define tlb_fast_mode(tlb) ((tlb)->nr == ~0U)
-+#else
-+  #define FREE_PTE_NR	1
-+  #define tlb_fast_mode(tlb) 1
-+#endif
-+
-+/* struct mmu_gather is an opaque type used by the mm code for passing around
-+ * any data needed by arch specific code for tlb_remove_page.  This structure
-+ * can be per-CPU or per-MM as the page table lock is held for the duration of
-+ * TLB shootdown.
-+ */
-+struct mmu_gather {
-+	struct mm_struct	*mm;
-+	unsigned int		nr;	/* set to ~0U means fast mode */
-+	unsigned int		need_flush;/* Really unmapped some ptes? */
-+	unsigned int		fullmm; /* non-zero means full mm flush */
-+	unsigned long		freed;
-+	struct page *		pages[FREE_PTE_NR];
-+};
-+
-+/* Users of the generic TLB shootdown code must declare this storage space. */
-+DECLARE_PER_CPU(struct mmu_gather, mmu_gathers);
-+
-+/* tlb_gather_mmu
-+ *	Return a pointer to an initialized struct mmu_gather.
-+ */
-+static inline struct mmu_gather *
-+tlb_gather_mmu(struct mm_struct *mm, unsigned int full_mm_flush)
-+{
-+	struct mmu_gather *tlb = &per_cpu(mmu_gathers, smp_processor_id());
-+
-+	tlb->mm = mm;
-+
-+	/* Use fast mode if only one CPU is online */
-+	tlb->nr = num_online_cpus() > 1 ? 0U : ~0U;
-+
-+	tlb->fullmm = full_mm_flush;
-+	tlb->freed = 0;
-+
-+	return tlb;
-+}
-+
-+static inline void
-+tlb_flush_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end)
-+{
-+	if (!tlb->need_flush)
-+		return;
-+	tlb->need_flush = 0;
-+	tlb_flush(tlb);
-+	if (!tlb_fast_mode(tlb)) {
-+		free_pages_and_swap_cache(tlb->pages, tlb->nr);
-+		tlb->nr = 0;
-+	}
-+}
-+
-+/* tlb_finish_mmu
-+ *	Called at the end of the shootdown operation to free up any resources
-+ *	that were required.  The page table lock is still held at this point.
-+ */
-+static inline void
-+tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end)
-+{
-+	int freed = tlb->freed;
-+	struct mm_struct *mm = tlb->mm;
-+	int rss = mm->rss;
-+
-+	if (rss < freed)
-+		freed = rss;
-+	mm->rss = rss - freed;
-+	tlb_flush_mmu(tlb, start, end);
-+
-+	/* keep the page table cache within bounds */
-+	check_pgt_cache();
-+}
-+
-+static inline unsigned int
-+tlb_is_full_mm(struct mmu_gather *tlb)
-+{
-+	return tlb->fullmm;
-+}
-+
-+/* tlb_remove_page
-+ *	Must perform the equivalent to __free_pte(pte_get_and_clear(ptep)), while
-+ *	handling the additional races in SMP caused by other CPUs caching valid
-+ *	mappings in their TLBs.
-+ */
-+static inline void tlb_remove_page(struct mmu_gather *tlb, struct page *page)
-+{
-+	tlb->need_flush = 1;
-+	if (tlb_fast_mode(tlb)) {
-+		free_page_and_swap_cache(page);
-+		return;
-+	}
-+	tlb->pages[tlb->nr++] = page;
-+	if (tlb->nr >= FREE_PTE_NR)
-+		tlb_flush_mmu(tlb, 0, 0);
-+}
-+
-+/**
-+ * tlb_remove_tlb_entry - remember a pte unmapping for later tlb invalidation.
-+ *
-+ * Record the fact that pte's were really umapped in ->need_flush, so we can
-+ * later optimise away the tlb invalidate.   This helps when userspace is
-+ * unmapping already-unmapped pages, which happens quite a lot.
-+ */
-+#define tlb_remove_tlb_entry(tlb, ptep, address)		\
-+	do {							\
-+		tlb->need_flush = 1;				\
-+		__tlb_remove_tlb_entry(tlb, ptep, address);	\
-+	} while (0)
-+
-+#define pte_free_tlb(tlb, ptep)					\
-+	do {							\
-+		tlb->need_flush = 1;				\
-+		__pte_free_tlb(tlb, ptep);			\
-+	} while (0)
-+
-+#define pmd_free_tlb(tlb, pmdp)					\
-+	do {							\
-+		tlb->need_flush = 1;				\
-+		__pmd_free_tlb(tlb, pmdp);			\
-+	} while (0)
-+
-+#define tlb_migrate_finish(mm) do {} while (0)
-+
-+#endif /* _ASM_GENERIC__TLB_H */
---- linux/include/asm-generic/topology.h
-+++ linux/include/asm-generic/topology.h
-@@ -0,0 +1,53 @@
-+/*
-+ * linux/include/asm-generic/topology.h
-+ *
-+ * Written by: Matthew Dobson, IBM Corporation
-+ *
-+ * Copyright (C) 2002, IBM Corp.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ * Send feedback to <colpatch@us.ibm.com>
-+ */
-+#ifndef _ASM_GENERIC_TOPOLOGY_H
-+#define _ASM_GENERIC_TOPOLOGY_H
-+
-+/* Other architectures wishing to use this simple topology API should fill
-+   in the below functions as appropriate in their own <asm/topology.h> file. */
-+#ifndef cpu_to_node
-+#define cpu_to_node(cpu)	(0)
-+#endif
-+#ifndef parent_node
-+#define parent_node(node)	(0)
-+#endif
-+#ifndef node_to_cpumask
-+#define node_to_cpumask(node)	(cpu_online_map)
-+#endif
-+#ifndef node_to_first_cpu
-+#define node_to_first_cpu(node)	(0)
-+#endif
-+#ifndef pcibus_to_cpumask
-+#define pcibus_to_cpumask(bus)	(cpu_online_map)
-+#endif
-+
-+/* Cross-node load balancing interval. */
-+#ifndef NODE_BALANCE_RATE
-+#define NODE_BALANCE_RATE 10
-+#endif
-+
-+#endif /* _ASM_GENERIC_TOPOLOGY_H */
---- linux/include/asm-generic/uaccess.h
-+++ linux/include/asm-generic/uaccess.h
-@@ -0,0 +1,26 @@
-+#ifndef _ASM_GENERIC_UACCESS_H_
-+#define _ASM_GENERIC_UACCESS_H_
-+
-+/*
-+ * This macro should be used instead of __get_user() when accessing
-+ * values at locations that are not known to be aligned.
-+ */
-+#define __get_user_unaligned(x, ptr)					\
-+({									\
-+	__typeof__ (*(ptr)) __x;					\
-+	__copy_from_user(&__x, (ptr), sizeof(*(ptr))) ? -EFAULT : 0;	\
-+	(x) = __x;							\
-+})
-+
-+
-+/*
-+ * This macro should be used instead of __put_user() when accessing
-+ * values at locations that are not known to be aligned.
-+ */
-+#define __put_user_unaligned(x, ptr)					\
-+({									\
-+	__typeof__ (*(ptr)) __x = (x);					\
-+	__copy_to_user((ptr), &__x, sizeof(*(ptr))) ? -EFAULT : 0;	\
-+})
-+
-+#endif /* _ASM_GENERIC_UACCESS_H */
---- linux/include/asm-generic/unaligned.h
-+++ linux/include/asm-generic/unaligned.h
-@@ -0,0 +1,20 @@
-+#ifndef _ASM_GENERIC_UNALIGNED_H_
-+#define _ASM_GENERIC_UNALIGNED_H_
-+
-+/*
-+ * For the benefit of those who are trying to port Linux to another
-+ * architecture, here are some C-language equivalents. 
-+ */
-+
-+#include <asm/string.h>
-+
-+
-+#define get_unaligned(ptr) \
-+  ({ __typeof__(*(ptr)) __tmp; memcpy(&__tmp, (ptr), sizeof(*(ptr))); __tmp; })
-+
-+#define put_unaligned(val, ptr)				\
-+  ({ __typeof__(*(ptr)) __tmp = (val);			\
-+     memcpy((ptr), &__tmp, sizeof(*(ptr)));		\
-+     (void)0; })
-+
-+#endif /* _ASM_GENERIC_UNALIGNED_H */
---- linux/include/asm-generic/vmlinux.lds.h
-+++ linux/include/asm-generic/vmlinux.lds.h
-@@ -0,0 +1,84 @@
-+#ifndef LOAD_OFFSET
-+#define LOAD_OFFSET 0
-+#endif
-+
-+#ifndef VMLINUX_SYMBOL
-+#define VMLINUX_SYMBOL(_sym_) _sym_
-+#endif
-+
-+#define RODATA								\
-+	.rodata           : AT(ADDR(.rodata) - LOAD_OFFSET) {		\
-+		*(.rodata) *(.rodata.*)					\
-+		*(__vermagic)		/* Kernel version magic */	\
-+	}								\
-+									\
-+	.rodata1          : AT(ADDR(.rodata1) - LOAD_OFFSET) {		\
-+		*(.rodata1)						\
-+	}								\
-+									\
-+	/* PCI quirks */						\
-+	.pci_fixup        : AT(ADDR(.pci_fixup) - LOAD_OFFSET) {	\
-+		VMLINUX_SYMBOL(__start_pci_fixups_header) = .;		\
-+		*(.pci_fixup_header)					\
-+		VMLINUX_SYMBOL(__end_pci_fixups_header) = .;		\
-+		VMLINUX_SYMBOL(__start_pci_fixups_final) = .;		\
-+		*(.pci_fixup_final)					\
-+		VMLINUX_SYMBOL(__end_pci_fixups_final) = .;		\
-+	}								\
-+									\
-+	/* Kernel symbol table: Normal symbols */			\
-+	__ksymtab         : AT(ADDR(__ksymtab) - LOAD_OFFSET) {		\
-+		VMLINUX_SYMBOL(__start___ksymtab) = .;			\
-+		*(__ksymtab)						\
-+		VMLINUX_SYMBOL(__stop___ksymtab) = .;			\
-+	}								\
-+									\
-+	/* Kernel symbol table: GPL-only symbols */			\
-+	__ksymtab_gpl     : AT(ADDR(__ksymtab_gpl) - LOAD_OFFSET) {	\
-+		VMLINUX_SYMBOL(__start___ksymtab_gpl) = .;		\
-+		*(__ksymtab_gpl)					\
-+		VMLINUX_SYMBOL(__stop___ksymtab_gpl) = .;		\
-+	}								\
-+									\
-+	/* Kernel symbol table: Normal symbols */			\
-+	__kcrctab         : AT(ADDR(__kcrctab) - LOAD_OFFSET) {		\
-+		VMLINUX_SYMBOL(__start___kcrctab) = .;			\
-+		*(__kcrctab)						\
-+		VMLINUX_SYMBOL(__stop___kcrctab) = .;			\
-+	}								\
-+									\
-+	/* Kernel symbol table: GPL-only symbols */			\
-+	__kcrctab_gpl     : AT(ADDR(__kcrctab_gpl) - LOAD_OFFSET) {	\
-+		VMLINUX_SYMBOL(__start___kcrctab_gpl) = .;		\
-+		*(__kcrctab_gpl)					\
-+		VMLINUX_SYMBOL(__stop___kcrctab_gpl) = .;		\
-+	}								\
-+									\
-+	/* Kernel symbol table: strings */				\
-+        __ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) {	\
-+		*(__ksymtab_strings)					\
-+	}								\
-+									\
-+	/* Built-in module parameters. */				\
-+	__param : AT(ADDR(__param) - LOAD_OFFSET) {			\
-+		VMLINUX_SYMBOL(__start___param) = .;			\
-+		*(__param)						\
-+		VMLINUX_SYMBOL(__stop___param) = .;			\
-+	}
-+
-+#define SECURITY_INIT							\
-+	.security_initcall.init : {					\
-+		VMLINUX_SYMBOL(__security_initcall_start) = .;		\
-+		*(.security_initcall.init) 				\
-+		VMLINUX_SYMBOL(__security_initcall_end) = .;		\
-+	}
-+
-+#define SCHED_TEXT							\
-+		VMLINUX_SYMBOL(__sched_text_start) = .;			\
-+		*(.sched.text)						\
-+		VMLINUX_SYMBOL(__sched_text_end) = .;
-+
-+#define LOCK_TEXT							\
-+		VMLINUX_SYMBOL(__lock_text_start) = .;			\
-+		*(.spinlock.text)					\
-+		VMLINUX_SYMBOL(__lock_text_end) = .;
---- linux/include/asm-generic/xor.h
-+++ linux/include/asm-generic/xor.h
-@@ -0,0 +1,718 @@
-+/*
-+ * include/asm-generic/xor.h
-+ *
-+ * Generic optimized RAID-5 checksumming functions.
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2, or (at your option)
-+ * any later version.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * (for example /usr/src/linux/COPYING); if not, write to the Free
-+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ */
-+
-+#include <asm/processor.h>
-+
-+static void
-+xor_8regs_2(unsigned long bytes, unsigned long *p1, unsigned long *p2)
-+{
-+	long lines = bytes / (sizeof (long)) / 8;
-+
-+	do {
-+		p1[0] ^= p2[0];
-+		p1[1] ^= p2[1];
-+		p1[2] ^= p2[2];
-+		p1[3] ^= p2[3];
-+		p1[4] ^= p2[4];
-+		p1[5] ^= p2[5];
-+		p1[6] ^= p2[6];
-+		p1[7] ^= p2[7];
-+		p1 += 8;
-+		p2 += 8;
-+	} while (--lines > 0);
-+}
-+
-+static void
-+xor_8regs_3(unsigned long bytes, unsigned long *p1, unsigned long *p2,
-+	    unsigned long *p3)
-+{
-+	long lines = bytes / (sizeof (long)) / 8;
-+
-+	do {
-+		p1[0] ^= p2[0] ^ p3[0];
-+		p1[1] ^= p2[1] ^ p3[1];
-+		p1[2] ^= p2[2] ^ p3[2];
-+		p1[3] ^= p2[3] ^ p3[3];
-+		p1[4] ^= p2[4] ^ p3[4];
-+		p1[5] ^= p2[5] ^ p3[5];
-+		p1[6] ^= p2[6] ^ p3[6];
-+		p1[7] ^= p2[7] ^ p3[7];
-+		p1 += 8;
-+		p2 += 8;
-+		p3 += 8;
-+	} while (--lines > 0);
-+}
-+
-+static void
-+xor_8regs_4(unsigned long bytes, unsigned long *p1, unsigned long *p2,
-+	    unsigned long *p3, unsigned long *p4)
-+{
-+	long lines = bytes / (sizeof (long)) / 8;
-+
-+	do {
-+		p1[0] ^= p2[0] ^ p3[0] ^ p4[0];
-+		p1[1] ^= p2[1] ^ p3[1] ^ p4[1];
-+		p1[2] ^= p2[2] ^ p3[2] ^ p4[2];
-+		p1[3] ^= p2[3] ^ p3[3] ^ p4[3];
-+		p1[4] ^= p2[4] ^ p3[4] ^ p4[4];
-+		p1[5] ^= p2[5] ^ p3[5] ^ p4[5];
-+		p1[6] ^= p2[6] ^ p3[6] ^ p4[6];
-+		p1[7] ^= p2[7] ^ p3[7] ^ p4[7];
-+		p1 += 8;
-+		p2 += 8;
-+		p3 += 8;
-+		p4 += 8;
-+	} while (--lines > 0);
-+}
-+
-+static void
-+xor_8regs_5(unsigned long bytes, unsigned long *p1, unsigned long *p2,
-+	    unsigned long *p3, unsigned long *p4, unsigned long *p5)
-+{
-+	long lines = bytes / (sizeof (long)) / 8;
-+
-+	do {
-+		p1[0] ^= p2[0] ^ p3[0] ^ p4[0] ^ p5[0];
-+		p1[1] ^= p2[1] ^ p3[1] ^ p4[1] ^ p5[1];
-+		p1[2] ^= p2[2] ^ p3[2] ^ p4[2] ^ p5[2];
-+		p1[3] ^= p2[3] ^ p3[3] ^ p4[3] ^ p5[3];
-+		p1[4] ^= p2[4] ^ p3[4] ^ p4[4] ^ p5[4];
-+		p1[5] ^= p2[5] ^ p3[5] ^ p4[5] ^ p5[5];
-+		p1[6] ^= p2[6] ^ p3[6] ^ p4[6] ^ p5[6];
-+		p1[7] ^= p2[7] ^ p3[7] ^ p4[7] ^ p5[7];
-+		p1 += 8;
-+		p2 += 8;
-+		p3 += 8;
-+		p4 += 8;
-+		p5 += 8;
-+	} while (--lines > 0);
-+}
-+
-+static void
-+xor_32regs_2(unsigned long bytes, unsigned long *p1, unsigned long *p2)
-+{
-+	long lines = bytes / (sizeof (long)) / 8;
-+
-+	do {
-+		register long d0, d1, d2, d3, d4, d5, d6, d7;
-+		d0 = p1[0];	/* Pull the stuff into registers	*/
-+		d1 = p1[1];	/*  ... in bursts, if possible.		*/
-+		d2 = p1[2];
-+		d3 = p1[3];
-+		d4 = p1[4];
-+		d5 = p1[5];
-+		d6 = p1[6];
-+		d7 = p1[7];
-+		d0 ^= p2[0];
-+		d1 ^= p2[1];
-+		d2 ^= p2[2];
-+		d3 ^= p2[3];
-+		d4 ^= p2[4];
-+		d5 ^= p2[5];
-+		d6 ^= p2[6];
-+		d7 ^= p2[7];
-+		p1[0] = d0;	/* Store the result (in bursts)		*/
-+		p1[1] = d1;
-+		p1[2] = d2;
-+		p1[3] = d3;
-+		p1[4] = d4;
-+		p1[5] = d5;
-+		p1[6] = d6;
-+		p1[7] = d7;
-+		p1 += 8;
-+		p2 += 8;
-+	} while (--lines > 0);
-+}
-+
-+static void
-+xor_32regs_3(unsigned long bytes, unsigned long *p1, unsigned long *p2,
-+	    unsigned long *p3)
-+{
-+	long lines = bytes / (sizeof (long)) / 8;
-+
-+	do {
-+		register long d0, d1, d2, d3, d4, d5, d6, d7;
-+		d0 = p1[0];	/* Pull the stuff into registers	*/
-+		d1 = p1[1];	/*  ... in bursts, if possible.		*/
-+		d2 = p1[2];
-+		d3 = p1[3];
-+		d4 = p1[4];
-+		d5 = p1[5];
-+		d6 = p1[6];
-+		d7 = p1[7];
-+		d0 ^= p2[0];
-+		d1 ^= p2[1];
-+		d2 ^= p2[2];
-+		d3 ^= p2[3];
-+		d4 ^= p2[4];
-+		d5 ^= p2[5];
-+		d6 ^= p2[6];
-+		d7 ^= p2[7];
-+		d0 ^= p3[0];
-+		d1 ^= p3[1];
-+		d2 ^= p3[2];
-+		d3 ^= p3[3];
-+		d4 ^= p3[4];
-+		d5 ^= p3[5];
-+		d6 ^= p3[6];
-+		d7 ^= p3[7];
-+		p1[0] = d0;	/* Store the result (in bursts)		*/
-+		p1[1] = d1;
-+		p1[2] = d2;
-+		p1[3] = d3;
-+		p1[4] = d4;
-+		p1[5] = d5;
-+		p1[6] = d6;
-+		p1[7] = d7;
-+		p1 += 8;
-+		p2 += 8;
-+		p3 += 8;
-+	} while (--lines > 0);
-+}
-+
-+static void
-+xor_32regs_4(unsigned long bytes, unsigned long *p1, unsigned long *p2,
-+	    unsigned long *p3, unsigned long *p4)
-+{
-+	long lines = bytes / (sizeof (long)) / 8;
-+
-+	do {
-+		register long d0, d1, d2, d3, d4, d5, d6, d7;
-+		d0 = p1[0];	/* Pull the stuff into registers	*/
-+		d1 = p1[1];	/*  ... in bursts, if possible.		*/
-+		d2 = p1[2];
-+		d3 = p1[3];
-+		d4 = p1[4];
-+		d5 = p1[5];
-+		d6 = p1[6];
-+		d7 = p1[7];
-+		d0 ^= p2[0];
-+		d1 ^= p2[1];
-+		d2 ^= p2[2];
-+		d3 ^= p2[3];
-+		d4 ^= p2[4];
-+		d5 ^= p2[5];
-+		d6 ^= p2[6];
-+		d7 ^= p2[7];
-+		d0 ^= p3[0];
-+		d1 ^= p3[1];
-+		d2 ^= p3[2];
-+		d3 ^= p3[3];
-+		d4 ^= p3[4];
-+		d5 ^= p3[5];
-+		d6 ^= p3[6];
-+		d7 ^= p3[7];
-+		d0 ^= p4[0];
-+		d1 ^= p4[1];
-+		d2 ^= p4[2];
-+		d3 ^= p4[3];
-+		d4 ^= p4[4];
-+		d5 ^= p4[5];
-+		d6 ^= p4[6];
-+		d7 ^= p4[7];
-+		p1[0] = d0;	/* Store the result (in bursts)		*/
-+		p1[1] = d1;
-+		p1[2] = d2;
-+		p1[3] = d3;
-+		p1[4] = d4;
-+		p1[5] = d5;
-+		p1[6] = d6;
-+		p1[7] = d7;
-+		p1 += 8;
-+		p2 += 8;
-+		p3 += 8;
-+		p4 += 8;
-+	} while (--lines > 0);
-+}
-+
-+static void
-+xor_32regs_5(unsigned long bytes, unsigned long *p1, unsigned long *p2,
-+	    unsigned long *p3, unsigned long *p4, unsigned long *p5)
-+{
-+	long lines = bytes / (sizeof (long)) / 8;
-+
-+	do {
-+		register long d0, d1, d2, d3, d4, d5, d6, d7;
-+		d0 = p1[0];	/* Pull the stuff into registers	*/
-+		d1 = p1[1];	/*  ... in bursts, if possible.		*/
-+		d2 = p1[2];
-+		d3 = p1[3];
-+		d4 = p1[4];
-+		d5 = p1[5];
-+		d6 = p1[6];
-+		d7 = p1[7];
-+		d0 ^= p2[0];
-+		d1 ^= p2[1];
-+		d2 ^= p2[2];
-+		d3 ^= p2[3];
-+		d4 ^= p2[4];
-+		d5 ^= p2[5];
-+		d6 ^= p2[6];
-+		d7 ^= p2[7];
-+		d0 ^= p3[0];
-+		d1 ^= p3[1];
-+		d2 ^= p3[2];
-+		d3 ^= p3[3];
-+		d4 ^= p3[4];
-+		d5 ^= p3[5];
-+		d6 ^= p3[6];
-+		d7 ^= p3[7];
-+		d0 ^= p4[0];
-+		d1 ^= p4[1];
-+		d2 ^= p4[2];
-+		d3 ^= p4[3];
-+		d4 ^= p4[4];
-+		d5 ^= p4[5];
-+		d6 ^= p4[6];
-+		d7 ^= p4[7];
-+		d0 ^= p5[0];
-+		d1 ^= p5[1];
-+		d2 ^= p5[2];
-+		d3 ^= p5[3];
-+		d4 ^= p5[4];
-+		d5 ^= p5[5];
-+		d6 ^= p5[6];
-+		d7 ^= p5[7];
-+		p1[0] = d0;	/* Store the result (in bursts)		*/
-+		p1[1] = d1;
-+		p1[2] = d2;
-+		p1[3] = d3;
-+		p1[4] = d4;
-+		p1[5] = d5;
-+		p1[6] = d6;
-+		p1[7] = d7;
-+		p1 += 8;
-+		p2 += 8;
-+		p3 += 8;
-+		p4 += 8;
-+		p5 += 8;
-+	} while (--lines > 0);
-+}
-+
-+static void
-+xor_8regs_p_2(unsigned long bytes, unsigned long *p1, unsigned long *p2)
-+{
-+	long lines = bytes / (sizeof (long)) / 8 - 1;
-+	prefetchw(p1);
-+	prefetch(p2);
-+
-+	do {
-+		prefetchw(p1+8);
-+		prefetch(p2+8);
-+ once_more:
-+		p1[0] ^= p2[0];
-+		p1[1] ^= p2[1];
-+		p1[2] ^= p2[2];
-+		p1[3] ^= p2[3];
-+		p1[4] ^= p2[4];
-+		p1[5] ^= p2[5];
-+		p1[6] ^= p2[6];
-+		p1[7] ^= p2[7];
-+		p1 += 8;
-+		p2 += 8;
-+	} while (--lines > 0);
-+	if (lines == 0)
-+		goto once_more;
-+}
-+
-+static void
-+xor_8regs_p_3(unsigned long bytes, unsigned long *p1, unsigned long *p2,
-+	    unsigned long *p3)
-+{
-+	long lines = bytes / (sizeof (long)) / 8 - 1;
-+	prefetchw(p1);
-+	prefetch(p2);
-+	prefetch(p3);
-+
-+	do {
-+		prefetchw(p1+8);
-+		prefetch(p2+8);
-+		prefetch(p3+8);
-+ once_more:
-+		p1[0] ^= p2[0] ^ p3[0];
-+		p1[1] ^= p2[1] ^ p3[1];
-+		p1[2] ^= p2[2] ^ p3[2];
-+		p1[3] ^= p2[3] ^ p3[3];
-+		p1[4] ^= p2[4] ^ p3[4];
-+		p1[5] ^= p2[5] ^ p3[5];
-+		p1[6] ^= p2[6] ^ p3[6];
-+		p1[7] ^= p2[7] ^ p3[7];
-+		p1 += 8;
-+		p2 += 8;
-+		p3 += 8;
-+	} while (--lines > 0);
-+	if (lines == 0)
-+		goto once_more;
-+}
-+
-+static void
-+xor_8regs_p_4(unsigned long bytes, unsigned long *p1, unsigned long *p2,
-+	    unsigned long *p3, unsigned long *p4)
-+{
-+	long lines = bytes / (sizeof (long)) / 8 - 1;
-+
-+	prefetchw(p1);
-+	prefetch(p2);
-+	prefetch(p3);
-+	prefetch(p4);
-+
-+	do {
-+		prefetchw(p1+8);
-+		prefetch(p2+8);
-+		prefetch(p3+8);
-+		prefetch(p4+8);
-+ once_more:
-+		p1[0] ^= p2[0] ^ p3[0] ^ p4[0];
-+		p1[1] ^= p2[1] ^ p3[1] ^ p4[1];
-+		p1[2] ^= p2[2] ^ p3[2] ^ p4[2];
-+		p1[3] ^= p2[3] ^ p3[3] ^ p4[3];
-+		p1[4] ^= p2[4] ^ p3[4] ^ p4[4];
-+		p1[5] ^= p2[5] ^ p3[5] ^ p4[5];
-+		p1[6] ^= p2[6] ^ p3[6] ^ p4[6];
-+		p1[7] ^= p2[7] ^ p3[7] ^ p4[7];
-+		p1 += 8;
-+		p2 += 8;
-+		p3 += 8;
-+		p4 += 8;
-+	} while (--lines > 0);
-+	if (lines == 0)
-+		goto once_more;
-+}
-+
-+static void
-+xor_8regs_p_5(unsigned long bytes, unsigned long *p1, unsigned long *p2,
-+	    unsigned long *p3, unsigned long *p4, unsigned long *p5)
-+{
-+	long lines = bytes / (sizeof (long)) / 8 - 1;
-+
-+	prefetchw(p1);
-+	prefetch(p2);
-+	prefetch(p3);
-+	prefetch(p4);
-+	prefetch(p5);
-+
-+	do {
-+		prefetchw(p1+8);
-+		prefetch(p2+8);
-+		prefetch(p3+8);
-+		prefetch(p4+8);
-+		prefetch(p5+8);
-+ once_more:
-+		p1[0] ^= p2[0] ^ p3[0] ^ p4[0] ^ p5[0];
-+		p1[1] ^= p2[1] ^ p3[1] ^ p4[1] ^ p5[1];
-+		p1[2] ^= p2[2] ^ p3[2] ^ p4[2] ^ p5[2];
-+		p1[3] ^= p2[3] ^ p3[3] ^ p4[3] ^ p5[3];
-+		p1[4] ^= p2[4] ^ p3[4] ^ p4[4] ^ p5[4];
-+		p1[5] ^= p2[5] ^ p3[5] ^ p4[5] ^ p5[5];
-+		p1[6] ^= p2[6] ^ p3[6] ^ p4[6] ^ p5[6];
-+		p1[7] ^= p2[7] ^ p3[7] ^ p4[7] ^ p5[7];
-+		p1 += 8;
-+		p2 += 8;
-+		p3 += 8;
-+		p4 += 8;
-+		p5 += 8;
-+	} while (--lines > 0);
-+	if (lines == 0)
-+		goto once_more;
-+}
-+
-+static void
-+xor_32regs_p_2(unsigned long bytes, unsigned long *p1, unsigned long *p2)
-+{
-+	long lines = bytes / (sizeof (long)) / 8 - 1;
-+
-+	prefetchw(p1);
-+	prefetch(p2);
-+
-+	do {
-+		register long d0, d1, d2, d3, d4, d5, d6, d7;
-+
-+		prefetchw(p1+8);
-+		prefetch(p2+8);
-+ once_more:
-+		d0 = p1[0];	/* Pull the stuff into registers	*/
-+		d1 = p1[1];	/*  ... in bursts, if possible.		*/
-+		d2 = p1[2];
-+		d3 = p1[3];
-+		d4 = p1[4];
-+		d5 = p1[5];
-+		d6 = p1[6];
-+		d7 = p1[7];
-+		d0 ^= p2[0];
-+		d1 ^= p2[1];
-+		d2 ^= p2[2];
-+		d3 ^= p2[3];
-+		d4 ^= p2[4];
-+		d5 ^= p2[5];
-+		d6 ^= p2[6];
-+		d7 ^= p2[7];
-+		p1[0] = d0;	/* Store the result (in bursts)		*/
-+		p1[1] = d1;
-+		p1[2] = d2;
-+		p1[3] = d3;
-+		p1[4] = d4;
-+		p1[5] = d5;
-+		p1[6] = d6;
-+		p1[7] = d7;
-+		p1 += 8;
-+		p2 += 8;
-+	} while (--lines > 0);
-+	if (lines == 0)
-+		goto once_more;
-+}
-+
-+static void
-+xor_32regs_p_3(unsigned long bytes, unsigned long *p1, unsigned long *p2,
-+	    unsigned long *p3)
-+{
-+	long lines = bytes / (sizeof (long)) / 8 - 1;
-+
-+	prefetchw(p1);
-+	prefetch(p2);
-+	prefetch(p3);
-+
-+	do {
-+		register long d0, d1, d2, d3, d4, d5, d6, d7;
-+
-+		prefetchw(p1+8);
-+		prefetch(p2+8);
-+		prefetch(p3+8);
-+ once_more:
-+		d0 = p1[0];	/* Pull the stuff into registers	*/
-+		d1 = p1[1];	/*  ... in bursts, if possible.		*/
-+		d2 = p1[2];
-+		d3 = p1[3];
-+		d4 = p1[4];
-+		d5 = p1[5];
-+		d6 = p1[6];
-+		d7 = p1[7];
-+		d0 ^= p2[0];
-+		d1 ^= p2[1];
-+		d2 ^= p2[2];
-+		d3 ^= p2[3];
-+		d4 ^= p2[4];
-+		d5 ^= p2[5];
-+		d6 ^= p2[6];
-+		d7 ^= p2[7];
-+		d0 ^= p3[0];
-+		d1 ^= p3[1];
-+		d2 ^= p3[2];
-+		d3 ^= p3[3];
-+		d4 ^= p3[4];
-+		d5 ^= p3[5];
-+		d6 ^= p3[6];
-+		d7 ^= p3[7];
-+		p1[0] = d0;	/* Store the result (in bursts)		*/
-+		p1[1] = d1;
-+		p1[2] = d2;
-+		p1[3] = d3;
-+		p1[4] = d4;
-+		p1[5] = d5;
-+		p1[6] = d6;
-+		p1[7] = d7;
-+		p1 += 8;
-+		p2 += 8;
-+		p3 += 8;
-+	} while (--lines > 0);
-+	if (lines == 0)
-+		goto once_more;
-+}
-+
-+static void
-+xor_32regs_p_4(unsigned long bytes, unsigned long *p1, unsigned long *p2,
-+	    unsigned long *p3, unsigned long *p4)
-+{
-+	long lines = bytes / (sizeof (long)) / 8 - 1;
-+
-+	prefetchw(p1);
-+	prefetch(p2);
-+	prefetch(p3);
-+	prefetch(p4);
-+
-+	do {
-+		register long d0, d1, d2, d3, d4, d5, d6, d7;
-+
-+		prefetchw(p1+8);
-+		prefetch(p2+8);
-+		prefetch(p3+8);
-+		prefetch(p4+8);
-+ once_more:
-+		d0 = p1[0];	/* Pull the stuff into registers	*/
-+		d1 = p1[1];	/*  ... in bursts, if possible.		*/
-+		d2 = p1[2];
-+		d3 = p1[3];
-+		d4 = p1[4];
-+		d5 = p1[5];
-+		d6 = p1[6];
-+		d7 = p1[7];
-+		d0 ^= p2[0];
-+		d1 ^= p2[1];
-+		d2 ^= p2[2];
-+		d3 ^= p2[3];
-+		d4 ^= p2[4];
-+		d5 ^= p2[5];
-+		d6 ^= p2[6];
-+		d7 ^= p2[7];
-+		d0 ^= p3[0];
-+		d1 ^= p3[1];
-+		d2 ^= p3[2];
-+		d3 ^= p3[3];
-+		d4 ^= p3[4];
-+		d5 ^= p3[5];
-+		d6 ^= p3[6];
-+		d7 ^= p3[7];
-+		d0 ^= p4[0];
-+		d1 ^= p4[1];
-+		d2 ^= p4[2];
-+		d3 ^= p4[3];
-+		d4 ^= p4[4];
-+		d5 ^= p4[5];
-+		d6 ^= p4[6];
-+		d7 ^= p4[7];
-+		p1[0] = d0;	/* Store the result (in bursts)		*/
-+		p1[1] = d1;
-+		p1[2] = d2;
-+		p1[3] = d3;
-+		p1[4] = d4;
-+		p1[5] = d5;
-+		p1[6] = d6;
-+		p1[7] = d7;
-+		p1 += 8;
-+		p2 += 8;
-+		p3 += 8;
-+		p4 += 8;
-+	} while (--lines > 0);
-+	if (lines == 0)
-+		goto once_more;
-+}
-+
-+static void
-+xor_32regs_p_5(unsigned long bytes, unsigned long *p1, unsigned long *p2,
-+	    unsigned long *p3, unsigned long *p4, unsigned long *p5)
-+{
-+	long lines = bytes / (sizeof (long)) / 8 - 1;
-+
-+	prefetchw(p1);
-+	prefetch(p2);
-+	prefetch(p3);
-+	prefetch(p4);
-+	prefetch(p5);
-+
-+	do {
-+		register long d0, d1, d2, d3, d4, d5, d6, d7;
-+
-+		prefetchw(p1+8);
-+		prefetch(p2+8);
-+		prefetch(p3+8);
-+		prefetch(p4+8);
-+		prefetch(p5+8);
-+ once_more:
-+		d0 = p1[0];	/* Pull the stuff into registers	*/
-+		d1 = p1[1];	/*  ... in bursts, if possible.		*/
-+		d2 = p1[2];
-+		d3 = p1[3];
-+		d4 = p1[4];
-+		d5 = p1[5];
-+		d6 = p1[6];
-+		d7 = p1[7];
-+		d0 ^= p2[0];
-+		d1 ^= p2[1];
-+		d2 ^= p2[2];
-+		d3 ^= p2[3];
-+		d4 ^= p2[4];
-+		d5 ^= p2[5];
-+		d6 ^= p2[6];
-+		d7 ^= p2[7];
-+		d0 ^= p3[0];
-+		d1 ^= p3[1];
-+		d2 ^= p3[2];
-+		d3 ^= p3[3];
-+		d4 ^= p3[4];
-+		d5 ^= p3[5];
-+		d6 ^= p3[6];
-+		d7 ^= p3[7];
-+		d0 ^= p4[0];
-+		d1 ^= p4[1];
-+		d2 ^= p4[2];
-+		d3 ^= p4[3];
-+		d4 ^= p4[4];
-+		d5 ^= p4[5];
-+		d6 ^= p4[6];
-+		d7 ^= p4[7];
-+		d0 ^= p5[0];
-+		d1 ^= p5[1];
-+		d2 ^= p5[2];
-+		d3 ^= p5[3];
-+		d4 ^= p5[4];
-+		d5 ^= p5[5];
-+		d6 ^= p5[6];
-+		d7 ^= p5[7];
-+		p1[0] = d0;	/* Store the result (in bursts)		*/
-+		p1[1] = d1;
-+		p1[2] = d2;
-+		p1[3] = d3;
-+		p1[4] = d4;
-+		p1[5] = d5;
-+		p1[6] = d6;
-+		p1[7] = d7;
-+		p1 += 8;
-+		p2 += 8;
-+		p3 += 8;
-+		p4 += 8;
-+		p5 += 8;
-+	} while (--lines > 0);
-+	if (lines == 0)
-+		goto once_more;
-+}
-+
-+static struct xor_block_template xor_block_8regs = {
-+	.name = "8regs",
-+	.do_2 = xor_8regs_2,
-+	.do_3 = xor_8regs_3,
-+	.do_4 = xor_8regs_4,
-+	.do_5 = xor_8regs_5,
-+};
-+
-+static struct xor_block_template xor_block_32regs = {
-+	.name = "32regs",
-+	.do_2 = xor_32regs_2,
-+	.do_3 = xor_32regs_3,
-+	.do_4 = xor_32regs_4,
-+	.do_5 = xor_32regs_5,
-+};
-+
-+static struct xor_block_template xor_block_8regs_p = {
-+	.name = "8regs_prefetch",
-+	.do_2 = xor_8regs_p_2,
-+	.do_3 = xor_8regs_p_3,
-+	.do_4 = xor_8regs_p_4,
-+	.do_5 = xor_8regs_p_5,
-+};
-+
-+static struct xor_block_template xor_block_32regs_p = {
-+	.name = "32regs_prefetch",
-+	.do_2 = xor_32regs_p_2,
-+	.do_3 = xor_32regs_p_3,
-+	.do_4 = xor_32regs_p_4,
-+	.do_5 = xor_32regs_p_5,
-+};
-+
-+#define XOR_TRY_TEMPLATES			\
-+	do {					\
-+		xor_speed(&xor_block_8regs);	\
-+		xor_speed(&xor_block_8regs_p);	\
-+		xor_speed(&xor_block_32regs);	\
-+		xor_speed(&xor_block_32regs_p);	\
-+	} while (0)
---- linux/include/asm-nios2nommu/ChangeLog
-+++ linux/include/asm-nios2nommu/ChangeLog
-@@ -0,0 +1,14 @@
-+2004-06-29  Ken Hill  <khill@microtronix.com>
-+
-+	* bitops.h (find_next_zero_bit): Fix problem with with masking for found_first
-+	handling. The masking of the upper bits for size < 32 bits would set all
-+	the bits to 1. Removing any zero's there may have been.
-+
-+2004-06-02  Ken Hill  <khill@microtronix.com>
-+
-+	* processor.h (TASK_SIZE): Change na_sdram_end to nasys_program_mem_end to remove
-+	dependancy on quartus memory component name.
-+
-+	* page.h (PAGE_OFFSET): Change na_sdram to nasys_program_mem to remove
-+	dependancy on quartus memory component name.
-+
---- linux/include/asm-nios2nommu/a.out.h
-+++ linux/include/asm-nios2nommu/a.out.h
-@@ -0,0 +1,85 @@
-+/* $Id: a.out.h,v 1.4 2004/03/30 19:35:04 ken-h Exp $ */
-+/*
-+ * Copyright (C) 2004 Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+#ifndef __NIOS2NOMMU_A_OUT_H__
-+#define __NIOS2NOMMU_A_OUT_H__
-+
-+#define SPARC_PGSIZE    0x1000        /* Thanks to the sun4 architecture... */
-+#define SEGMENT_SIZE    SPARC_PGSIZE  /* whee... */
-+
-+struct exec {
-+	unsigned char a_dynamic:1;      /* A __DYNAMIC is in this image */
-+	unsigned char a_toolversion:7;
-+	unsigned char a_machtype;
-+	unsigned short a_info;
-+	unsigned long a_text;		/* length of text, in bytes */
-+	unsigned long a_data;		/* length of data, in bytes */
-+	unsigned long a_bss;		/* length of bss, in bytes */
-+	unsigned long a_syms;		/* length of symbol table, in bytes */
-+	unsigned long a_entry;		/* where program begins */
-+	unsigned long a_trsize;
-+	unsigned long a_drsize;
-+};
-+
-+#define INIT_EXEC {				\
-+	.a_dynamic	= 0,			\
-+	.a_toolversion	= 0,			\
-+	.a_machtype	= 0,			\
-+	.a_info		= 0,			\
-+	.a_text		= 0,			\
-+	.a_data		= 0,			\
-+	.a_bss		= 0,			\
-+	.a_syms		= 0,			\
-+	.a_entry	= 0,			\
-+	.a_trsize	= 0,			\
-+	.a_drsize	= 0,			\
-+}
-+
-+/* Where in the file does the text information begin? */
-+#define N_TXTOFF(x)     (N_MAGIC(x) == ZMAGIC ? 0 : sizeof (struct exec))
-+
-+/* Where do the Symbols start? */
-+#define N_SYMOFF(x)     (N_TXTOFF(x) + (x).a_text +   \
-+                         (x).a_data + (x).a_trsize +  \
-+                         (x).a_drsize)
-+
-+/* Where does text segment go in memory after being loaded? */
-+#define N_TXTADDR(x)    (((N_MAGIC(x) == ZMAGIC) &&        \
-+	                 ((x).a_entry < SPARC_PGSIZE)) ?   \
-+                          0 : SPARC_PGSIZE)
-+
-+/* And same for the data segment.. */
-+#define N_DATADDR(x) (N_MAGIC(x)==OMAGIC ?         \
-+                      (N_TXTADDR(x) + (x).a_text)  \
-+                       : (_N_SEGMENT_ROUND (_N_TXTENDADDR(x))))
-+
-+#define N_TRSIZE(a)	((a).a_trsize)
-+#define N_DRSIZE(a)	((a).a_drsize)
-+#define N_SYMSIZE(a)	((a).a_syms)
-+
-+#ifdef __KERNEL__
-+
-+#define STACK_TOP	TASK_SIZE
-+
-+#endif
-+
-+#endif /* __NIOS2NOMMU_A_OUT_H__ */
---- linux/include/asm-nios2nommu/asm-macros.h
-+++ linux/include/asm-nios2nommu/asm-macros.h
-@@ -0,0 +1,331 @@
-+/*
-+ * Macro used to simplify coding multi-line assembler.
-+ * Some of the bit test macro can simplify down to one line
-+ * depending on the mask value.
-+ *
-+ * Copyright (C) 2004 Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+/*
-+ * ANDs reg2 with mask and places the result in reg1.
-+ *
-+ * You cannnot use the same register for reg1 & reg2.
-+ */
-+
-+.macro ANDI32	reg1,reg2,mask
-+ .if \mask & 0xffff
-+  .if \mask & 0xffff0000
-+	movhi	\reg1,%hi(\mask)
-+	movui	\reg1,%lo(\mask)
-+	and	\reg1,\reg1,\reg2
-+  .else
-+	andi	\reg1,\reg2,%lo(\mask)
-+  .endif
-+ .else
-+	andhi	\reg1,\reg2,%hi(\mask)
-+ .endif
-+.endm
-+
-+/*
-+ * ORs reg2 with mask and places the result in reg1.
-+ *
-+ * It is safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro ORI32	reg1,reg2,mask
-+ .if \mask & 0xffff
-+  .if \mask & 0xffff0000
-+	orhi	\reg1,\reg2,%hi(\mask)
-+	ori	\reg1,\reg2,%lo(\mask)
-+  .else
-+	ori	\reg1,\reg2,%lo(\mask)
-+  .endif
-+ .else
-+	orhi	\reg1,\reg2,%hi(\mask)
-+ .endif
-+.endm
-+
-+/*
-+ * XORs reg2 with mask and places the result in reg1.
-+ *
-+ * It is safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro XORI32	reg1,reg2,mask
-+ .if \mask & 0xffff
-+  .if \mask & 0xffff0000
-+	xorhi	\reg1,\reg2,%hi(\mask)
-+	xori	\reg1,\reg1,%lo(\mask)
-+  .else
-+	xori	\reg1,\reg2,%lo(\mask)
-+  .endif
-+ .else
-+	xorhi	\reg1,\reg2,%hi(\mask)
-+ .endif
-+.endm
-+
-+/*
-+ * This is a support macro for BTBZ & BTBNZ.  It checks
-+ * the bit to make sure it is valid 32 value.
-+ *
-+ * It is safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro BT	reg1,reg2,bit
-+.if \bit > 31
-+ .err 
-+.else
-+ .if \bit < 16
-+	andi	\reg1,\reg2,(1 << \bit)
-+ .else
-+	andhi	\reg1,\reg2,(1 << (\bit - 16))
-+ .endif
-+.endif
-+.endm
-+
-+/*
-+ * Tests the bit in reg2 and branches to label if the
-+ * bit is zero.  The result of the bit test is stored in reg1.
-+ *
-+ * It is safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro BTBZ	reg1,reg2,bit,label
-+	BT	\reg1,\reg2,\bit
-+	beq	\reg1,r0,\label
-+.endm
-+
-+/*
-+ * Tests the bit in reg2 and branches to label if the
-+ * bit is non-zero.  The result of the bit test is stored in reg1.
-+ *
-+ * It is safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro BTBNZ	reg1,reg2,bit,label
-+	BT	\reg1,\reg2,\bit
-+	bne	\reg1,r0,\label
-+.endm
-+
-+/*
-+ * Tests the bit in reg2 and then compliments the bit in reg2.
-+ * The result of the bit test is stored in reg1.
-+ *
-+ * It is NOT safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro BTC	reg1,reg2,bit
-+.if \bit > 31
-+ .err 
-+.else
-+ .if \bit < 16
-+	andi	\reg1,\reg2,(1 << \bit)
-+	xori	\reg2,\reg2,(1 << \bit)
-+ .else
-+	andhi	\reg1,\reg2,(1 << (\bit - 16))
-+	xorhi	\reg2,\reg2,(1 << (\bit - 16))
-+ .endif
-+.endif
-+.endm
-+
-+/*
-+ * Tests the bit in reg2 and then sets the bit in reg2.
-+ * The result of the bit test is stored in reg1.
-+ *
-+ * It is NOT safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro BTS	reg1,reg2,bit
-+.if \bit > 31
-+ .err 
-+.else
-+ .if \bit < 16
-+	andi	\reg1,\reg2,(1 << \bit)
-+	ori	\reg2,\reg2,(1 << \bit)
-+ .else
-+	andhi	\reg1,\reg2,(1 << (\bit - 16))
-+	orhi	\reg2,\reg2,(1 << (\bit - 16))
-+ .endif
-+.endif
-+.endm
-+
-+/*
-+ * Tests the bit in reg2 and then resets the bit in reg2.
-+ * The result of the bit test is stored in reg1.
-+ *
-+ * It is NOT safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro BTR	reg1,reg2,bit
-+.if \bit > 31
-+ .err 
-+.else
-+ .if \bit < 16
-+	andi	\reg1,\reg2,(1 << \bit)
-+	andi	\reg2,\reg2,%lo(~(1 << \bit))
-+ .else
-+	andhi	\reg1,\reg2,(1 << (\bit - 16))
-+	andhi	\reg2,\reg2,%lo(~(1 << (\bit - 16)))
-+ .endif
-+.endif
-+.endm
-+
-+/*
-+ * Tests the bit in reg2 and then compliments the bit in reg2.
-+ * The result of the bit test is stored in reg1.  If the 
-+ * original bit was zero it branches to label.
-+ *
-+ * It is NOT safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro BTCBZ	reg1,reg2,bit,label
-+	BTC	\reg1,\reg2,\bit
-+	beq	\reg1,r0,\label
-+.endm
-+
-+/*
-+ * Tests the bit in reg2 and then compliments the bit in reg2.
-+ * The result of the bit test is stored in reg1.  If the 
-+ * original bit was non-zero it branches to label.
-+ *
-+ * It is NOT safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro BTCBNZ	reg1,reg2,bit,label
-+	BTC	\reg1,\reg2,\bit
-+	bne	\reg1,r0,\label
-+.endm
-+
-+/*
-+ * Tests the bit in reg2 and then sets the bit in reg2.
-+ * The result of the bit test is stored in reg1.  If the 
-+ * original bit was zero it branches to label.
-+ *
-+ * It is NOT safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro BTSBZ	reg1,reg2,bit,label
-+	BTS	\reg1,\reg2,\bit
-+	beq	\reg1,r0,\label
-+.endm
-+
-+/*
-+ * Tests the bit in reg2 and then sets the bit in reg2.
-+ * The result of the bit test is stored in reg1.  If the 
-+ * original bit was non-zero it branches to label.
-+ *
-+ * It is NOT safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro BTSBNZ	reg1,reg2,bit,label
-+	BTS	\reg1,\reg2,\bit
-+	bne	\reg1,r0,\label
-+.endm
-+
-+/*
-+ * Tests the bit in reg2 and then resets the bit in reg2.
-+ * The result of the bit test is stored in reg1.  If the 
-+ * original bit was zero it branches to label.
-+ *
-+ * It is NOT safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro BTRBZ	reg1,reg2,bit,label
-+	BTR	\reg1,\reg2,\bit
-+	bne	\reg1,r0,\label
-+.endm
-+
-+/*
-+ * Tests the bit in reg2 and then resets the bit in reg2.
-+ * The result of the bit test is stored in reg1.  If the 
-+ * original bit was non-zero it branches to label.
-+ *
-+ * It is NOT safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro BTRBNZ	reg1,reg2,bit,label
-+	BTR	\reg1,\reg2,\bit
-+	bne	\reg1,r0,\label
-+.endm
-+
-+/*
-+ * Tests the bits in mask against reg2 stores the result in reg1.
-+ * If the all the bits in the mask are zero it branches to label.
-+ *
-+ * It is safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro TSTBZ	reg1,reg2,mask,label
-+	ANDI32	\reg1,\reg2,\mask
-+	beq	\reg1,r0,\label
-+.endm
-+
-+/*
-+ * Tests the bits in mask against reg2 stores the result in reg1.
-+ * If the any of the bits in the mask are 1 it branches to label.
-+ *
-+ * It is safe to use the same register for reg1 & reg2.
-+ */
-+
-+.macro TSTBNZ	reg1,reg2,mask,label
-+	ANDI32	\reg1,\reg2,\mask
-+	bne	\reg1,r0,\label
-+.endm
-+
-+/*
-+ * Pushes reg onto the stack.
-+ */
-+
-+.macro PUSH	reg
-+	addi	sp,sp,-4
-+	stw	\reg,0(sp)
-+.endm
-+
-+/*
-+ * Pops the top of the stack into reg.
-+ */
-+
-+.macro POP	reg
-+	ldw	\reg,0(sp)
-+	addi	sp,sp,4
-+.endm
-+
-+/*
-+ * Clears reg
-+ */
-+
-+.macro CLR	reg
-+	  mov	\reg,r0
-+.endm
-+
-+/*
-+ * The preprocessor macro does not work for
-+ * the nios2 compiler. Undefine ENTRY and define
-+ * a real assembler macro.
-+ */
-+#undef ENTRY
-+#define ENTRY(name) ASM_ENTRY name
-+
-+.macro ASM_ENTRY name
-+.globl \name
-+__ALIGN
-+  \name:
-+.endm
---- linux/include/asm-nios2nommu/atomic.h
-+++ linux/include/asm-nios2nommu/atomic.h
-@@ -0,0 +1,190 @@
-+//vic - add 'atomic_add/sub_return', 'atomic_add_negative'
-+//vic     from v850 architecture
-+
-+/* atomic.h: 
-+ *
-+ * Copyright (C) 2004 Microtronix Datacom Ltd.
-+ * Copyright (C) 2001 Vic Phillips (vic@microtronix.com)
-+ *
-+ * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu)
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef __ARCH_NIOS2NOMMU_ATOMIC__
-+#define __ARCH_NIOS2NOMMU_ATOMIC__
-+
-+#include <asm/system.h>
-+
-+typedef struct { int counter; } atomic_t;
-+#define ATOMIC_INIT(i)	{ (i) }
-+
-+#define atomic_read(v)		((v)->counter)
-+#define atomic_set(v, i)	(((v)->counter) = i)
-+
-+
-+extern __inline__ void atomic_add(int i, atomic_t *v)
-+{
-+	unsigned long flags;
-+
-+	local_irq_save(flags);
-+	v->counter += i;
-+	local_irq_restore(flags);
-+}
-+
-+extern __inline__ int atomic_add_negative(int i, atomic_t *v)
-+{
-+	unsigned long flags;
-+	int result;
-+
-+	local_irq_save(flags);
-+	v->counter += i;
-+	result = (v->counter < 0);
-+	local_irq_restore(flags);
-+	return result;
-+}
-+
-+extern __inline__ void atomic_sub(int i, atomic_t *v)
-+{
-+	unsigned long flags;
-+
-+	local_irq_save(flags);
-+	v->counter -= i;
-+	local_irq_restore(flags);
-+}
-+
-+extern __inline__ int atomic_sub_and_test(int i, atomic_t *v)
-+{
-+	int result;
-+	unsigned long flags;
-+
-+	local_irq_save(flags);
-+	v->counter -= i;
-+	result = (v->counter == 0);
-+	local_irq_restore(flags);
-+	return result;
-+}
-+
-+extern __inline__ void atomic_inc(atomic_t *v)
-+{
-+	unsigned long flags;
-+
-+	local_irq_save(flags);
-+	v->counter += 1;
-+	local_irq_restore(flags);
-+}
-+
-+extern __inline__ int atomic_inc_and_test(atomic_t *v)
-+{
-+	unsigned long flags;
-+	int result;
-+
-+	local_irq_save(flags);
-+	v->counter += 1;
-+	result = (v->counter == 0);
-+	local_irq_restore(flags);
-+	return result;
-+}
-+
-+extern __inline__ void atomic_dec(atomic_t *v)
-+{
-+	int i = 1;					/* the compiler optimizes better this way */
-+	unsigned long flags;
-+
-+	local_irq_save(flags);
-+	v->counter -= i;
-+	local_irq_restore(flags);
-+}
-+
-+extern __inline__ int atomic_dec_and_test(atomic_t *v)
-+{
-+	int result;
-+	int i = 1;					/* the compiler optimizes better this way */
-+	unsigned long flags;
-+
-+	local_irq_save(flags);
-+	v->counter -= i;
-+	result = (v->counter == 0);
-+	local_irq_restore(flags);
-+	return result;
-+}
-+
-+extern __inline__ int atomic_inc_return(atomic_t *v)
-+{
-+	int result;
-+	unsigned long flags;
-+
-+	local_irq_save(flags);
-+	result = ++v->counter;
-+	local_irq_restore(flags);
-+	return result;
-+}
-+
-+extern __inline__ int atomic_dec_return(atomic_t *v)
-+{
-+	int result;
-+	int i = 1;					/* the compiler optimizes better this way */
-+	unsigned long flags;
-+
-+	local_irq_save(flags);
-+	v->counter -= i;
-+	result = v->counter;
-+	local_irq_restore(flags);
-+	return result;
-+}
-+
-+extern __inline__ int atomic_add_return (int i, volatile atomic_t *v)
-+{
-+	int res;
-+	unsigned long flags;
-+
-+	local_irq_save(flags);
-+	res = v->counter + i;
-+	v->counter = res;
-+	local_irq_restore(flags);
-+
-+	return res;
-+}
-+
-+static __inline__ int atomic_sub_return (int i, volatile atomic_t *v)
-+{
-+	int res;
-+	unsigned long flags;
-+
-+	local_irq_save(flags);
-+	res = v->counter - i;
-+	v->counter = res;
-+	local_irq_restore(flags);
-+
-+	return res;
-+}
-+
-+#define atomic_dec_return(v) atomic_sub_return(1,(v))
-+#define atomic_inc_return(v) atomic_add_return(1,(v))
-+
-+/* Atomic operations are already serializing */
-+#define smp_mb__before_atomic_dec()	barrier()
-+#define smp_mb__after_atomic_dec()	barrier()
-+#define smp_mb__before_atomic_inc()	barrier()
-+#define smp_mb__after_atomic_inc()	barrier()
-+
-+
-+#endif /* !(__ARCH_NIOS2NOMMU_ATOMIC__) */
-+
-+
---- linux/include/asm-nios2nommu/bitops.h
-+++ linux/include/asm-nios2nommu/bitops.h
-@@ -0,0 +1,472 @@
-+#ifndef _ASM_NIOS_BITOPS_H_
-+#define _ASM_NIOS_BITOPS_H_
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/bitops.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#ifdef __KERNEL__
-+#include <linux/config.h>
-+#include <linux/compiler.h>
-+#include <asm/byteorder.h>	/* swab32 */
-+#include <asm/system.h>
-+#endif
-+
-+/*
-+ * Adapted to NIOS from generic bitops.h:
-+ *
-+ * For the benefit of those who are trying to port Linux to another
-+ * architecture, here are some C-language equivalents.  You should
-+ * recode these in the native assembly language, if at all possible.
-+ * To guarantee atomicity, these routines call cli() and sti() to
-+ * disable interrupts while they operate.  (You have to provide inline
-+ * routines to cli() and sti().)
-+ *
-+ * Also note, these routines assume that you have 32 bit integers.
-+ * You will have to change this if you are trying to port Linux to the
-+ * Alpha architecture or to a Cray.  :-)
-+ *
-+ * C language equivalents written by Theodore Ts'o, 9/26/92
-+ */
-+
-+/*
-+ *	Generic ffs().
-+ */
-+static inline int ffs(int x)
-+{
-+	int r = 1;
-+
-+	if (!x)
-+		return 0;
-+	if (!(x & 0xffff)) {
-+		x >>= 16;
-+		r += 16;
-+	}
-+	if (!(x & 0xff)) {
-+		x >>= 8;
-+		r += 8;
-+	}
-+	if (!(x & 0xf)) {
-+		x >>= 4;
-+		r += 4;
-+	}
-+	if (!(x & 3)) {
-+		x >>= 2;
-+		r += 2;
-+	}
-+	if (!(x & 1)) {
-+		x >>= 1;
-+		r += 1;
-+	}
-+	return r;
-+}
-+
-+/*
-+ *	Generic __ffs().
-+ */
-+static inline int __ffs(int x)
-+{
-+	int r = 0;
-+
-+	if (!x)
-+		return 0;
-+	if (!(x & 0xffff)) {
-+		x >>= 16;
-+		r += 16;
-+	}
-+	if (!(x & 0xff)) {
-+		x >>= 8;
-+		r += 8;
-+	}
-+	if (!(x & 0xf)) {
-+		x >>= 4;
-+		r += 4;
-+	}
-+	if (!(x & 3)) {
-+		x >>= 2;
-+		r += 2;
-+	}
-+	if (!(x & 1)) {
-+		x >>= 1;
-+		r += 1;
-+	}
-+	return r;
-+}
-+
-+/*
-+ * fls: find last bit set.
-+ */
-+#define fls(x) generic_fls(x)
-+
-+
-+/*
-+ * Every architecture must define this function. It's the fastest
-+ * way of searching a 140-bit bitmap where the first 100 bits are
-+ * unlikely to be set. It's guaranteed that at least one of the 140
-+ * bits is cleared.
-+ */
-+static inline int sched_find_first_bit(unsigned long *b)
-+{
-+	if (unlikely(b[0]))
-+		return __ffs(b[0]);
-+	if (unlikely(b[1]))
-+		return __ffs(b[1]) + 32;
-+	if (unlikely(b[2]))
-+		return __ffs(b[2]) + 64;
-+	if (b[3])
-+		return __ffs(b[3]) + 96;
-+	return __ffs(b[4]) + 128;
-+}
-+
-+/*
-+ * ffz = Find First Zero in word. Undefined if no zero exists,
-+ * so code should check against ~0UL first..
-+ */
-+static __inline__ unsigned long ffz(unsigned long word)
-+{
-+	unsigned long result = 0;
-+
-+	while(word & 1) {
-+		result++;
-+		word >>= 1;
-+	}
-+	return result;
-+}
-+
-+
-+static __inline__ void set_bit(int nr, volatile unsigned long * addr)
-+{
-+	int 	* a = (int *) addr;
-+	int	mask;
-+	unsigned long flags;
-+
-+	a += nr >> 5;
-+	mask = 1 << (nr & 0x1f);
-+	local_irq_save(flags);
-+	*a |= mask;
-+	local_irq_restore(flags);
-+}
-+
-+static __inline__ void __set_bit(int nr, volatile unsigned long * addr)
-+{
-+	int 	* a = (int *) addr;
-+	int	mask;
-+
-+	a += nr >> 5;
-+	mask = 1 << (nr & 0x1f);
-+	*a |= mask;
-+}
-+
-+/*
-+ * clear_bit() doesn't provide any barrier for the compiler.
-+ */
-+#define smp_mb__before_clear_bit()	barrier()
-+#define smp_mb__after_clear_bit()	barrier()
-+
-+static __inline__ void clear_bit(int nr, volatile unsigned long * addr)
-+{
-+	int 	* a = (int *) addr;
-+	int	mask;
-+	unsigned long flags;
-+
-+	a += nr >> 5;
-+	mask = 1 << (nr & 0x1f);
-+	local_irq_save(flags);
-+	*a &= ~mask;
-+	local_irq_restore(flags);
-+}
-+
-+static __inline__ void __clear_bit(int nr, volatile unsigned long * addr)
-+{
-+	int 	* a = (int *) addr;
-+	int	mask;
-+
-+	a += nr >> 5;
-+	mask = 1 << (nr & 0x1f);
-+	*a &= ~mask;
-+}
-+
-+static __inline__ void change_bit(int nr, volatile unsigned long * addr)
-+{
-+	int mask, flags;
-+	unsigned long *ADDR = (unsigned long *) addr;
-+
-+	ADDR += nr >> 5;
-+	mask = 1 << (nr & 31);
-+	local_irq_save(flags);
-+	*ADDR ^= mask;
-+	local_irq_restore(flags);
-+}
-+
-+static __inline__ void __change_bit(int nr, volatile unsigned long * addr)
-+{
-+	int mask;
-+	unsigned long *ADDR = (unsigned long *) addr;
-+
-+	ADDR += nr >> 5;
-+	mask = 1 << (nr & 31);
-+	*ADDR ^= mask;
-+}
-+
-+static __inline__ int test_and_set_bit(int nr, volatile unsigned long * addr)
-+{
-+	int	mask, retval;
-+	volatile unsigned int *a = (volatile unsigned int *) addr;
-+	unsigned long flags;
-+
-+	a += nr >> 5;
-+	mask = 1 << (nr & 0x1f);
-+	local_irq_save(flags);
-+	retval = (mask & *a) != 0;
-+	*a |= mask;
-+	local_irq_restore(flags);
-+
-+	return retval;
-+}
-+
-+static __inline__ int __test_and_set_bit(int nr, volatile unsigned long * addr)
-+{
-+	int	mask, retval;
-+	volatile unsigned int *a = (volatile unsigned int *) addr;
-+
-+	a += nr >> 5;
-+	mask = 1 << (nr & 0x1f);
-+	retval = (mask & *a) != 0;
-+	*a |= mask;
-+	return retval;
-+}
-+
-+static __inline__ int test_and_clear_bit(int nr, volatile unsigned long * addr)
-+{
-+	int	mask, retval;
-+	volatile unsigned int *a = (volatile unsigned int *) addr;
-+	unsigned long flags;
-+
-+	a += nr >> 5;
-+	mask = 1 << (nr & 0x1f);
-+	local_irq_save(flags);
-+	retval = (mask & *a) != 0;
-+	*a &= ~mask;
-+	local_irq_restore(flags);
-+
-+	return retval;
-+}
-+
-+static __inline__ int __test_and_clear_bit(int nr, volatile unsigned long * addr)
-+{
-+	int	mask, retval;
-+	volatile unsigned int *a = (volatile unsigned int *) addr;
-+
-+	a += nr >> 5;
-+	mask = 1 << (nr & 0x1f);
-+	retval = (mask & *a) != 0;
-+	*a &= ~mask;
-+	return retval;
-+}
-+
-+static __inline__ int test_and_change_bit(int nr, volatile unsigned long * addr)
-+{
-+	int	mask, retval;
-+	volatile unsigned int *a = (volatile unsigned int *) addr;
-+	unsigned long flags;
-+
-+	a += nr >> 5;
-+	mask = 1 << (nr & 0x1f);
-+	local_irq_save(flags);
-+	retval = (mask & *a) != 0;
-+	*a ^= mask;
-+	local_irq_restore(flags);
-+
-+	return retval;
-+}
-+
-+static __inline__ int __test_and_change_bit(int nr, volatile unsigned long * addr)
-+{
-+	int	mask, retval;
-+	volatile unsigned int *a = (volatile unsigned int *) addr;
-+
-+	a += nr >> 5;
-+	mask = 1 << (nr & 0x1f);
-+	retval = (mask & *a) != 0;
-+	*a ^= mask;
-+	return retval;
-+}
-+
-+/*
-+ * This routine doesn't need to be atomic.
-+ */
-+static __inline__ int __constant_test_bit(int nr, const volatile unsigned long * addr)
-+{
-+	return ((1UL << (nr & 31)) & (((const volatile unsigned int *) addr)[nr >> 5])) != 0;
-+}
-+
-+static __inline__ int __test_bit(int nr, const volatile unsigned long * addr)
-+{
-+	int 	* a = (int *) addr;
-+	int	mask;
-+
-+	a += nr >> 5;
-+	mask = 1 << (nr & 0x1f);
-+	return ((mask & *a) != 0);
-+}
-+
-+#define test_bit(nr,addr) \
-+(__builtin_constant_p(nr) ? \
-+ __constant_test_bit((nr),(unsigned long *)(addr)) : \
-+ __test_bit((nr),(unsigned long *)(addr)))
-+
-+
-+/* find_next_zero_bit() finds the first zero bit in a bit string of length
-+ * 'size' bits, starting the search at bit 'offset'. This is largely based
-+ * on Linus's ALPHA routines, which are pretty portable BTW.
-+ */
-+
-+extern __inline__ unsigned long find_next_zero_bit(void *addr, unsigned long size, unsigned long offset)
-+{
-+	unsigned long *p = ((unsigned long *) addr) + (offset >> 5);
-+	unsigned long result = offset & ~31UL;
-+	unsigned long tmp;
-+
-+	if (offset >= size)
-+		return size;
-+	size -= result;
-+	offset &= 31UL;
-+	if (offset) {
-+		tmp = *(p++);
-+		tmp |= ~0UL >> (32-offset);
-+		if (size < 32)
-+			goto found_first;
-+		if (~tmp)
-+			goto found_middle;
-+		size -= 32;
-+		result += 32;
-+	}
-+	while (size & ~31UL) {
-+		if (~(tmp = *(p++)))
-+			goto found_middle;
-+		result += 32;
-+		size -= 32;
-+	}
-+	if (!size)
-+		return result;
-+	tmp = *p;
-+
-+found_first:
-+	tmp |= ~0UL << size;
-+	if (tmp == ~0UL)
-+		return result + size;
-+found_middle:
-+	return result + ffz(tmp);
-+}
-+
-+/*
-+ * Find next one bit in a bitmap reasonably efficiently.
-+ */
-+extern __inline__ unsigned long find_next_bit(const unsigned long *addr,
-+	unsigned long size, unsigned long offset)
-+{
-+	unsigned int *p = ((unsigned int *) addr) + (offset >> 5);
-+	unsigned int result = offset & ~31UL;
-+	unsigned int tmp;
-+
-+	if (offset >= size)
-+		return size;
-+	size -= result;
-+	offset &= 31UL;
-+	if (offset) {
-+		tmp = *p++;
-+		tmp &= ~0UL << offset;
-+		if (size < 32)
-+			goto found_first;
-+		if (tmp)
-+			goto found_middle;
-+		size -= 32;
-+		result += 32;
-+	}
-+	while (size >= 32) {
-+		if ((tmp = *p++) != 0)
-+			goto found_middle;
-+		result += 32;
-+		size -= 32;
-+	}
-+	if (!size)
-+		return result;
-+	tmp = *p;
-+
-+found_first:
-+	tmp &= ~0UL >> (32 - size);
-+	if (tmp == 0UL)        /* Are any bits set? */
-+		return result + size; /* Nope. */
-+found_middle:
-+	return result + __ffs(tmp);
-+}
-+
-+/*
-+ * hweightN: returns the hamming weight (i.e. the number
-+ * of bits set) of a N-bit word
-+ */
-+
-+#define hweight32(x) generic_hweight32(x)
-+#define hweight16(x) generic_hweight16(x)
-+#define hweight8(x) generic_hweight8(x)
-+
-+/* Linus sez that gcc can optimize the following correctly, we'll see if this
-+ * holds on the Sparc as it does for the ALPHA.
-+ */
-+
-+#define find_first_zero_bit(addr, size) \
-+        find_next_zero_bit((addr), (size), 0)
-+#define find_first_bit(addr, size) \
-+        find_next_bit((addr), (size), 0)
-+
-+/* Now for the ext2 filesystem bit operations and helper routines.
-+ *
-+ * Both NIOS and ext2 are little endian, so these are the same as above.
-+ */
-+
-+#define ext2_set_bit   test_and_set_bit
-+#define ext2_clear_bit test_and_clear_bit
-+#define ext2_test_bit  test_bit
-+
-+#define ext2_set_bit_atomic(lock, nr, addr)		\
-+	({						\
-+		int ret;				\
-+		spin_lock(lock);			\
-+		ret = ext2_set_bit((nr),(unsigned long *) (addr));	\
-+		spin_unlock(lock);			\
-+		ret;					\
-+	})
-+
-+#define ext2_clear_bit_atomic(lock, nr, addr)		\
-+	({						\
-+		int ret;				\
-+		spin_lock(lock);			\
-+		ret = ext2_clear_bit((nr),(unsigned long *) (addr));	\
-+		spin_unlock(lock);			\
-+		ret;					\
-+	})
-+
-+#define ext2_find_first_zero_bit find_first_zero_bit
-+#define ext2_find_next_zero_bit  find_next_zero_bit
-+
-+#endif /* _ASM_NIOS_BITOPS_H */
---- linux/include/asm-nios2nommu/bootinfo.h
-+++ linux/include/asm-nios2nommu/bootinfo.h
-@@ -0,0 +1,2 @@
-+
-+/* Nothing for nios2nommu */
---- linux/include/asm-nios2nommu/bug.h
-+++ linux/include/asm-nios2nommu/bug.h
-@@ -0,0 +1,48 @@
-+#ifndef _NIOS2NOMMU_BUG_H
-+#define _NIOS2NOMMU_BUG_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/bug.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#define BUG() do { \
-+  printk("%s(%d): kernel BUG!\n", __FILE__, __LINE__); \
-+} while (0)
-+
-+#define BUG_ON(condition) do { \
-+	if (unlikely((condition)!=0)) \
-+		BUG(); \
-+} while(0)
-+
-+#define PAGE_BUG(page) do { \
-+         BUG(); \
-+} while (0)
-+
-+#define WARN_ON(condition) do { \
-+	if (unlikely((condition)!=0)) { \
-+		printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \
-+		dump_stack(); \
-+	} \
-+} while (0)
-+
-+#endif
---- linux/include/asm-nios2nommu/bugs.h
-+++ linux/include/asm-nios2nommu/bugs.h
-@@ -0,0 +1,40 @@
-+#ifndef __ASM_NIOS_BUGS_H
-+#define __ASM_NIOS_BUGS_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/bugs.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ *  Copyright (C) 1994  Linus Torvalds
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+/*
-+ * This is included by init/main.c to check for architecture-dependent bugs.
-+ *
-+ * Needs:
-+ *	void check_bugs(void);
-+ */
-+
-+static void check_bugs(void)
-+{
-+}
-+
-+#endif
---- linux/include/asm-nios2nommu/byteorder.h
-+++ linux/include/asm-nios2nommu/byteorder.h
-@@ -0,0 +1,38 @@
-+#ifndef __ASM_NIOS_BYTEORDER_H
-+#define __ASM_NIOS_BYTEORDER_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/byteorder.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm/types.h>
-+
-+#if defined(__GNUC__) && !defined(__STRICT_ANSI__) || defined(__KERNEL__)
-+#  define __BYTEORDER_HAS_U64__
-+#  define __SWAB_64_THRU_32__
-+#endif
-+
-+#include <linux/byteorder/little_endian.h>
-+
-+#endif
-+
---- linux/include/asm-nios2nommu/cache.h
-+++ linux/include/asm-nios2nommu/cache.h
-@@ -0,0 +1,34 @@
-+/*
-+ * Copyright (C) 2004 Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+#ifndef __ARCH_NIOS2NOMMU_CACHE_H
-+#define __ARCH_NIOS2NOMMU_CACHE_H
-+
-+#include <asm/nios.h>
-+
-+/* bytes per L1 cache line */
-+#define        L1_CACHE_BYTES	nasys_icache_line_size 	/* this need to be at least 1 */
-+
-+
-+#define __cacheline_aligned
-+#define ____cacheline_aligned
-+
-+#endif
---- linux/include/asm-nios2nommu/cachectl.h
-+++ linux/include/asm-nios2nommu/cachectl.h
-@@ -0,0 +1,36 @@
-+/*
-+ * Copyright (C) 2004 Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef _NIOS2NOMMU_CACHECTL_H
-+#define _NIOS2NOMMU_CACHECTL_H
-+
-+/* Definitions for the cacheflush system call.  */
-+
-+#define FLUSH_SCOPE_LINE    1	/* Flush a cache line */
-+#define FLUSH_SCOPE_PAGE    2	/* Flush a page */
-+#define FLUSH_SCOPE_ALL     3	/* Flush the whole cache -- superuser only */
-+
-+#define FLUSH_CACHE_DATA    1	/* Writeback and flush data cache */
-+#define FLUSH_CACHE_INSN    2	/* Flush instruction cache */
-+#define FLUSH_CACHE_BOTH    3	/* Flush both caches */
-+
-+#endif /* _NIOS2NOMMU_CACHECTL_H */
---- linux/include/asm-nios2nommu/cacheflush.h
-+++ linux/include/asm-nios2nommu/cacheflush.h
-@@ -0,0 +1,56 @@
-+#ifndef _NIOS2NOMMU_CACHEFLUSH_H
-+#define _NIOS2NOMMU_CACHEFLUSH_H
-+
-+/*
-+ * Ported from m68knommu.
-+ *
-+ * (C) Copyright 2003, Microtronix Datacom Ltd.
-+ * (C) Copyright 2000-2002, Greg Ungerer <gerg@snapgear.com>
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+#include <linux/mm.h>
-+
-+extern void cache_push (unsigned long vaddr, int len);
-+extern void dcache_push (unsigned long vaddr, int len);
-+extern void icache_push (unsigned long vaddr, int len);
-+extern void cache_push_all (void);
-+
-+#define flush_cache_all()			__flush_cache_all()
-+#define flush_cache_mm(mm)			do { } while (0)
-+#define flush_cache_range(vma, start, end)	do { } while (0)
-+#define flush_cache_page(vma, vmaddr)		do { } while (0)
-+#define flush_dcache_range(start,end)		dcache_push(start, end - start)
-+#define flush_dcache_page(page)			do { } while (0)
-+#define flush_icache_range(start,end)		cache_push(start, end - start)
-+#define flush_icache_page(vma,pg)		do { } while (0)
-+#define flush_icache_user_range(vma,pg,adr,len)	do { } while (0)
-+
-+#define copy_to_user_page(vma, page, vaddr, dst, src, len) \
-+	memcpy(dst, src, len)
-+#define copy_from_user_page(vma, page, vaddr, dst, src, len) \
-+	memcpy(dst, src, len)
-+
-+
-+extern inline void __flush_cache_all(void)
-+{
-+	cache_push_all();
-+}
-+
-+#endif /* _NIOS2NOMMU_CACHEFLUSH_H */
---- linux/include/asm-nios2nommu/checksum.h
-+++ linux/include/asm-nios2nommu/checksum.h
-@@ -0,0 +1,320 @@
-+#ifndef __NIOS2_CHECKSUM_H
-+#define __NIOS2_CHECKSUM_H
-+
-+/*  checksum.h:  IP/UDP/TCP checksum routines on the NIOS.
-+ *
-+ *  Copyright(C) 1995 Linus Torvalds
-+ *  Copyright(C) 1995 Miguel de Icaza
-+ *  Copyright(C) 1996 David S. Miller
-+ *  Copyright(C) 2001 Ken Hill
-+ *  Copyright(C) 2004 Microtronix Datacom Ltd.
-+ *
-+ * derived from:
-+ *	Alpha checksum c-code
-+ *      ix86 inline assembly
-+ *      Spar nommu
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+
-+/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-+
-+/*
-+ * computes the checksum of the TCP/UDP pseudo-header
-+ * returns a 16-bit checksum, already complemented
-+ */
-+
-+extern inline unsigned short csum_tcpudp_magic(unsigned long saddr,
-+					       unsigned long daddr,
-+					       unsigned short len,
-+					       unsigned short proto,
-+					       unsigned int sum)
-+{
-+    barrier();
-+	__asm__ __volatile__(
-+"		add	%0, %3, %0\n"
-+"		bgeu	%0, %3, 1f\n"
-+"		addi	%0, %0, 1\n"
-+"1:		add	%0, %4, %0\n"
-+"		bgeu	%0, %4, 1f\n"
-+"		addi	%0, %0, 1\n"
-+"1:		add	%0, %5, %0\n"
-+"		bgeu	%0, %5, 1f\n"
-+"		addi	%0, %0, 1\n"
-+"1:\n"
-+/*
-+		We need the carry from the addition of 16-bit
-+		significant addition, so we zap out the low bits
-+		in one half, zap out the high bits in another,
-+		shift them both up to the top 16-bits of a word
-+		and do the carry producing addition, finally
-+		shift the result back down to the low 16-bits.
-+
-+		Actually, we can further optimize away two shifts
-+		because we know the low bits of the original
-+		value will be added to zero-only bits so cannot
-+		affect the addition result nor the final carry
-+		bit.
-+*/
-+"		slli	%1,%0, 16\n"		/* Need a copy to fold with */
-+						/* Bring the LOW 16 bits up */
-+"		add	%0, %1, %0\n"		/* add and set carry, neat eh? */
-+"		cmpltu	r15, %0, %1\n"		/* get remaining carry bit */
-+"		srli	%0, %0, 16\n"		/* shift back down the result */
-+"		add	%0, %0, r15\n"
-+"		nor	%0, %0, %0\n"		/* negate */
-+	        : "=&r" (sum), "=&r" (saddr)
-+		: "0" (sum), "1" (saddr), "r" (ntohl(len+proto)), "r" (daddr)
-+		: "r15");
-+		return ((unsigned short) sum); 
-+    barrier();
-+}
-+
-+
-+/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-+
-+
-+  extern inline unsigned short from32to16(unsigned long x)
-+  {
-+    barrier();
-+	__asm__ __volatile__(
-+		"add	%0, %1, %0\n"
-+		"cmpltu	r15, %0, %1\n"
-+		"srli	%0, %0, 16\n"
-+		"add	%0, %0, r15\n"
-+		: "=r" (x)
-+		: "r" (x << 16), "0" (x)
-+		: "r15");
-+	return x;
-+    barrier();
-+  }
-+
-+
-+/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-+
-+
-+extern inline unsigned long do_csum(const unsigned char * buff, int len)
-+{
-+ int odd, count;
-+ unsigned long result = 0;
-+
-+    barrier();
-+ if (len <= 0)
-+ 	goto out;
-+ odd = 1 & (unsigned long) buff;
-+ if (odd) {
-+////result = *buff;                     // dgt: Big    endian
-+ 	result = *buff << 8;                // dgt: Little endian
-+
-+ 	len--;
-+ 	buff++;
-+ }
-+ count = len >> 1;		/* nr of 16-bit words.. */
-+ if (count) {
-+ 	if (2 & (unsigned long) buff) {
-+ 		result += *(unsigned short *) buff;
-+ 		count--;
-+ 		len -= 2;
-+ 		buff += 2;
-+ 	}
-+ 	count >>= 1;		/* nr of 32-bit words.. */
-+ 	if (count) {
-+ 	        unsigned long carry = 0;
-+ 		do {
-+ 			unsigned long w = *(unsigned long *) buff;
-+ 			count--;
-+ 			buff += 4;
-+ 			result += carry;
-+ 			result += w;
-+ 			carry = (w > result);
-+ 		} while (count);
-+ 		result += carry;
-+ 		result = (result & 0xffff) + (result >> 16);
-+ 	}
-+ 	if (len & 2) {
-+ 		result += *(unsigned short *) buff;
-+ 		buff += 2;
-+ 	}
-+ }
-+ if (len & 1)
-+ 	result += *buff;  /* This is little machine, byte is right */
-+ result = from32to16(result);
-+ if (odd)
-+ 	result = ((result >> 8) & 0xff) | ((result & 0xff) << 8);
-+out:
-+	return result;
-+    barrier();
-+  }
-+
-+
-+/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-+
-+
-+/* ihl is always 5 or greater, almost always is 5, iph is always word
-+ * aligned but can fail to be dword aligned very often.
-+ */
-+
-+  extern inline unsigned short ip_fast_csum(const unsigned char *iph, unsigned int ihl)
-+  {
-+	unsigned int sum;
-+
-+    barrier();
-+	__asm__ __volatile__(
-+"		andi	r8, %1, 2\n"	/* Remember original alignment */
-+"		ldw	%0, (%1)\n"	/* 16 or 32 bit boundary */
-+"		beq	r8, r0, 1f\n"	/* Aligned on 32 bit boundary, go */
-+"		srli	%0, %0, 16\n"	/* Get correct 16 bits */
-+"		addi	%2, %2, -1\n"	/* Take off for 4 bytes, pickup last 2 at end */
-+"		addi	%1, %1, 2\n"	/* Adjust pointer to 32 bit boundary */
-+"		br	2f\n"
-+"1:\n"
-+"		addi	%2, %2, -1\n"
-+"		addi	%1, %1, 4\n"	/* Bump ptr a long word */
-+"2:\n"
-+"		ldw     r9, (%1)\n"
-+"1:\n"
-+"		add     %0, r9, %0\n"
-+"		bgeu	%0, r9, 2f\n"
-+"		addi	%0, %0, 1\n"
-+"2:\n"
-+"		addi	%1, %1, 4\n"
-+"		addi	%2, %2, -1\n"
-+"		ldw     r9, (%1)\n"
-+"		bne	%2, r0, 1b\n"
-+"		beq	r8, r0, 1f\n"	/* 32 bit boundary time to leave */
-+"		srli	r9, r9, 16\n"	/* 16 bit boundary, get correct 16 bits */
-+"		add     %0, r9, %0\n"
-+"		bgeu	%0, r9, 1f\n"
-+"		addi	%0, %0, 1\n"
-+"1:\n"
-+"		slli	%2, %0, 16\n"
-+"		add     %0, %2, %0\n"
-+"		cmpltu	r8, %0, %2\n"
-+"		srli	%0, %0, 16\n"
-+"		add	%0, %0, r8\n"
-+"		nor     %0, %0, %0\n"
-+		: "=&r" (sum), "=&r" (iph), "=&r" (ihl)
-+		: "1" (iph), "2" (ihl)
-+		: "r8", "r9");
-+	return sum;
-+    barrier();
-+  }
-+
-+/*these 2 functions are now in checksum.c */
-+unsigned int csum_partial(const unsigned char * buff, int len, unsigned int sum);
-+unsigned int csum_partial_copy(const char *src, char *dst, int len, int sum);
-+
-+/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-+
-+/*
-+ * the same as csum_partial_copy, but copies from user space.
-+ *
-+ * here even more important to align src and dst on a 32-bit (or even
-+ * better 64-bit) boundary
-+ */
-+extern inline unsigned int
-+csum_partial_copy_from_user(const char *src, char *dst, int len, int sum, int *csum_err)
-+{
-+    barrier();
-+	if (csum_err) *csum_err = 0;
-+	memcpy(dst, src, len);
-+	return csum_partial(dst, len, sum);
-+    barrier();
-+}
-+
-+#define csum_partial_copy_nocheck(src, dst, len, sum)	\
-+	csum_partial_copy ((src), (dst), (len), (sum))
-+
-+
-+/*
-+ * this routine is used for miscellaneous IP-like checksums, mainly
-+ * in icmp.c
-+ */
-+
-+extern inline unsigned short ip_compute_csum(unsigned char * buff, int len)
-+{
-+    barrier();
-+ return ~from32to16(do_csum(buff,len));
-+    barrier();
-+}
-+
-+
-+/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-+
-+
-+#define csum_partial_copy_fromuser(s, d, l, w)  \
-+                     csum_partial_copy((char *) (s), (d), (l), (w))
-+
-+
-+/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-+
-+
-+/*
-+ *	Fold a partial checksum without adding pseudo headers
-+ */
-+extern __inline__ unsigned int csum_fold(unsigned int sum)
-+{
-+    barrier();
-+	__asm__ __volatile__(
-+		"add	%0, %1, %0\n"
-+		"cmpltu	r8, %0, %1\n"
-+		"srli	%0, %0, 16\n"
-+		"add	%0, %0, r8\n"
-+		"nor	%0, %0, %0\n"
-+		: "=r" (sum)
-+		: "r" (sum << 16), "0" (sum)
-+		: "r8"); 
-+	return sum;
-+    barrier();
-+}
-+
-+
-+/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-+
-+
-+extern __inline__ unsigned long csum_tcpudp_nofold(unsigned long saddr,
-+						   unsigned long daddr,
-+						   unsigned short len,
-+						   unsigned short proto,
-+						   unsigned int sum)
-+{
-+    barrier();
-+	__asm__ __volatile__(
-+		"add	%0, %1, %0\n"
-+		"cmpltu	r8, %0, %1\n"
-+		"add	%0, %0, r8\n"	/* add carry */
-+		"add	%0, %2, %0\n"
-+		"cmpltu	r8, %0, %2\n"
-+		"add	%0, %0, r8\n"	/* add carry */
-+		"add	%0, %3, %0\n"
-+		"cmpltu	r8, %0, %3\n"
-+		"add	%0, %0, r8\n"	/* add carry */
-+		: "=r" (sum), "=r" (saddr)
-+		: "r" (daddr), "r" ( (ntohs(len)<<16) + (proto*256) ),
-+		  "0" (sum),
-+		  "1" (saddr)
-+		: "r8");
-+
-+	return sum;
-+    barrier();
-+}
-+
-+
-+#endif /* (__NIOS2_CHECKSUM_H) */
---- linux/include/asm-nios2nommu/cprefix.h
-+++ linux/include/asm-nios2nommu/cprefix.h
-@@ -0,0 +1,38 @@
-+/* cprefix.h:  This file is included by assembly source which needs
-+ *             to know what the c-label prefixes are. The newer versions
-+ *	       of cpp that come with gcc predefine such things to help
-+ *	       us out. The reason this stuff is needed is to make
-+ *	       solaris compiles of the kernel work.
-+ *
-+ * Copyright (C) 2004 Microtronix Datacom Ltd.
-+ * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+#ifndef __NIOS2_CPREFIX_H
-+#define __NIOS2_CPREFIX_H
-+
-+#define C_LABEL_PREFIX
-+
-+#define CONCAT(a, b) CONCAT2(a, b)
-+#define CONCAT2(a, b) a##b
-+
-+#define C_LABEL(name) CONCAT(C_LABEL_PREFIX, name)
-+
-+#endif /* !(__NIOS2_CPREFIX_H) */
---- linux/include/asm-nios2nommu/cpumask.h
-+++ linux/include/asm-nios2nommu/cpumask.h
-@@ -0,0 +1,28 @@
-+/*
-+ * All rights reserved.          
-+ *
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef _ASM_NIOS2NOMMU_CPUMASK_H
-+#define _ASM_NIOS2NOMMU_CPUMASK_H
-+
-+#include <asm-generic/cpumask.h>
-+
-+#endif /* _ASM_NIOS2NOMMU_CPUMASK_H */
---- linux/include/asm-nios2nommu/current.h
-+++ linux/include/asm-nios2nommu/current.h
-@@ -0,0 +1,39 @@
-+#ifndef _NIOS2NOMMU_CURRENT_H
-+#define _NIOS2NOMMU_CURRENT_H
-+/*
-+ *	current.h
-+ *	(C) Copyright 2000, Lineo, David McCullough <davidm@uclinux.org>
-+ *	(C) Copyright 2002, Greg Ungerer (gerg@snapgear.com)
-+ *	(C) Copyright 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#include <linux/thread_info.h>
-+
-+struct task_struct;
-+
-+static inline struct task_struct *get_current(void)
-+{
-+	return(current_thread_info()->task);
-+}
-+
-+#define	current	get_current()
-+
-+#endif /* _NIOS2NOMMU_CURRENT_H */
---- linux/include/asm-nios2nommu/delay.h
-+++ linux/include/asm-nios2nommu/delay.h
-@@ -0,0 +1,96 @@
-+#ifndef _NIOS_DELAY_H
-+#define _NIOS_DELAY_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/delay.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004      dgt     NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm/param.h>
-+
-+extern __inline__ void __delay(unsigned long loops)
-+{
-+	int dummy;
-+
-+	__asm__ __volatile__(
-+        "1:  \n\t"
-+        "    beq    %0,zero,2f\n\t"
-+        "    addi   %0, %0, -1\n\t" 
-+        "    br     1b\n\t" 
-+        "2:  \n\t" 
-+
-+        :  "=r" (dummy)                     /* Need output for optimizer */
-+
-+        :  "0" (loops)                      /* %0  Input                */
-+        );
-+}
-+
-+/*
-+ * Note that 19 * 226 == 4294 ==~ 2^32 / 10^6, so
-+ * loops = (4294 * usecs * loops_per_jiffy * HZ) / 2^32.
-+ *
-+ * The mul instruction gives us loops = (a * b) / 2^32.
-+ * We choose a = usecs * 19 * HZ and b = loops_per_jiffy * 226
-+ * because this lets us support a wide range of HZ and
-+ * loops_per_jiffy values without either a or b overflowing 2^32.
-+ * Thus we need usecs * HZ <= (2^32 - 1) / 19 = 226050910 and
-+ * loops_per_jiffy <= (2^32 - 1) / 226 = 19004280
-+ * (which corresponds to ~3800 bogomips at HZ = 100).
-+ *  -- paulus
-+ */
-+#define __MAX_UDELAY	(226050910UL/HZ)	/* maximum udelay argument */
-+#define __MAX_NDELAY	(4294967295UL/HZ)	/* maximum ndelay argument */
-+
-+extern unsigned long loops_per_jiffy;
-+
-+extern __inline__ void __udelay(unsigned int x)
-+{
-+	unsigned int loops;
-+
-+	__asm__("mulxuu %0,%1,%2" : "=r" (loops) :
-+		"r" (x), "r" (loops_per_jiffy * 226));
-+	__delay(loops);
-+}
-+
-+extern __inline__ void __ndelay(unsigned int x)
-+{
-+	unsigned int loops;
-+
-+	__asm__("mulxuu %0,%1,%2" : "=r" (loops) :
-+		"r" (x), "r" (loops_per_jiffy * 5));
-+	__delay(loops);
-+}
-+
-+extern void __bad_udelay(void);		/* deliberately undefined */
-+extern void __bad_ndelay(void);		/* deliberately undefined */
-+
-+#define udelay(n) (__builtin_constant_p(n)? \
-+	((n) > __MAX_UDELAY? __bad_udelay(): __udelay((n) * (19 * HZ))) : \
-+	__udelay((n) * (19 * HZ)))
-+
-+#define ndelay(n) (__builtin_constant_p(n)? \
-+	((n) > __MAX_NDELAY? __bad_ndelay(): __ndelay((n) * HZ)) : \
-+	__ndelay((n) * HZ))
-+
-+#define muldiv(a, b, c)    (((a)*(b))/(c))
-+
-+#endif /* defined(_NIOS_DELAY_H) */
---- linux/include/asm-nios2nommu/div64.h
-+++ linux/include/asm-nios2nommu/div64.h
-@@ -0,0 +1,31 @@
-+#ifndef __ASMNIOS_DIV64_H
-+#define __ASMNIOS_DIV64_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/div64.h
-+ *
-+ * Derived from m68knommu
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm-generic/div64.h>
-+
-+#endif
-+
---- linux/include/asm-nios2nommu/dma-mapping.h
-+++ linux/include/asm-nios2nommu/dma-mapping.h
-@@ -0,0 +1,25 @@
-+/*
-+ *  include/asm-s390/dma-mapping.h
-+ *
-+ *  S390 version
-+ *
-+ *  This file exists so that #include <dma-mapping.h> doesn't break anything.
-+ */
-+
-+#ifndef _ASM_DMA_MAPPING_H
-+#define _ASM_DMA_MAPPING_H
-+
-+static inline void *dma_alloc_coherent(struct device *dev, size_t size,
-+			 dma_addr_t *dma_handle, int flag)
-+{
-+	BUG();
-+	return 0;
-+}
-+
-+static inline void dma_free_coherent(struct device *dev, size_t size,
-+		       void *vaddr, dma_addr_t dma_handle)
-+{
-+	BUG();
-+}
-+
-+#endif /* _ASM_DMA_MAPPING_H */
---- linux/include/asm-nios2nommu/dma.h
-+++ linux/include/asm-nios2nommu/dma.h
-@@ -0,0 +1,40 @@
-+/* $Id: dma.h,v 1.5 2004/03/02 16:05:52 ken-h Exp $
-+ *
-+ * Copyright 1995 (C) David S. Miller (davem@caip.rutgers.edu)
-+ * Copyright 2004 (C) Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef _ASM_NIOS2_DMA_H
-+#define _ASM_NIOS2_DMA_H
-+
-+#include <linux/kernel.h>
-+#include <asm/asm-offsets.h>
-+
-+#define MAX_DMA_CHANNELS 2
-+#define MAX_DMA_ADDRESS  (LINUX_SDRAM_START)
-+#define DMA_MODE_READ    1
-+#define DMA_MODE_WRITE   2
-+
-+extern int get_dma_list(char *);
-+extern int request_dma(unsigned int, const char *);
-+extern void free_dma(unsigned int);
-+
-+#endif /* !(_ASM_NIOS2_DMA_H) */
---- linux/include/asm-nios2nommu/elf.h
-+++ linux/include/asm-nios2nommu/elf.h
-@@ -0,0 +1,141 @@
-+#ifndef __NIOS2_ELF_H
-+#define __NIOS2_ELF_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/elf.h
-+ *
-+ * Nio2 ELF relocation types
-+ *
-+ * Derived from M68knommu
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ * Mar/18/2004		xwt		NiosII relocation types added
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+// #include <linux/config.h>
-+#include <asm/ptrace.h>
-+#include <asm/user.h>
-+
-+#define R_NIOS2_NONE			0
-+#define R_NIOS2_S16				1
-+#define R_NIOS2_U16				2
-+#define R_NIOS2_PCREL16			3
-+#define R_NIOS2_CALL26			4
-+#define R_NIOS2_IMM5			5
-+#define R_NIOS2_CACHE_OPX 		6
-+#define R_NIOS2_IMM6			7
-+#define R_NIOS2_IMM8			8
-+#define R_NIOS2_HI16			9
-+#define R_NIOS2_LO16			10
-+#define R_NIOS2_HIADJ16 		11
-+#define R_NIOS2_BFD_RELOC_32	12
-+#define R_NIOS2_BFD_RELOC_16	13
-+#define R_NIOS2_BFD_RELOC_8 	14
-+#define R_NIOS2_GPREL			15
-+#define R_NIOS2_GNU_VTINHERIT 	16
-+#define R_NIOS2_GNU_VTENTRY  	17
-+#define R_NIOS2_UJMP			18
-+#define R_NIOS2_CJMP			19
-+#define R_NIOS2_CALLR			20
-+#define R_NIOS2_ALIGN			21
-+/* Keep this the last entry.  */
-+#define R_NIOS2_NUM				22
-+
-+typedef unsigned long elf_greg_t;
-+
-+#define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof(elf_greg_t))
-+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-+
-+typedef unsigned long elf_fpregset_t;
-+
-+/*
-+ * This is used to ensure we don't load something for the wrong architecture.
-+ */
-+#define elf_check_arch(x) \
-+	((x)->e_machine == EM_ALTERA_NIOS2)
-+
-+/*
-+ * These are used to set parameters in the core dumps.
-+ */
-+#define ELF_CLASS	ELFCLASS32
-+#define ELF_DATA	ELFDATA2LSB
-+#define ELF_ARCH	EM_ALTERA_NIOS2
-+
-+#define ELF_PLAT_INIT(_r, load_addr)	_r->a1 = 0
-+
-+#define USE_ELF_CORE_DUMP
-+#define ELF_EXEC_PAGESIZE	4096
-+
-+/* This is the location that an ET_DYN program is loaded if exec'ed.  Typical
-+   use of this is to invoke "./ld.so someprog" to test out a new version of
-+   the loader.  We need to make sure that it is out of the way of the program
-+   that it will "exec", and that there is sufficient room for the brk.  */
-+
-+#define ELF_ET_DYN_BASE         0xD0000000UL
-+
-+/* regs is struct pt_regs, pr_reg is elf_gregset_t (which is
-+   now struct_user_regs, they are different) */
-+
-+#define ELF_CORE_COPY_REGS(pr_reg, regs)				\
-+	/* Bleech. */							\
-+	pr_reg[0] = regs->r1;						\
-+	pr_reg[1] = regs->r2;						\
-+	pr_reg[2] = regs->r3;						\
-+	pr_reg[3] = regs->r4;						\
-+	pr_reg[4] = regs->r5;						\
-+	pr_reg[5] = regs->r6;						\
-+	pr_reg[6] = regs->r7;						\
-+	pr_reg[7] = regs->r8;						\
-+	pr_reg[8] = regs->r9;						\
-+	pr_reg[9] = regs->r10;						\
-+	pr_reg[10] = regs->r11;						\
-+	pr_reg[11] = regs->r12;						\
-+	pr_reg[12] = regs->r13;						\
-+	pr_reg[13] = regs->r14;						\
-+	pr_reg[14] = regs->r15;						\
-+	pr_reg[23] = regs->sp;						\
-+	pr_reg[26] = regs->estatus;					\
-+	{								\
-+	  struct switch_stack *sw = ((struct switch_stack *)regs) - 1;	\
-+	  pr_reg[15] = sw->r16;						\
-+	  pr_reg[16] = sw->r17;						\
-+	  pr_reg[17] = sw->r18;						\
-+	  pr_reg[18] = sw->r19;						\
-+	  pr_reg[19] = sw->r20;						\
-+	  pr_reg[20] = sw->r21;						\
-+	  pr_reg[21] = sw->r22;						\
-+	  pr_reg[22] = sw->r23;						\
-+	  pr_reg[24] = sw->fp;						\
-+	  pr_reg[25] = sw->gp;						\
-+	}
-+
-+/* This yields a mask that user programs can use to figure out what
-+   instruction set this cpu supports.  */
-+
-+#define ELF_HWCAP	(0)
-+
-+/* This yields a string that ld.so will use to load implementation
-+   specific libraries for optimization.  This is more specific in
-+   intent than poking at uname or /proc/cpuinfo.  */
-+
-+#define ELF_PLATFORM  (NULL)
-+
-+#ifdef __KERNEL__
-+#define SET_PERSONALITY(ex, ibcs2) set_personality((ibcs2)?PER_SVR4:PER_LINUX)
-+#endif
-+
-+#endif
---- linux/include/asm-nios2nommu/entry.h
-+++ linux/include/asm-nios2nommu/entry.h
-@@ -0,0 +1,188 @@
-+/*
-+ * Hacked from m68knommu port.
-+ *
-+ *  Copyright(C) 2004 Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef __NIOS2NOMMU_ENTRY_H
-+#define __NIOS2NOMMU_ENTRY_H
-+
-+#ifdef __ASSEMBLY__
-+
-+// #include <linux/config.h>
-+#include <asm/setup.h>
-+#include <asm/page.h>
-+#include <asm/asm-offsets.h>
-+
-+/*
-+ * Stack layout in 'ret_from_exception':
-+ *
-+ * This allows access to the syscall arguments in registers r4-r8
-+ *
-+ *	 0(sp) - r8
-+ *	 4(sp) - r9
-+ *	 8(sp) - r10
-+ *	 C(sp) - r11
-+ *	10(sp) - r12
-+ *	14(sp) - r13
-+ *	18(sp) - r14
-+ *	1C(sp) - r15
-+ *	20(sp) - r1
-+ *	24(sp) - r2
-+ *	28(sp) - r3
-+ *	2C(sp) - r4
-+ *	30(sp) - r5
-+ *	34(sp) - r6
-+ *	38(sp) - r7
-+ *	3C(sp) - orig_r2
-+ *	40(sp) - ra
-+ *	44(sp) - fp
-+ *	48(sp) - sp
-+ *	4C(sp) - gp
-+ *	50(sp) - estatus
-+ *	54(sp) - status_extension
-+ *	58(sp) - ea
-+ *
-+ */
-+
-+/* process bits for task_struct.flags */
-+PF_TRACESYS_OFF = 3
-+PF_TRACESYS_BIT = 5
-+PF_PTRACED_OFF = 3
-+PF_PTRACED_BIT = 4
-+PF_DTRACE_OFF = 1
-+PF_DTRACE_BIT = 5
-+
-+LENOSYS = 38
-+
-+/*
-+ * This defines the normal kernel pt-regs layout.
-+ *
-+ */
-+
-+/*
-+ * Standard Nios2 interrupt entry and exit macros.
-+ * Must be called with interrupts disabled.
-+ */
-+.macro SAVE_ALL
-+	movia	r24,status_extension	// Read status extension
-+	ldw	r24,0(r24)
-+	andi	r24,r24,PS_S_ASM
-+	bne	r24,r0,1f		// In supervisor mode, already on kernel stack
-+	movia	r24,_current_thread	// Switch to current kernel stack
-+	ldw	r24,0(r24)		//  using the thread_info
-+	addi	r24,r24,THREAD_SIZE_ASM-PT_REGS_SIZE
-+	stw	sp,PT_SP(r24)		// Save user stack before changing
-+	mov	sp,r24
-+	br	2f
-+
-+1:	mov	r24,sp
-+	addi	sp,sp,-PT_REGS_SIZE	// Backup the kernel stack pointer
-+	stw	r24,PT_SP(sp)
-+2:	stw	r1,PT_R1(sp)
-+	stw	r2,PT_R2(sp)
-+	stw	r3,PT_R3(sp)
-+	stw	r4,PT_R4(sp)
-+	stw	r5,PT_R5(sp)
-+	stw	r6,PT_R6(sp)
-+	stw	r7,PT_R7(sp)
-+	stw	r8,PT_R8(sp)
-+	stw	r9,PT_R9(sp)
-+	stw	r10,PT_R10(sp)
-+	stw	r11,PT_R11(sp)
-+	stw	r12,PT_R12(sp)
-+	stw	r13,PT_R13(sp)
-+	stw	r14,PT_R14(sp)
-+	stw	r15,PT_R15(sp)
-+	stw	r2,PT_ORIG_R2(sp)
-+	stw	ra,PT_RA(sp)
-+	stw	fp,PT_FP(sp)
-+	stw	gp,PT_GP(sp)
-+	rdctl	r24,estatus
-+	stw	r24,PT_ESTATUS(sp)
-+	movia	r24,status_extension	// Read status extension
-+	ldw	r1,0(r24)
-+	stw	r1,PT_STATUS_EXTENSION(sp)	// Store user/supervisor status
-+	ORI32	r1,r1,PS_S_ASM			// Set supervisor mode
-+	stw	r1,0(r24)
-+	stw	ea,PT_EA(sp)
-+.endm
-+
-+.macro RESTORE_ALL
-+	ldw	r1,PT_STATUS_EXTENSION(sp)	// Restore user/supervisor status
-+	movia	r24,status_extension
-+	stw	r1,0(r24)
-+	ldw	r1,PT_R1(sp)		// Restore registers
-+	ldw	r2,PT_R2(sp)
-+	ldw	r3,PT_R3(sp)
-+	ldw	r4,PT_R4(sp)
-+	ldw	r5,PT_R5(sp)
-+	ldw	r6,PT_R6(sp)
-+	ldw	r7,PT_R7(sp)
-+	ldw	r8,PT_R8(sp)
-+	ldw	r9,PT_R9(sp)
-+	ldw	r10,PT_R10(sp)
-+	ldw	r11,PT_R11(sp)
-+	ldw	r12,PT_R12(sp)
-+	ldw	r13,PT_R13(sp)
-+	ldw	r14,PT_R14(sp)
-+	ldw	r15,PT_R15(sp)
-+	ldw	ra,PT_RA(sp)
-+	ldw	fp,PT_FP(sp)
-+	ldw	gp,PT_GP(sp)
-+	ldw	r24,PT_ESTATUS(sp)
-+	wrctl	estatus,r24
-+	ldw	ea,PT_EA(sp)
-+	ldw	sp,PT_SP(sp)		// Restore sp last
-+.endm
-+
-+.macro	SAVE_SWITCH_STACK
-+	addi	sp,sp,-SWITCH_STACK_SIZE
-+	stw	r16,SW_R16(sp)
-+	stw	r17,SW_R17(sp)
-+	stw	r18,SW_R18(sp)
-+	stw	r19,SW_R19(sp)
-+	stw	r20,SW_R20(sp)
-+	stw	r21,SW_R21(sp)
-+	stw	r22,SW_R22(sp)
-+	stw	r23,SW_R23(sp)
-+	stw	fp,SW_FP(sp)
-+	stw	gp,SW_GP(sp)
-+	stw	ra,SW_RA(sp)
-+.endm
-+
-+.macro	RESTORE_SWITCH_STACK
-+	ldw	r16,SW_R16(sp)
-+	ldw	r17,SW_R17(sp)
-+	ldw	r18,SW_R18(sp)
-+	ldw	r19,SW_R19(sp)
-+	ldw	r20,SW_R20(sp)
-+	ldw	r21,SW_R21(sp)
-+	ldw	r22,SW_R22(sp)
-+	ldw	r23,SW_R23(sp)
-+	ldw	fp,SW_FP(sp)
-+	ldw	gp,SW_GP(sp)
-+	ldw	ra,SW_RA(sp)
-+	addi	sp,sp,SWITCH_STACK_SIZE
-+.endm
-+
-+#endif /* __ASSEMBLY__ */
-+#endif /* __NIOS2NOMMU_ENTRY_H */
---- linux/include/asm-nios2nommu/errno.h
-+++ linux/include/asm-nios2nommu/errno.h
-@@ -0,0 +1,6 @@
-+#ifndef _NIOS2NOMMU_ERRNO_H
-+#define _NIOS2NOMMU_ERRNO_H
-+
-+#include <asm-generic/errno.h>
-+
-+#endif /* _NIOS2NOMMU_ERRNO_H */
---- linux/include/asm-nios2nommu/fcntl.h
-+++ linux/include/asm-nios2nommu/fcntl.h
-@@ -0,0 +1,110 @@
-+/*
-+ * This file came from the m68k port.
-+ *
-+ * Copyright (C) 2004 Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+#ifndef _NIOS2_FCNTL_H
-+#define _NIOS2_FCNTL_H
-+
-+/* open/fcntl - O_SYNC is only implemented on blocks devices and on files
-+   located on an ext2 file system */
-+#define O_ACCMODE	  0003
-+#define O_RDONLY	    00
-+#define O_WRONLY	    01
-+#define O_RDWR		    02
-+#define O_CREAT		  0100	/* not fcntl */
-+#define O_EXCL		  0200	/* not fcntl */
-+#define O_NOCTTY	  0400	/* not fcntl */
-+#define O_TRUNC		 01000	/* not fcntl */
-+#define O_APPEND	 02000
-+#define O_NONBLOCK	 04000
-+#define O_NDELAY	O_NONBLOCK
-+#define O_SYNC		010000
-+#define FASYNC		020000	/* fcntl, for BSD compatibility */
-+#define O_DIRECTORY	040000	/* must be a directory */
-+#define O_NOFOLLOW	0100000	/* don't follow links */
-+#define O_DIRECT	0200000	/* direct disk access hint - currently ignored */
-+#define O_LARGEFILE	0400000
-+#define O_NOATIME	01000000
-+
-+#define F_DUPFD		0	/* dup */
-+#define F_GETFD		1	/* get close_on_exec */
-+#define F_SETFD		2	/* set/clear close_on_exec */
-+#define F_GETFL		3	/* get file->f_flags */
-+#define F_SETFL		4	/* set file->f_flags */
-+#define F_GETLK		5
-+#define F_SETLK		6
-+#define F_SETLKW	7
-+
-+#define F_SETOWN	8	/*  for sockets. */
-+#define F_GETOWN	9	/*  for sockets. */
-+#define F_SETSIG	10	/*  for sockets. */
-+#define F_GETSIG	11	/*  for sockets. */
-+
-+#define F_GETLK64	12	/*  using 'struct flock64' */
-+#define F_SETLK64	13
-+#define F_SETLKW64	14
-+
-+/* for F_[GET|SET]FL */
-+#define FD_CLOEXEC	1	/* actually anything with low bit set goes */
-+
-+/* for posix fcntl() and lockf() */
-+#define F_RDLCK		0
-+#define F_WRLCK		1
-+#define F_UNLCK		2
-+
-+/* for old implementation of bsd flock () */
-+#define F_EXLCK		4	/* or 3 */
-+#define F_SHLCK		8	/* or 4 */
-+
-+/* for leases */
-+#define F_INPROGRESS	16
-+
-+/* operations for bsd flock(), also used by the kernel implementation */
-+#define LOCK_SH		1	/* shared lock */
-+#define LOCK_EX		2	/* exclusive lock */
-+#define LOCK_NB		4	/* or'd with one of the above to prevent
-+				   blocking */
-+#define LOCK_UN		8	/* remove lock */
-+
-+#define LOCK_MAND	32	/* This is a mandatory flock */
-+#define LOCK_READ	64	/* ... Which allows concurrent read operations */
-+#define LOCK_WRITE	128	/* ... Which allows concurrent write operations */
-+#define LOCK_RW		192	/* ... Which allows concurrent read & write ops */
-+
-+struct flock {
-+	short l_type;
-+	short l_whence;
-+	off_t l_start;
-+	off_t l_len;
-+	pid_t l_pid;
-+};
-+
-+struct flock64 {
-+	short  l_type;
-+	short  l_whence;
-+	loff_t l_start;
-+	loff_t l_len;
-+	pid_t  l_pid;
-+};
-+
-+#define F_LINUX_SPECIFIC_BASE	1024
-+#endif /* _NIOS2_FCNTL_H */
---- linux/include/asm-nios2nommu/flat.h
-+++ linux/include/asm-nios2nommu/flat.h
-@@ -0,0 +1,126 @@
-+/*
-+ * include/asm-nios2nommu/flat.h -- uClinux bFLT relocations
-+ *
-+ *  Copyright (C) 2004,05  Microtronix Datacom Ltd
-+ *
-+ * This file is subject to the terms and conditions of the GNU General
-+ * Public License.  See the file COPYING in the main directory of this
-+ * archive for more details.
-+ *
-+ * Written by Wentao Xu <wentao@microtronix.com>
-+ */
-+
-+#ifndef __NIOS2_FLAT_H__
-+#define __NIOS2_FLAT_H__
-+
-+#define	flat_reloc_valid(reloc, size)	((reloc) <= (size + 0x8000))
-+
-+/* The stack is 64-bit aligned for Nios II, so (sp - 1) shall
-+ * be 64-bit aligned, where -1 is for argc
-+ */
-+#define	flat_stack_align(sp)		(sp = (unsigned long *)(((unsigned long)sp - 1) & (-8)))
-+
-+/* The uClibc port for Nios II expects the argc is followed by argv and envp */
-+#define	flat_argvp_envp_on_stack()	1
-+
-+#define	flat_old_ram_flag(flags)	(flags)
-+
-+/* We store the type of relocation in the top 4 bits of the `relval.' */
-+
-+/* Convert a relocation entry into an address.  */
-+static inline unsigned long
-+flat_get_relocate_addr (unsigned long relval)
-+{
-+	return relval & 0x0fffffff; /* Mask out top 4-bits */
-+}
-+
-+#define FLAT_NIOS2_RELOC_TYPE(relval) ((relval) >> 28)
-+
-+#define FLAT_NIOS2_R_32			0 /* Normal 32-bit reloc */
-+#define FLAT_NIOS2_R_HI_LO		1 /* High 16-bits + low 16-bits field */
-+#define FLAT_NIOS2_R_HIADJ_LO	2 /* High 16-bits adjust + low 16-bits field */
-+#define FLAT_NIOS2_R_CALL26		4 /* Call imm26 */
-+
-+/* Extract the address to be relocated from the symbol reference at rp;
-+ * relval is the raw relocation-table entry from which RP is derived.
-+ * rp shall always be 32-bit aligned
-+ */
-+static inline unsigned long flat_get_addr_from_rp (unsigned long *rp,
-+						   unsigned long relval,
-+						   unsigned long flags)
-+{
-+	switch (FLAT_NIOS2_RELOC_TYPE(relval))
-+	{
-+	case FLAT_NIOS2_R_32:
-+		/* Simple 32-bit address. The loader expect it in bigger endian */
-+		return htonl(*rp);
-+
-+	case FLAT_NIOS2_R_HI_LO:
-+		/* get the two 16-bit immediate value from instructions, then
-+		 * construct a 32-bit value. Again the loader expect bigger endian
-+		 */
-+		return htonl ((((rp[0] >> 6) & 0xFFFF) << 16 ) | 
-+					  ((rp[1] >> 6) & 0xFFFF));
-+
-+	case FLAT_NIOS2_R_HIADJ_LO:
-+		{
-+		/* get the two 16-bit immediate value from instructions, then
-+		 * construct a 32-bit value. Again the loader expect bigger endian
-+		 */
-+		 unsigned int low, high;
-+		 high = (rp[0] >> 6) & 0xFFFF;
-+		 low  = (rp[1] >> 6) & 0xFFFF;
-+		 
-+		 if ((low >> 15) & 1) high--;
-+		 
-+		 return htonl ((high << 16 ) | low );
-+		}
-+	case FLAT_NIOS2_R_CALL26:
-+		/* the 26-bit immediate value is actually 28-bit */
-+		return htonl(((*rp) >> 6) << 2);
-+
-+	default:
-+		return ~0;	/* bogus value */
-+	}
-+}
-+
-+/* Insert the address addr into the symbol reference at rp;
-+ * relval is the raw relocation-table entry from which rp is derived.
-+ * rp shall always be 32-bit aligned
-+ */
-+static inline void flat_put_addr_at_rp (unsigned long *rp, unsigned long addr,
-+					unsigned long relval)
-+{
-+	unsigned long exist_val;
-+	switch (FLAT_NIOS2_RELOC_TYPE (relval)) {
-+	case FLAT_NIOS2_R_32:
-+		/* Simple 32-bit address.  */
-+		*rp = addr;
-+		break;
-+
-+	case FLAT_NIOS2_R_HI_LO:
-+		exist_val = rp[0];
-+		rp[0] = ((((exist_val >> 22) << 16) | (addr >> 16)) << 6) | (exist_val & 0x3F);
-+		exist_val = rp[1];
-+		rp[1] = ((((exist_val >> 22) << 16) | (addr & 0xFFFF)) << 6) | (exist_val & 0x3F);
-+		break;
-+
-+	case FLAT_NIOS2_R_HIADJ_LO:
-+		{
-+		unsigned int high = (addr >> 16);
-+		if ((addr >> 15) & 1) 
-+			high = (high + 1) & 0xFFFF;
-+		exist_val = rp[0];
-+		rp[0] = ((((exist_val >> 22) << 16) | high) << 6) | (exist_val & 0x3F);
-+		exist_val = rp[1];
-+		rp[1] = ((((exist_val >> 22) << 16) | (addr & 0xFFFF)) << 6) | (exist_val & 0x3F);
-+		break;
-+		}
-+	case FLAT_NIOS2_R_CALL26:
-+		/* the opcode of CALL is 0, so just store the value */
-+		*rp = ((addr >> 2) << 6);
-+		break;
-+	}
-+}
-+
-+#endif /* __NIOS2_FLAT_H__ */
---- linux/include/asm-nios2nommu/hardirq.h
-+++ linux/include/asm-nios2nommu/hardirq.h
-@@ -0,0 +1,85 @@
-+/*
-+ * Ported from m68knommu
-+ *
-+ * Copyright (C) 2003, Microtronix Datacom Ltd.
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+#ifndef __NIOS2_HARDIRQ_H
-+#define __NIOS2_HARDIRQ_H
-+
-+// #include <linux/config.h>
-+#include <linux/cache.h>
-+#include <linux/threads.h>
-+
-+typedef struct {
-+	unsigned int __softirq_pending;
-+	unsigned int __syscall_count;
-+	struct task_struct * __ksoftirqd_task;
-+} ____cacheline_aligned irq_cpustat_t;
-+
-+#include <linux/irq_cpustat.h>	/* Standard mappings for irq_cpustat_t above */
-+
-+/*
-+ * We put the hardirq and softirq counter into the preemption
-+ * counter. The bitmask has the following meaning:
-+ *
-+ * - bits 0-7 are the preemption count (max preemption depth: 256)
-+ * - bits 8-15 are the softirq count (max # of softirqs: 256)
-+ * - bits 16-23 are the hardirq count (max # of hardirqs: 256)
-+ *
-+ * - ( bit 26 is the PREEMPT_ACTIVE flag. )
-+ *
-+ * PREEMPT_MASK: 0x000000ff
-+ * HARDIRQ_MASK: 0x0000ff00
-+ * SOFTIRQ_MASK: 0x00ff0000
-+ */
-+
-+#define PREEMPT_BITS	8
-+#define SOFTIRQ_BITS	8
-+#define HARDIRQ_BITS	8
-+
-+#define PREEMPT_SHIFT	0
-+#define SOFTIRQ_SHIFT	(PREEMPT_SHIFT + PREEMPT_BITS)
-+#define HARDIRQ_SHIFT	(SOFTIRQ_SHIFT + SOFTIRQ_BITS)
-+
-+/*
-+ * The hardirq mask has to be large enough to have
-+ * space for potentially all IRQ sources in the system
-+ * nesting on a single CPU:
-+ */
-+#if (1 << HARDIRQ_BITS) < NR_IRQS
-+# error HARDIRQ_BITS is too low!
-+#endif
-+
-+#define irq_enter()		(preempt_count() += HARDIRQ_OFFSET)
-+#define irq_exit()							\
-+do {									\
-+		preempt_count() -= IRQ_EXIT_OFFSET;			\
-+		if (!in_interrupt() && softirq_pending(smp_processor_id())) \
-+			do_softirq();					\
-+		preempt_enable_no_resched();				\
-+} while (0)
-+
-+#ifdef CONFIG_SMP
-+# error nios2nommu SMP is not available
-+#endif /* CONFIG_SMP */
-+
-+#endif /* __NIOS2_HARDIRQ_H */
---- linux/include/asm-nios2nommu/hdreg.h
-+++ linux/include/asm-nios2nommu/hdreg.h
-@@ -0,0 +1,30 @@
-+/*
-+ *  Copyright (C) 1994-1996  Linus Torvalds & authors
-+ *  Copyright (C) 2002  Wentau Xu (www.microtronix.com)
-+ *  copyright (C) 2004  Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef __NIOS2_HDREG_H
-+#define __NIOS2_HDREG_H
-+
-+typedef unsigned long ide_ioreg_t;
-+
-+#endif /* __NIOS2_HDREG_H */
---- linux/include/asm-nios2nommu/hw_irq.h
-+++ linux/include/asm-nios2nommu/hw_irq.h
-@@ -0,0 +1,16 @@
-+#ifndef _ASM_HW_IRQ_H
-+#define _ASM_HW_IRQ_H
-+
-+/*
-+ *	linux/include/asm/hw_irq.h
-+ *
-+ *	(C) 1992, 1993 Linus Torvalds, (C) 1997 Ingo Molnar
-+ *
-+ *	moved some of the old arch/i386/kernel/irq.h to here. VY
-+ *
-+ *	IRQ/IPI changes taken from work by Thomas Radke
-+ *	<tomsoft@informatik.tu-chemnitz.de>
-+ */
-+
-+
-+#endif /* _ASM_HW_IRQ_H */
---- linux/include/asm-nios2nommu/ide.h
-+++ linux/include/asm-nios2nommu/ide.h
-@@ -0,0 +1,47 @@
-+/*
-+ *  linux/include/asm-niosnommu2/ide.h
-+ *
-+ *  Copyright (C) 1994-1996  Linus Torvalds & authors
-+ *  Copyright (C) 2004	     Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef __ASMNIOS2_IDE_H
-+#define __ASMNIOS2_IDE_H
-+
-+#ifdef __KERNEL__
-+#undef MAX_HWIFS		/* we're going to force it */
-+
-+#ifndef MAX_HWIFS
-+#define MAX_HWIFS	1
-+#endif
-+
-+#define IDE_ARCH_OBSOLETE_INIT
-+#define IDE_ARCH_OBSOLETE_DEFAULTS
-+#define ide_default_io_base(i)		((unsigned long)na_ide_ide)
-+#define ide_default_irq(b)			(na_ide_ide_irq)
-+#define ide_init_default_irq(base)	ide_default_irq(base)
-+#define ide_default_io_ctl(base)	((base) + (0xE*4))
-+
-+#include <asm-generic/ide_iops.h>
-+
-+#endif /* __KERNEL__ */
-+
-+#endif /* __ASMNIOS2_IDE_H */
---- linux/include/asm-nios2nommu/init.h
-+++ linux/include/asm-nios2nommu/init.h
-@@ -0,0 +1,22 @@
-+/*
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+#error "<asm/init.h> should never be used - use <linux/init.h> instead"
---- linux/include/asm-nios2nommu/io.h
-+++ linux/include/asm-nios2nommu/io.h
-@@ -0,0 +1,239 @@
-+/*
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef __NIOS2_IO_H
-+#define __NIOS2_IO_H
-+
-+#ifdef __KERNEL__
-+
-+#include <linux/kernel.h>
-+
-+#include <asm/page.h>      /* IO address mapping routines need this */
-+#include <asm/system.h>
-+#include <asm/unaligned.h>
-+
-+extern void insw(unsigned long port, void *dst, unsigned long count);
-+extern void outsw(unsigned long port, void *src, unsigned long count);
-+extern void insl(unsigned long port, void *dst, unsigned long count);
-+extern void outsl(unsigned long port, void *src, unsigned long count);
-+
-+
-+/*
-+ * readX/writeX() are used to access memory mapped devices. On some
-+ * architectures the memory mapped IO stuff needs to be accessed
-+ * differently. On the Nios architecture, we just read/write the
-+ * memory location directly.
-+ */
-+
-+#define readb(addr) 	\
-+({						\
-+	unsigned char __res;\
-+	__asm__ __volatile__( \
-+		"ldbuio %0, 0(%1)" \
-+		: "=r"(__res)	\
-+		: "r" (addr));	\
-+	__res;				\
-+})
-+
-+#define readw(addr) 	\
-+({						\
-+	unsigned short __res;\
-+	__asm__ __volatile__( \
-+		"ldhuio %0, 0(%1)" \
-+		: "=r"(__res)	\
-+		: "r" (addr));	\
-+	__res;				\
-+})
-+
-+#define readl(addr) 	\
-+({						\
-+	unsigned int __res;\
-+	__asm__ __volatile__( \
-+		"ldwio %0, 0(%1)" \
-+		: "=r"(__res)	\
-+		: "r" (addr));	\
-+	__res;				\
-+})
-+
-+#define writeb(b,addr)	\
-+({						\
-+	__asm__ __volatile__( \
-+		"stbio %0, 0(%1)" \
-+		: : "r"(b), "r" (addr));	\
-+})
-+
-+#define writew(b,addr)	\
-+({						\
-+	__asm__ __volatile__( \
-+		"sthio %0, 0(%1)" \
-+		: : "r"(b), "r" (addr));	\
-+})
-+
-+#define writel(b,addr)	\
-+({						\
-+	__asm__ __volatile__( \
-+		"stwio %0, 0(%1)" \
-+		: : "r"(b), "r" (addr));	\
-+})
-+
-+#define __raw_readb readb
-+#define __raw_readw readw
-+#define __raw_readl readl
-+#define __raw_writeb writeb
-+#define __raw_writew writew
-+#define __raw_writel writel
-+
-+
-+/*
-+ *	make the short names macros so specific devices
-+ *	can override them as required
-+ */
-+
-+#define memset_io(addr,c,len)	memset((void *)(((unsigned int)(addr)) | 0x80000000),(c),(len))
-+#define memcpy_fromio(to,from,len)	memcpy((to),(void *)(((unsigned int)(from)) | 0x80000000),(len))
-+#define memcpy_toio(to,from,len)	memcpy((void *)(((unsigned int)(to)) | 0x80000000),(from),(len))
-+
-+#define inb(addr)    readb(addr)
-+#define inw(addr)    readw(addr)
-+#define inl(addr)    readl(addr)
-+
-+#define outb(x,addr) ((void) writeb(x,addr))
-+#define outw(x,addr) ((void) writew(x,addr))
-+#define outl(x,addr) ((void) writel(x,addr))
-+
-+#define inb_p(addr)    inb(addr)
-+#define inw_p(addr)    inw(addr)
-+#define inl_p(addr)    inl(addr)
-+
-+#define outb_p(x,addr) outb(x,addr)
-+#define outw_p(x,addr) outw(x,addr)
-+#define outl_p(x,addr) outl(x,addr)
-+
-+
-+
-+extern inline void insb(unsigned long port, void *dst, unsigned long count)
-+{
-+	unsigned char *p=(unsigned char*)dst;
-+	while (count--)
-+		*p++ = inb(port);
-+}
-+
-+/* See arch/niosnommu/io.c for optimized version */
-+extern inline void _insw(unsigned long port, void *dst, unsigned long count)
-+{
-+	unsigned short *p=(unsigned short*)dst;
-+	while (count--)
-+		*p++ = inw(port);
-+}
-+
-+/* See arch/niosnommu/kernel/io.c for unaligned destination pointer */
-+extern inline void _insl(unsigned long port, void *dst, unsigned long count)
-+{
-+	unsigned long *p=(unsigned long*)dst;
-+	while (count--)
-+		*p++ = inl(port);
-+}
-+
-+extern inline void outsb(unsigned long port, void *src, unsigned long count)
-+{
-+	unsigned char *p=(unsigned char*)src;
-+	while (count--) 
-+        outb( *p++, port );
-+}
-+
-+/* See arch/niosnommu/io.c for optimized version */
-+extern inline void _outsw(unsigned long port, void *src, unsigned long count)
-+{
-+	unsigned short *p=(unsigned short*)src;
-+	while (count--) 
-+        outw( *p++, port );
-+}
-+
-+/* See arch/niosnommu/kernel/io.c for unaligned source pointer */
-+extern inline void _outsl(unsigned long port, void *src, unsigned long count)
-+{
-+	unsigned long *p=(unsigned long*)src;
-+	while (count--) 
-+        outl( *p++, port );
-+}
-+
-+
-+
-+extern inline void mapioaddr(unsigned long physaddr, unsigned long virt_addr,
-+			     int bus, int rdonly)
-+{
-+	return;
-+}
-+
-+//vic - copied from m68knommu
-+
-+/* Values for nocacheflag and cmode */
-+#define IOMAP_FULL_CACHING		0
-+#define IOMAP_NOCACHE_SER		1
-+#define IOMAP_NOCACHE_NONSER		2
-+#define IOMAP_WRITETHROUGH		3
-+
-+extern void *__ioremap(unsigned long physaddr, unsigned long size, int cacheflag);
-+extern void __iounmap(void *addr, unsigned long size);
-+
-+extern inline void *ioremap(unsigned long physaddr, unsigned long size)
-+{
-+	return __ioremap(physaddr, size, IOMAP_NOCACHE_SER);
-+}
-+extern inline void *ioremap_nocache(unsigned long physaddr, unsigned long size)
-+{
-+	return __ioremap(physaddr, size, IOMAP_NOCACHE_SER);
-+}
-+extern inline void *ioremap_writethrough(unsigned long physaddr, unsigned long size)
-+{
-+	return __ioremap(physaddr, size, IOMAP_WRITETHROUGH);
-+}
-+extern inline void *ioremap_fullcache(unsigned long physaddr, unsigned long size)
-+{
-+	return __ioremap(physaddr, size, IOMAP_FULL_CACHING);
-+}
-+
-+extern void iounmap(void *addr);
-+
-+
-+#define IO_SPACE_LIMIT 0xffffffff
-+
-+#define dma_cache_inv(_start,_size)		do { } while (0)
-+#define dma_cache_wback(_start,_size)		do { } while (0)
-+#define dma_cache_wback_inv(_start,_size)	do { } while (0)
-+
-+/* Pages to physical address... */
-+#define page_to_phys(page)      ((page - mem_map) << PAGE_SHIFT)
-+#define page_to_bus(page)       ((page - mem_map) << PAGE_SHIFT)
-+
-+#define mm_ptov(vaddr)		((void *) (vaddr))
-+#define mm_vtop(vaddr)		((unsigned long) (vaddr))
-+#define phys_to_virt(vaddr)	((void *) (vaddr))
-+#define virt_to_phys(vaddr)	((unsigned long) (vaddr))
-+
-+#define virt_to_bus virt_to_phys
-+#define bus_to_virt phys_to_virt
-+
-+#endif /* __KERNEL__ */
-+
-+#endif /* !(__NIOS2_IO_H) */
-+
---- linux/include/asm-nios2nommu/ioctl.h
-+++ linux/include/asm-nios2nommu/ioctl.h
-@@ -0,0 +1,100 @@
-+/* $Id: ioctl.h,v 1.3 2004/02/12 23:06:40 ken-h Exp $
-+ *
-+ * linux/ioctl.h for Linux by H.H. Bergman.
-+ *
-+ * Copyright (C) 2004,  Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef _NIOS2_IOCTL_H
-+#define _NIOS2_IOCTL_H
-+
-+/* ioctl command encoding: 32 bits total, command in lower 16 bits,
-+ * size of the parameter structure in the lower 14 bits of the
-+ * upper 16 bits.
-+ * Encoding the size of the parameter structure in the ioctl request
-+ * is useful for catching programs compiled with old versions
-+ * and to avoid overwriting user space outside the user buffer area.
-+ * The highest 2 bits are reserved for indicating the ``access mode''.
-+ * NOTE: This limits the max parameter size to 16kB -1 !
-+ */
-+
-+/*
-+ * I don't really have any idea about what this should look like, so
-+ * for the time being, this is heavily based on the PC definitions.
-+ */
-+
-+/*
-+ * The following is for compatibility across the various Linux
-+ * platforms.  The i386 ioctl numbering scheme doesn't really enforce
-+ * a type field.  De facto, however, the top 8 bits of the lower 16
-+ * bits are indeed used as a type field, so we might just as well make
-+ * this explicit here.  Please be sure to use the decoding macros
-+ * below from now on.
-+ */
-+#define _IOC_NRBITS	8
-+#define _IOC_TYPEBITS	8
-+#define _IOC_SIZEBITS	14
-+#define _IOC_DIRBITS	2
-+
-+#define _IOC_NRMASK	((1 << _IOC_NRBITS)-1)
-+#define _IOC_TYPEMASK	((1 << _IOC_TYPEBITS)-1)
-+#define _IOC_SIZEMASK	((1 << _IOC_SIZEBITS)-1)
-+#define _IOC_DIRMASK	((1 << _IOC_DIRBITS)-1)
-+
-+#define _IOC_NRSHIFT	0
-+#define _IOC_TYPESHIFT	(_IOC_NRSHIFT+_IOC_NRBITS)
-+#define _IOC_SIZESHIFT	(_IOC_TYPESHIFT+_IOC_TYPEBITS)
-+#define _IOC_DIRSHIFT	(_IOC_SIZESHIFT+_IOC_SIZEBITS)
-+
-+/*
-+ * Direction bits.
-+ */
-+#define _IOC_NONE	0U
-+#define _IOC_WRITE	1U
-+#define _IOC_READ	2U
-+
-+#define _IOC(dir,type,nr,size) \
-+	(((dir)  << _IOC_DIRSHIFT) | \
-+	 ((type) << _IOC_TYPESHIFT) | \
-+	 ((nr)   << _IOC_NRSHIFT) | \
-+	 ((size) << _IOC_SIZESHIFT))
-+
-+/* used to create numbers */
-+#define _IO(type,nr)		_IOC(_IOC_NONE,(type),(nr),0)
-+#define _IOR(type,nr,size)	_IOC(_IOC_READ,(type),(nr),sizeof(size))
-+#define _IOW(type,nr,size)	_IOC(_IOC_WRITE,(type),(nr),sizeof(size))
-+#define _IOWR(type,nr,size)	_IOC(_IOC_READ|_IOC_WRITE,(type),(nr),sizeof(size))
-+
-+/* used to decode ioctl numbers.. */
-+#define _IOC_DIR(nr)		(((nr) >> _IOC_DIRSHIFT) & _IOC_DIRMASK)
-+#define _IOC_TYPE(nr)		(((nr) >> _IOC_TYPESHIFT) & _IOC_TYPEMASK)
-+#define _IOC_NR(nr)		(((nr) >> _IOC_NRSHIFT) & _IOC_NRMASK)
-+#define _IOC_SIZE(nr)		(((nr) >> _IOC_SIZESHIFT) & _IOC_SIZEMASK)
-+
-+/* ...and for the drivers/sound files... */
-+
-+#define IOC_IN		(_IOC_WRITE << _IOC_DIRSHIFT)
-+#define IOC_OUT		(_IOC_READ << _IOC_DIRSHIFT)
-+#define IOC_INOUT	((_IOC_WRITE|_IOC_READ) << _IOC_DIRSHIFT)
-+#define IOCSIZE_MASK	(_IOC_SIZEMASK << _IOC_SIZESHIFT)
-+#define IOCSIZE_SHIFT	(_IOC_SIZESHIFT)
-+
-+#endif /* _NIOS2_IOCTL_H */
---- linux/include/asm-nios2nommu/ioctls.h
-+++ linux/include/asm-nios2nommu/ioctls.h
-@@ -0,0 +1,103 @@
-+/*
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef __ARCH_NIOS2_IOCTLS_H__
-+#define __ARCH_NIOS2_IOCTLS_H__
-+
-+#include <asm/ioctl.h>
-+
-+/* 0x54 is just a magic number to make these relatively unique ('T') */
-+
-+#define TCGETS		0x5401
-+#define TCSETS		0x5402
-+#define TCSETSW		0x5403
-+#define TCSETSF		0x5404
-+#define TCGETA		0x5405
-+#define TCSETA		0x5406
-+#define TCSETAW		0x5407
-+#define TCSETAF		0x5408
-+#define TCSBRK		0x5409
-+#define TCXONC		0x540A
-+#define TCFLSH		0x540B
-+#define TIOCEXCL	0x540C
-+#define TIOCNXCL	0x540D
-+#define TIOCSCTTY	0x540E
-+#define TIOCGPGRP	0x540F
-+#define TIOCSPGRP	0x5410
-+#define TIOCOUTQ	0x5411
-+#define TIOCSTI		0x5412
-+#define TIOCGWINSZ	0x5413
-+#define TIOCSWINSZ	0x5414
-+#define TIOCMGET	0x5415
-+#define TIOCMBIS	0x5416
-+#define TIOCMBIC	0x5417
-+#define TIOCMSET	0x5418
-+#define TIOCGSOFTCAR	0x5419
-+#define TIOCSSOFTCAR	0x541A
-+#define FIONREAD	0x541B
-+#define TIOCINQ		FIONREAD
-+#define TIOCLINUX	0x541C
-+#define TIOCCONS	0x541D
-+#define TIOCGSERIAL	0x541E
-+#define TIOCSSERIAL	0x541F
-+#define TIOCPKT		0x5420
-+#define FIONBIO		0x5421
-+#define TIOCNOTTY	0x5422
-+#define TIOCSETD	0x5423
-+#define TIOCGETD	0x5424
-+#define TCSBRKP		0x5425	/* Needed for POSIX tcsendbreak() */
-+#define TIOCTTYGSTRUCT	0x5426  /* For debugging only */
-+#define TIOCSBRK	0x5427  /* BSD compatibility */
-+#define TIOCCBRK	0x5428  /* BSD compatibility */
-+#define TIOCGSID	0x5429  /* Return the session ID of FD */
-+#define TIOCGPTN	_IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
-+#define TIOCSPTLCK	_IOW('T',0x31, int)  /* Lock/unlock Pty */
-+
-+#define FIONCLEX	0x5450  /* these numbers need to be adjusted. */
-+#define FIOCLEX		0x5451
-+#define FIOASYNC	0x5452
-+#define TIOCSERCONFIG	0x5453
-+#define TIOCSERGWILD	0x5454
-+#define TIOCSERSWILD	0x5455
-+#define TIOCGLCKTRMIOS	0x5456
-+#define TIOCSLCKTRMIOS	0x5457
-+#define TIOCSERGSTRUCT	0x5458 /* For debugging only */
-+#define TIOCSERGETLSR   0x5459 /* Get line status register */
-+#define TIOCSERGETMULTI 0x545A /* Get multiport config  */
-+#define TIOCSERSETMULTI 0x545B /* Set multiport config */
-+
-+#define TIOCMIWAIT	0x545C	/* wait for a change on serial input line(s) */
-+#define TIOCGICOUNT	0x545D	/* read serial port inline interrupt counts */
-+#define FIOQSIZE	0x545E
-+
-+/* Used for packet mode */
-+#define TIOCPKT_DATA		 0
-+#define TIOCPKT_FLUSHREAD	 1
-+#define TIOCPKT_FLUSHWRITE	 2
-+#define TIOCPKT_STOP		 4
-+#define TIOCPKT_START		 8
-+#define TIOCPKT_NOSTOP		16
-+#define TIOCPKT_DOSTOP		32
-+
-+#define TIOCSER_TEMT    0x01	/* Transmitter physically empty */
-+
-+#endif /* __ARCH_NIOS2_IOCTLS_H__ */
---- linux/include/asm-nios2nommu/ipc.h
-+++ linux/include/asm-nios2nommu/ipc.h
-@@ -0,0 +1,51 @@
-+#ifndef __NIOS2_IPC_H__
-+#define __NIOS2_IPC_H__
-+
-+/* Copied from sparc version
-+ * These are used to wrap system calls on the Nios.
-+ *
-+ * See arch/niosnommu/kernel/sys_nios.c for ugly details..
-+ *
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+struct ipc_kludge {
-+	struct msgbuf *msgp;
-+	long msgtyp;
-+};
-+
-+#define SEMOP		 1
-+#define SEMGET		 2
-+#define SEMCTL		 3
-+#define MSGSND		11
-+#define MSGRCV		12
-+#define MSGGET		13
-+#define MSGCTL		14
-+#define SHMAT		21
-+#define SHMDT		22
-+#define SHMGET		23
-+#define SHMCTL		24
-+
-+/* Used by the DIPC package, try and avoid reusing it */
-+#define DIPC            25
-+
-+#define IPCCALL(version,op)	((version)<<16 | (op))
-+
-+#endif
---- linux/include/asm-nios2nommu/ipcbuf.h
-+++ linux/include/asm-nios2nommu/ipcbuf.h
-@@ -0,0 +1,49 @@
-+#ifndef __NIOS2_IPCBUF_H__
-+#define __NIOS2_IPCBUF_H__
-+
-+/* Copied from asm-m68k/ipcbuf.h
-+ * The user_ipc_perm structure for Nios architecture.
-+ * Note extra padding because this structure is passed back and forth
-+ * between kernel and user space.
-+ *
-+ * Pad space is left for:
-+ * - 32-bit mode_t and seq
-+ * - 2 miscellaneous 32-bit values
-+ * 
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+struct ipc64_perm
-+{
-+	__kernel_key_t		key;
-+	__kernel_uid32_t	uid;
-+	__kernel_gid32_t	gid;
-+	__kernel_uid32_t	cuid;
-+	__kernel_gid32_t	cgid;
-+	__kernel_mode_t		mode;
-+	unsigned short		__pad1;
-+	unsigned short		seq;
-+	unsigned short		__pad2;
-+	unsigned long		__unused1;
-+	unsigned long		__unused2;
-+};
-+
-+#endif /* __NIOS2_IPCBUF_H__ */
---- linux/include/asm-nios2nommu/irq.h
-+++ linux/include/asm-nios2nommu/irq.h
-@@ -0,0 +1,182 @@
-+/*
-+ * 21Mar2001    1.1    dgt/microtronix
-+ *
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+
-+#ifndef _NIOS2NOMMU_IRQ_H_
-+#define _NIOS2NOMMU_IRQ_H_
-+
-+extern void disable_irq(unsigned int);
-+extern void enable_irq(unsigned int);
-+
-+// #include <linux/config.h>
-+#include <linux/interrupt.h>
-+
-+#define	SYS_IRQS	32
-+#define	NR_IRQS		SYS_IRQS
-+
-+/*
-+ * Interrupt source definitions
-+ * General interrupt sources are the level 1-7.
-+ * Adding an interrupt service routine for one of these sources
-+ * results in the addition of that routine to a chain of routines.
-+ * Each one is called in succession.  Each individual interrupt
-+ * service routine should determine if the device associated with
-+ * that routine requires service.
-+ */
-+
-+#define IRQ01		(1)	/* level 1  interrupt */
-+#define IRQ02		(2)	/* level 2  interrupt */
-+#define IRQ03		(3)	/* level 3  interrupt */
-+#define IRQ04		(4)	/* level 4  interrupt */
-+#define IRQ05		(5)	/* level 5  interrupt */
-+#define IRQ06		(6)	/* level 6  interrupt */
-+#define IRQ07		(7)	/* level 7  interrupt */
-+#define IRQ08		(8)	/* level 8  interrupt */
-+#define IRQ09		(9)	/* level 9  interrupt */
-+#define IRQ0A		(10)	/* level 10 interrupt */
-+#define IRQ0B		(11)	/* level 11 interrupt */
-+#define IRQ0C		(12)	/* level 12 interrupt */
-+#define IRQ0D		(13)	/* level 13 interrupt */
-+#define IRQ0E		(14)	/* level 14 interrupt */
-+#define IRQ0F		(15)	/* level 15 interrupt */
-+#define IRQ10		(16)	/* level 16 interrupt */
-+#define IRQ12		(17)	/* level 17 interrupt */
-+#define IRQ13		(18)	/* level 18 interrupt */
-+#define IRQ14		(19)	/* level 19 interrupt */
-+#define IRQ15		(20)	/* level 20 interrupt */
-+#define IRQ16		(21)	/* level 21 interrupt */
-+#define IRQ17		(22)	/* level 22 interrupt */
-+#define IRQ18		(23)	/* level 23 interrupt */
-+#define IRQ19		(24)	/* level 24 interrupt */
-+#define IRQ1A		(25)	/* level 25 interrupt */
-+#define IRQ1B		(26)	/* level 26 interrupt */
-+#define IRQ1C		(27)	/* level 27 interrupt */
-+#define IRQ1D		(28)	/* level 28 interrupt */
-+#define IRQ1E		(29)	/* level 29 interrupt */
-+#define IRQ1F		(30)	/* level 30 interrupt */
-+#define IRQ20		(31)	/* level 31 interrupt */
-+#define IRQ21		(32)	/* level 32 interrupt */
-+
-+#define IRQMAX		IRQ21
-+
-+/*
-+ * "Generic" interrupt sources
-+ */
-+
-+/*
-+ * Machine specific interrupt sources.
-+ *
-+ * Adding an interrupt service routine for a source with this bit
-+ * set indicates a special machine specific interrupt source.
-+ * The machine specific files define these sources.
-+ *
-+ * Removed, they are not used by any one.
-+ */
-+
-+/*
-+ * various flags for request_irq()
-+ */
-+#define IRQ_FLG_LOCK	(0x0001)	/* handler is not replaceable	*/
-+#define IRQ_FLG_REPLACE	(0x0002)	/* replace existing handler	*/
-+#define IRQ_FLG_FAST	(0x0004)
-+#define IRQ_FLG_SLOW	(0x0008)
-+#define IRQ_FLG_STD	(0x8000)	/* internally used		*/
-+
-+/*
-+ * Functions to set and clear the interrupt mask.
-+ */
-+
-+/*
-+ * Use a zero to clean the bit.
-+ */
-+static inline void clrimr(int mask)
-+{
-+	int flags;
-+
-+	local_irq_save(flags);
-+	__asm__ __volatile__(
-+	"rdctl	r8, ienable\n"
-+	"and	r8,r8,%0\n"
-+	"wrctl	ienable, r8\n"
-+	: /* No output */
-+	: "r" (mask)
-+	: "r8");
-+	local_irq_restore(flags);
-+}
-+
-+/*
-+ * Use a one to set the bit.
-+ */
-+static inline void setimr(int mask)
-+{
-+	int flags;
-+
-+	local_irq_save(flags);
-+	__asm__ __volatile__(
-+	"rdctl	r8, ienable\n"
-+	"or	r8,r8,%0\n"
-+	"wrctl	ienable, r8\n"
-+	: /* No output */
-+	: "r" (mask)
-+	: "r8");
-+	local_irq_restore(flags);
-+}
-+
-+/*
-+ * This structure is used to chain together the ISRs for a particular
-+ * interrupt source (if it supports chaining).
-+ */
-+typedef struct irq_node {
-+	irqreturn_t	(*handler)(int, void *, struct pt_regs *);
-+	unsigned long	flags;
-+	void		*dev_id;
-+	const char	*devname;
-+	struct irq_node *next;
-+} irq_node_t;
-+
-+/*
-+ * This function returns a new irq_node_t
-+ */
-+extern irq_node_t *new_irq_node(void);
-+
-+/*
-+ * This structure has only 4 elements for speed reasons
-+ */
-+typedef struct irq_handler {
-+	irqreturn_t	(*handler)(int, void *, struct pt_regs *);
-+	unsigned long	flags;
-+	void		*dev_id;
-+	const char	*devname;
-+} irq_handler_t;
-+
-+/* count of spurious interrupts */
-+extern volatile unsigned int num_spurious;
-+
-+#define disable_irq_nosync(i) disable_irq(i)
-+
-+#ifndef irq_canonicalize
-+#define irq_canonicalize(i)	(i)
-+#endif
-+
-+#endif /* _NIOS2NOMMU_IRQ_H_ */
---- linux/include/asm-nios2nommu/kmap_types.h
-+++ linux/include/asm-nios2nommu/kmap_types.h
-@@ -0,0 +1,43 @@
-+/*
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef _ASM_KMAP_TYPES_H
-+#define _ASM_KMAP_TYPES_H
-+
-+enum km_type {
-+	KM_BOUNCE_READ,
-+	KM_SKB_SUNRPC_DATA,
-+	KM_SKB_DATA_SOFTIRQ,
-+	KM_USER0,
-+	KM_USER1,
-+	KM_BIO_SRC_IRQ,
-+	KM_BIO_DST_IRQ,
-+	KM_PTE0,
-+	KM_PTE1,
-+	KM_IRQ0,
-+	KM_IRQ1,
-+	KM_SOFTIRQ0,
-+	KM_SOFTIRQ1,
-+	KM_TYPE_NR
-+};
-+
-+#endif
---- linux/include/asm-nios2nommu/linkage.h
-+++ linux/include/asm-nios2nommu/linkage.h
-@@ -0,0 +1,29 @@
-+/*
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef __ASM_LINKAGE_H
-+#define __ASM_LINKAGE_H
-+
-+#define __ALIGN .align 3
-+#define __ALIGN_STR ".align 3"
-+
-+#endif
---- linux/include/asm-nios2nommu/linux_logo.h
-+++ linux/include/asm-nios2nommu/linux_logo.h
-@@ -0,0 +1,953 @@
-+/* $Id: linux_logo.h,v 1.3 2004/02/12 23:06:40 ken-h Exp $
-+ * include/asm-nios/linux_logo.h: This is a linux logo
-+ *                                 to be displayed on boot.
-+ *
-+ * Copyright (C) 1996 Larry Ewing (lewing@isc.tamu.edu)
-+ * Copyright (C) 1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
-+ * Copyright (C) 2004 Micrtronix Datacom Ltd.
-+ *
-+ * You can put anything here, but:
-+ * LINUX_LOGO_COLORS has to be less than 224
-+ * image size has to be 80x80
-+ * values have to start from 0x20
-+ * (i.e. RGB(linux_logo_red[0],
-+ *	     linux_logo_green[0],
-+ *	     linux_logo_blue[0]) is color 0x20)
-+ * BW image has to be 80x80 as well, with MS bit
-+ * on the left
-+ * Serial_console ascii image can be any size,
-+ * but should contain %s to display the version
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+ 
-+#include <linux/init.h>
-+#include <linux/version.h>
-+
-+#define linux_logo_banner "Linux/NIOS2 version " UTS_RELEASE
-+
-+#define __HAVE_ARCH_LINUX_LOGO
-+#define __HAVE_ARCH_LINUX_LOGO16
-+
-+#define LINUX_LOGO_COLORS	221
-+
-+#ifdef INCLUDE_LINUX_LOGO_DATA
-+
-+unsigned char linux_logo_red[] __initdata = {
-+    0x00, 0x06, 0x0a, 0x0e, 0x16, 0x1a, 0x1e, 0x22,
-+    0x12, 0x00, 0x2a, 0x36, 0x42, 0x4e, 0x4a, 0x56,
-+    0x26, 0x46, 0x2e, 0x32, 0x52, 0x3a, 0x02, 0x65,
-+    0x5e, 0x3e, 0x74, 0x8a, 0xa2, 0x9a, 0x86, 0xc6,
-+    0xc3, 0x65, 0xbb, 0xd2, 0xda, 0xd6, 0xe2, 0xf6,
-+    0xfd, 0xae, 0x7b, 0xdd, 0xea, 0x6a, 0xaa, 0xe7,
-+    0xbe, 0x5a, 0xee, 0x9e, 0x95, 0x80, 0x76, 0x79,
-+    0x62, 0x36, 0x9a, 0xe2, 0xec, 0xe1, 0xb8, 0xd7,
-+    0xaf, 0x25, 0xbc, 0xc0, 0xef, 0xea, 0xe8, 0xe8,
-+    0xf5, 0xf1, 0xda, 0xd3, 0x79, 0xdb, 0xf4, 0xf6,
-+    0xf6, 0xf6, 0xe2, 0x3d, 0xb4, 0xce, 0xe6, 0xee,
-+    0xf6, 0x68, 0xd8, 0xec, 0xf5, 0xc6, 0xc8, 0x9c,
-+    0x89, 0xd2, 0xee, 0xcb, 0xb9, 0xd2, 0x66, 0x5e,
-+    0x8b, 0xbe, 0xa8, 0xd5, 0xca, 0xb6, 0xae, 0x9c,
-+    0xc5, 0xbe, 0xbe, 0xca, 0x90, 0xb2, 0x9a, 0xa8,
-+    0xb6, 0xf2, 0xce, 0xfa, 0xb2, 0x6e, 0xa6, 0xfe,
-+    0xf6, 0xec, 0xfe, 0xd2, 0xea, 0xf5, 0xf2, 0xf2,
-+    0xe9, 0xee, 0xf6, 0xf2, 0xee, 0xf6, 0xda, 0xd4,
-+    0xfa, 0xca, 0xf2, 0xf6, 0xfe, 0xf2, 0xda, 0xe4,
-+    0xf6, 0xdd, 0xf2, 0xee, 0xfa, 0xf0, 0x12, 0x4a,
-+    0xd6, 0xf2, 0x8e, 0xf2, 0xf6, 0xf6, 0xb5, 0xf1,
-+    0x26, 0x9a, 0xea, 0xf6, 0xe0, 0xd2, 0x16, 0x9a,
-+    0x2e, 0xd2, 0x70, 0xd6, 0x46, 0x7c, 0xb4, 0x62,
-+    0xda, 0xee, 0xd6, 0xa3, 0x74, 0xa7, 0xa2, 0xe0,
-+    0xae, 0xbe, 0xce, 0xe2, 0xa3, 0x8e, 0x6d, 0x8e,
-+    0x32, 0xaf, 0x50, 0x9e, 0x5b, 0x8a, 0x98, 0x82,
-+    0x7a, 0x82, 0x56, 0x7c, 0x8a, 0x56, 0x5e, 0x86,
-+    0x6a, 0x52, 0x59, 0x64, 0x5e,
-+};
-+
-+unsigned char linux_logo_green[] __initdata = {
-+    0x00, 0x06, 0x0a, 0x0e, 0x16, 0x1a, 0x1e, 0x22,
-+    0x12, 0x00, 0x2a, 0x36, 0x42, 0x4e, 0x4a, 0x56,
-+    0x26, 0x46, 0x2e, 0x32, 0x52, 0x3a, 0x02, 0x65,
-+    0x5e, 0x3e, 0x74, 0x8a, 0xa2, 0x9a, 0x86, 0xc6,
-+    0xc3, 0x62, 0xbb, 0xd2, 0xda, 0xd6, 0xe2, 0xf6,
-+    0xfd, 0xae, 0x7b, 0xdd, 0xea, 0x6a, 0xaa, 0xe7,
-+    0xbe, 0x5a, 0xee, 0x9e, 0x95, 0x80, 0x62, 0x5c,
-+    0x4e, 0x26, 0x72, 0xaa, 0xba, 0xaf, 0x90, 0xae,
-+    0x92, 0x1a, 0xa4, 0x85, 0xb6, 0xbe, 0xc3, 0xc8,
-+    0xcf, 0xd0, 0xc2, 0xce, 0x57, 0xa2, 0xd6, 0xda,
-+    0xda, 0xd7, 0xb8, 0x2a, 0x7b, 0x91, 0xae, 0xca,
-+    0xda, 0x45, 0x9e, 0xb2, 0xd7, 0x9b, 0x90, 0x76,
-+    0x5c, 0xa2, 0xbe, 0xa6, 0x85, 0x96, 0x4e, 0x46,
-+    0x66, 0x92, 0x7a, 0x9a, 0x96, 0x9d, 0x9a, 0x6b,
-+    0x8a, 0x8e, 0xb2, 0xca, 0x90, 0xa6, 0x79, 0x7c,
-+    0xb6, 0xf2, 0xce, 0xfa, 0xb2, 0x6e, 0xa6, 0xfa,
-+    0xea, 0xd7, 0xf6, 0xbc, 0xda, 0xde, 0xda, 0xe6,
-+    0xca, 0xd8, 0xea, 0xe0, 0xcc, 0xf2, 0xce, 0xb2,
-+    0xee, 0xa2, 0xd6, 0xe6, 0xf6, 0xd7, 0xc5, 0xb8,
-+    0xc6, 0xb9, 0xce, 0xde, 0xce, 0xc6, 0x0e, 0x36,
-+    0xae, 0xbe, 0x86, 0xba, 0xbe, 0xe6, 0x8e, 0xc4,
-+    0x1e, 0x8e, 0xae, 0xba, 0xb2, 0xa6, 0x12, 0x7a,
-+    0x20, 0xc6, 0x64, 0xaa, 0x2f, 0x70, 0x85, 0x46,
-+    0xce, 0xd6, 0xa6, 0x6e, 0x51, 0x72, 0x92, 0xa6,
-+    0x87, 0x96, 0xa2, 0xd6, 0x85, 0x7a, 0x6a, 0x6e,
-+    0x22, 0x76, 0x36, 0x76, 0x3c, 0x6e, 0x63, 0x53,
-+    0x66, 0x62, 0x42, 0x50, 0x56, 0x42, 0x56, 0x56,
-+    0x56, 0x3e, 0x51, 0x52, 0x56,
-+};
-+
-+unsigned char linux_logo_blue[] __initdata = {
-+    0x00, 0x06, 0x0a, 0x0e, 0x16, 0x1a, 0x1e, 0x22,
-+    0x12, 0x01, 0x2a, 0x36, 0x42, 0x4e, 0x4a, 0x56,
-+    0x26, 0x46, 0x2e, 0x32, 0x52, 0x3a, 0x06, 0x65,
-+    0x5e, 0x3e, 0x74, 0x8a, 0xa2, 0x9a, 0x86, 0xc6,
-+    0xc3, 0x59, 0xbb, 0xd2, 0xda, 0xd6, 0xe2, 0xf6,
-+    0xfd, 0xae, 0x7b, 0xdd, 0xea, 0x6a, 0xaa, 0xe7,
-+    0xbe, 0x5a, 0xee, 0x9e, 0x95, 0x80, 0x2e, 0x08,
-+    0x0a, 0x06, 0x0a, 0x0b, 0x0b, 0x0f, 0x0c, 0x0f,
-+    0x3d, 0x09, 0x73, 0x09, 0x0d, 0x0a, 0x10, 0x1e,
-+    0x2d, 0x13, 0x86, 0xba, 0x19, 0x0a, 0x36, 0x3c,
-+    0x26, 0x14, 0x0d, 0x06, 0x07, 0x0a, 0x0b, 0x0f,
-+    0x4a, 0x06, 0x0a, 0x0c, 0x2b, 0x0a, 0x0b, 0x0a,
-+    0x06, 0x0a, 0x0a, 0x11, 0x0b, 0x0a, 0x0a, 0x1e,
-+    0x0f, 0x0d, 0x0a, 0x0b, 0x22, 0x6a, 0x72, 0x0b,
-+    0x0b, 0x22, 0x90, 0xca, 0x90, 0x92, 0x3c, 0x2c,
-+    0xb6, 0xf2, 0xce, 0xfa, 0xb2, 0x6e, 0xa6, 0xea,
-+    0xb6, 0x7c, 0xda, 0x8e, 0xa6, 0x87, 0x66, 0xb6,
-+    0x81, 0x6a, 0xc6, 0x9a, 0x5b, 0xd2, 0xb6, 0x6a,
-+    0xca, 0x45, 0x92, 0xb2, 0xca, 0x52, 0x8a, 0x3e,
-+    0x2e, 0x66, 0x66, 0xae, 0x3e, 0x47, 0x06, 0x0e,
-+    0x52, 0x36, 0x6a, 0x0e, 0x0e, 0xbe, 0x2c, 0x0e,
-+    0x0a, 0x5a, 0x0d, 0x0e, 0x3e, 0x0a, 0x06, 0x2e,
-+    0x06, 0x9e, 0x4e, 0x36, 0x06, 0x58, 0x24, 0x06,
-+    0x9e, 0xae, 0x3a, 0x08, 0x08, 0x07, 0x5e, 0x0a,
-+    0x32, 0x2e, 0x2a, 0xb2, 0x43, 0x48, 0x5f, 0x2e,
-+    0x06, 0x06, 0x07, 0x24, 0x06, 0x32, 0x06, 0x06,
-+    0x46, 0x2e, 0x22, 0x06, 0x06, 0x1e, 0x4c, 0x06,
-+    0x3a, 0x22, 0x42, 0x34, 0x42,
-+};
-+
-+unsigned char linux_logo[] __initdata = {
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x22, 0x22,
-+    0x22, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
-+    0x26, 0x26, 0x25, 0x28, 0x23, 0x22, 0x21, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x29, 0x29, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x21, 0x23, 0x25, 0x2a, 0x2b, 0x2c, 0x2d, 0x2d,
-+    0x2d, 0x2e, 0x2c, 0x2b, 0x2a, 0x25, 0x28, 0x22,
-+    0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x29, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22,
-+    0x24, 0x2a, 0x2c, 0x2f, 0x2c, 0x30, 0x30, 0x24,
-+    0x25, 0x27, 0x2b, 0x2c, 0x2f, 0x31, 0x32, 0x25,
-+    0x23, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x29, 0x29, 0x29, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x25,
-+    0x33, 0x34, 0x35, 0x21, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x21, 0x2b, 0x2f, 0x2c,
-+    0x30, 0x28, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x24, 0x33,
-+    0x2d, 0x27, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x21, 0x31,
-+    0x2d, 0x32, 0x24, 0x21, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x29, 0x29, 0x29, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x21, 0x28, 0x2a, 0x34,
-+    0x25, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x23, 0x32, 0x27, 0x21, 0x36,
-+    0x2a, 0x2d, 0x2a, 0x28, 0x21, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x29, 0x20, 0x29, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x22, 0x26, 0x2c, 0x35,
-+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x25, 0x2f, 0x37, 0x32, 0x22,
-+    0x36, 0x35, 0x31, 0x27, 0x22, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x29, 0x29, 0x29, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x23, 0x2a, 0x2f, 0x22,
-+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x26, 0x38, 0x38, 0x35, 0x25,
-+    0x36, 0x21, 0x2d, 0x2b, 0x24, 0x21, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x21, 0x24, 0x39, 0x39, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x25, 0x2b, 0x30, 0x28, 0x22,
-+    0x36, 0x36, 0x27, 0x34, 0x30, 0x23, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x29, 0x29, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x21, 0x26, 0x2d, 0x26, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x22, 0x22, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x2d, 0x33, 0x28, 0x21, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x29, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x22, 0x30, 0x2f, 0x23, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x2b, 0x2c, 0x25, 0x21, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x29, 0x29, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x23, 0x2a, 0x34, 0x36, 0x36,
-+    0x36, 0x21, 0x22, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x21, 0x23, 0x22, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x28, 0x34, 0x27, 0x22, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x29, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x23, 0x32, 0x2f, 0x36, 0x36,
-+    0x21, 0x21, 0x24, 0x27, 0x21, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x28, 0x27, 0x22, 0x33, 0x24, 0x36,
-+    0x36, 0x36, 0x36, 0x22, 0x2f, 0x2a, 0x23, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x29, 0x29, 0x29, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x23, 0x32, 0x2f, 0x36, 0x36,
-+    0x30, 0x3a, 0x38, 0x24, 0x24, 0x36, 0x36, 0x36,
-+    0x23, 0x2f, 0x3b, 0x3c, 0x3d, 0x30, 0x25, 0x21,
-+    0x36, 0x36, 0x36, 0x36, 0x2f, 0x32, 0x23, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x23, 0x32, 0x2f, 0x36, 0x23,
-+    0x3e, 0x3f, 0x40, 0x3a, 0x22, 0x36, 0x36, 0x21,
-+    0x41, 0x42, 0x43, 0x44, 0x45, 0x3e, 0x23, 0x21,
-+    0x36, 0x36, 0x36, 0x36, 0x2f, 0x33, 0x28, 0x21,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x29, 0x20, 0x29, 0x29, 0x29, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x23, 0x32, 0x2f, 0x36, 0x2b,
-+    0x44, 0x40, 0x46, 0x47, 0x35, 0x36, 0x36, 0x26,
-+    0x43, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x2e, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x31, 0x35, 0x24, 0x21,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x23, 0x32, 0x34, 0x36, 0x4d,
-+    0x4e, 0x25, 0x2f, 0x46, 0x4a, 0x22, 0x23, 0x32,
-+    0x4f, 0x50, 0x21, 0x31, 0x51, 0x52, 0x53, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x31, 0x35, 0x24, 0x21,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x29, 0x20, 0x29, 0x29, 0x29, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x23, 0x2a, 0x2f, 0x21, 0x3a,
-+    0x4d, 0x21, 0x31, 0x54, 0x55, 0x28, 0x30, 0x2b,
-+    0x4b, 0x4d, 0x36, 0x23, 0x32, 0x50, 0x3f, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x2e, 0x39, 0x24, 0x21,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x29, 0x20, 0x29, 0x20, 0x29, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x23, 0x2a, 0x38, 0x23, 0x37,
-+    0x55, 0x36, 0x28, 0x3a, 0x56, 0x57, 0x57, 0x58,
-+    0x3c, 0x4d, 0x36, 0x36, 0x36, 0x40, 0x40, 0x21,
-+    0x36, 0x36, 0x36, 0x36, 0x2e, 0x39, 0x24, 0x21,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x29, 0x29, 0x29, 0x20, 0x29, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x22, 0x30, 0x51, 0x23, 0x35,
-+    0x43, 0x25, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e,
-+    0x5f, 0x60, 0x61, 0x36, 0x31, 0x47, 0x3b, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x31, 0x2c, 0x25, 0x21,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x22, 0x30, 0x2f, 0x23, 0x22,
-+    0x40, 0x62, 0x63, 0x5d, 0x64, 0x65, 0x66, 0x67,
-+    0x68, 0x69, 0x66, 0x5e, 0x6a, 0x6b, 0x2a, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x33, 0x2e, 0x26, 0x21,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x22, 0x27, 0x2f, 0x23, 0x36,
-+    0x6c, 0x63, 0x6d, 0x64, 0x5c, 0x66, 0x69, 0x6e,
-+    0x6f, 0x70, 0x71, 0x69, 0x69, 0x72, 0x6c, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x33, 0x34, 0x27, 0x22,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x22, 0x27, 0x34, 0x26, 0x73,
-+    0x74, 0x75, 0x76, 0x64, 0x65, 0x77, 0x69, 0x78,
-+    0x70, 0x71, 0x71, 0x71, 0x72, 0x5f, 0x5e, 0x21,
-+    0x36, 0x36, 0x36, 0x36, 0x25, 0x38, 0x2a, 0x23,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x22, 0x26, 0x2d, 0x33, 0x79,
-+    0x63, 0x7a, 0x7b, 0x5c, 0x66, 0x69, 0x6e, 0x7c,
-+    0x71, 0x71, 0x69, 0x7d, 0x7e, 0x7a, 0x7f, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x21, 0x51, 0x2b, 0x28,
-+    0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x22, 0x26, 0x2d, 0x32, 0x24,
-+    0x80, 0x81, 0x64, 0x82, 0x77, 0x69, 0x71, 0x71,
-+    0x69, 0x83, 0x84, 0x85, 0x7a, 0x85, 0x86, 0x36,
-+    0x21, 0x2b, 0x23, 0x36, 0x36, 0x39, 0x2e, 0x26,
-+    0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x22, 0x27, 0x2d, 0x33, 0x21,
-+    0x87, 0x88, 0x89, 0x72, 0x67, 0x66, 0x5f, 0x89,
-+    0x8a, 0x63, 0x85, 0x8b, 0x8c, 0x8d, 0x41, 0x36,
-+    0x36, 0x2d, 0x3a, 0x35, 0x36, 0x24, 0x51, 0x32,
-+    0x28, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x22, 0x30, 0x2f, 0x33, 0x21,
-+    0x55, 0x8e, 0x8f, 0x8a, 0x7d, 0x5e, 0x90, 0x7e,
-+    0x75, 0x75, 0x90, 0x62, 0x40, 0x3f, 0x49, 0x23,
-+    0x36, 0x24, 0x3a, 0x3a, 0x24, 0x36, 0x2e, 0x31,
-+    0x26, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x21, 0x28, 0x33, 0x37, 0x25, 0x22,
-+    0x3b, 0x50, 0x8e, 0x8f, 0x90, 0x7e, 0x90, 0x63,
-+    0x74, 0x91, 0x92, 0x42, 0x93, 0x4b, 0x45, 0x2c,
-+    0x36, 0x36, 0x33, 0x39, 0x21, 0x36, 0x22, 0x51,
-+    0x33, 0x28, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x22, 0x27, 0x2e, 0x2e, 0x36, 0x21,
-+    0x94, 0x3f, 0x50, 0x95, 0x96, 0x8f, 0x8f, 0x97,
-+    0x8e, 0x42, 0x50, 0x43, 0x47, 0x48, 0x48, 0x98,
-+    0x21, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x39,
-+    0x2e, 0x27, 0x23, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x22, 0x24, 0x2b, 0x38, 0x28, 0x36, 0x32,
-+    0x4c, 0x4b, 0x50, 0x50, 0x50, 0x42, 0x42, 0x50,
-+    0x50, 0x40, 0x45, 0x99, 0x48, 0x48, 0x48, 0x48,
-+    0x34, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x23,
-+    0x2f, 0x2b, 0x24, 0x21, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x21, 0x28, 0x32, 0x51, 0x32, 0x28, 0x21, 0x98,
-+    0x48, 0x47, 0x9a, 0x50, 0x50, 0x50, 0x50, 0x50,
-+    0x9a, 0x4f, 0x9b, 0x48, 0x48, 0x48, 0x48, 0x48,
-+    0x93, 0x23, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x2a, 0x2f, 0x2a, 0x28, 0x21, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
-+    0x23, 0x30, 0x2e, 0x2c, 0x36, 0x21, 0x51, 0x9b,
-+    0x48, 0x48, 0x52, 0x3f, 0x50, 0x50, 0x40, 0x4b,
-+    0x47, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
-+    0x48, 0x34, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x2d, 0x31, 0x27, 0x23, 0x21, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x23,
-+    0x27, 0x2c, 0x2d, 0x21, 0x36, 0x28, 0x44, 0x48,
-+    0x48, 0x48, 0x48, 0x47, 0x46, 0x4f, 0x47, 0x48,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
-+    0x48, 0x9c, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x28, 0x51, 0x39, 0x26, 0x22, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x25,
-+    0x35, 0x51, 0x28, 0x36, 0x36, 0x9d, 0x48, 0x48,
-+    0x48, 0x48, 0x48, 0x48, 0x9b, 0x48, 0x48, 0x48,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
-+    0x48, 0x4f, 0x28, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x28, 0x38, 0x2b, 0x25, 0x22, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x24, 0x33,
-+    0x51, 0x25, 0x36, 0x36, 0x23, 0x40, 0x9b, 0x48,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
-+    0x9b, 0x99, 0x2b, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x30, 0x2f, 0x33, 0x24, 0x21,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x21, 0x23, 0x30, 0x34,
-+    0x27, 0x36, 0x36, 0x36, 0x2a, 0x40, 0x47, 0x48,
-+    0x48, 0x48, 0x48, 0x9b, 0x99, 0x99, 0x9b, 0x48,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x9b, 0x47, 0x52,
-+    0x46, 0x4f, 0x37, 0x21, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x30, 0x34, 0x2a, 0x23,
-+    0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x22, 0x25, 0x39, 0x2c,
-+    0x36, 0x36, 0x36, 0x21, 0x31, 0x4e, 0x9a, 0x4c,
-+    0x47, 0x9b, 0x9b, 0x52, 0x46, 0x4f, 0x52, 0x9b,
-+    0x9b, 0x9b, 0x47, 0x4f, 0x45, 0x9a, 0x93, 0x93,
-+    0x3f, 0x93, 0x98, 0x28, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x36, 0x39, 0x2c, 0x26,
-+    0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x23, 0x2a, 0x34, 0x28,
-+    0x36, 0x36, 0x36, 0x22, 0x38, 0x98, 0x44, 0x99,
-+    0x9b, 0x48, 0x48, 0x9b, 0x4c, 0x48, 0x48, 0x48,
-+    0x48, 0x48, 0x48, 0x47, 0x52, 0x46, 0x43, 0x93,
-+    0x40, 0x40, 0x43, 0x53, 0x21, 0x23, 0x33, 0x23,
-+    0x36, 0x36, 0x36, 0x36, 0x36, 0x21, 0x2f, 0x32,
-+    0x28, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x21, 0x24, 0x2b, 0x31, 0x36,
-+    0x36, 0x22, 0x36, 0x24, 0x9e, 0x4f, 0x9b, 0x48,
-+    0x48, 0x48, 0x48, 0x9b, 0x99, 0x9f, 0x52, 0x48,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x47,
-+    0x4f, 0x9a, 0x3f, 0x46, 0x38, 0x36, 0x21, 0x30,
-+    0x26, 0x36, 0x36, 0x36, 0x36, 0x36, 0x39, 0x2c,
-+    0x25, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x22, 0x26, 0x2e, 0x33, 0x36,
-+    0x25, 0x25, 0x36, 0x4d, 0x52, 0x48, 0x48, 0x48,
-+    0x47, 0x9f, 0x48, 0x48, 0x48, 0xa0, 0xa1, 0xa2,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
-+    0x48, 0x47, 0x44, 0x93, 0x43, 0x23, 0x36, 0x36,
-+    0x26, 0x24, 0x36, 0x36, 0x36, 0x36, 0x28, 0x2f,
-+    0x2a, 0x23, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x23, 0x2a, 0x51, 0x24, 0x36,
-+    0x2a, 0x36, 0x28, 0x44, 0x48, 0x48, 0x48, 0x48,
-+    0xa3, 0xa4, 0x48, 0x48, 0x9f, 0xa5, 0xa6, 0x9f,
-+    0x48, 0x48, 0x48, 0xa2, 0xa7, 0x47, 0x48, 0x48,
-+    0x48, 0x48, 0x9b, 0x4b, 0x44, 0x37, 0x36, 0x23,
-+    0x28, 0x30, 0x22, 0x36, 0x36, 0x36, 0x36, 0x2d,
-+    0x35, 0x24, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x21, 0x28, 0x2b, 0x34, 0x36, 0x25,
-+    0x24, 0x36, 0x4a, 0x48, 0x48, 0x48, 0x48, 0x48,
-+    0xa8, 0xa1, 0x48, 0x48, 0x9f, 0xa9, 0xa6, 0x9f,
-+    0x48, 0x48, 0xaa, 0xa1, 0xa5, 0x9f, 0x48, 0x48,
-+    0x48, 0x48, 0x48, 0x9b, 0x52, 0x3f, 0x21, 0x30,
-+    0x35, 0x25, 0x30, 0x36, 0x36, 0x36, 0x36, 0x32,
-+    0x2d, 0x26, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x22, 0x26, 0x2e, 0x35, 0x36, 0x2a,
-+    0x36, 0x24, 0x4f, 0x48, 0x52, 0x52, 0x48, 0x48,
-+    0xab, 0xac, 0xa0, 0x48, 0xad, 0xa6, 0xa6, 0x9f,
-+    0x48, 0xa2, 0xa9, 0xa6, 0xa2, 0x48, 0x48, 0x48,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x47, 0x32, 0x30,
-+    0x2a, 0x23, 0x30, 0x23, 0x36, 0x36, 0x36, 0x21,
-+    0x2f, 0x32, 0x23, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x21, 0x23, 0x2a, 0x51, 0x28, 0x28, 0x25,
-+    0x36, 0x3a, 0x48, 0x48, 0xae, 0xaf, 0x48, 0x48,
-+    0xad, 0xac, 0xa1, 0x9f, 0xa2, 0xa9, 0xa9, 0xa2,
-+    0x48, 0xab, 0x78, 0xa7, 0x48, 0x48, 0x48, 0x48,
-+    0x9f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x38, 0x21,
-+    0x36, 0x36, 0x22, 0x27, 0x36, 0x36, 0x36, 0x36,
-+    0x2e, 0x35, 0x24, 0x21, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x22, 0x25, 0x2c, 0x34, 0x36, 0x30, 0x21,
-+    0x23, 0x43, 0x48, 0x48, 0xb0, 0xb1, 0xb2, 0x9f,
-+    0x48, 0xb3, 0xa5, 0xb3, 0xab, 0xa9, 0xa9, 0xb3,
-+    0xb4, 0xa9, 0xb5, 0xb0, 0x48, 0x48, 0xa0, 0xa5,
-+    0xa1, 0xad, 0x48, 0x48, 0x48, 0x48, 0x94, 0x36,
-+    0x36, 0x36, 0x36, 0x32, 0x36, 0x36, 0x36, 0x36,
-+    0x2a, 0x2e, 0x26, 0x22, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x21, 0x23, 0x2a, 0x51, 0x25, 0x21, 0x2a, 0x36,
-+    0x2e, 0x9b, 0x48, 0x48, 0x48, 0xb6, 0xb7, 0xa4,
-+    0xa2, 0xa7, 0xb5, 0x78, 0x6f, 0x6f, 0x6e, 0x6f,
-+    0xa9, 0xb5, 0xab, 0x48, 0x9f, 0xab, 0xa9, 0xa1,
-+    0xaa, 0x48, 0x48, 0x48, 0x48, 0x48, 0x98, 0x36,
-+    0x36, 0x36, 0x36, 0x32, 0x36, 0x36, 0x36, 0x36,
-+    0x22, 0x2f, 0x30, 0x22, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x22, 0x25, 0x2c, 0x34, 0x36, 0x24, 0x28, 0x36,
-+    0x54, 0x48, 0x48, 0x48, 0x48, 0xa2, 0xa8, 0xa1,
-+    0xa5, 0xa6, 0x6e, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f,
-+    0x6f, 0x78, 0xa5, 0xa0, 0xa0, 0x78, 0xa6, 0xa2,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x9a, 0x36,
-+    0x36, 0x36, 0x36, 0x30, 0x36, 0x36, 0x36, 0x36,
-+    0x21, 0x2f, 0x32, 0x23, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
-+    0x28, 0x32, 0x2f, 0x28, 0x36, 0x27, 0x22, 0x21,
-+    0x43, 0x48, 0x4b, 0xa2, 0x9f, 0x48, 0xa2, 0xa1,
-+    0xb8, 0x6e, 0x6e, 0xb5, 0x78, 0x6f, 0x78, 0x78,
-+    0x6e, 0x6f, 0x78, 0xb5, 0xa6, 0xa1, 0xa0, 0x48,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x4b, 0x21,
-+    0x36, 0x36, 0x21, 0x26, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x34, 0x2b, 0x28, 0x21, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22,
-+    0x25, 0x2c, 0x39, 0x36, 0x36, 0x30, 0x22, 0x25,
-+    0x52, 0x48, 0xa3, 0xb1, 0xb6, 0xb3, 0xaa, 0xac,
-+    0x68, 0x68, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f,
-+    0x78, 0x6f, 0x6f, 0xb5, 0xa6, 0xb4, 0x48, 0x9f,
-+    0xb4, 0xb4, 0xa2, 0x9f, 0x48, 0x48, 0x4f, 0x21,
-+    0x36, 0x36, 0x22, 0x26, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x2c, 0x35, 0x24, 0x21, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22,
-+    0x30, 0x2d, 0x21, 0x36, 0x36, 0x32, 0x23, 0x2a,
-+    0x47, 0x48, 0xa2, 0xb6, 0xaf, 0xb9, 0xba, 0x68,
-+    0x6e, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x78,
-+    0x6f, 0x6f, 0xa6, 0x6f, 0xb5, 0xa0, 0xaa, 0xa6,
-+    0xa6, 0xa9, 0xb2, 0xb3, 0x48, 0x48, 0x4c, 0x22,
-+    0x36, 0x36, 0x24, 0x23, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x2c, 0x39, 0x24, 0x21, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x28,
-+    0x33, 0x2e, 0x36, 0x36, 0x23, 0x31, 0x27, 0x39,
-+    0x9b, 0x48, 0x48, 0x48, 0xb0, 0xb0, 0xba, 0xb8,
-+    0x68, 0x68, 0x69, 0x78, 0x6f, 0xb5, 0x6f, 0xb5,
-+    0x78, 0x78, 0x78, 0x78, 0x78, 0xa5, 0xbb, 0xa9,
-+    0xa5, 0x48, 0x48, 0x48, 0x48, 0x48, 0x4c, 0x23,
-+    0x36, 0x36, 0x26, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x2c, 0x39, 0x24, 0x21, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x28,
-+    0x2b, 0x39, 0x36, 0x36, 0x36, 0x26, 0x32, 0x31,
-+    0x9b, 0x48, 0x48, 0x48, 0x48, 0x9f, 0xac, 0x68,
-+    0xbc, 0x6e, 0x6e, 0x6e, 0xb5, 0x6f, 0x6e, 0x6f,
-+    0x6f, 0x78, 0x78, 0xb5, 0xb5, 0xa5, 0x9f, 0x9f,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x46, 0x22,
-+    0x36, 0x21, 0x26, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x2c, 0x35, 0x24, 0x21, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x24,
-+    0x35, 0x39, 0x36, 0x36, 0x36, 0x36, 0x26, 0x2d,
-+    0x9b, 0x48, 0x48, 0xb0, 0xaa, 0xb3, 0xbd, 0xb8,
-+    0xb8, 0x68, 0x6e, 0x6e, 0xb5, 0x6f, 0x78, 0x6e,
-+    0x78, 0x6f, 0x78, 0x78, 0xb5, 0xa9, 0xa2, 0x48,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x9a, 0x36,
-+    0x24, 0x27, 0xbe, 0x24, 0x25, 0x28, 0x21, 0x36,
-+    0x36, 0x34, 0x2b, 0x28, 0x21, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x25,
-+    0x39, 0x4d, 0xbf, 0x84, 0x81, 0x57, 0x21, 0x39,
-+    0x52, 0x48, 0x48, 0x62, 0xb1, 0xc0, 0xc1, 0xc1,
-+    0xb8, 0xb8, 0x68, 0xbc, 0x6e, 0x6e, 0x6e, 0x78,
-+    0x78, 0x78, 0x78, 0x6e, 0x78, 0xa9, 0xa0, 0xab,
-+    0xb3, 0xa2, 0x48, 0x48, 0x48, 0x48, 0x53, 0x28,
-+    0x23, 0x36, 0x36, 0x36, 0x21, 0x28, 0x2c, 0x30,
-+    0x21, 0x38, 0x33, 0x28, 0x21, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x21, 0x22, 0x22, 0x28, 0x30,
-+    0x2d, 0xc2, 0x7a, 0xc3, 0xc4, 0xc4, 0x7f, 0x22,
-+    0x51, 0x52, 0x48, 0x48, 0xb0, 0xaa, 0xa8, 0xbd,
-+    0x68, 0xb8, 0xb8, 0x68, 0x68, 0x6e, 0x6e, 0x6f,
-+    0x6e, 0x6e, 0xb5, 0x6e, 0x78, 0xab, 0xab, 0xb5,
-+    0x78, 0xa6, 0xb3, 0xc5, 0xac, 0xac, 0xc6, 0x61,
-+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x30, 0x32,
-+    0x25, 0x4d, 0x2b, 0x28, 0x21, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x21, 0x23, 0x24, 0x26, 0x30, 0x33, 0x31,
-+    0x4d, 0x91, 0x5b, 0xc3, 0xc4, 0xc4, 0xc4, 0x5a,
-+    0x21, 0x2e, 0x46, 0x48, 0x48, 0x48, 0xb0, 0x64,
-+    0xc1, 0xb8, 0xb8, 0xb8, 0x68, 0x71, 0x6e, 0x6e,
-+    0x6f, 0x71, 0x6f, 0x6f, 0xa6, 0xa0, 0x9f, 0xb4,
-+    0xb4, 0xa0, 0xa1, 0xb7, 0xc7, 0x69, 0x66, 0xc8,
-+    0x36, 0x36, 0x36, 0x36, 0x36, 0x21, 0x26, 0x25,
-+    0x83, 0xc9, 0x2c, 0x25, 0x21, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x21, 0x28, 0x30, 0x35, 0x2d, 0x2f, 0x37, 0x4a,
-+    0x60, 0x85, 0xca, 0xcb, 0xc4, 0xc4, 0xc4, 0x82,
-+    0x86, 0x36, 0x32, 0x3f, 0xa2, 0xa4, 0xa8, 0xa9,
-+    0xb8, 0xb8, 0xb8, 0xb8, 0x68, 0x6e, 0x6e, 0x6e,
-+    0x6e, 0x71, 0x6f, 0x71, 0xa6, 0xb4, 0x9f, 0x9f,
-+    0x48, 0x48, 0x48, 0xcc, 0xc3, 0xc7, 0xcd, 0xce,
-+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x21, 0x57,
-+    0x77, 0x66, 0x34, 0x27, 0x22, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x23, 0x30, 0x31, 0xcf, 0x91, 0x7e, 0x90, 0x90,
-+    0x8b, 0x5b, 0xc3, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0x5d, 0xd0, 0x36, 0x24, 0xd1, 0xb1, 0xaf, 0xaa,
-+    0xba, 0xb8, 0x68, 0x68, 0x68, 0x71, 0x6e, 0x6e,
-+    0x6e, 0x6f, 0x6e, 0x78, 0xa1, 0xa9, 0xa1, 0xb0,
-+    0x9f, 0x9b, 0x99, 0xcc, 0x64, 0x5c, 0x8b, 0xd0,
-+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x73, 0x5d,
-+    0x82, 0x5c, 0xd2, 0x2a, 0x23, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
-+    0x24, 0x2b, 0xcf, 0x8b, 0x5b, 0x76, 0x5b, 0x5b,
-+    0x7b, 0xc3, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc7, 0x5e, 0x22, 0x36, 0x21, 0x3a, 0x99, 0x48,
-+    0xa2, 0xa8, 0xb7, 0xc1, 0xb8, 0x68, 0x68, 0xbc,
-+    0x68, 0x6e, 0xb5, 0xb4, 0xb4, 0xab, 0xb5, 0xa1,
-+    0xb0, 0x4f, 0x3f, 0xd3, 0x7b, 0x7b, 0x85, 0x80,
-+    0xbe, 0x36, 0x36, 0x36, 0x21, 0xd4, 0x7e, 0x7b,
-+    0x64, 0x64, 0xd5, 0x35, 0x24, 0x21, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22,
-+    0x26, 0x31, 0xd6, 0x5b, 0x64, 0xc3, 0xc3, 0xcb,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0x66, 0xd7, 0x36, 0x36, 0x36, 0x2c, 0x4b,
-+    0xd8, 0xd9, 0xb3, 0xa8, 0xbd, 0xbd, 0xbd, 0xbd,
-+    0xa9, 0xab, 0xb3, 0xa5, 0xa2, 0x9f, 0xa2, 0xa1,
-+    0x6a, 0x9a, 0x3f, 0xda, 0x76, 0x76, 0x7a, 0x63,
-+    0xdb, 0xdc, 0x86, 0xdc, 0xdd, 0x90, 0x5b, 0x64,
-+    0xc3, 0xc3, 0xde, 0x2d, 0x27, 0x23, 0x21, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
-+    0x26, 0x2d, 0x91, 0x5b, 0x64, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc7, 0x83, 0xce, 0x36, 0x36, 0x36, 0x30,
-+    0xb1, 0xd9, 0x48, 0xa1, 0xb2, 0xb0, 0xb0, 0xb3,
-+    0xa2, 0x48, 0xa7, 0xbd, 0xa9, 0xa2, 0x48, 0x9f,
-+    0xaa, 0x9a, 0x3f, 0xb1, 0x5b, 0x7b, 0xdf, 0x85,
-+    0x7e, 0x90, 0x63, 0x90, 0x85, 0x5b, 0xc3, 0xc4,
-+    0xc4, 0xcb, 0x5d, 0xd5, 0x39, 0x26, 0x23, 0x21,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22,
-+    0x26, 0x2d, 0xe0, 0xdf, 0x64, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc7, 0x88, 0x36, 0x36, 0x36, 0x36,
-+    0x2d, 0x9b, 0x48, 0xb9, 0xaf, 0xa2, 0xa2, 0xb9,
-+    0xa8, 0x9f, 0x48, 0xa7, 0xb7, 0xd9, 0x48, 0x48,
-+    0x9b, 0x45, 0x3f, 0xe1, 0x6d, 0x7b, 0xca, 0xdf,
-+    0x7a, 0x8b, 0x8b, 0x7a, 0x5b, 0x64, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc3, 0xe2, 0x37, 0x35, 0x26, 0x23,
-+    0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22,
-+    0x26, 0x2e, 0xe0, 0x7a, 0x7b, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc7, 0x72, 0x73, 0x36, 0x36, 0x36,
-+    0x24, 0x52, 0x48, 0xa3, 0xaf, 0x9f, 0x48, 0xb6,
-+    0xaf, 0xa2, 0x48, 0x9f, 0xe3, 0xd8, 0x48, 0x48,
-+    0x48, 0x46, 0x42, 0xd6, 0x7a, 0x7b, 0x64, 0x7b,
-+    0x76, 0x5b, 0x5b, 0x76, 0x7b, 0xc3, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xcb, 0x64, 0xe2, 0x4d, 0x2c, 0x27,
-+    0x23, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
-+    0x25, 0x31, 0xe4, 0x8b, 0x7b, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc7, 0x89, 0xbe, 0x36, 0x36,
-+    0x32, 0x47, 0x48, 0x4f, 0xa0, 0x48, 0x48, 0xe3,
-+    0x92, 0x9f, 0x48, 0x9f, 0x48, 0x48, 0x48, 0x48,
-+    0x48, 0x4b, 0x2f, 0x8f, 0x7a, 0x7b, 0xc3, 0xcb,
-+    0xc3, 0x64, 0x64, 0xc3, 0xc3, 0xcb, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc3, 0x5d, 0xe5, 0x2c,
-+    0x26, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
-+    0x25, 0x31, 0xe4, 0x85, 0x7b, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0x66, 0x57, 0x27, 0x4d,
-+    0x4b, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
-+    0x99, 0x34, 0xbe, 0xdb, 0x7a, 0x7b, 0xc3, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc3, 0xe4,
-+    0x32, 0x28, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22,
-+    0x26, 0x2d, 0xe4, 0x85, 0x7b, 0xcb, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc7, 0x5f, 0x92, 0x48,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x44,
-+    0x35, 0x36, 0xce, 0xdd, 0x7a, 0x7b, 0xcb, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xcb, 0xc3, 0xe1,
-+    0x2b, 0x24, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x23,
-+    0x30, 0x2f, 0xd6, 0x8b, 0x7b, 0xcb, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0x66, 0x89, 0x45,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
-+    0x48, 0x48, 0x48, 0x48, 0x48, 0x9b, 0x4e, 0x25,
-+    0x36, 0x36, 0x61, 0xdb, 0x6d, 0x64, 0xcb, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xcb, 0x7b, 0xdf, 0xe5,
-+    0x32, 0x28, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x28,
-+    0x33, 0xe6, 0x63, 0xdf, 0xc3, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc3, 0x72, 0x81, 0xe7,
-+    0x46, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
-+    0x48, 0x48, 0x48, 0x48, 0x3f, 0x2c, 0x36, 0x36,
-+    0x36, 0x36, 0xe8, 0x8f, 0x6d, 0x64, 0xcb, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc3, 0xca, 0x8b, 0xcf, 0x2c,
-+    0x26, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x24,
-+    0x35, 0x96, 0x75, 0xca, 0xc3, 0xcb, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xcb, 0x7b, 0x81, 0xdb,
-+    0x73, 0x3b, 0x44, 0x9b, 0x48, 0x48, 0x48, 0x9b,
-+    0x99, 0x43, 0x94, 0x2c, 0x21, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x73, 0xdb, 0x7a, 0x7b, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0x64, 0x76, 0x7a, 0x91, 0xd5, 0x31, 0x30,
-+    0x28, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x24,
-+    0x39, 0x97, 0x75, 0xdf, 0x7b, 0x64, 0xc3, 0xc3,
-+    0xcb, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0x7b, 0x7a, 0xe9,
-+    0xea, 0x36, 0x21, 0x26, 0x2b, 0x39, 0x33, 0x30,
-+    0x23, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x21, 0xea, 0xdd, 0x8b, 0x7b, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc3, 0x64, 0x64,
-+    0x76, 0x85, 0xe0, 0xd5, 0x34, 0x2b, 0x27, 0x28,
-+    0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x28,
-+    0x33, 0xeb, 0x63, 0x7e, 0x7a, 0x6d, 0xdf, 0x5b,
-+    0x76, 0x7b, 0x64, 0x64, 0xc3, 0xcb, 0xc4, 0xc4,
-+    0xc4, 0xc4, 0xc4, 0xc4, 0xcb, 0x76, 0x85, 0xdb,
-+    0x79, 0x22, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x21, 0xec, 0xdd, 0x75, 0x76, 0xc3, 0xc4,
-+    0xc4, 0xc4, 0xcb, 0xc3, 0x64, 0x76, 0xdf, 0x8b,
-+    0xd6, 0xd5, 0x2f, 0x35, 0x30, 0x24, 0x22, 0x21,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x23,
-+    0x27, 0x31, 0xed, 0xeb, 0xdd, 0x74, 0x63, 0x90,
-+    0x7e, 0x75, 0x8b, 0x6d, 0xdf, 0x76, 0x64, 0xc3,
-+    0xcb, 0xcb, 0xcb, 0xcb, 0x64, 0x7a, 0x84, 0xee,
-+    0x79, 0xbe, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
-+    0x36, 0x21, 0xea, 0xee, 0x63, 0x6d, 0x7b, 0x64,
-+    0xcb, 0xc3, 0x64, 0x7b, 0xdf, 0x75, 0x63, 0x96,
-+    0x38, 0x39, 0x2a, 0x24, 0x23, 0x21, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
-+    0x28, 0x27, 0x35, 0x2d, 0x41, 0xd5, 0xe7, 0x8f,
-+    0xdb, 0xdd, 0xe9, 0x74, 0x84, 0x90, 0x85, 0x6d,
-+    0x5b, 0x7b, 0x7b, 0xca, 0x6d, 0x90, 0xdb, 0xef,
-+    0xec, 0x22, 0x36, 0x36, 0x28, 0x30, 0x30, 0x30,
-+    0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x25, 0x36,
-+    0x36, 0x21, 0xd4, 0x80, 0xe9, 0x7e, 0x6d, 0x76,
-+    0xca, 0x76, 0x6d, 0x85, 0x63, 0xdb, 0xd5, 0x34,
-+    0x33, 0x26, 0x23, 0x21, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x21, 0x23, 0x24, 0x27, 0x2a, 0x35, 0x2e, 0x2f,
-+    0x41, 0xf0, 0xf1, 0x6c, 0x80, 0xee, 0xdb, 0x74,
-+    0x84, 0x90, 0x75, 0x7e, 0x74, 0x8f, 0xef, 0x79,
-+    0xe8, 0x2b, 0x9d, 0x41, 0x2f, 0x34, 0x2d, 0x2d,
-+    0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x34, 0x2f, 0x38,
-+    0x4d, 0x37, 0xf2, 0xf3, 0x8f, 0x74, 0x63, 0x7e,
-+    0x75, 0x7e, 0x63, 0xe9, 0x88, 0xe6, 0x31, 0x2a,
-+    0x24, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x21, 0x22, 0x23, 0x24, 0x26, 0x30,
-+    0x33, 0x39, 0x2e, 0x51, 0x41, 0xd2, 0x6c, 0xf3,
-+    0x80, 0xee, 0xee, 0xee, 0xf4, 0xf3, 0xd7, 0xf5,
-+    0x41, 0x34, 0x35, 0x32, 0x30, 0x27, 0x27, 0x27,
-+    0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x30, 0x2a,
-+    0x2b, 0x34, 0xf6, 0xec, 0xf7, 0x8f, 0xdd, 0xe9,
-+    0xe9, 0xdd, 0xee, 0x6c, 0x41, 0x39, 0x27, 0x28,
-+    0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x22,
-+    0x28, 0x24, 0x26, 0x2a, 0x33, 0x2c, 0x2f, 0x41,
-+    0xf8, 0xd7, 0x79, 0x79, 0x79, 0xec, 0xf9, 0x51,
-+    0x39, 0x30, 0x24, 0x23, 0x22, 0x22, 0x22, 0x22,
-+    0x22, 0x22, 0x21, 0x22, 0x22, 0x22, 0x22, 0x23,
-+    0x24, 0x2a, 0x31, 0xfa, 0xea, 0x79, 0xf3, 0x80,
-+    0xf7, 0xdc, 0xfb, 0x2f, 0x35, 0x26, 0x23, 0x21,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x21, 0x22, 0x23, 0x28, 0x25, 0x30, 0x2b,
-+    0x31, 0x2f, 0xf6, 0xfa, 0xfa, 0x2f, 0x2e, 0x33,
-+    0x26, 0x23, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x21, 0x28, 0x27, 0x35, 0x34, 0xfa, 0xfa, 0xfa,
-+    0xfc, 0xf6, 0x2e, 0x33, 0x25, 0x23, 0x21, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x23, 0x28,
-+    0x26, 0x30, 0x32, 0x2b, 0x33, 0x2a, 0x26, 0x28,
-+    0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x21, 0x23, 0x25, 0x30, 0x33, 0x35, 0x35,
-+    0x2b, 0x2a, 0x26, 0x28, 0x22, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
-+    0x21, 0x22, 0x23, 0x28, 0x28, 0x23, 0x22, 0x21,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x21, 0x23, 0x28, 0x24, 0x24,
-+    0x28, 0x23, 0x22, 0x21, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-+};
-+
-+unsigned char linux_logo16[1];
-+
-+#endif /* INCLUDE_LINUX_LOGO_DATA */
-+
-+#include <linux/linux_logo.h>
-+
---- linux/include/asm-nios2nommu/local.h
-+++ linux/include/asm-nios2nommu/local.h
-@@ -0,0 +1,28 @@
-+/*
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef __NIOS2NOMMU_LOCAL_H
-+#define __NIOS2NOMMU_LOCAL_H
-+
-+#include <asm-generic/local.h>
-+
-+#endif /* __NIOS2NOMMU_LOCAL_H */
---- linux/include/asm-nios2nommu/mc146818rtc.h
-+++ linux/include/asm-nios2nommu/mc146818rtc.h
-@@ -0,0 +1,29 @@
-+/*
-+ * Machine dependent access functions for RTC registers.
-+ *
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+#ifndef _NIOS2_MC146818RTC_H
-+#define _NIOS2_MC146818RTC_H
-+
-+/* empty include file to satisfy the include in genrtc.c/ide-geometry.c */
-+
-+#endif /* _NIOS2_MC146818RTC_H */
---- linux/include/asm-nios2nommu/mman.h
-+++ linux/include/asm-nios2nommu/mman.h
-@@ -0,0 +1,68 @@
-+/*
-+ * Copied from the m68k port.
-+ *
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef __NIOS2_MMAN_H__
-+#define __NIOS2_MMAN_H__
-+
-+#define PROT_READ	0x1		/* page can be read */
-+#define PROT_WRITE	0x2		/* page can be written */
-+#define PROT_EXEC	0x4		/* page can be executed */
-+#define PROT_SEM	0x8		/* page may be used for atomic ops */
-+#define PROT_NONE	0x0		/* page can not be accessed */
-+#define PROT_GROWSDOWN	0x01000000	/* mprotect flag: extend change to start of growsdown vma */
-+#define PROT_GROWSUP	0x02000000	/* mprotect flag: extend change to end of growsup vma */
-+
-+#define MAP_SHARED	0x01		/* Share changes */
-+#define MAP_PRIVATE	0x02		/* Changes are private */
-+#define MAP_TYPE	0x0f		/* Mask for type of mapping */
-+#define MAP_FIXED	0x10		/* Interpret addr exactly */
-+#define MAP_ANONYMOUS	0x20		/* don't use a file */
-+
-+#define MAP_GROWSDOWN	0x0100		/* stack-like segment */
-+#define MAP_DENYWRITE	0x0800		/* ETXTBSY */
-+#define MAP_EXECUTABLE	0x1000		/* mark it as an executable */
-+#define MAP_LOCKED	0x2000		/* pages are locked */
-+#define MAP_NORESERVE	0x4000		/* don't check for reservations */
-+#define MAP_POPULATE	0x8000		/* populate (prefault) pagetables */
-+#define MAP_NONBLOCK	0x10000		/* do not block on IO */
-+
-+#define MS_ASYNC	1		/* sync memory asynchronously */
-+#define MS_INVALIDATE	2		/* invalidate the caches */
-+#define MS_SYNC		4		/* synchronous memory sync */
-+
-+#define MCL_CURRENT	1		/* lock all current mappings */
-+#define MCL_FUTURE	2		/* lock all future mappings */
-+
-+#define MADV_NORMAL	0x0		/* default page-in behavior */
-+#define MADV_RANDOM	0x1		/* page-in minimum required */
-+#define MADV_SEQUENTIAL	0x2		/* read-ahead aggressively */
-+#define MADV_WILLNEED	0x3		/* pre-fault pages */
-+#define MADV_DONTNEED	0x4		/* discard these pages */
-+
-+/* compatibility flags */
-+#define MAP_ANON	MAP_ANONYMOUS
-+#define MAP_FILE	0
-+
-+#endif /* __NIOS2_MMAN_H__ */
-+
---- linux/include/asm-nios2nommu/mmu.h
-+++ linux/include/asm-nios2nommu/mmu.h
-@@ -0,0 +1,47 @@
-+/*
-+ *
-+ * Taken from the m68knommu.
-+ * 
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef __NIOS2NOMMU_MMU_H
-+#define __NIOS2NOMMU_MMU_H
-+
-+/* Copyright (C) 2002, David McCullough <davidm@snapgear.com> */
-+
-+struct mm_rblock_struct {
-+	int	size;
-+	int	refcount;
-+	void	*kblock;
-+};
-+
-+struct mm_tblock_struct {
-+	struct mm_rblock_struct	*rblock;
-+	struct mm_tblock_struct	*next;
-+};
-+
-+typedef struct {
-+	struct mm_tblock_struct	tblock;
-+	unsigned long		end_brk;
-+} mm_context_t;
-+
-+#endif /* __NIOS2NOMMU_MMU_H */
---- linux/include/asm-nios2nommu/mmu_context.h
-+++ linux/include/asm-nios2nommu/mmu_context.h
-@@ -0,0 +1,58 @@
-+/*
-+ *
-+ * Taken from the m68knommu.
-+ *
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef __NIOS2NOMMU_MMU_CONTEXT_H
-+#define __NIOS2NOMMU_MMU_CONTEXT_H
-+
-+// #include <linux/config.h>
-+#include <asm/setup.h>
-+#include <asm/page.h>
-+#include <asm/pgalloc.h>
-+
-+static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
-+{
-+}
-+
-+extern inline int
-+init_new_context(struct task_struct *tsk, struct mm_struct *mm)
-+{
-+	// mm->context = virt_to_phys(mm->pgd);
-+	return(0);
-+}
-+
-+#define destroy_context(mm)		do { } while(0)
-+
-+static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next, struct task_struct *tsk)
-+{
-+}
-+
-+#define deactivate_mm(tsk,mm)	do { } while (0)
-+
-+extern inline void activate_mm(struct mm_struct *prev_mm,
-+			       struct mm_struct *next_mm)
-+{
-+}
-+
-+#endif
---- linux/include/asm-nios2nommu/module.h
-+++ linux/include/asm-nios2nommu/module.h
-@@ -0,0 +1,36 @@
-+#ifndef _NIOS2_MODULE_H
-+#define _NIOS2_MODULE_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/module.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+struct mod_arch_specific
-+{
-+};
-+
-+#define Elf_Shdr Elf32_Shdr
-+#define Elf_Sym Elf32_Sym
-+#define Elf_Ehdr Elf32_Ehdr
-+
-+#endif /* _NIOS_MODULE_H */
---- linux/include/asm-nios2nommu/msgbuf.h
-+++ linux/include/asm-nios2nommu/msgbuf.h
-@@ -0,0 +1,56 @@
-+/*
-+ * Taken from the m68k.
-+ *
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef _NIOS2_MSGBUF_H
-+#define _NIOS2_MSGBUF_H
-+
-+/* 
-+ * The msqid64_ds structure for nios2 architecture.
-+ * Note extra padding because this structure is passed back and forth
-+ * between kernel and user space.
-+ *
-+ * Pad space is left for:
-+ * - 64-bit time_t to solve y2038 problem
-+ * - 2 miscellaneous 32-bit values
-+ */
-+
-+struct msqid64_ds {
-+	struct ipc64_perm msg_perm;
-+	__kernel_time_t msg_stime;	/* last msgsnd time */
-+	unsigned long	__unused1;
-+	__kernel_time_t msg_rtime;	/* last msgrcv time */
-+	unsigned long	__unused2;
-+	__kernel_time_t msg_ctime;	/* last change time */
-+	unsigned long	__unused3;
-+	unsigned long  msg_cbytes;	/* current number of bytes on queue */
-+	unsigned long  msg_qnum;	/* number of messages in queue */
-+	unsigned long  msg_qbytes;	/* max number of bytes on queue */
-+	__kernel_pid_t msg_lspid;	/* pid of last msgsnd */
-+	__kernel_pid_t msg_lrpid;	/* last receive pid */
-+	unsigned long  __unused4;
-+	unsigned long  __unused5;
-+};
-+
-+#endif /* _NIOS2_MSGBUF_H */
-+
---- linux/include/asm-nios2nommu/namei.h
-+++ linux/include/asm-nios2nommu/namei.h
-@@ -0,0 +1,36 @@
-+/*
-+ * linux/include/asm-nios/namei.h
-+ * Moved from m68k version
-+ * Included from linux/fs/namei.c
-+ *
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef __NIOS2_NAMEI_H
-+#define __NIOS2_NAMEI_H
-+
-+/* This dummy routine maybe changed to something useful
-+ * for /usr/gnemul/ emulation stuff.
-+ * Look at asm-sparc/namei.h for details.
-+ */
-+
-+#define __emul_prefix() NULL
-+
-+#endif
---- linux/include/asm-nios2nommu/ndma.h
-+++ linux/include/asm-nios2nommu/ndma.h
-@@ -0,0 +1,64 @@
-+#ifndef __NDMA_H__
-+  #define __NDMA_H__
-+
-+    #ifndef __ASSEMBLY__
-+
-+// DMA Registers
-+typedef volatile struct
-+{
-+  int np_dmastatus;        // status register
-+  int np_dmareadaddress;   // read address
-+  int np_dmawriteaddress;  // write address
-+  int np_dmalength;        // length in bytes
-+  int np_dmareserved1;     // reserved
-+  int np_dmareserved2;     // reserved
-+  int np_dmacontrol;       // control register
-+  int np_dmareserved3;     // control register alternate
-+} np_dma;
-+
-+// DMA Register Bits
-+enum
-+{
-+  np_dmacontrol_byte_bit  = 0, // Byte transaction
-+  np_dmacontrol_hw_bit    = 1, // Half-word transaction
-+  np_dmacontrol_word_bit  = 2, // Word transaction
-+  np_dmacontrol_go_bit    = 3, // enable execution
-+  np_dmacontrol_i_en_bit  = 4, // enable interrupt
-+  np_dmacontrol_reen_bit  = 5, // Enable read end-of-packet
-+  np_dmacontrol_ween_bit  = 6, // Enable write end-of-packet
-+  np_dmacontrol_leen_bit  = 7, // Enable length=0 transaction end
-+  np_dmacontrol_rcon_bit  = 8, // Read from a fixed address
-+  np_dmacontrol_wcon_bit  = 9, // Write to a fixed address
-+  np_dmacontrol_doubleword_bit = 10, // Double-word transaction
-+  np_dmacontrol_quadword_bit = 11, // Quad-word transaction
-+ 
-+  np_dmastatus_done_bit   = 0, // 1 when done.  Status write clears.
-+  np_dmastatus_busy_bit   = 1, // 1 when busy.
-+  np_dmastatus_reop_bit   = 2, // read-eop received
-+  np_dmastatus_weop_bit   = 3, // write-eop received
-+  np_dmastatus_len_bit    = 4, // requested length transacted
-+ 
-+  np_dmacontrol_byte_mask = (1 << 0), // Byte transaction
-+  np_dmacontrol_hw_mask   = (1 << 1), // Half-word transaction
-+  np_dmacontrol_word_mask = (1 << 2), // Word transaction
-+  np_dmacontrol_go_mask   = (1 << 3), // enable execution
-+  np_dmacontrol_i_en_mask = (1 << 4), // enable interrupt
-+  np_dmacontrol_reen_mask = (1 << 5), // Enable read end-of-packet
-+  np_dmacontrol_ween_mask = (1 << 6), // Enable write end-of-packet
-+  np_dmacontrol_leen_mask = (1 << 7), // Enable length=0 transaction end
-+  np_dmacontrol_rcon_mask = (1 << 8), // Read from a fixed address
-+  np_dmacontrol_wcon_mask = (1 << 9), // Write to a fixed address
-+  np_dmacontrol_doubleword_mask = (1 << 10), // Double-word transaction
-+  np_dmacontrol_quadword_mask = (1 << 11), // Quad-word transaction
-+ 
-+  np_dmastatus_done_mask  = (1 << 0), // 1 when done.  Status write clears.
-+  np_dmastatus_busy_mask  = (1 << 1), // 1 when busy.
-+  np_dmastatus_reop_mask  = (1 << 2), // read-eop received
-+  np_dmastatus_weop_mask  = (1 << 3), // write-eop received
-+  np_dmastatus_len_mask   = (1 << 4), // requested length transacted
-+};
-+
-+    #endif /* __ASSEMBLY__ */
-+
-+#endif
-+/* End of File */
---- linux/include/asm-nios2nommu/nios.h
-+++ linux/include/asm-nios2nommu/nios.h
-@@ -0,0 +1,7 @@
-+#ifndef __NIOS_H__
-+#define __NIOS_H__
-+
-+#include "nios2_system.h"
-+
-+#endif
-+
---- linux/include/asm-nios2nommu/page.h
-+++ linux/include/asm-nios2nommu/page.h
-@@ -0,0 +1,135 @@
-+/*
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef _NIOS2_PAGE_H
-+#define _NIOS2_PAGE_H
-+
-+/* copied from m68knommu arch */
-+// #include <linux/config.h>
-+
-+/* PAGE_SHIFT determines the page size */
-+
-+#define PAGE_SHIFT	(12)
-+#define PAGE_SIZE	(1UL << PAGE_SHIFT)
-+#define PAGE_MASK	(~(PAGE_SIZE-1))
-+
-+#ifdef __KERNEL__
-+
-+#include <asm/setup.h>
-+
-+#if PAGE_SHIFT < 13
-+#define THREAD_SIZE (8192)
-+#else
-+#define THREAD_SIZE PAGE_SIZE
-+#endif
-+ 
-+#ifndef __ASSEMBLY__
-+ 
-+#define get_user_page(vaddr)		__get_free_page(GFP_KERNEL)
-+#define free_user_page(page, addr)	free_page(addr)
-+
-+#define clear_page(page)	memset((page), 0, PAGE_SIZE)
-+#define copy_page(to,from)	memcpy((to), (from), PAGE_SIZE)
-+
-+#define clear_user_page(page, vaddr, pg)	clear_page(page)
-+#define copy_user_page(to, from, vaddr, pg)	copy_page(to, from)
-+
-+/*
-+ * These are used to make use of C type-checking..
-+ */
-+typedef struct { unsigned long pte; } pte_t;
-+typedef struct { unsigned long pmd[16]; } pmd_t;
-+typedef struct { unsigned long pgd; } pgd_t;
-+typedef struct { unsigned long pgprot; } pgprot_t;
-+
-+#define pte_val(x)	((x).pte)
-+#define pmd_val(x)	((&x)->pmd[0])
-+#define pgd_val(x)	((x).pgd)
-+#define pgprot_val(x)	((x).pgprot)
-+
-+#define __pte(x)	((pte_t) { (x) } )
-+#define __pmd(x)	((pmd_t) { (x) } )
-+#define __pgd(x)	((pgd_t) { (x) } )
-+#define __pgprot(x)	((pgprot_t) { (x) } )
-+
-+/* to align the pointer to the (next) page boundary */
-+#define PAGE_ALIGN(addr)	(((addr)+PAGE_SIZE-1)&PAGE_MASK)
-+
-+/* Pure 2^n version of get_order */
-+extern __inline__ int get_order(unsigned long size)
-+{
-+	int order;
-+
-+	size = (size-1) >> (PAGE_SHIFT-1);
-+	order = -1;
-+	do {
-+		size >>= 1;
-+		order++;
-+	} while (size);
-+	return order;
-+}
-+
-+extern unsigned long memory_start;
-+extern unsigned long memory_end;
-+
-+#endif /* !__ASSEMBLY__ */
-+#include <asm/nios.h>
-+#define PAGE_OFFSET		((int)(nasys_program_mem))
-+
-+#ifndef __ASSEMBLY__
-+
-+#define __pa(vaddr)		virt_to_phys((void *)vaddr)
-+#define __va(paddr)		phys_to_virt((unsigned long)paddr)
-+
-+#define MAP_NR(addr)		(((unsigned long)(addr)-PAGE_OFFSET) >> PAGE_SHIFT)
-+
-+#define virt_to_pfn(kaddr)	(__pa(kaddr) >> PAGE_SHIFT)
-+#define pfn_to_virt(pfn)	__va((pfn) << PAGE_SHIFT)
-+
-+#define virt_to_page(addr)	(mem_map + (((unsigned long)(addr)-PAGE_OFFSET) >> PAGE_SHIFT))
-+#define page_to_virt(page)	((((page) - mem_map) << PAGE_SHIFT) + PAGE_OFFSET)
-+#define VALID_PAGE(page)	((page - mem_map) < max_mapnr)
-+
-+#define pfn_to_page(pfn)	virt_to_page(pfn_to_virt(pfn))
-+#define page_to_pfn(page)	virt_to_pfn(page_to_virt(page))
-+
-+#define	virt_addr_valid(kaddr)	(((void *)(kaddr) >= (void *)PAGE_OFFSET) && \
-+				((void *)(kaddr) < (void *)memory_end))
-+
-+#ifdef CONFIG_NO_KERNEL_MSG
-+#define	BUG_PRINT()
-+#else
-+#define	BUG_PRINT() printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__)
-+#endif
-+
-+#ifdef na_cpu_oci_core
-+#define BUG_PANIC()	asm volatile ("break") /* drop to debugger */
-+#else
-+// #define BUG_PANIC()	while(1)
-+#define BUG_PANIC()	panic("BUG!")
-+#endif
-+
-+#endif /* __ASSEMBLY__ */
-+
-+#endif /* __KERNEL__ */
-+
-+#endif /* _NIOS2_PAGE_H */
---- linux/include/asm-nios2nommu/param.h
-+++ linux/include/asm-nios2nommu/param.h
-@@ -0,0 +1,49 @@
-+#ifndef _NIOS_PARAM_H
-+#define _NIOS_PARAM_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/param.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#ifndef HZ
-+#define HZ 100
-+#endif
-+
-+#ifdef __KERNEL__
-+#define	USER_HZ		HZ
-+#define	CLOCKS_PER_SEC	(USER_HZ)
-+#endif
-+
-+#define EXEC_PAGESIZE	4096
-+
-+#ifndef NGROUPS
-+#define NGROUPS		32
-+#endif
-+
-+#ifndef NOGROUP
-+#define NOGROUP		(-1)
-+#endif
-+
-+#define MAXHOSTNAMELEN	64	/* max length of hostname */
-+
-+#endif
---- linux/include/asm-nios2nommu/pci.h
-+++ linux/include/asm-nios2nommu/pci.h
-@@ -0,0 +1,75 @@
-+#ifndef _ASM_NIOS2NOMMU_PCI_H
-+#define _ASM_NIOS2NOMMU_PCI_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/pci.h
-+ *
-+ * Derived from asm-m68k/pci_m68k.h
-+ *              - m68k specific PCI declarations, by Wout Klaren.
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm/scatterlist.h>
-+
-+struct pci_ops;
-+
-+/*
-+ * Structure with hardware dependent information and functions of the
-+ * PCI bus.
-+ */
-+
-+struct pci_bus_info
-+{
-+	/*
-+	 * Resources of the PCI bus.
-+	 */
-+
-+	struct resource mem_space;
-+	struct resource io_space;
-+
-+	/*
-+	 * System dependent functions.
-+	 */
-+
-+	struct pci_ops *m68k_pci_ops;
-+
-+	void (*fixup)(int pci_modify);
-+	void (*conf_device)(struct pci_dev *dev);
-+};
-+
-+#define pcibios_assign_all_busses()	0
-+
-+extern inline void pcibios_set_master(struct pci_dev *dev)
-+{
-+	/* No special bus mastering setup handling */
-+}
-+
-+extern inline void pcibios_penalize_isa_irq(int irq)
-+{
-+	/* We don't do dynamic PCI IRQ allocation */
-+}
-+
-+/* The PCI address space does equal the physical memory
-+ * address space.  The networking and block device layers use
-+ * this boolean for bounce buffer decisions.
-+ */
-+#define PCI_DMA_BUS_IS_PHYS	(1)
-+
-+#endif /* _ASM_NIOS2NOMMU_PCI_H */
---- linux/include/asm-nios2nommu/percpu.h
-+++ linux/include/asm-nios2nommu/percpu.h
-@@ -0,0 +1,30 @@
-+#ifndef __ARCH_NIOS2NOMMU_PERCPU__
-+#define __ARCH_NIOS2NOMMU_PERCPU__
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/percpu.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm-generic/percpu.h>
-+
-+#endif /* __ARCH_NIOS2NOMMU_PERCPU__ */
---- linux/include/asm-nios2nommu/pgalloc.h
-+++ linux/include/asm-nios2nommu/pgalloc.h
-@@ -0,0 +1,32 @@
-+#ifndef _NIOS2NOMMU_PGALLOC_H
-+#define _NIOS2NOMMU_PGALLOC_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/pgalloc.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm/setup.h>
-+
-+#define check_pgt_cache()	do { } while (0)
-+
-+#endif /* _NIOS2NOMMU_PGALLOC_H */
---- linux/include/asm-nios2nommu/pgtable.h
-+++ linux/include/asm-nios2nommu/pgtable.h
-@@ -0,0 +1,100 @@
-+#ifndef _NIOS_PGTABLE_H
-+#define _NIOS_PGTABLE_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/pgtable.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+//vic - this bit copied from m68knommu version
-+// #include <linux/config.h>
-+#include <asm/setup.h>
-+#include <asm/io.h>
-+
-+typedef pte_t *pte_addr_t;
-+
-+#define pgd_present(pgd)     	(1)       /* pages are always present on NO_MM */
-+#define pgd_none(pgd)		(0)
-+#define pgd_bad(pgd)		(0)
-+#define pgd_clear(pgdp)
-+#define kern_addr_valid(addr) 	(1)
-+#define	pmd_offset(a, b)	((void *)0)
-+
-+#define PAGE_NONE		__pgprot(0)    /* these mean nothing to NO_MM */
-+#define PAGE_SHARED		__pgprot(0)    /* these mean nothing to NO_MM */
-+#define PAGE_COPY		__pgprot(0)    /* these mean nothing to NO_MM */
-+#define PAGE_READONLY		__pgprot(0)    /* these mean nothing to NO_MM */
-+#define PAGE_KERNEL		__pgprot(0)    /* these mean nothing to NO_MM */
-+//vic - this bit copied from m68knommu version
-+
-+extern void paging_init(void);
-+#define swapper_pg_dir ((pgd_t *) 0)
-+
-+#define __swp_type(x)		(0)
-+#define __swp_offset(x)		(0)
-+#define __swp_entry(typ,off)	((swp_entry_t) { ((typ) | ((off) << 7)) })
-+#define __pte_to_swp_entry(pte)	((swp_entry_t) { pte_val(pte) })
-+#define __swp_entry_to_pte(x)	((pte_t) { (x).val })
-+
-+static inline int pte_file(pte_t pte) { return 0; }
-+
-+/*
-+ * ZERO_PAGE is a global shared page that is always zero: used
-+ * for zero-mapped memory areas etc..
-+ */
-+#define ZERO_PAGE(vaddr)	(virt_to_page(0))
-+
-+extern unsigned int kobjsize(const void *objp);
-+
-+/*
-+ * No page table caches to initialise
-+ */
-+#define pgtable_cache_init()   do { } while (0)
-+
-+extern inline void flush_cache_mm(struct mm_struct *mm)
-+{
-+}
-+
-+extern inline void flush_cache_range(struct mm_struct *mm,
-+				     unsigned long start,
-+				     unsigned long end)
-+{
-+}
-+
-+/* Push the page at kernel virtual address and clear the icache */
-+extern inline void flush_page_to_ram (unsigned long address)
-+{
-+}
-+
-+/* Push n pages at kernel virtual address and clear the icache */
-+extern inline void flush_pages_to_ram (unsigned long address, int n)
-+{
-+}
-+
-+/*
-+ * All 32bit addresses are effectively valid for vmalloc...
-+ * Sort of meaningless for non-VM targets.
-+ */
-+#define	VMALLOC_START	0
-+#define	VMALLOC_END	0xffffffff
-+
-+#endif /* _NIOS_PGTABLE_H */
---- linux/include/asm-nios2nommu/pio_struct.h
-+++ linux/include/asm-nios2nommu/pio_struct.h
-@@ -0,0 +1,14 @@
-+// PIO Peripheral
-+
-+// PIO Registers
-+typedef volatile struct
-+	{
-+	int np_piodata;          // read/write, up to 32 bits
-+	int np_piodirection;     // write/readable, up to 32 bits, 1->output bit
-+	int np_piointerruptmask; // write/readable, up to 32 bits, 1->enable interrupt
-+	int np_pioedgecapture;   // read, up to 32 bits, cleared by any write
-+	} np_pio;
-+
-+// PIO Routines
-+void nr_pio_showhex(int value); // shows low byte on pio named na_seven_seg_pio
-+
---- linux/include/asm-nios2nommu/poll.h
-+++ linux/include/asm-nios2nommu/poll.h
-@@ -0,0 +1,46 @@
-+#ifndef __NIOS2_POLL_H
-+#define __NIOS2_POLL_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/poll.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#define POLLIN		  1
-+#define POLLPRI		  2
-+#define POLLOUT		  4
-+#define POLLERR		  8
-+#define POLLHUP		 16
-+#define POLLNVAL	 32
-+#define POLLRDNORM	 64
-+#define POLLWRNORM	POLLOUT
-+#define POLLRDBAND	128
-+#define POLLWRBAND	256
-+#define POLLMSG		0x0400
-+
-+struct pollfd {
-+	int fd;
-+	short events;
-+	short revents;
-+};
-+
-+#endif
---- linux/include/asm-nios2nommu/posix_types.h
-+++ linux/include/asm-nios2nommu/posix_types.h
-@@ -0,0 +1,89 @@
-+#ifndef __ARCH_NIOS2_POSIX_TYPES_H
-+#define __ARCH_NIOS2_POSIX_TYPES_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/posix_types.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+/*
-+ * This file is generally used by user-level software, so you need to
-+ * be a little careful about namespace pollution etc.  Also, we cannot
-+ * assume GCC is being used.
-+ */
-+
-+typedef unsigned long	__kernel_ino_t;
-+typedef unsigned short	__kernel_mode_t;
-+typedef unsigned short	__kernel_nlink_t;
-+typedef long		__kernel_off_t;
-+typedef int		__kernel_pid_t;
-+typedef unsigned short	__kernel_ipc_pid_t;
-+typedef unsigned short	__kernel_uid_t;
-+typedef unsigned short	__kernel_gid_t;
-+typedef unsigned int	__kernel_size_t;
-+typedef int		__kernel_ssize_t;
-+typedef int		__kernel_ptrdiff_t;
-+typedef long		__kernel_time_t;
-+typedef long		__kernel_suseconds_t;
-+typedef long		__kernel_clock_t;
-+typedef int		__kernel_timer_t;
-+typedef int		__kernel_clockid_t;
-+typedef int		__kernel_daddr_t;
-+typedef char *		__kernel_caddr_t;
-+typedef unsigned short	__kernel_uid16_t;
-+typedef unsigned short	__kernel_gid16_t;
-+typedef unsigned int	__kernel_uid32_t;
-+typedef unsigned int	__kernel_gid32_t;
-+
-+typedef unsigned short	__kernel_old_uid_t;
-+typedef unsigned short	__kernel_old_gid_t;
-+typedef unsigned short	__kernel_old_dev_t;
-+
-+#ifdef __GNUC__
-+typedef long long	__kernel_loff_t;
-+#endif
-+
-+typedef struct {
-+#if defined(__KERNEL__) || defined(__USE_ALL)
-+	int	val[2];
-+#else /* !defined(__KERNEL__) && !defined(__USE_ALL) */
-+	int	__val[2];
-+#endif /* !defined(__KERNEL__) && !defined(__USE_ALL) */
-+} __kernel_fsid_t;
-+
-+#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2)
-+
-+#undef	__FD_SET
-+#define	__FD_SET(d, set)	((set)->fds_bits[__FDELT(d)] |= __FDMASK(d))
-+
-+#undef	__FD_CLR
-+#define	__FD_CLR(d, set)	((set)->fds_bits[__FDELT(d)] &= ~__FDMASK(d))
-+
-+#undef	__FD_ISSET
-+#define	__FD_ISSET(d, set)	((set)->fds_bits[__FDELT(d)] & __FDMASK(d))
-+
-+#undef	__FD_ZERO
-+#define __FD_ZERO(fdsetp) (memset (fdsetp, 0, sizeof(*(fd_set *)fdsetp)))
-+
-+#endif /* defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) */
-+
-+#endif
---- linux/include/asm-nios2nommu/preem_latency.h
-+++ linux/include/asm-nios2nommu/preem_latency.h
-@@ -0,0 +1,39 @@
-+#ifndef _ASM_PREEM_LATENCY_H
-+#define _ASM_PREEM_LATENCY_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/preem_latency.h
-+ *
-+ * timing support for preempt-stats patch
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm/nios.h>
-+
-+#define readclock(low) \
-+do {\
-+	*(volatile unsigned long *)na_Counter_64_bit=1;	\
-+	low=*(volatile unsigned long *)na_Counter_64_bit; \
-+} while (0)
-+#define readclock_init()
-+
-+#endif /* _ASM_PREEM_LATENCY_H */
---- linux/include/asm-nios2nommu/processor.h
-+++ linux/include/asm-nios2nommu/processor.h
-@@ -0,0 +1,148 @@
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/processor.h
-+ *
-+ * Copyright (C) 1994 David S. Miller (davem@caip.rutgers.edu)
-+ * Copyright (C) 2001  Ken Hill (khill@microtronix.com)    
-+ *                     Vic Phillips (vic@microtronix.com)
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * hacked from:
-+ *      include/asm-sparc/processor.h
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ * Nov/02/2003      dgt     Fix task_size
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+#ifndef __ASM_NIOS_PROCESSOR_H
-+#define __ASM_NIOS_PROCESSOR_H
-+
-+#define NIOS2_FLAG_KTHREAD	0x00000001	/* task is a kernel thread */
-+#define NIOS2_FLAG_COPROC	0x00000002	/* Thread used coprocess */
-+#define NIOS2_FLAG_DEBUG	0x00000004	/* task is being debugged */
-+
-+#define NIOS2_OP_NOP 0x1883a
-+#define NIOS2_OP_BREAK	0x3da03a
-+
-+#ifndef __ASSEMBLY__
-+
-+/*
-+ * Default implementation of macro that returns current
-+ * instruction pointer ("program counter").
-+ */
-+#define current_text_addr() ({ __label__ _l; _l: &&_l;})
-+
-+#include <linux/a.out.h>
-+#include <linux/string.h>
-+
-+#include <asm/ptrace.h>
-+#include <asm/signal.h>
-+#include <asm/segment.h>
-+#include <asm/current.h>
-+#include <asm/system.h> /* for get_hi_limit */
-+
-+/*
-+ * Bus types
-+ */
-+#define EISA_bus 0
-+#define EISA_bus__is_a_macro /* for versions in ksyms.c */
-+#define MCA_bus 0
-+#define MCA_bus__is_a_macro /* for versions in ksyms.c */
-+
-+/*
-+ * The nios has no problems with write protection
-+ */
-+#define wp_works_ok 1
-+#define wp_works_ok__is_a_macro /* for versions in ksyms.c */
-+
-+/* Whee, this is STACK_TOP and the lowest kernel address too... */
-+#if 0
-+#define KERNBASE        0x00000000  /* First address the kernel will eventually be */
-+#define TASK_SIZE	(KERNBASE)
-+#define MAX_USER_ADDR	TASK_SIZE
-+#define MMAP_SEARCH_START (TASK_SIZE/3)
-+#endif
-+
-+#define TASK_SIZE	((unsigned int) nasys_program_mem_end)   //...this is better...
-+
-+/*
-+ * This decides where the kernel will search for a free chunk of vm
-+ * space during mmap's. We won't be using it
-+ */
-+#define TASK_UNMAPPED_BASE	0
-+
-+/* The Nios processor specific thread struct. */
-+struct thread_struct {
-+	struct pt_regs *kregs;
-+
-+	/* For signal handling */
-+	unsigned long sig_address;
-+	unsigned long sig_desc;
-+
-+	/* Context switch saved kernel state. */
-+	unsigned long ksp;
-+	unsigned long kpsr;
-+	unsigned long kesr;
-+
-+	/* Flags are defined below */
-+
-+	unsigned long flags;
-+	int current_ds;
-+	struct exec core_exec;     /* just what it says. */
-+};
-+
-+#define INIT_MMAP { &init_mm, (0), (0), \
-+		    __pgprot(0x0) , VM_READ | VM_WRITE | VM_EXEC }
-+
-+#define INIT_THREAD  { \
-+	.kregs		= 0,			\
-+	.sig_address	= 0,			\
-+	.sig_desc	= 0,			\
-+	.ksp		= 0,			\
-+	.kpsr		= 0,			\
-+	.kesr		= PS_S,			\
-+	.flags		= NIOS2_FLAG_KTHREAD,	\
-+	.current_ds	= __KERNEL_DS,		\
-+	.core_exec	= INIT_EXEC		\
-+}
-+
-+/* Free all resources held by a thread. */
-+extern void release_thread(struct task_struct *);
-+
-+extern unsigned long thread_saved_pc(struct task_struct *t);
-+
-+extern void start_thread(struct pt_regs * regs, unsigned long pc, unsigned long sp);
-+
-+/* Prepare to copy thread state - unlazy all lazy status */
-+#define prepare_to_copy(tsk)	do { } while (0)
-+
-+extern int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags);
-+
-+unsigned long get_wchan(struct task_struct *p);
-+
-+#define KSTK_EIP(tsk)  ((tsk)->thread.kregs->ea)
-+#define KSTK_ESP(tsk)  ((tsk)->thread.kregs->sp)
-+
-+#ifdef __KERNEL__
-+/* Allocation and freeing of basic task resources. */
-+
-+//;dgt2;#define alloc_task_struct() ((struct task_struct *) xx..see..linux..fork..xx __get_free_pages(GFP_KERNEL,1))
-+//;dgt2;#define get_task_struct(tsk) xx..see..linux..sched.h...atomic_inc(&mem_map[MAP_NR(tsk)].count)
-+
-+#endif
-+
-+#define cpu_relax()    do { } while (0)
-+#endif /* __ASSEMBLY__ */
-+#endif /* __ASM_NIOS_PROCESSOR_H */
---- linux/include/asm-nios2nommu/ptrace.h
-+++ linux/include/asm-nios2nommu/ptrace.h
-@@ -0,0 +1,141 @@
-+/*
-+ * Taken from the m68k port.
-+ *
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+#ifndef _NIOS2NOMMU_PTRACE_H
-+#define _NIOS2NOMMU_PTRACE_H
-+
-+#ifndef __ASSEMBLY__
-+
-+#define PTR_R0		0
-+#define PTR_R1		1
-+#define PTR_R2		2
-+#define PTR_R3		3
-+#define PTR_R4		4
-+#define PTR_R5		5
-+#define PTR_R6		6
-+#define PTR_R7		7
-+#define PTR_R8		8
-+#define PTR_R9		9
-+#define PTR_R10		10
-+#define PTR_R11		11
-+#define PTR_R12		12
-+#define PTR_R13		13
-+#define PTR_R14		14
-+#define PTR_R15		15
-+#define PTR_R16		16
-+#define PTR_R17		17
-+#define PTR_R18		18
-+#define PTR_R19		19
-+#define PTR_R20		20
-+#define PTR_R21		21
-+#define PTR_R22		22
-+#define PTR_R23		23
-+#define PTR_R24		24
-+#define PTR_R25		25
-+#define PTR_GP		26
-+#define PTR_SP		27
-+#define PTR_FP		28
-+#define PTR_EA		29
-+#define PTR_BA		30
-+#define PTR_RA		31
-+#define PTR_STATUS	32
-+#define PTR_ESTATUS	33
-+#define PTR_BSTATUS	34
-+#define PTR_IENABLE	35
-+#define PTR_IPENDING	36
-+
-+/* this struct defines the way the registers are stored on the
-+   stack during a system call. 
-+
-+   There is a fake_regs in setup.c that has to match pt_regs.*/
-+
-+struct pt_regs {
-+	unsigned long  r8;
-+	unsigned long  r9;
-+	unsigned long  r10;
-+	unsigned long  r11;
-+	unsigned long  r12;
-+	unsigned long  r13;
-+	unsigned long  r14;
-+	unsigned long  r15;
-+	unsigned long  r1;
-+	unsigned long  r2;
-+	unsigned long  r3;
-+	unsigned long  r4;
-+	unsigned long  r5;
-+	unsigned long  r6;
-+	unsigned long  r7;
-+	unsigned long  orig_r2;
-+	unsigned long  ra;
-+	unsigned long  fp;
-+	unsigned long  sp;
-+	unsigned long  gp;
-+	unsigned long  estatus;
-+	unsigned long  status_extension;
-+	unsigned long  ea;
-+};
-+
-+
-+/*
-+ * This is the extended stack used by signal handlers and the context
-+ * switcher: it's pushed after the normal "struct pt_regs".
-+ */
-+struct switch_stack {
-+	unsigned long  r16;
-+	unsigned long  r17;
-+	unsigned long  r18;
-+	unsigned long  r19;
-+	unsigned long  r20;
-+	unsigned long  r21;
-+	unsigned long  r22;
-+	unsigned long  r23;
-+	unsigned long  fp;
-+	unsigned long  gp;
-+	unsigned long  ra;
-+};
-+
-+/* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */
-+#define PTRACE_GETREGS            12
-+#define PTRACE_SETREGS            13
-+#ifdef CONFIG_FPU
-+#define PTRACE_GETFPREGS          14
-+#define PTRACE_SETFPREGS          15
-+#endif
-+
-+#ifdef __KERNEL__
-+
-+#ifndef PS_S
-+#define PS_S  (0x00000001)
-+#endif
-+#ifndef PS_T
-+#define PS_T  (0x00000002)
-+#endif
-+
-+#define user_mode(regs) (!((regs)->status_extension & PS_S))
-+#define instruction_pointer(regs) ((regs)->ra)
-+#define profile_pc(regs) instruction_pointer(regs)
-+extern void show_regs(struct pt_regs *);
-+
-+#endif /* __KERNEL__ */
-+#endif /* __ASSEMBLY__ */
-+#endif /* _NIOS2NOMMU_PTRACE_H */
---- linux/include/asm-nios2nommu/resource.h
-+++ linux/include/asm-nios2nommu/resource.h
-@@ -0,0 +1,73 @@
-+#ifndef _NIOS2NOMMU_RESOURCE_H
-+#define _NIOS2NOMMU_RESOURCE_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * Resource limits
-+ *
-+ * include/asm-nios2nommu/resource.h
-+ *
-+ * Derived from M68knommu
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#define RLIMIT_CPU	0		/* CPU time in ms */
-+#define RLIMIT_FSIZE	1		/* Maximum filesize */
-+#define RLIMIT_DATA	2		/* max data size */
-+#define RLIMIT_STACK	3		/* max stack size */
-+#define RLIMIT_CORE	4		/* max core file size */
-+#define RLIMIT_RSS	5		/* max resident set size */
-+#define RLIMIT_NPROC	6		/* max number of processes */
-+#define RLIMIT_NOFILE	7		/* max number of open files */
-+#define RLIMIT_MEMLOCK	8		/* max locked-in-memory address space */
-+#define RLIMIT_AS	9		/* address space limit */
-+#define RLIMIT_LOCKS	10		/* maximum file locks held */
-+#define RLIMIT_SIGPENDING 11		/* max number of pending signals */
-+#define RLIMIT_MSGQUEUE 12		/* maximum bytes in POSIX mqueues */
-+
-+#define RLIM_NLIMITS	13
-+
-+/*
-+ * SuS says limits have to be unsigned.
-+ * Which makes a ton more sense anyway.
-+ */
-+#define RLIM_INFINITY	(~0UL)
-+
-+#ifdef __KERNEL__
-+
-+#define INIT_RLIMITS					\
-+{							\
-+	{ RLIM_INFINITY, RLIM_INFINITY },		\
-+	{ RLIM_INFINITY, RLIM_INFINITY },		\
-+	{ RLIM_INFINITY, RLIM_INFINITY },		\
-+	{      _STK_LIM, RLIM_INFINITY },		\
-+	{             0, RLIM_INFINITY },		\
-+	{ RLIM_INFINITY, RLIM_INFINITY },		\
-+	{             0,             0 },		\
-+	{      INR_OPEN,     INR_OPEN  },		\
-+	{   MLOCK_LIMIT,   MLOCK_LIMIT },		\
-+	{ RLIM_INFINITY, RLIM_INFINITY },		\
-+	{ RLIM_INFINITY, RLIM_INFINITY },		\
-+	{ MAX_SIGPENDING, MAX_SIGPENDING },		\
-+	{ MQ_BYTES_MAX, MQ_BYTES_MAX },			\
-+}
-+
-+#endif /* __KERNEL__ */
-+
-+#endif /* _NIOS2NOMMU_RESOURCE_H */
---- linux/include/asm-nios2nommu/rmap.h
-+++ linux/include/asm-nios2nommu/rmap.h
-@@ -0,0 +1,2 @@
-+/* Do not need anything here */
-+
---- linux/include/asm-nios2nommu/scatterlist.h
-+++ linux/include/asm-nios2nommu/scatterlist.h
-@@ -0,0 +1,40 @@
-+#ifndef _NIOS2NOMMU_SCATTERLIST_H
-+#define _NIOS2NOMMU_SCATTERLIST_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/scatterlist.h
-+ *
-+ * Derived from M68knommu
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+struct scatterlist {
-+	struct page	*page;
-+	unsigned int	offset;
-+	dma_addr_t	dma_address;
-+	unsigned int	length;
-+};
-+
-+#define sg_dma_address(sg)	((sg)->dma_address)
-+#define sg_dma_len(sg)		((sg)->length)
-+
-+#define ISA_DMA_THRESHOLD	(0xffffffff)
-+
-+#endif /* !(_NIOS2NOMMU_SCATTERLIST_H) */
---- linux/include/asm-nios2nommu/sections.h
-+++ linux/include/asm-nios2nommu/sections.h
-@@ -0,0 +1,30 @@
-+#ifndef _NIOS2NOMMU_SECTIONS_H
-+#define _NIOS2NOMMU_SECTIONS_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/sections.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm-generic/sections.h>
-+
-+#endif /* _NIOS2NOMMU_SECTIONS_H */
---- linux/include/asm-nios2nommu/segment.h
-+++ linux/include/asm-nios2nommu/segment.h
-@@ -0,0 +1,75 @@
-+#ifndef _NIOS2NOMMU_SEGMENT_H
-+#define _NIOS2NOMMU_SEGMENT_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/segment.h
-+ *
-+ * Derived from M68knommu
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+/* define constants */
-+/* Address spaces (FC0-FC2) */
-+#define USER_DATA     (1)
-+#ifndef __USER_DS
-+#define __USER_DS     (USER_DATA)
-+#endif
-+#define USER_PROGRAM  (2)
-+#define SUPER_DATA    (5)
-+#ifndef __KERNEL_DS
-+#define __KERNEL_DS   (SUPER_DATA)
-+#endif
-+#define SUPER_PROGRAM (6)
-+#define CPU_SPACE     (7)
-+
-+#ifndef __ASSEMBLY__
-+
-+typedef struct {
-+	unsigned long seg;
-+} mm_segment_t;
-+
-+#define MAKE_MM_SEG(s)	((mm_segment_t) { (s) })
-+#define USER_DS		MAKE_MM_SEG(__USER_DS)
-+#define KERNEL_DS	MAKE_MM_SEG(__KERNEL_DS)
-+
-+/*
-+ * Get/set the SFC/DFC registers for MOVES instructions
-+ */
-+
-+static inline mm_segment_t get_fs(void)
-+{
-+    return USER_DS;
-+}
-+
-+static inline mm_segment_t get_ds(void)
-+{
-+    /* return the supervisor data space code */
-+    return KERNEL_DS;
-+}
-+
-+static inline void set_fs(mm_segment_t val)
-+{
-+}
-+
-+#define segment_eq(a,b)	((a).seg == (b).seg)
-+
-+#endif /* __ASSEMBLY__ */
-+
-+#endif /* _NIOS2NOMMU_SEGMENT_H */
---- linux/include/asm-nios2nommu/semaphore-helper.h
-+++ linux/include/asm-nios2nommu/semaphore-helper.h
-@@ -0,0 +1,101 @@
-+#ifndef _NIOS2NOMMU_SEMAPHORE_HELPER_H
-+#define _NIOS2NOMMU_SEMAPHORE_HELPER_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/semaphore.h
-+ *
-+ * SMP- and interrupt-safe semaphores helper functions.
-+ *
-+ * Derived from M68knommu
-+ *
-+ * (C) Copyright 1996 Linus Torvalds
-+ * m68k version by Andreas Schwab
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+// #include <linux/config.h>
-+
-+/*
-+ * These two _must_ execute atomically wrt each other.
-+ */
-+static inline void wake_one_more(struct semaphore * sem)
-+{
-+	atomic_inc(&sem->waking);
-+}
-+
-+static inline int waking_non_zero(struct semaphore *sem)
-+{
-+	int ret;
-+	unsigned long flags;
-+
-+	spin_lock_irqsave(&semaphore_wake_lock, flags);
-+	ret = 0;
-+	if (atomic_read(&sem->waking) > 0) {
-+		atomic_dec(&sem->waking);
-+		ret = 1;
-+	}
-+	spin_unlock_irqrestore(&semaphore_wake_lock, flags);
-+	return ret;
-+}
-+
-+/*
-+ * waking_non_zero_interruptible:
-+ *	1	got the lock
-+ *	0	go to sleep
-+ *	-EINTR	interrupted
-+ */
-+static inline int waking_non_zero_interruptible(struct semaphore *sem,
-+						struct task_struct *tsk)
-+{
-+	int ret;
-+	unsigned long flags;
-+
-+	spin_lock_irqsave(&semaphore_wake_lock, flags);
-+	ret = 0;
-+	if (atomic_read(&sem->waking) > 0) {
-+		atomic_dec(&sem->waking);
-+		ret = 1;
-+	} else if (signal_pending(tsk)) {
-+		atomic_inc(&sem->count);
-+		ret = -EINTR;
-+	}
-+	spin_unlock_irqrestore(&semaphore_wake_lock, flags);
-+	return ret;
-+}
-+
-+/*
-+ * waking_non_zero_trylock:
-+ *	1	failed to lock
-+ *	0	got the lock
-+ */
-+static inline int waking_non_zero_trylock(struct semaphore *sem)
-+{
-+	int ret;
-+	unsigned long flags;
-+
-+	spin_lock_irqsave(&semaphore_wake_lock, flags);
-+	ret = 1;
-+	if (atomic_read(&sem->waking) > 0) {
-+		atomic_dec(&sem->waking);
-+		ret = 0;
-+	} else
-+		atomic_inc(&sem->count);
-+	spin_unlock_irqrestore(&semaphore_wake_lock, flags);
-+	return ret;
-+}
-+
-+#endif
---- linux/include/asm-nios2nommu/semaphore.h
-+++ linux/include/asm-nios2nommu/semaphore.h
-@@ -0,0 +1,155 @@
-+#ifndef _NIOS2NOMMU_SEMAPHORE_H
-+#define _NIOS2NOMMU_SEMAPHORE_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/semaphore.h
-+ *
-+ * Interrupt-safe semaphores..
-+ *
-+ * Derived from M68knommu
-+ *
-+ * (C) Copyright 1996 Linus Torvalds
-+ * m68k version by Andreas Schwab
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+#define RW_LOCK_BIAS		 0x01000000
-+
-+#ifndef __ASSEMBLY__
-+
-+#include <linux/linkage.h>
-+#include <linux/wait.h>
-+#include <linux/spinlock.h>
-+#include <linux/rwsem.h>
-+
-+#include <asm/system.h>
-+#include <asm/atomic.h>
-+
-+struct semaphore {
-+	atomic_t count;
-+	atomic_t waking;
-+	wait_queue_head_t wait;
-+};
-+
-+#define __SEMAPHORE_INITIALIZER(name, n)				\
-+{									\
-+	.count		= ATOMIC_INIT(n),				\
-+	.waking		= ATOMIC_INIT(0),				\
-+	.wait		= __WAIT_QUEUE_HEAD_INITIALIZER((name).wait)	\
-+}
-+
-+#define __MUTEX_INITIALIZER(name) \
-+	__SEMAPHORE_INITIALIZER(name,1)
-+
-+#define __DECLARE_SEMAPHORE_GENERIC(name,count) \
-+	struct semaphore name = __SEMAPHORE_INITIALIZER(name,count)
-+
-+#define DECLARE_MUTEX(name) __DECLARE_SEMAPHORE_GENERIC(name,1)
-+#define DECLARE_MUTEX_LOCKED(name) __DECLARE_SEMAPHORE_GENERIC(name,0)
-+
-+extern inline void sema_init (struct semaphore *sem, int val)
-+{
-+	*sem = (struct semaphore)__SEMAPHORE_INITIALIZER(*sem, val);
-+}
-+
-+static inline void init_MUTEX (struct semaphore *sem)
-+{
-+	sema_init(sem, 1);
-+}
-+
-+static inline void init_MUTEX_LOCKED (struct semaphore *sem)
-+{
-+	sema_init(sem, 0);
-+}
-+
-+asmlinkage void __down(struct semaphore * sem);
-+asmlinkage int  __down_interruptible(struct semaphore * sem);
-+asmlinkage int  __down_trylock(struct semaphore * sem);
-+asmlinkage void __up(struct semaphore * sem);
-+
-+asmlinkage void __down_failed(void /* special register calling convention */);
-+asmlinkage int  __down_failed_interruptible(void  /* params in registers */);
-+asmlinkage int  __down_failed_trylock(void  /* params in registers */);
-+asmlinkage void __up_wakeup(void /* special register calling convention */);
-+
-+extern spinlock_t semaphore_wake_lock;
-+
-+/*
-+ * This is ugly, but we want the default case to fall through.
-+ * "down_failed" is a special asm handler that calls the C
-+ * routine that actually waits.
-+ */
-+extern inline void down(struct semaphore * sem)
-+{
-+	might_sleep();
-+
-+  #if 0
-+    ...Nios2 has no atomic "decrement memory"....
-+  #else
-+	if (atomic_dec_return(&sem->count) < 0)
-+		__down(sem);
-+  #endif
-+}
-+
-+extern inline int down_interruptible(struct semaphore * sem)
-+{
-+	int ret = 0;
-+
-+
-+	might_sleep();
-+
-+  #if 0
-+    ...Nios2 has no atomic "decrement memory"....
-+  #else
-+	if(atomic_dec_return(&sem->count) < 0)
-+		ret = __down_interruptible(sem);
-+	return ret;
-+  #endif
-+}
-+
-+extern inline int down_trylock(struct semaphore * sem)
-+{
-+  #if 0
-+    ...Nios2 has no atomic "decrement memory"....
-+  #else
-+	int ret = 0;
-+
-+	if (atomic_dec_return (&sem->count) < 0)
-+		ret = __down_trylock(sem);
-+	return ret;
-+  #endif
-+}
-+
-+/*
-+ * Note! This is subtle. We jump to wake people up only if
-+ * the semaphore was negative (== somebody was waiting on it).
-+ * The default case (no contention) will result in NO
-+ * jumps for both down() and up().
-+ */
-+extern inline void up(struct semaphore * sem)
-+{
-+  #if 0
-+    ...Nios2 has no atomic "increment memory"....
-+  #else
-+	if (atomic_inc_return(&sem->count) <= 0)
-+		__up(sem);
-+  #endif
-+}
-+
-+#endif /* __ASSEMBLY__ */
-+
-+#endif
---- linux/include/asm-nios2nommu/sembuf.h
-+++ linux/include/asm-nios2nommu/sembuf.h
-@@ -0,0 +1,48 @@
-+#ifndef _NIOS_SEMBUF_H
-+#define _NIOS_SEMBUF_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/sembuf.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+/* 
-+ * Note extra padding because this structure is passed back and forth
-+ * between kernel and user space.
-+ *
-+ * Pad space is left for:
-+ * - 64-bit time_t to solve y2038 problem
-+ * - 2 miscellaneous 32-bit values
-+ */
-+
-+struct semid64_ds {
-+	struct ipc64_perm sem_perm;		/* permissions .. see ipc.h */
-+	__kernel_time_t	sem_otime;		/* last semop time */
-+	unsigned long	__unused1;
-+	__kernel_time_t	sem_ctime;		/* last change time */
-+	unsigned long	__unused2;
-+	unsigned long	sem_nsems;		/* no. of semaphores in array */
-+	unsigned long	__unused3;
-+	unsigned long	__unused4;
-+};
-+
-+#endif /* _NIOS_SEMBUF_H */
---- linux/include/asm-nios2nommu/setup.h
-+++ linux/include/asm-nios2nommu/setup.h
-@@ -0,0 +1,31 @@
-+/*	Copied from i386 port.
-+ *	Just a place holder. We don't want to have to test x86 before
-+ *	we include stuff
-+ *
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef _NIOS2_SETUP_H
-+#define _NIOS2_SETUP_H
-+
-+#define COMMAND_LINE_SIZE 512
-+
-+#endif /* _NIOS2_SETUP_H */
---- linux/include/asm-nios2nommu/shmbuf.h
-+++ linux/include/asm-nios2nommu/shmbuf.h
-@@ -0,0 +1,64 @@
-+#ifndef _NIOS_SHMBUF_H
-+#define _NIOS_SHMBUF_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/shmbuf.h
-+ *
-+ * Derived from m68knommu
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+/* Note extra padding because this structure is passed back and forth
-+ * between kernel and user space.
-+ *
-+ * Pad space is left for:
-+ * - 64-bit time_t to solve y2038 problem
-+ * - 2 miscellaneous 32-bit values
-+ */
-+
-+struct shmid64_ds {
-+	struct ipc64_perm	shm_perm;	/* operation perms */
-+	size_t			shm_segsz;	/* size of segment (bytes) */
-+	__kernel_time_t		shm_atime;	/* last attach time */
-+	unsigned long		__unused1;
-+	__kernel_time_t		shm_dtime;	/* last detach time */
-+	unsigned long		__unused2;
-+	__kernel_time_t		shm_ctime;	/* last change time */
-+	unsigned long		__unused3;
-+	__kernel_pid_t		shm_cpid;	/* pid of creator */
-+	__kernel_pid_t		shm_lpid;	/* pid of last operator */
-+	unsigned long		shm_nattch;	/* no. of current attaches */
-+	unsigned long		__unused4;
-+	unsigned long		__unused5;
-+};
-+
-+struct shminfo64 {
-+	unsigned long	shmmax;
-+	unsigned long	shmmin;
-+	unsigned long	shmmni;
-+	unsigned long	shmseg;
-+	unsigned long	shmall;
-+	unsigned long	__unused1;
-+	unsigned long	__unused2;
-+	unsigned long	__unused3;
-+	unsigned long	__unused4;
-+};
-+
-+#endif /* _NIOS_SHMBUF_H */
---- linux/include/asm-nios2nommu/shmparam.h
-+++ linux/include/asm-nios2nommu/shmparam.h
-@@ -0,0 +1,30 @@
-+#ifndef __NIOS2NOMMU_SHMPARAM_H__
-+#define __NIOS2NOMMU_SHMPARAM_H__
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/shmparam.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#define	SHMLBA		PAGE_SIZE	/* attach addr a multiple of this */
-+
-+#endif /* __NIOS2NOMMU_SHMPARAM_H__ */
---- linux/include/asm-nios2nommu/sigcontext.h
-+++ linux/include/asm-nios2nommu/sigcontext.h
-@@ -0,0 +1,35 @@
-+/*
-+ * Taken from the m68knommu.
-+ *
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ * 
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef _ASM_NIOS2NOMMU_SIGCONTEXT_H
-+#define _ASM_NIOS2NOMMU_SIGCONTEXT_H
-+
-+#include <asm/ptrace.h>
-+
-+struct sigcontext {
-+	struct pt_regs regs;
-+	unsigned long  sc_mask; 	/* old sigmask */
-+};
-+
-+#endif
---- linux/include/asm-nios2nommu/siginfo.h
-+++ linux/include/asm-nios2nommu/siginfo.h
-@@ -0,0 +1,28 @@
-+/*
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef _NIOS2NOMMU_SIGINFO_H
-+#define _NIOS2NOMMU_SIGINFO_H
-+
-+#include <asm-generic/siginfo.h>
-+
-+#endif
---- linux/include/asm-nios2nommu/signal.h
-+++ linux/include/asm-nios2nommu/signal.h
-@@ -0,0 +1,207 @@
-+/*
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef _NIOS2_SIGNAL_H
-+#define _NIOS2_SIGNAL_H
-+
-+#include <linux/types.h>
-+
-+/* Avoid too many header ordering problems.  */
-+struct siginfo;
-+
-+#ifdef __KERNEL__
-+/* Most things should be clean enough to redefine this at will, if care
-+   is taken to make libc match.  */
-+
-+#define _NSIG		64
-+#define _NSIG_BPW	32
-+#define _NSIG_WORDS	(_NSIG / _NSIG_BPW)
-+
-+typedef unsigned long old_sigset_t;		/* at least 32 bits */
-+
-+typedef struct {
-+	unsigned long sig[_NSIG_WORDS];
-+} sigset_t;
-+
-+#else
-+/* Here we must cater to libcs that poke about in kernel headers.  */
-+
-+#define NSIG		32
-+typedef unsigned long sigset_t;
-+
-+#endif /* __KERNEL__ */
-+
-+#define SIGHUP		 1
-+#define SIGINT		 2
-+#define SIGQUIT		 3
-+#define SIGILL		 4
-+#define SIGTRAP		 5
-+#define SIGABRT		 6
-+#define SIGIOT		 6
-+#define SIGBUS		 7
-+#define SIGFPE		 8
-+#define SIGKILL		 9
-+#define SIGUSR1		10
-+#define SIGSEGV		11
-+#define SIGUSR2		12
-+#define SIGPIPE		13
-+#define SIGALRM		14
-+#define SIGTERM		15
-+#define SIGSTKFLT	16
-+#define SIGCHLD		17
-+#define SIGCONT		18
-+#define SIGSTOP		19
-+#define SIGTSTP		20
-+#define SIGTTIN		21
-+#define SIGTTOU		22
-+#define SIGURG		23
-+#define SIGXCPU		24
-+#define SIGXFSZ		25
-+#define SIGVTALRM	26
-+#define SIGPROF		27
-+#define SIGWINCH	28
-+#define SIGIO		29
-+#define SIGPOLL		SIGIO
-+/*
-+#define SIGLOST		29
-+*/
-+#define SIGPWR		30
-+#define SIGSYS		31
-+#define	SIGUNUSED	31
-+
-+/* These should not be considered constants from userland.  */
-+#define SIGRTMIN	32
-+#define SIGRTMAX	_NSIG-1
-+
-+/*
-+ * SA_FLAGS values:
-+ *
-+ * SA_ONSTACK indicates that a registered stack_t will be used.
-+ * SA_INTERRUPT is a no-op, but left due to historical reasons. Use the
-+ * SA_RESTART flag to get restarting signals (which were the default long ago)
-+ * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
-+ * SA_RESETHAND clears the handler when the signal is delivered.
-+ * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies.
-+ * SA_NODEFER prevents the current signal from being masked in the handler.
-+ *
-+ * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
-+ * Unix names RESETHAND and NODEFER respectively.
-+ */
-+#define SA_NOCLDSTOP	0x00000001
-+#define SA_NOCLDWAIT	0x00000002 /* not supported yet */
-+#define SA_SIGINFO	0x00000004
-+#define SA_ONSTACK	0x08000000
-+#define SA_RESTART	0x10000000
-+#define SA_NODEFER	0x40000000
-+#define SA_RESETHAND	0x80000000
-+
-+#define SA_NOMASK	SA_NODEFER
-+#define SA_ONESHOT	SA_RESETHAND
-+#define SA_INTERRUPT	0x20000000 /* dummy -- ignored */
-+
-+#define SA_RESTORER	0x04000000
-+
-+/* 
-+ * sigaltstack controls
-+ */
-+#define SS_ONSTACK	1
-+#define SS_DISABLE	2
-+
-+#define MINSIGSTKSZ	2048
-+#define SIGSTKSZ	8192
-+
-+#ifdef __KERNEL__
-+/*
-+ * These values of sa_flags are used only by the kernel as part of the
-+ * irq handling routines.
-+ *
-+ * SA_INTERRUPT is also used by the irq handling routines.
-+ * SA_SHIRQ is for shared interrupt support on PCI and EISA.
-+ */
-+#define SA_PROBE		SA_ONESHOT
-+#define SA_SAMPLE_RANDOM	SA_RESTART
-+#define SA_SHIRQ		0x04000000
-+#endif
-+
-+#define SIG_BLOCK          0	/* for blocking signals */
-+#define SIG_UNBLOCK        1	/* for unblocking signals */
-+#define SIG_SETMASK        2	/* for setting the signal mask */
-+
-+/* Type of a signal handler.  */
-+typedef void (*__sighandler_t)(int);
-+
-+#define SIG_DFL	((__sighandler_t)0)	/* default signal handling */
-+#define SIG_IGN	((__sighandler_t)1)	/* ignore signal */
-+#define SIG_ERR	((__sighandler_t)-1)	/* error return from signal */
-+
-+#ifdef __KERNEL__
-+struct old_sigaction {
-+	__sighandler_t sa_handler;
-+	old_sigset_t sa_mask;
-+	unsigned long sa_flags;
-+	void (*sa_restorer)(void);
-+};
-+
-+struct sigaction {
-+	__sighandler_t sa_handler;
-+	unsigned long sa_flags;
-+	void (*sa_restorer)(void);
-+	sigset_t sa_mask;		/* mask last for extensibility */
-+};
-+
-+struct k_sigaction {
-+	struct sigaction sa;
-+};
-+#else
-+/* Here we must cater to libcs that poke about in kernel headers.  */
-+
-+struct sigaction {
-+	union {
-+	  __sighandler_t _sa_handler;
-+	  void (*_sa_sigaction)(int, struct siginfo *, void *);
-+	} _u;
-+	sigset_t sa_mask;
-+	unsigned long sa_flags;
-+	void (*sa_restorer)(void);
-+};
-+
-+#define sa_handler	_u._sa_handler
-+#define sa_sigaction	_u._sa_sigaction
-+
-+#endif /* __KERNEL__ */
-+
-+typedef struct sigaltstack {
-+	void *ss_sp;
-+	int ss_flags;
-+	size_t ss_size;
-+} stack_t;
-+
-+#ifdef __KERNEL__
-+
-+#include <asm/sigcontext.h>
-+#undef __HAVE_ARCH_SIG_BITOPS
-+
-+#define ptrace_signal_deliver(regs, cookie) do { } while (0)
-+
-+#endif /* __KERNEL__ */
-+
-+#endif /* _NIOS2_SIGNAL_H */
---- linux/include/asm-nios2nommu/smp.h
-+++ linux/include/asm-nios2nommu/smp.h
-@@ -0,0 +1,34 @@
-+#ifndef __ASM_SMP_H
-+#define __ASM_SMP_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/smp.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+// #include <linux/config.h>
-+
-+#ifdef CONFIG_SMP
-+#error SMP not supported
-+#endif
-+
-+#endif
---- linux/include/asm-nios2nommu/socket.h
-+++ linux/include/asm-nios2nommu/socket.h
-@@ -0,0 +1,74 @@
-+#ifndef _ASM_SOCKET_H
-+#define _ASM_SOCKET_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/socket.h
-+ *
-+ * Derived from m68knommu
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm/sockios.h>
-+
-+/* For setsockopt(2) */
-+#define SOL_SOCKET	1
-+
-+#define SO_DEBUG	1
-+#define SO_REUSEADDR	2
-+#define SO_TYPE		3
-+#define SO_ERROR	4
-+#define SO_DONTROUTE	5
-+#define SO_BROADCAST	6
-+#define SO_SNDBUF	7
-+#define SO_RCVBUF	8
-+#define SO_KEEPALIVE	9
-+#define SO_OOBINLINE	10
-+#define SO_NO_CHECK	11
-+#define SO_PRIORITY	12
-+#define SO_LINGER	13
-+#define SO_BSDCOMPAT	14
-+/* To add :#define SO_REUSEPORT 15 */
-+#define SO_PASSCRED	16
-+#define SO_PEERCRED	17
-+#define SO_RCVLOWAT	18
-+#define SO_SNDLOWAT	19
-+#define SO_RCVTIMEO	20
-+#define SO_SNDTIMEO	21
-+
-+/* Security levels - as per NRL IPv6 - don't actually do anything */
-+#define SO_SECURITY_AUTHENTICATION		22
-+#define SO_SECURITY_ENCRYPTION_TRANSPORT	23
-+#define SO_SECURITY_ENCRYPTION_NETWORK		24
-+
-+#define SO_BINDTODEVICE	25
-+
-+/* Socket filtering */
-+#define SO_ATTACH_FILTER        26
-+#define SO_DETACH_FILTER        27
-+
-+#define SO_PEERNAME             28
-+#define SO_TIMESTAMP		29
-+#define SCM_TIMESTAMP		SO_TIMESTAMP
-+
-+#define SO_ACCEPTCONN		30
-+
-+#define SO_PEERSEC		31      /* ;dgt2;tmp;                   */
-+
-+#endif /* _ASM_SOCKET_H */
---- linux/include/asm-nios2nommu/sockios.h
-+++ linux/include/asm-nios2nommu/sockios.h
-@@ -0,0 +1,38 @@
-+#ifndef _ASM_NIOS_SOCKIOS_H
-+#define _ASM_NIOS_SOCKIOS_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/sockios.h
-+ *
-+ * Socket-level I/O control calls.
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#define FIOSETOWN 	0x8901
-+#define SIOCSPGRP	0x8902
-+#define FIOGETOWN	0x8903
-+#define SIOCGPGRP	0x8904
-+#define SIOCATMARK	0x8905
-+#define SIOCGSTAMP	0x8906		/* Get stamp */
-+
-+#endif /* !(_ASM_NIOS_SOCKIOS_H) */
-+
---- linux/include/asm-nios2nommu/spi.h
-+++ linux/include/asm-nios2nommu/spi.h
-@@ -0,0 +1,92 @@
-+#ifndef _ASM_SPI_H_
-+#define _ASM_SPI_H_ 1
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/spi.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm/nios.h>
-+
-+int  register_NIOS_SPI( void );
-+void unregister_NIOS_SPI( void );
-+
-+#if defined(MODULE)
-+void cleanup_module( void );
-+int  init_module( void );
-+#endif
-+
-+#if defined(__KERNEL__)
-+int  spi_reset  ( void );
-+#endif
-+
-+
-+#define clockCS 0x01
-+#define temperatureCS 0x02
-+
-+#define clock_read_base 0x00
-+#define clock_write_base 0x80
-+#define clock_read_control 0x0F
-+#define clock_read_trickle 0x11
-+
-+#define clock_read_sec 0x00
-+#define clock_read_min 0x01
-+#define clock_read_hour 0x02
-+#define clock_read_day 0x03
-+#define clock_read_date 0x04
-+#define clock_read_month 0x05
-+#define clock_read_year 0x06
-+
-+#define clock_write_control 0x8F
-+#define clock_write_trickle 0x91
-+#define clock_write_sec 0x80
-+#define clock_write_min 0x81
-+#define clock_write_hour 0x82
-+#define clock_write_day 0x83
-+#define clock_write_date 0x84
-+#define clock_write_month 0x85
-+#define clock_write_year 0x86
-+
-+#define clock_write_ram_start 0xA0
-+#define clock_write_ram_end 0x100
-+#define clock_read_ram_start 0x20
-+#define clock_read_ram_end 0x80
-+
-+
-+#define	clock_sec_def 0x11
-+#define clock_min_def 0x59
-+#define clock_hour_def 0x71
-+#define clock_day_def 0x00
-+#define clock_date_def 0x20
-+#define clock_month_def 0x12
-+#define clock_year_def 0x34
-+
-+#define temp_read_base 0x00
-+#define temp_write_base 0x80
-+#define temp_read_control 0x00
-+#define temp_write_control 0x80
-+#define temp_read_msb 0x02
-+#define temp_read_lsb 0x01
-+
-+#define MAX_TEMP_VAR 10
-+
-+#endif /*_ASM_SPI_H_*/
---- linux/include/asm-nios2nommu/spinlock.h
-+++ linux/include/asm-nios2nommu/spinlock.h
-@@ -0,0 +1,30 @@
-+#ifndef __NIOS_SPINLOCK_H
-+#define __NIOS_SPINLOCK_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/spinlock.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#error "Nios doesn't do SMP yet"
-+
-+#endif
---- linux/include/asm-nios2nommu/stat.h
-+++ linux/include/asm-nios2nommu/stat.h
-@@ -0,0 +1,102 @@
-+#ifndef _ASMNIOS2NOMMU_STAT_H
-+#define _ASMNIOS2NOMMU_STAT_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/stat.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+struct __old_kernel_stat {
-+	unsigned short st_dev;
-+	unsigned short st_ino;
-+	unsigned short st_mode;
-+	unsigned short st_nlink;
-+	unsigned short st_uid;
-+	unsigned short st_gid;
-+	unsigned short st_rdev;
-+	unsigned long  st_size;
-+	unsigned long  st_atime;
-+	unsigned long  st_mtime;
-+	unsigned long  st_ctime;
-+};
-+
-+struct stat {
-+	unsigned short st_dev;
-+	unsigned short __pad1;
-+	unsigned long st_ino;
-+	unsigned short st_mode;
-+	unsigned short st_nlink;
-+	unsigned short st_uid;
-+	unsigned short st_gid;
-+	unsigned short st_rdev;
-+	unsigned short __pad2;
-+	unsigned long  st_size;
-+	unsigned long  st_blksize;
-+	unsigned long  st_blocks;
-+	unsigned long  st_atime;
-+	unsigned long  __unused1;
-+	unsigned long  st_mtime;
-+	unsigned long  __unused2;
-+	unsigned long  st_ctime;
-+	unsigned long  __unused3;
-+	unsigned long  __unused4;
-+	unsigned long  __unused5;
-+};
-+
-+/* This matches struct stat64 in glibc2.1, hence the absolutely
-+ * insane amounts of padding around dev_t's.
-+ */
-+struct stat64 {
-+	unsigned long long	st_dev;
-+	unsigned char	__pad1[4];
-+
-+#define STAT64_HAS_BROKEN_ST_INO	1
-+	unsigned long	__st_ino;
-+
-+	unsigned int	st_mode;
-+	unsigned int	st_nlink;
-+
-+	unsigned long	st_uid;
-+	unsigned long	st_gid;
-+
-+	unsigned long long	st_rdev;
-+	unsigned char	__pad3[4];
-+
-+	long long	st_size;
-+	unsigned long	st_blksize;
-+
-+	unsigned long	__pad4;		/* future possible st_blocks high bits */
-+	unsigned long	st_blocks;	/* Number 512-byte blocks allocated. */
-+
-+	unsigned long	st_atime;
-+	unsigned long	st_atime_nsec;
-+
-+	unsigned long	st_mtime;
-+	unsigned long	st_mtime_nsec;
-+
-+	unsigned long	st_ctime;
-+	unsigned long	st_ctime_nsec;
-+
-+	unsigned long long	st_ino;
-+};
-+
-+#endif
---- linux/include/asm-nios2nommu/statfs.h
-+++ linux/include/asm-nios2nommu/statfs.h
-@@ -0,0 +1,30 @@
-+#ifndef _NIOS2NOMMU_STATFS_H
-+#define _NIOS2NOMMU_STATFS_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/statfs.h
-+ *
-+ * Derived from M68knommu
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm-generic/statfs.h>
-+
-+#endif /* _NIOS2NOMMU_STATFS_H */
---- linux/include/asm-nios2nommu/string.h
-+++ linux/include/asm-nios2nommu/string.h
-@@ -0,0 +1,45 @@
-+#ifndef __NIOS_STRING_H__
-+#define __NIOS_STRING_H__
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/string.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#ifdef __KERNEL__ /* only set these up for kernel code */
-+
-+#define __HAVE_ARCH_MEMMOVE
-+void * memmove(void * d, const void * s, size_t count);
-+#define __HAVE_ARCH_MEMCPY
-+extern void * memcpy(void *d, const void *s, size_t count);
-+#define __HAVE_ARCH_MEMSET
-+extern void * memset(void * s,int c,size_t count);
-+
-+#if 0
-+#define __HAVE_ARCH_BCOPY
-+#define __HAVE_ARCH_STRLEN
-+#endif
-+
-+#endif /* KERNEL */
-+
-+#endif /* !(__NIOS_STRING_H__) */
---- linux/include/asm-nios2nommu/system.h
-+++ linux/include/asm-nios2nommu/system.h
-@@ -0,0 +1,172 @@
-+/*
-+ * Taken from the m68k.
-+ *
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef _NIOS2NOMMU_SYSTEM_H
-+#define _NIOS2NOMMU_SYSTEM_H
-+
-+// #include <linux/config.h> /* get configuration macros */
-+#include <linux/linkage.h>
-+#include <asm/segment.h>
-+#include <asm/entry.h>
-+#include <asm/nios.h>
-+
-+/*
-+ * switch_to(n) should switch tasks to task ptr, first checking that
-+ * ptr isn't the current task, in which case it does nothing.  This
-+ * also clears the TS-flag if the task we switched to has used the
-+ * math co-processor latest.
-+ */
-+
-+/*
-+ */
-+asmlinkage void resume(void);
-+#define switch_to(prev,next,last)				\
-+{								\
-+  void *_last;							\
-+  __asm__ __volatile__(						\
-+  	"mov	r4, %1\n"					\
-+	"mov	r5, %2\n"					\
-+	"call	resume\n"					\
-+	"mov	%0,r4\n"					\
-+       : "=r" (_last)						\
-+       : "r" (prev), "r" (next)					\
-+       : "r4","r5","r7","r8","ra");	\
-+  (last) = _last;						\
-+}
-+
-+#define local_irq_enable() __asm__ __volatile__ (  \
-+	"rdctl	r8, status\n"			   \
-+	"ori	r8, r8, 1\n"			   \
-+	"wrctl	status, r8\n"			   \
-+	: : : "r8")	  
-+
-+#define local_irq_disable() __asm__ __volatile__ ( \
-+	"rdctl	r8, status\n"			   \
-+	"andi	r8, r8, 0xfffe\n"		   \
-+	"wrctl	status, r8\n"			   \
-+	: : : "r8")
-+
-+#define local_save_flags(x) __asm__ __volatile__ (	\
-+	"rdctl	r8, status\n"				\
-+	"mov	%0, r8\n"				\
-+	:"=r" (x) : : "r8", "memory")
-+
-+#define local_irq_restore(x) __asm__ __volatile__ (	\
-+	"mov	r8, %0\n"				\
-+	"wrctl	status, r8\n"				\
-+	: :"r" (x) : "memory")
-+
-+/* For spinlocks etc */
-+#define local_irq_save(x) do { local_save_flags(x); local_irq_disable(); } while (0)
-+
-+#define	irqs_disabled()					\
-+({							\
-+	unsigned long flags;				\
-+	local_save_flags(flags);			\
-+	((flags & NIOS2_STATUS_PIE_MSK) == 0x0);	\
-+})
-+
-+#define iret() __asm__ __volatile__ ("eret": : :"memory", "ea")
-+
-+/*
-+ * Force strict CPU ordering.
-+ * Not really required on m68k...
-+ */
-+#define nop()  asm volatile ("nop"::)
-+#define mb()   asm volatile (""   : : :"memory")
-+#define rmb()  asm volatile (""   : : :"memory")
-+#define wmb()  asm volatile (""   : : :"memory")
-+#define set_rmb(var, value)    do { xchg(&var, value); } while (0)
-+#define set_mb(var, value)     set_rmb(var, value)
-+#define set_wmb(var, value)    do { var = value; wmb(); } while (0)
-+
-+#ifdef CONFIG_SMP
-+#define smp_mb()	mb()
-+#define smp_rmb()	rmb()
-+#define smp_wmb()	wmb()
-+#define smp_read_barrier_depends()	read_barrier_depends()
-+#else
-+#define smp_mb()	barrier()
-+#define smp_rmb()	barrier()
-+#define smp_wmb()	barrier()
-+#define smp_read_barrier_depends()	do { } while(0)
-+#endif
-+
-+#define xchg(ptr,x) ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr))))
-+#define tas(ptr) (xchg((ptr),1))
-+
-+struct __xchg_dummy { unsigned long a[100]; };
-+#define __xg(x) ((volatile struct __xchg_dummy *)(x))
-+
-+static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int size)
-+{
-+  unsigned long tmp, flags;
-+
-+  local_irq_save(flags);
-+
-+  switch (size) {
-+  case 1:
-+    __asm__ __volatile__( \
-+      "ldb	%0, %2\n" \
-+      "stb	%1, %2\n" \
-+    : "=&r" (tmp) : "r" (x), "m" (*__xg(ptr)) : "memory");
-+    break;
-+  case 2:
-+    __asm__ __volatile__( \
-+      "ldh	%0, %2\n" \
-+      "sth	%1, %2\n" \
-+    : "=&r" (tmp) : "r" (x), "m" (*__xg(ptr)) : "memory");
-+    break;
-+  case 4:
-+    __asm__ __volatile__( \
-+      "ldw	%0, %2\n" \
-+      "stw	%1, %2\n" \
-+    : "=&r" (tmp) : "r" (x), "m" (*__xg(ptr)) : "memory");
-+    break;
-+  }
-+  local_irq_restore(flags);
-+  return tmp;
-+}
-+
-+/*
-+ * Atomic compare and exchange.  Compare OLD with MEM, if identical,
-+ * store NEW in MEM.  Return the initial value in MEM.  Success is
-+ * indicated by comparing RETURN with OLD.
-+ */
-+#define __HAVE_ARCH_CMPXCHG	1
-+
-+static __inline__ unsigned long
-+cmpxchg(volatile int *p, int old, int new)
-+{
-+	unsigned long flags;
-+	int prev;
-+
-+	local_irq_save(flags);
-+	if ((prev = *p) == old)
-+		*p = new;
-+	local_irq_restore(flags);
-+	return(prev);
-+}
-+
-+#endif /* _NIOS2NOMMU_SYSTEM_H */
---- linux/include/asm-nios2nommu/termbits.h
-+++ linux/include/asm-nios2nommu/termbits.h
-@@ -0,0 +1,199 @@
-+#ifndef __ARCH_NIOS_TERMBITS_H__
-+#define __ARCH_NIOS_TERMBITS_H__
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/termbits.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <linux/posix_types.h>
-+
-+typedef unsigned char	cc_t;
-+typedef unsigned int	speed_t;
-+typedef unsigned int	tcflag_t;
-+
-+#define NCCS 19
-+struct termios {
-+	tcflag_t c_iflag;		/* input mode flags */
-+	tcflag_t c_oflag;		/* output mode flags */
-+	tcflag_t c_cflag;		/* control mode flags */
-+	tcflag_t c_lflag;		/* local mode flags */
-+	cc_t c_line;			/* line discipline */
-+	cc_t c_cc[NCCS];		/* control characters */
-+};
-+
-+/* c_cc characters */
-+#define VINTR 0
-+#define VQUIT 1
-+#define VERASE 2
-+#define VKILL 3
-+#define VEOF 4
-+#define VTIME 5
-+#define VMIN 6
-+#define VSWTC 7
-+#define VSTART 8
-+#define VSTOP 9
-+#define VSUSP 10
-+#define VEOL 11
-+#define VREPRINT 12
-+#define VDISCARD 13
-+#define VWERASE 14
-+#define VLNEXT 15
-+#define VEOL2 16
-+
-+
-+/* c_iflag bits */
-+#define IGNBRK	0000001
-+#define BRKINT	0000002
-+#define IGNPAR	0000004
-+#define PARMRK	0000010
-+#define INPCK	0000020
-+#define ISTRIP	0000040
-+#define INLCR	0000100
-+#define IGNCR	0000200
-+#define ICRNL	0000400
-+#define IUCLC	0001000
-+#define IXON	0002000
-+#define IXANY	0004000
-+#define IXOFF	0010000
-+#define IMAXBEL	0020000
-+#define IUTF8	0040000
-+
-+/* c_oflag bits */
-+#define OPOST	0000001
-+#define OLCUC	0000002
-+#define ONLCR	0000004
-+#define OCRNL	0000010
-+#define ONOCR	0000020
-+#define ONLRET	0000040
-+#define OFILL	0000100
-+#define OFDEL	0000200
-+#define NLDLY	0000400
-+#define   NL0	0000000
-+#define   NL1	0000400
-+#define CRDLY	0003000
-+#define   CR0	0000000
-+#define   CR1	0001000
-+#define   CR2	0002000
-+#define   CR3	0003000
-+#define TABDLY	0014000
-+#define   TAB0	0000000
-+#define   TAB1	0004000
-+#define   TAB2	0010000
-+#define   TAB3	0014000
-+#define   XTABS	0014000
-+#define BSDLY	0020000
-+#define   BS0	0000000
-+#define   BS1	0020000
-+#define VTDLY	0040000
-+#define   VT0	0000000
-+#define   VT1	0040000
-+#define FFDLY	0100000
-+#define   FF0	0000000
-+#define   FF1	0100000
-+
-+/* c_cflag bit meaning */
-+#define CBAUD	0010017
-+#define  B0	0000000		/* hang up */
-+#define  B50	0000001
-+#define  B75	0000002
-+#define  B110	0000003
-+#define  B134	0000004
-+#define  B150	0000005
-+#define  B200	0000006
-+#define  B300	0000007
-+#define  B600	0000010
-+#define  B1200	0000011
-+#define  B1800	0000012
-+#define  B2400	0000013
-+#define  B4800	0000014
-+#define  B9600	0000015
-+#define  B19200	0000016
-+#define  B38400	0000017
-+#define EXTA B19200
-+#define EXTB B38400
-+#define CSIZE	0000060
-+#define   CS5	0000000
-+#define   CS6	0000020
-+#define   CS7	0000040
-+#define   CS8	0000060
-+#define CSTOPB	0000100
-+#define CREAD	0000200
-+#define PARENB	0000400
-+#define PARODD	0001000
-+#define HUPCL	0002000
-+#define CLOCAL	0004000
-+#define CBAUDEX 0010000
-+#define    B57600 0010001
-+#define   B115200 0010002
-+#define   B230400 0010003
-+#define   B460800 0010004
-+#define   B500000 0010005
-+#define   B576000 0010006
-+#define   B921600 0010007
-+#define  B1000000 0010010
-+#define  B1152000 0010011
-+#define  B1500000 0010012
-+#define  B2000000 0010013
-+#define  B2500000 0010014
-+#define  B3000000 0010015
-+#define  B3500000 0010016
-+#define  B4000000 0010017
-+#define CIBAUD	  002003600000	/* input baud rate (not used) */
-+#define CMSPAR	  010000000000		/* mark or space (stick) parity */
-+#define CRTSCTS	  020000000000		/* flow control */
-+
-+/* c_lflag bits */
-+#define ISIG	0000001
-+#define ICANON	0000002
-+#define XCASE	0000004
-+#define ECHO	0000010
-+#define ECHOE	0000020
-+#define ECHOK	0000040
-+#define ECHONL	0000100
-+#define NOFLSH	0000200
-+#define TOSTOP	0000400
-+#define ECHOCTL	0001000
-+#define ECHOPRT	0002000
-+#define ECHOKE	0004000
-+#define FLUSHO	0010000
-+#define PENDIN	0040000
-+#define IEXTEN	0100000
-+
-+
-+/* tcflow() and TCXONC use these */
-+#define	TCOOFF		0
-+#define	TCOON		1
-+#define	TCIOFF		2
-+#define	TCION		3
-+
-+/* tcflush() and TCFLSH use these */
-+#define	TCIFLUSH	0
-+#define	TCOFLUSH	1
-+#define	TCIOFLUSH	2
-+
-+/* tcsetattr uses these */
-+#define	TCSANOW		0
-+#define	TCSADRAIN	1
-+#define	TCSAFLUSH	2
-+
-+#endif /* __ARCH_NIOS_TERMBITS_H__ */
---- linux/include/asm-nios2nommu/termios.h
-+++ linux/include/asm-nios2nommu/termios.h
-@@ -0,0 +1,132 @@
-+#ifndef _NIOS_TERMIOS_H
-+#define _NIOS_TERMIOS_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/termios.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm/termbits.h>
-+#include <asm/ioctls.h>
-+ 
-+struct winsize {
-+	unsigned short ws_row;
-+	unsigned short ws_col;
-+	unsigned short ws_xpixel;
-+	unsigned short ws_ypixel;
-+};
-+
-+#define NCC 8
-+struct termio {
-+	unsigned short c_iflag;		/* input mode flags */
-+	unsigned short c_oflag;		/* output mode flags */
-+	unsigned short c_cflag;		/* control mode flags */
-+	unsigned short c_lflag;		/* local mode flags */
-+	unsigned char c_line;		/* line discipline */
-+	unsigned char c_cc[NCC];	/* control characters */
-+};
-+
-+#ifdef __KERNEL__
-+/*	intr=^C		quit=^|		erase=del	kill=^U
-+	eof=^D		vtime=\0	vmin=\1		sxtc=\0
-+	start=^Q	stop=^S		susp=^Z		eol=\0
-+	reprint=^R	discard=^U	werase=^W	lnext=^V
-+	eol2=\0
-+*/
-+#define INIT_C_CC "\003\034\177\025\004\0\1\0\021\023\032\0\022\017\027\026\0"
-+#endif
-+
-+/* modem lines */
-+#define TIOCM_LE	0x001
-+#define TIOCM_DTR	0x002
-+#define TIOCM_RTS	0x004
-+#define TIOCM_ST	0x008
-+#define TIOCM_SR	0x010
-+#define TIOCM_CTS	0x020
-+#define TIOCM_CAR	0x040
-+#define TIOCM_RNG	0x080
-+#define TIOCM_DSR	0x100
-+#define TIOCM_CD	TIOCM_CAR
-+#define TIOCM_RI	TIOCM_RNG
-+#define TIOCM_OUT1	0x2000
-+#define TIOCM_OUT2	0x4000
-+#define TIOCM_LOOP	0x8000
-+
-+/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
-+
-+/* line disciplines */
-+#define N_TTY		0
-+#define N_SLIP		1
-+#define N_MOUSE		2
-+#define N_PPP		3
-+#define N_STRIP		4
-+#define N_AX25		5
-+#define N_X25		6	/* X.25 async */
-+#define N_6PACK		7
-+#define N_MASC		8	/* Reserved for Mobitex module <kaz@cafe.net> */
-+#define N_R3964		9	/* Reserved for Simatic R3964 module */
-+#define N_PROFIBUS_FDL	10	/* Reserved for Profibus <Dave@mvhi.com> */
-+#define N_IRDA		11	/* Linux IrDa - http://irda.sourceforge.net/ */
-+#define N_SMSBLOCK	12	/* SMS block mode - for talking to GSM data cards about SMS messages */
-+#define N_HDLC		13	/* synchronous HDLC */
-+#define N_SYNC_PPP	14
-+#define N_HCI		15  /* Bluetooth HCI UART */
-+
-+#ifdef __KERNEL__
-+
-+/*
-+ * Translate a "termio" structure into a "termios". Ugh.
-+ */
-+#define user_termio_to_kernel_termios(termios, termio) \
-+({ \
-+	unsigned short tmp; \
-+	get_user(tmp, &(termio)->c_iflag); \
-+	(termios)->c_iflag = (0xffff0000 & ((termios)->c_iflag)) | tmp; \
-+	get_user(tmp, &(termio)->c_oflag); \
-+	(termios)->c_oflag = (0xffff0000 & ((termios)->c_oflag)) | tmp; \
-+	get_user(tmp, &(termio)->c_cflag); \
-+	(termios)->c_cflag = (0xffff0000 & ((termios)->c_cflag)) | tmp; \
-+	get_user(tmp, &(termio)->c_lflag); \
-+	(termios)->c_lflag = (0xffff0000 & ((termios)->c_lflag)) | tmp; \
-+	get_user((termios)->c_line, &(termio)->c_line); \
-+	copy_from_user((termios)->c_cc, (termio)->c_cc, NCC); \
-+})
-+
-+/*
-+ * Translate a "termios" structure into a "termio". Ugh.
-+ */
-+#define kernel_termios_to_user_termio(termio, termios) \
-+({ \
-+	put_user((termios)->c_iflag, &(termio)->c_iflag); \
-+	put_user((termios)->c_oflag, &(termio)->c_oflag); \
-+	put_user((termios)->c_cflag, &(termio)->c_cflag); \
-+	put_user((termios)->c_lflag, &(termio)->c_lflag); \
-+	put_user((termios)->c_line,  &(termio)->c_line); \
-+	copy_to_user((termio)->c_cc, (termios)->c_cc, NCC); \
-+})
-+
-+#define user_termios_to_kernel_termios(k, u) copy_from_user(k, u, sizeof(struct termios))
-+#define kernel_termios_to_user_termios(u, k) copy_to_user(u, k, sizeof(struct termios))
-+
-+#endif	/* __KERNEL__ */
-+
-+#endif /* _NIOS_TERMIOS_H */
---- linux/include/asm-nios2nommu/thread_info.h
-+++ linux/include/asm-nios2nommu/thread_info.h
-@@ -0,0 +1,126 @@
-+/* thread_info.h: niosnommu low-level thread information
-+ * adapted from the m68knommu
-+ *
-+ * Copyright (C) 2004 Microtronix Datacom Ltd.
-+ * Copyright (C) 2002 Microtronix Datacom 
-+ *
-+ * - Incorporating suggestions made by Linus Torvalds and Dave Miller
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifndef _ASM_THREAD_INFO_H
-+#define _ASM_THREAD_INFO_H
-+
-+#include <asm/page.h>
-+
-+#ifdef __KERNEL__
-+
-+#ifndef __ASSEMBLY__
-+
-+/*
-+ * low level task data.
-+ */
-+struct thread_info {
-+	struct task_struct *task;		/* main task structure */
-+	struct exec_domain *exec_domain;	/* execution domain */
-+	unsigned long	   flags;		/* low level flags */
-+	int		   cpu;			/* cpu we're on */
-+	int		   preempt_count;	/* 0 => preemptable, <0 => BUG*/
-+	struct restart_block restart_block;
-+};
-+
-+/*
-+ * macros/functions for gaining access to the thread information structure
-+ */
-+#define INIT_THREAD_INFO(tsk)			\
-+{						\
-+	.task		= &tsk,			\
-+	.exec_domain	= &default_exec_domain,	\
-+	.flags		= 0,			\
-+	.cpu		= 0,			\
-+	.preempt_count	= 1,			\
-+	.restart_block	= {			\
-+		.fn = do_no_restart_syscall,	\
-+	},					\
-+}
-+
-+#define init_thread_info	(init_thread_union.thread_info)
-+#define init_stack		(init_thread_union.stack)
-+
-+
-+/* how to get the thread information struct from C
-+   usable only in supervisor mode */
-+static inline struct thread_info *current_thread_info(void)
-+{
-+	struct thread_info *ti;
-+	__asm__ __volatile__(
-+		"mov	%0, sp\n"
-+		"and	%0, %0, %1\n"
-+		: "=&r"(ti)
-+		: "r" (~(THREAD_SIZE-1))
-+		);
-+	return ti;
-+}
-+
-+/* thread information allocation */
-+#define alloc_thread_info(tsk) ((struct thread_info *) \
-+				__get_free_pages(GFP_KERNEL, 1))
-+#define free_thread_info(ti)	free_pages((unsigned long) (ti), 1)
-+#define put_thread_info(ti)	put_task_struct((ti)->task)
-+
-+#define	PREEMPT_ACTIVE	0x4000000
-+
-+/*
-+ * thread information flag bit numbers
-+ */
-+#define TIF_SYSCALL_TRACE 	0	/* syscall trace active */
-+#define TIF_NOTIFY_RESUME 	1	/* resumption notification requested */
-+#define TIF_SIGPENDING	  	2	/* signal pending */
-+#define TIF_NEED_RESCHED  	3	/* rescheduling necessary */
-+#define TIF_POLLING_NRFLAG	4	/* true if poll_idle() is polling
-+					   TIF_NEED_RESCHED */
-+
-+/* as above, but as bit values */
-+#define _TIF_SYSCALL_TRACE	(1<<TIF_SYSCALL_TRACE)
-+#define _TIF_NOTIFY_RESUME	(1<<TIF_NOTIFY_RESUME)
-+#define _TIF_SIGPENDING		(1<<TIF_SIGPENDING)
-+#define _TIF_NEED_RESCHED	(1<<TIF_NEED_RESCHED)
-+#define _TIF_POLLING_NRFLAG	(1<<TIF_POLLING_NRFLAG)
-+
-+#define _TIF_WORK_MASK		0x0000FFFE	/* work to do on interrupt/exception return */
-+
-+#else /* __ASSEMBLY__ */
-+
-+/* how to get the thread information struct from ASM 
-+   usable only in supervisor mode */
-+.macro GET_THREAD_INFO reg 
-+.if THREAD_SIZE & 0xffff0000
-+	andhi	\reg, sp, %hi(~(THREAD_SIZE-1))
-+.else
-+	addi	\reg, r0, %lo(~(THREAD_SIZE-1))
-+	and	\reg, \reg, sp
-+.endif
-+.endm
-+
-+#endif /* __ASSEMBLY__ */
-+
-+#endif /* __KERNEL__ */
-+
-+#endif /* _ASM_THREAD_INFO_H */
---- linux/include/asm-nios2nommu/timer_struct.h
-+++ linux/include/asm-nios2nommu/timer_struct.h
-@@ -0,0 +1,38 @@
-+
-+// ----------------------------------------------
-+// Timer Peripheral
-+
-+// Timer Registers
-+typedef volatile struct
-+	{
-+	int np_timerstatus;  // read only, 2 bits (any write to clear TO)
-+	int np_timercontrol; // write/readable, 4 bits
-+	int np_timerperiodl; // write/readable, 16 bits
-+	int np_timerperiodh; // write/readable, 16 bits
-+	int np_timersnapl;   // read only, 16 bits
-+	int np_timersnaph;   // read only, 16 bits
-+	} np_timer;
-+
-+// Timer Register Bits
-+enum
-+	{
-+	np_timerstatus_run_bit    = 1, // timer is running
-+	np_timerstatus_to_bit     = 0, // timer has timed out
-+
-+	np_timercontrol_stop_bit  = 3, // stop the timer
-+	np_timercontrol_start_bit = 2, // start the timer
-+	np_timercontrol_cont_bit  = 1, // continous mode
-+	np_timercontrol_ito_bit   = 0, // enable time out interrupt
-+
-+	np_timerstatus_run_mask    = (1<<1), // timer is running
-+	np_timerstatus_to_mask     = (1<<0), // timer has timed out
-+
-+	np_timercontrol_stop_mask  = (1<<3), // stop the timer
-+	np_timercontrol_start_mask = (1<<2), // start the timer
-+	np_timercontrol_cont_mask  = (1<<1), // continous mode
-+	np_timercontrol_ito_mask   = (1<<0)  // enable time out interrupt
-+	};
-+
-+// Timer Routines
-+int nr_timer_milliseconds(void);	// Starts on first call, hogs timer1.
-+
---- linux/include/asm-nios2nommu/timex.h
-+++ linux/include/asm-nios2nommu/timex.h
-@@ -0,0 +1,48 @@
-+#ifndef _ASMNIOS2NOMMU_TIMEX_H
-+#define _ASMNIOS2NOMMU_TIMEX_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/timex.h
-+ *
-+ * timex specifications
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm/nios.h>
-+
-+
-+#define CLOCK_TICK_RATE	nasys_clock_freq /* Underlying HZ */
-+
-+#define CLOCK_TICK_FACTOR	20	/* Factor of both 1000000 and CLOCK_TICK_RATE */
-+
-+#define FINETUNE ((((((long)LATCH * HZ - CLOCK_TICK_RATE) << SHIFT_HZ) * \
-+	(1000000/CLOCK_TICK_FACTOR) / (CLOCK_TICK_RATE/CLOCK_TICK_FACTOR)) \
-+		<< (SHIFT_SCALE-SHIFT_HZ)) / HZ)
-+
-+typedef unsigned long cycles_t;
-+
-+static inline cycles_t get_cycles(void)
-+{
-+	return 0;
-+}
-+
-+#endif
---- linux/include/asm-nios2nommu/tlb.h
-+++ linux/include/asm-nios2nommu/tlb.h
-@@ -0,0 +1,35 @@
-+#ifndef __NIOS_TLB_H__
-+#define __NIOS_TLB_H__
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/tlb.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ *  Copyright (C) 2003  Microtronix Datacom Ltd
-+ *  Copyright (C) 2002  NEC Corporation
-+ *  Copyright (C) 2002  Miles Bader <miles@gnu.org>
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Written by Miles Bader <miles@gnu.org>
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+#define tlb_flush(tlb)	((void)0)
-+
-+#include <asm-generic/tlb.h>
-+
-+#endif /* __NIOS_TLB_H__ */
-+
---- linux/include/asm-nios2nommu/tlbflush.h
-+++ linux/include/asm-nios2nommu/tlbflush.h
-@@ -0,0 +1,86 @@
-+#ifndef _NIOS2NOMMU_TLBFLUSH_H
-+#define _NIOS2NOMMU_TLBFLUSH_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/tlbflush.h
-+ *
-+ * Ported from m68knommu.
-+ *
-+ * Copyright (C) 2003 Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+#include <asm/setup.h>
-+
-+/*
-+ * flush all user-space atc entries.
-+ */
-+static inline void __flush_tlb(void)
-+{
-+	BUG();
-+}
-+
-+static inline void __flush_tlb_one(unsigned long addr)
-+{
-+	BUG();
-+}
-+
-+#define flush_tlb() __flush_tlb()
-+
-+/*
-+ * flush all atc entries (both kernel and user-space entries).
-+ */
-+static inline void flush_tlb_all(void)
-+{
-+	BUG();
-+}
-+
-+static inline void flush_tlb_mm(struct mm_struct *mm)
-+{
-+	BUG();
-+}
-+
-+static inline void flush_tlb_page(struct vm_area_struct *vma, unsigned long addr)
-+{
-+	BUG();
-+}
-+
-+static inline void flush_tlb_range(struct mm_struct *mm,
-+				   unsigned long start, unsigned long end)
-+{
-+	BUG();
-+}
-+
-+extern inline void flush_tlb_kernel_page(unsigned long addr)
-+{
-+	BUG();
-+}
-+
-+extern inline void flush_tlb_pgtables(struct mm_struct *mm,
-+				      unsigned long start, unsigned long end)
-+{
-+	BUG();
-+}
-+
-+#endif /* _NIOS2NOMMU_TLBFLUSH_H */
---- linux/include/asm-nios2nommu/topology.h
-+++ linux/include/asm-nios2nommu/topology.h
-@@ -0,0 +1,30 @@
-+#ifndef _ASM_NIOS2NOMMU_TOPOLOGY_H
-+#define _ASM_NIOS2NOMMU_TOPOLOGY_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/topology.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm-generic/topology.h>
-+
-+#endif /* _ASM_NIOS2NOMMU_TOPOLOGY_H */
---- linux/include/asm-nios2nommu/traps.h
-+++ linux/include/asm-nios2nommu/traps.h
-@@ -0,0 +1,27 @@
-+/*
-+ * Copyright (C) 2004, Microtronix Datacom Ltd.
-+ *
-+ * All rights reserved.          
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
-+ * NON INFRINGEMENT.  See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+#ifndef _NIOS2_TRAPS_H
-+#define _NIOS2_TRAPS_H
-+
-+#define TRAP_ID_SYSCALL 0
-+#define TRAP_ID_APPDEBUG 1
-+#endif /* !(_NIOS2_TRAPS_H) */
---- linux/include/asm-nios2nommu/types.h
-+++ linux/include/asm-nios2nommu/types.h
-@@ -0,0 +1,93 @@
-+#ifndef _NIOS_TYPES_H
-+#define _NIOS_TYPES_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/types.h
-+ *
-+ * Derived from m68knommu
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+/*
-+ * This file is never included by application software unless
-+ * explicitly requested (e.g., via linux/types.h) in which case the
-+ * application is Linux specific so (user-) name space pollution is
-+ * not a major issue.  However, for interoperability, libraries still
-+ * need to be careful to avoid a name clashes.
-+ */
-+
-+#ifndef __ASSEMBLY__
-+
-+typedef unsigned short umode_t;
-+
-+/*
-+ * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
-+ * header files exported to user space
-+ */
-+
-+typedef __signed__ char __s8;
-+typedef unsigned char __u8;
-+
-+typedef __signed__ short __s16;
-+typedef unsigned short __u16;
-+
-+typedef __signed__ int __s32;
-+typedef unsigned int __u32;
-+
-+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-+typedef __signed__ long long __s64;
-+typedef unsigned long long __u64;
-+#endif
-+
-+#endif /* __ASSEMBLY__ */
-+
-+/*
-+ * These aren't exported outside the kernel to avoid name space clashes
-+ */
-+#ifdef __KERNEL__
-+
-+#define BITS_PER_LONG 32
-+
-+#ifndef __ASSEMBLY__
-+
-+typedef signed char s8;
-+typedef unsigned char u8;
-+
-+typedef signed short s16;
-+typedef unsigned short u16;
-+
-+typedef signed int s32;
-+typedef unsigned int u32;
-+
-+typedef signed long long s64;
-+typedef unsigned long long u64;
-+
-+/* DMA addresses are always 32-bits wide */
-+
-+typedef u32 dma_addr_t;
-+typedef u32 dma64_addr_t;
-+
-+typedef unsigned short kmem_bufctl_t;
-+
-+#endif /* __ASSEMBLY__ */
-+
-+#endif /* __KERNEL__ */
-+
-+#endif /* _NIOS_TYPES_H */
---- linux/include/asm-nios2nommu/uaccess.h
-+++ linux/include/asm-nios2nommu/uaccess.h
-@@ -0,0 +1,183 @@
-+#ifndef __NIOS2NOMMU_UACCESS_H
-+#define __NIOS2NOMMU_UACCESS_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * asm-nios2nommu/uaccess.h
-+ *
-+ * User space memory access functions
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Ported from asm-m68knommu/uaccess.h --wentao
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <linux/sched.h>
-+#include <linux/mm.h>
-+#include <asm/segment.h>
-+#include <asm/nios.h>
-+
-+#define VERIFY_READ	0
-+#define VERIFY_WRITE	1
-+
-+#define access_ok(type,addr,size)	_access_ok((unsigned long)(addr),(size))
-+
-+static inline int _access_ok(unsigned long addr, unsigned long size)
-+{
-+	return (((unsigned long)addr < (unsigned long)nasys_program_mem_end) &&
-+		(((unsigned long)addr >= (unsigned long)nasys_program_mem)));
-+}
-+
-+extern inline int verify_area(int type, const void * addr, unsigned long size)
-+{
-+	return access_ok(type,addr,size)?0:-EFAULT;
-+}
-+
-+/*
-+ * The exception table consists of pairs of addresses: the first is the
-+ * address of an instruction that is allowed to fault, and the second is
-+ * the address at which the program should continue.  No registers are
-+ * modified, so it is entirely up to the continuation code to figure out
-+ * what to do.
-+ *
-+ * All the routines below use bits of fixup code that are out of line
-+ * with the main instruction path.  This means when everything is well,
-+ * we don't even have to jump over them.  Further, they do not intrude
-+ * on our cache or tlb entries.
-+ */
-+
-+#define ARCH_HAS_SEARCH_EXTABLE
-+//;dgt2;tmp;
-+
-+struct exception_table_entry
-+{
-+	unsigned long insn, fixup;
-+};
-+
-+/* Returns 0 if exception not found and fixup otherwise.  */
-+extern unsigned long search_exception_table(unsigned long);
-+
-+
-+/*
-+ * These are the main single-value transfer routines.  They automatically
-+ * use the right size if we just have the right pointer type.
-+ */
-+
-+#define put_user(x, ptr)				\
-+({							\
-+    int __pu_err = 0;					\
-+    typeof(*(ptr)) __pu_val = (x);			\
-+    switch (sizeof (*(ptr))) {				\
-+    case 1:						\
-+    case 2:						\
-+    case 4:						\
-+    case 8:						\
-+	memcpy(ptr, &__pu_val, sizeof (*(ptr))); \
-+	break;						\
-+    default:						\
-+	__pu_err = __put_user_bad();			\
-+	break;						\
-+    }							\
-+    __pu_err;						\
-+})
-+#define __put_user(x, ptr) put_user(x, ptr)
-+
-+extern int __put_user_bad(void);
-+
-+/*
-+ * Tell gcc we read from memory instead of writing: this is because
-+ * we do not write to any memory gcc knows about, so there are no
-+ * aliasing issues.
-+ */
-+
-+#define __ptr(x) ((unsigned long *)(x))
-+
-+#define get_user(x, ptr)					\
-+({								\
-+    int __gu_err = 0;						\
-+    typeof(*(ptr)) __gu_val = 0;				\
-+    switch (sizeof(*(ptr))) {					\
-+    case 1:						\
-+    case 2:						\
-+    case 4:						\
-+    case 8:						\
-+	memcpy(&__gu_val, ptr, sizeof (*(ptr))); \
-+	break;							\
-+    default:							\
-+	__gu_val = 0;						\
-+	__gu_err = __get_user_bad();				\
-+	break;							\
-+    }								\
-+    (x) = __gu_val;						\
-+    __gu_err;							\
-+})
-+#define __get_user(x, ptr) get_user(x, ptr)
-+
-+extern int __get_user_bad(void);
-+
-+#define copy_from_user(to, from, n)		(memcpy(to, from, n), 0)
-+#define copy_to_user(to, from, n)		(memcpy(to, from, n), 0)
-+
-+#define __copy_from_user(to, from, n) copy_from_user(to, from, n)
-+#define __copy_to_user(to, from, n) copy_to_user(to, from, n)
-+#define __copy_to_user_inatomic __copy_to_user
-+#define __copy_from_user_inatomic __copy_from_user
-+
-+#define copy_to_user_ret(to,from,n,retval) ({ if (copy_to_user(to,from,n)) return retval; })
-+
-+#define copy_from_user_ret(to,from,n,retval) ({ if (copy_from_user(to,from,n)) return retval; })
-+
-+/*
-+ * Copy a null terminated string from userspace.
-+ */
-+
-+static inline long
-+strncpy_from_user(char *dst, const char *src, long count)
-+{
-+	char *tmp;
-+	strncpy(dst, src, count);
-+	for (tmp = dst; *tmp && count > 0; tmp++, count--)
-+		;
-+	return(tmp - dst); /* DAVIDM should we count a NUL ?  check getname */
-+}
-+
-+/*
-+ * Return the size of a string (including the ending 0)
-+ *
-+ * Return 0 on exception, a value greater than N if too long
-+ */
-+static inline long strnlen_user(const char *src, long n)
-+{
-+	return(strlen(src) + 1); /* DAVIDM make safer */
-+}
-+
-+#define strlen_user(str) strnlen_user(str, 32767)
-+
-+/*
-+ * Zero Userspace
-+ */
-+
-+static inline unsigned long
-+clear_user(void *to, unsigned long n)
-+{
-+	memset(to, 0, n);
-+    return(0);
-+}
-+
-+#endif /* _NIOS2NOMMU_UACCESS_H */
---- linux/include/asm-nios2nommu/uart_struct.h
-+++ linux/include/asm-nios2nommu/uart_struct.h
-@@ -0,0 +1,83 @@
-+
-+// UART Registers
-+typedef volatile struct
-+	{
-+	int np_uartrxdata;      // Read-only, 8-bit
-+	int np_uarttxdata;      // Write-only, 8-bit
-+	int np_uartstatus;      // Read-only, 8-bit
-+	int np_uartcontrol;     // Read/Write, 9-bit
-+	int np_uartdivisor;     // Read/Write, 16-bit, optional
-+	int np_uartendofpacket; // Read/Write, end-of-packet character
-+	} np_uart;
-+
-+// UART Status Register Bits
-+enum
-+	{
-+	np_uartstatus_eop_bit  = 12,
-+	np_uartstatus_cts_bit  = 11,
-+	np_uartstatus_dcts_bit = 10,
-+	np_uartstatus_e_bit    = 8,
-+	np_uartstatus_rrdy_bit = 7,
-+	np_uartstatus_trdy_bit = 6,
-+	np_uartstatus_tmt_bit  = 5,
-+	np_uartstatus_toe_bit  = 4,
-+	np_uartstatus_roe_bit  = 3,
-+	np_uartstatus_brk_bit  = 2,
-+	np_uartstatus_fe_bit   = 1,
-+	np_uartstatus_pe_bit   = 0,
-+
-+	np_uartstatus_eop_mask  = (1<<12),
-+	np_uartstatus_cts_mask  = (1<<11),
-+	np_uartstatus_dcts_mask = (1<<10),
-+	np_uartstatus_e_mask    = (1<<8),
-+	np_uartstatus_rrdy_mask = (1<<7),
-+	np_uartstatus_trdy_mask = (1<<6),
-+	np_uartstatus_tmt_mask  = (1<<5),
-+	np_uartstatus_toe_mask  = (1<<4),
-+	np_uartstatus_roe_mask  = (1<<3),
-+	np_uartstatus_brk_mask  = (1<<2),
-+	np_uartstatus_fe_mask   = (1<<1),
-+	np_uartstatus_pe_mask   = (1<<0)
-+	};
-+
-+// UART Control Register Bits
-+enum
-+	{
-+	np_uartcontrol_ieop_bit  = 12,
-+	np_uartcontrol_rts_bit   = 11,
-+	np_uartcontrol_idcts_bit = 10,
-+	np_uartcontrol_tbrk_bit  = 9,
-+	np_uartcontrol_ie_bit    = 8,
-+	np_uartcontrol_irrdy_bit = 7,
-+	np_uartcontrol_itrdy_bit = 6,
-+	np_uartcontrol_itmt_bit  = 5,
-+	np_uartcontrol_itoe_bit  = 4,
-+	np_uartcontrol_iroe_bit  = 3,
-+	np_uartcontrol_ibrk_bit  = 2,
-+	np_uartcontrol_ife_bit   = 1,
-+	np_uartcontrol_ipe_bit   = 0,
-+
-+	np_uartcontrol_ieop_mask  = (1<<12),
-+	np_uartcontrol_rts_mask   = (1<<11),
-+	np_uartcontrol_idcts_mask = (1<<10),
-+	np_uartcontrol_tbrk_mask  = (1<<9),
-+	np_uartcontrol_ie_mask    = (1<<8),
-+	np_uartcontrol_irrdy_mask = (1<<7),
-+	np_uartcontrol_itrdy_mask = (1<<6),
-+	np_uartcontrol_itmt_mask  = (1<<5),
-+	np_uartcontrol_itoe_mask  = (1<<4),
-+	np_uartcontrol_iroe_mask  = (1<<3),
-+	np_uartcontrol_ibrk_mask  = (1<<2),
-+	np_uartcontrol_ife_mask   = (1<<1),
-+	np_uartcontrol_ipe_mask   = (1<<0)
-+	};
-+
-+// UART Routines
-+int nr_uart_rxchar(np_uart *uartBase);        // 0 for default UART
-+void nr_uart_txcr(void);
-+void nr_uart_txchar(int c,np_uart *uartBase); // 0 for default UART
-+void nr_uart_txhex(int x);                     // 16 or 32 bits
-+void nr_uart_txhex16(short x);
-+void nr_uart_txhex32(long x);
-+void nr_uart_txstring(char *s);
-+
---- linux/include/asm-nios2nommu/ucontext.h
-+++ linux/include/asm-nios2nommu/ucontext.h
-@@ -0,0 +1,63 @@
-+#ifndef _NIOSKNOMMU_UCONTEXT_H
-+#define _NIOSKNOMMU_UCONTEXT_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/ucontext.h
-+ *
-+ * Derived from M68knommu
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+typedef int greg_t;
-+#define NGREG 32
-+typedef greg_t gregset_t[NGREG];
-+
-+#ifdef CONFIG_FPU
-+typedef struct fpregset {
-+	int f_pcr;
-+	int f_psr;
-+	int f_fpiaddr;
-+	int f_fpregs[8][3];
-+} fpregset_t;
-+#endif
-+
-+struct mcontext {
-+	int version;
-+	int status_extension;
-+	gregset_t gregs;
-+#ifdef CONFIG_FPU
-+	fpregset_t fpregs;
-+#endif
-+};
-+
-+#define MCONTEXT_VERSION 2
-+
-+struct ucontext {
-+	unsigned long	  uc_flags;
-+	struct ucontext  *uc_link;
-+	stack_t		  uc_stack;
-+	struct mcontext	  uc_mcontext;
-+#ifdef CONFIG_FPU
-+	unsigned long	  uc_filler[80];
-+#endif
-+	sigset_t	  uc_sigmask;	/* mask last for extensibility */
-+};
-+
-+#endif
---- linux/include/asm-nios2nommu/unaligned.h
-+++ linux/include/asm-nios2nommu/unaligned.h
-@@ -0,0 +1,43 @@
-+#ifndef __NIOS_UNALIGNED_H
-+#define __NIOS_UNALIGNED_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/unaligned.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+/*
-+ * The nios cannot do unaligned accesses itself. 
-+ */ 
-+
-+#define get_unaligned(ptr) ({			\
-+	typeof((*(ptr))) x;			\
-+	memcpy(&x, (void*)ptr, sizeof(*(ptr)));	\
-+	x;					\
-+})
-+
-+#define put_unaligned(val, ptr) ({		\
-+	typeof((*(ptr))) x = val;		\
-+	memcpy((void*)ptr, &x, sizeof(*(ptr)));	\
-+})
-+
-+#endif /* __NIOS_UNALIGNED_H */
---- linux/include/asm-nios2nommu/unistd.h
-+++ linux/include/asm-nios2nommu/unistd.h
-@@ -0,0 +1,686 @@
-+#ifndef _ASM_NIOS_UNISTD_H_
-+#define _ASM_NIOS_UNISTD_H_
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/unistd.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * //vic - kernel_thread moved to process.c
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm/traps.h>
-+
-+/* TRAP isr expects the trap# (syscall=#TRAP_ID_SYSCALL) in r2,
-+ *  the syscall # in r3, and arguments in r4, r5, ...
-+ * Return argument expected in r2.
-+ */
-+
-+#define __NR_restart_syscall      0
-+#define __NR_exit		  1
-+#define __NR_fork		  2
-+#define __NR_read		  3
-+#define __NR_write		  4
-+#define __NR_open		  5
-+#define __NR_close		  6
-+#define __NR_waitpid		  7
-+#define __NR_creat		  8
-+#define __NR_link		  9
-+#define __NR_unlink		 10
-+#define __NR_execve		 11
-+#define __NR_chdir		 12
-+#define __NR_time		 13
-+#define __NR_mknod		 14
-+#define __NR_chmod		 15
-+#define __NR_chown		 16
-+#define __NR_break		 17
-+#define __NR_oldstat		 18
-+#define __NR_lseek		 19
-+#define __NR_getpid		 20
-+#define __NR_mount		 21
-+#define __NR_umount		 22
-+#define __NR_setuid		 23
-+#define __NR_getuid		 24
-+#define __NR_stime		 25
-+#define __NR_ptrace		 26
-+#define __NR_alarm		 27
-+#define __NR_oldfstat		 28
-+#define __NR_pause		 29
-+#define __NR_utime		 30
-+#define __NR_stty		 31
-+#define __NR_gtty		 32
-+#define __NR_access		 33
-+#define __NR_nice		 34
-+#define __NR_ftime		 35
-+#define __NR_sync		 36
-+#define __NR_kill		 37
-+#define __NR_rename		 38
-+#define __NR_mkdir		 39
-+#define __NR_rmdir		 40
-+#define __NR_dup		 41
-+#define __NR_pipe		 42
-+#define __NR_times		 43
-+#define __NR_prof		 44
-+#define __NR_brk		 45
-+#define __NR_setgid		 46
-+#define __NR_getgid		 47
-+#define __NR_signal		 48
-+#define __NR_geteuid		 49
-+#define __NR_getegid		 50
-+#define __NR_acct		 51
-+#define __NR_umount2		 52	//vic #define __NR_phys		 52
-+#define __NR_lock		 53
-+#define __NR_ioctl		 54
-+#define __NR_fcntl		 55
-+#define __NR_mpx		 56
-+#define __NR_setpgid		 57
-+#define __NR_ulimit		 58
-+#define __NR_oldolduname	 59
-+#define __NR_umask		 60
-+#define __NR_chroot		 61
-+#define __NR_ustat		 62
-+#define __NR_dup2		 63
-+#define __NR_getppid		 64
-+#define __NR_getpgrp		 65
-+#define __NR_setsid		 66
-+#define __NR_sigaction		 67
-+#define __NR_sgetmask		 68
-+#define __NR_ssetmask		 69
-+#define __NR_setreuid		 70
-+#define __NR_setregid		 71
-+#define __NR_sigsuspend		 72
-+#define __NR_sigpending		 73
-+#define __NR_sethostname	 74
-+#define __NR_setrlimit		 75
-+#define __NR_getrlimit		 76
-+#define __NR_getrusage		 77
-+#define __NR_gettimeofday	 78
-+#define __NR_settimeofday	 79
-+#define __NR_getgroups		 80
-+#define __NR_setgroups		 81
-+#define __NR_select		 82
-+#define __NR_symlink		 83
-+#define __NR_oldlstat		 84
-+#define __NR_readlink		 85
-+#define __NR_uselib		 86
-+#define __NR_swapon		 87
-+#define __NR_reboot		 88
-+#define __NR_readdir		 89
-+#define __NR_mmap		 90
-+#define __NR_munmap		 91
-+#define __NR_truncate		 92
-+#define __NR_ftruncate		 93
-+#define __NR_fchmod		 94
-+#define __NR_fchown		 95
-+#define __NR_getpriority	 96
-+#define __NR_setpriority	 97
-+#define __NR_profil		 98
-+#define __NR_statfs		 99
-+#define __NR_fstatfs		100
-+#define __NR_ioperm		101
-+#define __NR_socketcall		102
-+#define __NR_syslog		103
-+#define __NR_setitimer		104
-+#define __NR_getitimer		105
-+#define __NR_stat		106
-+#define __NR_lstat		107
-+#define __NR_fstat		108
-+#define __NR_olduname		109
-+#define __NR_iopl		/* 110 */ not supported
-+#define __NR_vhangup		111
-+#define __NR_idle		/* 112 */ Obsolete
-+#define __NR_vm86		/* 113 */ not supported
-+#define __NR_wait4		114
-+#define __NR_swapoff		115
-+#define __NR_sysinfo		116
-+#define __NR_ipc		117
-+#define __NR_fsync		118
-+#define __NR_sigreturn		119
-+#define __NR_clone		120
-+#define __NR_setdomainname	121
-+#define __NR_uname		122
-+#define __NR_cacheflush		123
-+#define __NR_adjtimex		124
-+#define __NR_mprotect		125
-+#define __NR_sigprocmask	126
-+#define __NR_create_module	127
-+#define __NR_init_module	128
-+#define __NR_delete_module	129
-+#define __NR_get_kernel_syms	130
-+#define __NR_quotactl		131
-+#define __NR_getpgid		132
-+#define __NR_fchdir		133
-+#define __NR_bdflush		134
-+#define __NR_sysfs		135
-+#define __NR_personality	136
-+#define __NR_afs_syscall	137 /* Syscall for Andrew File System */
-+#define __NR_setfsuid		138
-+#define __NR_setfsgid		139
-+#define __NR__llseek		140
-+#define __NR_getdents		141
-+#define __NR__newselect		142
-+#define __NR_flock		143
-+#define __NR_msync		144
-+#define __NR_readv		145
-+#define __NR_writev		146
-+#define __NR_getsid		147
-+#define __NR_fdatasync		148
-+#define __NR__sysctl		149
-+#define __NR_mlock		150
-+#define __NR_munlock		151
-+#define __NR_mlockall		152
-+#define __NR_munlockall		153
-+#define __NR_sched_setparam		154
-+#define __NR_sched_getparam		155
-+#define __NR_sched_setscheduler		156
-+#define __NR_sched_getscheduler		157
-+#define __NR_sched_yield		158
-+#define __NR_sched_get_priority_max	159
-+#define __NR_sched_get_priority_min	160
-+#define __NR_sched_rr_get_interval	161
-+#define __NR_nanosleep		162
-+#define __NR_mremap		163
-+#define __NR_setresuid		164
-+#define __NR_getresuid		165
-+#define __NR_getpagesize	166
-+#define __NR_query_module	167
-+#define __NR_poll		168
-+#define __NR_nfsservctl		169
-+#define __NR_setresgid		170
-+#define __NR_getresgid		171
-+#define __NR_prctl		172
-+#define __NR_rt_sigreturn	173
-+#define __NR_rt_sigaction	174
-+#define __NR_rt_sigprocmask	175
-+#define __NR_rt_sigpending	176
-+#define __NR_rt_sigtimedwait	177
-+#define __NR_rt_sigqueueinfo	178
-+#define __NR_rt_sigsuspend	179
-+#define __NR_pread		180
-+#define __NR_pwrite		181
-+#define __NR_lchown		182
-+#define __NR_getcwd		183
-+#define __NR_capget		184
-+#define __NR_capset		185
-+#define __NR_sigaltstack	186
-+#define __NR_sendfile		187
-+#define __NR_getpmsg		188	/* some people actually want streams */
-+#define __NR_putpmsg		189	/* some people actually want streams */
-+#define __NR_vfork		190
-+#define __NR_ugetrlimit		191
-+#define __NR_mmap2		192
-+#define __NR_truncate64		193
-+#define __NR_ftruncate64	194
-+#define __NR_stat64		195
-+#define __NR_lstat64		196
-+#define __NR_fstat64		197
-+#define __NR_chown32		198
-+#define __NR_getuid32		199
-+#define __NR_getgid32		200
-+#define __NR_geteuid32		201
-+#define __NR_getegid32		202
-+#define __NR_setreuid32		203
-+#define __NR_setregid32		204
-+#define __NR_getgroups32	205
-+#define __NR_setgroups32	206
-+#define __NR_fchown32		207
-+#define __NR_setresuid32	208
-+#define __NR_getresuid32	209
-+#define __NR_setresgid32	210
-+#define __NR_getresgid32	211
-+#define __NR_lchown32		212
-+#define __NR_setuid32		213
-+#define __NR_setgid32		214
-+#define __NR_setfsuid32		215
-+#define __NR_setfsgid32		216
-+#define __NR_pivot_root		217
-+/* 218 unused */
-+/* 219 unused */
-+#define __NR_getdents64		220
-+#define __NR_gettid		221
-+#define __NR_tkill		222
-+#define __NR_setxattr		223
-+#define __NR_lsetxattr		224
-+#define __NR_fsetxattr		225
-+#define __NR_getxattr		226
-+#define __NR_lgetxattr		227
-+#define __NR_fgetxattr		228
-+#define __NR_listxattr		229
-+#define __NR_llistxattr		230
-+#define __NR_flistxattr		231
-+#define __NR_removexattr	232
-+#define __NR_lremovexattr	233
-+#define __NR_fremovexattr	234
-+#define __NR_futex		235
-+#define __NR_sendfile64		236
-+#define __NR_mincore		237
-+#define __NR_madvise		238
-+#define __NR_fcntl64		239
-+#define __NR_readahead		240
-+#define __NR_io_setup		241
-+#define __NR_io_destroy		242
-+#define __NR_io_getevents	243
-+#define __NR_io_submit		244
-+#define __NR_io_cancel		245
-+#define __NR_fadvise64		246
-+#define __NR_exit_group		247
-+#define __NR_lookup_dcookie	248
-+#define __NR_epoll_create	249
-+#define __NR_epoll_ctl		250
-+#define __NR_epoll_wait		251
-+#define __NR_remap_file_pages	252
-+#define __NR_set_tid_address	253
-+#define __NR_timer_create	254
-+#define __NR_timer_settime	255
-+#define __NR_timer_gettime	256
-+#define __NR_timer_getoverrun	257
-+#define __NR_timer_delete	258
-+#define __NR_clock_settime	259
-+#define __NR_clock_gettime	260
-+#define __NR_clock_getres	261
-+#define __NR_clock_nanosleep	262
-+#define __NR_statfs64		263
-+#define __NR_fstatfs64		264
-+#define __NR_tgkill		265
-+#define __NR_utimes		266
-+#define __NR_fadvise64_64	267
-+#define __NR_mbind		268
-+#define __NR_get_mempolicy	269
-+#define __NR_set_mempolicy	270
-+#define __NR_mq_open		271
-+#define __NR_mq_unlink		272
-+#define __NR_mq_timedsend	273
-+#define __NR_mq_timedreceive	274
-+#define __NR_mq_notify		275
-+#define __NR_mq_getsetattr	276
-+#define __NR_waitid		277
-+#define __NR_sys_setaltroot	278
-+#define __NR_add_key		279
-+#define __NR_request_key	280
-+#define __NR_keyctl		281
-+
-+#define NR_syscalls		282
-+
-+/* user-visible error numbers are in the range -1 - -122: see
-+   <asm-nios2nommu/errno.h> */
-+
-+#define __syscall_return(type, res) \
-+do { \
-+	if ((unsigned long)(res) >= (unsigned long)(-125)) { \
-+                                                                        \
-+                /* avoid using res which is declared to be in           \
-+                    register r2; errno might expand to a function       \
-+                    call and clobber it.                          */    \
-+                                                                        \
-+		int __err = -(res); \
-+		errno = __err; \
-+		res = -1; \
-+	} \
-+	return (type) (res); \
-+} while (0)
-+
-+#define _syscall0(type,name) \
-+type name(void) \
-+{ \
-+    long __res;                                             \
-+                                                            \
-+    __asm__ __volatile__ (                                  \
-+                                                            \
-+        "    \n\t"                                          \
-+                                                            \
-+        "    movi    r2,    %2\n\t"   /* TRAP_ID_SYSCALL */ \
-+        "    movi    r3,    %1\n\t"   /* __NR_##name     */ \
-+                                                            \
-+        "    trap\n\t"                                      \
-+        "    mov     %0,    r2\n\t"   /* syscall rtn     */ \
-+                                                            \
-+        "    \n\t"                                          \
-+                                                            \
-+        :   "=r" (__res)              /* %0              */ \
-+                                                            \
-+        :   "i" (__NR_##name)         /* %1              */ \
-+          , "i" (TRAP_ID_SYSCALL)     /* %2              */ \
-+                                                            \
-+        :   "r2"                      /* Clobbered       */ \
-+          , "r3"                      /* Clobbered       */ \
-+        );                                                  \
-+                                                            \
-+__syscall_return(type,__res); \
-+}
-+
-+//;dgt2;tmp;can we RELY on syscall1 arg a
-+//;dgt2;tmp; already being in r4 ?
-+#define _syscall1(type,name,atype,a) \
-+type name(atype a) \
-+{ \
-+    long __res;                                             \
-+                                                            \
-+    __asm__ __volatile__ (                                  \
-+                                                            \
-+        "    \n\t"                                          \
-+                                                            \
-+        "    movi    r2,    %2\n\t"   /* TRAP_ID_SYSCALL */ \
-+        "    movi    r3,    %1\n\t"   /* __NR_##name     */ \
-+        "    mov     r4,    %3\n\t"   /* (long) a        */ \
-+                                                            \
-+        "    trap\n\t"                                      \
-+        "    mov     %0,    r2\n\t"   /* syscall rtn     */ \
-+                                                            \
-+        "    \n\t"                                          \
-+                                                            \
-+        :   "=r" (__res)              /* %0              */ \
-+                                                            \
-+        :   "i" (__NR_##name)         /* %1              */ \
-+          , "i" (TRAP_ID_SYSCALL)     /* %2              */ \
-+          , "r" ((long) a)            /* %3              */ \
-+                                                            \
-+        :   "r2"                      /* Clobbered       */ \
-+          , "r3"                      /* Clobbered       */ \
-+          , "r4"                      /* Clobbered       */ \
-+        );                                                  \
-+                                                            \
-+__syscall_return(type,__res); \
-+}
-+
-+//;dgt2;tmp;can we RELY on syscall2 args a,b
-+//;dgt2;tmp; already being in r4,r5 ?
-+#define _syscall2(type,name,atype,a,btype,b) \
-+type name(atype a,btype b) \
-+{ \
-+    long __res;                                             \
-+                                                            \
-+    __asm__ __volatile__ (                                  \
-+                                                            \
-+        "    \n\t"                                          \
-+                                                            \
-+        "    movi    r2,    %2\n\t"   /* TRAP_ID_SYSCALL */ \
-+        "    movi    r3,    %1\n\t"   /* __NR_##name     */ \
-+        "    mov     r4,    %3\n\t"   /* (long) a        */ \
-+        "    mov     r5,    %4\n\t"   /* (long) b        */ \
-+                                                            \
-+        "    trap\n\t"                                      \
-+        "    mov     %0,    r2\n\t"   /* syscall rtn     */ \
-+                                                            \
-+        "    \n\t"                                          \
-+                                                            \
-+        :   "=r" (__res)              /* %0              */ \
-+                                                            \
-+        :   "i" (__NR_##name)         /* %1              */ \
-+          , "i" (TRAP_ID_SYSCALL)     /* %2              */ \
-+          , "r" ((long) a)            /* %3              */ \
-+          , "r" ((long) b)            /* %4              */ \
-+                                                            \
-+        :   "r2"                      /* Clobbered       */ \
-+          , "r3"                      /* Clobbered       */ \
-+          , "r4"                      /* Clobbered       */ \
-+          , "r5"                      /* Clobbered       */ \
-+        );                                                  \
-+                                                            \
-+__syscall_return(type,__res); \
-+}
-+
-+//;dgt2;tmp;can we RELY on syscall3 args a,b,c
-+//;dgt2;tmp; already being in r4,r5,r6 ?
-+#define _syscall3(type,name,atype,a,btype,b,ctype,c) \
-+type name(atype a,btype b,ctype c) \
-+{ \
-+    long __res;                                             \
-+                                                            \
-+    __asm__ __volatile__ (                                  \
-+                                                            \
-+        "    \n\t"                                          \
-+                                                            \
-+        "    movi    r2,    %2\n\t"   /* TRAP_ID_SYSCALL */ \
-+        "    movi    r3,    %1\n\t"   /* __NR_##name     */ \
-+        "    mov     r4,    %3\n\t"   /* (long) a        */ \
-+        "    mov     r5,    %4\n\t"   /* (long) b        */ \
-+        "    mov     r6,    %5\n\t"   /* (long) c        */ \
-+                                                            \
-+        "    trap\n\t"                                      \
-+        "    mov     %0,    r2\n\t"   /* syscall rtn     */ \
-+                                                            \
-+        "    \n\t"                                          \
-+                                                            \
-+        :   "=r" (__res)              /* %0              */ \
-+                                                            \
-+        :   "i" (__NR_##name)         /* %1              */ \
-+          , "i" (TRAP_ID_SYSCALL)     /* %2              */ \
-+          , "r" ((long) a)            /* %3              */ \
-+          , "r" ((long) b)            /* %4              */ \
-+          , "r" ((long) c)            /* %5              */ \
-+                                                            \
-+        :   "r2"                      /* Clobbered       */ \
-+          , "r3"                      /* Clobbered       */ \
-+          , "r4"                      /* Clobbered       */ \
-+          , "r5"                      /* Clobbered       */ \
-+          , "r6"                      /* Clobbered       */ \
-+        );                                                  \
-+                                                            \
-+__syscall_return(type,__res); \
-+}
-+
-+//;dgt2;tmp;can we RELY on syscall4 args a,b,c,d
-+//;dgt2;tmp; already being in r4,r5,r6,r7 ?
-+#define _syscall4(type,name,atype,a,btype,b,ctype,c,dtype,d) \
-+type name (atype a, btype b, ctype c, dtype d) \
-+{ \
-+    long __res;                                             \
-+                                                            \
-+    __asm__ __volatile__ (                                  \
-+                                                            \
-+        "    \n\t"                                          \
-+                                                            \
-+        "    movi    r2,    %2\n\t"   /* TRAP_ID_SYSCALL */ \
-+        "    movi    r3,    %1\n\t"   /* __NR_##name     */ \
-+        "    mov     r4,    %3\n\t"   /* (long) a        */ \
-+        "    mov     r5,    %4\n\t"   /* (long) b        */ \
-+        "    mov     r6,    %5\n\t"   /* (long) c        */ \
-+        "    mov     r7,    %6\n\t"   /* (long) d        */ \
-+                                                            \
-+        "    trap\n\t"                                      \
-+        "    mov     %0,    r2\n\t"   /* syscall rtn     */ \
-+                                                            \
-+        "    \n\t"                                          \
-+                                                            \
-+        :   "=r" (__res)              /* %0              */ \
-+                                                            \
-+        :   "i" (__NR_##name)         /* %1              */ \
-+          , "i" (TRAP_ID_SYSCALL)     /* %2              */ \
-+          , "r" ((long) a)            /* %3              */ \
-+          , "r" ((long) b)            /* %4              */ \
-+          , "r" ((long) c)            /* %5              */ \
-+          , "r" ((long) d)            /* %6              */ \
-+                                                            \
-+        :   "r2"                      /* Clobbered       */ \
-+          , "r3"                      /* Clobbered       */ \
-+          , "r4"                      /* Clobbered       */ \
-+          , "r5"                      /* Clobbered       */ \
-+          , "r6"                      /* Clobbered       */ \
-+          , "r7"                      /* Clobbered       */ \
-+        );                                                  \
-+                                                            \
-+__syscall_return(type,__res); \
-+}
-+
-+//;dgt2;tmp;can we RELY on syscall5 args a,b,c,d
-+//;dgt2;tmp; already being in r4,r5,r6,r7 ?
-+#define _syscall5(type,name,atype,a,btype,b,ctype,c,dtype,d,etype,e) \
-+type name (atype a,btype b,ctype c,dtype d,etype e) \
-+{ \
-+    long __res;                                             \
-+                                                            \
-+    __asm__ __volatile__ (                                  \
-+                                                            \
-+        "    \n\t"                                          \
-+                                                            \
-+        "    movi    r2,    %2\n\t"   /* TRAP_ID_SYSCALL */ \
-+        "    movi    r3,    %1\n\t"   /* __NR_##name     */ \
-+        "    mov     r4,    %3\n\t"   /* (long) a        */ \
-+        "    mov     r5,    %4\n\t"   /* (long) b        */ \
-+        "    mov     r6,    %5\n\t"   /* (long) c        */ \
-+        "    mov     r7,    %6\n\t"   /* (long) c        */ \
-+        "    mov     r8,    %7\n\t"   /* (long) e        */ \
-+                                                            \
-+        "    trap\n\t"                                      \
-+        "    mov     %0,    r2\n\t"   /* syscall rtn     */ \
-+                                                            \
-+        "    \n\t"                                          \
-+                                                            \
-+        :   "=r" (__res)              /* %0              */ \
-+                                                            \
-+        :   "i" (__NR_##name)         /* %1              */ \
-+          , "i" (TRAP_ID_SYSCALL)     /* %2              */ \
-+          , "r" ((long) a)            /* %3              */ \
-+          , "r" ((long) b)            /* %4              */ \
-+          , "r" ((long) c)            /* %5              */ \
-+          , "r" ((long) d)            /* %6              */ \
-+          , "r" ((long) e)            /* %7              */ \
-+                                                            \
-+        :   "r2"                      /* Clobbered       */ \
-+          , "r3"                      /* Clobbered       */ \
-+          , "r4"                      /* Clobbered       */ \
-+          , "r5"                      /* Clobbered       */ \
-+          , "r6"                      /* Clobbered       */ \
-+          , "r7"                      /* Clobbered       */ \
-+          , "r8"                      /* Clobbered       */ \
-+        );                                                  \
-+                                                            \
-+__syscall_return(type,__res); \
-+}
-+
-+//;dgt2;tmp;can we RELY on syscall6 args a,b,c,d
-+//;dgt2;tmp; already being in r4,r5,r6,r7 ?
-+#define _syscall6(type,name,atype,a,btype,b,ctype,c,dtype,d,etype,e,ftype,f) \
-+type name (atype a,btype b,ctype c,dtype d,etype e,ftype f) \
-+{ \
-+    long __res;                                             \
-+                                                            \
-+    __asm__ __volatile__ (                                  \
-+                                                            \
-+        "    \n\t"                                          \
-+                                                            \
-+        "    movi    r2,    %2\n\t"   /* TRAP_ID_SYSCALL */ \
-+        "    movi    r3,    %1\n\t"   /* __NR_##name     */ \
-+        "    mov     r4,    %3\n\t"   /* (long) a        */ \
-+        "    mov     r5,    %4\n\t"   /* (long) b        */ \
-+        "    mov     r6,    %5\n\t"   /* (long) c        */ \
-+        "    mov     r7,    %6\n\t"   /* (long) c        */ \
-+        "    mov     r8,    %7\n\t"   /* (long) e        */ \
-+        "    mov     r9,    %8\n\t"   /* (long) f        */ \
-+                                                            \
-+        "    trap\n\t"                                      \
-+        "    mov     %0,    r2\n\t"   /* syscall rtn     */ \
-+                                                            \
-+        "    \n\t"                                          \
-+                                                            \
-+        :   "=r" (__res)              /* %0              */ \
-+                                                            \
-+        :   "i" (__NR_##name)         /* %1              */ \
-+          , "i" (TRAP_ID_SYSCALL)     /* %2              */ \
-+          , "r" ((long) a)            /* %3              */ \
-+          , "r" ((long) b)            /* %4              */ \
-+          , "r" ((long) c)            /* %5              */ \
-+          , "r" ((long) d)            /* %6              */ \
-+          , "r" ((long) e)            /* %7              */ \
-+          , "r" ((long) f)            /* %8              */ \
-+                                                            \
-+        :   "r2"                      /* Clobbered       */ \
-+          , "r3"                      /* Clobbered       */ \
-+          , "r4"                      /* Clobbered       */ \
-+          , "r5"                      /* Clobbered       */ \
-+          , "r6"                      /* Clobbered       */ \
-+          , "r7"                      /* Clobbered       */ \
-+          , "r8"                      /* Clobbered       */ \
-+          , "r9"                      /* Clobbered       */ \
-+        );                                                  \
-+                                                            \
-+__syscall_return(type,__res); \
-+}
-+
-+#ifdef __KERNEL__
-+#define __ARCH_WANT_IPC_PARSE_VERSION
-+#define __ARCH_WANT_OLD_READDIR
-+#define __ARCH_WANT_OLD_STAT
-+#define __ARCH_WANT_STAT64
-+#define __ARCH_WANT_SYS_ALARM
-+#define __ARCH_WANT_SYS_GETHOSTNAME
-+#define __ARCH_WANT_SYS_PAUSE
-+#define __ARCH_WANT_SYS_SGETMASK
-+#define __ARCH_WANT_SYS_SIGNAL
-+#define __ARCH_WANT_SYS_TIME
-+#define __ARCH_WANT_SYS_UTIME
-+#define __ARCH_WANT_SYS_WAITPID
-+#define __ARCH_WANT_SYS_SOCKETCALL
-+#define __ARCH_WANT_SYS_FADVISE64
-+#define __ARCH_WANT_SYS_GETPGRP
-+#define __ARCH_WANT_SYS_LLSEEK
-+#define __ARCH_WANT_SYS_NICE
-+#define __ARCH_WANT_SYS_OLD_GETRLIMIT
-+#define __ARCH_WANT_SYS_OLDUMOUNT
-+#define __ARCH_WANT_SYS_SIGPENDING
-+#define __ARCH_WANT_SYS_SIGPROCMASK
-+#define __ARCH_WANT_SYS_RT_SIGACTION
-+#endif
-+
-+#ifdef __KERNEL_SYSCALLS__
-+
-+/*
-+ * we need this inline - forking from kernel space will result
-+ * in NO COPY ON WRITE (!!!), until an execve is executed. This
-+ * is no problem, but for the stack. This is handled by not letting
-+ * main() use the stack at all after fork(). Thus, no function
-+ * calls - which means inline code for fork too, as otherwise we
-+ * would use the stack upon exit from 'fork()'.
-+ *
-+ * Actually only pause and fork are needed inline, so that there
-+ * won't be any messing with the stack from main(), but we define
-+ * some others too.
-+ */
-+#define __NR__exit __NR_exit
-+static inline _syscall0(int,pause)
-+static inline _syscall0(int,sync)
-+static inline _syscall0(pid_t,setsid)
-+static inline _syscall3(int,write,int,fd,const char *,buf,off_t,count)
-+static inline _syscall3(int,read,int,fd,char *,buf,off_t,count)
-+static inline _syscall3(off_t,lseek,int,fd,off_t,offset,int,count)
-+static inline _syscall1(int,dup,int,fd)
-+static inline _syscall3(int,execve,const char *,file,char **,argv,char **,envp)
-+static inline _syscall3(int,open,const char *,file,int,flag,int,mode)
-+static inline _syscall1(int,close,int,fd)
-+static inline _syscall1(int,_exit,int,exitcode)
-+static inline _syscall3(pid_t,waitpid,pid_t,pid,int *,wait_stat,int,options)
-+static inline _syscall1(int,delete_module,const char *,name)
-+
-+static inline pid_t wait(int * wait_stat)
-+{
-+	return waitpid(-1,wait_stat,0);
-+}
-+
-+#endif
-+
-+/*
-+ * "Conditional" syscalls
-+ *
-+ * What we want is __attribute__((weak,alias("sys_ni_syscall"))),
-+ * but it doesn't work on all toolchains, so we just do it by hand
-+ */
-+#define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall");
-+
-+#endif /* _ASM_NIOS_UNISTD_H_ */
---- linux/include/asm-nios2nommu/user.h
-+++ linux/include/asm-nios2nommu/user.h
-@@ -0,0 +1,112 @@
-+#ifndef _NIOS2NOMMU_USER_H
-+#define _NIOS2NOMMU_USER_H
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/user.h
-+ *
-+ * Derived from M68knommu
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+#include <asm/page.h>
-+
-+/* Core file format: The core file is written in such a way that gdb
-+   can understand it and provide useful information to the user (under
-+   linux we use the 'trad-core' bfd).  There are quite a number of
-+   obstacles to being able to view the contents of the floating point
-+   registers, and until these are solved you will not be able to view the
-+   contents of them.  Actually, you can read in the core file and look at
-+   the contents of the user struct to find out what the floating point
-+   registers contain.
-+   The actual file contents are as follows:
-+   UPAGE: 1 page consisting of a user struct that tells gdb what is present
-+   in the file.  Directly after this is a copy of the task_struct, which
-+   is currently not used by gdb, but it may come in useful at some point.
-+   All of the registers are stored as part of the upage.  The upage should
-+   always be only one page.
-+   DATA: The data area is stored.  We use current->end_text to
-+   current->brk to pick up all of the user variables, plus any memory
-+   that may have been malloced.  No attempt is made to determine if a page
-+   is demand-zero or if a page is totally unused, we just cover the entire
-+   range.  All of the addresses are rounded in such a way that an integral
-+   number of pages is written.
-+   STACK: We need the stack information in order to get a meaningful
-+   backtrace.  We need to write the data from (esp) to
-+   current->start_stack, so we round each of these off in order to be able
-+   to write an integer number of pages.
-+   The minimum core file size is 3 pages, or 12288 bytes.
-+*/
-+
-+struct user_m68kfp_struct {
-+	unsigned long  fpregs[8*3];	/* fp0-fp7 registers */
-+	unsigned long  fpcntl[3];	/* fp control regs */
-+};
-+
-+/* This is needs more work, probably should look like gdb useage */
-+struct user_regs_struct {
-+	long r1,r2,r3,r4,r5,r6,r7,r8;
-+	long r9,r10,r11,r12,r13,r14,r15;
-+	long r16,r17,r18,r19,r20,r21,r22,r23;
-+	long gp;
-+	long sp;
-+	long ra;
-+	long fp;
-+	long orig_r2;
-+	long estatus;
-+	long status_extension;
-+	long ea;
-+};
-+
-+	
-+/* When the kernel dumps core, it starts by dumping the user struct -
-+   this will be used by gdb to figure out where the data and stack segments
-+   are within the file, and what virtual addresses to use. */
-+struct user{
-+/* We start with the registers, to mimic the way that "memory" is returned
-+   from the ptrace(3,...) function.  */
-+  struct user_regs_struct regs;	/* Where the registers are actually stored */
-+/* ptrace does not yet supply these.  Someday.... */
-+  int u_fpvalid;		/* True if math co-processor being used. */
-+                                /* for this mess. Not yet used. */
-+  struct user_m68kfp_struct m68kfp; /* Math Co-processor registers. */
-+/* The rest of this junk is to help gdb figure out what goes where */
-+  unsigned long int u_tsize;	/* Text segment size (pages). */
-+  unsigned long int u_dsize;	/* Data segment size (pages). */
-+  unsigned long int u_ssize;	/* Stack segment size (pages). */
-+  unsigned long start_code;     /* Starting virtual address of text. */
-+  unsigned long start_stack;	/* Starting virtual address of stack area.
-+				   This is actually the bottom of the stack,
-+				   the top of the stack is always found in the
-+				   esp register.  */
-+  long int signal;     		/* Signal that caused the core dump. */
-+  int reserved;			/* No longer used */
-+  struct user_regs_struct *u_ar0;
-+				/* Used by gdb to help find the values for */
-+				/* the registers. */
-+  struct user_m68kfp_struct* u_fpstate;	/* Math Co-processor pointer. */
-+  unsigned long magic;		/* To uniquely identify a core file */
-+  char u_comm[32];		/* User command that was responsible */
-+};
-+#define NBPG PAGE_SIZE
-+#define UPAGES 1
-+#define HOST_TEXT_START_ADDR (u.start_code)
-+#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
-+
-+#endif
---- linux/include/asm-nios2nommu/virtconvert.h
-+++ linux/include/asm-nios2nommu/virtconvert.h
-@@ -0,0 +1,47 @@
-+#ifndef __NIOS_VIRT_CONVERT__
-+#define __NIOS_VIRT_CONVERT__
-+
-+/*--------------------------------------------------------------------
-+ *
-+ * include/asm-nios2nommu/virtconvert.h
-+ *
-+ * Derived from various works, Alpha, ix86, M68K, Sparc, ...et al
-+ *
-+ * Copyright (C) 2004   Microtronix Datacom Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ *
-+ * Jan/20/2004		dgt	    NiosII
-+ *
-+ ---------------------------------------------------------------------*/
-+
-+
-+/*
-+ * Macros used for converting between virtual and physical mappings.
-+ */
-+
-+#ifdef __KERNEL__
-+
-+// #include <linux/config.h>
-+#include <asm/setup.h>
-+#include <asm/page.h>
-+
-+#define mm_ptov(vaddr)		((void *) (vaddr))
-+#define mm_vtop(vaddr)		((unsigned long) (vaddr))
-+#define phys_to_virt(vaddr)	((void *) (vaddr))
-+#define virt_to_phys(vaddr)	((unsigned long) (vaddr))
-+
-+#define virt_to_bus virt_to_phys
-+#define bus_to_virt phys_to_virt
-+
-+#endif /*__KERNEL__ */
-+#endif /*__NIOS_VIRT_CONVERT__*/