diff options
Diffstat (limited to 'gpxe/src/include/gpxe/timer.h')
-rw-r--r-- | gpxe/src/include/gpxe/timer.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/gpxe/src/include/gpxe/timer.h b/gpxe/src/include/gpxe/timer.h new file mode 100644 index 00000000..b7057225 --- /dev/null +++ b/gpxe/src/include/gpxe/timer.h @@ -0,0 +1,41 @@ +#ifndef GPXE_TIMER_H +#define GPXE_TIMER_H + +#include <stddef.h> +#include <gpxe/tables.h> + +typedef unsigned long tick_t; + +#define MSECS_IN_SEC (1000) +#define USECS_IN_SEC (1000*1000) +#define USECS_IN_MSEC (1000) + +#define TICKS_PER_SEC USECS_IN_SEC + +extern tick_t currticks ( void ); + +extern void generic_currticks_udelay ( unsigned int usecs ); + +/** A timer */ +struct timer { + /** Initialise timer + * + * @ret rc Return status code + */ + int ( * init ) ( void ); + /** Read current time + * + * @ret ticks Current time, in ticks + */ + tick_t ( * currticks ) ( void ); + /** Delay + * + * @v usecs Time to delay, in microseconds + */ + void ( * udelay ) ( unsigned int usecs ); +}; + +#define __timer( order ) __table ( struct timer, timers, order ) + +#endif /* GPXE_TIMER_H */ + |