Blame SOURCES/man-pages-4.15-aarch64-syscalls.patch

3bf15c
From 1cb64d264cb92d55cfa2b6d3ea5ebc1adca7444f Mon Sep 17 00:00:00 2001
3bf15c
From: =?UTF-8?q?Nikola=20Forr=C3=B3?= <nforro@redhat.com>
3bf15c
Date: Fri, 27 Jul 2018 17:27:24 +0200
3bf15c
Subject: [PATCH 5/5] remove syscalls deprecated on aarch64
3bf15c
3bf15c
---
3bf15c
 man2/_sysctl.2      |   1 -
3bf15c
 man2/access.2       |   5 +
3bf15c
 man2/alarm.2        | 105 --------------
3bf15c
 man2/bdflush.2      | 133 -----------------
3bf15c
 man2/chmod.2        |   5 +
3bf15c
 man2/chown.2        |   7 +
3bf15c
 man2/clone.2        |  21 +++
3bf15c
 man2/dup.2          |   7 +
3bf15c
 man2/epoll_create.2 |   5 +
3bf15c
 man2/epoll_wait.2   |   5 +
3bf15c
 man2/eventfd.2      |   5 +
3bf15c
 man2/fork.2         | 337 ------------------------------------------
3bf15c
 man2/futimesat.2    | 142 ------------------
3bf15c
 man2/getdents.2     |   7 +
3bf15c
 man2/inotify_init.2 |   5 +
3bf15c
 man2/link.2         |   5 +
3bf15c
 man2/mkdir.2        |   5 +
3bf15c
 man2/mknod.2        |   5 +
3bf15c
 man2/open.2         |   7 +
3bf15c
 man2/pause.2        |  72 ---------
3bf15c
 man2/pipe.2         |   5 +
3bf15c
 man2/poll.2         |   5 +
3bf15c
 man2/readlink.2     |   5 +
3bf15c
 man2/recv.2         |   7 +
3bf15c
 man2/rename.2       |   5 +
3bf15c
 man2/rmdir.2        | 150 -------------------
3bf15c
 man2/select.2       |   5 +
3bf15c
 man2/send.2         |   7 +
3bf15c
 man2/setpgid.2      |   5 +
3bf15c
 man2/signalfd.2     |   5 +
3bf15c
 man2/symlink.2      |   5 +
3bf15c
 man2/sysctl.2       | 190 ------------------------
3bf15c
 man2/time.2         | 140 ------------------
3bf15c
 man2/umount.2       |   5 +
3bf15c
 man2/unlink.2       |   5 +
3bf15c
 man2/uselib.2       | 138 ------------------
3bf15c
 man2/ustat.2        | 127 ----------------
3bf15c
 man2/utime.2        |   9 +-
3bf15c
 man2/vfork.2        | 346 --------------------------------------------
3bf15c
 man2/wait4.2        |   7 +
3bf15c
 40 files changed, 171 insertions(+), 1884 deletions(-)
3bf15c
 delete mode 100644 man2/_sysctl.2
3bf15c
 delete mode 100644 man2/alarm.2
3bf15c
 delete mode 100644 man2/bdflush.2
3bf15c
 delete mode 100644 man2/fork.2
3bf15c
 delete mode 100644 man2/futimesat.2
3bf15c
 delete mode 100644 man2/pause.2
3bf15c
 delete mode 100644 man2/rmdir.2
3bf15c
 delete mode 100644 man2/sysctl.2
3bf15c
 delete mode 100644 man2/time.2
3bf15c
 delete mode 100644 man2/uselib.2
3bf15c
 delete mode 100644 man2/ustat.2
3bf15c
 delete mode 100644 man2/vfork.2
3bf15c
3bf15c
diff --git a/man2/_sysctl.2 b/man2/_sysctl.2
3bf15c
deleted file mode 100644
3bf15c
index 9e14d4b..0000000
3bf15c
--- a/man2/_sysctl.2
3bf15c
+++ /dev/null
3bf15c
@@ -1 +0,0 @@
3bf15c
-.so man2/sysctl.2
3bf15c
diff --git a/man2/access.2 b/man2/access.2
3bf15c
index 2d194b5..9d8f444 100644
3bf15c
--- a/man2/access.2
3bf15c
+++ b/man2/access.2
3bf15c
@@ -76,6 +76,11 @@ _ATFILE_SOURCE
3bf15c
 .PD
3bf15c
 .SH DESCRIPTION
3bf15c
 .BR access ()
3bf15c
+system call is DEPRECATED, use
3bf15c
+.BR faccessat ()
3bf15c
+instead!!!
3bf15c
+.PP
3bf15c
+.BR access ()
3bf15c
 checks whether the calling process can access the file
3bf15c
 .IR pathname .
3bf15c
 If
3bf15c
diff --git a/man2/alarm.2 b/man2/alarm.2
3bf15c
deleted file mode 100644
3bf15c
index 43d7664..0000000
3bf15c
--- a/man2/alarm.2
3bf15c
+++ /dev/null
3bf15c
@@ -1,105 +0,0 @@
3bf15c
-.\" This manpage is Copyright (C) 1992 Drew Eckhardt;
3bf15c
-.\"             and Copyright (C) 1993 Michael Haardt, Ian Jackson.
3bf15c
-.\"
3bf15c
-.\" %%%LICENSE_START(VERBATIM)
3bf15c
-.\" Permission is granted to make and distribute verbatim copies of this
3bf15c
-.\" manual provided the copyright notice and this permission notice are
3bf15c
-.\" preserved on all copies.
3bf15c
-.\"
3bf15c
-.\" Permission is granted to copy and distribute modified versions of this
3bf15c
-.\" manual under the conditions for verbatim copying, provided that the
3bf15c
-.\" entire resulting derived work is distributed under the terms of a
3bf15c
-.\" permission notice identical to this one.
3bf15c
-.\"
3bf15c
-.\" Since the Linux kernel and libraries are constantly changing, this
3bf15c
-.\" manual page may be incorrect or out-of-date.  The author(s) assume no
3bf15c
-.\" responsibility for errors or omissions, or for damages resulting from
3bf15c
-.\" the use of the information contained herein.  The author(s) may not
3bf15c
-.\" have taken the same level of care in the production of this manual,
3bf15c
-.\" which is licensed free of charge, as they might when working
3bf15c
-.\" professionally.
3bf15c
-.\"
3bf15c
-.\" Formatted or processed versions of this manual, if unaccompanied by
3bf15c
-.\" the source, must acknowledge the copyright and authors of this work.
3bf15c
-.\" %%%LICENSE_END
3bf15c
-.\"
3bf15c
-.\" Modified Wed Jul 21 19:42:57 1993 by Rik Faith <faith@cs.unc.edu>
3bf15c
-.\" Modified Sun Jul 21 21:25:26 1996 by Andries Brouwer <aeb@cwi.nl>
3bf15c
-.\" Modified Wed Nov  6 03:46:05 1996 by Eric S. Raymond <esr@thyrsus.com>
3bf15c
-.\"
3bf15c
-.TH ALARM 2 2017-05-03 "Linux" "Linux Programmer's Manual"
3bf15c
-.SH NAME
3bf15c
-alarm \- set an alarm clock for delivery of a signal
3bf15c
-.SH SYNOPSIS
3bf15c
-.nf
3bf15c
-.B #include <unistd.h>
3bf15c
-.PP
3bf15c
-.BI "unsigned int alarm(unsigned int " seconds );
3bf15c
-.fi
3bf15c
-.SH DESCRIPTION
3bf15c
-.BR alarm ()
3bf15c
-arranges for a
3bf15c
-.B SIGALRM
3bf15c
-signal to be delivered to the calling process in
3bf15c
-.I seconds
3bf15c
-seconds.
3bf15c
-.PP
3bf15c
-If
3bf15c
-.I seconds
3bf15c
-is zero, any pending alarm is canceled.
3bf15c
-.PP
3bf15c
-In any event any previously set
3bf15c
-.BR alarm ()
3bf15c
-is canceled.
3bf15c
-.SH RETURN VALUE
3bf15c
-.BR alarm ()
3bf15c
-returns the number of seconds remaining until any previously scheduled
3bf15c
-alarm was due to be delivered, or zero if there was no previously
3bf15c
-scheduled alarm.
3bf15c
-.SH CONFORMING TO
3bf15c
-POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
3bf15c
-.SH NOTES
3bf15c
-.BR alarm ()
3bf15c
-and
3bf15c
-.BR setitimer (2)
3bf15c
-share the same timer; calls to one will interfere with use of the
3bf15c
-other.
3bf15c
-.PP
3bf15c
-Alarms created by
3bf15c
-.BR alarm ()
3bf15c
-are preserved across
3bf15c
-.BR execve (2)
3bf15c
-and are not inherited by children created via
3bf15c
-.BR fork (2).
3bf15c
-.PP
3bf15c
-.BR sleep (3)
3bf15c
-may be implemented using
3bf15c
-.BR SIGALRM ;
3bf15c
-mixing calls to
3bf15c
-.BR alarm ()
3bf15c
-and
3bf15c
-.BR sleep (3)
3bf15c
-is a bad idea.
3bf15c
-.PP
3bf15c
-Scheduling delays can, as ever, cause the execution of the process to
3bf15c
-be delayed by an arbitrary amount of time.
3bf15c
-.SH SEE ALSO
3bf15c
-.BR gettimeofday (2),
3bf15c
-.BR pause (2),
3bf15c
-.BR select (2),
3bf15c
-.BR setitimer (2),
3bf15c
-.BR sigaction (2),
3bf15c
-.BR signal (2),
3bf15c
-.BR timer_create (2),
3bf15c
-.BR timerfd_create (2),
3bf15c
-.BR sleep (3),
3bf15c
-.BR time (7)
3bf15c
-.SH COLOPHON
3bf15c
-This page is part of release 4.15 of the Linux
3bf15c
-.I man-pages
3bf15c
-project.
3bf15c
-A description of the project,
3bf15c
-information about reporting bugs,
3bf15c
-and the latest version of this page,
3bf15c
-can be found at
3bf15c
-\%https://www.kernel.org/doc/man\-pages/.
3bf15c
diff --git a/man2/bdflush.2 b/man2/bdflush.2
3bf15c
deleted file mode 100644
3bf15c
index ac0df3e..0000000
3bf15c
--- a/man2/bdflush.2
3bf15c
+++ /dev/null
3bf15c
@@ -1,133 +0,0 @@
3bf15c
-.\" Copyright (c) 1995 Michael Chastain (mec@shell.portal.com), 15 April 1995.
3bf15c
-.\"
3bf15c
-.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
3bf15c
-.\" This is free documentation; you can redistribute it and/or
3bf15c
-.\" modify it under the terms of the GNU General Public License as
3bf15c
-.\" published by the Free Software Foundation; either version 2 of
3bf15c
-.\" the License, or (at your option) any later version.
3bf15c
-.\"
3bf15c
-.\" The GNU General Public License's references to "object code"
3bf15c
-.\" and "executables" are to be interpreted as the output of any
3bf15c
-.\" document formatting or typesetting system, including
3bf15c
-.\" intermediate and printed output.
3bf15c
-.\"
3bf15c
-.\" This manual is distributed in the hope that it will be useful,
3bf15c
-.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
3bf15c
-.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
3bf15c
-.\" GNU General Public License for more details.
3bf15c
-.\"
3bf15c
-.\" You should have received a copy of the GNU General Public
3bf15c
-.\" License along with this manual; if not, see
3bf15c
-.\" <http://www.gnu.org/licenses/>.
3bf15c
-.\" %%%LICENSE_END
3bf15c
-.\"
3bf15c
-.\" Modified 1997-01-31 by Eric S. Raymond <esr@thyrsus.com>
3bf15c
-.\" Modified 2004-06-17 by Michael Kerrisk <mtk.manpages@gmail.com>
3bf15c
-.\"
3bf15c
-.TH BDFLUSH 2 2016-10-08 "Linux" "Linux Programmer's Manual"
3bf15c
-.SH NAME
3bf15c
-bdflush \- start, flush, or tune buffer-dirty-flush daemon
3bf15c
-.SH SYNOPSIS
3bf15c
-.nf
3bf15c
-.B #include <sys/kdaemon.h>
3bf15c
-.PP
3bf15c
-.BI "int bdflush(int "  func ", long *" address );
3bf15c
-.BI "int bdflush(int "  func ", long " data );
3bf15c
-.fi
3bf15c
-.SH DESCRIPTION
3bf15c
-.IR Note :
3bf15c
-Since Linux 2.6,
3bf15c
-.\" As noted in a changes in the 2.5.12 source
3bf15c
-this system call is deprecated and does nothing.
3bf15c
-It is likely to disappear altogether in a future kernel release.
3bf15c
-Nowadays, the task performed by
3bf15c
-.BR bdflush ()
3bf15c
-is handled by the kernel
3bf15c
-.I pdflush
3bf15c
-thread.
3bf15c
-.PP
3bf15c
-.BR bdflush ()
3bf15c
-starts, flushes, or tunes the buffer-dirty-flush daemon.
3bf15c
-Only a privileged process (one with the
3bf15c
-.B CAP_SYS_ADMIN
3bf15c
-capability) may call
3bf15c
-.BR bdflush ().
3bf15c
-.PP
3bf15c
-If
3bf15c
-.I func
3bf15c
-is negative or 0, and no daemon has been started, then
3bf15c
-.BR bdflush ()
3bf15c
-enters the daemon code and never returns.
3bf15c
-.PP
3bf15c
-If
3bf15c
-.I func
3bf15c
-is 1,
3bf15c
-some dirty buffers are written to disk.
3bf15c
-.PP
3bf15c
-If
3bf15c
-.I func
3bf15c
-is 2 or more and is even (low bit is 0), then
3bf15c
-.I address
3bf15c
-is the address of a long word,
3bf15c
-and the tuning parameter numbered
3bf15c
-.RI "(" "func" "\-2)/2"
3bf15c
-is returned to the caller in that address.
3bf15c
-.PP
3bf15c
-If
3bf15c
-.I func
3bf15c
-is 3 or more and is odd (low bit is 1), then
3bf15c
-.I data
3bf15c
-is a long word,
3bf15c
-and the kernel sets tuning parameter numbered
3bf15c
-.RI "(" "func" "\-3)/2"
3bf15c
-to that value.
3bf15c
-.PP
3bf15c
-The set of parameters, their values, and their valid ranges
3bf15c
-are defined in the Linux kernel source file
3bf15c
-.IR fs/buffer.c .
3bf15c
-.SH RETURN VALUE
3bf15c
-If
3bf15c
-.I func
3bf15c
-is negative or 0 and the daemon successfully starts,
3bf15c
-.BR bdflush ()
3bf15c
-never returns.
3bf15c
-Otherwise, the return value is 0 on success and \-1 on failure, with
3bf15c
-.I errno
3bf15c
-set to indicate the error.
3bf15c
-.SH ERRORS
3bf15c
-.TP
3bf15c
-.B EBUSY
3bf15c
-An attempt was made to enter the daemon code after
3bf15c
-another process has already entered.
3bf15c
-.TP
3bf15c
-.B EFAULT
3bf15c
-.I address
3bf15c
-points outside your accessible address space.
3bf15c
-.TP
3bf15c
-.B EINVAL
3bf15c
-An attempt was made to read or write an invalid parameter number,
3bf15c
-or to write an invalid value to a parameter.
3bf15c
-.TP
3bf15c
-.B EPERM
3bf15c
-Caller does not have the
3bf15c
-.B CAP_SYS_ADMIN
3bf15c
-capability.
3bf15c
-.SH VERSIONS
3bf15c
-Since version 2.23, glibc no longer supports this obsolete system call.
3bf15c
-.SH CONFORMING TO
3bf15c
-.BR bdflush ()
3bf15c
-is Linux-specific and should not be used in programs
3bf15c
-intended to be portable.
3bf15c
-.SH SEE ALSO
3bf15c
-.BR sync (1),
3bf15c
-.BR fsync (2),
3bf15c
-.BR sync (2)
3bf15c
-.SH COLOPHON
3bf15c
-This page is part of release 4.15 of the Linux
3bf15c
-.I man-pages
3bf15c
-project.
3bf15c
-A description of the project,
3bf15c
-information about reporting bugs,
3bf15c
-and the latest version of this page,
3bf15c
-can be found at
3bf15c
-\%https://www.kernel.org/doc/man\-pages/.
3bf15c
diff --git a/man2/chmod.2 b/man2/chmod.2
3bf15c
index 5c55553..9637954 100644
3bf15c
--- a/man2/chmod.2
3bf15c
+++ b/man2/chmod.2
3bf15c
@@ -91,6 +91,11 @@ _ATFILE_SOURCE
3bf15c
 .PD
