1 /* Public domain. */ 2 3#ifndef _LINUX_DELAY_H 4#define _LINUX_DELAY_H 5 6#include <sys/param.h> 7#include <sys/systm.h> 8 9 static inline void 10 udelay(unsigned long usecs) 11{ 12 DELAY(usecs); 13} 14 15 static inline void 16 ndelay(unsigned long nsecs) 17{ 18 DELAY(MAX(nsecs / 1000, 1)); 19} 20 21 static inline void 22 usleep_range(unsigned long min, unsigned long max) 23{ 24 DELAY((min + max) / 2); 25} 26 27 static inline void 28 mdelay(unsigned long msecs) 29{ 30 int loops = msecs; 31 while (loops--) 32 DELAY(1000); 33} 34 35#define drm_msleep(x) mdelay(x) 36 37 static inline void 38 fsleep(unsigned long usecs) 39{ 40 DELAY(usecs); 41} 42 43 static inline unsigned int 44 msleep_interruptible(unsigned int msecs) 45{ 46 int r = tsleep_nsec(&nowake, PWAIT|PCATCH, "msleepi", 47 MSEC_TO_NSEC(msecs)); 48 if (r == EINTR) 49 return 1; 50 return 0; 51} 52 53#endif 54