| 12345678910111213141516171819202122232425262728293031323334353637383940414243 | #ifndef IO_H#define IO_H#include "iodev.h"static inline void pause(void){    /* Placeholder for anything that might want to be done while waiting */}static inline void set_led(uint8_t leds){    LED = leds;}static inline uint32_t rdtime(void){    uint32_t t;    asm volatile("rdtime %0" : "=r" (t));    return t;}static inline uint64_t rdtimeq(void){    uint32_t l, h1, h0;    asm volatile("rdtimeh %0; rdtime %1; %rdtimeh %2"		 : "=r" (h1), "=r" (l), "=r" (h0));    return ((int32_t)l < 0) ? h1 : h0;}static inline void udelay(uint32_t us){    uint32_t cycles = us * (CPU_HZ / 1000000);    uint32_t start = rdtime();    while (rdtime() - start < cycles)	pause();}#endif /* IO_H */
 |