3bf15c
 .ad
3bf15c
 .SH DESCRIPTION
3bf15c
+.BR chmod ()
3bf15c
+system call is DEPRECATED, use
3bf15c
+.BR fchmodat ()
3bf15c
+instead!!!
3bf15c
+.PP
3bf15c
 The
3bf15c
 .BR chmod ()
3bf15c
 and
3bf15c
diff --git a/man2/chown.2 b/man2/chown.2
3bf15c
index ef358e0..b917e5c 100644
3bf15c
--- a/man2/chown.2
3bf15c
+++ b/man2/chown.2
3bf15c
@@ -83,6 +83,13 @@ _ATFILE_SOURCE
3bf15c
 .ad
3bf15c
 .PD
3bf15c
 .SH DESCRIPTION
3bf15c
+.BR chown ()
3bf15c
+and
3bf15c
+.BR lchown ()
3bf15c
+system calls are DEPRECATED, use
3bf15c
+.BR fchownat ()
3bf15c
+instead!!!
3bf15c
+.PP
3bf15c
 These system calls change the owner and group of a file.
3bf15c
 The
3bf15c
 .BR chown (),
3bf15c
diff --git a/man2/clone.2 b/man2/clone.2
3bf15c
index 20ead6d..62bb4e6 100644
3bf15c
--- a/man2/clone.2
3bf15c
+++ b/man2/clone.2
3bf15c
@@ -1206,6 +1206,27 @@ On i386,
3bf15c
 .BR clone ()
3bf15c
 should not be called through vsyscall, but directly through
3bf15c
 .IR "int $0x80" .
3bf15c
+
3bf15c
+.BR clone()
3bf15c
+replaces
3bf15c
+.BR fork (2)
3bf15c
+and
3bf15c
+.BR vfork (2)
3bf15c
+system calls.
3bf15c
+A call to
3bf15c
+.BR fork (2)
3bf15c
+is equivalent to a call to
3bf15c
+.BR clone ()
3bf15c
+specifying
3bf15c
+.I flags
3bf15c
+as just SIGCHLD.
3bf15c
+A call to
3bf15c
+.BR vfork (2)
3bf15c
+is equivalent to calling
3bf15c
+.BR clone ()
3bf15c
+with
3bf15c
+.I flags
3bf15c
+specified as: CLONE_VM | CLONE_VFORK | SIGCHLD.
3bf15c
 .SH BUGS
3bf15c
 GNU C library versions 2.3.4 up to and including 2.24
3bf15c
 contained a wrapper function for
3bf15c
diff --git a/man2/dup.2 b/man2/dup.2
3bf15c
index 1829b5e..6782677 100644
3bf15c
--- a/man2/dup.2
3bf15c
+++ b/man2/dup.2
3bf15c
@@ -51,6 +51,13 @@ dup, dup2, dup3 \- duplicate a file descriptor
3bf15c
 .BI "int dup3(int " oldfd ", int " newfd ", int " flags );
3bf15c
 .fi
3bf15c
 .SH DESCRIPTION
3bf15c
+.BR dup2 ()
3bf15c
+system call is DEPRECATED, use
3bf15c
+.BR dup3 ()
3bf15c
+with
3bf15c
+.I flags
3bf15c
+set to 0 instead!!!
3bf15c
+.PP
3bf15c
 The
3bf15c
 .BR dup ()
3bf15c
 system call creates a copy of the file descriptor
3bf15c
diff --git a/man2/epoll_create.2 b/man2/epoll_create.2
3bf15c
index 2bc253d..64143d6 100644
3bf15c
--- a/man2/epoll_create.2
3bf15c
+++ b/man2/epoll_create.2
3bf15c
@@ -33,6 +33,11 @@ epoll_create, epoll_create1 \- open an epoll file descriptor
3bf15c
 .fi
3bf15c
 .SH DESCRIPTION
3bf15c
 .BR epoll_create ()
3bf15c
+system call is DEPRECATED, use
3bf15c
+.BR epoll_create1 ()
3bf15c
+instead!!!
3bf15c
+.PP
3bf15c
+.BR epoll_create ()
3bf15c
 creates a new
3bf15c
 .BR epoll (7)
3bf15c
 instance.
3bf15c
diff --git a/man2/epoll_wait.2 b/man2/epoll_wait.2
3bf15c
index 5edf20e..c3793ef 100644
3bf15c
--- a/man2/epoll_wait.2
3bf15c
+++ b/man2/epoll_wait.2
3bf15c
@@ -33,6 +33,11 @@ epoll_wait, epoll_pwait \- wait for an I/O event on an epoll file descriptor
3bf15c
 .BI "               const sigset_t *" sigmask );
3bf15c
 .fi
3bf15c
 .SH DESCRIPTION
3bf15c
+.BR epoll_wait ()
3bf15c
+system call is DEPRECATED, use
3bf15c
+.BR epoll_pwait ()
3bf15c
+instead!!!
3bf15c
+.PP
3bf15c
 The
3bf15c
 .BR epoll_wait ()
3bf15c
 system call waits for events on the
3bf15c
diff --git a/man2/eventfd.2 b/man2/eventfd.2
3bf15c
index de2461f..0d06430 100644
3bf15c
--- a/man2/eventfd.2
3bf15c
+++ b/man2/eventfd.2
3bf15c
@@ -28,6 +28,11 @@ eventfd \- create a file descriptor for event notification
3bf15c
 .BI "int eventfd(unsigned int " initval ", int " flags );
3bf15c
 .SH DESCRIPTION
3bf15c
 .BR eventfd ()
3bf15c
+system call is DEPRECATED, use
3bf15c
+.BR eventfd2 ()
3bf15c
+instead!!!
3bf15c
+.PP
3bf15c
+.BR eventfd ()
3bf15c
 creates an "eventfd object" that can be used as
3bf15c
 an event wait/notify mechanism by user-space applications,
3bf15c
 and by the kernel to notify user-space applications of events.
