at v2.6.13 38 lines 992 B view raw
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/config.h> 15#include <linux/param.h> 16#include <asm/cpudata.h> 17 18#ifndef __ASSEMBLY__ 19 20extern void __bad_udelay(void); 21extern void __bad_ndelay(void); 22 23extern void __udelay(unsigned long usecs); 24extern void __ndelay(unsigned long nsecs); 25extern void __const_udelay(unsigned long usecs); 26extern void __delay(unsigned long loops); 27 28#define udelay(n) (__builtin_constant_p(n) ? \ 29 ((n) > 20000 ? __bad_udelay() : __const_udelay((n) * 0x10c7ul)) : \ 30 __udelay(n)) 31 32#define ndelay(n) (__builtin_constant_p(n) ? \ 33 ((n) > 20000 ? __bad_ndelay() : __const_udelay((n) * 5ul)) : \ 34 __ndelay(n)) 35 36#endif /* !__ASSEMBLY__ */ 37 38#endif /* defined(__SPARC64_DELAY_H) */