1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun /* x86-specific clocksource additions */ 3*4882a593Smuzhiyun 4*4882a593Smuzhiyun #ifndef _ASM_X86_CLOCKSOURCE_H 5*4882a593Smuzhiyun #define _ASM_X86_CLOCKSOURCE_H 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun #include <asm/vdso/clocksource.h> 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun extern unsigned int vclocks_used; 10*4882a593Smuzhiyun vclock_was_used(int vclock)11*4882a593Smuzhiyunstatic inline bool vclock_was_used(int vclock) 12*4882a593Smuzhiyun { 13*4882a593Smuzhiyun return READ_ONCE(vclocks_used) & (1U << vclock); 14*4882a593Smuzhiyun } 15*4882a593Smuzhiyun vclocks_set_used(unsigned int which)16*4882a593Smuzhiyunstatic inline void vclocks_set_used(unsigned int which) 17*4882a593Smuzhiyun { 18*4882a593Smuzhiyun WRITE_ONCE(vclocks_used, READ_ONCE(vclocks_used) | (1 << which)); 19*4882a593Smuzhiyun } 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun #endif /* _ASM_X86_CLOCKSOURCE_H */ 22