Module Name: src
Committed By: christos
Date: Tue Oct 2 01:46:40 UTC 2012
Modified Files:
src/lib/libc/sys: Makefile.inc nanosleep.2
Log Message:
add clock_nanosleep(2)
To generate a diff of this commit:
cvs rdiff -u -r1.216 -r1.217 src/lib/libc/sys/Makefile.inc
cvs rdiff -u -r1.11 -r1.12 src/lib/libc/sys/nanosleep.2
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/lib/libc/sys/Makefile.inc
diff -u src/lib/libc/sys/Makefile.inc:1.216 src/lib/libc/sys/Makefile.inc:1.217
--- src/lib/libc/sys/Makefile.inc:1.216 Tue Sep 11 22:00:53 2012
+++ src/lib/libc/sys/Makefile.inc Mon Oct 1 21:46:40 2012
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.inc,v 1.216 2012/09/12 02:00:53 manu Exp $
+# $NetBSD: Makefile.inc,v 1.217 2012/10/02 01:46:40 christos Exp $
# @(#)Makefile.inc 8.3 (Berkeley) 10/24/94
# sys sources
@@ -75,8 +75,8 @@ SRCS+= _brk.c _fork.c _getcontext.c _pip
# modules with default implementations on all architectures:
ASM= access.S acct.S \
bind.S \
- chdir.S chflags.S chmod.S chown.S chroot.S __clock_getres50.S \
- __clock_gettime50.S \
+ chdir.S chflags.S chmod.S chown.S chroot.S clock_nanosleep.S \
+ __clock_getres50.S __clock_gettime50.S \
dup.S dup2.S dup3.S \
extattrctl.S \
extattr_delete_fd.S extattr_delete_file.S \
@@ -327,3 +327,4 @@ MLINKS+=wait.2 wait3.2 wait.2 wait4.2 wa
MLINKS+=write.2 writev.2 write.2 pwrite.2 write.2 pwritev.2
MLINKS+=pipe.2 pipe2.2
MLINKS+=accept.2 paccept.2
+MLINKS+=nanosleep.2 clock_nanosleep.2
Index: src/lib/libc/sys/nanosleep.2
diff -u src/lib/libc/sys/nanosleep.2:1.11 src/lib/libc/sys/nanosleep.2:1.12
--- src/lib/libc/sys/nanosleep.2:1.11 Mon May 17 03:22:03 2010
+++ src/lib/libc/sys/nanosleep.2 Mon Oct 1 21:46:40 2012
@@ -1,4 +1,4 @@
-.\" $NetBSD: nanosleep.2,v 1.11 2010/05/17 07:22:03 jruoho Exp $
+.\" $NetBSD: nanosleep.2,v 1.12 2012/10/02 01:46:40 christos Exp $
.\"
.\" Copyright (c) 1986, 1991, 1993
.\" The Regents of the University of California. All rights reserved.
@@ -29,7 +29,7 @@
.\"
.\" @(#)sleep.3 8.1 (Berkeley) 6/4/93
.\"
-.Dd May 17, 2010
+.Dd October 1, 2012
.Dt NANOSLEEP 2
.Os
.Sh NAME
@@ -40,31 +40,78 @@
.Sh SYNOPSIS
.In time.h
.Ft int
+.Fn clock_nanosleep "clockid_t clock_id" "int flags" "const struct timespec *rqtp" "struct timespec *rmtp"
+.Ft int
.Fn nanosleep "const struct timespec *rqtp" "struct timespec *rmtp"
.Sh DESCRIPTION
-The
-.Fn nanosleep
-suspends execution of the calling process until either the number of
-seconds and nanoseconds specified by
+If the
+.Dv TIMER_ABSTIME
+flag is not set in the
+.Fa flags
+argument, then
+.Fn clock_nanosleep
+suspends execution of the calling thread until either the number of
+seconds and nanoseconds specified in the
+.Fa rqtp
+argument have elapsed using the clock in the
+.Fa clock_id
+argument, or a signal is delivered to the calling process and its
+action is to invoke a signal catching function or to terminate the
+process.
+.Pp
+If the
+.Dv TIMER_ABSTIME
+flag is set in the
+.Fa flags
+argument, then
+.Fn clock_nanosleep
+suspends execution of the calling thread until either the value
+of the clock specified in the
+.Fa clock_id
+argument reaches the value of the
.Fa rqtp
-have elapsed or a signal is delivered to the calling process and its
+argument in seconds and nanoseconds,
+or a signal is delivered to the calling process and its
action is to invoke a signal catching function or to terminate the
process.
+.Pp
The suspension time may be longer than requested due to the
scheduling of other activity by the system.
+.Pp
+The
+.Fn nanosleep
+function behaves like
+.Fn clock_nanosleep
+with the
+.Fa clock_id
+argument equal to
+.Dv CLOCK_MONOTONIC
+and the
+.Fa flags
+argument having
+.Dv TIMER_ABSTIME
+not set.
+.Pp
The
.Em struct timespec
is described in
.Xr timespec 3 .
+The
+.Fa clock_id
+specified is the time source.
.Sh RETURN VALUES
If the
+.Fn clock_nanosleep
+or the
.Fn nanosleep
-function returns because the requested time has elapsed, the value
+functions return because the requested time has elapsed, the value
returned will be zero.
.Pp
If the
+.Fn clock_nanosleep
+or the
.Fn nanosleep
-function returns due to the delivery of a signal, the value returned
+functions return due to the delivery of a signal, the value returned
will be the \-1, and the global variable
.Va errno
will be set to indicate the interruption.
@@ -97,6 +144,13 @@ specified a nanosecond value less than z
.It Bq Er ENOSYS
.Nm
is not supported by this implementation.
+.It Bq Er ENOTSUP
+for
+.Fn clock_nanosleep ,
+the clock specified in the
+.Fa
+clock_id
+argument is not supported.
.El
.Sh SEE ALSO
.Xr sleep 3 ,
@@ -106,3 +160,7 @@ The
.Fn nanosleep
function conforms to
.St -p1003.1b-93 .
+The
+.Fn clock_nanosleep
+function conforms to
+.St -p1003.1j-2000 .