/* SPDX-License-Identifier: GPL-2.0 */ | |
/* | |
* ARM simple delay routines | |
*/ | |
#ifndef SELFTEST_KVM_ARM_DELAY_H | |
#define SELFTEST_KVM_ARM_DELAY_H | |
#include "arch_timer.h" | |
static inline void __delay(uint64_t cycles) | |
{ | |
enum arch_timer timer = VIRTUAL; | |
uint64_t start = timer_get_cntct(timer); | |
while ((timer_get_cntct(timer) - start) < cycles) | |
cpu_relax(); | |
} | |
static inline void udelay(unsigned long usec) | |
{ | |
__delay(usec_to_cycles(usec)); | |
} | |
#endif /* SELFTEST_KVM_ARM_DELAY_H */ |