summaryrefslogtreecommitdiff
path: root/gpxe/src/include/gpxe/timer.h
diff options
context:
space:
mode:
Diffstat (limited to 'gpxe/src/include/gpxe/timer.h')
-rw-r--r--gpxe/src/include/gpxe/timer.h41
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 */
+