3bf15c
diff --git a/man2/fork.2 b/man2/fork.2
3bf15c
deleted file mode 100644
3bf15c
index c217a3a..0000000
3bf15c
--- a/man2/fork.2
3bf15c
+++ /dev/null
3bf15c
@@ -1,337 +0,0 @@
3bf15c
-.\" Copyright (C) 2006 Michael Kerrisk <mtk.manpages@gmail.com>
3bf15c
-.\" A few fragments remain from an earlier (1992) page by
3bf15c
-.\" Drew Eckhardt (drew@cs.colorado.edu),
3bf15c
-.\"
3bf15c
-.\" %%%LICENSE_START(VERBATIM)
3bf15c
-.\" Permission is granted to make and distribute verbatim copies of this
3bf15c
-.\" manual provided the copyright notice and this permission notice are
3bf15c
-.\" preserved on all copies.
3bf15c
-.\"
3bf15c
-.\" Permission is granted to copy and distribute modified versions of this
3bf15c
-.\" manual under the conditions for verbatim copying, provided that the
3bf15c
-.\" entire resulting derived work is distributed under the terms of a
3bf15c
-.\" permission notice identical to this one.
3bf15c
-.\"
3bf15c
-.\" Since the Linux kernel and libraries are constantly changing, this
3bf15c
-.\" manual page may be incorrect or out-of-date.  The author(s) assume no
3bf15c
-.\" responsibility for errors or omissions, or for damages resulting from
3bf15c
-.\" the use of the information contained herein.  The author(s) may not
3bf15c
-.\" have taken the same level of care in the production of this manual,
3bf15c
-.\" which is licensed free of charge, as they might when working
3bf15c
-.\" professionally.
3bf15c
-.\"
3bf15c
-.\" Formatted or processed versions of this manual, if unaccompanied by
3bf15c
-.\" the source, must acknowledge the copyright and authors of this work.
3bf15c
-.\" %%%LICENSE_END
3bf15c
-.\"
3bf15c
-.\" Modified by Michael Haardt (michael@moria.de)
3bf15c
-.\" Modified Sat Jul 24 13:22:07 1993 by Rik Faith (faith@cs.unc.edu)
3bf15c
-.\" Modified 21 Aug 1994 by Michael Chastain (mec@shell.portal.com):
3bf15c
-.\"   Referenced 'clone(2)'.
3bf15c
-.\" Modified 1995-06-10, 1996-04-18, 1999-11-01, 2000-12-24
3bf15c
-.\"   by Andries Brouwer (aeb@cwi.nl)
3bf15c
-.\" Modified, 27 May 2004, Michael Kerrisk <mtk.manpages@gmail.com>
3bf15c
-.\"     Added notes on capability requirements
3bf15c
-.\" 2006-09-04, Michael Kerrisk
3bf15c
-.\"     Greatly expanded, to describe all attributes that differ
3bf15c
-.\"	parent and child.
3bf15c
-.\"
3bf15c
-.TH FORK 2 2017-09-15 "Linux" "Linux Programmer's Manual"
3bf15c
-.SH NAME
3bf15c
-fork \- create a child process
3bf15c
-.SH SYNOPSIS
3bf15c
-.B #include <sys/types.h>
3bf15c
-.br
3bf15c
-.B #include <unistd.h>
3bf15c
-.PP
3bf15c
-.B pid_t fork(void);
3bf15c
-.SH DESCRIPTION
3bf15c
-.BR fork ()
3bf15c
-creates a new process by duplicating the calling process.
3bf15c
-The new process is referred to as the
3bf15c
-.I child
3bf15c
-process.
3bf15c
-The calling process is referred to as the
3bf15c
-.I parent
3bf15c
-process.
3bf15c
-.PP
3bf15c
-The child process and the parent process run in separate memory spaces.
3bf15c
-At the time of
3bf15c
-.BR fork ()
3bf15c
-both memory spaces have the same content.
3bf15c
-Memory writes, file mappings
3bf15c
-.RB ( mmap (2)),
3bf15c
-and unmappings
3bf15c
-.RB ( munmap (2))
3bf15c
-performed by one of the processes do not affect the other.
3bf15c
-.PP
3bf15c
-The child process is an exact duplicate of the parent
3bf15c
-process except for the following points:
3bf15c
-.IP * 3
3bf15c
-The child has its own unique process ID,
3bf15c
-and this PID does not match the ID of any existing process group
3bf15c
-.RB ( setpgid (2))
3bf15c
-or session.
3bf15c
-.IP *
3bf15c
-The child's parent process ID is the same as the parent's process ID.
3bf15c
-.IP *
3bf15c
-The child does not inherit its parent's memory locks
3bf15c
-.RB ( mlock (2),
3bf15c
-.BR mlockall (2)).
3bf15c
-.IP *
3bf15c
-Process resource utilizations
3bf15c
-.RB ( getrusage (2))
3bf15c
-and CPU time counters
3bf15c
-.RB ( times (2))
3bf15c
-are reset to zero in the child.
3bf15c
-.IP *
3bf15c
-The child's set of pending signals is initially empty
3bf15c
-.RB ( sigpending (2)).
3bf15c
-.IP *
3bf15c
-The child does not inherit semaphore adjustments from its parent
3bf15c
-.RB ( semop (2)).
3bf15c
-.IP *
3bf15c
-The child does not inherit process-associated record locks from its parent
3bf15c
-.RB ( fcntl (2)).
3bf15c
-(On the other hand, it does inherit
3bf15c
-.BR fcntl (2)
3bf15c
-open file description locks and
3bf15c
-.BR flock (2)
3bf15c
-locks from its parent.)
3bf15c
-.IP *
3bf15c
-The child does not inherit timers from its parent
3bf15c
-.RB ( setitimer (2),
3bf15c
-.BR alarm (2),
3bf15c
-.BR timer_create (2)).
3bf15c
-.IP *
3bf15c
-The child does not inherit outstanding asynchronous I/O operations
3bf15c
-from its parent
3bf15c
-.RB ( aio_read (3),
3bf15c
-.BR aio_write (3)),
3bf15c
-nor does it inherit any asynchronous I/O contexts from its parent (see
3bf15c
-.BR io_setup (2)).
3bf15c
-.PP
3bf15c
-The process attributes in the preceding list are all specified
3bf15c
-in POSIX.1.
3bf15c
-The parent and child also differ with respect to the following
3bf15c
-Linux-specific process attributes:
3bf15c
-.IP * 3
3bf15c
-The child does not inherit directory change notifications (dnotify)
3bf15c
-from its parent
3bf15c
-(see the description of
3bf15c
-.B F_NOTIFY
3bf15c
-in
3bf15c
-.BR fcntl (2)).
3bf15c
-.IP *
3bf15c
-The
3bf15c
-.BR prctl (2)
3bf15c
-.B PR_SET_PDEATHSIG
3bf15c
-setting is reset so that the child does not receive a signal
3bf15c
-when its parent terminates.
3bf15c
-.IP *
3bf15c
-The default timer slack value is set to the parent's
3bf15c
-current timer slack value.
3bf15c
-See the description of
3bf15c
-.BR PR_SET_TIMERSLACK
3bf15c
-in
3bf15c
-.BR prctl (2).
3bf15c
-.IP *
3bf15c
-Memory mappings that have been marked with the
3bf15c
-.BR madvise (2)
3bf15c
-.B MADV_DONTFORK
3bf15c
-flag are not inherited across a
3bf15c
-.BR fork ().
3bf15c
-.IP *
3bf15c
-Memory in address ranges that have been marked with the
3bf15c
-.BR madvise (2)
3bf15c
-.B MADV_WIPEONFORK
3bf15c
-flag is zeroed in the child after a
3bf15c
-.BR fork ().
3bf15c
-(The
3bf15c
-.B MADV_WIPEONFORK
3bf15c
-setting remains in place for those address ranges in the child.)
3bf15c
-.IP *
3bf15c
-The termination signal of the child is always
3bf15c
-.B SIGCHLD
3bf15c
-(see
3bf15c
-.BR clone (2)).
3bf15c
-.IP *
3bf15c
-The port access permission bits set by
3bf15c
-.BR ioperm (2)
3bf15c
-are not inherited by the child;
3bf15c
-the child must turn on any bits that it requires using
3bf15c
-.BR ioperm (2).
3bf15c
-.PP
3bf15c
-Note the following further points:
3bf15c
-.IP * 3
3bf15c
-The child process is created with a single thread\(emthe
3bf15c
-one that called
3bf15c
-.BR fork ().
3bf15c
-The entire virtual address space of the parent is replicated in the child,
3bf15c
-including the states of mutexes, condition variables,
3bf15c
-and other pthreads objects; the use of
3bf15c
-.BR pthread_atfork (3)
3bf15c
-may be helpful for dealing with problems that this can cause.
3bf15c
-.IP *
3bf15c
-After a
3bf15c
-.BR fork ()
3bf15c
-in a multithreaded program,
3bf15c
-the child can safely call only async-signal-safe functions (see
3bf15c
-.BR signal-safety (7))
3bf15c
-until such time as it calls
3bf15c
-.BR execve (2).
3bf15c
-.IP *
3bf15c
-The child inherits copies of the parent's set of open file descriptors.
3bf15c
-Each file descriptor in the child refers to the same
3bf15c
-open file description (see
3bf15c
-.BR open (2))
3bf15c
-as the corresponding file descriptor in the parent.
3bf15c
-This means that the two file descriptors share open file status flags,
3bf15c
-file offset,
3bf15c
-and signal-driven I/O attributes (see the description of
3bf15c
-.B F_SETOWN
3bf15c
-and
3bf15c
-.B F_SETSIG
3bf15c
-in
3bf15c
-.BR fcntl (2)).
3bf15c
-.IP *
3bf15c
-The child inherits copies of the parent's set of open message
3bf15c
-queue descriptors (see
3bf15c
-.BR mq_overview (7)).
3bf15c
-Each file descriptor in the child refers to the same
3bf15c
-open message queue description
3bf15c
-as the corresponding file descriptor in the parent.
3bf15c
-This means that the two file descriptors share the same flags
3bf15c
-.RI ( mq_flags ).
3bf15c
-.IP *
3bf15c
-The child inherits copies of the parent's set of open directory streams (see
3bf15c
-.BR opendir (3)).
3bf15c
-POSIX.1 says that the corresponding directory streams
3bf15c
-in the parent and child
3bf15c
-.I may
3bf15c
-share the directory stream positioning;
3bf15c
-on Linux/glibc they do not.
3bf15c
-.SH RETURN VALUE
3bf15c
-On success, the PID of the child process is returned in the parent,
3bf15c
-and 0 is returned in the child.
3bf15c
-On failure, \-1 is returned in the parent,
3bf15c
-no child process is created, and
3bf15c
-.I errno
3bf15c
-is set appropriately.
3bf15c
-.SH ERRORS
3bf15c
-.TP
3bf15c
-.B EAGAIN
3bf15c
-.\" NOTE! The following should match the description in pthread_create(3)
3bf15c
-A system-imposed limit on the number of threads was encountered.
3bf15c
-There are a number of limits that may trigger this error:
3bf15c
-.RS
3bf15c
-.IP * 3
3bf15c
-the
3bf15c
-.BR RLIMIT_NPROC
3bf15c
-soft resource limit (set via
3bf15c
-.BR setrlimit (2)),
3bf15c
-which limits the number of processes and threads for a real user ID,
3bf15c
-was reached;
3bf15c
-.IP *
3bf15c
-the kernel's system-wide limit on the number of processes and threads,
3bf15c
-.IR /proc/sys/kernel/threads-max ,
3bf15c
-was reached (see
3bf15c
-.BR proc (5));
3bf15c
-.IP *
3bf15c
-the maximum number of PIDs,
3bf15c
-.IR /proc/sys/kernel/pid_max ,
3bf15c
-was reached (see
3bf15c
-.BR proc (5));
3bf15c
-or
3bf15c
-.IP *
3bf15c
-the PID limit
3bf15c
-.RI ( pids.max )
3bf15c
-imposed by the cgroup "process number" (PIDs) controller was reached.
3bf15c
-.RE
3bf15c
-.TP
3bf15c
-.B EAGAIN
3bf15c
-The caller is operating under the
3bf15c
-.BR SCHED_DEADLINE
3bf15c
-scheduling policy and does not have the reset-on-fork flag set.
3bf15c
-See
3bf15c
-.BR sched (7).
3bf15c
-.TP
3bf15c
-.B ENOMEM
3bf15c
-.BR fork ()
3bf15c
-failed to allocate the necessary kernel structures because memory is tight.
3bf15c
-.TP
3bf15c
-.B ENOMEM
3bf15c
-An attempt was made to create a child process in a PID namespace
3bf15c
-whose "init" process has terminated.
3bf15c
-See
3bf15c
-.BR pid_namespaces (7).
3bf15c
-.TP
3bf15c
-.B ENOSYS
3bf15c
-.BR fork ()
3bf15c
-is not supported on this platform (for example,
3bf15c
-.\" e.g., arm (optionally), blackfin, c6x, frv, h8300, microblaze, xtensa
3bf15c
-hardware without a Memory-Management Unit).
3bf15c
-.TP
3bf15c
-.BR ERESTARTNOINTR " (since Linux 2.6.17)"
3bf15c
-.\" commit 4a2c7a7837da1b91468e50426066d988050e4d56
3bf15c
-System call was interrupted by a signal and will be restarted.
3bf15c
-(This can be seen only during a trace.)
3bf15c
-.SH CONFORMING TO
3bf15c
-POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
3bf15c
-.SH NOTES
3bf15c
-.PP
3bf15c
-Under Linux,
3bf15c
-.BR fork ()
3bf15c
-is implemented using copy-on-write pages, so the only penalty that it incurs
3bf15c
-is the time and memory required to duplicate the parent's page tables,
3bf15c
-and to create a unique task structure for the child.
3bf15c
-.SS C library/kernel differences
3bf15c
-Since version 2.3.3,
3bf15c
-.\" nptl/sysdeps/unix/sysv/linux/fork.c
3bf15c
-rather than invoking the kernel's
3bf15c
-.BR fork ()
3bf15c
-system call,
3bf15c
-the glibc
3bf15c
-.BR fork ()
3bf15c
-wrapper that is provided as part of the
3bf15c
-NPTL threading implementation invokes
3bf15c
-.BR clone (2)
3bf15c
-with flags that provide the same effect as the traditional system call.
3bf15c
-(A call to
3bf15c
-.BR fork ()
3bf15c
-is equivalent to a call to
3bf15c
-.BR clone (2)
3bf15c
-specifying
3bf15c
-.I flags
3bf15c
-as just
3bf15c
-.BR SIGCHLD .)
3bf15c
-The glibc wrapper invokes any fork handlers that have been
3bf15c
-established using
3bf15c
-.BR pthread_atfork (3).
3bf15c
-.\" and does some magic to ensure that getpid(2) returns the right value.
3bf15c
-.SH EXAMPLE
3bf15c
-See
3bf15c
-.BR pipe (2)
3bf15c
-and
3bf15c
-.BR wait (2).
3bf15c
-.SH SEE ALSO
3bf15c
-.BR clone (2),
3bf15c
-.BR execve (2),
3bf15c
-.BR exit (2),
3bf15c
-.BR setrlimit (2),
3bf15c
-.BR unshare (2),
3bf15c
-.BR vfork (2),
3bf15c
-.BR wait (2),
3bf15c
-.BR daemon (3),
3bf15c
-.BR pthread_atfork (3),
3bf15c
-.BR capabilities (7),
3bf15c
-.BR credentials (7)
3bf15c
-.SH COLOPHON
3bf15c
-This page is part of release 4.15 of the Linux
3bf15c
-.I man-pages
3bf15c
-project.
3bf15c
-A description of the project,
3bf15c
-information about reporting bugs,
3bf15c
-and the latest version of this page,
3bf15c
-can be found at
3bf15c
-\%https://www.kernel.org/doc/man\-pages/.
3bf15c
diff --git a/man2/futimesat.2 b/man2/futimesat.2
3bf15c
deleted file mode 100644
3bf15c
index 8991c98..0000000
3bf15c
--- a/man2/futimesat.2
3bf15c
+++ /dev/null
3bf15c
@@ -1,142 +0,0 @@
3bf15c
-.\" This manpage is Copyright (C) 2006, Michael Kerrisk
3bf15c
-.\"
3bf15c
-.\" %%%LICENSE_START(VERBATIM)
3bf15c
-.\" Permission is granted to make and distribute verbatim copies of this
3bf15c
-.\" manual provided the copyright notice and this permission notice are
3bf15c
-.\" preserved on all copies.
3bf15c
-.\"
3bf15c
-.\" Permission is granted to copy and distribute modified versions of this
3bf15c
-.\" manual under the conditions for verbatim copying, provided that the
3bf15c
-.\" entire resulting derived work is distributed under the terms of a
3bf15c
-.\" permission notice identical to this one.
3bf15c
-.\"
3bf15c
-.\" Since the Linux kernel and libraries are constantly changing, this
3bf15c
-.\" manual page may be incorrect or out-of-date.  The author(s) assume no
3bf15c
-.\" responsibility for errors or omissions, or for damages resulting from
3bf15c
-.\" the use of the information contained herein.  The author(s) may not
3bf15c
-.\" have taken the same level of care in the production of this manual,
3bf15c
-.\" which is licensed free of charge, as they might when working
3bf15c
-.\" professionally.
3bf15c
-.\"
3bf15c
-.\" Formatted or processed versions of this manual, if unaccompanied by
3bf15c
-.\" the source, must acknowledge the copyright and authors of this work.
3bf15c
-.\" %%%LICENSE_END
3bf15c
-.\"
3bf15c
-.TH FUTIMESAT 2 2017-09-15 "Linux" "Linux Programmer's Manual"
3bf15c
-.SH NAME
3bf15c
-futimesat \- change timestamps of a file relative to a \
3bf15c
-directory file descriptor
3bf15c
-.SH SYNOPSIS
3bf15c
-.nf
3bf15c
-.B #include <fcntl.h>           /* Definition of AT_* constants */
3bf15c
-.B #include <sys/time.h>
3bf15c
-.PP
3bf15c
-.BI "int futimesat(int " dirfd ", const char *" pathname ,
3bf15c
-.BI "              const struct timeval " times [2]);
3bf15c
-.fi
3bf15c
-.PP
3bf15c
-.in -4n
3bf15c
-Feature Test Macro Requirements for glibc (see
3bf15c
-.BR feature_test_macros (7)):
3bf15c
-.in
3bf15c
-.PP
3bf15c
-.BR futimesat ():
3bf15c
-_GNU_SOURCE
3bf15c
-.SH DESCRIPTION
3bf15c
-This system call is obsolete.
3bf15c
-Use
3bf15c
-.BR utimensat (2)
3bf15c
-instead.
3bf15c
-.PP
3bf15c
-The
3bf15c
-.BR futimesat ()
3bf15c
-system call operates in exactly the same way as
3bf15c
-.BR utimes (2),
3bf15c
-except for the differences described in this manual page.
3bf15c
-.PP
3bf15c
-If the pathname given in
3bf15c
-.I pathname
3bf15c
-is relative, then it is interpreted relative to the directory
3bf15c
-referred to by the file descriptor
3bf15c
-.I dirfd
3bf15c
-(rather than relative to the current working directory of
3bf15c
-the calling process, as is done by
3bf15c
-.BR utimes (2)
3bf15c
-for a relative pathname).
3bf15c
-.PP
3bf15c
-If
3bf15c
-.I pathname
3bf15c
-is relative and
3bf15c
-.I dirfd
3bf15c
-is the special value
3bf15c
-.BR AT_FDCWD ,
3bf15c
-then
3bf15c
-.I pathname
3bf15c
-is interpreted relative to the current working
3bf15c
-directory of the calling process (like
3bf15c
-.BR utimes (2)).
3bf15c
-.PP
3bf15c
-If
3bf15c
-.I pathname
3bf15c
-is absolute, then
3bf15c
-.I dirfd
3bf15c
-is ignored.
3bf15c
-.SH RETURN VALUE
3bf15c
-On success,
3bf15c
-.BR futimesat ()
3bf15c
-returns a 0.
3bf15c
-On error, \-1 is returned and
3bf15c
-.I errno
3bf15c
-is set to indicate the error.
3bf15c
-.SH ERRORS
3bf15c
-The same errors that occur for
3bf15c
-.BR utimes (2)
3bf15c
-can also occur for
3bf15c
-.BR futimesat ().
3bf15c
-The following additional errors can occur for
3bf15c
-.BR futimesat ():
3bf15c
-.TP
3bf15c
-.B EBADF
3bf15c
-.I dirfd
3bf15c
-is not a valid file descriptor.
3bf15c
-.TP
3bf15c
-.B ENOTDIR
3bf15c
-.I pathname
3bf15c
-is relative and
3bf15c
-.I dirfd
3bf15c
-is a file descriptor referring to a file other than a directory.
3bf15c
-.SH VERSIONS
3bf15c
-.BR futimesat ()
3bf15c
-was added to Linux in kernel 2.6.16;
3bf15c
-library support was added to glibc in version 2.4.
3bf15c
-.SH CONFORMING TO
3bf15c
-This system call is nonstandard.
3bf15c
-It was implemented from a specification that was proposed for POSIX.1,
3bf15c
-but that specification was replaced by the one for
3bf15c
-.BR utimensat (2).
3bf15c
-.PP
3bf15c
-A similar system call exists on Solaris.
3bf15c
-.SH NOTES
3bf15c
-.SS Glibc notes
3bf15c
-If
3bf15c
-.I pathname
3bf15c
-is NULL, then the glibc
3bf15c
-.BR futimesat ()
3bf15c
-wrapper function updates the times for the file referred to by
3bf15c
-.IR dirfd .
3bf15c
-.\" The Solaris futimesat() also has this strangeness.
3bf15c
-.SH SEE ALSO
3bf15c
-.BR stat (2),
3bf15c
-.BR utimensat (2),
3bf15c
-.BR utimes (2),
3bf15c
-.BR futimes (3),
3bf15c
-.BR path_resolution (7)
3bf15c
-.SH COLOPHON
3bf15c
-This page is part of release 4.15 of the Linux
3bf15c
-.I man-pages
3bf15c
-project.
3bf15c
-A description of the project,
3bf15c
-information about reporting bugs,
3bf15c
-and the latest version of this page,
3bf15c
-can be found at
3bf15c
-\%https://www.kernel.org/doc/man\-pages/.
3bf15c
diff --git a/man2/getdents.2 b/man2/getdents.2
3bf15c
index 73d57cc..0a650fe 100644
3bf15c
--- a/man2/getdents.2
3bf15c
+++ b/man2/getdents.2
3bf15c
@@ -42,6 +42,13 @@ getdents, getdents64 \- get directory entries
3bf15c
 .IR Note :
