xref: /openbmc/linux/arch/arm64/include/asm/paravirt.h (revision dc6a81c3)
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