xref: /linux/arch/loongarch/include/asm/paravirt.h (revision c771600c6af14749609b49565ffb4cac2959710d) !
174c16b2eSBibo Mao /* SPDX-License-Identifier: GPL-2.0 */
274c16b2eSBibo Mao #ifndef _ASM_LOONGARCH_PARAVIRT_H
374c16b2eSBibo Mao #define _ASM_LOONGARCH_PARAVIRT_H
474c16b2eSBibo Mao 
574c16b2eSBibo Mao #ifdef CONFIG_PARAVIRT
674c16b2eSBibo Mao 
774c16b2eSBibo Mao #include <linux/static_call_types.h>
874c16b2eSBibo Mao struct static_key;
974c16b2eSBibo Mao extern struct static_key paravirt_steal_enabled;
1074c16b2eSBibo Mao extern struct static_key paravirt_steal_rq_enabled;
1174c16b2eSBibo Mao 
1274c16b2eSBibo Mao u64 dummy_steal_clock(int cpu);
1374c16b2eSBibo Mao DECLARE_STATIC_CALL(pv_steal_clock, dummy_steal_clock);
1474c16b2eSBibo Mao 
paravirt_steal_clock(int cpu)1574c16b2eSBibo Mao static inline u64 paravirt_steal_clock(int cpu)
1674c16b2eSBibo Mao {
1774c16b2eSBibo Mao 	return static_call(pv_steal_clock)(cpu);
1874c16b2eSBibo Mao }
1974c16b2eSBibo Mao 
2074c16b2eSBibo Mao int __init pv_ipi_init(void);
2103779999SBibo Mao int __init pv_time_init(void);
22e5ba90abSBibo Mao int __init pv_spinlock_init(void);
2374c16b2eSBibo Mao 
2474c16b2eSBibo Mao #else
2574c16b2eSBibo Mao 
pv_ipi_init(void)2674c16b2eSBibo Mao static inline int pv_ipi_init(void)
2774c16b2eSBibo Mao {
2874c16b2eSBibo Mao 	return 0;
2974c16b2eSBibo Mao }
3074c16b2eSBibo Mao 
pv_time_init(void)3103779999SBibo Mao static inline int pv_time_init(void)
3203779999SBibo Mao {
3303779999SBibo Mao 	return 0;
3403779999SBibo Mao }
35e5ba90abSBibo Mao 
pv_spinlock_init(void)36e5ba90abSBibo Mao static inline int pv_spinlock_init(void)
37e5ba90abSBibo Mao {
38e5ba90abSBibo Mao 	return 0;
39e5ba90abSBibo Mao }
40e5ba90abSBibo Mao 
4174c16b2eSBibo Mao #endif // CONFIG_PARAVIRT
4274c16b2eSBibo Mao #endif
43