*/
#include <linux/threads.h>
#include <linux/cpumask.h>
+#include <linux/module.h>
#include <linux/string.h>
#include <linux/kernel.h>
#include <linux/ctype.h>
#include <asm/fixmap.h>
#include <asm/mpspec.h>
#include <asm/apicdef.h>
-#include <asm/genapic.h>
+#include <asm/apic.h>
#include <asm/setup.h>
#include <linux/threads.h>
#include <linux/cpumask.h>
#include <asm/mpspec.h>
-#include <asm/genapic.h>
+#include <asm/apic.h>
#include <asm/fixmap.h>
#include <asm/apicdef.h>
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/smp.h>
#include <linux/init.h>
-#include <asm/genapic.h>
+#include <asm/apic.h>
#include <asm/ipi.h>
#include <linux/smp.h>
#include <asm/e820.h>
#include <asm/setup.h>
-#include <asm/genapic.h>
+#include <asm/apic.h>
#ifdef CONFIG_HOTPLUG_CPU
#define DEFAULT_SEND_IPI (1)
#ifdef CONFIG_X86_LOCAL_APIC
+void default_setup_apic_routing(void)
+{
+#ifdef CONFIG_X86_IO_APIC
+ printk(KERN_INFO
+ "Enabling APIC mode: Flat. Using %d I/O APICs\n",
+ nr_ioapics);
+#endif
+}
+
static void default_vector_allocation_domain(int cpu, struct cpumask *retmask)
{
/*
.smp_callin_clear_local_apic = NULL,
.store_NMI_vector = NULL,
.inquire_remote_apic = default_inquire_remote_apic,
+
+ .read = native_apic_mem_read,
+ .write = native_apic_mem_write,
+ .icr_read = native_apic_icr_read,
+ .icr_write = native_apic_icr_write,
+ .wait_icr_idle = native_apic_wait_icr_idle,
+ .safe_wait_icr_idle = native_safe_apic_wait_icr_idle,
};
extern struct genapic apic_numaq;
extern struct genapic apic_default;
struct genapic *apic = &apic_default;
+EXPORT_SYMBOL_GPL(apic);
static struct genapic *apic_probe[] __initdata = {
#ifdef CONFIG_X86_NUMAQ