summaryrefslogtreecommitdiffstats
path: root/lib/libc/gen/usleep.c
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2015-01-11 22:16:31 +0000
committerkib <kib@FreeBSD.org>2015-01-11 22:16:31 +0000
commitaa476ee143a448f0d8b021f73e5577528f38a90f (patch)
tree03ec5a1da8c8dc62a7c7675c7ae5b550b9c53375 /lib/libc/gen/usleep.c
parentcdb24d0c725ccb4b7282b84521988f70a4d4cc1d (diff)
downloadFreeBSD-src-aa476ee143a448f0d8b021f73e5577528f38a90f.zip
FreeBSD-src-aa476ee143a448f0d8b021f73e5577528f38a90f.tar.gz
Reduce the size of the interposing table and amount of
cancellation-handling code in the libthr. Translate some syscalls into their more generic counterpart, and remove translated syscalls from the table. List of the affected syscalls: creat, open -> openat raise -> thr_kill sleep, usleep -> nanosleep pause -> sigsuspend wait, wait3, waitpid -> wait4 Suggested and reviewed by: jilles (previous version) Sponsored by: The FreeBSD Foundation MFC after: 1 week
Diffstat (limited to 'lib/libc/gen/usleep.c')
-rw-r--r--lib/libc/gen/usleep.c18
1 files changed, 5 insertions, 13 deletions
diff --git a/lib/libc/gen/usleep.c b/lib/libc/gen/usleep.c
index 1d58b98..7c35f6c 100644
--- a/lib/libc/gen/usleep.c
+++ b/lib/libc/gen/usleep.c
@@ -40,24 +40,16 @@ __FBSDID("$FreeBSD$");
#include "libc_private.h"
-#pragma weak usleep
int
-usleep(useconds_t useconds)
-{
-
- return (((int (*)(useconds_t))
- __libc_interposing[INTERPOS_usleep])(useconds));
-}
-
-int
-__libc_usleep(useconds_t useconds)
+__usleep(useconds_t useconds)
{
struct timespec time_to_sleep;
time_to_sleep.tv_nsec = (useconds % 1000000) * 1000;
time_to_sleep.tv_sec = useconds / 1000000;
- return (_nanosleep(&time_to_sleep, NULL));
+ return (((int (*)(const struct timespec *, struct timespec *))
+ __libc_interposing[INTERPOS_nanosleep])(&time_to_sleep, NULL));
}
-__weak_reference(__libc_usleep, __usleep);
-__weak_reference(__libc_usleep, _usleep);
+__weak_reference(__usleep, usleep);
+__weak_reference(__usleep, _usleep);
OpenPOWER on IntegriCloud