# HG changeset patch # User Isaku Yamahata # Date 1213177513 -32400 # Node ID c918cf266e853ede979136b5993d889244c3da4f # Parent 471049ae911966d1eebeb78a5c5cee975379c5eb [IA64] make acpi related files compilable. Signed-off-by: Isaku Yamahata diff --git a/xen/arch/ia64/linux-xen/Makefile b/xen/arch/ia64/linux-xen/Makefile --- a/xen/arch/ia64/linux-xen/Makefile +++ b/xen/arch/ia64/linux-xen/Makefile @@ -23,3 +23,5 @@ obj-y += mm_numa.o obj-y += perfmon.o obj-y += perfmon_default_smpl.o +obj-y += acpi.o +obj-y += acpi_numa.o diff --git a/xen/arch/ia64/linux-xen/acpi.c b/xen/arch/ia64/linux-xen/acpi.c --- a/xen/arch/ia64/linux-xen/acpi.c +++ b/xen/arch/ia64/linux-xen/acpi.c @@ -51,8 +51,14 @@ #include #include #include +#ifndef XEN #include #include +#else +#include +extern u8 numa_slit[MAX_NUMNODES * MAX_NUMNODES]; +#endif + #define BAD_MADT_ENTRY(entry, end) ( \ (!entry) || (unsigned long)entry + sizeof(*entry) > end || \ @@ -71,7 +77,11 @@ unsigned long acpi_wakeup_address = 0; #ifdef CONFIG_IA64_GENERIC +#ifndef XEN static unsigned long __init acpi_find_rsdp(void) +#else +unsigned long __init acpi_find_rsdp(void) +#endif { unsigned long rsdp_phys = 0; @@ -122,8 +132,10 @@ return "uv"; else return "sn2"; +#ifndef XEN } else if (is_running_on_xen() && !strcmp(hdr->oem_id, "XEN")) { return "xen"; +#endif } return "dig"; @@ -300,6 +312,11 @@ } #ifdef CONFIG_HOTPLUG_CPU + +#ifdef XEN +unsigned int force_cpei_retarget = 0; +#endif + unsigned int can_cpei_retarget(void) { extern int cpe_vector; @@ -388,7 +405,9 @@ */ sal_platform_features |= IA64_SAL_PLATFORM_FEATURE_ITC_DRIFT; +#ifndef XEN cyclone_setup(); +#endif } } @@ -476,9 +495,17 @@ slit_table = slit; } +#ifndef XEN void __init acpi_numa_processor_affinity_init(struct acpi_srat_cpu_affinity *pa) +#else +void __init +acpi_numa_processor_affinity_init (struct acpi_table_processor_affinity *pa__) +#endif { +#ifdef XEN + struct acpi_srat_cpu_affinity *pa = (struct acpi_srat_cpu_affinity *)pa__; +#endif int pxm; if (!(pa->flags & ACPI_SRAT_CPU_ENABLED)) @@ -497,9 +524,18 @@ srat_num_cpus++; } +#ifndef XEN void __init acpi_numa_memory_affinity_init(struct acpi_srat_mem_affinity *ma) +#else +void __init +acpi_numa_memory_affinity_init (struct acpi_table_memory_affinity *ma__) +#endif { +#ifdef XEN + struct acpi_srat_mem_affinity *ma = + (struct acpi_srat_mem_affinity *)ma__; +#endif unsigned long paddr, size; int pxm; struct node_memblk_s *p, *q, *pend; @@ -606,6 +642,7 @@ } #endif /* CONFIG_ACPI_NUMA */ +#ifndef XEN /* * success: return IRQ number (>=0) * failure: return < 0 @@ -637,6 +674,7 @@ iosapic_unregister_intr(gsi); } +#endif static int __init acpi_parse_fadt(struct acpi_table_header *table) { @@ -652,7 +690,9 @@ fadt = (struct acpi_table_fadt *)fadt_header; +#ifndef XEN acpi_register_gsi(fadt->sci_interrupt, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW); +#endif return 0; } @@ -848,6 +888,7 @@ cpu_set(i, cpu_possible_map); } +#ifndef XEN int acpi_map_lsapic(acpi_handle handle, int *pcpu) { struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL }; @@ -913,8 +954,10 @@ } EXPORT_SYMBOL(acpi_unmap_lsapic); +#endif /* XEN */ #endif /* CONFIG_ACPI_HOTPLUG_CPU */ +#ifndef XEN #ifdef CONFIG_ACPI_NUMA static acpi_status __devinit acpi_map_iosapic(acpi_handle handle, u32 depth, void *context, void **ret) @@ -1001,6 +1044,7 @@ } EXPORT_SYMBOL(acpi_unregister_ioapic); +#endif /* XEN */ /* * acpi_save_state_mem() - save kernel state diff --git a/xen/arch/ia64/linux-xen/acpi_numa.c b/xen/arch/ia64/linux-xen/acpi_numa.c --- a/xen/arch/ia64/linux-xen/acpi_numa.c +++ b/xen/arch/ia64/linux-xen/acpi_numa.c @@ -31,11 +31,23 @@ #include #include +#ifndef XEN #define ACPI_NUMA 0x80000000 #define _COMPONENT ACPI_NUMA ACPI_MODULE_NAME("numa"); +#else +#define NID_INVAL -1 +#define PXM_INVAL -1 +#endif +#ifndef XEN static nodemask_t nodes_found_map = NODE_MASK_NONE; +#else +/* the above causes error: initializer element is not constant + * anyway NODE_MASK_NONE is 0 filled array. + */ +static nodemask_t nodes_found_map; +#endif /* maps to convert between proximity domain and logical node ID */ static int pxm_to_node_map[MAX_PXM_DOMAINS] @@ -78,6 +90,7 @@ return node; } +#ifndef XEN #if 0 void __cpuinit acpi_unmap_pxm_to_node(int node) { @@ -261,3 +274,4 @@ return node; } EXPORT_SYMBOL(acpi_get_node); +#endif /* XEN */ diff --git a/xen/arch/ia64/xen/Makefile b/xen/arch/ia64/xen/Makefile --- a/xen/arch/ia64/xen/Makefile +++ b/xen/arch/ia64/xen/Makefile @@ -3,7 +3,6 @@ obj-y += relocate_kernel.o obj-y += machine_kexec.o obj-y += crash.o -obj-y += acpi.o obj-y += dom0_ops.o obj-y += domain.o obj-y += dom_fw_asm.o diff --git a/xen/include/asm-ia64/linux-xen/asm/acpi.h b/xen/include/asm-ia64/linux-xen/asm/acpi.h --- a/xen/include/asm-ia64/linux-xen/asm/acpi.h +++ b/xen/include/asm-ia64/linux-xen/asm/acpi.h @@ -36,6 +36,9 @@ #include #include #include +#ifdef XEN +#include +#endif #define COMPILER_DEPENDENT_INT64 long #define COMPILER_DEPENDENT_UINT64 unsigned long diff --git a/xen/include/asm-ia64/linux-xen/asm/numa.h b/xen/include/asm-ia64/linux-xen/asm/numa.h --- a/xen/include/asm-ia64/linux-xen/asm/numa.h +++ b/xen/include/asm-ia64/linux-xen/asm/numa.h @@ -89,6 +89,8 @@ #define phys_to_nid(paddr) paddr_to_nid(paddr) extern int pxm_to_node(int pxm); extern int node_to_pxm(int node); +extern void __acpi_map_pxm_to_node(int, int); +extern int acpi_map_pxm_to_node(int); #endif #endif /* _ASM_IA64_NUMA_H */