For libflashrom we need the delay functions but when including the whole libpayload.h it has conflicting symbols. Change-Id: I6e4a669b8ba25836fb870d74c200985c1bfdb387 Signed-off-by: Thomas Heijligen <src@posteo.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/70139 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nico Huber <nico.h@gmx.de> Reviewed-by: Julius Werner <jwerner@chromium.org>
		
			
				
	
	
		
			60 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* SPDX-License-Identifier: BSD-3-Clause */
 | 
						|
 | 
						|
#ifndef LIBPAYLOAD_DELAY_H
 | 
						|
#define LIBPAYLOAD_DELAY_H
 | 
						|
 | 
						|
#include <stdint.h>
 | 
						|
 | 
						|
#define NSECS_PER_SEC 1000000000
 | 
						|
#define USECS_PER_SEC 1000000
 | 
						|
#define MSECS_PER_SEC 1000
 | 
						|
#define NSECS_PER_MSEC (NSECS_PER_SEC / MSECS_PER_SEC)
 | 
						|
#define NSECS_PER_USEC (NSECS_PER_SEC / USECS_PER_SEC)
 | 
						|
#define USECS_PER_MSEC (USECS_PER_SEC / MSECS_PER_SEC)
 | 
						|
 | 
						|
unsigned int get_cpu_speed(void);
 | 
						|
 | 
						|
void arch_ndelay(uint64_t n);
 | 
						|
 | 
						|
/**
 | 
						|
 * Delay for a specified number of nanoseconds.
 | 
						|
 *
 | 
						|
 * @param ns Number of nanoseconds to delay for.
 | 
						|
 */
 | 
						|
static inline void ndelay(unsigned int ns)
 | 
						|
{
 | 
						|
	arch_ndelay((uint64_t)ns);
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Delay for a specified number of microseconds.
 | 
						|
 *
 | 
						|
 * @param us Number of microseconds to delay for.
 | 
						|
 */
 | 
						|
static inline void udelay(unsigned int us)
 | 
						|
{
 | 
						|
	arch_ndelay((uint64_t)us * NSECS_PER_USEC);
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Delay for a specified number of milliseconds.
 | 
						|
 *
 | 
						|
 * @param ms Number of milliseconds to delay for.
 | 
						|
 */
 | 
						|
static inline void mdelay(unsigned int ms)
 | 
						|
{
 | 
						|
	arch_ndelay((uint64_t)ms * NSECS_PER_MSEC);
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Delay for a specified number of seconds.
 | 
						|
 *
 | 
						|
 * @param s Number of seconds to delay for.
 | 
						|
 */
 | 
						|
static inline void delay(unsigned int s)
 | 
						|
{
 | 
						|
	arch_ndelay((uint64_t)s * NSECS_PER_SEC);
 | 
						|
}
 | 
						|
 | 
						|
#endif /* LIBPAYLOAD_DELAY_H */
 |