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 7enum uv_system_type {UV_NONE, UV_LEGACY_APIC, UV_X2APIC, UV_NON_UNIQUE_APIC}; 8 9struct cpumask; 10struct mm_struct; 11 12#ifdef CONFIG_X86_UV 13#include <linux/efi.h> 14 15extern enum uv_system_type get_uv_system_type(void); 16static inline bool is_early_uv_system(void) 17{ 18 return !((efi.uv_systab == EFI_INVALID_TABLE_ADDR) || !efi.uv_systab); 19} 20extern int is_uv_system(void); 21extern int is_uv_hubless(void); 22extern void uv_cpu_init(void); 23extern void uv_nmi_init(void); 24extern void uv_system_init(void); 25extern const struct cpumask *uv_flush_tlb_others(const struct cpumask *cpumask, 26 const struct flush_tlb_info *info); 27 28#else /* X86_UV */ 29 30static inline enum uv_system_type get_uv_system_type(void) { return UV_NONE; } 31static inline bool is_early_uv_system(void) { return 0; } 32static inline int is_uv_system(void) { return 0; } 33static inline int is_uv_hubless(void) { return 0; } 34static inline void uv_cpu_init(void) { } 35static inline void uv_system_init(void) { } 36static inline const struct cpumask * 37uv_flush_tlb_others(const struct cpumask *cpumask, 38 const struct flush_tlb_info *info) 39{ return cpumask; } 40 41#endif /* X86_UV */ 42 43#endif /* _ASM_X86_UV_UV_H */ 44