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 Maostatic 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 Maostatic inline int pv_ipi_init(void) 2774c16b2eSBibo Mao { 2874c16b2eSBibo Mao return 0; 2974c16b2eSBibo Mao } 3074c16b2eSBibo Mao pv_time_init(void)3103779999SBibo Maostatic inline int pv_time_init(void) 3203779999SBibo Mao { 3303779999SBibo Mao return 0; 3403779999SBibo Mao } 35e5ba90abSBibo Mao pv_spinlock_init(void)36e5ba90abSBibo Maostatic 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