13 lines
367 B
C
13 lines
367 B
C
|
#include <machine/syscall.h>
|
||
|
#include <sys/time.h>
|
||
|
|
||
|
int
|
||
|
nanosleep(const struct timespec *rqtp, struct timespec *rmtp)
|
||
|
{
|
||
|
unsigned long current_time, end_time;
|
||
|
asm ("rdtime %0" : "+r" (current_time));
|
||
|
end_time = current_time + rqtp->tv_sec * 1000000000ULL + rqtp->tv_nsec;
|
||
|
while (current_time <= end_time) asm ("rdtime %0" : "+r" (current_time));
|
||
|
return 0;
|
||
|
}
|