diff options
Diffstat (limited to 'c/src/exec/posix')
-rw-r--r-- | c/src/exec/posix/src/Makefile.in | 4 | ||||
-rw-r--r-- | c/src/exec/posix/src/sleep.c | 27 | ||||
-rw-r--r-- | c/src/exec/posix/src/sysconf.c (renamed from c/src/exec/posix/src/unistd.c) | 0 |
3 files changed, 29 insertions, 2 deletions
diff --git a/c/src/exec/posix/src/Makefile.in b/c/src/exec/posix/src/Makefile.in index a815a6943a..8a5098394d 100644 --- a/c/src/exec/posix/src/Makefile.in +++ b/c/src/exec/posix/src/Makefile.in @@ -83,8 +83,8 @@ TIMER_C_PIECES=ptimer ptimer1 C_PIECES = adasupp $(CANCEL_C_PIECES) $(CONDITION_VARIABLE_C_PIECES) \ $(ID_C_PIECES) $(KEY_C_PIECES) $(MESSAGE_QUEUE_C_PIECES) \ $(MUTEX_C_PIECES) $(PTHREAD_C_PIECES) \ - $(PSIGNAL_C_PIECES) sched $(SEMAPHORE_C_PIECES) \ - $(TIME_C_PIECES) $(TIMER_C_PIECES) types unistd $(ENOSYS_C_PIECES) \ + $(PSIGNAL_C_PIECES) sched $(SEMAPHORE_C_PIECES) sleep sysconf \ + $(TIME_C_PIECES) $(TIMER_C_PIECES) types $(ENOSYS_C_PIECES) \ $(BUILD_FOR_NOW_C_PIECES) C_FILES = $(C_PIECES:%=%.c) diff --git a/c/src/exec/posix/src/sleep.c b/c/src/exec/posix/src/sleep.c new file mode 100644 index 0000000000..dec0ed0a54 --- /dev/null +++ b/c/src/exec/posix/src/sleep.c @@ -0,0 +1,27 @@ +/* + * 3.4.3 Delay Process Execution, P1003.1b-1993, p. 81 + * + * $Id$ + */ + +#include <time.h> +#include <unistd.h> + +#include <rtems/system.h> + + +unsigned int sleep( + unsigned int seconds +) +{ + /* XXX can we get away with this implementation? */ + struct timespec tp; + struct timespec tm; + + tp.tv_sec = seconds; + tp.tv_nsec = 0; + + nanosleep( &tp, &tm ); + + return tm.tv_sec; /* seconds remaining */ +} diff --git a/c/src/exec/posix/src/unistd.c b/c/src/exec/posix/src/sysconf.c index 8d930ce33c..8d930ce33c 100644 --- a/c/src/exec/posix/src/unistd.c +++ b/c/src/exec/posix/src/sysconf.c |