ia64/xen-unstable

changeset 4703:d061c29af8d7

bitkeeper revision 1.1327.1.11 (42716283nLvDhTYM3QOqDMa-wZuJHQ)

More code cleanup
author djm@kirby.fc.hp.com
date Thu Apr 28 22:24:03 2005 +0000 (2005-04-28)
parents 632f2e07883a
children 4db173f346dd
files .rootkeys xen/arch/ia64/Makefile xen/arch/ia64/patch/linux-2.6.11/current.h xen/arch/ia64/patch/linux-2.6.11/hardirq.h xen/arch/ia64/patch/linux-2.6.11/hpsim_irq.c xen/arch/ia64/patch/linux-2.6.11/irq.h xen/arch/ia64/patch/linux-2.6.11/kernel-time.c xen/arch/ia64/patch/linux-2.6.11/linuxextable.c xen/arch/ia64/patch/linux-2.6.11/linuxtime.h xen/arch/ia64/patch/linux-2.6.11/mm_contig.c xen/arch/ia64/patch/linux-2.6.11/mmzone.h xen/arch/ia64/patch/linux-2.6.11/sal.h xen/arch/ia64/patch/linux-2.6.11/slab.h xen/arch/ia64/patch/linux-2.6.11/unaligned.c xen/arch/ia64/patch/linux-2.6.11/wait.h xen/arch/ia64/tools/mkbuildtree xen/arch/ia64/xenmem.c xen/arch/ia64/xenmisc.c
line diff
     1.1 --- a/.rootkeys	Thu Apr 28 20:54:13 2005 +0000
     1.2 +++ b/.rootkeys	Thu Apr 28 22:24:03 2005 +0000
     1.3 @@ -1082,43 +1082,32 @@ 421098b3Heh72KuoVlND3CH6c0B0aA xen/arch/
     1.4  421098b3O0MYMUsmYVFy84VV_1gFwQ xen/arch/ia64/mm_init.c
     1.5  425ae516skiHBZU-Kfwxv2YWXfNRWQ xen/arch/ia64/patch/linux-2.6.11/bootmem.h
     1.6  425ae516maKAsHBJVSzs19cdRgt3Nw xen/arch/ia64/patch/linux-2.6.11/cpumask.h
     1.7 -425ae516rHybgKj6KsvBOE0c_Hruxg xen/arch/ia64/patch/linux-2.6.11/current.h
     1.8  425ae516cGqvMzGtihTEsQXAXsuOhQ xen/arch/ia64/patch/linux-2.6.11/efi.c
     1.9  425ae516Y1A4q4_Kfre3qnDj7lbHJg xen/arch/ia64/patch/linux-2.6.11/entry.S
    1.10 -425ae516RoFheL-Ua-EOtFqmLxoc9g xen/arch/ia64/patch/linux-2.6.11/hardirq.h
    1.11  425ae516PDO1ESDHXHVeDNvlqUfmdQ xen/arch/ia64/patch/linux-2.6.11/head.S
    1.12 -425ae5163aiWdc1IZNsON6ruE2-n9g xen/arch/ia64/patch/linux-2.6.11/hpsim_irq.c
    1.13  425ae516JR7HWvt1zxJ-wLvEWmJGgg xen/arch/ia64/patch/linux-2.6.11/hpsim_ssc.h
    1.14  425ae516AHRNmaVuZjJY-9YjmKRDqg xen/arch/ia64/patch/linux-2.6.11/interrupt.h
    1.15  425ae516U2wFUzrUJQUpy3z38jZHsQ xen/arch/ia64/patch/linux-2.6.11/io.h
    1.16 -425ae516nXL2iTzpziIaSLi3N257qQ xen/arch/ia64/patch/linux-2.6.11/irq.h
    1.17  425ae516GGRmXijPBLC5ii6yWOn0rg xen/arch/ia64/patch/linux-2.6.11/irq_ia64.c
    1.18  425ae516qQA5dHuIybqfN3nEzM_Zvg xen/arch/ia64/patch/linux-2.6.11/ivt.S
    1.19 -425ae516_UhrTa3Y8wDG7fTgX6pNYA xen/arch/ia64/patch/linux-2.6.11/kernel-time.c
    1.20  425ae516atiECmpn_6nZDw4kkmbJ6g xen/arch/ia64/patch/linux-2.6.11/kregs.h
    1.21  425ae516lwlYwHG1Jv93kC3tfU5caw xen/arch/ia64/patch/linux-2.6.11/lds.S
    1.22 -425ae516UGTH2xC56DEIlHSrPH4oxg xen/arch/ia64/patch/linux-2.6.11/linuxextable.c
    1.23  425ae516txAP-owjzpTJ7ThfzWR8nw xen/arch/ia64/patch/linux-2.6.11/linuxhardirq.h
    1.24 -425ae516kNsO5yYnBHvAISdvCkQ2-g xen/arch/ia64/patch/linux-2.6.11/linuxtime.h
    1.25  425ae516Je2zI-Iw30_uGhvUYdlCZQ xen/arch/ia64/patch/linux-2.6.11/mca_asm.h
    1.26  425ae5160-9wHxh0tOnIjavEjt6W0A xen/arch/ia64/patch/linux-2.6.11/minstate.h
    1.27  425ae516N7SaORdbodDr90tmtCzYXw xen/arch/ia64/patch/linux-2.6.11/mm_contig.c
    1.28 -425ae516YcBgoZ3xCTEmhCrgX8CjCA xen/arch/ia64/patch/linux-2.6.11/mmzone.h
    1.29  425ae516WDLrfEA4zr40d00z0VIWPg xen/arch/ia64/patch/linux-2.6.11/page.h
    1.30  425ae516pVQ75NhdItT593SiWI0lbQ xen/arch/ia64/patch/linux-2.6.11/pal.S
    1.31  425ae516QfmjiF_a-mabAXqV8Imzkg xen/arch/ia64/patch/linux-2.6.11/pgalloc.h
    1.32  425ae516EWaNOBEnc1xnphTbRmNZsw xen/arch/ia64/patch/linux-2.6.11/processor.h
    1.33 -425ae5165sks4NwRldZOV_p63fspYw xen/arch/ia64/patch/linux-2.6.11/sal.h
    1.34  425ae516LecDyXlwh3NLBtHZKXmMcA xen/arch/ia64/patch/linux-2.6.11/series
    1.35  425ae516RFiPn2CGkpJ21LM-1lJcQg xen/arch/ia64/patch/linux-2.6.11/setup.c
    1.36 -425ae516-xgihgqPEv-Aq8-9cNoCXg xen/arch/ia64/patch/linux-2.6.11/slab.h
    1.37  425ae516FX_10YaKGMU8Ysf7kkdm_A xen/arch/ia64/patch/linux-2.6.11/swiotlb.c
    1.38  425ae516p4ICTkjqNYEfYFxqULj4dw xen/arch/ia64/patch/linux-2.6.11/system.h
    1.39  425ae516juUB257qrwUdsL9AsswrqQ xen/arch/ia64/patch/linux-2.6.11/time.c
    1.40  425ae5167zQn7zYcgKtDUDX2v-e8mw xen/arch/ia64/patch/linux-2.6.11/tlb.c
    1.41  425ae5162bIl2Dgd19x-FceB4L9oGw xen/arch/ia64/patch/linux-2.6.11/types.h
    1.42  425ae516cFUNY2jHD46bujcF5NJheA xen/arch/ia64/patch/linux-2.6.11/unaligned.c
    1.43 -425ae516viTtlyQjWHf6kBmq8KcwiQ xen/arch/ia64/patch/linux-2.6.11/wait.h
    1.44  421098b39QFMC-1t1r38CA7NxAYBPA xen/arch/ia64/patch/linux-2.6.7/bootmem.h
    1.45  421098b3SIA1vZX9fFUjo1T3o_jMCQ xen/arch/ia64/patch/linux-2.6.7/current.h
    1.46  421098b3ZBl80iPuSeDU_Id5AgZl0w xen/arch/ia64/patch/linux-2.6.7/efi.c
    1.47 @@ -1179,6 +1168,7 @@ 4252ace74lKUPFnO8PmF0Dtpk7Xkng xen/arch/
    1.48  41a26ebc--sjlYZQxmIxyCx3jw70qA xen/arch/ia64/vcpu.c
    1.49  421098b6M2WhsJ_ZMzFamAQcdc5gzw xen/arch/ia64/vhpt.c
    1.50  41a26ebc4jSBGQOuyNIPDST58mNbBw xen/arch/ia64/xenasm.S
    1.51 +427162263zDUiPmTj-lP4eGyXs5eIg xen/arch/ia64/xenmem.c
    1.52  421098b6mWyFPtkhPz9h1LCmKpoCLg xen/arch/ia64/xenmisc.c
    1.53  421098b6lY2JzrV1oFDbrt7XQhtElg xen/arch/ia64/xensetup.c
    1.54  3ddb79bcZbRBzT3elFWSX7u6NtMagQ xen/arch/x86/Makefile
     2.1 --- a/xen/arch/ia64/Makefile	Thu Apr 28 20:54:13 2005 +0000
     2.2 +++ b/xen/arch/ia64/Makefile	Thu Apr 28 22:24:03 2005 +0000
     2.3 @@ -6,7 +6,7 @@ OBJS = xensetup.o setup.o time.o irq.o i
     2.4  	xenmisc.o pdb-stub.o acpi.o hypercall.o \
     2.5  	machvec.o dom0_ops.o domain.o \
     2.6  	idle0_task.o pal.o hpsim.o efi.o efi_stub.o ivt.o mm_contig.o \
     2.7 -	sal.o cmdline.o mm_init.o tlb.o smpboot.o \
     2.8 +	xenmem.o sal.o cmdline.o mm_init.o tlb.o smpboot.o \
     2.9  	extable.o linuxextable.o \
    2.10  	regionreg.o entry.o unaligned.o privop.o vcpu.o \
    2.11  	irq_ia64.o irq_lsapic.o vhpt.o xenasm.o dom_fw.o
     3.1 --- a/xen/arch/ia64/patch/linux-2.6.11/current.h	Thu Apr 28 20:54:13 2005 +0000
     3.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.3 @@ -1,22 +0,0 @@
     3.4 - current.h |    8 ++++++++
     3.5 - 1 files changed, 8 insertions(+)
     3.6 -
     3.7 -Index: linux-2.6.11/include/asm-ia64/current.h
     3.8 -===================================================================
     3.9 ---- linux-2.6.11.orig/include/asm-ia64/current.h	2005-03-02 01:38:19.000000000 -0600
    3.10 -+++ linux-2.6.11/include/asm-ia64/current.h	2005-03-19 12:39:41.410955288 -0600
    3.11 -@@ -12,6 +12,14 @@
    3.12 -  * In kernel mode, thread pointer (r13) is used to point to the current task
    3.13 -  * structure.
    3.14 -  */
    3.15 -+#ifdef XEN
    3.16 -+struct domain;
    3.17 -+#define get_current()	((struct exec_domain *) ia64_getreg(_IA64_REG_TP))
    3.18 -+#define current get_current()
    3.19 -+//#define set_current(d)	ia64_setreg(_IA64_REG_TP,(void *)d);
    3.20 -+#define set_current(d)		(ia64_r13 = (void *)d)
    3.21 -+#else
    3.22 - #define current	((struct task_struct *) ia64_getreg(_IA64_REG_TP))
    3.23 -+#endif
    3.24 - 
    3.25 - #endif /* _ASM_IA64_CURRENT_H */
     4.1 --- a/xen/arch/ia64/patch/linux-2.6.11/hardirq.h	Thu Apr 28 20:54:13 2005 +0000
     4.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.3 @@ -1,15 +0,0 @@
     4.4 - hardirq.h |    1 +
     4.5 - 1 files changed, 1 insertion(+)
     4.6 -
     4.7 -Index: linux-2.6.11-xendiffs/include/asm-ia64/hardirq.h
     4.8 -===================================================================
     4.9 ---- linux-2.6.11-xendiffs.orig/include/asm-ia64/hardirq.h	2005-03-24 15:59:37.210502749 -0600
    4.10 -+++ linux-2.6.11-xendiffs/include/asm-ia64/hardirq.h	2005-03-24 16:00:19.439540961 -0600
    4.11 -@@ -20,6 +20,7 @@
    4.12 - #define __ARCH_IRQ_STAT	1
    4.13 - 
    4.14 - #define local_softirq_pending()		(local_cpu_data->softirq_pending)
    4.15 -+#define softirq_pending(cpu)			(cpu_data(cpu)->softirq_pending)
    4.16 - 
    4.17 - #define HARDIRQ_BITS	14
    4.18 - 
     5.1 --- a/xen/arch/ia64/patch/linux-2.6.11/hpsim_irq.c	Thu Apr 28 20:54:13 2005 +0000
     5.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.3 @@ -1,41 +0,0 @@
     5.4 - hpsim_irq.c |   15 +++++++++++++++
     5.5 - 1 files changed, 15 insertions(+)
     5.6 -
     5.7 -Index: linux-2.6.11/arch/ia64/hp/sim/hpsim_irq.c
     5.8 -===================================================================
     5.9 ---- linux-2.6.11.orig/arch/ia64/hp/sim/hpsim_irq.c	2005-03-02 01:38:33.000000000 -0600
    5.10 -+++ linux-2.6.11/arch/ia64/hp/sim/hpsim_irq.c	2005-03-19 13:33:57.312014806 -0600
    5.11 -@@ -9,7 +9,17 @@
    5.12 - #include <linux/kernel.h>
    5.13 - #include <linux/sched.h>
    5.14 - #include <linux/irq.h>
    5.15 -+#ifdef XEN
    5.16 -+#include <asm/hw_irq.h>
    5.17 -+#endif
    5.18 - 
    5.19 -+#if 1
    5.20 -+void __init
    5.21 -+hpsim_irq_init (void)
    5.22 -+{
    5.23 -+	printf("*** hpsim_irq_init called: NOT NEEDED?!?!?\n");
    5.24 -+}
    5.25 -+#else
    5.26 - static unsigned int
    5.27 - hpsim_irq_startup (unsigned int irq)
    5.28 - {
    5.29 -@@ -19,6 +29,10 @@ hpsim_irq_startup (unsigned int irq)
    5.30 - static void
    5.31 - hpsim_irq_noop (unsigned int irq)
    5.32 - {
    5.33 -+#if 1
    5.34 -+printf("hpsim_irq_noop: irq=%d\n",irq);
    5.35 -+while(irq);
    5.36 -+#endif
    5.37 - }
    5.38 - 
    5.39 - static void
    5.40 -@@ -49,3 +63,4 @@ hpsim_irq_init (void)
    5.41 - 			idesc->handler = &irq_type_hp_sim;
    5.42 - 	}
    5.43 - }
    5.44 -+#endif
     6.1 --- a/xen/arch/ia64/patch/linux-2.6.11/irq.h	Thu Apr 28 20:54:13 2005 +0000
     6.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.3 @@ -1,23 +0,0 @@
     6.4 - irq.h |    9 +++++++++
     6.5 - 1 files changed, 9 insertions(+)
     6.6 -
     6.7 -Index: linux-2.6.11/include/asm-ia64/irq.h
     6.8 -===================================================================
     6.9 ---- linux-2.6.11.orig/include/asm-ia64/irq.h	2005-03-02 01:38:33.000000000 -0600
    6.10 -+++ linux-2.6.11/include/asm-ia64/irq.h	2005-03-19 13:42:27.957677364 -0600
    6.11 -@@ -30,6 +30,15 @@ extern void disable_irq_nosync (unsigned
    6.12 - extern void enable_irq (unsigned int);
    6.13 - extern void set_irq_affinity_info (unsigned int irq, int dest, int redir);
    6.14 - 
    6.15 -+#ifdef XEN
    6.16 -+// dup'ed from signal.h to avoid changes to includes
    6.17 -+#define	SA_NOPROFILE	0x02000000
    6.18 -+#define	SA_SHIRQ	0x04000000
    6.19 -+#define	SA_RESTART	0x10000000
    6.20 -+#define	SA_INTERRUPT	0x20000000
    6.21 -+#define	SA_SAMPLE_RANDOM	SA_RESTART
    6.22 -+#endif
    6.23 -+
    6.24 - #ifdef CONFIG_SMP
    6.25 - extern void move_irq(int irq);
    6.26 - #else
     7.1 --- a/xen/arch/ia64/patch/linux-2.6.11/kernel-time.c	Thu Apr 28 20:54:13 2005 +0000
     7.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.3 @@ -1,44 +0,0 @@
     7.4 - time.c |    7 ++++++-
     7.5 - 1 files changed, 6 insertions(+), 1 deletion(-)
     7.6 -
     7.7 -Index: linux-2.6.11/kernel/time.c
     7.8 -===================================================================
     7.9 ---- linux-2.6.11.orig/kernel/time.c	2005-03-02 01:37:50.000000000 -0600
    7.10 -+++ linux-2.6.11/kernel/time.c	2005-03-19 14:56:40.767870674 -0600
    7.11 -@@ -495,6 +495,7 @@ void getnstimeofday (struct timespec *tv
    7.12 - 	tv->tv_nsec = nsec;
    7.13 - }
    7.14 - 
    7.15 -+#ifndef XEN
    7.16 - int do_settimeofday (struct timespec *tv)
    7.17 - {
    7.18 - 	time_t wtm_sec, sec = tv->tv_sec;
    7.19 -@@ -503,7 +504,9 @@ int do_settimeofday (struct timespec *tv
    7.20 - 	if ((unsigned long)tv->tv_nsec >= NSEC_PER_SEC)
    7.21 - 		return -EINVAL;
    7.22 - 
    7.23 -+#ifdef TURN_ME_OFF_FOR_NOW_IA64_XEN
    7.24 - 	write_seqlock_irq(&xtime_lock);
    7.25 -+#endif
    7.26 - 	{
    7.27 - 		/*
    7.28 - 		 * This is revolting. We need to set "xtime" correctly. However, the value
    7.29 -@@ -525,7 +528,9 @@ int do_settimeofday (struct timespec *tv
    7.30 - 		time_esterror = NTP_PHASE_LIMIT;
    7.31 - 		time_interpolator_reset();
    7.32 - 	}
    7.33 -+#ifdef TURN_ME_OFF_FOR_NOW_IA64_XEN
    7.34 - 	write_sequnlock_irq(&xtime_lock);
    7.35 -+#endif
    7.36 - 	clock_was_set();
    7.37 - 	return 0;
    7.38 - }
    7.39 -@@ -552,7 +557,7 @@ void do_gettimeofday (struct timeval *tv
    7.40 - }
    7.41 - 
    7.42 - EXPORT_SYMBOL(do_gettimeofday);
    7.43 --
    7.44 -+#endif
    7.45 - 
    7.46 - #else
    7.47 - /*
     8.1 --- a/xen/arch/ia64/patch/linux-2.6.11/linuxextable.c	Thu Apr 28 20:54:13 2005 +0000
     8.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.3 @@ -1,16 +0,0 @@
     8.4 - extable.c |    2 ++
     8.5 - 1 files changed, 2 insertions(+)
     8.6 -
     8.7 -Index: linux-2.6.11-xendiffs/kernel/extable.c
     8.8 -===================================================================
     8.9 ---- linux-2.6.11-xendiffs.orig/kernel/extable.c	2005-03-02 01:37:54.000000000 -0600
    8.10 -+++ linux-2.6.11-xendiffs/kernel/extable.c	2005-04-08 14:30:46.283360881 -0500
    8.11 -@@ -20,6 +20,8 @@
    8.12 - #include <asm/uaccess.h>
    8.13 - #include <asm/sections.h>
    8.14 - 
    8.15 -+#define __module_text_address(addr)	(NULL)
    8.16 -+
    8.17 - extern struct exception_table_entry __start___ex_table[];
    8.18 - extern struct exception_table_entry __stop___ex_table[];
    8.19 - 
     9.1 --- a/xen/arch/ia64/patch/linux-2.6.11/linuxtime.h	Thu Apr 28 20:54:13 2005 +0000
     9.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.3 @@ -1,36 +0,0 @@
     9.4 - time.h |    9 +++++++++
     9.5 - 1 files changed, 9 insertions(+)
     9.6 -
     9.7 -Index: linux-2.6.11/include/linux/time.h
     9.8 -===================================================================
     9.9 ---- linux-2.6.11.orig/include/linux/time.h	2005-03-02 01:38:12.000000000 -0600
    9.10 -+++ linux-2.6.11/include/linux/time.h	2005-03-19 13:46:27.987225234 -0600
    9.11 -@@ -1,11 +1,18 @@
    9.12 - #ifndef _LINUX_TIME_H
    9.13 - #define _LINUX_TIME_H
    9.14 - 
    9.15 -+#ifdef XEN
    9.16 -+typedef	s64 time_t;
    9.17 -+typedef	s64 suseconds_t;
    9.18 -+#endif
    9.19 -+
    9.20 - #include <linux/types.h>
    9.21 - 
    9.22 -+#ifndef XEN
    9.23 - #ifdef __KERNEL__
    9.24 - #include <linux/seqlock.h>
    9.25 - #endif
    9.26 -+#endif
    9.27 - 
    9.28 - #ifndef _STRUCT_TIMESPEC
    9.29 - #define _STRUCT_TIMESPEC
    9.30 -@@ -80,7 +87,9 @@ mktime (unsigned int year, unsigned int 
    9.31 - 
    9.32 - extern struct timespec xtime;
    9.33 - extern struct timespec wall_to_monotonic;
    9.34 -+#ifndef XEN
    9.35 - extern seqlock_t xtime_lock;
    9.36 -+#endif
    9.37 - 
    9.38 - static inline unsigned long get_seconds(void)
    9.39 - { 
    10.1 --- a/xen/arch/ia64/patch/linux-2.6.11/mm_contig.c	Thu Apr 28 20:54:13 2005 +0000
    10.2 +++ b/xen/arch/ia64/patch/linux-2.6.11/mm_contig.c	Thu Apr 28 22:24:03 2005 +0000
    10.3 @@ -1,220 +1,47 @@
    10.4 - contig.c |  172 +++++++++++++++++----------------------------------------------
    10.5 - 1 files changed, 48 insertions(+), 124 deletions(-)
    10.6 -
    10.7 -Index: linux-2.6.11-xendiffs/arch/ia64/mm/contig.c
    10.8 -===================================================================
    10.9 ---- linux-2.6.11-xendiffs.orig/arch/ia64/mm/contig.c	2005-04-07 11:02:50.227598140 -0500
   10.10 -+++ linux-2.6.11-xendiffs/arch/ia64/mm/contig.c	2005-04-07 11:05:21.724931959 -0500
   10.11 -@@ -15,11 +15,21 @@
   10.12 -  * memory.
   10.13 +--- ../../linux-2.6.11/arch/ia64/mm/contig.c	2005-03-02 00:37:55.000000000 -0700
   10.14 ++++ arch/ia64/mm_contig.c	2005-04-28 16:13:52.000000000 -0600
   10.15 +@@ -35,6 +35,7 @@
   10.16 +  *
   10.17 +  * Just walks the pages in the system and describes where they're allocated.
   10.18    */
   10.19 - #include <linux/config.h>
   10.20 -+#ifdef XEN
   10.21 -+#include <xen/sched.h>
   10.22 -+#endif
   10.23 - #include <linux/bootmem.h>
   10.24 - #include <linux/efi.h>
   10.25 - #include <linux/mm.h>
   10.26 - #include <linux/swap.h>
   10.27 - 
   10.28 -+#ifdef XEN
   10.29 -+#undef reserve_bootmem
   10.30 -+extern struct page *zero_page_memmap_ptr;
   10.31 -+struct page *mem_map;
   10.32 -+#define MAX_DMA_ADDRESS ~0UL	// FIXME???
   10.33 -+#endif
   10.34 -+
   10.35 - #include <asm/meminit.h>
   10.36 - #include <asm/pgalloc.h>
   10.37 - #include <asm/pgtable.h>
   10.38 -@@ -38,30 +48,7 @@ static unsigned long num_dma_physpages;
   10.39 ++#ifndef XEN
   10.40   void
   10.41   show_mem (void)
   10.42   {
   10.43 --	int i, total = 0, reserved = 0;
   10.44 --	int shared = 0, cached = 0;
   10.45 --
   10.46 --	printk("Mem-info:\n");
   10.47 --	show_free_areas();
   10.48 --
   10.49 --	printk("Free swap:       %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10));
   10.50 --	i = max_mapnr;
   10.51 --	while (i-- > 0) {
   10.52 --		if (!pfn_valid(i))
   10.53 --			continue;
   10.54 --		total++;
   10.55 --		if (PageReserved(mem_map+i))
   10.56 --			reserved++;
   10.57 --		else if (PageSwapCache(mem_map+i))
   10.58 --			cached++;
   10.59 --		else if (page_count(mem_map + i))
   10.60 --			shared += page_count(mem_map + i) - 1;
   10.61 --	}
   10.62 --	printk("%d pages of RAM\n", total);
   10.63 --	printk("%d reserved pages\n", reserved);
   10.64 --	printk("%d pages shared\n", shared);
   10.65 --	printk("%d pages swap cached\n", cached);
   10.66 --	printk("%ld pages in page table cache\n", pgtable_cache_size);
   10.67 -+	printk("Dummy show_mem\n");
   10.68 +@@ -63,6 +64,7 @@
   10.69 + 	printk("%d pages swap cached\n", cached);
   10.70 + 	printk("%ld pages in page table cache\n", pgtable_cache_size);
   10.71   }
   10.72 ++#endif
   10.73   
   10.74   /* physical address where the bootmem map is located */
   10.75 -@@ -81,6 +68,9 @@ find_max_pfn (unsigned long start, unsig
   10.76 + unsigned long bootmap_start;
   10.77 +@@ -140,6 +142,7 @@
   10.78 +  * Walk the EFI memory map and find usable memory for the system, taking
   10.79 +  * into account reserved areas.
   10.80 +  */
   10.81 ++#ifndef XEN
   10.82 + void
   10.83 + find_memory (void)
   10.84   {
   10.85 - 	unsigned long *max_pfnp = arg, pfn;
   10.86 - 
   10.87 -+#ifdef XEN
   10.88 -+//printf("find_max_pfn: start=%lx, end=%lx, *arg=%lx\n",start,end,*(unsigned long *)arg);
   10.89 -+#endif
   10.90 - 	pfn = (PAGE_ALIGN(end - 1) - PAGE_OFFSET) >> PAGE_SHIFT;
   10.91 - 	if (pfn > *max_pfnp)
   10.92 - 		*max_pfnp = pfn;
   10.93 -@@ -134,41 +124,6 @@ find_bootmap_location (unsigned long sta
   10.94 - 	return 0;
   10.95 - }
   10.96 +@@ -168,6 +171,7 @@
   10.97   
   10.98 --/**
   10.99 -- * find_memory - setup memory map
  10.100 -- *
  10.101 -- * Walk the EFI memory map and find usable memory for the system, taking
  10.102 -- * into account reserved areas.
  10.103 -- */
  10.104 --void
  10.105 --find_memory (void)
  10.106 --{
  10.107 --	unsigned long bootmap_size;
  10.108 --
  10.109 --	reserve_memory();
  10.110 --
  10.111 --	/* first find highest page frame number */
  10.112 --	max_pfn = 0;
  10.113 --	efi_memmap_walk(find_max_pfn, &max_pfn);
  10.114 --
  10.115 --	/* how many bytes to cover all the pages */
  10.116 --	bootmap_size = bootmem_bootmap_pages(max_pfn) << PAGE_SHIFT;
  10.117 --
  10.118 --	/* look for a location to hold the bootmap */
  10.119 --	bootmap_start = ~0UL;
  10.120 --	efi_memmap_walk(find_bootmap_location, &bootmap_size);
  10.121 --	if (bootmap_start == ~0UL)
  10.122 --		panic("Cannot find %ld bytes for bootmap\n", bootmap_size);
  10.123 --
  10.124 --	bootmap_size = init_bootmem(bootmap_start >> PAGE_SHIFT, max_pfn);
  10.125 --
  10.126 --	/* Free all available memory, then mark bootmem-map as being in use. */
  10.127 --	efi_memmap_walk(filter_rsvd_memory, free_bootmem);
  10.128 --	reserve_bootmem(bootmap_start, bootmap_size);
  10.129 --
  10.130 --	find_initrd();
  10.131 --}
  10.132 --
  10.133 + 	find_initrd();
  10.134 + }
  10.135 ++#endif
  10.136 + 
  10.137   #ifdef CONFIG_SMP
  10.138   /**
  10.139 -  * per_cpu_init - setup per-cpu variables
  10.140 -@@ -228,72 +183,41 @@ count_dma_pages (u64 start, u64 end, voi
  10.141 +@@ -225,6 +229,7 @@
  10.142 +  * Set up the page tables.
  10.143 +  */
  10.144 + 
  10.145 ++#ifndef XEN
  10.146   void
  10.147   paging_init (void)
  10.148   {
  10.149 --	unsigned long max_dma;
  10.150 --	unsigned long zones_size[MAX_NR_ZONES];
  10.151 --#ifdef CONFIG_VIRTUAL_MEM_MAP
  10.152 --	unsigned long zholes_size[MAX_NR_ZONES];
  10.153 --	unsigned long max_gap;
  10.154 --#endif
  10.155 --
  10.156 --	/* initialize mem_map[] */
  10.157 --
  10.158 --	memset(zones_size, 0, sizeof(zones_size));
  10.159 --
  10.160 --	num_physpages = 0;
  10.161 --	efi_memmap_walk(count_pages, &num_physpages);
  10.162 --
  10.163 --	max_dma = virt_to_phys((void *) MAX_DMA_ADDRESS) >> PAGE_SHIFT;
  10.164 --
  10.165 --#ifdef CONFIG_VIRTUAL_MEM_MAP
  10.166 --	memset(zholes_size, 0, sizeof(zholes_size));
  10.167 -+	struct pfn_info *pg;
  10.168 -+	/* Allocate and map the machine-to-phys table */
  10.169 -+	if ((pg = alloc_domheap_pages(NULL, 10)) == NULL)
  10.170 -+		panic("Not enough memory to bootstrap Xen.\n");
  10.171 -+	memset(page_to_virt(pg), 0x55, 16UL << 20);
  10.172 - 
  10.173 --	num_dma_physpages = 0;
  10.174 --	efi_memmap_walk(count_dma_pages, &num_dma_physpages);
  10.175 -+	/* Other mapping setup */
  10.176 - 
  10.177 --	if (max_low_pfn < max_dma) {
  10.178 --		zones_size[ZONE_DMA] = max_low_pfn;
  10.179 --		zholes_size[ZONE_DMA] = max_low_pfn - num_dma_physpages;
  10.180 --	} else {
  10.181 --		zones_size[ZONE_DMA] = max_dma;
  10.182 --		zholes_size[ZONE_DMA] = max_dma - num_dma_physpages;
  10.183 --		if (num_physpages > num_dma_physpages) {
  10.184 --			zones_size[ZONE_NORMAL] = max_low_pfn - max_dma;
  10.185 --			zholes_size[ZONE_NORMAL] =
  10.186 --				((max_low_pfn - max_dma) -
  10.187 --				 (num_physpages - num_dma_physpages));
  10.188 --		}
  10.189 --	}
  10.190 --
  10.191 --	max_gap = 0;
  10.192 --	efi_memmap_walk(find_largest_hole, (u64 *)&max_gap);
  10.193 --	if (max_gap < LARGE_GAP) {
  10.194 --		vmem_map = (struct page *) 0;
  10.195 --		free_area_init_node(0, &contig_page_data, zones_size, 0,
  10.196 --				    zholes_size);
  10.197 --	} else {
  10.198 --		unsigned long map_size;
  10.199 --
  10.200 --		/* allocate virtual_mem_map */
  10.201 --
  10.202 --		map_size = PAGE_ALIGN(max_low_pfn * sizeof(struct page));
  10.203 --		vmalloc_end -= map_size;
  10.204 --		vmem_map = (struct page *) vmalloc_end;
  10.205 --		efi_memmap_walk(create_mem_map_page_table, NULL);
  10.206 --
  10.207 --		mem_map = contig_page_data.node_mem_map = vmem_map;
  10.208 --		free_area_init_node(0, &contig_page_data, zones_size,
  10.209 --				    0, zholes_size);
  10.210 --
  10.211 --		printk("Virtual mem_map starts at 0x%p\n", mem_map);
  10.212 --	}
  10.213 --#else /* !CONFIG_VIRTUAL_MEM_MAP */
  10.214 --	if (max_low_pfn < max_dma)
  10.215 --		zones_size[ZONE_DMA] = max_low_pfn;
  10.216 --	else {
  10.217 --		zones_size[ZONE_DMA] = max_dma;
  10.218 --		zones_size[ZONE_NORMAL] = max_low_pfn - max_dma;
  10.219 --	}
  10.220 --	free_area_init(zones_size);
  10.221 --#endif /* !CONFIG_VIRTUAL_MEM_MAP */
  10.222 +@@ -297,3 +302,4 @@
  10.223 + #endif /* !CONFIG_VIRTUAL_MEM_MAP */
  10.224   	zero_page_memmap_ptr = virt_to_page(ia64_imva(empty_zero_page));
  10.225   }
  10.226 -+
  10.227 -+struct pfn_info *frame_table;
  10.228 -+unsigned long frame_table_size;
  10.229 -+unsigned long max_page;
  10.230 -+
  10.231 -+/* FIXME: postpone support to machines with big holes between physical memorys.
  10.232 -+ * Current hack allows only efi memdesc upto 4G place. (See efi.c)
  10.233 -+ */
  10.234 -+#ifndef CONFIG_VIRTUAL_MEM_MAP
  10.235 -+#define FT_ALIGN_SIZE	(16UL << 20)
  10.236 -+void __init init_frametable(void)
  10.237 -+{
  10.238 -+	unsigned long i, p;
  10.239 -+	frame_table_size = max_page * sizeof(struct pfn_info);
  10.240 -+	frame_table_size = (frame_table_size + PAGE_SIZE - 1) & PAGE_MASK;
  10.241 -+
  10.242 -+	/* Request continuous trunk from boot allocator, since HV
  10.243 -+	 * address is identity mapped */
  10.244 -+	p = alloc_boot_pages(frame_table_size, FT_ALIGN_SIZE);
  10.245 -+	if (p == 0)
  10.246 -+		panic("Not enough memory for frame table.\n");
  10.247 -+
  10.248 -+	frame_table = __va(p);
  10.249 -+	memset(frame_table, 0, frame_table_size);
  10.250 -+	printk("size of frame_table: %lukB\n",
  10.251 -+		frame_table_size >> 10);
  10.252 -+}
  10.253 -+#endif
  10.254 ++#endif /* !CONFIG_XEN */
    11.1 --- a/xen/arch/ia64/patch/linux-2.6.11/mmzone.h	Thu Apr 28 20:54:13 2005 +0000
    11.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.3 @@ -1,19 +0,0 @@
    11.4 - mmzone.h |    4 ++++
    11.5 - 1 files changed, 4 insertions(+)
    11.6 -
    11.7 -Index: linux-2.6.11/include/linux/mmzone.h
    11.8 -===================================================================
    11.9 ---- linux-2.6.11.orig/include/linux/mmzone.h	2005-03-02 01:38:10.000000000 -0600
   11.10 -+++ linux-2.6.11/include/linux/mmzone.h	2005-03-19 13:49:30.427573139 -0600
   11.11 -@@ -209,7 +209,11 @@ struct zone {
   11.12 - 	 * rarely used fields:
   11.13 - 	 */
   11.14 - 	char			*name;
   11.15 -+#ifdef XEN
   11.16 -+};
   11.17 -+#else
   11.18 - } ____cacheline_maxaligned_in_smp;
   11.19 -+#endif
   11.20 - 
   11.21 - 
   11.22 - /*
    12.1 --- a/xen/arch/ia64/patch/linux-2.6.11/sal.h	Thu Apr 28 20:54:13 2005 +0000
    12.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.3 @@ -1,39 +0,0 @@
    12.4 - sal.h |   17 +++++++++++++++++
    12.5 - 1 files changed, 17 insertions(+)
    12.6 -
    12.7 -Index: linux-2.6.11-xendiffs/include/asm-ia64/sal.h
    12.8 -===================================================================
    12.9 ---- linux-2.6.11-xendiffs.orig/include/asm-ia64/sal.h	2005-04-08 12:00:53.510988510 -0500
   12.10 -+++ linux-2.6.11-xendiffs/include/asm-ia64/sal.h	2005-04-08 12:02:17.778587216 -0500
   12.11 -@@ -36,6 +36,7 @@
   12.12 - #ifndef __ASSEMBLY__
   12.13 - 
   12.14 - #include <linux/bcd.h>
   12.15 -+#include <linux/preempt.h>
   12.16 - #include <linux/spinlock.h>
   12.17 - #include <linux/efi.h>
   12.18 - 
   12.19 -@@ -650,7 +651,23 @@ ia64_sal_freq_base (unsigned long which,
   12.20 - {
   12.21 - 	struct ia64_sal_retval isrv;
   12.22 - 
   12.23 -+//#ifdef XEN
   12.24 -+#if 0
   12.25 -+	unsigned long *x = (unsigned long *)ia64_sal;
   12.26 -+	unsigned long *inst = (unsigned long *)*x;
   12.27 -+	unsigned long __ia64_sc_flags;
   12.28 -+	struct ia64_fpreg __ia64_sc_fr[6];
   12.29 -+printf("ia64_sal_freq_base: about to save_scratch_fpregs\n");
   12.30 -+	ia64_save_scratch_fpregs(__ia64_sc_fr);
   12.31 -+	spin_lock_irqsave(&sal_lock, __ia64_sc_flags);
   12.32 -+printf("ia64_sal_freq_base: about to call, ia64_sal=%p, ia64_sal[0]=%p, ia64_sal[1]=%p\n",x,x[0],x[1]);
   12.33 -+printf("first inst=%p,%p\n",inst[0],inst[1]);
   12.34 -+	isrv = (*ia64_sal)(SAL_FREQ_BASE, which, 0, 0, 0, 0, 0, 0);
   12.35 -+	spin_unlock_irqrestore(&sal_lock, __ia64_sc_flags);
   12.36 -+	ia64_load_scratch_fpregs(__ia64_sc_fr);
   12.37 -+#else
   12.38 - 	SAL_CALL(isrv, SAL_FREQ_BASE, which, 0, 0, 0, 0, 0, 0);
   12.39 -+#endif
   12.40 - 	*ticks_per_second = isrv.v0;
   12.41 - 	*drift_info = isrv.v1;
   12.42 - 	return isrv.status;
    13.1 --- a/xen/arch/ia64/patch/linux-2.6.11/slab.h	Thu Apr 28 20:54:13 2005 +0000
    13.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.3 @@ -1,19 +0,0 @@
    13.4 - slab.h |    4 ++++
    13.5 - 1 files changed, 4 insertions(+)
    13.6 -
    13.7 -Index: linux-2.6.11/include/linux/slab.h
    13.8 -===================================================================
    13.9 ---- linux-2.6.11.orig/include/linux/slab.h	2005-03-02 01:38:33.000000000 -0600
   13.10 -+++ linux-2.6.11/include/linux/slab.h	2005-03-19 14:35:19.301871922 -0600
   13.11 -@@ -91,7 +91,11 @@ static inline void *kmalloc(size_t size,
   13.12 - 			goto found; \
   13.13 - 		else \
   13.14 - 			i++;
   13.15 -+#ifdef XEN
   13.16 -+#include <linux/kmalloc_sizes.h>
   13.17 -+#else
   13.18 - #include "kmalloc_sizes.h"
   13.19 -+#endif
   13.20 - #undef CACHE
   13.21 - 		{
   13.22 - 			extern void __you_cannot_kmalloc_that_much(void);
    14.1 --- a/xen/arch/ia64/patch/linux-2.6.11/unaligned.c	Thu Apr 28 20:54:13 2005 +0000
    14.2 +++ b/xen/arch/ia64/patch/linux-2.6.11/unaligned.c	Thu Apr 28 22:24:03 2005 +0000
    14.3 @@ -1,39 +1,6 @@
    14.4 - unaligned.c |   27 +++++++++++++++++++++++++++
    14.5 - 1 files changed, 27 insertions(+)
    14.6 -
    14.7 -Index: linux-2.6.11/arch/ia64/kernel/unaligned.c
    14.8 -===================================================================
    14.9 ---- linux-2.6.11.orig/arch/ia64/kernel/unaligned.c	2005-03-02 01:38:25.000000000 -0600
   14.10 -+++ linux-2.6.11/arch/ia64/kernel/unaligned.c	2005-03-19 14:58:51.269335202 -0600
   14.11 -@@ -15,8 +15,10 @@
   14.12 -  */
   14.13 - #include <linux/kernel.h>
   14.14 - #include <linux/sched.h>
   14.15 -+#ifndef XEN
   14.16 - #include <linux/smp_lock.h>
   14.17 - #include <linux/tty.h>
   14.18 -+#endif
   14.19 - 
   14.20 - #include <asm/intrinsics.h>
   14.21 - #include <asm/processor.h>
   14.22 -@@ -24,7 +26,16 @@
   14.23 - #include <asm/uaccess.h>
   14.24 - #include <asm/unaligned.h>
   14.25 - 
   14.26 -+#ifdef XEN
   14.27 -+#define	ia64_peek(x...)	printk("ia64_peek: called, not implemented\n")
   14.28 -+#define	ia64_poke(x...)	printk("ia64_poke: called, not implemented\n")
   14.29 -+#define	ia64_sync_fph(x...) printk("ia64_sync_fph: called, not implemented\n")
   14.30 -+#define	ia64_flush_fph(x...) printk("ia64_flush_fph: called, not implemented\n")
   14.31 -+#define	die_if_kernel(x...) printk("die_if_kernel: called, not implemented\n")
   14.32 -+#define jiffies 0
   14.33 -+#else
   14.34 - extern void die_if_kernel(char *str, struct pt_regs *regs, long err) __attribute__ ((noreturn));
   14.35 -+#endif
   14.36 - 
   14.37 - #undef DEBUG_UNALIGNED_TRAP
   14.38 - 
   14.39 -@@ -437,7 +448,11 @@ get_rse_reg (struct pt_regs *regs, unsig
   14.40 +--- ../../linux-2.6.11/arch/ia64/kernel/unaligned.c	2005-03-02 00:38:25.000000000 -0700
   14.41 ++++ arch/ia64/unaligned.c	2005-04-28 15:40:13.000000000 -0600
   14.42 +@@ -437,7 +437,11 @@
   14.43   }
   14.44   
   14.45   
   14.46 @@ -45,7 +12,7 @@ Index: linux-2.6.11/arch/ia64/kernel/una
   14.47   setreg (unsigned long regnum, unsigned long val, int nat, struct pt_regs *regs)
   14.48   {
   14.49   	struct switch_stack *sw = (struct switch_stack *) regs - 1;
   14.50 -@@ -611,7 +626,11 @@ getfpreg (unsigned long regnum, struct i
   14.51 +@@ -611,7 +615,11 @@
   14.52   }
   14.53   
   14.54   
   14.55 @@ -57,46 +24,19 @@ Index: linux-2.6.11/arch/ia64/kernel/una
   14.56   getreg (unsigned long regnum, unsigned long *val, int *nat, struct pt_regs *regs)
   14.57   {
   14.58   	struct switch_stack *sw = (struct switch_stack *) regs - 1;
   14.59 -@@ -1298,7 +1317,9 @@ ia64_handle_unaligned (unsigned long ifa
   14.60 - 	mm_segment_t old_fs = get_fs();
   14.61 - 	unsigned long bundle[2];
   14.62 - 	unsigned long opcode;
   14.63 -+#ifndef XEN
   14.64 - 	struct siginfo si;
   14.65 -+#endif
   14.66 - 	const struct exception_table_entry *eh = NULL;
   14.67 - 	union {
   14.68 - 		unsigned long l;
   14.69 -@@ -1317,6 +1338,9 @@ ia64_handle_unaligned (unsigned long ifa
   14.70 - 	 * user-level unaligned accesses.  Otherwise, a clever program could trick this
   14.71 - 	 * handler into reading an arbitrary kernel addresses...
   14.72 - 	 */
   14.73 +@@ -1294,6 +1302,9 @@
   14.74 + void
   14.75 + ia64_handle_unaligned (unsigned long ifa, struct pt_regs *regs)
   14.76 + {
   14.77  +#ifdef XEN
   14.78  +printk("ia64_handle_unaligned: called, not working yet\n");
   14.79  +#else
   14.80 - 	if (!user_mode(regs))
   14.81 - 		eh = search_exception_tables(regs->cr_iip + ia64_psr(regs)->ri);
   14.82 - 	if (user_mode(regs) || eh) {
   14.83 -@@ -1353,6 +1377,7 @@ ia64_handle_unaligned (unsigned long ifa
   14.84 - 
   14.85 - 	if (__copy_from_user(bundle, (void __user *) regs->cr_iip, 16))
   14.86 - 		goto failure;
   14.87 -+#endif
   14.88 - 
   14.89 - 	/*
   14.90 - 	 * extract the instruction from the bundle given the slot number
   14.91 -@@ -1493,6 +1518,7 @@ ia64_handle_unaligned (unsigned long ifa
   14.92 - 		/* NOT_REACHED */
   14.93 - 	}
   14.94 -   force_sigbus:
   14.95 -+#ifndef XEN
   14.96 - 	si.si_signo = SIGBUS;
   14.97 - 	si.si_errno = 0;
   14.98 - 	si.si_code = BUS_ADRALN;
   14.99 -@@ -1501,5 +1527,6 @@ ia64_handle_unaligned (unsigned long ifa
  14.100 - 	si.si_isr = 0;
  14.101 + 	struct ia64_psr *ipsr = ia64_psr(regs);
  14.102 + 	mm_segment_t old_fs = get_fs();
  14.103 + 	unsigned long bundle[2];
  14.104 +@@ -1502,4 +1513,5 @@
  14.105   	si.si_imm = 0;
  14.106   	force_sig_info(SIGBUS, &si, current);
  14.107 + 	goto done;
  14.108  +#endif
  14.109 - 	goto done;
  14.110   }
    15.1 --- a/xen/arch/ia64/patch/linux-2.6.11/wait.h	Thu Apr 28 20:54:13 2005 +0000
    15.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.3 @@ -1,35 +0,0 @@
    15.4 - wait.h |    6 ++++++
    15.5 - 1 files changed, 6 insertions(+)
    15.6 -
    15.7 -Index: linux-2.6.11/include/linux/wait.h
    15.8 -===================================================================
    15.9 ---- linux-2.6.11.orig/include/linux/wait.h	2005-03-02 01:38:10.000000000 -0600
   15.10 -+++ linux-2.6.11/include/linux/wait.h	2005-03-19 15:00:23.691156973 -0600
   15.11 -@@ -136,7 +136,11 @@ static inline void __remove_wait_queue(w
   15.12 - 	list_del(&old->task_list);
   15.13 - }
   15.14 - 
   15.15 -+#ifdef XEN
   15.16 -+void FASTCALL(__wake_up(struct task_struct *p));
   15.17 -+#else
   15.18 - void FASTCALL(__wake_up(wait_queue_head_t *q, unsigned int mode, int nr, void *key));
   15.19 -+#endif
   15.20 - extern void FASTCALL(__wake_up_locked(wait_queue_head_t *q, unsigned int mode));
   15.21 - extern void FASTCALL(__wake_up_sync(wait_queue_head_t *q, unsigned int mode, int nr));
   15.22 - void FASTCALL(__wake_up_bit(wait_queue_head_t *, void *, int));
   15.23 -@@ -147,6 +151,7 @@ int FASTCALL(out_of_line_wait_on_bit(voi
   15.24 - int FASTCALL(out_of_line_wait_on_bit_lock(void *, int, int (*)(void *), unsigned));
   15.25 - wait_queue_head_t *FASTCALL(bit_waitqueue(void *, int));
   15.26 - 
   15.27 -+#ifndef XEN
   15.28 - #define wake_up(x)			__wake_up(x, TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE, 1, NULL)
   15.29 - #define wake_up_nr(x, nr)		__wake_up(x, TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE, nr, NULL)
   15.30 - #define wake_up_all(x)			__wake_up(x, TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE, 0, NULL)
   15.31 -@@ -155,6 +160,7 @@ wait_queue_head_t *FASTCALL(bit_waitqueu
   15.32 - #define wake_up_interruptible_all(x)	__wake_up(x, TASK_INTERRUPTIBLE, 0, NULL)
   15.33 - #define	wake_up_locked(x)		__wake_up_locked((x), TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE)
   15.34 - #define wake_up_interruptible_sync(x)   __wake_up_sync((x),TASK_INTERRUPTIBLE, 1)
   15.35 -+#endif
   15.36 - 
   15.37 - #define __wait_event(wq, condition) 					\
   15.38 - do {									\
    16.1 --- a/xen/arch/ia64/tools/mkbuildtree	Thu Apr 28 20:54:13 2005 +0000
    16.2 +++ b/xen/arch/ia64/tools/mkbuildtree	Thu Apr 28 22:24:03 2005 +0000
    16.3 @@ -90,7 +90,8 @@ cp_patch arch/ia64/kernel/ivt.S arch/ia6
    16.4  cp_patch arch/ia64/kernel/setup.c arch/ia64/setup.c setup.c
    16.5  cp_patch arch/ia64/kernel/time.c arch/ia64/time.c time.c
    16.6  cp_patch arch/ia64/kernel/unaligned.c arch/ia64/unaligned.c unaligned.c
    16.7 -cp_patch arch/ia64/kernel/vmlinux.lds.S arch/ia64/xen.lds.S lds.S
    16.8 +#cp_patch arch/ia64/kernel/vmlinux.lds.S arch/ia64/xen.lds.S lds.S
    16.9 +softlink arch/ia64/kernel/vmlinux.lds.S arch/ia64/xen.lds.S
   16.10  
   16.11  #cp_patch mm/bootmem.c arch/ia64/mm_bootmem.c mm_bootmem.c
   16.12  #cp_patch mm/page_alloc.c arch/ia64/page_alloc.c page_alloc.c
   16.13 @@ -304,7 +305,6 @@ softlink include/linux/thread_info.h inc
   16.14  softlink include/linux/threads.h include/asm-ia64/linux/threads.h
   16.15  softlink include/linux/timex.h include/asm-ia64/linux/timex.h
   16.16  softlink include/linux/topology.h include/asm-ia64/linux/topology.h
   16.17 -softlink include/linux/tty.h include/asm-ia64/linux/tty.h
   16.18  softlink include/linux/seqlock.h include/asm-ia64/linux/seqlock.h
   16.19  
   16.20  null include/asm-ia64/linux/file.h
   16.21 @@ -315,6 +315,8 @@ null include/asm-ia64/linux/proc_fs.h
   16.22  null include/asm-ia64/linux/rtc.h
   16.23  null include/asm-ia64/linux/profile.h
   16.24  null include/asm-ia64/linux/seqlock.h
   16.25 +null include/asm-ia64/linux/smp_lock.h
   16.26 +null include/asm-ia64/linux/tty.h
   16.27  
   16.28  softlink include/linux/byteorder/generic.h include/asm-ia64/linux/byteorder/generic.h
   16.29  softlink include/linux/byteorder/little_endian.h include/asm-ia64/linux/byteorder/little_endian.h
    17.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.2 +++ b/xen/arch/ia64/xenmem.c	Thu Apr 28 22:24:03 2005 +0000
    17.3 @@ -0,0 +1,67 @@
    17.4 +/*
    17.5 + * Xen memory allocator routines
    17.6 + *
    17.7 + * Copyright (C) 2005 Hewlett-Packard Co
    17.8 + *	Dan Magenheimer <dan.magenheimer@hp.com>
    17.9 + * Copyright (C) 2005 Intel Corp.
   17.10 + *
   17.11 + * Routines used by ia64 machines with contiguous (or virtually contiguous)
   17.12 + * memory.
   17.13 + */
   17.14 +
   17.15 +#include <linux/config.h>
   17.16 +#include <asm/pgtable.h>
   17.17 +
   17.18 +extern struct page *zero_page_memmap_ptr;
   17.19 +struct pfn_info *frame_table;
   17.20 +unsigned long frame_table_size;
   17.21 +unsigned long max_page;
   17.22 +
   17.23 +struct page *mem_map;
   17.24 +#define MAX_DMA_ADDRESS ~0UL	// FIXME???
   17.25 +
   17.26 +#ifdef CONFIG_VIRTUAL_MEM_MAP
   17.27 +static unsigned long num_dma_physpages;
   17.28 +#endif
   17.29 +
   17.30 +/*
   17.31 + * Set up the page tables.
   17.32 + */
   17.33 +
   17.34 +void
   17.35 +paging_init (void)
   17.36 +{
   17.37 +	struct pfn_info *pg;
   17.38 +	/* Allocate and map the machine-to-phys table */
   17.39 +	if ((pg = alloc_domheap_pages(NULL, 10)) == NULL)
   17.40 +		panic("Not enough memory to bootstrap Xen.\n");
   17.41 +	memset(page_to_virt(pg), 0x55, 16UL << 20);
   17.42 +
   17.43 +	/* Other mapping setup */
   17.44 +
   17.45 +	zero_page_memmap_ptr = virt_to_page(ia64_imva(empty_zero_page));
   17.46 +}
   17.47 +
   17.48 +/* FIXME: postpone support to machines with big holes between physical memorys.
   17.49 + * Current hack allows only efi memdesc upto 4G place. (See efi.c)
   17.50 + */
   17.51 +#ifndef CONFIG_VIRTUAL_MEM_MAP
   17.52 +#define FT_ALIGN_SIZE	(16UL << 20)
   17.53 +void __init init_frametable(void)
   17.54 +{
   17.55 +	unsigned long i, p;
   17.56 +	frame_table_size = max_page * sizeof(struct pfn_info);
   17.57 +	frame_table_size = (frame_table_size + PAGE_SIZE - 1) & PAGE_MASK;
   17.58 +
   17.59 +	/* Request continuous trunk from boot allocator, since HV
   17.60 +	 * address is identity mapped */
   17.61 +	p = alloc_boot_pages(frame_table_size, FT_ALIGN_SIZE);
   17.62 +	if (p == 0)
   17.63 +		panic("Not enough memory for frame table.\n");
   17.64 +
   17.65 +	frame_table = __va(p);
   17.66 +	memset(frame_table, 0, frame_table_size);
   17.67 +	printk("size of frame_table: %lukB\n",
   17.68 +		frame_table_size >> 10);
   17.69 +}
   17.70 +#endif
    18.1 --- a/xen/arch/ia64/xenmisc.c	Thu Apr 28 20:54:13 2005 +0000
    18.2 +++ b/xen/arch/ia64/xenmisc.c	Thu Apr 28 22:24:03 2005 +0000
    18.3 @@ -258,6 +258,40 @@ void sys_exit(void)
    18.4  	dummy();
    18.5  }
    18.6  
    18.7 +////////////////////////////////////
    18.8 +// called from unaligned.c
    18.9 +////////////////////////////////////
   18.10 +
   18.11 +void die_if_kernel(char *str, struct pt_regs *regs, long err) /* __attribute__ ((noreturn)) */
   18.12 +{
   18.13 +	printk("die_if_kernel: called, not implemented\n");
   18.14 +}
   18.15 +
   18.16 +long
   18.17 +ia64_peek (struct task_struct *child, struct switch_stack *child_stack,
   18.18 +	   unsigned long user_rbs_end, unsigned long addr, long *val)
   18.19 +{
   18.20 +	printk("ia64_peek: called, not implemented\n");
   18.21 +}
   18.22 +
   18.23 +long
   18.24 +ia64_poke (struct task_struct *child, struct switch_stack *child_stack,
   18.25 +	   unsigned long user_rbs_end, unsigned long addr, long val)
   18.26 +{
   18.27 +	printk("ia64_poke: called, not implemented\n");
   18.28 +}
   18.29 +
   18.30 +void
   18.31 +ia64_sync_fph (struct task_struct *task)
   18.32 +{
   18.33 +	printk("ia64_sync_fph: called, not implemented\n");
   18.34 +}
   18.35 +
   18.36 +void
   18.37 +ia64_flush_fph (struct task_struct *task)
   18.38 +{
   18.39 +	printk("ia64_flush_fph: called, not implemented\n");
   18.40 +}
   18.41  
   18.42  ////////////////////////////////////
   18.43  // called from irq_ia64.c:init_IRQ()