3bf15c
 There are no glibc wrappers for these system calls; see NOTES.
3bf15c
 .SH DESCRIPTION
3bf15c
+.BR getdents ()
3bf15c
+system call is DEPRECATED, use
3bf15c
+.BR getdents64 ()
3bf15c
+or
3bf15c
+.BR readdir (3)
3bf15c
+instead!!!
3bf15c
+.PP
3bf15c
 These are not the interfaces you are interested in.
3bf15c
 Look at
3bf15c
 .BR readdir (3)
3bf15c
diff --git a/man2/inotify_init.2 b/man2/inotify_init.2
3bf15c
index cf95d03..b55979e 100644
3bf15c
--- a/man2/inotify_init.2
3bf15c
+++ b/man2/inotify_init.2
3bf15c
@@ -41,6 +41,11 @@ For an overview of the inotify API, see
3bf15c
 .BR inotify (7).
3bf15c
 .PP
3bf15c
 .BR inotify_init ()
3bf15c
+system call is DEPRECATED, use
3bf15c
+.BR inotify_init1 ()
3bf15c
+instead!!!
3bf15c
+.PP
3bf15c
+.BR inotify_init ()
3bf15c
 initializes a new inotify instance and returns a file descriptor associated
3bf15c
 with a new inotify event queue.
3bf15c
 .PP
3bf15c
diff --git a/man2/link.2 b/man2/link.2
3bf15c
index 0742aed..442115c 100644
3bf15c
--- a/man2/link.2
3bf15c
+++ b/man2/link.2
3bf15c
@@ -65,6 +65,11 @@ _ATFILE_SOURCE
3bf15c
 .PD
3bf15c
 .SH DESCRIPTION
3bf15c
 .BR link ()
3bf15c
+system call is DEPRECATED, use
3bf15c
+.BR linkat ()
3bf15c
+instead!!!
3bf15c
+.PP
3bf15c
+.BR link ()
3bf15c
 creates a new link (also known as a hard link) to an existing file.
3bf15c
 .PP
3bf15c
 If
3bf15c
diff --git a/man2/mkdir.2 b/man2/mkdir.2
3bf15c
index 28839bd..9a2f151 100644
3bf15c
--- a/man2/mkdir.2
3bf15c
+++ b/man2/mkdir.2
3bf15c
@@ -45,6 +45,11 @@ _ATFILE_SOURCE
3bf15c
 .PD
3bf15c
 .SH DESCRIPTION
3bf15c
 .BR mkdir ()
3bf15c
+system call is DEPRECATED, use
3bf15c
+.BR mkdirat ()
3bf15c
+instead!!!
3bf15c
+.PP
3bf15c
+.BR mkdir ()
3bf15c
 attempts to create a directory named
3bf15c
 .IR pathname .
3bf15c
 .PP
3bf15c
diff --git a/man2/mknod.2 b/man2/mknod.2
3bf15c
index 82134da..49ef104 100644
3bf15c
--- a/man2/mknod.2
3bf15c
+++ b/man2/mknod.2
3bf15c
@@ -46,6 +46,11 @@ _XOPEN_SOURCE\ >=\ 500
3bf15c
 .RE
3bf15c
 .ad
3bf15c
 .SH DESCRIPTION
3bf15c
+.BR mknod ()
3bf15c
+system call is DEPRECATED, use
3bf15c
+.BR mknodat ()
3bf15c
+instead!!!
3bf15c
+.PP
3bf15c
 The system call
3bf15c
 .BR mknod ()
3bf15c
 creates a filesystem node (file, device special file, or
3bf15c
diff --git a/man2/open.2 b/man2/open.2
3bf15c
index 0f9a9e7..2eec9c6 100644
3bf15c
--- a/man2/open.2
3bf15c
+++ b/man2/open.2
3bf15c
@@ -86,6 +86,13 @@ _ATFILE_SOURCE
3bf15c
 .ad
3bf15c
 .PD
3bf15c
 .SH DESCRIPTION
3bf15c
+.BR open ()
3bf15c
+and
3bf15c
+.BR creat ()
3bf15c
+system calls are DEPRECATED, use
3bf15c
+.BR openat ()
3bf15c
+instead!!!
3bf15c
+.PP
3bf15c
 The
3bf15c
 .BR open ()
3bf15c
 system call opens the file specified by
3bf15c
diff --git a/man2/pause.2 b/man2/pause.2
3bf15c
deleted file mode 100644
3bf15c
index 1a3aa54..0000000
3bf15c
--- a/man2/pause.2
3bf15c
+++ /dev/null
3bf15c
@@ -1,72 +0,0 @@
3bf15c
-.\" Copyright (c) 1992 Drew Eckhardt (drew@cs.colorado.edu), March 28, 1992
3bf15c
-.\"
3bf15c
-.\" %%%LICENSE_START(VERBATIM)
3bf15c
-.\" Permission is granted to make and distribute verbatim copies of this
3bf15c
-.\" manual provided the copyright notice and this permission notice are
3bf15c
-.\" preserved on all copies.
3bf15c
-.\"
3bf15c
-.\" Permission is granted to copy and distribute modified versions of this
3bf15c
-.\" manual under the conditions for verbatim copying, provided that the
3bf15c
-.\" entire resulting derived work is distributed under the terms of a
3bf15c
-.\" permission notice identical to this one.
3bf15c
-.\"
3bf15c
-.\" Since the Linux kernel and libraries are constantly changing, this
3bf15c
-.\" manual page may be incorrect or out-of-date.  The author(s) assume no
3bf15c
-.\" responsibility for errors or omissions, or for damages resulting from
3bf15c
-.\" the use of the information contained herein.  The author(s) may not
3bf15c
-.\" have taken the same level of care in the production of this manual,
3bf15c
-.\" which is licensed free of charge, as they might when working
3bf15c
-.\" professionally.
3bf15c
-.\"
3bf15c
-.\" Formatted or processed versions of this manual, if unaccompanied by
3bf15c
-.\" the source, must acknowledge the copyright and authors of this work.
3bf15c
-.\" %%%LICENSE_END
3bf15c
-.\"
3bf15c
-.\" Modified by Michael Haardt (michael@moria.de)
3bf15c
-.\" Modified Sat Jul 24 14:48:00 1993 by Rik Faith (faith@cs.unc.edu)
3bf15c
-.\" Modified 1995 by Mike Battersby (mib@deakin.edu.au)
3bf15c
-.\" Modified 2000 by aeb, following Michael Kerrisk
3bf15c
-.\"
3bf15c
-.TH PAUSE 2 2015-08-08 "Linux" "Linux Programmer's Manual"
3bf15c
-.SH NAME
3bf15c
-pause \- wait for signal
3bf15c
-.SH SYNOPSIS
3bf15c
-.B #include <unistd.h>
3bf15c
-.PP
3bf15c
-.B int pause(void);
3bf15c
-.SH DESCRIPTION
3bf15c
-.BR pause ()
3bf15c
-causes the calling process (or thread) to sleep
3bf15c
-until a signal is delivered that either terminates the process or causes
3bf15c
-the invocation of a signal-catching function.
3bf15c
-.SH RETURN VALUE
3bf15c
-.BR pause ()
3bf15c
-returns only when a signal was caught and the
3bf15c
-signal-catching function returned.
3bf15c
-In this case,
3bf15c
-.BR pause ()
3bf15c
-returns \-1, and
3bf15c
-.I errno
3bf15c
-is set to
3bf15c
-.\" .BR ERESTARTNOHAND .
3bf15c
-.BR EINTR .
3bf15c
-.SH ERRORS
3bf15c
-.TP
3bf15c
-.B EINTR
3bf15c
-a signal was caught and the signal-catching function returned.
3bf15c
-.SH CONFORMING TO
3bf15c
-POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
3bf15c
-.SH SEE ALSO
3bf15c
-.BR kill (2),
3bf15c
-.BR select (2),
3bf15c
-.BR signal (2),
3bf15c
-.BR sigsuspend (2)
3bf15c
-.SH COLOPHON
3bf15c
-This page is part of release 4.15 of the Linux
3bf15c
-.I man-pages
3bf15c
-project.
3bf15c
-A description of the project,
3bf15c
-information about reporting bugs,
3bf15c
-and the latest version of this page,
3bf15c
-can be found at
3bf15c
-\%https://www.kernel.org/doc/man\-pages/.
3bf15c
diff --git a/man2/pipe.2 b/man2/pipe.2
3bf15c
index 1f2e565..baffbee 100644
3bf15c
--- a/man2/pipe.2
3bf15c
+++ b/man2/pipe.2
3bf15c
@@ -50,6 +50,11 @@ pipe, pipe2 \- create pipe
3bf15c
 .fi
3bf15c
 .SH DESCRIPTION
3bf15c
 .BR pipe ()
3bf15c
+system call is DEPRECATED, use
3bf15c
+.BR pipe2 ()
3bf15c
+instead!!!
3bf15c
+.PP
3bf15c
+.BR pipe ()
3bf15c
 creates a pipe, a unidirectional data channel that
3bf15c
 can be used for interprocess communication.
3bf15c
 The array
3bf15c
diff --git a/man2/poll.2 b/man2/poll.2
3bf15c
index ea4fed9..8c7fb37 100644
3bf15c
--- a/man2/poll.2
3bf15c
+++ b/man2/poll.2
3bf15c
@@ -46,6 +46,11 @@ poll, ppoll \- wait for some event on a file descriptor
3bf15c
 .fi
3bf15c
 .SH DESCRIPTION
3bf15c
 .BR poll ()
3bf15c
+system call is DEPRECATED, use
3bf15c
+.BR ppoll ()
3bf15c
+instead!!!
3bf15c
+.PP
3bf15c
+.BR poll ()
3bf15c
 performs a similar task to
3bf15c
 .BR select (2):
3bf15c
 it waits for one of a set of file descriptors to become ready
3bf15c
diff --git a/man2/readlink.2 b/man2/readlink.2
3bf15c
index 8a72a37..9b00999 100644
3bf15c
--- a/man2/readlink.2
3bf15c
+++ b/man2/readlink.2
3bf15c
@@ -86,6 +86,11 @@ _ATFILE_SOURCE
3bf15c
 .PD
3bf15c
 .SH DESCRIPTION
3bf15c
 .BR readlink ()
3bf15c
+system call is DEPRECATED, use
3bf15c
+.BR readlinkat ()
3bf15c
+instead!!!
3bf15c
+.PP
3bf15c
+.BR readlink ()
3bf15c
 places the contents of the symbolic link
3bf15c
 .I pathname
3bf15c
 in the buffer
3bf15c
diff --git a/man2/recv.2 b/man2/recv.2
3bf15c
index c6d4c86..3400ea7 100644
3bf15c
--- a/man2/recv.2
3bf15c
+++ b/man2/recv.2
3bf15c
@@ -57,6 +57,13 @@ recv, recvfrom, recvmsg \- receive a message from a socket
3bf15c
 .BI "ssize_t recvmsg(int " sockfd ", struct msghdr *" msg ", int " flags );
3bf15c
 .fi
3bf15c
 .SH DESCRIPTION
3bf15c
+.BR recv ()
3bf15c
+system call is DEPRECATED, use
3bf15c
+.BR recvfrom ()
3bf15c
+with a NULL
3bf15c
+.I src_addr
3bf15c
+argument!
3bf15c
+.PP
3bf15c
 The
3bf15c
 .BR recv (),
3bf15c
 .BR recvfrom (),
3bf15c
diff --git a/man2/rename.2 b/man2/rename.2
3bf15c
index f8b4991..457e081 100644
3bf15c
--- a/man2/rename.2
3bf15c
+++ b/man2/rename.2
3bf15c
@@ -76,6 +76,11 @@ _ATFILE_SOURCE
3bf15c
 .PD
3bf15c
 .SH DESCRIPTION
3bf15c
 .BR rename ()
3bf15c
+system call is DEPRECATED, use
3bf15c
+.BR renameat ()
3bf15c
+instead!!!
3bf15c
+.PP
3bf15c
+.BR rename ()
3bf15c
 renames a file, moving it between directories if required.
3bf15c
 Any other hard links to the file (as created using
3bf15c
 .BR link (2))
