xref: /linux-6.15/include/linux/hypervisor.h (revision 189c6c33)
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 Gross static 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 Gross static inline void hypervisor_pin_vcpu(int cpu)
2547ae4b05SJuergen Gross {
2647ae4b05SJuergen Gross }
2763338a38SJan Kiszka 
jailhouse_paravirt(void)2863338a38SJan Kiszka static 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 Schnelle static 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