at v2.6.18 34 lines 820 B view raw
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 * 22 * FIXME - lets improve it then... 23 */ 24extern void udelay(unsigned long usecs); 25 26static inline unsigned long muldiv(unsigned long a, unsigned long b, unsigned long c) 27{ 28 return a * b / c; 29} 30 31 32 33#endif /* defined(_ARM_DELAY_H) */ 34