8 * The timer API provides udelay() for fixed delays, and currticks()
9 * for a monotonically increasing tick counter.
13 #include <config/timer.h>
16 * Calculate static inline timer API function name
18 * @v _prefix Subsystem prefix
19 * @v _api_func API function
20 * @ret _subsys_func Subsystem API function
22 #define TIMER_INLINE( _subsys, _api_func ) \
23 SINGLE_API_INLINE ( TIMER_PREFIX_ ## _subsys, _api_func )
26 * Provide a timer API implementation
28 * @v _prefix Subsystem prefix
29 * @v _api_func API function
30 * @v _func Implementing function
32 #define PROVIDE_TIMER( _subsys, _api_func, _func ) \
33 PROVIDE_SINGLE_API ( TIMER_PREFIX_ ## _subsys, _api_func, _func )
36 * Provide a static inline timer API implementation
38 * @v _prefix Subsystem prefix
39 * @v _api_func API function
41 #define PROVIDE_TIMER_INLINE( _subsys, _api_func ) \
42 PROVIDE_SINGLE_API_INLINE ( TIMER_PREFIX_ ## _subsys, _api_func )
44 /* Include all architecture-independent I/O API headers */
46 /* Include all architecture-dependent I/O API headers */
47 #include <bits/timer.h>
50 * Delay for a fixed number of microseconds
52 * @v usecs Number of microseconds for which to delay
54 void udelay ( unsigned long usecs );
57 * Get current system time in ticks
59 * @ret ticks Current time, in ticks
61 unsigned long currticks ( void );
64 * Get number of ticks per second
66 * @ret ticks_per_sec Number of ticks per second
68 unsigned long ticks_per_sec ( void );
70 /** Number of ticks per second */
71 #define TICKS_PER_SEC ( ticks_per_sec() )
73 #endif /* _GPXE_TIMER_H */