Branch data Line data Source code
1 : : /* SPDX-License-Identifier: GPL-2.0 */ 2 : : #ifndef _ASM_X86_UV_UV_H 3 : : #define _ASM_X86_UV_UV_H 4 : : 5 : : #include <asm/tlbflush.h> 6 : : 7 : : enum uv_system_type {UV_NONE, UV_LEGACY_APIC, UV_X2APIC, UV_NON_UNIQUE_APIC}; 8 : : 9 : : struct cpumask; 10 : : struct mm_struct; 11 : : 12 : : #ifdef CONFIG_X86_UV 13 : : #include <linux/efi.h> 14 : : 15 : : #define UV_PROC_NODE "sgi_uv" 16 : : 17 : : static inline int uv(int uvtype) 18 : : { 19 : : /* uv(0) is "any" */ 20 : : if (uvtype >= 0 && uvtype <= 30) 21 : : return 1 << uvtype; 22 : : return 1; 23 : : } 24 : : 25 : : extern unsigned long uv_systab_phys; 26 : : 27 : : extern enum uv_system_type get_uv_system_type(void); 28 : : static inline bool is_early_uv_system(void) 29 : : { 30 : : return uv_systab_phys && uv_systab_phys != EFI_INVALID_TABLE_ADDR; 31 : : } 32 : : extern int is_uv_system(void); 33 : : extern int is_uv_hubbed(int uvtype); 34 : : extern int is_uv_hubless(int uvtype); 35 : : extern void uv_cpu_init(void); 36 : : extern void uv_nmi_init(void); 37 : : extern void uv_system_init(void); 38 : : extern const struct cpumask *uv_flush_tlb_others(const struct cpumask *cpumask, 39 : : const struct flush_tlb_info *info); 40 : : 41 : : #else /* X86_UV */ 42 : : 43 : 0 : static inline enum uv_system_type get_uv_system_type(void) { return UV_NONE; } 44 : 30 : static inline bool is_early_uv_system(void) { return 0; } 45 [ # # ]: 30 : static inline int is_uv_system(void) { return 0; } 46 : : static inline int is_uv_hubbed(int uv) { return 0; } 47 : : static inline int is_uv_hubless(int uv) { return 0; } 48 : : static inline void uv_cpu_init(void) { } 49 : 30 : static inline void uv_system_init(void) { } 50 : : static inline const struct cpumask * 51 : : uv_flush_tlb_others(const struct cpumask *cpumask, 52 : : const struct flush_tlb_info *info) 53 : : { return cpumask; } 54 : : 55 : : #endif /* X86_UV */ 56 : : 57 : : #endif /* _ASM_X86_UV_UV_H */