1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef _ASM_ARM_PARAVIRT_H 3*4882a593Smuzhiyun #define _ASM_ARM_PARAVIRT_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #ifdef CONFIG_PARAVIRT 6*4882a593Smuzhiyun struct static_key; 7*4882a593Smuzhiyun extern struct static_key paravirt_steal_enabled; 8*4882a593Smuzhiyun extern struct static_key paravirt_steal_rq_enabled; 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun struct pv_time_ops { 11*4882a593Smuzhiyun unsigned long long (*steal_clock)(int cpu); 12*4882a593Smuzhiyun }; 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun struct paravirt_patch_template { 15*4882a593Smuzhiyun struct pv_time_ops time; 16*4882a593Smuzhiyun }; 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun extern struct paravirt_patch_template pv_ops; 19*4882a593Smuzhiyun paravirt_steal_clock(int cpu)20*4882a593Smuzhiyunstatic inline u64 paravirt_steal_clock(int cpu) 21*4882a593Smuzhiyun { 22*4882a593Smuzhiyun return pv_ops.time.steal_clock(cpu); 23*4882a593Smuzhiyun } 24*4882a593Smuzhiyun #endif 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun #endif 27