#include <public/platform.h>
#include <public/sysctl.h>
#include <acpi/cpufreq/cpufreq.h>
+#include <asm/apic.h>
/*#define DEBUG_PM_CX*/
#include <xen/cpu.h>
#include <public/platform.h>
#include <asm/tboot.h>
-
+#include <asm/apic.h>
+#include <asm/io_apic.h>
#include <acpi/cpufreq/cpufreq.h>
uint32_t system_reset_counter = 1;
#include <asm/processor.h>
#include <asm/hvm/support.h>
#include <asm/setup.h> /* amd_init_cpu */
+#include <asm/acpi.h>
#include "cpu.h"
#include "amd.h"
#include <asm/msr.h>
#include <asm/p2m.h>
#include <asm/mce.h>
+#include <asm/apic.h>
#include "mce.h"
#include "x86_mca.h"
#include <asm/shared.h>
#include <asm/hvm/support.h>
#include <asm/hpet.h>
+#include <asm/apic.h>
+#include <asm/io_apic.h>
static atomic_t waiting_for_crash_ipi;
static unsigned int crashing_cpu;
#include <asm/e820.h>
#include <asm/acpi.h>
#include <asm/bzimage.h> /* for bzimage_parse */
+#include <asm/io_apic.h>
#include <public/version.h>
#include <xen/init.h>
#include <xen/dmi.h>
#include <asm/mach-default/mach_mpparse.h>
+#include <asm/io_apic.h>
static int dmi_bigsmp; /* can be set by dmi scanners */
#include <xen/string.h>
#include <xen/smp.h>
#include <xen/init.h>
+#include <asm/io_apic.h>
#include <asm/mach-default/mach_mpparse.h>
/* should be called last. */
#include <xen/smp.h>
#include <xen/init.h>
#include <asm/mach-summit/mach_mpparse.h>
+#include <asm/io_apic.h>
static __init int probe_summit(void)
{
* Place - Suite 330, Boston, MA 02111-1307 USA.
*/
+#include <xen/config.h>
+#include <xen/init.h>
#include <xen/cpumask.h>
#include <asm/apicdef.h>
#include <asm/genapic.h>
+#include <asm/apic.h>
+#include <asm/io_apic.h>
#include <xen/smp.h>
#include <asm/mach-default/mach_mpparse.h>
#include <asm/hvm/cacheattr.h>
#include <asm/hvm/trace.h>
#include <asm/mtrr.h>
+#include <asm/apic.h>
#include <public/sched.h>
#include <public/hvm/ioreq.h>
#include <public/version.h>
#include <asm/hvm/vpt.h>
#include <asm/hvm/trace.h>
#include <asm/hap.h>
+#include <asm/apic.h>
#include <asm/debugger.h>
u32 svm_feature_flags;
#include <asm/system.h>
#include <asm/regs.h>
#include <asm/types.h>
+#include <asm/apic.h>
#include <asm/msr.h>
#include <asm/msr-index.h>
#include <asm/hvm/support.h>
#include <asm/hvm/support.h>
#include <asm/current.h>
#include <asm/event.h>
+#include <asm/io_apic.h>
/* HACK: Route IRQ0 only to VCPU0 to prevent time jumps. */
#define IRQ0_SPECIAL_ROUTING 1
#include <xen/domain_page.h>
#include <asm/paging.h>
#include <asm/p2m.h>
+#include <asm/apic.h>
#include <asm/hvm/support.h>
#include <public/sched.h>
#include <public/hvm/hvm_op.h>
#include <xen/numa.h>
#include <asm/current.h>
#include <asm/page.h>
+#include <asm/apic.h>
+#include <asm/io_apic.h>
#include <asm/hvm/hvm.h>
#include <asm/hvm/io.h>
#include <asm/hvm/support.h>
return 1;
}
+bool_t is_vlapic_lvtpc_enabled(struct vlapic *vlapic)
+{
+ return (vlapic_enabled(vlapic) &&
+ !(vlapic_get_reg(vlapic, APIC_LVTPC) & APIC_LVT_MASKED));
+}
+
/* Reset the VLPAIC back to its power-on/reset state. */
void vlapic_reset(struct vlapic *vlapic)
{
#include <asm/hvm/support.h>
#include <asm/current.h>
#include <asm/event.h>
+#include <asm/io_apic.h>
static void vmsi_inj_irq(
struct domain *d,
#include <asm/hvm/trace.h>
#include <asm/xenoprof.h>
#include <asm/debugger.h>
+#include <asm/apic.h>
enum handler_return { HNDL_done, HNDL_unhandled, HNDL_exception_raised };
#include <asm/system.h>
#include <asm/regs.h>
#include <asm/types.h>
+#include <asm/apic.h>
#include <asm/msr.h>
#include <asm/msr-index.h>
#include <asm/hvm/support.h>
#include <asm/hvm/support.h>
#include <asm/hvm/vpt.h>
#include <asm/event.h>
+#include <asm/apic.h>
#define mode_is(d, name) \
((d)->arch.hvm_domain.params[HVM_PARAM_TIMER_MODE] == HVMPTM_##name)
#include <xsm/xsm.h>
#include <xen/trace.h>
#include <asm/setup.h>
+#include <asm/fixmap.h>
#include <asm/mem_sharing.h>
/*
int acpi_numa __devinitdata;
+int srat_disabled(void)
+{
+ return numa_off || acpi_numa < 0;
+}
+
/*
* Given a shift value, try to populate memnodemap[]
* Returns :
#include <acpi/cpufreq/processor_perf.h>
#include <asm/edd.h>
#include <asm/mtrr.h>
+#include <asm/io_apic.h>
#include "cpu/mtrr/mtrr.h"
#include <xsm/xsm.h>
#include <asm/processor.h>
#include <asm/mpspec.h>
#include <asm/tboot.h>
+#include <asm/apic.h>
enum reboot_type {
BOOT_TRIPLE = 't',
#include <asm/hvm/support.h>
#include <mach_apic.h>
+int hard_smp_processor_id(void)
+{
+ return get_apic_id();
+}
+
+int logical_smp_processor_id(void)
+{
+ return get_logical_apic_id();
+}
+
/*
* send_IPI_mask(cpumask, vector): sends @vector IPI to CPUs in @cpumask,
* excluding the local CPU. @cpumask may be empty.
#include <asm/hvm/vpt.h>
#include <asm/hypercall.h>
#include <asm/mce.h>
+#include <asm/apic.h>
#include <public/arch-x86/cpuid.h>
/*
#include <asm/flushtlb.h>
#include <asm/hardirq.h>
#include <asm/hvm/support.h>
+#include <asm/fixmap.h>
static inline struct vcpu *mapcache_current_vcpu(void)
{
* Author: Allen Kay <allen.m.kay@intel.com> - adapted to xen from Linux
*/
+#include <xen/config.h>
+#include <xen/init.h>
#include <xen/mm.h>
#include <xen/acpi.h>
#include <xen/xmalloc.h>
* copied from Linux
*/
+#include <xen/config.h>
+#include <xen/init.h>
#include <xen/mm.h>
#include <xen/acpi.h>
#include <xen/xmalloc.h>
#include <xen/delay.h>
#include <xen/shutdown.h>
#include <xen/console.h>
+#include <xen/kexec.h>
#include <asm/debugger.h>
#include <public/sched.h>
#include <xen/config.h>
#include <xen/errno.h>
+#include <asm/apicdef.h>
#include <asm/amd-iommu.h>
#include <asm/hvm/svm/amd-iommu-proto.h>
#include <asm/hvm/svm/amd-iommu-acpi.h>
#include <xen/hvm/iommu.h>
#include <asm/amd-iommu.h>
#include <asm/hvm/svm/amd-iommu-proto.h>
+#include <asm/io_apic.h>
#define INTREMAP_TABLE_ORDER 1
#define INTREMAP_LENGTH 0xB
#include <xen/delay.h>
#include <xen/keyhandler.h>
#include <xen/tasklet.h>
+#ifdef CONFIG_X86
+#include <asm/msi.h>
+#endif
LIST_HEAD(alldevs_list);
spinlock_t pcidevs_lock = SPIN_LOCK_UNLOCKED;
#define nr_ioapics iosapic_get_nr_iosapics()
#define nr_ioapic_registers(i) iosapic_get_nr_pins(i)
#else
+#include <asm/apic.h>
+#include <asm/io_apic.h>
#define nr_ioapic_registers(i) nr_ioapic_registers[i]
#endif
#include "vtd.h"
#include "extern.h"
+#if defined(CONFIG_X86)
+#include <asm/io_apic.h>
+#endif
+
int is_usb_device(u8 bus, u8 devfn)
{
u16 class = pci_conf_read16(bus, PCI_SLOT(devfn), PCI_FUNC(devfn),
#include <asm/paging.h>
#include <xen/iommu.h>
#include <xen/numa.h>
+#include <asm/fixmap.h>
#include "../iommu.h"
#include "../dmar.h"
#include "../vtd.h"
extern int check_nmi_watchdog (void);
extern void enable_NMI_through_LVT0 (void * dummy);
-extern void watchdog_disable(void);
-extern void watchdog_enable(void);
-
extern unsigned int nmi_watchdog;
#define NMI_NONE 0
#define NMI_IO_APIC 1
#define __X86_BZIMAGE_H__
#include <xen/config.h>
+#include <xen/init.h>
int __init bzimage_headroom(char *image_start, unsigned long image_length);
#define ARCH_CRASH_SAVE_VMCOREINFO
+#ifndef __ASSEMBLY__
+extern void watchdog_disable(void);
+extern void watchdog_enable(void);
+#endif
+
#endif /* __X86_CONFIG_H__ */
*((uint32_t *)(&vlapic->regs->data[reg])) = val;
}
-static inline int is_vlapic_lvtpc_enabled(struct vlapic *vlapic)
-{
- return vlapic_enabled(vlapic) &&
- !(vlapic_get_reg(vlapic, APIC_LVTPC) & APIC_LVT_MASKED);
-}
+bool_t is_vlapic_lvtpc_enabled(struct vlapic *vlapic);
int vlapic_set_irq(struct vlapic *vlapic, uint8_t vec, uint8_t trig);
#ifndef __ASM_MACH_APIC_H
#define __ASM_MACH_APIC_H
+#include <asm/apic.h>
+#include <asm/io_apic.h>
#include <asm/genapic.h>
#include <asm/smp.h>
extern void numa_init_array(void);
extern int numa_off;
-static __devinit inline int srat_disabled(void)
-{
- return numa_off || acpi_numa < 0;
-}
+
+extern int srat_disabled(void);
extern void numa_set_node(int cpu, int node);
extern int setup_node(int pxm);
extern void srat_detect_node(int cpu);
#include <asm/current.h>
#endif
-#ifdef CONFIG_X86_LOCAL_APIC
#ifndef __ASSEMBLY__
#include <asm/bitops.h>
#include <asm/mpspec.h>
-#ifdef CONFIG_X86_IO_APIC
-#include <asm/io_apic.h>
-#endif
-#include <asm/apic.h>
-#endif
#endif
#define BAD_APICID -1U
*/
#define raw_smp_processor_id() (get_processor_id())
-#ifdef CONFIG_X86_LOCAL_APIC
-
-static inline int hard_smp_processor_id(void)
-{
- /* we don't want to mark this access volatile - bad code generation */
- return get_apic_id();
-}
-
-static __inline int logical_smp_processor_id(void)
-{
- /* we don't want to mark this access volatile - bad code generation */
- return get_logical_apic_id();
-}
-
-#endif
+int hard_smp_processor_id(void);
+int logical_smp_processor_id(void);
#endif /* !__ASSEMBLY__ */
#include <xen/cpumask.h>
#include <xen/spinlock.h>
#include <xen/time.h>
+#include <xen/list.h>
#include <asm/regs.h>
#include <asm/hardirq.h>