1#ifndef __ASM_ARM_DELAY_H 2#define __ASM_ARM_DELAY_H 3 4/* 5 * Copyright (C) 1995 Russell King 6 * 7 * Delay routines, using a pre-computed "loops_per_second" value. 8 */ 9 10extern void __delay(int loops); 11 12/* 13 * division by multiplication: you don't have to worry about 14 * loss of precision. 15 * 16 * Use only for very small delays ( < 1 msec). Should probably use a 17 * lookup table, really, as the multiplications take much too long with 18 * short delays. This is a "reasonable" implementation, though (and the 19 * first constant multiplications gets optimized away if the delay is 20 * a constant) 21 */ 22extern void udelay(unsigned long usecs); 23 24static inline unsigned long muldiv(unsigned long a, unsigned long b, unsigned long c) 25{ 26 return a * b / c; 27} 28 29 30 31#endif /* defined(_ARM_DELAY_H) */ 32 33