aboutsummaryrefslogtreecommitdiff
path: root/payloads/libpayload/i386/timer.c
diff options
context:
space:
mode:
Diffstat (limited to 'payloads/libpayload/i386/timer.c')
-rw-r--r--payloads/libpayload/i386/timer.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/payloads/libpayload/i386/timer.c b/payloads/libpayload/i386/timer.c
index 260656cfe3..46d21cc6ae 100644
--- a/payloads/libpayload/i386/timer.c
+++ b/payloads/libpayload/i386/timer.c
@@ -27,9 +27,17 @@
* SUCH DAMAGE.
*/
+/** @file i386/timer.c
+ * @brief i386 specific timer routines
+ */
+
#include <libpayload.h>
#include <arch/rdtsc.h>
+/**
+ * @ingroup arch
+ * Global variable containing the speed of the processor in KHz
+ */
u32 cpu_khz;
/**
@@ -72,21 +80,39 @@ static inline void _delay(unsigned int delta)
while (rdtsc() < timeout) ;
}
+/**
+ * Delay for a specified number of nanoseconds
+ * @param n Number of nanoseconds to delay for
+ */
void ndelay(unsigned int n)
{
_delay(n * cpu_khz / 1000000);
}
+/**
+ * Delay for a specified number of microseconds
+ * @param n Number of microseconds to delay for
+ */
void udelay(unsigned int n)
{
_delay(n * cpu_khz / 1000);
}
+/**
+ * Delay for a specified number of milliseconds
+ * @param n Number of milliseconds to delay for
+ */
+
void mdelay(unsigned int m)
{
_delay(m * cpu_khz);
}
+/**
+ * Delay for a specified number of seconds
+ * @param n Number of seconds to delay for
+ */
+
void delay(unsigned int s)
{
_delay(s * cpu_khz * 1000);