[SM-Commit] GIT changes to master grimoire by Thomas Orgis (908bdacf6cdddaae9d1d138aa2e5e175132ab7c5)

Thomas Orgis scm at mail.sourcemage.org
Thu Jan 4 12:48:55 EST 2007


GIT changes to master grimoire by Thomas Orgis <sobukus at sourcemage.org>:

 ChangeLog                                             |    4 
 archive/apt/DETAILS                                   |    4 
 archive/apt/HISTORY                                   |    3 
 archive/dpkg/DEPENDS                                  |    2 
 archive/dpkg/DETAILS                                  |    4 
 archive/dpkg/HISTORY                                  |    3 
 disk/aboot/BUILD                                      |    1 
 disk/aboot/DETAILS                                    |    1 
 disk/aboot/FINAL                                      |    4 
 disk/aboot/HISTORY                                    |    8 
 disk/aboot/INSTALL                                    |    4 
 disk/aboot/POST_RESURRECT                             |    4 
 disk/aboot/PRE_BUILD                                  |    2 
 disk/aboot/aboot-0.9b-kernel26_gcc4_fixes-2.patch     | 1579 --------------
 disk/aboot/aboot-0.9b-kernel26_gcc4_fixes-2.patch.bz2 |binary
 disk/aboot/aboot.html                                 | 1951 ------------------
 doc/po4a/BUILD                                        |    2 
 doc/po4a/DEPENDS                                      |    6 
 doc/po4a/DETAILS                                      |   14 
 doc/po4a/HISTORY                                      |    2 
 doc/sp/DEPENDS                                        |    1 
 kernels/lirc/DEPENDS                                  |    1 
 net/spfs/PRE_BUILD                                    |   11 
 utils/coreutils/coreutils-6.4_9p_mv_EPERM.patch       |   11 
 24 files changed, 52 insertions(+), 3570 deletions(-)

New commits:
commit 908bdacf6cdddaae9d1d138aa2e5e175132ab7c5
Author: Thomas Orgis <sobukus at sourcemage.org>
Commit: Thomas Orgis <sobukus at sourcemage.org>

    new spells: aboot and po4a

commit 889843e922cf663ec6ec21795cabe7f02f0eb9ce
Author: Thomas Orgis <sobukus at sourcemage.org>
Commit: Thomas Orgis <sobukus at sourcemage.org>

    adding the missing DEPENDS file for update

commit 50ecddffcdd2a9d60cb3122d3a58a52dd072d752
Author: Thomas Orgis <sobukus at sourcemage.org>
Commit: Thomas Orgis <sobukus at sourcemage.org>

    aboot: remove UPDATED

commit bc8894f5f751627af2b05cffe8bc63e7c5899154
Author: Thomas Orgis <sobukus at sourcemage.org>
Commit: Thomas Orgis <sobukus at sourcemage.org>

    dpkg: update to 1.13.24

commit bb8998f9ab8d340924a7a3aba1ecac796ad6c266
Author: Thomas Orgis <sobukus at sourcemage.org>
Commit: Thomas Orgis <sobukus at sourcemage.org>

    aboot: shaping up

commit 04b107c9a67f379e3918ab473d05a389b1f3227c
Author: Thomas Orgis <sobukus at sourcemage.org>
Commit: Thomas Orgis <sobukus at sourcemage.org>

    apt: updated to 0.6.46.4

diff --git a/ChangeLog b/ChangeLog
index 104774c..fbe0403 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2007-01-04 Thomas Orgis <sobukus at sourcemage.org>
+	* doc/po4a: new spell, gettext for documentation...
+	* disk/aboot: new spell, booting on Alpha/SRM
+
 2007-01-02 George Sherwood <george at beernabeer.com>
 	* python-devel/numeric: New spell for pygames
 
diff --git a/archive/apt/DETAILS b/archive/apt/DETAILS
index c009f02..6987153 100755
--- a/archive/apt/DETAILS
+++ b/archive/apt/DETAILS
@@ -1,9 +1,9 @@
            SPELL=apt
-         VERSION=0.6.43.1
+         VERSION=0.6.46.4
           SOURCE=${SPELL}_${VERSION}.tar.gz
 SOURCE_DIRECTORY=${BUILD_DIRECTORY}/${SPELL}-${VERSION}
       SOURCE_URL=http://ftp.debian.org/debian/pool/main/a/${SPELL}/${SOURCE}
-     SOURCE_HASH=sha512:deff76db2266731a75c65d64bb586a4b97e5dd6bca3a7e5c398698be7449c15cde49d96a188dd837d024a6a584dd9661c2de13798a039e732de5f076cda4932d 
+     SOURCE_HASH=sha512:8c841cc1a9b53addd9df01651b3ba219d125ace50fa8021d058418bfc8a8c03e13d91942d4e69a251a2a2db13ed48b97c68da883d954822957fcd4df407ee169
         WEB_SITE=http://packages.debian.org/testing/admin/apt
          ENTERED=20030725
          UPDATED=20060107
diff --git a/archive/apt/HISTORY b/archive/apt/HISTORY
index 8d049a6..7a1ab38 100644
--- a/archive/apt/HISTORY
+++ b/archive/apt/HISTORY
@@ -1,3 +1,6 @@
+2007-01-04 Thomas Orgis <sobukus at sourcemage.org>
+	* DETAILS: updated to 0.6.46.4
+
 2006-03-12 Karsten Behrmann <BearPerson at sourcemage.org>
 	* DETAILS: (automated) Add KEYWORDS
 
diff --git a/archive/dpkg/DEPENDS b/archive/dpkg/DEPENDS
new file mode 100755
index 0000000..279f921
--- /dev/null
+++ b/archive/dpkg/DEPENDS
@@ -0,0 +1,2 @@
+# new since 1.13.24, for docs
+depends po4a
diff --git a/archive/dpkg/DETAILS b/archive/dpkg/DETAILS
index 71fe3f5..cb032ce 100755
--- a/archive/dpkg/DETAILS
+++ b/archive/dpkg/DETAILS
@@ -1,9 +1,9 @@
            SPELL=dpkg
-         VERSION=1.13.13
+         VERSION=1.13.24
           SOURCE=${SPELL}_${VERSION}.tar.gz
 SOURCE_DIRECTORY=${BUILD_DIRECTORY}/${SPELL}-${VERSION}
       SOURCE_URL=http://ftp.debian.org/debian/pool/main/d/${SPELL}/${SOURCE}
-     SOURCE_HASH=sha512:208d56b37c924e7433b45710ba4aed1454bd54f70470fbb7c7de3e64d1421d8638925e54a2090f0a30ac0a631814f5921dc9ef720251f74d8cb8a0d546adc714
+     SOURCE_HASH=sha512:898b3c822abdbd2b5fbe471c6766f9ad2912f06658699fd606fb66eebf20bb8499f24c51de1b874d73bbae15b342b42806dcd7295d06792c655c2fea5e5abadd
         WEB_SITE=http://packages.debian.org/testing/admin/dpkg
          ENTERED=20030725
          UPDATED=20060107