3bf15c
diff --git a/man2/rmdir.2 b/man2/rmdir.2
3bf15c
deleted file mode 100644
3bf15c
index 1eff7cd..0000000
3bf15c
--- a/man2/rmdir.2
3bf15c
+++ /dev/null
3bf15c
@@ -1,150 +0,0 @@
3bf15c
-.\" This manpage is Copyright (C) 1992 Drew Eckhardt;
3bf15c
-.\"             and Copyright (C) 1993 Michael Haardt, Ian Jackson.
3bf15c
-.\"
3bf15c
-.\" %%%LICENSE_START(VERBATIM)
3bf15c
-.\" Permission is granted to make and distribute verbatim copies of this
3bf15c
-.\" manual provided the copyright notice and this permission notice are
3bf15c
-.\" preserved on all copies.
3bf15c
-.\"
3bf15c
-.\" Permission is granted to copy and distribute modified versions of this
3bf15c
-.\" manual under the conditions for verbatim copying, provided that the
3bf15c
-.\" entire resulting derived work is distributed under the terms of a
3bf15c
-.\" permission notice identical to this one.
3bf15c
-.\"
3bf15c
-.\" Since the Linux kernel and libraries are constantly changing, this
3bf15c
-.\" manual page may be incorrect or out-of-date.  The author(s) assume no
3bf15c
-.\" responsibility for errors or omissions, or for damages resulting from
3bf15c
-.\" the use of the information contained herein.  The author(s) may not
3bf15c
-.\" have taken the same level of care in the production of this manual,
3bf15c
-.\" which is licensed free of charge, as they might when working
3bf15c
-.\" professionally.
3bf15c
-.\"
3bf15c
-.\" Formatted or processed versions of this manual, if unaccompanied by
3bf15c
-.\" the source, must acknowledge the copyright and authors of this work.
3bf15c
-.\" %%%LICENSE_END
3bf15c
-.\"
3bf15c
-.\" Modified 1993-07-24 by Rik Faith <faith@cs.unc.edu>
3bf15c
-.\" Modified 1997-01-31 by Eric S. Raymond <esr@thyrsus.com>
3bf15c
-.\" Modified 2004-06-23 by Michael Kerrisk <mtk.manpages@gmail.com>
3bf15c
-.\"
3bf15c
-.TH RMDIR 2 2015-08-08 "Linux" "Linux Programmer's Manual"
3bf15c
-.SH NAME
3bf15c
-rmdir \- delete a directory
3bf15c
-.SH SYNOPSIS
3bf15c
-.B #include <unistd.h>
3bf15c
-.PP
3bf15c
-.BI "int rmdir(const char *" pathname );
3bf15c
-.SH DESCRIPTION
3bf15c
-.BR rmdir ()
3bf15c
-deletes a directory, which must be empty.
3bf15c
-.SH RETURN VALUE
3bf15c
-On success, zero is returned.
3bf15c
-On error, \-1 is returned, and
3bf15c
-.I errno
3bf15c
-is set appropriately.
3bf15c
-.SH ERRORS
3bf15c
-.TP
3bf15c
-.B EACCES
3bf15c
-Write access to the directory containing
3bf15c
-.I pathname
3bf15c
-was not allowed, or one of the directories in the path prefix of
3bf15c
-.I pathname
3bf15c
-did not allow search permission.
3bf15c
-(See also
3bf15c
-.BR path_resolution (7).
3bf15c
-.TP
3bf15c
-.B EBUSY
3bf15c
-.I pathname
3bf15c
-is currently in use by the system or some process that prevents its
3bf15c
-removal.
3bf15c
-On Linux, this means
3bf15c
-.I pathname
3bf15c
-is currently used as a mount point
3bf15c
-or is the root directory of the calling process.
3bf15c
-.TP
3bf15c
-.B EFAULT
3bf15c
-.IR pathname " points outside your accessible address space."
3bf15c
-.TP
3bf15c
-.B EINVAL
3bf15c
-.I pathname
3bf15c
-has
3bf15c
-.I .
3bf15c
-as last component.
3bf15c
-.TP
3bf15c
-.B ELOOP
3bf15c
-Too many symbolic links were encountered in resolving
3bf15c
-.IR pathname .
3bf15c
-.TP
3bf15c
-.B ENAMETOOLONG
3bf15c
-.IR pathname " was too long."
3bf15c
-.TP
3bf15c
-.B ENOENT
3bf15c
-A directory component in
3bf15c
-.I pathname
3bf15c
-does not exist or is a dangling symbolic link.
3bf15c
-.TP
3bf15c
-.B ENOMEM
3bf15c
-Insufficient kernel memory was available.
3bf15c
-.TP
3bf15c
-.B ENOTDIR
3bf15c
-.IR pathname ,
3bf15c
-or a component used as a directory in
3bf15c
-.IR pathname ,
3bf15c
-is not, in fact, a directory.
3bf15c
-.TP
3bf15c
-.B ENOTEMPTY
3bf15c
-.I pathname
3bf15c
-contains entries other than
3bf15c
-.IR . " and " .. " ;"
3bf15c
-or,
3bf15c
-.I pathname
3bf15c
-has
3bf15c
-.I ..
3bf15c
-as its final component.
3bf15c
-POSIX.1 also allows
3bf15c
-.\" POSIX.1-2001, POSIX.1-2008
3bf15c
-.B EEXIST
3bf15c
-for this condition.
3bf15c
-.TP
3bf15c
-.B EPERM
3bf15c
-The directory containing
3bf15c
-.I pathname
3bf15c
-has the sticky bit
3bf15c
-.RB ( S_ISVTX )
3bf15c
-set and the process's effective user ID is neither the user ID
3bf15c
-of the file to be deleted nor that of the directory containing it,
3bf15c
-and the process is not privileged (Linux: does not have the
3bf15c
-.B CAP_FOWNER
3bf15c
-capability).
3bf15c
-.TP
3bf15c
-.B EPERM
3bf15c
-The filesystem containing
3bf15c
-.I pathname
3bf15c
-does not support the removal of directories.
3bf15c
-.TP
3bf15c
-.B EROFS
3bf15c
-.I pathname
3bf15c
-refers to a directory on a read-only filesystem.
3bf15c
-.SH CONFORMING TO
3bf15c
-POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
3bf15c
-.SH BUGS
3bf15c
-Infelicities in the protocol underlying NFS can cause the unexpected
3bf15c
-disappearance of directories which are still being used.
3bf15c
-.SH SEE ALSO
3bf15c
-.BR rm (1),
3bf15c
-.BR rmdir (1),
3bf15c
-.BR chdir (2),
3bf15c
-.BR chmod (2),
3bf15c
-.BR mkdir (2),
3bf15c
-.BR rename (2),
3bf15c
-.BR unlink (2),
3bf15c
-.BR unlinkat (2)
3bf15c
-.SH COLOPHON
3bf15c
-This page is part of release 4.15 of the Linux
3bf15c
-.I man-pages
3bf15c
-project.
3bf15c
-A description of the project,
3bf15c
-information about reporting bugs,
3bf15c
-and the latest version of this page,
3bf15c
-can be found at
3bf15c
-\%https://www.kernel.org/doc/man\-pages/.
3bf15c
diff --git a/man2/select.2 b/man2/select.2
3bf15c
index c0a3a47..9fce598 100644
3bf15c
--- a/man2/select.2
3bf15c
+++ b/man2/select.2
3bf15c
@@ -73,6 +73,11 @@ Feature Test Macro Requirements for glibc (see
3bf15c
 _POSIX_C_SOURCE\ >=\ 200112L
3bf15c
 .SH DESCRIPTION
3bf15c
 .BR select ()
3bf15c
+system call is DEPRECATED, use
3bf15c
+.BR pselect ()
3bf15c
+instead!!!
3bf15c
+.PP
3bf15c
+.BR select ()
3bf15c
 and
3bf15c
 .BR pselect ()
3bf15c
 allow a program to monitor multiple file descriptors,
3bf15c
diff --git a/man2/send.2 b/man2/send.2
3bf15c
index e0bea6d..e5b4082 100644
3bf15c
--- a/man2/send.2
3bf15c
+++ b/man2/send.2
3bf15c
@@ -56,6 +56,13 @@ send, sendto, sendmsg \- send a message on a socket
3bf15c
 ", int " flags );
3bf15c
 .fi
3bf15c
 .SH DESCRIPTION
3bf15c
+.BR send ()
3bf15c
+system call is DEPRECATED, use
3bf15c
+.BR sendto ()
3bf15c
+with a NULL
3bf15c
+.I dest_addr
3bf15c
+instead!!!
3bf15c
+.PP
3bf15c
 The system calls
3bf15c
 .BR send (),
3bf15c
 .BR sendto (),
3bf15c
diff --git a/man2/setpgid.2 b/man2/setpgid.2
3bf15c
index 6f6b337..3574aed 100644
3bf15c
--- a/man2/setpgid.2
3bf15c
+++ b/man2/setpgid.2
3bf15c
@@ -99,6 +99,11 @@ _XOPEN_SOURCE\ >=\ 500
3bf15c
 .fi
3bf15c
 .ad
3bf15c
 .SH DESCRIPTION
3bf15c
+.BR getpgrp ()
3bf15c
+system call is DEPRECATED, use
3bf15c
+.BR getpgid ()
3bf15c
+instead!!!
3bf15c
+.PP
3bf15c
 All of these interfaces are available on Linux,
3bf15c
 and are used for getting and setting the
3bf15c
 process group ID (PGID) of a process.
3bf15c
diff --git a/man2/signalfd.2 b/man2/signalfd.2
3bf15c
index 90e81ef..10ac204 100644
3bf15c
--- a/man2/signalfd.2
3bf15c
+++ b/man2/signalfd.2
3bf15c
@@ -26,6 +26,11 @@ signalfd \- create a file descriptor for accepting signals
3bf15c
 .BI "int signalfd(int " fd ", const sigset_t *" mask ", int " flags );
3bf15c
 .SH DESCRIPTION
3bf15c
 .BR signalfd ()
3bf15c
+system call is DEPRECATED, use
3bf15c
+.BR signalfd4 ()
3bf15c
+instead!!!
3bf15c
+.PP
3bf15c
+.BR signalfd ()
3bf15c
 creates a file descriptor that can be used to accept signals
3bf15c
 targeted at the caller.
3bf15c
 This provides an alternative to the use of a signal handler or
3bf15c
diff --git a/man2/symlink.2 b/man2/symlink.2
3bf15c
index ce0cbe7..78ad595 100644
3bf15c
--- a/man2/symlink.2
3bf15c
+++ b/man2/symlink.2
3bf15c
@@ -74,6 +74,11 @@ _ATFILE_SOURCE
3bf15c
 .PD
3bf15c
 .SH DESCRIPTION
3bf15c
 .BR symlink ()
3bf15c
+system call is DEPRECATED, use
3bf15c
+.BR symlinkat ()
3bf15c
+instead!!!
3bf15c
+.PP
3bf15c
+.BR symlink ()
3bf15c
 creates a symbolic link named
3bf15c
 .I linkpath
3bf15c
 which contains the string
