/ src / lib / timer.c
timer.c
 1  /* SPDX-License-Identifier: GPL-2.0-only */
 2  
 3  #include <timer.h>
 4  #include <delay.h>
 5  #include <thread.h>
 6  
 7  __weak void init_timer(void) { /* do nothing */ }
 8  
 9  void udelay(unsigned int usec)
10  {
11  	struct stopwatch sw;
12  
13  	/*
14  	 * As the timer granularity is in microseconds pad the
15  	 * requested delay by one to get at least >= requested usec delay.
16  	 */
17  	usec += 1;
18  
19  	if (!thread_yield_microseconds(usec))
20  		return;
21  
22  	stopwatch_init_usecs_expire(&sw, usec);
23  	stopwatch_wait_until_expired(&sw);
24  }