delay.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:1k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. #ifndef _LINUX_DELAY_H
  2. #define _LINUX_DELAY_H
  3. /*
  4.  * Copyright (C) 1993 Linus Torvalds
  5.  *
  6.  * Delay routines, using a pre-computed "loops_per_jiffy" value.
  7.  */
  8. extern unsigned long loops_per_jiffy;
  9. #include <asm/delay.h>
  10. /*
  11.  * Using udelay() for intervals greater than a few milliseconds can
  12.  * risk overflow for high loops_per_jiffy (high bogomips) machines. The
  13.  * mdelay() provides a wrapper to prevent this.  For delays greater
  14.  * than MAX_UDELAY_MS milliseconds, the wrapper is used.  Architecture
  15.  * specific values can be defined in asm-???/delay.h as an override.
  16.  * The 2nd mdelay() definition ensures GCC will optimize away the 
  17.  * while loop for the common cases where n <= MAX_UDELAY_MS  --  Paul G.
  18.  */
  19. #ifndef MAX_UDELAY_MS
  20. #define MAX_UDELAY_MS 5
  21. #endif
  22. #ifdef notdef
  23. #define mdelay(n) (
  24. {unsigned long msec=(n); while (msec--) udelay(1000);})
  25. #else
  26. #define mdelay(n) (
  27. (__builtin_constant_p(n) && (n)<=MAX_UDELAY_MS) ? udelay((n)*1000) : 
  28. ({unsigned long msec=(n); while (msec--) udelay(1000);}))
  29. #endif
  30. #endif /* defined(_LINUX_DELAY_H) */