2 * Default generic APIC driver. This handles up to 8 CPUs.
4 * Copyright 2003 Andi Kleen, SuSE Labs.
5 * Subject to the GNU Public License, v.2
7 * Generic x86 APIC driver probe layer.
9 #include <linux/threads.h>
10 #include <linux/cpumask.h>
11 #include <linux/module.h>
12 #include <linux/string.h>
13 #include <linux/kernel.h>
14 #include <linux/ctype.h>
15 #include <linux/init.h>
16 #include <linux/errno.h>
17 #include <asm/fixmap.h>
18 #include <asm/mpspec.h>
19 #include <asm/apicdef.h>
21 #include <asm/setup.h>
23 #include <linux/smp.h>
26 #include <linux/interrupt.h>
30 static int xen_phys_pkg_id(int cpuid_apic, int index_msb)
35 static struct apic apic_xen = {
39 .irq_delivery_mode = dest_LowestPrio,
40 /* logical delivery broadcast to all CPUs: */
43 .target_cpus = default_target_cpus,
45 .phys_pkg_id = xen_phys_pkg_id,
48 .send_IPI_mask = xen_send_IPI_mask,
49 .send_IPI_mask_allbutself = xen_send_IPI_mask_allbutself,
50 .send_IPI_allbutself = xen_send_IPI_allbutself,
51 .send_IPI_all = xen_send_IPI_all,
52 .send_IPI_self = xen_send_IPI_self,
56 struct apic *apic = &apic_xen;
57 EXPORT_SYMBOL_GPL(apic);