xref: /kvm-unit-tests/lib/powerpc/asm/time.h (revision 9c5e19134a2eb35a2f2d7684a66875eca8f3a373)
18b10d4faSNicholas Piggin #ifndef _ASMPOWERPC_TIME_H_
28b10d4faSNicholas Piggin #define _ASMPOWERPC_TIME_H_
38b10d4faSNicholas Piggin 
48b10d4faSNicholas Piggin #include <libcflat.h>
58b10d4faSNicholas Piggin #include <asm/processor.h>
6*9c5e1913SNicholas Piggin #include <asm/reg.h>
78b10d4faSNicholas Piggin 
get_tb(void)88b10d4faSNicholas Piggin static inline uint64_t get_tb(void)
98b10d4faSNicholas Piggin {
108b10d4faSNicholas Piggin 	return mfspr(SPR_TB);
118b10d4faSNicholas Piggin }
128b10d4faSNicholas Piggin 
138b10d4faSNicholas Piggin extern uint64_t get_clock_us(void);
148b10d4faSNicholas Piggin extern uint64_t get_clock_ms(void);
158b10d4faSNicholas Piggin extern void delay(uint64_t cycles);
168b10d4faSNicholas Piggin extern void udelay(uint64_t us);
178b10d4faSNicholas Piggin extern void sleep_tb(uint64_t cycles);
188b10d4faSNicholas Piggin extern void usleep(uint64_t us);
198b10d4faSNicholas Piggin 
mdelay(uint64_t ms)208b10d4faSNicholas Piggin static inline void mdelay(uint64_t ms)
218b10d4faSNicholas Piggin {
228b10d4faSNicholas Piggin 	while (ms--)
238b10d4faSNicholas Piggin 		udelay(1000);
248b10d4faSNicholas Piggin }
258b10d4faSNicholas Piggin 
msleep(uint64_t ms)268b10d4faSNicholas Piggin static inline void msleep(uint64_t ms)
278b10d4faSNicholas Piggin {
288b10d4faSNicholas Piggin 	usleep(ms * 1000);
298b10d4faSNicholas Piggin }
308b10d4faSNicholas Piggin 
318b10d4faSNicholas Piggin #endif /* _ASMPOWERPC_TIME_H_ */
32