blob: b47c2a82ff1546a7efcd77a820a990d1e08bef00 [file] [log] [blame]
Tejun Heobdbcdd42009-01-21 17:26:06 +09001#ifndef _ASM_X86_UV_UV_H
2#define _ASM_X86_UV_UV_H
3
4enum uv_system_type {UV_NONE, UV_LEGACY_APIC, UV_X2APIC, UV_NON_UNIQUE_APIC};
5
Randy Dunlap58105ef2009-01-31 12:32:26 -08006struct cpumask;
7struct mm_struct;
8
Nick Piggin03b48632009-01-20 04:36:04 +01009#ifdef CONFIG_X86_UV
Tejun Heobdbcdd42009-01-21 17:26:06 +090010
11extern enum uv_system_type get_uv_system_type(void);
12extern int is_uv_system(void);
13extern void uv_cpu_init(void);
Russ Anderson78c06172010-02-26 10:49:12 -060014extern void uv_nmi_init(void);
Tejun Heobdbcdd42009-01-21 17:26:06 +090015extern void uv_system_init(void);
Tejun Heobdbcdd42009-01-21 17:26:06 +090016extern const struct cpumask *uv_flush_tlb_others(const struct cpumask *cpumask,
17 struct mm_struct *mm,
Alex Shie7b52ff2012-06-28 09:02:17 +080018 unsigned long start,
19 unsigned end,
Tejun Heobdbcdd42009-01-21 17:26:06 +090020 unsigned int cpu);
21
Nick Piggin03b48632009-01-20 04:36:04 +010022#else /* X86_UV */
Tejun Heobdbcdd42009-01-21 17:26:06 +090023
24static inline enum uv_system_type get_uv_system_type(void) { return UV_NONE; }
25static inline int is_uv_system(void) { return 0; }
26static inline void uv_cpu_init(void) { }
27static inline void uv_system_init(void) { }
Tejun Heobdbcdd42009-01-21 17:26:06 +090028static inline const struct cpumask *
29uv_flush_tlb_others(const struct cpumask *cpumask, struct mm_struct *mm,
Alex Shie7b52ff2012-06-28 09:02:17 +080030 unsigned long start, unsigned long end, unsigned int cpu)
Tejun Heobdbcdd42009-01-21 17:26:06 +090031{ return cpumask; }
32
Nick Piggin03b48632009-01-20 04:36:04 +010033#endif /* X86_UV */
Tejun Heobdbcdd42009-01-21 17:26:06 +090034
35#endif /* _ASM_X86_UV_UV_H */