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