1 /* SPDX-License-Identifier: GPL-2.0 */ 1 2 #ifndef __ASM_GENERIC_DELAY_H 3 #define __ASM_GENERIC_DELAY_H 4 5 /* Undefined functions to get compile-time err 6 extern void __bad_udelay(void); 7 extern void __bad_ndelay(void); 8 9 extern void __udelay(unsigned long usecs); 10 extern void __ndelay(unsigned long nsecs); 11 extern void __const_udelay(unsigned long xloop 12 extern void __delay(unsigned long loops); 13 14 /* 15 * The weird n/20000 thing suppresses a "compa 16 * limited range of data type" warning with no 17 */ 18 19 /* 0x10c7 is 2**32 / 1000000 (rounded up) */ 20 #define udelay(n) 21 ({ 22 if (__builtin_constant_p(n)) { 23 if ((n) / 20000 >= 1) 24 __bad_udelay( 25 else 26 __const_udelay 27 } else { 28 __udelay(n); 29 } 30 }) 31 32 /* 0x5 is 2**32 / 1000000000 (rounded up) */ 33 #define ndelay(n) 34 ({ 35 if (__builtin_constant_p(n)) { 36 if ((n) / 20000 >= 1) 37 __bad_ndelay() 38 else 39 __const_udelay 40 } else { 41 __ndelay(n); 42 } 43 }) 44 45 #endif /* __ASM_GENERIC_DELAY_H */ 46
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.