3bf15c
diff --git a/man2/sysctl.2 b/man2/sysctl.2
3bf15c
deleted file mode 100644
3bf15c
index 849f1b5..0000000
3bf15c
--- a/man2/sysctl.2
3bf15c
+++ /dev/null
3bf15c
@@ -1,190 +0,0 @@
3bf15c
-.\" Copyright (C) 1996 Andries Brouwer (aeb@cwi.nl)
3bf15c
-.\"
3bf15c
-.\" %%%LICENSE_START(VERBATIM)
3bf15c
-.\" Permission is granted to make and distribute verbatim copies of this
3bf15c
-.\" manual provided the copyright notice and this permission notice are
3bf15c
-.\" preserved on all copies.
3bf15c
-.\"
3bf15c
-.\" Permission is granted to copy and distribute modified versions of this
3bf15c
-.\" manual under the conditions for verbatim copying, provided that the
3bf15c
-.\" entire resulting derived work is distributed under the terms of a
3bf15c
-.\" permission notice identical to this one.
3bf15c
-.\"
3bf15c
-.\" Since the Linux kernel and libraries are constantly changing, this
3bf15c
-.\" manual page may be incorrect or out-of-date.  The author(s) assume no
3bf15c
-.\" responsibility for errors or omissions, or for damages resulting from
3bf15c
-.\" the use of the information contained herein.  The author(s) may not
3bf15c
-.\" have taken the same level of care in the production of this manual,
3bf15c
-.\" which is licensed free of charge, as they might when working
3bf15c
-.\" professionally.
3bf15c
-.\"
3bf15c
-.\" Formatted or processed versions of this manual, if unaccompanied by
3bf15c
-.\" the source, must acknowledge the copyright and authors of this work.
3bf15c
-.\" %%%LICENSE_END
3bf15c
-.\"
3bf15c
-.\" Written 11 April 1996 by Andries Brouwer <aeb@cwi.nl>
3bf15c
-.\" 960412: Added comments from Stephen Tweedie
3bf15c
-.\" Modified Tue Oct 22 22:28:41 1996 by Eric S. Raymond <esr@thyrsus.com>
3bf15c
-.\" Modified Mon Jan  5 20:31:04 1998 by aeb.
3bf15c
-.\"
3bf15c
-.TH SYSCTL 2 2017-09-15 "Linux" "Linux Programmer's Manual"
3bf15c
-.SH NAME
3bf15c
-sysctl \- read/write system parameters
3bf15c
-.SH SYNOPSIS
3bf15c
-.nf
3bf15c
-.B #include <unistd.h>
3bf15c
-.B #include <linux/sysctl.h>
3bf15c
-.PP
3bf15c
-.BI "int _sysctl(struct __sysctl_args *" args );
3bf15c
-.fi
3bf15c
-.PP
3bf15c
-.IR Note :
3bf15c
-There is no glibc wrapper for this system call; see NOTES.
3bf15c
-.SH DESCRIPTION
3bf15c
-.B Do not use this system call!
3bf15c
-See NOTES.
3bf15c
-.PP
3bf15c
-The
3bf15c
-.BR _sysctl ()
3bf15c
-call reads and/or writes kernel parameters.
3bf15c
-For example, the hostname,
3bf15c
-or the maximum number of open files.
3bf15c
-The argument has the form
3bf15c
-.PP
3bf15c
-.in +4n
3bf15c
-.EX
3bf15c
-struct __sysctl_args {
3bf15c
-    int    *name;    /* integer vector describing variable */
3bf15c
-    int     nlen;    /* length of this vector */
3bf15c
-    void   *oldval;  /* 0 or address where to store old value */
3bf15c
-    size_t *oldlenp; /* available room for old value,
3bf15c
-                        overwritten by actual size of old value */
3bf15c
-    void   *newval;  /* 0 or address of new value */
3bf15c
-    size_t  newlen;  /* size of new value */
3bf15c
-};
3bf15c
-.EE
3bf15c
-.in
3bf15c
-.PP
3bf15c
-This call does a search in a tree structure, possibly resembling
3bf15c
-a directory tree under
3bf15c
-.IR /proc/sys ,
3bf15c
-and if the requested item is found calls some appropriate routine
3bf15c
-to read or modify the value.
3bf15c
-.SH RETURN VALUE
3bf15c
-Upon successful completion,
3bf15c
-.BR _sysctl ()
3bf15c
-returns 0.
3bf15c
-Otherwise, a value of \-1 is returned and
3bf15c
-.I errno
3bf15c
-is set to indicate the error.
3bf15c
-.SH ERRORS
3bf15c
-.TP
3bf15c
-.BR EACCES ", " EPERM
3bf15c
-No search permission for one of the encountered "directories",
3bf15c
-or no read permission where
3bf15c
-.I oldval
3bf15c
-was nonzero, or no write permission where
3bf15c
-.I newval
3bf15c
-was nonzero.
3bf15c
-.TP
3bf15c
-.B EFAULT
3bf15c
-The invocation asked for the previous value by setting
3bf15c
-.I oldval
3bf15c
-non-NULL, but allowed zero room in
3bf15c
-.IR oldlenp .
3bf15c
-.TP
3bf15c
-.B ENOTDIR
3bf15c
-.I name
3bf15c
-was not found.
3bf15c
-.SH CONFORMING TO
3bf15c
-This call is Linux-specific, and should not be used in programs
3bf15c
-intended to be portable.
3bf15c
-A
3bf15c
-.BR sysctl ()
3bf15c
-call has been present in Linux since version 1.3.57.
3bf15c
-It originated in
3bf15c
-4.4BSD.
3bf15c
-Only Linux has the
3bf15c
-.I /proc/sys
3bf15c
-mirror, and the object naming schemes differ between Linux and 4.4BSD,
3bf15c
-but the declaration of the
3bf15c
-.BR sysctl ()
3bf15c
-function is the same in both.
3bf15c
-.SH NOTES
3bf15c
-Glibc does not provide a wrapper for this system call; call it using
3bf15c
-.BR syscall (2).
3bf15c
-Or rather...
3bf15c
-.I don't
3bf15c
-call it:
3bf15c
-use of this system call has long been discouraged,
3bf15c
-and it is so unloved that
3bf15c
-\fBit is likely to disappear in a future kernel version\fP.
3bf15c
-.\" See http://lwn.net/Articles/247243/
3bf15c
-Since Linux 2.6.24,
3bf15c
-uses of this system call result in warnings in the kernel log.
3bf15c
-.\" Though comments in suggest that it is needed by old glibc binaries,
3bf15c
-.\" so maybe it's not going away.
3bf15c
-Remove it from your programs now; use the
3bf15c
-.I /proc/sys
3bf15c
-interface instead.
3bf15c
-.PP
3bf15c
-This system call is available only if the kernel was configured with the
3bf15c
-.B CONFIG_SYSCTL_SYSCALL
3bf15c
-option.
3bf15c
-.SH BUGS
3bf15c
-The object names vary between kernel versions,
3bf15c
-making this system call worthless for applications.
3bf15c
-.PP
3bf15c
-Not all available objects are properly documented.
3bf15c
-.PP
3bf15c
-It is not yet possible to change operating system by writing to
3bf15c
-.IR /proc/sys/kernel/ostype .
3bf15c
-.SH EXAMPLE
3bf15c
-.EX
3bf15c
-#define _GNU_SOURCE
3bf15c
-#include <unistd.h>
3bf15c
-#include <sys/syscall.h>
3bf15c
-#include <string.h>
3bf15c
-#include <stdio.h>
3bf15c
-#include <stdlib.h>
3bf15c
-#include <linux/sysctl.h>
3bf15c
-
3bf15c
-int _sysctl(struct __sysctl_args *args );
3bf15c
-
3bf15c
-#define OSNAMESZ 100
3bf15c
-
3bf15c
-int
3bf15c
-main(void)
3bf15c
-{
3bf15c
-    struct __sysctl_args args;
3bf15c
-    char osname[OSNAMESZ];
3bf15c
-    size_t osnamelth;
3bf15c
-    int name[] = { CTL_KERN, KERN_OSTYPE };
3bf15c
-
3bf15c
-    memset(&args, 0, sizeof(struct __sysctl_args));
3bf15c
-    args.name = name;
3bf15c
-    args.nlen = sizeof(name)/sizeof(name[0]);
3bf15c
-    args.oldval = osname;
3bf15c
-    args.oldlenp = &osnamelth;
3bf15c
-
3bf15c
-    osnamelth = sizeof(osname);
3bf15c
-
3bf15c
-    if (syscall(SYS__sysctl, &args) == \-1) {
3bf15c
-        perror("_sysctl");
3bf15c
-        exit(EXIT_FAILURE);
3bf15c
-    }
3bf15c
-    printf("This machine is running %*s\\n", osnamelth, osname);
3bf15c
-    exit(EXIT_SUCCESS);
3bf15c
-}
3bf15c
-.EE
3bf15c
-.SH SEE ALSO
3bf15c
-.BR proc (5)
3bf15c
-.SH COLOPHON
3bf15c
-This page is part of release 4.15 of the Linux
3bf15c
-.I man-pages
3bf15c
-project.
3bf15c
-A description of the project,
3bf15c
-information about reporting bugs,
3bf15c
-and the latest version of this page,
3bf15c
-can be found at
3bf15c
-\%https://www.kernel.org/doc/man\-pages/.
3bf15c
diff --git a/man2/time.2 b/man2/time.2
3bf15c
deleted file mode 100644
3bf15c
index 00a9b4d..0000000
3bf15c
--- a/man2/time.2
3bf15c
+++ /dev/null
3bf15c
@@ -1,140 +0,0 @@
3bf15c
-.\" Copyright (c) 1992 Drew Eckhardt (drew@cs.colorado.edu), March 28, 1992
3bf15c
-.\"
3bf15c
-.\" %%%LICENSE_START(VERBATIM)
3bf15c
-.\" Permission is granted to make and distribute verbatim copies of this
3bf15c
-.\" manual provided the copyright notice and this permission notice are
3bf15c
-.\" preserved on all copies.
3bf15c
-.\"
3bf15c
-.\" Permission is granted to copy and distribute modified versions of this
3bf15c
-.\" manual under the conditions for verbatim copying, provided that the
3bf15c
-.\" entire resulting derived work is distributed under the terms of a
3bf15c
-.\" permission notice identical to this one.
3bf15c
-.\"
3bf15c
-.\" Since the Linux kernel and libraries are constantly changing, this
3bf15c
-.\" manual page may be incorrect or out-of-date.  The author(s) assume no
3bf15c
-.\" responsibility for errors or omissions, or for damages resulting from
3bf15c
-.\" the use of the information contained herein.  The author(s) may not
3bf15c
-.\" have taken the same level of care in the production of this manual,
3bf15c
-.\" which is licensed free of charge, as they might when working
3bf15c
-.\" professionally.
3bf15c
-.\"
3bf15c
-.\" Formatted or processed versions of this manual, if unaccompanied by
3bf15c
-.\" the source, must acknowledge the copyright and authors of this work.
3bf15c
-.\" %%%LICENSE_END
3bf15c
-.\"
3bf15c
-.\" Modified by Michael Haardt <michael@moria.de>
3bf15c
-.\" Modified Sat Jul 24 14:13:40 1993 by Rik Faith <faith@cs.unc.edu>
3bf15c
-.\" Additions by Joseph S. Myers <jsm28@cam.ac.uk>, 970909
3bf15c
-.\"
3bf15c
-.TH TIME 2 2017-09-15 "Linux" "Linux Programmer's Manual"
3bf15c
-.SH NAME
3bf15c
-time \- get time in seconds
3bf15c
-.SH SYNOPSIS
3bf15c
-.B #include <time.h>
3bf15c
-.PP
3bf15c
-.BI "time_t time(time_t *" tloc );
3bf15c
-.SH DESCRIPTION
3bf15c
-.BR time ()
3bf15c
-returns the time as the number of seconds since the
3bf15c
-Epoch, 1970-01-01 00:00:00 +0000 (UTC).
3bf15c
-.PP
3bf15c
-If
3bf15c
-.I tloc
3bf15c
-is non-NULL,
3bf15c
-the return value is also stored in the memory pointed to by
3bf15c
-.IR tloc .
3bf15c
-.SH RETURN VALUE
3bf15c
-On success, the value of time in seconds since the Epoch is returned.
3bf15c
-On error, \fI((time_t)\ \-1)\fP is returned, and \fIerrno\fP is set
3bf15c
-appropriately.
3bf15c
-.SH ERRORS
3bf15c
-.TP
3bf15c
-.B EFAULT
3bf15c
-.I tloc
3bf15c
-points outside your accessible address space (but see BUGS).
3bf15c
-.IP
3bf15c
-On systems where the C library
3bf15c
-.BR time ()
3bf15c
-wrapper function invokes an implementation provided by the
3bf15c
-.BR vdso (7)
3bf15c
-(so that there is no trap into the kernel),
3bf15c
-an invalid address may instead trigger a
3bf15c
-.B SIGSEGV
3bf15c
-signal.
3bf15c
-.SH CONFORMING TO
3bf15c
-SVr4, 4.3BSD, C89, C99, POSIX.1-2001.
3bf15c
-.\" Under 4.3BSD, this call is obsoleted by
3bf15c
-.\" .BR gettimeofday (2).
3bf15c
-POSIX does not specify any error conditions.
3bf15c
-.SH NOTES
3bf15c
-POSIX.1 defines
3bf15c
-.I seconds since the Epoch
3bf15c
-using a formula that approximates the number of seconds between a
3bf15c
-specified time and the Epoch.
3bf15c
-This formula takes account of the facts that
3bf15c
-all years that are evenly divisible by 4 are leap years,
3bf15c
-but years that are evenly divisible by 100 are not leap years
3bf15c
-unless they are also evenly divisible by 400,
3bf15c
-in which case they are leap years.
3bf15c
-This value is not the same as the actual number of seconds between the time
3bf15c
-and the Epoch, because of leap seconds and because system clocks are not
3bf15c
-required to be synchronized to a standard reference.
3bf15c
-The intention is that the interpretation of seconds since the Epoch values be
3bf15c
-consistent; see POSIX.1-2008 Rationale A.4.15 for further rationale.
3bf15c
-.PP
3bf15c
-On Linux, a call to
3bf15c
-.BR time ()
3bf15c
-with
3bf15c
-.I tloc
3bf15c
-specified as NULL cannot fail with the error
3bf15c
-.BR EOVERFLOW ,
3bf15c
-even on ABIs where
3bf15c
-.I time_t
3bf15c
-is a signed 32-bit integer and the clock ticks past the time 2**31
3bf15c
-(2038-01-19 03:14:08 UTC, ignoring leap seconds).
3bf15c
-(POSIX.1 permits, but does not require, the
3bf15c
-.B EOVERFLOW
3bf15c
-error in the case where the seconds since the Epoch will not fit in
3bf15c
-.IR time_t .)
3bf15c
-Instead, the behavior on Linux is undefined when the system time is out of the
3bf15c
-.I time_t
3bf15c
-range.
3bf15c
-Applications intended to run after 2038 should use ABIs with
3bf15c
-.I time_t
3bf15c
-wider than 32 bits.
3bf15c
-.SH BUGS
3bf15c
-Error returns from this system call are indistinguishable from
3bf15c
-successful reports that the time is a few seconds
3bf15c
-.I before
3bf15c
-the Epoch, so the C library wrapper function never sets
3bf15c
-.I errno
3bf15c
-as a result of this call.
3bf15c
-.PP
3bf15c
-The
3bf15c
-.I tloc
3bf15c
-argument is obsolescent and should always be NULL in new code.
3bf15c
-When
3bf15c
-.I tloc
3bf15c
-is NULL, the call cannot fail.
3bf15c
-.\"
3bf15c
-.SS C library/kernel differences
3bf15c
-On some architectures, an implementation of
3bf15c
-.BR time ()
3bf15c
-is provided in the
3bf15c
-.BR vdso (7).
3bf15c
-.SH SEE ALSO
3bf15c
-.BR date (1),
3bf15c
-.BR gettimeofday (2),
3bf15c
-.BR ctime (3),
3bf15c
-.BR ftime (3),
3bf15c
-.BR time (7),
3bf15c
-.BR vdso (7)
3bf15c
-.SH COLOPHON
3bf15c
-This page is part of release 4.15 of the Linux
3bf15c
-.I man-pages
3bf15c
-project.
3bf15c
-A description of the project,
3bf15c
-information about reporting bugs,
3bf15c
-and the latest version of this page,
3bf15c
-can be found at
3bf15c
-\%https://www.kernel.org/doc/man\-pages/.
3bf15c
diff --git a/man2/umount.2 b/man2/umount.2
3bf15c
index 292076c..b43443a 100644
3bf15c
--- a/man2/umount.2
3bf15c
+++ b/man2/umount.2
3bf15c
@@ -40,6 +40,11 @@ umount, umount2 \- unmount filesystem
3bf15c
 .fi
3bf15c
 .SH DESCRIPTION
3bf15c
 .BR umount ()
3bf15c
+system call is DEPRECATED, use
3bf15c
+.BR umount2 ()
3bf15c
+instead!!!
3bf15c
+.PP
3bf15c
+.BR umount ()
3bf15c
 and
3bf15c
 .BR umount2 ()
3bf15c
 remove the attachment of the (topmost) filesystem mounted on
3bf15c
diff --git a/man2/unlink.2 b/man2/unlink.2
3bf15c
index b25b153..93bdb63 100644
3bf15c
--- a/man2/unlink.2
3bf15c
+++ b/man2/unlink.2
3bf15c
@@ -65,6 +65,11 @@ _ATFILE_SOURCE
3bf15c
 .PD
3bf15c
 .SH DESCRIPTION
3bf15c
 .BR unlink ()
3bf15c
+system call is DEPRECATED, use
3bf15c
+.BR unlinkat ()
3bf15c
+instead!!!
3bf15c
+.PP
3bf15c
+.BR unlink ()
3bf15c
 deletes a name from the filesystem.
3bf15c
 If that name was the
3bf15c
 last link to a file and no processes have the file open, the file is
