From 860d5110bab0554d612da9521d84ffa60883c5a5 Mon Sep 17 00:00:00 2001 From: tholo Date: Sun, 20 Apr 1997 20:56:17 +0000 Subject: [PATCH] New POSIX 1003.1b syscalls; from pk@NetBSD --- lib/libc/shlib_version | 2 +- lib/libc/sys/Makefile.inc | 12 +++-- lib/libc/sys/nanosleep.2 | 95 +++++++++++++++++++++++++++++++++ lib/libc/sys/timer_create.c | 13 +++++ lib/libc/sys/timer_delete.c | 11 ++++ lib/libc/sys/timer_getoverrun.c | 11 ++++ lib/libc/sys/timer_gettime.c | 12 +++++ lib/libc/sys/timer_settime.c | 14 +++++ 8 files changed, 165 insertions(+), 5 deletions(-) create mode 100644 lib/libc/sys/nanosleep.2 create mode 100644 lib/libc/sys/timer_create.c create mode 100644 lib/libc/sys/timer_delete.c create mode 100644 lib/libc/sys/timer_getoverrun.c create mode 100644 lib/libc/sys/timer_gettime.c create mode 100644 lib/libc/sys/timer_settime.c diff --git a/lib/libc/shlib_version b/lib/libc/shlib_version index 84e2c2920d7..796ed4662c9 100644 --- a/lib/libc/shlib_version +++ b/lib/libc/shlib_version @@ -1,2 +1,2 @@ major=16 -minor=0 +minor=1 diff --git a/lib/libc/sys/Makefile.inc b/lib/libc/sys/Makefile.inc index 1226f0a320a..4300ba128f6 100644 --- a/lib/libc/sys/Makefile.inc +++ b/lib/libc/sys/Makefile.inc @@ -11,11 +11,14 @@ SRCS+= Ovfork.S brk.S cerror.S exect.S fork.S pipe.S ptrace.S \ # glue to provide compatibility between GCC 1.X and 2.X and for compat # with old syscall interfaces. -SRCS+= ftruncate.c lseek.c mmap.c semctl.c truncate.c +SRCS+= ftruncate.c lseek.c mmap.c semctl.c truncate.c \ + timer_create.c timer_delete.c timer_getoverrun.c timer_gettime.c \ + timer_settime.c # modules with default implementations on all architectures: ASM= accept.o access.o acct.o adjtime.o bind.o chdir.o chflags.o chmod.o \ - chown.o chroot.o close.o connect.o dup.o dup2.o execve.o fchdir.o \ + chown.o chroot.o clock_gettime.o clock_settime.o clock_getres.o \ + close.o connect.o dup.o dup2.o execve.o fchdir.o \ fchflags.o fchmod.o fchown.o fcntl.o flock.o fpathconf.o fstat.o \ fstatfs.o fsync.o futimes.o getdirentries.o getegid.o geteuid.o \ getfh.o getfsstat.o getgid.o getgroups.o getitimer.o getpeername.o \ @@ -26,7 +29,7 @@ ASM= accept.o access.o acct.o adjtime.o bind.o chdir.o chflags.o chmod.o \ link.o listen.o lstat.o madvise.o mincore.o minherit.o mkdir.o \ mkfifo.o mknod.o mlock.o \ mount.o mprotect.o msgctl.o msgget.o msgrcv.o msgsnd.o msync.o \ - munlock.o munmap.o nfssvc.o \ + munlock.o munmap.o nanosleep.o nfssvc.o \ ntp_gettime.o ntp_adjtime.o \ open.o pathconf.o poll.o profil.o quotactl.o \ read.o readlink.o readv.o reboot.o recvfrom.o recvmsg.o rename.o \ @@ -115,7 +118,8 @@ MAN+= accept.2 access.2 acct.2 adjtime.2 bind.2 brk.2 chdir.2 chflags.2 \ kill.2 ktrace.2 link.2 \ listen.2 lseek.2 mkdir.2 mkfifo.2 mknod.2 madvise.2 mincore.2 \ minherit.2 mlock.2 \ - mmap.2 mount.2 mprotect.2 msync.2 munmap.2 nfssvc.2 open.2 pathconf.2 \ + mmap.2 mount.2 mprotect.2 msync.2 munmap.2 nanosleep.2 \ + nfssvc.2 open.2 pathconf.2 \ pipe.2 profil.2 poll.2 ptrace.2 quotactl.2 read.2 readlink.2 reboot.2 \ recv.2 rename.2 revoke.2 rfork.2 rmdir.2 select.2 send.2 setgroups.2 \ setpgid.2 setsid.2 setuid.2 shutdown.2 sigaction.2 sigaltstack.2 \ diff --git a/lib/libc/sys/nanosleep.2 b/lib/libc/sys/nanosleep.2 new file mode 100644 index 00000000000..5a1e175c9cc --- /dev/null +++ b/lib/libc/sys/nanosleep.2 @@ -0,0 +1,95 @@ +.\" $OpenBSD: nanosleep.2,v 1.1 1997/04/20 20:56:20 tholo Exp $ +.\" $NetBSD: nanosleep.2,v 1.1 1997/04/17 18:12:02 jtc Exp $ +.\" +.\" Copyright (c) 1986, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)sleep.3 8.1 (Berkeley) 6/4/93 +.\" +.Dd April 17, 1997 +.Dt NANOSLEEP 2 +.Os +.Sh NAME +.Nm nanosleep +.Sh SYNOPSIS +.Fd #include +.Ft int +.Fn nanosleep "const struct timespec *rqtp" "struct timespec *rmtp" +.\" .Sh DESCRIPTION +.Sh RETURN VALUE +If the +.Fn nanosleep +function returns because the requested time has elapsed, the value +returned will be zero. +.Pp +If the +.Fn nanosleep +function returns 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. +If +.Fa rmtp +is +.Pf non- Dv NULL , +the timespec structure it references is updated to contain the +unslept amount (the request time minus the time actually slept). +.Sh ERRORS +If any of the following conditions occur, the +.Nm +function shall return -1 and set +.Va errno +to the corresponding value. +.Bl -tag -width Er +.It Bq Er EFAULT +Either +.Fa rqtp +or +.Fa rmtp +points to memory that is not a valid part of the process +address space. +.It Bq Er EINTR +.Nm +was interrupted by the delivery of a signal. +.It Bq Er EINVAL +.Fa rqtp +specified a nanosecond value less than zero or greater than 1000 million. +.It Bq Er ENOSYS +.Nm +is not supported by this implementation. +.El +.Sh SEE ALSO +.Xr sleep 3 +.Sh STANDARDS +The +.Fn nanosleep +function conforms to +.St -p1003.1b-93 . diff --git a/lib/libc/sys/timer_create.c b/lib/libc/sys/timer_create.c new file mode 100644 index 00000000000..43ca4681fc8 --- /dev/null +++ b/lib/libc/sys/timer_create.c @@ -0,0 +1,13 @@ +#include +#include +#include + +int +timer_create(clock_id, evp, timerid) + clockid_t clock_id; + struct sigevent *evp; + timer_t *timerid; +{ + errno = ENOSYS; + return -1; +} diff --git a/lib/libc/sys/timer_delete.c b/lib/libc/sys/timer_delete.c new file mode 100644 index 00000000000..783c41c7342 --- /dev/null +++ b/lib/libc/sys/timer_delete.c @@ -0,0 +1,11 @@ +#include +#include +#include + +int +timer_delete(timerid) + timer_t timerid; +{ + errno = ENOSYS; + return -1; +} diff --git a/lib/libc/sys/timer_getoverrun.c b/lib/libc/sys/timer_getoverrun.c new file mode 100644 index 00000000000..37e35335f93 --- /dev/null +++ b/lib/libc/sys/timer_getoverrun.c @@ -0,0 +1,11 @@ +#include +#include +#include + +int +timer_getoverrun(timerid) + timer_t timerid; +{ + errno = ENOSYS; + return -1; +} diff --git a/lib/libc/sys/timer_gettime.c b/lib/libc/sys/timer_gettime.c new file mode 100644 index 00000000000..dc3863608cf --- /dev/null +++ b/lib/libc/sys/timer_gettime.c @@ -0,0 +1,12 @@ +#include +#include +#include + +int +timer_gettime(timerid, value) + timer_t timerid; + struct itimerspec *value; +{ + errno = ENOSYS; + return -1; +} diff --git a/lib/libc/sys/timer_settime.c b/lib/libc/sys/timer_settime.c new file mode 100644 index 00000000000..ff42e9cd0c7 --- /dev/null +++ b/lib/libc/sys/timer_settime.c @@ -0,0 +1,14 @@ +#include +#include +#include + +int +timer_settime(timerid, flags, value, ovalue) + timer_t timerid; + int flags; + const struct itimerspec *value; + struct itimerspec *ovalue; +{ + errno = ENOSYS; + return -1; +} -- 2.20.1