diff --git a/udelay.c b/udelay.c index c03bcc453..7c6961d13 100644 --- a/udelay.c +++ b/udelay.c @@ -22,6 +22,7 @@ #ifndef __LIBPAYLOAD__ #include +#include #include #include #include @@ -174,9 +175,11 @@ void internal_sleep(unsigned int usecs) { #if IS_WINDOWS Sleep((usecs + 999) / 1000); -#else +#elif defined(__DJGPP__) sleep(usecs / 1000000); usleep(usecs % 1000000); +#else + nanosleep(&(struct timespec){usecs / 1000000, (usecs * 1000) % 1000000000UL}, NULL); #endif }