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 #include +/** + * @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)); /** @} */ /**