diff options
Diffstat (limited to 'lib/libc/sys')
68 files changed, 482 insertions, 2826 deletions
diff --git a/lib/libc/sys/Makefile.inc b/lib/libc/sys/Makefile.inc index 5162563..c14b351 100644 --- a/lib/libc/sys/Makefile.inc +++ b/lib/libc/sys/Makefile.inc @@ -20,62 +20,17 @@ NOASM+= clock_gettime.o gettimeofday.o PSEUDO+= _clock_gettime.o _gettimeofday.o # Sources common to both syscall interfaces: -SRCS+= \ - stack_protector.c \ - stack_protector_compat.c \ - __error.c \ - interposing_table.c - -SRCS+= futimens.c utimensat.c -NOASM+= futimens.o utimensat.o -PSEUDO+= _futimens.o _utimensat.o - -INTERPOSED = \ - accept \ - accept4 \ - aio_suspend \ - close \ - connect \ - fcntl \ - fsync \ - fork \ - kevent \ - msync \ - nanosleep \ - open \ - openat \ - poll \ - ppoll \ - pselect \ - read \ - readv \ - recvfrom \ - recvmsg \ - select \ - sendmsg \ - sendto \ - setcontext \ - sigprocmask \ - sigsuspend \ - sigtimedwait \ - sigwait \ - sigwaitinfo \ - swapcontext \ - wait4 \ - wait6 \ - write \ - writev - -.if ${MACHINE_CPUARCH} == "sparc64" -SRCS+= sigaction.c -NOASM+= sigaction.o -.else -INTERPOSED+= sigaction +SRCS+= stack_protector.c stack_protector_compat.c __error.c +.if ${MK_SYSCALL_COMPAT} != "no" +SYSCALL_COMPAT_SRCS= fcntl.c ftruncate.c lseek.c mmap.c pread.c \ + pwrite.c truncate.c +SRCS+= ${SYSCALL_COMPAT_SRCS} +NOASM+= ${SYSCALL_COMPAT_SRCS:S/.c/.o/} +PSEUDO+= _fcntl.o .endif - -SRCS+= ${INTERPOSED:S/$/.c/} -NOASM+= ${INTERPOSED:S/$/.o/} -PSEUDO+= ${INTERPOSED:C/^.*$/_&.o/} +SRCS+= sigwait.c +NOASM+= sigwait.o +PSEUDO+= _sigwait.o # Add machine dependent asm sources: SRCS+=${MDASM} @@ -311,7 +266,6 @@ MAN+= sctp_generic_recvmsg.2 \ umask.2 \ undelete.2 \ unlink.2 \ - utimensat.2 \ utimes.2 \ utrace.2 \ uuidgen.2 \ @@ -444,7 +398,6 @@ MLINKS+=timer_settime.2 timer_getoverrun.2 \ timer_settime.2 timer_gettime.2 MLINKS+=truncate.2 ftruncate.2 MLINKS+=unlink.2 unlinkat.2 -MLINKS+=utimensat.2 futimens.2 MLINKS+=utimes.2 futimes.2 \ utimes.2 futimesat.2 \ utimes.2 lutimes.2 diff --git a/lib/libc/sys/Symbol.map b/lib/libc/sys/Symbol.map index 194aa5b..448bcce 100644 --- a/lib/libc/sys/Symbol.map +++ b/lib/libc/sys/Symbol.map @@ -245,6 +245,7 @@ FBSD_1.0 { setaudit; setaudit_addr; setauid; + setcontext; setegid; seteuid; setgid; @@ -285,6 +286,7 @@ FBSD_1.0 { __stack_chk_guard; stat; statfs; + swapcontext; swapoff; swapon; symlink; @@ -349,6 +351,7 @@ FBSD_1.1 { mkfifoat; mknodat; msgctl; + openat; readlinkat; renameat; setfib; @@ -397,9 +400,7 @@ FBSD_1.3 { }; FBSD_1.4 { - futimens; ppoll; - utimensat; }; FBSDprivate_1.0 { @@ -1047,9 +1048,7 @@ FBSDprivate_1.0 { __sys_write; _writev; __sys_writev; - __set_error_selector; + __error_unthreaded; nlm_syscall; gssd_syscall; - __libc_interposing_slot; - __libc_sigwait; }; diff --git a/lib/libc/sys/__error.c b/lib/libc/sys/__error.c index 28cc31d..c3f59f8 100644 --- a/lib/libc/sys/__error.c +++ b/lib/libc/sys/__error.c @@ -32,25 +32,14 @@ __FBSDID("$FreeBSD$"); extern int errno; -static int * -__error_unthreaded(void) -{ - - return (&errno); -} - -static int *(*__error_selector)(void) = __error_unthreaded; - -void -__set_error_selector(int *(*arg)(void)) -{ - - __error_selector = arg; -} +/* + * Declare a weak reference in case the application is not linked + * with libpthread. + */ +__weak_reference(__error_unthreaded, __error); int * -__error(void) +__error_unthreaded(void) { - - return (__error_selector()); + return(&errno); } diff --git a/lib/libc/sys/accept.c b/lib/libc/sys/accept.c deleted file mode 100644 index 38e32f2..0000000 --- a/lib/libc/sys/accept.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <sys/syscall.h> -#include <sys/socket.h> -#include "libc_private.h" - -__weak_reference(__sys_accept, __accept); - -#pragma weak accept -int -accept(int s, struct sockaddr *addr, socklen_t *addrlen) -{ - - return (((int (*)(int, struct sockaddr *, socklen_t *)) - __libc_interposing[INTERPOS_accept])(s, addr, addrlen)); -} diff --git a/lib/libc/sys/accept4.c b/lib/libc/sys/accept4.c deleted file mode 100644 index 2907b04..0000000 --- a/lib/libc/sys/accept4.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <sys/syscall.h> -#include <sys/socket.h> -#include "libc_private.h" - -__weak_reference(__sys_accept4, __accept4); - -#pragma weak accept4 -int -accept4(int s, struct sockaddr *addr, socklen_t *addrlen, int flags) -{ - - return (((int (*)(int, struct sockaddr *, socklen_t *, int)) - __libc_interposing[INTERPOS_accept4])(s, addr, addrlen, flags)); -} diff --git a/lib/libc/sys/access.2 b/lib/libc/sys/access.2 index c70e7a2..46bf948 100644 --- a/lib/libc/sys/access.2 +++ b/lib/libc/sys/access.2 @@ -136,7 +136,7 @@ and .Fn access , .Fn eaccess , or -.Fn faccessat +.Fn faccessat will fail if: .Bl -tag -width Er .It Bq Er EINVAL diff --git a/lib/libc/sys/aio_suspend.c b/lib/libc/sys/aio_suspend.c deleted file mode 100644 index 020edf8..0000000 --- a/lib/libc/sys/aio_suspend.c +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <sys/aio.h> -#include "libc_private.h" - -__weak_reference(__sys_aio_suspend, __aio_suspend); - -#pragma weak aio_suspend -int -aio_suspend(const struct aiocb * const iocbs[], int niocb, - const struct timespec *timeout) -{ - - return (((int (*)(const struct aiocb * const[], int, - const struct timespec *)) - __libc_interposing[INTERPOS_aio_suspend])(iocbs, niocb, timeout)); -} diff --git a/lib/libc/sys/cap_ioctls_limit.2 b/lib/libc/sys/cap_ioctls_limit.2 index 39f117f..2d1eef9 100644 --- a/lib/libc/sys/cap_ioctls_limit.2 +++ b/lib/libc/sys/cap_ioctls_limit.2 @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 6, 2015 +.Dd March 27, 2014 .Dt CAP_IOCTLS_LIMIT 2 .Os .Sh NAME @@ -61,8 +61,6 @@ argument specifies the number of elements in the array. There can be up to .Va 256 elements in the array. -Including an element that has been previously revoked will generate an error. -After a successful call only those listed in the array may be used. .Pp The list of allowed ioctl commands for a given file descriptor can be obtained with the @@ -94,7 +92,7 @@ system call was never called for this file descriptor), the .Fn cap_ioctls_get system call will return .Dv CAP_IOCTLS_ALL -and will not modify the buffer pointed to by the +and won't modify the buffer pointed to by the .Fa cmds argument. .Sh RETURN VALUES diff --git a/lib/libc/sys/close.c b/lib/libc/sys/close.c deleted file mode 100644 index 02e74c6..0000000 --- a/lib/libc/sys/close.c +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <sys/fcntl.h> -#include "libc_private.h" - -__weak_reference(__sys_close, __close); - -#pragma weak close -int -close(int fd) -{ - - return (((int (*)(int))__libc_interposing[INTERPOS_close])(fd)); -} diff --git a/lib/libc/sys/closefrom.2 b/lib/libc/sys/closefrom.2 index a0b5fc2..ffaa001 100644 --- a/lib/libc/sys/closefrom.2 +++ b/lib/libc/sys/closefrom.2 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2009 Hudson River Trading LLC +.\" Copyright (c) 2009 Advanced Computing Technologies LLC .\" Written by: John H. Baldwin <jhb@FreeBSD.org> .\" All rights reserved. .\" diff --git a/lib/libc/sys/connect.c b/lib/libc/sys/connect.c deleted file mode 100644 index 7969142..0000000 --- a/lib/libc/sys/connect.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <sys/syscall.h> -#include <sys/socket.h> -#include "libc_private.h" - -__weak_reference(__sys_connect, __connect); - -#pragma weak connect -int -connect(int s, const struct sockaddr *addr, socklen_t addrlen) -{ - - return (((int (*)(int, const struct sockaddr *, socklen_t)) - __libc_interposing[INTERPOS_connect])(s, addr, addrlen)); -} diff --git a/lib/libc/sys/cpuset.2 b/lib/libc/sys/cpuset.2 index 8349566..0c32b42 100644 --- a/lib/libc/sys/cpuset.2 +++ b/lib/libc/sys/cpuset.2 @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 8, 2015 +.Dd February 14, 2014 .Dt CPUSET 2 .Os .Sh NAME @@ -101,7 +101,6 @@ argument may have the following values: .It Dv CPU_WHICH_JAIL Ta "id is jid (jail id)" .It Dv CPU_WHICH_CPUSET Ta "id is a cpusetid_t (cpuset id)" .It Dv CPU_WHICH_IRQ Ta "id is an irq number" -.It Dv CPU_WHICH_DOMAIN Ta "id is a NUMA domain" .El .Pp An diff --git a/lib/libc/sys/fcntl.c b/lib/libc/sys/fcntl.c index e85574a..480cc40 100644 --- a/lib/libc/sys/fcntl.c +++ b/lib/libc/sys/fcntl.c @@ -3,12 +3,6 @@ * Authors: Doug Rabson <dfr@rabson.org> * Developed with Red Inc: Alfred Perlstein <alfred@freebsd.org> * - * Copyright (c) 2014-2015 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -40,17 +34,56 @@ __FBSDID("$FreeBSD$"); #include <sys/syscall.h> #include "libc_private.h" -#pragma weak fcntl +__weak_reference(__fcntl_compat, fcntl); + int -fcntl(int fd, int cmd, ...) +__fcntl_compat(int fd, int cmd, ...) { va_list args; long arg; + struct __oflock ofl; + struct flock *flp; + int res; va_start(args, cmd); arg = va_arg(args, long); va_end(args); - return (((int (*)(int, int, ...)) - __libc_interposing[INTERPOS_fcntl])(fd, cmd, arg)); + if (__getosreldate() >= 800028) { + return (__sys_fcntl(fd, cmd, arg)); + } else { + if (cmd == F_GETLK || cmd == F_SETLK || cmd == F_SETLKW) { + /* + * Convert new-style struct flock (which + * includes l_sysid) to old-style. + */ + flp = (struct flock *) (uintptr_t) arg; + ofl.l_start = flp->l_start; + ofl.l_len = flp->l_len; + ofl.l_pid = flp->l_pid; + ofl.l_type = flp->l_type; + ofl.l_whence = flp->l_whence; + + switch (cmd) { + case F_GETLK: + res = __sys_fcntl(fd, F_OGETLK, &ofl); + if (res >= 0) { + flp->l_start = ofl.l_start; + flp->l_len = ofl.l_len; + flp->l_pid = ofl.l_pid; + flp->l_type = ofl.l_type; + flp->l_whence = ofl.l_whence; + flp->l_sysid = 0; + } + return (res); + + case F_SETLK: + return (__sys_fcntl(fd, F_OSETLK, &ofl)); + + case F_SETLKW: + return (__sys_fcntl(fd, F_OSETLKW, &ofl)); + } + } + return (__sys_fcntl(fd, cmd, arg)); + } } diff --git a/lib/libc/sys/fork.2 b/lib/libc/sys/fork.2 index 4fda74d..1ad2052f 100644 --- a/lib/libc/sys/fork.2 +++ b/lib/libc/sys/fork.2 @@ -28,7 +28,7 @@ .\" @(#)fork.2 8.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" -.Dd May 1, 2015 +.Dd May 31, 2013 .Dt FORK 2 .Os .Sh NAME @@ -53,10 +53,7 @@ The child process has a unique process ID. The child process has a different parent process ID (i.e., the process ID of the parent process). .It -The child process has its own copy of the parent's descriptors, -except for descriptors returned by -.Xr kqueue 2 , -which are not inherited from the parent process. +The child process has its own copy of the parent's descriptors. These descriptors reference the same underlying objects, so that, for instance, file pointers in file objects are shared between the child and the parent, so that an diff --git a/lib/libc/sys/fork.c b/lib/libc/sys/fork.c deleted file mode 100644 index 695540a..0000000 --- a/lib/libc/sys/fork.c +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <unistd.h> -#include "libc_private.h" - -__weak_reference(__sys_fork, __fork); - -#pragma weak fork -pid_t -fork(void) -{ - - return (((pid_t (*)(void))__libc_interposing[INTERPOS_fork])()); -} diff --git a/lib/libc/sys/fsync.c b/lib/libc/sys/fsync.c deleted file mode 100644 index 3fff428..0000000 --- a/lib/libc/sys/fsync.c +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <sys/fcntl.h> -#include "libc_private.h" - -__weak_reference(__sys_fsync, __fsync); - -int -fsync(int fd) -{ - - return (((int (*)(int))__libc_interposing[INTERPOS_fsync])(fd)); -} diff --git a/lib/libc/sys/trivial-vdso_tc.c b/lib/libc/sys/ftruncate.c index b99bbc4..78b5a36 100644 --- a/lib/libc/sys/trivial-vdso_tc.c +++ b/lib/libc/sys/ftruncate.c @@ -1,5 +1,6 @@ -/*- - * Copyright (c) 2013 Konstantin Belousov <kib@FreeBSD.org> +/* + * Copyright (c) 1992, 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 @@ -9,11 +10,14 @@ * 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. + * 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 AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * 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 AUTHOR OR CONTRIBUTORS BE LIABLE + * 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) @@ -23,26 +27,29 @@ * SUCH DAMAGE. */ +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)ftruncate.c 8.1 (Berkeley) 6/17/93"; +#endif /* LIBC_SCCS and not lint */ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); #include <sys/types.h> -#include <sys/time.h> -#include <sys/vdso.h> -#include <errno.h> +#include <sys/syscall.h> +#include <unistd.h> +#include "libc_private.h" -#pragma weak __vdso_gettc -u_int -__vdso_gettc(const struct vdso_timehands *th) -{ - - return (0); -} - -#pragma weak __vdso_gettimekeep +/* + * This function provides 64-bit offset padding that + * is not supplied by GCC 1.X but is supplied by GCC 2.X. + */ int -__vdso_gettimekeep(struct vdso_timekeep **tk) +ftruncate(fd, length) + int fd; + off_t length; { - return (ENOSYS); + if (__getosreldate() >= 700051) + return(__sys_ftruncate(fd, length)); + else + return(__sys_freebsd6_ftruncate(fd, 0, length)); } diff --git a/lib/libc/sys/futimens.c b/lib/libc/sys/futimens.c deleted file mode 100644 index 2014cc5..0000000 --- a/lib/libc/sys/futimens.c +++ /dev/null @@ -1,97 +0,0 @@ -/*- - * Copyright (c) 2015 Jilles Tjoelker - * 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. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include "namespace.h" -#include <sys/stat.h> - -#include <errno.h> -#include <fcntl.h> -#include <time.h> -#include "un-namespace.h" - -#include "libc_private.h" - -int -futimens(int fd, const struct timespec times[2]) -{ - struct timeval now, tv[2], *tvp; - struct stat sb; - - if (__getosreldate() >= 1100056) - return (__sys_futimens(fd, times)); - - if (times == NULL || (times[0].tv_nsec == UTIME_NOW && - times[1].tv_nsec == UTIME_NOW)) - tvp = NULL; - else if (times[0].tv_nsec == UTIME_OMIT && - times[1].tv_nsec == UTIME_OMIT) - return (0); - else { - if ((times[0].tv_nsec < 0 || times[0].tv_nsec > 999999999) && - times[0].tv_nsec != UTIME_NOW && - times[0].tv_nsec != UTIME_OMIT) { - errno = EINVAL; - return (-1); - } - if ((times[1].tv_nsec < 0 || times[1].tv_nsec > 999999999) && - times[1].tv_nsec != UTIME_NOW && - times[1].tv_nsec != UTIME_OMIT) { - errno = EINVAL; - return (-1); - } - tv[0].tv_sec = times[0].tv_sec; - tv[0].tv_usec = times[0].tv_nsec / 1000; - tv[1].tv_sec = times[1].tv_sec; - tv[1].tv_usec = times[1].tv_nsec / 1000; - tvp = tv; - if (times[0].tv_nsec == UTIME_OMIT || - times[1].tv_nsec == UTIME_OMIT) { - if (_fstat(fd, &sb) == -1) - return (-1); - if (times[0].tv_nsec == UTIME_OMIT) { - tv[0].tv_sec = sb.st_atim.tv_sec; - tv[0].tv_usec = sb.st_atim.tv_nsec / 1000; - } - if (times[1].tv_nsec == UTIME_OMIT) { - tv[1].tv_sec = sb.st_mtim.tv_sec; - tv[1].tv_usec = sb.st_mtim.tv_nsec / 1000; - } - } - if (times[0].tv_nsec == UTIME_NOW || - times[1].tv_nsec == UTIME_NOW) { - if (gettimeofday(&now, NULL) == -1) - return (-1); - if (times[0].tv_nsec == UTIME_NOW) - tv[0] = now; - if (times[1].tv_nsec == UTIME_NOW) - tv[1] = now; - } - } - return (futimes(fd, tvp)); -} diff --git a/lib/libc/sys/getdirentries.2 b/lib/libc/sys/getdirentries.2 index ab60ed2..3fe1632 100644 --- a/lib/libc/sys/getdirentries.2 +++ b/lib/libc/sys/getdirentries.2 @@ -134,9 +134,8 @@ The current position pointer should only be set to a value returned by .Xr lseek 2 , a value returned in the location pointed to by .Fa basep -.Po Fn getdirentries -only -.Pc +.Fn ( getdirentries +only) or zero. .Sh RETURN VALUES If successful, the number of bytes actually transferred is returned. diff --git a/lib/libc/sys/getrlimit.2 b/lib/libc/sys/getrlimit.2 index 5fdd58b..1f84bfb 100644 --- a/lib/libc/sys/getrlimit.2 +++ b/lib/libc/sys/getrlimit.2 @@ -194,8 +194,8 @@ raised the maximum limit value, and the caller is not the super-user. .Xr csh 1 , .Xr quota 1 , .Xr quotactl 2 , -.Xr sigaction 2 , .Xr sigaltstack 2 , +.Xr sigaction 2 , .Xr sysctl 3 , .Xr ulimit 3 .Sh HISTORY diff --git a/lib/libc/sys/interposing_table.c b/lib/libc/sys/interposing_table.c deleted file mode 100644 index 08dfbb1..0000000 --- a/lib/libc/sys/interposing_table.c +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include "libc_private.h" - -#define SLOT(a, b) \ - [INTERPOS_##a] = (interpos_func_t)b -interpos_func_t __libc_interposing[INTERPOS_MAX] = { - SLOT(accept, __sys_accept), - SLOT(accept4, __sys_accept4), - SLOT(aio_suspend, __sys_aio_suspend), - SLOT(close, __sys_close), - SLOT(connect, __sys_connect), - SLOT(fcntl, __sys_fcntl), - SLOT(fsync, __sys_fsync), - SLOT(fork, __sys_fork), - SLOT(msync, __sys_msync), - SLOT(nanosleep, __sys_nanosleep), - SLOT(openat, __sys_openat), - SLOT(poll, __sys_poll), - SLOT(pselect, __sys_pselect), - SLOT(read, __sys_read), - SLOT(readv, __sys_readv), - SLOT(recvfrom, __sys_recvfrom), - SLOT(recvmsg, __sys_recvmsg), - SLOT(select, __sys_select), - SLOT(sendmsg, __sys_sendmsg), - SLOT(sendto, __sys_sendto), - SLOT(setcontext, __sys_setcontext), - SLOT(sigaction, __sys_sigaction), - SLOT(sigprocmask, __sys_sigprocmask), - SLOT(sigsuspend, __sys_sigsuspend), - SLOT(sigwait, __libc_sigwait), - SLOT(sigtimedwait, __sys_sigtimedwait), - SLOT(sigwaitinfo, __sys_sigwaitinfo), - SLOT(swapcontext, __sys_swapcontext), - SLOT(system, __libc_system), - SLOT(tcdrain, __libc_tcdrain), - SLOT(wait4, __sys_wait4), - SLOT(write, __sys_write), - SLOT(writev, __sys_writev), - SLOT(_pthread_mutex_init_calloc_cb, _pthread_mutex_init_calloc_cb_stub), - SLOT(spinlock, __libc_spinlock_stub), - SLOT(spinunlock, __libc_spinunlock_stub), - SLOT(kevent, __sys_kevent), - SLOT(wait6, __sys_wait6), - SLOT(ppoll, __sys_ppoll), -}; -#undef SLOT - -interpos_func_t * -__libc_interposing_slot(int interposno) -{ - - return (&__libc_interposing[interposno]); -} diff --git a/lib/libc/sys/kevent.c b/lib/libc/sys/kevent.c deleted file mode 100644 index 5f84ef8..0000000 --- a/lib/libc/sys/kevent.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2015 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <sys/event.h> -#include <sys/time.h> -#include "libc_private.h" - -__weak_reference(__sys_kevent, __kevent); - -#pragma weak kevent -int -kevent(int kq, const struct kevent *changelist, int nchanges, - struct kevent *eventlist, int nevents, const struct timespec *timeout) -{ - - return (((int (*)(int, const struct kevent *, int, - struct kevent *, int, const struct timespec *)) - __libc_interposing[INTERPOS_kevent])(kq, changelist, nchanges, - eventlist, nevents, timeout)); -} diff --git a/lib/libc/sys/kqueue.2 b/lib/libc/sys/kqueue.2 index c5e8caf..9a7cc23 100644 --- a/lib/libc/sys/kqueue.2 +++ b/lib/libc/sys/kqueue.2 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 29, 2015 +.Dd July 18, 2014 .Dt KQUEUE 2 .Os .Sh NAME @@ -41,7 +41,7 @@ .Fn kqueue "void" .Ft int .Fn kevent "int kq" "const struct kevent *changelist" "int nchanges" "struct kevent *eventlist" "int nevents" "const struct timespec *timeout" -.Fn EV_SET "kev" ident filter flags fflags data udata +.Fn EV_SET "&kev" ident filter flags fflags data udata .Sh DESCRIPTION The .Fn kqueue @@ -162,56 +162,56 @@ struct kevent { The fields of .Fa struct kevent are: -.Bl -tag -width "Fa filter" -.It Fa ident +.Bl -tag -width XXXfilter +.It ident Value used to identify this event. The exact interpretation is determined by the attached filter, but often is a file descriptor. -.It Fa filter +.It filter Identifies the kernel filter used to process this event. The pre-defined system filters are described below. -.It Fa flags +.It flags Actions to perform on the event. -.It Fa fflags +.It fflags Filter-specific flags. -.It Fa data +.It data Filter-specific data value. -.It Fa udata +.It udata Opaque user-defined value passed through the kernel unchanged. .El .Pp The .Va flags field can contain the following values: -.Bl -tag -width EV_DISPATCH -.It Dv EV_ADD +.Bl -tag -width XXXEV_ONESHOT +.It EV_ADD Adds the event to the kqueue. Re-adding an existing event will modify the parameters of the original event, and not result in a duplicate entry. Adding an event automatically enables it, unless overridden by the EV_DISABLE flag. -.It Dv EV_ENABLE +.It EV_ENABLE Permit .Fn kevent to return the event if it is triggered. -.It Dv EV_DISABLE +.It EV_DISABLE Disable the event so .Fn kevent will not return it. The filter itself is not disabled. -.It Dv EV_DISPATCH +.It EV_DISPATCH Disable the event source immediately after delivery of an event. See .Dv EV_DISABLE above. -.It Dv EV_DELETE +.It EV_DELETE Removes the event from the kqueue. Events which are attached to file descriptors are automatically deleted on the last close of the descriptor. -.It Dv EV_RECEIPT +.It EV_RECEIPT This flag is useful for making bulk changes to a kqueue without draining any pending events. When passed as input, it forces @@ -220,20 +220,20 @@ to always be returned. When a filter is successfully added the .Va data field will be zero. -.It Dv EV_ONESHOT +.It EV_ONESHOT Causes the event to return only the first occurrence of the filter being triggered. After the user retrieves the event from the kqueue, it is deleted. -.It Dv EV_CLEAR +.It EV_CLEAR After the event is retrieved by the user, its state is reset. This is useful for filters which report state transitions instead of the current state. Note that some filters may automatically set this flag internally. -.It Dv EV_EOF +.It EV_EOF Filters may set this flag to indicate filter-specific EOF condition. -.It Dv EV_ERROR +.It EV_ERROR See .Sx RETURN VALUES below. @@ -245,8 +245,8 @@ Arguments may be passed to and from the filter via the and .Va data fields in the kevent structure. -.Bl -tag -width "Dv EVFILT_PROCDESC" -.It Dv EVFILT_READ +.Bl -tag -width EVFILT_PROCDESC +.It EVFILT_READ Takes a descriptor as the identifier, and returns whenever there is data available to read. The behavior of the filter is slightly different depending @@ -265,7 +265,7 @@ subject to the value of the socket buffer. This may be overridden with a per-filter low water mark at the time the filter is added by setting the -.Dv NOTE_LOWAT +NOTE_LOWAT flag in .Va fflags , and specifying the new low water mark in @@ -275,9 +275,7 @@ On return, contains the number of bytes of protocol data available to read. .Pp If the read direction of the socket has shutdown, then the filter -also sets -.Dv EV_EOF -in +also sets EV_EOF in .Va flags , and returns the socket error (if any) in .Va fflags . @@ -293,13 +291,9 @@ Returns when the there is data to read; .Va data contains the number of bytes available. .Pp -When the last writer disconnects, the filter will set -.Dv EV_EOF -in +When the last writer disconnects, the filter will set EV_EOF in .Va flags . -This may be cleared by passing in -.Dv EV_CLEAR , -at which point the +This may be cleared by passing in EV_CLEAR, at which point the filter will resume waiting for data to become available before returning. .It "BPF devices" @@ -310,7 +304,7 @@ enabled and there is any data to read; .Va data contains the number of bytes available. .El -.It Dv EVFILT_WRITE +.It EVFILT_WRITE Takes a descriptor as the identifier, and returns whenever it is possible to write to the descriptor. For sockets, pipes @@ -318,30 +312,23 @@ and fifos, .Va data will contain the amount of space remaining in the write buffer. The filter will set EV_EOF when the reader disconnects, and for -the fifo case, this may be cleared by use of -.Dv EV_CLEAR . +the fifo case, this may be cleared by use of EV_CLEAR. Note that this filter is not supported for vnodes or BPF devices. .Pp For sockets, the low water mark and socket error handling is -identical to the -.Dv EVFILT_READ -case. -.It Dv EVFILT_AIO +identical to the EVFILT_READ case. +.It EVFILT_AIO The sigevent portion of the AIO request is filled in, with .Va sigev_notify_kqueue containing the descriptor of the kqueue that the event should be attached to, .Va sigev_notify_kevent_flags -containing the kevent flags which should be -.Dv EV_ONESHOT , -.Dv EV_CLEAR -or -.Dv EV_DISPATCH , +containing the kevent flags which should be EV_ONESHOT, EV_CLEAR or +EV_DISPATCH, .Va sigev_value containing the udata value, and .Va sigev_notify -set to -.Dv SIGEV_KEVENT . +set to SIGEV_KEVENT. When the .Fn aio_* system call is made, the event will be registered @@ -352,30 +339,29 @@ argument set to the returned by the .Fn aio_* system call. -The filter returns under the same conditions as -.Fn aio_error . -.It Dv EVFILT_VNODE +The filter returns under the same conditions as aio_error. +.It EVFILT_VNODE Takes a file descriptor as the identifier and the events to watch for in .Va fflags , and returns when one or more of the requested events occurs on the descriptor. The events to monitor are: -.Bl -tag -width "Dv NOTE_RENAME" -.It Dv NOTE_DELETE +.Bl -tag -width XXNOTE_RENAME +.It NOTE_DELETE The .Fn unlink system call was called on the file referenced by the descriptor. -.It Dv NOTE_WRITE +.It NOTE_WRITE A write occurred on the file referenced by the descriptor. -.It Dv NOTE_EXTEND +.It NOTE_EXTEND The file referenced by the descriptor was extended. -.It Dv NOTE_ATTRIB +.It NOTE_ATTRIB The file referenced by the descriptor had its attributes changed. -.It Dv NOTE_LINK +.It NOTE_LINK The link count on the file changed. -.It Dv NOTE_RENAME +.It NOTE_RENAME The file referenced by the descriptor was renamed. -.It Dv NOTE_REVOKE +.It NOTE_REVOKE Access to the file was revoked via .Xr revoke 2 or the underlying file system was unmounted. @@ -384,26 +370,26 @@ or the underlying file system was unmounted. On return, .Va fflags contains the events which triggered the filter. -.It Dv EVFILT_PROC +.It EVFILT_PROC Takes the process ID to monitor as the identifier and the events to watch for in .Va fflags , and returns when the process performs one or more of the requested events. If a process can normally see another process, it can attach an event to it. The events to monitor are: -.Bl -tag -width "Dv NOTE_TRACKERR" -.It Dv NOTE_EXIT +.Bl -tag -width XXNOTE_TRACKERR +.It NOTE_EXIT The process has exited. The exit status will be stored in .Va data . -.It Dv NOTE_FORK +.It NOTE_FORK The process has called .Fn fork . -.It Dv NOTE_EXEC +.It NOTE_EXEC The process has executed a new process via .Xr execve 2 or a similar call. -.It Dv NOTE_TRACK +.It NOTE_TRACK Follow a process across .Fn fork calls. @@ -411,28 +397,22 @@ The parent process registers a new kevent to monitor the child process using the same .Va fflags as the original event. -The child process will signal an event with -.Dv NOTE_CHILD -set in +The child process will signal an event with NOTE_CHILD set in .Va fflags and the parent PID in .Va data . .Pp If the parent process fails to register a new kevent .Pq usually due to resource limitations , -it will signal an event with -.Dv NOTE_TRACKERR -set in +it will signal an event with NOTE_TRACKERR set in .Va fflags , -and the child process will not signal a -.Dv NOTE_CHILD -event. +and the child process will not signal a NOTE_CHILD event. .El .Pp On return, .Va fflags contains the events which triggered the filter. -.It Dv EVFILT_PROCDESC +.It EVFILT_PROCDESC Takes the process descriptor created by .Xr pdfork 2 to monitor as the identifier and the events to watch for in @@ -440,8 +420,8 @@ to monitor as the identifier and the events to watch for in and returns when the associated process performs one or more of the requested events. The events to monitor are: -.Bl -tag -width "Dv NOTE_EXIT" -.It Dv NOTE_EXIT +.Bl -tag -width XXNOTE_EXIT +.It NOTE_EXIT The process has exited. The exit status will be stored in .Va data . @@ -450,7 +430,7 @@ The exit status will be stored in On return, .Va fflags contains the events which triggered the filter. -.It Dv EVFILT_SIGNAL +.It EVFILT_SIGNAL Takes the signal number to monitor as the identifier and returns when the given signal is delivered to the process. This coexists with the @@ -460,9 +440,7 @@ and facilities, and has a lower precedence. The filter will record all attempts to deliver a signal to a process, even if the signal has -been marked as -.Dv SIG_IGN , -except for the +been marked as SIG_IGN, except for the .Dv SIGCHLD signal, which, if ignored, won't be recorded by the filter. Event notification happens after normal @@ -470,18 +448,14 @@ signal delivery processing. .Va data returns the number of times the signal has occurred since the last call to .Fn kevent . -This filter automatically sets the -.Dv EV_CLEAR -flag internally. -.It Dv EVFILT_TIMER +This filter automatically sets the EV_CLEAR flag internally. +.It EVFILT_TIMER Establishes an arbitrary timer identified by .Va ident . When adding a timer, .Va data specifies the timeout period. -The timer will be periodic unless -.Dv EV_ONESHOT -is specified. +The timer will be periodic unless EV_ONESHOT is specified. On return, .Va data contains the number of times the timeout has expired since the last call to @@ -491,7 +465,7 @@ There is a system wide limit on the number of timers which is controlled by the .Va kern.kq_calloutmax sysctl. -.Bl -tag -width "Dv NOTE_USECONDS" +.Bl -tag -width XXNOTE_USECONDS .It Dv NOTE_SECONDS .Va data is in seconds. @@ -519,7 +493,7 @@ user level code. The lower 24 bits of the .Va fflags may be used for user defined flags and manipulated using the following: -.Bl -tag -width "Dv NOTE_FFLAGSMASK" +.Bl -tag -width XXNOTE_FFLAGSMASK .It Dv NOTE_FFNOP Ignore the input .Va fflags . @@ -541,7 +515,7 @@ User defined flag mask for .El .Pp A user event is triggered for output with the following: -.Bl -tag -width "Dv NOTE_FFLAGSMASK" +.Bl -tag -width XXNOTE_FFLAGSMASK .It Dv NOTE_TRIGGER Cause the event to be triggered. .El @@ -550,16 +524,6 @@ On return, .Va fflags contains the users defined flags in the lower 24 bits. .El -.Sh CANCELLATION BEHAVIOUR -If -.Fa nevents -is non-zero, i.e. the function is potentially blocking, the call -is a cancellation point. -Otherwise, i.e. if -.Fa nevents -is zero, the call is not cancellable. -Cancellation can only occur before any changes are made to the kqueue, -or when the call was blocked and no changes to the queue were requested. .Sh RETURN VALUES The .Fn kqueue @@ -630,8 +594,6 @@ The specified descriptor is invalid. .It Bq Er EINTR A signal was delivered before the timeout expired and before any events were placed on the kqueue for return. -.It Bq Er EINTR -A cancellation request was delivered to the thread, but not yet handled. .It Bq Er EINVAL The specified time limit or filter is invalid. .It Bq Er ENOENT @@ -646,14 +608,6 @@ sysctl. .It Bq Er ESRCH The specified process to attach to does not exist. .El -.Pp -When -.Fn kevent -call fails with -.Er EINTR -error, all changes in the -.Fa changelist -have been applied. .Sh SEE ALSO .Xr aio_error 2 , .Xr aio_read 2 , @@ -663,7 +617,6 @@ have been applied. .Xr select 2 , .Xr sigaction 2 , .Xr write 2 , -.Xr pthread_setcancelstate 3 , .Xr signal 3 .Sh HISTORY The diff --git a/lib/libc/sys/lseek.c b/lib/libc/sys/lseek.c new file mode 100644 index 0000000..a086be1 --- /dev/null +++ b/lib/libc/sys/lseek.c @@ -0,0 +1,56 @@ +/* + * Copyright (c) 1992, 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. + * 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. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)lseek.c 8.1 (Berkeley) 6/17/93"; +#endif /* LIBC_SCCS and not lint */ +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + +#include <sys/types.h> +#include <sys/syscall.h> +#include <unistd.h> +#include "libc_private.h" + +/* + * This function provides 64-bit offset padding that + * is not supplied by GCC 1.X but is supplied by GCC 2.X. + */ +off_t +lseek(fd, offset, whence) + int fd; + off_t offset; + int whence; +{ + + if (__getosreldate() >= 700051) + return(__sys_lseek(fd, offset, whence)); + else + return(__sys_freebsd6_lseek(fd, 0, offset, whence)); +} diff --git a/lib/libc/sys/mmap.2 b/lib/libc/sys/mmap.2 index c818342..7380a7f 100644 --- a/lib/libc/sys/mmap.2 +++ b/lib/libc/sys/mmap.2 @@ -28,7 +28,7 @@ .\" @(#)mmap.2 8.4 (Berkeley) 5/11/95 .\" $FreeBSD$ .\" -.Dd February 18, 2015 +.Dd September 17, 2014 .Dt MMAP 2 .Os .Sh NAME @@ -160,7 +160,7 @@ is specified, must be a multiple of the pagesize. If .Dv MAP_EXCL -is not specified, a successful +is not specified, a successfull .Dv MAP_FIXED request replaces any previous mappings for the process' pages in the range from @@ -225,7 +225,7 @@ it. You can test file fragmentation by observing the KB/t (kilobytes per transfer) results from an .Dq Li iostat 1 -while reading a large file sequentially, e.g.,\& using +while reading a large file sequentially, e.g.\& using .Dq Li dd if=filename of=/dev/null bs=32k . .Pp The @@ -448,3 +448,17 @@ was specified and insufficient memory was available. .Xr munmap 2 , .Xr getpagesize 3 , .Xr getpagesizes 3 +.Sh BUGS +The +.Fa len +argument +is limited to the maximum file size or available userland address +space. +Files may not be able to be made more than 1TB large on 32 bit systems +due to file systems restrictions and bugs, but address space is far more +restrictive. +Larger files may be possible on 64 bit systems. +.Pp +The previous documented limit of 2GB was a documentation bug. +That limit has not existed since +.Fx 2.2 . diff --git a/lib/libc/sys/mmap.c b/lib/libc/sys/mmap.c new file mode 100644 index 0000000..0fa03ba --- /dev/null +++ b/lib/libc/sys/mmap.c @@ -0,0 +1,56 @@ +/* + * Copyright (c) 1992, 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. + * 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. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)mmap.c 8.1 (Berkeley) 6/17/93"; +#endif /* LIBC_SCCS and not lint */ +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + +#include <sys/types.h> +#include <sys/mman.h> +#include <sys/syscall.h> +#include <unistd.h> +#include "libc_private.h" + +/* + * This function provides 64-bit offset padding that + * is not supplied by GCC 1.X but is supplied by GCC 2.X. + */ +void * +mmap(void *addr, size_t len, int prot, int flags, int fd, off_t offset) +{ + + if (__getosreldate() >= 700051) { + return (__sys_mmap(addr, len, prot, flags, fd, offset)); + } else { + return (__sys_freebsd6_mmap(addr, len, prot, flags, fd, 0, + offset)); + } +} diff --git a/lib/libc/sys/mount.2 b/lib/libc/sys/mount.2 index 881d830..57ad428 100644 --- a/lib/libc/sys/mount.2 +++ b/lib/libc/sys/mount.2 @@ -28,7 +28,7 @@ .\" @(#)mount.2 8.3 (Berkeley) 5/24/95 .\" $FreeBSD$ .\" -.Dd April 13, 2015 +.Dd January 26, 2010 .Dt MOUNT 2 .Os .Sh NAME @@ -86,7 +86,7 @@ containing .Fa niov elements. The following options are required by all file systems: -.Bl -column fstype -offset indent +.Bl -item -offset indent -compact .It .Li fstype Ta file system type name (e.g., Dq Li procfs ) .It @@ -351,6 +351,11 @@ The argument points outside the process's allocated address space. .El +.Pp +A +.Em ufs +mount can also fail if the maximum number of file systems are currently +mounted. .Sh SEE ALSO .Xr lsvfs 1 , .Xr mksnap_ffs 8 , diff --git a/lib/libc/sys/msync.c b/lib/libc/sys/msync.c deleted file mode 100644 index 3c6879f..0000000 --- a/lib/libc/sys/msync.c +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <sys/fcntl.h> -#include "libc_private.h" - -__weak_reference(__sys_msync, __msync); - -#pragma weak msync -int -msync(void *addr, size_t len, int flags) -{ - - return (((int (*)(void *, size_t, int)) - __libc_interposing[INTERPOS_msync])(addr, len, flags)); -} diff --git a/lib/libc/sys/nanosleep.c b/lib/libc/sys/nanosleep.c deleted file mode 100644 index 412b05e..0000000 --- a/lib/libc/sys/nanosleep.c +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <time.h> -#include "libc_private.h" - -__weak_reference(__sys_nanosleep, __nanosleep); - -#pragma weak nanosleep -int -nanosleep(const struct timespec *rqtp, struct timespec *rmtp) -{ - - return (((int (*)(const struct timespec *, struct timespec *)) - __libc_interposing[INTERPOS_nanosleep])(rqtp, rmtp)); -} diff --git a/lib/libc/sys/open.2 b/lib/libc/sys/open.2 index acd376c..41a6c64 100644 --- a/lib/libc/sys/open.2 +++ b/lib/libc/sys/open.2 @@ -28,7 +28,7 @@ .\" @(#)open.2 8.2 (Berkeley) 11/16/93 .\" $FreeBSD$ .\" -.Dd April 2, 2015 +.Dd February 7, 2013 .Dt OPEN 2 .Os .Sh NAME @@ -115,8 +115,8 @@ O_DIRECT eliminate or reduce cache effects O_FSYNC synchronous writes O_SYNC synchronous writes O_NOFOLLOW do not follow symlinks -O_NOCTTY ignored -O_TTY_INIT ignored +O_NOCTTY don't assign controlling terminal +O_TTY_INIT restore default terminal attributes O_DIRECTORY error if file is not a directory O_CLOEXEC set FD_CLOEXEC upon open .Ed diff --git a/lib/libc/sys/open.c b/lib/libc/sys/open.c deleted file mode 100644 index e0273c6..0000000 --- a/lib/libc/sys/open.c +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <sys/fcntl.h> -#include <stdarg.h> -#include "libc_private.h" - -__weak_reference(__sys_open, __open); - -#pragma weak open -int -open(const char *path, int flags, ...) -{ - va_list ap; - int mode; - - if ((flags & O_CREAT) != 0) { - va_start(ap, flags); - mode = va_arg(ap, int); - va_end(ap); - } else { - mode = 0; - } - return (((int (*)(int, const char *, int, ...)) - __libc_interposing[INTERPOS_openat])(AT_FDCWD, path, flags, mode)); -} diff --git a/lib/libc/sys/openat.c b/lib/libc/sys/openat.c deleted file mode 100644 index 1bd12ea..0000000 --- a/lib/libc/sys/openat.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <sys/fcntl.h> -#include <stdarg.h> -#include "libc_private.h" - -__weak_reference(__sys_openat, __openat); -__sym_compat(openat, __impl_openat, FBSD_1.1); -__weak_reference(openat, __impl_openat); -__sym_default(openat, openat, FBSD_1.2); - -#pragma weak openat -int -openat(int fd, const char *path, int flags, ...) -{ - va_list ap; - int mode; - - if ((flags & O_CREAT) != 0) { - va_start(ap, flags); - mode = va_arg(ap, int); - va_end(ap); - } else { - mode = 0; - } - return (((int (*)(int, const char *, int, ...)) - __libc_interposing[INTERPOS_openat])(fd, path, flags, mode)); -} diff --git a/lib/libc/sys/poll.2 b/lib/libc/sys/poll.2 index dbd641f..a1c7ada 100644 --- a/lib/libc/sys/poll.2 +++ b/lib/libc/sys/poll.2 @@ -148,8 +148,8 @@ is zero, then will return without blocking. .Pp The -.Fn ppoll -system call, unlike +.Fn ppoll +system call, unlike .Fn poll , is used to safely wait until either a set of file descriptors becomes ready or until a signal is caught. @@ -174,12 +174,13 @@ used by A null pointer may be passed to indicate that .Fn ppoll should wait indefinitely. -Finally, +Finally, .Fa newsigmask specifies a signal mask which is set while waiting for input. -When +When .Fn ppoll returns, the original signal mask is restored. +.Pp .Bd -literal struct timespec { time_t tv_sec; /* seconds */ @@ -246,11 +247,11 @@ The specified time limit is invalid. One of its components is negative or too la .Xr write 2 .Sh STANDARDS The -.Fn poll +.Fn poll function conforms to .St -p1003.1-2001 . The -.Fn ppoll +.Fn ppoll is not specified by POSIX. .Sh HISTORY The @@ -261,8 +262,8 @@ This manual page and the core of the implementation was taken from .Nx . The .Fn ppoll -function first appeared in -.Fx 11.0 +function first appeared in +.Fx 11.0 .Sh BUGS The distinction between some of the fields in the .Fa events diff --git a/lib/libc/sys/poll.c b/lib/libc/sys/poll.c deleted file mode 100644 index 43c17d2..0000000 --- a/lib/libc/sys/poll.c +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <sys/poll.h> -#include "libc_private.h" - -__weak_reference(__sys_poll, __poll); - -#pragma weak poll -int -poll(struct pollfd pfd[], nfds_t nfds, int timeout) -{ - - return (((int (*)(struct pollfd *, nfds_t, int)) - __libc_interposing[INTERPOS_poll])(pfd, nfds, timeout)); -} diff --git a/lib/libc/sys/posix_openpt.2 b/lib/libc/sys/posix_openpt.2 index b7e345c..916e75a 100644 --- a/lib/libc/sys/posix_openpt.2 +++ b/lib/libc/sys/posix_openpt.2 @@ -110,8 +110,8 @@ is not valid. Out of pseudo-terminal resources. .El .Sh SEE ALSO -.Xr ptsname 3 , .Xr pts 4 , +.Xr ptsname 3 , .Xr tty 4 .Sh STANDARDS The @@ -137,4 +137,4 @@ is included for compatibility; in opening a terminal does not cause it to become a process's controlling terminal. .Sh AUTHORS -.An \&Ed Schouten Aq Mt ed@FreeBSD.org +.An Ed Schouten Aq Mt ed@FreeBSD.org diff --git a/lib/libc/sys/ppoll.c b/lib/libc/sys/ppoll.c deleted file mode 100644 index f62fd19..0000000 --- a/lib/libc/sys/ppoll.c +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2015 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <sys/poll.h> -#include "libc_private.h" - -__weak_reference(__sys_ppoll, __ppoll); - -#pragma weak ppoll -int -ppoll(struct pollfd pfd[], nfds_t nfds, const struct timespec *__restrict - timeout, const sigset_t *__restrict newsigmask) -{ - - return (((int (*)(struct pollfd *, nfds_t, const struct timespec *, - const sigset_t *)) __libc_interposing[INTERPOS_ppoll])(pfd, nfds, - timeout, newsigmask)); -} diff --git a/lib/libc/sys/pread.c b/lib/libc/sys/pread.c new file mode 100644 index 0000000..7566566 --- /dev/null +++ b/lib/libc/sys/pread.c @@ -0,0 +1,57 @@ +/* + * Copyright (c) 1992, 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. + * 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. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)mmap.c 8.1 (Berkeley) 6/17/93"; +#endif /* LIBC_SCCS and not lint */ +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + +#include <sys/types.h> +#include <sys/syscall.h> +#include <unistd.h> +#include "libc_private.h" + +/* + * This function provides 64-bit offset padding that + * is not supplied by GCC 1.X but is supplied by GCC 2.X. + */ +ssize_t +pread(fd, buf, nbyte, offset) + int fd; + void *buf; + size_t nbyte; + off_t offset; +{ + + if (__getosreldate() >= 700051) + return (__sys_pread(fd, buf, nbyte, offset)); + else + return (__sys_freebsd6_pread(fd, buf, nbyte, 0, offset)); +} diff --git a/lib/libc/sys/procctl.2 b/lib/libc/sys/procctl.2 index 76a3cef..6ad0590 100644 --- a/lib/libc/sys/procctl.2 +++ b/lib/libc/sys/procctl.2 @@ -1,11 +1,7 @@ -.\" Copyright (c) 2013 Hudson River Trading LLC +.\" Copyright (c) 2013 Advanced Computing Technologies LLC .\" Written by: John H. Baldwin <jhb@FreeBSD.org> .\" All rights reserved. .\" -.\" Copyright (c) 2014 The FreeBSD Foundation -.\" Portions of this documentation were written by Konstantin Belousov -.\" under sponsorship from the FreeBSD Foundation. -.\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: @@ -29,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 29, 2014 +.Dd September 19, 2013 .Dt PROCCTL 2 .Os .Sh NAME @@ -71,7 +67,7 @@ The control request to perform is specified by the .Fa cmd argument. The following commands are supported: -.Bl -tag -width "Dv PROC_REAP_GETPIDS" +.Bl -tag -width "Dv PROC_SPROTECT" .It Dv PROC_SPROTECT Set process protection state. This is used to mark a process as protected from being killed if the system @@ -99,237 +95,7 @@ When used with mark all future child processes of each selected process as protected. Future child processes will also mark all of their future child processes. .El -.It Dv PROC_REAP_ACQUIRE -Acquires the reaper status for the current process. -The status means that children orphaned by the reaper's descendants -that were forked after the acquisition of the status are reparented to the -reaper. -After the system initialization, -.Xr init 8 -is the default reaper. -.It Dv PROC_REAP_RELEASE -Releases the reaper state for the current process. -The reaper of the current process becomes the new reaper of the -current process's descendants. -.It Dv PROC_REAP_STATUS -Provides the information about the reaper of the specified process, -or the process itself when it is a reaper. -The -.Fa data -argument must point to a -.Vt procctl_reaper_status -structure which is filled in by the syscall on successful return. -.Bd -literal -struct procctl_reaper_status { - u_int rs_flags; - u_int rs_children; - u_int rs_descendants; - pid_t rs_reaper; - pid_t rs_pid; -}; -.Ed -The -.Fa rs_flags -may have the following flags returned: -.Bl -tag -width "Dv REAPER_STATUS_REALINIT" -.It Dv REAPER_STATUS_OWNED -The specified process has acquired the reaper status and has not -released it. -When the flag is returned, the specified process -.Fa id , -pid, identifies the reaper, otherwise the -.Fa rs_reaper -field of the structure is set to the pid of the reaper -for the specified process id. -.It Dv REAPER_STATUS_REALINIT -The specified process is the root of the reaper tree, i.e. -.Xr init 8 . -.El -.Pp -The -.Fa rs_children -field returns the number of children of the reaper. -The -.Fa rs_descendants -field returns the total number of descendants of the reaper(s), -not counting descendants of the reaper in the subtree. -The -.Fa rs_reaper -field returns the reaper pid. -The -.Fa rs_pid -returns the pid of one reaper child if there are any descendants. -.It Dv PROC_REAP_GETPIDS -Queries the list of descendants of the reaper of the specified process. -The request takes a pointer to a -.Vt procctl_reaper_pids -structure in the -.Fa data -parameter. -.Bd -literal -struct procctl_reaper_pids { - u_int rp_count; - struct procctl_reaper_pidinfo *rp_pids; -}; -.Ed -When called, the -.Fa rp_pids -field must point to an array of -.Vt procctl_reaper_pidinfo -structures, to be filled in on return, -and the -.Fa rp_count -field must specify the size of the array, -into which no more than -.Fa rp_count -elements will be filled in by the kernel. -.Pp -The -.Vt "struct procctl_reaper_pidinfo" -structure provides some information about one of the reaper's descendants. -Note that for a descendant that is not a child, it may be incorrectly -identified because of a race in which the original child process exited -and the exited process's pid was reused for an unrelated process. -.Bd -literal -struct procctl_reaper_pidinfo { - pid_t pi_pid; - pid_t pi_subtree; - u_int pi_flags; -}; -.Ed -The -.Fa pi_pid -field is the process id of the descendant. -The -.Fa pi_subtree -field provides the pid of the child of the reaper, which is the (grand-)parent -of the process. -The -.Fa pi_flags -field returns the following flags, further describing the descendant: -.Bl -tag -width "Dv REAPER_PIDINFO_VALID" -.It Dv REAPER_PIDINFO_VALID -Set to indicate that the -.Vt procctl_reaper_pidinfo -structure was filled in by the kernel. -Zero-filling the -.Fa rp_pids -array and testing the -.Dv REAPER_PIDINFO_VALID -flag allows the caller to detect the end -of the returned array. -.It Dv REAPER_PIDINFO_CHILD -The -.Fa pi_pid -field identifies the direct child of the reaper. -.El -.It Dv PROC_REAP_KILL -Request to deliver a signal to some subset of the descendants of the reaper. -The -.Fa data -parameter must point to a -.Vt procctl_reaper_kill -structure, which is used both for parameters and status return. -.Bd -literal -struct procctl_reaper_kill { - int rk_sig; - u_int rk_flags; - pid_t rk_subtree; - u_int rk_killed; - pid_t rk_fpid; -}; -.Ed -The -.Fa rk_sig -field specifies the signal to be delivered. -Zero is not a valid signal number, unlike -.Xr kill 2 . -The -.Fa rk_flags -field further directs the operation. -It is or-ed from the following flags: -.Bl -tag -width "Dv REAPER_KILL_CHILDREN" -.It Dv REAPER_KILL_CHILDREN -Deliver the specified signal only to direct children of the reaper. -.It Dv REAPER_KILL_SUBTREE -Deliver the specified signal only to descendants that were forked by -the direct child with pid specified in the -.Fa rk_subtree -field. -.El -If neither the -.Dv REAPER_KILL_CHILDREN -nor the -.Dv REAPER_KILL_SUBTREE -flags are specified, all current descendants of the reaper are signalled. -.Pp -If a signal was delivered to any process, the return value from the request -is zero. -In this case, the -.Fa rk_killed -field identifies the number of processes signalled. -The -.Fa rk_fpid -field is set to the pid of the first process for which signal -delivery failed, e.g. due to the permission problems. -If no such process exist, the -.Fa rk_fpid -field is set to -1. -.It Dv PROC_TRACE_CTL -Enable or disable tracing of the specified process(es), according to the -value of the integer argument. -Tracing includes attachment to the process using -.Xr ptrace 2 -and -.Xr ktrace 2 , -debugging sysctls, -.Xr hwpmc 4 , -.Xr dtrace 1 -and core dumping. -Possible values for the -.Fa data -argument are: -.Bl -tag -width "Dv PROC_TRACE_CTL_DISABLE_EXEC" -.It Dv PROC_TRACE_CTL_ENABLE -Enable tracing, after it was disabled by -.Dv PROC_TRACE_CTL_DISABLE . -Only allowed for self. -.It Dv PROC_TRACE_CTL_DISABLE -Disable tracing for the specified process. -Tracing is re-enabled when the process changes the executing -program with -.Xr execve 2 -syscall. -A child inherits the trace settings from the parent on -.Xr fork 2 . -.It Dv PROC_TRACE_CTL_DISABLE_EXEC -Same as -.Dv PROC_TRACE_CTL_DISABLE , -but the setting persist for the process even after -.Xr execve 2 . -.El -.It Dv PROC_TRACE_STATUS -Returns the current tracing status for the specified process in -the integer variable pointed to by -.Fa data . -If tracing is disabled, -.Fa data -is set to -1. -If tracing is enabled, but no debugger is attached by -.Xr ptrace 2 -syscall, -.Fa data -is set to 0. -If a debugger is attached, -.Fa data -is set to the pid of the debugger process. .El -.Sh NOTES -Disabling tracing on a process should not be considered a security -feature, as it is bypassable both by the kernel and privileged processes, -and via other system mechanisms. -As such, it should not be relied on to reliably protect cryptographic -keying material or other confidential data. .Sh RETURN VALUES If an error occurs, a value of -1 is returned and .Va errno @@ -343,7 +109,7 @@ will fail if: .It Bq Er EFAULT The .Fa arg -parameter points outside the process's allocated address space. +points outside the process's allocated address space. .It Bq Er EINVAL The .Fa cmd @@ -366,71 +132,11 @@ An invalid operation or flag was passed in for a .Dv PROC_SPROTECT command. -.It Bq Er EPERM -The -.Fa idtype -argument is not equal to -.Dv P_PID , -or -.Fa id -is not equal to the pid of the calling process, for -.Dv PROC_REAP_ACQUIRE -or -.Dv PROC_REAP_RELEASE -requests. -.It Bq Er EINVAL -Invalid or undefined flags were passed to a -.Dv PROC_REAP_KILL -request. -.It Bq Er EINVAL -An invalid or zero signal number was requested for a -.Dv PROC_REAP_KILL -request. -.It Bq Er EINVAL -The -.Dv PROC_REAP_RELEASE -request was issued by the -.Xr init 8 -process. -.It Bq Er EBUSY -The -.Dv PROC_REAP_ACQUIRE -request was issued by a process that had already acquired reaper status -and has not yet released it. -.It Bq Er EBUSY -The -.Dv PROC_TRACE_CTL -request was issued for a process already being traced. -.It Bq Er EPERM -The -.Dv PROC_TRACE_CTL -request to re-enable tracing of the process ( -.Dv PROC_TRACE_CTL_ENABLE ) , -or to disable persistence of the -.Dv PROC_TRACE_CTL_DISABLE -on -.Xr execve 2 -was issued for a non-current process. -.It Bq Er EINVAL -The value of the integer -.Fa data -parameter for the -.Dv PROC_TRACE_CTL -request is invalid. .El .Sh SEE ALSO -.Xr dtrace 1 , -.Xr kill 2 , -.Xr ktrace 2 , -.Xr ptrace 2 , -.Xr wait 2 , -.Xr hwpmc 4 , -.Xr init 8 +.Xr ptrace 2 .Sh HISTORY The .Fn procctl function appeared in .Fx 10.0 . -The reaper facility is based on a similar feature of Linux and -DragonflyBSD, and first appeared in -.Fx 10.2 . diff --git a/lib/libc/sys/pselect.c b/lib/libc/sys/pselect.c deleted file mode 100644 index a623a7d..0000000 --- a/lib/libc/sys/pselect.c +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <sys/select.h> -#include "libc_private.h" - -__weak_reference(__sys_pselect, __pselect); - -#pragma weak pselect -int -pselect(int n, fd_set *rs, fd_set *ws, fd_set *es, const struct timespec *t, - const sigset_t *s) -{ - - return (((int (*)(int, fd_set *, fd_set *, fd_set *, - const struct timespec *, const sigset_t *)) - __libc_interposing[INTERPOS_pselect])(n, rs, ws, es, t, s)); -} diff --git a/lib/libc/sys/pwrite.c b/lib/libc/sys/pwrite.c new file mode 100644 index 0000000..d17ed29 --- /dev/null +++ b/lib/libc/sys/pwrite.c @@ -0,0 +1,56 @@ +/* + * Copyright (c) 1992, 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. + * 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. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)mmap.c 8.1 (Berkeley) 6/17/93"; +#endif /* LIBC_SCCS and not lint */ +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + +#include <sys/types.h> +#include <sys/syscall.h> +#include <unistd.h> +#include "libc_private.h" + +/* + * This function provides 64-bit offset padding that + * is not supplied by GCC 1.X but is supplied by GCC 2.X. + */ +ssize_t +pwrite(fd, buf, nbyte, offset) + int fd; + const void *buf; + size_t nbyte; + off_t offset; +{ + if (__getosreldate() >= 700051) + return (__sys_pwrite(fd, buf, nbyte, offset)); + else + return (__sys_freebsd6_pwrite(fd, buf, nbyte, 0, offset)); +} diff --git a/lib/libc/sys/read.c b/lib/libc/sys/read.c deleted file mode 100644 index ab30189..0000000 --- a/lib/libc/sys/read.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <sys/syscall.h> -#include <unistd.h> -#include "libc_private.h" - -__weak_reference(__sys_read, __read); - -#pragma weak read -ssize_t -read(int fd, void *buf, size_t nbytes) -{ - - return (((ssize_t (*)(int, void *, size_t)) - __libc_interposing[INTERPOS_read])(fd, buf, nbytes)); -} diff --git a/lib/libc/sys/readv.c b/lib/libc/sys/readv.c deleted file mode 100644 index 8c82040..0000000 --- a/lib/libc/sys/readv.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <sys/syscall.h> -#include <unistd.h> -#include "libc_private.h" - -__weak_reference(__sys_readv, __readv); - -#pragma weak readv -ssize_t -readv(int fd, const struct iovec *iov, int iovcnt) -{ - - return (((ssize_t (*)(int, const struct iovec *, int)) - __libc_interposing[INTERPOS_readv])(fd, iov, iovcnt)); -} diff --git a/lib/libc/sys/recvfrom.c b/lib/libc/sys/recvfrom.c deleted file mode 100644 index aa6ef3f..0000000 --- a/lib/libc/sys/recvfrom.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <sys/syscall.h> -#include <sys/socket.h> -#include "libc_private.h" - -__weak_reference(__sys_recvfrom, __recvfrom); - -#pragma weak recvfrom -ssize_t -recvfrom(int s, void *buf, size_t len, int flags, - struct sockaddr * __restrict from, socklen_t * __restrict fromlen) -{ - - return (((ssize_t (*)(int, void *, size_t, int, - struct sockaddr *, socklen_t *)) - __libc_interposing[INTERPOS_recvfrom])(s, buf, len, flags, - from, fromlen)); -} diff --git a/lib/libc/sys/recvmsg.c b/lib/libc/sys/recvmsg.c deleted file mode 100644 index 282ede9..0000000 --- a/lib/libc/sys/recvmsg.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <sys/syscall.h> -#include <sys/socket.h> -#include "libc_private.h" - -__weak_reference(__sys_recvmsg, __recvmsg); - -#pragma weak recvmsg -ssize_t -recvmsg(int s, struct msghdr *msg, int flags) -{ - - return (((int (*)(int, struct msghdr *, int)) - __libc_interposing[INTERPOS_recvmsg])(s, msg, flags)); -} diff --git a/lib/libc/sys/revoke.2 b/lib/libc/sys/revoke.2 index 482cbf6..57abdbb 100644 --- a/lib/libc/sys/revoke.2 +++ b/lib/libc/sys/revoke.2 @@ -97,8 +97,8 @@ operation on the named file. The caller is neither the owner of the file nor the super user. .El .Sh SEE ALSO -.Xr revoke 1 , -.Xr close 2 +.Xr close 2 , +.Xr revoke 1 .Sh HISTORY The .Fn revoke diff --git a/lib/libc/sys/sched_setscheduler.2 b/lib/libc/sys/sched_setscheduler.2 index b84c1a1..3e7c42b 100644 --- a/lib/libc/sys/sched_setscheduler.2 +++ b/lib/libc/sys/sched_setscheduler.2 @@ -151,9 +151,9 @@ argument is invalid, or one or more of the parameters contained in is outside the valid range for the specified scheduling policy. .El .Sh SEE ALSO +.Xr sched_getparam 2 , .Xr sched_get_priority_max 2 , .Xr sched_get_priority_min 2 , -.Xr sched_getparam 2 , .Xr sched_rr_get_interval 2 , .Xr sched_setparam 2 , .Xr sched_yield 2 diff --git a/lib/libc/sys/select.c b/lib/libc/sys/select.c deleted file mode 100644 index 3990496..0000000 --- a/lib/libc/sys/select.c +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <sys/select.h> -#include "libc_private.h" - -__weak_reference(__sys_select, __select); - -#pragma weak select -int -select(int n, fd_set *rs, fd_set *ws, fd_set *es, struct timeval *t) -{ - - return (((int (*)(int, fd_set *, fd_set *, fd_set *, struct timeval *)) - __libc_interposing[INTERPOS_select])(n, rs, ws, es, t)); -} diff --git a/lib/libc/sys/sendmsg.c b/lib/libc/sys/sendmsg.c deleted file mode 100644 index 7944643..0000000 --- a/lib/libc/sys/sendmsg.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <sys/syscall.h> -#include <sys/socket.h> -#include "libc_private.h" - -__weak_reference(__sys_sendmsg, __sendmsg); - -#pragma weak sendmsg -ssize_t -sendmsg(int s, const struct msghdr *msg, int flags) -{ - - return (((int (*)(int, const struct msghdr *, int)) - __libc_interposing[INTERPOS_sendmsg])(s, msg, flags)); -} diff --git a/lib/libc/sys/sendto.c b/lib/libc/sys/sendto.c deleted file mode 100644 index ecf98ee..0000000 --- a/lib/libc/sys/sendto.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <sys/syscall.h> -#include <sys/socket.h> -#include "libc_private.h" - -__weak_reference(__sys_sendto, __sendto); - -#pragma weak sendto -ssize_t -sendto(int s, const void *msg, size_t len, int flags, - const struct sockaddr *to, socklen_t tolen) -{ - - return (((ssize_t (*)(int, const void *, size_t, int, - const struct sockaddr *, socklen_t)) - __libc_interposing[INTERPOS_sendto])(s, msg, len, flags, - to, tolen)); -} diff --git a/lib/libc/sys/setcontext.c b/lib/libc/sys/setcontext.c deleted file mode 100644 index 31b888f..0000000 --- a/lib/libc/sys/setcontext.c +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <ucontext.h> -#include "libc_private.h" - -__weak_reference(__sys_setcontext, __setcontext); -__sym_compat(setcontext, __impl_setcontext, FBSD_1.0); -__weak_reference(setcontext, __impl_setcontext); -__sym_default(setcontext, setcontext, FBSD_1.2); - -#pragma weak setcontext -int -setcontext(const ucontext_t *uc) -{ - - return (((int (*)(const ucontext_t *)) - __libc_interposing[INTERPOS_setcontext])(uc)); -} diff --git a/lib/libc/sys/setresuid.2 b/lib/libc/sys/setresuid.2 index 602166f..08d07f3 100644 --- a/lib/libc/sys/setresuid.2 +++ b/lib/libc/sys/setresuid.2 @@ -19,7 +19,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 7, 2015 +.Dd April 13, 2001 .Dt SETRESUID 2 .Os .Sh NAME @@ -90,5 +90,10 @@ was invalid. .Xr setregid 2 , .Xr setreuid 2 , .Xr setuid 2 +.Sh STANDARDS +These system calls are not available on many platforms. +They exist in +.Fx +to support Linux binaries linked against GNU libc2. .Sh HISTORY These functions first appeared in HP-UX. diff --git a/lib/libc/sys/sigaction.c b/lib/libc/sys/sigaction.c deleted file mode 100644 index 7645538..0000000 --- a/lib/libc/sys/sigaction.c +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <signal.h> -#include "libc_private.h" - -__weak_reference(__sys_sigaction, __sigaction); - -#pragma weak sigaction -int -sigaction(int sig, const struct sigaction *act, struct sigaction *oact) -{ - - return (((int (*)(int, const struct sigaction *, struct sigaction *)) - __libc_interposing[INTERPOS_sigaction])(sig, act, oact)); -} diff --git a/lib/libc/sys/sigprocmask.c b/lib/libc/sys/sigprocmask.c deleted file mode 100644 index 40dba95..0000000 --- a/lib/libc/sys/sigprocmask.c +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <signal.h> -#include "libc_private.h" - -__weak_reference(__sys_sigprocmask, __sigprocmask); - -#pragma weak sigprocmask -int -sigprocmask(int how, const sigset_t *set, sigset_t *oset) -{ - - return (((int (*)(int, const sigset_t *, sigset_t *)) - __libc_interposing[INTERPOS_sigprocmask])(how, set, oset)); -} diff --git a/lib/libc/sys/sigsuspend.c b/lib/libc/sys/sigsuspend.c deleted file mode 100644 index 6e47368..0000000 --- a/lib/libc/sys/sigsuspend.c +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <signal.h> -#include "libc_private.h" - -__weak_reference(__sys_sigsuspend, __sigsuspend); - -#pragma weak sigsuspend -int -sigsuspend(const sigset_t *set) -{ - - return (((int (*)(const sigset_t *)) - __libc_interposing[INTERPOS_sigsuspend])(set)); -} diff --git a/lib/libc/sys/sigtimedwait.c b/lib/libc/sys/sigtimedwait.c deleted file mode 100644 index 4e06719..0000000 --- a/lib/libc/sys/sigtimedwait.c +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <signal.h> -#include "libc_private.h" - -__weak_reference(__sys_sigtimedwait, __sigtimedwait); - -#pragma weak sigtimedwait -int -sigtimedwait(const sigset_t * __restrict set, siginfo_t * __restrict info, - const struct timespec * __restrict t) -{ - - return (((int (*)(const sigset_t *, siginfo_t *, - const struct timespec *)) - __libc_interposing[INTERPOS_sigtimedwait])(set, info, t)); -} diff --git a/lib/libc/sys/sigwait.c b/lib/libc/sys/sigwait.c index b21cabd..2fdffdd 100644 --- a/lib/libc/sys/sigwait.c +++ b/lib/libc/sys/sigwait.c @@ -28,21 +28,13 @@ __FBSDID("$FreeBSD$"); #include <errno.h> #include <signal.h> -#include "libc_private.h" -__weak_reference(__libc_sigwait, __sigwait); +int __sys_sigwait(const sigset_t * restrict, int * restrict); -#pragma weak sigwait -int -sigwait(const sigset_t *set, int *sig) -{ - - return (((int (*)(const sigset_t *, int *)) - __libc_interposing[INTERPOS_sigwait])(set, sig)); -} +__weak_reference(__sigwait, sigwait); int -__libc_sigwait(const sigset_t *set, int *sig) +__sigwait(const sigset_t * restrict set, int * restrict sig) { int ret; diff --git a/lib/libc/sys/sigwaitinfo.2 b/lib/libc/sys/sigwaitinfo.2 index b497592..9109759 100644 --- a/lib/libc/sys/sigwaitinfo.2 +++ b/lib/libc/sys/sigwaitinfo.2 @@ -172,8 +172,8 @@ system calls fail if: .Bl -tag -width Er .It Bq Er EINTR The wait was interrupted by an unblocked, caught signal. -.El .Pp +.El The .Fn sigtimedwait system call may also fail if: diff --git a/lib/libc/sys/sigwaitinfo.c b/lib/libc/sys/sigwaitinfo.c deleted file mode 100644 index b9cdc79..0000000 --- a/lib/libc/sys/sigwaitinfo.c +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <signal.h> -#include "libc_private.h" - -__weak_reference(__sys_sigwaitinfo, __sigwaitinfo); - -#pragma weak sigwaitinfo -int -sigwaitinfo(const sigset_t * __restrict set, siginfo_t * __restrict info) -{ - - return (((int (*)(const sigset_t *, siginfo_t *)) - __libc_interposing[INTERPOS_sigwaitinfo])(set, info)); -} diff --git a/lib/libc/sys/socketpair.2 b/lib/libc/sys/socketpair.2 index b15553a..d3a47eb 100644 --- a/lib/libc/sys/socketpair.2 +++ b/lib/libc/sys/socketpair.2 @@ -28,7 +28,7 @@ .\" @(#)socketpair.2 8.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" -.Dd May 4, 2015 +.Dd September 11, 2013 .Dt SOCKETPAIR 2 .Os .Sh NAME @@ -40,13 +40,13 @@ .In sys/types.h .In sys/socket.h .Ft int -.Fn socketpair "int domain" "int type" "int protocol" "int *sv" +.Fn socketpair "int fd" "int type" "int protocol" "int *sv" .Sh DESCRIPTION The .Fn socketpair system call creates an unnamed pair of connected sockets in -the specified communications -.Fa domain , +the specified domain +.Fa fd , of the specified .Fa type , and using the optionally specified diff --git a/lib/libc/sys/truncate.2 b/lib/libc/sys/truncate.2 index 0734464..f06c1eb 100644 --- a/lib/libc/sys/truncate.2 +++ b/lib/libc/sys/truncate.2 @@ -28,7 +28,7 @@ .\" @(#)truncate.2 8.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" -.Dd May 4, 2015 +.Dd December 13, 2006 .Dt TRUNCATE 2 .Os .Sh NAME @@ -60,18 +60,9 @@ is lost. If the file was smaller than this size, it will be extended as if by writing bytes with the value zero. -.Pp -The -.Fn ftruncate -system call causes the file or shared memory object backing the file descriptor -.Fa fd -to be truncated or extended to -.Fa length -bytes in size. -The file descriptor must be a valid file descriptor open for writing. -The file position pointer associated with the file descriptor -.Fa fd -will not be modified. +With +.Fn ftruncate , +the file must be open for writing. .Sh RETURN VALUES .Rv -std If the file to be modified is not a directory or @@ -138,7 +129,7 @@ is not a valid descriptor. The .Fa fd argument -references a file descriptor that is not a regular file or shared memory object. +references a socket, not a file. .It Bq Er EINVAL The .Fa fd @@ -147,14 +138,11 @@ is not open for writing. .El .Sh SEE ALSO .Xr chflags 2 , -.Xr open 2 , -.Xr shm_open 2 +.Xr open 2 .Sh HISTORY The .Fn truncate -and -.Fn ftruncate -system calls appeared in +system call appeared in .Bx 4.2 . .Sh BUGS These calls should be generalized to allow ranges diff --git a/lib/libc/sys/swapcontext.c b/lib/libc/sys/truncate.c index 0a8125e..375c9d9 100644 --- a/lib/libc/sys/swapcontext.c +++ b/lib/libc/sys/truncate.c @@ -1,24 +1,23 @@ /* - * Copyright (c) 2001 Daniel M. Eischen <deischen@freebsd.org> - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. + * Copyright (c) 1992, 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. Neither the name of the author nor the names of its contributors + * 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. + * 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 AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * 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 AUTHOR OR CONTRIBUTORS BE LIABLE + * 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) @@ -28,26 +27,29 @@ * SUCH DAMAGE. */ +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)truncate.c 8.1 (Berkeley) 6/17/93"; +#endif /* LIBC_SCCS and not lint */ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -#include <sys/param.h> -#include <sys/signal.h> -#include <sys/ucontext.h> -#include <errno.h> -#include <stddef.h> +#include <sys/types.h> +#include <sys/syscall.h> +#include <unistd.h> #include "libc_private.h" -__weak_reference(__sys_swapcontext, __swapcontext); -__sym_compat(swapcontext, __impl_swapcontext, FBSD_1.0); -__weak_reference(swapcontext, __impl_swapcontext); -__sym_default(swapcontext, swapcontext, FBSD_1.2); - -#pragma weak swapcontext +/* + * This function provides 64-bit offset padding that + * is not supplied by GCC 1.X but is supplied by GCC 2.X. + */ int -swapcontext(ucontext_t *oucp, const ucontext_t *ucp) +truncate(path, length) + const char *path; + off_t length; { - return (((int (*)(ucontext_t *, const ucontext_t *)) - __libc_interposing[INTERPOS_swapcontext])(oucp, ucp)); + if (__getosreldate() >= 700051) + return(__sys_truncate(path, length)); + else + return(__sys_freebsd6_truncate(path, 0, length)); } diff --git a/lib/libc/sys/utimensat.2 b/lib/libc/sys/utimensat.2 deleted file mode 100644 index 0f397c6..0000000 --- a/lib/libc/sys/utimensat.2 +++ /dev/null @@ -1,292 +0,0 @@ -.\" $NetBSD: utimes.2,v 1.13 1999/03/22 19:45:11 garbled Exp $ -.\" -.\" Copyright (c) 1990, 1993 -.\" The Regents of the University of California. All rights reserved. -.\" Copyright (c) 2012, Jilles Tjoelker -.\" -.\" 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. -.\" 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. -.\" -.\" @(#)utimes.2 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD$ -.\" -.Dd January 23, 2015 -.Dt UTIMENSAT 2 -.Os -.Sh NAME -.Nm futimens , -.Nm utimensat -.Nd set file access and modification times -.Sh LIBRARY -.Lb libc -.Sh SYNOPSIS -.In sys/stat.h -.Ft int -.Fn futimens "int fd" "const struct timespec times[2]" -.Ft int -.Fo utimensat -.Fa "int fd" -.Fa "const char *path" -.Fa "const struct timespec times[2]" -.Fa "int flag" -.Fc -.Sh DESCRIPTION -The access and modification times of the file named by -.Fa path -or referenced by -.Fa fd -are changed as specified by the argument -.Fa times . -The inode-change-time of the file is set to the current time. -.Pp -If -.Fa path -specifies a relative path, -it is relative to the current working directory if -.Fa fd -is -.Dv AT_FDCWD -and otherwise relative to the directory associated with the file descriptor -.Fa fd . -.Pp -The -.Va tv_nsec -field of a -.Vt timespec -structure -can be set to the special value -.Dv UTIME_NOW -to set the current time, or to -.Dv UTIME_OMIT -to leave the time unchanged. -In either case, the -.Va tv_sec -field is ignored. -.Pp -If -.Fa times -is -.No non- Ns Dv NULL , -it is assumed to point to an array of two timespec structures. -The access time is set to the value of the first element, and the -modification time is set to the value of the second element. -For file systems that support file birth (creation) times (such as -.Dv UFS2 ) , -the birth time will be set to the value of the second element -if the second element is older than the currently set birth time. -To set both a birth time and a modification time, -two calls are required; the first to set the birth time -and the second to set the (presumably newer) modification time. -Ideally a new system call will be added that allows the setting -of all three times at once. -If -.Fa times -is -.Dv NULL , -this is equivalent to passing -a pointer to an array of two timespec structures -with both -.Va tv_nsec -fields set to -.Dv UTIME_NOW . -.Pp -If both -.Va tv_nsec -fields are -.Dv UTIME_OMIT , -the timestamps remain unchanged and -no permissions are needed for the file itself, -although search permissions may be required for the path prefix. -The call may or may not succeed if the named file does not exist. -.Pp -If both -.Va tv_nsec -fields are -.Dv UTIME_NOW , -the caller must be the owner of the file, have permission to -write the file, or be the super-user. -.Pp -For all other values of the timestamps, -the caller must be the owner of the file or be the super-user. -.Pp -The values for the -.Fa flag -argument of the -.Fn utimensat -system call -are constructed by a bitwise-inclusive OR of flags from the following list, -defined in -.In fcntl.h : -.Bl -tag -width indent -.It Dv AT_SYMLINK_NOFOLLOW -If -.Fa path -names a symbolic link, the symbolic link's times are changed. -By default, -.Fn utimensat -changes the times of the file referenced by the symbolic link. -.El -.Sh RETURN VALUES -.Rv -std -.Sh COMPATIBILITY -If the running kernel does not support this system call, -a wrapper emulates it using -.Xr fstatat 2 , -.Xr futimesat 2 -and -.Xr lutimes 2 . -As a result, timestamps will be rounded down to the nearest microsecond, -.Dv UTIME_OMIT -is not atomic and -.Dv AT_SYMLINK_NOFOLLOW -is not available with a path relative to a file descriptor. -.Sh ERRORS -These system calls will fail if: -.Bl -tag -width Er -.It Bq Er EACCES -The -.Fa times -argument is -.Dv NULL , -or both -.Va tv_nsec -values are -.Dv UTIME_NOW , -and the effective user ID of the process does not -match the owner of the file, and is not the super-user, and write -access is denied. -.It Bq Er EFAULT -The -.Fa times -argument -points outside the process's allocated address space. -.It Bq Er EINVAL -The -.Va tv_usec -component of at least one of the values specified by the -.Fa times -argument has a value less than 0 or greater than 999999. -.It Bq Er EIO -An I/O error occurred while reading or writing the affected inode. -.It Bq Er EPERM -The -.Fa times -argument is not -.Dv NULL -nor are both -.Va tv_nsec -values -.Dv UTIME_NOW , -nor are both -.Va tv_nsec -values -.Dv UTIME_OMIT -and the calling process's effective user ID -does not match the owner of the file and is not the super-user. -.It Bq Er EPERM -The named file has its immutable or append-only flag set, see the -.Xr chflags 2 -manual page for more information. -.It Bq Er EROFS -The file system containing the file is mounted read-only. -.El -.Pp -The -.Fn futimens -system call -will fail if: -.Bl -tag -width Er -.It Bq Er EBADF -The -.Fa fd -argument -does not refer to a valid descriptor. -.El -.Pp -The -.Fn utimensat -system call -will fail if: -.Bl -tag -width Er -.It Bq Er EACCES -Search permission is denied for a component of the path prefix. -.It Bq Er EBADF -The -.Fa path -argument does not specify an absolute path and the -.Fa fd -argument is neither -.Dv AT_FDCWD -nor a valid file descriptor. -.It Bq Er EFAULT -The -.Fa path -argument -points outside the process's allocated address space. -.It Bq Er ELOOP -Too many symbolic links were encountered in translating the pathname. -.It Bq Er ENAMETOOLONG -A component of a pathname exceeded -.Dv NAME_MAX -characters, or an entire path name exceeded -.Dv PATH_MAX -characters. -.It Bq Er ENOENT -The named file does not exist. -.It Bq Er ENOTDIR -A component of the path prefix is not a directory. -.It Bq Er ENOTDIR -The -.Fa path -argument is not an absolute path and -.Fa fd -is neither -.Dv AT_FDCWD -nor a file descriptor associated with a directory. -.It Bq Er ENOTSUP -The running kernel does not support this system call and -.Dv AT_SYMLINK_NOFOLLOW -is used with a path relative to a file descriptor. -.El -.Sh SEE ALSO -.Xr chflags 2 , -.Xr stat 2 , -.Xr symlink 2 , -.Xr utimes 2 , -.Xr utime 3 , -.Xr symlink 7 -.Sh STANDARDS -The -.Fn futimens -and -.Fn utimensat -system calls are expected to conform to -.St -p1003.1-2008 . -.Sh HISTORY -The -.Fn futimens -and -.Fn utimensat -system calls appeared in -.Fx 11.0 . diff --git a/lib/libc/sys/utimensat.c b/lib/libc/sys/utimensat.c deleted file mode 100644 index 67d19cb..0000000 --- a/lib/libc/sys/utimensat.c +++ /dev/null @@ -1,109 +0,0 @@ -/*- - * Copyright (c) 2015 Jilles Tjoelker - * 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. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include "namespace.h" -#include <sys/stat.h> - -#include <errno.h> -#include <fcntl.h> -#include <time.h> -#include "un-namespace.h" - -#include "libc_private.h" - -int -utimensat(int fd, const char *path, const struct timespec times[2], int flag) -{ - struct timeval now, tv[2], *tvp; - struct stat sb; - - if (__getosreldate() >= 1100056) - return (__sys_utimensat(fd, path, times, flag)); - - if ((flag & ~AT_SYMLINK_NOFOLLOW) != 0) { - errno = EINVAL; - return (-1); - } - if (times == NULL || (times[0].tv_nsec == UTIME_NOW && - times[1].tv_nsec == UTIME_NOW)) - tvp = NULL; - else if (times[0].tv_nsec == UTIME_OMIT && - times[1].tv_nsec == UTIME_OMIT) - return (0); - else { - if ((times[0].tv_nsec < 0 || times[0].tv_nsec > 999999999) && - times[0].tv_nsec != UTIME_NOW && - times[0].tv_nsec != UTIME_OMIT) { - errno = EINVAL; - return (-1); - } - if ((times[1].tv_nsec < 0 || times[1].tv_nsec > 999999999) && - times[1].tv_nsec != UTIME_NOW && - times[1].tv_nsec != UTIME_OMIT) { - errno = EINVAL; - return (-1); - } - tv[0].tv_sec = times[0].tv_sec; - tv[0].tv_usec = times[0].tv_nsec / 1000; - tv[1].tv_sec = times[1].tv_sec; - tv[1].tv_usec = times[1].tv_nsec / 1000; - tvp = tv; - if (times[0].tv_nsec == UTIME_OMIT || - times[1].tv_nsec == UTIME_OMIT) { - if (fstatat(fd, path, &sb, flag) == -1) - return (-1); - if (times[0].tv_nsec == UTIME_OMIT) { - tv[0].tv_sec = sb.st_atim.tv_sec; - tv[0].tv_usec = sb.st_atim.tv_nsec / 1000; - } - if (times[1].tv_nsec == UTIME_OMIT) { - tv[1].tv_sec = sb.st_mtim.tv_sec; - tv[1].tv_usec = sb.st_mtim.tv_nsec / 1000; - } - } - if (times[0].tv_nsec == UTIME_NOW || - times[1].tv_nsec == UTIME_NOW) { - if (gettimeofday(&now, NULL) == -1) - return (-1); - if (times[0].tv_nsec == UTIME_NOW) - tv[0] = now; - if (times[1].tv_nsec == UTIME_NOW) - tv[1] = now; - } - } - if ((flag & AT_SYMLINK_NOFOLLOW) == 0) - return (futimesat(fd, path, tvp)); - else if ((flag & AT_SYMLINK_NOFOLLOW) != 0 && - (fd == AT_FDCWD || path[0] == '/')) - return (lutimes(path, tvp)); - else { - errno = ENOTSUP; - return (-1); - } -} diff --git a/lib/libc/sys/vfork.2 b/lib/libc/sys/vfork.2 index 0518262..1cfaa61 100644 --- a/lib/libc/sys/vfork.2 +++ b/lib/libc/sys/vfork.2 @@ -28,7 +28,7 @@ .\" @(#)vfork.2 8.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" -.Dd April 6, 2015 +.Dd November 13, 2009 .Dt VFORK 2 .Os .Sh NAME @@ -100,8 +100,8 @@ since buffered data would then be flushed twice.) Same as for .Xr fork 2 . .Sh SEE ALSO -.Xr _exit 2 , .Xr execve 2 , +.Xr _exit 2 , .Xr fork 2 , .Xr rfork 2 , .Xr sigaction 2 , @@ -111,7 +111,7 @@ Same as for The .Fn vfork system call appeared in -.Bx 3 . +.Bx 2.9 . .Sh BUGS To avoid a possible deadlock situation, processes that are children in the middle diff --git a/lib/libc/sys/wait4.c b/lib/libc/sys/wait4.c deleted file mode 100644 index a5dbd0f..0000000 --- a/lib/libc/sys/wait4.c +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <sys/wait.h> -#include "libc_private.h" - -__weak_reference(__sys_wait4, __wait4); - -#pragma weak wait4 -pid_t -wait4(pid_t pid, int *status, int options, struct rusage *ru) -{ - - return (((pid_t (*)(pid_t, int *, int, struct rusage *)) - __libc_interposing[INTERPOS_wait4])(pid, status, options, ru)); -} diff --git a/lib/libc/sys/wait6.c b/lib/libc/sys/wait6.c deleted file mode 100644 index d280a76..0000000 --- a/lib/libc/sys/wait6.c +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2015 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <sys/wait.h> -#include <signal.h> -#include "libc_private.h" - -__weak_reference(__sys_wait6, __wait6); - -#pragma weak wait6 -pid_t -wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *ru, - siginfo_t *infop) -{ - - return (((pid_t (*)(idtype_t, id_t, int *, int, struct __wrusage *, - siginfo_t *))__libc_interposing[INTERPOS_wait6])(idtype, id, - status, options, ru, infop)); -} diff --git a/lib/libc/sys/write.c b/lib/libc/sys/write.c deleted file mode 100644 index ffb1aa5..0000000 --- a/lib/libc/sys/write.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <sys/syscall.h> -#include <unistd.h> -#include "libc_private.h" - -__weak_reference(__sys_write, __write); - -#pragma weak write -ssize_t -write(int fd, const void *buf, size_t nbytes) -{ - - return (((ssize_t (*)(int, const void *, size_t)) - __libc_interposing[INTERPOS_write])(fd, buf, nbytes)); -} diff --git a/lib/libc/sys/writev.c b/lib/libc/sys/writev.c deleted file mode 100644 index 6be74b3..0000000 --- a/lib/libc/sys/writev.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2014 The FreeBSD Foundation. - * All rights reserved. - * - * Portions of this software were developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * 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(s), this list of conditions and the following disclaimer as - * the first lines of this file unmodified other than the possible - * addition of one or more copyright notices. - * 2. Redistributions in binary form must reproduce the above copyright - * notice(s), this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <sys/syscall.h> -#include <unistd.h> -#include "libc_private.h" - -__weak_reference(__sys_writev, __writev); - -#pragma weak writev -ssize_t -writev(int fd, const struct iovec *iov, int iovcnt) -{ - - return (((ssize_t (*)(int, const struct iovec *, int)) - __libc_interposing[INTERPOS_writev])(fd, iov, iovcnt)); -} |