delay.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. /*
  2. * Copyright 2010 Tilera Corporation. All Rights Reserved.
  3. *
  4. * This program is free software; you can redistribute it and/or
  5. * modify it under the terms of the GNU General Public License
  6. * as published by the Free Software Foundation, version 2.
  7. *
  8. * This program is distributed in the hope that it will be useful, but
  9. * WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
  11. * NON INFRINGEMENT. See the GNU General Public License for
  12. * more details.
  13. */
  14. #ifndef _ASM_TILE_DELAY_H
  15. #define _ASM_TILE_DELAY_H
  16. /* Undefined functions to get compile-time errors. */
  17. extern void __bad_udelay(void);
  18. extern void __bad_ndelay(void);
  19. extern void __udelay(unsigned long usecs);
  20. extern void __ndelay(unsigned long nsecs);
  21. extern void __delay(unsigned long loops);
  22. #define udelay(n) (__builtin_constant_p(n) ? \
  23. ((n) > 20000 ? __bad_udelay() : __ndelay((n) * 1000)) : \
  24. __udelay(n))
  25. #define ndelay(n) (__builtin_constant_p(n) ? \
  26. ((n) > 20000 ? __bad_ndelay() : __ndelay(n)) : \
  27. __ndelay(n))
  28. #endif /* _ASM_TILE_DELAY_H */