diff --git a/archive/dpkg/HISTORY b/archive/dpkg/HISTORY
index c639f03..3921836 100644
--- a/archive/dpkg/HISTORY
+++ b/archive/dpkg/HISTORY
@@ -1,3 +1,6 @@
+2007-01-04 Thomas Orgis <sobukus at sourcemage.org>
+	* DETAILS, DEPENDS: update to 1.13.24
+
 2006-06-23 David Kowis <dkowis at shlrm.org>
 	* DETAILS: removed the ` because it kept gaze what from working
 
diff --git a/disk/aboot/BUILD b/disk/aboot/BUILD
index f8acf95..8f58e6d 100755
--- a/disk/aboot/BUILD
+++ b/disk/aboot/BUILD
@@ -1,2 +1 @@
-cd "$SOURCE_DIRECTORY" &&
 make
diff --git a/disk/aboot/DETAILS b/disk/aboot/DETAILS
index 49bb6ac..e336793 100755
--- a/disk/aboot/DETAILS
+++ b/disk/aboot/DETAILS
@@ -8,7 +8,6 @@
 SOURCE_DIRECTORY=${BUILD_DIRECTORY}/${SPELL}-${VERSION}
         WEB_SITE=http://www.alphalinux.org/faq/aboot.html
          ENTERED=20060501
-         UPDATED=20060501
       LICENSE[0]=GPL
        BUILD_API=2
            SHORT="The boot loader for Alpha SRM"
diff --git a/disk/aboot/FINAL b/disk/aboot/FINAL
deleted file mode 100755
index a5750ca..0000000
--- a/disk/aboot/FINAL
+++ /dev/null
@@ -1,4 +0,0 @@
-if ! test -e "$INSTALL_ROOT/etc/aboot.conf"
-then
-  cp -v "$SCRIPT_DIRECTORY/aboot.conf" "$INSTALL_ROOT/etc"
-fi
diff --git a/disk/aboot/HISTORY b/disk/aboot/HISTORY
index fda7e00..d91524f 100644
--- a/disk/aboot/HISTORY
+++ b/disk/aboot/HISTORY
@@ -1,3 +1,11 @@
+2007-01-04 Thomas Orgis <sobukus at sourcemage.org>
+	* -POST_RESURRECT,-FINAL,INSTALL: aboot.conf is a config file
+	* aboot-0.9b-kernel26_gcc4_fixes-2.patch[.bz2], -aboot.html,
+	  PRE_BUILD: compress the large patch, remove faq html - it's in
+	  source, too
+	* BUILD: do not need to cd
+	* DETAILS: remove UPDATED
+
 2006-05-01 Thomas Orgis <thomas at orgis.org>
 	* aboot-0.9b-kernel26_gcc4_fixes-2.patch, aboot.conf, aboot.html
 	  aboot-noev4.diff, BUILD, DETAILS, FINAL, INSTALL, POST_RESURRECT
diff --git a/disk/aboot/INSTALL b/disk/aboot/INSTALL
index 94c8873..45c3455 100755
--- a/disk/aboot/INSTALL
+++ b/disk/aboot/INSTALL
@@ -1,2 +1,2 @@
-make root="$INSTALL_ROOT" mandir="$INSTALL_ROOT/usr/share/man" bootdir="$INSTALL_ROOT/boot" bindir="$INSTALL_ROOT/sbin" install
-
+make root="$INSTALL_ROOT" mandir="$INSTALL_ROOT/usr/share/man" bootdir="$INSTALL_ROOT/boot" bindir="$INSTALL_ROOT/sbin" install &&
+install_config_file "$SCRIPT_DIRECTORY/aboot.conf" "$INSTALL_ROOT/etc/aboot.conf"
diff --git a/disk/aboot/POST_RESURRECT b/disk/aboot/POST_RESURRECT
deleted file mode 100755
index a5750ca..0000000
--- a/disk/aboot/POST_RESURRECT
+++ /dev/null
@@ -1,4 +0,0 @@
-if ! test -e "$INSTALL_ROOT/etc/aboot.conf"
-then
-  cp -v "$SCRIPT_DIRECTORY/aboot.conf" "$INSTALL_ROOT/etc"
-fi
diff --git a/disk/aboot/PRE_BUILD b/disk/aboot/PRE_BUILD
index a43ab97..9bdeee9 100755
--- a/disk/aboot/PRE_BUILD
+++ b/disk/aboot/PRE_BUILD
@@ -1,4 +1,4 @@
 default_pre_build &&
 cd "$SOURCE_DIRECTORY" &&
-patch -Np1 < "$SCRIPT_DIRECTORY"/aboot-0.9b-kernel26_gcc4_fixes-2.patch &&
+bzcat "$SCRIPT_DIRECTORY"/aboot-0.9b-kernel26_gcc4_fixes-2.patch.bz2 | patch -Np1 &&
 patch -Np1 < "$SCRIPT_DIRECTORY"/aboot-noev4.diff
diff --git a/disk/aboot/aboot-0.9b-kernel26_gcc4_fixes-2.patch b/disk/aboot/aboot-0.9b-kernel26_gcc4_fixes-2.patch
deleted file mode 100644
index 3b2787a..0000000
--- a/disk/aboot/aboot-0.9b-kernel26_gcc4_fixes-2.patch
+++ /dev/null
@@ -1,1579 +0,0 @@
-Submitted By: Joe Ciccone <joeciccone at crazyeyesoft.com
-Date: 2005-09-16
-Initial Package Version: 0.9b
-Upstream Status: NONE
-Origin: Joe Ciccone
-Description: This patch fixes compilation issues with aboot-0.9b.
-	This patch creates kernel headers that the makefile would
-	normaly take out of the kernel source, which is not desired.
-
-diff -Naur aboot-0.9b.orig/cons.c aboot-0.9b/cons.c
---- aboot-0.9b.orig/cons.c	2006-01-16 14:00:09.000000000 +0000
-+++ aboot-0.9b/cons.c	2006-01-16 14:04:02.000000000 +0000
-@@ -12,7 +12,7 @@
- #include <utils.h>
- 
- long cons_dev;			/* console device */
--extern long int dispatch();	/* Need the full 64 bit return here...*/
-+long dispatch(long proc, ...);	/* Need the full 64 bit return here...*/
- 
- long
- cons_puts(const char *str, long len)
-diff -Naur aboot-0.9b.orig/disk.c aboot-0.9b/disk.c
---- aboot-0.9b.orig/disk.c	2006-01-16 14:00:09.000000000 +0000
-+++ aboot-0.9b/disk.c	2006-01-16 14:04:26.000000000 +0000
-@@ -480,9 +480,7 @@
- 				} else {
- 					*d++ = *p;
- 				}
--				break;
--
--			      default:
-+				break;			
- 			}
- 			p++;
- 		}
-diff -Naur aboot-0.9b.orig/include/asm/auxvec.h aboot-0.9b/include/asm/auxvec.h
---- aboot-0.9b.orig/include/asm/auxvec.h	1970-01-01 00:00:00.000000000 +0000
-+++ aboot-0.9b/include/asm/auxvec.h	2006-01-16 14:00:50.000000000 +0000
-@@ -0,0 +1,24 @@
-+#ifndef __ASM_ALPHA_AUXVEC_H
-+#define __ASM_ALPHA_AUXVEC_H
-+
-+/* Reserve these numbers for any future use of a VDSO.  */
-+#if 0
-+#define AT_SYSINFO		32
-+#define AT_SYSINFO_EHDR		33
-+#endif
-+
-+/* More complete cache descriptions than AT_[DIU]CACHEBSIZE.  If the
-+   value is -1, then the cache doesn't exist.  Otherwise:
-+
-+      bit 0-3:	  Cache set-associativity; 0 means fully associative.
-+      bit 4-7:	  Log2 of cacheline size.
-+      bit 8-31:	  Size of the entire cache >> 8.
-+      bit 32-63:  Reserved.
-+*/
-+
-+#define AT_L1I_CACHESHAPE	34
-+#define AT_L1D_CACHESHAPE	35
-+#define AT_L2_CACHESHAPE	36
-+#define AT_L3_CACHESHAPE	37
-+
-+#endif /* __ASM_ALPHA_AUXVEC_H */
-diff -Naur aboot-0.9b.orig/include/asm/barrier.h aboot-0.9b/include/asm/barrier.h
---- aboot-0.9b.orig/include/asm/barrier.h	1970-01-01 00:00:00.000000000 +0000
-+++ aboot-0.9b/include/asm/barrier.h	2006-01-16 14:00:50.000000000 +0000
-@@ -0,0 +1,34 @@
-+#ifndef __BARRIER_H
-+#define __BARRIER_H
-+
-+#define mb() \
-+__asm__ __volatile__("mb": : :"memory")
-+
-+#define rmb() \
-+__asm__ __volatile__("mb": : :"memory")
-+
-+#define wmb() \
-+__asm__ __volatile__("wmb": : :"memory")
-+
-+#define read_barrier_depends() \
-+__asm__ __volatile__("mb": : :"memory")
-+
-+#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()	barrier()
-+#endif
-+
-+#define set_mb(var, value) \
-+do { var = value; mb(); } while (0)
-+
-+#define set_wmb(var, value) \
-+do { var = value; wmb(); } while (0)
-+
-+#endif		/* __BARRIER_H */
-diff -Naur aboot-0.9b.orig/include/asm/page.h aboot-0.9b/include/asm/page.h
---- aboot-0.9b.orig/include/asm/page.h	1970-01-01 00:00:00.000000000 +0000
-+++ aboot-0.9b/include/asm/page.h	2006-01-16 14:00:50.000000000 +0000
-@@ -0,0 +1,103 @@
-+#ifndef _ALPHA_PAGE_H
-+#define _ALPHA_PAGE_H
-+
-+#include <linux/config.h>
-+#include <asm/pal.h>
-+
-+/* PAGE_SHIFT determines the page size */
-+#define PAGE_SHIFT	13
-+#define PAGE_SIZE	(1UL << PAGE_SHIFT)
-+#define PAGE_MASK	(~(PAGE_SIZE-1))
-+
-+#ifdef __KERNEL__
-+
-+#ifndef __ASSEMBLY__
-+
-+#define STRICT_MM_TYPECHECKS
-+
-+extern void clear_page(void *page);
-+#define clear_user_page(page, vaddr, pg)	clear_page(page)
-+
-+#define alloc_zeroed_user_highpage(vma, vaddr) alloc_page_vma(GFP_HIGHUSER | __GFP_ZERO, vma, vmaddr)
-+#define __HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE
-+
-+extern void copy_page(void * _to, void * _from);
-+#define copy_user_page(to, from, vaddr, pg)	copy_page(to, from)
-+
-+#ifdef STRICT_MM_TYPECHECKS
-+/*
-+ * These are used to make use of C type-checking..
-+ */
-+typedef struct { unsigned long pte; } pte_t;
-+typedef struct { unsigned long pmd; } 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)
-+#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) } )
-+
-+#else
-+/*
-+ * .. while these make it easier on the compiler
-+ */
-+typedef unsigned long pte_t;
-+typedef unsigned long pmd_t;
-+typedef unsigned long pgd_t;
-+typedef unsigned long pgprot_t;
-+
-+#define pte_val(x)	(x)
-+#define pmd_val(x)	(x)
-+#define pgd_val(x)	(x)
-+#define pgprot_val(x)	(x)
-+
-+#define __pte(x)	(x)
-+#define __pgd(x)	(x)
-+#define __pgprot(x)	(x)
-+
-+#endif /* STRICT_MM_TYPECHECKS */
-+
-+#ifdef USE_48_BIT_KSEG
-+#define PAGE_OFFSET		0xffff800000000000UL
-+#else
-+#define PAGE_OFFSET		0xfffffc0000000000UL
-+#endif
-+
-+#else
-+
-+#ifdef USE_48_BIT_KSEG
-+#define PAGE_OFFSET		0xffff800000000000
-+#else
-+#define PAGE_OFFSET		0xfffffc0000000000
-+#endif
-+
-+#endif /* !__ASSEMBLY__ */
-+
-+/* to align the pointer to the (next) page boundary */
-+#define PAGE_ALIGN(addr)	(((addr)+PAGE_SIZE-1)&PAGE_MASK)
-+
-+#define __pa(x)			((unsigned long) (x) - PAGE_OFFSET)
-+#define __va(x)			((void *)((unsigned long) (x) + PAGE_OFFSET))
-+#ifndef CONFIG_DISCONTIGMEM
-+#define pfn_to_page(pfn)	(mem_map + (pfn))
-+#define page_to_pfn(page)	((unsigned long)((page) - mem_map))
-+#define virt_to_page(kaddr)	pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
-+
-+#define pfn_valid(pfn)		((pfn) < max_mapnr)
-+#define virt_addr_valid(kaddr)	pfn_valid(__pa(kaddr) >> PAGE_SHIFT)
-+#endif /* CONFIG_DISCONTIGMEM */
-+
-+#define VM_DATA_DEFAULT_FLAGS		(VM_READ | VM_WRITE | VM_EXEC | \
-+					 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
-+
-+#endif /* __KERNEL__ */
-+
-+#include <asm-generic/page.h>
-+
-+#endif /* _ALPHA_PAGE_H */
-diff -Naur aboot-0.9b.orig/include/asm/string.h aboot-0.9b/include/asm/string.h
---- aboot-0.9b.orig/include/asm/string.h	1970-01-01 00:00:00.000000000 +0000
-+++ aboot-0.9b/include/asm/string.h	2006-01-16 14:00:50.000000000 +0000
-@@ -0,0 +1,68 @@
-+#ifndef __ALPHA_STRING_H__
-+#define __ALPHA_STRING_H__
-+
-+#ifdef __KERNEL__
-+
-+/*
-+ * GCC of any recent vintage doesn't do stupid things with bcopy.
-+ * EGCS 1.1 knows all about expanding memcpy inline, others don't.
-+ *
-+ * Similarly for a memset with data = 0.
-+ */
-+
-+#define __HAVE_ARCH_MEMCPY
-+extern void * memcpy(void *, const void *, size_t);
-+#define __HAVE_ARCH_MEMMOVE
-+extern void * memmove(void *, const void *, size_t);
-+
-+/* For backward compatibility with modules.  Unused otherwise.  */
-+extern void * __memcpy(void *, const void *, size_t);
-+
-+#define memcpy __builtin_memcpy
-+
-+#define __HAVE_ARCH_MEMSET
-+extern void * __constant_c_memset(void *, unsigned long, size_t);
-+extern void * __memset(void *, int, size_t);
-+extern void * memset(void *, int, size_t);
-+
-+#define memset(s, c, n)							    \
-+(__builtin_constant_p(c)						    \
-+ ? (__builtin_constant_p(n) && (c) == 0					    \
-+    ? __builtin_memset((s),0,(n)) 					    \
-+    : __constant_c_memset((s),0x0101010101010101UL*(unsigned char)(c),(n))) \
-+ : __memset((s),(c),(n)))
-+
-+#define __HAVE_ARCH_STRCPY
-+extern char * strcpy(char *,const char *);
-+#define __HAVE_ARCH_STRNCPY
-+extern char * strncpy(char *, const char *, size_t);
-+#define __HAVE_ARCH_STRCAT
-+extern char * strcat(char *, const char *);
-+#define __HAVE_ARCH_STRNCAT
-+extern char * strncat(char *, const char *, size_t);
-+#define __HAVE_ARCH_STRCHR
-+extern char * strchr(const char *,int);
-+#define __HAVE_ARCH_STRRCHR
-+extern char * strrchr(const char *,int);
-+#define __HAVE_ARCH_STRLEN
-+extern size_t strlen(const char *);
-+#define __HAVE_ARCH_MEMCHR
-+extern void * memchr(const void *, int, size_t);
-+
-+/* The following routine is like memset except that it writes 16-bit
-+   aligned values.  The DEST and COUNT parameters must be even for 
-+   correct operation.  */
-+
-+#define __HAVE_ARCH_MEMSETW
-+extern void * __memsetw(void *dest, unsigned short, size_t count);
-+
-+#define memsetw(s, c, n)						 \
-+(__builtin_constant_p(c)						 \
-+ ? __constant_c_memset((s),0x0001000100010001UL*(unsigned short)(c),(n)) \
-+ : __memsetw((s),(c),(n)))
-+
-+extern int strcasecmp(const char *, const char *);
-+
-+#endif /* __KERNEL__ */
-+
-+#endif /* __ALPHA_STRING_H__ */
-diff -Naur aboot-0.9b.orig/include/asm/system.h aboot-0.9b/include/asm/system.h
---- aboot-0.9b.orig/include/asm/system.h	1970-01-01 00:00:00.000000000 +0000
-+++ aboot-0.9b/include/asm/system.h	2006-01-16 14:00:50.000000000 +0000
-@@ -0,0 +1,594 @@
-+#ifndef __ALPHA_SYSTEM_H
-+#define __ALPHA_SYSTEM_H
-+
-+#include <linux/config.h>
-+#include <asm/pal.h>
-+#include <asm/page.h>
-+#include <asm/barrier.h>
-+
-+/*
-+ * System defines.. Note that this is included both from .c and .S
-+ * files, so it does only defines, not any C code.
-+ */
-+
-+/*
-+ * We leave one page for the initial stack page, and one page for
-+ * the initial process structure. Also, the console eats 3 MB for
-+ * the initial bootloader (one of which we can reclaim later).
-+ */
-+#define BOOT_PCB	0x20000000
-+#define BOOT_ADDR	0x20000000
-+/* Remove when official MILO sources have ELF support: */
-+#define BOOT_SIZE	(16*1024)
-+
-+#ifdef CONFIG_ALPHA_LEGACY_START_ADDRESS
-+#define KERNEL_START_PHYS	0x300000 /* Old bootloaders hardcoded this.  */
-+#else
-+#define KERNEL_START_PHYS	0x1000000 /* required: Wildfire/Titan/Marvel */
-+#endif
-+
-+#define KERNEL_START	(PAGE_OFFSET+KERNEL_START_PHYS)
-+#define SWAPPER_PGD	KERNEL_START
-+#define INIT_STACK	(PAGE_OFFSET+KERNEL_START_PHYS+0x02000)
-+#define EMPTY_PGT	(PAGE_OFFSET+KERNEL_START_PHYS+0x04000)
-+#define EMPTY_PGE	(PAGE_OFFSET+KERNEL_START_PHYS+0x08000)
-+#define ZERO_PGE	(PAGE_OFFSET+KERNEL_START_PHYS+0x0A000)
-+
-+#define START_ADDR	(PAGE_OFFSET+KERNEL_START_PHYS+0x10000)
-+
-+/*
-+ * This is setup by the secondary bootstrap loader.  Because
-+ * the zero page is zeroed out as soon as the vm system is
-+ * initialized, we need to copy things out into a more permanent
-+ * place.
-+ */
-+#define PARAM			ZERO_PGE
-+#define COMMAND_LINE		((char*)(PARAM + 0x0000))
-+#define INITRD_START		(*(unsigned long *) (PARAM+0x100))
-+#define INITRD_SIZE		(*(unsigned long *) (PARAM+0x108))
-+
-+#ifndef __ASSEMBLY__
-+#include <linux/kernel.h>
-+
-+/*
-+ * This is the logout header that should be common to all platforms
-+ * (assuming they are running OSF/1 PALcode, I guess).
-+ */
-+struct el_common {
-+	unsigned int	size;		/* size in bytes of logout area */
-+	unsigned int	sbz1	: 30;	/* should be zero */
-+	unsigned int	err2	:  1;	/* second error */
-+	unsigned int	retry	:  1;	/* retry flag */
-+	unsigned int	proc_offset;	/* processor-specific offset */
-+	unsigned int	sys_offset;	/* system-specific offset */
-+	unsigned int	code;		/* machine check code */
-+	unsigned int	frame_rev;	/* frame revision */
-+};
-+
-+/* Machine Check Frame for uncorrectable errors (Large format)
-+ *      --- This is used to log uncorrectable errors such as
-+ *          double bit ECC errors.
-+ *      --- These errors are detected by both processor and systems.
-+ */
-+struct el_common_EV5_uncorrectable_mcheck {
-+        unsigned long   shadow[8];        /* Shadow reg. 8-14, 25           */
-+        unsigned long   paltemp[24];      /* PAL TEMP REGS.                 */
-+        unsigned long   exc_addr;         /* Address of excepting instruction*/
-+        unsigned long   exc_sum;          /* Summary of arithmetic traps.   */
-+        unsigned long   exc_mask;         /* Exception mask (from exc_sum). */
-+        unsigned long   pal_base;         /* Base address for PALcode.      */
-+        unsigned long   isr;              /* Interrupt Status Reg.          */
-+        unsigned long   icsr;             /* CURRENT SETUP OF EV5 IBOX      */
-+        unsigned long   ic_perr_stat;     /* I-CACHE Reg. <11> set Data parity
-+                                                         <12> set TAG parity*/
-+        unsigned long   dc_perr_stat;     /* D-CACHE error Reg. Bits set to 1:
-+                                                     <2> Data error in bank 0
-+                                                     <3> Data error in bank 1
-+                                                     <4> Tag error in bank 0
-+                                                     <5> Tag error in bank 1 */
-+        unsigned long   va;               /* Effective VA of fault or miss. */
-+        unsigned long   mm_stat;          /* Holds the reason for D-stream 
-+                                             fault or D-cache parity errors */
-+        unsigned long   sc_addr;          /* Address that was being accessed
-+                                             when EV5 detected Secondary cache
-+                                             failure.                 */
-+        unsigned long   sc_stat;          /* Helps determine if the error was
-+                                             TAG/Data parity(Secondary Cache)*/
-+        unsigned long   bc_tag_addr;      /* Contents of EV5 BC_TAG_ADDR    */
-+        unsigned long   ei_addr;          /* Physical address of any transfer
-+                                             that is logged in EV5 EI_STAT */
-+        unsigned long   fill_syndrome;    /* For correcting ECC errors.     */
-+        unsigned long   ei_stat;          /* Helps identify reason of any 
-+                                             processor uncorrectable error
-+                                             at its external interface.     */
-+        unsigned long   ld_lock;          /* Contents of EV5 LD_LOCK register*/
-+};
-+
-+struct el_common_EV6_mcheck {
-+	unsigned int FrameSize;		/* Bytes, including this field */
-+	unsigned int FrameFlags;	/* <31> = Retry, <30> = Second Error */
-+	unsigned int CpuOffset;		/* Offset to CPU-specific info */
-+	unsigned int SystemOffset;	/* Offset to system-specific info */
-+	unsigned int MCHK_Code;
-+	unsigned int MCHK_Frame_Rev;
-+	unsigned long I_STAT;		/* EV6 Internal Processor Registers */
-+	unsigned long DC_STAT;		/* (See the 21264 Spec) */
-+	unsigned long C_ADDR;
-+	unsigned long DC1_SYNDROME;
-+	unsigned long DC0_SYNDROME;
-+	unsigned long C_STAT;
-+	unsigned long C_STS;
-+	unsigned long MM_STAT;
-+	unsigned long EXC_ADDR;
-+	unsigned long IER_CM;
-+	unsigned long ISUM;
-+	unsigned long RESERVED0;
-+	unsigned long PAL_BASE;
-+	unsigned long I_CTL;
-+	unsigned long PCTX;
-+};
-+
-+extern void halt(void) __attribute__((noreturn));
-+#define __halt() __asm__ __volatile__ ("call_pal %0 #halt" : : "i" (PAL_halt))
-+
-+#define switch_to(P,N,L)						\
-+  do {									\
-+    (L) = alpha_switch_to(virt_to_phys(&(N)->thread_info->pcb), (P));	\
-+    check_mmu_context();						\
-+  } while (0)
-+
-+struct task_struct;
-+extern struct task_struct *alpha_switch_to(unsigned long, struct task_struct*);
-+
-+#define imb() \
-+__asm__ __volatile__ ("call_pal %0 #imb" : : "i" (PAL_imb) : "memory")
-+
-+#define draina() \
-+__asm__ __volatile__ ("call_pal %0 #draina" : : "i" (PAL_draina) : "memory")
-+
-+enum implver_enum {
-+	IMPLVER_EV4,
-+	IMPLVER_EV5,
-+	IMPLVER_EV6
-+};
-+
-+#ifdef CONFIG_ALPHA_GENERIC
-+#define implver()				\
-+({ unsigned long __implver;			\
-+   __asm__ ("implver %0" : "=r"(__implver));	\
-+   (enum implver_enum) __implver; })
-+#else
-+/* Try to eliminate some dead code.  */
-+#ifdef CONFIG_ALPHA_EV4
-+#define implver() IMPLVER_EV4
-+#endif
-+#ifdef CONFIG_ALPHA_EV5
-+#define implver() IMPLVER_EV5
-+#endif
-+#if defined(CONFIG_ALPHA_EV6)
-+#define implver() IMPLVER_EV6
-+#endif
-+#endif
-+
-+enum amask_enum {
-+	AMASK_BWX = (1UL << 0),
-+	AMASK_FIX = (1UL << 1),
-+	AMASK_CIX = (1UL << 2),
-+	AMASK_MAX = (1UL << 8),
-+	AMASK_PRECISE_TRAP = (1UL << 9),
-+};
-+
-+#define amask(mask)						\
-+({ unsigned long __amask, __input = (mask);			\
-+   __asm__ ("amask %1,%0" : "=r"(__amask) : "rI"(__input));	\
-+   __amask; })
-+
-+#define __CALL_PAL_R0(NAME, TYPE)				\
-+static inline TYPE NAME(void)					\
-+{								\
-+	register TYPE __r0 __asm__("$0");			\
-+	__asm__ __volatile__(					\
-+		"call_pal %1 # " #NAME				\
-+		:"=r" (__r0)					\
-+		:"i" (PAL_ ## NAME)				\
-+		:"$1", "$16", "$22", "$23", "$24", "$25");	\
-+	return __r0;						\
-+}
-+
-+#define __CALL_PAL_W1(NAME, TYPE0)				\
-+static inline void NAME(TYPE0 arg0)				\
-+{								\
-+	register TYPE0 __r16 __asm__("$16") = arg0;		\
-+	__asm__ __volatile__(					\
-+		"call_pal %1 # "#NAME				\
-+		: "=r"(__r16)					\
-+		: "i"(PAL_ ## NAME), "0"(__r16)			\
-+		: "$1", "$22", "$23", "$24", "$25");		\
-+}
-+
-+#define __CALL_PAL_W2(NAME, TYPE0, TYPE1)			\
-+static inline void NAME(TYPE0 arg0, TYPE1 arg1)			\
-+{								\
-+	register TYPE0 __r16 __asm__("$16") = arg0;		\
-+	register TYPE1 __r17 __asm__("$17") = arg1;		\
-+	__asm__ __volatile__(					\
-+		"call_pal %2 # "#NAME				\
-+		: "=r"(__r16), "=r"(__r17)			\
-+		: "i"(PAL_ ## NAME), "0"(__r16), "1"(__r17)	\
-+		: "$1", "$22", "$23", "$24", "$25");		\
-+}
-+
-+#define __CALL_PAL_RW1(NAME, RTYPE, TYPE0)			\
-+static inline RTYPE NAME(TYPE0 arg0)				\
-+{								\
-+	register RTYPE __r0 __asm__("$0");			\
-+	register TYPE0 __r16 __asm__("$16") = arg0;		\
-+	__asm__ __volatile__(					\
-+		"call_pal %2 # "#NAME				\
-+		: "=r"(__r16), "=r"(__r0)			\
-+		: "i"(PAL_ ## NAME), "0"(__r16)			\
-+		: "$1", "$22", "$23", "$24", "$25");		\
-+	return __r0;						\
-+}
-+
-+#define __CALL_PAL_RW2(NAME, RTYPE, TYPE0, TYPE1)		\
-+static inline RTYPE NAME(TYPE0 arg0, TYPE1 arg1)		\
-+{								\
-+	register RTYPE __r0 __asm__("$0");			\
-+	register TYPE0 __r16 __asm__("$16") = arg0;		\
-+	register TYPE1 __r17 __asm__("$17") = arg1;		\
-+	__asm__ __volatile__(					\
-+		"call_pal %3 # "#NAME				\
-+		: "=r"(__r16), "=r"(__r17), "=r"(__r0)		\
-+		: "i"(PAL_ ## NAME), "0"(__r16), "1"(__r17)	\
-+		: "$1", "$22", "$23", "$24", "$25");		\
-+	return __r0;						\
-+}
-+
-+__CALL_PAL_W1(cflush, unsigned long);
-+__CALL_PAL_R0(rdmces, unsigned long);
-+__CALL_PAL_R0(rdps, unsigned long);
-+__CALL_PAL_R0(rdusp, unsigned long);
-+__CALL_PAL_RW1(swpipl, unsigned long, unsigned long);
-+__CALL_PAL_R0(whami, unsigned long);
-+__CALL_PAL_W2(wrent, void*, unsigned long);
-+__CALL_PAL_W1(wripir, unsigned long);
-+__CALL_PAL_W1(wrkgp, unsigned long);
-+__CALL_PAL_W1(wrmces, unsigned long);
-+__CALL_PAL_RW2(wrperfmon, unsigned long, unsigned long, unsigned long);
-+__CALL_PAL_W1(wrusp, unsigned long);
-+__CALL_PAL_W1(wrvptptr, unsigned long);
-+
-+#define IPL_MIN		0
-+#define IPL_SW0		1
-+#define IPL_SW1		2
-+#define IPL_DEV0	3
-+#define IPL_DEV1	4
-+#define IPL_TIMER	5
-+#define IPL_PERF	6
-+#define IPL_POWERFAIL	6
-+#define IPL_MCHECK	7
-+#define IPL_MAX		7
-+
-+#ifdef CONFIG_ALPHA_BROKEN_IRQ_MASK
-+#undef IPL_MIN
-+#define IPL_MIN		__min_ipl
-+extern int __min_ipl;
-+#endif
-+
-+#define getipl()		(rdps() & 7)
-+#define setipl(ipl)		((void) swpipl(ipl))
-+
-+#define local_irq_disable()			do { setipl(IPL_MAX); barrier(); } while(0)
-+#define local_irq_enable()			do { barrier(); setipl(IPL_MIN); } while(0)
-+#define local_save_flags(flags)	((flags) = rdps())
-+#define local_irq_save(flags)	do { (flags) = swpipl(IPL_MAX); barrier(); } while(0)
-+#define local_irq_restore(flags)	do { barrier(); setipl(flags); barrier(); } while(0)
-+
-+#define irqs_disabled()	(getipl() == IPL_MAX)
-+
-+/*
-+ * TB routines..
-+ */
-+#define __tbi(nr,arg,arg1...)					\
-+({								\
-+	register unsigned long __r16 __asm__("$16") = (nr);	\
-+	register unsigned long __r17 __asm__("$17"); arg;	\
-+	__asm__ __volatile__(					\
-+		"call_pal %3 #__tbi"				\
-+		:"=r" (__r16),"=r" (__r17)			\
-+		:"0" (__r16),"i" (PAL_tbi) ,##arg1		\
-+		:"$0", "$1", "$22", "$23", "$24", "$25");	\
-+})
-+
-+#define tbi(x,y)	__tbi(x,__r17=(y),"1" (__r17))
-+#define tbisi(x)	__tbi(1,__r17=(x),"1" (__r17))
-+#define tbisd(x)	__tbi(2,__r17=(x),"1" (__r17))
-+#define tbis(x)		__tbi(3,__r17=(x),"1" (__r17))
-+#define tbiap()		__tbi(-1, /* no second argument */)
-+#define tbia()		__tbi(-2, /* no second argument */)
-+
-+/*
-+ * Atomic exchange.
-+ * Since it can be used to implement critical sections
-+ * it must clobber "memory" (also for interrupts in UP).
-+ */
-+
-+static inline unsigned long
-+__xchg_u8(volatile char *m, unsigned long val)
-+{
-+	unsigned long ret, tmp, addr64;
-+
-+	__asm__ __volatile__(
-+	"	andnot	%4,7,%3\n"
-+	"	insbl	%1,%4,%1\n"
-+	"1:	ldq_l	%2,0(%3)\n"
-+	"	extbl	%2,%4,%0\n"
-+	"	mskbl	%2,%4,%2\n"
-+	"	or	%1,%2,%2\n"
-+	"	stq_c	%2,0(%3)\n"
-+	"	beq	%2,2f\n"
-+#ifdef CONFIG_SMP
-+	"	mb\n"
-+#endif
-+	".subsection 2\n"
-+	"2:	br	1b\n"
-+	".previous"
-+	: "=&r" (ret), "=&r" (val), "=&r" (tmp), "=&r" (addr64)
-+	: "r" ((long)m), "1" (val) : "memory");
-+
-+	return ret;
-+}
-+
-+static inline unsigned long
-+__xchg_u16(volatile short *m, unsigned long val)
-+{
-+	unsigned long ret, tmp, addr64;
-+
-+	__asm__ __volatile__(
-+	"	andnot	%4,7,%3\n"
-+	"	inswl	%1,%4,%1\n"
-+	"1:	ldq_l	%2,0(%3)\n"
-+	"	extwl	%2,%4,%0\n"
-+	"	mskwl	%2,%4,%2\n"
-+	"	or	%1,%2,%2\n"
-+	"	stq_c	%2,0(%3)\n"
-+	"	beq	%2,2f\n"
-+#ifdef CONFIG_SMP
-+	"	mb\n"
-+#endif
-+	".subsection 2\n"
-+	"2:	br	1b\n"
-+	".previous"
-+	: "=&r" (ret), "=&r" (val), "=&r" (tmp), "=&r" (addr64)
-+	: "r" ((long)m), "1" (val) : "memory");
-+
-+	return ret;
-+}
-+
-+static inline unsigned long
-+__xchg_u32(volatile int *m, unsigned long val)
-+{
-+	unsigned long dummy;
-+
-+	__asm__ __volatile__(
-+	"1:	ldl_l %0,%4\n"
-+	"	bis $31,%3,%1\n"
-+	"	stl_c %1,%2\n"
-+	"	beq %1,2f\n"
-+#ifdef CONFIG_SMP
-+	"	mb\n"
-+#endif
-+	".subsection 2\n"
-+	"2:	br 1b\n"
-+	".previous"
-+	: "=&r" (val), "=&r" (dummy), "=m" (*m)
-+	: "rI" (val), "m" (*m) : "memory");
-+
-+	return val;
-+}
-+
-+static inline unsigned long
-+__xchg_u64(volatile long *m, unsigned long val)
-+{
-+	unsigned long dummy;
-+
-+	__asm__ __volatile__(
-+	"1:	ldq_l %0,%4\n"
-+	"	bis $31,%3,%1\n"
-+	"	stq_c %1,%2\n"
-+	"	beq %1,2f\n"
-+#ifdef CONFIG_SMP
-+	"	mb\n"
-+#endif
-+	".subsection 2\n"
-+	"2:	br 1b\n"
-+	".previous"
-+	: "=&r" (val), "=&r" (dummy), "=m" (*m)
-+	: "rI" (val), "m" (*m) : "memory");
-+
-+	return val;
-+}
-+
-+/* This function doesn't exist, so you'll get a linker error
-+   if something tries to do an invalid xchg().  */
-+extern void __xchg_called_with_bad_pointer(void);
-+
-+#define __xchg(ptr, x, size) \
-+({ \
-+	unsigned long __xchg__res; \
-+	volatile void *__xchg__ptr = (ptr); \
-+	switch (size) { \
-+		case 1: __xchg__res = __xchg_u8(__xchg__ptr, x); break; \
-+		case 2: __xchg__res = __xchg_u16(__xchg__ptr, x); break; \
-+		case 4: __xchg__res = __xchg_u32(__xchg__ptr, x); break; \
-+		case 8: __xchg__res = __xchg_u64(__xchg__ptr, x); break; \
-+		default: __xchg_called_with_bad_pointer(); __xchg__res = x; \
-+	} \
-+	__xchg__res; \
-+})
-+
-+#define xchg(ptr,x)							     \
-+  ({									     \
-+     __typeof__(*(ptr)) _x_ = (x);					     \
-+     (__typeof__(*(ptr))) __xchg((ptr), (unsigned long)_x_, sizeof(*(ptr))); \
-+  })
-+
-+#define tas(ptr) (xchg((ptr),1))
-+
-+
-+/* 
-+ * 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.
-+ *
-+ * The memory barrier should be placed in SMP only when we actually
-+ * make the change. If we don't change anything (so if the returned
-+ * prev is equal to old) then we aren't acquiring anything new and
-+ * we don't need any memory barrier as far I can tell.
-+ */
-+
-+#define __HAVE_ARCH_CMPXCHG 1
-+
-+static inline unsigned long
-+__cmpxchg_u8(volatile char *m, long old, long new)
-+{
-+	unsigned long prev, tmp, cmp, addr64;
-+
-+	__asm__ __volatile__(
-+	"	andnot	%5,7,%4\n"
-+	"	insbl	%1,%5,%1\n"
-+	"1:	ldq_l	%2,0(%4)\n"
-+	"	extbl	%2,%5,%0\n"
-+	"	cmpeq	%0,%6,%3\n"
-+	"	beq	%3,2f\n"
-+	"	mskbl	%2,%5,%2\n"
-+	"	or	%1,%2,%2\n"
-+	"	stq_c	%2,0(%4)\n"
-+	"	beq	%2,3f\n"
-+#ifdef CONFIG_SMP
-+	"	mb\n"
-+#endif
-+	"2:\n"
-+	".subsection 2\n"
-+	"3:	br	1b\n"
-+	".previous"
-+	: "=&r" (prev), "=&r" (new), "=&r" (tmp), "=&r" (cmp), "=&r" (addr64)
-+	: "r" ((long)m), "Ir" (old), "1" (new) : "memory");
-+
-+	return prev;
-+}
-+
-+static inline unsigned long
-+__cmpxchg_u16(volatile short *m, long old, long new)
-+{
-+	unsigned long prev, tmp, cmp, addr64;
-+
-+	__asm__ __volatile__(
-+	"	andnot	%5,7,%4\n"
-+	"	inswl	%1,%5,%1\n"
-+	"1:	ldq_l	%2,0(%4)\n"
-+	"	extwl	%2,%5,%0\n"
-+	"	cmpeq	%0,%6,%3\n"
-+	"	beq	%3,2f\n"
-+	"	mskwl	%2,%5,%2\n"
-+	"	or	%1,%2,%2\n"
-+	"	stq_c	%2,0(%4)\n"
-+	"	beq	%2,3f\n"
-+#ifdef CONFIG_SMP
-+	"	mb\n"
-+#endif
-+	"2:\n"
-+	".subsection 2\n"
-+	"3:	br	1b\n"
-+	".previous"
-+	: "=&r" (prev), "=&r" (new), "=&r" (tmp), "=&r" (cmp), "=&r" (addr64)
-+	: "r" ((long)m), "Ir" (old), "1" (new) : "memory");
-+
-+	return prev;
-+}
-+
-+static inline unsigned long
-+__cmpxchg_u32(volatile int *m, int old, int new)
-+{
-+	unsigned long prev, cmp;
-+
-+	__asm__ __volatile__(
-+	"1:	ldl_l %0,%5\n"
-+	"	cmpeq %0,%3,%1\n"
-+	"	beq %1,2f\n"
-+	"	mov %4,%1\n"
-+	"	stl_c %1,%2\n"
-+	"	beq %1,3f\n"
-+#ifdef CONFIG_SMP
-+	"	mb\n"
-+#endif
-+	"2:\n"
-+	".subsection 2\n"
-+	"3:	br 1b\n"
-+	".previous"
-+	: "=&r"(prev), "=&r"(cmp), "=m"(*m)
-+	: "r"((long) old), "r"(new), "m"(*m) : "memory");
-+
-+	return prev;
-+}
-+
-+static inline unsigned long
-+__cmpxchg_u64(volatile long *m, unsigned long old, unsigned long new)
-+{
-+	unsigned long prev, cmp;
-+
-+	__asm__ __volatile__(
-+	"1:	ldq_l %0,%5\n"
-+	"	cmpeq %0,%3,%1\n"
-+	"	beq %1,2f\n"
-+	"	mov %4,%1\n"
-+	"	stq_c %1,%2\n"
-+	"	beq %1,3f\n"
-+#ifdef CONFIG_SMP
-+	"	mb\n"
-+#endif
-+	"2:\n"
-+	".subsection 2\n"
-+	"3:	br 1b\n"
-+	".previous"
-+	: "=&r"(prev), "=&r"(cmp), "=m"(*m)
-+	: "r"((long) old), "r"(new), "m"(*m) : "memory");
-+
-+	return prev;
-+}
-+
-+/* This function doesn't exist, so you'll get a linker error
-+   if something tries to do an invalid cmpxchg().  */
-+extern void __cmpxchg_called_with_bad_pointer(void);
-+
-+static inline unsigned long
-+__cmpxchg(volatile void *ptr, unsigned long old, unsigned long new, int size)
-+{
-+	switch (size) {
-+		case 1:
-+			return __cmpxchg_u8(ptr, old, new);
-+		case 2:
-+			return __cmpxchg_u16(ptr, old, new);
-+		case 4:
-+			return __cmpxchg_u32(ptr, old, new);
-+		case 8:
-+			return __cmpxchg_u64(ptr, old, new);
-+	}
-+	__cmpxchg_called_with_bad_pointer();
-+	return old;
-+}
-+
-+#define cmpxchg(ptr,o,n)						 \
-+  ({									 \
-+     __typeof__(*(ptr)) _o_ = (o);					 \
-+     __typeof__(*(ptr)) _n_ = (n);					 \
-+     (__typeof__(*(ptr))) __cmpxchg((ptr), (unsigned long)_o_,		 \
-+				    (unsigned long)_n_, sizeof(*(ptr))); \
-+  })
-+
-+#endif /* __ASSEMBLY__ */
-+
-+#define arch_align_stack(x) (x)
-+
-+#endif
-diff -Naur aboot-0.9b.orig/include/asm-generic/page.h aboot-0.9b/include/asm-generic/page.h
---- aboot-0.9b.orig/include/asm-generic/page.h	1970-01-01 00:00:00.000000000 +0000
-+++ aboot-0.9b/include/asm-generic/page.h	2006-01-16 14:00:50.000000000 +0000
-@@ -0,0 +1,27 @@
-+#ifndef _ASM_GENERIC_PAGE_H
-+#define _ASM_GENERIC_PAGE_H
-+
-+#ifdef __KERNEL__
-+#ifndef __ASSEMBLY__
-+
-+#include <linux/compiler.h>
-+
-+/* Pure 2^n version of get_order */
-+/*
-+static int get_order(unsigned long size)
-+{
-+	int order;
-+
-+	size = (size - 1) >> (PAGE_SHIFT - 1);
-+	order = -1;
-+	do {
-+		size >>= 1;
-+		order++;
-+	} while (size);
-+	return order;
-+}*/
-+
-+#endif	/* __ASSEMBLY__ */
-+#endif	/* __KERNEL__ */
-+
-+#endif	/* _ASM_GENERIC_PAGE_H */
-diff -Naur aboot-0.9b.orig/include/linux/auxvec.h aboot-0.9b/include/linux/auxvec.h
---- aboot-0.9b.orig/include/linux/auxvec.h	1970-01-01 00:00:00.000000000 +0000
-+++ aboot-0.9b/include/linux/auxvec.h	2006-01-16 14:00:50.000000000 +0000
-@@ -0,0 +1,31 @@
-+#ifndef _LINUX_AUXVEC_H
-+#define _LINUX_AUXVEC_H
-+
-+#include <asm/auxvec.h>
-+
-+/* Symbolic values for the entries in the auxiliary table
-+   put on the initial stack */
-+#define AT_NULL   0	/* end of vector */
-+#define AT_IGNORE 1	/* entry should be ignored */
-+#define AT_EXECFD 2	/* file descriptor of program */
-+#define AT_PHDR   3	/* program headers for program */
-+#define AT_PHENT  4	/* size of program header entry */
-+#define AT_PHNUM  5	/* number of program headers */
-+#define AT_PAGESZ 6	/* system page size */
-+#define AT_BASE   7	/* base address of interpreter */
-+#define AT_FLAGS  8	/* flags */
-+#define AT_ENTRY  9	/* entry point of program */
-+#define AT_NOTELF 10	/* program is not ELF */
-+#define AT_UID    11	/* real uid */
-+#define AT_EUID   12	/* effective uid */
-+#define AT_GID    13	/* real gid */
-+#define AT_EGID   14	/* effective gid */
-+#define AT_PLATFORM 15  /* string identifying CPU for optimizations */
-+#define AT_HWCAP  16    /* arch dependent hints at CPU capabilities */
-+#define AT_CLKTCK 17	/* frequency at which times() increments */
-+
-+#define AT_SECURE 23   /* secure mode boolean */
-+
-+#define AT_VECTOR_SIZE  42 /* Size of auxiliary table.  */
-+
-+#endif /* _LINUX_AUXVEC_H */
-diff -Naur aboot-0.9b.orig/include/linux/elf.h aboot-0.9b/include/linux/elf.h
---- aboot-0.9b.orig/include/linux/elf.h	1970-01-01 00:00:00.000000000 +0000
-+++ aboot-0.9b/include/linux/elf.h	2006-01-16 14:00:50.000000000 +0000
-@@ -0,0 +1,427 @@
-+#ifndef _LINUX_ELF_H
-+#define _LINUX_ELF_H
-+
-+#include <linux/types.h>
-+#include <linux/auxvec.h>
-+#include <asm/elf.h>
-+
-+#ifndef elf_read_implies_exec
-+  /* Executables for which elf_read_implies_exec() returns TRUE will
-+     have the READ_IMPLIES_EXEC personality flag set automatically.
-+     Override in asm/elf.h as needed.  */
-+# define elf_read_implies_exec(ex, have_pt_gnu_stack)	0
-+#endif
-+
-+/* 32-bit ELF base types. */
-+typedef __u32	Elf32_Addr;
-+typedef __u16	Elf32_Half;
-+typedef __u32	Elf32_Off;
-+typedef __s32	Elf32_Sword;
-+typedef __u32	Elf32_Word;
-+
-+/* 64-bit ELF base types. */
-+typedef __u64	Elf64_Addr;
-+typedef __u16	Elf64_Half;
-+typedef __s16	Elf64_SHalf;
-+typedef __u64	Elf64_Off;
-+typedef __s32	Elf64_Sword;
-+typedef __u32	Elf64_Word;
-+typedef __u64	Elf64_Xword;
-+typedef __s64	Elf64_Sxword;
-+
-+/* These constants are for the segment types stored in the image headers */
-+#define PT_NULL    0
-+#define PT_LOAD    1
-+#define PT_DYNAMIC 2
-+#define PT_INTERP  3
-+#define PT_NOTE    4
-+#define PT_SHLIB   5
-+#define PT_PHDR    6
-+#define PT_TLS     7               /* Thread local storage segment */
-+#define PT_LOOS    0x60000000      /* OS-specific */
-+#define PT_HIOS    0x6fffffff      /* OS-specific */
-+#define PT_LOPROC  0x70000000
-+#define PT_HIPROC  0x7fffffff
-+#define PT_GNU_EH_FRAME		0x6474e550
-+
-+#define PT_GNU_STACK	(PT_LOOS + 0x474e551)
-+
-+/* These constants define the different elf file types */
-+#define ET_NONE   0
-+#define ET_REL    1
-+#define ET_EXEC   2
-+#define ET_DYN    3
-+#define ET_CORE   4
-+#define ET_LOPROC 0xff00
-+#define ET_HIPROC 0xffff
-+
-+/* These constants define the various ELF target machines */
-+#define EM_NONE  0
-+#define EM_M32   1
-+#define EM_SPARC 2
-+#define EM_386   3
-+#define EM_68K   4
-+#define EM_88K   5
-+#define EM_486   6   /* Perhaps disused */
-+#define EM_860   7
-+
-+#define EM_MIPS		8	/* MIPS R3000 (officially, big-endian only) */
-+
-+#define EM_MIPS_RS4_BE 10	/* MIPS R4000 big-endian */
-+
-+#define EM_PARISC      15	/* HPPA */
-+
-+#define EM_SPARC32PLUS 18	/* Sun's "v8plus" */
-+
-+#define EM_PPC	       20	/* PowerPC */
-+#define EM_PPC64       21       /* PowerPC64 */
-+
-+#define EM_SH	       42	/* SuperH */
-+
-+#define EM_SPARCV9     43	/* SPARC v9 64-bit */
-+
-+#define EM_IA_64	50	/* HP/Intel IA-64 */
-+
-+#define EM_X86_64	62	/* AMD x86-64 */
-+
-+#define EM_S390		22	/* IBM S/390 */
-+
-+#define EM_CRIS         76      /* Axis Communications 32-bit embedded processor */
-+
-+#define EM_V850		87	/* NEC v850 */
-+
-+#define EM_M32R		88	/* Renesas M32R */
-+
-+#define EM_H8_300       46      /* Renesas H8/300,300H,H8S */
-+
-+/*
-+ * This is an interim value that we will use until the committee comes
-+ * up with a final number.
-+ */
-+#define EM_ALPHA	0x9026
-+
-+/* Bogus old v850 magic number, used by old tools.  */
-+#define EM_CYGNUS_V850	0x9080
-+
-+/* Bogus old m32r magic number, used by old tools.  */
-+#define EM_CYGNUS_M32R	0x9041
-+
-+/*
-+ * This is the old interim value for S/390 architecture
-+ */
-+#define EM_S390_OLD     0xA390
-+
-+#define EM_FRV		0x5441		/* Fujitsu FR-V */
-+
-+/* This is the info that is needed to parse the dynamic section of the file */
-+#define DT_NULL		0
-+#define DT_NEEDED	1
-+#define DT_PLTRELSZ	2
-+#define DT_PLTGOT	3
-+#define DT_HASH		4
-+#define DT_STRTAB	5
-+#define DT_SYMTAB	6
-+#define DT_RELA		7
-+#define DT_RELASZ	8
-+#define DT_RELAENT	9
-+#define DT_STRSZ	10
-+#define DT_SYMENT	11
-+#define DT_INIT		12
-+#define DT_FINI		13
-+#define DT_SONAME	14
-+#define DT_RPATH 	15
-+#define DT_SYMBOLIC	16
-+#define DT_REL	        17
-+#define DT_RELSZ	18
-+#define DT_RELENT	19
-+#define DT_PLTREL	20
-+#define DT_DEBUG	21
-+#define DT_TEXTREL	22
-+#define DT_JMPREL	23
-+#define DT_LOPROC	0x70000000
-+#define DT_HIPROC	0x7fffffff
-+
-+/* This info is needed when parsing the symbol table */
-+#define STB_LOCAL  0
-+#define STB_GLOBAL 1
-+#define STB_WEAK   2
-+
-+#define STT_NOTYPE  0
-+#define STT_OBJECT  1
-+#define STT_FUNC    2
-+#define STT_SECTION 3
-+#define STT_FILE    4
-+
-+#define ELF_ST_BIND(x)		((x) >> 4)
-+#define ELF_ST_TYPE(x)		(((unsigned int) x) & 0xf)
-+#define ELF32_ST_BIND(x)	ELF_ST_BIND(x)
-+#define ELF32_ST_TYPE(x)	ELF_ST_TYPE(x)
-+#define ELF64_ST_BIND(x)	ELF_ST_BIND(x)
-+#define ELF64_ST_TYPE(x)	ELF_ST_TYPE(x)
-+
-+typedef struct dynamic{
-+  Elf32_Sword d_tag;
-+  union{
-+    Elf32_Sword	d_val;
-+    Elf32_Addr	d_ptr;
-+  } d_un;
-+} Elf32_Dyn;
-+
-+typedef struct {
-+  Elf64_Sxword d_tag;		/* entry tag value */
-+  union {
-+    Elf64_Xword d_val;
-+    Elf64_Addr d_ptr;
-+  } d_un;
-+} Elf64_Dyn;
-+
-+/* The following are used with relocations */
-+#define ELF32_R_SYM(x) ((x) >> 8)
-+#define ELF32_R_TYPE(x) ((x) & 0xff)
-+
-+#define ELF64_R_SYM(i)			((i) >> 32)
-+#define ELF64_R_TYPE(i)			((i) & 0xffffffff)
-+
-+typedef struct elf32_rel {
-+  Elf32_Addr	r_offset;
-+  Elf32_Word	r_info;
-+} Elf32_Rel;
-+
-+typedef struct elf64_rel {
-+  Elf64_Addr r_offset;	/* Location at which to apply the action */
-+  Elf64_Xword r_info;	/* index and type of relocation */
-+} Elf64_Rel;
-+
-+typedef struct elf32_rela{
-+  Elf32_Addr	r_offset;
-+  Elf32_Word	r_info;
-+  Elf32_Sword	r_addend;
-+} Elf32_Rela;
-+
-+typedef struct elf64_rela {
-+  Elf64_Addr r_offset;	/* Location at which to apply the action */
-+  Elf64_Xword r_info;	/* index and type of relocation */
-+  Elf64_Sxword r_addend;	/* Constant addend used to compute value */
-+} Elf64_Rela;
-+
-+typedef struct elf32_sym{
-+  Elf32_Word	st_name;
-+  Elf32_Addr	st_value;
-+  Elf32_Word	st_size;
-+  unsigned char	st_info;
-+  unsigned char	st_other;
-+  Elf32_Half	st_shndx;
-+} Elf32_Sym;
-+
-+typedef struct elf64_sym {
-+  Elf64_Word st_name;		/* Symbol name, index in string tbl */
-+  unsigned char	st_info;	/* Type and binding attributes */
-+  unsigned char	st_other;	/* No defined meaning, 0 */
-+  Elf64_Half st_shndx;		/* Associated section index */
-+  Elf64_Addr st_value;		/* Value of the symbol */
-+  Elf64_Xword st_size;		/* Associated symbol size */
-+} Elf64_Sym;
-+
-+
-+#define EI_NIDENT	16
-+
-+typedef struct elf32_hdr{
-+  unsigned char	e_ident[EI_NIDENT];
-+  Elf32_Half	e_type;
-+  Elf32_Half	e_machine;
-+  Elf32_Word	e_version;
-+  Elf32_Addr	e_entry;  /* Entry point */
-+  Elf32_Off	e_phoff;
-+  Elf32_Off	e_shoff;
-+  Elf32_Word	e_flags;
-+  Elf32_Half	e_ehsize;
-+  Elf32_Half	e_phentsize;
-+  Elf32_Half	e_phnum;
-+  Elf32_Half	e_shentsize;
-+  Elf32_Half	e_shnum;
-+  Elf32_Half	e_shstrndx;
-+} Elf32_Ehdr;
-+
-+typedef struct elf64_hdr {
-+  unsigned char	e_ident[16];		/* ELF "magic number" */
-+  Elf64_Half e_type;
-+  Elf64_Half e_machine;
-+  Elf64_Word e_version;
-+  Elf64_Addr e_entry;		/* Entry point virtual address */
-+  Elf64_Off e_phoff;		/* Program header table file offset */
-+  Elf64_Off e_shoff;		/* Section header table file offset */
-+  Elf64_Word e_flags;
-+  Elf64_Half e_ehsize;
-+  Elf64_Half e_phentsize;
-+  Elf64_Half e_phnum;
-+  Elf64_Half e_shentsize;
-+  Elf64_Half e_shnum;
-+  Elf64_Half e_shstrndx;
-+} Elf64_Ehdr;
-+
-+/* These constants define the permissions on sections in the program
-+   header, p_flags. */
-+#define PF_R		0x4
-+#define PF_W		0x2
-+#define PF_X		0x1
-+
-+typedef struct elf32_phdr{
-+  Elf32_Word	p_type;
-+  Elf32_Off	p_offset;
-+  Elf32_Addr	p_vaddr;
-+  Elf32_Addr	p_paddr;
-+  Elf32_Word	p_filesz;
-+  Elf32_Word	p_memsz;
-+  Elf32_Word	p_flags;
-+  Elf32_Word	p_align;
-+} Elf32_Phdr;
-+
-+typedef struct elf64_phdr {
-+  Elf64_Word p_type;
-+  Elf64_Word p_flags;
-+  Elf64_Off p_offset;		/* Segment file offset */
-+  Elf64_Addr p_vaddr;		/* Segment virtual address */
-+  Elf64_Addr p_paddr;		/* Segment physical address */
-+  Elf64_Xword p_filesz;		/* Segment size in file */
-+  Elf64_Xword p_memsz;		/* Segment size in memory */
-+  Elf64_Xword p_align;		/* Segment alignment, file & memory */
-+} Elf64_Phdr;
-+
-+/* sh_type */
-+#define SHT_NULL	0
-+#define SHT_PROGBITS	1
-+#define SHT_SYMTAB	2
-+#define SHT_STRTAB	3
-+#define SHT_RELA	4
-+#define SHT_HASH	5
-+#define SHT_DYNAMIC	6
-+#define SHT_NOTE	7
-+#define SHT_NOBITS	8
-+#define SHT_REL		9
-+#define SHT_SHLIB	10
-+#define SHT_DYNSYM	11
-+#define SHT_NUM		12
-+#define SHT_LOPROC	0x70000000
-+#define SHT_HIPROC	0x7fffffff
-+#define SHT_LOUSER	0x80000000
-+#define SHT_HIUSER	0xffffffff
-+
-+/* sh_flags */
-+#define SHF_WRITE	0x1
-+#define SHF_ALLOC	0x2
-+#define SHF_EXECINSTR	0x4
-+#define SHF_MASKPROC	0xf0000000
-+
-+/* special section indexes */
-+#define SHN_UNDEF	0
-+#define SHN_LORESERVE	0xff00
-+#define SHN_LOPROC	0xff00
-+#define SHN_HIPROC	0xff1f
-+#define SHN_ABS		0xfff1
-+#define SHN_COMMON	0xfff2
-+#define SHN_HIRESERVE	0xffff
-+ 
-+typedef struct {
-+  Elf32_Word	sh_name;
-+  Elf32_Word	sh_type;
-+  Elf32_Word	sh_flags;
-+  Elf32_Addr	sh_addr;
-+  Elf32_Off	sh_offset;
-+  Elf32_Word	sh_size;
-+  Elf32_Word	sh_link;
-+  Elf32_Word	sh_info;
-+  Elf32_Word	sh_addralign;
-+  Elf32_Word	sh_entsize;
-+} Elf32_Shdr;
-+
-+typedef struct elf64_shdr {
-+  Elf64_Word sh_name;		/* Section name, index in string tbl */
-+  Elf64_Word sh_type;		/* Type of section */
-+  Elf64_Xword sh_flags;		/* Miscellaneous section attributes */
-+  Elf64_Addr sh_addr;		/* Section virtual addr at execution */
-+  Elf64_Off sh_offset;		/* Section file offset */
-+  Elf64_Xword sh_size;		/* Size of section in bytes */
-+  Elf64_Word sh_link;		/* Index of another section */
-+  Elf64_Word sh_info;		/* Additional section information */
-+  Elf64_Xword sh_addralign;	/* Section alignment */
-+  Elf64_Xword sh_entsize;	/* Entry size if section holds table */
-+} Elf64_Shdr;
-+
-+#define	EI_MAG0		0		/* e_ident[] indexes */
-+#define	EI_MAG1		1
-+#define	EI_MAG2		2
-+#define	EI_MAG3		3
-+#define	EI_CLASS	4
-+#define	EI_DATA		5
-+#define	EI_VERSION	6
-+#define	EI_OSABI	7
-+#define	EI_PAD		8
-+
-+#define	ELFMAG0		0x7f		/* EI_MAG */
-+#define	ELFMAG1		'E'
-+#define	ELFMAG2		'L'
-+#define	ELFMAG3		'F'
-+#define	ELFMAG		"\177ELF"
-+#define	SELFMAG		4
-+
-+#define	ELFCLASSNONE	0		/* EI_CLASS */
-+#define	ELFCLASS32	1
-+#define	ELFCLASS64	2
-+#define	ELFCLASSNUM	3
-+
-+#define ELFDATANONE	0		/* e_ident[EI_DATA] */
-+#define ELFDATA2LSB	1
-+#define ELFDATA2MSB	2
-+
-+#define EV_NONE		0		/* e_version, EI_VERSION */
-+#define EV_CURRENT	1
-+#define EV_NUM		2
-+
-+#define ELFOSABI_NONE	0
-+#define ELFOSABI_LINUX	3
-+
-+#ifndef ELF_OSABI
-+#define ELF_OSABI ELFOSABI_NONE
-+#endif
-+
-+/* Notes used in ET_CORE */
-+#define NT_PRSTATUS	1
-+#define NT_PRFPREG	2
-+#define NT_PRPSINFO	3
-+#define NT_TASKSTRUCT	4
-+#define NT_AUXV		6
-+#define NT_PRXFPREG     0x46e62b7f      /* copied from gdb5.1/include/elf/common.h */
-+
-+
-+/* Note header in a PT_NOTE section */
-+typedef struct elf32_note {
-+  Elf32_Word	n_namesz;	/* Name size */
-+  Elf32_Word	n_descsz;	/* Content size */
-+  Elf32_Word	n_type;		/* Content type */
-+} Elf32_Nhdr;
-+
-+/* Note header in a PT_NOTE section */
-+typedef struct elf64_note {
-+  Elf64_Word n_namesz;	/* Name size */
-+  Elf64_Word n_descsz;	/* Content size */
-+  Elf64_Word n_type;	/* Content type */
-+} Elf64_Nhdr;
-+
-+#if ELF_CLASS == ELFCLASS32
-+
-+extern Elf32_Dyn _DYNAMIC [];
-+#define elfhdr		elf32_hdr
-+#define elf_phdr	elf32_phdr
-+#define elf_note	elf32_note
-+
-+#else
-+
-+extern Elf64_Dyn _DYNAMIC [];
-+#define elfhdr		elf64_hdr
-+#define elf_phdr	elf64_phdr
-+#define elf_note	elf64_note
-+
-+#endif
-+
-+
-+#endif /* _LINUX_ELF_H */
-diff -Naur aboot-0.9b.orig/include/linux/stat.h aboot-0.9b/include/linux/stat.h
---- aboot-0.9b.orig/include/linux/stat.h	1970-01-01 00:00:00.000000000 +0000
-+++ aboot-0.9b/include/linux/stat.h	2006-01-16 14:00:50.000000000 +0000
-@@ -0,0 +1,77 @@
-+#ifndef _LINUX_STAT_H
-+#define _LINUX_STAT_H
-+
-+#ifdef __KERNEL__
-+
-+#include <asm/stat.h>
-+
-+#endif
-+
-+#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2)
-+
-+#define S_IFMT  00170000
-+#define S_IFSOCK 0140000
-+#define S_IFLNK	 0120000
-+#define S_IFREG  0100000
-+#define S_IFBLK  0060000
-+#define S_IFDIR  0040000
-+#define S_IFCHR  0020000
-+#define S_IFIFO  0010000
-+#define S_ISUID  0004000
-+#define S_ISGID  0002000
-+#define S_ISVTX  0001000
-+
-+#define S_ISLNK(m)	(((m) & S_IFMT) == S_IFLNK)
-+#define S_ISREG(m)	(((m) & S_IFMT) == S_IFREG)
-+#define S_ISDIR(m)	(((m) & S_IFMT) == S_IFDIR)
-+#define S_ISCHR(m)	(((m) & S_IFMT) == S_IFCHR)
-+#define S_ISBLK(m)	(((m) & S_IFMT) == S_IFBLK)
-+#define S_ISFIFO(m)	(((m) & S_IFMT) == S_IFIFO)
-+#define S_ISSOCK(m)	(((m) & S_IFMT) == S_IFSOCK)
-+
-+#define S_IRWXU 00700
-+#define S_IRUSR 00400
-+#define S_IWUSR 00200
-+#define S_IXUSR 00100
-+
-+#define S_IRWXG 00070
-+#define S_IRGRP 00040
-+#define S_IWGRP 00020
-+#define S_IXGRP 00010
-+
-+#define S_IRWXO 00007
-+#define S_IROTH 00004
-+#define S_IWOTH 00002
-+#define S_IXOTH 00001
-+
-+#endif
-+
-+#ifdef __KERNEL__
-+#define S_IRWXUGO	(S_IRWXU|S_IRWXG|S_IRWXO)
-+#define S_IALLUGO	(S_ISUID|S_ISGID|S_ISVTX|S_IRWXUGO)
-+#define S_IRUGO		(S_IRUSR|S_IRGRP|S_IROTH)
-+#define S_IWUGO		(S_IWUSR|S_IWGRP|S_IWOTH)
-+#define S_IXUGO		(S_IXUSR|S_IXGRP|S_IXOTH)
-+
-+#include <linux/types.h>
-+#include <sys/time.h>
-+
-+struct kstat {
-+	unsigned long	ino;
-+	dev_t		dev;
-+	umode_t		mode;
-+	unsigned int	nlink;
-+	uid_t		uid;
-+	gid_t		gid;
-+	dev_t		rdev;
-+	loff_t		size;
-+	struct timespec  atime;
-+	struct timespec	mtime;
-+	struct timespec	ctime;
-+	unsigned long	blksize;
-+	unsigned long	blocks;
-+};
-+
-+#endif
-+
-+#endif
-diff -Naur aboot-0.9b.orig/include/linux/string.h aboot-0.9b/include/linux/string.h
---- aboot-0.9b.orig/include/linux/string.h	1970-01-01 00:00:00.000000000 +0000
-+++ aboot-0.9b/include/linux/string.h	2006-01-16 14:00:50.000000000 +0000
-@@ -0,0 +1,100 @@
-+#ifndef _LINUX_STRING_H_
-+#define _LINUX_STRING_H_
-+
-+/* We don't want strings.h stuff being user by user stuff by accident */
-+
-+#ifdef __KERNEL__
-+
-+typedef unsigned gfp_t;
-+
-+#include <linux/compiler.h>	/* for inline */
-+#include <linux/types.h>	/* for size_t */
-+#include <linux/stddef.h>	/* for NULL */
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+extern char * strpbrk(const char *,const char *);
-+extern char * strsep(char **,const char *);
-+extern __kernel_size_t strspn(const char *,const char *);
-+extern __kernel_size_t strcspn(const char *,const char *);
-+
-+/*
-+ * Include machine specific inline routines
-+ */
-+#include <asm/string.h>
-+
-+#ifndef __HAVE_ARCH_STRCPY
-+extern char * strcpy(char *,const char *);
-+#endif
-+#ifndef __HAVE_ARCH_STRNCPY
-+extern char * strncpy(char *,const char *, __kernel_size_t);
-+#endif
-+#ifndef __HAVE_ARCH_STRLCPY
-+size_t strlcpy(char *, const char *, size_t);
-+#endif
-+#ifndef __HAVE_ARCH_STRCAT
-+extern char * strcat(char *, const char *);
-+#endif
-+#ifndef __HAVE_ARCH_STRNCAT
-+extern char * strncat(char *, const char *, __kernel_size_t);
-+#endif
-+#ifndef __HAVE_ARCH_STRLCAT
-+extern size_t strlcat(char *, const char *, __kernel_size_t);
-+#endif
-+#ifndef __HAVE_ARCH_STRCMP
-+extern int strcmp(const char *,const char *);
-+#endif
-+#ifndef __HAVE_ARCH_STRNCMP
-+extern int strncmp(const char *,const char *,__kernel_size_t);
-+#endif
-+#ifndef __HAVE_ARCH_STRNICMP
-+extern int strnicmp(const char *, const char *, __kernel_size_t);
-+#endif
-+#ifndef __HAVE_ARCH_STRCHR
-+extern char * strchr(const char *,int);
-+#endif
-+#ifndef __HAVE_ARCH_STRNCHR
-+extern char * strnchr(const char *, size_t, int);
-+#endif
-+#ifndef __HAVE_ARCH_STRRCHR
-+extern char * strrchr(const char *,int);
-+#endif
-+#ifndef __HAVE_ARCH_STRSTR
-+extern char * strstr(const char *,const char *);
-+#endif
-+#ifndef __HAVE_ARCH_STRLEN
-+extern __kernel_size_t strlen(const char *);
-+#endif
-+#ifndef __HAVE_ARCH_STRNLEN
-+extern __kernel_size_t strnlen(const char *,__kernel_size_t);
-+#endif
-+
-+#ifndef __HAVE_ARCH_MEMSET
-+extern void * memset(void *,int,__kernel_size_t);
-+#endif
-+#ifndef __HAVE_ARCH_MEMCPY
-+extern void * memcpy(void *,const void *,__kernel_size_t);
-+#endif
-+#ifndef __HAVE_ARCH_MEMMOVE
-+extern void * memmove(void *,const void *,__kernel_size_t);
-+#endif
-+#ifndef __HAVE_ARCH_MEMSCAN
-+extern void * memscan(void *,int,__kernel_size_t);
-+#endif
-+#ifndef __HAVE_ARCH_MEMCMP
-+extern int memcmp(const void *,const void *,__kernel_size_t);
-+#endif
-+#ifndef __HAVE_ARCH_MEMCHR
-+extern void * memchr(const void *,int,__kernel_size_t);
-+#endif
-+
-+extern char *kstrdup(const char *s, gfp_t gfp);
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif
-+#endif /* _LINUX_STRING_H_ */
-diff -Naur aboot-0.9b.orig/lib/isolib.c aboot-0.9b/lib/isolib.c
---- aboot-0.9b.orig/lib/isolib.c	2006-01-16 14:00:10.000000000 +0000
-+++ aboot-0.9b/lib/isolib.c	2006-01-16 14:05:20.000000000 +0000
-@@ -6,6 +6,7 @@
-  * functionality to the Linux bootstrapper.  All we can do is
-  * open and read files... but that's all we need 8-)
-  */
-+#define __KERNEL__
- #ifndef TESTING
- #  include <linux/string.h>
- #endif
-@@ -1520,6 +1521,7 @@
- #ifdef DEBUG_ROCK
- 	   printf("Symlink component flag not implemented (%d)\n",slen);
- #endif
-+	   break;
- 	 };
- 	 slen -= slp->len + 2;
- 	 oldslp = slp;
diff --git a/disk/aboot/aboot-0.9b-kernel26_gcc4_fixes-2.patch.bz2 b/disk/aboot/aboot-0.9b-kernel26_gcc4_fixes-2.patch.bz2
new file mode 100644
index 0000000..d07ff74
Binary files /dev/null and b/disk/aboot/aboot-0.9b-kernel26_gcc4_fixes-2.patch.bz2 differ
diff --git a/disk/aboot/aboot.html b/disk/aboot/aboot.html
deleted file mode 100644
index a0bc8d1..0000000
--- a/disk/aboot/aboot.html
+++ /dev/null
@@ -1,1951 +0,0 @@
-<HTML
-><HEAD
-><TITLE
->The aboot Loader</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
-REL="HOME"
-TITLE="SRM Firmware Howto"
-HREF="t1.html"><LINK
-REL="PREVIOUS"
-TITLE="The Raw Loader"
-HREF="x162.html"><LINK
-REL="NEXT"
-TITLE="Sharing a Disk With DEC Unix"
-HREF="x661.html"></HEAD
-><BODY
-CLASS="SECT1"
-><DIV
-CLASS="NAVHEADER"
-><TABLE
-WIDTH="100%"
-BORDER="0"
-CELLPADDING="0"
-CELLSPACING="0"
-><TR
-><TH
-COLSPAN="3"
-ALIGN="center"
->SRM Firmware Howto</TH
-></TR
-><TR
-><TD
-WIDTH="10%"
-ALIGN="left"
-VALIGN="bottom"
-><A
-HREF="x162.html"
->Prev</A
-></TD
-><TD
-WIDTH="80%"
-ALIGN="center"
-VALIGN="bottom"
-></TD
-><TD
-WIDTH="10%"
-ALIGN="right"
-VALIGN="bottom"
-><A
-HREF="x661.html"
->Next</A
-></TD
-></TR
-></TABLE
-><HR
-ALIGN="LEFT"
-WIDTH="100%"></DIV
-><DIV
-CLASS="SECT1"
-><H1
-CLASS="SECT1"
-><A
-NAME="ABOOT"
->The aboot Loader</A
-></H1
-><P
->When using the SRM firmware, <TT
-CLASS="LITERAL"
->aboot</TT
-> is the preferred way of
-booting Linux.  It supports:</P
-><P
->&#13;<P
-></P
-><UL
-><LI
-><P
-> direct booting from various filesystems (<TT
-CLASS="LITERAL"
->ext2</TT
->, <TT
-CLASS="LITERAL"
->ISO9660</TT
->, and
-<TT
-CLASS="LITERAL"
->UFS</TT
->, the DEC Unix filesystem)</P
-></LI
-><LI
-><P
-> listing directories and following symbolic links on ext2 (version 0.6 and later)</P
-></LI
-><LI
-><P
-> booting of executable object files (both ELF and ECOFF)</P
-></LI
-><LI
-><P
-> booting compressed kernels</P
-></LI
-><LI
-><P
-> network booting (using bootp)</P
-></LI
-><LI
-><P
-> partition tables in DEC Unix format (which is
-compatible with BSD Unix partition tables)</P
-></LI
-><LI
-><P
-> interactive booting and default configurations for
-SRM consoles that cannot pass long option strings</P
-></LI
-><LI
-><P
-> load initrd images to load modules at boot time (0.7 and later)</P
-></LI
-></UL
->&#13;</P
-><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
-><A
-NAME="AEN235"
->Getting and Building aboot</A
-></H2
-><P
->The latest sources for <TT
-CLASS="LITERAL"
->aboot</TT
-> are available from <A
-HREF="ftp://ftp.alphalinux.org/pub/Linux-Alpha/aboot"
-TARGET="_top"
->alphalinux.org</A
-> and <A
-HREF="http://www.alphalinux.org/mirrors"
-TARGET="_top"
->alphalinux.org mirrors</A
->. They can
-also be obtained via CVS from www.alphalinux.org, to get the latest version from CVS use these commands:
-<TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->bash$ export CVSROOT=':pserver:anonymous at www.alphalinux.org:/home/axplinux/cvs/development'
-bash$ cvs login
-bash# cvs -z3 co aboot</PRE
-></TD
-></TR
-></TABLE
->
-(Note there is no password for the CVS login, just press enter)</P
-><P
->The description in this manual applies to <TT
-CLASS="LITERAL"
->aboot</TT
-> version 0.6
-or newer. Please note that many distributions ship aboot with them so
-downloading aboot from this directory is probably not neccesary.</P
-><P
-> Once you downloaded and extracted the latest tar file, take a
-look at the <TT
-CLASS="LITERAL"
->README</TT
-> and <TT
-CLASS="LITERAL"
->INSTALL</TT
-> files for
-installation hints.  In particular, be sure to adjust the variables in
-<TT
-CLASS="LITERAL"
->Makefile</TT
-> and in <TT
-CLASS="LITERAL"
->include/config.h</TT
-> to match your
-environment.  Normally, you won't need to change anything when
-building under Linux, but it is always a good idea to double check.
-If you're satisfied with the configuration, simply type <TT
-CLASS="LITERAL"
->make</TT
->
-to build it (if you're not building under Linux, be advised that
-<TT
-CLASS="LITERAL"
->aboot</TT
-> requires GNU <TT
-CLASS="LITERAL"
->make</TT
->).</P
-><P
->After running <TT
-CLASS="LITERAL"
->make</TT
->, the <TT
-CLASS="LITERAL"
->aboot</TT
-> directory should contain the
-following files:</P
-><P
-><P
-></P
-><DIV
-CLASS="VARIABLELIST"
-><DL
-><DT
->aboot</DT
-><DD
-><P
->This is the actual <TT
-CLASS="LITERAL"
->aboot</TT
-> executable (either an
-ECOFF or ELF object file).</P
-></DD
-><DT
->bootlx</DT
-><DD
-><P
->Same as above, but it contains only the text, data
-and bss segments---that is, this file is not an object file.</P
-></DD
-><DT
->sdisklabel/writeboot</DT
-><DD
-><P
->Utility to install <TT
-CLASS="LITERAL"
->aboot</TT
-> on a
-hard disk.</P
-></DD
-><DT
->tools/e2writeboot</DT
-><DD
-><P
->Utility to install <TT
-CLASS="LITERAL"
->aboot</TT
-> on an ext2
-filesystem (usually used for floppies only).</P
-></DD
-><DT
->tools/isomarkboot</DT
-><DD
-><P
->Utility to install <TT
-CLASS="LITERAL"
->aboot</TT
-> on a iso9660
-filesystem (used by CD-ROM distributors).</P
-></DD
-><DT
->tools/abootconf</DT
-><DD
-><P
->Utility to configure an installed <TT
-CLASS="LITERAL"
->aboot</TT
->.</P
-></DD
-></DL
-></DIV
-></P
-></DIV
-><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
-><A
-NAME="AEN286"
->Floppy Installation</A
-></H2
-><P
-> The bootloader can be installed on a floppy using the
-<TT
-CLASS="LITERAL"
->e2writeboot</TT
-> command (note: this can't be done on a Jensen since
-its firmware does <I
-CLASS="EMPHASIS"
->not</I
-> support booting from floppy).  This command
-requires that the disk is not overly fragmented as it needs to find
-enough contiguous file blocks to store the entire <TT
-CLASS="LITERAL"
->aboot</TT
-> image
-(currently about 90KB).  If <TT
-CLASS="LITERAL"
->e2writeboot</TT
-> fails because of this,
-reformat the floppy and try again (e.g., with <TT
-CLASS="LITERAL"
->fdformat(1)</TT
->).  For
-example, the following steps install <TT
-CLASS="LITERAL"
->aboot</TT
-> on floppy disk
-assuming the floppy is in drive <TT
-CLASS="LITERAL"
->/dev/fd0</TT
->:
-
-<TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
-># fdformat /dev/fd0
-# mke2fs /dev/fd0
-# e2writeboot /dev/fd0 bootlx</PRE
-></TD
-></TR
-></TABLE
->&#13;</P
-></DIV
-><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
-><A
-NAME="AEN297"
->Harddisk Installation</A
-></H2
-><P
->Since the <TT
-CLASS="LITERAL"
->e2writeboot</TT
-> command may fail on highly fragmented
-disks and since reformatting a harddisk is not without pain, it is
-generally safer to install <TT
-CLASS="LITERAL"
->aboot</TT
-> on a harddisk using the
-<TT
-CLASS="LITERAL"
->swriteboot</TT
-> command.  <TT
-CLASS="LITERAL"
->swriteboot</TT
-> requires that the first few
-sectors are reserved for booting purposes.  We suggest that the disk
-be partitioned such that the first partition starts at an offset of
-2048 sectors.  This leaves 1MB of space for storing <TT
-CLASS="LITERAL"
->aboot</TT
->.  On
-a properly partitioned disk, it is then possible to install <TT
-CLASS="LITERAL"
->aboot</TT
->
-as follows (assuming the disk is <TT
-CLASS="LITERAL"
->/dev/sda</TT
->):
-
-<TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
-># swriteboot /dev/sda bootlx</PRE
-></TD
-></TR
-></TABLE
->&#13;</P
-><P
->On systems where partition <TT
-CLASS="LITERAL"
->c</TT
-> in the entire disk it will be
-necessary to 'force' the write of aboot. In this case use the <TT
-CLASS="LITERAL"
->-f</TT
->
-flag followed by the partition number (in the case of partition <TT
-CLASS="LITERAL"
->c</TT
->
-this is 3):
-
-<TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
-># swriteboot /dev/sda bootlx -f3</PRE
-></TD
-></TR
-></TABLE
->&#13;</P
-><P
->On a Jensen, you will want to leave some more space, since you need to
-write a kernel to this place, too---2MB should be sufficient when
-using compressed kernels.  Use <TT
-CLASS="LITERAL"
->swriteboot</TT
-> as described in Section
-<A
-HREF="aboot.html#BOOTING"
->the section called <I
->Booting Linux</I
-></A
-> to write <TT
-CLASS="LITERAL"
->bootlx</TT
-> together with the Linux
-kernel.</P
-></DIV
-><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
-><A
-NAME="AEN317"
->CD-ROM Installation</A
-></H2
-><P
-> To make a CD-ROM bootable by SRM, simply build <TT
-CLASS="LITERAL"
->aboot</TT
-> as
-described above.  Then, make sure that the <TT
-CLASS="LITERAL"
->bootlx</TT
-> file is present
-on the iso9660 filesystem (e.g., copy <TT
-CLASS="LITERAL"
->bootlx</TT
-> to the directory
-that is the filesystem master, then run <TT
-CLASS="LITERAL"
->mkisofs</TT
-> on that
-directory).  After that, all that remains to be done is to mark the
-filesystem as SRM bootable.  This is achieved with a command of the
-form:
-
-<TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
-># isomarkboot filesystem bootlx</PRE
-></TD
-></TR
-></TABLE
->&#13;</P
-><P
->The command above assumes that <TT
-CLASS="LITERAL"
->filesystem</TT
-> is a file containing
-the iso9660 filesystem and that <TT
-CLASS="LITERAL"
->bootlx</TT
-> has been copied into the
-root directory of that filesystem.  That's it!</P
-></DIV
-><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
-><A
-NAME="BUILDING-LINUX"
->Building the Linux Kernel</A
-></H2
-><P
->A bootable Linux kernel can be built with the following steps.
-During the <TT
-CLASS="LITERAL"
->make config</TT
->, be sure to answer "yes" to the question
-whether you want to boot the kernel via SRM (for certain platforms
-this is automatically selected).  Note that if you build a generic
-kernel (by selecting "Generic" as the alpha system type), the kernel
-is able to guess whether it is running under SRM or not.
-
-<TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
-># cd /usr/src/linux
-# make config
-# make dep
-# make boot
-# make modules (if applicable)
-# make modules_install (if applicable)</PRE
-></TD
-></TR
-></TABLE
->&#13;</P
-><P
->The last command will build the file
-<TT
-CLASS="LITERAL"
->arch/alpha/boot/vmlinux.gz</TT
-> which can then be copied to the
-disk from which you want to boot from.  In our floppy disk example
-above, this would entail:
-
-<TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
-># mount /dev/fd0 /mnt
-# cp arch/alpha/boot/vmlinux.gz /mnt
-# umount /mnt</PRE
-></TD
-></TR
-></TABLE
->&#13;</P
-></DIV
-><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
-><A
-NAME="BOOTING"
->Booting Linux</A
-></H2
-><P
-> With the SRM firmware and <TT
-CLASS="LITERAL"
->aboot</TT
-> installed, Linux is generally
-booted with a command of the form:
-
-<TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
-><TT
-CLASS="LITERAL"
->boot</TT
-> <I
-CLASS="EMPHASIS"
->devicename</I
-> <TT
-CLASS="LITERAL"
->-fi</TT
-> <I
-CLASS="EMPHASIS"
->filename</I
->
-<TT
-CLASS="LITERAL"
->-fl</TT
-> <I
-CLASS="EMPHASIS"
->flags</I
-></PRE
-></TD
-></TR
-></TABLE
->&#13;</P
-><P
->The <I
-CLASS="EMPHASIS"
->filename</I
-> and <I
-CLASS="EMPHASIS"
->flags</I
-> arguments are optional.  If
-they are not specified, SRM uses the default values stored in
-environment variables <TT
-CLASS="LITERAL"
->BOOTDEF_DEV</TT
-> ,
-<TT
-CLASS="LITERAL"
->BOOT_OSFILE</TT
-> and <TT
-CLASS="LITERAL"
->BOOT_OSFLAGS</TT
->.  The
-syntax and meaning of these two arguments is described in more detail
-below. To list the current values of these variables type <TT
-CLASS="LITERAL"
->show
-boot*</TT
-> at the SRM command prompt. This will also show a
-boot_dev variable (among others), this variable is read only
-and needs to be changed via the bootdef_dev variable.</P
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="DEVICE-NAMING"
->Device Naming</A
-></H3
-><P
->This corresponds to the device from which SRM will attempt to boot. Examples include:</P
-><P
-><P
-></P
-><DIV
-CLASS="VARIABLELIST"
-><DL
-><DT
->dva0</DT
-><DD
-><P
->- First floppy drive, <TT
-CLASS="LITERAL"
->/dev/fd0</TT
-> under Linux</P
-></DD
-><DT
->dqa0</DT
-><DD
-><P
->- Primary IDE cdrom or hard disk as Master, <TT
-CLASS="LITERAL"
->/dev/hda</TT
-> under Linux</P
-></DD
-><DT
->dqa1</DT
-><DD
-><P
->- Primary IDE cdrom or hard disk as Slave, <TT
-CLASS="LITERAL"
->/dev/hdb</TT
-> under Linux</P
-></DD
-><DT
->dka0</DT
-><DD
-><P
->- SCSI disk on first bus, Device 0, <TT
-CLASS="LITERAL"
->/dev/sda</TT
-> under Linux</P
-></DD
-><DT
->ewa0</DT
-><DD
-><P
->- First Ethernet Device, <TT
-CLASS="LITERAL"
->/dev/eth0</TT
-> under Linux</P
-></DD
-></DL
-></DIV
-></P
-><P
->For example to boot from the disk at SCSI id 6, you would enter:
-
-<TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->&#62;&#62;&#62; boot dka600</PRE
-></TD
-></TR
-></TABLE
->&#13;</P
-><P
->To list the devices currently installed in the system type <TT
-CLASS="LITERAL"
->show
-dev</TT
-> at the SRM command line.  In contrast to Linux device naming, the
-partition number on a disk device is <I
-CLASS="EMPHASIS"
->not</I
-> given as part of the
-device name (you may see extra numbers after the device names when
-running <TT
-CLASS="LITERAL"
->show dev</TT
-> - these correspond to things like PCI bus and
-device numbers and are not useful to the user).  Remember, as
-mentioned in <A
-HREF="x31.html#HOW-SRM-BOOTS"
->the section called <I
->How Does SRM Boot an OS?</I
-></A
->, that SRM knows <I
-CLASS="EMPHASIS"
->nothing</I
->
-about partitions or disklabels - it merely reads a boot block and
-secondary bootstrap from sectors on a disk.  Therefore, the partition
-number is given as part of the boot filename.</P
-></DIV
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="AEN392"
->Boot Filename</A
-></H3
-><P
->The filename argument takes the form:
-<SPAN
-CLASS="QUOTE"
->"[<I
-CLASS="EMPHASIS"
->n</I
->/]<I
-CLASS="EMPHASIS"
->filename</I
->"</SPAN
-></P
-><P
-><I
-CLASS="EMPHASIS"
->n</I
-> is a single digit in the range 1..8 that gives the partition
-number from which to boot from.  <I
-CLASS="EMPHASIS"
->filename</I
-> is the path of the file
-you want boot.  For example to boot a kernel named vmlinux.gz from the second partition of SCSI
-device 6, you would enter:
-
-<TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->&#62;&#62;&#62; boot dka600 -file 2/vmlinux.gz</PRE
-></TD
-></TR
-></TABLE
->&#13;</P
-><P
->Or to boot from floppy drive 0, you'd enter:
-
-<TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->&#62;&#62;&#62; boot dva0 -file vmlinux.gz</PRE
-></TD
-></TR
-></TABLE
->&#13;</P
-><P
->If a disk has no partition table, <TT
-CLASS="LITERAL"
->aboot</TT
-> pretends the disk
-contains one <TT
-CLASS="LITERAL"
->ext2</TT
-> partition starting at the first diskblock.
-This allows booting from floppy disks.</P
-><P
->As a special case, partition number 0 is used to request booting
-from a disk that does not (yet) contain a file system.  When
-specifying "partition" number 0, <TT
-CLASS="LITERAL"
->aboot</TT
-> assumes that the Linux
-kernel is stored right behind the <TT
-CLASS="LITERAL"
->aboot</TT
-> image.  Such a layout
-can be achieved with the <TT
-CLASS="LITERAL"
->swriteboot</TT
-> command.  For example, to
-setup a filesystem-less boot from <TT
-CLASS="LITERAL"
->/dev/sda</TT
->, one could use
-the command:
-
-<TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
-># swriteboot /dev/sda bootlx vmlinux.gz</PRE
-></TD
-></TR
-></TABLE
->&#13;</P
-><P
->Booting a system in this way is not normally necessary.  The
-reason this feature exists is to make it possible to get Linux
-installed on a systems that can't boot from a floppy disk (e.g., the
-Jensen).</P
-></DIV
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="AEN414"
->Boot Flags</A
-></H3
-><P
->A number of bootflags can be specified.  The syntax is:
-
-<TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->-flags "options..."</PRE
-></TD
-></TR
-></TABLE
->&#13;</P
-><P
->Where "options..." is any combination the following options (separated
-by blanks).  There are many more bootoptions, depending on what
-drivers your kernel has installed.  The options listed below are
-therefore just examples to illustrate the general idea:</P
-><P
-><P
-></P
-><DIV
-CLASS="VARIABLELIST"
-><DL
-><DT
->load_ramdisk=1</DT
-><DD
-><P
->Copy root file system from a (floppy) disk to the RAM disk
-before starting the system.  The RAM disk will be used in
-lieu of the root device.  This is useful to bootstrap Linux
-on a system with only one floppy drive.</P
-></DD
-><DT
->floppy=<I
-CLASS="EMPHASIS"
->str</I
-></DT
-><DD
-><P
->Sets floppy configuration to <I
-CLASS="EMPHASIS"
->str</I
->.</P
-></DD
-><DT
->root=<I
-CLASS="EMPHASIS"
->dev</I
-></DT
-><DD
-><P
->Select device <I
-CLASS="EMPHASIS"
->dev</I
-> as the root-file
-system. The device can be specified as a major/minor hex number (e.g.,
-0x802 for /dev/sda2) or one of a few canonical names (e.g.,
-<TT
-CLASS="LITERAL"
->/dev/fd0</TT
->, <TT
-CLASS="LITERAL"
->/dev/sda2</TT
->).</P
-></DD
-><DT
->single</DT
-><DD
-><P
->Boot system in single user mode.</P
-></DD
-><DT
->kgdb</DT
-><DD
-><P
->Enable kernel-gdb (works only if <TT
-CLASS="LITERAL"
->CONFIG_KGDB</TT
-> is
-enabled; a second Alpha system needs to be connected over the serial
-port in order to make this work)</P
-></DD
-></DL
-></DIV
-></P
-><P
->Some SRM implementations (e.g., the one for the Jensen) are
-handicapped and allow only short option strings (e.g., at most 8
-characters).  In such a case, <TT
-CLASS="LITERAL"
->aboot</TT
-> can be booted with the
-single-character boot flag "i".  With this flag, <TT
-CLASS="LITERAL"
->aboot</TT
-> will
-enter interactive mode</P
-></DIV
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="AEN451"
->Using aboot interactively</A
-></H3
-><P
->As of version 0.6, <TT
-CLASS="LITERAL"
->aboot</TT
-> supports a simple command-oriented
-interactive mode.  Note that this is <I
-CLASS="EMPHASIS"
->different</I
-> from the prompt
-which previous versions issued when booted with the "i" flag, or after
-failing to load a kernel.  You can get a summary of the available
-commands by typing "h" or "?" at the prompt:
-
-<TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->&#62;&#62;&#62; boot dka0 -fl i
-aboot&#62; ?
- h, ?                   Display this message
- q                      Halt the system and return to SRM
- p 1-8                  Look in partition &#60;num&#62; for configuration/kernel
- l                      List pre-configured kernels
- d &#60;dir&#62;                List directory &#60;dir&#62; in current filesystem
- b &#60;file&#62; &#60;args&#62;        Boot kernel in &#60;file&#62; (- for raw boot)
-                        with arguments &#60;args&#62;
- 0-9                    Boot pre-configuration 0-9 (list with 'l')
-aboot&#62; b 3/vmlinux.gz root=/dev/sda3 single</PRE
-></TD
-></TR
-></TABLE
->&#13;</P
-></DIV
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="AEN457"
->The aboot.conf configuration file</A
-></H3
-><P
->Since booting in that manner quickly becomes tedious, <TT
-CLASS="LITERAL"
->aboot</TT
->
-allows to define short-hands for frequently used command lines.  In
-particular, a single digit option (0-9) requests that <TT
-CLASS="LITERAL"
->aboot</TT
-> uses
-the corresponding option string stored in file
-<TT
-CLASS="LITERAL"
->/etc/aboot.conf</TT
->.  A sample <TT
-CLASS="LITERAL"
->aboot.conf</TT
-> is shown below:
-
-<TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->#
-# aboot default configurations
-#
-0:3/vmlinux.gz root=/dev/sda3
-1:3/vmlinux.gz root=/dev/sda3 single
-2:3/vmlinux.new.gz root=/dev/sda3
-3:3/vmlinux root=/dev/sda3
-8:- root=/dev/sda3            # fs-less boot of raw kernel
-9:0/vmlinux.gz root=/dev/sda3 # fs-less boot of (compressed) ECOFF kernel
--</PRE
-></TD
-></TR
-></TABLE
->&#13;</P
-><P
->With this configuration file, the command
-
-<TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->&#62;&#62;&#62; boot dka0 -fl 1</PRE
-></TD
-></TR
-></TABLE
->
-
-corresponds exactly to the boot command shown above.</P
-><P
->Finally, at the <TT
-CLASS="LITERAL"
->aboot</TT
-> prompt, it is possible to enter one of the
-single character flags ("0"-"9") to get the same effect as if that
-flag had been specified in the boot command line.  As noted in the
-help text cited above, you can also list the available default
-configurations with the "l" command.</P
-><DIV
-CLASS="SECT4"
-><H4
-CLASS="SECT4"
-><A
-NAME="AEN469"
->Selecting the Partition of /etc/aboot.conf</A
-></H4
-><P
->When installed on a harddisk, <TT
-CLASS="LITERAL"
->aboot</TT
-> needs to know what
-partition to search for the <TT
-CLASS="LITERAL"
->/etc/aboot.conf</TT
-> file.  A newly
-compiled <TT
-CLASS="LITERAL"
->aboot</TT
-> will search the <I
-CLASS="EMPHASIS"
->second</I
-> partition (e.g.,
-<TT
-CLASS="LITERAL"
->/dev/sda2</TT
->).  Since it would be inconvenient to have to
-recompile <TT
-CLASS="LITERAL"
->aboot</TT
-> just to change the partition number,
-<TT
-CLASS="LITERAL"
->abootconf</TT
-> allows to directly modify an installed <TT
-CLASS="LITERAL"
->aboot</TT
->.
-Specifically, if you want to change <TT
-CLASS="LITERAL"
->aboot</TT
-> to use the <I
-CLASS="EMPHASIS"
->third</I
->
-partition on disk <TT
-CLASS="LITERAL"
->/dev/sda</TT
->, you'd use the command:
-
-<TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
-># abootconf /dev/sda 3</PRE
-></TD
-></TR
-></TABLE
-></P
-><P
->You can verify the current setting by simply omitting the partition
-number.  That is: <TT
-CLASS="LITERAL"
->abootconf /dev/sda</TT
-> will print the currently
-selected partition number.  Note that <TT
-CLASS="LITERAL"
->aboot</TT
-> does have to be
-installed already for this command to succeed.  As of version 0.6,
-<TT
-CLASS="LITERAL"
->swriteboot</TT
-> it will preserve the existing configuration when
-installing a new <TT
-CLASS="LITERAL"
->aboot</TT
-> on a hard disk.</P
-><P
->Since <TT
-CLASS="LITERAL"
->aboot </TT
-> version 0.5, it is also possible to select the
-<TT
-CLASS="LITERAL"
-> aboot.conf </TT
-> partition via the boot command line. This can be
-done with a command line of the form <I
-CLASS="EMPHASIS"
->a</I
-><TT
-CLASS="LITERAL"
->:</TT
-><I
-CLASS="EMPHASIS"
->b</I
->
-where <I
-CLASS="EMPHASIS"
->a</I
->
-is the partition that holds <TT
-CLASS="LITERAL"
->/etc/aboot.conf</TT
-> and <I
-CLASS="EMPHASIS"
->b</I
-> is a
-single-letter option as described above (<TT
-CLASS="LITERAL"
->0</TT
->-<TT
-CLASS="LITERAL"
->9</TT
->, <TT
-CLASS="LITERAL"
->i</TT
->, or
-<TT
-CLASS="LITERAL"
->h</TT
->). For example, if you type <TT
-CLASS="LITERAL"
->boot -fl "3:h" dka100</TT
-> the
-system boots from SCSI ID 1, loads <TT
-CLASS="LITERAL"
->/etc/aboot.conf</TT
-> from the
-third partition, prints its contents on the screen and waits for you
-to enter the boot options.</P
-></DIV
-></DIV
-></DIV
-><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
-><A
-NAME="DHCP-AND-BOOTPD-SERVER-SETUP"
->Setting up a BOOTP capable server using DHCP</A
-></H2
-><P
->The following configuration assumes that the server is running RH-6.2. 
-Prerequisites packages are,
-<P
-></P
-><UL
-><LI
-><P
->dhcp-2.0.5 </P
-></LI
-><LI
-><P
->tftp-server-0.16.5</P
-></LI
-></UL
->&#13;</P
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="AEN512"
->DHCP &#38; BOOTP configuation</A
-></H3
-><P
->Once those packages are installed there are a few setup issues to take care of.</P
-><P
->Create the default directory to which files will be pulled from using tftp.</P
-><TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
-># mkdir /tftpboot</PRE
-></TD
-></TR
-></TABLE
-><P
->Create the dhcp.leases file which is not create per default (though it should be) when
-you install the dhcp package so the dhcp server may start. </P
-><TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
-># mkdir -p /var/state/dhcp
-# touch /var/state/dhcp/dhcpd.leases</PRE
-></TD
-></TR
-></TABLE
-><P
->Configure the inetd to accept the tftp service. Edit your /etc/inetd.conf file and locate
-the following line. Then uncomment it and save the file.</P
-><TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->#tftp	dgram	udp	wait	root	/usr/sbin/tcpd	in.tftpd</PRE
-></TD
-></TR
-></TABLE
-><P
->Create the /etc/dhcp.conf configuation file. An example config
-is provided below with the directives which allow BOOTP. </P
-><TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->subnet 192.168.1.0 netmask 255.255.255.0 {
-       option routers                        192.168.1.1;
-       option subnet-mask                  255.255.255.0;
-       option nis-domain                "alphalinux.org";
-       option domain-name	        "alphalinux.org";
-       option domain-name-servers            192.168.1.2;
-       range                 192.168.1.3   192.168.1.254;
-       range dynamic-bootp   192.168.1.3   192.168.1.254;
-       default-lease-time                          21600;
-       max-lease-time                              43200;
-       allow bootp;
-       allow booting;
-       filename "/tftpboot/vmlinux.bootp";	
-}                                 </PRE
-></TD
-></TR
-></TABLE
-><DIV
-CLASS="SECT4"
-><H4
-CLASS="SECT4"
-><A
-NAME="AEN523"
->Examination of /etc/dhcp.conf</A
-></H4
-><P
->There are four directives that you should be concerned with.</P
-><P
-></P
-><UL
-><LI
-><P
-><TT
-CLASS="LITERAL"
->range dynamic-bootp 192.168.1.3 192.168.1.254;</TT
->
-which defines the range of ip's available for bootp.</P
-></LI
-><LI
-><P
-> 
-<TT
-CLASS="LITERAL"
->allow bootp;</TT
->
-which tells the dhcp server to allow the bootp protocol..</P
-></LI
-><LI
-><P
-> 
-<TT
-CLASS="LITERAL"
->allow booting;</TT
->
-which tells the dhcp server to allow the transfer of the file specified 
-either in the the "filename" directive or passed in the "-file" flag in SRM. </P
-></LI
-><LI
-><P
-> 
-<TT
-CLASS="LITERAL"
->filename "/tftpboot/vmlinux.bootp";</TT
->
- which is the default file which is transferred and executed when no filename 
-specified in SRM as an argument. </P
-></LI
-></UL
-><P
->Lastly, Restart the inetd daemon so that the changes we made can take effect</P
-><TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
-># service inet restart</PRE
-></TD
-></TR
-></TABLE
-><P
->You should now have a DHCP server that is capable of BOOTP.</P
-></DIV
-></DIV
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="AEN542"
->bootpd configuration</A
-></H3
-><P
->The bootpd is the older way of making a bootp server and for the most part is not used anymore
-in lieu of more modern DHCP servers that are capable of handling the protocol with minimal configuration
-and more flexibility. This style of setup does not allow just any client to be granted a BOOTP request. 
-Instead you must specify the ip address and MAC address of the allowed clients. Naturally this could get
-quite tedious if you where say administrating more than a few machines. </P
-><P
->bootpd rpms can be found on older versions of RedHat's distributions like version 5.2 and below. Note:
-the rpm itself is named bootp though the package does contain the bootpd filename. It is available
-for download at your favorite RedHat <A
-HREF="ftp://ftp.freesoftware.com/.1/linux/redhat/old-releases/redhat-5.2/alpha/RedHat/RPMS/"
-TARGET="_top"
->mirror</A
->.
-The bootp package requires the tftp-server just as before and the location to where the files are grabbed from is the same.  </P
-><P
->Once installed you must configure your inetd service to talk to the bootpd daemon. Uncomment the following line in your /etc/inetd.conf .</P
-><TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->#bootps dgram   udp     wait    root    /usr/sbin/tcpd  bootpd</PRE
-></TD
-></TR
-></TABLE
-><P
->Then restart the inetd.</P
-><TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
-># service inet restart</PRE
-></TD
-></TR
-></TABLE
-><P
->Configuring the <TT
-CLASS="LITERAL"
->/etc/bootptab</TT
-> file.  The <TT
-CLASS="LITERAL"
->bootptab</TT
-> file
-has one entry describing each client that is allowed to boot from
-the server.  For example, if you want to boot the machine
-<TT
-CLASS="LITERAL"
->voodoo.alphalinux.org</TT
->, then an entry of the following form would
-be needed:
-
-<TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->voodoo.alphalinux.org:\
-	:hd=/tftpboot/:bf=vmlinux.bootp:\
-	:ht=ethernet:ha=08012B1C51F8:hn:vm=rfc1048:\
-	:ip=192.12.69.254:bs=auto:</PRE
-></TD
-></TR
-></TABLE
->&#13;</P
-><P
->This entry assumes that the machine's Ethernet address is
-<TT
-CLASS="LITERAL"
->08012B1C51F8</TT
-> and that its IP address is 192.12.69.254.  The
-Ethernet address can be found with the <TT
-CLASS="LITERAL"
->show device</TT
-> command of the
-SRM console or, if Linux is running, with the <TT
-CLASS="LITERAL"
->ifconfig</TT
-> command.
-The entry also defines that if the client does not specify otherwise,
-the file that will be booted is <TT
-CLASS="LITERAL"
->vmlinux.bootp</TT
-> in directory
-<TT
-CLASS="LITERAL"
->/tftpboot</TT
->.  For more information on configuring <TT
-CLASS="LITERAL"
->bootpd</TT
->,
-please refer to its man page.</P
-></DIV
-></DIV
-><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
-><A
-NAME="NETWORK-BOOTING"
->Booting Over the Network</A
-></H2
-><P
->Three steps are necessary before Linux can be booted via
-a network.  First you need an Ethernet adapter that is supported by SRM.
-Most version of SRM support the DE500 series of cards, with newer
-versions (5.6 and later) also supporting the Intel EtherExpress/Pro series
-of cards.
-Second, you need to set the SRM environment variables to
-enable booting via the bootp protocol and third you need to setup
-another machine as the your boot server.  Enabling bootp in SRM is
-usually done by setting the ewa0_protocol (DE500 cards) or eia0_protocol (Intel cards) variable to bootp.
-
-<TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->&#62;&#62;&#62; set ewa0_protocol bootp</PRE
-></TD
-></TR
-></TABLE
-></P
-><P
->Also check to see that your ethernet device has a link light to whatever hub or switch it is connected to. If you
-do not see a link light try forcing the negotiation of the ethernet device. For example:</P
-><TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->&#62;&#62;&#62; set ewa0_mode FastFD</PRE
-></TD
-></TR
-></TABLE
-><P
-> Would set the DE500 ethernet card to fast full duplex operation. To see a list of the available modes</P
-><TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->&#62;&#62;&#62; set ewa0_mode </PRE
-></TD
-></TR
-></TABLE
-><P
->Netboot using the aboot sources is currently broken though for the curious the steps needed are further below. Instead use the directions for netbooting using the kernel sources. </P
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="AEN572"
->Netboot using the kernel sources</A
-></H3
-><P
-><P
-></P
-><OL
-TYPE="1"
-><LI
-><P
->Make sure the kernel you want to boot has already been built </P
-></LI
-><LI
-><P
->Execute the following while in the linux source dir: 
-  <P
-></P
-><UL
-><LI
-><P
->    <TT
-CLASS="LITERAL"
->make bootimage</TT
-> 
-  </P
-></LI
-><LI
-><P
->    <TT
-CLASS="LITERAL"
->make bootpfile</TT
->
-  </P
-></LI
-></UL
-></P
-><P
->This creates a uncompressed kernel named 'bootpfile' located in arch/alpha/boot/ . Note that this kernel is 
-significantly larger than that produced by the aboot sources. </P
-></LI
-><LI
-><P
->Copy bootpfile to the bootp server's directory. With a default setup the tftp server would look in 
-    /tftpboot so copy bootpfile into /tftpboot . 
-  </P
-></LI
-></OL
-></P
-></DIV
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="AEN590"
->Netboot using the aboot sources</A
-></H3
-><P
-><P
-></P
-><OL
-TYPE="1"
-><LI
-><P
->Build aboot with with the command <TT
-CLASS="LITERAL"
->make netboot</TT
->. </P
-></LI
-><LI
-><P
->Make sure the kernel that you want to boot has been built already. 
-
-    By default, the aboot Makefile uses the kernel in /usr/src/linux/arch/alpha/boot/vmlinux.gz (edit the 
-    Makefile if you want to use a different path). The result of make netboot is a file called vmlinux.bootp 
-    which contains aboot and the Linux kernel, ready for network booting. </P
-></LI
-><LI
-><P
->&#13;Copy vmlinux.bootp to the bootp server's directory. In the example above, you'd copy it into /tftpboot/vmlinux.bootp. </P
-></LI
-></OL
-></P
-><P
->Next, power up the client machine and boot it, specifying the Ethernet adapter as the boot device. Typically, SRM calls the DEC based Ethernet adapter ewa0 and the Intel based adapter
-eia0, so to boot from that device, you'd use the command: 
-<TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->      &#62;&#62;&#62; boot ewa0 </PRE
-></TD
-></TR
-></TABLE
-></P
-><P
->The -fi and -fl options can be used as usual. For example, </P
-><P
-><TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->      &#62;&#62;&#62; boot ewa0 -fi  bootpfile -fl "root=/dev/hda2" </PRE
-></TD
-></TR
-></TABLE
-></P
-><P
->In particular, you can ask aboot to prompt for Linux kernel arguments by specifying the option 
--fl i .  </P
-></DIV
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="AEN607"
->Updating the SRM console through BOOTP</A
-></H3
-><P
->Updating your SRM console over the network through BOOTP is just as easy as booting the Linux kernel
-in the same manner. The hardware prerequisites are the same as netbooting Linux. </P
-><P
->First you have to obtain an SRM image that is able to BOOTP over the network. These images normally
-have a .exe extension. For DEC/Compaq Alpha products these images can be found at 
-<A
-HREF="ftp://gatekeeper.dec.com/pub/DEC/Alpha/firmware/v5.8/"
-TARGET="_top"
->ftp://gatekeeper.dec.com/pub/DEC/Alpha/firmware/v5.8/</A
->. You can also find these files on the Alpha Systems Firmware Update CD-ROM. <A
-HREF="http://www.api-networks.com"
-TARGET="_top"
->API NetWorks</A
-> does not offer net bootable SRM images at this time though that may change in the near future.</P
-><P
->For example say you had a DS20 and wanted to update it's firmware over the network using BOOTP. You would have to,
-<P
-></P
-><OL
-TYPE="1"
-><LI
-><P
->Get the correct firmware image for the DS20 that supported BOOTP execution which in this case the filename is 
-<TT
-CLASS="LITERAL"
->ds20_v5_8.exe </TT
-> from  <A
-HREF="ftp://gatekeeper.dec.com/pub/DEC/Alpha/firmware/v5.8/"
-TARGET="_top"
->ftp://gatekeeper.dec.com/pub/DEC/Alpha/firmware/v5.8/</A
->.</P
-></LI
-><LI
-><P
->Copy the file to the /tftpboot folder located on the BOOTP server.</P
-></LI
-></OL
-></P
-><P
->To execute the update from SRM you would do the following:</P
-><TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->&#62;&#62;&#62; b ewa0 -fi ds20_v5_8.exe</PRE
-></TD
-></TR
-></TABLE
-><P
->SRM would then proceed to upgrade the firmware in the same fashion as if you had done the firmware update from a CD.</P
-></DIV
-></DIV
-><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
-><A
-NAME="AEN624"
->Partitioning Disks</A
-></H2
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="AEN626"
->What is a disklabel?</A
-></H3
-><P
->A disk label is a partition table. Unfortunately, there are several
-formats the partition table can take, depending on the operating
-system.</P
-><P
->DOS partition tables are the standard used by Linux and
-Windows. AlphaBIOS systems and every Linux kernel can read DOS
-partition tables. Unfortunately, the SRM console's boot sector format
-overlaps with parts of the DOS partition table on disk, and therefore
-DOS partition tables cannot be used with SRM.</P
-><P
->BSD disklabels are used by several variants of Unix, including
-Tru64.  SRM's boot block does not conflict with the BSD disklabel (in
-fact, the BSD disklabel resides entirely within "reserved" areas of
-the first sector), and Linux can use a BSD disklabel, provided that
-support for BSD disklabels has been compiled into the kernel.</P
-><P
->To boot from a disk using SRM, a BSD disklabel is required. If the
-disk is not a boot disk, the BSD disklabel is not required. A BSD
-disklabel can be created using fdisk, the standard Linux disk
-partitioning tool.</P
-></DIV
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="AEN632"
->Partitioning the Easy Way: a DOS Disklabel</A
-></H3
-><P
->The simplest way to partition your disk is to let your Linux installer
-do it for you, for example by using Red Hat's disk druid or fdisk.  On
-Red Hat 6.1, this will produce a valid BSD disklabel, but
-<I
-CLASS="EMPHASIS"
->only</I
-> if the disk in question previously contained one.  In
-most cases, this will produce a DOS disklabel.  It will be readable by
-Linux, but you will not be able to boot from it via SRM.  For this
-reason, you will probably want to create a BSD disklabel manually in
-order to boot Linux</P
-></DIV
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="AEN636"
->Partitioning with a BSD Disklabel</A
-></H3
-><P
->&#13;<P
-></P
-><OL
-TYPE="1"
-><LI
-><P
->Start fdisk on the disk you're configuring</P
-></LI
-><LI
-><P
->Choose to make a BSD disklabel - option 'b' (newer versions of
-fdisk will detect existing BSD disklabels and automatically enter
-disklabel mode)</P
-></LI
-><LI
-><P
->You'll notice some things: Partitions are letters instead of
-numbers, from a-h Partition 'c' covers the whole of the disk. This is
-the convention, don't touch it.  While you can see it, note down the
-disk parameters as you'll use them more often than with the
-DOS-disklabel approach</P
-></LI
-><LI
-><P
->Creating a new partition uses the same procedure as the
-DOS-disklabel approach, except that the partitions are referred to by
-letter instead of number. That is, 'n' to make a new partition
-followed by the partition letter followed by the starting block
-followed by the end block</P
-></LI
-><LI
-><P
->Setting partition type is slightly different, because the
-numbering scheme is different (1 is swap, 8 is ext2).</P
-></LI
-><LI
-><P
->When you are finished, write ('w') and quit ('q') as normal.</P
-></LI
-></OL
->&#13;</P
-><P
->There are some important catches that you must be aware of when
-partitioning using a BSD disklabel:
-
-<P
-></P
-><UL
-><LI
-><P
->Partition 'a' should start about 1M into the disk: don't start
-it at sector 1, try starting at sector 10 (for example). This leaves
-plenty of space for writing the boot block (see below)</P
-></LI
-><LI
-><P
->There is a bug in some versions of fdisk which makes the disk
-look one sector bigger than it actually is.  The listing when you
-create the BSD disklabel is correct.  The last sector of partition 'c'
-is correct.  The default last sector when creating a new partition is
-1 sector too big</P
-></LI
-><LI
-><P
->Always adjust for this extra sector. This bug exists in the
-version of fdisk shipped with Red Hat 6.0. Not making an adjustment
-for this problem almost always leads to "Access beyond end of device"
-errors from the Linux kernel.</P
-></LI
-></UL
->&#13;</P
-><P
->Once you have made a BSD disklabel, continue the installation. After
-installation, you can write a boot block to your disk to make it
-bootable from SRM.</P
-></DIV
-></DIV
-></DIV
-><DIV
-CLASS="NAVFOOTER"
-><HR
-ALIGN="LEFT"
-WIDTH="100%"><TABLE
-WIDTH="100%"
-BORDER="0"
-CELLPADDING="0"
-CELLSPACING="0"
-><TR
-><TD
-WIDTH="33%"
-ALIGN="left"
-VALIGN="top"
-><A
-HREF="x162.html"
->Prev</A
-></TD
-><TD
-WIDTH="34%"
-ALIGN="center"
-VALIGN="top"
-><A
-HREF="t1.html"
->Home</A
-></TD
-><TD
-WIDTH="33%"
-ALIGN="right"
-VALIGN="top"
-><A
-HREF="x661.html"
->Next</A
-></TD
-></TR
-><TR
-><TD
-WIDTH="33%"
-ALIGN="left"
-VALIGN="top"
->The Raw Loader</TD
-><TD
-WIDTH="34%"
-ALIGN="center"
-VALIGN="top"
->&nbsp;</TD
-><TD
-WIDTH="33%"
-ALIGN="right"
-VALIGN="top"
->Sharing a Disk With DEC Unix</TD
-></TR
-></TABLE
-></DIV
-></BODY
-></HTML
->
\ No newline at end of file
diff --git a/doc/po4a/BUILD b/doc/po4a/BUILD
new file mode 100755
index 0000000..8f00b77
--- /dev/null
+++ b/doc/po4a/BUILD
@@ -0,0 +1,2 @@
+make
+
diff --git a/doc/po4a/DEPENDS b/doc/po4a/DEPENDS
new file mode 100755
index 0000000..4868b7b
--- /dev/null
+++ b/doc/po4a/DEPENDS
@@ -0,0 +1,6 @@
+depends perl &&
+depends module-build &&
+depends sgmlspm &&
+# I really don't think they mean J. Clark's SP
+depends opensp &&
+depends locale-gettext
diff --git a/doc/po4a/DETAILS b/doc/po4a/DETAILS
new file mode 100755
index 0000000..bdde536
--- /dev/null
+++ b/doc/po4a/DETAILS
@@ -0,0 +1,14 @@
+           SPELL=po4a
+         VERSION=0.29
+          SOURCE="${SPELL}-${VERSION}.tar.gz"
+   SOURCE_URL[0]=http://alioth.debian.org/frs/download.php/1798/${SOURCE}
+     SOURCE_HASH=sha512:ce19b5b6da83eff404e02f9679346209bec668072fd6a2ea6eedc823eea9cddd675343c08926f02f96f465cf623a6264d0b9ead03d303dff2e02bf132cbe954b
+SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}"
+        WEB_SITE=http://alioth.debian.org/projects/po4a/
+      LICENSE[0]=GPL
+         ENTERED=20070104
+           SHORT=".po for all; gettext -> docs"
+cat << EOF
+Po4a eases translation work, and in particular the maintenance of translations, using 
+gettext tools on areas where they were not expected like documentation."
+EOF
diff --git a/doc/po4a/HISTORY b/doc/po4a/HISTORY
new file mode 100644
index 0000000..96b1f0f
--- /dev/null
+++ b/doc/po4a/HISTORY
@@ -0,0 +1,2 @@
+2007-01-04 Thomas Orgis <sobukus at sourcemage.org>
+	* DETAILS, DEPENDS, BUILD, INSTALL, HISTORY: created spell
diff --git a/doc/sp/DEPENDS b/doc/sp/DEPENDS
index 56d4bf4..f820354 100755
--- a/doc/sp/DEPENDS
+++ b/doc/sp/DEPENDS
@@ -1 +1,2 @@
 depends  gcc2
+
diff --git a/kernels/lirc/DEPENDS b/kernels/lirc/DEPENDS
deleted file mode 100755
index d2df149..0000000
--- a/kernels/lirc/DEPENDS
+++ /dev/null
@@ -1 +0,0 @@
-depends which
diff --git a/net/spfs/PRE_BUILD b/net/spfs/PRE_BUILD
deleted file mode 100755
index 861b4a3..0000000
--- a/net/spfs/PRE_BUILD
+++ /dev/null
@@ -1,11 +0,0 @@
-default_pre_build     &&
-cd $SOURCE_DIRECTORY  &&
-sedit "s:CFLAGS=-Wall:CFLAGS=$CFLAGS\ \-D_FILE_OFFSET_BITS=64\ \-D_LARGEFILE64_SOURCE\ \-Wall:g" \
-      libspclient/Makefile                                                                       &&
-sedit "s:CFLAGS=-Wall:CFLAGS=$CFLAGS\ \-D_FILE_OFFSET_BITS=64\ \-D_LARGEFILE64_SOURCE\ \-Wall:g" \
-      fs/Makefile                                                                                &&
-sedit "s:CFLAGS=-Wall:CFLAGS=$CFLAGS\ \-D_FILE_OFFSET_BITS=64\ \-D_LARGEFILE64_SOURCE\ \-Wall:g" \
-      Makefile                                                                                   &&
-sedit "s:CFLAGS=-Wall:CFLAGS=$CFLAGS\ \-D_FILE_OFFSET_BITS=64\ \-D_LARGEFILE64_SOURCE\ \-Wall:g" \
-      libspfs/Makefile
-
diff --git a/utils/coreutils/coreutils-6.4_9p_mv_EPERM.patch b/utils/coreutils/coreutils-6.4_9p_mv_EPERM.patch
deleted file mode 100644
index 729ca39..0000000
--- a/utils/coreutils/coreutils-6.4_9p_mv_EPERM.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- old/src/copy.c	2007/01/03 12:43:18	1.1
-+++ coreutils-6.4/src/copy.c	2007/01/03 12:43:44
-@@ -1431,7 +1431,7 @@
- 	 where you'd replace `18' with the integer in parentheses that
- 	 was output from the perl one-liner above.
- 	 If necessary, of course, change `/tmp' to some other directory.  */
--      if (errno != EXDEV)
-+      if (errno != EXDEV && errno != EPERM)
- 	{
- 	  /* There are many ways this can happen due to a race condition.
- 	     When something happens between the initial XSTAT and the



More information about the SM-Commit mailing list