linux/arch/tile/include/asm/delay.h
<<
>>
Prefs
   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
  15#ifndef _ASM_TILE_DELAY_H
  16#define _ASM_TILE_DELAY_H
  17
  18/* Undefined functions to get compile-time errors. */
  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 __delay(unsigned long loops);
  25
  26#define udelay(n) (__builtin_constant_p(n) ? \
  27        ((n) > 20000 ? __bad_udelay() : __ndelay((n) * 1000)) : \
  28        __udelay(n))
  29
  30#define ndelay(n) (__builtin_constant_p(n) ? \
  31        ((n) > 20000 ? __bad_ndelay() : __ndelay(n)) : \
  32        __ndelay(n))
  33
  34#endif /* _ASM_TILE_DELAY_H */
  35