summaryrefslogtreecommitdiff
path: root/payloads/libpayload
diff options
context:
space:
mode:
Diffstat (limited to 'payloads/libpayload')
-rw-r--r--payloads/libpayload/i386/timer.c26
-rw-r--r--payloads/libpayload/include/libpayload.h11
2 files changed, 35 insertions, 2 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);
diff --git a/payloads/libpayload/include/libpayload.h b/payloads/libpayload/include/libpayload.h
index 3351fd4927..96eaef2841 100644
--- a/payloads/libpayload/include/libpayload.h
+++ b/payloads/libpayload/include/libpayload.h
@@ -244,6 +244,7 @@ long int labs(long int j);
long long int llabs(long long int j);
u8 bin2hex(u8 b);
u8 hex2bin(u8 h);
+void fatal(const char* msg) __attribute__ ((noreturn));
/** @} */
/**
@@ -398,6 +399,8 @@ int lfclose(struct LFILE *file);
/**
* @defgroup arch Architecture Specific Functions
+ * This modules contains global architecure specific functions.
+ * All architectures are expected to define these functions.
* @{
*/
int get_coreboot_info(struct sysinfo_t *info);
@@ -411,9 +414,13 @@ void udelay(unsigned int n);
void mdelay(unsigned int n);
void delay(unsigned int n);
-#define abort() halt()
+#define abort() halt() /**< Alias for the halt() function */
+
+/**
+ * Stops executions and halts the processor. This function does
+ * not return.
+ */
void halt(void) __attribute__ ((noreturn));
-void fatal(const char* msg) __attribute__ ((noreturn));
/** @} */
/**