diff options
Diffstat (limited to 'arch/ia64/xen/xen_pv_ops.c')
-rw-r--r-- | arch/ia64/xen/xen_pv_ops.c | 32 |
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 | |||
190 | DECLARE(fsyscall); | ||
191 | DECLARE(brl_fsys_bubble_down); | ||
192 | DECLARE(vtop); | ||
193 | DECLARE(mckinley_e9); | ||
194 | |||
195 | extern 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 | |||
203 | static 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; |