summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorchristos <christos@NetBSD.org>2014-01-31 20:45:48 +0000
committerchristos <christos@NetBSD.org>2014-01-31 20:45:48 +0000
commit43552e9d86de554ae1d30bf9feea01a44423a87f (patch)
tree3e794aeba425d09b53a8c16875a9366644f94305 /lib
parentbb795467eefd410499b90d2167b0c40f0a1f7dcf (diff)
expose __lwp_park60
Diffstat (limited to 'lib')
-rw-r--r--lib/libc/compat/include/lwp.h4
-rw-r--r--lib/libc/compat/sys/compat___lwp_park50.c13
-rw-r--r--lib/libc/shlib_version4
-rw-r--r--lib/libc/sys/Makefile.inc4
-rw-r--r--lib/libc/sys/_lwp_park.228
5 files changed, 29 insertions, 24 deletions
diff --git a/lib/libc/compat/include/lwp.h b/lib/libc/compat/include/lwp.h
index 353139e30d4..3d67d76d583 100644
--- a/lib/libc/compat/include/lwp.h
+++ b/lib/libc/compat/include/lwp.h
@@ -1,4 +1,4 @@
-/* $NetBSD: lwp.h,v 1.3 2013/03/29 02:09:58 christos Exp $ */
+/* $NetBSD: lwp.h,v 1.4 2014/01/31 20:45:49 christos Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -42,7 +42,7 @@ __BEGIN_DECLS
struct timespec50;
int _lwp_park(const struct timespec50 *, lwpid_t, const void *, const void *);
int ___lwp_park50(const struct timespec *, lwpid_t, const void *, const void *);
-int ___lwp_park60(clockid_t , int, const struct timespec *, lwpid_t,
+int ___lwp_park60(clockid_t, int, const struct timespec *, lwpid_t,
const void *, const void *);
__END_DECLS
diff --git a/lib/libc/compat/sys/compat___lwp_park50.c b/lib/libc/compat/sys/compat___lwp_park50.c
index f637d75ab26..e13a80f4ca1 100644
--- a/lib/libc/compat/sys/compat___lwp_park50.c
+++ b/lib/libc/compat/sys/compat___lwp_park50.c
@@ -1,4 +1,4 @@
-/* $NetBSD: compat___lwp_park50.c,v 1.1 2013/03/29 02:09:58 christos Exp $ */
+/* $NetBSD: compat___lwp_park50.c,v 1.2 2014/01/31 20:45:49 christos Exp $ */
/*-
* Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -32,7 +32,7 @@
#include <sys/cdefs.h>
#if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: compat___lwp_park50.c,v 1.1 2013/03/29 02:09:58 christos Exp $");
+__RCSID("$NetBSD: compat___lwp_park50.c,v 1.2 2014/01/31 20:45:49 christos Exp $");
#endif /* LIBC_SCCS and not lint */
#define __LIBC12_SOURCE__
@@ -43,11 +43,6 @@ __RCSID("$NetBSD: compat___lwp_park50.c,v 1.1 2013/03/29 02:09:58 christos Exp $
#include <compat/sys/mount.h>
#include <compat/include/lwp.h>
-#ifndef notyet
-#include <unistd.h>
-#include <sys/syscall.h>
-#endif
-
__warn_references(fhstat,
"warning: reference to compatibility ___lwp_park50(); include <lwp.h> to generate correct reference")
@@ -58,10 +53,6 @@ int
___lwp_park50(const struct timespec *ts, lwpid_t unpark, const void *hint,
const void *unparkhint)
{
-#ifdef notyet
return ___lwp_park60(CLOCK_REALTIME, TIMER_ABSTIME, ts, unpark,
hint, unparkhint);
-#else
- return syscall(SYS_compat_60__lwp_park, ts, unpark, hint, unparkhint);
-#endif
}
diff --git a/lib/libc/shlib_version b/lib/libc/shlib_version
index 20ba2d48c91..4e9672c5f56 100644
--- a/lib/libc/shlib_version
+++ b/lib/libc/shlib_version
@@ -1,4 +1,4 @@
-# $NetBSD: shlib_version,v 1.248 2014/01/16 17:21:38 christos Exp $
+# $NetBSD: shlib_version,v 1.249 2014/01/31 20:45:48 christos Exp $
# Remember to update distrib/sets/lists/base/shl.* when changing
#
# things we wish to do on next major version bump:
@@ -40,4 +40,4 @@
# - consolidate ownership with crt0.o and avoid common symbols
# - redo stdin/stdout/stderr to not require copy relocations
major=12
-minor=189
+minor=190
diff --git a/lib/libc/sys/Makefile.inc b/lib/libc/sys/Makefile.inc
index 3a036954ed9..49e8e6979f5 100644
--- a/lib/libc/sys/Makefile.inc
+++ b/lib/libc/sys/Makefile.inc
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.inc,v 1.222 2014/01/16 20:31:43 christos Exp $
+# $NetBSD: Makefile.inc,v 1.223 2014/01/31 20:45:49 christos Exp $
# @(#)Makefile.inc 8.3 (Berkeley) 10/24/94
# sys sources
@@ -100,7 +100,7 @@ ASM= access.S acct.S \
lchflags.S lchmod.S lchown.S lfs_bmapv.S lfs_markv.S lfs_segclean.S \
__lfs_segwait50.S link.S linkat.S listen.S __lstat50.S \
__lutimes50.S _lwp_create.S _lwp_exit.S _lwp_kill.S \
- _lwp_self.S _lwp_wait.S _lwp_unpark.S \
+ ___lwp_park60.S _lwp_self.S _lwp_wait.S _lwp_unpark.S \
_lwp_unpark_all.S _lwp_suspend.S _lwp_continue.S \
_lwp_wakeup.S _lwp_detach.S _lwp_setprivate.S \
_lwp_setname.S _lwp_getname.S _lwp_ctl.S \
diff --git a/lib/libc/sys/_lwp_park.2 b/lib/libc/sys/_lwp_park.2
index e707ee1cab4..1e7aaef9e83 100644
--- a/lib/libc/sys/_lwp_park.2
+++ b/lib/libc/sys/_lwp_park.2
@@ -1,4 +1,4 @@
-.\" $NetBSD: _lwp_park.2,v 1.7 2008/04/30 13:10:51 martin Exp $
+.\" $NetBSD: _lwp_park.2,v 1.8 2014/01/31 20:45:49 christos Exp $
.\"
.\" Copyright (c) 2003, 2007 The NetBSD Foundation, Inc.
.\" All rights reserved.
@@ -27,7 +27,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd September 25, 2007
+.Dd March 28, 2013
.Dt _LWP_PARK 2
.Os
.Sh NAME
@@ -38,7 +38,7 @@
.Sh SYNOPSIS
.In lwp.h
.Ft int
-.Fn _lwp_park "const struct timespec *abstime" "lwpid_t unpark" "const void *hint" "const void *unparkhint"
+.Fn _lwp_park "clockid_t clock_id, int flags, const struct timespec *ts" "lwpid_t unpark" "const void *hint" "const void *unparkhint"
.Sh DESCRIPTION
.Fn _lwp_park
can be used to synchronize access to resources among multiple light-weight
@@ -48,8 +48,22 @@ of the following conditions is met:
.Bl -bullet
.It
The
-.Fa abstime
-argument is non-NULL, and the absolute UTC time it specifies has passed.
+.Fa ts
+argument is non-NULL, and the time it specifies has passed.
+The
+.Fa ts
+time can be an relative interval to wait if the
+.Ar flags
+argument does not contain
+.Dv TIMER_ABSTIME
+or it can be an absolute time compared to
+.Dv CLOCK_REALTIME
+or
+.Dv CLOCK_MONOTONIC
+depending on the value
+of the
+.Ar clock_id
+argument.
.It
The LWP receives a directed signal posted using
.Fn _lwp_kill ,
@@ -125,14 +139,14 @@ following functions:
.Fn _lwp_wakeup .
.It Bq Er EINVAL
The time value specified by
-.Fa abstime
+.Fa ts
is invalid.
.It Bq Er ESRCH
No LWP can be found in the current process corresponding to
.Fa unpark .
.It Bq Er ETIMEDOUT
The UTC time specified by
-.Fa abstime
+.Fa ts
has passed.
.El
.Sh SEE ALSO