extern struct apic apic_bigsmp;
extern struct apic apic_es7000;
extern struct apic apic_es7000_cluster;
-extern struct apic apic_xen;
struct apic *apic = &apic_default;
EXPORT_SYMBOL_GPL(apic);
static struct apic *apic_probe[] __initdata = {
-#ifdef CONFIG_XEN
- &apic_xen,
-#endif
#ifdef CONFIG_X86_NUMAQ
&apic_numaq,
#endif
extern struct apic apic_x2xpic_uv_x;
extern struct apic apic_x2apic_phys;
extern struct apic apic_x2apic_cluster;
-extern struct apic apic_xen;
struct apic __read_mostly *apic = &apic_flat;
EXPORT_SYMBOL_GPL(apic);
static struct apic *apic_probe[] __initdata = {
-#ifdef CONFIG_XEN
- &apic_xen,
-#endif
#ifdef CONFIG_X86_UV
&apic_x2apic_uv_x,
#endif
return 0;
}
-static __init int xen_safe_flat_acpi_madt_oem_check(char *oem_id,
- char *oem_table_id)
-{
- if (!xen_initial_domain())
- return 0;
-
- return 1;
-}
-
-static __init int xen_safe_probe(void) {
-
- if (!xen_pv_domain())
- return 0;
-
- return 1;
-}
-
-struct apic apic_xen = {
- .name = "xen",
-};
-
static __init void set_xen_basic_apic_ops(void)
{
apic->read = xen_apic_read;
apic->icr_write = xen_apic_icr_write;
apic->wait_icr_idle = xen_apic_wait_icr_idle;
apic->safe_wait_icr_idle = xen_safe_apic_wait_icr_idle;
- apic->probe = xen_safe_probe;
- apic->acpi_madt_oem_check = xen_safe_flat_acpi_madt_oem_check;
- /* Copy over the full contents of the newly modified apic into
- * our apic_xen, which is to be called first by apic_probe[]. */
- memcpy(&apic_xen, apic, sizeof(struct apic));
}
#endif