[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] tools: drop ia64 support


  • To: xen-changelog@xxxxxxxxxxxxxxxxxxx
  • From: Xen patchbot-unstable <patchbot@xxxxxxx>
  • Date: Fri, 14 Sep 2012 10:55:34 +0000
  • Delivery-date: Fri, 14 Sep 2012 10:55:52 +0000
  • List-id: "Change log for Mercurial \(receive only\)" <xen-changelog.lists.xen.org>

# HG changeset patch
# User Ian Campbell <ian.campbell@xxxxxxxxxx>
# Date 1347468927 -3600
# Node ID 485e6db28b93d69e33628635eb562ea6f5179c90
# Parent  a1bd69b08e9eb4a5dca1b0408e34d49fda767b81
tools: drop ia64 support

Removed support from libxc and mini-os.

This also took me under xen/include/public via various symlinks.

Dropped tools/debugger/xenitp entirely, it was described upon commit
as:
"Xenitp is a low-level debugger for ia64" and doesn't appear to be
linked into the build anywhere.

 99 files changed, 14 insertions(+), 32361 deletions(-)

Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
Acked-by: Keir Fraser <keir@xxxxxxx>
Committed-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
---


diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/Config.mk
--- a/extras/mini-os/Config.mk  Wed Sep 12 16:12:42 2012 +0100
+++ b/extras/mini-os/Config.mk  Wed Sep 12 17:55:27 2012 +0100
@@ -9,7 +9,7 @@ export XEN_INTERFACE_VERSION
 
 # Try to find out the architecture family TARGET_ARCH_FAM.
 # First check whether x86_... is contained (for x86_32, x86_32y, x86_64).
-# If not x86 then use $(XEN_TARGET_ARCH) -> for ia64, ...
+# If not x86 then use $(XEN_TARGET_ARCH)
 ifeq ($(findstring x86_,$(XEN_TARGET_ARCH)),x86_)
 TARGET_ARCH_FAM = x86
 else
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/arch/ia64/Makefile
--- a/extras/mini-os/arch/ia64/Makefile Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-#
-# Special makefile for ia64.
-#
-
-XEN_ROOT = $(CURDIR)/../../../..
-include $(XEN_ROOT)/Config.mk
-
-include ../../Config.mk
-
-include arch.mk
-include ../../minios.mk
-
-ARCH_SRCS := sal.c
-ARCH_SRCS += efi.c
-ARCH_SRCS += time.c
-ARCH_SRCS += ivt.S
-ARCH_SRCS += fw.S
-ARCH_SRCS += common.c
-ARCH_SRCS += time.c
-ARCH_SRCS += mm.c
-ARCH_SRCS += debug.c
-ARCH_SRCS += sched.c
-ARCH_SRCS += xencomm.c
-ARCH_SRCS += __umoddi3.S
-ARCH_SRCS += __udivdi3.S
-ARCH_SRCS += __divdi3.S
-
-ARCH_OBJS := sal.o
-ARCH_OBJS += efi.o
-ARCH_OBJS += time.o
-ARCH_OBJS += ivt.o
-ARCH_OBJS += fw.o
-ARCH_OBJS += common.o
-ARCH_OBJS += time.o
-ARCH_OBJS += mm.o
-ARCH_OBJS += debug.o
-ARCH_OBJS += sched.o
-ARCH_OBJS += xencomm.o
-ARCH_OBJS += __umoddi3.o
-ARCH_OBJS += __udivdi3.o
-ARCH_OBJS += __udivsi3.o
-ARCH_OBJS += __divdi3.o
-ARCH_OBJS := $(addprefix $(OBJ_DIR)/,$(ARCH_OBJS))
-
-GEN_OFF_SRC := gen_off.c
-GEN_OFF_ASM := gen_off.s
-GEN_OFF_H   := $(MINI-OS_ROOT)/include/$(ARCH_INC)/offsets.h
-
-all: $(OBJ_DIR)/$(ARCH_LIB)
-
-$(GEN_OFF_ASM): $(GEN_OFF_SRC)
-       $(CC) -S -o $@ $(CPPFLAGS) $<
-
-$(GEN_OFF_H): $(GEN_OFF_ASM)
-       sed -ne "/^->/ {s/->/#define /; p}" < $< > $@
-
-$(OBJ_DIR)/$(ARCH_LIB): $(GEN_OFF_H) $(ARCH_OBJS) $(OBJ_DIR)/$(HEAD_ARCH_OBJ)
-       $(AR) rv $(ARCH_LIB) $(ARCH_OBJS)
-
-clean:
-       rm -f $(OBJ_DIR)/$(ARCH_LIB) $(ARCH_OBJS) $(OBJ_DIR)/$(HEAD_ARCH_OBJ)
-       rm -f $(GEN_OFF_ASM)
-       rm -f $(GEN_OFF_H)
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/arch/ia64/__divdi3.S
--- a/extras/mini-os/arch/ia64/__divdi3.S       Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,141 +0,0 @@
-.file "__divdi3.s"
-
-// $FreeBSD: src/sys/libkern/ia64/__divdi3.S,v 1.1 2000/10/04 17:53:03 dfr Exp 
$
-//  
-// Copyright (c) 2000, Intel Corporation
-// All rights reserved.
-//
-// Contributed 2/15/2000 by Marius Cornea, John Harrison, Cristina Iordache, 
-// Ted Kubaska, Bob Norin, and Shane Story of the Computational Software Lab, 
-// Intel Corporation.
-//
-// WARRANTY DISCLAIMER
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS 
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
-// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Intel Corporation is the author of this code, and requests that all
-// problem reports or change requests be submitted to it directly at
-// http://developer.intel.com/opensource.
-//
-
-.section .text
-.proc __divdi3#
-.align 32
-.global __divdi3#
-.align 32
-
-// 64-bit signed integer divide
-
-__divdi3:
-
-{ .mii
-  alloc r31=ar.pfs,2,0,0,0
-  nop.i 0
-  nop.i 0;;
-} { .mmi
-
-  // 64-BIT SIGNED INTEGER DIVIDE BEGINS HERE
-
-  setf.sig f8=r32
-  setf.sig f9=r33
-  nop.i 0;;
-} { .mfb
-  nop.m 0
-  fcvt.xf f6=f8
-  nop.b 0
-} { .mfb
-  nop.m 0
-  fcvt.xf f7=f9
-  nop.b 0;;
-} { .mfi
-  nop.m 0
-  // Step (1)
-  // y0 = 1 / b in f8
-  frcpa.s1 f8,p6=f6,f7
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (2)
-  // e0 = 1 - b * y0 in f9
-  (p6) fnma.s1 f9=f7,f8,f1
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // Step (3)
-  // q0 = a * y0 in f10
-  (p6) fma.s1 f10=f6,f8,f0
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (4)
-  // e1 = e0 * e0 in f11
-  (p6) fma.s1 f11=f9,f9,f0
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // Step (5)
-  // q1 = q0 + e0 * q0 in f10
-  (p6) fma.s1 f10=f9,f10,f10
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (6)
-  // y1 = y0 + e0 * y0 in f8
-  (p6) fma.s1 f8=f9,f8,f8
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (7)
-  // q2 = q1 + e1 * q1 in f9
-  (p6) fma.s1 f9=f11,f10,f10
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (8)
-  // y2 = y1 + e1 * y1 in f8
-  (p6) fma.s1 f8=f11,f8,f8
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (9)
-  // r2 = a - b * q2 in f10
-  (p6) fnma.s1 f10=f7,f9,f6
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (10)
-  // q3 = q2 + r2 * y2 in f8
-  (p6) fma.s1 f8=f10,f8,f9
-  nop.i 0;;
-} { .mfb
-  nop.m 0
-  // Step (11)
-  // q = trunc (q3)
-  fcvt.fx.trunc.s1 f8=f8
-  nop.b 0;;
-} { .mmi
-  // quotient will be in r8 (if b != 0)
-  getf.sig r8=f8
-  nop.m 0
-  nop.i 0;;
-}
-
-  // 64-BIT SIGNED INTEGER DIVIDE ENDS HERE
-
-{ .mmb
-  nop.m 0
-  nop.m 0
-  br.ret.sptk b0;;
-}
-
-.endp __divdi3
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/arch/ia64/__udivdi3.S
--- a/extras/mini-os/arch/ia64/__udivdi3.S      Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +0,0 @@
-.file "__udivdi3.s"
-
-// $FreeBSD: src/sys/libkern/ia64/__udivdi3.S,v 1.1 2000/10/04 17:53:03 dfr 
Exp $
-//  
-// Copyright (c) 2000, Intel Corporation
-// All rights reserved.
-//
-// Contributed 2/15/2000 by Marius Cornea, John Harrison, Cristina Iordache, 
-// Ted Kubaska, Bob Norin, and Shane Story of the Computational Software Lab, 
-// Intel Corporation.
-//
-// WARRANTY DISCLAIMER
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS 
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
-// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Intel Corporation is the author of this code, and requests that all
-// problem reports or change requests be submitted to it directly at
-// http://developer.intel.com/opensource.
-//
-
-.section .text
-.proc __udivdi3#
-.align 32
-.global __udivdi3#
-.align 32
-
-// 64-bit unsigned integer divide
-
-__udivdi3:
-
-{ .mii
-  alloc r31=ar.pfs,2,0,0,0
-  nop.i 0
-  nop.i 0;;
-}
-
-{ .mmi
-
-  // 64-BIT UNSIGNED INTEGER DIVIDE BEGINS HERE
-
-  setf.sig f8=r32
-  setf.sig f9=r33
-  nop.i 0;;
-} { .mfb
-  nop.m 0
-  fma.s1 f6=f8,f1,f0
-  nop.b 0
-} { .mfb
-  nop.m 0
-  fma.s1 f7=f9,f1,f0
-  nop.b 0;;
-} { .mfi
-  nop.m 0
-  // Step (1)
-  // y0 = 1 / b in f8
-  frcpa.s1 f8,p6=f6,f7
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (2)
-  // e0 = 1 - b * y0 in f9
-  (p6) fnma.s1 f9=f7,f8,f1
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // Step (3)
-  // q0 = a * y0 in f10
-  (p6) fma.s1 f10=f6,f8,f0
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (4)
-  // e1 = e0 * e0 in f11
-  (p6) fma.s1 f11=f9,f9,f0
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // Step (5)
-  // q1 = q0 + e0 * q0 in f10
-  (p6) fma.s1 f10=f9,f10,f10
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (6)
-  // y1 = y0 + e0 * y0 in f8
-  (p6) fma.s1 f8=f9,f8,f8
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (7)
-  // q2 = q1 + e1 * q1 in f9
-  (p6) fma.s1 f9=f11,f10,f10
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (8)
-  // y2 = y1 + e1 * y1 in f8
-  (p6) fma.s1 f8=f11,f8,f8
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (9)
-  // r2 = a - b * q2 in f10
-  (p6) fnma.s1 f10=f7,f9,f6
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (10)
-  // q3 = q2 + r2 * y2 in f8
-  (p6) fma.s1 f8=f10,f8,f9
-  nop.i 0;;
-} { .mfb
-  nop.m 0
-  // (11) q = trunc(q3)
-  fcvt.fxu.trunc.s1 f8=f8
-  nop.b 0;;
-} { .mmi
-  // quotient will be in r8 (if b != 0)
-  getf.sig r8=f8
-  nop.m 0
-  nop.i 0;;
-}
-
-  // 64-BIT UNSIGNED INTEGER DIVIDE ENDS HERE
-
-{ .mmb
-  nop.m 0
-  nop.m 0
-  br.ret.sptk b0;;
-}
-
-.endp __udivdi3
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/arch/ia64/__udivsi3.S
--- a/extras/mini-os/arch/ia64/__udivsi3.S      Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-.file "__udivsi3.s"
-
-// $FreeBSD: src/sys/libkern/ia64/__udivsi3.S,v 1.1.8.1 2005/01/31 23:26:21 
imp Exp $
-
-//-
-// Copyright (c) 2000, Intel Corporation
-// All rights reserved.
-//
-// Contributed 2/15/2000 by Marius Cornea, John Harrison, Cristina Iordache, 
-// Ted Kubaska, Bob Norin, and Shane Story of the Computational Software Lab, 
-// Intel Corporation.
-//
-// WARRANTY DISCLAIMER
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS 
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
-// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Intel Corporation is the author of this code, and requests that all
-// problem reports or change requests be submitted to it directly at
-// http://developer.intel.com/opensource.
-//
-
-.section .text
-
-// 32-bit unsigned integer divide
-
-.proc __udivsi3#
-.align 32
-.global __udivsi3#
-.align 32
-
-__udivsi3:
-
-{ .mii
-  alloc r31=ar.pfs,2,0,0,0
-  nop.i 0
-  nop.i 0;;
-} { .mii
-  nop.m 0
-
-  // 32-BIT UNSIGNED INTEGER DIVIDE BEGINS HERE
-
-  // general register used:
-  //    r32 - 32-bit unsigned integer dividend
-  //    r33 - 32-bit unsigned integer divisor
-  //    r8 - 32-bit unsigned integer result
-  //    r2 - scratch register
-  // floating-point registers used: f6, f7, f8, f9
-  // predicate registers used: p6
-
-  zxt4 r32=r32
-  zxt4 r33=r33;;
-} { .mmb
-  setf.sig f6=r32
-  setf.sig f7=r33
-  nop.b 0;;
-} { .mfi
-  nop.m 0
-  fcvt.xf f6=f6
-  nop.i 0
-} { .mfi
-  nop.m 0
-  fcvt.xf f7=f7
-  mov r2 = 0x0ffdd;;
-} { .mfi
-  setf.exp f9 = r2
-  // (1) y0
-  frcpa.s1 f8,p6=f6,f7
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // (2) q0 = a * y0
-  (p6) fma.s1 f6=f6,f8,f0
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // (3) e0 = 1 - b * y0
-  (p6) fnma.s1 f7=f7,f8,f1
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // (4) q1 = q0 + e0 * q0
-  (p6) fma.s1 f6=f7,f6,f6
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // (5) e1 = e0 * e0 + 2^-34
-  (p6) fma.s1 f7=f7,f7,f9
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // (6) q2 = q1 + e1 * q1
-  (p6) fma.s1 f8=f7,f6,f6
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // (7) q = trunc(q2)
-  fcvt.fxu.trunc.s1 f8=f8
-  nop.i 0;;
-} { .mmi
-  // quotient will be in the least significant 32 bits of r8 (if b != 0)
-  getf.sig r8=f8
-  nop.m 0
-  nop.i 0;;
-}
-
-  // 32-BIT UNSIGNED INTEGER DIVIDE ENDS HERE
-
-{ .mmb
-  nop.m 0
-  nop.m 0
-  br.ret.sptk b0;;
-}
-
-.endp __udivsi3
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/arch/ia64/__umoddi3.S
--- a/extras/mini-os/arch/ia64/__umoddi3.S      Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,154 +0,0 @@
-.file "__umoddi3.s"
-
-// $FreeBSD: src/sys/libkern/ia64/__umoddi3.S,v 1.3 2003/02/11 20:15:11 
schweikh Exp $
-//  
-// Copyright (c) 2000, Intel Corporation
-// All rights reserved.
-//
-// Contributed 2/15/2000 by Marius Cornea, John Harrison, Cristina Iordache, 
-// Ted Kubaska, Bob Norin, and Shane Story of the Computational Software Lab, 
-// Intel Corporation.
-//
-// WARRANTY DISCLAIMER
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS 
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
-// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Intel Corporation is the author of this code, and requests that all
-// problem reports or change requests be submitted to it directly at
-// http://developer.intel.com/opensource.
-//
-
-.section .text
-
-  // 64-bit unsigned integer remainder
-
-.proc __umoddi3#
-.align 32
-.global __umoddi3#
-.align 32
-
-__umoddi3:
-
-{ .mii
-  alloc r31=ar.pfs,3,0,0,0
-  nop.i 0
-  nop.i 0
-} { .mmb
-
-  // 64-BIT UNSIGNED INTEGER REMAINDER BEGINS HERE
-
-  // general register used:
-  //    r32 - 64-bit unsigned integer dividend, called a below
-  //    r33 - 64-bit unsigned integer divisor, called b below
-  //    r8 - 64-bit unsigned integer result
-  // floating-point registers used: f6, f7, f8, f9, f10, f11, f12
-  // predicate registers used: p6
-
-  setf.sig f12=r32  // holds a in integer form
-  setf.sig f7=r33
-  nop.b 0;;
-} { .mfi
-  // get 2s complement of b
-  sub r33=r0,r33
-  fcvt.xuf.s1 f6=f12
-  nop.i 0
-} { .mfi
-  nop.m 0
-  fcvt.xuf.s1 f7=f7
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (1)
-  // y0 = 1 / b in f8
-  frcpa.s1 f8,p6=f6,f7
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (2)
-  // q0 = a * y0 in f10
-  (p6) fma.s1 f10=f6,f8,f0
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // Step (3)
-  // e0 = 1 - b * y0 in f9
-  (p6) fnma.s1 f9=f7,f8,f1
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (4)
-  // q1 = q0 + e0 * q0 in f10
-  (p6) fma.s1 f10=f9,f10,f10
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // Step (5)
-  // e1 = e0 * e0 in f11
-  (p6) fma.s1 f11=f9,f9,f0
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (6)
-  // y1 = y0 + e0 * y0 in f8
-  (p6) fma.s1 f8=f9,f8,f8
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (7)
-  // q2 = q1 + e1 * q1 in f9
-  (p6) fma.s1 f9=f11,f10,f10
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (8)
-  // y2 = y1 + e1 * y1 in f8
-  (p6) fma.s1 f8=f11,f8,f8
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (9)
-  // r2 = a - b * q2 in f10
-  (p6) fnma.s1 f10=f7,f9,f6
-  nop.i 0;;
-} { .mfi
-  // f7=-b
-  setf.sig f7=r33
-  // Step (10)
-  // q3 = q2 + r2 * y2 in f8
-  (p6) fma.s1 f8=f10,f8,f9
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // (11) q = trunc(q3)
-  fcvt.fxu.trunc.s1 f8=f8
-  nop.i 0;;
-}  { .mfi
-  nop.m 0
-  // (12) r = a + (-b) * q
-  xma.l f8=f8,f7,f12
-  nop.i 0;;
-}  { .mib
-  getf.sig r8=f8
-  nop.i 0
-  nop.b 0
-}
-
-  // 64-BIT UNSIGNED INTEGER REMAINDER ENDS HERE
-
-{ .mib
-  nop.m 0
-  nop.i 0
-  br.ret.sptk b0;;
-}
-
-.endp __umoddi3
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/arch/ia64/arch.mk
--- a/extras/mini-os/arch/ia64/arch.mk  Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-
-ARCH_CFLAGS := -mfixed-range=f2-f5,f12-f15,f32-f127 -mconstant-gp
-ARCH_CFLAGS += -O2
-ARCH_ASFLAGS := -x assembler-with-cpp
-ARCH_ASFLAGS += -mfixed-range=f2-f5,f12-f15,f32-f127 -fomit-frame-pointer
-ARCH_ASFLAGS += -fno-builtin -fno-common -fno-strict-aliasing -mconstant-gp
-
-ARCH_LDFLAGS = -warn-common
-
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/arch/ia64/common.c
--- a/extras/mini-os/arch/ia64/common.c Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,266 +0,0 @@
-/*
- * Done by Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
- *
- ****************************************************************************
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- ****************************************************************************
- *
- * Parts are taken from FreeBSD.
- *
- */
-
-
-#include <mini-os/os.h>
-#include <mini-os/types.h>
-#include <mini-os/lib.h>
-#include <mini-os/page.h>
-#include <xen/xen.h>
-#include <mini-os/privop.h>
-#include <xen/callback.h>
-#include <mini-os/ia64_cpu.h>
-#include <mini-os/hypervisor.h>
-#include <mini-os/events.h>
-#include <mini-os/console.h>
-#include <mini-os/time.h>
-#include <mini-os/xmalloc.h>
-
-
-/* For more console boot messages. */
-int bootverbose;
-
-/*
- * This structure contains start-of-day info, such as pagetable base pointer,
- * address of the shared_info structure, and things like that.
- */
-union start_info_union start_info_union;
-
-shared_info_t *HYPERVISOR_shared_info = (shared_info_t *)XSI_BASE;
-
-struct machine_fw machineFwG;
-
-/* This pointer is initialized in ia64.S with the address of the boot param
- * area passed by the bootloader. */
-struct xen_ia64_boot_param* ia64_boot_paramP;
-
-struct xen_ia64_boot_param ia64BootParamG;
-char boot_cmd_line[COMMAND_LINE_SIZE+1];
-
-
-void
-ia64_write_itr_i(ia64_pte_t* pteP, uint32_t reg, uint64_t vAddr,
-                 uint64_t ps, uint64_t pk)
-{
-       /* The virtual address. */
-       __asm __volatile("mov   cr.ifa=%0" :: "r"(vAddr));
-       /* The page size */
-       __asm __volatile("mov   cr.itir=%0;;" :: "r"((ps << IA64_ITIR_PS)|(pk 
<< IA64_ITIR_KEY)));
-       /* Put pte into instruction translation register. */ 
-       __asm __volatile("itr.i itr[%0]=%1" :: "r"(reg), "r"(*(uint64_t*)pteP));
-       /* Serialization */
-       __asm __volatile("srlz.i");
-}
-
-void
-map_pal_code(void)
-{
-       ia64_pte_t pte;
-
-       xen_set_virtual_psr_ic(0);
-       memset(&pte, 0, sizeof(pte));           /* Prepare the pte */
-       pte.pte_p = 1;                          /* present bit */
-       pte.pte_ma = PTE_MA_WB;                 /* memory attribute */
-       pte.pte_a = 1;                          /* accessed bit */
-       pte.pte_d = 1;                          /* dirty bit */
-       pte.pte_pl = PTE_PL_KERN;               /* privilege level */
-       pte.pte_ar = PTE_AR_RWX;                /* access rights */
-       pte.pte_ppn = ((uint64_t) __pa(machineFwG.ia64_pal_base)) >> 14;
-       pte.pte_ed = 0;                         /* exception deferral */
-
-       /*
-        * Must purge here because a itc/dtc with the same address
-        * may be in the tlb!
-        */
-       ia64_ptc_l(machineFwG.ia64_pal_base, PTE_PS_16K);
-       ia64_write_itr_i(&pte, IA64_TR_PAL,
-                        (uint64_t)machineFwG.ia64_pal_base,
-                        PTE_PS_16K, IA64_KEY_REG7);
-       xen_set_virtual_psr_ic(1);
-}
-
-/* In ivt.S */
-extern char hypervisor_callback;
-
-static void
-registerCallback(void)
-{
-       struct callback_register event =
-       {
-               .type = CALLBACKTYPE_event,
-               .address = (unsigned long)&hypervisor_callback,
-       };
-       HYPERVISOR_callback_op(CALLBACKOP_register, &event);
-}
-
-static void
-init_start_info(start_info_t* xen_start_info)
-{
-       /* Make a copy of the start_info structure */
-       start_info.nr_pages = xen_start_info->nr_pages;
-       start_info.shared_info = xen_start_info->shared_info;
-       start_info.flags = xen_start_info->flags;
-       start_info.store_mfn = xen_start_info->store_mfn;
-       start_info.store_evtchn = xen_start_info->store_evtchn;
-       start_info.console.domU.mfn = xen_start_info->console.domU.mfn;
-       start_info.console.domU.evtchn =
-                               xen_start_info->console.domU.evtchn;
-       start_info.pt_base = xen_start_info->pt_base;
-       start_info.nr_pt_frames = xen_start_info->nr_pt_frames;
-       start_info.mfn_list = xen_start_info->mfn_list;
-       start_info.mod_start = xen_start_info->mod_start;
-       start_info.mod_len = xen_start_info->mod_len;
-}
-
-static void
-init_boot_params(void)
-{
-       ia64BootParamG.command_line = ia64_boot_paramP->command_line;
-       ia64BootParamG.efi_systab = ia64_boot_paramP->efi_systab;
-       ia64BootParamG.efi_memmap = ia64_boot_paramP->efi_memmap;
-       ia64BootParamG.efi_memmap_size = ia64_boot_paramP->efi_memmap_size;
-       ia64BootParamG.efi_memdesc_size = ia64_boot_paramP->efi_memdesc_size;
-       ia64BootParamG.efi_memdesc_version =
-                               ia64_boot_paramP->efi_memdesc_version;
-       ia64BootParamG.console_info.num_cols =
-                               ia64_boot_paramP->console_info.num_cols;
-       ia64BootParamG.console_info.num_rows =
-                               ia64_boot_paramP->console_info.num_rows;
-       ia64BootParamG.console_info.orig_x =
-                               ia64_boot_paramP->console_info.orig_x;
-       ia64BootParamG.console_info.orig_y =
-                               ia64_boot_paramP->console_info.orig_y;
-       ia64BootParamG.fpswa = ia64_boot_paramP->fpswa;
-       ia64BootParamG.initrd_start = ia64_boot_paramP->initrd_start;
-       ia64BootParamG.initrd_size = ia64_boot_paramP->initrd_size;
-       ia64BootParamG.domain_start = ia64_boot_paramP->domain_start;
-       ia64BootParamG.domain_size = ia64_boot_paramP->domain_size;
-
-       /*
-        * Copy and parse the boot command line.
-        * Currently only a check of bootverbose is done.
-        */
-       memset(boot_cmd_line, 0, sizeof(boot_cmd_line));
-       strncpy(boot_cmd_line,
-               (char*)__va(ia64BootParamG.command_line), COMMAND_LINE_SIZE);
-       boot_cmd_line[COMMAND_LINE_SIZE - 1] = '\0';
-
-       /* Look for bootverbose. */
-       if (strstr(boot_cmd_line, "bootverbose"))
-               bootverbose = 1;
-}
-
-static void
-set_opt_feature(void)
-{
-       struct xen_ia64_opt_feature optf;
-
-       optf.cmd = XEN_IA64_OPTF_IDENT_MAP_REG7;
-       optf.on = XEN_IA64_OPTF_ON;
-       optf.pgprot = ((1 << PTE_OFF_P) | (1 << PTE_OFF_A) | (1 << PTE_OFF_D) |
-                      (PTE_MA_WB << PTE_OFF_MA) |
-                      (PTE_PL_KERN << PTE_OFF_PL) |
-                      (PTE_AR_RW << PTE_OFF_AR));
-       optf.key = IA64_KEY_REG7;
-       HYPERVISOR_opt_feature(&optf);
-}
-
-void
-arch_init(start_info_t *si)
-{
-       efi_time_t tm;
-       static int initialized;
-
-       if (initialized)
-               return;
-
-       init_start_info(si);
-
-       init_boot_params();
-
-       init_efi();
-
-       map_pal_code();
-
-       ia64_sal_init(machineFwG.ia64_sal_tableP);
-
-       if (efi_get_time(&tm)) {
-               printk("EFI-SystemTime: %d.%d.%d   %d:%d:%d",
-                      tm.Day, tm.Month, tm.Year,
-                      tm.Hour, tm.Minute, tm.Second);
-
-               if (tm.TimeZone == EFI_UNSPECIFIED_TIMEZONE)
-                       printk("   Timezone not specified!\n");
-               else
-                       printk("   TimeZone: %d Daylight: 0x%x\n",
-                              tm.TimeZone, tm.Daylight);
-       } else 
-               printk("efi_get_time() failed\n");
-
-       registerCallback();
-
-       set_opt_feature();
-
-       initialized = 1;
-}
-
-void
-arch_fini(void)
-{
-       /* TODO */
-}
-
-void
-arch_print_info(void)
-{
-       int major, minor;
-
-       minor = HYPERVISOR_xen_version(XENVER_version, 0);
-       major = minor >> 16;
-       minor &= ~0xffffffff;
-       printk("Running on Xen version: %d.%d\n", major, minor);
-#if 0
-       printk("machine addr of shared_info_t  : 0x%lx\n",
-              start_info.shared_info);
-       printk("machine page number of shared page: 0x%lx\n",
-              start_info.store_mfn);
-       printk("evtchn for store communication : %d\n",
-              start_info.store_evtchn);
-       printk("MACHINE address of console page: 0x%lx\n",
-              start_info.console.domU.mfn);
-       printk("evtchn for console messages    : %d\n",
-              start_info.console.domU.evtchn);
-#endif
-       if(strlen(boot_cmd_line) > 0)
-               printk("xen_guest_cmdline              : %s\n", boot_cmd_line);
-}
-
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/arch/ia64/debug.c
--- a/extras/mini-os/arch/ia64/debug.c  Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,168 +0,0 @@
-/* 
- ****************************************************************************
- * Done by Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx
- *
- * Description:        ia64 specific part of the mini-os
- *             Prints debug information on a crash of mini-os
- *
- * Parts are taken from FreeBSD.
- *
- ****************************************************************************
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
- * DEALINGS IN THE SOFTWARE.
- */
-
-#include <mini-os/os.h>
-
-static const char *ia64_vector_names[] = {
-       "VHPT Translation",                     /* 0 */
-       "Instruction TLB",                      /* 1 */
-       "Data TLB",                             /* 2 */
-       "Alternate Instruction TLB",            /* 3 */
-       "Alternate Data TLB",                   /* 4 */
-       "Data Nested TLB",                      /* 5 */
-       "Instruction Key Miss",                 /* 6 */
-       "Data Key Miss",                        /* 7 */
-       "Dirty-Bit",                            /* 8 */
-       "Instruction Access-Bit",               /* 9 */
-       "Data Access-Bit",                      /* 10 */
-       "Break Instruction",                    /* 11 */
-       "External Interrupt",                   /* 12 */
-       "Reserved 13",                          /* 13 */
-       "Reserved 14",                          /* 14 */
-       "Reserved 15",                          /* 15 */
-       "Reserved 16",                          /* 16 */
-       "Reserved 17",                          /* 17 */
-       "Reserved 18",                          /* 18 */
-       "Reserved 19",                          /* 19 */
-       "Page Not Present",                     /* 20 */
-       "Key Permission",                       /* 21 */
-       "Instruction Access Rights",            /* 22 */
-       "Data Access Rights",                   /* 23 */
-       "General Exception",                    /* 24 */
-       "Disabled FP-Register",                 /* 25 */
-       "NaT Consumption",                      /* 26 */
-       "Speculation",                          /* 27 */
-       "Reserved 28",                          /* 28 */
-       "Debug",                                /* 29 */
-       "Unaligned Reference",                  /* 30 */
-       "Unsupported Data Reference",           /* 31 */
-       "Floating-point Fault",                 /* 32 */
-       "Floating-point Trap",                  /* 33 */
-       "Lower-Privilege Transfer Trap",        /* 34 */
-       "Taken Branch Trap",                    /* 35 */
-       "Single Step Trap",                     /* 36 */
-       "Reserved 37",                          /* 37 */
-       "Reserved 38",                          /* 38 */
-       "Reserved 39",                          /* 39 */
-       "Reserved 40",                          /* 40 */
-       "Reserved 41",                          /* 41 */
-       "Reserved 42",                          /* 42 */
-       "Reserved 43",                          /* 43 */
-       "Reserved 44",                          /* 44 */
-       "IA-32 Exception",                      /* 45 */
-       "IA-32 Intercept",                      /* 46 */
-       "IA-32 Interrupt",                      /* 47 */
-       "Reserved 48",                          /* 48 */
-       "Reserved 49",                          /* 49 */
-       "Reserved 50",                          /* 50 */
-       "Reserved 51",                          /* 51 */
-       "Reserved 52",                          /* 52 */
-       "Reserved 53",                          /* 53 */
-       "Reserved 54",                          /* 54 */
-       "Reserved 55",                          /* 55 */
-       "Reserved 56",                          /* 56 */
-       "Reserved 57",                          /* 57 */
-       "Reserved 58",                          /* 58 */
-       "Reserved 59",                          /* 59 */
-       "Reserved 60",                          /* 60 */
-       "Reserved 61",                          /* 61 */
-       "Reserved 62",                          /* 62 */
-       "Reserved 63",                          /* 63 */
-       "Reserved 64",                          /* 64 */
-       "Reserved 65",                          /* 65 */
-       "Reserved 66",                          /* 66 */
-       "Reserved 67",                          /* 67 */
-};
-
-typedef struct
-{
-       uint64_t sof    :7;     /* 0-6 size of frame */
-       uint64_t sol    :7;     /* 7-13 size of locals (in + loc) */
-       uint64_t sor    :4;
-       uint64_t rrb_gr :7;
-       uint64_t rrb_fr :7;
-       uint64_t rrb_pr :6;
-       uint64_t res    :25;    /* reserved */
-       uint64_t v      :1;     /* The v bit */
-} ifs_t;
-
-void
-do_trap_error(trap_frame_t* tf)
-{
-       ifs_t curIfs;
-
-       printk("TRAP in mini-os:\n");
-       printk("  trap: %d (%s)\n", tf->trap_num,
-              ia64_vector_names[tf->trap_num]);
-       printk("  iip : 0x%.16lx  ifa: 0x%.16lx\n", tf->iip, tf->ifa);
-       printk("  ipsr: 0x%.16lx  ifs: 0x%.16lx\n", tf->ipsr, tf->ifs);
-       printk("  isr : 0x%.16lx\n", tf->isr);
-       printk("  gp  : 0x%.16lx  sp : 0x%.16lx\n", tf->gp, tf->sp);
-       printk("  rp  : 0x%.16lx  tp : 0x%.16lx\n", tf->b0, tf->tp);
-       printk("  b6  : 0x%.16lx  b7 : 0x%.16lx\n", tf->b6, tf->b7);
-       printk("  r8  : 0x%.16lx\n", tf->r8);
-       printk("  bsp : 0x%.16lx  rsc: 0x%.16lx\n", tf->bsp, tf->rsc);
-       printk("  r14 : 0x%.16lx  r15: 0x%.16lx\n", tf->r14, tf->r15);
-       printk("  r16 : 0x%.16lx  r17: 0x%.16lx\n", tf->r16, tf->r17);
-       printk("  r18 : 0x%.16lx  r19: 0x%.16lx\n", tf->r18, tf->r19);
-       printk("  r20 : 0x%.16lx  r21: 0x%.16lx\n", tf->r20, tf->r21);
-       printk("  r22 : 0x%.16lx  r23: 0x%.16lx\n", tf->r22, tf->r23);
-       printk("  r24 : 0x%.16lx  r25: 0x%.16lx\n", tf->r24, tf->r25);
-       printk("  r26 : 0x%.16lx  r27: 0x%.16lx\n", tf->r26, tf->r27);
-       printk("  r28 : 0x%.16lx  r29: 0x%.16lx\n", tf->r28, tf->r29);
-       printk("  r30 : 0x%.16lx  r31: 0x%.16lx\n", tf->r30, tf->r31);
-
-       __asm __volatile("flushrs;;");
-       curIfs = *((ifs_t*)((void*)(&tf->ifs)));
-       if (!curIfs.v)
-               printk(" ifs.v = 0");
-       else {
-               uint64_t* regP;
-               uint32_t  i;
-
-               printk("  cfm.sof: %d  cfm.sol: %d\n", curIfs.sof, curIfs.sol);
-               regP = (uint64_t *)(tf->bsp + tf->ndirty);
-               for (i = curIfs.sof; i != 0; ) {
-                       if (i <= (((uint64_t)regP & 0x000001f8) >> 3)) {
-                               regP -= i;
-                               i = 0;
-                               break;
-                       }
-                       i -= ((uint64_t)regP & 0x000001f8) >> 3;
-                       regP = (uint64_t *)((uint64_t)regP & ~0x000001ff) - 1;
-               }
-               for (i = 0; i < curIfs.sof; i++) {
-                       if (((uint64_t)regP & 0x000001f8) == 0x000001f8)
-                               regP++;
-                       printk("  r%d: 0x%lx\n",  i+32, *regP);
-                       regP++;
-               }
-       }
-       HYPERVISOR_shutdown(SHUTDOWN_poweroff);
-}
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/arch/ia64/efi.c
--- a/extras/mini-os/arch/ia64/efi.c    Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,218 +0,0 @@
-/*
- * Done by Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
- * The code is partly taken from FreeBSD.
- *
- ***************************************************************************
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- */
-
-
-#include <mini-os/os.h>
-#include <mini-os/efi.h>
-#include <mini-os/page.h>
-#include <mini-os/lib.h>
-#include <mini-os/console.h>
-
-
-/* The implementation is in fw.S. */
-extern uint64_t
-ia64_call_efi_func(uint64_t funcP,uint64_t a,uint64_t b,uint64_t c,uint64_t d);
-
-int
-efi_get_time(efi_time_t* tmP)
-{
-       memset(tmP, 0, sizeof(efi_time_t));
-       if (ia64_call_efi_func((uint64_t)machineFwG.efi.getTimeF,
-                              (uint64_t)tmP,
-                              (uint64_t)NULL, 0, 0) != EFI_SUCCESS) {
-               printk("efi.getTime() failed\n");
-               return 0;
-       }
-       return 1;
-}
-
-/*
- * The function compares two efi_guid_t and returns 0 on equality, otherwise 1.
- */
-static int
-efi_guid_cmp(efi_guid_t* a_le, efi_guid_t* b)
-{
-       return memcmp(a_le, b, sizeof(efi_guid_t));
-}
-
-void
-init_efi(void)
-{
-       efi_system_table_t* efiSysTableP;
-       int mdcnt, i, numConvMem;
-       efi_memory_descriptor_t *memdP, *mdP;
-       efi_status_t status;
-       char fwVendor[100] = "unknown";
-       efi_char16_t* fwP;
-       efi_runtime_services_t* rsP;
-
-       efi_configuration_table_t* confP = (efi_configuration_table_t*)0;
-       efi_guid_t sal = SAL_SYSTEM_TABLE_GUID;
-       efi_guid_t acpi = ACPI_TABLE_GUID;
-       efi_guid_t acpi20 = ACPI_20_TABLE_GUID;
-       
-       memset(&machineFwG, 0, sizeof(machineFwG));
-       /* Read the efi_system_table.  */
-       efiSysTableP = (efi_system_table_t*)__va(ia64BootParamG.efi_systab);
-       machineFwG.efi.efiSysTableP = efiSysTableP;
-       PRINT_BV("EfiSystemTable at: %p\n", efiSysTableP);
-       fwP = (uint16_t*) __va(efiSysTableP->FirmwareVendor);
-       if (fwP) {
-               for (i = 0; i < (int)sizeof(fwVendor) - 1 && *fwP; ++i)
-                       fwVendor[i] = *fwP++;
-               fwVendor[i] = '\0';
-       }
-       PRINT_BV("  EFI-FirmwareVendor        : %s\n", fwVendor);
-       PRINT_BV("  EFI-FirmwareRevision      : %d\n",
-                efiSysTableP->FirmwareRevision);
-       PRINT_BV("  EFI-SystemTable-Revision  : %d.%d\n",
-                efiSysTableP->Hdr.Revision >> 16,
-                efiSysTableP->Hdr.Revision & 0xffff);
-       rsP = (efi_runtime_services_t*)
-               __va(efiSysTableP->RuntimeServices);
-       mdcnt = ia64BootParamG.efi_memmap_size /
-               ia64BootParamG.efi_memdesc_size;
-       memdP = (efi_memory_descriptor_t*) __va(ia64BootParamG.efi_memmap);
-
-       PRINT_BV("EFI-Memorydescriptors: %d\n", mdcnt);
-
-       for (i = numConvMem = 0, mdP = memdP; i < mdcnt; i++,
-            mdP = NextMemoryDescriptor(mdP, ia64BootParamG.efi_memdesc_size)) {
-               /* Relocate runtime memory segments for firmware. */
-               PRINT_BV("  %d. Type: %x  Attributes: 0x%lx\n",
-                        i, mdP->Type, mdP->Attribute);
-               PRINT_BV("     PhysStart: 0x%lx  NumPages: 0x%lx\n",
-                        mdP->PhysicalStart, mdP->NumberOfPages);
-               switch (mdP->Type) {
-                       case EfiRuntimeServicesData:
-                               PRINT_BV("     -> EfiRuntimeServicesData\n");
-                               break;
-                       case EfiACPIReclaimMemory:
-                               PRINT_BV("     -> EfiACPIReclaimMemory\n");
-                               break;
-                       case EfiACPIMemoryNVS:
-                               PRINT_BV("     -> EfiACPIMemoryNVS\n");
-                               break;
-                       case EfiConventionalMemory:
-                               PRINT_BV("     -> EfiConventionalMemory\n");
-                               PRINT_BV("        start: 0x%lx end: 0x%lx\n",
-                                       mdP->PhysicalStart,
-                                       mdP->PhysicalStart +
-                                       mdP->NumberOfPages * EFI_PAGE_SIZE);
-                               if (numConvMem) {
-                                       printk("     Currently only one efi "
-                                               "memory chunk supported !!!\n");
-                                       break;
-                               }
-                               machineFwG.mach_mem_start = mdP->PhysicalStart;
-                               machineFwG.mach_mem_size =
-                                       mdP->NumberOfPages * EFI_PAGE_SIZE;
-                               numConvMem++;
-                               break;
-                       case EfiMemoryMappedIOPortSpace:
-                               PRINT_BV("     -> EfiMemMappedIOPortSpace\n");
-                               break;
-                       case EfiPalCode:
-                                       machineFwG.ia64_pal_base =
-                                       __va(mdP->PhysicalStart);
-                               PRINT_BV("     -> EfiPalCode\n"
-                                        "        start : %p\n",
-                                        machineFwG.ia64_pal_base);
-                               break;
-               }
-               /* I have to setup the VirtualStart address of every
-                * RUNTIME-area in preparing the later call of
-                * SetVirtualAddressMap() therewidth the efi stuff uses
-                * virtual addressing and the efi runtime functions
-                * may be called directly.
-                */
-               if (mdP->Attribute & EFI_MEMORY_RUNTIME) {
-                       if (mdP->Attribute & EFI_MEMORY_WB)
-                               mdP->VirtualStart = __va(mdP->PhysicalStart);
-                       else {
-                               if (mdP->Attribute & EFI_MEMORY_UC)
-                                       printk("efi_init: RuntimeMemory with "
-                                               "UC attribute !!!!!!\n");
-                                       /*
-                                       mdP->VirtualStart =
-                                       IA64_PHYS_TO_RR6(mdP->PhysicalStart);
-                                       */
-                       }
-               }
-       }
-       /* Now switch efi runtime stuff to virtual addressing. */
-       status = ia64_call_efi_physical(
-                       (void*)__va((uint64_t)rsP->SetVirtualAddressMap),
-                       ia64BootParamG.efi_memmap_size,
-                       ia64BootParamG.efi_memdesc_size,
-                       ia64BootParamG.efi_memdesc_version,
-                       ia64BootParamG.efi_memmap);
-       status = EFI_SUCCESS;
-       if (status != EFI_SUCCESS) {
-               printk("warning: unable to switch EFI into virtual "
-                      "(status=%lu)\n", status);
-               return;
-       }
-       /* Getting efi function pointer for getEfiTime. */
-       machineFwG.efi.getTimeF =
-               (efi_get_time_t)__va((uint64_t)rsP->GetTime);
-       /* Getting efi function pointer for resetSystem. */
-       machineFwG.efi.resetSystemF =
-               (efi_reset_system_t)__va((uint64_t)rsP->ResetSystem);
-
-       /* Scanning the Configuration table of the EfiSystemTable. */
-       PRINT_BV("NumberOfConfigTableEntries: %ld\n",
-                efiSysTableP->NumberOfTableEntries);
-
-       confP = (efi_configuration_table_t*)
-                       __va(efiSysTableP->ConfigurationTable);
-       for (i = 0; i < efiSysTableP->NumberOfTableEntries; i++) {
-               if (!efi_guid_cmp(&confP[i].VendorGuid, &sal)) {
-                       machineFwG.ia64_sal_tableP = (sal_system_table_t*)
-                               __va((uint64_t) confP[i].VendorTable);
-                       PRINT_BV("  Found SalSystemTable at: 0x%lx\n",
-                                (uint64_t) machineFwG.ia64_sal_tableP);
-                       continue;
-               }
-               if (!efi_guid_cmp(&confP[i].VendorGuid, &acpi)) {
-                       machineFwG.ia64_efi_acpi_table =
-                               __va((uint64_t) confP[i].VendorTable);
-                       PRINT_BV("  Found AcpiTable at:      0x%lx\n",
-                                (uint64_t) machineFwG.ia64_efi_acpi_table);
-                       continue;
-               }
-               if (!efi_guid_cmp(&confP[i].VendorGuid, &acpi20)) {
-                       machineFwG.ia64_efi_acpi20_table =
-                               __va((uint64_t) confP[i].VendorTable);
-                       PRINT_BV("  Found Acpi20Table at:    0x%lx\n",
-                                (uint64_t) machineFwG.ia64_efi_acpi20_table);
-                       continue;
-               }
-       }
-}
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/arch/ia64/fw.S
--- a/extras/mini-os/arch/ia64/fw.S     Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,499 +0,0 @@
-/*
- * Done by Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
- * Parts taken from FreeBSD.
- *
- ***************************************************************************
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- */
-
-
-#include <mini-os/asm.h>
-#include <mini-os/page.h>
-#include <mini-os/ia64_cpu.h>
-#include <mini-os/ia64_fpu.h>
-#include <mini-os/offsets.h>
-#include <mini-os/xen/xen.h>
-
-
-/*
- * ia64_change_mode:   change mode to/from physical mode
- *
- * Arguments:
- *     r14     psr for desired mode
- *
- * Modifies:
- *     r15-r20 scratch
- *     ar.bsp  translated to new mode
- *     sp      translated to new mode
- *     iip     translated to new mode
- */
-ENTRY(ia64_change_mode)
-       rsm     psr.i | psr.ic
-       mov     r19=ar.rsc              // save rsc while we change mode
-       tbit.nz p8,p9=r14,17            // Uses psr.dt-physical or virtual ?
-                       // p8 == true: switch to virtual
-                       // p9 == true: switch to physical
-       ;;
-       mov     ar.rsc=IA64_RSE_LAZY    // turn off RSE
-       mov     r16=rp
-       ;;
-       flushrs                         // clean the rse
-       srlz.i
-       ;;
-1:     mov     r15=ip
-       mov     r17=ar.bsp
-       mov     r18=ar.rnat
-       ;;
-       add     r15=2f-1b,r15           // address to rfi to
-               /* !!! must be the same like in  minios-ia64.lds */
-(p8)   movl    r20=(KERNEL_START - (1<<KERNEL_PHYS_START_SHIFT))
-       ;;
-                       // (p8): switch to virtual
-                       // (p9): switch to physical
-
-               // from virtual to physical
-(p9)   tpa     r15=r15                 // ip
-(p9)   tpa     r16=r16                 // rp
-(p9)   tpa     r17=r17                 // ar.bsp
-(p9)   tpa     sp=sp                   // sp
-       ;;              /* Needed only for assembler violate ... warnings. */
-               // from physical to virtual
-(p8)   add     r15=r20,r15             // ip
-(p8)   add     r16=r20,r16             // rp
-(p8)   add     r17=r20,r17             // ar.bsp
-(p8)   add     sp=r20,sp               // sp
-       ;;
-       mov     ar.bspstore=r17
-       mov     rp=r16
-       ;;
-       mov     ar.rnat=r18
-       mov     cr.iip=r15
-       mov     cr.ipsr=r14             // psr for new mode
-       mov     cr.ifs=r0
-       ;;
-       rfi
-       ;;
-2:     mov     ar.rsc=r19              // restore ar.rsc
-       ;;
-       br.ret.sptk.few rp              // now in new mode
-END(ia64_change_mode)
-
-/*
- * ia64_physical_mode:  change mode to physical mode
- *
- * Return:
- *  ret0  psr to restore
- *
- * Modifies:
- *  r15-r18 scratch
- *  ar.bsp  tranlated to physical mode
- *  psr.i cleared
- */
-ENTRY(ia64_physical_mode)
-       mov     r14=psr
-       movl    r15=(IA64_PSR_I|IA64_PSR_IT|IA64_PSR_DT|        \
-                       IA64_PSR_RT|IA64_PSR_DFL|IA64_PSR_DFH)
-       ;;
-       mov     ret0=r14
-       movl    r16=IA64_PSR_BN
-       ;;
-       andcm   r14=r14,r15     // clear various xT bits
-       ;;
-       or      r14=r14,r16     // make sure BN=1
-       or      ret0=ret0,r16   // make sure BN=1
-       ;;
-       br.cond.sptk.many ia64_change_mode
-END(ia64_physical_mode)
-
-/*
- * ia64_call_efi_physical:     call an EFI procedure in physical mode
- *
- * Arguments:
- *     in0             Address of EFI procedure descriptor
- *     in1-in5         Arguments to EFI procedure
- *
- * Return:
- *     ret0-ret3       return values from EFI
- *
- */
-ENTRY(ia64_call_efi_physical)
-       .prologue
-       .regstk 6,4,5,0
-       .save   ar.pfs,loc0
-       alloc   loc0=ar.pfs,6,4,5,0
-       ;;
-       .save   rp,loc1
-       mov     loc1=rp
-       ;;
-       .body
-       br.call.sptk.many rp=ia64_physical_mode
-       ;;
-
-       mov     loc2=r8                 // psr to restore mode
-       mov     loc3=gp                 // save kernel gp
-       ld8     r14=[in0],8             // function address
-       ;;
-       ld8     gp=[in0]                // function gp value
-       mov     out0=in1
-       mov     out1=in2
-       mov     out2=in3
-       mov     out3=in4
-       mov     out4=in5
-       mov     b6=r14
-       ;;
-       br.call.sptk.many rp=b6         // call EFI procedure
-       mov     gp=loc3                 // restore kernel gp
-       mov     r14=loc2                // psr to restore mode
-       ;;
-       br.call.sptk.many rp=ia64_change_mode
-       ;;
-       mov     rp=loc1
-       mov     ar.pfs=loc0
-       ;;
-       br.ret.sptk.many rp
-END(ia64_call_efi_physical)
-       
-
-/*
- * struct ia64_pal_result ia64_call_pal_static(uint64_t proc,
- *     uint64_t arg1, uint64_t arg2, uint64_t arg3)
- */
-ENTRY(ia64_call_pal_static)
-       
-       .regstk 4,5,0,0
-palret =       loc0
-entry  =       loc1
-rpsave =       loc2
-pfssave =      loc3
-psrsave        =       loc4
-
-       alloc   pfssave=ar.pfs,4,5,0,0
-       ;; 
-       mov     rpsave=rp
-
-       movl    entry=@gprel(ia64_pal_entry)
-1:     mov     palret=ip               // for return address
-       ;;
-       add     entry=entry,gp
-       mov     psrsave=psr
-       mov     r28=in0                 // procedure number
-       ;;
-       ld8     entry=[entry]           // read entry point
-       mov     r29=in1                 // copy arguments
-       mov     r30=in2
-       mov     r31=in3
-       ;;
-       mov     b6=entry
-       add     palret=2f-1b,palret     // calculate return address
-       ;;
-       mov     b0=palret
-       rsm     psr.i                   // disable interrupts
-       ;;
-       br.cond.sptk b6                 // call into firmware
-       ;;
-       ssm     psr.i                   // enable interrupts
-       ;;
-2:     mov     psr.l=psrsave
-       mov     rp=rpsave
-       mov     ar.pfs=pfssave
-       ;;
-       srlz.d
-       br.ret.sptk rp
-
-END(ia64_call_pal_static)
-
-/*
- * Call a efi function.
- * in0: func descriptor
- * in1: param1
- * ...
- * in5: param5
- */
-ENTRY(ia64_call_efi_func)
-       alloc   loc0=ar.pfs,6,3,5,0
-
-       mov     loc1=gp
-       mov     loc2=rp
-
-       mov     out0=in1
-       mov     out1=in2
-       mov     out2=in3
-       mov     out3=in4
-       mov     out4=in5
-
-       ld8     r14=[in0],8             // get function address
-       ;;
-       ld8     gp=[in0]                // function gp value
-       ;;
-       mov     b6=r14
-       br.call.sptk.many rp=b6         // call EFI procedure
-       
-       mov     ar.pfs=loc0
-       mov     gp=loc1
-       mov     rp=loc2
-       br.ret.sptk rp
-
-END(ia64_call_efi_func)
-
-
-/* Restore the context from the thread context.
- */
-ENTRY(restore_context)
-{      .mmi
-       invala
-       mov     ar.rsc=IA64_RSE_LAZY
-       add     r29=SW_SP,in0
-}
-       add     r30=SW_RP,in0
-       add     r31=SW_PR,in0
-       ;;
-       ld8     r12=[r29],SW_LC-SW_SP           // load sp
-       ld8     r16=[r30],SW_BSP-SW_RP          // load rp
-       ;;
-       ld8     r17=[r31],SW_RNAT-SW_PR         // load pr
-       ld8     r18=[r30],SW_PFS-SW_BSP         // load bsp
-       mov     rp=r16
-       ;;
-       ld8     r16=[r31],SW_R4-SW_RNAT         // load rnat
-       mov     pr=r17,-1                       // set pr
-       mov     ar.bspstore=r18
-       ;;
-       ld8     r18=[r30],SW_UNATA-SW_PFS       // load pfs
-       ld8     r17=[r29],SW_UNATB-SW_LC        // load lc
-       mov     ar.rnat=r16
-       ;;
-       ld8     r16=[r30],SW_R5-SW_UNATA        // load unat_a
-       mov     ar.pfs=r18
-       mov     ar.lc=r17
-       ;;
-       ld8.fill r4=[r31],SW_R6-SW_R4           // load r4
-       mov     ar.unat=r16
-       ;;
-       ld8.fill r5=[r30],SW_R7-SW_R5           // load r5
-       ld8     r16=[r29],SW_B3-SW_UNATB        // load unat_b
-       mov     ar.rsc=IA64_RSE_EAGER
-       ;;
-       ld8.fill r6=[r31],SW_B1-SW_R6           // load r6
-       ld8.fill r7=[r30],SW_B2-SW_R7           // load r7
-       ;;
-       ld8     r17=[r31],SW_B4-SW_B1           // load b1
-       ld8     r18=[r30],SW_B5-SW_B2           // load b2
-       mov     ar.unat=r16                     // unat_b
-       ;;
-       ld8     r16=[r29],SW_F2-SW_B3           // load b3
-       mov     b1=r17
-       mov     b2=r18
-       ;;
-       ld8     r17=[r31],SW_F3-SW_B4           // load b4
-       ld8     r18=[r30],SW_F4-SW_B5           // load b5
-       mov     b3=r16
-       ;;
-       ldf.fill f2=[r29]                       // load f2
-       mov     b4=r17
-       mov     b5=r18
-       ;;
-       ldf.fill f3=[r31],SW_F5-SW_F3           // load f3
-       ldf.fill f4=[r30],SW_F4-SW_F2           // load f4
-       ;;
-       ldf.fill f5=[r31],SW_F5-SW_F3           // load f5
-       ldf.fill f16=[r30],SW_F4-SW_F2          // load f16
-       ;;
-       ldf.fill f17=[r31],SW_F5-SW_F3          // load f17
-       ldf.fill f18=[r30],SW_F4-SW_F2          // load f18
-       ;;
-       ldf.fill f19=[r31],SW_F5-SW_F3          // load f19
-       ldf.fill f20=[r30],SW_F4-SW_F2          // load f20
-       ;;
-       ldf.fill f21=[r31],SW_F5-SW_F3          // load f21
-       ldf.fill f22=[r30],SW_F4-SW_F2          // load f22
-       ;;
-       ldf.fill f23=[r31],SW_F5-SW_F3          // load f23
-       ldf.fill f24=[r30],SW_F4-SW_F2          // load f24
-       ;;
-       ldf.fill f25=[r31],SW_F5-SW_F3          // load f25
-       ldf.fill f26=[r30],SW_F4-SW_F2          // load f26
-       ;;
-       ldf.fill f27=[r31],SW_F5-SW_F3          // load f27
-       ldf.fill f28=[r30],SW_F4-SW_F2          // load f28
-       ;;
-       ldf.fill f29=[r31],SW_F5-SW_F3          // load f29
-       ldf.fill f30=[r30],SW_F4-SW_F2          // load f30
-       ;;
-       ldf.fill f31=[r30],SW_F4-SW_F2          // load f31
-       add             r8=1,r0
-       br.ret.sptk     rp
-       ;;
-END(restore_context)
-
-/*
- * void switch_context(struct thread* old, struct thread* new)
- */
-ENTRY(switch_context)
-
-       mov     ar.rsc=IA64_RSE_LAZY
-       mov     r16=ar.unat
-       add     r31=SW_UNATB,in0
-       add     r30=SW_SP,in0
-       ;;
-{      .mmi
-       flushrs
-       st8     [r30]=sp,SW_RP-SW_SP            // sp
-       mov     r17=rp
-       ;;
-}
-       st8     [r31]=r16,SW_PR-SW_UNATB        // unat (before)
-       st8     [r30]=r17,SW_BSP-SW_RP          // rp
-       mov     r16=pr
-       ;;
-       st8     [r31]=r16,SW_PFS-SW_PR          // pr
-       mov     r17=ar.bsp
-       mov     r16=ar.pfs
-       ;;
-       st8     [r31]=r16,SW_RNAT-SW_PFS        // save pfs
-       st8     [r30]=r17,SW_R4-SW_BSP          // save bsp
-       mov     r16=ar.rnat
-       ;;
-       st8     [r31]=r16,SW_R5-SW_RNAT         // save rnat
-       mov     ar.rsc=IA64_RSE_EAGER
-       ;;
-{      .mmi
-       .mem.offset     8,0
-       st8.spill       [r30]=r4,SW_R6-SW_R4    // r4
-       .mem.offset     16,0
-       st8.spill       [r31]=r5,SW_R7-SW_R5    // r5
-       mov             r16=b1
-       ;;
-}
-{      .mmi
-       .mem.offset     8,0
-       st8.spill       [r30]=r4,SW_B1-SW_R6    // r6
-       .mem.offset     16,0
-       st8.spill       [r31]=r5,SW_B2-SW_R7    // r7
-       mov             r17=b2
-       ;;
-}
-       st8     [r30]=r16,SW_UNATA-SW_B1        // b1
-       st8     [r31]=r17,SW_B3-SW_B2           // b2
-       mov     r18=ar.unat
-       mov     r19=b3
-       mov     r20=b4
-       mov     r21=b5
-       ;;
-       st8     [r30]=r18,SW_B4-SW_UNATA        // unat (after)
-       st8     [r31]=r19,SW_B5-SW_B3           // b3
-       ;;
-       st8     [r30]=r20,SW_LC-SW_B4           // b4
-       st8     [r31]=r21,SW_F2-SW_B5           // b5
-       mov     r17=ar.lc
-       ;;
-       st8             [r30]=r17,SW_F3-SW_LC   // ar.lc
-       stf.spill       [r31]=f2,SW_F4-SW_F2
-       ;;
-       stf.spill       [r30]=f3,SW_F5-SW_F3
-       stf.spill       [r31]=f4,SW_F4-SW_F2
-       ;;
-       stf.spill       [r30]=f5,SW_F5-SW_F3
-       stf.spill       [r31]=f16,SW_F4-SW_F2
-       ;;
-       stf.spill       [r30]=f17,SW_F5-SW_F3
-       stf.spill       [r31]=f18,SW_F4-SW_F2
-       ;;
-       stf.spill       [r30]=f19,SW_F5-SW_F3
-       stf.spill       [r31]=f20,SW_F4-SW_F2
-       ;;
-       stf.spill       [r30]=f21,SW_F5-SW_F3
-       stf.spill       [r31]=f22,SW_F4-SW_F2
-       ;;
-       stf.spill       [r30]=f23,SW_F5-SW_F3
-       stf.spill       [r31]=f24,SW_F4-SW_F2
-       ;;
-       stf.spill       [r30]=f25,SW_F5-SW_F3
-       stf.spill       [r31]=f26,SW_F4-SW_F2
-       ;;
-       stf.spill       [r30]=f27,SW_F5-SW_F3
-       stf.spill       [r31]=f28,SW_F4-SW_F2
-       ;;
-       stf.spill       [r30]=f29,SW_F4-SW_F2
-       stf.spill       [r31]=f30
-       ;;
-       stf.spill       [r30]=f31
-       add             r8=0,r0
-       mf
-//     br.ret.sptk     rp
-
-{      .mfb
-       mov             r32=r33
-       nop             0
-       br.sptk         restore_context
-       ;;
-}
-
-END(switch_context)
-
-/*
- * The function is used to start a new thread.
- */
-ENTRY(thread_starter)
-
-       .prologue
-       .save   ar.pfs,loc0
-       alloc   loc0=ar.pfs,0,1,1,0
-       ;;
-       .body
-       ;;
-       mov     b7=r4                   // the function pointer
-       mov     out0=r6                 // the argument
-       ;;
-       br.call.sptk.many rp=b7         // Call the thread function
-       ;;
-       br.call.sptk.many rp=exit_thread        // call exit_thread
-       ;;
-END(thread_starter)
-
-ENTRY(__hypercall)
-       mov r2=r37
-       break 0x1000
-       br.ret.sptk.many b0
-       ;;
-END(__hypercall)
-
-/*
- * Stub for suspend.
- * Just force the stacked registers to be written in memory.
- */
-ENTRY(xencomm_arch_hypercall_suspend)
-       ;;
-       alloc   r20=ar.pfs,0,0,6,0
-       mov     r2=__HYPERVISOR_sched_op
-       ;;
-       /* We don't want to deal with RSE.  */
-       flushrs
-       mov     r33=r32
-       mov     r32=2           // SCHEDOP_shutdown
-       ;;
-       break   0x1000
-       ;;
-       br.ret.sptk.many b0
-END(xencomm_arch_hypercall_suspend)
-
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/arch/ia64/gen_off.c
--- a/extras/mini-os/arch/ia64/gen_off.c        Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,141 +0,0 @@
-/*
- * Copyright (c) 2007 Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
- *
- ******************************************************************************
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- */
-#include <mini-os/types.h>
-#include <mini-os/sched.h>
-#include <xen/xen.h>
-#include <xen/arch-ia64.h>
-
-#define DEFINE(sym, val)                                       \
-  asm volatile("\n->" sym " %0 /* " #val " */": : "i" (val))
-#define DEFINE_STR2(sym, pfx, val)                             \
-  asm volatile("\n->" sym " " pfx "%0" : : "i"(val));
-
-#define SZ(st,e) sizeof(((st *)0)->e)
-#define OFF(st,e,d,o)                          \
-  DEFINE(#d, offsetof(st, e) + o);             \
-  DEFINE(#d "_sz", SZ(st,e ));                 \
-  DEFINE_STR2(#d "_ld", "ld", SZ(st, e));      \
-  DEFINE_STR2(#d "_st", "st", SZ(st, e));                      
-
-#define TFOFF(e,d) OFF(trap_frame_t, e, d, 0)
-#define SIZE(st,d) DEFINE(#d, sizeof(st))
-
-#define SWOFF(e,d) OFF(struct thread, e, d, 0)
-
-/* shared_info_t from xen/xen.h */
-#define SI_OFF(e, d) OFF(shared_info_t, e, d,0)
-/* mapped_regs_t from xen/arch-ia64.h */
-#define MR_OFF(e, d) OFF(mapped_regs_t, e, d, XMAPPEDREGS_OFS)
-
-int
-main(int argc, char ** argv)
-{
-       TFOFF(cfm, TF_CFM);
-       TFOFF(pfs, TF_PFS);
-       TFOFF(bsp, TF_BSP);
-       TFOFF(rnat, TF_RNAT);
-       TFOFF(csd, TF_CSD);
-       TFOFF(ccv, TF_CCV);
-       TFOFF(unat, TF_UNAT);
-       TFOFF(fpsr, TF_FPSR);
-       TFOFF(pr, TF_PR);       
-
-       TFOFF(sp, TF_SP);
-       TFOFF(gp, TF_GP);
-       TFOFF(tp, TF_TP);
-
-       TFOFF(r2, TF_GREG2);
-       TFOFF(r3, TF_GREG3);
-       TFOFF(r16, TF_GREG16);
-       TFOFF(r17, TF_GREG17);
-
-       TFOFF(b0, TF_BREG0);
-       TFOFF(b6, TF_BREG6);
-       TFOFF(b7, TF_BREG7);
-
-       TFOFF(f6, TF_FREG6);
-       TFOFF(f7, TF_FREG7);
-
-       TFOFF(rsc, TF_RSC);
-       TFOFF(ndirty, TF_NDIRTY);
-       TFOFF(ssd, TF_SSD);
-       TFOFF(iip, TF_IIP);
-       TFOFF(ipsr, TF_IPSR);
-       TFOFF(ifs, TF_IFS);
-       TFOFF(trap_num, TF_TRAP_NUM);
-
-       TFOFF(ifa, TF_IFA);
-       TFOFF(isr, TF_ISR);
-       TFOFF(iim, TF_IIM);
-
-       SIZE(trap_frame_t, TF_SIZE);
-
-       SIZE(struct thread, SW_SIZE);
-       SWOFF(regs.unat_b, SW_UNATB);
-       SWOFF(regs.sp, SW_SP);
-       SWOFF(regs.rp, SW_RP);
-       SWOFF(regs.pr, SW_PR);
-       SWOFF(regs.pfs, SW_PFS);
-       SWOFF(regs.bsp, SW_BSP);
-       SWOFF(regs.rnat, SW_RNAT);
-       SWOFF(regs.lc, SW_LC);
-       //SWOFF(regs.fpsr, SW_FPSR);
-       //SWOFF(regs.psr, SW_PSR);
-       //SWOFF(regs.gp, SW_GP);
-       SWOFF(regs.unat_a, SW_UNATA);
-        SWOFF(regs.r4, SW_R4);
-        SWOFF(regs.r5, SW_R5);
-        SWOFF(regs.r6, SW_R6);
-        SWOFF(regs.r7, SW_R7);
-        SWOFF(regs.b1, SW_B1);
-        SWOFF(regs.b2, SW_B2);
-        SWOFF(regs.b3, SW_B3);
-        SWOFF(regs.b4, SW_B4);
-        SWOFF(regs.b5, SW_B5);
-        SWOFF(regs.f2, SW_F2);
-        SWOFF(regs.f3, SW_F3);
-        SWOFF(regs.f4, SW_F4);
-        SWOFF(regs.f5, SW_F5);
-
-       SI_OFF(arch.start_info_pfn, START_INFO_PFN);
-       MR_OFF(interrupt_mask_addr, XSI_PSR_I_ADDR_OFS);
-       MR_OFF(interrupt_collection_enabled, XSI_PSR_IC_OFS);
-       MR_OFF(ipsr, XSI_IPSR_OFS);
-       MR_OFF(iip, XSI_IIP_OFS);
-       MR_OFF(ifs, XSI_IFS_OFS);
-       MR_OFF(ifa, XSI_IFA_OFS);
-       MR_OFF(iim, XSI_IIM_OFS);
-       MR_OFF(iim, XSI_IIM_OFS);
-       MR_OFF(iipa, XSI_IIPA_OFS);
-       MR_OFF(isr, XSI_ISR_OFS);
-       MR_OFF(banknum, XSI_BANKNUM_OFS);
-       MR_OFF(bank1_regs[0], XSI_BANK1_R16_OFS);
-       MR_OFF(precover_ifs, XSI_PRECOVER_IFS_OFS);
-
-       return 0;
-}
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/arch/ia64/ia64.S
--- a/extras/mini-os/arch/ia64/ia64.S   Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,233 +0,0 @@
-/*
- * Copyright (c) 2007 Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
- *
- *****************************************************************************
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
- * DEALINGS IN THE SOFTWARE.
- */
-
-
-
-#include <mini-os/asm.h>
-#include <mini-os/page.h>
-#include <mini-os/ia64_cpu.h>
-#include <mini-os/ia64_fpu.h>
-#include <mini-os/privop.h>
-#include <mini-os/offsets.h>
-
-
-
-       /*
-        * Allocate kernel stack area.
-        * This is used for stack pointer (goes down from kstack+PAGE_SIZE) and
-        * RSE (goes up from kstack).
-        */
-       .section .data.start,"aw"
-       .global kstack
-       .align  PAGE_SIZE
-kstack:        .space KSTACK_PAGES * PAGE_SIZE
-
-       .text
-
-       /*
-        * Start the kernel.
-        * r28 points to the address of the boot parameter area, given
-        * from the bootloader.
-        * Execution reaches here in physical mode.
-        */
-ENTRY(_start)
-       .prologue
-       .save rp, r0            // terminate unwind chain with a NULL rp
-       .body
-
-       alloc   loc0=ar.pfs,0,1,1,0
-
-       rsm psr.i | psr.ic
-       ;;
-       srlz.i
-       ;;
-
-       /*
-        * Initialize mini-os region registers:
-        * Currently only region registers 5 and 7 are used for addressing.
-        * rr[5] : virtual kernel address space
-        * rr[7] : directly mapped physically addresses.
-        */
-       movl    r2=0<<IA64_RR_IDX_POS
-       movl    r3=1<<IA64_RR_IDX_POS
-       ;;
-       mov     rr[r2]=r0
-       mov     rr[r3]=r0
-       ;;
-       movl    r2=2<<IA64_RR_IDX_POS
-       movl    r3=3<<IA64_RR_IDX_POS
-       ;;
-       mov     rr[r2]=r0
-       mov     rr[r3]=r0
-       ;;
-       movl    r2=4<<IA64_RR_IDX_POS
-       movl    r3=6<<IA64_RR_IDX_POS
-       ;;
-       mov     rr[r2]=r0
-       mov     rr[r3]=r0
-       ;;
-       // Wired memory for kernel data and text.
-       movl    r2=IA64_RR_VAL(KERNEL_TR_PAGE_SIZE,0)
-       movl    r3=5<<IA64_RR_IDX_POS           // region 5
-       ;;
-       mov     rr[r3]=r2
-       ;;
-       /*
-        * Region 7 addresses are only for directly mapped physically
-        * addresses.
-        */
-       movl    r2=IA64_RR_VAL(PTE_PS_16K,0)
-       movl    r3=7<<IA64_RR_IDX_POS           // region 7
-       ;;
-       mov     rr[r3]=r2
-       ;;
-       /*
-        * Setup protection keys for region 5 and 7.
-        */
-       mov     r2=(IA64_KEY_REG5 << IA64_PKR_KEY) | IA64_PKR_VALID
-       mov     r3=(IA64_KEY_REG7 << IA64_PKR_KEY) | IA64_PKR_VALID
-       mov     r14=0x1
-       ;;
-       mov     pkr[r0]=r2      /* Region 5 */
-       mov     pkr[r14]=r3     /* Region 7 */
-       ;;
-       /*
-        * Now pin mappings into the TLB for kernel text and data
-        */
-       mov     r18=(KERNEL_TR_PAGE_SIZE<<IA64_ITIR_PS)| \
-                       (IA64_KEY_REG5<<IA64_ITIR_KEY)
-       movl    r17=KERNEL_START
-       ;;
-       mov     cr.itir=r18
-       mov     cr.ifa=r17
-       mov     r16=IA64_TR_KERNEL
-       mov     r3=ip
-       movl    r18=PTE_KERNEL_ATTR
-       ;;
-       dep     r2=0,r3,0,KERNEL_TR_PAGE_SIZE
-       ;;
-       or      r18=r2,r18
-       ;;
-       srlz.i
-       ;;
-       itr.i   itr[r16]=r18
-       ;;
-       itr.d   dtr[r16]=r18
-       ;;
-       srlz.i
-
-       /*  Switch into virtual mode */
-       movl    r16=STARTUP_PSR
-       ;;
-       mov     cr.ipsr=r16
-       movl    r17=1f
-       ;;
-       mov     cr.iip=r17
-       mov     cr.ifs=r0
-       ;;
-       rfi
-       ;;
-1:     /* now we are in virtual mode */
-
-       movl    r3=ia64_trap_table
-       ;;
-       mov     cr.iva=r3
-       ;;
-
-       movl    r2=IA64_FPSR_DEFAULT
-       movl    r3=IA64_DCR_DEFAULT
-       ;;
-       srlz.i
-       movl    gp=__gp
-
-       mov     ar.fpsr=r2
-       mov     cr.dcr=r3
-       ;;
-       movl    r2=kstack
-       movl    r5=KSTACK_PAGES * PAGE_SIZE - 16
-       mov     ar.rsc=0        // place RSE in enforced lazy mode
-       ;;
-       loadrs                  // clear the dirty partition
-       ;;
-       mov     ar.bspstore=r2  // establish the new RSE stack
-       add     sp=r2,r5
-       ;;
-       mov     ar.rsc=IA64_RSE_EAGER   // place RSE in eager mode
-
-       ;;
-       movl    r2=ia64_boot_paramP
-       mov     r3=7            // make address virtual region 7.
-       ;;
-       dep     r28=r3,r28,61,3
-       ;;
-                               // save the address of the boot param area
-                               // passed by the bootloader
-       st8     [r2]=r28
-       ;;
-
-       /* Set xsi base. I use here XSI_BASE. */
-#define FW_HYPERCALL_SET_SHARED_INFO_VA                 0x600
-       mov r2=FW_HYPERCALL_SET_SHARED_INFO_VA
-       movl r28=XSI_BASE
-       ;;
-       break 0x1000
-       ;;
-       /*
-        * I set up here the pointer to the global start_info structure.
-        * This structure will be initialized in arch_init().
-        */
-       movl    out0=start_info_union
-               // Prepare out0 - the pointer to start_info_t.
-       movl    r14=XSI_BASE
-       ;;
-       add     r15=START_INFO_PFN,r14  // add offset to XSI_BASE
-       ;;
-       START_INFO_PFN_ld       r14=[r15]       // load the start_info_pfn
-       add     r16=7, r0
-       ;;
-       shl     r15=r14,PAGE_SHIFT_XEN_16K      // pfn << PAGE_SHIFT_XEN_16K
-       shl     r16=r16,IA64_RR_IDX_POS         // (7<<IA64_RR_IDX_POS)
-       ;;
-       or      out0=r16, r15                   // make a region 7 address
-       ;;
-       ssm     psr.i | psr.ic
-       ;;
-       srlz.i
-       ;;
-       br.call.sptk.many rp=start_kernel
-       ;;
-       add     r2=3,r0
-       ;;
-       ld8     r3=[r2]
-       ;;
-
-self:  hint @pause
-       br.sptk.many self               // endless loop
-END(_start)
-
-
-ENTRY(do_nop)
-       nop     0x01
-       add     r15=1,r15
-       br.ret.sptk.many rp
-END(do_nop)
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/arch/ia64/ivt.S
--- a/extras/mini-os/arch/ia64/ivt.S    Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,774 +0,0 @@
-/*
- * Copyright (c) 2007 Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
- * Description: ia64 specific trap handling.
- *
- ****************************************************************************
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
- * DEALINGS IN THE SOFTWARE.
- *
- */
-
-
-#include <mini-os/asm.h>
-#include <mini-os/page.h>
-#include <mini-os/ia64_cpu.h>
-#include <mini-os/privop.h>
-#include <mini-os/offsets.h>
-
-
-/* General register usage in interrupt handling:
- *     r16, r17, ... are used for input parameters of sub-routines
- *     r29:    used to access memory which may raise nested TLB fault
- *     r30:    b0 save register
- *     r31:    predicates save register
- *     p30,p31:        used for TLB stuff: (0,1)=data, (1,0)=instruction
- */
-
-
-#define FILL_FP_PAIR(f1, f2, b1, b2)   \
-       ldf.fill        f1=[b1],32      ;\
-       ldf.fill        f2=[b2],32      ;\
-       ;;
-
-#define SPILL_FP_PAIR(f1, f2, b1, b2)  \
-       stf.spill       [b1]=f1,32      ;\
-       stf.spill       [b2]=f2,32      ;\
-       ;;
-
-#define FILL_REG_PAIR(r1, r2, b1, b2)  \
-       ld8.fill        r1=[b1],16      ;\
-       ld8.fill        r2=[b2],16      ;\
-       ;;
-
-#define SPILL_REG_PAIR(r1, r2, b1, b2) \
-       .mem.offset 0,0                 ;\
-       st8.spill       [b1]=r1,16      ;\
-       .mem.offset 8,0                 ;\
-       st8.spill       [b2]=r2,16      ;\
-       ;;
-
-
-/**
- *     The function does a store of the current processor context
- *     to the given exception frame address.
- *     These are some special and the scratch registers for calling
- *     C-functions later.
- *     The bspstore will be the same. A clean RSE is made with the
- *     cover instruction.
- *     
- *     The return is done through a jump to the next bundle after ip (r16).
- *
- *     Used register: r16, r18, r19, r20, r21, r22 of bank 0
- *
- *     @param: r16 ip of the bundle with the jump.
- *     @param: r18 pointer to the trap frame.
- *     @param: r23 trap number/err val
- *
- */
-
-ENTRY(save_tf_rse_switch)
-       movl    r21=XSI_IPSR            // XEN !!
-       movl    r22=XSI_IIP             // XEN !!
-       ;;
-       ld8     r21=[r21]               // XEN.ipsr
-       ld8     r22=[r22];;             // XEN.iip
-       add     r19=TF_IPSR,r18
-       add     r20=TF_IIP,r18
-       ;;
-       st8     [r19]=r21               // store cr.ipsr
-       st8     [r20]=r22               // store cr.iip
-       ;;
-       //// r16 return jump pointer, r18 - trap frame base, 
-       add     r19=TF_UNAT,r18
-       mov     r20=ar.unat
-       ;;
-       st8     [r19]=r20               // store scratch unat
-       ;;
-
-       add     r19=TF_GP,r18
-       add     r20=TF_SP,r18
-       ;;
-       st8     [r19]=gp,TF_TP-TF_GP    // store gp
-       st8     [r20]=sp,TF_PR-TF_SP    // store sp
-       mov     r21=pr
-       ;;
-       st8     [r19]=r13               // store tp
-       st8     [r20]=r21               // store pr
-       ;;
-       add     r19=TF_GREG2,r18        // Now first general regs.
-       add     r20=TF_GREG3,r18
-       ;;
-       SPILL_REG_PAIR( r2, r3,r19,r20)
-       SPILL_REG_PAIR( r8, r9,r19,r20)
-       SPILL_REG_PAIR(r10,r11,r19,r20)
-       SPILL_REG_PAIR(r14,r15,r19,r20)
-       ;;
-       mov     r14=r18         // move trap frame base for bsw
-       mov     r15=r16         // save return address
-       ;;
-       //bsw.1         // switch to bank 1 for saving these registers.
-       movl r30=XSI_BANKNUM            // Switch to bank 1.
-       mov r31=1;;
-       st4 [r30]=r31
-       ;;
-       /*
-        * On XEN the hypervisor has stored the bank 1 registers
-        * r16-r31. I must reload these registers here to get
-        * access.
-        */
-       movl r30=XSI_BANK1_R16;
-       movl r31=XSI_BANK1_R16+8;; 
-       ld8 r16=[r30],16; ld8 r17=[r31],16;;
-       ld8 r18=[r30],16; ld8 r19=[r31],16;;
-       ld8 r20=[r30],16; ld8 r21=[r31],16;;
-       ld8 r22=[r30],16; ld8 r23=[r31],16;;
-       ld8 r24=[r30],16; ld8 r25=[r31],16;;
-       ld8 r26=[r30],16; ld8 r27=[r31],16;;
-       ld8 r28=[r30],16; ld8 r29=[r31],16;;
-       ld8 r30=[r30]; ld8 r31=[r31];;
-       add     r2=TF_GREG16,r14
-       add     r3=TF_GREG17,r14
-       ;;
-       SPILL_REG_PAIR(r16,r17,r2,r3)
-       SPILL_REG_PAIR(r18,r19,r2,r3)
-       SPILL_REG_PAIR(r20,r21,r2,r3)
-       SPILL_REG_PAIR(r22,r23,r2,r3)
-       SPILL_REG_PAIR(r24,r25,r2,r3)
-       SPILL_REG_PAIR(r26,r27,r2,r3)
-       SPILL_REG_PAIR(r28,r29,r2,r3)
-       SPILL_REG_PAIR(r30,r31,r2,r3)
-       ;;
-       //bsw.0                         // back to interrupt bank 0
-       movl r2=XSI_BANKNUM;;
-       st4 [r2]=r0
-       ;;
-       mov     r18=r14                 // restore context pointer
-       mov     r16=r15                 // restore return address
-       ;;
-       //// r16 return jump pointer, r18 - trap frame base, 
-       add     r19=TF_CCV,r18
-       add     r20=TF_CSD,r18
-       mov     r21=ar.ccv
-       mov     r22=ar.csd
-       ;;
-       st8     [r19]=r21               // ar.ccv
-       st8     [r20]=r22               // ar.csd
-       ;;
-       add     r19=TF_SSD,r18
-       mov     r21=ar.ssd
-       ;;
-       st8     [r19]=r21               // ar.ssd
-       ;;
-       add     r19=TF_FREG6,r18
-       add     r20=TF_FREG7,r18
-       ;;
-       SPILL_FP_PAIR(f6, f7, r19, r20)
-       SPILL_FP_PAIR(f8, f9, r19, r20)
-       SPILL_FP_PAIR(f10, f11, r19, r20)
-
-       add     r19=TF_BREG0,r18        // b0, b6, b7
-       add     r20=TF_BREG6,r18
-       mov     r21=b0
-       mov     r22=b6
-       ;;
-       st8     [r19]=r21,TF_BREG7-TF_BREG0     // store b0
-       st8     [r20]=r22,16            // store b6
-       ;;
-       mov     r21=b7
-       ;;
-       st8     [r19]=r21               // store b7
-
-       //// r16 return jump pointer, r18 - trap frame base, 
-
-               // Read and save RSC, PFS
-       add     r19=TF_PFS,r18
-       add     r20=TF_RSC,r18
-       mov     r21=ar.pfs
-       mov     r22=ar.rsc
-       ;;
-{      .mmb
-       st8     [r19]=r21               // store ar.pfs
-       st8     [r20]=r22               // store ar.rsc
-               // Issue cover instruction
-       cover           // must be the last instruction in bundle
-       //XEN_HYPER_COVER
-       ;;
-}
-               // Read and save IFS
-       add     r19=TF_IFS,r18
-       add     r20=TF_CFM,r18
-               /* xen special handling for possibly lazy cover */
-       movl    r8=XSI_PRECOVER_IFS;
-       ;;
-       ld8     r21=[r8]
-       ;;
-       st8     [r19]=r21               // store cr.ifs
-       dep.z   r22=r21,0,38            // copy ifm part from ifs.ifm
-       ;;
-       st8     [r20]=r22               // store cfm
-               // RSE in enforced lazy mode
-       mov     ar.rsc=IA64_RSE_LAZY
-       ;;
-               // Read and save BSPSTORE and RNAT
-       add     r19=TF_BSP,r18
-       add     r20=TF_RNAT,r18
-       mov     r21=ar.bspstore
-       mov     r22=ar.rnat
-       ;;
-       st8     [r19]=r21                       // store ar.bspstore
-       st8     [r20]=r22                       // store ar.rnat
-       ;;
-               // Write new BSPSTORE
-       //mov   r21=ar.bsp
-       //;;
-       mov     r22=r21                 // new bspstore equal to old
-       ;;
-       mov     ar.bspstore=r22         // the new bspstore
-       ;;
-               // Read and save the new BSP for calculating number of dirty 
regs.
-       mov     r21=ar.bsp
-       ;;
-       sub     r21=r21,r22             // r21 -> ndirty
-       add     r19=TF_NDIRTY-TF_BSP,r19        // TF_NDIRTY pos in r19
-       ;;
-       st8     [r19]=r21               // store ndirty
-       ;;
-       mov     ar.rsc=IA64_RSE_EAGER   // RSE on again
-       ;;
-       add     r19=TF_FPSR,r18
-       ;;
-       mov     r21=ar.fpsr
-       ;;
-       st8     [r19]=r21               // ar.fpsr
-       ;;
-       //// r16 return jump pointer, r18 - trap frame base, 
-               // Load the gp with our module __gp
-       movl    gp=__gp
-       ;;
-       add     r16=16,r16      // for jump to next bundle
-       ;;
-       mov     b7=r16
-       ;;
-
-{      .mfb
-       srlz.d
-       nop     0
-       br.sptk b7
-       ;;
-}
-
-END(save_tf_rse_switch)
-
-
-/**
- *     The function reloads the processor context stored in
- *     save_tf_rse_switch().
- *     
- *     On calling the function the bank 0 must be activ.
- *     The return is done through a rfi.
- *     Used register: b7, r16, r18, r19, r20, r21, r22 of bank 0
- *
- *     @param: r18 pointer to the exception frame
- *
- */
-ENTRY(restore_tf_rse_switch) 
-       add     r19=TF_IPSR,r18
-       add     r20=TF_IIP,r18
-       ;;
-       ld8     r21=[r19]               // load cr.ipsr
-       ld8     r22=[r20]               // load cr.iip
-       movl    r16=XSI_IPSR            // XEN !!
-       ;;
-       st8     [r16]=r21,XSI_IIP_OFS-XSI_IPSR_OFS      // XEN.ipsr
-       mov     r2=r21                  // save for fp stuff below
-       ;;
-       st8     [r16]=r22               // XEN.iip
-       ;;
-       //// r18 - trap frame base 
-               // Allocate a zero sized frame
-       alloc   r30=ar.pfs,0,0,0,0      // discard current frame
-       ;;
-               // calc number of dirty regs and put this into rsc.loardrs
-       add     r19=TF_NDIRTY,r18
-       ;;
-       ld8     r22=[r19]               // ndirty
-       ;;
-       shl     r21=r22,16              // value for ar.rsc
-       ;;
-       mov     ar.rsc=r21              // setup for loadrs
-       ;;
-               // Issue a loadrs instruction
-{      .mmi
-       loadrs          // must be the first instruction
-       ;;
-       nop 0x0
-       nop 0x0
-}
-               // Restore BSPSTORE from interrupted context
-       add     r19=TF_BSP,r18
-       add     r20=TF_RNAT,r18
-       ;;      
-       ld8     r21=[r19]               // load ar.bspstore
-       ld8     r22=[r20]               // load ar.rnat
-       ;;
-       mov     ar.bspstore=r21         // set ar.bspstore
-       ;;
-               // Restore RNAT
-       mov     ar.rnat=r22             // set ar.rnat
-       ;;
-               // Restore PFS and IFS
-       add     r19=TF_PFS,r18
-       add     r20=TF_IFS,r18
-       movl    r16=XSI_IFS             // XEN !!
-       ;;
-       ld8     r21=[r19]               // load ar.pfs
-       ld8     r22=[r20]               // load cr.ifs
-       ;;
-       add     r19=TF_RSC,r18
-       mov     ar.pfs=r21
-       st8     [r16]=r22               // XEN.ifs
-       ;;
-               // Restore RSC
-       ld8     r21=[r19]               // load ar.rsc
-       ;;
-       mov     ar.rsc=r21              // set ar.rsc
-       //// r18 - trap frame base
-       add     r19=TF_GP,r18
-       add     r20=TF_SP,r18
-       ;;
-       ld8     gp=[r19],TF_TP-TF_GP    // load gp
-       ld8     sp=[r20],TF_PR-TF_SP    // load sp
-       ;;
-       ld8     r13=[r19]               // load tp
-       ld8     r21=[r20]               // load pr
-       ;;
-       mov     pr=r21,-1               // set pr
-       ;;
-       add     r19=TF_BREG0,r18
-       add     r20=TF_BREG6,r18
-       ;;
-       ld8     r21=[r19],TF_BREG7-TF_BREG0     // load b0
-       ld8     r22=[r20],16            // load b6
-       ;;
-       mov     b0=r21
-       mov     b6=r22
-       ;;
-       ld8     r21=[r19]               // load b7
-       ld8     r22=[r20],16            // load b3
-       ;;
-       mov     b7=r21
-       //// r18 - trap frame base
-       mov     r14=r18                 // Save the context pointer
-       ;;
-       // bsw.1
-       movl r30=XSI_BANKNUM            // Switch to bank 1.
-       mov r31=1;;
-       st4 [r30]=r31
-       ;;
-       add     r2=TF_GREG16,r14
-       add     r3=TF_GREG17,r14
-       ;;
-       FILL_REG_PAIR(r16,r17,r2,r3)
-       FILL_REG_PAIR(r18,r19,r2,r3)
-       FILL_REG_PAIR(r20,r21,r2,r3)
-       FILL_REG_PAIR(r22,r23,r2,r3)
-       FILL_REG_PAIR(r24,r25,r2,r3)
-       FILL_REG_PAIR(r26,r27,r2,r3)
-       FILL_REG_PAIR(r28,r29,r2,r3)
-       FILL_REG_PAIR(r30,r31,r2,r3)
-
-       /*
-        * On XEN I have to store the bank 1 register into the
-        * global XSI_... area.
-        */
-               // r16-r31 all now hold bank1 values
-       movl r2=XSI_BANK1_R16
-       movl r3=XSI_BANK1_R16+8
-       ;;
-       .mem.offset 0,0; st8.spill [r2]=r16,16
-       .mem.offset 8,0; st8.spill [r3]=r17,16
-       ;;
-       .mem.offset 0,0; st8.spill [r2]=r18,16
-       .mem.offset 8,0; st8.spill [r3]=r19,16
-       ;;
-       .mem.offset 0,0; st8.spill [r2]=r20,16
-       .mem.offset 8,0; st8.spill [r3]=r21,16
-       ;;
-       .mem.offset 0,0; st8.spill [r2]=r22,16
-       .mem.offset 8,0; st8.spill [r3]=r23,16
-       ;;
-       .mem.offset 0,0; st8.spill [r2]=r24,16
-       .mem.offset 8,0; st8.spill [r3]=r25,16
-       ;;
-       .mem.offset 0,0; st8.spill [r2]=r26,16
-       .mem.offset 8,0; st8.spill [r3]=r27,16
-       ;;
-       .mem.offset 0,0; st8.spill [r2]=r28,16
-       .mem.offset 8,0; st8.spill [r3]=r29,16
-       ;;
-       .mem.offset 0,0; st8.spill [r2]=r30,16
-       .mem.offset 8,0; st8.spill [r3]=r31,16
-       ;;
-       // bsw.0
-       movl r2=XSI_BANKNUM;;
-       st4 [r2]=r0;
-
-       mov     r18=r14                 // Move back the context pointer
-       ;;
-       add     r19=TF_GREG2,r18
-       add     r20=TF_GREG3,r18
-       ;;
-       FILL_REG_PAIR( r2, r3,r19,r20)
-       FILL_REG_PAIR( r8, r9,r19,r20)
-       FILL_REG_PAIR(r10,r11,r19,r20)
-       FILL_REG_PAIR(r14,r15,r19,r20)
-
-       //// r18 - trap frame base, 
-
-       add     r19=TF_CCV,r18
-       add     r20=TF_CSD,r18
-       ;;
-       ld8     r21=[r19]               // ar.ccv
-       ld8     r22=[r20]               // ar.csd
-       ;;
-       mov     ar.ccv=r21
-       mov     ar.csd=r22
-       add     r19=TF_SSD,r18
-       ;;
-       ld8     r21=[r19]               // ar.ssd
-       ;;
-       mov     ar.ssd=r21
-       add     r19=TF_FREG6,r18
-       add     r20=TF_FREG7,r18
-       ;;
-       FILL_FP_PAIR(f6, f7, r19, r20)
-       FILL_FP_PAIR(f8, f9, r19, r20)
-       FILL_FP_PAIR(f10, f11, r19, r20)
-       add     r19=TF_FPSR,r18
-       ;;
-       ld8     r21=[r19]               // ar.fpsr
-       ;;
-       mov     ar.fpsr=r21
-       add     r19=TF_UNAT,r18
-       ;;
-       ld8     r21=[r19]
-       ;;
-       mov     ar.unat=r21
-       ;;
-       srlz.i
-       ;;
-       //rfi
-       XEN_HYPER_RFI;
-       ;;
-END(restore_tf_rse_switch)
-
-
-ENTRY(save_special_regs)
-       alloc   loc0=ar.pfs,1,7,0,0
-       movl    loc1=XSI_IFA            // XEN !!
-       movl    loc2=XSI_ISR            // XEN !!
-       ;;
-       ld8     loc3=[loc1],XSI_IIM_OFS-XSI_IFA_OFS     // load XEN.ifa
-       ld8     loc4=[loc2],XSI_IIPA_OFS-XSI_ISR_OFS    // load XEN.isr
-       add     loc5=TF_IFA,in0
-       add     loc6=TF_ISR,in0
-       ;;
-       st8     [loc5]=loc3,TF_IIM-TF_IFA       // store cr.ifa
-       st8     [loc6]=loc4                     // store cr.isr
-       ;;
-       ld8     loc3=[loc1]                     // load XEN.iim
-       ;;
-       st8     [loc5]=loc3                     // store cr.iim
-       ;;
-       mov     ar.pfs=loc0
-       ;;
-       br.ret.sptk.few rp
-END(save_special_regs)
-
-
-ENTRY(hypervisor_callback)
-       /*
-        * Use the thread stack here for storing the trap frame.
-        * It's not wired mapped, so nested data tlb faults may occur!
-        */
-       add     r18=-TF_SIZE,sp
-       ;;
-{      .mib
-       nop     0x02
-       mov     r16=ip          // for jump back from save_tf_rse_switch
-       br.sptk save_tf_rse_switch
-       ;;
-}
-       add     sp=-16,r18              // the new stack
-       alloc   r15=ar.pfs,0,0,1,0      // 1 out for do_hypervisor_callback
-       ;;
-       mov     out0=r18                // the trap frame
-       movl    r22=XSI_PSR_IC
-       mov     r23=1;;
-       st8     [r22]=r23               // ssm psr.ic
-       ;;
-       br.call.sptk.few rp = do_hypervisor_callback
-
-       movl    r22=XSI_PSR_IC
-       ;;
-       st4     [r22]=r0                // rsm psr.ic
-       add     r18=16,sp               // load EF-pointer again
-       ;;
-                       // must have r18-efp, calls rfi at the end.
-       br.sptk restore_tf_rse_switch
-       ;;
-END(hypervisor_callback)
-
-       /*
-        * In: r30 - trap number
-        */
-ENTRY(trap_error)
-               // Calculate the stack address for storing.
-       add     r18=-TF_SIZE,sp
-       ;;
-       add     r20=TF_TRAP_NUM,r18
-       ;;
-       st2     [r20]=r30       // save trap number
-       ;;
-
-{      .mib
-       nop     0x02
-       mov     r16=ip          // for jumping back from save_tf_rse_switch
-               // Used register: r16, r18, r19, r20, r21, r22 of bank 0
-       br.sptk save_tf_rse_switch
-       ;;
-}
-
-       alloc   r15=ar.pfs,0,0,1,0      // 1 out for do_trap_error
-       ;;
-       mov     out0=r18                // the trap frame
-       add     sp=-16,r18              // C-call abi
-       ;;
-       movl r30=XSI_BANKNUM            // bsw.1
-       mov r31=1;;
-       st4 [r30]=r31;;
-
-               /* Save extra interrupt registers to the trap frame. */
-       br.call.sptk.few rp = save_special_regs
-       ;;
-
-       movl    r22=XSI_PSR_IC
-       movl    r23=XSI_PSR_I_ADDR
-       ;;
-       ld8     r23=[r23]
-       mov     r25=1
-       ;;
-       st4     [r22]=r25               // ssm psr.ic
-       st1     [r23]=r0                // ssm psr.i
-       ;;
-
-       br.call.sptk.few rp = do_trap_error
-       ;;
-               // --> currently not reached!!!
-       movl r23=XSI_PSR_I_ADDR
-       movl r22=XSI_PSR_IC
-       ;;
-       ld8 r23=[r23]
-       mov r25=1
-       ;;
-       st1 [r23]=r25
-       st4 [r22]=r0            // note: clears both vpsr.i and vpsr.ic!
-       ;;
-       bsw.0
-       ;;
-       add     r18=16,sp               // load EF-pointer again
-       ;;
-       mov     sp=r18
-                       // must have r18-efp, calls rfi at the end.
-       br.sptk restore_tf_rse_switch
-       ;;
-END(trap_error)
-
-
-/*
- * The trap handler stuff.
- */
-
-#define TRAP_ERR(num)                  \
-       mov     r30 = num;              \
-       ;;              ;               \
-       br.sptk trap_error              \
-       ;;
-
-#define        IVT_ENTRY(name, offset)                 \
-       .org    ia64_trap_table + offset;       \
-       .global hivt_##name;                    \
-       .proc   hivt_##name;                    \
-       .prologue;                              \
-       .body;                                  \
-hivt_##name:
-
-#define        IVT_END(name)                           \
-       .endp   hivt_##name;                    \
-       .align  0x100
-
-#define IVT_ERR(name, num, offset)             \
-       IVT_ENTRY(name, offset);                \
-       TRAP_ERR(num);                          \
-       IVT_END(name)
-/*
- * The IA64 Interrupt Vector Table (IVT) contains 20 slots with 64
- * bundles per vector and 48 slots with 16 bundles per vector.
- */
-
-       .section .text.hivt,"ax"
-       .align  32768
-       .global ia64_trap_table
-       .size   ia64_trap_table, 32768
-ia64_trap_table:
-
-IVT_ERR(VHPT_Translation, 0, 0x0)
-IVT_ERR(Instruction_TLB, 1, 0x0400)
-IVT_ERR(Data_TLB, 2, 0x0800)
-IVT_ERR(Alternate_Instruction_TLB, 3, 0x0c00)
-
-
-IVT_ENTRY(Alternate_Data_TLB, 0x1000)
-       mov     r30=4                   // trap number
-adt_common:
-       mov     r16=cr.ifa              // where did it happen
-       mov     r31=pr                  // save predicates
-       ;;
-       extr.u  r17=r16,IA64_RR_IDX_POS,3       // get region number
-       ;;
-       cmp.eq  p14,p15=7,r17
-       ;;
-//(p14)        br.sptk adt_regf_addr           // Check for region 7 - phys 
addresses
-//     ;;
-//     br.sptk trap_error
-//             // No return
-//
-//adt_regf_addr:
-//     extr.u  r17=r16,60,4            // get region number
-//     ;;
-//     cmp.eq  p14,p15=0xf,r17
-//     ;;
-(p14)  br.sptk adt_reg7_addr           // Check for region 7 - phys addresses
-       ;;
-       br.sptk trap_error
-
-adt_reg7_addr:
-       /*
-        * region 7 addresses are only directly mapped physically
-        * addresses. Currently I don't do a check.
-        */
-       movl    r20=~((7 << IA64_RR_IDX_POS) | 0xfff)
-       movl    r18=((PTE_PS_16K<<IA64_ITIR_PS)|(IA64_KEY_REG7<<IA64_ITIR_KEY))
-       ;;
-       movl    r19=    ((1<<PTE_OFF_P) | (PTE_MA_WB<<PTE_OFF_MA) | \
-                        (1<<PTE_OFF_A) | (1<<PTE_OFF_D) | \
-                        (PTE_PL_KERN<<PTE_OFF_PL) | (PTE_AR_RW<<PTE_OFF_AR))
-                       // clear the region bits and 0-11
-                       // extract the pfn from the ifa
-       mov     cr.itir=r18
-       and     r20=r20, r16
-       ;;
-       or      r20=r20,r19             // put pfn into pte
-       ;;
-       mov     pr=r31,-1               // restore predicates
-       itc.d   r20
-       ;;
-       XEN_HYPER_RFI;
-       ;;
-
-IVT_END(Alternate_Data_TLB)
-
-/*
- * Handling of nested data tlb is needed, because in hypervisor_callback()
- * the stack is used to store the register trap frame. This stack is allocated
- * dynamically (as identity mapped address) and therewidth no tr mapped page!
- */
-IVT_ENTRY(Data_Nested_TLB, 0x1400)
-
-       mov     r30=5                   // trap number
-       add     r28=-TF_SIZE,sp         // r28 is never used in trap handling
-       ;;
-       mov     cr.ifa=r28
-       ;;
-       br.sptk adt_common
-IVT_END(Data_Nested_TLB)
-
-
-
-IVT_ERR(Instruction_Key_Miss, 6, 0x1800)
-IVT_ERR(Data_Key_Miss, 7, 0x1c00)
-IVT_ERR(Dirty_Bit, 8, 0x2000)
-IVT_ERR(Instruction_Access_Bit, 9, 0x2400)
-IVT_ERR(Data_Access_Bit, 10, 0x2800)
-IVT_ERR(Break_Instruction, 11, 0x2c00)
-IVT_ERR(External_Interrupt, 12, 0x3000)
-IVT_ERR(Reserved_3400, 13, 0x3400)
-IVT_ERR(Reserved_3800, 14, 0x3800)
-IVT_ERR(Reserved_3c00, 15, 0x3c00)
-IVT_ERR(Reserved_4000, 16, 0x4000)
-IVT_ERR(Reserved_4400, 17, 0x4400)
-IVT_ERR(Reserved_4800, 18, 0x4800)
-IVT_ERR(Reserved_4c00, 19, 0x4c00)
-IVT_ERR(Page_Not_Present, 20, 0x5000)
-IVT_ERR(Key_Permission, 21, 0x5100)
-IVT_ERR(Instruction_Access_Rights, 22, 0x5200)
-IVT_ERR(Data_Access_Rights, 23, 0x5300)
-IVT_ERR(General_Exception, 24, 0x5400)
-IVT_ERR(Disabled_FP_Register, 25, 0x5500)
-IVT_ERR(NaT_Consumption, 26, 0x5600)
-IVT_ERR(Speculation, 27, 0x5700)
-IVT_ERR(Reserved_5800, 28, 0x5800)
-IVT_ERR(Debug, 29, 0x5900)
-IVT_ERR(Unaligned_Reference, 30, 0x5a00)
-IVT_ERR(Unsupported_Data_Reference, 31, 0x5b00)
-IVT_ERR(Floating_Point_Fault, 32, 0x5c00)
-IVT_ERR(Floating_Point_Trap, 33, 0x5d00)
-IVT_ERR(Lower_Privilege_Transfer_Trap, 34, 0x5e00)
-IVT_ERR(Taken_Branch_Trap, 35, 0x5f00)
-IVT_ERR(Single_Step_Trap, 36, 0x6000)
-IVT_ERR(Reserved_6100, 37, 0x6100)
-IVT_ERR(Reserved_6200, 38, 0x6200)
-IVT_ERR(Reserved_6300, 39, 0x6300)
-IVT_ERR(Reserved_6400, 40, 0x6400)
-IVT_ERR(Reserved_6500, 41, 0x6500)
-IVT_ERR(Reserved_6600, 42, 0x6600)
-IVT_ERR(Reserved_6700, 43, 0x6700)
-IVT_ERR(Reserved_6800, 44, 0x6800)
-IVT_ERR(IA_32_Exception, 45, 0x6900)
-IVT_ERR(IA_32_Intercept, 46, 0x6a00)
-IVT_ERR(IA_32_Interrupt, 47, 0x6b00)
-IVT_ERR(Reserved_6c00, 48, 0x6c00)
-IVT_ERR(Reserved_6d00, 49, 0x6d00)
-IVT_ERR(Reserved_6e00, 50, 0x6e00)
-IVT_ERR(Reserved_6f00, 51, 0x6f00)
-IVT_ERR(Reserved_7000, 52, 0x7000)
-IVT_ERR(Reserved_7100, 53, 0x7100)
-IVT_ERR(Reserved_7200, 54, 0x7200)
-IVT_ERR(Reserved_7300, 55, 0x7300)
-IVT_ERR(Reserved_7400, 56, 0x7400)
-IVT_ERR(Reserved_7500, 57, 0x7500)
-IVT_ERR(Reserved_7600, 58, 0x7600)
-IVT_ERR(Reserved_7700, 59, 0x7700)
-IVT_ERR(Reserved_7800, 60, 0x7800)
-IVT_ERR(Reserved_7900, 61, 0x7900)
-IVT_ERR(Reserved_7a00, 62, 0x7a00)
-IVT_ERR(Reserved_7b00, 63, 0x7b00)
-IVT_ERR(Reserved_7c00, 64, 0x7c00)
-IVT_ERR(Reserved_7d00, 65, 0x7d00)
-IVT_ERR(Reserved_7e00, 66, 0x7e00)
-IVT_ERR(Reserved_7f00, 67, 0x7f00)
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/arch/ia64/minios-ia64.lds
--- a/extras/mini-os/arch/ia64/minios-ia64.lds  Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-OUTPUT_FORMAT("elf64-ia64-little")
-OUTPUT_ARCH(ia64)
-
-ENTRY(phys_start)
-
-PHDRS
-{
-  code PT_LOAD;
-  data PT_LOAD;
-}
-
-SECTIONS
-{
-
-  phys_start = _start - (((5<<(61))+0x100000000) - (1 << 20));
-
-  code : { } :code
-  . = ((5<<(61))+0x100000000);
-
-  _text = .;
-
-  .text : AT(ADDR(.text) - (((5<<(61))+0x100000000) - (1 << 20)))
-  {
-    *(.text)
-  }
-
-  _etext = .;
-
-  data : { } :data
-  .data : AT(ADDR(.data) - (((5<<(61))+0x100000000) - (1 << 20)))
-  { *(.data) 
-  }
-
-  .sdata : AT(ADDR(.sdata) - (((5<<(61))+0x100000000) - (1 << 20)))
-        { *(.sdata) *(.sdata1) *(.srdata) }
-
-  .rodata : AT(ADDR(.rodata) - (((5<<(61))+0x100000000) - (1 << 20)))
-  { *(.rodata) }
-
-  .rodata.str1.8 : AT(ADDR(.rodata.str1.8) - (((5<<(61))+0x100000000) - (1 << 
20)))
-  { *(.rodata.str1.8) }
-
-  /* newlib initialization functions */
-  . = ALIGN(64 / 8);
-  PROVIDE (__preinit_array_start = .);
-  .preinit_array     : { *(.preinit_array) }
-  PROVIDE (__preinit_array_end = .);
-  PROVIDE (__init_array_start = .);
-  .init_array     : { *(.init_array) }
-  PROVIDE (__init_array_end = .);
-  PROVIDE (__fini_array_start = .);
-  .fini_array     : { *(.fini_array) }
-  PROVIDE (__fini_array_end = .);
-
-  .ctors : AT(ADDR(.ctors) - (((5<<(61))+0x100000000) - (1 << 20)))
-       {
-        __CTOR_LIST__ = .;
-        *(.ctors)
-       CONSTRUCTORS
-        QUAD(0)
-        __CTOR_END__ = .;
-        }
-
-  .dtors : AT(ADDR(.dtors) - (((5<<(61))+0x100000000) - (1 << 20)))
-        {
-        __DTOR_LIST__ = .;
-        *(.dtors)
-        QUAD(0)
-        __DTOR_END__ = .;
-        }
-
-  .IA_64.unwind_info : AT(ADDR(.IA_64.unwind_info) - (((5<<(61))+0x100000000) 
- (1 << 20)))
-  { *(.IA_64.unwind_info) }
-
-  .IA_64.unwind : AT(ADDR(.IA_64.unwind) - (((5<<(61))+0x100000000) - (1 << 
20)))
-  { *(.IA_64.unwind) }
-
-  .bss : AT(ADDR(.bss) - (((5<<(61))+0x100000000) - (1 << 20)))
-  {
-    *(.bss)
-    *(.app.bss)
-  }
-
-  _end = .;
-
-}
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/arch/ia64/mm.c
--- a/extras/mini-os/arch/ia64/mm.c     Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,174 +0,0 @@
-/*
- * Done by Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
- *
- * Description: Special ia64 memory management.
- * Parts are taken from FreeBSD.
- *
- ****************************************************************************
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
- * DEALINGS IN THE SOFTWARE.
- */
-
-
-#include <mini-os/os.h>
-#include <mini-os/mm.h>
-
-
-#define MAX_MEM_AREA   5
-paddr_t phys_avail[MAX_MEM_AREA * 2];
-int    phys_avail_cnt;
-uint64_t physmem;
-
-/*
- * These variables are defined in the linker script minios_ia64.lds
- * to get the size of the kernel.
- */
-extern uint64_t _text[], _etext[], _end[], kstack[], phys_start[];
-
-uint64_t kernstart, kernend, kernsize, kernpstart, kernpend;
-
-#ifdef HAVE_LIBC
-uint8_t _heap[512 * 1024];
-unsigned long heap = (unsigned long)_heap,
-              brk = (unsigned long)_heap,
-              heap_mapped = (unsigned long)_heap + sizeof(_heap),
-              heap_end = (unsigned long)_heap + sizeof(_heap);
-#endif
-
-/* Print the available memory chunks. */
-static void
-print_phys_avail(void)
-{
-       int i;
-
-       printk("Physical memory chunk(s):\n");
-       for (i = 0; phys_avail[i + 1] != 0; i += 2) {
-               int size = phys_avail[i + 1] - phys_avail[i];
-               printk("0x%08lx - 0x%08lx, %d bytes (%d pages)\n",
-                       phys_avail[i], phys_avail[i + 1] - 1,
-                       size, size / PAGE_SIZE);
-       }
-}
-
-void
-arch_init_mm(unsigned long* start_pfn_p, unsigned long* max_pfn_p)
-{
-       uint64_t ms, me;
-       int i, j;
-       uint64_t m, n;
-
-       kernstart = trunc_page(_text);
-       kernend  = roundup_page(_end);
-
-       kernpstart = trunc_page(ia64_tpa(kernstart));
-       kernpend = roundup_page(kernpstart + (kernend - kernstart));
-       kernsize = kernpend - kernpstart;
-
-       ms = roundup_page(machineFwG.mach_mem_start);
-       me = trunc_page(machineFwG.mach_mem_start+machineFwG.mach_mem_size);
-       memset((void*)phys_avail, 0, sizeof(phys_avail));
-       /* 1. Check where the kernel lies in physical memory. */
-       physmem = me - ms;
-       if ((ms <= kernpend) && (kernpstart <= me)) {
-               if (ms < kernpstart) {  /* There is a part before the kernel. */
-                       PRINT_BV("  Found chunk before kernel: 0x%lx - 0x%lx\n",
-                                ms, kernpstart);
-                       phys_avail[phys_avail_cnt] = ms;
-                       phys_avail[phys_avail_cnt+1] = kernpstart;
-                       phys_avail_cnt += 2;
-               }
-               if (kernpend < me) {    /* There is a part behind the kernel. */
-                       PRINT_BV("  Found chunk behind kernel: 0x%lx - 0x%lx\n",
-                                kernpend, me);
-                       phys_avail[phys_avail_cnt] = kernpend;
-                       phys_avail[phys_avail_cnt+1] = me;
-                       phys_avail_cnt += 2;
-               }
-       } else {        /* One big chunk */
-               PRINT_BV("  Found big chunk: 0x%lx - 0x%lx\n", ms, me);
-               phys_avail[phys_avail_cnt] = ms;
-               phys_avail[phys_avail_cnt + 1] = me;
-               phys_avail_cnt += 2;
-       }
-       phys_avail[phys_avail_cnt] = 0;
-
-       print_phys_avail();
-       /*
-        * In this first version I only look for the biggest mem area.
-        */
-       for (i = j = m = n = 0; i < phys_avail_cnt; i += 2) {
-               n = page_to_pfn(phys_avail[i + 1]) - page_to_pfn(phys_avail[i]);
-               if (n > m) {
-                       m = n;
-                       j = i;
-               }
-       }
-       *start_pfn_p = page_to_pfn(phys_avail[j]);
-       *max_pfn_p   = page_to_pfn(phys_avail[j +1 ]);
-}
-
-/* Currently only a dummy function. */
-void
-arch_init_demand_mapping_area(unsigned long max_pfn)
-{
-       max_pfn = max_pfn;
-}
-
-unsigned long allocate_ondemand(unsigned long n, unsigned long alignment)
-{
-        return 0;
-}
-
-/* Helper function used in gnttab.c. */
-void do_map_frames(unsigned long addr,
-    const unsigned long *f, unsigned long n, unsigned long stride,
-       unsigned long increment, domid_t id, int *err, unsigned long prot)
-{
-       /* TODO */
-       ASSERT(0);
-}
-
-void*
-map_frames_ex(const unsigned long* frames, unsigned long n, unsigned long 
stride,
-       unsigned long increment, unsigned long alignment, domid_t id,
-       int *err, unsigned long prot)
-{
-        /* TODO: incomplete! */
-        ASSERT(n == 1 || (stride == 0 && increment == 1));
-        ASSERT(id == DOMID_SELF);
-        ASSERT(prot == 0);
-       return (void*) __va(frames[0] << PAGE_SHIFT);
-}
-
-int unmap_frames(unsigned long virt_addr, unsigned long num_frames)
-{  
-    /* TODO */
-    ASSERT(0);
-}
-
-unsigned long alloc_contig_pages(int order, unsigned int addr_bits)
-{
-    /* TODO */
-    ASSERT(0);
-}
-
-void arch_init_p2m(unsigned long max_pfn)
-{
-    printk("Warn: p2m map not implemented.\n");
-}
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/arch/ia64/sal.c
--- a/extras/mini-os/arch/ia64/sal.c    Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +0,0 @@
-/*
- * Done by Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
- * Mostly taken from FreeBSD.
- *
- ****************************************************************************
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- */
-
-#include <mini-os/os.h>
-#include <mini-os/lib.h>
-#include <mini-os/console.h>
-#include <mini-os/page.h>
-
-
-static struct ia64_fdesc sal_fdesc;
-uint64_t ia64_pal_entry;       /* PAL_PROC entrypoint */
-
-
-struct ia64_sal_result
-ia64_sal_call(uint64_t a1, uint64_t a2, uint64_t a3, uint64_t a4,
-             uint64_t a5, uint64_t a6, uint64_t a7, uint64_t a8)
-{
-       return ia64_sal_entry(a1, a2, a3, a4, a5, a6, a7, a8);
-}
-
-static struct ia64_sal_result
-fake_sal(uint64_t a1, uint64_t a2, uint64_t a3, uint64_t a4,
-        uint64_t a5, uint64_t a6, uint64_t a7, uint64_t a8)
-{
-       struct ia64_sal_result res;
-       res.sal_status = -3;
-       res.sal_result[0] = 0;
-       res.sal_result[1] = 0;
-       res.sal_result[2] = 0;
-       return res;
-}
-
-/*
- * Currently only the SAL_DESC_ENTRYPOINT is checked to get
- * the entry points the pal and sal functions.
- */
-void
-ia64_sal_init(struct sal_system_table *saltab)
-{
-       static int sizes[6] = { 48, 32, 16, 32, 16, 16 };
-       uint8_t *p;
-       int i;
-
-       PRINT_BV("Reading SALtable:\n");
-       ia64_sal_entry = fake_sal;
-
-       if (memcmp((void*)(uint64_t)(saltab->sal_signature), SAL_SIGNATURE, 4))
-       {
-               printk("Bad signature for SAL System Table\n");
-               return;
-       }
-       p = (uint8_t *) (saltab + 1);
-       for (i = 0; i < saltab->sal_entry_count; i++) {
-               switch (*p) {
-               case SAL_DESC_ENTRYPOINT:               // 0
-               {
-                       struct sal_entrypoint_descriptor *dp;
-
-                       dp = (struct sal_entrypoint_descriptor*)p;
-                       ia64_pal_entry =
-                               IA64_PHYS_TO_RR7(dp->sale_pal_proc);
-                       PRINT_BV("  PAL Proc at 0x%lx\n", ia64_pal_entry);
-                       sal_fdesc.func =
-                               IA64_PHYS_TO_RR7(dp->sale_sal_proc);
-                       sal_fdesc.gp = IA64_PHYS_TO_RR7(dp->sale_sal_gp);
-                       PRINT_BV("  SAL Proc at 0x%lx, GP at 0x%lx\n",
-                                sal_fdesc.func, sal_fdesc.gp);
-                       ia64_sal_entry = (sal_entry_t *) &sal_fdesc;
-                       break;
-               }
-               default:
-                       break;
-               }
-               p += sizes[*p];
-       }
-}
-
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/arch/ia64/sched.c
--- a/extras/mini-os/arch/ia64/sched.c  Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-/* 
- * Done by Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx
- *
- * Description: ia64 specific part of the scheduler for mini-os
- *
- ****************************************************************************
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
- * DEALINGS IN THE SOFTWARE.
- */
-
-
-#include <mini-os/types.h>
-#include <mini-os/sched.h>
-#include <mini-os/lib.h>
-#include <mini-os/xmalloc.h>
-#include <mini-os/mm.h>
-
-/* The function is implemented in fw.S */
-extern void thread_starter(void);
-
-void stack_walk(void)
-{
-    /* TODO */
-}
-
-struct thread*
-arch_create_thread(char *name, void (*function)(void *), void *data)
-{
-       struct thread* _thread;
-
-       _thread = (struct thread*)_xmalloc(sizeof(struct thread), 16);
-       /* Allocate pages for stack, stack will be aligned */
-       _thread->stack = (char *)alloc_pages(STACK_SIZE_PAGE_ORDER);
-       _thread->name = name;
-       memset((void*)&(_thread->regs), 0, sizeof(_thread->regs));
-       _thread->regs.sp = ((uint64_t)_thread->stack) + STACK_SIZE - 16;
-       _thread->regs.bsp = ((uint64_t)_thread->stack) + 0x10;
-       _thread->regs.rp = FDESC_FUNC(thread_starter);
-       _thread->regs.pfs = 0x82;
-       _thread->regs.r4 = FDESC_FUNC(function);
-       _thread->regs.r6 = (uint64_t)data;
-       return _thread;
-}
-
-extern void restore_context(struct thread*);
-extern int switch_context(struct thread*, struct thread*);
-
-void
-arch_switch_threads(struct thread* prev, struct thread* next)
-{
-       ia64_set_r13((uint64_t)next);
-       switch_context(prev, next);
-}
-
-/* Everything initialised, start idle thread */
-void
-run_idle_thread(void)
-{
-       //do_busy_loop();
-       ia64_set_r13((uint64_t)idle_thread);
-       restore_context(idle_thread);
-       printk("%s: restore_context() returned - bad!\n", __func__);
-}
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/arch/ia64/time.c
--- a/extras/mini-os/arch/ia64/time.c   Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,289 +0,0 @@
-/* 
- * Done by Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
- * Description: simple ia64 specific time handling
- * Parts are taken from FreeBSD.
- *
- ****************************************************************************
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <mini-os/os.h>
-#include <mini-os/console.h>
-#include <mini-os/time.h>
-#include <mini-os/efi.h>
-#include <mini-os/events.h>
-
-struct timespec os_time;
-static uint64_t itc_alt;               /* itc on last update. */
-static uint64_t itc_at_boot;           /* itc on boot */
-static uint64_t itc_frequency;
-static uint64_t processor_frequency;
-static uint64_t itm_val;
-
-static int is_leap_year(int year)
-{
-       if( year % 4 == 0 )
-       {
-               if( year % 100 == 0 )
-               {
-                       if( year % 400 == 0 ) return 1;
-                       else return 0;
-               }
-               return 1;
-       }
-       return 0;
-}
-
-static int count_leap_years(int epoch, int year)
-{
-       int i, result = 0;
-       for( i = epoch ; i < year ; i++ ) if( is_leap_year(i) ) result++;
-       return result;
-}
-
-static int get_day(int year, int mon, int day) {
-       int result;
-       switch(mon)
-       {
-               case 0: result = 0; break;
-               case 1: result = 31; break; /* 1: 31 */
-               case 2: result = 59; break; /* 2: 31+28 */
-               case 3: result = 90; break; /* 3: 59+31 */
-               case 4: result = 120;break; /* 4: 90+30 */
-               case 5: result = 151;break; /* 5: 120+31 */
-               case 6: result = 181;break; /* 6: 151+30 */
-               case 7: result = 212;break; /* 7: 181+31 */
-               case 8: result = 243;break; /* 8: 212+31 */
-               case 9: result = 273;break; /* 9: 243+30 */
-               case 10:result = 304;break; /* 10:273+31 */
-               case 11:result = 334;break; /* 11:304+30 */
-               default: break;
-       }
-       if( is_leap_year(year) && mon > 2 ) result++;
-       result += day - 1;
-       return result;
-}
-
-/*
- * Converts Gregorian date to seconds since 1970-01-01 00:00:00.
- * Assumes input in normal date format, i.e. 1980-12-31 23:59:59
- * => year=1980, mon=12, day=31, hour=23, min=59, sec=59.
- *
- * WARNING: this function will overflow on 2106-02-07 06:28:16 on
- * machines were long is 32-bit! (However, as time_t is signed, we
- * will already get problems at other places on 2038-01-19 03:14:08)
- */
-static unsigned long _mktime(const unsigned int year, const unsigned int mon,
-                           const unsigned int day, const unsigned int hour,
-                           const unsigned int min, const unsigned int sec)
-{
-       unsigned long result = 0;
-
-       result = sec;
-       result += min * 60;
-       result += hour * 3600;
-       result += get_day(year, mon - 1, day) * 86400;
-       result += (year - 1970) * 31536000;
-       result += count_leap_years(1970, year) * 86400;
-
-       return result;
-}
-
-static inline uint64_t
-ns_from_cycles(uint64_t cycles)
-{
-       return (cycles * (1000000000 / itc_frequency));
-}
-
-static inline uint64_t
-ns_to_cycles(uint64_t ns)
-{
-       return (ns * (itc_frequency / 1000000000));
-}
-
-/*
- * Block the domain until until(nanoseconds) is over.
- * If block is called no timerinterrupts are delivered from xen!
- */
-void
-block_domain(s_time_t until)
-{
-       struct ia64_pal_result pal_res;
-       uint64_t c, new;
-
-       c = ns_to_cycles(until);
-       new = ia64_get_itc() + c - NOW();
-       ia64_set_itm(new);              /* Reload cr.itm */
-       /*
-        * PAL_HALT_LIGHT returns on every external interrupt,
-        * including timer interrupts.
-        */
-       pal_res = ia64_call_pal_static(PAL_HALT_LIGHT, 0, 0, 0);
-       if (pal_res.pal_status != 0)
-               printk("%s: PAL_HALT_LIGHT returns an error\n");
-       /* Reload the normal timer interrupt match. */
-       new = ia64_get_itc() + itm_val;
-       ia64_set_itm(new);
-}
-
-static void
-calculate_time(void)
-{
-       uint64_t itc_new, new;
-
-       itc_new = ia64_get_itc();
-       if (itc_new < itc_alt)
-               new = ~0 - itc_alt + itc_new;
-       else
-               new = itc_new - itc_alt;
-       itc_alt = itc_new;
-       new = ns_from_cycles(new);
-       os_time.tv_nsec += new;
-       if (os_time.tv_nsec > 1000000000) {     /* On overflow. */
-               os_time.tv_sec++;
-               os_time.tv_nsec -= 1000000000;
-       }
-}
-
-void
-timer_interrupt(evtchn_port_t port, struct pt_regs* regsP, void *data)
-{
-       uint64_t new;
-
-       calculate_time();
-       new = ia64_get_itc() + itm_val;
-       ia64_set_itm(new);
-}
-
-/*
- * monotonic_clock(): returns # of nanoseconds passed since time_init()
- */
-uint64_t
-monotonic_clock(void)
-{
-       uint64_t delta;
-
-       delta = ia64_get_itc() - itc_at_boot;
-       delta = ns_from_cycles(delta);
-       return delta;
-}
-
-int
-gettimeofday(struct timeval *tv, void *tz)
-{
-       calculate_time();
-       tv->tv_sec = os_time.tv_sec;                    /* seconds */
-       tv->tv_usec = NSEC_TO_USEC(os_time.tv_nsec);    /* microseconds */
-        return 0;
-};
-
-/*
- * Read the clock frequencies from pal and sal for calculating
- * the clock interrupt.
- */
-static void
-calculate_frequencies(void)
-{
-       struct ia64_sal_result sal_res;
-       struct ia64_pal_result pal_res;
-
-       pal_res = ia64_call_pal_static(PAL_FREQ_RATIOS, 0, 0, 0);
-       sal_res = ia64_sal_entry(SAL_FREQ_BASE, 0, 0, 0, 0, 0, 0, 0);
-
-       if (sal_res.sal_status == 0 && pal_res.pal_status == 0) {
-               processor_frequency =
-                       sal_res.sal_result[0] * (pal_res.pal_result[0] >> 32)
-                               / (pal_res.pal_result[0] & ((1L << 32) - 1));
-               itc_frequency =
-                       sal_res.sal_result[0] * (pal_res.pal_result[2] >> 32)
-                               / (pal_res.pal_result[2] & ((1L << 32) - 1));
-               PRINT_BV("Reading clock frequencies:\n");
-               PRINT_BV("  Platform clock frequency %ld Hz\n",
-                              sal_res.sal_result[0]);
-               PRINT_BV("  Processor ratio %ld/%ld, Bus ratio %ld/%ld, "
-                              "  ITC ratio %ld/%ld\n",
-                              pal_res.pal_result[0] >> 32,
-                              pal_res.pal_result[0] & ((1L << 32) - 1),
-                              pal_res.pal_result[1] >> 32,
-                              pal_res.pal_result[1] & ((1L << 32) - 1),
-                              pal_res.pal_result[2] >> 32,
-                              pal_res.pal_result[2] & ((1L << 32) - 1));
-
-               printk("  ITC frequency %ld\n", itc_frequency);
-       } else {
-               itc_frequency = 1000000000;
-               processor_frequency = 0;
-               printk("Reading clock frequencies failed!!! Using: %ld\n",
-                      itc_frequency);
-       }
-}
-
-
-//#define HZ 1
-#define HZ 1000                // 1000 clock ticks per sec
-#define IA64_TIMER_VECTOR 0xef
-
-void
-init_time(void)
-{
-       uint64_t new;
-       efi_time_t tm;
-       evtchn_port_t port = 0;
-
-       printk("Initialising time\n");
-       calculate_frequencies();
-
-       itm_val = (itc_frequency + HZ/2) / HZ;
-       printk("  itm_val: %ld\n", itm_val);
-
-       os_time.tv_sec = 0;
-       os_time.tv_nsec = 0;
-
-       if (efi_get_time(&tm)) {
-               printk("  EFI-Time: %d.%d.%d   %d:%d:%d\n", tm.Day,
-                      tm.Month, tm.Year, tm.Hour, tm.Minute, tm.Second);
-               os_time.tv_sec = _mktime(tm.Year, tm.Month,
-                                       tm.Day, tm.Hour, tm.Minute, tm.Second);
-               os_time.tv_nsec = tm.Nanosecond;
-       } else
-               printk("efi_get_time() failed\n");
-
-       port = bind_virq(VIRQ_ITC, timer_interrupt, NULL);
-       if (port == -1) {
-               printk("XEN timer request chn bind failed %i\n", port);
-               return;
-       }
-        unmask_evtchn(port);
-       itc_alt = ia64_get_itc();
-       itc_at_boot = itc_alt;
-       new = ia64_get_itc() + itm_val;
-       ia64_set_itv(IA64_TIMER_VECTOR);
-       ia64_set_itm(new);
-       ia64_srlz_d();
-}
-
-void
-fini_time(void)
-{
-       /* TODO */
-}
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/arch/ia64/xencomm.c
--- a/extras/mini-os/arch/ia64/xencomm.c        Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,394 +0,0 @@
-/*
- * Copyright (C) 2006 Hollis Blanchard <hollisb@xxxxxxxxxx>, IBM Corporation
- * Tristan Gingold <tristan.gingold@xxxxxxxx>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
- */
-
-/*
- * This code is mostly taken from ia64-xen files xcom_mini.c and xencomm.c.
- * Changes: Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx
- */
-
-
-#include <mini-os/os.h>
-#include <mini-os/errno.h>
-#include <mini-os/lib.h>
-#include <mini-os/hypervisor.h>
-#include <xen/xencomm.h>
-#include <xen/grant_table.h>
-
-
-#define XENCOMM_MINI_ADDRS 3
-struct xencomm_mini
-{
-       struct xencomm_desc _desc;
-       uint64_t address[XENCOMM_MINI_ADDRS];
-};
-
-#define xen_guest_handle(hnd)  ((hnd).p)
-
-struct xencomm_handle;
-
-/* Translate virtual address to physical address.  */
-uint64_t
-xencomm_vaddr_to_paddr(uint64_t vaddr)
-{
-       if (IA64_RR_EXTR(vaddr) == 5)
-               return KERN_VIRT_2_PHYS(vaddr);
-
-       if (IA64_RR_EXTR(vaddr) == 7)
-               return __pa(vaddr);
-
-       return 0;
-}
-
-/* Inline version.  To be used only on linear space (kernel space).  */
-static struct xencomm_handle *
-xencomm_create_inline(void *buffer)
-{
-       unsigned long paddr;
-
-       paddr = xencomm_vaddr_to_paddr((unsigned long)buffer);
-       return (struct xencomm_handle *)(paddr | XENCOMM_INLINE_FLAG);
-}
-
-#define min(a,b) (((a) < (b)) ? (a) : (b))
-static int
-xencomm_init_desc(struct xencomm_desc *desc, void *buffer, unsigned long bytes)
-{
-       unsigned long recorded = 0;
-       int i = 0;
-
-       if ((buffer == NULL) && (bytes > 0))
-               BUG();
-
-       /* record the physical pages used */
-       if (buffer == NULL)
-               desc->nr_addrs = 0;
-
-       while ((recorded < bytes) && (i < desc->nr_addrs)) {
-               unsigned long vaddr = (unsigned long)buffer + recorded;
-               unsigned long paddr;
-               int offset;
-               int chunksz;
-
-               offset = vaddr % PAGE_SIZE; /* handle partial pages */
-               chunksz = min(PAGE_SIZE - offset, bytes - recorded);
-
-               paddr = xencomm_vaddr_to_paddr(vaddr);
-               if (paddr == ~0UL) {
-                       printk("%s: couldn't translate vaddr %lx\n",
-                              __func__, vaddr);
-                       return -EINVAL;
-               }
-
-               desc->address[i++] = paddr;
-               recorded += chunksz;
-       }
-       if (recorded < bytes) {
-               printk("%s: could only translate %ld of %ld bytes\n",
-                      __func__, recorded, bytes);
-               return -ENOSPC;
-       }
-
-       /* mark remaining addresses invalid (just for safety) */
-       while (i < desc->nr_addrs)
-               desc->address[i++] = XENCOMM_INVALID;
-       desc->magic = XENCOMM_MAGIC;
-       return 0;
-}
-
-static void *
-xencomm_alloc_mini(struct xencomm_mini *area, int *nbr_area)
-{
-       unsigned long base;
-       unsigned int pageoffset;
-
-       while (*nbr_area >= 0) {
-               /* Allocate an area.  */
-               (*nbr_area)--;
-
-               base = (unsigned long)(area + *nbr_area);
-               pageoffset = base % PAGE_SIZE; 
-
-               /* If the area does not cross a page, use it.  */
-               if ((PAGE_SIZE - pageoffset) >= sizeof(struct xencomm_mini))
-                       return &area[*nbr_area];
-       }
-       /* No more area.  */
-       return NULL;
-}
-
-int
-xencomm_create_mini(struct xencomm_mini *area, int *nbr_area,
-                    void *buffer, unsigned long bytes,
-                    struct xencomm_handle **ret)
-{
-       struct xencomm_desc *desc;
-       int rc;
-       unsigned long res;
-
-       desc = xencomm_alloc_mini(area, nbr_area);
-       if (!desc)
-               return -ENOMEM;
-       desc->nr_addrs = XENCOMM_MINI_ADDRS;
-
-       rc = xencomm_init_desc(desc, buffer, bytes);
-       if (rc)
-               return rc;
-
-       res = xencomm_vaddr_to_paddr((unsigned long)desc);
-       if (res == ~0UL)
-               return -EINVAL;
-
-       *ret = (struct xencomm_handle*)res;
-       return 0;
-}
-
-static int
-xencommize_mini_grant_table_op(struct xencomm_mini *xc_area, int *nbr_area,
-                               unsigned int cmd, void *op, unsigned int count,
-                               struct xencomm_handle **desc)
-{
-       struct xencomm_handle *desc1;
-       unsigned int argsize=0;
-       int rc;
-
-       switch (cmd) {
-       case GNTTABOP_map_grant_ref:
-               argsize = sizeof(struct gnttab_map_grant_ref);
-               break;
-       case GNTTABOP_unmap_grant_ref:
-               argsize = sizeof(struct gnttab_unmap_grant_ref);
-               break;
-       case GNTTABOP_setup_table:
-       {
-               struct gnttab_setup_table *setup = op;
-
-               argsize = sizeof(*setup);
-
-               if (count != 1)
-                       return -EINVAL;
-               rc = xencomm_create_mini
-                       (xc_area, nbr_area,
-                        (void*)(uint64_t) xen_guest_handle(setup->frame_list),
-                        setup->nr_frames
-                        * sizeof(*xen_guest_handle(setup->frame_list)),
-                        &desc1);
-               if (rc)
-                       return rc;
-               set_xen_guest_handle(setup->frame_list,
-                                    (void *)(uint64_t)desc1);
-               break;
-       }
-       case GNTTABOP_dump_table:
-               argsize = sizeof(struct gnttab_dump_table);
-               break;
-       case GNTTABOP_transfer:
-               argsize = sizeof(struct gnttab_transfer);
-               break;
-       case GNTTABOP_copy:
-               argsize = sizeof(struct gnttab_copy);
-               break;
-       default:
-               printk("%s: unknown mini grant table op %d\n", __func__, cmd);
-               BUG();
-       }
-
-       rc = xencomm_create_mini(xc_area, nbr_area, op, count * argsize, desc);
-
-       return rc;
-}
-
-static inline int
-xencomm_arch_hypercall_grant_table_op(unsigned int cmd,
-                                      struct xencomm_handle *uop,
-                                      unsigned int count)
-{
-       return _hypercall3(int, grant_table_op, cmd, uop, count);
-}
-
-int
-xencomm_mini_hypercall_grant_table_op(unsigned int cmd, void *op,
-                                      unsigned int count)
-{
-       int rc;
-       struct xencomm_handle *desc;
-       int nbr_area = 2;
-       struct xencomm_mini xc_area[2];
-
-       rc = xencommize_mini_grant_table_op(xc_area, &nbr_area,
-                                           cmd, op, count, &desc);
-       if (rc)
-               return rc;
-       return xencomm_arch_hypercall_grant_table_op(cmd, desc, count);
-}
-
-static void
-gnttab_map_grant_ref_pre(struct gnttab_map_grant_ref *uop)
-{
-       uint32_t flags;
-
-       flags = uop->flags;
-
-       if (flags & GNTMAP_host_map) {
-               if (flags & GNTMAP_application_map) {
-                       printk("GNTMAP_application_map is not supported yet: "
-                              "flags 0x%x\n", flags);
-                       BUG();
-               }
-               if (flags & GNTMAP_contains_pte) {
-                       printk("GNTMAP_contains_pte is not supported yet flags "
-                              "0x%x\n", flags);
-                       BUG();
-               }
-       } else if (flags & GNTMAP_device_map) {
-               printk("GNTMAP_device_map is not supported yet 0x%x\n", flags);
-               BUG();//XXX not yet. actually this flag is not used.
-       } else {
-               BUG();
-       }
-}
-
-int
-HYPERVISOR_grant_table_op(unsigned int cmd, void *uop, unsigned int count)
-{
-       if (cmd == GNTTABOP_map_grant_ref) {
-               unsigned int i;
-               for (i = 0; i < count; i++) {
-                       gnttab_map_grant_ref_pre(
-                               (struct gnttab_map_grant_ref*)uop + i);
-               }
-       }
-       return xencomm_mini_hypercall_grant_table_op(cmd, uop, count);
-}
-
-       /* In fw.S */
-extern int xencomm_arch_hypercall_suspend(struct xencomm_handle *arg);
-int
-HYPERVISOR_suspend(unsigned long srec)
-{
-        struct sched_shutdown arg;
-
-        arg.reason = (uint32_t)SHUTDOWN_suspend;
-
-        return xencomm_arch_hypercall_suspend(xencomm_create_inline(&arg));
-}
-
-int
-HYPERVISOR_event_channel_op(int cmd, void *arg)
-{
-       int rc;
-       struct xencomm_handle *newArg;
-
-       newArg = xencomm_create_inline(arg);
-       rc = _hypercall2(int, event_channel_op, cmd, newArg);
-       if (unlikely(rc == -ENOSYS)) {
-               struct evtchn_op op;
-
-               op.cmd = cmd;
-               memcpy(&op.u, arg, sizeof(op.u));
-               rc = _hypercall1(int, event_channel_op_compat, &op);
-       }
-       return rc;
-}
-
-static int
-xencomm_arch_xen_version(int cmd, struct xencomm_handle *arg)
-{
-       return _hypercall2(int, xen_version, cmd, arg);
-}
-
-static int
-xencomm_arch_xen_feature(int cmd, struct xencomm_handle *arg)
-{
-       struct xencomm_handle *newArg;
-
-       newArg = xencomm_create_inline(arg);
-       return _hypercall2(int, xen_version, cmd, newArg);
-}
-
-int
-HYPERVISOR_xen_version(int cmd, void *arg)
-{
-       switch(cmd) {
-               case XENVER_version:
-                       return xencomm_arch_xen_version(cmd, 0);
-               case XENVER_get_features:
-                       return xencomm_arch_xen_feature(cmd, arg);
-               default:
-                       return -1;
-       }
-}
-
-int
-HYPERVISOR_console_io(int cmd, int count, char *str)
-{
-       struct xencomm_handle *newStr;
-
-       newStr = xencomm_create_inline(str);
-       return _hypercall3(int, console_io, cmd, count, newStr);
-}
-
-int
-HYPERVISOR_sched_op_compat(int cmd, unsigned long arg)
-{
-       return _hypercall2(int, sched_op_compat, cmd, arg);
-}
-
-int
-HYPERVISOR_sched_op(int cmd, void *arg)
-{
-       struct xencomm_handle *newArg;
-
-       newArg = xencomm_create_inline(arg);
-       return _hypercall2(int, sched_op, cmd, newArg);
-}
-
-int
-HYPERVISOR_callback_op(int cmd, void *arg)
-{
-       struct xencomm_handle *newArg;
-
-       newArg = xencomm_create_inline(arg);
-       return _hypercall2(int, callback_op, cmd, newArg);
-}
-
-int
-HYPERVISOR_opt_feature(void *arg)
-{
-       struct xencomm_handle *new_arg;
-
-       new_arg = xencomm_create_inline(arg);
-
-       return _hypercall1(int, opt_feature, new_arg);
-}
-
-int
-HYPERVISOR_shutdown(unsigned int reason)
-{
-       struct sched_shutdown sched_shutdown = {
-               .reason = reason
-       };
-
-       int rc = HYPERVISOR_sched_op(SCHEDOP_shutdown, &sched_shutdown);
-
-       if (rc == -ENOSYS)
-               rc = HYPERVISOR_sched_op_compat(SCHEDOP_shutdown, reason);
-
-       return rc;
-}
-
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/gnttab.c
--- a/extras/mini-os/gnttab.c   Wed Sep 12 16:12:42 2012 +0100
+++ b/extras/mini-os/gnttab.c   Wed Sep 12 17:55:27 2012 +0100
@@ -23,11 +23,7 @@
 #define NR_RESERVED_ENTRIES 8
 
 /* NR_GRANT_FRAMES must be less than or equal to that configured in Xen */
-#ifdef __ia64__
-#define NR_GRANT_FRAMES 1
-#else
 #define NR_GRANT_FRAMES 4
-#endif
 #define NR_GRANT_ENTRIES (NR_GRANT_FRAMES * PAGE_SIZE / sizeof(grant_entry_t))
 
 static grant_entry_t *gnttab_table;
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/include/hypervisor.h
--- a/extras/mini-os/include/hypervisor.h       Wed Sep 12 16:12:42 2012 +0100
+++ b/extras/mini-os/include/hypervisor.h       Wed Sep 12 17:55:27 2012 +0100
@@ -7,7 +7,6 @@
  * Copyright (c) 2002, K A Fraser
  * Copyright (c) 2005, Grzegorz Milos
  * Updates: Aravindh Puthiyaparambil <aravindh.puthiyaparambil@xxxxxxxxxx>
- * Updates: Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx> for ia64
  */
 
 #ifndef _HYPERVISOR_H_
@@ -19,8 +18,6 @@
 #include <hypercall-x86_32.h>
 #elif defined(__x86_64__)
 #include <hypercall-x86_64.h>
-#elif defined(__ia64__)
-#include <hypercall-ia64.h>
 #else
 #error "Unsupported architecture"
 #endif
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/include/ia64/arch_limits.h
--- a/extras/mini-os/include/ia64/arch_limits.h Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-
-#ifndef __ARCH_LIMITS_H__
-#define __ARCH_LIMITS_H__
-
-/* Commonly 16K pages are used. */
-#define __PAGE_SHIFT   14      /* 16K pages */
-#define __PAGE_SIZE    (1<<(__PAGE_SHIFT))
-
-#define __STACK_SIZE_PAGE_ORDER   2
-#define __STACK_SIZE              (__PAGE_SIZE * (1 << 
__STACK_SIZE_PAGE_ORDER))
-          
-#endif /* __ARCH_LIMITS_H__ */
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/include/ia64/arch_mm.h
--- a/extras/mini-os/include/ia64/arch_mm.h     Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2007 - Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
- *
- ****************************************************************************
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
- * DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef __ARCH_MM_H__
-#define __ARCH_MM_H__
-
-#include "page.h"
-#include "ia64_cpu.h"
-
-#define PFN_PHYS(x)    (pfn_to_page(x))
-#define PHYS_PFN(x)    (page_to_pfn(x))
-#define to_virt(x)     __va(x)
-#define to_phys(x)     __pa(x)
-
-#define virt_to_mfn(x) virt_to_pfn(x)
-#define virtual_to_mfn(x)      (ia64_tpa((uint64_t)(x)) >> PAGE_SHIFT)
-
-#define map_frames(f, n) map_frames_ex(f, n, 1, 0, 1, DOMID_SELF, NULL, 0)
-/* TODO */
-#define map_zero(n, a) map_frames_ex(NULL, n, 0, 0, a, DOMID_SELF, NULL, 0)
-#define do_map_zero(start, n) ASSERT(n == 0)
-
-#endif /* __ARCH_MM_H__ */
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/include/ia64/arch_sched.h
--- a/extras/mini-os/include/ia64/arch_sched.h  Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
-/*
- * Copyright (c) 2006 Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
- * All rights reserved.
- *
- * The file contains ia64 specific scheduler declarations.
- *
- ****************************************************************************
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
- * DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef __ARCH_SCHED_H__
-#define __ARCH_SCHED_H__
-
-#include "os.h"
-
-struct thread;                         /* Only declaration */
-
-struct thread_regs
-{
-       unsigned long   unat_b;         /* NaT before spilling */
-       unsigned long   sp;
-       unsigned long   rp;
-       unsigned long   pr;
-       unsigned long   bsp;
-       unsigned long   pfs;
-       unsigned long   rnat;
-       unsigned long   lc;
-
-       unsigned long   unat_a;         /* NaT after spilling. */
-       unsigned long   r4;
-       unsigned long   r5;
-       unsigned long   r6;
-       unsigned long   r7;
-
-       unsigned long   b1;
-       unsigned long   b2;
-       unsigned long   b3;
-       unsigned long   b4;
-       unsigned long   b5;
-
-       ia64_fpreg_t    f2;
-       ia64_fpreg_t    f3;
-       ia64_fpreg_t    f4;
-       ia64_fpreg_t    f5;
-       ia64_fpreg_t    f16;
-       ia64_fpreg_t    f17;
-       ia64_fpreg_t    f18;
-       ia64_fpreg_t    f19;
-       ia64_fpreg_t    f20;
-       ia64_fpreg_t    f21;
-       ia64_fpreg_t    f22;
-       ia64_fpreg_t    f23;
-       ia64_fpreg_t    f24;
-       ia64_fpreg_t    f25;
-       ia64_fpreg_t    f26;
-       ia64_fpreg_t    f27;
-       ia64_fpreg_t    f28;
-       ia64_fpreg_t    f29;
-       ia64_fpreg_t    f30;
-       ia64_fpreg_t    f31;
-};
-
-typedef struct thread_regs thread_regs_t;
-
-void arch_switch_threads(struct thread* prev, struct thread* next);
-
-static inline struct thread* get_current(void)
-{
-       register struct thread *current asm("r13");
-       return current;
-}
-
-
-#endif /* __ARCH_SCHED_H__ */
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/include/ia64/arch_spinlock.h
--- a/extras/mini-os/include/ia64/arch_spinlock.h       Wed Sep 12 16:12:42 
2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/*
- * Done by Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx
- * The file contains ia64 special spinlock stuff.
- *
- ****************************************************************************
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
- * DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef _ARCH_SPINLOCK_H_
-#define _ARCH_SPINLOCK_H_
-
-#include "atomic.h"
-
-#define ARCH_SPIN_LOCK_UNLOCKED { 0 }
-
-#define SPIN_LOCK_UNUSED       0
-#define SPIN_LOCK_USED         1
-
-
-static inline void
-_raw_spin_lock(spinlock_t* lck)
-{
-       uint32_t ret;
-       do {
-               ret = ia64_cmpxchg_acq_32(&(lck->slock),
-                                         SPIN_LOCK_UNUSED, SPIN_LOCK_USED);
-       } while (ret == SPIN_LOCK_USED);
-}
-
-static inline void
-_raw_spin_unlock(spinlock_t *lck)
-{
-       asm volatile ("st4.rel.nta [%0] = r0\n\t" :: "r"(&(lck->slock))
-                                                       : "memory" );
-}
-
-static inline uint32_t
-_raw_spin_trylock(spinlock_t* lck)
-{
-       uint32_t ret;
-       ret = ia64_cmpxchg_acq_32(&(lck->slock), SPIN_LOCK_USED, 
SPIN_LOCK_USED);
-       return (ret == SPIN_LOCK_USED);
-}
-
-#endif /* _ARCH_SPINLOCK_H_ */
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/include/ia64/asm.h
--- a/extras/mini-os/include/ia64/asm.h Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-/*
- * Done by Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx
- */
-
-#if !defined(_ASM_H_)
-#define _ASM_H_
-
-#define        ENTRY(_name_)                           \
-       .global _name_;                         \
-       .align  16;                             \
-       .proc   _name_;                         \
-_name_:;                                       \
-
-
-#define        END(_name_)                                             \
-       .endp   _name_
-
-#endif /* !defined(_ASM_H_) */
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/include/ia64/atomic.h
--- a/extras/mini-os/include/ia64/atomic.h      Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,504 +0,0 @@
-/*
- * This code is mostly taken from FreeBSD machine/atomic.h
- * Changes: Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
- *
- ****************************************************************************
- * Copyright (c) 1998 Doug Rabson
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef _MACHINE_ATOMIC_H_
-#define _MACHINE_ATOMIC_H_
-
-/*
- * Various simple arithmetic on memory which is atomic in the presence
- * of interrupts and SMP safe.
- */
-
-#if !defined(__ASSEMBLY__)
-
-#include <mini-os/types.h>
-
-
-/*
- * Everything is built out of cmpxchg.
- */
-#define IA64_CMPXCHG(sz, sem, p, cmpval, newval, ret)          \
-       __asm __volatile (                                      \
-               "mov ar.ccv=%2;;\n\t"                           \
-               "cmpxchg" #sz "." #sem " %0=%4,%3,ar.ccv\n\t"   \
-               : "=r" (ret), "=m" (*p)                         \
-               : "r" (cmpval), "r" (newval), "m" (*p)          \
-               : "memory")
-
-
-/*
- * Some common forms of cmpxch.
- */
-
-static __inline uint8_t
-ia64_cmpxchg_acq_8(volatile uint8_t* p, uint8_t cmpval, uint8_t newval)
-{
-       uint8_t ret;
-
-       IA64_CMPXCHG(1, acq, p, cmpval, newval, ret);
-       return (ret);
-}
-
-static __inline uint16_t
-ia64_cmpxchg_acq_16(volatile uint16_t* p, uint16_t cmpval, uint16_t newval)
-{
-       uint16_t ret;
-
-       IA64_CMPXCHG(2, acq, p, cmpval, newval, ret);
-       return (ret);
-}
-
-static __inline uint32_t
-ia64_cmpxchg_acq_32(volatile uint32_t* p, uint32_t cmpval, uint32_t newval)
-{
-       uint32_t ret;
-
-       IA64_CMPXCHG(4, acq, p, cmpval, newval, ret);
-       return (ret);
-}
-
-static __inline uint32_t
-ia64_cmpxchg_rel_32(volatile uint32_t* p, uint32_t cmpval, uint32_t newval)
-{
-       uint32_t ret;
-
-       IA64_CMPXCHG(4, rel, p, cmpval, newval, ret);
-       return (ret);
-}
-
-static __inline uint64_t
-ia64_cmpxchg_acq_64(volatile uint64_t* p, uint64_t cmpval, uint64_t newval)
-{
-       uint64_t ret;
-
-       IA64_CMPXCHG(8, acq, p, cmpval, newval, ret);
-       return (ret);
-}
-
-static __inline uint64_t
-ia64_cmpxchg_rel_64(volatile uint64_t* p, uint64_t cmpval, uint64_t newval)
-{
-       uint64_t ret;
-
-       IA64_CMPXCHG(8, rel, p, cmpval, newval, ret);
-       return (ret);
-}
-
-#define ATOMIC_STORE_LOAD(type, width, size)                   \
-static __inline uint##width##_t                                \
-ia64_ld_acq_##width(volatile uint##width##_t* p)               \
-{                                                              \
-       uint##width##_t v;                                      \
-                                                               \
-       __asm __volatile ("ld" size ".acq %0=%1"                \
-                         : "=r" (v)                            \
-                         : "m" (*p)                            \
-                         : "memory");                          \
-       return (v);                                             \
-}                                                              \
-                                                               \
-static __inline uint##width##_t                                \
-atomic_load_acq_##width(volatile uint##width##_t* p)           \
-{                                                              \
-       uint##width##_t v;                                      \
-                                                               \
-       __asm __volatile ("ld" size ".acq %0=%1"                \
-                         : "=r" (v)                            \
-                         : "m" (*p)                            \
-                         : "memory");                          \
-       return (v);                                             \
-}                                                              \
-                                                               \
-static __inline uint##width##_t                                \
-atomic_load_acq_##type(volatile uint##width##_t* p)            \
-{                                                              \
-       uint##width##_t v;                                      \
-                                                               \
-       __asm __volatile ("ld" size ".acq %0=%1"                \
-                         : "=r" (v)                            \
-                         : "m" (*p)                            \
-                         : "memory");                          \
-       return (v);                                             \
-}                                                              \
-                                                               \
-static __inline void                                           \
-ia64_st_rel_##width(volatile uint##width##_t* p, uint##width##_t v)\
-{                                                              \
-       __asm __volatile ("st" size ".rel %0=%1"                \
-                         : "=m" (*p)                           \
-                         : "r" (v)                             \
-                         : "memory");                          \
-}                                                              \
-                                                               \
-static __inline void                                           \
-atomic_store_rel_##width(volatile uint##width##_t* p, uint##width##_t v)\
-{                                                              \
-       __asm __volatile ("st" size ".rel %0=%1"                \
-                         : "=m" (*p)                           \
-                         : "r" (v)                             \
-                         : "memory");                          \
-}                                                              \
-                                                               \
-static __inline void                                           \
-atomic_store_rel_##type(volatile uint##width##_t* p, uint##width##_t v)\
-{                                                              \
-       __asm __volatile ("st" size ".rel %0=%1"                \
-                         : "=m" (*p)                           \
-                         : "r" (v)                             \
-                         : "memory");                          \
-}
-
-ATOMIC_STORE_LOAD(char, 8, "1")
-ATOMIC_STORE_LOAD(short, 16, "2")
-ATOMIC_STORE_LOAD(int, 32, "4")
-ATOMIC_STORE_LOAD(long, 64, "8")
-
-#undef ATOMIC_STORE_LOAD
-
-#define IA64_ATOMIC(sz, type, name, width, op)                 \
-                                                                       \
-static __inline type                                                   \
-atomic_##name##_acq_##width(volatile type *p, type v)          \
-{                                                                      \
-       type old, ret;                                                  \
-       do {                                                            \
-               old = *p;                                               \
-               IA64_CMPXCHG(sz, acq, p, old, old op v, ret);   \
-       } while (ret != old);                                           \
-       return(ret);                                                    \
-}                                                                      \
-                                                                       \
-static __inline type                                                   \
-atomic_##name##_rel_##width(volatile type *p, type v)          \
-{                                                                      \
-       type old, ret;                                                  \
-       do {                                                            \
-               old = *p;                                               \
-               IA64_CMPXCHG(sz, rel, p, old, old op v, ret);   \
-       } while (ret != old);                                           \
-       return(ret);                                                    \
-}
-
-IA64_ATOMIC(1, uint8_t,  set,  8,      |)
-IA64_ATOMIC(2, uint16_t, set,  16,     |)
-IA64_ATOMIC(4, uint32_t, set,  32,     |)
-IA64_ATOMIC(8, uint64_t, set,  64,     |)
-
-IA64_ATOMIC(1, uint8_t,  clear,        8,      &~)
-IA64_ATOMIC(2, uint16_t, clear,        16,     &~)
-IA64_ATOMIC(4, uint32_t, clear,        32,     &~)
-IA64_ATOMIC(8, uint64_t, clear,        64,     &~)
-
-IA64_ATOMIC(1, uint8_t,  add,  8,      +)
-IA64_ATOMIC(2, uint16_t, add,  16,     +)
-IA64_ATOMIC(4, uint32_t, add,  32,     +)
-IA64_ATOMIC(8, uint64_t, add,  64,     +)
-
-IA64_ATOMIC(1, uint8_t,  subtract,     8,      -)
-IA64_ATOMIC(2, uint16_t, subtract,     16,     -)
-IA64_ATOMIC(4, uint32_t, subtract,     32,     -)
-IA64_ATOMIC(8, uint64_t, subtract,     64,     -)
-
-#undef IA64_ATOMIC
-#undef IA64_CMPXCHG
-
-#define atomic_set_8                   atomic_set_acq_8
-#define        atomic_clear_8                  atomic_clear_acq_8
-#define atomic_add_8                   atomic_add_acq_8
-#define        atomic_subtract_8               atomic_subtract_acq_8
-
-#define atomic_set_16                  atomic_set_acq_16
-#define        atomic_clear_16                 atomic_clear_acq_16
-#define atomic_add_16                  atomic_add_acq_16
-#define        atomic_subtract_16              atomic_subtract_acq_16
-
-#define atomic_set_32                  atomic_set_acq_32
-#define        atomic_clear_32                 atomic_clear_acq_32
-#define atomic_add_32                  atomic_add_acq_32
-#define        atomic_subtract_32              atomic_subtract_acq_32
-
-#define atomic_set_64                  atomic_set_acq_64
-#define        atomic_clear_64                 atomic_clear_acq_64
-#define atomic_add_64                  atomic_add_acq_64
-#define        atomic_subtract_64              atomic_subtract_acq_64
-
-#define atomic_set_char                        atomic_set_8
-#define atomic_clear_char              atomic_clear_8
-#define atomic_add_char                        atomic_add_8
-#define atomic_subtract_char           atomic_subtract_8
-#define atomic_set_acq_char            atomic_set_acq_8
-#define atomic_clear_acq_char          atomic_clear_acq_8
-#define atomic_add_acq_char            atomic_add_acq_8
-#define atomic_subtract_acq_char       atomic_subtract_acq_8
-#define atomic_set_rel_char            atomic_set_rel_8
-#define atomic_clear_rel_char          atomic_clear_rel_8
-#define atomic_add_rel_char            atomic_add_rel_8
-#define atomic_subtract_rel_char       atomic_subtract_rel_8
-
-#define atomic_set_short               atomic_set_16
-#define atomic_clear_short             atomic_clear_16
-#define atomic_add_short               atomic_add_16
-#define atomic_subtract_short          atomic_subtract_16
-#define atomic_set_acq_short           atomic_set_acq_16
-#define atomic_clear_acq_short         atomic_clear_acq_16
-#define atomic_add_acq_short           atomic_add_acq_16
-#define atomic_subtract_acq_short      atomic_subtract_acq_16
-#define atomic_set_rel_short           atomic_set_rel_16
-#define atomic_clear_rel_short         atomic_clear_rel_16
-#define atomic_add_rel_short           atomic_add_rel_16
-#define atomic_subtract_rel_short      atomic_subtract_rel_16
-
-#define atomic_set_int                 atomic_set_32
-#define atomic_clear_int               atomic_clear_32
-#define atomic_add_int                 atomic_add_32
-#define atomic_subtract_int            atomic_subtract_32
-#define atomic_set_acq_int             atomic_set_acq_32
-#define atomic_clear_acq_int           atomic_clear_acq_32
-#define atomic_add_acq_int             atomic_add_acq_32
-#define atomic_subtract_acq_int                atomic_subtract_acq_32
-#define atomic_set_rel_int             atomic_set_rel_32
-#define atomic_clear_rel_int           atomic_clear_rel_32
-#define atomic_add_rel_int             atomic_add_rel_32
-#define atomic_subtract_rel_int                atomic_subtract_rel_32
-
-#define atomic_set_long                        atomic_set_64
-#define atomic_clear_long              atomic_clear_64
-#define atomic_add_long                        atomic_add_64
-#define atomic_subtract_long           atomic_subtract_64
-#define atomic_set_acq_long            atomic_set_acq_64
-#define atomic_clear_acq_long          atomic_clear_acq_64
-#define atomic_add_acq_long            atomic_add_acq_64
-#define atomic_subtract_acq_long       atomic_subtract_acq_64
-#define atomic_set_rel_long            atomic_set_rel_64
-#define atomic_clear_rel_long          atomic_clear_rel_64
-#define atomic_add_rel_long            atomic_add_rel_64
-#define atomic_subtract_rel_long       atomic_subtract_rel_64
-
-/*
- * Atomically compare the value stored at *p with cmpval and if the
- * two values are equal, update the value of *p with newval. Returns
- * zero if the compare failed, nonzero otherwise.
- */
-static __inline int
-atomic_cmpset_acq_32(volatile uint32_t* p, uint32_t cmpval, uint32_t newval)
-{
-       return ia64_cmpxchg_acq_32(p, cmpval, newval) == cmpval;
-}
-
-static __inline int
-atomic_cmpset_rel_32(volatile uint32_t* p, uint32_t cmpval, uint32_t newval)
-{
-       return ia64_cmpxchg_rel_32(p, cmpval, newval) == cmpval;
-}
-
-/*
- * Atomically compare the value stored at *p with cmpval and if the
- * two values are equal, update the value of *p with newval. Returns
- * zero if the compare failed, nonzero otherwise.
- */
-static __inline int
-atomic_cmpset_acq_64(volatile uint64_t* p, uint64_t cmpval, uint64_t newval)
-{
-       return ia64_cmpxchg_acq_64(p, cmpval, newval) == cmpval;
-}
-
-static __inline int
-atomic_cmpset_rel_64(volatile uint64_t* p, uint64_t cmpval, uint64_t newval)
-{
-       return ia64_cmpxchg_rel_64(p, cmpval, newval) == cmpval;
-}
-
-#define atomic_cmpset_32               atomic_cmpset_acq_32
-#define atomic_cmpset_64               atomic_cmpset_acq_64
-#define        atomic_cmpset_int               atomic_cmpset_32
-#define        atomic_cmpset_long              atomic_cmpset_64
-#define atomic_cmpset_acq_int          atomic_cmpset_acq_32
-#define atomic_cmpset_rel_int          atomic_cmpset_rel_32
-#define atomic_cmpset_acq_long         atomic_cmpset_acq_64
-#define atomic_cmpset_rel_long         atomic_cmpset_rel_64
-
-static __inline int
-atomic_cmpset_acq_ptr(volatile void *dst, void *exp, void *src)
-{
-        return atomic_cmpset_acq_long((volatile u_long *)dst,
-                                     (u_long)exp, (u_long)src);
-}
-
-static __inline int
-atomic_cmpset_rel_ptr(volatile void *dst, void *exp, void *src)
-{
-        return atomic_cmpset_rel_long((volatile u_long *)dst,
-                                     (u_long)exp, (u_long)src);
-}
-
-#define        atomic_cmpset_ptr       atomic_cmpset_acq_ptr
-
-static __inline void *
-atomic_load_acq_ptr(volatile void *p)
-{
-       return (void *)atomic_load_acq_long((volatile u_long *)p);
-}
-
-static __inline void
-atomic_store_rel_ptr(volatile void *p, void *v)
-{
-       atomic_store_rel_long((volatile u_long *)p, (u_long)v);
-}
-
-#define IA64_ATOMIC_PTR(NAME)                          \
-static __inline void                                   \
-atomic_##NAME##_ptr(volatile void *p, uintptr_t v)     \
-{                                                      \
-       atomic_##NAME##_long((volatile u_long *)p, v);  \
-}                                                      \
-                                                       \
-static __inline void                                   \
-atomic_##NAME##_acq_ptr(volatile void *p, uintptr_t v) \
-{                                                      \
-       atomic_##NAME##_acq_long((volatile u_long *)p, v);\
-}                                                      \
-                                                       \
-static __inline void                                   \
-atomic_##NAME##_rel_ptr(volatile void *p, uintptr_t v) \
-{                                                      \
-       atomic_##NAME##_rel_long((volatile u_long *)p, v);\
-}
-
-IA64_ATOMIC_PTR(set)
-IA64_ATOMIC_PTR(clear)
-IA64_ATOMIC_PTR(add)
-IA64_ATOMIC_PTR(subtract)
-
-#undef IA64_ATOMIC_PTR
-
-static __inline uint32_t
-atomic_readandclear_32(volatile uint32_t* p)
-{
-       uint32_t val;
-       do {
-               val = *p;
-       } while (!atomic_cmpset_32(p, val, 0));
-       return val;
-}
-
-static __inline uint64_t
-atomic_readandclear_64(volatile uint64_t* p)
-{
-       uint64_t val;
-       do {
-               val = *p;
-       } while (!atomic_cmpset_64(p, val, 0));
-       return val;
-}
-
-#define atomic_readandclear_int        atomic_readandclear_32
-#define atomic_readandclear_long       atomic_readandclear_64
-
-
-/* Some bit operations */
-
-static inline void
-set_bit(int num, volatile void *addr)
-{
-       uint32_t bit, old, new;
-       volatile uint32_t *p;
-       p = (volatile uint32_t *) addr + (num >> 5);
-       bit = 1 << (num & 31);
-       do
-       {
-               old = *p;
-               new = old | bit;
-       } while(ia64_cmpxchg_acq_32(p, old, new) != old);
-}
-
-static __inline__ void
-clear_bit(int num, volatile void *addr)
-{
-       uint32_t mask, old, new;
-       volatile uint32_t *p;
-       p = (volatile uint32_t *) addr + (num >> 5);
-       mask = ~(1 << (num & 31));
-       do {
-               old = *p;
-               new = old & mask;
-       } while (ia64_cmpxchg_acq_32(p, old, new) != old);
-}
-
-static __inline__ int
-test_bit(int num, const volatile void *addr)
-{
-       uint32_t val = 1;
-        return val & (((const volatile uint32_t *) addr)[num >> 5] >> (num & 
31));
-}
-
-/*
- * test_and_set_bit - Set a bit and return its old value
- * num: Bit to set
- * addr: Address to count from
- */
-static inline int
-test_and_set_bit (int num, volatile void *addr)
-{
-        uint32_t bit, old, new;
-        volatile uint32_t *m;
-
-        m = (volatile uint32_t *) addr + (num >> 5);
-        bit = 1 << (num & 31);
-        do {
-                old = *m;
-                new = old | bit;
-        } while (ia64_cmpxchg_acq_32(m, old, new) != old);
-        return (old & bit) != 0;
-}
-
-/*
- * test_and_clear_bit - Clear a bit and return its old value
- * num: Bit to set
- * addr: Address to count from
- */
-static
-inline int test_and_clear_bit(int num, volatile unsigned long * addr)
-{
-        uint32_t bit, old, new;
-        volatile uint32_t* a;
-
-        a = (volatile uint32_t *) addr + (num >> 5);
-        bit = ~(1 << (num & 31));
-        do {
-                old = *a;
-                new = old & bit;
-        } while (ia64_cmpxchg_acq_32(a, old, new) != old);
-        return (old & ~bit) != 0;
-}
-
-
-#endif /* !defined(__ASSEMBLY__) */
-
-#endif /* ! _MACHINE_ATOMIC_H_ */
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/include/ia64/efi.h
--- a/extras/mini-os/include/ia64/efi.h Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,396 +0,0 @@
-/*
- * This is a short summary of declarations and definitions from different
- * efi header files of Intels' EFI_Toolkit_1.10.14.62 
- * used for the minimal implementation in mini-os.
- * Changes: Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
- *
- ****************************************************************************
- * Copyright (C) 2001-2004, Intel Corporation.
- * THIS SPECIFICATION IS PROVIDED "AS IS" WITH NO WARRANTIES WHATSOEVER,
- * INCLUDING ANY WARRANTY OF MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR
- * ANY PARTICULAR PURPOSE, OR ANY WARRANTY OTHERWISE ARISING OUT OF ANY
- * PROPOSAL, SPECIFICATION OR SAMPLE. Except for a limited copyright license
- * to copy this specification for internal use only, no license, express or
- * implied, by estoppel or otherwise, to any intellectual property rights is
- * granted herein.  Intel disclaims all liability, including liability for
- * infringement of any proprietary rights, relating to implementation of
- * information in this specification. Intel does not warrant or represent
- * that such implementation(s) will not infringe such rights.  Designers must
- * not rely on the absence or characteristics of any features or instructions
- * marked "reserved" or "undefined." Intel reserves these for future
- * definition and shall have no responsibility whatsoever for conflicts or
- * incompatibilities arising from future changes to them.
- * This document is an intermediate draft for comment only and is subject to
- * change without notice. Readers should not design products based on this
- * document.
- * Intel, the Intel logo, and Itanium are trademarks or registered trademarks
- * of Intel Corporation or its subsidiaries in the United States and other
- * countries.
- * Other names and brands may be claimed as the property of others.
- */
-
-#ifndef _EFI_H_
-#define _EFI_H_
-
-#include <mini-os/types.h>
-
-
-#define EFIWARN(a)                      (a)
-#define EFI_ERROR(a)                    (((int64_t) a) < 0)
-
-
-#define EFI_SUCCESS                     0
-#define EFI_LOAD_ERROR                  EFIERR(1)
-#define EFI_INVALID_PARAMETER           EFIERR(2)
-#define EFI_UNSUPPORTED                 EFIERR(3)
-#define EFI_BAD_BUFFER_SIZE             EFIERR(4)
-#define EFI_BUFFER_TOO_SMALL            EFIERR(5)
-#define EFI_NOT_READY                   EFIERR(6)
-#define EFI_DEVICE_ERROR                EFIERR(7)
-#define EFI_WRITE_PROTECTED             EFIERR(8)
-#define EFI_OUT_OF_RESOURCES            EFIERR(9)
-#define EFI_VOLUME_CORRUPTED            EFIERR(10)
-#define EFI_VOLUME_FULL                 EFIERR(11)
-#define EFI_NO_MEDIA                    EFIERR(12)
-#define EFI_MEDIA_CHANGED               EFIERR(13)
-#define EFI_NOT_FOUND                   EFIERR(14)
-#define EFI_ACCESS_DENIED               EFIERR(15)
-#define EFI_NO_RESPONSE                 EFIERR(16)
-#define EFI_NO_MAPPING                  EFIERR(17)
-#define EFI_TIMEOUT                     EFIERR(18)
-#define EFI_NOT_STARTED                 EFIERR(19)
-#define EFI_ALREADY_STARTED             EFIERR(20)
-#define EFI_ABORTED                     EFIERR(21)
-#define EFI_ICMP_ERROR                  EFIERR(22)
-#define EFI_TFTP_ERROR                  EFIERR(23)
-#define EFI_PROTOCOL_ERROR              EFIERR(24)
-
-#define EFI_WARN_UNKOWN_GLYPH           EFIWARN(1)
-#define EFI_WARN_DELETE_FAILURE         EFIWARN(2)
-#define EFI_WARN_WRITE_FAILURE          EFIWARN(3)
-#define EFI_WARN_BUFFER_TOO_SMALL       EFIWARN(4)
-
-
-typedef uint64_t       efi_status_t;
-typedef void*          efi_handle_t;
-typedef void*          efi_event_t;
-typedef uint16_t       efi_char16_t;
-
-
-/*
- * Standard EFI table header
- */
-
-struct efi_table_header
-{
-       uint64_t        Signature;
-       // Revision of EFI table specification,
-       // upper 16 bit - major revision number
-       // lower 16 bit - minor revision number
-       uint32_t        Revision;
-       uint32_t        HeaderSize;
-       uint32_t        CRC32;
-       uint32_t        Reserved;
-};
-typedef struct efi_table_header efi_table_header_t;
-
-/*
- * EFI Time
- */
-typedef struct
-{          
-       uint16_t        Year;       /* 1998 - 20XX */
-       uint8_t         Month;      /* 1 - 12 */
-       uint8_t         Day;        /* 1 - 31 */
-       uint8_t         Hour;       /* 0 - 23 */
-       uint8_t         Minute;     /* 0 - 59 */
-       uint8_t         Second;     /* 0 - 59 */
-       uint8_t         Pad1;
-       uint32_t        Nanosecond; /* 0 - 999,999,999 */
-       int16_t         TimeZone;   /* -1440 to 1440 or 2047 */
-       uint8_t         Daylight;
-       uint8_t         Pad2;
-} efi_time_t;
-
-/* Bit definitions for efi_time_t.Daylight */
-#define EFI_TIME_ADJUST_DAYLIGHT    0x01
-#define EFI_TIME_IN_DAYLIGHT        0x02
-
-/* Value definition for efi_time_t.TimeZone */
-#define EFI_UNSPECIFIED_TIMEZONE    0x07FF
-
-
-
-typedef struct
-{
-       uint32_t        Resolution;     /* 1e-6 parts per million */
-       uint32_t        Accuracy;       /* hertz */
-       uint8_t         SetsToZero;     /* Set clears sub-second time */
-} efi_time_capabilities_t;
-
-
-typedef efi_status_t (*efi_get_time_t) (efi_time_t*, efi_time_capabilities_t*);
-typedef efi_status_t (*efi_set_time_t) (efi_time_t*);
-typedef efi_status_t (*efi_get_wakeup_time_t) (uint8_t*, uint8_t*, 
efi_time_t*);
-typedef efi_status_t (*efi_set_wakeup_time_t) (uint8_t, efi_time_t*);
-
-/*
- * Memory
- * Preseve the attr on any range supplied.
- * ConventialMemory must have WB,SR,SW when supplied.
- * When allocating from ConventialMemory always make it WB,SR,SW
- * When returning to ConventialMemory always make it WB,SR,SW
- * When getting the memory map, or on RT for runtime types
- */
-
-typedef enum {
-       EfiReservedMemoryType,          /* 0 */
-       EfiLoaderCode,
-       EfiLoaderData,
-       EfiBootServicesCode,
-       EfiBootServicesData,
-       EfiRuntimeServicesCode,
-       EfiRuntimeServicesData,         /* 6 */
-       EfiConventionalMemory,          /* 7 */
-       EfiUnusableMemory,
-       EfiACPIReclaimMemory,           /* 9 */
-       EfiACPIMemoryNVS,               /* 10, a */
-       EfiMemoryMappedIO,
-       EfiMemoryMappedIOPortSpace,     /* 12, c */
-       EfiPalCode,                     /* 13, d */
-       EfiMaxMemoryType                /* 14, e */
-} efi_memory_type_t;
-
-/* possible caching types for the memory range */
-#define EFI_MEMORY_UC          0x0000000000000001
-#define EFI_MEMORY_WC          0x0000000000000002
-#define EFI_MEMORY_WT          0x0000000000000004
-#define EFI_MEMORY_WB          0x0000000000000008
-#define EFI_MEMORY_UCE         0x0000000000000010  
-/* physical memory protection on range */
-#define EFI_MEMORY_WP          0x0000000000001000
-#define EFI_MEMORY_RP          0x0000000000002000
-#define EFI_MEMORY_XP          0x0000000000004000
-/* range requires a runtime mapping */
-#define EFI_MEMORY_RUNTIME     0x8000000000000000
-
-#define EFI_MEMORY_DESCRIPTOR_VERSION  1
-
-typedef uint64_t efi_phys_addr_t;
-typedef uint64_t efi_virt_addr_t;
-
-typedef struct
-{
-       uint32_t        Type;           /* 32 bit padding */
-       efi_phys_addr_t PhysicalStart;
-       efi_virt_addr_t VirtualStart;
-       uint64_t        NumberOfPages;
-       uint64_t        Attribute;
-} efi_memory_descriptor_t;
-
-#define NextMemoryDescriptor(Ptr,Size)  ((efi_memory_descriptor_t*) 
(((uint8_t*) Ptr) + Size))
-
-
-typedef efi_status_t (*efi_set_virtual_address_map_t)
-       (
-               uint64_t MemoryMapSize,
-               uint64_t DescriptorSize,
-               uint32_t DescriptorVersion,
-               efi_memory_descriptor_t* VirtualMap
-       );
-
-typedef efi_status_t (*efi_convert_pointer_t)
-       (
-               uint64_t DebugDisposition,
-               void** Address
-       );
-
-/*
- * A GUID
- */
-
-typedef struct
-{          
-       uint32_t        Data1;
-       uint16_t        Data2;
-       uint16_t        Data3;
-       uint8_t         Data4[8]; 
-} efi_guid_t;
-
-/*
- * EFI Configuration Table and GUID definitions
- */
-
-#define MPS_TABLE_GUID                 \
-       { 0xeb9d2d2f, 0x2d88, 0x11d3,   \
-               { 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } }
-
-#define ACPI_TABLE_GUID                        \
-       { 0xeb9d2d30, 0x2d88, 0x11d3,   \
-               { 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } }
-
-#define ACPI_20_TABLE_GUID  \
-       { 0x8868e871, 0xe4f1, 0x11d3,   \
-               { 0xbc, 0x22, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } }
-
-#define SMBIOS_TABLE_GUID    \
-       { 0xeb9d2d31, 0x2d88, 0x11d3,   \
-               { 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } }
-
-#define SAL_SYSTEM_TABLE_GUID    \
-       { 0xeb9d2d32, 0x2d88, 0x11d3,   \
-               { 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } }
-
-/* DIG64 Headless Console & Debug Port Table. */
-#define        HCDP_TABLE_GUID         \
-       {0xf951938d, 0x620b, 0x42ef,    \
-               {0x82, 0x79, 0xa8, 0x4b, 0x79, 0x61, 0x78, 0x98 } }
-
-
-typedef struct efi_configuration_table
-{
-       efi_guid_t      VendorGuid;
-       void*           VendorTable;
-} efi_configuration_table_t;
-
-
-/*
- * EFI platform variables
- */
-
-#define EFI_GLOBAL_VARIABLE     \
-    {  0x8BE4DF61, 0x93CA, 0x11d2, 0xAA, 0x0D, 0x00,   \
-       0xE0, 0x98, 0x03, 0x2B, 0x8C }
-
-/* Variable attributes */
-#define EFI_VARIABLE_NON_VOLATILE           0x00000001
-#define EFI_VARIABLE_BOOTSERVICE_ACCESS     0x00000002
-#define EFI_VARIABLE_RUNTIME_ACCESS         0x00000004
-
-/* Variable size limitation */
-#define EFI_MAXIMUM_VARIABLE_SIZE           1024
-
-typedef efi_status_t (*efi_get_variable_t)
-       (
-               efi_char16_t*   VariableName,
-               efi_guid_t      *VendorGuid,
-               uint32_t*       Attributes,
-               uint64_t*       DataSize,
-               void*           Data
-       );
-
-typedef
-efi_status_t (*efi_get_next_variable_name_t)
-       (
-               uint64_t*       VariableNameSize,
-               efi_char16_t*   VariableName,
-               efi_guid_t*     VendorGuid
-       );
-
-typedef efi_status_t (*efi_set_variable_t)
-       (
-               efi_char16_t*   VariableName,
-               efi_guid_t*     VendorGuid,
-               uint32_t        Attributes,
-               uint64_t        DataSize,
-               void*           Data
-       );
-
-/*
- * Misc
- */
-
-typedef enum
-{
-       EfiResetCold,
-       EfiResetWarm,
-       EfiResetShutdown
-} efi_reset_type_t;
-
-
-typedef efi_status_t (*efi_reset_system_t)
-       (
-               efi_reset_type_t        ResetType,
-               efi_status_t            ResetStatus,
-               uint64_t                DataSize,
-               efi_char16_t*           ResetData
-       );
-
-typedef efi_status_t (*efi_get_next_high_mono_count_t) (uint32_t* HighCount);
-
-
-/*
- * EFI Runtime Serivces Table
- */
-
-#define EFI_RUNTIME_SERVICES_SIGNATURE  0x5652453544e5552ULL
-#define EFI_RUNTIME_SERVICES_REVISION ((EFI_SPECIFICATION_MAJOR_REVISION<<16) \
-                                       | (EFI_SPECIFICATION_MINOR_REVISION))
-
-typedef struct
-{
-       efi_table_header_t              Hdr;
-       /* Time services */
-       efi_get_time_t                  GetTime;
-       efi_set_time_t                  SetTime;
-       efi_get_wakeup_time_t           GetWakeupTime;
-       efi_set_wakeup_time_t           SetWakeupTime;
-       /* Virtual memory services */
-       efi_set_virtual_address_map_t   SetVirtualAddressMap;
-       efi_convert_pointer_t           ConvertPointer;
-       /* Variable serviers */
-       efi_get_variable_t              GetVariable;
-       efi_get_next_variable_name_t    GetNextVariableName;
-       efi_set_variable_t              SetVariable;
-       /* Misc */
-       efi_get_next_high_mono_count_t  GetNextHighMonotonicCount;
-       efi_reset_system_t              ResetSystem;
-
-} efi_runtime_services_t;
-
-
-#define EFI_SPECIFICATION_MAJOR_REVISION 1
-#define EFI_SYSTEM_TABLE_SIGNATURE      0x5453595320494249
-#define EFI_SYSTEM_TABLE_REVISION  ((EFI_SPECIFICATION_MAJOR_REVISION<<16) \
-                                       | (EFI_SPECIFICATION_MINOR_REVISION))
-
-struct efi_system_table
-{
-       efi_table_header_t      Hdr;
-
-       uint64_t        FirmwareVendor;         // phys addr of CHAR16
-       uint32_t        FirmwareRevision;       // Firmware vendor specific
-
-       efi_handle_t    ConsoleInHandle;
-       uint64_t        ConIn;
-
-       efi_handle_t    ConsoleOutHandle;
-       uint64_t        ConOut;
-
-       efi_handle_t    StandardErrorHandle;
-       uint64_t        StdErr;
-
-       uint64_t        RuntimeServices;        // phys addr
-       uint64_t        BootServices;           // phys addr
-
-       uint64_t        NumberOfTableEntries;   // Number of entries in Config
-       uint64_t        ConfigurationTable;     // phys addr of ConfigTable
-};
-
-typedef struct efi_system_table efi_system_table_t;
-
-
-#define EFI_PAGE_SIZE   4096
-#define EFI_PAGE_MASK   0xFFF
-#define EFI_PAGE_SHIFT  12
-
-#define EFI_SIZE_TO_PAGES(a)  \
-    ( ((a) >> EFI_PAGE_SHIFT) + ((a) & EFI_PAGE_MASK ? 1 : 0) )
-
-
-void init_efi(void);
-int efi_get_time(efi_time_t* tmP);
-efi_status_t ia64_call_efi_physical(void *, ...);
-
-
-#endif /* _EFI_H_ */
diff -r a1bd69b08e9e -r 485e6db28b93 
extras/mini-os/include/ia64/hypercall-ia64.h
--- a/extras/mini-os/include/ia64/hypercall-ia64.h      Wed Sep 12 16:12:42 
2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,135 +0,0 @@
-/******************************************************************************
- * hypercall.h
- * 
- * Mini-OS-specific hypervisor handling for ia64.
- * 
- * Copyright (c) 2002-2004, K A Fraser
- * Changes: Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxx>
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License version 2
- * as published by the Free Software Foundation; or, when distributed
- * separately from the Linux kernel or incorporated into other
- * software packages, subject to the following license:
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this source file (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use, copy, modify,
- * merge, publish, distribute, sublicense, and/or sell copies of the Software,
- * and to permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-
-#ifndef __HYPERCALL_H__
-#define __HYPERCALL_H__
-
-#include <xen/event_channel.h>
-#include <xen/sched.h>
-#include <xen/version.h>
-
-#ifndef _HYPERVISOR_H_
-# error "please don't include this file directly"
-#endif
-
-// See linux/compiler.h
-#define likely(x)       __builtin_expect(!!(x), 1)
-#define unlikely(x)     __builtin_expect(!!(x), 0)
-
-extern unsigned long __hypercall(unsigned long a1, unsigned long a2,
-                                 unsigned long a3, unsigned long a4,
-                                 unsigned long a5, unsigned long cmd);
-/*
- * Assembler stubs for hyper-calls.
- */
-
-#define _hypercall0(type, name)                                        \
-({                                                             \
-       long __res;                                             \
-       __res = __hypercall(0, 0, 0, 0, 0,                      \
-                           __HYPERVISOR_##name);               \
-       (type)__res;                                            \
-})
-
-#define _hypercall1(type, name, a1)                            \
-({                                                             \
-       long __res;                                             \
-       __res = __hypercall((unsigned long)a1,                  \
-                           0, 0, 0, 0, __HYPERVISOR_##name);   \
-       (type)__res;                                            \
-})
-
-#define _hypercall2(type, name, a1, a2)                                \
-({                                                             \
-       long __res;                                             \
-       __res = __hypercall((unsigned long)a1,                  \
-                           (unsigned long)a2,                  \
-                           0, 0, 0, __HYPERVISOR_##name);      \
-       (type)__res;                                            \
-})
-
-#define _hypercall3(type, name, a1, a2, a3)                    \
-({                                                             \
-       long __res;                                             \
-       __res = __hypercall((unsigned long)a1,                  \
-                           (unsigned long)a2,                  \
-                           (unsigned long)a3,                  \
-                           0, 0, __HYPERVISOR_##name);         \
-       (type)__res;                                            \
-})
-
-#define _hypercall4(type, name, a1, a2, a3, a4)                        \
-({                                                             \
-       long __res;                                             \
-       __res = __hypercall((unsigned long)a1,                  \
-                           (unsigned long)a2,                  \
-                           (unsigned long)a3,                  \
-                           (unsigned long)a4,                  \
-                           0, __HYPERVISOR_##name);            \
-       (type)__res;                                            \
-})
-
-#define _hypercall5(type, name, a1, a2, a3, a4, a5)            \
-({                                                             \
-       long __res;                                             \
-       __res = __hypercall((unsigned long)a1,                  \
-                           (unsigned long)a2,                  \
-                           (unsigned long)a3,                  \
-                           (unsigned long)a4,                  \
-                           (unsigned long)a5,                  \
-                           __HYPERVISOR_##name);               \
-       (type)__res;                                            \
-})
-
-
-int HYPERVISOR_event_channel_op(int cmd, void *arg);
-
-int HYPERVISOR_xen_version(int cmd, void *arg);
-
-int HYPERVISOR_console_io(int cmd, int count, char *str);
-
-int HYPERVISOR_sched_op_compat(int cmd, unsigned long arg);
-
-int HYPERVISOR_sched_op(int cmd, void *arg);
-
-int HYPERVISOR_callback_op(int cmd, void *arg);
-
-int HYPERVISOR_grant_table_op(unsigned int cmd, void *uop, unsigned int count);
-
-int HYPERVISOR_opt_feature(void *arg);
-
-int HYPERVISOR_suspend(unsigned long srec);
-
-int HYPERVISOR_shutdown(unsigned int reason);
-
-#endif /* __HYPERCALL_H__ */
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/include/ia64/ia64_cpu.h
--- a/extras/mini-os/include/ia64/ia64_cpu.h    Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,738 +0,0 @@
-/*
- * Done by Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
- * This code is mostly taken from FreeBSD.
- *
- *
- ****************************************************************************
- * Copyright (c) 2000 Doug Rabson
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- */
-
-#ifndef _IA64_CPU_H_
-#define _IA64_CPU_H_
-
-#include "ia64_fpu.h"
-
-/*
- * Definition of Region Register bits (RR)
- *
- * RR bit field positions
- */
-#define IA64_RR_VE             0
-#define IA64_RR_MBZ0           1
-#define IA64_RR_PS             2
-#define IA64_RR_PS_LEN         6
-#define IA64_RR_RID            8
-#define IA64_RR_RID_LEN                24
-#define IA64_RR_MBZ1           32
-
-#define IA64_RR_IDX_POS                61
-
-#define IA64_RR_VAL(size,rid) (((size) << IA64_RR_PS) | ((rid) << IA64_RR_RID))
-
-/*
- * Define Protection Key Register (PKR)
- *
- * PKR bit field positions
- */
-#define IA64_PKR_V             0
-#define IA64_PKR_WD            1
-#define IA64_PKR_RD            2
-#define IA64_PKR_XD            3
-#define IA64_PKR_MBZ0          4
-#define IA64_PKR_KEY           8
-#define IA64_PKR_KEY_LEN       24
-#define IA64_PKR_MBZ1          32
-
-#define IA64_PKR_VALID         (1 << IA64_PKR_V)
-
-
-/*
- * ITIR bit field positions
- */
-
-#define        IA64_ITIR_MBZ0          0
-#define        IA64_ITIR_PS            2
-#define        IA64_ITIR_PS_LEN        6
-#define        IA64_ITIR_KEY           8
-#define        IA64_ITIR_KEY_LEN       24
-#define        IA64_ITIR_MBZ1          32
-#define        IA64_ITIR_MBZ1_LEN      16
-#define        IA64_ITIR_PPN           48
-#define        IA64_ITIR_PPN_LEN       15
-#define        IA64_ITIR_MBZ2          63
-
-/*
- * Definition of PSR and IPSR bits.
- */
-#define IA64_PSR_BE            0x0000000000000002
-#define IA64_PSR_UP            0x0000000000000004
-#define IA64_PSR_AC            0x0000000000000008
-#define IA64_PSR_MFL           0x0000000000000010
-#define IA64_PSR_MFH_BIT       5
-#define IA64_PSR_MFH           (1 << IA64_PSR_MFH_BIT)
-#define IA64_PSR_UMASK         (IA64_PSR_BE | IA64_PSR_UP |    \
-                               IA64_PSR_AC | IA64_PSR_MFL |    \
-                               IA64_PSR_MFH)
-#define IA64_PSR_IC_BIT                13
-#define IA64_PSR_IC            (1<<IA64_PSR_IC_BIT) /*0x0000000000002000*/
-#define IA64_PSR_I_BIT         14
-#define IA64_PSR_I             (1<<IA64_PSR_I_BIT) /*0x0000000000004000*/
-#define IA64_PSR_PK            0x0000000000008000
-#define IA64_PSR_DT            0x0000000000020000
-#define IA64_PSR_DFL           0x0000000000040000
-#define IA64_PSR_DFH           0x0000000000080000
-#define IA64_PSR_SP            0x0000000000100000
-#define IA64_PSR_PP            0x0000000000200000
-#define IA64_PSR_DI            0x0000000000400000
-#define IA64_PSR_SI            0x0000000000800000
-#define IA64_PSR_DB            0x0000000001000000
-#define IA64_PSR_LP            0x0000000002000000
-#define IA64_PSR_TB            0x0000000004000000
-#define IA64_PSR_RT            0x0000000008000000
-#define IA64_PSR_CPL           0x0000000300000000
-#define IA64_PSR_CPL_KERN      0x0000000000000000
-#define IA64_PSR_CPL_1         0x0000000100000000
-#define IA64_PSR_CPL_2         0x0000000200000000
-#define IA64_PSR_CPL_USER      0x0000000300000000
-#define IA64_PSR_IS            0x0000000400000000
-#define IA64_PSR_MC            0x0000000800000000
-#define IA64_PSR_IT            0x0000001000000000
-#define IA64_PSR_ID            0x0000002000000000
-#define IA64_PSR_DA            0x0000004000000000
-#define IA64_PSR_DD            0x0000008000000000
-#define IA64_PSR_SS            0x0000010000000000
-#define IA64_PSR_RI            0x0000060000000000
-#define IA64_PSR_RI_0          0x0000000000000000
-#define IA64_PSR_RI_1          0x0000020000000000
-#define IA64_PSR_RI_2          0x0000040000000000
-#define IA64_PSR_RI_SHIFT      41
-#define IA64_PSR_ED            0x0000080000000000
-#define IA64_PSR_BN            0x0000100000000000
-#define IA64_PSR_IA            0x0000200000000000
-
-
-#define STARTUP_PSR (IA64_PSR_IT | IA64_PSR_PK | \
-                    IA64_PSR_DT | IA64_PSR_RT | \
-                    IA64_PSR_BN | IA64_PSR_CPL_KERN | IA64_PSR_AC)
-
-#define MOS_SYS_PSR (IA64_PSR_IC | IA64_PSR_I | IA64_PSR_IT | \
-                    IA64_PSR_DT | IA64_PSR_RT | \
-                    IA64_PSR_BN | IA64_PSR_CPL_KERN | IA64_PSR_AC)
-
-#define MOS_USR_PSR (IA64_PSR_IC | IA64_PSR_I | IA64_PSR_IT | \
-                    IA64_PSR_DT | IA64_PSR_RT | \
-                    IA64_PSR_BN | IA64_PSR_CPL_USER | IA64_PSR_AC)
-
-/*
- * Definition of ISR bits.
- */
-#define IA64_ISR_CODE  0x000000000000ffff
-#define IA64_ISR_VECTOR        0x0000000000ff0000
-#define IA64_ISR_X     0x0000000100000000
-#define IA64_ISR_W     0x0000000200000000
-#define IA64_ISR_R     0x0000000400000000
-#define IA64_ISR_NA    0x0000000800000000
-#define IA64_ISR_SP    0x0000001000000000
-#define IA64_ISR_RS    0x0000002000000000
-#define IA64_ISR_IR    0x0000004000000000
-#define IA64_ISR_NI    0x0000008000000000
-#define IA64_ISR_SO    0x0000010000000000
-#define IA64_ISR_EI    0x0000060000000000
-#define IA64_ISR_EI_0  0x0000000000000000
-#define IA64_ISR_EI_1  0x0000020000000000
-#define IA64_ISR_EI_2  0x0000040000000000
-#define IA64_ISR_ED    0x0000080000000000
-
-/*
- * DCR bit positions
- */
-#define IA64_DCR_PP            0
-#define IA64_DCR_BE            1
-#define IA64_DCR_LC            2
-#define IA64_DCR_MBZ0          4
-#define IA64_DCR_MBZ0_V                0xf
-#define IA64_DCR_DM            8
-#define IA64_DCR_DP            9
-#define IA64_DCR_DK            10
-#define IA64_DCR_DX            11
-#define IA64_DCR_DR            12
-#define IA64_DCR_DA            13
-#define IA64_DCR_DD            14
-#define IA64_DCR_DEFER_ALL     0x7f00
-#define IA64_DCR_MBZ1          2
-#define IA64_DCR_MBZ1_V                0xffffffffffffULL
-
-
-#define IA64_DCR_DEFAULT (IA64_DCR_BE)
-
-/*
- * Vector numbers for various ia64 interrupts.
- */
-#define IA64_VEC_VHPT                          0
-#define IA64_VEC_ITLB                          1
-#define IA64_VEC_DTLB                          2
-#define IA64_VEC_ALT_ITLB                      3
-#define IA64_VEC_ALT_DTLB                      4
-#define IA64_VEC_NESTED_DTLB                   5
-#define IA64_VEC_IKEY_MISS                     6
-#define IA64_VEC_DKEY_MISS                     7
-#define IA64_VEC_DIRTY_BIT                     8
-#define IA64_VEC_INST_ACCESS                   9
-#define IA64_VEC_DATA_ACCESS                   10
-#define IA64_VEC_BREAK                         11
-#define IA64_VEC_EXT_INTR                      12
-#define IA64_VEC_PAGE_NOT_PRESENT              20
-#define IA64_VEC_KEY_PERMISSION                        21
-#define IA64_VEC_INST_ACCESS_RIGHTS            22
-#define IA64_VEC_DATA_ACCESS_RIGHTS            23
-#define IA64_VEC_GENERAL_EXCEPTION             24
-#define IA64_VEC_DISABLED_FP                   25
-#define IA64_VEC_NAT_CONSUMPTION               26
-#define IA64_VEC_SPECULATION                   27
-#define IA64_VEC_DEBUG                         29
-#define IA64_VEC_UNALIGNED_REFERENCE           30
-#define IA64_VEC_UNSUPP_DATA_REFERENCE         31
-#define IA64_VEC_FLOATING_POINT_FAULT          32
-#define IA64_VEC_FLOATING_POINT_TRAP           33
-#define IA64_VEC_LOWER_PRIVILEGE_TRANSFER      34
-#define IA64_VEC_TAKEN_BRANCH_TRAP             35
-#define IA64_VEC_SINGLE_STEP_TRAP              36
-#define IA64_VEC_IA32_EXCEPTION                        45
-#define IA64_VEC_IA32_INTERCEPT                        46
-#define IA64_VEC_IA32_INTERRUPT                        47
-
-/*
- * Define hardware RSE Configuration Register
- *
- * RS Configuration (RSC) bit field positions
- */
-
-#define IA64_RSC_MODE       0
-#define IA64_RSC_PL         2
-#define IA64_RSC_BE         4
-#define IA64_RSC_MBZ0       5
-#define IA64_RSC_MBZ0_V     0x3ff
-#define IA64_RSC_LOADRS     16
-#define IA64_RSC_LOADRS_LEN 14
-#define IA64_RSC_MBZ1       30
-#define IA64_RSC_MBZ1_V     0x3ffffffffULL
-
-/*
- * RSC modes
- */
-#define IA64_RSC_MODE_LY (0x0)                 /* Lazy */
-#define IA64_RSC_MODE_SI (0x1)                 /* Store intensive */
-#define IA64_RSC_MODE_LI (0x2)                 /* Load intensive */
-#define IA64_RSC_MODE_EA (0x3)                 /* Eager */
-
-#define IA64_RSE_EAGER (IA64_RSC_MODE_EA<<IA64_RSC_MODE)
-#define IA64_RSE_LAZY (IA64_RSC_MODE_LY<<IA64_RSC_MODE)
-
-
-
-#ifndef __ASSEMBLY__
-
-/* ia64 function descriptor and global pointer */
-struct ia64_fdesc
-{
-       uint64_t        func;
-       uint64_t        gp;
-};
-typedef struct ia64_fdesc ia64_fdesc_t;
-
-#define FDESC_FUNC(fn)  (((struct ia64_fdesc *) fn)->func)
-#define FDESC_GP(fn)    (((struct ia64_fdesc *) fn)->gp)
-
-
-/*
- * Various special ia64 instructions.
- */
-
-/*
- * Memory Fence.
- */
-static __inline void
-ia64_mf(void)
-{
-       __asm __volatile("mf" ::: "memory");
-}
-
-static __inline void
-ia64_mf_a(void)
-{
-       __asm __volatile("mf.a");
-}
-
-/*
- * Flush Cache.
- */
-static __inline void
-ia64_fc(uint64_t va)
-{
-       __asm __volatile("fc %0" :: "r"(va));
-}
-
-/*
- * Sync instruction stream.
- */
-static __inline void
-ia64_sync_i(void)
-{
-       __asm __volatile("sync.i");
-}
-
-/*
- * Calculate address in VHPT for va.
- */
-static __inline uint64_t
-ia64_thash(uint64_t va)
-{
-       uint64_t result;
-       __asm __volatile("thash %0=%1" : "=r" (result) : "r" (va));
-       return result;
-}
-
-/*
- * Calculate VHPT tag for va.
- */
-static __inline uint64_t
-ia64_ttag(uint64_t va)
-{
-       uint64_t result;
-       __asm __volatile("ttag %0=%1" : "=r" (result) : "r" (va));
-       return result;
-}
-
-/*
- * Convert virtual address to physical.
- */
-static __inline uint64_t
-ia64_tpa(uint64_t va)
-{
-       uint64_t result;
-       __asm __volatile("tpa %0=%1" : "=r" (result) : "r" (va));
-       return result;
-}
-
-/*
- * Generate a ptc.e instruction.
- */
-static __inline void
-ia64_ptc_e(uint64_t v)
-{
-       __asm __volatile("ptc.e %0;; srlz.d;;" :: "r"(v));
-}
-
-/*
- * Generate a ptc.g instruction.
- */
-static __inline void
-ia64_ptc_g(uint64_t va, uint64_t size)
-{
-       __asm __volatile("ptc.g %0,%1;; srlz.d;;" :: "r"(va), "r"(size<<2));
-}
-
-/*
- * Generate a ptc.ga instruction.
- */
-static __inline void
-ia64_ptc_ga(uint64_t va, uint64_t size)
-{
-       __asm __volatile("ptc.ga %0,%1;; srlz.d;;" :: "r"(va), "r"(size<<2));
-}
-
-/*
- * Generate a ptc.l instruction.
- */
-static __inline void
-ia64_ptc_l(uint64_t va, uint64_t size)
-{
-       __asm __volatile("ptc.l %0,%1;; srlz.d;;" :: "r"(va), "r"(size<<2));
-}
-
-/*
- * Read the value of psr.
- */
-static __inline uint64_t
-ia64_get_psr(void)
-{
-       uint64_t result;
-       __asm __volatile("mov %0=psr;;" : "=r" (result));
-       return result;
-}
-
-static __inline void
-ia64_set_psr(uint64_t v)
-{
-       __asm __volatile("mov psr.l=%0" :: "r" (v));
-}
-
-static __inline void
-ia64_srlz_d(void)
-{
-       __asm __volatile("srlz.d;;");
-}
-
-static __inline void
-disable_intr(void)
-{
-       __asm __volatile ("rsm psr.ic|psr.i");
-}
-
-static __inline void
-enable_intr(void)
-{
-       __asm __volatile ("ssm psr.ic|psr.i");
-}
-
-/*
- * Define accessors for application registers.
- */
-
-#define IA64_AR(name)                                                  \
-                                                                       \
-static __inline uint64_t                                               \
-ia64_get_##name(void)                                                  \
-{                                                                      \
-       uint64_t result;                                                \
-       __asm __volatile(";;mov %0=ar." #name ";;" : "=r" (result));    \
-       return result;                                                  \
-}                                                                      \
-                                                                       \
-static __inline void                                                   \
-ia64_set_##name(uint64_t v)                                            \
-{                                                                      \
-       __asm __volatile("mov ar." #name "=%0" :: "r" (v));             \
-}
-
-IA64_AR(k0)
-IA64_AR(k1)
-IA64_AR(k2)
-IA64_AR(k3)
-IA64_AR(k4)
-IA64_AR(k5)
-IA64_AR(k6)
-IA64_AR(k7)
-
-IA64_AR(rsc)
-IA64_AR(bsp)
-IA64_AR(bspstore)
-IA64_AR(rnat)
-
-IA64_AR(fcr)
-
-IA64_AR(eflag)
-IA64_AR(csd)
-IA64_AR(ssd)
-IA64_AR(cflg)
-IA64_AR(fsr)
-IA64_AR(fir)
-IA64_AR(fdr)
-
-IA64_AR(ccv)
-
-IA64_AR(unat)
-
-IA64_AR(fpsr)
-
-IA64_AR(itc)
-
-IA64_AR(pfs)
-IA64_AR(lc)
-IA64_AR(ec)
-
-/*
- * Define accessors for control registers.
- */
-
-#define IA64_CR(name)                                          \
-                                                               \
-static __inline uint64_t                                       \
-ia64_get_##name(void)                                          \
-{                                                              \
-       uint64_t result;                                        \
-       __asm __volatile("mov %0=cr." #name : "=r" (result));   \
-       return result;                                          \
-}                                                              \
-                                                               \
-static __inline void                                           \
-ia64_set_##name(uint64_t v)                                    \
-{                                                              \
-       __asm __volatile("mov cr." #name "=%0" :: "r" (v));     \
-}
-
-IA64_CR(dcr)
-IA64_CR(itm)
-IA64_CR(iva)
-
-IA64_CR(pta)
-
-IA64_CR(ipsr)
-IA64_CR(isr)
-
-IA64_CR(iip)
-IA64_CR(ifa)
-IA64_CR(itir)
-IA64_CR(iipa)
-IA64_CR(ifs)
-IA64_CR(iim)
-IA64_CR(iha)
-
-IA64_CR(lid)
-IA64_CR(ivr)
-IA64_CR(tpr)
-IA64_CR(eoi)
-IA64_CR(irr0)
-IA64_CR(irr1)
-IA64_CR(irr2)
-IA64_CR(irr3)
-IA64_CR(itv)
-IA64_CR(pmv)
-IA64_CR(cmcv)
-
-IA64_CR(lrr0)
-IA64_CR(lrr1)
-
-#define IA64_GR(name)                                          \
-                                                               \
-static __inline uint64_t                                       \
-ia64_get_##name(void)                                          \
-{                                                              \
-       uint64_t result;                                        \
-       __asm __volatile("mov %0=" #name : "=r" (result));      \
-       return result;                                          \
-}                                                              \
-                                                               \
-static __inline void                                           \
-ia64_set_##name(uint64_t v)                                    \
-{                                                              \
-       __asm __volatile("mov " #name "=%0" :: "r" (v));        \
-}
-
-IA64_GR(sp)
-IA64_GR(b0)
-IA64_GR(r13)   // tp
-
-
-/*
- * Write a region register.
- */
-static __inline void
-ia64_set_rr(uint64_t rrbase, uint64_t v)
-{
-       __asm __volatile("mov rr[%0]=%1;; srlz.d;;"
-                        :: "r"(rrbase), "r"(v) : "memory");
-}
-
-/*
- * Read a region register.
- */
-static __inline uint64_t
-ia64_get_rr(uint64_t rrbase)
-{
-       uint64_t v;
-       __asm __volatile("mov %1=rr[%0];;"
-                        : "=r" (v) : "r"(rrbase) : "memory");
-       return v;
-}
-
-
-/*
- * Read a CPUID register.
- */
-static __inline uint64_t
-ia64_get_cpuid(int i)
-{
-       uint64_t result;
-       __asm __volatile("mov %0=cpuid[%1]"
-                        : "=r" (result) : "r"(i));
-       return result;
-}
-
-
-struct trap_frame
-{
-       uint64_t        rsc;
-       uint64_t        ndirty;         /* number of dirty regs */
-       uint64_t        ssd;
-       uint64_t        iip;            /* interrupted ip */
-       uint64_t        ipsr;           /* interrupted psr */
-       uint64_t        ifs;            /* interruption func status register */
-
-       uint16_t        trap_num;       /* Trap num, index in trap_vec */
-       uint64_t        cfm;            /* current frame marker */
-       uint64_t        pfs;            /* previous function state ar64 */
-       uint64_t        bsp;            /* backing store pointer ar17 */
-       uint64_t        rnat;           /* rse nat collection ar19 */
-       uint64_t        csd;            /* comp and store data reg ar25 */
-       uint64_t        ccv;            /* comp and xchange val reg ar32 */
-       uint64_t        unat;           /* */
-       uint64_t        fpsr;           /* floating point state reg ar40 */
-       uint64_t        pr;             /* predicate regs 0-63 */
-
-       uint64_t        gp;             /* the gp pointer */
-       uint64_t        sp;             /* stack pointer */
-       uint64_t        tp;             /* thread pointer */
-
-       uint64_t        r2;             /* global reg 2 */
-       uint64_t        r3;
-       uint64_t        r8;
-       uint64_t        r9;
-       uint64_t        r10;
-       uint64_t        r11;
-       uint64_t        r14;
-       uint64_t        r15;
-       uint64_t        r16;
-       uint64_t        r17;
-       uint64_t        r18;
-       uint64_t        r19;
-       uint64_t        r20;
-       uint64_t        r21;
-       uint64_t        r22;
-       uint64_t        r23;
-       uint64_t        r24;
-       uint64_t        r25;
-       uint64_t        r26;
-       uint64_t        r27;
-       uint64_t        r28;
-       uint64_t        r29;
-       uint64_t        r30;
-       uint64_t        r31;
-
-       uint64_t        b0;
-       uint64_t        b6;
-       uint64_t        b7;
-
-       ia64_fpreg_t    f6;           /* floating point register 6 */
-       ia64_fpreg_t    f7;
-       ia64_fpreg_t    f8;
-       ia64_fpreg_t    f9;
-       ia64_fpreg_t    f10;
-       ia64_fpreg_t    f11;
-
-       uint64_t        ifa;            /* interruption faulting address */
-       uint64_t        isr;            /* interruption status register */
-       uint64_t        iim;            /* interruption immediate register */
-};
-
-typedef struct trap_frame trap_frame_t;
-
-
-#endif  /* __ASSEMBLY__ */
-
-/* Page access parameters. */
-#define PTE_P_SHIFT    0
-#define PTE_P          1
-
-#define PTE_MA_SHIFT   2
-#define PTE_MA_WB      0
-
-#define PTE_A_SHIFT    5
-#define PTE_A          1
-#define PTE_D_SHIFT    6
-#define PTE_D          1
-
-#define PTE_AR_SHIFT   9
-#define PTE_AR_R       0
-#define PTE_AR_RX      1
-#define PTE_AR_RW      2
-#define PTE_AR_RWX     3
-#define PTE_AR_R_RW    4
-#define PTE_AR_RX_RWX  5
-#define PTE_AR_RWX_RW  6
-/* privilege level */
-#define PTE_PL_SHIFT   7
-#define PTE_PL_KERN    0       /* used for kernel */
-/* page size */
-#define PTE_PS_4K      12
-#define PTE_PS_8K      13
-#define PTE_PS_16K     14
-#define PTE_PS_64K     16
-#define PTE_PS_256K    18
-#define PTE_PS_1M      20
-#define PTE_PS_4M      22
-#define PTE_PS_16M     24
-#define PTE_PS_64M     26
-#define PTE_PS_256M    28
-
-
-       /* Some offsets for ia64_pte_t. */
-#define PTE_OFF_P      0
-#define PTE_OFF_MA     3
-#define PTE_OFF_A      5
-#define PTE_OFF_D      6
-#define PTE_OFF_PL     7
-#define PTE_OFF_AR     9
-#define PTE_OFF_PPN    12
-#define PTE_OFF_ED     52
-
-#if !defined(_ASM) && !defined(__ASSEMBLY__)
-/*
- * A short-format VHPT entry. Also matches the TLB insertion format.
- */
-typedef struct
-{
-       uint64_t pte_p  :1;     /* bits 0..0 */
-       uint64_t pte_rv1:1;     /* bits 1..1 */
-       uint64_t pte_ma :3;     /* bits 2..4 */
-       uint64_t pte_a  :1;     /* bits 5..5 */
-       uint64_t pte_d  :1;     /* bits 6..6 */
-       uint64_t pte_pl :2;     /* bits 7..8 */
-       uint64_t pte_ar :3;     /* bits 9..11 */
-       uint64_t pte_ppn:38;    /* bits 12..49 */
-       uint64_t pte_rv2:2;     /* bits 50..51 */
-       uint64_t pte_ed :1;     /* bits 52..52 */
-       uint64_t pte_ig :11;    /* bits 53..63 */
-} ia64_pte_t;
-
-
-/*
- * A long-format VHPT entry.
- */
-typedef struct
-{
-       uint64_t pte_p          :1;     /* bits 0..0 */
-       uint64_t pte_rv1        :1;     /* bits 1..1 */
-       uint64_t pte_ma         :3;     /* bits 2..4 */
-       uint64_t pte_a          :1;     /* bits 5..5 */
-       uint64_t pte_d          :1;     /* bits 6..6 */
-       uint64_t pte_pl         :2;     /* bits 7..8 */
-       uint64_t pte_ar         :3;     /* bits 9..11 */
-       uint64_t pte_ppn        :38;    /* bits 12..49 */
-       uint64_t pte_rv2        :2;     /* bits 50..51 */
-       uint64_t pte_ed         :1;     /* bits 52..52 */
-       uint64_t pte_ig         :11;    /* bits 53..63 */
-       uint64_t pte_rv3        :2;     /* bits 0..1 */
-       uint64_t pte_ps         :6;     /* bits 2..7 */
-       uint64_t pte_key        :24;    /* bits 8..31 */
-       uint64_t pte_rv4        :32;    /* bits 32..63 */
-       uint64_t pte_tag;               /* includes ti */
-       uint64_t pte_chain;             /* pa of collision chain */
-} ia64_lpte_t;
-
-#endif /* __ASSEMBLY__ */
-
-#endif /* _IA64_CPU_H_ */
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/include/ia64/ia64_fpu.h
--- a/extras/mini-os/include/ia64/ia64_fpu.h    Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-/*
- * Done by Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
- * This code is mostly taken from FreeBSD.
- *
- ****************************************************************************
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- */
-
-#ifndef _IA64_FPU_H_
-#define _IA64_FPU_H_
-
-#include "os.h"
-
-/*
- * Floating point status register bits.
- */
-#define IA64_FPSR_TRAP_VD      UL_CONST(0x0000000000000001)
-#define IA64_FPSR_TRAP_DD      UL_CONST(0x0000000000000002)
-#define IA64_FPSR_TRAP_ZD      UL_CONST(0x0000000000000004)
-#define IA64_FPSR_TRAP_OD      UL_CONST(0x0000000000000008)
-#define IA64_FPSR_TRAP_UD      UL_CONST(0x0000000000000010)
-#define IA64_FPSR_TRAP_ID      UL_CONST(0x0000000000000020)
-#define IA64_FPSR_SF(i,v)      ((v) << ((i)*13+6))
-
-#define IA64_SF_FTZ            UL_CONST(0x0001)
-#define IA64_SF_WRE            UL_CONST(0x0002)
-#define IA64_SF_PC             UL_CONST(0x000c)
-#define IA64_SF_PC_0           UL_CONST(0x0000)
-#define IA64_SF_PC_1           UL_CONST(0x0004)
-#define IA64_SF_PC_2           UL_CONST(0x0008)
-#define IA64_SF_PC_3           UL_CONST(0x000c)
-#define IA64_SF_RC             UL_CONST(0x0030)
-#define IA64_SF_RC_NEAREST     UL_CONST(0x0000)
-#define IA64_SF_RC_NEGINF      UL_CONST(0x0010)
-#define IA64_SF_RC_POSINF      UL_CONST(0x0020)
-#define IA64_SF_RC_TRUNC       UL_CONST(0x0030)
-#define IA64_SF_TD             UL_CONST(0x0040)
-#define IA64_SF_V              UL_CONST(0x0080)
-#define IA64_SF_D              UL_CONST(0x0100)
-#define IA64_SF_Z              UL_CONST(0x0200)
-#define IA64_SF_O              UL_CONST(0x0400)
-#define IA64_SF_U              UL_CONST(0x0800)
-#define IA64_SF_I              UL_CONST(0x1000)
-
-#define IA64_SF_DEFAULT        (IA64_SF_PC_3 | IA64_SF_RC_NEAREST)
-
-#define IA64_FPSR_DEFAULT      (IA64_FPSR_TRAP_VD                      \
-                                | IA64_FPSR_TRAP_DD                    \
-                                | IA64_FPSR_TRAP_ZD                    \
-                                | IA64_FPSR_TRAP_OD                    \
-                                | IA64_FPSR_TRAP_UD                    \
-                                | IA64_FPSR_TRAP_ID                    \
-                                | IA64_FPSR_SF(0, IA64_SF_DEFAULT)     \
-                                | IA64_FPSR_SF(1, (IA64_SF_DEFAULT     \
-                                                   | IA64_SF_TD        \
-                                                   | IA64_SF_WRE))     \
-                                | IA64_FPSR_SF(2, (IA64_SF_DEFAULT     \
-                                                   | IA64_SF_TD))      \
-                                | IA64_FPSR_SF(3, (IA64_SF_DEFAULT     \
-                                                   | IA64_SF_TD)))
-
-
-#ifndef __ASSEMBLY__
-
-       /* This is from sys/cdefs.h in FreeBSD */
-#define __aligned(x)    __attribute__((__aligned__(x)))
-
-       /* A single Floating Point register. */
-struct ia64_fpreg
-{
-       uint8_t fpr_bits[16];
-} __aligned(16);
-
-typedef struct ia64_fpreg ia64_fpreg_t;
-
-#endif /* __ASSEMBLY__ */
-
-#endif /* _IA64_FPU_H_ */
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/include/ia64/os.h
--- a/extras/mini-os/include/ia64/os.h  Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,295 +0,0 @@
-/*
- * Copyright (C) 2007 - Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
- *
- ****************************************************************************
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
- * DEALINGS IN THE SOFTWARE.
- */
-
-
-#if !defined(__OS_H__)
-#define __OS_H__
-
-#if !defined(__ASSEMBLY__)
-
-#include <mini-os/types.h>
-#include "ia64_cpu.h"
-#include "atomic.h"
-#include "efi.h"
-#include "sal.h"
-#include "pal.h"
-#include <mini-os/hypervisor.h>
-#include <mini-os/kernel.h>
-
-
-typedef uint64_t paddr_t;              /* Physical address. */
-#ifndef HAVE_LIBC
-typedef uint64_t caddr_t;              /* rr7/kernel memory address. */
-#endif
-
-#include "page.h"
-#include "mm.h"
-
-
-void arch_init(start_info_t *si);      /* in common.c */
-void arch_print_info(void);            /* in common.c */
-void arch_fini(void);
-
-
-/* Size of xen_ia64_boot_param.command_line */
-#define COMMAND_LINE_SIZE       512
-
-extern struct xen_ia64_boot_param* ia64_boot_paramP;
-extern struct xen_ia64_boot_param ia64BootParamG;
-extern char boot_cmd_line[];
-extern efi_system_table_t* efiSysTableP;
-extern int bootverbose;
-
-extern void ia64_probe_sapics(void);
-
-
-
-/* Contains the needed stuff from efi. */
-struct efi
-{
-
-       efi_system_table_t*             efiSysTableP;
-       efi_set_virtual_address_map_t   setVirtAddrMapF;
-       efi_get_time_t                  getTimeF;
-       efi_reset_system_t              resetSystemF;
-
-};
-
-struct machine_fw
-{
-       struct efi efi;
-
-       uint64_t ia64_port_base;        /* physical address */
-       uint64_t ia64_pal_base;         /* virtual rr7 address */
-
-       sal_system_table_t* ia64_sal_tableP;
-       sal_entry_t* ia64_sal_entryP;   /* SAL_PROC entrypoint */
-
-       uint64_t ia64_efi_acpi_table;   /* physical address */
-       uint64_t ia64_efi_acpi20_table; /* physical address */
-
-       uint64_t mach_mem_start;        /* phys start addr of machine memory */
-       uint64_t mach_mem_size;         /* size of machine memory */
-
-       uint64_t kernstart;             /* virt address of kern text start */
-       uint64_t kernend;
-       uint64_t kernpstart;            /* phys address of kern text start */
-       uint64_t kernpend;
-};
-
-extern struct machine_fw machineFwG;
-
-#define ia64_sal_entry machineFwG.ia64_sal_entryP
-
-#define smp_processor_id() 0
-
-static inline uint64_t
-xchg8(uint64_t* ptr, uint64_t x)                                               
\
-{
-        uint64_t oldVal;
-        asm volatile ("xchg8 %0=[%1],%2" : "=r" (oldVal)
-                      : "r" (ptr), "r" (x) : "memory");
-        return oldVal;
-}
-#define xchg xchg8
-
-// Counts the number of 1-bits in x.
-#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
-# define get_popcnt(x)         __builtin_popcountl(x)
-#else
-# define get_popcnt(x)                                 \
-  ({                                                   \
-       uint64_t num;                                   \
-       asm ("popcnt %0=%1" : "=r" (num) : "r" (x));    \
-       num;                                            \
-  })
-#endif
-
-/**
- * __ffs - find first bit in word.
- * @x: The word to search
- *
- * Undefined if no bit exists, so code should check against 0 first.
- */
-static inline unsigned long
-__ffs (unsigned long x)
-{
-       unsigned long result;
-
-       result = get_popcnt((x-1) & ~x);
-       return result;
-}
-
-
-static inline void
-synch_clear_bit(int num, volatile void *addr)
-{
-       clear_bit(num, addr);
-}
-
-static inline void
-synch_set_bit(int num, volatile void *addr)
-{
-       set_bit(num, addr);
-}
-
-static inline int
-synch_test_bit(int nr, const volatile void *addr)
-{
-       return test_bit(nr, addr);
-}
-
-static inline int
-synch_test_and_set_bit(int num, volatile void * addr)
-{
-       return test_and_set_bit(num, addr);
-}
-
-
-#define synch_cmpxchg(ptr, old, new) \
-((__typeof__(*(ptr)))__synch_cmpxchg((ptr),\
-                                     (unsigned long)(old), \
-                                     (unsigned long)(new), \
-                                     sizeof(*(ptr))))
-
-static inline unsigned long
-__synch_cmpxchg(volatile void *ptr, uint64_t old, uint64_t new, int size)
-{
-       switch (size)
-       {
-               case 1:
-                       return ia64_cmpxchg_acq_8(ptr, old, new);
-               case 2:
-                       return ia64_cmpxchg_acq_16(ptr, old, new);
-               case 4:
-                       return ia64_cmpxchg_acq_32(ptr, old, new);
-               case 8:
-                       return ia64_cmpxchg_acq_64(ptr, old, new);
-       }
-       return ia64_cmpxchg_acq_64(ptr, old, new);
-}
-
-extern shared_info_t *HYPERVISOR_shared_info;
-
-
-/*
- * This code is from the originally os.h and should be put in a
- * common header file!
- */
-
-/* 
- * The use of 'barrier' in the following reflects their use as local-lock
- * operations. Reentrancy must be prevented (e.g., __cli()) /before/ following
- * critical operations are executed. All critical operations must complete
- * /before/ reentrancy is permitted (e.g., __sti()). Alpha architecture also
- * includes these barriers, for example.
- */
-
-#define __cli()                                                                
\
-do {                                                                   \
-       vcpu_info_t *_vcpu;                                             \
-       _vcpu = &HYPERVISOR_shared_info->vcpu_info[smp_processor_id()]; \
-       _vcpu->evtchn_upcall_mask = 1;                                  \
-       barrier();                                                      \
-} while (0)
-
-#define __sti()                                                                
\
-do {                                                                   \
-       vcpu_info_t *_vcpu;                                             \
-       barrier();                                                      \
-       _vcpu = &HYPERVISOR_shared_info->vcpu_info[smp_processor_id()]; \
-       _vcpu->evtchn_upcall_mask = 0;                                  \
-       barrier(); /* unmask then check (avoid races) */                \
-       if (unlikely(_vcpu->evtchn_upcall_pending))                     \
-               force_evtchn_callback();                                \
-} while (0)
-
-#define __save_flags(x)                                                        
\
-do {                                                                   \
-       vcpu_info_t *_vcpu;                                             \
-       _vcpu = &HYPERVISOR_shared_info->vcpu_info[smp_processor_id()]; \
-       (x) = _vcpu->evtchn_upcall_mask;                                \
-} while (0)
-
-#define __restore_flags(x)                                             \
-do {                                                                   \
-       vcpu_info_t *_vcpu;                                             \
-       barrier();                                                      \
-       _vcpu = &HYPERVISOR_shared_info->vcpu_info[smp_processor_id()]; \
-       if ((_vcpu->evtchn_upcall_mask = (x)) == 0) {                   \
-               barrier(); /* unmask then check (avoid races) */        \
-               if ( unlikely(_vcpu->evtchn_upcall_pending) )           \
-                       force_evtchn_callback();                        \
-       }\
-} while (0)
-
-#define safe_halt()            ((void)0)
-
-#define __save_and_cli(x)                                              \
-do {                                                                   \
-       vcpu_info_t *_vcpu;                                             \
-       _vcpu = &HYPERVISOR_shared_info->vcpu_info[smp_processor_id()]; \
-       (x) = _vcpu->evtchn_upcall_mask;                                \
-       _vcpu->evtchn_upcall_mask = 1;                                  \
-       barrier();                                                      \
-} while (0)
-
-#define local_irq_save(x)      __save_and_cli(x)
-#define local_irq_restore(x)   __restore_flags(x)
-#define local_save_flags(x)    __save_flags(x)
-#define local_irq_disable()    __cli()
-#define local_irq_enable()     __sti()
-
-#define irqs_disabled()                        \
-       
(HYPERVISOR_shared_info->vcpu_info[smp_processor_id()].evtchn_upcall_mask)
-
-/* This is a barrier for the compiler only, NOT the processor! */
-#define barrier() __asm__ __volatile__("": : :"memory")
-
-#define mb()   ia64_mf()
-#define rmb()  mb()
-#define wmb()  mb()
-
-
-#define BUG()  \
-       { printk("mini-os BUG at %s:%d!\n", __FILE__, __LINE__); do_exit(); }
-
-#define PRINT_BV(_fmt, _params...)             \
-       if (bootverbose)                        \
-               printk(_fmt , ## _params)
-
-#endif /* !defined(__ASSEMBLY__) */
-
-#if defined(__ASSEMBLY__)
-
-#define UL_CONST(x)    x
-#define UL_TYPE(x)     x
-
-#else /* defined(__ASSEMBLY__) */
-
-#define UL_CONST(x)    x##UL
-#define UL_TYPE(x)     ((uint64_t)x)
-
-#endif /* defined(__ASSEMBLY__) */
-
-#endif /* !defined(__OS_H__) */
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/include/ia64/page.h
--- a/extras/mini-os/include/ia64/page.h        Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
-/*
- * Done by Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
- * Common stuff for memory and page handling.
- * Parts are taken from FreeBSD.
- *
- ****************************************************************************
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
- * DEALINGS IN THE SOFTWARE.
- */
-
-
-#if !defined(_PAGE_H_)
-#define _PAGE_H_
-
-#include "os.h"
-#include "ia64_cpu.h"
-
-#define PTE_KERNEL_ATTR ((PTE_P<<PTE_P_SHIFT)          |\
-                       (PTE_MA_WB<<PTE_MA_SHIFT)       |\
-                       (PTE_D<<PTE_D_SHIFT)            |\
-                       (PTE_A<<PTE_A_SHIFT)            |\
-                       (PTE_PL_KERN<<PTE_PL_SHIFT)     |\
-                       (PTE_AR_RWX<<PTE_AR_SHIFT))
-
-
-/* The kernel tr page size for text and data. */
-#define KERNEL_TR_PAGE_SIZE    PTE_PS_1M
-/* The efi-pal page size for text and data. */
-#define PAL_TR_PAGE_SIZE       PTE_PS_1M
-
-#include "arch_limits.h"
-#define PAGE_SHIFT     __PAGE_SHIFT
-#define PAGE_SIZE      __PAGE_SIZE
-#define PAGE_MASK      (~(PAGE_SIZE-1))
-
-#define KSTACK_PAGES   4       /* 4 pages for the kernel stack + bsp */
-
-#define IA64_TR_KERNEL 0       /* itr0, dtr0: maps kernel image (code) */
-#define IA64_TR_PAL    1       /* itr1: maps pal code */
-
-/*
- * Manipulating region bits of an address.
- */
-#define IA64_RR_BASE(n)                ((UL_TYPE(n)) << 61)
-#define IA64_RR_MASK(x)                ((UL_TYPE(x)) & ((1L << 61) - 1))
-#define IA64_RR_EXTR(x)                ((x) >> 61)
-
-#define IA64_PHYS_TO_RR5(x)    ((x) | IA64_RR_BASE(5))
-#define IA64_PHYS_TO_RR7(x)    ((x) | IA64_RR_BASE(7))
-
-#define __pa(x)        IA64_RR_MASK(x)
-#define __va(x)        IA64_PHYS_TO_RR7(x)
-
-#define roundup_page(x)        ((((unsigned long)(x)) + PAGE_SIZE -1) & 
PAGE_MASK)
-#define trunc_page(x)  ((unsigned long)(x) & PAGE_MASK)
-
-
-#if !defined(__ASSEMBLY__)
-
-/* Contains the parts of the physically memory. */
-extern paddr_t phys_avail[];
-
-#define page_to_pfn(page)      ((uint64_t)(page) >> PAGE_SHIFT)
-#define pfn_to_page(pfn)       ((uint64_t)pfn << PAGE_SHIFT)
-/* Get phyiscal address of page of virtual address. */
-#define virt_to_page(addr)     ((uint64_t)__pa(addr) & PAGE_MASK)
-#define virt_to_pfn(addr)      (page_to_pfn(virt_to_page(addr)))
-
-
-#endif /* __ASSEMBLY__ */
-
-
-/* For both see minios-ia64.lds. */
-/* This is where the kernel virtually starts. */
-#define KERNEL_START   IA64_PHYS_TO_RR5(0x100000000)
-/* !!!!!
- * For physical start of kernel
- * Currently used in arch/ia64/fw.S.
- * !!!!!
- */
-#define KERNEL_PHYS_START_SHIFT        20
-
-/* A region 5 address to physical address */
-#define KERN_VIRT_2_PHYS(x) (((x) - KERNEL_START) + \
-                               (1 << KERNEL_PHYS_START_SHIFT))
-
-/* Some protection keys for region 5 and 7 addresses. */
-#define IA64_KEY_REG7  0x234   /* Region 7 - identity mapped addresses */
-#define IA64_KEY_REG5  0x89a   /* Region 5 - kernel addresses */
-
-// This is xen specific !
-#define PAGE_SHIFT_XEN_16K     14      // For 16KB page size
-#define mfn_to_virt(mfn)       ((void*)__va((mfn) << PAGE_SHIFT_XEN_16K))
-
-#endif /* !defined(_PAGE_H_) */
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/include/ia64/pal.h
--- a/extras/mini-os/include/ia64/pal.h Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-/*
- * Done by Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
- * The code is mostly taken from FreeBSD.
- *
- ****************************************************************************
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- */
-
-#ifndef _PAL_H_
-#define _PAL_H_
-
-/*
- * Architected static calling convention procedures.
- */
-#define PAL_CACHE_FLUSH                1
-#define PAL_CACHE_INFO         2
-#define PAL_CACHE_INIT         3
-#define PAL_CACHE_SUMMARY      4
-#define PAL_MEM_ATTRIB         5
-#define PAL_PTCE_INFO          6
-#define PAL_VM_INFO            7
-#define PAL_VM_SUMMARY         8
-#define PAL_BUS_GET_FEATURES   9
-#define PAL_BUS_SET_FEATURES   10
-#define PAL_DEBUG_INFO         11
-#define PAL_FIXED_ADDR         12
-#define PAL_FREQ_BASE          13
-#define PAL_FREQ_RATIOS                14
-#define PAL_PERF_MON_INFO      15
-#define PAL_PLATFORM_ADDR      16
-#define PAL_PROC_GET_FEATURE   17
-#define PAL_PROC_SET_FEATURE   18
-#define PAL_RSE_INFO           19
-#define PAL_VERSION            20
-#define PAL_MC_CLEAR_LOG       21
-#define PAL_MC_DRAIN           22
-#define PAL_MC_DYNAMIC_STATE   24
-#define PAL_MC_ERROR_INFO      25
-#define PAL_MC_EXPECTED                23
-#define PAL_MC_REGISTER_MEM    27
-#define PAL_MC_RESUME          26
-#define PAL_HALT               28
-#define PAL_HALT_LIGHT         29
-#define PAL_COPY_INFO          30
-#define PAL_CACHE_LINE_INIT    31
-#define PAL_PMI_ENTRYPOINT     32
-#define PAL_ENTER_IA_32_ENV    33
-#define PAL_VM_PAGE_SIZE       34
-#define PAL_MEM_FOR_TEST       37
-#define PAL_CACHE_PROT_INFO    38
-#define PAL_REGISTER_INFO      39
-#define PAL_SHUTDOWN           40
-#define PAL_PREFETCH_VISIBILITY        41
-
-
-struct ia64_pal_result
-{
-       int64_t         pal_status;
-       uint64_t        pal_result[3];
-};
-
-extern struct ia64_pal_result
-       ia64_call_pal_static(uint64_t proc, uint64_t arg1,
-                            uint64_t arg2, uint64_t arg3);
-
-#endif /* _PAL_H_ */
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/include/ia64/privop.h
--- a/extras/mini-os/include/ia64/privop.h      Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-
-/*
- * Copyright (C) 2005 Hewlett-Packard Co
- *     Dan Magenheimer <dan.magenheimer@xxxxxx>
- *
- * Paravirtualizations of privileged operations for Xen/ia64
- *
- */
-
-#ifndef _PRIVOP_H_
-#define _PRIVOP_H_
-
-#include <xen/arch-ia64.h>
-
-#define IA64_PARAVIRTUALIZED
-
-/* At 1 MB, before per-cpu space but still addressable using addl instead
-   of movl. */
-#define XSI_BASE               0xfffffffffff00000
-
-/* Address of mapped regs.  */
-#define XMAPPEDREGS_BASE       (XSI_BASE + XSI_SIZE)
-
-#ifdef __ASSEMBLY__
-#define        XEN_HYPER_RFI           break HYPERPRIVOP_RFI
-#define        XEN_HYPER_RSM_PSR_DT    break HYPERPRIVOP_RSM_DT
-#define        XEN_HYPER_SSM_PSR_DT    break HYPERPRIVOP_SSM_DT
-#define        XEN_HYPER_COVER         break HYPERPRIVOP_COVER
-#define        XEN_HYPER_ITC_D         break HYPERPRIVOP_ITC_D
-#define        XEN_HYPER_ITC_I         break HYPERPRIVOP_ITC_I
-#define        XEN_HYPER_SSM_I         break HYPERPRIVOP_SSM_I
-#define        XEN_HYPER_GET_IVR       break HYPERPRIVOP_GET_IVR
-#define        XEN_HYPER_GET_TPR       break HYPERPRIVOP_GET_TPR
-#define        XEN_HYPER_SET_TPR       break HYPERPRIVOP_SET_TPR
-#define        XEN_HYPER_EOI           break HYPERPRIVOP_EOI
-#define        XEN_HYPER_SET_ITM       break HYPERPRIVOP_SET_ITM
-#define        XEN_HYPER_THASH         break HYPERPRIVOP_THASH
-#define        XEN_HYPER_PTC_GA        break HYPERPRIVOP_PTC_GA
-#define        XEN_HYPER_ITR_D         break HYPERPRIVOP_ITR_D
-#define        XEN_HYPER_GET_RR        break HYPERPRIVOP_GET_RR
-#define        XEN_HYPER_SET_RR        break HYPERPRIVOP_SET_RR
-#define        XEN_HYPER_SET_KR        break HYPERPRIVOP_SET_KR
-#define        XEN_HYPER_FC            break HYPERPRIVOP_FC
-#define        XEN_HYPER_GET_CPUID     break HYPERPRIVOP_GET_CPUID
-#define        XEN_HYPER_GET_PMD       break HYPERPRIVOP_GET_PMD
-#define        XEN_HYPER_GET_EFLAG     break HYPERPRIVOP_GET_EFLAG
-#define        XEN_HYPER_SET_EFLAG     break HYPERPRIVOP_SET_EFLAG
-#define        XEN_HYPER_RSM_BE        break HYPERPRIVOP_RSM_BE
-#define        XEN_HYPER_GET_PSR       break HYPERPRIVOP_GET_PSR
-
-#define XSI_IFS                        (XSI_BASE + XSI_IFS_OFS)
-#define XSI_PRECOVER_IFS       (XSI_BASE + XSI_PRECOVER_IFS_OFS)
-#define XSI_INCOMPL_REGFR      (XSI_BASE + XSI_INCOMPL_REGFR_OFS)
-#define XSI_IFA                        (XSI_BASE + XSI_IFA_OFS)
-#define XSI_ISR                        (XSI_BASE + XSI_ISR_OFS)
-#define XSI_IIM                        (XSI_BASE + XSI_IIM_OFS)
-#define XSI_ITIR               (XSI_BASE + XSI_ITIR_OFS)
-#define XSI_PSR_I_ADDR         (XSI_BASE + XSI_PSR_I_ADDR_OFS)
-#define XSI_PSR_IC             (XSI_BASE + XSI_PSR_IC_OFS)
-#define XSI_IPSR               (XSI_BASE + XSI_IPSR_OFS)
-#define XSI_IIP                        (XSI_BASE + XSI_IIP_OFS)
-#define XSI_BANK1_R16          (XSI_BASE + XSI_BANK1_R16_OFS)
-#define XSI_BANKNUM            (XSI_BASE + XSI_BANKNUM_OFS)
-#define XSI_IHA                        (XSI_BASE + XSI_IHA_OFS)
-#endif
-
-#ifndef __ASSEMBLY__
-#define        XEN_HYPER_SSM_I         asm("break %0" : : "i" 
(HYPERPRIVOP_SSM_I))
-#define        XEN_HYPER_GET_IVR       asm("break %0" : : "i" 
(HYPERPRIVOP_GET_IVR))
-
-/************************************************/
-/* Instructions paravirtualized for performance */
-/************************************************/
-
-/* Xen uses memory-mapped virtual privileged registers for access to many
- * performance-sensitive privileged registers.  Some, like the processor
- * status register (psr), are broken up into multiple memory locations.
- * Others, like "pend", are abstractions based on privileged registers.
- * "Pend" is guaranteed to be set if reading cr.ivr would return a
- * (non-spurious) interrupt. */
-#define XEN_MAPPEDREGS ((struct mapped_regs *)XMAPPEDREGS_BASE)
-#define XSI_PSR_I                      \
-       (*XEN_MAPPEDREGS->interrupt_mask_addr)
-#define xen_get_virtual_psr_i()                \
-       (!XSI_PSR_I)
-#define xen_set_virtual_psr_i(_val)    \
-       ({ XSI_PSR_I = (uint8_t)(_val) ? 0 : 1; })
-#define xen_get_virtual_psr_ic()       \
-       ( XEN_MAPPEDREGS->interrupt_collection_enabled )
-#define xen_set_virtual_psr_ic(_val)   \
-       ({ XEN_MAPPEDREGS->interrupt_collection_enabled = _val ? 1 : 0; })
-#define xen_get_virtual_pend()         (XEN_MAPPEDREGS->pending_interruption)
-
-#endif /* __ASSEMBLY__ */
-
-#endif /* _PRIVOP_H_ */
-
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/include/ia64/sal.h
--- a/extras/mini-os/include/ia64/sal.h Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,188 +0,0 @@
-/*
- * Done by Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
- * The code is mostly taken from FreeBSD.
- *
- ****************************************************************************
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- */
-
-
-/*
- * The SAL System Table starts with a header which is described in
- * sal_system_table_t.
- * Table header will be followed by a variable number of variable length
- * entries. The first byte of each entry will identify the entry type and
- * the entries shall be in ascending order by the entry type. Each entry
- * type will have a known fixed length. The total length of this table
- * depends upon the configuration of the system. Operating system software
- * must step through each entry until it reaches the ENTRY_COUNT. The entries
- * are sorted on entry type in ascending order.
- * Unless otherwise stated, there is one entry per entry type.
- */
-
-#ifndef _SAL_H_
-#define _SAL_H_
-
-typedef uint64_t u_int64_t;
-typedef uint32_t u_int32_t;
-typedef uint16_t u_int16_t;
-typedef uint8_t u_int8_t;
-
-struct sal_system_table {
-       char            sal_signature[4];
-#define        SAL_SIGNATURE   "SST_"
-       uint32_t        sal_length;
-       uint8_t         sal_rev[2];     /* Byte 8 - Minor, Byte 0 - Major */
-       uint16_t        sal_entry_count;        // num entries in var part
-       uint8_t         sal_checksum;
-       uint8_t         sal_reserved1[7];
-       uint8_t         sal_a_version[2];       // like sal_rev
-       uint8_t         sal_b_version[2];       // like sal_rev
-       char            sal_oem_id[32];         // Ascii - manufacturer of HW
-       char            sal_product_id[32];     // ascii - identification
-       uint8_t         sal_reserved2[8];
-};
-
-typedef struct sal_system_table sal_system_table_t;
-
-#define SAL_DESC_ENTRYPOINT            0
-#define SAL_DESC_ENTRYPOINT_LENGTH     48
-#define SAL_DESC_MEMORY                        1
-#define SAL_DESC_MEMORY_LENGTH         32
-#define SAL_DESC_PLATFORM              2
-#define SAL_DESC_PLATFORM_LENGT                16
-#define SAL_DESC_TR_REG                        3
-#define SAL_DESC_TR_REG_LENGTH         32
-#define SAL_DESC_PURGE_TR_CACHE                4
-#define SAL_DESC_PURGE_TR_CACHE_LENGTH 16
-#define SAL_DESC_AP_WAKEUP             5
-#define SAL_DESC_AP_WAKEUP_LENGTH      16
-
-
-struct sal_entrypoint_descriptor
-{
-       uint8_t         sale_type;              /* == 0 */
-       uint8_t         sale_reserved1[7];
-       uint64_t        sale_pal_proc;          /* PAL_PROC entry point */
-       uint64_t        sale_sal_proc;          /* SAL_PROC entry point */
-       uint64_t        sale_sal_gp;            /* gp for SAL_PROC, PAL_PROC */
-       uint8_t         sale_reserved2[16];
-};
-
-struct sal_memory_descriptor
-{
-       uint8_t         sale_type;      /* == 1 */
-       uint8_t         sale_need_virtual;
-       uint8_t         sale_current_attribute;
-       uint8_t         sale_access_rights;
-       uint8_t         sale_supported_attributes;
-       uint8_t         sale_reserved1;
-       uint8_t         sale_memory_type[2];
-       uint64_t        sale_physical_address;
-       uint32_t        sale_length;
-       uint8_t         sale_reserved2[12];
-};
-
-struct sal_platform_descriptor
-{
-       uint8_t         sale_type;      /* == 2 */
-       uint8_t         sale_features;
-       uint8_t         sale_reserved[14];
-};
-
-struct sal_tr_descriptor
-{
-       u_int8_t        sale_type;      /* == 3 */
-       u_int8_t        sale_register_type;
-       u_int8_t        sale_register_number;
-       u_int8_t        sale_reserved1[5];
-       u_int64_t       sale_virtual_address;
-       u_int64_t       sale_page_size;
-       u_int8_t        sale_reserved2[8];
-};
-
-struct sal_ptc_cache_descriptor
-{
-       uint8_t         sale_type;      /* == 4 */
-       uint8_t         sale_reserved[3];
-       uint32_t        sale_domains;
-       uint64_t        sale_address;
-};
-
-struct sal_ap_wakeup_descriptor
-{
-       uint8_t         sale_type;      /* == 5 */
-       uint8_t         sale_mechanism;
-       uint8_t         sale_reserved[6];
-       uint64_t        sale_vector;
-};
-
-/*
- * SAL Procedure numbers.
- */
-
-#define SAL_SET_VECTORS                        0x01000000
-#define SAL_GET_STATE_INFO             0x01000001
-#define SAL_GET_STATE_INFO_SIZE                0x01000002
-#define SAL_CLEAR_STATE_INFO           0x01000003
-#define SAL_MC_RENDEZ                  0x01000004
-#define SAL_MC_SET_PARAMS              0x01000005
-#define SAL_REGISTER_PHYSICAL_ADDR     0x01000006
-#define SAL_CACHE_FLUSH                        0x01000008
-#define SAL_CACHE_INIT                 0x01000009
-#define SAL_PCI_CONFIG_READ            0x01000010
-#define SAL_PCI_CONFIG_WRITE           0x01000011
-#define SAL_FREQ_BASE                  0x01000012
-#define SAL_UPDATE_PAL                 0x01000020
-
-/* SAL_SET_VECTORS event handler types */
-#define        SAL_OS_MCA              0
-#define        SAL_OS_INIT             1
-#define        SAL_OS_BOOT_RENDEZ      2
-
-/* SAL_GET_STATE_INFO, SAL_GET_STATE_INFO_SIZE types */
-#define        SAL_INFO_MCA            0
-#define        SAL_INFO_INIT           1
-#define        SAL_INFO_CMC            2
-#define        SAL_INFO_CPE            3
-#define        SAL_INFO_TYPES          4       /* number of types we know 
about */
-
-struct ia64_sal_result
-{
-       int64_t         sal_status;
-       uint64_t        sal_result[3];
-};
-typedef struct ia64_sal_result ia64_sal_result_t;
-
-typedef ia64_sal_result_t sal_entry_t
-       (       uint64_t, uint64_t, uint64_t, uint64_t,
-               uint64_t, uint64_t, uint64_t, uint64_t
-       );
-
-extern ia64_sal_result_t ia64_sal_call(uint64_t, uint64_t, uint64_t, uint64_t,
-                                       uint64_t, uint64_t, uint64_t, uint64_t);
-
-extern void ia64_sal_init(sal_system_table_t *saltab);
-
-#endif /* _SAL_H_ */
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/include/ia64/traps.h
--- a/extras/mini-os/include/ia64/traps.h       Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
- * Done by Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
- *
- ****************************************************************************
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
- * DEALINGS IN THE SOFTWARE.
- */
-
-#if !defined(_TRAPS_H_)
-#define _TRAPS_H_
-
-#if !defined(__ASSEMBLY__)
-
-/* See ia64_cpu.h */
-struct trap_frame;
-
-#define pt_regs trap_frame
-
-/*
- * A dummy function, which is currently not supported.
- */
-inline static void trap_init(void)
-{
-       //printk("trap_init() until now not needed!\n");
-}
-inline static void trap_fini(void)
-{
-       //printk("trap_fini() until now not needed!\n");
-}
-
-
-#endif /* !defined(__ASSEMBLY__) */
-
-#include "ia64_cpu.h"
-
-void stack_walk(void);
-
-#endif /* !defined(_TRAPS_H_) */
-
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/include/mm.h
--- a/extras/mini-os/include/mm.h       Wed Sep 12 16:12:42 2012 +0100
+++ b/extras/mini-os/include/mm.h       Wed Sep 12 17:55:27 2012 +0100
@@ -29,8 +29,6 @@
 #include <xen/arch-x86_32.h>
 #elif defined(__x86_64__)
 #include <xen/arch-x86_64.h>
-#elif defined(__ia64__)
-#include <xen/arch-ia64.h>
 #else
 #error "Unsupported architecture"
 #endif
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/include/posix/limits.h
--- a/extras/mini-os/include/posix/limits.h     Wed Sep 12 16:12:42 2012 +0100
+++ b/extras/mini-os/include/posix/limits.h     Wed Sep 12 17:55:27 2012 +0100
@@ -25,7 +25,7 @@
 #define SHRT_MAX        0x7fff
 #define USHRT_MAX       0xffff
 
-#if defined(__x86_64__) || defined(__ia64__)
+#if defined(__x86_64__)
 # define LONG_MAX       0x7fffffffffffffffL
 # define ULONG_MAX      0xffffffffffffffffUL
 #else
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/include/sched.h
--- a/extras/mini-os/include/sched.h    Wed Sep 12 16:12:42 2012 +0100
+++ b/extras/mini-os/include/sched.h    Wed Sep 12 17:55:27 2012 +0100
@@ -12,13 +12,9 @@ struct thread
 {
     char *name;
     char *stack;
-#if !defined(__ia64__)
     /* keep in that order */
     unsigned long sp;  /* Stack pointer */
     unsigned long ip;  /* Instruction pointer */
-#else /* !defined(__ia64__) */
-    thread_regs_t regs;
-#endif /* !defined(__ia64__) */
     MINIOS_TAILQ_ENTRY(struct thread) thread_list;
     uint32_t flags;
     s_time_t wakeup_time;
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/include/types.h
--- a/extras/mini-os/include/types.h    Wed Sep 12 16:12:42 2012 +0100
+++ b/extras/mini-os/include/types.h    Wed Sep 12 17:55:27 2012 +0100
@@ -33,7 +33,7 @@ typedef unsigned long long  u_quad_t;
 
 typedef struct { unsigned long pte_low, pte_high; } pte_t;
 
-#elif defined(__x86_64__) || defined(__ia64__)
+#elif defined(__x86_64__)
 typedef long                quad_t;
 typedef unsigned long       u_quad_t;
 
@@ -54,7 +54,7 @@ typedef struct { unsigned long pte; } pt
 #ifdef __i386__
 typedef unsigned int        uintptr_t;
 typedef int                 intptr_t;
-#elif defined(__x86_64__) || defined(__ia64__)
+#elif defined(__x86_64__)
 typedef unsigned long       uintptr_t;
 typedef long                intptr_t;
 #endif /* __i386__ || __x86_64__ */
@@ -67,7 +67,7 @@ typedef   signed int int32_t;
 #ifdef __i386__
 typedef   signed long long int64_t;
 typedef unsigned long long uint64_t;
-#elif defined(__x86_64__) || defined(__ia64__)
+#elif defined(__x86_64__)
 typedef   signed long int64_t;
 typedef unsigned long uint64_t;
 #endif
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/lib/math.c
--- a/extras/mini-os/lib/math.c Wed Sep 12 16:12:42 2012 +0100
+++ b/extras/mini-os/lib/math.c Wed Sep 12 17:55:27 2012 +0100
@@ -50,10 +50,6 @@
 #include <mini-os/lib.h>
 #include <mini-os/time.h>
 
-       /* On ia64 these functions lead to crashes. These are replaced by
-        * assembler functions. */
-#if !defined(__ia64__)
-
 /* XXX RN: Yuck hardcoded endianess :) */
 #define _QUAD_HIGHWORD 1
 #define _QUAD_LOWWORD 0
@@ -428,7 +424,6 @@ __moddi3(quad_t a, quad_t b)
        (void)__qdivrem(ua, ub, &ur);
        return (neg ? -ur : ur);
 }
-#endif /* !defined(__ia64__) */
 
 #ifndef HAVE_LIBC
 /* Should be random enough for our uses */
diff -r a1bd69b08e9e -r 485e6db28b93 extras/mini-os/mm.c
--- a/extras/mini-os/mm.c       Wed Sep 12 16:12:42 2012 +0100
+++ b/extras/mini-os/mm.c       Wed Sep 12 17:55:27 2012 +0100
@@ -361,7 +361,6 @@ void free_pages(void *pointer, int order
    
 }
 
-#ifndef __ia64__
 int free_physical_pages(xen_pfn_t *mfns, int n)
 {
     struct xen_memory_reservation reservation;
@@ -372,7 +371,6 @@ int free_physical_pages(xen_pfn_t *mfns,
     reservation.domid = DOMID_SELF;
     return HYPERVISOR_memory_op(XENMEM_decrease_reservation, &reservation);
 }
-#endif
 
 #ifdef HAVE_LIBC
 void *sbrk(ptrdiff_t increment)
diff -r a1bd69b08e9e -r 485e6db28b93 tools/debugger/xenitp/Makefile
--- a/tools/debugger/xenitp/Makefile    Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-XEN_ROOT=$(CURDIR)/../../..
-include $(XEN_ROOT)/tools/Rules.mk
-
-#CFLAGS  += -Werror -g -O0
-
-CFLAGS  += $(CFLAGS_libxenctrl)
-
-LIBBIN   = 
-
-ifeq ($(XEN_TARGET_ARCH),ia64)
-LIBBIN  += xenitp
-endif
-
-.PHONY: all
-all: build
-
-.PHONY: build
-build: $(LIBBIN)
-
-.PHONY: install
-install: build
-       [ -z "$(LIBBIN)" ] || $(INSTALL_DIR) $(DESTDIR)$(PRIVATE_BINDIR)
-       [ -z "$(LIBBIN)" ] || $(INSTALL_PROG) $(LIBBIN) 
$(DESTDIR)$(PRIVATE_BINDIR)
-
-.PHONY: clean
-clean:
-       $(RM) *.a *.so *.o *.rpm $(LIBBIN)
-
-XENITP_OBJS=xenitp.o ia64-dis.o ia64-opc.o cpu-ia64-opc.o
-
-xenitp: $(XENITP_OBJS)
-       $(CC) $(CFLAGS) -o $@ $(XENITP_OBJS) $(LDLIBS_libxenctrl)
diff -r a1bd69b08e9e -r 485e6db28b93 tools/debugger/xenitp/README
--- a/tools/debugger/xenitp/README      Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-xenitp README
-*************
-
-
-Xenitp is a low-level, non-symbolic debugger.  It only works on ia64.
-
-* Building xenitp
-First do 'make tools' at the top level to build libxc and includes.  Then
-cd to tools/debugger/xenitp and do make.
-
-* Using xenitp
-Usage is: xenitp DOM
-DOM is a domain number.
-'help' shows all the command available.
-When the domain is running, C-c stops it.
-
-* Source origin
-All these files come from binutils:
-cpu-ia64-opc.c
-dis-asm.h
-ia64-asmtab.c
-ia64-asmtab.h
-ia64-dis.c
-ia64-gen.c
-ia64.h
-ia64-opc-a.c
-ia64-opc-b.c
-ia64-opc.c
-ia64-opc-d.c
-ia64-opc-f.c
-ia64-opc.h
-ia64-opc-i.c
-ia64-opc-m.c
-ia64-opc-x.c
-
-xenitp.c is based on xenctxt.c
diff -r a1bd69b08e9e -r 485e6db28b93 tools/debugger/xenitp/cpu-ia64-opc.c
--- a/tools/debugger/xenitp/cpu-ia64-opc.c      Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,615 +0,0 @@
-/* Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006
-   Free Software Foundation, Inc.
-   Contributed by David Mosberger-Tang <davidm@xxxxxxxxxx>
-
-This file is part of BFD, the Binary File Descriptor library.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, 
USA.  */
-
-/* Logically, this code should be part of libopcode but since some of
-   the operand insertion/extraction functions help bfd to implement
-   relocations, this code is included as part of cpu-ia64.c.  This
-   avoids circular dependencies between libopcode and libbfd and also
-   obviates the need for applications to link in libopcode when all
-   they really want is libbfd.
-
-   --davidm Mon Apr 13 22:14:02 1998 */
-
-#include "ia64-opc.h"
-
-#define NELEMS(a)  ((int) (sizeof (a) / sizeof ((a)[0])))
-
-static const char*
-ins_rsvd (const struct ia64_operand *self ATTRIBUTE_UNUSED,
-         ia64_insn value ATTRIBUTE_UNUSED, ia64_insn *code ATTRIBUTE_UNUSED)
-{
-  return "internal error---this shouldn't happen";
-}
-
-static const char*
-ext_rsvd (const struct ia64_operand *self ATTRIBUTE_UNUSED,
-         ia64_insn code ATTRIBUTE_UNUSED, ia64_insn *valuep ATTRIBUTE_UNUSED)
-{
-  return "internal error---this shouldn't happen";
-}
-
-static const char*
-ins_const (const struct ia64_operand *self ATTRIBUTE_UNUSED,
-          ia64_insn value ATTRIBUTE_UNUSED, ia64_insn *code ATTRIBUTE_UNUSED)
-{
-  return 0;
-}
-
-static const char*
-ext_const (const struct ia64_operand *self ATTRIBUTE_UNUSED,
-          ia64_insn code ATTRIBUTE_UNUSED, ia64_insn *valuep ATTRIBUTE_UNUSED)
-{
-  return 0;
-}
-
-static const char*
-ins_reg (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
-{
-  if (value >= 1u << self->field[0].bits)
-    return "register number out of range";
-
-  *code |= value << self->field[0].shift;
-  return 0;
-}
-
-static const char*
-ext_reg (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
-{
-  *valuep = ((code >> self->field[0].shift)
-            & ((1u << self->field[0].bits) - 1));
-  return 0;
-}
-
-static const char*
-ins_immu (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
-{
-  ia64_insn new = 0;
-  int i;
-
-  for (i = 0; i < NELEMS (self->field) && self->field[i].bits; ++i)
-    {
-      new |= ((value & ((((ia64_insn) 1) << self->field[i].bits) - 1))
-             << self->field[i].shift);
-      value >>= self->field[i].bits;
-    }
-  if (value)
-    return "integer operand out of range";
-
-  *code |= new;
-  return 0;
-}
-
-static const char*
-ext_immu (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
-{
-  BFD_HOST_U_64_BIT value = 0;
-  int i, bits = 0, total = 0;
-
-  for (i = 0; i < NELEMS (self->field) && self->field[i].bits; ++i)
-    {
-      bits = self->field[i].bits;
-      value |= ((code >> self->field[i].shift)
-               & ((((BFD_HOST_U_64_BIT) 1) << bits) - 1)) << total;
-      total += bits;
-    }
-  *valuep = value;
-  return 0;
-}
-
-static const char*
-ins_immu5b (const struct ia64_operand *self, ia64_insn value,
-           ia64_insn *code)
-{
-  if (value < 32 || value > 63)
-    return "value must be between 32 and 63";
-  return ins_immu (self, value - 32, code);
-}
-
-static const char*
-ext_immu5b (const struct ia64_operand *self, ia64_insn code,
-           ia64_insn *valuep)
-{
-  const char *result;
-
-  result = ext_immu (self, code, valuep);
-  if (result)
-    return result;
-
-  *valuep = *valuep + 32;
-  return 0;
-}
-
-static const char*
-ins_immus8 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
-{
-  if (value & 0x7)
-    return "value not an integer multiple of 8";
-  return ins_immu (self, value >> 3, code);
-}
-
-static const char*
-ext_immus8 (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
-{
-  const char *result;
-
-  result = ext_immu (self, code, valuep);
-  if (result)
-    return result;
-
-  *valuep = *valuep << 3;
-  return 0;
-}
-
-static const char*
-ins_imms_scaled (const struct ia64_operand *self, ia64_insn value,
-                ia64_insn *code, int scale)
-{
-  BFD_HOST_64_BIT svalue = value, sign_bit = 0;
-  ia64_insn new = 0;
-  int i;
-
-  svalue >>= scale;
-
-  for (i = 0; i < NELEMS (self->field) && self->field[i].bits; ++i)
-    {
-      new |= ((svalue & ((((ia64_insn) 1) << self->field[i].bits) - 1))
-             << self->field[i].shift);
-      sign_bit = (svalue >> (self->field[i].bits - 1)) & 1;
-      svalue >>= self->field[i].bits;
-    }
-  if ((!sign_bit && svalue != 0) || (sign_bit && svalue != -1))
-    return "integer operand out of range";
-
-  *code |= new;
-  return 0;
-}
-
-static const char*
-ext_imms_scaled (const struct ia64_operand *self, ia64_insn code,
-                ia64_insn *valuep, int scale)
-{
-  int i, bits = 0, total = 0;
-  BFD_HOST_64_BIT val = 0, sign;
-
-  for (i = 0; i < NELEMS (self->field) && self->field[i].bits; ++i)
-    {
-      bits = self->field[i].bits;
-      val |= ((code >> self->field[i].shift)
-             & ((((BFD_HOST_U_64_BIT) 1) << bits) - 1)) << total;
-      total += bits;
-    }
-  /* sign extend: */
-  sign = (BFD_HOST_64_BIT) 1 << (total - 1);
-  val = (val ^ sign) - sign;
-
-  *valuep = (val << scale);
-  return 0;
-}
-
-static const char*
-ins_imms (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
-{
-  return ins_imms_scaled (self, value, code, 0);
-}
-
-static const char*
-ins_immsu4 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
-{
-  value = ((value & 0xffffffff) ^ 0x80000000) - 0x80000000;
-
-  return ins_imms_scaled (self, value, code, 0);
-}
-
-static const char*
-ext_imms (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
-{
-  return ext_imms_scaled (self, code, valuep, 0);
-}
-
-static const char*
-ins_immsm1 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
-{
-  --value;
-  return ins_imms_scaled (self, value, code, 0);
-}
-
-static const char*
-ins_immsm1u4 (const struct ia64_operand *self, ia64_insn value,
-             ia64_insn *code)
-{
-  value = ((value & 0xffffffff) ^ 0x80000000) - 0x80000000;
-
-  --value;
-  return ins_imms_scaled (self, value, code, 0);
-}
-
-static const char*
-ext_immsm1 (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
-{
-  const char *res = ext_imms_scaled (self, code, valuep, 0);
-
-  ++*valuep;
-  return res;
-}
-
-static const char*
-ins_imms1 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
-{
-  return ins_imms_scaled (self, value, code, 1);
-}
-
-static const char*
-ext_imms1 (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
-{
-  return ext_imms_scaled (self, code, valuep, 1);
-}
-
-static const char*
-ins_imms4 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
-{
-  return ins_imms_scaled (self, value, code, 4);
-}
-
-static const char*
-ext_imms4 (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
-{
-  return ext_imms_scaled (self, code, valuep, 4);
-}
-
-static const char*
-ins_imms16 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
-{
-  return ins_imms_scaled (self, value, code, 16);
-}
-
-static const char*
-ext_imms16 (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
-{
-  return ext_imms_scaled (self, code, valuep, 16);
-}
-
-static const char*
-ins_cimmu (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
-{
-  ia64_insn mask = (((ia64_insn) 1) << self->field[0].bits) - 1;
-  return ins_immu (self, value ^ mask, code);
-}
-
-static const char*
-ext_cimmu (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
-{
-  const char *result;
-  ia64_insn mask;
-
-  mask = (((ia64_insn) 1) << self->field[0].bits) - 1;
-  result = ext_immu (self, code, valuep);
-  if (!result)
-    {
-      mask = (((ia64_insn) 1) << self->field[0].bits) - 1;
-      *valuep ^= mask;
-    }
-  return result;
-}
-
-static const char*
-ins_cnt (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
-{
-  --value;
-  if (value >= ((BFD_HOST_U_64_BIT) 1) << self->field[0].bits)
-    return "count out of range";
-
-  *code |= value << self->field[0].shift;
-  return 0;
-}
-
-static const char*
-ext_cnt (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
-{
-  *valuep = ((code >> self->field[0].shift)
-            & ((((BFD_HOST_U_64_BIT) 1) << self->field[0].bits) - 1)) + 1;
-  return 0;
-}
-
-static const char*
-ins_cnt2b (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
-{
-  --value;
-
-  if (value > 2)
-    return "count must be in range 1..3";
-
-  *code |= value << self->field[0].shift;
-  return 0;
-}
-
-static const char*
-ext_cnt2b (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
-{
-  *valuep = ((code >> self->field[0].shift) & 0x3) + 1;
-  return 0;
-}
-
-static const char*
-ins_cnt2c (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
-{
-  switch (value)
-    {
-    case 0:    value = 0; break;
-    case 7:    value = 1; break;
-    case 15:   value = 2; break;
-    case 16:   value = 3; break;
-    default:   return "count must be 0, 7, 15, or 16";
-    }
-  *code |= value << self->field[0].shift;
-  return 0;
-}
-
-static const char*
-ext_cnt2c (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
-{
-  ia64_insn value;
-
-  value = (code >> self->field[0].shift) & 0x3;
-  switch (value)
-    {
-    case 0: value =  0; break;
-    case 1: value =  7; break;
-    case 2: value = 15; break;
-    case 3: value = 16; break;
-    }
-  *valuep = value;
-  return 0;
-}
-
-static const char*
-ins_inc3 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
-{
-  BFD_HOST_64_BIT val = value;
-  BFD_HOST_U_64_BIT sign = 0;
-
-  if (val < 0)
-    {
-      sign = 0x4;
-      value = -value;
-    }
-  switch (value)
-    {
-    case  1:   value = 3; break;
-    case  4:   value = 2; break;
-    case  8:   value = 1; break;
-    case 16:   value = 0; break;
-    default:   return "count must be +/- 1, 4, 8, or 16";
-    }
-  *code |= (sign | value) << self->field[0].shift;
-  return 0;
-}
-
-static const char*
-ext_inc3 (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
-{
-  BFD_HOST_64_BIT val;
-  int negate;
-
-  val = (code >> self->field[0].shift) & 0x7;
-  negate = val & 0x4;
-  switch (val & 0x3)
-    {
-    case 0: val = 16; break;
-    case 1: val =  8; break;
-    case 2: val =  4; break;
-    case 3: val =  1; break;
-    }
-  if (negate)
-    val = -val;
-
-  *valuep = val;
-  return 0;
-}
-
-#define CST    IA64_OPND_CLASS_CST
-#define REG    IA64_OPND_CLASS_REG
-#define IND    IA64_OPND_CLASS_IND
-#define ABS    IA64_OPND_CLASS_ABS
-#define REL    IA64_OPND_CLASS_REL
-
-#define SDEC   IA64_OPND_FLAG_DECIMAL_SIGNED
-#define UDEC   IA64_OPND_FLAG_DECIMAL_UNSIGNED
-
-const struct ia64_operand elf64_ia64_operands[IA64_OPND_COUNT] =
-  {
-    /* constants: */
-    { CST, ins_const, ext_const, "NIL",                {{ 0, 0}}, 0, "<none>" 
},
-    { CST, ins_const, ext_const, "ar.csd",     {{ 0, 0}}, 0, "ar.csd" },
-    { CST, ins_const, ext_const, "ar.ccv",     {{ 0, 0}}, 0, "ar.ccv" },
-    { CST, ins_const, ext_const, "ar.pfs",     {{ 0, 0}}, 0, "ar.pfs" },
-    { CST, ins_const, ext_const, "1",          {{ 0, 0}}, 0, "1" },
-    { CST, ins_const, ext_const, "8",          {{ 0, 0}}, 0, "8" },
-    { CST, ins_const, ext_const, "16",         {{ 0, 0}}, 0, "16" },
-    { CST, ins_const, ext_const, "r0",         {{ 0, 0}}, 0, "r0" },
-    { CST, ins_const, ext_const, "ip",         {{ 0, 0}}, 0, "ip" },
-    { CST, ins_const, ext_const, "pr",         {{ 0, 0}}, 0, "pr" },
-    { CST, ins_const, ext_const, "pr.rot",     {{ 0, 0}}, 0, "pr.rot" },
-    { CST, ins_const, ext_const, "psr",                {{ 0, 0}}, 0, "psr" },
-    { CST, ins_const, ext_const, "psr.l",      {{ 0, 0}}, 0, "psr.l" },
-    { CST, ins_const, ext_const, "psr.um",     {{ 0, 0}}, 0, "psr.um" },
-
-    /* register operands: */
-    { REG, ins_reg,   ext_reg, "ar", {{ 7, 20}}, 0,            /* AR3 */
-      "an application register" },
-    { REG, ins_reg,   ext_reg,  "b", {{ 3,  6}}, 0,            /* B1 */
-      "a branch register" },
-    { REG, ins_reg,   ext_reg,  "b", {{ 3, 13}}, 0,            /* B2 */
-      "a branch register"},
-    { REG, ins_reg,   ext_reg, "cr", {{ 7, 20}}, 0,            /* CR */
-      "a control register"},
-    { REG, ins_reg,   ext_reg,  "f", {{ 7,  6}}, 0,            /* F1 */
-      "a floating-point register" },
-    { REG, ins_reg,   ext_reg,  "f", {{ 7, 13}}, 0,            /* F2 */
-      "a floating-point register" },
-    { REG, ins_reg,   ext_reg,  "f", {{ 7, 20}}, 0,            /* F3 */
-      "a floating-point register" },
-    { REG, ins_reg,   ext_reg,  "f", {{ 7, 27}}, 0,            /* F4 */
-      "a floating-point register" },
-    { REG, ins_reg,   ext_reg,  "p", {{ 6,  6}}, 0,            /* P1 */
-      "a predicate register" },
-    { REG, ins_reg,   ext_reg,  "p", {{ 6, 27}}, 0,            /* P2 */
-      "a predicate register" },
-    { REG, ins_reg,   ext_reg,  "r", {{ 7,  6}}, 0,            /* R1 */
-      "a general register" },
-    { REG, ins_reg,   ext_reg,  "r", {{ 7, 13}}, 0,            /* R2 */
-      "a general register" },
-    { REG, ins_reg,   ext_reg,  "r", {{ 7, 20}}, 0,            /* R3 */
-      "a general register" },
-    { REG, ins_reg,   ext_reg,  "r", {{ 2, 20}}, 0,            /* R3_2 */
-      "a general register r0-r3" },
-
-    /* memory operands: */
-    { IND, ins_reg,   ext_reg, "",      {{7, 20}}, 0,          /* MR3 */
-      "a memory address" },
-
-    /* indirect operands: */
-    { IND, ins_reg,   ext_reg, "cpuid", {{7, 20}}, 0,          /* CPUID_R3 */
-      "a cpuid register" },
-    { IND, ins_reg,   ext_reg, "dbr",   {{7, 20}}, 0,          /* DBR_R3 */
-      "a dbr register" },
-    { IND, ins_reg,   ext_reg, "dtr",   {{7, 20}}, 0,          /* DTR_R3 */
-      "a dtr register" },
-    { IND, ins_reg,   ext_reg, "itr",   {{7, 20}}, 0,          /* ITR_R3 */
-      "an itr register" },
-    { IND, ins_reg,   ext_reg, "ibr",   {{7, 20}}, 0,          /* IBR_R3 */
-      "an ibr register" },
-    { IND, ins_reg,   ext_reg, "msr",   {{7, 20}}, 0,          /* MSR_R3 */
-      "an msr register" },
-    { IND, ins_reg,   ext_reg, "pkr",   {{7, 20}}, 0,          /* PKR_R3 */
-      "a pkr register" },
-    { IND, ins_reg,   ext_reg, "pmc",   {{7, 20}}, 0,          /* PMC_R3 */
-      "a pmc register" },
-    { IND, ins_reg,   ext_reg, "pmd",   {{7, 20}}, 0,          /* PMD_R3 */
-      "a pmd register" },
-    { IND, ins_reg,   ext_reg, "rr",    {{7, 20}}, 0,          /* RR_R3 */
-      "an rr register" },
-
-    /* immediate operands: */
-    { ABS, ins_cimmu, ext_cimmu, 0, {{ 5, 20 }}, UDEC,         /* CCNT5 */
-      "a 5-bit count (0-31)" },
-    { ABS, ins_cnt,   ext_cnt,   0, {{ 2, 27 }}, UDEC,         /* CNT2a */
-      "a 2-bit count (1-4)" },
-    { ABS, ins_cnt2b, ext_cnt2b, 0, {{ 2, 27 }}, UDEC,         /* CNT2b */
-      "a 2-bit count (1-3)" },
-    { ABS, ins_cnt2c, ext_cnt2c, 0, {{ 2, 30 }}, UDEC,         /* CNT2c */
-      "a count (0, 7, 15, or 16)" },
-    { ABS, ins_immu,  ext_immu,  0, {{ 5, 14}}, UDEC,          /* CNT5 */
-      "a 5-bit count (0-31)" },
-    { ABS, ins_immu,  ext_immu,  0, {{ 6, 27}}, UDEC,          /* CNT6 */
-      "a 6-bit count (0-63)" },
-    { ABS, ins_cimmu, ext_cimmu, 0, {{ 6, 20}}, UDEC,          /* CPOS6a */
-      "a 6-bit bit pos (0-63)" },
-    { ABS, ins_cimmu, ext_cimmu, 0, {{ 6, 14}}, UDEC,          /* CPOS6b */
-      "a 6-bit bit pos (0-63)" },
-    { ABS, ins_cimmu, ext_cimmu, 0, {{ 6, 31}}, UDEC,          /* CPOS6c */
-      "a 6-bit bit pos (0-63)" },
-    { ABS, ins_imms,  ext_imms,  0, {{ 1, 36}}, SDEC,          /* IMM1 */
-      "a 1-bit integer (-1, 0)" },
-    { ABS, ins_immu,  ext_immu,  0, {{ 2, 13}}, UDEC,          /* IMMU2 */
-      "a 2-bit unsigned (0-3)" },
-    { ABS, ins_immu5b,  ext_immu5b,  0, {{ 5, 14}}, UDEC,      /* IMMU5b */
-      "a 5-bit unsigned (32 + (0-31))" },
-    { ABS, ins_immu,  ext_immu,  0, {{ 7, 13}}, 0,             /* IMMU7a */
-      "a 7-bit unsigned (0-127)" },
-    { ABS, ins_immu,  ext_immu,  0, {{ 7, 20}}, 0,             /* IMMU7b */
-      "a 7-bit unsigned (0-127)" },
-    { ABS, ins_immu,  ext_immu,  0, {{ 7, 13}}, UDEC,          /* SOF */
-      "a frame size (register count)" },
-    { ABS, ins_immu,  ext_immu,  0, {{ 7, 20}}, UDEC,          /* SOL */
-      "a local register count" },
-    { ABS, ins_immus8,ext_immus8,0, {{ 4, 27}}, UDEC,          /* SOR */
-      "a rotating register count (integer multiple of 8)" },
-    { ABS, ins_imms,  ext_imms,  0,                            /* IMM8 */
-      {{ 7, 13}, { 1, 36}}, SDEC,
-      "an 8-bit integer (-128-127)" },
-    { ABS, ins_immsu4,  ext_imms,  0,                          /* IMM8U4 */
-      {{ 7, 13}, { 1, 36}}, SDEC,
-      "an 8-bit signed integer for 32-bit unsigned compare (-128-127)" },
-    { ABS, ins_immsm1,  ext_immsm1,  0,                                /* 
IMM8M1 */
-      {{ 7, 13}, { 1, 36}}, SDEC,
-      "an 8-bit integer (-127-128)" },
-    { ABS, ins_immsm1u4,  ext_immsm1,  0,                      /* IMM8M1U4 */
-      {{ 7, 13}, { 1, 36}}, SDEC,
-      "an 8-bit integer for 32-bit unsigned compare 
(-127-(-1),1-128,0x100000000)" },
-    { ABS, ins_immsm1,  ext_immsm1,  0,                                /* 
IMM8M1U8 */
-      {{ 7, 13}, { 1, 36}}, SDEC,
-      "an 8-bit integer for 64-bit unsigned compare 
(-127-(-1),1-128,0x10000000000000000)" },
-    { ABS, ins_immu,  ext_immu,  0, {{ 2, 33}, { 7, 20}}, 0,   /* IMMU9 */
-      "a 9-bit unsigned (0-511)" },
-    { ABS, ins_imms,  ext_imms,  0,                            /* IMM9a */
-      {{ 7,  6}, { 1, 27}, { 1, 36}}, SDEC,
-      "a 9-bit integer (-256-255)" },
-    { ABS, ins_imms,  ext_imms, 0,                             /* IMM9b */
-      {{ 7, 13}, { 1, 27}, { 1, 36}}, SDEC,
-      "a 9-bit integer (-256-255)" },
-    { ABS, ins_imms,  ext_imms, 0,                             /* IMM14 */
-      {{ 7, 13}, { 6, 27}, { 1, 36}}, SDEC,
-      "a 14-bit integer (-8192-8191)" },
-    { ABS, ins_imms1, ext_imms1, 0,                            /* IMM17 */
-      {{ 7,  6}, { 8, 24}, { 1, 36}}, 0,
-      "a 17-bit integer (-65536-65535)" },
-    { ABS, ins_immu,  ext_immu,  0, {{20,  6}, { 1, 36}}, 0,   /* IMMU21 */
-      "a 21-bit unsigned" },
-    { ABS, ins_imms,  ext_imms,  0,                            /* IMM22 */
-      {{ 7, 13}, { 9, 27}, { 5, 22}, { 1, 36}}, SDEC,
-      "a 22-bit signed integer" },
-    { ABS, ins_immu,  ext_immu,  0,                            /* IMMU24 */
-      {{21,  6}, { 2, 31}, { 1, 36}}, 0,
-      "a 24-bit unsigned" },
-    { ABS, ins_imms16,ext_imms16,0, {{27,  6}, { 1, 36}}, 0,   /* IMM44 */
-      "a 44-bit unsigned (least 16 bits ignored/zeroes)" },
-    { ABS, ins_rsvd,  ext_rsvd,        0, {{0,  0}}, 0,                /* 
IMMU62 */
-      "a 62-bit unsigned" },
-    { ABS, ins_rsvd,  ext_rsvd,        0, {{0,  0}}, 0,                /* 
IMMU64 */
-      "a 64-bit unsigned" },
-    { ABS, ins_inc3,  ext_inc3,  0, {{ 3, 13}}, SDEC,          /* INC3 */
-      "an increment (+/- 1, 4, 8, or 16)" },
-    { ABS, ins_cnt,   ext_cnt,   0, {{ 4, 27}}, UDEC,          /* LEN4 */
-      "a 4-bit length (1-16)" },
-    { ABS, ins_cnt,   ext_cnt,   0, {{ 6, 27}}, UDEC,          /* LEN6 */
-      "a 6-bit length (1-64)" },
-    { ABS, ins_immu,  ext_immu,  0, {{ 4, 20}},        0,              /* 
MBTYPE4 */
-      "a mix type (@rev, @mix, @shuf, @alt, or @brcst)" },
-    { ABS, ins_immu,  ext_immu,  0, {{ 8, 20}},        0,              /* 
MBTYPE8 */
-      "an 8-bit mix type" },
-    { ABS, ins_immu,  ext_immu,  0, {{ 6, 14}}, UDEC,          /* POS6 */
-      "a 6-bit bit pos (0-63)" },
-    { REL, ins_imms4, ext_imms4, 0, {{ 7,  6}, { 2, 33}}, 0,   /* TAG13 */
-      "a branch tag" },
-    { REL, ins_imms4, ext_imms4, 0, {{ 9, 24}}, 0,             /* TAG13b */
-      "a branch tag" },
-    { REL, ins_imms4, ext_imms4, 0, {{20,  6}, { 1, 36}}, 0,   /* TGT25 */
-      "a branch target" },
-    { REL, ins_imms4, ext_imms4, 0,                            /* TGT25b */
-      {{ 7,  6}, {13, 20}, { 1, 36}}, 0,
-      "a branch target" },
-    { REL, ins_imms4, ext_imms4, 0, {{20, 13}, { 1, 36}}, 0,   /* TGT25c */
-      "a branch target" },
-    { REL, ins_rsvd, ext_rsvd, 0, {{0, 0}}, 0,                  /* TGT64  */
-      "a branch target" },
-
-    { ABS, ins_const, ext_const, 0, {{0, 0}}, 0,               /* LDXMOV */
-      "ldxmov target" },
-  };
diff -r a1bd69b08e9e -r 485e6db28b93 tools/debugger/xenitp/dis-asm.h
--- a/tools/debugger/xenitp/dis-asm.h   Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,548 +0,0 @@
-/* Interface between the opcode library and its callers.
-
-   Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005
-   Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street - Fifth Floor,
-   Boston, MA 02110-1301, USA.
-
-   Written by Cygnus Support, 1993.
-
-   The opcode library (libopcodes.a) provides instruction decoders for
-   a large variety of instruction sets, callable with an identical
-   interface, for making instruction-processing programs more independent
-   of the instruction set being processed.  */
-
-#ifndef DIS_ASM_H
-#define DIS_ASM_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <inttypes.h>
-
-#define PARAMS(x) x
-typedef void *PTR;
-typedef uint64_t bfd_vma;
-typedef int64_t bfd_signed_vma;
-typedef uint8_t bfd_byte;
-typedef int bfd_boolean;
-#define BFD_HOST_U_64_BIT unsigned long
-#define BFD_HOST_64_BIT long
-#define sprintf_vma(s,x) sprintf (s, "%0" PRIx64, x)
-
-extern unsigned long bfd_getl64 (const bfd_byte *addr);
-
-#define BFD64
-#define ATTRIBUTE_FPTR_PRINTF_2
-#define ATTRIBUTE_UNUSED __attribute__((unused))
-
-enum bfd_flavour {
-  bfd_target_unknown_flavour,
-  bfd_target_aout_flavour,
-  bfd_target_coff_flavour,
-  bfd_target_ecoff_flavour,
-  bfd_target_elf_flavour,
-  bfd_target_ieee_flavour,
-  bfd_target_nlm_flavour,
-  bfd_target_oasys_flavour,
-  bfd_target_tekhex_flavour,
-  bfd_target_srec_flavour,
-  bfd_target_ihex_flavour,
-  bfd_target_som_flavour,
-  bfd_target_os9k_flavour,
-  bfd_target_versados_flavour,
-  bfd_target_msdos_flavour,
-  bfd_target_evax_flavour
-};
-
-enum bfd_endian { BFD_ENDIAN_BIG, BFD_ENDIAN_LITTLE, BFD_ENDIAN_UNKNOWN };
-
-enum bfd_architecture 
-{
-  bfd_arch_unknown,    /* File arch not known */
-  bfd_arch_obscure,    /* Arch known, not one of these */
-  bfd_arch_m68k,       /* Motorola 68xxx */
-#define bfd_mach_m68000 1
-#define bfd_mach_m68008 2
-#define bfd_mach_m68010 3
-#define bfd_mach_m68020 4
-#define bfd_mach_m68030 5
-#define bfd_mach_m68040 6
-#define bfd_mach_m68060 7
-#define bfd_mach_cpu32  8
-#define bfd_mach_mcf5200  9
-#define bfd_mach_mcf5206e 10
-#define bfd_mach_mcf5307  11
-#define bfd_mach_mcf5407  12
-#define bfd_mach_mcf528x  13
-#define bfd_mach_mcfv4e   14
-#define bfd_mach_mcf521x   15
-#define bfd_mach_mcf5249   16
-#define bfd_mach_mcf547x   17
-#define bfd_mach_mcf548x   18
-  bfd_arch_vax,        /* DEC Vax */   
-  bfd_arch_i960,       /* Intel 960 */
-     /* The order of the following is important.
-       lower number indicates a machine type that 
-       only accepts a subset of the instructions
-       available to machines with higher numbers.
-       The exception is the "ca", which is
-       incompatible with all other machines except 
-       "core". */
-
-#define bfd_mach_i960_core      1
-#define bfd_mach_i960_ka_sa     2
-#define bfd_mach_i960_kb_sb     3
-#define bfd_mach_i960_mc        4
-#define bfd_mach_i960_xa        5
-#define bfd_mach_i960_ca        6
-#define bfd_mach_i960_jx        7
-#define bfd_mach_i960_hx        8
-
-  bfd_arch_a29k,       /* AMD 29000 */
-  bfd_arch_sparc,      /* SPARC */
-#define bfd_mach_sparc                 1
-/* The difference between v8plus and v9 is that v9 is a true 64 bit env.  */
-#define bfd_mach_sparc_sparclet        2
-#define bfd_mach_sparc_sparclite       3
-#define bfd_mach_sparc_v8plus          4
-#define bfd_mach_sparc_v8plusa         5 /* with ultrasparc add'ns.  */
-#define bfd_mach_sparc_sparclite_le    6
-#define bfd_mach_sparc_v9              7
-#define bfd_mach_sparc_v9a             8 /* with ultrasparc add'ns.  */
-#define bfd_mach_sparc_v8plusb         9 /* with cheetah add'ns.  */
-#define bfd_mach_sparc_v9b             10 /* with cheetah add'ns.  */
-/* Nonzero if MACH has the v9 instruction set.  */
-#define bfd_mach_sparc_v9_p(mach) \
-  ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9b \
-   && (mach) != bfd_mach_sparc_sparclite_le)
-  bfd_arch_mips,       /* MIPS Rxxxx */
-#define bfd_mach_mips3000              3000
-#define bfd_mach_mips3900              3900
-#define bfd_mach_mips4000              4000
-#define bfd_mach_mips4010              4010
-#define bfd_mach_mips4100              4100
-#define bfd_mach_mips4300              4300
-#define bfd_mach_mips4400              4400
-#define bfd_mach_mips4600              4600
-#define bfd_mach_mips4650              4650
-#define bfd_mach_mips5000              5000
-#define bfd_mach_mips6000              6000
-#define bfd_mach_mips8000              8000
-#define bfd_mach_mips10000             10000
-#define bfd_mach_mips16                16
-  bfd_arch_i386,       /* Intel 386 */
-#define bfd_mach_i386_i386 0
-#define bfd_mach_i386_i8086 1
-#define bfd_mach_i386_i386_intel_syntax 2
-#define bfd_mach_x86_64 3
-#define bfd_mach_x86_64_intel_syntax 4
-  bfd_arch_we32k,      /* AT&T WE32xxx */
-  bfd_arch_tahoe,      /* CCI/Harris Tahoe */
-  bfd_arch_i860,       /* Intel 860 */
-  bfd_arch_romp,       /* IBM ROMP PC/RT */
-  bfd_arch_alliant,    /* Alliant */
-  bfd_arch_convex,     /* Convex */
-  bfd_arch_m88k,       /* Motorola 88xxx */
-  bfd_arch_pyramid,    /* Pyramid Technology */
-  bfd_arch_h8300,      /* Hitachi H8/300 */
-#define bfd_mach_h8300   1
-#define bfd_mach_h8300h  2
-#define bfd_mach_h8300s  3
-  bfd_arch_powerpc,    /* PowerPC */
-#define bfd_mach_ppc           0
-#define bfd_mach_ppc64         1
-#define bfd_mach_ppc_403       403
-#define bfd_mach_ppc_403gc     4030
-#define bfd_mach_ppc_505       505
-#define bfd_mach_ppc_601       601
-#define bfd_mach_ppc_602       602
-#define bfd_mach_ppc_603       603
-#define bfd_mach_ppc_ec603e    6031
-#define bfd_mach_ppc_604       604
-#define bfd_mach_ppc_620       620
-#define bfd_mach_ppc_630       630
-#define bfd_mach_ppc_750       750
-#define bfd_mach_ppc_860       860
-#define bfd_mach_ppc_a35       35
-#define bfd_mach_ppc_rs64ii    642
-#define bfd_mach_ppc_rs64iii   643
-#define bfd_mach_ppc_7400      7400
-  bfd_arch_rs6000,     /* IBM RS/6000 */
-  bfd_arch_hppa,       /* HP PA RISC */
-  bfd_arch_d10v,       /* Mitsubishi D10V */
-  bfd_arch_z8k,        /* Zilog Z8000 */
-#define bfd_mach_z8001         1
-#define bfd_mach_z8002         2
-  bfd_arch_h8500,      /* Hitachi H8/500 */
-  bfd_arch_sh,         /* Hitachi SH */
-#define bfd_mach_sh            1
-#define bfd_mach_sh2        0x20
-#define bfd_mach_sh_dsp     0x2d
-#define bfd_mach_sh2a       0x2a
-#define bfd_mach_sh2a_nofpu 0x2b
-#define bfd_mach_sh2e       0x2e
-#define bfd_mach_sh3        0x30
-#define bfd_mach_sh3_nommu  0x31
-#define bfd_mach_sh3_dsp    0x3d
-#define bfd_mach_sh3e       0x3e
-#define bfd_mach_sh4        0x40
-#define bfd_mach_sh4_nofpu  0x41
-#define bfd_mach_sh4_nommu_nofpu  0x42
-#define bfd_mach_sh4a       0x4a
-#define bfd_mach_sh4a_nofpu 0x4b
-#define bfd_mach_sh4al_dsp  0x4d
-#define bfd_mach_sh5        0x50
-  bfd_arch_alpha,      /* Dec Alpha */
-#define bfd_mach_alpha 1
-  bfd_arch_arm,        /* Advanced Risc Machines ARM */
-#define bfd_mach_arm_2         1
-#define bfd_mach_arm_2a                2
-#define bfd_mach_arm_3         3
-#define bfd_mach_arm_3M        4
-#define bfd_mach_arm_4                 5
-#define bfd_mach_arm_4T        6
-  bfd_arch_ns32k,      /* National Semiconductors ns32000 */
-  bfd_arch_w65,        /* WDC 65816 */
-  bfd_arch_tic30,      /* Texas Instruments TMS320C30 */
-  bfd_arch_v850,       /* NEC V850 */
-#define bfd_mach_v850          0
-  bfd_arch_arc,        /* Argonaut RISC Core */
-#define bfd_mach_arc_base 0
-  bfd_arch_m32r,       /* Mitsubishi M32R/D */
-#define bfd_mach_m32r          0  /* backwards compatibility */
-  bfd_arch_mn10200,    /* Matsushita MN10200 */
-  bfd_arch_mn10300,    /* Matsushita MN10300 */
-  bfd_arch_last
-  };
-
-typedef struct symbol_cache_entry
-{
-    const char *name;
-    union
-    {
-        PTR p;
-        bfd_vma i;
-    } udata;
-} asymbol;
-
-typedef int (*fprintf_ftype) (void *, const char*, ...) 
ATTRIBUTE_FPTR_PRINTF_2;
-
-enum dis_insn_type {
-  dis_noninsn,                 /* Not a valid instruction */
-  dis_nonbranch,               /* Not a branch instruction */
-  dis_branch,                  /* Unconditional branch */
-  dis_condbranch,              /* Conditional branch */
-  dis_jsr,                     /* Jump to subroutine */
-  dis_condjsr,                 /* Conditional jump to subroutine */
-  dis_dref,                    /* Data reference instruction */
-  dis_dref2                    /* Two data references in instruction */
-};
-
-/* This struct is passed into the instruction decoding routine,
-   and is passed back out into each callback.  The various fields are used
-   for conveying information from your main routine into your callbacks,
-   for passing information into the instruction decoders (such as the
-   addresses of the callback functions), or for passing information
-   back from the instruction decoders to their callers.
-
-   It must be initialized before it is first passed; this can be done
-   by hand, or using one of the initialization macros below.  */
-
-typedef struct disassemble_info {
-  fprintf_ftype fprintf_func;
-  void *stream;
-  void *application_data;
-
-  /* Target description.  We could replace this with a pointer to the bfd,
-     but that would require one.  There currently isn't any such requirement
-     so to avoid introducing one we record these explicitly.  */
-  /* The bfd_flavour.  This can be bfd_target_unknown_flavour.  */
-  enum bfd_flavour flavour;
-  /* The bfd_arch value.  */
-  enum bfd_architecture arch;
-  /* The bfd_mach value.  */
-  unsigned long mach;
-  /* Endianness (for bi-endian cpus).  Mono-endian cpus can ignore this.  */
-  enum bfd_endian endian;
-  /* An arch/mach-specific bitmask of selected instruction subsets, mainly
-     for processors with run-time-switchable instruction sets.  The default,
-     zero, means that there is no constraint.  CGEN-based opcodes ports
-     may use ISA_foo masks.  */
-  void *insn_sets;
-
-  /* Some targets need information about the current section to accurately
-     display insns.  If this is NULL, the target disassembler function
-     will have to make its best guess.  */
-  //asection *section;
-
-  /* An array of pointers to symbols either at the location being disassembled
-     or at the start of the function being disassembled.  The array is sorted
-     so that the first symbol is intended to be the one used.  The others are
-     present for any misc. purposes.  This is not set reliably, but if it is
-     not NULL, it is correct.  */
-  asymbol **symbols;
-  /* Number of symbols in array.  */
-  int num_symbols;
-
-  /* For use by the disassembler.
-     The top 16 bits are reserved for public use (and are documented here).
-     The bottom 16 bits are for the internal use of the disassembler.  */
-  unsigned long flags;
-#define INSN_HAS_RELOC 0x80000000
-  void *private_data;
-
-  /* Function used to get bytes to disassemble.  MEMADDR is the
-     address of the stuff to be disassembled, MYADDR is the address to
-     put the bytes in, and LENGTH is the number of bytes to read.
-     INFO is a pointer to this struct.
-     Returns an errno value or 0 for success.  */
-  int (*read_memory_func)
-    (bfd_vma memaddr, bfd_byte *myaddr, unsigned int length,
-     struct disassemble_info *info);
-
-  /* Function which should be called if we get an error that we can't
-     recover from.  STATUS is the errno value from read_memory_func and
-     MEMADDR is the address that we were trying to read.  INFO is a
-     pointer to this struct.  */
-  void (*memory_error_func)
-    (int status, bfd_vma memaddr, struct disassemble_info *info);
-
-  /* Function called to print ADDR.  */
-  void (*print_address_func)
-    (bfd_vma addr, struct disassemble_info *info);
-
-  /* Function called to determine if there is a symbol at the given ADDR.
-     If there is, the function returns 1, otherwise it returns 0.
-     This is used by ports which support an overlay manager where
-     the overlay number is held in the top part of an address.  In
-     some circumstances we want to include the overlay number in the
-     address, (normally because there is a symbol associated with
-     that address), but sometimes we want to mask out the overlay bits.  */
-  int (* symbol_at_address_func)
-    (bfd_vma addr, struct disassemble_info * info);
-
-  /* Function called to check if a SYMBOL is can be displayed to the user.
-     This is used by some ports that want to hide special symbols when
-     displaying debugging outout.  */
-  bfd_boolean (* symbol_is_valid)
-    (asymbol *, struct disassemble_info * info);
-
-  /* These are for buffer_read_memory.  */
-  bfd_byte *buffer;
-  bfd_vma buffer_vma;
-  unsigned int buffer_length;
-
-  /* This variable may be set by the instruction decoder.  It suggests
-      the number of bytes objdump should display on a single line.  If
-      the instruction decoder sets this, it should always set it to
-      the same value in order to get reasonable looking output.  */
-  int bytes_per_line;
-
-  /* The next two variables control the way objdump displays the raw data.  */
-  /* For example, if bytes_per_line is 8 and bytes_per_chunk is 4, the */
-  /* output will look like this:
-     00:   00000000 00000000
-     with the chunks displayed according to "display_endian". */
-  int bytes_per_chunk;
-  enum bfd_endian display_endian;
-
-  /* Number of octets per incremented target address
-     Normally one, but some DSPs have byte sizes of 16 or 32 bits.  */
-  unsigned int octets_per_byte;
-
-  /* The number of zeroes we want to see at the end of a section before we
-     start skipping them.  */
-  unsigned int skip_zeroes;
-
-  /* The number of zeroes to skip at the end of a section.  If the number
-     of zeroes at the end is between SKIP_ZEROES_AT_END and SKIP_ZEROES,
-     they will be disassembled.  If there are fewer than
-     SKIP_ZEROES_AT_END, they will be skipped.  This is a heuristic
-     attempt to avoid disassembling zeroes inserted by section
-     alignment.  */
-  unsigned int skip_zeroes_at_end;
-
-  /* Whether the disassembler always needs the relocations.  */
-  bfd_boolean disassembler_needs_relocs;
-
-  /* Results from instruction decoders.  Not all decoders yet support
-     this information.  This info is set each time an instruction is
-     decoded, and is only valid for the last such instruction.
-
-     To determine whether this decoder supports this information, set
-     insn_info_valid to 0, decode an instruction, then check it.  */
-
-  char insn_info_valid;                /* Branch info has been set. */
-  char branch_delay_insns;     /* How many sequential insn's will run before
-                                  a branch takes effect.  (0 = normal) */
-  char data_size;              /* Size of data reference in insn, in bytes */
-  enum dis_insn_type insn_type;        /* Type of instruction */
-  bfd_vma target;              /* Target address of branch or dref, if known;
-                                  zero if unknown.  */
-  bfd_vma target2;             /* Second target address for dref2 */
-
-  /* Command line options specific to the target disassembler.  */
-  char * disassembler_options;
-
-} disassemble_info;
-
-
-/* Standard disassemblers.  Disassemble one instruction at the given
-   target address.  Return number of octets processed.  */
-typedef int (*disassembler_ftype) (bfd_vma, disassemble_info *);
-
-extern int print_insn_big_mips         (bfd_vma, disassemble_info *);
-extern int print_insn_little_mips      (bfd_vma, disassemble_info *);
-extern int print_insn_i386             (bfd_vma, disassemble_info *);
-extern int print_insn_i386_att         (bfd_vma, disassemble_info *);
-extern int print_insn_i386_intel       (bfd_vma, disassemble_info *);
-extern int print_insn_ia64             (bfd_vma, disassemble_info *);
-extern int print_insn_i370             (bfd_vma, disassemble_info *);
-extern int print_insn_m68hc11          (bfd_vma, disassemble_info *);
-extern int print_insn_m68hc12          (bfd_vma, disassemble_info *);
-extern int print_insn_m68k             (bfd_vma, disassemble_info *);
-extern int print_insn_z80              (bfd_vma, disassemble_info *);
-extern int print_insn_z8001            (bfd_vma, disassemble_info *);
-extern int print_insn_z8002            (bfd_vma, disassemble_info *);
-extern int print_insn_h8300            (bfd_vma, disassemble_info *);
-extern int print_insn_h8300h           (bfd_vma, disassemble_info *);
-extern int print_insn_h8300s           (bfd_vma, disassemble_info *);
-extern int print_insn_h8500            (bfd_vma, disassemble_info *);
-extern int print_insn_alpha            (bfd_vma, disassemble_info *);
-extern int print_insn_big_arm          (bfd_vma, disassemble_info *);
-extern int print_insn_little_arm       (bfd_vma, disassemble_info *);
-extern int print_insn_sparc            (bfd_vma, disassemble_info *);
-extern int print_insn_avr              (bfd_vma, disassemble_info *);
-extern int print_insn_bfin             (bfd_vma, disassemble_info *);
-extern int print_insn_d10v             (bfd_vma, disassemble_info *);
-extern int print_insn_d30v             (bfd_vma, disassemble_info *);
-extern int print_insn_dlx              (bfd_vma, disassemble_info *);
-extern int print_insn_fr30             (bfd_vma, disassemble_info *);
-extern int print_insn_hppa             (bfd_vma, disassemble_info *);
-extern int print_insn_i860             (bfd_vma, disassemble_info *);
-extern int print_insn_i960             (bfd_vma, disassemble_info *);
-extern int print_insn_ip2k             (bfd_vma, disassemble_info *);
-extern int print_insn_m32r             (bfd_vma, disassemble_info *);
-extern int print_insn_m88k             (bfd_vma, disassemble_info *);
-extern int print_insn_maxq_little      (bfd_vma, disassemble_info *);
-extern int print_insn_maxq_big         (bfd_vma, disassemble_info *);
-extern int print_insn_mcore            (bfd_vma, disassemble_info *);
-extern int print_insn_mmix             (bfd_vma, disassemble_info *);
-extern int print_insn_mn10200          (bfd_vma, disassemble_info *);
-extern int print_insn_mn10300          (bfd_vma, disassemble_info *);
-extern int print_insn_mt                (bfd_vma, disassemble_info *);
-extern int print_insn_msp430           (bfd_vma, disassemble_info *);
-extern int print_insn_ns32k            (bfd_vma, disassemble_info *);
-extern int print_insn_crx               (bfd_vma, disassemble_info *);
-extern int print_insn_openrisc         (bfd_vma, disassemble_info *);
-extern int print_insn_big_or32         (bfd_vma, disassemble_info *);
-extern int print_insn_little_or32      (bfd_vma, disassemble_info *);
-extern int print_insn_pdp11            (bfd_vma, disassemble_info *);
-extern int print_insn_pj               (bfd_vma, disassemble_info *);
-extern int print_insn_big_powerpc      (bfd_vma, disassemble_info *);
-extern int print_insn_little_powerpc   (bfd_vma, disassemble_info *);
-extern int print_insn_rs6000           (bfd_vma, disassemble_info *);
-extern int print_insn_s390             (bfd_vma, disassemble_info *);
-extern int print_insn_sh               (bfd_vma, disassemble_info *);
-extern int print_insn_tic30            (bfd_vma, disassemble_info *);
-extern int print_insn_tic4x            (bfd_vma, disassemble_info *);
-extern int print_insn_tic54x           (bfd_vma, disassemble_info *);
-extern int print_insn_tic80            (bfd_vma, disassemble_info *);
-extern int print_insn_v850             (bfd_vma, disassemble_info *);
-extern int print_insn_vax              (bfd_vma, disassemble_info *);
-extern int print_insn_w65              (bfd_vma, disassemble_info *);
-extern int print_insn_xstormy16                (bfd_vma, disassemble_info *);
-extern int print_insn_xtensa           (bfd_vma, disassemble_info *);
-extern int print_insn_sh64             (bfd_vma, disassemble_info *);
-extern int print_insn_sh64x_media      (bfd_vma, disassemble_info *);
-extern int print_insn_frv              (bfd_vma, disassemble_info *);
-extern int print_insn_iq2000           (bfd_vma, disassemble_info *);
-extern int print_insn_xc16x            (bfd_vma, disassemble_info *);
-extern int print_insn_m32c     (bfd_vma, disassemble_info *);
-
-extern disassembler_ftype arc_get_disassembler (void *);
-//extern disassembler_ftype cris_get_disassembler (bfd *);
-
-extern void print_mips_disassembler_options (FILE *);
-extern void print_ppc_disassembler_options (FILE *);
-extern void print_arm_disassembler_options (FILE *);
-extern void parse_arm_disassembler_option (char *);
-extern int get_arm_regname_num_options (void);
-extern int set_arm_regname_option (int);
-extern int get_arm_regnames (int, const char **, const char **, const char 
*const **);
-extern bfd_boolean arm_symbol_is_valid (asymbol *, struct disassemble_info *);
-
-/* Fetch the disassembler for a given BFD, if that support is available.  */
-//extern disassembler_ftype disassembler (bfd *);
-
-/* Amend the disassemble_info structure as necessary for the target 
architecture.
-   Should only be called after initialising the info->arch field.  */
-extern void disassemble_init_for_target (struct disassemble_info * info);
-
-/* Document any target specific options available from the disassembler.  */
-extern void disassembler_usage (FILE *);
-
-
-/* This block of definitions is for particular callers who read instructions
-   into a buffer before calling the instruction decoder.  */
-
-/* Here is a function which callers may wish to use for read_memory_func.
-   It gets bytes from a buffer.  */
-extern int buffer_read_memory
-  (bfd_vma, bfd_byte *, unsigned int, struct disassemble_info *);
-
-/* This function goes with buffer_read_memory.
-   It prints a message using info->fprintf_func and info->stream.  */
-extern void perror_memory (int, bfd_vma, struct disassemble_info *);
-
-
-/* Just print the address in hex.  This is included for completeness even
-   though both GDB and objdump provide their own (to print symbolic
-   addresses).  */
-extern void generic_print_address
-  (bfd_vma, struct disassemble_info *);
-
-/* Always true.  */
-extern int generic_symbol_at_address
-  (bfd_vma, struct disassemble_info *);
-
-/* Also always true.  */
-extern bfd_boolean generic_symbol_is_valid
-  (asymbol *, struct disassemble_info *);
-
-/* Method to initialize a disassemble_info struct.  This should be
-   called by all applications creating such a struct.  */
-extern void init_disassemble_info (struct disassemble_info *info, void *stream,
-                                  fprintf_ftype fprintf_func);
-
-/* For compatibility with existing code.  */
-#define INIT_DISASSEMBLE_INFO(INFO, STREAM, FPRINTF_FUNC) \
-  init_disassemble_info (&(INFO), (STREAM), (fprintf_ftype) (FPRINTF_FUNC))
-#define INIT_DISASSEMBLE_INFO_NO_ARCH(INFO, STREAM, FPRINTF_FUNC) \
-  init_disassemble_info (&(INFO), (STREAM), (fprintf_ftype) (FPRINTF_FUNC))
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ! defined (DIS_ASM_H) */
diff -r a1bd69b08e9e -r 485e6db28b93 tools/debugger/xenitp/ia64-asmtab.c
--- a/tools/debugger/xenitp/ia64-asmtab.c       Wed Sep 12 16:12:42 2012 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,8774 +0,0 @@
-/* This file is automatically generated by ia64-gen.  Do not edit!  */
-static const char * const ia64_strings[] = {
-  "", "0", "1", "a", "acq", "add", "addl", "addp4", "adds", "alloc", "and",
-  "andcm", "b", "bias", "br", "break", "brl", "brp", "bsw", "c", "call",
-  "cexit", "chk", "cloop", "clr", "clrrrb", "cmp", "cmp4", "cmp8xchg16",
-  "cmpxchg1", "cmpxchg2", "cmpxchg4", "cmpxchg8", "cond", "cover", "ctop",
-  "czx1", "czx2", "d", "dep", "dpnt", "dptk", "e", "epc", "eq", "excl",
-  "exit", "exp", "extr", "f", "fabs", "fadd", "famax", "famin", "fand",
-  "fandcm", "fault", "fc", "fchkf", "fclass", "fclrf", "fcmp", "fcvt",
-  "fetchadd4", "fetchadd8", "few", "fill", "flushrs", "fma", "fmax",
-  "fmerge", "fmin", "fmix", "fmpy", "fms", "fneg", "fnegabs", "fnma",
-  "fnmpy", "fnorm", "for", "fpabs", "fpack", "fpamax", "fpamin", "fpcmp",
-  "fpcvt", "fpma", "fpmax", "fpmerge", "fpmin", "fpmpy", "fpms", "fpneg",
-  "fpnegabs", "fpnma", "fpnmpy", "fprcpa", "fprsqrta", "frcpa", "frsqrta",
-  "fselect", "fsetc", "fsub", "fswap", "fsxt", "fwb", "fx", "fxor", "fxu",
-  "g", "ga", "ge", "getf", "geu", "gt", "gtu", "h", "hint", "hu", "i", "ia",
-  "imp", "invala", "itc", "itr", "l", "ld1", "ld16", "ld2", "ld4", "ld8",
-  "ldf", "ldf8", "ldfd", "ldfe", "ldfp8", "ldfpd", "ldfps", "ldfs", "le",
-  "leu", "lfetch", "loadrs", "loop", "lr", "lt", "ltu", "lu", "m", "many",
-  "mf", "mix1", "mix2", "mix4", "mov", "movl", "mux1", "mux2", "nc", "ne",
-  "neq", "nge", "ngt", "nl", "nle", "nlt", "nm", "nop", "nr", "ns", "nt1",
-  "nt2", "nta", "nz", "or", "orcm", "ord", "pack2", "pack4", "padd1",
-  "padd2", "padd4", "pavg1", "pavg2", "pavgsub1", "pavgsub2", "pcmp1",
-  "pcmp2", "pcmp4", "pmax1", "pmax2", "pmin1", "pmin2", "pmpy2", "pmpyshr2",
-  "popcnt", "pr", "probe", "psad1", "pshl2", "pshl4", "pshladd2", "pshr2",
-  "pshr4", "pshradd2", "psub1", "psub2", "psub4", "ptc", "ptr", "r", "raz",
-  "rel", "ret", "rfi", "rsm", "rum", "rw", "s", "s0", "s1", "s2", "s3",
-  "sa", "se", "setf", "shl", "shladd", "shladdp4", "shr", "shrp", "sig",
-  "spill", "spnt", "sptk", "srlz", "ssm", "sss", "st1", "st16", "st2",
-  "st4", "st8", "stf", "stf8", "stfd", "stfe", "stfs", "sub", "sum", "sxt1",
-  "sxt2", "sxt4", "sync", "tak", "tbit", "tf", "thash", "tnat", "tpa",
-  "trunc", "ttag", "u", "unc", "unord", "unpack1", "unpack2", "unpack4",
-  "uss", "uus", "uuu", "vmsw", "w", "wexit", "wtop", "x", "xchg1", "xchg2",
-  "xchg4", "xchg8", "xf", "xma", "xmpy", "xor", "xuf", "z", "zxt1", "zxt2",
-  "zxt4",
-};
-
-static const struct ia64_dependency
-dependencies[] = {
-  { "ALAT", 0, 0, 0, -1, NULL, },
-  { "AR[BSP]", 26, 0, 2, 17, NULL, },
-  { "AR[BSPSTORE]", 26, 0, 2, 18, NULL, },
-  { "AR[CCV]", 26, 0, 2, 32, NULL, },
-  { "AR[CFLG]", 26, 0, 2, 27, NULL, },
-  { "AR[CSD]", 26, 0, 2, 25, NULL, },
-  { "AR[EC]", 26, 0, 2, 66, NULL, },
-  { "AR[EFLAG]", 26, 0, 2, 24, NULL, },
-  { "AR[FCR]", 26, 0, 2, 21, NULL, },
-  { "AR[FDR]", 26, 0, 2, 30, NULL, },
-  { "AR[FIR]", 26, 0, 2, 29, NULL, },
-  { "AR[FPSR].sf0.controls", 30, 0, 2, -1, NULL, },
-  { "AR[FPSR].sf1.controls", 30, 0, 2, -1, NULL, },
-  { "AR[FPSR].sf2.controls", 30, 0, 2, -1, NULL, },
-  { "AR[FPSR].sf3.controls", 30, 0, 2, -1, NULL, },
-  { "AR[FPSR].sf0.flags", 30, 0, 2, -1, NULL, },
-  { "AR[FPSR].sf1.flags", 30, 0, 2, -1, NULL, },
-  { "AR[FPSR].sf2.flags", 30, 0, 2, -1, NULL, },
-  { "AR[FPSR].sf3.flags", 30, 0, 2, -1, NULL, },
-  { "AR[FPSR].traps", 30, 0, 2, -1, NULL, },
-  { "AR[FPSR].rv", 30, 0, 2, -1, NULL, },
-  { "AR[FSR]", 26, 0, 2, 28, NULL, },
-  { "AR[ITC]", 26, 0, 2, 44, NULL, },
-  { "AR[K%], % in 0 - 7", 1, 0, 2, -1, NULL, },
-  { "AR[LC]", 26, 0, 2, 65, NULL, },
-  { "AR[PFS]", 26, 0, 2, 64, NULL, },
-  { "AR[PFS]", 26, 0, 2, 64, NULL, },
-  { "AR[PFS]", 26, 0, 0, 64, NULL, },
-  { "AR[RNAT]", 26, 0, 2, 19, NULL, },
-  { "AR[RSC]", 26, 0, 2, 16, NULL, },
-  { "AR[SSD]", 26, 0, 2, 26, NULL, },
-  { "AR[UNAT]{%}, % in 0 - 63", 2, 0, 2, -1, NULL, },
-  { "AR%, % in 8-15, 20, 22-23, 31, 33-35, 37-39, 41-43, 45-47, 67-111", 3, 0, 
0, -1, NULL, },
-  { "AR%, % in 48-63, 112-127", 4, 0, 2, -1, NULL, },
-  { "BR%, % in 0 - 7", 5, 0, 2, -1, NULL, },
-  { "BR%, % in 0 - 7", 5, 0, 0, -1, NULL, },
-  { "BR%, % in 0 - 7", 5, 0, 2, -1, NULL, },
-  { "CFM", 6, 0, 2, -1, NULL, },
-  { "CFM", 6, 0, 2, -1, NULL, },
-  { "CFM", 6, 0, 2, -1, NULL, },
-  { "CFM", 6, 0, 2, -1, NULL, },
-  { "CFM", 6, 0, 0, -1, NULL, },
-  { "CPUID#", 7, 0, 5, -1, NULL, },
-  { "CR[CMCV]", 27, 0, 3, 74, NULL, },
-  { "CR[DCR]", 27, 0, 3, 0, NULL, },
-  { "CR[EOI]", 27, 0, 7, 67, "SC Section 5.8.3.4, \"End of External Interrupt 
Register (EOI Ð CR67)\" on page 2:119", },
-  { "CR[GPTA]", 27, 0, 3, 9, NULL, },
-  { "CR[IFA]", 27, 0, 1, 20, NULL, },
-  { "CR[IFA]", 27, 0, 3, 20, NULL, },
-  { "CR[IFS]", 27, 0, 3, 23, NULL, },
-  { "CR[IFS]", 27, 0, 1, 23, NULL, },
-  { "CR[IFS]", 27, 0, 1, 23, NULL, },
-  { "CR[IHA]", 27, 0, 3, 25, NULL, },
-  { "CR[IIM]", 27, 0, 3, 24, NULL, },
-  { "CR[IIP]", 27, 0, 3, 19, NULL, },
-  { "CR[IIP]", 27, 0, 1, 19, NULL, },
-  { "CR[IIPA]", 27, 0, 3, 22, NULL, },
-  { "CR[IPSR]", 27, 0, 3, 16, NULL, },
-  { "CR[IPSR]", 27, 0, 1, 16, NULL, },
-  { "CR[IRR%], % in 0 - 3", 8, 0, 3, -1, NULL, },
-  { "CR[ISR]", 27, 0, 3, 17, NULL, },
-  { "CR[ITIR]", 27, 0, 3, 21, NULL, },
-  { "CR[ITIR]", 27, 0, 1, 21, NULL, },
-  { "CR[ITM]", 27, 0, 3, 1, NULL, },
-  { "CR[ITV]", 27, 0, 3, 72, NULL, },
-  { "CR[IVA]", 27, 0, 4, 2, NULL, },
-  { "CR[IVR]", 27, 0, 7, 65, "SC Section 5.8.3.2, \"External Interrupt Vector 
Register (IVR Ð CR65)\" on page 2:118", },
-  { "CR[LID]", 27, 0, 7, 64, "SC Section 5.8.3.1, \"Local ID (LID Ð CR64)\" on 
page 2:117", },
-  { "CR[LRR%], % in 0 - 1", 9, 0, 3, -1, NULL, },
-  { "CR[PMV]", 27, 0, 3, 73, NULL, },
-  { "CR[PTA]", 27, 0, 3, 8, NULL, },
-  { "CR[TPR]", 27, 0, 3, 66, NULL, },
-  { "CR[TPR]", 27, 0, 7, 66, "SC Section 5.8.3.3, \"Task Priority Register 
(TPR Ð CR66)\" on page 2:119", },
-  { "CR[TPR]", 27, 0, 1, 66, NULL, },
-  { "CR%, % in 3-7, 10-15, 18, 26-63, 75-79, 82-127", 10, 0, 0, -1, NULL, },
-  { "DBR#", 11, 0, 2, -1, NULL, },
-  { "DBR#", 11, 0, 3, -1, NULL, },
-  { "DTC", 0, 0, 3, -1, NULL, },
-  { "DTC", 0, 0, 2, -1, NULL, },
-  { "DTC", 0, 0, 0, -1, NULL, },
-  { "DTC", 0, 0, 2, -1, NULL, },
-  { "DTC_LIMIT*", 0, 0, 2, -1, NULL, },
-  { "DTR", 0, 0, 3, -1, NULL, },
-  { "DTR", 0, 0, 2, -1, NULL, },
-  { "DTR", 0, 0, 3, -1, NULL, },
-  { "DTR", 0, 0, 0, -1, NULL, },
-  { "DTR", 0, 0, 2, -1, NULL, },
-  { "FR%, % in 0 - 1", 12, 0, 0, -1, NULL, },
-  { "FR%, % in 2 - 127", 13, 0, 2, -1, NULL, },
-  { "FR%, % in 2 - 127", 13, 0, 0, -1, NULL, },
-  { "GR0", 14, 0, 0, -1, NULL, },
-  { "GR%, % in 1 - 127", 15, 0, 0, -1, NULL, },
-  { "GR%, % in 1 - 127", 15, 0, 2, -1, NULL, },
-  { "IBR#", 16, 0, 2, -1, NULL, },
-  { "InService*", 17, 0, 3, -1, NULL, },
-  { "InService*", 17, 0, 2, -1, NULL, },
-  { "InService*", 17, 0, 2, -1, NULL, },
-  { "IP", 0, 0, 0, -1, NULL, },
-  { "ITC", 0, 0, 4, -1, NULL, },
-  { "ITC", 0, 0, 2, -1, NULL, },
-  { "ITC", 0, 0, 0, -1, NULL, },
-  { "ITC", 0, 0, 4, -1, NULL, },
-  { "ITC", 0, 0, 2, -1, NULL, },
-  { "ITC_LIMIT*", 0, 0, 2, -1, NULL, },
-  { "ITR", 0, 0, 2, -1, NULL, },
-  { "ITR", 0, 0, 4, -1, NULL, },
-  { "ITR", 0, 0, 2, -1, NULL, },
-  { "ITR", 0, 0, 0, -1, NULL, },
-  { "ITR", 0, 0, 4, -1, NULL, },
-  { "memory", 0, 0, 0, -1, NULL, },
-  { "MSR#", 18, 0, 5, -1, NULL, },
-  { "PKR#", 19, 0, 3, -1, NULL, },
-  { "PKR#", 19, 0, 0, -1, NULL, },
-  { "PKR#", 19, 0, 2, -1, NULL, },
-  { "PKR#", 19, 0, 2, -1, NULL, },
-  { "PMC#", 20, 0, 2, -1, NULL, },
-  { "PMC#", 20, 0, 7, -1, "SC Section 7.2.1, \"Generic Performance Counter 
Registers\" for PMC[0].fr on page 2:150", },
-  { "PMD#", 21, 0, 2, -1, NULL, },
-  { "PR0", 0, 0, 0, -1, NULL, },
-  { "PR%, % in 1 - 15", 22, 0, 2, -1, NULL, },
-  { "PR%, % in 1 - 15", 22, 0, 2, -1, NULL, },
-  { "PR%, % in 1 - 15", 22, 0, 0, -1, NULL, },
-  { "PR%, % in 16 - 62", 23, 0, 2, -1, NULL, },
-  { "PR%, % in 16 - 62", 23, 0, 2, -1, NULL, },
-  { "PR%, % in 16 - 62", 23, 0, 0, -1, NULL, },
-  { "PR63", 24, 0, 2, -1, NULL, },
-  { "PR63", 24, 0, 2, -1, NULL, },
-  { "PR63", 24, 0, 0, -1, NULL, },
-  { "PSR.ac", 28, 0, 1, 3, NULL, },
-  { "PSR.ac", 28, 0, 3, 3, NULL, },
-  { "PSR.ac", 28, 0, 2, 3, NULL, },
-  { "PSR.ac", 28, 0, 2, 3, NULL, },
-  { "PSR.be", 28, 0, 1, 1, NULL, },
-  { "PSR.be", 28, 0, 3, 1, NULL, },
-  { "PSR.be", 28, 0, 2, 1, NULL, },
-  { "PSR.be", 28, 0, 2, 1, NULL, },
-  { "PSR.bn", 28, 0, 2, 44, NULL, },
-  { "PSR.cpl", 28, 0, 1, 32, NULL, },
-  { "PSR.cpl", 28, 0, 2, 32, NULL, },
-  { "PSR.da", 28, 0, 2, 38, NULL, },
-  { "PSR.db", 28, 0, 3, 24, NULL, },
-  { "PSR.db", 28, 0, 2, 24, NULL, },
-  { "PSR.db", 28, 0, 2, 24, NULL, },
-  { "PSR.dd", 28, 0, 2, 39, NULL, },
-  { "PSR.dfh", 28, 0, 3, 19, NULL, },
-  { "PSR.dfh", 28, 0, 2, 19, NULL, },
-  { "PSR.dfh", 28, 0, 2, 19, NULL, },
-  { "PSR.dfl", 28, 0, 3, 18, NULL, },
-  { "PSR.dfl", 28, 0, 2, 18, NULL, },
-  { "PSR.dfl", 28, 0, 2, 18, NULL, },
-  { "PSR.di", 28, 0, 3, 22, NULL, },
-  { "PSR.di", 28, 0, 2, 22, NULL, },
-  { "PSR.di", 28, 0, 2, 22, NULL, },
-  { "PSR.dt", 28, 0, 3, 17, NULL, },
-  { "PSR.dt", 28, 0, 2, 17, NULL, },
-  { "PSR.dt", 28, 0, 2, 17, NULL, },
-  { "PSR.ed", 28, 0, 2, 43, NULL, },
-  { "PSR.i", 28, 0, 2, 14, NULL, },
-  { "PSR.ia", 28, 0, 0, 14, NULL, },
-  { "PSR.ic", 28, 0, 2, 13, NULL, },
-  { "PSR.ic", 28, 0, 3, 13, NULL, },
-  { "PSR.ic", 28, 0, 2, 13, NULL, },
-  { "PSR.id", 28, 0, 0, 14, NULL, },
-  { "PSR.is", 28, 0, 0, 14, NULL, },
-  { "PSR.it", 28, 0, 2, 14, NULL, },
-  { "PSR.lp", 28, 0, 2, 25, NULL, },
-  { "PSR.lp", 28, 0, 3, 25, NULL, },
-  { "PSR.lp", 28, 0, 2, 25, NULL, },
-  { "PSR.mc", 28, 0, 2, 35, NULL, },
-  { "PSR.mfh", 28, 0, 2, 5, NULL, },
-  { "PSR.mfl", 28, 0, 2, 4, NULL, },
-  { "PSR.pk", 28, 0, 3, 15, NULL, },
-  { "PSR.pk", 28, 0, 2, 15, NULL, },
-  { "PSR.pk", 28, 0, 2, 15, NULL, },
-  { "PSR.pp", 28, 0, 2, 21, NULL, },
-  { "PSR.ri", 28, 0, 0, 41, NULL, },
-  { "PSR.rt", 28, 0, 2, 27, NULL, },
-  { "PSR.rt", 28, 0, 3, 27, NULL, },
-  { "PSR.rt", 28, 0, 2, 27, NULL, },
-  { "PSR.si", 28, 0, 2, 23, NULL, },
-  { "PSR.si", 28, 0, 3, 23, NULL, },
-  { "PSR.si", 28, 0, 2, 23, NULL, },
-  { "PSR.sp", 28, 0, 2, 20, NULL, },
-  { "PSR.sp", 28, 0, 3, 20, NULL, },
-  { "PSR.sp", 28, 0, 2, 20, NULL, },
-  { "PSR.ss", 28, 0, 2, 40, NULL, },
-  { "PSR.tb", 28, 0, 3, 26, NULL, },
-  { "PSR.tb", 28, 0, 2, 26, NULL, },
-  { "PSR.tb", 28, 0, 2, 26, NULL, },
-  { "PSR.up", 28, 0, 2, 2, NULL, },
-  { "PSR.vm", 28, 0, 1, 46, NULL, },
-  { "PSR.vm", 28, 0, 2, 46, NULL, },
-  { "RR#", 25, 0, 3, -1, NULL, },
-  { "RR#", 25, 0, 2, -1, NULL, },
-  { "RSE", 29, 0, 2, -1, NULL, },
-  { "ALAT", 0, 1, 0, -1, NULL, },
-  { "AR[BSP]", 26, 1, 2, 17, NULL, },
-  { "AR[BSPSTORE]", 26, 1, 2, 18, NULL, },
-  { "AR[CCV]", 26, 1, 2, 32, NULL, },
-  { "AR[CFLG]", 26, 1, 2, 27, NULL, },
-  { "AR[CSD]", 26, 1, 2, 25, NULL, },
-  { "AR[EC]", 26, 1, 2, 66, NULL, },
-  { "AR[EFLAG]", 26, 1, 2, 24, NULL, },
-  { "AR[FCR]", 26, 1, 2, 21, NULL, },
-  { "AR[FDR]", 26, 1, 2, 30, NULL, },
-  { "AR[FIR]", 26, 1, 2, 29, NULL, },
-  { "AR[FPSR].sf0.controls", 30, 1, 2, -1, NULL, },
-  { "AR[FPSR].sf1.controls", 30, 1, 2, -1, NULL, },
-  { "AR[FPSR].sf2.controls", 30, 1, 2, -1, NULL, },
-  { "AR[FPSR].sf3.controls", 30, 1, 2, -1, NULL, },
-  { "AR[FPSR].sf0.flags", 30, 1, 0, -1, NULL, },
-  { "AR[FPSR].sf0.flags", 30, 1, 2, -1, NULL, },
-  { "AR[FPSR].sf0.flags", 30, 1, 2, -1, NULL, },
-  { "AR[FPSR].sf1.flags", 30, 1, 0, -1, NULL, },
-  { "AR[FPSR].sf1.flags", 30, 1, 2, -1, NULL, },
-  { "AR[FPSR].sf1.flags", 30, 1, 2, -1, NULL, },
-  { "AR[FPSR].sf2.flags", 30, 1, 0, -1, NULL, },
-  { "AR[FPSR].sf2.flags", 30, 1, 2, -1, NULL, },
-  { "AR[FPSR].sf2.flags", 30, 1, 2, -1, NULL, },
-  { "AR[FPSR].sf3.flags", 30, 1, 0, -1, NULL, },
-  { "AR[FPSR].sf3.flags", 30, 1, 2, -1, NULL, },
-  { "AR[FPSR].sf3.flags", 30, 1, 2, -1, NULL, },
-  { "AR[FPSR].rv", 30, 1, 2, -1, NULL, },
-  { "AR[FPSR].traps", 30, 1, 2, -1, NULL, },
-  { "AR[FSR]", 26, 1, 2, 28, NULL, },
-  { "AR[ITC]", 26, 1, 2, 44, NULL, },
-  { "AR[K%], % in 0 - 7", 1, 1, 2, -1, NULL, },
-  { "AR[LC]", 26, 1, 2, 65, NULL, },
-  { "AR[PFS]", 26, 1, 0, 64, NULL, },
-  { "AR[PFS]", 26, 1, 2, 64, NULL, },
-  { "AR[PFS]", 26, 1, 2, 64, NULL, },
-  { "AR[RNAT]", 26, 1, 2, 19, NULL, },
-  { "AR[RSC]", 26, 1, 2, 16, NULL, },
-  { "AR[SSD]", 26, 1, 2, 26, NULL, },
-  { "AR[UNAT]{%}, % in 0 - 63", 2, 1, 2, -1, NULL, },
-  { "AR%, % in 8-15, 20, 22-23, 31, 33-35, 37-39, 41-43, 45-47, 67-111", 3, 1, 
0, -1, NULL, },
-  { "AR%, % in 48 - 63, 112-127", 4, 1, 2, -1, NULL, },
-  { "BR%, % in 0 - 7", 5, 1, 2, -1, NULL, },
-  { "BR%, % in 0 - 7", 5, 1, 2, -1, NULL, },
-  { "BR%, % in 0 - 7", 5, 1, 2, -1, NULL, },
-  { "BR%, % in 0 - 7", 5, 1, 0, -1, NULL, },
-  { "CFM", 6, 1, 2, -1, NULL, },
-  { "CPUID#", 7, 1, 0, -1, NULL, },
-  { "CR[CMCV]", 27, 1, 2, 74, NULL, },
-  { "CR[DCR]", 27, 1, 2, 0, NULL, },
-  { "CR[EOI]", 27, 1, 7, 67, "SC Section 5.8.3.4, \"End of External Interrupt 
Register (EOI Ð CR67)\" on page 2:119", },
-  { "CR[GPTA]", 27, 1, 2, 9, NULL, },
-  { "CR[IFA]", 27, 1, 2, 20, NULL, },
-  { "CR[IFS]", 27, 1, 2, 23, NULL, },
-  { "CR[IHA]", 27, 1, 2, 25, NULL, },
-  { "CR[IIM]", 27, 1, 2, 24, NULL, },
-  { "CR[IIP]", 27, 1, 2, 19, NULL, },
-  { "CR[IIPA]", 27, 1, 2, 22, NULL, },
-  { "CR[IPSR]", 27, 1, 2, 16, NULL, },
-  { "CR[IRR%], % in 0 - 3", 8, 1, 2, -1, NULL, },
-  { "CR[ISR]", 27, 1, 2, 17, NULL, },
-  { "CR[ITIR]", 27, 1, 2, 21, NULL, },
-  { "CR[ITM]", 27, 1, 2, 1, NULL, },
-  { "CR[ITV]", 27, 1, 2, 72, NULL, },
-  { "CR[IVA]", 27, 1, 2, 2, NULL, },
-  { "CR[IVR]", 27, 1, 7, 65, "SC", },
-  { "CR[LID]", 27, 1, 7, 64, "SC", },
-  { "CR[LRR%], % in 0 - 1", 9, 1, 2, -1, NULL, },
-  { "CR[PMV]", 27, 1, 2, 73, NULL, },
-  { "CR[PTA]", 27, 1, 2, 8, NULL, },
-  { "CR[TPR]", 27, 1, 2, 66, NULL, },
-  { "CR%, % in 3-7, 10-15, 18, 26-63, 75-79, 82-127", 10, 1, 0, -1, NULL, },
-  { "DBR#", 11, 1, 2, -1, NULL, },
-  { "DTC", 0, 1, 0, -1, NULL, },
-  { "DTC", 0, 1, 2, -1, NULL, },
-  { "DTC", 0, 1, 2, -1, NULL, },
-  { "DTC_LIMIT*", 0, 1, 2, -1, NULL, },
-  { "DTR", 0, 1, 2, -1, NULL, },
-  { "DTR", 0, 1, 2, -1, NULL, },
-  { "DTR", 0, 1, 2, -1, NULL, },
-  { "DTR", 0, 1, 0, -1, NULL, },
-  { "FR%, % in 0 - 1", 12, 1, 0, -1, NULL, },
-  { "FR%, % in 2 - 127", 13, 1, 2, -1, NULL, },
-  { "GR0", 14, 1, 0, -1, NULL, },
-  { "GR%, % in 1 - 127", 15, 1, 2, -1, NULL, },
-  { "IBR#", 16, 1, 2, -1, NULL, },
-  { "InService*", 17, 1, 7, -1, "SC", },
-  { "IP", 0, 1, 0, -1, NULL, },
-  { "ITC", 0, 1, 0, -1, NULL, },
-  { "ITC", 0, 1, 2, -1, NULL, },
-  { "ITC", 0, 1, 2, -1, NULL, },
-  { "ITR", 0, 1, 2, -1, NULL, },
-  { "ITR", 0, 1, 2, -1, NULL, },
-  { "ITR", 0, 1, 0, -1, NULL, },
-  { "memory", 0, 1, 0, -1, NULL, },
-  { "MSR#", 18, 1, 7, -1, "SC", },
-  { "PKR#", 19, 1, 0, -1, NULL, },
-  { "PKR#", 19, 1, 0, -1, NULL, },
-  { "PKR#", 19, 1, 2, -1, NULL, },
-  { "PMC#", 20, 1, 2, -1, NULL, },
-  { "PMD#", 21, 1, 2, -1, NULL, },
-  { "PR0", 0, 1, 0, -1, NULL, },
-  { "PR%, % in 1 - 15", 22, 1, 0, -1, NULL, },
-  { "PR%, % in 1 - 15", 22, 1, 0, -1, NULL, },
-  { "PR%, % in 1 - 15", 22, 1, 2, -1, NULL, },
-  { "PR%, % in 1 - 15", 22, 1, 2, -1, NULL, },
-  { "PR%, % in 16 - 62", 23, 1, 0, -1, NULL, },
-  { "PR%, % in 16 - 62", 23, 1, 0, -1, NULL, },
-  { "PR%, % in 16 - 62", 23, 1, 2, -1, NULL, },
-  { "PR%, % in 16 - 62", 23, 1, 2, -1, NULL, },
-  { "PR63", 24, 1, 0, -1, NULL, },
-  { "PR63", 24, 1, 0, -1, NULL, },
-  { "PR63", 24, 1, 2, -1, NULL, },
-  { "PR63", 24, 1, 2, -1, NULL, },
-  { "PSR.ac", 28, 1, 2, 3, NULL, },
-  { "PSR.be", 28, 1, 2, 1, NULL, },
-  { "PSR.bn", 28, 1, 2, 44, NULL, },
-  { "PSR.cpl", 28, 1, 2, 32, NULL, },
-  { "PSR.da", 28, 1, 2, 38, NULL, },
-  { "PSR.db", 28, 1, 2, 24, NULL, },
-  { "PSR.dd", 28, 1, 2, 39, NULL, },
-  { "PSR.dfh", 28, 1, 2, 19, NULL, },
-  { "PSR.dfl", 28, 1, 2, 18, NULL, },
-  { "PSR.di", 28, 1, 2, 22, NULL, },
-  { "PSR.dt", 28, 1, 2, 17, NULL, },
-  { "PSR.ed", 28, 1, 2, 43, NULL, },
-  { "PSR.i", 28, 1, 2, 14, NULL, },
-  { "PSR.ia", 28, 1, 2, 14, NULL, },
-  { "PSR.ic", 28, 1, 2, 13, NULL, },
-  { "PSR.id", 28, 1, 2, 14, NULL, },
-  { "PSR.is", 28, 1, 2, 14, NULL, },
-  { "PSR.it", 28, 1, 2, 14, NULL, },
-  { "PSR.lp", 28, 1, 2, 25, NULL, },
-  { "PSR.mc", 28, 1, 2, 35, NULL, },
-  { "PSR.mfh", 28, 1, 0, 5, NULL, },
-  { "PSR.mfh", 28, 1, 2, 5, NULL, },
-  { "PSR.mfh", 28, 1, 2, 5, NULL, },
-  { "PSR.mfl", 28, 1, 0, 4, NULL, },
-  { "PSR.mfl", 28, 1, 2, 4, NULL, },
-  { "PSR.mfl", 28, 1, 2, 4, NULL, },
-  { "PSR.pk", 28, 1, 2, 15, NULL, },
-  { "PSR.pp", 28, 1, 2, 21, NULL, },
-  { "PSR.ri", 28, 1, 2, 41, NULL, },
-  { "PSR.rt", 28, 1, 2, 27, NULL, },
-  { "PSR.si", 28, 1, 2, 23, NULL, },
-  { "PSR.sp", 28, 1, 2, 20, NULL, },
-  { "PSR.ss", 28, 1, 2, 40, NULL, },
-  { "PSR.tb", 28, 1, 2, 26, NULL, },
-  { "PSR.up", 28, 1, 2, 2, NULL, },
-  { "PSR.vm", 28, 1, 2, 46, NULL, },
-  { "RR#", 25, 1, 2, -1, NULL, },
-  { "RSE", 29, 1, 2, -1, NULL, },
-  { "PR63", 24, 2, 6, -1, NULL, },
-};
-
-static const unsigned short dep0[] = {
-  97, 282, 2140, 2327, 
-};
-
-static const unsigned short dep1[] = {
-  40, 41, 97, 158, 162, 175, 185, 282, 2138, 2139, 2140, 2166, 2167, 2170, 
2173, 
-  2327, 4135, 20616, 
-};
-
-static const unsigned short dep2[] = {
-  97, 282, 2166, 2167, 2169, 2170, 2172, 2173, 2175, 2344, 2347, 2348, 2351, 
-  2352, 2355, 2356, 
-};
-
-static const unsigned short dep3[] = {
-  40, 41, 97, 158, 162, 175, 185, 282, 2138, 2139, 2140, 2166, 2167, 2170, 
2173, 
-  2344, 2347, 2348, 2351, 2352, 2355, 2356, 4135, 20616, 
-};
-
-static const unsigned short dep4[] = {
-  97, 282, 22646, 22647, 22649, 22650, 22652, 22653, 22655, 22824, 22827, 
22828, 
-  22831, 22832, 22835, 22836, 
-};
-
-static const unsigned short dep5[] = {
-  40, 41, 97, 158, 162, 175, 185, 282, 2138, 2139, 2140, 2166, 2167, 2170, 
2173, 
-  4135, 20616, 22824, 22827, 22828, 22831, 22832, 22835, 22836, 
-};
-
-static const unsigned short dep6[] = {
-  97, 282, 2166, 2167, 2169, 2170, 2172, 2173, 2175, 2344, 2345, 2347, 2349, 
-  2351, 2353, 2355, 
-};
-
-static const unsigned short dep7[] = {
-  40, 41, 97, 158, 162, 175, 185, 282, 2138, 2139, 2140, 2166, 2167, 2170, 
2173, 
-  2344, 2345, 2348, 2349, 2352, 2353, 2356, 4135, 20616, 
-};
-
-static const unsigned short dep8[] = {
-  97, 282, 2166, 2167, 2169, 2170, 2172, 2173, 2175, 2344, 2346, 2348, 2350, 
-  2352, 2354, 2356, 
-};
-
-static const unsigned short dep9[] = {
-  40, 41, 97, 158, 162, 175, 185, 282, 2138, 2139, 2140, 2166, 2167, 2170, 
2173, 
-  2344, 2346, 2347, 2350, 2351, 2354, 2355, 4135, 20616, 
-};
-
-static const unsigned short dep10[] = {
-  97, 282, 2166, 2167, 2169, 2170, 2172, 2173, 2175, 2344, 2345, 2346, 2347, 
-  2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 
-};
-
-static const unsigned short dep11[] = {
-  40, 41, 97, 158, 162, 175, 185, 282, 2138, 2139, 2140, 2166, 2167, 2170, 
2173, 
-  2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 
2356, 
-  4135, 20616, 
-};
-
-static const unsigned short dep12[] = {
-  97, 282, 2395, 
-};
-
-static const unsigned short dep13[] = {
-  40, 41, 97, 158, 162, 164, 175, 185, 186, 188, 282, 2082, 2083, 2166, 2168, 
-  2169, 2171, 2172, 2174, 2175, 4135, 
-};
-
-static const unsigned short dep14[] = {
-  97, 163, 282, 325, 2395, 28866, 29018, 
-};
-
-static const unsigned short dep15[] = {
-  1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 
-  22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 40, 41, 97, 150, 152, 158, 162, 
-  164, 175, 185, 186, 188, 282, 325, 2082, 2083, 2166, 2168, 2169, 2171, 2172, 
-  2174, 2175, 4135, 28866, 29018, 
-};
-
-static const unsigned short dep16[] = {
-  1, 6, 40, 97, 137, 196, 201, 241, 282, 312, 2395, 28866, 29018, 
-};
-
-static const unsigned short dep17[] = {
-  1, 25, 27, 38, 40, 41, 97, 158, 162, 164, 166, 167, 175, 185, 186, 188, 196, 
-  201, 241, 282, 312, 2082, 2083, 2166, 2168, 2169, 2171, 2172, 2174, 2175, 
-  4135, 28866, 29018, 
-};
-
-static const unsigned short dep18[] = {
-  1, 40, 51, 97, 196, 241, 248, 282, 28866, 29018, 
-};
-
-static const unsigned short dep19[] = {
-  1, 38, 40, 41, 97, 158, 160, 161, 162, 175, 185, 190, 191, 196, 241, 248, 
-  282, 4135, 28866, 29018, 
-};
-
-static const unsigned short dep20[] = {
-  40, 97, 241, 282, 
-};
-
-static const unsigned short dep21[] = {
-  97, 158, 162, 175, 185, 241, 282, 
-};
-
-static const unsigned short dep22[] = {
-  1, 40, 97, 131, 135, 136, 138, 139, 142, 143, 146, 149, 152, 155, 156, 157, 
-  158, 161, 162, 163, 164, 167, 168, 169, 170, 173, 174, 175, 178, 181, 184, 
-  185, 188, 189, 191, 196, 241, 282, 309, 310, 311, 312, 313, 314, 315, 316, 
-  317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 330, 331, 333, 
-  334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 28866, 29018, 
-};
-
-static const unsigned short dep23[] = {
-  1, 38, 40, 41, 50, 51, 55, 58, 73, 97, 137, 138, 158, 162, 175, 185, 190, 
-  191, 196, 241, 282, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 
-  320, 321, 322, 323, 324, 325, 326, 327, 328, 330, 331, 333, 334, 335, 336, 
-  337, 338, 339, 340, 341, 342, 343, 344, 4135, 28866, 29018, 
-};
-
-static const unsigned short dep24[] = {
-  97, 136, 282, 311, 
-};
-
-static const unsigned short dep25[] = {
-  97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 311, 
-};
-
-static const unsigned short dep26[] = {
-  97, 137, 282, 312, 
-};
-
-static const unsigned short dep27[] = {
-  25, 26, 97, 98, 101, 105, 108, 137, 138, 158, 162, 164, 175, 185, 282, 312, 
-  
-};
-
-static const unsigned short dep28[] = {
-  97, 190, 282, 344, 
-};
-
-static const unsigned short dep29[] = {
-  97, 98, 101, 105, 108, 137, 138, 158, 162, 164, 175, 185, 282, 344, 
-};
-
-static const unsigned short dep30[] = {
-  40, 41, 97, 158, 162, 175, 185, 282, 2166, 2168, 2169, 2171, 2172, 2174, 
2175, 
-  4135, 
-};
-
-static const unsigned short dep31[] = {
-  1, 25, 40, 97, 196, 228, 229, 241, 282, 2082, 2285, 2288, 2395, 28866, 
29018, 
-  
-};
-
-static const unsigned short dep32[] = {
-  1, 6, 38, 40, 41, 97, 137, 138, 158, 162, 164, 175, 185, 186, 188, 196, 228, 
-  230, 241, 282, 2082, 2083, 2166, 2168, 2169, 2171, 2172, 2174, 2175, 2286, 
-  2288, 4135, 28866, 29018, 
-};
-
-static const unsigned short dep33[] = {
-  97, 282, 
-};
-
-static const unsigned short dep34[] = {
-  97, 158, 162, 175, 185, 282, 2082, 2084, 
-};
-
-static const unsigned short dep35[] = {
-  40, 41, 97, 158, 162, 164, 175, 185, 186, 188, 282, 2166, 2168, 2169, 2171, 
-  2172, 2174, 2175, 4135, 
-};
-
-static const unsigned short dep36[] = {
-  6, 37, 38, 39, 97, 125, 126, 201, 241, 282, 307, 308, 2395, 
-};
-
-static const unsigned short dep37[] = {
-  6, 37, 40, 41, 97, 158, 162, 164, 175, 185, 186, 188, 201, 241, 282, 307, 
-  308, 347, 2166, 2168, 2169, 2171, 2172, 2174, 2175, 4135, 
-};
-
-static const unsigned short dep38[] = {
-  24, 97, 227, 282, 2395, 
-};
-
-static const unsigned short dep39[] = {
-  24, 40, 41, 97, 158, 162, 164, 175, 185, 186, 188, 227, 282, 2166, 2168, 
2169, 
-  2171, 2172, 2174, 2175, 4135, 
-};
-
-static const unsigned short dep40[] = {
-  6, 24, 37, 38, 39, 97, 125, 126, 201, 227, 241, 282, 307, 308, 2395, 
-};
-
-static const unsigned short dep41[] = {
-  6, 24, 37, 40, 41, 97, 158, 162, 164, 175, 185, 186, 188, 201, 227, 241, 
282, 
-  307, 308, 347, 2166, 2168, 2169, 2171, 2172, 2174, 2175, 4135, 
-};
-
-static const unsigned short dep42[] = {
-  1, 6, 38, 40, 41, 97, 137, 138, 158, 162, 164, 175, 185, 186, 188, 196, 228, 
-  230, 241, 282, 2166, 2168, 2169, 2171, 2172, 2174, 2175, 2286, 2288, 4135, 
-  28866, 29018, 
-};
-
-static const unsigned short dep43[] = {
-  97, 158, 162, 175, 185, 282, 
-};
-
-static const unsigned short dep44[] = {
-  15, 97, 210, 211, 282, 2136, 2325, 18601, 18602, 18761, 18762, 18764, 18765, 
-  22646, 22647, 22648, 22650, 22651, 22653, 22654, 22824, 22827, 22828, 22831, 
-  22832, 22835, 22836, 
-};
-
-static const unsigned short dep45[] = {
-  11, 19, 20, 40, 41, 97, 158, 162, 175, 185, 210, 212, 282, 2135, 2136, 2137, 
-  2166, 2167, 2170, 2173, 2325, 4135, 16528, 16530, 16531, 16533, 18761, 
18763, 
-  18764, 18766, 22824, 22827, 22828, 22831, 22832, 22835, 22836, 
-};
-
-static const unsigned short dep46[] = {
-  15, 16, 17, 18, 97, 210, 211, 213, 214, 216, 217, 219, 220, 282, 2136, 2325, 
-  18601, 18602, 18761, 18762, 18764, 18765, 22646, 22647, 22648, 22650, 22651, 
-  22653, 22654, 22824, 22827, 22828, 22831, 22832, 22835, 22836, 
-};
-
-static const unsigned short dep47[] = {
-  11, 12, 13, 14, 19, 20, 40, 41, 97, 158, 162, 175, 185, 210, 212, 213, 215, 
-  216, 218, 219, 221, 282, 2135, 2136, 2137, 2166, 2167, 2170, 2173, 2325, 
4135, 
-  16528, 16530, 16531, 16533, 18761, 18763, 18764, 18766, 22824, 22827, 22828, 
-  22831, 22832, 22835, 22836, 
-};
-
-static const unsigned short dep48[] = {
-  16, 97, 213, 214, 282, 2136, 2325, 18601, 18602, 18761, 18762, 18764, 18765, 
-  22646, 22647, 22648, 22650, 22651, 22653, 22654, 22824, 22827, 22828, 22831, 
-  22832, 22835, 22836, 
-};
-
-static const unsigned short dep49[] = {
-  12, 19, 20, 40, 41, 97, 158, 162, 175, 185, 213, 215, 282, 2135, 2136, 2137, 
-  2166, 2167, 2170, 2173, 2325, 4135, 16528, 16530, 16531, 16533, 18761, 
18763, 
-  18764, 18766, 22824, 22827, 22828, 22831, 22832, 22835, 22836, 
-};
-
-static const unsigned short dep50[] = {
-  17, 97, 216, 217, 282, 2136, 2325, 18601, 18602, 18761, 18762, 18764, 18765, 
-  22646, 22647, 22648, 22650, 22651, 22653, 22654, 22824, 22827, 22828, 22831, 
-  22832, 22835, 22836, 
-};
-
-static const unsigned short dep51[] = {
-  13, 19, 20, 40, 41, 97, 158, 162, 175, 185, 216, 218, 282, 2135, 2136, 2137, 
-  2166, 2167, 2170, 2173, 2325, 4135, 16528, 16530, 16531, 16533, 18761, 
18763, 
-  18764, 18766, 22824, 22827, 22828, 22831, 22832, 22835, 22836, 
-};
-
-static const unsigned short dep52[] = {
-  18, 97, 219, 220, 282, 2136, 2325, 18601, 18602, 18761, 18762, 18764, 18765, 
-  22646, 22647, 22648, 22650, 22651, 22653, 22654, 22824, 22827, 22828, 22831, 
-  22832, 22835, 22836, 
-};
-
-static const unsigned short dep53[] = {
-  14, 19, 20, 40, 41, 97, 158, 162, 175, 185, 219, 221, 282, 2135, 2136, 2137, 
-  2166, 2167, 2170, 2173, 2325, 4135, 16528, 16530, 16531, 16533, 18761, 
18763, 
-  18764, 18766, 22824, 22827, 22828, 22831, 22832, 22835, 22836, 
-};
-
-static const unsigned short dep54[] = {
-  15, 97, 210, 211, 282, 2136, 2325, 18601, 18602, 18761, 18762, 18764, 18765, 
-  
-};
-
-static const unsigned short dep55[] = {
-  11, 19, 20, 40, 41, 97, 158, 162, 175, 185, 210, 212, 282, 2135, 2136, 2137, 
-  2166, 2167, 2170, 2173, 2325, 4135, 16528, 16530, 16531, 16533, 18761, 
18763, 
-  18764, 18766, 
-};
-
-static const unsigned short dep56[] = {
-  15, 16, 17, 18, 97, 210, 211, 213, 214, 216, 217, 219, 220, 282, 2136, 2325, 
-  18601, 18602, 18761, 18762, 18764, 18765, 
-};
-
-static const unsigned short dep57[] = {
-  11, 12, 13, 14, 19, 20, 40, 41, 97, 158, 162, 175, 185, 210, 212, 213, 215, 
-  216, 218, 219, 221, 282, 2135, 2136, 2137, 2166, 2167, 2170, 2173, 2325, 
4135, 
-  16528, 16530, 16531, 16533, 18761, 18763, 18764, 18766, 
-};
-
-static const unsigned short dep58[] = {
-  16, 97, 213, 214, 282, 2136, 2325, 18601, 18602, 18761, 18762, 18764, 18765, 
-  
-};
-
-static const unsigned short dep59[] = {
-  12, 19, 20, 40, 41, 97, 158, 162, 175, 185, 213, 215, 282, 2135, 2136, 2137, 
-  2166, 2167, 2170, 2173, 2325, 4135, 16528, 16530, 16531, 16533, 18761, 
18763, 
-  18764, 18766, 
-};
-
-static const unsigned short dep60[] = {
-  17, 97, 216, 217, 282, 2136, 2325, 18601, 18602, 18761, 18762, 18764, 18765, 
-  
-};
-
-static const unsigned short dep61[] = {
-  13, 19, 20, 40, 41, 97, 158, 162, 175, 185, 216, 218, 282, 2135, 2136, 2137, 
-  2166, 2167, 2170, 2173, 2325, 4135, 16528, 16530, 16531, 16533, 18761, 
18763, 
-  18764, 18766, 
-};
-
-static const unsigned short dep62[] = {
-  18, 97, 219, 220, 282, 2136, 2325, 18601, 18602, 18761, 18762, 18764, 18765, 
-  
-};
-
-static const unsigned short dep63[] = {
-  14, 19, 20, 40, 41, 97, 158, 162, 175, 185, 219, 221, 282, 2135, 2136, 2137, 
-  2166, 2167, 2170, 2173, 2325, 4135, 16528, 16530, 16531, 16533, 18761, 
18763, 
-  18764, 18766, 
-};
-
-static const unsigned short dep64[] = {
-  97, 282, 2136, 2325, 18601, 18602, 18761, 18762, 18764, 18765, 
-};
-
-static const unsigned short dep65[] = {
-  40, 41, 97, 158, 162, 175, 185, 282, 2135, 2136, 2137, 2166, 2167, 2170, 
2173, 
-  2325, 4135, 16528, 16530, 16531, 16533, 18761, 18763, 18764, 18766, 
-};
-
-static const unsigned short dep66[] = {
-  11, 97, 206, 282, 
-};
-
-static const unsigned short dep67[] = {
-  11, 40, 41, 97, 158, 162, 175, 185, 206, 282, 2166, 2167, 2170, 2173, 4135, 
-  
-};
-
-static const unsigned short dep68[] = {
-  11, 40, 41, 97, 158, 162, 175, 185, 282, 2166, 2167, 2170, 2173, 4135, 
-};
-
-static const unsigned short dep69[] = {
-  12, 97, 207, 282, 
-};
-
-static const unsigned short dep70[] = {
-  11, 40, 41, 97, 158, 162, 175, 185, 207, 282, 2166, 2167, 2170, 2173, 4135, 
-  
-};
-
-static const unsigned short dep71[] = {
-  13, 97, 208, 282, 
-};
-
-static const unsigned short dep72[] = {
-  11, 40, 41, 97, 158, 162, 175, 185, 208, 282, 2166, 2167, 2170, 2173, 4135, 
-  
-};
-
-static const unsigned short dep73[] = {
-  14, 97, 209, 282, 
-};
-
-static const unsigned short dep74[] = {
-  11, 40, 41, 97, 158, 162, 175, 185, 209, 282, 2166, 2167, 2170, 2173, 4135, 
-  
-};
-
-static const unsigned short dep75[] = {
-  15, 97, 211, 212, 282, 
-};
-
-static const unsigned short dep76[] = {
-  40, 41, 97, 158, 162, 175, 185, 211, 212, 282, 2166, 2167, 2170, 2173, 4135, 
-  
-};
-
-static const unsigned short dep77[] = {
-  40, 41, 97, 158, 162, 175, 185, 282, 2166, 2167, 2170, 2173, 4135, 
-};
-
-static const unsigned short dep78[] = {
-  16, 97, 214, 215, 282, 
-};
-
-static const unsigned short dep79[] = {
-  40, 41, 97, 158, 162, 175, 185, 214, 215, 282, 2166, 2167, 2170, 2173, 4135, 
-  
-};
-
-static const unsigned short dep80[] = {
-  17, 97, 217, 218, 282, 
-};
-
-static const unsigned short dep81[] = {
-  40, 41, 97, 158, 162, 175, 185, 217, 218, 282, 2166, 2167, 2170, 2173, 4135, 
-  
-};
-
-static const unsigned short dep82[] = {
-  18, 97, 220, 221, 282, 
-};
-
-static const unsigned short dep83[] = {
-  40, 41, 97, 158, 162, 175, 185, 220, 221, 282, 2166, 2167, 2170, 2173, 4135, 
-  
-};
-
-static const unsigned short dep84[] = {
-  15, 19, 20, 40, 41, 97, 158, 162, 164, 175, 185, 186, 188, 282, 2166, 2167, 
-  2170, 2173, 4135, 
-};
-
-static const unsigned short dep85[] = {
-  15, 16, 19, 20, 40, 41, 97, 158, 162, 164, 175, 185, 186, 188, 282, 2166, 
-  2167, 2170, 2173, 4135, 
-};
-
-static const unsigned short dep86[] = {
-  15, 17, 19, 20, 40, 41, 97, 158, 162, 164, 175, 185, 186, 188, 282, 2166, 
-  2167, 2170, 2173, 4135, 
-};
-
-static const unsigned short dep87[] = {
-  15, 18, 19, 20, 40, 41, 97, 158, 162, 164, 175, 185, 186, 188, 282, 2166, 
-  2167, 2170, 2173, 4135, 
-};
-
-static const unsigned short dep88[] = {
-  15, 97, 210, 211, 282, 
-};
-
-static const unsigned short dep89[] = {
-  11, 19, 20, 40, 41, 97, 158, 162, 175, 185, 210, 212, 282, 2166, 2167, 2170, 
-  2173, 4135, 
-};
-
-static const unsigned short dep90[] = {
-  15, 16, 17, 18, 97, 210, 211, 213, 214, 216, 217, 219, 220, 282, 
-};
-
-static const unsigned short dep91[] = {
-  11, 12, 13, 14, 19, 20, 40, 41, 97, 158, 162, 175, 185, 210, 212, 213, 215, 
-  216, 218, 219, 221, 282, 2166, 2167, 2170, 2173, 4135, 
-};
-
-static const unsigned short dep92[] = {
-  16, 97, 213, 214, 282, 
-};
-
-static const unsigned short dep93[] = {
-  12, 19, 20, 40, 41, 97, 158, 162, 175, 185, 213, 215, 282, 2166, 2167, 2170, 
-  2173, 4135, 
-};
-
-static const unsigned short dep94[] = {
-  17, 97, 216, 217, 282, 
-};
-
-static const unsigned short dep95[] = {
-  13, 19, 20, 40, 41, 97, 158, 162, 175, 185, 216, 218, 282, 2166, 2167, 2170, 
-  2173, 4135, 
-};
-
-static const unsigned short dep96[] = {
-  18, 97, 219, 220, 282, 
-};
-
-static const unsigned short dep97[] = {
-  14, 19, 20, 40, 41, 97, 158, 162, 175, 185, 219, 221, 282, 2166, 2167, 2170, 
-  2173, 4135, 
-};
-
-static const unsigned short dep98[] = {
-  15, 97, 210, 211, 282, 2166, 2167, 2168, 2170, 2171, 2173, 2174, 2344, 2347, 
-  2348, 2351, 2352, 2355, 2356, 
-};
-
-static const unsigned short dep99[] = {
-  11, 19, 20, 40, 41, 97, 158, 162, 175, 185, 210, 212, 282, 2135, 2136, 2137, 
-  2166, 2167, 2170, 2173, 2344, 2347, 2348, 2351, 2352, 2355, 2356, 4135, 
16528, 
-  16530, 16531, 16533, 
-};
-
-static const unsigned short dep100[] = {
-  15, 16, 17, 18, 97, 210, 211, 213, 214, 216, 217, 219, 220, 282, 2166, 2167, 
-  2168, 2170, 2171, 2173, 2174, 2344, 2347, 2348, 2351, 2352, 2355, 2356, 
-};
-
-static const unsigned short dep101[] = {
-  11, 12, 13, 14, 19, 20, 40, 41, 97, 158, 162, 175, 185, 210, 212, 213, 215, 
-  216, 218, 219, 221, 282, 2135, 2136, 2137, 2166, 2167, 2170, 2173, 2344, 
2347, 
-  2348, 2351, 2352, 2355, 2356, 4135, 16528, 16530, 16531, 16533, 
-};
-
-static const unsigned short dep102[] = {
-  16, 97, 213, 214, 282, 2166, 2167, 2168, 2170, 2171, 2173, 2174, 2344, 2347, 
-  2348, 2351, 2352, 2355, 2356, 
-};
-
-static const unsigned short dep103[] = {
-  12, 19, 20, 40, 41, 97, 158, 162, 175, 185, 213, 215, 282, 2135, 2136, 2137, 
-  2166, 2167, 2170, 2173, 2344, 2347, 2348, 2351, 2352, 2355, 2356, 4135, 
16528, 
-  16530, 16531, 16533, 
-};
-
-static const unsigned short dep104[] = {
-  17, 97, 216, 217, 282, 2166, 2167, 2168, 2170, 2171, 2173, 2174, 2344, 2347, 
-  2348, 2351, 2352, 2355, 2356, 
-};
-
-static const unsigned short dep105[] = {
-  13, 19, 20, 40, 41, 97, 158, 162, 175, 185, 216, 218, 282, 2135, 2136, 2137, 
-  2166, 2167, 2170, 2173, 2344, 2347, 2348, 2351, 2352, 2355, 2356, 4135, 
16528, 
-  16530, 16531, 16533, 
-};
-
-static const unsigned short dep106[] = {
-  18, 97, 219, 220, 282, 2166, 2167, 2168, 2170, 2171, 2173, 2174, 2344, 2347, 
-  2348, 2351, 2352, 2355, 2356, 
-};
-
-static const unsigned short dep107[] = {
-  14, 19, 20, 40, 41, 97, 158, 162, 175, 185, 219, 221, 282, 2135, 2136, 2137, 
-  2166, 2167, 2170, 2173, 2344, 2347, 2348, 2351, 2352, 2355, 2356, 4135, 
16528, 
-  16530, 16531, 16533, 
-};
-
-static const unsigned short dep108[] = {
-  15, 97, 210, 211, 282, 22646, 22647, 22648, 22650, 22651, 22653, 22654, 
22824, 
-  22827, 22828, 22831, 22832, 22835, 22836, 
-};
-
-static const unsigned short dep109[] = {
-  11, 19, 20, 40, 41, 97, 158, 162, 175, 185, 210, 212, 282, 2135, 2136, 2137, 
-  2166, 2167, 2170, 2173, 4135, 16528, 16530, 16531, 16533, 22824, 22827, 
22828, 
-  22831, 22832, 22835, 22836, 
-};
-
-static const unsigned short dep110[] = {
-  15, 16, 17, 18, 97, 210, 211, 213, 214, 216, 217, 219, 220, 282, 22646, 
22647, 
-  22648, 22650, 22651, 22653, 22654, 22824, 22827, 22828, 22831, 22832, 22835, 
-  22836, 
-};
-
-static const unsigned short dep111[] = {
-  11, 12, 13, 14, 19, 20, 40, 41, 97, 158, 162, 175, 185, 210, 212, 213, 215, 
-  216, 218, 219, 221, 282, 2135, 2136, 2137, 2166, 2167, 2170, 2173, 4135, 
16528, 
-  16530, 16531, 16533, 22824, 22827, 22828, 22831, 22832, 22835, 22836, 
-};
-
-static const unsigned short dep112[] = {
-  16, 97, 213, 214, 282, 22646, 22647, 22648, 22650, 22651, 22653, 22654, 
22824, 
-  22827, 22828, 22831, 22832, 22835, 22836, 
-};
-
-static const unsigned short dep113[] = {
-  12, 19, 20, 40, 41, 97, 158, 162, 175, 185, 213, 215, 282, 2135, 2136, 2137, 
-  2166, 2167, 2170, 2173, 4135, 16528, 16530, 16531, 16533, 22824, 22827, 
22828, 
-  22831, 22832, 22835, 22836, 
-};
-
-static const unsigned short dep114[] = {
-  17, 97, 216, 217, 282, 22646, 22647, 22648, 22650, 22651, 22653, 22654, 
22824, 
-  22827, 22828, 22831, 22832, 22835, 22836, 
-};
-
-static const unsigned short dep115[] = {
-  13, 19, 20, 40, 41, 97, 158, 162, 175, 185, 216, 218, 282, 2135, 2136, 2137, 
-  2166, 2167, 2170, 2173, 4135, 16528, 16530, 16531, 16533, 22824, 22827, 
22828, 
-  22831, 22832, 22835, 22836, 
-};
-
-static const unsigned short dep116[] = {
-  18, 97, 219, 220, 282, 22646, 22647, 22648, 22650, 22651, 22653, 22654, 
22824, 
-  22827, 22828, 22831, 22832, 22835, 22836, 
-};
-
-static const unsigned short dep117[] = {
-  14, 19, 20, 40, 41, 97, 158, 162, 175, 185, 219, 221, 282, 2135, 2136, 2137, 
-  2166, 2167, 2170, 2173, 4135, 16528, 16530, 16531, 16533, 22824, 22827, 
22828, 
-  22831, 22832, 22835, 22836, 
-};
-
-static const unsigned short dep118[] = {
-  97, 282, 2166, 2167, 2168, 2170, 2171, 2173, 2174, 2344, 2347, 2348, 2351, 
-  2352, 2355, 2356, 
-};
-
-static const unsigned short dep119[] = {
-  40, 41, 97, 158, 162, 175, 185, 282, 2135, 2136, 2137, 2166, 2167, 2170, 
2173, 
-  2344, 2347, 2348, 2351, 2352, 2355, 2356, 4135, 16528, 16530, 16531, 16533, 
-  
-};
-
-static const unsigned short dep120[] = {
-  97, 282, 22646, 22647, 22648, 22650, 22651, 22653, 22654, 22824, 22827, 
22828, 
-  22831, 22832, 22835, 22836, 
-};
-
-static const unsigned short dep121[] = {
-  40, 41, 97, 158, 162, 175, 185, 282, 2135, 2136, 2137, 2166, 2167, 2170, 
2173, 
-  4135, 16528, 16530, 16531, 16533, 22824, 22827, 22828, 22831, 22832, 22835, 
-  22836, 
-};
-
-static const unsigned short dep122[] = {
-  19, 20, 40, 41, 97, 158, 162, 175, 185, 282, 2135, 2136, 2137, 2166, 2167, 
-  2170, 2173, 2325, 4135, 16528, 16530, 16531, 16533, 18761, 18763, 18764, 
18766, 
-  
-};
-
-static const unsigned short dep123[] = {
-  40, 41, 97, 158, 162, 164, 175, 185, 186, 188, 282, 2138, 2139, 2140, 2166, 
-  2167, 2170, 2173, 4135, 20616, 
-};
-
-static const unsigned short dep124[] = {
-  97, 282, 2083, 2084, 2286, 2287, 
-};
-
-static const unsigned short dep125[] = {
-  40, 41, 97, 158, 162, 175, 185, 282, 2138, 2139, 2140, 2166, 2167, 2170, 
2173, 
-  2285, 2287, 4135, 20616, 
-};
-
-static const unsigned short dep126[] = {
-  40, 41, 97, 158, 162, 175, 185, 282, 2082, 2084, 2166, 2167, 2170, 2173, 
2327, 
-  4135, 20616, 
-};
-
-static const unsigned short dep127[] = {
-  97, 282, 14455, 14457, 14458, 14460, 14461, 14463, 14635, 14636, 14639, 
14640, 
-  14643, 14644, 
-};
-
-static const unsigned short dep128[] = {
-  40, 41, 97, 158, 162, 175, 185, 282, 2138, 2139, 2140, 4135, 14635, 14636, 
-  14639, 14640, 14643, 14644, 20616, 24694, 24695, 24698, 24701, 
-};
-
-static const unsigned short dep129[] = {
-  97, 122, 124, 125, 127, 282, 303, 304, 307, 308, 
-};
-
-static const unsigned short dep130[] = {
-  40, 41, 97, 158, 162, 175, 185, 282, 303, 304, 307, 308, 4135, 24694, 24695, 
-  24698, 24701, 
-};
-
-static const unsigned short dep131[] = {
-  40, 41, 97, 158, 162, 175, 185, 282, 2166, 2167, 2170, 2173, 2327, 4135, 
20616, 
-  
-};
-
-static const unsigned short dep132[] = {
-  40, 41, 97, 119, 122, 125, 158, 162, 175, 185, 282, 2327, 4135, 20616, 
24694, 
-  
-};
-
-static const unsigned short dep133[] = {
-  6, 24, 26, 27, 97, 201, 227, 230, 282, 2081, 2284, 
-};
-
-static const unsigned short dep134[] = {
-  40, 41, 97, 158, 162, 175, 185, 201, 227, 229, 282, 2138, 2139, 2140, 2166, 
-  2167, 2170, 2173, 2284, 4135, 20616, 
-};
-
-static const unsigned short dep135[] = {
-  6, 24, 25, 26, 40, 41, 97, 158, 162, 175, 185, 282, 2081, 2166, 2167, 2170, 
-  2173, 2327, 4135, 20616, 
-};
-
-static const unsigned short dep136[] = {
-  40, 41, 97, 158, 162, 175, 185, 282, 2166, 2167, 2170, 2173, 2344, 2347, 
2348, 
-  2351, 2352, 2355, 2356, 4135, 
-};
-
-static const unsigned short dep137[] = {
-  40, 41, 97, 158, 162, 175, 185, 282, 2166, 2167, 2170, 2173, 4135, 22824, 
-  22827, 22828, 22831, 22832, 22835, 22836, 
-};
-
-static const unsigned short dep138[] = {
-  40, 41, 97, 158, 162, 175, 185, 282, 2166, 2167, 2170, 2173, 2344, 2345, 
2348, 
-  2349, 2352, 2353, 2356, 4135, 
-};
-
-static const unsigned short dep139[] = {
-  40, 41, 97, 158, 162, 175, 185, 282, 2166, 2167, 2170, 2173, 2344, 2346, 
2347, 
-  2350, 2351, 2354, 2355, 4135, 
-};
-
-static const unsigned short dep140[] = {
-  40, 41, 97, 158, 162, 175, 185, 282, 2166, 2167, 2170, 2173, 2344, 2345, 
2346, 
-  2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 4135, 
-};
-
-static const unsigned short dep141[] = {
-  0, 40, 41, 97, 158, 162, 164, 175, 185, 186, 188, 282, 2166, 2167, 2170, 
2173, 
-  4135, 
-};
-
-static const unsigned short dep142[] = {
-  0, 97, 195, 282, 
-};
-
-static const unsigned short dep143[] = {
-  0, 40, 41, 97, 158, 162, 164, 175, 185, 186, 188, 195, 282, 2166, 2167, 
2170, 
-  2173, 4135, 
-};
-
-static const unsigned short dep144[] = {
-  40, 41, 97, 158, 162, 175, 185, 195, 282, 2166, 2167, 2170, 2173, 4135, 
-};
-
-static const unsigned short dep145[] = {
-  2, 28, 97, 197, 231, 282, 28866, 29018, 
-};
-
-static const unsigned short dep146[] = {
-  1, 2, 28, 29, 97, 158, 162, 175, 177, 178, 185, 197, 231, 282, 28866, 29018, 
-  
-};
-
-static const unsigned short dep147[] = {
-  1, 28, 29, 38, 40, 41, 97, 158, 162, 175, 177, 178, 185, 197, 231, 282, 
4135, 
-  28866, 29018, 
-};
-
-static const unsigned short dep148[] = {
-  0, 40, 41, 97, 158, 162, 175, 185, 195, 282, 2166, 2167, 2170, 2173, 4135, 
-  
-};
-
-static const unsigned short dep149[] = {
-  1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 
-  28, 29, 30, 31, 97, 196, 197, 198, 199, 200, 202, 203, 204, 205, 206, 207, 
-  208, 209, 211, 212, 214, 215, 217, 218, 220, 221, 222, 223, 224, 225, 231, 
-  232, 233, 234, 282, 2071, 2081, 2274, 2284, 28866, 29018, 
-};
-
-static const unsigned short dep150[] = {
-  29, 40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 196, 197, 198, 199, 
-  200, 202, 203, 204, 205, 206, 207, 208, 209, 211, 212, 214, 215, 217, 218, 
-  220, 221, 222, 223, 224, 225, 231, 232, 233, 234, 282, 2138, 2139, 2140, 
2166, 
-  2167, 2170, 2173, 2274, 2284, 4135, 20616, 28866, 29018, 
-};
-
-static const unsigned short dep151[] = {
-  97, 282, 14464, 14466, 14468, 14470, 14505, 14506, 14525, 14645, 14646, 
14666, 
-  14667, 14669, 14670, 14679, 
-};
-
-static const unsigned short dep152[] = {
-  40, 41, 97, 158, 162, 175, 183, 184, 185, 282, 2166, 2167, 2170, 2173, 4135, 
-  14645, 14646, 14666, 14667, 14669, 14670, 14679, 
-};
-
-static const unsigned short dep153[] = {
-  14464, 14466, 14468, 14470, 14505, 14506, 14525, 14645, 14646, 14666, 14667, 
-  14669, 14670, 14679, 
-};
-
-static const unsigned short dep154[] = {
-  183, 184, 14645, 14646, 14666, 14667, 14669, 14670, 14679, 
-};
-
-static const unsigned short dep155[] = {
-  97, 282, 14465, 14466, 14469, 14470, 14480, 14481, 14483, 14484, 14486, 
14487, 
-  14489, 14490, 14493, 14495, 14496, 14505, 14506, 14507, 14508, 14510, 14515, 
-  14516, 14518, 14519, 14525, 14645, 14646, 14652, 14653, 14654, 14655, 14657, 
-  14659, 14666, 14667, 14669, 14670, 14671, 14672, 14675, 14676, 14679, 
-};
-
-static const unsigned short dep156[] = {
-  40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 2166, 2167, 2170, 
-  2173, 4135, 14645, 14646, 14652, 14653, 14654, 14655, 14657, 14659, 14666, 
-  14667, 14669, 14670, 14671, 14672, 14675, 14676, 14679, 34888, 
-};
-
-static const unsigned short dep157[] = {
-  40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 2166, 2167, 2170, 
-  2173, 4135, 14645, 14646, 14652, 14653, 14654, 14655, 14657, 14659, 14666, 
-  14667, 14669, 14670, 14671, 14672, 14675, 14676, 14679, 
-};
-
-static const unsigned short dep158[] = {
-  1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 
-  28, 29, 30, 31, 40, 41, 97, 137, 138, 158, 162, 175, 180, 181, 185, 190, 
191, 
-  282, 2071, 2081, 2166, 2167, 2170, 2173, 2327, 4135, 20616, 28866, 
-};
-
-static const unsigned short dep159[] = {
-  43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63, 
-  64, 65, 67, 69, 70, 71, 72, 73, 94, 96, 97, 243, 244, 245, 246, 247, 248, 
-  249, 250, 251, 252, 253, 255, 256, 257, 258, 259, 261, 263, 264, 265, 281, 
-  282, 2116, 2310, 
-};
-
-static const unsigned short dep160[] = {
-  40, 41, 96, 97, 137, 138, 158, 160, 161, 162, 175, 185, 190, 191, 243, 244, 
-  245, 246, 247, 248, 249, 250, 251, 252, 253, 255, 256, 257, 258, 259, 261, 
-  263, 264, 265, 281, 282, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 2310, 
4135, 
-  20616, 
-};
-
-static const unsigned short dep161[] = {
-  59, 95, 97, 254, 281, 282, 2140, 2327, 
-};
-
-static const unsigned short dep162[] = {
-  40, 41, 43, 44, 46, 48, 49, 51, 52, 53, 54, 56, 57, 60, 61, 63, 64, 65, 66, 
-  67, 69, 70, 71, 94, 95, 97, 137, 138, 158, 160, 161, 162, 175, 185, 190, 
191, 
-  254, 281, 282, 2107, 2116, 2166, 2167, 2170, 2173, 2327, 4135, 20616, 
-};
-
-static const unsigned short dep163[] = {
-  2, 28, 41, 97, 197, 231, 241, 282, 2140, 2327, 28866, 29018, 
-};
-
-static const unsigned short dep164[] = {
-  2, 25, 26, 28, 29, 38, 40, 41, 97, 158, 162, 175, 177, 178, 185, 197, 231, 
-  241, 282, 2327, 4135, 20616, 28866, 29018, 
-};
-
-static const unsigned short dep165[] = {
-  97, 129, 130, 133, 134, 140, 141, 144, 145, 147, 148, 150, 151, 153, 154, 
-  157, 159, 160, 165, 166, 169, 170, 171, 172, 174, 176, 177, 179, 180, 182, 
-  183, 186, 187, 189, 282, 309, 310, 314, 316, 317, 318, 319, 321, 323, 327, 
-  330, 331, 333, 334, 335, 336, 338, 339, 340, 342, 343, 
-};
-
-static const unsigned short dep166[] = {
-  40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 309, 310, 314, 316, 
-  317, 318, 319, 321, 323, 327, 330, 331, 333, 334, 335, 336, 338, 339, 340, 
-  342, 343, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 4135, 20616, 34888, 
-};
-
-static const unsigned short dep167[] = {
-  97, 128, 130, 132, 134, 169, 170, 189, 282, 309, 310, 330, 331, 333, 334, 
-  343, 
-};
-
-static const unsigned short dep168[] = {
-  40, 41, 97, 158, 162, 175, 183, 184, 185, 282, 309, 310, 330, 331, 333, 334, 
-  343, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 4135, 20616, 
-};
-
-static const unsigned short dep169[] = {
-  40, 41, 97, 130, 131, 134, 135, 137, 138, 141, 142, 145, 146, 148, 149, 151, 
-  152, 154, 155, 157, 158, 159, 161, 162, 164, 165, 167, 168, 169, 170, 172, 
-  173, 174, 175, 176, 178, 179, 181, 182, 184, 185, 187, 188, 189, 190, 191, 
-  282, 2166, 2167, 2170, 2173, 2327, 4135, 20616, 
-};
-
-static const unsigned short dep170[] = {
-  40, 41, 97, 130, 131, 134, 135, 158, 162, 169, 170, 175, 185, 189, 282, 
2166, 
-  2167, 2170, 2173, 2327, 4135, 20616, 
-};
-
-static const unsigned short dep171[] = {
-  40, 41, 70, 76, 77, 82, 84, 97, 111, 137, 138, 153, 155, 158, 162, 171, 173, 
-  175, 185, 192, 282, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 2327, 4135, 
-  20616, 
-};
-
-static const unsigned short dep172[] = {
-  40, 41, 70, 76, 77, 82, 84, 97, 111, 137, 138, 139, 140, 142, 143, 153, 155, 
-  158, 162, 171, 173, 175, 185, 192, 282, 2138, 2139, 2140, 2166, 2167, 2170, 
-  2173, 4135, 20616, 
-};
-
-static const unsigned short dep173[] = {
-  77, 78, 97, 101, 102, 269, 270, 282, 284, 285, 
-};
-
-static const unsigned short dep174[] = {
-  40, 41, 47, 62, 78, 80, 86, 97, 99, 102, 137, 138, 158, 160, 161, 162, 175, 
-  185, 190, 191, 192, 269, 270, 282, 284, 285, 2138, 2139, 2140, 2166, 2167, 
-  2170, 2173, 4135, 20616, 
-};
-
-static const unsigned short dep175[] = {
-  40, 41, 47, 62, 78, 80, 97, 99, 102, 104, 106, 137, 138, 158, 160, 161, 162, 
-  175, 185, 190, 191, 192, 269, 270, 282, 284, 285, 2138, 2139, 2140, 2166, 
-  2167, 2170, 2173, 4135, 20616, 
-};
-
-static const unsigned short dep176[] = {
-  97, 282, 12480, 12481, 12633, 
-};
-
-static const unsigned short dep177[] = {
-  40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 2138, 2139, 2140, 
-  2166, 2167, 2170, 2173, 4135, 12633, 20616, 
-};
-
-static const unsigned short dep178[] = {
-  97, 282, 6219, 6220, 6411, 
-};
-
-static const unsigned short dep179[] = {
-  40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 2138, 2139, 2140, 
-  2166, 2167, 2170, 2173, 4135, 6411, 20616, 
-};
-
-static const unsigned short dep180[] = {
-  97, 282, 6237, 6424, 
-};
-
-static const unsigned short dep181[] = {
-  40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 2138, 2139, 2140, 
-  2166, 2167, 2170, 2173, 4135, 6424, 20616, 
-};
-
-static const unsigned short dep182[] = {
-  97, 282, 6255, 6256, 6257, 6258, 6435, 6437, 8484, 
-};
-
-static const unsigned short dep183[] = {
-  40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 2138, 2139, 2140, 
-  2166, 2167, 2170, 2173, 4135, 6258, 6436, 6437, 8304, 8483, 20616, 
-};
-
-static const unsigned short dep184[] = {
-  97, 282, 6259, 6260, 6438, 
-};
-
-static const unsigned short dep185[] = {
-  40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 2138, 2139, 2140, 
-  2166, 2167, 2170, 2173, 4135, 6438, 20616, 
-};
-
-static const unsigned short dep186[] = {
-  97, 282, 6261, 6439, 
-};
-
-static const unsigned short dep187[] = {
-  40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 2138, 2139, 2140, 
-  2166, 2167, 2170, 2173, 4135, 6439, 20616, 
-};
-
-static const unsigned short dep188[] = {
-  97, 282, 10350, 10530, 
-};
-
-static const unsigned short dep189[] = {
-  40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 2138, 2139, 2140, 
-  2166, 2167, 2170, 2173, 4135, 10530, 20616, 
-};
-
-static const unsigned short dep190[] = {
-  77, 78, 82, 83, 97, 101, 102, 269, 270, 272, 273, 282, 284, 285, 
-};
-
-static const unsigned short dep191[] = {
-  40, 41, 47, 62, 78, 80, 83, 86, 97, 99, 102, 137, 138, 158, 160, 161, 162, 
-  175, 185, 190, 191, 192, 269, 270, 272, 274, 282, 284, 285, 2138, 2139, 
2140, 
-  2166, 2167, 2170, 2173, 4135, 20616, 
-};
-
-static const unsigned short dep192[] = {
-  77, 78, 97, 101, 102, 104, 105, 269, 270, 282, 284, 285, 286, 287, 
-};
-
-static const unsigned short dep193[] = {
-  40, 41, 47, 62, 78, 80, 97, 99, 102, 104, 106, 137, 138, 158, 160, 161, 162, 
-  175, 185, 190, 191, 192, 269, 270, 282, 284, 285, 286, 287, 2138, 2139, 
2140, 
-  2166, 2167, 2170, 2173, 4135, 20616, 
-};
-
-static const unsigned short dep194[] = {
-  40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 2138, 2139, 2140, 
-  2166, 2167, 2170, 2173, 2327, 4135, 12481, 20616, 
-};
-
-static const unsigned short dep195[] = {
-  40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 2138, 2139, 2140, 
-  2166, 2167, 2170, 2173, 2327, 4135, 6219, 20616, 
-};
-
-static const unsigned short dep196[] = {
-  40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 2138, 2139, 2140, 
-  2166, 2167, 2170, 2173, 2327, 4135, 6237, 20616, 
-};
-
-static const unsigned short dep197[] = {
-  40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 2138, 2139, 2140, 
-  2166, 2167, 2170, 2173, 2327, 4135, 6257, 8303, 20616, 
-};
-
-static const unsigned short dep198[] = {
-  40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 2138, 2139, 2140, 
-  2166, 2167, 2170, 2173, 2327, 4135, 6259, 20616, 
-};
-
-static const unsigned short dep199[] = {
-  40, 41, 97, 137, 138, 158, 162, 175, 183, 184, 185, 282, 2138, 2139, 2140, 
-  2166, 2167, 2170, 2173, 2327, 4135, 6260, 6261, 20616, 
-};
-
-static const unsigned short dep200[] = {
-  40, 41, 97, 158, 162, 175, 185, 282, 2138, 2139, 2140, 2166, 2167, 2170, 
2173, 
-  2327, 4135, 10350, 20616, 
-};
-
-static const unsigned short dep201[] = {
-  40, 41, 97, 158, 162, 175, 185, 190, 191, 282, 2138, 2139, 2140, 2166, 2167, 
-  2170, 2173, 2327, 4135, 6186, 20616, 
-};
-
-static const unsigned short dep202[] = {
-  77, 79, 80, 97, 98, 99, 100, 268, 269, 282, 283, 284, 
-};
-
-static const unsigned short dep203[] = {
-  40, 41, 78, 79, 83, 85, 97, 100, 102, 104, 107, 137, 138, 158, 162, 175, 
185, 
-  190, 191, 192, 268, 270, 282, 283, 285, 2138, 2139, 2140, 2166, 2167, 2170, 
-  2173, 4135, 20616, 
-};
-
-static const unsigned short dep204[] = {
-  77, 79, 80, 81, 97, 98, 99, 100, 103, 268, 269, 271, 282, 283, 284, 
-};
-
-static const unsigned short dep205[] = {
-  40, 41, 78, 79, 81, 83, 85, 97, 100, 102, 103, 104, 107, 137, 138, 158, 162, 
-  175, 185, 190, 191, 192, 268, 270, 271, 282, 283, 285, 2138, 2139, 2140, 
2166, 
-  2167, 2170, 2173, 4135, 20616, 
-};
-
-static const unsigned short dep206[] = {
-  77, 79, 80, 84, 85, 86, 97, 98, 99, 100, 268, 269, 274, 275, 282, 283, 284, 
-  
-};

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.