diff options
author | aiju <aiju@phicode.de> | 2011-06-03 12:28:37 +0000 |
---|---|---|
committer | aiju <aiju@phicode.de> | 2011-06-03 12:28:37 +0000 |
commit | 6ab691048d0b87263a746e82fed55629243fcf4b (patch) | |
tree | eea5f6b3b8e272f9f0988726cb7c434de9139e35 /sys/src/ape/lib/ap/posix | |
parent | 5a333eb240a9e3622c2f443310a7c1856a6551e8 (diff) |
added (unfinished) nanosleep to APE
Diffstat (limited to 'sys/src/ape/lib/ap/posix')
-rw-r--r-- | sys/src/ape/lib/ap/posix/mkfile | 1 | ||||
-rw-r--r-- | sys/src/ape/lib/ap/posix/nanosleep.c | 22 |
2 files changed, 23 insertions, 0 deletions
diff --git a/sys/src/ape/lib/ap/posix/mkfile b/sys/src/ape/lib/ap/posix/mkfile index 268a991d0..387208c5e 100644 --- a/sys/src/ape/lib/ap/posix/mkfile +++ b/sys/src/ape/lib/ap/posix/mkfile @@ -10,6 +10,7 @@ OFILES=\ sigset.$O\ sysconf.$O\ tzset.$O\ + nanosleep.$O\ </sys/src/cmd/mksyslib diff --git a/sys/src/ape/lib/ap/posix/nanosleep.c b/sys/src/ape/lib/ap/posix/nanosleep.c new file mode 100644 index 000000000..a730a5834 --- /dev/null +++ b/sys/src/ape/lib/ap/posix/nanosleep.c @@ -0,0 +1,22 @@ +#define _PLAN9_SOURCE +#include "../plan9/lib.h" +#include <sys/types.h> +#include <time.h> +#include "../plan9/sys9.h" + +int +nanosleep(struct timespec *req, struct timespec *rem) +{ + int ms; + + ms = req->tv_sec * 1000 + (req->tv_nsec + 999999) / 1000000; + if(_SLEEP(ms) < 0) { + if(rem) { + rem->tv_sec = rem->tv_nsec = 0; /* needs better handling */ + } + return -1; + } + if(rem) + rem->tv_sec = rem->tv_nsec = 0; + return 0; +} |