git: Implement clock_nanosleep(2) system call

Aaron LI aly at crater.dragonflybsd.org
Tue Jan 19 05:57:53 PST 2021


commit 86ccdacbb5c12b58383e4e562abc3f6c8240249a
Author: Aaron LI <aly at 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


More information about the Commits mailing list