toolchain/kernel-headers: remove ancient (and unused) patches
authorPeter Korsgaard <jacmet@sunsite.dk>
Mon, 26 Jan 2009 21:02:25 +0000 (21:02 -0000)
committerPeter Korsgaard <jacmet@sunsite.dk>
Mon, 26 Jan 2009 21:02:25 +0000 (21:02 -0000)
toolchain/kernel-headers/linux-libc-headers-2.6.11-nios2nommu.patch.conditional [deleted file]
toolchain/kernel-headers/linux-libc-headers-2.6.11.0-mips-nptl.patch [deleted file]
toolchain/kernel-headers/linux-libc-headers-2.6.11.0.patch [deleted file]
toolchain/kernel-headers/linux-libc-headers-2.6.12.0-arm-eabi.patch [deleted file]
toolchain/kernel-headers/linux-libc-headers-2.6.12.0-config-base-small.patch [deleted file]
toolchain/kernel-headers/linux-libc-headers-2.6.12.0-i2c_msg.patch [deleted file]
toolchain/kernel-headers/linux-libc-headers-2.6.12.0-mips-nptl.patch [deleted file]
toolchain/kernel-headers/linux-libc-headers-2.6.8-cleanup.patch [deleted file]
toolchain/kernel-headers/linux-libc-headers-2.6.9-nios2nommu.patch.conditional [deleted file]

diff --git a/toolchain/kernel-headers/linux-libc-headers-2.6.11-nios2nommu.patch.conditional b/toolchain/kernel-headers/linux-libc-headers-2.6.11-nios2nommu.patch.conditional
deleted file mode 100644 (file)
index b8c3fff..0000000
+++ /dev/null
@@ -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__*/
diff --git a/toolchain/kernel-headers/linux-libc-headers-2.6.11.0-mips-nptl.patch b/toolchain/kernel-headers/linux-libc-headers-2.6.11.0-mips-nptl.patch
deleted file mode 100644 (file)
index 72571b0..0000000
+++ /dev/null
@@ -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__
diff --git a/toolchain/kernel-headers/linux-libc-headers-2.6.11.0.patch b/toolchain/kernel-headers/linux-libc-headers-2.6.11.0.patch
deleted file mode 100644 (file)
index f528b8b..0000000
+++ /dev/null
@@ -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
diff --git a/toolchain/kernel-headers/linux-libc-headers-2.6.12.0-arm-eabi.patch b/toolchain/kernel-headers/linux-libc-headers-2.6.12.0-arm-eabi.patch
deleted file mode 100644 (file)
index dcbd21b..0000000
+++ /dev/null
@@ -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>
diff --git a/toolchain/kernel-headers/linux-libc-headers-2.6.12.0-config-base-small.patch b/toolchain/kernel-headers/linux-libc-headers-2.6.12.0-config-base-small.patch
deleted file mode 100644 (file)
index b6bbfd6..0000000
+++ /dev/null
@@ -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;
diff --git a/toolchain/kernel-headers/linux-libc-headers-2.6.12.0-i2c_msg.patch b/toolchain/kernel-headers/linux-libc-headers-2.6.12.0-i2c_msg.patch
deleted file mode 100644 (file)
index 2c1eac3..0000000
+++ /dev/null
@@ -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 */
diff --git a/toolchain/kernel-headers/linux-libc-headers-2.6.12.0-mips-nptl.patch b/toolchain/kernel-headers/linux-libc-headers-2.6.12.0-mips-nptl.patch
deleted file mode 100644 (file)
index 5f7167b..0000000
+++ /dev/null
@@ -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__
diff --git a/toolchain/kernel-headers/linux-libc-headers-2.6.8-cleanup.patch b/toolchain/kernel-headers/linux-libc-headers-2.6.8-cleanup.patch
deleted file mode 100644 (file)
index 44461d1..0000000
+++ /dev/null
@@ -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);
diff --git a/toolchain/kernel-headers/linux-libc-headers-2.6.9-nios2nommu.patch.conditional b/toolchain/kernel-headers/linux-libc-headers-2.6.9-nios2nommu.patch.conditional
deleted file mode 100644 (file)
index b828b3b..0000000
+++ /dev/null
@@ -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__*/