1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef _ASM_ARM64_PARAVIRT_H 3 #define _ASM_ARM64_PARAVIRT_H 4 5 #ifdef CONFIG_PARAVIRT 6 struct static_key; 7 extern struct static_key paravirt_steal_enabled; 8 extern struct static_key paravirt_steal_rq_enabled; 9 10 struct pv_time_ops { 11 unsigned long long (*steal_clock)(int cpu); 12 }; 13 14 struct paravirt_patch_template { 15 struct pv_time_ops time; 16 }; 17 18 extern struct paravirt_patch_template pv_ops; 19 20 static inline u64 paravirt_steal_clock(int cpu) 21 { 22 return pv_ops.time.steal_clock(cpu); 23 } 24 25 int __init pv_time_init(void); 26 27 #else 28 29 #define pv_time_init() do {} while (0) 30 31 #endif // CONFIG_PARAVIRT 32 33 #endif 34