1/* delay.h: Linux delay routines on sparc64. 2 * 3 * Copyright (C) 1996, 2004 David S. Miller (davem@davemloft.net). 4 * 5 * Based heavily upon x86 variant which is: 6 * Copyright (C) 1993 Linus Torvalds 7 * 8 * Delay routines calling functions in arch/sparc64/lib/delay.c 9 */ 10 11#ifndef __SPARC64_DELAY_H 12#define __SPARC64_DELAY_H 13 14#include <linux/param.h> 15#include <asm/cpudata.h> 16 17#ifndef __ASSEMBLY__ 18 19extern void __bad_udelay(void); 20extern void __bad_ndelay(void); 21 22extern void __udelay(unsigned long usecs); 23extern void __ndelay(unsigned long nsecs); 24extern void __const_udelay(unsigned long usecs); 25extern void __delay(unsigned long loops); 26 27#define udelay(n) (__builtin_constant_p(n) ? \ 28 ((n) > 20000 ? __bad_udelay() : __const_udelay((n) * 0x10c7ul)) : \ 29 __udelay(n)) 30 31#define ndelay(n) (__builtin_constant_p(n) ? \ 32 ((n) > 20000 ? __bad_ndelay() : __const_udelay((n) * 5ul)) : \ 33 __ndelay(n)) 34 35#endif /* !__ASSEMBLY__ */ 36 37#endif /* defined(__SPARC64_DELAY_H) */ 38