commit 86ccdacbb5c12b58383e4e562abc3f6c8240249a Author: Aaron LI <a...@aaronly.me> Date: Sun Jan 17 16:08:41 2021 +0800
Implement clock_nanosleep(2) system call * Extend the nanosleep1() function in kern_time.c to support the clock_nanosleep(2) system call. Add {kern,sys}_clock_nanosleep() functions and update kern_nanosleep() accordingly. * Add clock_nanosleep() syscall to syscalls.master and regenerate syscall-related files. * Update libc symbols with the new syscall. * Add clock_nanosleep() warpper in libthread_xu. * Update nanosleep.2 man page to describe clock_nanosleep(). * Update <time.h> and bump __DragonFly_version. This work is loosely based on the FreeBSD implementation: https://reviews.freebsd.org/rS315526 This clock_nanosleep(2) syscall passed all tests in the Open POSIX Test Suite [0]: conformance/interfaces/clock_nanosleep/1-1: execution: PASS conformance/interfaces/clock_nanosleep/1-2: execution: PASS conformance/interfaces/clock_nanosleep/1-3: execution: PASS conformance/interfaces/clock_nanosleep/1-4: execution: PASS conformance/interfaces/clock_nanosleep/1-5: execution: PASS conformance/interfaces/clock_nanosleep/2-1: execution: PASS conformance/interfaces/clock_nanosleep/2-2: execution: PASS conformance/interfaces/clock_nanosleep/2-3: execution: PASS conformance/interfaces/clock_nanosleep/3-1: execution: PASS conformance/interfaces/clock_nanosleep/4-1: execution: PASS conformance/interfaces/clock_nanosleep/5-1: execution: PASS conformance/interfaces/clock_nanosleep/6-1: execution: PASS conformance/interfaces/clock_nanosleep/9-1: execution: PASS conformance/interfaces/clock_nanosleep/8-1: execution: PASS conformance/interfaces/clock_nanosleep/10-1: execution: PASS conformance/interfaces/clock_nanosleep/11-1: execution: PASS conformance/interfaces/clock_nanosleep/13-1: execution: PASS conformance/interfaces/clock_nanosleep/15-1: execution: PASS [0] Open POSIX Test Suite: http://posixtest.sourceforge.net/ Reviewed-by: swildner, dillon, tuxillo, zach Summary of changes: include/time.h | 2 +- lib/libc/include/namespace.h | 1 + lib/libc/include/un-namespace.h | 1 + lib/libc/sys/Makefile.inc | 5 +- lib/libc/sys/Symbol.map | 6 ++ lib/libc/sys/nanosleep.2 | 185 ++++++++++++++++++++++++++++----- lib/libpthread/pthread_testcancel.3 | 3 +- lib/libthread_xu/thread/thr_private.h | 2 + lib/libthread_xu/thread/thr_syscalls.c | 20 ++++ sys/kern/init_sysent.c | 2 +- sys/kern/kern_time.c | 136 +++++++++++++++++++----- sys/kern/syscalls.c | 2 +- sys/kern/syscalls.master | 4 +- sys/sys/param.h | 3 +- sys/sys/syscall.h | 1 + sys/sys/syscall.mk | 1 + sys/sys/sysproto.h | 7 ++ sys/sys/sysunion.h | 1 + sys/sys/time.h | 10 +- 19 files changed, 329 insertions(+), 63 deletions(-) http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/86ccdacbb5c12b58383e4e562abc3f6c8240249a -- DragonFly BSD source repository