3bf15c
diff --git a/man2/uselib.2 b/man2/uselib.2
3bf15c
deleted file mode 100644
3bf15c
index df7bad5..0000000
3bf15c
--- a/man2/uselib.2
3bf15c
+++ /dev/null
3bf15c
@@ -1,138 +0,0 @@
3bf15c
-.\" Copyright (c) 1992 Drew Eckhardt (drew@cs.colorado.edu), March 28, 1992
3bf15c
-.\"
3bf15c
-.\" %%%LICENSE_START(VERBATIM)
3bf15c
-.\" Permission is granted to make and distribute verbatim copies of this
3bf15c
-.\" manual provided the copyright notice and this permission notice are
3bf15c
-.\" preserved on all copies.
3bf15c
-.\"
3bf15c
-.\" Permission is granted to copy and distribute modified versions of this
3bf15c
-.\" manual under the conditions for verbatim copying, provided that the
3bf15c
-.\" entire resulting derived work is distributed under the terms of a
3bf15c
-.\" permission notice identical to this one.
3bf15c
-.\"
3bf15c
-.\" Since the Linux kernel and libraries are constantly changing, this
3bf15c
-.\" manual page may be incorrect or out-of-date.  The author(s) assume no
3bf15c
-.\" responsibility for errors or omissions, or for damages resulting from
3bf15c
-.\" the use of the information contained herein.  The author(s) may not
3bf15c
-.\" have taken the same level of care in the production of this manual,
3bf15c
-.\" which is licensed free of charge, as they might when working
3bf15c
-.\" professionally.
3bf15c
-.\"
3bf15c
-.\" Formatted or processed versions of this manual, if unaccompanied by
3bf15c
-.\" the source, must acknowledge the copyright and authors of this work.
3bf15c
-.\" %%%LICENSE_END
3bf15c
-.\"
3bf15c
-.\" Modified by Michael Haardt <michael@moria.de>
3bf15c
-.\" Modified 1993-07-24 by Rik Faith <faith@cs.unc.edu>
3bf15c
-.\" Modified 1996-10-22 by Eric S. Raymond <esr@thyrsus.com>
3bf15c
-.\" Modified 2004-06-23 by Michael Kerrisk <mtk.manpages@gmail.com>
3bf15c
-.\" Modified 2005-01-09 by aeb
3bf15c
-.\"
3bf15c
-.TH USELIB 2 2017-09-15 "Linux" "Linux Programmer's Manual"
3bf15c
-.SH NAME
3bf15c
-uselib \- load shared library
3bf15c
-.SH SYNOPSIS
3bf15c
-.B #include <unistd.h>
3bf15c
-.PP
3bf15c
-.BI "int uselib(const char *" library );
3bf15c
-.PP
3bf15c
-.IR Note :
3bf15c
-No declaration of this system call is provided in glibc headers; see NOTES.
3bf15c
-.SH DESCRIPTION
3bf15c
-The system call
3bf15c
-.BR uselib ()
3bf15c
-serves to load
3bf15c
-a shared library to be used by the calling process.
3bf15c
-It is given a pathname.
3bf15c
-The address where to load is found
3bf15c
-in the library itself.
3bf15c
-The library can have any recognized
3bf15c
-binary format.
3bf15c
-.SH RETURN VALUE
3bf15c
-On success, zero is returned.
3bf15c
-On error, \-1 is returned, and
3bf15c
-.I errno
3bf15c
-is set appropriately.
3bf15c
-.SH ERRORS
3bf15c
-In addition to all of the error codes returned by
3bf15c
-.BR open (2)
3bf15c
-and
3bf15c
-.BR mmap (2),
3bf15c
-the following may also be returned:
3bf15c
-.TP
3bf15c
-.B EACCES
3bf15c
-The library specified by
3bf15c
-.I library
3bf15c
-does not have read or execute permission, or the caller does not have
3bf15c
-search permission for one of the directories in the path prefix.
3bf15c
-(See also
3bf15c
-.BR path_resolution (7).)
3bf15c
-.TP
3bf15c
-.B ENFILE
3bf15c
-The system-wide limit on the total number of open files has been reached.
3bf15c
-.TP
3bf15c
-.B ENOEXEC
3bf15c
-The file specified by
3bf15c
-.I library
3bf15c
-is not an executable of a known type;
3bf15c
-for example, it does not have the correct magic numbers.
3bf15c
-.SH CONFORMING TO
3bf15c
-.BR uselib ()
3bf15c
-is Linux-specific, and should not be used in programs
3bf15c
-intended to be portable.
3bf15c
-.SH NOTES
3bf15c
-This obsolete system call is not supported by glibc.
3bf15c
-No declaration is provided in glibc headers, but, through a quirk of history,
3bf15c
-glibc versions before 2.23 did export an ABI for this system call.
3bf15c
-Therefore, in order to employ this system call,
3bf15c
-it was sufficient to manually declare the interface in your code;
3bf15c
-alternatively, you could invoke the system call using
3bf15c
-.BR syscall (2).
3bf15c
-.PP
3bf15c
-In ancient libc versions,
3bf15c
-.BR uselib ()
3bf15c
-was used to load
3bf15c
-the shared libraries with names found in an array of names
3bf15c
-in the binary.
3bf15c
-.PP
3bf15c
-.\" libc 4.3.1f - changelog 1993-03-02
3bf15c
-Since libc 4.3.2, startup code tries to prefix these names
3bf15c
-with "/usr/lib", "/lib" and "" before giving up.
3bf15c
-.\" libc 4.3.4 - changelog 1993-04-21
3bf15c
-In libc 4.3.4 and later these names are looked for in the directories
3bf15c
-found in
3bf15c
-.BR LD_LIBRARY_PATH ,
3bf15c
-and if not found there,
3bf15c
-prefixes "/usr/lib", "/lib" and "/" are tried.
3bf15c
-.PP
3bf15c
-From libc 4.4.4 on only the library "/lib/ld.so" is loaded,
3bf15c
-so that this dynamic library can load the remaining libraries needed
3bf15c
-(again using this call).
3bf15c
-This is also the state of affairs in libc5.
3bf15c
-.PP
3bf15c
-glibc2 does not use this call.
3bf15c
-.PP
3bf15c
-Since Linux 3.15,
3bf15c
-.\" commit 69369a7003735d0d8ef22097e27a55a8bad9557a
3bf15c
-this system call is available only when the kernel is configured with the
3bf15c
-.B CONFIG_USELIB
3bf15c
-option.
3bf15c
-.SH SEE ALSO
3bf15c
-.BR ar (1),
3bf15c
-.BR gcc (1),
3bf15c
-.BR ld (1),
3bf15c
-.BR ldd (1),
3bf15c
-.BR mmap (2),
3bf15c
-.BR open (2),
3bf15c
-.BR dlopen (3),
3bf15c
-.BR capabilities (7),
3bf15c
-.BR ld.so (8)
3bf15c
-.SH COLOPHON
3bf15c
-This page is part of release 4.15 of the Linux
3bf15c
-.I man-pages
3bf15c
-project.
3bf15c
-A description of the project,
3bf15c
-information about reporting bugs,
3bf15c
-and the latest version of this page,
3bf15c
-can be found at
3bf15c
-\%https://www.kernel.org/doc/man\-pages/.
3bf15c
diff --git a/man2/ustat.2 b/man2/ustat.2
3bf15c
deleted file mode 100644
3bf15c
index 41e9a88..0000000
3bf15c
--- a/man2/ustat.2
3bf15c
+++ /dev/null
3bf15c
@@ -1,127 +0,0 @@
3bf15c
-.\" Copyright (C) 1995, Thomas K. Dyas <tdyas@eden.rutgers.edu>
3bf15c
-.\"
3bf15c
-.\" %%%LICENSE_START(VERBATIM)
3bf15c
-.\" Permission is granted to make and distribute verbatim copies of this
3bf15c
-.\" manual provided the copyright notice and this permission notice are
3bf15c
-.\" preserved on all copies.
3bf15c
-.\"
3bf15c
-.\" Permission is granted to copy and distribute modified versions of this
3bf15c
-.\" manual under the conditions for verbatim copying, provided that the
3bf15c
-.\" entire resulting derived work is distributed under the terms of a
3bf15c
-.\" permission notice identical to this one.
3bf15c
-.\"
3bf15c
-.\" Since the Linux kernel and libraries are constantly changing, this
3bf15c
-.\" manual page may be incorrect or out-of-date.  The author(s) assume no
3bf15c
-.\" responsibility for errors or omissions, or for damages resulting from
3bf15c
-.\" the use of the information contained herein.  The author(s) may not
3bf15c
-.\" have taken the same level of care in the production of this manual,
3bf15c
-.\" which is licensed free of charge, as they might when working
3bf15c
-.\" professionally.
3bf15c
-.\"
3bf15c
-.\" Formatted or processed versions of this manual, if unaccompanied by
3bf15c
-.\" the source, must acknowledge the copyright and authors of this work.
3bf15c
-.\" %%%LICENSE_END
3bf15c
-.\"
3bf15c
-.\" Created  1995-08-09 Thomas K. Dyas <tdyas@eden.rutgers.edu>
3bf15c
-.\" Modified 1997-01-31 by Eric S. Raymond <esr@thyrsus.com>
3bf15c
-.\" Modified 2001-03-22 by aeb
3bf15c
-.\" Modified 2003-08-04 by aeb
3bf15c
-.\"
3bf15c
-.TH USTAT 2 2017-09-15 "Linux" "Linux Programmer's Manual"
3bf15c
-.SH NAME
3bf15c
-ustat \- get filesystem statistics
3bf15c
-.SH SYNOPSIS
3bf15c
-.nf
3bf15c
-.B #include <sys/types.h>
3bf15c
-.BR "#include <unistd.h>" "    /* libc[45] */"
3bf15c
-.BR "#include <ustat.h>" "     /* glibc2 */"
3bf15c
-.PP
3bf15c
-.BI "int ustat(dev_t " dev ", struct ustat *" ubuf );
3bf15c
-.fi
3bf15c
-.SH DESCRIPTION
3bf15c
-.BR ustat ()
3bf15c
-returns information about a mounted filesystem.
3bf15c
-.I dev
3bf15c
-is a device number identifying a device containing
3bf15c
-a mounted filesystem.
3bf15c
-.I ubuf
3bf15c
-is a pointer to a
3bf15c
-.I ustat
3bf15c
-structure that contains the following
3bf15c
-members:
3bf15c
-.PP
3bf15c
-.in +4n
3bf15c
-.EX
3bf15c
-daddr_t f_tfree;      /* Total free blocks */
3bf15c
-ino_t   f_tinode;     /* Number of free inodes */
3bf15c
-char    f_fname[6];   /* Filsys name */
3bf15c
-char    f_fpack[6];   /* Filsys pack name */
3bf15c
-.EE
3bf15c
-.in
3bf15c
-.PP
3bf15c
-The last two fields,
3bf15c
-.I f_fname
3bf15c
-and
3bf15c
-.IR f_fpack ,
3bf15c
-are not implemented and will
3bf15c
-always be filled with null bytes (\(aq\\0\(aq).
3bf15c
-.SH RETURN VALUE
3bf15c
-On success, zero is returned and the
3bf15c
-.I ustat
3bf15c
-structure pointed to by
3bf15c
-.I ubuf
3bf15c
-will be filled in.
3bf15c
-On error, \-1 is returned, and
3bf15c
-.I errno
3bf15c
-is set appropriately.
3bf15c
-.SH ERRORS
3bf15c
-.TP
3bf15c
-.B EFAULT
3bf15c
-.I ubuf
3bf15c
-points outside of your accessible address space.
3bf15c
-.TP
3bf15c
-.B EINVAL
3bf15c
-.I dev
3bf15c
-does not refer to a device containing a mounted filesystem.
3bf15c
-.TP
3bf15c
-.B ENOSYS
3bf15c
-The mounted filesystem referenced by
3bf15c
-.I dev
3bf15c
-does not support this operation, or any version of Linux before
3bf15c
-1.3.16.
3bf15c
-.SH CONFORMING TO
3bf15c
-SVr4.
3bf15c
-.\" SVr4 documents additional error conditions ENOLINK, ECOMM, and EINTR
3bf15c
-.\" but has no ENOSYS condition.
3bf15c
-.SH NOTES
3bf15c
-.BR ustat ()
3bf15c
-is deprecated and has been provided only for compatibility.
3bf15c
-All new programs should use
3bf15c
-.BR statfs (2)
3bf15c
-instead.
3bf15c
-.SS HP-UX notes
3bf15c
-The HP-UX version of the
3bf15c
-.I ustat
3bf15c
-structure has an additional field,
3bf15c
-.IR f_blksize ,
3bf15c
-that is unknown elsewhere.
3bf15c
-HP-UX warns:
3bf15c
-For some filesystems, the number of free inodes does not change.
3bf15c
-Such filesystems will return \-1 in the field
3bf15c
-.IR f_tinode .
3bf15c
-.\" Some software tries to use this in order to test whether the
3bf15c
-.\" underlying filesystem is NFS.
3bf15c
-For some filesystems, inodes are dynamically allocated.
3bf15c
-Such filesystems will return the current number of free inodes.
3bf15c
-.SH SEE ALSO
3bf15c
-.BR stat (2),
3bf15c
-.BR statfs (2)
3bf15c
-.SH COLOPHON
3bf15c
-This page is part of release 4.15 of the Linux
3bf15c
-.I man-pages
3bf15c
-project.
3bf15c
-A description of the project,
3bf15c
-information about reporting bugs,
3bf15c
-and the latest version of this page,
3bf15c
-can be found at
3bf15c
-\%https://www.kernel.org/doc/man\-pages/.
3bf15c
diff --git a/man2/utime.2 b/man2/utime.2
3bf15c
index 6c848e8..6393289 100644
3bf15c
--- a/man2/utime.2
3bf15c
+++ b/man2/utime.2
3bf15c
@@ -43,9 +43,12 @@ utime, utimes \- change file last access and modification times
3bf15c
 .BI "int utimes(const char *" filename ", const struct timeval " times [2]);
3bf15c
 .fi
3bf15c
 .SH DESCRIPTION
3bf15c
-.B Note:
3bf15c
-modern applications may prefer to use the interfaces described in
3bf15c
-.BR utimensat (2).
3bf15c
+.BR utime ()
3bf15c
+and
3bf15c
+.BR utimes ()
3bf15c
+system calls are DEPRECATED, use
3bf15c
+.BR utimensat (2)
3bf15c
+instead!!!
3bf15c
 .PP
3bf15c
 The
3bf15c
 .BR utime ()
3bf15c
diff --git a/man2/vfork.2 b/man2/vfork.2
3bf15c
deleted file mode 100644
3bf15c
index 32d6042..0000000
3bf15c
--- a/man2/vfork.2
3bf15c
+++ /dev/null
3bf15c
@@ -1,346 +0,0 @@
3bf15c
-.\" Copyright (c) 1999 Andries Brouwer (aeb@cwi.nl), 1 Nov 1999
3bf15c
-.\" and Copyright 2006, 2012, 2017 Michael Kerrisk <mtk.manpages@gmail.com>
3bf15c
-.\"
3bf15c
-.\" %%%LICENSE_START(VERBATIM)
3bf15c
-.\" Permission is granted to make and distribute verbatim copies of this
3bf15c
-.\" manual provided the copyright notice and this permission notice are
3bf15c
-.\" preserved on all copies.
3bf15c
-.\"
3bf15c
-.\" Permission is granted to copy and distribute modified versions of this
3bf15c
-.\" manual under the conditions for verbatim copying, provided that the
3bf15c
-.\" entire resulting derived work is distributed under the terms of a
3bf15c
-.\" permission notice identical to this one.
3bf15c
-.\"
3bf15c
-.\" Since the Linux kernel and libraries are constantly changing, this
3bf15c
-.\" manual page may be incorrect or out-of-date.  The author(s) assume no
3bf15c
-.\" responsibility for errors or omissions, or for damages resulting from
3bf15c
-.\" the use of the information contained herein.  The author(s) may not
3bf15c
-.\" have taken the same level of care in the production of this manual,
3bf15c
-.\" which is licensed free of charge, as they might when working
3bf15c
-.\" professionally.
3bf15c
-.\"
3bf15c
-.\" Formatted or processed versions of this manual, if unaccompanied by
3bf15c
-.\" the source, must acknowledge the copyright and authors of this work.
3bf15c
-.\" %%%LICENSE_END
3bf15c
-.\"
3bf15c
-.\" 1999-11-10: Merged text taken from the page contributed by
3bf15c
-.\" Reed H. Petty (rhp@draper.net)
3bf15c
-.\"
3bf15c
-.TH VFORK 2 2017-09-15 "Linux" "Linux Programmer's Manual"
3bf15c
-.SH NAME
3bf15c
-vfork \- create a child process and block parent
3bf15c
-.SH SYNOPSIS
3bf15c
-.B #include <sys/types.h>
3bf15c
-.br
3bf15c
-.B #include <unistd.h>
3bf15c
-.PP
3bf15c
-.B pid_t vfork(void);
3bf15c
-.PP
3bf15c
-.in -4n
3bf15c
-Feature Test Macro Requirements for glibc (see
3bf15c
-.BR feature_test_macros (7)):
3bf15c
-.in
3bf15c
-.PP
3bf15c
-.BR vfork ():
3bf15c
-.ad l
3bf15c
-.RS 4
3bf15c
-.PD 0
3bf15c
-.TP 4
3bf15c
-Since glibc 2.12:
3bf15c
-.nf
3bf15c
-(_XOPEN_SOURCE\ >=\ 500) && ! (_POSIX_C_SOURCE\ >=\ 200809L)
3bf15c
-    || /* Since glibc 2.19: */ _DEFAULT_SOURCE
3bf15c
-    || /* Glibc versions <= 2.19: */ _BSD_SOURCE
3bf15c
-.TP 4
3bf15c
-.fi
3bf15c
-Before glibc 2.12:
3bf15c
-_BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500
3bf15c
-.\"     || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED
3bf15c
-.PD
3bf15c
-.RE
3bf15c
-.ad b
3bf15c
-.SH DESCRIPTION
3bf15c
-.SS Standard description
3bf15c
-(From POSIX.1)
3bf15c
-The
3bf15c
-.BR vfork ()
3bf15c
-function has the same effect as
3bf15c
-.BR fork (2),
3bf15c
-except that the behavior is undefined if the process created by
3bf15c
-.BR vfork ()
3bf15c
-either modifies any data other than a variable of type
3bf15c
-.I pid_t
3bf15c
-used to store the return value from
3bf15c
-.BR vfork (),
3bf15c
-or returns from the function in which
3bf15c
-.BR vfork ()
3bf15c
-was called, or calls any other function before successfully calling
3bf15c
-.BR _exit (2)
3bf15c
-or one of the
3bf15c
-.BR exec (3)
3bf15c
-family of functions.
3bf15c
-.SS Linux description
3bf15c
-.BR vfork (),
3bf15c
-just like
3bf15c
-.BR fork (2),
3bf15c
-creates a child process of the calling process.
3bf15c
-For details and return value and errors, see
3bf15c
-.BR fork (2).
3bf15c
-.PP
3bf15c
-.BR vfork ()
3bf15c
-is a special case of
3bf15c
-.BR clone (2).
3bf15c
-It is used to create new processes without copying the page tables of
3bf15c
-the parent process.
3bf15c
-It may be useful in performance-sensitive applications
3bf15c
-where a child is created which then immediately issues an
3bf15c
-.BR execve (2).
3bf15c
-.PP
3bf15c
-.BR vfork ()
3bf15c
-differs from
3bf15c
-.BR fork (2)
3bf15c
-in that the calling thread is suspended until the child terminates
3bf15c
-(either normally,
3bf15c
-by calling
3bf15c
-.BR _exit (2),
3bf15c
-or abnormally, after delivery of a fatal signal),
3bf15c
-or it makes a call to
3bf15c
-.BR execve (2).
3bf15c
-Until that point, the child shares all memory with its parent,
3bf15c
-including the stack.
3bf15c
-The child must not return from the current function or call
3bf15c
-.BR exit (3)
3bf15c
-(which would have the effect of calling exit handlers
3bf15c
-established by the parent process and flushing the parent's
3bf15c
-.BR stdio (3)
3bf15c
-buffers), but may call
3bf15c
-.BR _exit (2).
3bf15c
-.PP
3bf15c
-As with
3bf15c
-.BR fork (2),
3bf15c
-the child process created by
3bf15c
-.BR vfork ()
3bf15c
-inherits copies of various of the caller's process attributes
3bf15c
-(e.g., file descriptors, signal dispositions, and current working directory);
3bf15c
-the
3bf15c
-.BR vfork ()
3bf15c
-call differs only in the treatment of the virtual address space,
3bf15c
-as described above.
3bf15c
-.PP
3bf15c
-Signals sent to the parent
3bf15c
-arrive after the child releases the parent's memory
3bf15c
-(i.e., after the child terminates
3bf15c
-or calls
3bf15c
-.BR execve (2)).
3bf15c
-.SS Historic description
3bf15c
-Under Linux,
3bf15c
-.BR fork (2)
3bf15c
-is implemented using copy-on-write pages, so the only penalty incurred by
3bf15c
-.BR fork (2)
3bf15c
-is the time and memory required to duplicate the parent's page tables,
3bf15c
-and to create a unique task structure for the child.
3bf15c
-However, in the bad old days a
3bf15c
-.BR fork (2)
3bf15c
-would require making a complete copy of the caller's data space,
3bf15c
-often needlessly, since usually immediately afterward an
3bf15c
-.BR exec (3)
3bf15c
-is done.
3bf15c
-Thus, for greater efficiency, BSD introduced the
3bf15c
-.BR vfork ()
3bf15c
-system call, which did not fully copy the address space of
3bf15c
-the parent process, but borrowed the parent's memory and thread
3bf15c
-of control until a call to
3bf15c
-.BR execve (2)
3bf15c
-or an exit occurred.
3bf15c
-The parent process was suspended while the
3bf15c
-child was using its resources.
3bf15c
-The use of
3bf15c
-.BR vfork ()
3bf15c
-was tricky: for example, not modifying data
3bf15c
-in the parent process depended on knowing which variables were
3bf15c
-held in a register.
3bf15c
-.SH CONFORMING TO
3bf15c
-4.3BSD; POSIX.1-2001 (but marked OBSOLETE).
3bf15c
-POSIX.1-2008 removes the specification of
3bf15c
-.BR vfork ().
3bf15c
-.PP
3bf15c
-The requirements put on
3bf15c
-.BR vfork ()
3bf15c
-by the standards are weaker than those put on
3bf15c
-.BR fork (2),
3bf15c
-so an implementation where the two are synonymous is compliant.
3bf15c
-In particular, the programmer cannot rely on the parent
3bf15c
-remaining blocked until the child either terminates or calls
3bf15c
-.BR execve (2),
3bf15c
-and cannot rely on any specific behavior with respect to shared memory.
3bf15c
-.\" In AIXv3.1 vfork is equivalent to fork.
3bf15c
-.SH NOTES
3bf15c
-.PP
3bf15c
-Some consider the semantics of
3bf15c
-.BR vfork ()
3bf15c
-to be an architectural blemish, and the 4.2BSD man page stated:
3bf15c
-"This system call will be eliminated when proper system sharing mechanisms
3bf15c
-are implemented.
3bf15c
-Users should not depend on the memory sharing semantics of
3bf15c
-.BR vfork ()
3bf15c
-as it will, in that case, be made synonymous to
3bf15c
-.BR fork (2).\c
3bf15c
-"
3bf15c
-However, even though modern memory management hardware
3bf15c
-has decreased the performance difference between
3bf15c
-.BR fork (2)
3bf15c
-and
3bf15c
-.BR vfork (),
3bf15c
-there are various reasons why Linux and other systems have retained
3bf15c
-.BR vfork ():
3bf15c
-.IP * 3
3bf15c
-Some performance-critical applications require the small performance
3bf15c
-advantage conferred by
3bf15c
-.BR vfork ().
3bf15c
-.IP *
3bf15c
-.BR vfork ()
3bf15c
-can be implemented on systems that lack a memory-management unit (MMU), but
3bf15c
-.BR fork (2)
3bf15c
-can't be implemented on such systems.
3bf15c
-(POSIX.1-2008 removed
3bf15c
-.BR vfork ()
3bf15c
-from the standard; the POSIX rationale for the
3bf15c
-.BR posix_spawn (3)
3bf15c
-function notes that that function,
3bf15c
-which provides functionality equivalent to
3bf15c
-.BR fork (2)+ exec (3),
3bf15c
-is designed to be implementable on systems that lack an MMU.)
3bf15c
-.\" http://stackoverflow.com/questions/4259629/what-is-the-difference-between-fork-and-vfork
3bf15c
-.\" http://developers.sun.com/solaris/articles/subprocess/subprocess.html
3bf15c
-.\" http://mailman.uclinux.org/pipermail/uclinux-dev/2009-April/000684.html
3bf15c
-.\"
3bf15c
-.IP *
3bf15c
-On systems where memory is constrained,
3bf15c
-.BR vfork ()
3bf15c
-avoids the need to temporarily commit memory (see the description of
3bf15c
-.IR /proc/sys/vm/overcommit_memory
3bf15c
-in
3bf15c
-.BR proc (5))
3bf15c
-in order to execute a new program.
3bf15c
-(This can be especially beneficial where a large parent process wishes
3bf15c
-to execute a small helper program in a child process.)
3bf15c
-By contrast, using
3bf15c
-.BR fork (2)
3bf15c
-in this scenario requires either committing an amount of memory equal
3bf15c
-to the size of the parent process (if strict overcommitting is in force)
3bf15c
-or overcommitting memory with the risk that a process is terminated
3bf15c
-by the out-of-memory (OOM) killer.
3bf15c
-.\"
3bf15c
-.SS Caveats
3bf15c
-The child process should take care not to modify the memory in unintended ways,
3bf15c
-since such changes will be seen by the parent process once
3bf15c
-the child terminates or executes another program.
3bf15c
-In this regard, signal handlers can be especially problematic:
3bf15c
-if a signal handler that is invoked in the child of
3bf15c
-.BR vfork ()
3bf15c
-changes memory, those changes may result in an inconsistent process state
3bf15c
-from the perspective of the parent process
3bf15c
-(e.g., memory changes would be visible in the parent,
3bf15c
-but changes to the state of open file descriptors would not be visible).
3bf15c
-.PP
3bf15c
-When
3bf15c
-.BR vfork ()
3bf15c
-is called in a multithreaded process,
3bf15c
-only the calling thread is suspended until the child terminates
3bf15c
-or executes a new program.
3bf15c
-This means that the child is sharing an address space with other running code.
3bf15c
-This can be dangerous if another thread in the parent process
3bf15c
-changes credentials (using
3bf15c
-.BR setuid (2)
3bf15c
-or similar),
3bf15c
-since there are now two processes with different privilege levels
3bf15c
-running in the same address space.
3bf15c
-As an example of the dangers,
3bf15c
-suppose that a multithreaded program running as root creates a child using
3bf15c
-.BR vfork ().
3bf15c
-After the
3bf15c
-.BR vfork (),
3bf15c
-a thread in the parent process drops the process to an unprivileged user
3bf15c
-in order to run some untrusted code
3bf15c
-(e.g., perhaps via plug-in opened with
3bf15c
-.BR dlopen (3)).
3bf15c
-In this case, attacks are possible where the parent process uses
3bf15c
-.BR mmap (2)
3bf15c
-to map in code that will be executed by the privileged child process.
3bf15c
-.\"
3bf15c
-.SS Linux notes
3bf15c
-Fork handlers established using
3bf15c
-.BR pthread_atfork (3)
3bf15c
-are not called when a multithreaded program employing
3bf15c
-the NPTL threading library calls
3bf15c
-.BR vfork ().
3bf15c
-Fork handlers are called in this case in a program using the
3bf15c
-LinuxThreads threading library.
3bf15c
-(See
3bf15c
-.BR pthreads (7)
3bf15c
-for a description of Linux threading libraries.)
3bf15c
-.PP
3bf15c
-A call to
3bf15c
-.BR vfork ()
3bf15c
-is equivalent to calling
3bf15c
-.BR clone (2)
3bf15c
-with
3bf15c
-.I flags
3bf15c
-specified as:
3bf15c
-.PP
3bf15c
-     CLONE_VM | CLONE_VFORK | SIGCHLD
3bf15c
-.SS History
3bf15c
-The
3bf15c
-.BR vfork ()
3bf15c
-system call appeared in 3.0BSD.
3bf15c
-.\" In the release notes for 4.2BSD Sam Leffler wrote: `vfork: Is still
3bf15c
-.\" present, but definitely on its way out'.
3bf15c
-In 4.4BSD it was made synonymous to
3bf15c
-.BR fork (2)
3bf15c
-but NetBSD introduced it again;
3bf15c
-see
3bf15c
-.UR http://www.netbsd.org\:/Documentation\:/kernel\:/vfork.html
3bf15c
-.UE .
3bf15c
-In Linux, it has been equivalent to
3bf15c
-.BR fork (2)
3bf15c
-until 2.2.0-pre6 or so.
3bf15c
-Since 2.2.0-pre9 (on i386, somewhat later on
3bf15c
-other architectures) it is an independent system call.
3bf15c
-Support was added in glibc 2.0.112.
3bf15c
-.SH BUGS
3bf15c
-.PP
3bf15c
-Details of the signal handling are obscure and differ between systems.
3bf15c
-The BSD man page states:
3bf15c
-"To avoid a possible deadlock situation, processes that are children
3bf15c
-in the middle of a
3bf15c
-.BR vfork ()
3bf15c
-are never sent
3bf15c
-.B SIGTTOU
3bf15c
-or
3bf15c
-.B SIGTTIN
3bf15c
-signals; rather, output or
3bf15c
-.IR ioctl s
3bf15c
-are allowed and input attempts result in an end-of-file indication."
3bf15c
-.\"
3bf15c
-.\" As far as I can tell, the following is not true in 2.6.19:
3bf15c
-.\" Currently (Linux 2.3.25),
3bf15c
-.\" .BR strace (1)
3bf15c
-.\" cannot follow
3bf15c
-.\" .BR vfork ()
3bf15c
-.\" and requires a kernel patch.
3bf15c
-.SH SEE ALSO
3bf15c
-.BR clone (2),
3bf15c
-.BR execve (2),
3bf15c
-.BR _exit (2),
3bf15c
-.BR fork (2),
3bf15c
-.BR unshare (2),
3bf15c
-.BR wait (2)
3bf15c
-.SH COLOPHON
3bf15c
-This page is part of release 4.15 of the Linux
3bf15c
-.I man-pages
3bf15c
-project.
3bf15c
-A description of the project,
3bf15c
-information about reporting bugs,
3bf15c
-and the latest version of this page,
3bf15c
-can be found at
3bf15c
-\%https://www.kernel.org/doc/man\-pages/.
3bf15c
diff --git a/man2/wait4.2 b/man2/wait4.2
3bf15c
index be31213..4fe7214 100644
3bf15c
--- a/man2/wait4.2
3bf15c
+++ b/man2/wait4.2
3bf15c
@@ -67,6 +67,13 @@ Feature Test Macro Requirements for glibc (see
3bf15c
         _BSD_SOURCE
3bf15c
 .ad
3bf15c
 .SH DESCRIPTION
3bf15c
+.BR wait4 ()
3bf15c
+system call is DEPRECATED, use
3bf15c
+.BR waitpid (2)
3bf15c
+or
3bf15c
+.BR waitid (2)
3bf15c
+instead!!!
3bf15c
+.PP
3bf15c
 These functions are obsolete; use
3bf15c
 .BR waitpid (2)
3bf15c
 or
3bf15c
-- 
3bf15c
2.17.1
3bf15c