1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 247ae4b05SJuergen Gross #ifndef __LINUX_HYPEVISOR_H 347ae4b05SJuergen Gross #define __LINUX_HYPEVISOR_H 447ae4b05SJuergen Gross 547ae4b05SJuergen Gross /* 647ae4b05SJuergen Gross * Generic Hypervisor support 747ae4b05SJuergen Gross * Juergen Gross <[email protected]> 847ae4b05SJuergen Gross */ 947ae4b05SJuergen Gross 10f72e38e8SJuergen Gross #ifdef CONFIG_X86 1163338a38SJan Kiszka 1263338a38SJan Kiszka #include <asm/jailhouse_para.h> 13f72e38e8SJuergen Gross #include <asm/x86_init.h> 1463338a38SJan Kiszka hypervisor_pin_vcpu(int cpu)15f72e38e8SJuergen Grossstatic inline void hypervisor_pin_vcpu(int cpu) 16f72e38e8SJuergen Gross { 17f72e38e8SJuergen Gross x86_platform.hyper.pin_vcpu(cpu); 18f72e38e8SJuergen Gross } 1963338a38SJan Kiszka 2063338a38SJan Kiszka #else /* !CONFIG_X86 */ 2163338a38SJan Kiszka 2263338a38SJan Kiszka #include <linux/of.h> 2363338a38SJan Kiszka hypervisor_pin_vcpu(int cpu)2447ae4b05SJuergen Grossstatic inline void hypervisor_pin_vcpu(int cpu) 2547ae4b05SJuergen Gross { 2647ae4b05SJuergen Gross } 2763338a38SJan Kiszka jailhouse_paravirt(void)2863338a38SJan Kiszkastatic inline bool jailhouse_paravirt(void) 2963338a38SJan Kiszka { 3063338a38SJan Kiszka return of_find_compatible_node(NULL, NULL, "jailhouse,cell"); 3163338a38SJan Kiszka } 3263338a38SJan Kiszka 3363338a38SJan Kiszka #endif /* !CONFIG_X86 */ 3447ae4b05SJuergen Gross hypervisor_isolated_pci_functions(void)35*189c6c33SNiklas Schnellestatic inline bool hypervisor_isolated_pci_functions(void) 36*189c6c33SNiklas Schnelle { 37*189c6c33SNiklas Schnelle if (IS_ENABLED(CONFIG_S390)) 38*189c6c33SNiklas Schnelle return true; 39*189c6c33SNiklas Schnelle 40*189c6c33SNiklas Schnelle return jailhouse_paravirt(); 41*189c6c33SNiklas Schnelle } 42*189c6c33SNiklas Schnelle 4347ae4b05SJuergen Gross #endif /* __LINUX_HYPEVISOR_H */ 44