aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/xen/xen_pv_ops.c
diff options
context:
space:
mode:
authorIsaku Yamahata <yamahata@valinux.co.jp>2009-03-04 07:05:43 -0500
committerTony Luck <tony.luck@intel.com>2009-03-26 13:51:12 -0400
commitb937dd76d07f2347684d6cc1e1ec4e2746417357 (patch)
treebe711211f1b83d8cebff60b01bbbd1e80e609295 /arch/ia64/xen/xen_pv_ops.c
parente4ff5b8f545811008123dd9556a51d814f562fcf (diff)
ia64/pv_ops/xen: define xen specific gate page.
define xen specific gate page. At this phase bits in the gate page is same to native. At the next phase, it will be paravirtualized. Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64/xen/xen_pv_ops.c')
-rw-r--r--arch/ia64/xen/xen_pv_ops.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/arch/ia64/xen/xen_pv_ops.c b/arch/ia64/xen/xen_pv_ops.c
index d91336114344..bdf1acbce81c 100644
--- a/arch/ia64/xen/xen_pv_ops.c
+++ b/arch/ia64/xen/xen_pv_ops.c
@@ -179,6 +179,37 @@ struct pv_fsys_data xen_fsys_data __initdata = {
179}; 179};
180 180
181/*************************************************************************** 181/***************************************************************************
182 * pv_patchdata
183 * patchdata addresses
184 */
185
186#define DECLARE(name) \
187 extern unsigned long __xen_start_gate_##name##_patchlist[]; \
188 extern unsigned long __xen_end_gate_##name##_patchlist[]
189
190DECLARE(fsyscall);
191DECLARE(brl_fsys_bubble_down);
192DECLARE(vtop);
193DECLARE(mckinley_e9);
194
195extern unsigned long __xen_start_gate_section[];
196
197#define ASSIGN(name) \
198 .start_##name##_patchlist = \
199 (unsigned long)__xen_start_gate_##name##_patchlist, \
200 .end_##name##_patchlist = \
201 (unsigned long)__xen_end_gate_##name##_patchlist
202
203static struct pv_patchdata xen_patchdata __initdata = {
204 ASSIGN(fsyscall),
205 ASSIGN(brl_fsys_bubble_down),
206 ASSIGN(vtop),
207 ASSIGN(mckinley_e9),
208
209 .gate_section = (void*)__xen_start_gate_section,
210};
211
212/***************************************************************************
182 * pv_cpu_ops 213 * pv_cpu_ops
183 * intrinsics hooks. 214 * intrinsics hooks.
184 */ 215 */
@@ -447,6 +478,7 @@ xen_setup_pv_ops(void)
447 pv_info = xen_info; 478 pv_info = xen_info;
448 pv_init_ops = xen_init_ops; 479 pv_init_ops = xen_init_ops;
449 pv_fsys_data = xen_fsys_data; 480 pv_fsys_data = xen_fsys_data;
481 pv_patchdata = xen_patchdata;
450 pv_cpu_ops = xen_cpu_ops; 482 pv_cpu_ops = xen_cpu_ops;
451 pv_iosapic_ops = xen_iosapic_ops; 483 pv_iosapic_ops = xen_iosapic_ops;
452 pv_irq_ops = xen_irq_ops; 484 pv_irq_ops = xen_irq_ops;